zoukankan      html  css  js  c++  java
  • AB PLC LOGIX 5000控制器之间通过MSG实现通信


    前言:AB PLC控制器系列很多,主要分为小型MicroLogix和Micro800系列、中型CompactLogix系列、大型ControlLogix系列,而大、中型又统称为LOGIX 5000控制器。在项目实行过程中,控制器之间数据交互是经常涉及到的课题,LOGIX 5000控制器之间数据交互主要有两种方式,一是通过MSG指令,二是生产者/消费者标签。今天,本文介绍的是第一种方式,而选用的控制器为CompactLogix与ControlLogix控制器,非常具有代表性,希望能帮助有需要的朋友。



    一、实现功能

    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指令实现数据交互


    二、软件环境

    1. 操作系统:Windows7 旗舰版 SP1 64位
    2. 编程软件:Studio 5000 V30.00.00
    3. 通信软件:RSLinx Classic Gateway 3.90.00



    三、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数据立即发生变化与之相同,说明通信成功.



    四、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数据立即发生变化与之相同,说明通信成功.





    五、资料下载

    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通信路径的配置,请自行研究,不在累述。


    ________________________________________
    【AB PLC工作室】
    微信公众号ID:abseme

    坚持原创 注重实用
    ________________________________________

    如果本文,对您有一点帮助或启示。
    请分享给更多的朋友,对小编以示鼓励,谢谢!

  • 相关阅读:
    三个心态做人做学问 沧海
    成功走职场要找准自己的"快捷键" 沧海
    免费离线下载 拂晓风起
    Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录) 拂晓风起
    无法读取mdb 如果连接不了ACCESS mdb文件,就尝试安装MDAC 拂晓风起
    Netbeans 使用 Hibernate 逆向工程 生成hbm和pojo 拂晓风起
    如何点击单选框 radio 后面的文字,选中单选框 拂晓风起
    Java 连接access 使用access文件 不用配置 拂晓风起
    mysql下如何执行sql脚本 拂晓风起
    Hibernate配置access Hibernate 连接 access 拂晓风起
  • 原文地址:https://www.cnblogs.com/abseme/p/12544149.html
Copyright © 2011-2022 走看看