
1.关于手册
1.1.略缩词介绍
| 略缩词 | 解释 |
|---|---|
| DI | 数字量输入(Digital input):用于接收离散的数字信号,通常用于检测开关状态或传感器的开关信号。 |
| DO | 数字量输出(Digital output):用于将数字信号输出到外部设备,通常由开关晶体管或继电器构成,用于控制电机或其他执行单元。 |
| AI | 模拟量输入(Analog input):用于接收连续变化的模拟信号,并将其转换为可以处理的数字信号,例如传感器输出的电压或电流信号。 |
| AO | 模拟量输出(Analog output):用于将处理后的数字信号转换为模拟信号,以控制外部设备,如调节电机速度或温度。 |
1.2.命名规则
瞬锐智控IO控制器设备的命名规则如下表:
| 系列标识 | 分隔符 | DI数量 | DO数量 | AI数量 | AO数量 | 分隔符 | 联网类型 |
|---|---|---|---|---|---|---|---|
| SC-NI | “空格” | 0 | 0 | 2 | 2 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 0 | 0 | 4 | 4 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 0 | 3 | 0 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 0 | 8 | 0 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 2 | 2 | 0 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 4 | 4 | 0 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 4 | 4 | 2 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 8 | 8 | 0 | 0 | “空格” | 4G通信:LTE以太网:ETH |
| SC-NI | “空格” | 8 | 8 | 2 | 2 | “空格” | 4G通信:LTE以太网:ETH |
1.3.本手册适用型号
除特殊说明,本手册所有介绍的功能均适用型号如下表所示
不同型号的设备在硬件参数上有所差别,软件功能上完全一样,本手册的案例以 SC-NI 8822为例进行说明,其他型号的设备用法完全一样,本手册适用型号如下表:
| 型号 | DI | DO | AI | AO |
|---|---|---|---|---|
| SC-NI 0022 | 0 | 0 | 2 | 2 |
| SC-NI 0044 | 0 | 0 | 4 | 4 |
| SC-NI 0300 | 0 | 3 | 0 | 0 |
| SC-NI 0800 | 0 | 8 | 0 | 0 |
| SC-NI 2200 | 2 | 2 | 0 | 0 |
| SC-NI 4400 | 4 | 4 | 0 | 0 |
| SC-NI 4420 | 4 | 4 | 2 | 0 |
| SC-NI 8800 | 8 | 8 | 0 | 0 |
| SC-NI 8822 | 8 | 8 | 2 | 2 |
1.4.硬件准备
(1)USB转RS485调试器(或者其他可以实现UART转RS485的通信转换器),购买渠道:
https://item.taobao.com/item.htm?ft=t&id=1055269224154
(2)12V 1A电源适配器(或者其他符合8~36V的直流电源),购买渠道:
https://item.taobao.com/item.htm?ft=t&id=1055270916598
(3) IO控制器SC-NI XXXX全系列购买渠道:
https://item.taobao.com/item.htm?ft=t&id=1093450112708
1.5.资料下载
(1)上位机软件,下载链接:
(2)USB转RS485调试器驱动程序,下载链接:
https://doc.shunrui.cn/doc/22/
2.前期准备
2.1.硬件准备
升级固件需准备以下硬件:
(1)12V电源适配器 1个。
(2)UART转RS485转换器一个(带A、B线)。
(3)RS485接口SC-NI型号IO控制器 1台(SC-NI 8822为例)。

注:本产品采用宽电压直流8~36V供电,整机功率小于4瓦。建议使用DC12/24V 1A的电源适配器给设备供电。
2.2.硬件连接
(1)SC-NI系列电源和通讯接线端子定义如下表:
| 序号 | 端子名称 | 信号定义 | 备注 |
|---|---|---|---|
| 1 | V+ | 供电电源正 | 电源 |
| 2 | V- | 供电电源负 | 电源 |
| 3 | A+ | RS485 A | 通信 |
| 4 | B- | RS485 B | 通信 |
(2)根据上表,按对应关系接入电源线和RS485通讯线。

