德国西门子安徽阜阳授权代理商

供应商
上海跃韦科技集团有限公司
认证
西门子
西门子PLC总代理
西门子PLC
西门子PLC总代理商
德国
西门子PLC一级代理商
联系电话
18674345958
手机号
18674345958
经理
李经理
所在地
上海跃韦科技集团有限公司
更新时间
2024-11-28 07:00

详细介绍

modbus rtu是很常见的一种通讯方式,西门子200 smart标准版的cpu都集成一个rs485的通讯端口,再加上有modbusrtu的标准库,很方便的实现了modbus rut通讯。

但是,在实际使用中,西门子的标准modbusrtu指令mbus_msg的执行完成需要超过一个扫描周期,所以在程序的任何地方,只能有一个mbus_msg指令在执行,如果有两个或者两个以上同时执行,则会立即报错,这就是资源的争夺。

西门子200 smart的手册里给出了一个解决办法,就是:轮询。

轮询的效率不高:

   1.在多个写入的时候,因为有时候写入不是必须的,是根据需要写入,而这个需要又无法确定时间或者次序,轮询的效率就非常低;

    2.有大量需要写入/读取,轮询是没有优先级的,急需的写入/读取不能得到优先的响应;

对于以上两点,我找出一个办法,首先实现了“按需读取/写入”,优先级的问题有个思路,我就偷点懒,请大家想想怎么实现吧。

实现“按需读取/写入”的方法很简单,就是建立一个“通讯令牌”的“全局”的标志位,作为通讯状态的标志,如果“通讯令牌”为1,则表示通讯空闲,可以发起通讯,发起通讯后立即复位“通讯令牌”,这样就阻止了其他过程发起通讯,通讯完成后再置位“通讯令牌”标志,以便其他过程获得。

以上的思路基于“令牌环网” 


西门子PLC.西门子变频器,西门子电机.西门子触摸屏.西门子电缆.西门子变压器.西门子高压变频器
展开全文
我们其他产品
我们的新闻
微信咨询 在线询价 拨打电话