Skip to content

设备接入(Modbus Server) ​

这篇解决什么 ​

设备主动连上网关之后,谁发读请求。读完能对上 protocol: modbus_tcp_server:网关听 503,先用自定义功能码认证,再云端轮询。

产品 protocolType 填 modbus_tcp_server。网关去连从站见 设备接入(Modbus Client)。

示意图:先建 TCP。未认证不发标准读。认证后按点位轮询。

从哪改 ​

名称说明仓库路径
协议Vert.x NetServerruoyi-office/yudao-module-iot/yudao-module-iot-gateway/.../modbus/tcpserver/IotModbusTcpServerProtocol.java
认证 / 上行自定义功能码IotModbusTcpServerUpstreamHandler
编解码MBAP 帧IotModbusFrameDecoder / IotModbusFrameEncoder
点位配置与 Client 同一套表iot_device_modbus_config / iot_device_modbus_point
样例id: modbus-tcp-server-1,默认关,端口 503application.yaml

类注释:设备用自定义功能码(默认 FC 65,合法范围 65–72)发认证;通过后网关再发标准读,设备响应。这是「云端轮询」,不是设备自己周期上报。

custom-function-code 默认 65。request-timeout 默认 5000 ms,request-cleanup-interval 默认 10000 ms,管 pending 读。config-refresh-interval 默认 30 秒。

连接:IotModbusTcpServerConnectionManager。轮询:IotModbusTcpServerPollScheduler。点位仍挂物模型 identifier,功能码 FC01–04。

mode / frameFormat 与 Client 共用枚举。Server 场景下设备不用填「从站 IP」给网关去连,但点位和从站号仍要在配置表里。

字段 ​

名称说明仓库路径
port网关监听,样例 503ProtocolProperties
custom-function-code认证用,默认 65IotModbusTcpServerConfig
request-timeout一笔读等待同上
slaveId / 点位认证后轮询IotDeviceModbusConfigDO / IotDeviceModbusPointDO

不要和 Client 抢同一产品

modbus_tcp_client 是网关连出去。modbus_tcp_server 是设备连进来。产品行只能选一个字符串。

认证功能码要写进固件

标准从站不会理 FC 65。只开 503、不改设备固件,连接在、永远不会进入轮询。

示意图:按本仓库实现画的时序。

配置与操作 ​

yaml 开 id: modbus-tcp-server-1,protocol: modbus_tcp_server,网关听 503。设备主动连上后,先走自定义功能码认证(样例 FC 65),再由网关发读请求。产品 protocolType 填 modbus_tcp_server。

和 Client 方向相反:不要让网关去连从站 502。开启见 IoT 功能设计。

IoT 首页

本系统截图:IoT 首页。协议实例在网关 yaml,没有「MQTT / HTTP」独立菜单。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版