您好,欢迎访问飞畅科技官网!
服务热线:+086 0571-87007055/56/57 EN
串口服务器TCP服务端模式(TCP Server Mode)介绍

光通信与工业互联方案专家

WE ONLY FOCUS ON TRANSMISSION AND ACCESS

联系我们CONTACT US

全国咨询热线

0571-87007055/56/57/75

传真:0571-87007140

手机:15306818230(微信)

QQ :2355416925

定制设计:18072828031(微信)

或给我们留言

在线留言

串口服务器TCP服务端怎样用:连接、字节流与串口参数

浏览次数: 飞畅科技原创 作者:飞畅科技技术团队

TCP服务端模式是让串口服务器监听一个网络端口,等待电脑或程序主动连接;连接建立后,两端传送串口字节。它不是自动理解电表协议的模式,也不是让串口设备直接变成网页服务器。下面先讲数据怎样经过设备,再给出前后一致的配置示例和排障顺序。

服务端与客户端说的是谁先连接

服务端在指定地址和端口上等待,客户端发起连接请求。连接建立后,数据通常可以双向传送,因此“服务端”不等于只能接收,“客户端”也不等于只能发送。网络端口是程序选择通信入口的编号,不是机器背面插网线的物理插孔。电脑需要知道服务器可达的IP和监听端口,串口服务器则需要接受连接。若没有连接,串口设备发送的数据如何缓冲或丢弃取决于型号及配置,不能假定一定保存。先理解角色,再设置工作模式,能避免两台设备都等待或都向错误目标发起连接。

一个字节实际经过哪些环节

以电脑查询仪表为例,软件把协议请求交给TCP,网络接口接收后,服务器从网络数据取出字节,交给UART串口控制器。UART按照波特率、数据位、校验位和停止位把字节变成连续电信号,再由对应RS232或RS485电路送到仪表。仪表回应时沿相反方向返回。波特率描述串口符号节奏,网络速率再高也不能让低速仪表凭空更快。透明传输设备通常不解释地址、功能码或测量值,解释工作由应用完成。具有RS485接口不等于内置Modbus协议转换,这两种能力需要单独核对。

电脑先发起TCP连接,连接建立后数据可双向经过网络接口、UART及串口电路。
电脑先发起TCP连接,连接建立后数据可双向经过网络接口、UART及串口电路。

为什么接收一次不等于收到一条报文

TCP提供有序字节流,并不保留应用每次发送的边界。程序发送六个字节,接收程序可能一次读到两个、下一次读到四个,也可能分成其它组合;在同一连接的正常交付中,字节顺序仍应正确。这像连续的水流,而不是一个个完整信封,不过水流类比不能说明重传和拥塞机制。应用要按照自身协议的长度、分隔符或校验规则缓存与组帧,不能把一次读取当成一条请求或回应。设备的串口打包时间会影响发送时机,但不能替TCP增加永久报文边界。

先配网络,再使用同一个端口例子

假设服务器地址为192.168.0.148,电脑为192.168.0.166,二者在同一个允许互通的示例网段,监听端口统一采用4096。示例地址和端口需要按现场规划替换,不能直接占用已有设备地址。配置掩码和网关时确认是否需要跨网段访问,同网段也可能被VLAN或防火墙隔离。服务端设置4096后,客户端也必须连接4096,不能一个步骤写4096、另一个步骤写40080。保存配置并核对重启后是否保留,具体菜单名称依固件,本文不假定所有型号有同样网页界面。

同一有序字节流可以按不同块被发送及读取,应用必须自行恢复报文边界。
同一有序字节流可以按不同块被发送及读取,应用必须自行恢复报文边界。

串口参数和电气接线同样重要

示例可以使用9600波特、八个数据位、无校验、一个停止位,但仪表若要求其它组合就必须以仪表说明书为准。字节格式不一致会导致乱码、校验错误或无回应。RS232常用发送、接收和参考地,RS485使用差分线路,二者不能只用转接头直接混接。RS485的端子命名在不同厂商间可能有差异,应核对定义,不靠A、B字母猜极性。确认供电、隔离和接地要求,涉及现场总线应在维护条件下操作。软件显示“连接成功”只证明TCP通道建立,不能证明串口电压、参数和仪表协议正确。

做一个安全且可解释的对测

先在独立测试环境使用已知正常串口设备或串口调试端,连接服务器并使用一致参数。客户端发出一段已知字节,串口端检查内容和顺序;串口端再发回另一段字节,客户端检查回应。若使用十六进制显示,确认发送的是字节值而不是字符“0”“1”的文本。连接真实仪表前,用其手册中的只读查询验证,避免向执行器发送未知指令。RS232回环与RS485测试方法不同,不能随意短接总线端子。对测能分离网络与串口两侧,但不能代替真实协议及负载验收。

旧软件的COM口怎样接到TCP服务端

2301原文提出用虚拟COM让旧程序继续使用串口接口,这个思路有用,但不能理解为所有软件百分百兼容。虚拟COM由电脑驱动建立本地端口,再将它映射到串口服务器的IP与业务监听端口;程序打开COM时,驱动负责对应网络连接。能直接使用Socket的程序可以按协议连接服务端,不必再套一层虚拟COM。两条路径都要核对端口占用、参数、控制线、断线恢复及响应时间,不能仅凭COM号出现就宣布成功。

另一种方式是仪表仍接在一台电脑的真实串口上,由该电脑运行串口共享服务,再供其它电脑访问。这并没有把物理串口搬到远端:共享主机必须保持上电、服务运行且权限正确。专用串口服务器减少对这台电脑的依赖,但也有供电、固件和网络条件。网络延长了可部署范围,不意味着串口电缆长度无限,也不意味着所有控制时序能原样保持。多客户端能否共享及怎样仲裁,仍须按型号和应用验证。

多客户端、超时与重连需要明确规则

有些型号允许多个TCP客户端,是否广播串口回应、是否限制写入及怎样仲裁都必须核对。多个电脑同时控制同一台RS485仪表,可能造成请求混杂或把回应交给错误会话。最好由一个上位应用协调访问,而不是把连接数量当成控制能力。网络断开后,客户端通常需要检测、重连和恢复应用状态;之前已发出的控制命令是否执行,不能仅凭连接恢复判断。设计超时和重试时尤其要避免重复执行非幂等命令,所谓幂等,就是重复执行不会额外改变结果的操作性质。

不通时按哪一层查

客户端连接失败,先检查地址、端口、监听模式、访问策略及是否被其它连接占用;连接成功但没有串口数据,再检查接线、格式、仪表地址和协议请求。能看到数据却无法解析,应看字节值、分包缓存及校验,不要立即改波特率碰运气。生产设备不要把监听端口直接暴露到公网,应根据系统设计使用访问控制和安全通道;TCP本身不等于加密。验收覆盖双向传输、断线重连、长时间运行及真实业务。把连接、字节搬运和协议理解分开,新手也能清楚知道每一步究竟验证了什么。

原理核验资料:官方资料1;官方资料2。文中通用机制与示例不代替对应型号手册。