说到罗克韦尔的通讯,生产者消费者这个词相信大家一定不会陌生,在本部看前面的讲解中,姐说了罗克韦尔的虚拟调试与仿真,罗克韦尔的软件全家桶以及安全PLC等,并开放下载了许多资料和软件(具体看文末往期推荐),今天我们来讲一讲生产者和消费者~
当一台机器与另一台机器,当一个工艺设备与另一台工艺设备对接时,都需要通讯,需要组态通讯路径、规划读、写数据。如果恰好你所使用的控制器,都是罗克韦尔自动化的Logix控制器,那么恭喜你,使用生产者/消费者的方式会大大提高的你的效率、缩短你开发时间。1+1=2,就这么简单。
生产者标签:可以被其他控制器使用,可以同时被多个控制器消费(接收)其数据,无需编程。
消费者标签:接受生产者标签产生的数据,其标签类型必须和生产者一致,通过设置RPI时间决定数据更新的周期。
条件:
都为Logix5000(Studio5000)控制器;如1769-L30ER,1756-L7X
相同的网络(比如EtherNet或者ControlNet,而不是EtherNet与ControlNet之间)
步骤:
1、建立生产者标签”Produced_Tag”
打开控制器,控制器名称为Controller1,Controller1控制器标签内,建立标签
注意:只有在控制器标签域里面才能使用“生产者”
在你规划的标签处右键,选择Edit***Properties,输入标签名:Produced_Tag(例子),在“Type”处选择:Produced(生产者)
在选择为Produced或者Consume后,“Conection”按钮激活,进入设置” Produced Tag Connection”菜单栏,在“Max Consumers”输入消费(接收)生产者标签数据的控制器数量。
2、在控制器2建立消费者标签“Consumed_Tag”
打开Logix5000编辑软件,在”IO Configuration”里面添加我们刚建的控制器1,Controller_1
在控制器域新建标签,输入标签Consumed_Tag,选择type为Consumed。
注意:数据类型与我们要连接的生产者一致
点击connection按钮,进入Consumed Tag connection,选择控制器名称Controller _1,输入我们需要消费的生产者标签“Produced_Tag”
根据需要更改RPI时间(V28版本之前),默认20ms,点OK完成。
数据流向:控制器Controller_1内的“Produced_Tag”标签数据à控制器Controller_2内的标签“Consumed_Tag”,以及其他控制器建立的指向Controller_1的Produced_Tag标签。。。。。。
同时,控制器Controller_2可以建立生产者标签,供控制器Controller_1及其他控制器消费。
诊断:
在Rslogix5000 V17版本及以上,生产者/消费者标签有自带的状态栏,只是在定义生产者/消费者标签的时候,指向带链接状态的标签即可,其他与上述标签建立相同。
1、 新建数据结构体:
2、新建生产者标签,数据类型选择为刚建立的数据结构体
3、 在控制器2内建立相同标签结构体,建立消费者标签,类型为Consumed_Type
***.Sts.RunMode标签位为运行位,一般为1
***.Produce_Tag.Sts.ConnectionFaulted一般为0
关键是Consumed_Tag.Sts.ConnectionFaulted,当标签为为0代表正常;标签位为1代表。。。你得检查网络了。
这样,生产者标签和消费者标签无需任何额外编程,就可以开开心心的交流啦,简单吧!
罗家小型机Micro800、MicroLogix
ConpactLogix/ControlLogix通讯需要通过MSG指令来实现了,一样也很方便。
1、生产者、消费者都占用连接数:
生产者占用的连接数为:消费者数量+1
消费者占用连接数数量为:1
2、如果使用V24版本以前的控制器需要建立消费者标签与新的CMX 5380, CMX5480, or CLX 5580控制器链接时,V24版本控制器无法在IO树中添加到这些控制器,此时就需要用以前的控制器替代:
如果您想通过新的控制器嵌入的以太网端口,就可以用嵌入以太网端口的CMX 5370控制器,比如1769-L36ERM替代;
如果您想通过背板的以太网端口建立连接,则可以通过5570控制器,比如1756-L71来替代。
3、V28版本之前和V28之后(包含)RPI时间设定有所不同,V28版本之前消费者标签RPI时间可以自行设定,V28以后是根据建立的第一个消费者标签的RPI时间自动设定。在低版本移植到高版本时需注意。
4、传输数据尽量小于500bytes,别问为什么,问了我也不告诉你。
5、当“生产”多种类型数据时,将数据打包成结构体传输更优噢,每个生产者标签被消费都是要占用连接数的。
|