回复:最近发生一个现象,8台设备MODBUS轮询有时写入时会卡在第8个那里,怎么回事?

为修修为

西门子1847工业学习平台

  • 帖子

    1493
  • 精华

    9
  • 被关注

    35

论坛等级:奇侠

注册时间:2021-12-02

钻石 钻石 如何晋级?

发布于 2026-01-23 22:04:20

10楼

展开查看
以下是引用芳季在2026-01-23 17:05:17的发言 >9楼

你意思是只有8点动的时候才会报?其他的点动不会报6?

另外,我说说我的也是无法证实的经验。msg指令中的Data参数的指针,所指向的间接寻址区域,中的数据。我不确定在通讯期间是否允许修改。比如命令变频器运行,msg正在写的过程中,未发出Done,此时你把指令修改成变频器停止。那么此时msg会如何是好?是否发生一致性问题?

这个说来话长。

我是非常早期的时候普遍发现报6。已经100%排除重复接通的情况。鉴于当时初次使用通讯,没法证实太多的东西。感觉就是修改过msg的站址;数据长度;数据指针三者就会报6 。之后我把轮训程序做成类似《Modbus卡住》里面我展示的程序这个样子,并彻底杜绝了我上述的“一致性问题”。可以说,从那之后没见过报6 。那个时期我发过帖说明这事情的。

你在点动的时候是非常容易发生6,我怀疑有我说的这种因素。

话说回来,你说只有8发生这事情。我就不肯定了。(要证实此事,只有读懂MB库才能真正解开这个迷。有没有大神解决一下?就算是CN年代的库就够了。那时候的库容易那啥……嘻嘻不能说)

以下是引用为修修为在2026-01-23 10:37:29的发言 >8楼:一定是程序上的问题...

引用8楼详细内容:

一定是程序上的问题,问题是为什么总卡8。

8 台设备是完全一致的,就是安装位置有点远线缆长度在60米内。

以下是引用莘莘学子在2026-01-23 09:46:25的发言 >7楼:就是这个想象,说明...

引用7楼详细内容:

就是这个想象,说明还是程序上的问题。

以下是引用长日夏凉风在2026-01-23 09:20:46的发言 >2楼:故障代码都说了,6...

引用2楼详细内容:

故障代码都说了,6的意思通信还没完成就触发下一个,显然是有二条及以上通信指令同时工作了,485单双工的,不能同时在一时间段内发送或者接受多条通信指令。一般容易出问题的编程思路,看你有没有中招,只要我复位正在通信的触发位,或者改变通信指令的输入参数就能马上进行下一条通信工作,理由是:EN没有能流了,通信会立刻终止并复位。显然是错误的。我怀疑你是这个问题,但是我没有更多证据,因为你插入写的时候,有可能它正在读呢?改进方案:在这条读指令完成复位的同时把RW端改成1,下一个周期就是写,或者在这条读指令触发前要输入RW为1的写操作。

不是只点击8号设备,是点任一个设备都会卡在8那,不轮询了。

应该是与您说的情况有所相同。只是我不得法门。

总卡在8那里,是否是现场硬件所致也不得而知,验证这个可小动干戈一翻,没有那个动力了,从软件曲线救国,出现ERR时,复位整体DONE。

我是读的时候是一套设置,写的时候是另一套,采用的是如上一个问题,就是变频器给定的那样,非此即彼的方式给定,条件触发置位,用DONE来复位。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9417条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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