JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
在某个使用GE 9030系列CPU 350的老设备的信息化改造中,我们需要把其连接到以太网中去进行设备状态的监控,同时我们还需要通过串口或者以太网把数据传递给一个新增的PLC控制系统。由于该设备CPU上的串口已被配置为和一个定制化的工控机通信,我们只能使用该设备上剩余的一个IC693CMM321模块进行以太网通信。我们要对接的系统和PLC都仅支持常见的Modbus RTU / TCP协议。但是,通过查阅GE手册,我们发现CMM321只有在后缀为FH及更高的版本后才支持Modbus TCP通信,而现场老版本的CMM321模块仅支持GE的SRTP通信协议。所以在这里,我们使用了HORNER的HE-XE1E0控制器作为了一个数据网关,把通过SRTP协议获取的数据转换成Modbus RTU / TCP协议供其他设备采集。
本文以一个实际项目为例,主要介绍了GE 90-30系列PLC中IC693CMM321模块的SRTP通信,同时简单介绍了HORNER控制器的Modbus RTU Slave,Modbus TCP Server通信。
本文约3000字,预计阅读时间12分钟。
PART A/GE IC693CMM321模块的SRTP通信
SRTP(Service Request Transport Protocol)协议是GE PLC上常见的一种基于以太网的通信协议,常用于GE PLC之间的数据交互,或者是组态软件、触摸屏等对GE PLC的访问。SRTP使用TCP 18245端口。在本案中,GE PLC作为SRTP的Client,HORNER控制器作为SRTP的Server,GE PLC会把需要监视的数据写入到HORNER控制器中去。
1. 首先,我们使用VersaPro软件打开GE PLC的程序,进入硬件配置中,对CMM321模块进行配置。
注意,
本例中CMM321位于Rack 0的7号槽,这个槽位我们会在后面的程序中用到。双击CMM321模块,主要对IP地址及状态寄存器进行配置,这里的以太网状态寄存器会占用从%I81开始的连续80个Bit。我们在后面会使用其中的一些对以太网通信状态进行判断。
2. 然后,我们开始逻辑部分的编辑。在GE PLC的SRTP通信中,一般是在Client端使用逻辑中的COMMREQ指令进行数据读写控制,而在Server端,是不需要编写逻辑指令的。COMMREQ指令如下:
在本案中,GE PLC是作为SRTP的Client,把连续61个字的数据写入到SRTP Server中(本案里是HORNER的控制器,也可以是其他GE PLC)。
3. 了解完COMMREQ指令的大体结构,下面我们就来考虑那个命令块是如何来定义和使用。该命令块可以分为两个部分,前7个字我们可以认为是通用部分,其定义如下:
根据通道命令代码的不同,从WORD7之后,其余通信参数的定义是不同的。在本案中,我们使用2004建立写入通道把本地CPU从%R1001开始的连续61个字,写入到远程控制器的从%R1001开始的61个字中,每200ms写入一次,远程控制器的IP地址是192.168.0.222。根据上述要求,其余通信参数定义如下:
4. 通过上面的梳理,我们可以看出,当使用COMMREQ通信时,只需要通过一个脉冲触发该功能块,即可以激活通信,然后通信就会按照设定的参数进行周期性的读写操作。那么在编程时,我们只要考虑到当COMMREQ块如果激活不成功或者当以太网通信中断后需要重新激活即可。我们可以使用以下两个状态寄存器来对网络和功能块的状态进行判断。
5. 最后,我们可以在写入的61个字的数据包中布置一个心跳字,当Server端持续一定时间检测到该心跳字不变时,则可以认为通信故障。
GE PLC程序见下图:
PART B/HE-XE1E0的SRTP通信和RTU/TCP通信
本次使用的HE-XE1E0是HORNER的小型一体化控制器,本体内置2个串口,1个以太网口,1个CAN总线接口。由于本次没有IO需求,仅做网关用途,我们没有选择内置IO点的型号。
在本案中,HORNER控制器的配置非常简单,只需要进入Cscape编程软件中的Hardware Configuration硬件配置里,在ETN1以太网配置中勾选上SRTP Slave和Modbus Slave即完成了对SRTP和Modbus TCP功能的设置。
刚才我们说过,在SRTP通信时,Server端一般不需要进行逻辑编写。但有的朋友可能会奇怪,我们还没有对要访问的HE-XE1E0控制器的内部寄存器的Modbus地址进行映射,那上位机如何确定要访问寄存器的Modbus地址呢?原来,在HORNER控制器中,已经对大部分的常用寄存器地址进行了Modbus地址映射,用户不需要再进行单独的映射。在下表中,我们可以看到,比如对于输出点Q1,其已经映射到线圈类型存储器地址000001上;或者对于16位的%R寄存器,其被映射到40513,43001和410001这3个地址开始的不同长度的连续地址段上,我们可以根据需要直接访问这些地址来读写不同的寄存器。
最后,我们还需要HORNER控制器作为Modbus RTU的从站,我们只需要在主程序中添加如下程序,就可以把控制器的MJ2口设为Modbus RTU的从站,通信参数为站地址1,485半双工,9600,N,8,1,进行RTU通信了。
参考资料:
1.GFK-1541B TCP/IP Ethernet Communications for the Series 90™ PLC
作
者
张伟宁:
就职于浩纳尔(天津)自动化科技有限公司,负责美国HORNER一体化控制产品的应用和支持工作,对HORNER全系产品有深入了解。