回复:MODBUS TCP 通讯数据长度选择与数据一致性读写的疑问

yming

西门子1847工业学习平台

  • 帖子

    23138
  • 精华

    881
  • 被关注

    1253

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2017-09-13 17:06:42

21楼

展开查看
以下是引用威师爷在2017-09-13 11:38:33的发言 >19楼

谢谢!

如果使用modbus  控制变频器应该是要加一个看门狗才安全

以下是引用yming在2017-09-13 09:50:03的发言 >17楼:一致性读取。我们驱...

引用17楼详细内容:

一致性读取。

我们驱动中是指变频器在一次处理中,将需要的转速、频率、电流、电压、转矩都传送到缓冲区。PLC通过通讯读到的是同一时刻的上述驱动状态

例如:PLC下面有8台分布式设备,如果是去读参数,第一次读8台电流,第二次去读8台转矩,读到的各台电流、转矩等等不是同一时刻的,这样的话,它们的数据没有一致性。

同样,如果变频器是在分别在各个周期更新单个数据,那各数据就不是一致性的。

所以,我觉得就看服务器端是怎么操作的了。

如果对各个数据的一致性要求不高,不差那几十毫秒,只要数据正确,可以不去考虑它。


以下是引用威师爷在2017-09-12 23:43:57的发言 >16楼:也就是说最少应该是...

引用16楼详细内容:

也就是说最少应该是按照双字的读写可以保证一个双字的一致性,但是因数据量的大小,可能要在几个扫描周期才能全部读写完这一段数据?

以下是引用yming在2017-09-12 20:14:46的发言 >15楼:我觉得应该理解成...

引用15楼详细内容:

我觉得应该理解成每个双字是正确的。因为你的MOVE也是浮点的(中断也是这个指令之后)。

但传送到达接收方的报文中的保持寄存器数据(各个双字),有可能不是同一次循环扫描的。因为这种异步通讯可能要经过多次循环扫描才完成。

你说呢?


以下是引用威师爷在2017-09-12 17:52:54的发言 >14楼:非常感谢!所以不...

引用14楼详细内容:

非常感谢!

所以不存在数据一致性的问题,这句话可以理解为数据基本上是一致发送与接收的吗?



以下是引用西门子自动化产品支持在2017-09-12 13:42:07的发言 >12楼:在这个问题里,...

引用12楼详细内容:

在这个问题里,数据一致性的问题不用太关心,对于MODBUS_TCP通讯来说,单个数据包的长度很短,并且会同时从网卡的缓冲区传送到数据块内,所以不存在数据一致性的问题。

嘿嘿,我看了看系统的MB_TCP DB,它应该有用于通讯自己的数据缓冲区。你写的REG_DB只能算数据“准备”区吧。发送过程中,系统的缓冲区不会因你改动REG_DB数据而改变,直到DONE完成,下一次报文才会一次性写入到MB_TCP系统数据缓冲区中。


驱动的“看门狗”在驱动CU上,不管是USS,MB_TCP,DP还是PN。

PLC这边通过通讯状态码就能知道。


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

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15100条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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