为什么写这篇文章呢? 昨天一圈内大佬聊起来了他们一个改造项目,原来两套SLC500系列PLC互相通讯,由于SLC系统的备品备件很难买到了,因此将其中一套升级到了ControLogix系统,但是问题发生了,原来的两套SLC是通过MSG进行通讯的,那现在换成了ControLogix后,由于Contrologix用的是CIP标签做变量,而SLC是通过文件形式关联变量;那这个怎么实现呢?
任务:写入N10的5个整型数到Contrologix标签
说明:任何对MSG的修改,都需要停止CPU进行,不可以在线进行。
由于Contrologix没有像SLC一样的N文件或者F文件,那我们第一步需要做一个Mapping映射表;我们必须将SLC地址映射为一个数组;比如FromSLC[5],数据类型Int:
接下来,我们将FromSLC映射为N文件,文件序号为70,在RsLogix5000编程环境中菜单栏选择Logic-Map PLC/SLC Message
接下来,将FromSLC数据映射为N70文件,则FromSLC[0]-FromSLC[4]映射为了SLC地址,N70:0 – N70:4.
保存文件后,下载到Contrologix 处理器。
至此,Contrologix地址文件映射工作就做完了。
本部分工作在RsLogix500编程环境内操作,首先我们建立MSG指令的控制文件,右键点击Data Files选择New(新建)
文件号我们设置为#9,数据类型Integer,命名为MGCTRL(可根据项目需要命名),
接下来我们再新建一个数据文件,用于给Contrologix传送数据,我们将其设置为#10文件,数据类型为integer, 命名为ToLogix,
同时我们给N10:0 – N10:4随机赋值,任意5个数,用于测试。本文设置45,55,65,75,85.
接下来我们在RsLogix500里进行MSG编程设置,所有的MSG指令都需要通过脉冲进行触发,因此我们先建一个500ms的脉冲。
我们通过T4.0一个500ms脉冲进行MSG指令执行的触发。脉冲做好新建一个MSG功能块,MSG类型设置为Peer-To-Peer,控制字选择,N9:0,共需要14个字,N9:0- N9:13为该MSG指令的状态字。
点击Setup Screen,可以对MSG进行设置如下:
通讯指令:设置为500 CPU Write(SLC 控制器对外写)
Channel:通讯通道,本位为以太网通讯,因此设置为“1”
数据地址:写到目标设备的那个地址?本文设置为N70:0(即前文的FromSLC[0]).
MultiHop:如果和远端设备通讯,MultiHop需要设置为“Yes”。
可在线查看MSG状态,是否有错误,错误信息是什么?
说明:以上参数的详细说明,可参考SLC MSG帮助文件,设置面板点击F1,即可出现所有参数说明。
以上参数设置完毕以后,切换到MultiHop也,对访问路径进行设置:
从SLC控制器的Channel 1通道去访问192.168.0.91的1756-EN2T所在的Contrologix系统,并指向槽号为“0”的CPU。
至此,SLC写入Contrologix系统的程序就做完了,保存后,下载程序到SLC控制器。
这时我们在Contrologix控制器标签的FromSLC即可看到和SLC控制器N10:0 – N10:4一样的数据。
工业通讯领域沉浸十数年,深喑各种工业通讯协议和工业网络架构以及国内外多种主流PLC应用和操作、熟知罗克韦尔、施耐德、西门子、GE等知名品牌的冗余系统,对工业无线通讯、工业物联网、工业IT与OT的融合,有着前瞻性的独到见解和务实的实践经验。现任伟联科技董事长。努力为中国工业信息化、数字化、智能化的深入发展做出贡献。
剑控老罗:
具有10年工业自动化领域SCADA,DCS,PLC等项目实施经验,熟悉石化行业,油田数字化行业,熟悉多个品牌PLC,HMI,SCADA,数据库等。
1.Smart200&V90伺服系统:已更新15课
原文始发于微信公众号(剑指工控):SLC MSG至ControlLogix