找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
可以实现。我做过的是标准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读取指令;
、、、、、、、、、
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!