S7-200 主站modbusRTU通信采用指针方式对多个从站的读写轮询操作

1 篇文章 0 订阅
1 篇文章 0 订阅

1.只要仪表能支持一直读写的就可以采用这种方式,特别是仪表寄存器要支持一直写的状态。

2.需要明确指针指向的是接收数据还是要发送数据

3.程序代码如下

3.1初始化请求位[请求通讯位]清零,modbusRTU重试次数为0

3.2初始化指针

3.3 主站MBUS_CTRL完成后,下一扫描周期置位请求位,也可以网络4,再下一扫描周期同样可以置位请求位

3.4 进行从站的读写操作,同时提取出MBUS_MSG的通讯错误到存储通讯码寄存器内

3.5MBUS_MSG完成后,指针移位更新,准备下一MBUS_MSG读写数据

3.6本例是设定的是对从站3个读写操作,对从站数量清零,从头再轮询

3.7 数据块的数据如下

VB0         1

VB1        0

VD2        40001

VW6        2

VB8         2

VB9        0

VD10        40001

VW14       2

VB16         3

VB17        0

VD18       40001

VW22        4

3.8用软件作从站,测试结果如下

总结:本程序结构简单,对多仪表的读取数据程序修改很方便,缺点是指针地址理解稍有点难度,同时对所要写的数据没做判定,一直都在写操作。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值