首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

Modbus 通信一直比较常见,正好手上做了一个与三个不同设备之间进行通信的案例,用的是S7-1200 PLC进行通信的,这里其他的配置不写出来了,主要的写下1、PLC的通信小板CB1241(RS485) 2、智能流量计 KTP 3、OHG-G400四路液晶智能温控器 4、PH智能电极,这里三个设备的通信波特率、奇偶校验、停止位必须一致,否则就需要再额外添加一个通信模块CM1241(RS422/485)做两个Modbus 通信了,我们这里选择的三个设备刚好是可以设置的,就怕遇见那种被做进去,固定了的参数,别的不提了,直入主题吧。

先建一个背景数据块(命名MB),用于定义通信过程中需要的参数,而图上用红线框住的参数 分别是流量计需要读一个瞬时流量 PH测量值 四个通道的温度值 C就当时一个流量计的总数值,后来没有用到,我就暂时用C代替了,这里就不贴出各个设备的说明书了,我前面写过一个心得,叫做Modbus-RTU注意事项中也有点内容讲这块的。

创建一个FB之后,在FB的局部变量里定义好这些你后面编写程序所需要的变量。

定义好这些变量,就在FB里添加Modbus通信的指令了。

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

因为设备的数据类型不同,所以就进行了转换,我在有一篇Modbus_RTU注意事项中有写,可以去看下,然后下面正常情况下啊,就是读取设备的通信地址数据存储到指定地址就好了,图片上的红字都有介绍。

下面这个图就是轮询的关键之一了。

最下面这个图贴的就是你三个设备轮询的首地址和数据采集的长度,需要你自己的设备,自己找下。

以上是我这次项目中应用到的,因为是自己心得,自己水平也有限,表达的也有限,望见谅。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191111A07QHM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券