200Smart Modbus轮循 选择不同从站

一台SR20通过标准Modbus RTU协议,读取6个从站数据,在不同项目中可通过触摸屏从6个从站中选择任意数量(2~6个)的从站,为减少通讯时间,在不同项目中,只轮循已选择的从站,使用一段标准程序执行(不需要每次在PLC中改动程序),请问怎么做?

最佳答案

可以实现。我做过的是标准Modbus RTU协议,读取0-5个从站变频器的数据,并增加了通讯错误的自动延时复位,连续复位次数达到设定后HMI报相应变频器通讯失败,在通讯错误延时复位前或HMI报通讯失败后,跳过该站的通讯等(共2个子程序,其中一个是带参数的可多次调用子程序)。通讯循环程序中还含有:通讯循环1周时,延时1个周期时间,再开始下一个循环,防治只有1个从站时,因MBUS-MSG指令一直调用,而引起的无法正常通讯现象。

根据您的要求,不含通讯错误处理,及不含‘’延时1个周期时间‘’。只读取2-6个从站的数,以每个从站只有1个读取指令。编程思路如下:
段1)完成标志位等的上电初始化;
段2)主站初始化完成,【使能MODBUS通讯】置位;
段3)PLC主站初始化,激活MODBUS主站通讯;

段4)【使能MODBUS通讯】置位或【站6完成标志位】置位或【跳过站6选站1通讯】置位时:
   1、如果HMI设置启用站1通讯:【使能站1通讯】置位;
   2、否则,【跳过站1选站2通讯】置位。
段5)【使能站1通讯】置位或【跳过站1选站2通讯】置位时,复位:【使能MODBUS通讯】、【站6完成标志位】、【跳过站6选站1通讯】;
段6)站1的MBUS-MSG读取指令;
段7)【站1通讯完成标志位】置位时:复位【使能站1通讯】;

段8)【站1通讯完成标志位】置位或【跳过站1选站2通讯】置位时:
      1、如果HMI设置启用站2通讯:【使能站2通讯】置位;
      2、否则,【跳过站2选站3通讯】置位。
段9)【使能站2通讯】置位或【跳过站2选站3通讯】置位时,复位:【站1完成标志位】、【跳过站2选站3通讯】;
段10)站2的MBUS-MSG读取指令;
段11)【站2通讯完成标志位】置位时:复位【使能站2通讯】;

段12)【站2通讯完成标志位】置位或【跳过站2选站3通讯】置位时:
      1、如果HMI设置启用站3通讯:【使能站3通讯】置位;
      2、否则,【跳过站3选站4通讯】置位。
段13)【使能站3通讯】置位或【跳过站3选站4通讯】置位时,复位:【站2完成标志位】、【跳过站3选站4通讯】;
段14)站3的MBUS-MSG读取指令;
、、、、、、、、、

提问者对于答案的评价:
最接近我的思路,我在西门子官方程序的基础上,根据选择从站的情况做判断,然后采用跳转指令完成的,测试了一下没问题

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc346719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:05
下一篇 2021年7月4日 下午11:05

相关推荐

发表回复

登录后才能评论