西门子模块6ES7231-7PB22-0XA8诚信交易
本文以交通信号灯控制系统为例,介绍FX-0N系列的PLC与上位计算机工控组态软件组态王之间的通讯过程,经过实际运行,基于PLC的交通信号灯控制系统在组态王中得到实现。
引言
可变程序控制器(PLC)是从早期的继电器逻辑控制系统发展而来的。自60年代问世以来,PLC得到了突飞猛进的发展,尤其在数据处理、网络通信及与DCS等集散系统融合方面有了很大的进展,可变程序控制器已经成为工业自动化强有力的工具,得到了广泛的普及和推广应用。
本文以交通信号灯控制系统为例,着重讲述可变程序控制器(PLC)与上位计算机工控组态软件组态王之间的通信。
1、FX-0N-60MR PLC及其编程软件MELSEC-F FXApplications
日本三菱公司的FX0N系列是近年来推出的高性能微型可编程序控制器,外观结构小巧美观、功能强大,系统配置灵活,用户除了可以选用多种基本单元外,还可以选择适当的扩展单元和扩展模块,根据控制要求灵活方便地进行系统配置,组成不同I/O点数和不同功能的控制系统,各种不同的配置都可以得到很好的性能价格比。
FX0N系列有较强的通讯功能,可与内置RS-232C通讯接口的设备通讯。三菱公司FX系列的编程软件MELSEC-F FXApplications是适用于PC机的一种编程软件,可用梯形图、指令表两种编程语言编制程序,程序编制完成之后,利用PLC与计算机专用的F2-232CAB型RS232C电缆传送程序至PLC。
2、组态王V6.0
组态王是一个集成的人机界面(HMI)系统和监控管理系统,可与可编程控制器(PLC)、智能模块、板卡智能仪表、远程数据采集装置(RTV)等多种外部设备进行通讯。而其软件系统与用户终使用的现场设备无关,对于不同的硬件设施,用户只需要按照安装向导的提示完成I/O设备的配置工作,为组态王配置相应的通讯设备的硬件驱动程序,并由硬件设备驱动程序完成组态王与I/O设备的通讯。在系统运行的过程中,组态王通过内嵌的设备管理程序完成与I/O设备的实时数据交换。
3、交通信号灯控制系统
交通信号灯控制系统即十字路口红、黄、绿交通信号灯的控制。控制要求如下:按下启动按钮,交通信号灯开始工作,东西方向绿灯亮56S,南北方向红灯亮60S,东西方向绿灯亮56S后,闪烁2S,过渡到东西方向黄灯,黄灯亮2S;之后东西方向红灯亮60S,南北方向绿灯亮56S后闪烁2S后,随之黄灯亮2S后灭......
I/O分配如下:
输入 输出
启动 X0 东西绿灯 Y1 南北红灯 Y5
停止 X1 东西黄灯 Y2 南北绿灯 Y6
东西红灯 Y3 南北黄灯 Y7
部分控制程序见图1。
图1 交通信号灯控制系统部分程序4、PLC与上位计算机组态王软件的通讯
PLC与上位计算机的通讯可以利用语言编程来实现,用户必须熟悉互连的PLC及PLC网络采用的通讯协议,严格的按照通讯协议规定为计算机编写通讯程序,其对用户要求较高,而采用工控组态软件实现PLC与上位计算机之间的通讯,则相对简单因为工控组态软件中一般都提供了相关设备的通讯驱动程序,例如西门子公司的S7系列PLC与工控组态软件WinCC之间可进行连接实现PLC与上位计算机之间的通讯。
下面介绍组态王6.0与FX-0N-60MR PLC之间通讯的实现步骤。FX-0N-60MRPLC采用RS232或RS422进行通讯,占用计算机的一个串行口。在不添加扩展卡的情况下可以使用编程口和计算机进行通讯。
、设备连接
利用PLC与计算机专用的F2-232CAB型RS232C电缆,将PLC通过编程口与上位计算机串口(COM口)连接,进行串行通讯。串行通讯方式使用"组态王计算机"的串口,I/O设备通过RS-232串行通讯电缆连接到"组态王计算机"的串口。
第二、设备配置
在组态王工程浏览器的工程目录显示区,点击"设备"大纲项下PLC与上位计算机所连串口(COM口),进行参数设置。
FX系列PLC编程口的通讯COM口参数设置:
在组态王浏览器目录内容显示区内双击所设COM口对应的"新建"图标,会弹出"设备配置向导"对话框。在此对话框中完成与组态王通讯的设备的设置。
利用设备配置向导就可以完成串行通讯方式的I/O设备安装,安装过程简单、方便。在配置过程中,用户需选择I/O设备的生产厂家、设备型号、连接方式,为设备指定一个逻辑设备名,设定设备地址(FX系列PLC在使用编程口进行通讯时,不需要设备地址)
第三、构造数据库
数据库是"组态王"软件的核心部分,在工程管理器中,选择"数据库\数据词典",双击"新建图标",弹出"变量属性"对话框。定义FX-0N-60MRPLC相应寄存器:
图2 交通信号灯的控制示意图
斜体字dddo、dddd、ddd等表示格式中可变部分,d表示十进制数,o表示八进制数,变化范围列于取值范围中。组态王按照寄存器名称来读取下位机相应的数据。组态王中定义的寄存器与下位机所有的寄存器相对应。如定义非法寄存器,将不被承认。如定义的寄存器在所用的下位机具体型号中不存在,将读不出数据。
第四、设计图形界面并建立动画连接
在组态王“画面”上创建十字路口红、黄、绿交通信号灯的控制示意图,见图2,建立启动和停止按钮,并将各个控制信号灯及启动和停止按钮与所建立相应变量关联,进行动画连接。
第五、系统运行
启动组态王运行系统TOUCHVIEW,运行交通信号灯的控制。将PLC开关指向“RUN”状态,按下启动按钮,观察交通信号灯系统的控制结果。实验结果表明,系统运行正常,动画效果良好。
5、结束语
PLC及PLC的多机联用与计算机的联网通信应用越来越多,它综合了计算机和PLC的长处,计算机作为上位机提供良好的人机界面,进行全系统的监控和管理,PLC作为下位机执行可靠有效的分散控制,利用工控组态软件实现PLC与上位计算机通信的方法简单易行,它降低了对用户的要求,大大缩短了设计周期,系统继承性较好,尤其对于大规模复杂控制系统来说,这当优点更为突出。
1.用户资料及系统方案
①该隧道窑全长106米,共有43个温度采集点,14个温度控制区,采用开关信号控制助燃风电磁阀以此实现对烧嘴的燃烧控制。
②该窑共有76点开关量信号(39入37出),58路模拟量信号(55入,3出)。
③用三台变频器风机分别控制排烟压力,助燃压力和急冷温度,还有其他一些辅助控制,比如气幕,推车,抽热,缓冷控制等,并且该窑所有电机都是热备连锁。
如此多的I/O,A/D信号如果采用进口PLC及A/D模块将会给系统成本带来很大压力。如果采用原有现场仪表和计算机控制系统将会使系统的稳定性,可维护性和可操作性大打折扣。基于以上分析,控制部分采用了科威第二代现场总线产品,选用了10台科威自产的第二代现场总线模块,分别是2台40点开关量PLC EASY-M2416R,5台24点混合型PLC EASY –M0808R-A44NB和2台热电偶型AD1216A模块,一台0-10V型AD1216模块。由于CAN总线技术及嵌入式PLC芯片组技术的应用,系统中的10台设备既能集中控制又能分散协作,主PLC除处理CAN网络通讯及与上位PC机通讯外还与一台40点EASY-M2416 PLC一起处理开关量信号。整个系统的运行状态通过人机界面(HITECH PW3261)监视,预留了中控PC接口。
科威EASY-M0808-A44NB混和型PLC在系统中的应用
系统中采用了五台科威混和型PLC,其基本参数为16点开关量I/O(8I,8O),8点模拟量A/D,4AI(0-55mv),4DO(0-20ma)其中四台用来控制14组控温区,每一组控温区分别对应有1路K,S或者B分度热电偶mv AD输入信号,两路燃气阀正,反转开关量输出信号。一台混合型PLC控制三台变频器 ,即两路排烟、助燃压力,一路急冷温度.系统中EASY-M0808-A44NB的输入信号有两类:热电偶0-50MV温度信号和0-20MA,量程-50—0KPA,0-50KPA压力信号。所有模拟量输入后经过PID运算,输出信号分别为每路燃气阀正反转开关量信号和4-20MA变频器控制信号。由上可知这五台混合型PLC的输入,输出信号类型多样,既有K,S,B分度热电偶mv信号,也有不同量程的压力ma信号,既有开关量,也有模拟量输出信号。下面就来介绍这款产品对以上信号的适应及控制功能的实现。
由于EASY –M0808R-A44NB是建立在高速CAN总线和公司自主研发的嵌入式PLC芯片组技术的应用基础之上,产品除了具有CAN总线连网功能外还具有梯形图编程设置功能。产品在底层编程设计时留有功能函数接口和系统控制字,用户可以结合自己工艺及设备要求通过对输入输出口串并联电阻及用梯形图编程来设置AI,DO为0-10V,4-20ma等标准信号,从而可以适应大多数传感器,执行器的输入输出要求。对于该窑温度控制,由于可以输入各通道分度号及温度---毫伏非线性表使得EASY-A44NB不仅适用常见的K,S,B分度热电偶,也可适用于其他一些不常用分度热电偶,比如T分度等。对于该窑压力信号通过对零点,量程设置及调用线性转换程序也满足了其不同量程的输入,输出要求。
结合梯形图PID及顺控,功能指令使得这台混合型PLC在各类型,各量程的模拟量信号控制中大显身手,并且其价格只相当于一台控制仪表,从而可以向下兼容覆盖部分控制仪表市场,增加了其广泛实用性和性价比 。据调查在一款控制产品上集成如此多的功能在尚属空白。
本文介绍了如何利用PLC可编程控制器的自动控制和逻辑运算的优点以及与人机界面的完美结合,使弯管半径及长度等成为可调参数,直接在人机界面上操作和改变PLC的程序及参数,达到灵活控制设备运行的目的。从而使设备操作变得更方便,更富有人性化。它充分体现了工控自动化在实际生产中的重要作用。
1、引言
弯管机是休闲用品及工艺装饰品生产行业中的重要设备之一,由于产品种类丰富,形状千变万化,相应弯管的形状、尺寸及大小半径各不相同,在以前生产中,主要有液压弯管机、手动弯管机、简易电动弯管机等,这对大批量生产以及产品尺寸的千变万化不相适宜。本文介绍的弯管机是根据实际生产需要,自主开发、研制而成,并已投入实际生产中,产生了显著的效益。
2、系统介绍
该弯管机的控制系统原理图如图1所示,主要由PLC、变频器、传感器、人机界面、主副电机等组成。该机的主体部位,由八组滚轮组成,如图2所示,一次可生产八根管子,提高了效率。主电机由变频器控制,通过HMI可调整滚轮的速度;管子弯曲半径由副电机通过涡轮副减速控制滑块下压和上升;弯管长度、半径及滚轮速度、滚压次数为调整参数,在人机界面上可以调整,非常方便,富有人性化,PLC内部程序是控制设备自动运行的关键部份。
3、控制模式
该机有手动运行模式和自动运行模式。
3.1手动运行模式
合上电源,在人机界面中选择手动运行模式,该模式为机器的调试或修理等特殊运行模式,分滚轮正转、反转、滑块上升、下降四种状态,分别相互独立操作。
3.2自动运行模式
合上电源,在人机界面中,选择自动运行模式,该模式为正常生产模式。根据需要调整好可调参数(弯管长度、半径、滚轮速度、滚压次数),按启动按钮,立即进行自动运行,变频器接收到频率参数,控制主电机从OHZ上升至该频率运行,传至滚轮,主副电机根据人机界面的调整参数和PLC内部程序运行,传至滚轮及滑块,通过编码器产生信号传至PLC,控制滚轮正反转,滑块下降、上升,以生产出合格的产品。
4、工作原理
如图2所示,滑块上升,放好管子,滑块下压到一定高度h,主电机带动滚轮转动,根据管子的长度L,由PLC计算出滚轮需转动X圈再反转X圈。根据弯曲半径R的大小,滑块分n次下压,滚轮重复n次循环动作完成产品。
生产时只需调整可调参数:管子长度L、管子弯曲半径R及重复滚压次数n等,由PLC内部程序,通过逻辑运算得出h、X等参数,根据主、副电机相对应的编码器所产生的脉冲信号自动控制设备的运行。
5、结束语
该设备的成功研制,解决了休闲用品及工艺装饰品的大批量生产和品种多样化的问题,显著地提高了生产效率。使操作变得更直观,富有人性化。
本文以EMS(EscortMemorySystems)的RFID射频识别读写器LRP830为例,分别介绍了可编程控制器及微机与RFID射频识别读写器进行串行通讯,从而读取标识数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过bbbbbbs多线程技术与RFID读写器实现串行通讯。文中给出了实例。RFID射频识别在我国的应用才刚刚开始,前景非常广阔。本文所述方法具有一定代表性,对于推动RFID射频识别技术在工业自动化等领域的应用,具有一定的积极意义。
RFID射频识别系统简介
RFID的全称是RadioFrequencyIdentification,即射频识别,它利用无线电射频实现可编程控制器(PLC)或微机(PC)与标识间的数据传输,从而实现非接触式目标识别与跟踪。
一个典型的RFID射频识别系统包括四部分:标识、天线、控制器和主机(PLC或PC),系统结构图见图1。
图1RFID射频识别系统结构图
标识一般固定在跟踪识别对象上,如托盘、货架、小车、集装箱,在标识中可以存储一定字节的数据,用于记录识别对象的重要信息。当标识随识别对象移动时,标识就成为一个移动的数据载体。以RFID在计算机组装线上的应用为例,标识中可以记录机箱的类型(立式还是卧式)、所需配件及型号(主板、硬盘、CD-ROM等)、需要完成的工序等。又如在邮包的自动分拣和跟踪应用中,可以在标识中存储邮包的始发地、目的地、路由等信息。
天线的作用是通过无线电磁波从标识中读数据或写数据到标识中。天线形状大小各异,大的可以做成货仓出口的门或通道,小的可以小到1mm。
控制器用于控制天线与PLC或PC间的数据通信,有的控制器还带有数字量输入输出,可以直接用于控制。控制器与天线合称读写器。
PLC或PC根据读写器捕捉到的标识中的数据完成相应的过程控制,或进行数据分析、显示和存储。
本文即以具有代表性的美国EMS(EscortMemorySystems)公司的13.56MHz无源RFID射频识别读写器LRP830为例,介绍了PLC及PC与RFID读写器进行串行通讯,从而获取标识数据,用于控制或数据处理的具体实现方法。
RFID射频识别读写器的命令集及串行通讯协议
以LRP830读写器为例,LRP830是EMS13.56MHz无源系列射频读写器中的一种,它的标识和天线可以在水下或高温腐蚀环境中正常工作,可以一次读写99个标识,大读写距离63.5cm。它带有两个串口,一个DeviceNet接口,4个DI隔离输入,4个DI隔离输出,保护等级IP66,NEMA4封装,非常适合于在工业自动化中应用。
LRP830读写器上的串口是合在一起的,通过专用电缆可以分接出COM1和COM2两个串口,两个串口作用不同,COM1用作通讯口,从PLC或PC接收命令并返回响应数据,可以配置为RS232、RS422或DeviceNet接口。COM2用于配置系统参数(如读写模式、波特率等)或下载系统升级程序。
LRP830可以与所有EMS的FastTrackTM系列无源标识结合使用,每个标识中可以存储48个字节的数据,还有8个字节用于存储只读的唯一的序列号(出厂前由厂方设定)。
LRP830提供了单标识读写命令集(见表1),多标识读写命令与此类似。
表1单标识命令集
每种命令可以有三种通讯协议:ABxS、ABxF、ABxASCII。表2是ABxS通讯协议持续读单标识命令的一个例子,其它命令与此类似。
表2ABxS协议持续读单标识命令举例
RFID读写器与PLC串行通讯
以EMSRFID读写器LRP830与GEFanucVersaMaxPLC的串行通讯为例。VersaMaxPLC的RS232串口与LRP830的COM1接线对应关系见表3。
表3VersaMax与LRP830读写器的串口接线对应关系
通过PLC控制RFID读写器读写标识数据的实现流程如图2所示。
图2PLC读写RFID标识数据的程序结构框图
以下是具体实现时要注意的技术细节:
1)LRP830与VersaMaxPLC的串口相连时,信号线要错线,即VersaMaxRS232口的TXD/RXD要接LRP830的COM1的RXD/TXD,LRP830与PC连接时则是直通的。
2)PLC使用串行I/O通讯协议与RFID读写器通讯。串口初始化、设置缓冲区、清除缓冲区、写串口、读串口状态等操作都是先通过一组BLKMOVWORD指令给COMMREQ的数据块赋值,执行COMMREQ指令完成的。例如,以下语句(见图3)通过RFID读写器写10个FF(46H)到标识中,从个字节写起。
图3PLC与RFID读写器串行通讯例程
3)要注意PLC写标识数据只需要执行写串口命令就可以了,而PLC读标识数据的过程则包含两步:一是PLC执行写串口命令,即写读标识命令到RFID读写器;二是PLC执行读串口命令,捕捉RFID读写器返回的数据。这是由于RFID读写器在接到读标识命令后,会返回读命令的响应信息到串口缓冲区,其中包含了读到的标识数据。
4)使用ABxS协议时,要注意命令字的MSB和LSB的顺序问题。RFID读写器与PLC通讯时,要将读写器指令的MSB和LSB颠倒一下,即LSB在前,MSB在后。例如图3中,第二个BLKMOVWORD指令的第三个输入IN3应为16#4AA,而非16#AA04。
5)利用读写器指示灯的变化辅助PLC程序调试。LRP830读写器的面板上有两排LED指示灯,其中,当“ANT”亮时,表示天线在执行读写操作;“COM1”亮时,表示串口1执行了写命令,“RF”亮时,表示有标识被读写且仍在读写范围内。 RFID读写器与PC串行通讯
仍以EMSRFID读写器LRP830为例。与PC机相连时,LRP830的COM1/COM2与PC机的9针串口
COM1/COM2的连接对应关系见表4。
表4LRP830的串口与PC串口连接对应关系
在PC机上开发串口通讯程序,可以使用现有的通讯控件(如VB的Mscomm),也可以使用编程语言结合bbbbbbsAPI实现。本文用Delphi6在bbbbbbs2000环境中,应用多线程技术实现了PC与RFID读写器间的串行通信。使用Delphi的优点是,Delphi对许多bbbbbbs底层API函数作了封装,简化了程序代码。使用多线程的优点是,程序编写比较灵活,串口监听线程不影响主线程其它任务的执行。程序结构框图见图4。
图4PC与RFID读写器串行通信程序框图
在具体实现上述思路时,要注意以下技术细节:
1)根据RFID读写器通讯协议的特点,读写器每执行一个主机发来的指令,无论是读标识还是写标识,都会返回一定字节的响应数据,用以确认命令已执行或返回标识中存储的数据。主机读或写标识数据都需要先写(串口命令)后读(返回的串口数据)。
2)为了使程序体现模块化的设计思想,易于调试和维护,可以把各种RFID命令预先存入命令数组中,而把主机对RFID串口的命令和捕捉RFID读写器命令响应编制成单独的子程序,在调用它之前,先调用命令字赋值子程序。
3)对主线程的说明:在主线程中用CreateFile函数建立串口事件,设置缓冲区和通信参数,创建串口监听线程。用WriteFile写串口函数完成通过RFID读写器写数据到标识中。部分程序如下:
hcom:=CreateFile(pchar(Whichcom),GENERIC_WRITEOrGENERIC_READ,
0,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);//产生串口事件
setupcomm(hcom,TOTALBYTES,TOTALBYTES);//设置缓冲区
getcommstate(hcom,lpdcb);
lpdcb.BaudRate:=BAUDRATE;//波特率
lpdcb.StopBits:=STOPBIT;//停止位
lpdcb.ByteSize:=BYTESIZE;//每字节有几位
lpdcb.Parity:=PARITY;//奇偶校验
setcommstate(hcom,lpdcb);//设置串口
Mycomm:=Tcomm2.Create(False);//创建串口监听线程
WriteFile(hcom,WriteBuffer,sizeof(WriteBuffer),lpBytesSent,0);//写标识命令
……
4)对串口监听线程的说明:
程序中用到的方法主要有Synchronize和Terminate。Synchronize是Delphi提供的一种安全调用线程的方法,它把线程的调用权交给了主线程,从而避免了线程间的冲突,这是一种简单的线程间同步的方法,可以省去用其它语言编程时需要调用的多个bbbbbbsAPI函数,例如createEvent(创建同步事件),Waitforsinglebbbbbb(等待同步事件置位),resetevent(同步事件复位),PostMessage(向主线程发送消息)等。用Delphi编写多线程通讯程序的优点是显而易见的。例如以下语句即可实现串口监听线程:
While(notTerminated)do//如果终止属性不为真
Begin
dwEvtMask:=0;
Wait:=WaitCommEvent(hcom,dwevtmask,lpol);//等待串口事件
ifWaitThen
begin
Synchronize(DataProcessing);//同步串口事件
end;
end;
上述程序一旦检测到串口事件,就调用DataProcessing方法读串口数据,并写入数组,供程序其它部分调用,还要检测何时退出线程,程序如下:
procedureTmainbbbb.DataProcessing
begin
bbbbb:=bbbbbCOMMERROR(hcom,lperrors,@comms);//清除串口错误
ifbbbbbThen
Begin//处理接收数据
ReadFile(hcom,ReadBuffer,Comms.cbInQue,LPReadNumber,0);
ReceBytes[I+ArrayOffset]:=ReadBuffer[I];
//读串口缓冲区数据并写入数组
gameover:=(ReceBytes[I+ArrayOffset-1]=Byte($FF))
and(ReceBytes[I+ArrayOffset]=Byte($FF));//终止条件
ifgameoverthenterminate;//退出线程
……
End;
End;
其中,Terminate将线程的Terminated属性设置为True。线程一旦检测到Terminated属性为True,就会结束线程,去执行Onterminate事件,在Onterminate事件中对采集到的RFID标识数据进行处理。由于RFID读写器的ABxS协议的命令响应的后两个字节都是FF,可以将收到连续的两个FF作为终止线程的条件之一。
程序应用举例:
以持续读标识中所有48字节数据命令为例,在程序中用WriteBuffer数组保存该命令,对WriteBuffer数组的各个元素赋值如下:
WriteBuffer[0]:=Byte($AA);WriteBuffer[1]:=Byte($0D);//连续读标识命令字头
WriteBuffer[2]:=Byte($00);WriteBuffer[3]:=Byte($00);//从个字节开始读
WriteBuffer[4]:=Byte($00);WriteBuffer[5]:=Byte($30);//读48个字节数据
WriteBuffer[6]:=Byte($00);WriteBuffer[7]:=Byte($02);//延时2秒
WriteBuffer[8]:=Byte($ff);WriteBuffer[9]:=Byte($ff);//连续读标识命令字
执行持续读标识命令后,程序以WriteBuffer数组写串口,RFID读写器执行此命令,并返回响应数据。
图5持续读标识命令执行结果
从图5窗口中可以看到,前4个字节AAODFFFF就是LRP830读写器对持续读命令的确认信息,是数据报文头AAOD和标识中48个字节的数据(每字节数据前加00),后是数据报文尾FFFF。
结束语
本文介绍了可编程控制器及微机与RFID射频识别读写器进行串行通讯,从而获取标识中的数据的具体实现方法:PLC通过串行I/O通讯协议与RFID读写器实现串行通讯,PC通过bbbbbbs多线程技术与RFID读写器实现串行通讯。本文所述方法具有通用性,对于其它厂家的PLC和RFID系统也有一定的参考价值。RFID射频识别技术在我国工业自动化等领域的应用才刚刚开始,前景非常广阔。本文对于促进该技术的推广应用具有一定的积极意义。