杜宝江,过奕君,吴恩启,乔俊伟,黄正铭
(1. 上海理工大学 机械工程学院,上海 200093;2. 上海光华印刷机械有限公司,上海 200436)
印刷机械设备一种复杂的机械设备,印刷机械一旦有故障,就需要有专门的技术人员甚至工程师参与其中,这样就大大增加了设备供应商的经济成本,制约了企业的扩大再生产。设备供应商为了减少生产成本、节省人力资源,通常都通过基于无线互联网技术的远程通信技术构建机械设备远程监测系统[1],对远程印刷机械设备的工业控制设备(三菱FX系列PLC)进行远程访问或者对其内部软元件进行定时扫描[2],来获得印刷设备的各个关键部位的数字量或者模拟量的值。根据这些值对印刷设备的运行状况做整体的评估。
远程对工业控制设备内部软元件进行访问时,通常会有延时的情况出现,出现延时的原因大致分两种:无线网络通信延迟和通信规约限制造成的延迟。无线通信网络技术现在一般都采用市场上最为先进的3G无线网络技术。3G无线互联网技术的传输速率可达2Mbps~3.1Mbps,与传统的无线网络相比,大大减缓了时间的延迟[3]。本文主要分析的是通信规约限制造成的延时。
目前远程监控系统已近日臻完善,其总体的网络结构也不外乎包含以下三部分:监控中心端网络、介质传输网络和制造现场端网络[4]。
1)监控中心端网络主要是局域网网络构成,局域网中的可编程控制器的状态数据是通过公网服务器得到的。
2)介质传输网络是指传输远程可编程控制器的数据通过该网络传输给本地的监控中心端。介质传输网络是有3G网络所提供的网络,它是维系本地监控中心端和远程现场端的纽带。
3)制造现场端网络是通过串口线RS232或者RJ45双绞线与介质传输模块进行连接,通过串口线或者双绞线完成对可编程控制器数据的读取和修改。
网络链路结构图如图1所示。
三菱FX系列PLC是目前比较流行的一种PLC,占有比较高的市场份额[5]。本研究中使用的三菱PLC的型号是FX2N-128MR-001。
FX2N系列PLC具有两个编程口,分别是圆形编程接口和扩展板接口。圆形编程接口一般会被占用,连接手持编程器、计算机或者触摸屏。扩展板接口可以连接三种扩展板卡:FX2N-232-BD、FX2N-422-BD、FX2N-485-BD。
图 1 远程监测网络结构链路图
此研究中选用了不耗PLC电源能够连接多种设备的FX2N-232-BD板卡[6]。
将FX2N-232-BD板卡安装在扩展功能口处,需要通过螺钉固定在扩展口处。然后用一条标准的RS232串口线连接在介质传输模块的串口接口上面。
由于远程通讯是通过介质传输模块进行数据传输的,三菱FX系列PLC通过FX2N-232-BD板卡进行通讯采用的是无协议方式,所以必须要知道PLC的数据传输格式即报文格式。计算机向远程PLC发送的报文格式[6],如图2所示。
图 2 发送命令的报文格式
报文中各个控制字符的含义具体如表1所示。
表1 控制字符的含义
计算机与远程FX系列PLC的通信时通过“0”、“1”、“7”、“8”四个命令码对PLC内部的软元件进行扫描。具体如下所述:
1) “0”表示读取软元件的内部的状态值,可有效读取的软元件有X、Y、M、S、T、C、D;特别地,表2中的DATA在此命令中只包含两部分内容,即读取特定软元件的起始地址和位数。
2) “1”表示向软元件写入新的值,即更改软元件寄存器的状态值或者模拟量的值,可有效写入值的软元件有X、Y、M、S、T、C、D;特别地,表2中的DATA在此命令中包含三部分内容即写入单元的首地址、写入的位数和写入的新值。
3)“7”表示强制位软元件的内部的状态值为“ON”,可强制的有效的软元件有X、Y、M、S、T、C;特别地,表2中的DATA在此命令中值的是位地址。
4)“8”表示强制位软元件的内部的状态值为“OFF”,可强制的有效的软元件有X、Y、M、S、T、C;特别地,表2中的DATA在此命令中值的是位地址。
对PLC的读写操作均是对PLC内部存储单元的操作,所以如果想要完成这些操作,必须要知道软元件的地址。三菱FX系列PLC的内部软元件的地址除了特殊寄存器以外不能够重新被编辑,其他都可以被重新分配单元内容,但是不同的内存区域只能存放特定软元件的值。
各软元件的地址按照位地址和字节地址有如下的函数式。
2.4.1 FX系列PLC中位地址的内存地址
1)辅助继电器M的内存地址:
2)计时器T的内存地址:
3)计数器C的内存地址:
4)输入设备X的内存地址:5
)输出设备Y的内存地址:
对于以上各计算式有以下注释:
AddB:位元件的地址;
i:各个软元件编号,8进制数;
Hex[i]:将数字i转换为16进制数;
Dec{i}:将数字i转换为10进制数。
2.4.2 FX系列PLC中字地址的内存地址
1)数据寄存器D的内存地址:
2)计数器C的内存地址(16位存储):
3)计数器C的内存地址(32位存储):4)计时器T的内存地址(16位存储):
对于以上各计算式有以下注释:
AddY:位元件的地址;
i:各个软元件编号,8进制数;
Hex[i]:将数字i转换为16进制数;
Dec{i}:将数字i转换为10进制数。
根据2.4.2所介绍的内容,如果我们要想知道某一个软元件的内存地址,只需要将该软元件的编号(注意进制之间的转换)代入到(1)~(9)之中对应的公式即可。注意,最后的地址是以十六进制形式出现的。
远程对FX系列PLC进行操作时,为了采取或者扫描可编程控制内部软元件数字量或者模拟量的值,一般采用Mx component组件的动态库来进行数据的通信。
通过这种方法将会大大增加通信时间的延迟。
首先在对远程可编程控制器进行通信之前,Mx component组件中的ActOpen()函数会与远程的PLC有一个对话验证的过程,如表2所示。
然后,当对一个软元件的模拟量或者数字量进行更改时,远程必须要向远程的PLC发送三次相同的指令之后,才能完成更改软元件值的动作,这相当于用了三倍的时间来完成更改PLC软元件的值。
实验数据表明正常连接上远程的可编程控制器需要花费大约40秒的时间。大约每一次的对话与响应会花费1秒多的时间。
表2 向远程请求连接指令
利用Mx component组件访问远程可编程控制器的结构图如图3所示。从图中我们可以看出在远程对可编程控制器进行扫描或者访问的时候,可以省略掉对话部分,节省时间,但为了保证在远程与可编程控制器时,可编程控制器时候在线,所以采用了发送测试指令的方法。当对远程可编程控制器进行软元件量得修改(强制ON/OFF或者修改软元件值)时可以直接用一条指令,完成相应动作。
从图3可以看出,在两个虚线框处即“连接请求”和“更改软元件值”两处发送的指令没有必要或者反复。可以将第一处虚线框里面的内容更改为“发送1条测试指令”。第二处虚线框处更改后的内容,如图4所示。
更改后的局部结构图,如图4所示。
通过以上的分析,我们可以得出结论:直接向远程的可编程控制器发送如图1的报文格式。
编写合格的报文格式可以运用各种主流的编程平台进行编译,例如C++, C#, VB, .NET等编程工具都能够完成相应的要求,类似的文献比较多,编译方法比较接近,比较简单。
图3 利用Mx Component组件访问远程PLC
图4 更改后的访问PLC结构图(部分)
按照图4的更改方式,经过反复的实验表明,在无线网络的因素和计算机本身的因素恒定不变的情况下,通过向PLC发送标准的数据报文格式,不仅能够完成操作PLC的任务,而且还能够获得快速的响应,与通过Mx component组件与远程PLC进行通信相比,大大节省了时间,特别是在远程访问PLC时体现的尤为突出。通过Mx component组件向远程PLC某一软元件做读/写操作所花费的时间大约是1.1s~1.2s的时间,通过直接向远程PLC发送数据报文向远程PLC某一软元件做读/写操作所花费的时间大约是0.7s~0.9s的时间。两种方法比较后可知,后者比前者节省大约36.3%~25.0%的时间。
通过对FX系列PLC进行的上述通信延迟技术的研究可以显著缩短监控中心对远程可编程控制操作的响应时间,这在远程监控与维护机械装备方便具有较高的应用价值。该研究内容不仅可以运用于三菱FX系列的工业控制产品中,而且对对其他厂商工业控制设备的远程维护研究也有借鉴价值。该研究内容已经应用于上海光华印刷机械厂的远程维护项目中,效果良好。
[1] 沈苑, 陈晓荣, 施展. 基于GPRS技术的远程数据采集与分析系统[J], 上海理工大学学报, 2007, 29(3):281-284.
[2] 王再河, 赵侠. 基于PLC的气体激光器智能远程控制系统[J], 激光与红外, 2006, 36(12): 1133-1135.
[3] 邢丽丽. 基于3G技术的远程辐射应急监测系统研究[J],核电子学与探测技术, 2010, 30(3): 446-450.
[4] 袁池, 楮亚萍, 谷兴才, 吕恬生, 宋立博.远程监控与维护系统及其在PC-PLC网络上的实现[J], 上海交通大学学报, 2003, 37(3): 451-453.
[5] 柳剑, 陈於学, 杨曙年.基于编程口的三菱PLC与PC机串行通信实现[J], 自动化仪表, 2010, 31(11): 31-33.
[6] Sun Jian, Lu Peng, Fu Yaqiong, Liu Ruixiang, Chen Le.The implementation and application of programming port communication between industry PC and Mitsubishi FX series PLC[J] .Intelligent System and Knowledge Engineering, 2008, 3(1): 1324-1327.