2.3.通信连接
设备出厂默认串口通信参数如下,首次通讯请按下表配置串口参数:
| 波特率 | 9600 |
|---|---|
| 数据位 | 8 |
| 校验位 | 无校验(None) |
| 停止位 | 1位 |
| 通讯地址 | 0x30 |
(1)连接RS485并确认串口号:
本次演示采用USB转RS485通信转换器进行演示,将485通信接口A信号连接设备RS485-A端子,B信号连接设备RS485-B端子,正常情况下调试器GND信号可以不与设备“GND端子”相接,如果现场RS485总线干扰较大,通信不稳定也可以考虑接上。
将USB转RS485调试器插入电脑USB接口,打开“设备管理器”并记录串口对应的COM序号,本演示串口号为图示“COM3”。

(2)供电并查看工作是否正常:接通电源适配电源给设备供电,等待设备正常运行,设备正常运行时运行灯会按照亮400毫秒、灭400毫秒的频率闪烁。
(3)运行上位机并打开串口:运行上位机“瞬锐LTE 网络IO控制器设置软件”,在右上角“通信参数”处选择“设备管理器”端口号的串口号,其它参数保持和下图一致,点击“打开”按钮。

备注:点击后如“打开”按钮左侧的圆圈不由灰色变为蓝色或上位机右下角提示“串口打开失败”时,请关闭其它占用该串口的软件或者重启电脑。
(4)通过上位机软件查看设备系统参数:
点击上位机左侧“设备系统参数”导航条,再在中间区域“设备系统参数”下方点击“读取设备系统参数”按钮。上位机右侧“日志”栏会展示和设备交互指令,待设备正确回应后会在中间状态栏展示窗口展示“设备型号”“软硬件版本”“设备SN编码”等信息。

2.4.获取通信参数
在遗忘从机地址或串口参数时,可以通过特殊上电启动方式获取关键参数。
(1)将设备关电,通过USB转RS485调试器将设备和电脑直连。上位机软件“电脑通信参数”配置230400波特率、8位数据位、1停止位、无检验位,去掉右侧“日志”侧边栏“Hex”勾选。
(2)按住复位按钮不松开,给设备接入供电电源,等待5秒左右待收到如下图的数据日志时松开复位按钮。

(3)如上图所示,电脑串口收到了“设备名称”、“RS485口参数”和“从机地址”一共三个关键参数。
3.上位机配置Socket通信
本产品支持2路Socket,每路socket都可以配置为TCP Client或UDP Client类型。每路socket都可以配置为Modbus模式、JSON解析模式以及Modbus TCP转RTU模式。每路socket都独立支持注册包和心跳包。
**Modbus模式:**设备识别Modbus RTU和Modbus TCP格式的报文,如果请求从机地址和设备地址匹配,会根据请求报文响应。如果请求报文是Modbus RTU格式并且从机地址和设备地址不匹配,判断串口映射开关是否打开,打开则将报文转发RS485下游设备,并且把下游设备回应数据转发至数据来源端。
**Modbus TCP转RTU模式:**设备识别Modbus TCP格式的报文,不满足规范的数据帧都会丢弃。如果请求从机地址和设备地址匹配,会根据请求报文响应。如果请求从机地址和设备地址不匹配,判断串口映射开关是否打开,打开则将报文转换成Modbus RTU格式发给RS485下游设备,并且把下游设备回应数据转换成Modbus TCP再发至数据来源端。
**JSON解析模式:**设备识别符合公共读写协议的JSON格式报文,如果请求地址和SN与设备匹配,根据请求帧内容采集和配置本机接口并组装Json回应帧响应。如果请求地址和SN与设备不匹配,判断串口映射开关是否打开,如果打开则根据请求帧内容采集和配置下挂设备接口,并代理下挂组装Json回应帧响应。
注册包支持连接发送和随数据发送两种发送方式,“连接发送”代表设备和云服务器或云平台建立连接时主动发送一包设备特征数据,多用于上线注册;“随数据发送”代表设备每次向云服务器或云平台发送数据时都把注册信息添加在数据净荷前面,多用于标注数据来源。
**串口映射:**串口映射为跨接口转发总开关,适用于上述三种Socket工作模式。开关开启时,Socket收到非本机地址和SN的请求报文,将请求转发至RS485下游从机,同时把下游应答回传给请求源;开关关闭时,非本机地址和SN的请求报文直接丢弃,不转发到RS485总线。借助串口映射,可实现网口Socket与RS485下游设备之间的远程代理访问。
3.1.配置注册包和Modbus RTU模式
(1)点击上位机左侧“Socket1参数”导航条。
(2)选择“Socket类型”为“TCP Client”。
(3)填写“目标地址”为电脑公网IP地址“8.162.5.34”,目标端口为“22345”。
(4)选择“Socket模式”为“Modbus模式”。
(5)选择“注册包类型”为“设备名称”,选择“发送模式”为“连接发送”。
(6)点击“保存Socket1 参数”按钮并重启设备以生效Socket配置。

