SLC MSG至ControlLogix

为什么写这篇文章呢? 昨天一圈内大佬聊起来了他们一个改造项目,原来两套SLC500系列PLC互相通讯,由于SLC系统的备品备件很难买到了,因此将其中一套升级到了ControLogix系统,但是问题发生了,原来的两套SLC是通过MSG进行通讯的,那现在换成了ControLogix后,由于Contrologix用的是CIP标签做变量,而SLC是通过文件形式关联变量;那这个怎么实现呢? 

本文以一个小例子来说明: 

任务:写入N10的5个整型数到Contrologix标签 

说明:任何对MSG的修改,都需要停止CPU进行,不可以在线进行。

图片

一、映射Contrologix文件为SLC地址文件

由于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地址文件映射工作就做完了。

二、设置SLC数据文件(Data File)

本部分工作在RsLogix500编程环境内操作,首先我们建立MSG指令的控制文件,右键点击Data Files选择New(新建) 

图片

文件号我们设置为#9,数据类型Integer,命名为MGCTRL(可根据项目需要命名), 

图片

接下来我们再新建一个数据文件,用于给Contrologix传送数据,我们将其设置为#10文件,数据类型为integer, 命名为ToLogix, 

图片

同时我们给N10:0 – N10:4随机赋值,任意5个数,用于测试。本文设置45,55,65,75,85. 

图片

至此SLC数据文件设置就可以了。

接下来我们在RsLogix500里进行MSG编程设置,所有的MSG指令都需要通过脉冲进行触发,因此我们先建一个500ms的脉冲。 

图片

我们通过T4.0一个500ms脉冲进行MSG指令执行的触发。脉冲做好新建一个MSG功能块,MSG类型设置为Peer-To-Peer,控制字选择,N9:0,共需要14个字,N9:0- N9:13为该MSG指令的状态字。

图片

点击Setup Screen,可以对MSG进行设置如下: 

图片

设置面板分5部分,依次说明如下:

本地控制器(this Controller)

通讯指令:设置为500 CPU Write(SLC 控制器对外写)

数据地址:从哪儿开始写,本文设置为N10:0

数量:写入几个元素?本文设置为5个;

Channel:通讯通道,本位为以太网通讯,因此设置为“1”

目标设备:

数据地址:写到目标设备的那个地址?本文设置为N70:0(即前文的FromSLC[0]).

MultiHop:如果和远端设备通讯,MultiHop需要设置为“Yes”。

Error Description:

可在线查看MSG状态,是否有错误,错误信息是什么?

Control Bits:

控制为,对应N9:0的每一个位

Error:

显示错误代码 

说明:以上参数的详细说明,可参考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,数据库等。