回复:求一个能用的modbus rtu主站轮询程序

已锁定

yming

西门子1847工业学习平台

  • 帖子

    23148
  • 精华

    881
  • 被关注

    1253

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2020-06-06 11:46:10

40楼

展开查看
以下是引用一串奇怪的数字在2020-06-05 20:10:31的发言 >31楼

如果Zane 版主非要说MODBUS-RTU通信在3C上应用不合适了,那我也不反对,毕竟我只是过去给客户优化程序的。当一个设备的年台套数是以万为单位的时候,客户想到的是如何节省成本,怎么便宜怎么来。西门子至今无法在3C取得大的突破,归根到底所有的方案都太贵了。而往往是一些Zane 版瞧不上的方案在慢慢渗透进去。

Zane 版的担心,确实是最难避免的问题。因为即有可能PC在轮询,也有可能多个站同时故障,需要上报,好在当时客户是一个PLC一个GSM客户机,GSM服务器设备具有通讯堆栈的功能,可以暂存多条信息,解决了PLC同时触发的冲突的问题。PLC通过中断事件8和SMB2检测是否有PC通讯任务,解决PC与PLC间的冲突问题。并且实际应用中对PC发起通讯做了多种限定。如在固定的时间段通讯,PLC定期与PC进行时间同步,尽量从源头避免PC与PLC冲突。

    3.假如 多个 PLC共用一个GSM ,我想也可以参考DP通讯的方式,以拿令牌的方式解决多主站通讯的问题,谁拿到令牌,谁才能发起通讯,令牌在相互间进行传递。当然这个情况对软件编程的要求就高了,需要解决很多问题,例如掉站了怎么办?令牌丢失如何恢复,拿令牌的断电了等等。

           Zane 版主不要动不动就说些损人的话,格局有点低了。

        
     


以下是引用Zane在2020-06-05 16:27:08的发言 >30楼:说多了就要露怯,你...

引用30楼详细内容:

说多了就要露怯,你明明是个卖白菜的,却要把自己包装成一个卖白fen的。


首先,3C应用不要讨论用什么MODBUS-RTU通信的,要么发脉冲,要么走高速总线,西门子推荐的解决方案,V90PN也是勉强,只能是些外围设备,核心应用S7-1500(T)+S210。喝水可以用杯子,也可以用汤勺,但你一定要用漏勺!显呗?

    看样子,你还做的是基于事件的通信。


其次,建议你多学习一下通信的基本原理,原本做MODBUS-RTU从站的PLC,突然摇身一变变主站了,原本作为主站的PC此时正忙着轮询呢,你通知它了吗,你通知PC这时要停下来轮询并变成从站了吗?没有吧,这时会发生什么,485总线上有了两个主站,要同时说话,一山不容二虎呀,打架啦冲突了,你知道不?

当然啦,有多主站的485总线,比如PROFIBUS,原理不一样呀!你知道不?


我相信你的需求一定是合理的,但你的解决方案是合理的吗?得自圆其说吧?

以下是引用一串奇怪的数字在2020-06-05 09:48:50的发言 >29楼:感谢Zane 版主的加...

引用29楼详细内容:

感谢Zane 版主的加精,那我就多说一点。


案例1: 3C行业 PLC通过MODBUS 控制7台步进,一个动作循环周期大概有300条通讯任务,(给步进发,模式,速度,位置,检测步进状态等等)该案例轮询只能靠done,如果是Error需要重发,通过节省扫描周期,节拍足足提高了6秒,做过3C行业的应该知道6秒意味着什么。

      个人认为PLC检测到DONE的时候,总线应该早就平静了。毕竟plc要判断是否接收完成了,完成后还要做CRC校验,校验通过了才有这个DONE。


案例2:远程数据采集    PLC通过第三方GSM模块与监控中心PC通过MODBUS协议 通讯, 为了节省费用,PC采用定时与各个PLC进行通讯,如果某个站故障了,就需要该站主动上报。所以需要PLC即做从站站(正常时),也做主站(故障时)。
需求合理,技术上也绝对可以实现。


GSM?是说以前的GSM网络么?

学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。