前言:AB PLC控制器系列很多,主要分为小型MicroLogix和Micro800系列、中型CompactLogix系列、大型ControlLogix系列,而大、中型又统称为LOGIX 5000控制器。在项目实行过程中,控制器之间数据交互是经常涉及到的课题,LOGIX 5000控制器之间数据交互主要有两种方式,一是通过MSG指令,二是生产者/消费者标签。今天,本文介绍的是第一种方式,而选用的控制器为CompactLogix与ControlLogix控制器,非常具有代表性,希望能帮助有需要的朋友。
01
实现功能
1. CompactLogix控制器:1769-L33ERM,IP地址:192.168.1.20
2. ControlLogix控制器:1756-L72+1756-EN2TR,IP地址:192.168.1.10
3. 网络连接:1769-L33ERM与1756-L72通过网线或交换机连接
4. 实现功能:两台控制器之间通过MSG指令实现数据交互
02
软件环境
1. 操作系统:Windows7 旗舰版 SP1 64位
2. 编程软件:Studio 5000 V30.00.00
3. 通信软件:RSLinx Classic Gateway 3.90.00
03
MSG编程
在CompactLogix端实现
1. 打开Studio 5000软件,新建项目名称为“CMP”,控制器选择1769-L33ERM,版本为30,如下图所示,已经创建好的项目.
2. 在项目CMP的控制器标签,新建4个标签:
(1) MSG_Rd,数据类型MESSAGE,从1756-L72中读取数据的通信指令结构体;
(2) MSG_Wr,数据类型MESSAGE,把数据写到1756-L72的通信指令结构体;
(3) Read_tag,数据类型DINT[5],存储从1756-L72读取的数据;
(4) Write_tag,数据类型DINT[5],把这五个数据发送到1756-L72.
3. 再次打开Studio 5000软件,新建项目名称为“CTL”,控制器选择1756-L72,添加以太网通信模块1756-EN2TR,命名为EN2T, 并在控制器标签里面创建2个标签,Write_tag,Read_tag,数据类型均为DINT[5],将程序下载到控制器并在线.
4. 在EXCEL中,编制数据通信协议表,这步很重要,尤其是大量数据交互时,编程通信表让数据清晰明了,建议大家在程序开发时,养成多用EXCEL的习惯.
5. 在项目CMP(1769-L33ERM)里面调用MSG指令,编写读取、发送数据的程序,详见下图.
6. 指令MSG_Rd用来1769-L33ERM读取1756-L72里面的数据,详细配置见下图:
(1) Message Type:选择CIP DataTable Read,从另一控制器中读取数据;
(2) Source Element:源对象,填写通信伙伴中的标签起始地址,本文为1756-L72中的Write_tag[0];
(3) Destination Element:目标对象,填写本地控制器存储数据标签起始地址,本文为1769-L33ERM中的Read_tag[0];
(4) Number of Element:交换数据的数量,本文为5,注意:Source 和 Destination 的类型必须匹配;
(5) 通信路径:2,192.168.1.10,1,0
7. 指令MSG_Wr用于1769-L33ERM发送数据到1756-L72,详细配置见下图:
8. 功能测试,将项目CMP中的程序下载并在线,在CMP标签Write_tag写入数据,控制器CTL中的标签Read_tag数据立即发生变化与之相同;在CTL标签Write_tag写入数据,控制器CMP中的标签Read_tag数据立即发生变化与之相同,说明通信成功.
04
MSG编程
在ControlLogix端实现
1. 在项目CTL(1756-L72)控制器,再创建2个标签:
(1) MSG_Rd,数据类型MESSAGE,从1769-L33ERM中读取数据的通信指令结构体;
(2) MSG_Wr,数据类型MESSAGE,把数据写到1769-L33ERM的通信指令结构体.
2. 编写通信程序,调用MSG指令,与在项目CMP的指令完全相同.
3. 指令MSG_Rd用来读取1769-L33ERM数据,详细配置见下图:
(1) Message Type等参数与CMP程序配置相同,请参考前面表述;
(2) 通信路径:EN2T,2,192.168.1.20,1,0
4. 指令MSG_Wr用来发送数据到1769-L33ERM,其中Message Type等参数与CMP程序配置相同,请参考前面表述,通信路径:EN2T,2,192.168.1.20,1,0(注意:符号为英文符号,前面也是).
5. 功能测试,将项目CTL中的程序下载并在线,在CMP标签Write_tag写入数据,控制器CTL中的标签Read_tag数据立即发生变化与之相同;在CTL标签Write_tag写入数据,控制器CMP中的标签Read_tag数据立即发生变化与之相同,说明通信成功.
05
资料下载
1. MSG指令的应用非常广泛,不仅限于LOGIX 5000控制器之间进行数据交换,同样适用于LOGIX 5000控制器与其他系列控制器.
2. MSG指令,其难点在于通信路径的设置,本文案例就非常典型.
3. 如果,你需要了解更多关于MSG指令的详细说明,请下载以下官方资料:
《1756-rm003_-zh-p》,LOGIX 5000通用指令集,中文,2018年3月《1756-pm012_-en-p》,LOGIX 5000 Message指令,英文,2018年12月
4. 下载方法:点击左下角“阅读原文”,提取码:9zx3
结语:综上所述,本文详细介绍了AB LOGIX 5000控制器之间通过MSG指令交互数据,而通信伙伴选用的具体代表性的CompactLogix与ContolLogix控制器,其难点在于通信路径的配置,大家在配置的时候需要注意。另外,CompactLogix控制之间、ContolLogix控制器之间进行数据交互,其MSG通信路径的配置,请自行研究,不在累述。
请分享给更多的朋友,对小编以示鼓励,谢谢! |