恭喜,你发布的帖子
发布于 2023-12-14 20:36:53
5楼
Conn-ID是对一个已经存在的通信线程对象的引用。
你自己改的数值,这个数值对应的通信线程对象为null,根本不存在,所以指令自动给修复回来。
但是TCP通道传输,那是高速行为,对时序动作的要求是非常严格的。虽然连接ID自动修复回来了,但在这之前,server指令就已经因为参数错误,被破坏了。server端,因为瞬间突然失去通信线程对象,功能失败。
可以按照我顶楼说的原理和例子,一旦出错,就摧毁连接并重建,并停止MBTCP指令调用。
client和server两端,都是这样重建conn,诊断确认conn的状态ok后,再调用Client端指令,重新开始ModbusTCp。
80A3这个代码是T_Diag的status码,它的含义就是指通信线程对象不存在。
在MB-Server实例内部,你可以看到,其实也是通过那几条基础指令来实现功能。所以高层通信指令,都是底层通信指令的应用实例。
请填写推广理由:
分享
只看
楼主