
| 基于Labview虚拟对象的PLC控制实现 | |
| 摘 要:应用图形化编程语言LabVIEW,根据松下FP1可编程控制器通讯协议,开发出FP1PLC与Labview通讯驱动程序,并以Labview为平台构建PLC虚拟控制对象:十字路口交通灯、运料小车等,实现PLC对虚拟对象的控制。 关键词:LabVIEW;PLC控制;虚拟对象;串口通讯 实现PLC对虚拟对象的控制,一方面可摆脱实物模型的,另一方面也可大大节约实物模型的制作本钱,文献[1]利用Turbo C开发了几套PLC控制对象的仿真模型,但需要编制一定的程序才能实现。LabVIEW是美国国家仪器公司开发的虚拟仪器开发平台软件,功能强大灵活,广泛应用于自动丈量系统、产业过程自动化、实验室仿真等各个领域[2-4]。文献[5]虽利用Labview开发出了一套PLC控制对象:虚拟小车,但PLC与上位PC机间数据交换还需单片机8052作为信号转换器。本文利用Labview构建十字路口交通灯、运料小车等虚拟控制对象,根据松下FP1 PLC通讯协议,开发出了Labview与FP1PLC进行串口通讯的驱动程序,有效地实现了PLC对虚拟对象的控制,从而可以摆脱硬件模型。 1 FP1 PLC与Labview的串口通讯 FP系列PLC通讯是遵照松下电工专用通讯协议MEWTOCOL[6]来实现的。计算机通过MEWTOCOL—COM协议中的命令,可对PLC进行读、写和监控等。 1、多接点读命令(RCP) 读发送帧格式如下:
2、多接点写命令(WCP) 写发送帧格式如下:
要实现PLC对虚拟对象的控制,题目的关键是要根据FP1 PLC通讯协议,利用Labview开发出PLC与Labview的通讯驱动程序。现结合虚拟交通灯模型,分别以多接点读命令及多接点写命令为例加以说明。 1.1 多接点读命令
图1 初始化串口框图程序 读取PLC输出继电器Y1、Y2、Y3状态值可分为以下三个步骤: 第一 初始化串口:串口初始化是通过Serial Port Init模块来实现,设置端口号为0,波特率为9600bps,数据位为8位,停止位为1位,奇偶校验为奇校验,框图程序如图1所示。 第二 向PLC发送多接点读命令的命令参数:向PLC发送多接点读命令命令参数是通过Serial Port Write模块来完成的,其框图程序如图2所示。框图程序左侧部分的功能为产生输进命令的BCC校验码,MEWTOCOL-COM协议采用异或校验码,BCC校验码产生规则为发送方把所有待发送的ASCII码字符,从头到尾按位作异或运算,把结果作为BCC校验码发出。Number To Hexadecimal String子VI将输进数字转换成规定字节数的字符串。 第三 读取PLC反馈信息:其框图程序如图3所示,读取PLC反馈信息采用Serial Port Read模块。在读取数据之前,需应用Bytes at Serial Port模块查询当前串口接收缓冲区中的数据字节数,并将该数值存放于byte count中。假如Serial Port Read要读取的字节数大于缓冲区中的数据字节数,Serial Port Read操纵将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。图3中的Subset String函数的功能是从Serial Port Read模块输出的字符串中提取控制十字路口交通灯所需输出继电器状态值的字符,Scan From Sting函数的作用是将Subset String函数所提取的字符串转换成规定类型的数据。为了能够控制十字路口交通灯的亮灭,将其转换成可控制开关变量的Boolean型数据。 1.2 多接点写命令 对于急车强通讯号的控制,可采用外部硬开关控制,也可在用LabVIEW构建的虚拟模型中设置两个开关来进行控制。此控制方式需要将PLC程序中的急车强通讯号(X1,X2)改为中间继电器。当LabVIEW前面板的急车强通开封闭合时,就将强通开关的状态写进PLC中间继电器R3,R4,使程序进进强通运行状态,其运行结果在LabVIEW前面板显示。向中间继电器写进数据的部分框图程序如图4所示。串口初始化部分与多接点读命令相同。
图2 向PLC发送多接点读命令命令参数框图程序 图3 读取PLC反馈信息框图程序 图4 向PLC中间继电器写进数据 2 十字路口交通灯虚拟对象的控制实现
图5 东西方向有急车时的前面板状态 为了使基于LabVIEW构建的模型能够正确模拟十字路口交通灯的正常运行,应将所有的读取和写进操纵编辑成可为顶层VI调用的子VI程序。PLC控制急车强通十字路口交通灯的子VI有:读取用于控制东西方向红灯、黄灯的输出继电器状态值的子VI 2A1;读取控制东西方向绿灯和南北方向红灯的输出继电器状态值的子VI2A2;读取控制南北方向黄灯和绿灯的输出继电器状态值的子VI2B1;用于写进反映急车强通讯号的子VIR34。最后将这些子VI组合到一起,并与前面板的交通灯相连就可以实现一个完整的十字路口交通灯模拟控制系统。 图5是在东西方向有急车强通时的前面板状态图。此时,东西方向的急车强通开封闭合,同时东西方向来车的车顶警示灯变亮。呼唤后东西方向的交通灯变绿,急车强行通过;南北方向的红灯变亮,以方便急车通过。急车强通讯号一旦为OFF,灯的状态即转为来车方向的绿灯闪3次,随后向下顺序运行。 3 小车自动选向、定位系统的控制实现 小车模型前面板的设计包含一个运行边框、运料小车和几个用来检测小车位置的光电开关,是利用簇结构编辑的。对于小车运行的动态效果处理,采用定义属性节点的方法,对位置属性节点进行加减常数或者加减0运算来实现小车的运行、停止。 图6为小车模型的部分框图程序。子VI SE的功能是用来读取PLC发出的控制信号,即用来判定小车左行、右行还是停止,当PLC发出正转(“2”)、反转(“1”)或停止(“0”)信号时,通过Case 结构将程序转到对应的位置上,实现位置属性节点加、减常数或0。子VI R的功能用来检测小车位置,即通过光电开关来判定小车位置,并将位置信号传送给PLC中间继电器,再通过PLC程序控制,以此实现小车的定位。
图6 小车模型框图程序 4 结束语 本文以Labview为平台构建了十字路口交通灯、运料小车虚拟控制对象,基于LabVIEW串口通讯函数,开发出LabVIEW与PLC通讯驱动程序,最后实现了PLC对十字路口交通灯、运料小车虚拟对象的控制,控制效果良好,且具有很好的直观性,已应用于PLC实验教学。以此为基础,可开发出适应面更为广泛的虚拟产业控制对象,实现以PLC为核心的产业控制系统的虚拟设计、调试,为机电一体化产品的虚拟样机开发提供技术基础。 本文作者创新点:根据松下FP1可编程控制器通讯协议,基于LabVIEW开发出FP1PLC与Labview通讯驱动程序,并成功实现PLC对基于LabVIEW虚拟对象的控制。 | |