(7)点击上位机右上角“TCP/UDP”标签。
(8)选择“TCP/UDP”为“TCP Server”。
(9)查看“本机地址”为电脑本地IP地址“192.168.0.183”,填写“本机端口”为“22345”。
(10)去掉“日志”窗口上方“HEX”单选框对勾。
(11)点击“开始监听”按钮,可以收到设备发送过来的注册包,注册包内容为设备名称。
(12)点击“日志”窗口上方“HEX”单选框激活选中对勾。
(13)保持“发送区”窗口上方“HEX”单选框对勾。
(14)在发送内容区填写“30 05 00 00 FF 00 88 1B”,点击“发送”按钮,可以观察到设备第一路DO被打开。

3.2.配置心跳包和JSON模式
(1)点击上位机左侧“Socket2参数”导航条。
(2)选择“Socket类型”为“UDP Client”。
(3)填写“目标地址”为电脑公网IP地址“8.162.5.34”,目标端口为“19000”。
(4)选择“Socket模式”为“Json解析模式”。
(5)点击“心跳包使能”单选框激活选中对勾,填写“心跳包间隔”为“5” 。
(6)选择“心跳包类型”为“SN”
(7)点击“保存Socket2 参数”按钮并重启设备以生效Socket配置。

(8)点击上位机右上角“TCP/UDP”标签。
(9)选择“TCP/UDP”为“UDP Server”。
(10)查看“本机地址”为电脑IP地址“192.168.0.183”,填写“本机端口”为“19000”。
(11)去掉“日志”窗口上方的“HEX”单选框对勾。
(12)点击“开始监听”按钮,可以收到设备每5秒钟发送过来的心跳包,心跳包内容为设备SN。

(13)去掉“发送区”窗口上方“HEX”单选框对勾。
(14)在发送内容区填写
{"cmd":"set","id":0,"sn":"2607071821","ts":1748928000,"ver":"1.0","data":{"do":{"DO1":1}}},注意SN字段需要用设备真实SN替换,点击“发送”按钮,可以观察到设备第一路DO被打开并且可以收到设备回应的JSON格式数据。
说明:详细JSON读写格式和内容说明请阅读“公共JSON读写协议”章节。
3.3.配置Modbus TCP<-->RTU模式
由于SC-RI系列产品不支持联网和Modbus TCP协议, Modbus TCP<-->RTU模式可以使用联网型IO控制器将Modbus TCP数据帧转换为Modbus RTU并通过RS485发送给下挂设备并将下挂设备回应的Modbus RTU报文转换成Modbus TCP数据回应给云电脑或服务器。

(1)点击上位机左侧“Socket2参数”导航条。
(2)选择“Socket类型”为“UDP Client”。
(3)填写“目标地址”为电脑公网IP地址“8.162.5.34”,目标端口为“19000”。
(4)选择“Socket模式”为“Modbus TCP<-->RTU”模式,“映射串口”勾选“Uart1”。
(5)点击“心跳包使能”单选框激活选中对勾,填写“心跳包间隔”为“5” 。
(6)选择“心跳包类型”为“SN”
(7)点击“保存Socket2 参数”按钮并重启设备以生效Socket配置。

