关于modbus轮询子程序数据结构的探讨

已锁定

阳春节拍

  • 帖子

    237
  • 精华

    2
  • 被关注

    3

论坛等级:侠士

注册时间:2023-03-01

钻石 钻石 如何晋级?

关于modbus轮询子程序数据结构的探讨

3630

10

2023-07-23 17:41:19

看到论坛里有篇关于modbus轮询的子程序,权限不够不能回帖,在这儿探讨下轮询的需求。

1、modbus通讯对速度通常要求不高,多数读操作可以分钟计,写操作以秒计都是可以的。

2、正常一次通讯也就一二十毫秒,因此即使全部通讯异常也可以通过参数优化到每秒二十次以上,全部正常的话更可以达到每秒50次以上,这对于多数应用来说都是足够的。因此写优先意义不大,掉线排除轮询更是大大增加程序复杂度。

3、简化数据块的使用和占用更重要。比如20型cpu才八千多的V区地址,尽量少占用空间很重要。比如msg的dataptr,在数据块里就不要使用D型数了,直接用W型数据,然后程序里给加上16进制8百万换算成V型地址。还有count也可以用B代替W型数。RW仅是一个位,随便整合到哪个数里

4、读写内容类型完全一致,只是需要更改连续站号,这是刚需。可以直接在数据块中压缩为站号首地址、连续站数量,以及目标数据区首地址。比如连续写1到9号站的2000h地址为vw0开始的九个字,只是增加了一个连续站数量,就使数据块少了8组,即减小空间又降低数据块填写出错概率。

5、按以上思路,可以做到一个通讯口使用1K字节空间,就能支持50组数据,每组可以为连续百多个站号的读或写(把RW整合进连续数量字节里)

关于modbus轮询子程序数据结构的探讨 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8124条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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