电工学习网

 找回密码
 立即注册
查看: 5700|回复: 0
打印 上一主题 下一主题

西门子S7-1200 Modbus-RTU三个不同设备之间的轮询

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-12 14:04:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Modbus 通信一直比较常见,正好手上做了一个与三个不同设备之间进行通信的案例,用的是S7-1200 plc进行通信的,这里其他的配置不写出来了,主要的写下1、PLC的通信小板CB1241(RS485) 2、智能流量计 KTP 3、OHG-G400四路液晶智能温控器 4、PH智能电极,这里三个设备的通信波特率、奇偶校验、停止位必须一致,否则就需要再额外添加一个通信模块CM1241(RS422/485)做两个Modbus 通信了,我们这里选择的三个设备刚好是可以设置的,就怕遇见那种被做进去,固定了的参数,别的不提了,直入主题吧。
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
先建立一个背景数据块
先建一个背景数据块(命名MB),用于定义通信过程中需要的参数,而图上用红线框住的参数 分别是流量计需要读一个瞬时流量 PH测量值 四个通道的温度值 C就当时一个流量计的总数值,后来没有用到,我就暂时用C代替了,这里就不贴出各个设备的说明书了,我前面写过一个心得,叫做Modbus-RTU注意事项中也有点内容讲这块的。
创建一个FB之后,在FB的局部变量里定义好这些你后面编写程序所需要的变量。
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
FB的局部变量
定义好这些变量,就在FB里添加Modbus通信的指令了
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询


这里在测试的时候,会发现第2个和第3个设备通信时不时会出现点错误,就添加了这个延迟,有的项目就不一定需要这个了。

因为设备的数据类型不同,所以就进行了转换,我在有一篇Modbus_RTU注意事项中有写,可以去看下,然后下面正常情况下啊,就是读取设备的通信地址数据存储到指定地址就好了,图片上的红字都有介绍。
这个截图可能不清晰
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
下面这个图就是轮询的关键之一了。
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
最下面这个图贴的就是你三个设备轮询的首地址和数据采集的长度,需要你自己的设备,自己找下
西门子S7-1200 Modbus-RTU三个不同设备之间的轮询
以上是我这次项目中应用到的,因为是自己心得,自己水平也有限,表达的也有限,望见谅。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-5-1 00:23

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表