西门子模块6ES7215-1BG40-0XB0安装调试
在工业控制系统中,PLC作为一种稳定可靠的控制器已经得到了广泛的应用。但是由于中小型PLC的人机接口功能不很完善,不能提供给用户一个友好的交互界面,因此妨碍了对现场运行过程的跟踪与监控。
PLC实际工作中,通常人们采用4种装置为PLC配置人机界面:编程终端、显示终端、工作站及个人计算机。编程终端主要用于编程与调试,其监控功能相对较弱。显示终端的功能比较单一,主要用作现场显示。工作站系统很受用户欢迎,它功能全面、使用简单,但由于要配置组态软件,因而价格比较昂贵。个人计算机可配备多种语言,提供优良的软件平台,开发各种应用系统,特别是动态画面显示等,与PLC相结合组成一套PC-PLC监控管理系统,能够充分发挥它们各自的优点。但是在该系统中,关键的问题就是通信,用户对此须做较多的开发工作。
本文详细阐述了PC与PLC互连通信的一般方法,并以永宏公司的FATEK-FBS PLC为对象,以实际四层电梯模型监控系统为例,介绍了利用大家都熟悉的编程语言Visual Basic 和Step7,实现PLC与上位计算机实时通信的通信过程。
2 通信方式
面对众多生产厂家的各种类型PLC,它们各有优缺点,能够满足用户的各种需求,但在形态、组成、功 能、编程等方面各不相同,没有一个统一的标准,各厂家制订的通信协议也千差万别。目前,人们主要采用以下三种方式实现PLC与PC的互联通信:
(1) 通过使用PLC开发商提供的系统协议和网络适配器,来实现PLC与PC机的互联通信。但是由于其通信协议是不公开的,因此互联通信必须使用PLC开发商提供的上位机组态软件,并采用支持相应协议的外设。可以说这种方式是PLC开发商为自己的产品量身定作的,因此难以满足不同用户的需求。
(2) 使用目前通用的上位机组态软件,如组态王、InTouch、WinCC、力控等,来实现PLC与PC机的互连通信。组态软件以其功能强大、界面友好、开发简洁等优点目前在PC监控领域已经得到了广泛的应用,但是一般价格比较昂贵。组态软件本身并不具备直接访问PLC寄存器或其它智能仪表的能力,必须借助I/O驱动程序来实现。也就是说,I/O驱动程序是组态软件与PLC或其它智能仪表等设备交互信息的桥梁,负责从设备采集实时数据并将操作命令下达给设备,它的可靠性将直接影响组态软件的性能。但是在大多数情况下,I/O驱动程序是与设备相关的,即针对某种PLC的驱动程序不能驱动其它种类的PLC,因此组态软件的灵活性也受到了一定的限制。
(3) 利用PLC厂商所提供的标准通信端口和由用户自定义的自由口通信方式来实现PLC与PC机的互连通信。这种方式由用户定义通信协议,不需要增加投资,灵活性好,特别适合于小规模的控制系统。
通过上述分析不难得出,掌握如何利用PLC厂商提供的标准通信端口和自由口通信方式以及大家所熟悉的编程语言来实现PC与PLC之间的实时通信是非常必要的。
3 FATEK-FBS PLC通信方式及原理
FATEK-FBS PLC内部集成的PPI接口为用户提供了强大的通信功能,可在多种模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通信方式具有特色,通信协议可完全由梯形图程序控制,通过它可以实现PLC与任何具有通信能力的设备进行互连,因而在本系统中选用自由口通信方式。
目前PLC与PC机的链接通信有两种方式,一种是PC机始终处于主导地位,数据的传送都由PC机定时发出命令,另外一种是PLC始终具有优先权。在本电梯模型监控系统中所有的控制信号均为开关量信号,考虑到上位PC机仅实时显示电梯的运行状态,不需向PLC发送控制指令,采用第二种通信方式。利用PLC循环扫描的特点,设备状态一旦改变,PLC立即检测到,并将反映系统状态变化的数据存入指定的数据缓冲区,通过XMT发送指令,将数据通过COM口发至上位机。每个系统的状态对应于数据缓冲区中的一个指定字节,所存储数据均为16进制数据,为保证通信过程的可靠性,上位机对所接受到的数据进行首尾字符校验,如果校验成功,则说明接收到的首末字节之间的数据是正确的,从而进行处理,否则,放弃这批数据,要求对方重发。
4 应用实例与程序设计
(1) 系统构成
FATEK-FBS PLC内部集成的PPI接口物理特性为RS485,而上位机的标准串口为RS232,为了实现两者的通信必须进行协议转换,永宏公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此再不增加任何硬件的情况下,可以方便的实现二者的互联和协议转换。
作为控制器的FATEK-FBS PLC利用电梯模型自带的电源线实现与四层电梯模型的互连,该电梯模型为教学试验装置,具备一般电梯的基本功能。硬件连接如图1所示。
1 引言
近年来,随着大规模集成电路的发展,可编程控制器得到了迅速的发展,并广泛应用于各种领域中。由于可编程控制器具有自身的通讯端口和通信协议,这就使得工业现场的实时监控和控制成为可能。所以在实际的运用中,常常采用plc作为下位控制机实现整个过程的自动控制。而微机在数据处理及人机界面方面有得天独厚的优势,因此采用微机为上位机来进行数据的显示、控制参数的修改及过程的控制,这样就不得不解决上位管理机与下位控制机之间的通讯问题。
由于串行通讯具有线路简单、应用灵活、可靠性高等优点,并且普通微机上均都带有串口,便于实现,所以微机与plc之间常采用串行异步通讯。vc具有面向对象的设计方法、简单方便的串行通讯和实用性强等优点,无需借用其他语言就可以开发出的控制系统通讯软件。本文重点就是介绍在bbbbbbs98环境下如何利用vc来实现pc机与永宏plc之间的串行通讯。并以实际控制系统“半自动化灯检机”为例加以说明。
2 控制系统简介
半自动化灯检机系统的主要工艺流程:供瓶机供瓶→进瓶输送带送瓶→气缸放瓶→主传动履带式置瓶棍移送瓶→进入高速旋转工位旋瓶→进入低速旋转工位慢速旋瓶(同时也就进入灯检工位)→至出瓶输送带送瓶→进入剔除工位分瓶(由电磁阀来控制气缸动作)。下位机主要采用永宏plc完成现场的状态检测与控制。上位机则用一般的微机,通过rs-232与plc通信接受现场状态的显示并加以控制生产过程。电机的运转通过plc控制,而电机的升降速则由变频器调节。因此本系统软件需要完成的主要任务是:从plc,变频器循环接受现场的状态,并根据不同的状态控制变频器及电机的运转。主要的界面有:监控画面,密码设置,参数设置和报警画面等。其中监控画面设有:操作按钮,如停止,启动及产品合格数的实时显示。画面中的每一个按钮或状态显示都需要上位机与下位机的通信来完成。
3 永宏plc的通讯格式
整个通讯采用上位机主动发送和接收的方式,plc内部不需要特定的梯形图编程来做下位机通讯程序。
3.1 通讯格式
计算机与永宏fb系列plc通讯必须遵从fb-plc通讯协议。无论是上位机发出的命令信息格式还是下位机发出的回应信息格式均可分为6个资料位,如图1所示。
(1) 起始字元(stx):ascii码的起始字元stx对应的16进制数为02h。无论命令信息还是回应信息,它们的起始字元均为stx,接收方以此来判知传输资料的开始。
(2) 从机站号:为两位16进制数。fb-plc的站号是什么,这个值就是多少。因为fb-plc的站号可以为1-255,所以这个值的范围为01h-ffh。
(3) 命令号码:为两位16进制数。所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等等。在回应信息中,下位机会将从上位机接收到的命令号码原原本本的随同其它信息一同发送给上位机。
(4) 本文资料:可为0(无本文资料)-500个ascii字元。在命令信息中,此信息用于指定命令所要运作或存取的对象及要写入的数值。如果通讯正确,那么在回应信息中此栏为0(30h)和从上位机接收到的本文资料;如果通讯异常,那么为错误码。
(5) 校验码(checksum):校验码是将1-4各栏的所有ascii字元的16进制数值以“lrc(longitudinal redundancy check)”法计算出1个byte长度(两个16进制数值00-ffh)的校验码。当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正。
(6) 结束字元(etx):ascii码的结束字元etx对应的16进制数为03h。无论命令信息还是回应信息,他们的结束字元均为etx,接收方以此来判知此次通讯已结束。
3.2 通讯命令
永宏系列plc有多种命令字,常用的几种描述如附表所示。例如,上位机要读取plc内部继电器m1和m2的状态,则上位机发送的命令字符串格式为:
起始符(02h)+站号(01)+命令字(44)+个数(02)+起始地址(0001)+校验码(3b)+结束符
相应下位机响应的字符串为:
起始符(02h)+站号(01)+命令字(44)+错误码(0)+m0,m1状态(10)+校验码(5c)+结束符若要对字元件进行写操作,那么命令码改为47。表明该指令要向plc内部寄存器写入数据,同时要给出写入的数据个数、开始寄存器和数据内容。
校验和在信息帧的尾部,用来判断传输的正确与否。当数据从信息源出发,由于信道总是有一定的噪声存在,在信号达到信宿之前会与噪声发生叠加,使接收端收到的二进制数位和发送端实际发送的二进制数位不一致,因而产生差错。进行差错检验的方法很多,常用的有奇偶校验码,水平垂直冗余校验lrc,目前广泛使用的是lrc校验码,它可以查出99%以上18位或更长的突出错误,因而在计算机与plc进行点对点的短程通讯时,采用这种校验方法出错的几率较小。plc接收到计算机发送的命令后,如果没有错误,plc会发出确认码“0”;若有错误,plc会发出错误代码“1”。
4 软件编程
软件编程采用微软的vc++6.0作为开发工具。系统主监控画面要求不断扫描下位机的信号的通断状态,以及读取plc的内部存取单元加以显示。此外手动按钮可以直接控制,由此主程序结构流程图如图2所示。
为了确保通信的成功,在pc机和永宏plc之间开始数据传送前,常采用握手通讯的方法,即pc机发送特征字符,下位机接收并回送同一特征字符,由pc机进行检测正确后开始数据传送,以保证串行通讯数据的可靠。此外在通讯过程中,常因某些原因不能保证每次通讯成功,遇到这种情况,不能简单地宣布通讯失败,本程序设置了通讯重复次数计数器,只有在规定次数后握手通讯仍未完成时,才宣布通讯失败,从而大大提高了通讯的成功率和系统的容错能力。另外,程序中应用定时器对通讯时间加以限制,以免发生死锁情况。定时器的打开和关闭由程序进行控制。握手通讯成功后,设置握手连接成功标志位,这样,pc机和永宏plc之间就可以开始数据传送