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

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.总结

没啥好总结的

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值