
config_rtu_to_tcp.xml - 串口设备转网络访问config_tcp_to_rtu.xml - 网络设备转串口访问config_tcp_to_tcp.xml - TCP 透明代理<Client> 和 <Server> 为实际设备参数ModbusGateway.exe
程序会自动加载同目录下的 config.xml 配置文件。Modbus 网关是一款专业的工业通信协议转换设备,支持 Modbus RTU、ASCII 和 TCP 三种协议之间的相互转换。
应用背景:SCADA 系统需要访问多个串口设备,但计算机串口资源有限。
连接方式:
[Modbus RTU 设备] → (串口) → [Modbus 网关] → (以太网) → [SCADA 系统]配置文件:config_rtu_to_tcp.xml
配置说明:
<?xml version="1.0" encoding="utf-8"?>
<ModbusGateway>
<!-- 连接串口设备 -->
<Client>rtu:COM1:9600-8-N-1</Client>
<!-- 开启 TCP 服务 -->
<Server>tcp:502</Server>
<!-- 允许的从站站号范围 -->
<ServerUnits>1-255</ServerUnits>
<!-- 最大并发连接数 -->
<ServerMaxConn>10</ServerMaxConn>
<!-- 是否显示控制台 -->
<NoConsole>false</NoConsole>
</ModbusGateway>
应用背景:老旧上位机只有串口,需要访问网络 Modbus 设备。
连接方式:
[Modbus TCP 设备] → (以太网) → [Modbus 网关] → (串口) → [上位机]配置文件:config_tcp_to_rtu.xml
配置说明:
<?xml version="1.0" encoding="utf-8"?>
<ModbusGateway>
<!-- 连接远程 TCP 设备 -->
<Client>tcp:192.168.1.100:502</Client>
<!-- 开启串口服务 -->
<Server>rtu:COM2:19200-8-E-1</Server>
<!-- 是否显示控制台 -->
<NoConsole>false</NoConsole>
</ModbusGateway>
应用背景:某 Modbus TCP 设备只支持一个客户端连接,需要共享给多个系统。
连接方式:
[客户端 1] ┐
[客户端 2] ├→ [Modbus 网关] → [Modbus TCP 设备]
[客户端 3] ┘配置文件:config_tcp_to_tcp.xml
配置说明:
<?xml version="1.0" encoding="utf-8"?>
<ModbusGateway>
<!-- 连接远程 TCP 设备 -->
<Client>tcp:192.168.1.50:502</Client>
<!-- 开启本地 TCP 服务 -->
<Server>tcp:502</Server>
<!-- 最大并发连接数 -->
<ServerMaxConn>20</ServerMaxConn>
<!-- 是否显示控制台 -->
<NoConsole>false</NoConsole>
</ModbusGateway>
协议类型 | 说明 |
|---|---|
Modbus RTU | 标准串行通信协议 |
Modbus ASCII | ASCII 模式的串行协议 |
Modbus TCP | 基于 TCP/IP 的 Modbus 协议 |
参数项 | 可选值 | 默认值 |
|---|---|---|
波特率 | 300 ~ 115200 | 9600 |
数据位 | 5, 6, 7, 8 | 8 |
校验位 | 无、奇、偶 | 无 |
停止位 | 1, 1.5, 2 | 1 |
参数项 | 默认值 |
|---|---|
TCP 端口 | 502 |
最大连接数 | 10 |
指标 | 数值 |
|---|---|
响应延迟 | < 10ms |
并发连接 | ≤ 20 |
站号范围 | 1-255 |
内存占用 | ~50MB |
CPU 占用 | < 5%(空闲) |
ModbusGateway.exe重要:程序会自动加载同目录下的 config.xml 配置文件。
如需使用其他配置文件,请重命名为 config.xml 或使用命令行参数:
./ModbusGateway.exe --config 配置文件名.xml方法一:直接双击运行(推荐)
ModbusGateway.exe方法二:命令行启动
./ModbusGateway.exe方法三:设置为 Windows 服务(生产环境推荐)
类似的工具很多,以 NSSM 工具举例:
# 安装服务
nssm install ModbusGateway
# 配置服务
Path: C:\Program Files\ModbusGateway\ModbusGateway.exe
Startup directory: C:\Program Files\ModbusGateway# 启动服务
net start ModbusGateway启动成功后,控制台显示:

TCP 模式测试:
127.0.0.1 或网关 IP502串口模式测试:
Ctrl+Cnet stop ModbusGateway可能原因:
解决方法:
netstat -ano | findstr ":502"[System.IO.Ports.SerialPort]::GetPortNames()可能原因:
解决方法:
可能原因:
解决方法:
netstat -ano | findstr ":502"可能原因:
解决方法:
如遇到无法解决的问题,请联系:
日志文件位于程序目录下的 Log 文件夹中:
C:\Program Files\ModbusGateway\Log\日志文件按日期自动命名:
2026_04_11.log # 2026 年 4 月 11 日的日志功能码 | 名称 | 说明 |
|---|---|---|
01 | 读线圈状态 | 读取开关量输出 |
02 | 读输入状态 | 读取开关量输入 |
03 | 读保持寄存器 | 读取模拟量输出 |
04 | 读输入寄存器 | 读取模拟量输入 |
05 | 写单个线圈 | 写入单个开关量 |
06 | 写单个寄存器 | 写入单个模拟量 |
15 | 写多个线圈 | 写入多个开关量 |
16 | 写多个寄存器 | 写入多个模拟量 |
术语 | 说明 |
|---|---|
Modbus | 工业串行通信协议 |
RTU | 远程终端单元,Modbus 传输模式 |
TCP | 传输控制协议 |
SCADA | 数据采集与监视控制系统 |
HMI | 人机界面 |
PLC | 可编程逻辑控制器 |
RS-232 | 串行通信标准 |
RS-485 | 串行通信标准 |