当前位置:   article > 正文

Simens 1200 PLC如何读取多个Modbus RTU的仪表_1200多块仪表通信

1200多块仪表通信

Simens 1200 PLC如何读取多个Modbus RTU的仪表

简介

上一篇我们学习了如何通过Modbus RTU的方式和转速表通讯,这一篇我们学习多表轮询通讯。比如在现场我需要读两个地方的转速,那么我们怎么办呢,是再加一个通讯模块么(也行)?显然这有点不计成本、不切实际,那么接下来我们学习如何用一个通信模块读多块表。

1.接线

我们按照A-A  B-B 的方式串接起来(如图 1)

图 1

将线接好后,我们要考虑一件事情。“两个人在一起会产生矛盾”这句话没毛病,那我们想这两个信号在一起也肯定会相互干扰,会打架。所以呢我们需要给他加上一堵墙,就是屏蔽线。并且需要避开强电区。

2.分配地址

现在我们的从站有两个,那么他们的地址是不能够一样的。如果一样,PLC是不知道去读谁。

所以我们需要分配好我们表的地址。

表一:地址 3   波特率:9600

表二:地址 1   波特率:9600

3.创建通信指令

基于上一篇做好的“Modbus RTU 通讯” 我们只需要创建表二的通信指令,按照上一篇的做法将参数填好。(如图 2)

图 2

这样就好了么?当然不行。可以看见使能部分我们都是创建的0.5HZ的时钟,相当于是同时在读两块表,一心不能二用。我们需要采用轮询的方式,让其轮流来读取数据。

4.修改参数

分析:

我们需要在使能处做手脚,比如:1. 第一秒读表一,第二秒读表二。 2. 表一读到数据后,去读表二,表二读到数据后再去读表一。

我们采用第2种:这时指令后面的DONE(完成)、BUSY(正在读)、ERROR(报错)就有用处了。

先为他们加上地址(如图 3)

图 3

大概思路是:表一先读数据,读到以后去读表二,如果读表一时出现错误,立刻去读表二;表二读数据,读到以后再回去读表一,如果表二出现错误,立刻去读表一。

那么我们的两处使能也需要定义地址。 FIRST REQ     SECOND REQ (如图 4)

图 4

5.成功

了么?

逻辑设的很好,但是,怎么开始轮询呢,什么条件使他开始轮询呢?

可以看见,使能处没有开始的地方或条件。(如图 5)

图 5

我们可以使用组态端口的完成位,来让我们轮询开始。(如图 6)

图 6

我们先从表一开始读,将COMM_LOAD DONE 加在表一的通信指令处,取他的上升沿(我们只需要让他驱动我们的轮询开始,不需要他一直闭合。如果不使用上升沿会导致表二报错:忙于处理发送请求。忙不过来了)。

6.终于成功

图图 7

图图 8

7.总结

没啥好总结的

给个注意事项吧:在我们创建轮询时不得不修改很多通信指令的参数,建议每次下载时要下载硬件和软件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/294076
推荐阅读
相关标签
  

闽ICP备14008679号