(8)点击上位机右上角“TCP/UDP”标签。
(9)选择“TCP/UDP”为“UDP Server”。
(10)查看“本机地址”为电脑IP本地IP地址“192.168.0.183”,填写“本机端口”为“19000”。
(11)确认“发送区”和“日志”窗口上方“HEX”单选框对勾。
(12)在发送内容区填写00 09 00 00 00 06 01 05 00 00 FF 00。
(13)点击“发送”按钮。
(14)数据发送完成后,SC-RI 2200设备DO1闭合,socket接收日志显示接收到Modbus TCP回应帧。

4.串口助手配置Socket通信
(1)Modbus-RTU通信的帧结构。
| 用途 | 长度 | 描述 |
|---|---|---|
| 设备地址 | 1byte | 从机有唯一的地址,范围1-255 |
| 功能码 | 1byte | 主机要求从机执行的操作类型 |
| 数据 | 可变(0-252byte) | 包含了命令的具体参数,格式和长度取决于功能码 |
| CRC校验 | 2byte | 检查数据在传输过程中是否有错误 |
(2)Modbus-RTU功能码说明。
| 功能码 | 名称 | 数据类型 | 作用 |
|---|---|---|---|
| 0x03 | 读保持寄存器Read Holding Registers | 整型、浮点型、字符型 | 读取一个或多个保持寄存器当前数值 |
| 0x04 | 读输入寄存器Read Input Registers | 整型、浮点型 | 读取一个或多个输入寄存器当前数值 |
| 0x06 | 写单个保持寄存器WNIte Single Register | 整型、浮点型、字符型 | 设置一个保持寄存器 |
| 0x10 | 写多个保持寄存器WNIte Multiple Registers | 整型、浮点型、字符型 | 设置一串连续的保持寄存器 |
(3)Socket通信相关寄存器。
| 寄存器地址 | PLC或组态地址 | 内容 | 功能码 |
|---|---|---|---|
| 05B6H‑05B6H | 41463‑41463 | socket 1 模式0:Modbus 模式1:JSON 解析模式2:Modbus TCP 转 Modbus RTU | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05B7H‑05B7H | 41464‑41464 | socket 1 映射Bit0‑2 分别对应串口 1 2 3 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05B8H‑05B8H | 41465‑41465 | socket 1 类型0: 禁用1:TCPS2:TCPC3:UDPS4:UDPC | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05B9H‑05D8H | 41466‑41497 | socket 1 服务器地址字符串格式,最大 64 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05D9H‑05D9H | 41498‑41498 | socket 1 服务器端口号 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05DAH‑05DAH | 41499‑41499 | socket 1 注册包类型0: 禁用1: 设备名称2:SN3:MAC4:IMEI5:ICCID6: 自定义 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05DBH‑05DBH | 41500‑41500 | socket 1 注册包发送模式0: 不启用1: 连接发送2: 随数据发送 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05DCH‑05DCH | 41501‑41501 | socket 1 自定义注册包内容长度 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05DDH‑05F0H | 41502‑41521 | socket 1 自定义注册包内容HEX 或字符串格式,最大 40 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05F1H‑05F1H | 41522‑41522 | socket 1 心跳包发送间隔0: 不启用N: 定时 N 秒发送一次 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05F2H‑05F2H | 41523‑41523 | socket 1 心跳包类型0: 禁用1: 设备名称2:SN3:MAC4:IMEI5:ICCID6: 自定义 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05F3H‑05F3H | 41524‑41524 | socket 1 心跳包内容长度 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 05F4H‑0607H | 41525‑41544 | socket 1 心跳包包内容HEX 或字符串格式,最大 40 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0608H‑0608H | 41545‑41545 | socket 2 模式0:Modbus 模式1:JSON 解析模式2:Modbus TCP 转 Modbus RTU3: 透传模式 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0609H‑0609H | 41546‑41546 | socket 2 映射Bit0‑2 分别对应串口 1 2 3 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 060AH‑060AH | 41547‑41547 | socket 2 类型0: 禁用1:TCPS2:TCPC3:UDPS4:UDPC | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 060BH‑062AH | 41548‑41579 | socket 2 服务器地址字符串格式,最大 64 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 062BH‑062BH | 41580‑41580 | socket 2 服务器端口号 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 062CH‑062CH | 41581‑41581 | socket 2 注册包类型0: 禁用1: 设备名称2:SN3:MAC4:IMEI5:ICCID6: 自定义 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 062DH‑062DH | 41582‑41582 | socket 2 注册包发送模式0: 不启用1: 连接发送2: 随数据发送 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 062EH‑062EH | 41583‑41583 | socket 2 自定义注册包内容长度 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 062FH‑0642H | 41584‑41603 | socket 2 自定义注册包内容HEX 或字符串格式,最大 40 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0643H‑0643H | 41604‑41604 | socket 2 心跳包发送间隔0: 不启用N: 定时 N 秒发送一次 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0644H‑0644H | 41605‑41605 | socket 2 心跳包类型0: 禁用1: 设备名称2:SN3:MAC4:IMEI5:ICCID6: 自定义 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0645H‑0645H | 41606‑41606 | socket 2 心跳包内容长度 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
| 0646H‑0659H | 41607‑41626 | socket 2 心跳包包内容HEX 或字符串格式,最大 40 字节 | 0x03 (读保持寄存器)0x06 (写单个寄存器)0x10 (写多个寄存器) |
4.1.配置注册包和Modbus RTU模式
(1)配置选择“Socket1模式”为“Modbus RTU模式”。
请求帧:30 06 05 B6 00 00 6C C1
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 05 B6 | 00 00 | 6C C1 |
配置数据0x0000表示socket模式为Modbus模式
回应帧:30 06 05 B6 00 00 6C C1
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 05 B6 | 00 00 | 6C C1 |
(2)配置“Socket1类型”为“TCP Client”。
请求帧:30 06 05 B8 00 02 8C C3
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 05 B8 | 00 02 | 8C C3 |
配置数据0x0002表示socket1类型”为“TCP Client”。
回应帧:30 06 05 B8 00 02 8C C3
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 05 B8 | 00 02 | 8C C3 |
(3)配置“目标地址”为电脑IP地址“8.162.5.34”。
[ASCII]8.162.5.34 ⇄[HEX]38 2E 31 36 32 2E 35 2E 33 34
请求帧:30 10 05 B9 00 05 0A 38 2E 31 36 32 2E 35 2E 33 34 6F 84
回应帧:30 10 05 B9 00 05 D5 02
(4)配置目标端口为“22345”。
请求帧:30 06 05 D9 57 49 A3 1A
回应帧:30 06 05 D9 57 49 A3 1A
(5)配置“注册包类型”为“设备名称”。
请求帧:30 06 05 DA 00 01 6D 1C
回应帧:30 06 05 DA 00 01 6D 1C
(6)配置“发送模式”为“连接发送”。
请求帧:30 06 05 DB 00 01 3C DC
回应帧:30 06 05 DB 00 01 3C DC
(7)打开网络串口助手,选择TCP Server,填写刚刚配置的端口22345,点击打开。
(8)连接成功后,会接收到“设备名称”的注册信息。

