回复:关于TCP/UDP通信的连接资源、CONN-ID、连接的新建另建与重建

已锁定

宝冬

  • 帖子

    203
  • 精华

    26
  • 被关注

    249

论坛等级:奇侠

注册时间:2016-07-06

黄金 黄金 如何晋级?

发布于 2023-12-16 11:19:57

16楼

展开查看
以下是引用yming在2023-12-16 10:50:07的发言 >15楼

串口服务器没用过。只是了解过。

例如:

单口的485串口服务器,就意味着作为客户端的PLC,是485的单一主站。

4口的485串口服务器,相当于1200安装了4个485CM模块。

是这个意思么?

要是这样成立,与这个串口服务器的连接,应该是一直保持的。不应该一次次断开、重连才对

因为,原本这个串口服务器是成对使用(增加通讯距离),开发的。

我不知道是否理解得正确。请教一下。



以下是引用昔日如诗在2023-12-15 14:37:16的发言 >12楼:    佩服!    我...

引用12楼详细内容:

    佩服!

    我手头刚好有个案子,正有此疑惑:一台1214C接串口服务器,串口服务器有8个串口,各接一个外围485设备。

    PLC用ModbusTCP通信,做客户端;串口服务器做服务器端,里面设置好每个串口对应一个485设备的ID号。

    假设串口的顺序是X1、X2、X3、X4、X5、X6、X7、X8,对应外围设备的ID号顺序是9、10、11、12、13、14、15、16。如下图

    PLC先读X1串口的485设备(用了一次MB_Client指令),读完后,要去读X2串口的485设备,这时就修改MB_Client背景数据块里的ID号,即MB_Unit_ID,修改完后,再启用MB_Client指令。那么,在二者切换的时候,要不要先断开,再重建,才能真正实现轮询?

    




以下是引用宝冬在2023-12-14 13:24:51的发言 >3楼:Conn-ID是对一个...

引用3楼详细内容:

Conn-ID是对一个已经存在的通信线程对象的引用。


你自己改的数值,这个数值对应的通信线程对象为null,根本不存在,所以指令自动给修复回来。


但是TCP通道传输,那是高速行为,对时序动作的要求是非常严格的。虽然连接ID自动修复回来了,但在这之前,server指令就已经因为参数错误,被破坏了。server端,因为瞬间突然失去通信线程对象,功能失败。


可以按照我顶楼说的原理和例子,一旦出错,就摧毁连接并重建,并停止MBTCP指令调用。

client和server两端,都是这样重建conn,诊断确认conn的状态ok后,再调用Client端指令,重新开始ModbusTCp。



80A3这个代码是T_Diag的status码,它的含义就是指通信线程对象不存在。




在MB-Server实例内部,你可以看到,其实也是通过那几条基础指令来实现功能。所以高层通信指令,都是底层通信指令的应用实例。



以下是引用执笔画管脚在2023-12-14 11:53:29的发言 >2楼:再贴一下我遇到的...

引用2楼详细内容:

再贴一下我遇到的问题吧,因为ModBusTCP也是基于楼主提到的那些基本的TCP/UDP指令封装的。遇到问题后我通过操作背景数据块,测试了一些重连方法,并没有解决问题。

当然,这些纯属好奇,因为正常程序不会有我这种手动更改Connection_ID操作。


具体描述如下:

两个西门子PLC走MODBUS TCP,通讯成功的情况下,手动把服务器的Connection_ID改掉,虽然系统会马上把你手动改的值覆盖成正确值,但此时通讯已经掉线,服务器这边会报80A3。

这种状态下重启服务器可以恢复通讯,暂时没找到其他方法。




是这样的。通过以太网连接TCP或UDP,扩展出4个串口。

串口服务器可以作为TCP Client、TCP server、UDP Client或UDP Server使用,常见的功能如下图。




每个串口有同样的IP地址,但是各自的Socket端口号不同。所以PLC与这四个串口建立连接的时候,每个连接都是不一样的。


如果PLC通过四个连接,分别连接每个串口,那就可以持续存在,不用断开和重建。


如果PLC只通过一个连接(比如:只用一个MB-Client实例),轮询复用每个串口,那就只能不停的断开和重建这个连接,以切换不同参数去重建。


实际上与串口设备进行通信,走ModbusTCP是徒劳无益的。串口侧modbus的验证和应答机制,正好把TCP的可靠传输作用作废,且带来无谓的高开销和接通延迟。

用UDP协议来承运和透传modbus协议报文,到串口设备是最适合的。且UDP的连接重建是同步的,极为快捷。


精华帖版主置评:好极了。这样就明白串口服务器工作原理了。-yming

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15117条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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