(9)连接成功后,跟设备发送信息30 03 00 00 00 01 80 2B成功回复30 03 02 00 00 C5 80。
4.2.配置心跳包和JSON模式
(1)配置选择“Socket2模式”为“Json解析模式”。
请求帧:30 06 06 08 00 01 CD 61
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 08 | 00 01 | CD 61 |
配置数据0x0000表示socket2模式为Json解析模式
回应帧:30 06 06 08 00 01 CD 61
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 08 | 00 01 | CD 61 |
(2)配置“Socket2类型”为“UDP Client”。
请求帧:30 06 06 0A 00 04 AC A2
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 0A | 00 04 | AC A2 |
配置数据0x0004表示socket1类型”为“UDP Client”。
回应帧:30 06 06 0A 00 04 AC A2
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 0A | 00 04 | AC A2 |
(10)配置“目标地址”为电脑公网IP地址“8.162.5.34”。
[ASCII]8.162.5.34 ⇄[HEX]38 2E 31 36 32 2E 35 2E 33 34
请求帧:30 10 05 B9 00 05 0A 38 2E 31 36 32 2E 35 2E 33 34 6F 84
回应帧:30 10 05 B9 00 05 D5 02
(11)配置目标端口为“19000”。
请求帧:30 06 06 2B 4A 38 CB D9
回应帧:30 06 06 2B 4A 38 CB D9
(12)配置“心跳包间隔”为“5”。
请求帧:30 06 06 43 00 05 BC B4
回应帧:30 06 06 43 00 05 BC B4
(13)配置“心跳包类型”为“SN”。
请求帧:30 06 06 44 00 02 4C B7
回应帧:30 06 06 44 00 02 4C B7
(14)打开网络串口助手,选择UDP,填写刚刚配置的端口19000,点击打开。

(15)连接成功后,会接收到“设备SN”的心跳信息。
4.3.配置Modbus TCP<-->RTU模式
由于SC-RI系列产品不支持联网和Modbus TCP协议, Modbus TCP<-->RTU模式可以使用联网型IO控制器将Modbus TCP数据帧转换为Modbus RTU并通过RS485发送给下挂设备并将下挂设备回应的Modbus RTU报文转换成Modbus TCP数据回应给云电脑或服务器。

(1)按上图提示连接好网线和RS485接线,配置SC-RI 2200从机地址为1并重启生效。
(2)配置“Socket2类型”为“UDP Client”。
请求帧:30 06 06 0A 00 04 AC A2
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 0A | 00 04 | AC A2 |
配置数据0x0003表示socket1类型”为“UDP Client”。
回应帧:30 06 06 0A 00 04 AC A2
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 0A | 00 04 | AC A2 |
(3)配置“目标地址”为电脑公网IP地址“8.162.5.34”。
[ASCII]8.162.5.34 ⇄[HEX]38 2E 31 36 32 2E 35 2E 33 34
请求帧:30 10 05 B9 00 05 0A 38 2E 31 36 32 2E 35 2E 33 34 6F 84
回应帧:30 10 05 B9 00 05 D5 02
(4)配置目标端口为“19000”。
请求帧:30 06 06 2B 4A 38 CB D9
回应帧:30 06 06 2B 4A 38 CB D9
(5)配置“Socket2模式”为“Modbus TCP<-->RTU”。
请求帧:30 06 06 08 00 02 8D 60
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 08 | 00 02 | 8D 60 |
配置数据0x0002表示socket2模式为Modbus TCP<-->RTU模式
回应帧:30 06 06 08 00 02 8D 60
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 08 | 00 02 | 8D 60 |
(6)配置“映射串口”映射“Uart1”。
请求帧:30 06 06 09 00 01 9C A1
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 09 | 00 01 | 9C A1 |
配置数据0x0002表示socket2模式为Modbus TCP<-->RTU模式
回应帧:30 06 06 09 00 01 9C A1
| 地址码 | 功能码 | 起始地址 | 配置数据 | 检验码 |
|---|---|---|---|---|
| 30 | 06 | 06 09 | 00 01 | 9C A1 |
(7)配置“心跳包间隔”为“5”。
请求帧:30 06 06 43 00 05 BC B4
回应帧:30 06 06 43 00 05 BC B4
(8)配置“心跳包类型”为“SN”。
请求帧:30 06 06 44 00 02 4C B7
回应帧:30 06 06 44 00 02 4C B7
(9)打开网络串口助手,选择UDP,填写刚刚配置的端口19000,网络串口助手主动发送Modbus TCP协议与设备建立UDP连接。连接后会收到“设备SN”信息。收到SN信息时第4步有IP地址192.168.0.183和端口号52284。代表当前与设备建立连接的端口号是52234,在数据发送远程主机框填入192.168.0.183 :52284。就可与远程设备通讯。

(10)在发送内容区填写00 09 00 00 00 06 01 05 00 00 FF 00。注意这里接收到远程设备心跳包的端口号不是一直不变的,这里变为49262,所以端口号改为49262再发送就能成功通讯。
(11)数据发送完成后,SC-RI 2200设备DO1闭合,socket接收日志显示接收到Modbus TCP回应帧。

5.版本记录
| 版本号 | 变更内容 | 修改时间 |
|---|---|---|
| V1.0 | 初版 | 2026-10-21 |
资料获取
资料平台:doc.shunrui.cn

电 话:17786086105
商务合作
邮 箱:sales@shunrui.cn
投诉与建议