LC-NW-3-1
目录
产品名称
Modbus RTU 单路网络继电器模块 有线以太网 局域网控制 1路输出
LC-NW-3-1视图
概述
艾尔赛单路Modbus网络继电器模块搭载成熟稳定的32位MCU和W5500全硬件TCP/IP协议栈网络芯片。预留MCU调试接口支持二次开发。
采用标准MODBUS RTU格式的通讯协议,可以实现局域网内控制1路继电器输出,可用于有线网络下的功率控制场合。
功能特点
1,板载成熟稳定的32bit MCU STM32F103C6T6芯片;
2,板载W5500全硬件TCP/IP协议栈以太网芯片,支持10/100M bps速率;
3,通讯协议:支持标准Modbus RTU协议;
4,设备作为TCP Server端,支持IP地址DHCP功能,端口号5000;
5,可通过串口查看模块IP地址,UART通讯波特率:115200;
6,输出信号:继电器开关信号,支持手动、闪闭、闪断模式,闪闭/闪断的延时基数为0.1s,最大可设闪闭/闪断时间为0xFFFF*0.1S=6553.5S;
7,设备地址:范围1-255,默认255,支持掉电保存;
8,继电器状态、设备地址可使用软件/指令进行读取;
9,板载1路5V,10A/250V AC 10A/30V DC继电器,可连续吸合10万次,具有二极管泻流保护,响应时间短;
10,板载电源和继电器开关指示灯;
11,板载MCU复位按键;
12,预留UART串口和SWD程序烧写口,支持二次开发;
13,供电电压:DC7-28V,支持5.08mm端子供电,带输入防反接保护。
硬件介绍和说明
1,板子尺寸重量
2,接口介绍
1,主控MCU:STM32F103C6T6;
2,网络芯片:W5500全硬件TCP/IP协议栈以太网芯片;
3,网络接口:10M/100Mbps HR911105A网络变压器;
4,5.08mm端子供电口:DC7~28V电源输入,其中GND为负;
5,MCU复位按键:短按一下复位;
6,MCU SWD调试接口:二次开发烧写用;
7,MCU UART调试接口:GND,RXD,TXD:TTL电平UART通讯接口,GND,RXD,TXD分别接外部控制端的GND,TXD,RXD,
支持连接3.3V/5V外部TTL串口,默认用于串口查看设备IP地址和端口号,波特率115200;
8,1路继电器开关信号输出:
NC:常闭端,继电器吸合前与COM短接,吸合后悬空;
COM:公共端;
NO:常开端,继电器吸合前悬空,吸合后与COM短接。
3,Modbus RTU指令简介
Modbus设备通过接收来自外部控制端(如:上位机)的Modbus RTU指令来执行相关操作,一帧指令一般由设备地址、功能码、寄存器地址、寄存器数据、校验码组成,帧长度和功能码有关。
一般每帧数据的首字节为设备地址,可设置范围为1-255,默认255(即0xFF),最后2字节为CRC校验码。
假设设备地址为255,则常用的Modbus RTU指令如下:
1,打开1号继电器(手动模式)
发送: FF 05 00 00 FF 00 99 E4
原样返回:FF 05 00 00 FF 00 99 E4
备注:(1)发送帧的第3--4个字节代表继电器地址,#1继电器--#32继电器地址分别为:0x0000-0x001F
(2)发送帧的第5--6个字节代表数据,0xFF00代表打开继电器,0x0000代表关闭继电器
2,关闭1号继电器(手动模式)
发送: FF 05 00 00 00 00 D8 14
原样返回:FF 05 00 00 00 00 D8 14
3,打开2号继电器(手动模式)
发送: FF 05 00 01 FF 00 C8 24
原样返回:FF 05 00 01 FF 00 C8 24
4,关闭2号继电器(手动模式)
发送: FF 05 00 01 00 00 89 D4
原样返回:FF 05 00 01 00 00 89 D4
5,打开所有继电器
发送:FF 0F 00 00 00 20 01 FF B0 15
返回:FF 0F 00 00 00 20 41 CD
6,关闭所有继电器
发送:FF 0F 00 00 00 20 01 00 F0 55
返回:FF 0F 00 00 00 20 41 CD
7,设置设备地址为1
发送: 00 10 00 00 00 01 02 00 01 6A 00
原样返回:00 10 00 00 00 01 02 00 01 6A 00
备注:发送帧的第9个字节0x01为写入的设备地址
8,设置设备地址为255
发送: 00 10 00 00 00 01 02 00 FF EB 80
原样返回:00 10 00 00 00 01 02 00 FF EB 80
备注:发送帧的第9个字节0xFF为写入的设备地址
9,读取设备地址
发送: 00 03 00 00 00 01 85 DB
返回: 00 03 02 00 FF C5 C4
备注:返回帧的第5个字节0xFF为读取到的设备地址
10,读取继电器状态
发送: FF 01 00 00 00 20 28 0C
返回: FF 01 04 00 00 00 01 25 DE
备注:返回帧的第4-7个字节的Bit31-Bit0 分别代表#32 继电器--#1 继电器状态,0 为关,1 为开
11,打开1号继电器(闪闭模式2S)
发送: FF 10 00 00 00 02 04 00 04 00 14 85 8A
返回: FF 10 00 00 00 02 A4 16
备注:(1)发送帧的第3--4个字节代表继电器地址,#1 继电器--#32 继电器地址分别为:0x0000-0x001F
(2)发送帧的第10--11个字节代表延时设置值,延时基数为0.1S,故延时时间为0x0014*0.1=20*0.1S=2S,继电器打开2S后自动关闭
12,关闭1号继电器(闪断模式3S)
发送: FF 10 00 00 00 02 04 00 02 00 1E E5 8C
返回: FF 10 00 00 00 02 54 16
备注:(1)发送帧的第3--4个字节代表继电器地址,#1 继电器--#32 继电器地址分别为:0x0000-0x001F
(2)发送帧的第10--11个字节代表延时设置值,延时基数为0.1S,故延时时间为0x001E*0.1=30*0.1S=3S,继电器关闭3S后自动打开
4,简单使用说明
1,查看设备参数
设备上电后会使用DHCP功能自动获取IP地址,需使用串口调试助手来查看设备IP和端口号(注:所有设备的端口号都是5000),方法如下:
(1)插上网线,UART调试口连接USB转TTL模块(如:CH340),连接电源,其中UART接线如下:
网络继电器模块 | TTL模块 |
GND | GND |
TXD | RXD |
RXD | TXD |
(2)打开串口调试助手(如:SSCOM),选择正确的COM口,波特率115200,模块上电或者按一下复位键后越过6s会自动获得IP地址,请记住此IP地址和端口号,如下:
2,使用网络调试助手控制设备
设备成功获得IP地址后会生成一个TCP Server端供Client端连接,以发送一条TCP指令控制继电器为例(假设设备地址为255),步骤如下:
(1)打开网络调试助手,选择协议类型:TCP Client,以及上一步所得到的IP地址和端口号,点击连接
(2)连接成功后,在数据发送窗口输入打开1号继电器的指令:FF 05 00 00 FF 00 99 E4,若继电器有动作说明通讯正常
5,如何生效校验码
Modbus RTU指令通过现成的上位机软件(如:ModbusRTU配置工具)来发送时,CRC校验码是自动生成的,如果想使用网络调试软件(如NetAssist)
来测试Modbus继电器模块时就需要手动生成CRC校验码放在发送帧的末尾,比如打开第1路继电器(手动模式):
1,打开/关闭继电器(手动模式)的发送帧组成为:
设备地址(1Byte)+功能码(1Byte)+寄存器地址(2Byte)+寄存器数据(2Byte)+CRC校验码(2Byte)
2,假设设备地址为0xFF, 则发送帧的前6个字节为:FF 05 00 00 FF 00
3,使用CRC校验工具对这6个字节求验证码:http://www.ip33.com/crc.html
4,交换校验计算结果E499的高低字节位置后得到CRC校验码99E4,以及完成的发送帧:FF 05 00 00 FF 00 99 E4
5,将该发送帧通过网络调试助手发送到Modbus继电器模块即可打开第一路继电器。
Modbus RTU指令详解
1,打开1号继电器(手动模式)
发送: FF 05 00 00 FF 00 99 E4
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
05 | 功能码 | 写单个线圈 |
00 00 | 继电器地址 | 0x0000--0x0007分别代表#1继电器--#8继电器 |
FF 00 | 开/关命令 | 0x0000为关,0xFF00为开 |
99 E4 | CRC16 | CRC-16/MODBUS校验码 |
原样返回:FF 05 00 00 FF 00 99 E4
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
05 | 功能码 | 写单个线圈 |
00 00 | 继电器地址 | 0x0000--0x0007分别代表#1继电器--#8继电器 |
FF 00 | 开/关命令 | 0x0000为关,0xFF00为开 |
99 E4 | CRC16 | CRC-16/MODBUS校验码 |
2,关闭1号继电器(手动模式)
发送: FF 05 00 00 00 00 D8 14
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
05 | 功能码 | 写单个线圈 |
00 00 | 继电器地址 | 0x0000--0x0007分别代表#1继电器--#8继电器 |
00 00 | 开/关命令 | 0x0000为关,0xFF00为开 |
D8 14 | CRC16 | CRC-16/MODBUS校验码 |
原样返回:FF 05 00 00 00 00 D8 14
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
05 | 功能码 | 写单个线圈 |
00 00 | 继电器地址 | 0x0000--0x0007分别代表#1继电器--#8继电器 |
00 00 | 开/关命令 | 0x0000为关,0xFF00为开 |
D8 14 | CRC16 | CRC-16/MODBUS校验码 |
3,打开所有继电器
发送: FF 0F 00 00 00 20 01 FF B0 15
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
0F | 功能码 | 写多个线圈 |
00 00 | 起始地址 | #1继电器地址 |
00 20 | 继电器数量 | 要控制的继电器总数量 |
01 | 命令字节数 | 控制命令字长度 |
FF | 控制命令 | 0x00为全关,0xFF为全开 |
B0 15 | CRC16 | CRC-16/MODBUS校验码 |
返回:FF 0F 00 00 00 20 41 CD
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
0F | 功能码 | 写多个线圈 |
00 00 | 起始地址 | #1继电器地址 |
00 20 | 继电器数量 | 要控制的继电器总数量 |
41 CD | CRC16 | CRC-16/MODBUS校验码 |
4,关闭所有继电器
发送: FF 0F 00 00 00 20 01 00 F0 55
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
0F | 功能码 | 写多个线圈 |
00 00 | 起始地址 | #1继电器地址 |
00 20 | 继电器数量 | 要控制的继电器总数量 |
01 | 命令字节数 | 控制命令字长度 |
00 | 控制命令 | 0x00为全关,0xFF为全开 |
F0 15 | CRC16 | CRC-16/MODBUS校验码 |
返回:FF 0F 00 00 00 20 41 CD
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
0F | 功能码 | 写多个线圈 |
00 00 | 起始地址 | #1继电器地址 |
00 20 | 继电器数量 | 要控制的继电器总数量 |
41 CD | CRC16 | CRC-16/MODBUS校验码 |
5,设置设备地址为255
发送: 00 10 00 00 00 01 02 00 FF EB 80
字段 | 含义 | 注释 |
00 | 固定值 | |
10 | 功能码 | 写多个寄存器 |
00 00 | 起始地址 | |
00 01 | 写寄存器个数 | |
02 | 写寄存器字节数 | 写寄存器数据长度 |
00 FF | 寄存器数据 | 写入设备地址0x00FF,范围:0x0001-0x00FF |
E8 80 | CRC16 | CRC-16/MODBUS校验码 |
原样返回:00 10 00 00 00 01 02 00 FF EB 80
字段 | 含义 | 注释 |
00 | 固定值 | |
10 | 功能码 | 写多个寄存器 |
00 00 | 起始地址 | |
00 01 | 写寄存器个数 | |
02 | 写寄存器字节数 | 写寄存器数据长度 |
00 FF | 寄存器数据 | 即:写入设备地址0x00FF,范围:0x0001-0x00FF |
EB 80 | CRC16 | CRC-16/MODBUS校验码 |
6,读取设备地址255
发送: 00 03 00 00 00 01 85 DB
字段 | 含义 | 注释 |
00 | 固定值 | |
03 | 功能码 | 读保持寄存器 |
00 00 | 起始地址 | |
00 01 | 寄存器数量 | 读寄存器数量 |
85 DB | CRC16 | CRC-16/MODBUS校验码 |
返回:00 03 02 00 FF C5 C4
字段 | 含义 | 注释 |
00 | 固定值 | |
03 | 功能码 | 读保持寄存器 |
02 | 数据字节数 | 从寄存器读取到的数据长度 |
00 FF | 寄存器数据 | 读取到设备地址为0x00FF |
C5 C4 | CRC16 | CRC-16/MODBUS校验码 |
7,读取继电器状态
发送: FF 01 00 00 00 20 28 0C
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
01 | 功能码 | 读线圈状态 |
00 00 | 起始地址 | #1继电器地址 |
00 20 | 寄存器数量 | 要读取的继电器总数量为0x0008 |
28 0C | CRC16 | CRC-16/MODBUS校验码 |
返回: FF 01 04 00 00 00 01 25 DE
字段 | 含义 | 注释 |
FF | 固定值 | |
01 | 功能码 | 读保持寄存器 |
04 | 数据字节数 | 从寄存器读取到的数据长度 |
00 00 00 01 |
数据 | 读取到的数据,Bit0-Bit3分别代表#1继电器--#32继电器状态,0为关,1为开 |
25 DE | CRC16 | CRC-16/MODBUS校验码 |
8,打开1号继电器(闪闭模式2S)
发送: FF 10 00 00 00 02 04 00 04 00 14 85 8A
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
10 | 功能码 | 写多个寄存器 |
00 00 | 继电器地址 | #1继电器--#32继电器地址分别为0x0000-0x001F |
00 02 | 写寄存器个数 | |
04 | 写寄存器字节数 | 写寄存器数据长度 |
00 04 | 寄存器1数据 | 闪闭/闪断值,0x0004代表闪闭,0x0002代表闪断 |
00 14 | 寄存器2数据 | 延时设置值,范围:0x0001--0xFFFF。延时基数为0.1S, 故延时时间为0x0014*0.1=20*0.1S=2S,#1继电器闭合2S后自动断开 |
C5 9F | CRC16 | CRC-16/MODBUS校验码 |
返回: FF 10 00 00 00 02 A4 16
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
10 | 功能码 | 写多个寄存器 |
00 00 | 继电器地址 | #1继电器--#32继电器地址分别为:0x0000-0x001F |
00 02 | 写寄存器个数 | |
54 16 | CRC16 | CRC-16/MODBUS校验码 |
9,关闭1号继电器(闪断模式3S)
发送: FF 10 00 00 00 02 04 00 02 00 1E E5 8C
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
10 | 功能码 | 写多个寄存器 |
00 00 | 继电器地址 | #1继电器--#32继电器地址分别为0x0000-0x001F |
00 02 | 写寄存器个数 | |
04 | 写寄存器字节数 | 写寄存器数据长度 |
00 02 | 寄存器1数据 | 闪闭/闪断值,0x0004代表闪闭,0x0002代表闪断 |
00 1E | 寄存器2数据 | 延时设置值,范围:0x0001--0xFFFF。延时基数为0.1S, 故延时时间为0x001E*0.1=30*0.1S=3S,#1继电器闭合3S后自动断开 |
E5 8C | CRC16 | CRC-16/MODBUS校验码 |
返回:FF 10 00 00 00 02 54 16
字段 | 含义 | 注释 |
FF | 设备地址 | 范围1-255,默认255 |
10 | 功能码 | 写多个寄存器 |
00 00 | 继电器地址 | #1继电器--#32继电器地址分别为:0x0000-0x001F |
00 02 | 写寄存器个数 | |
54 16 | CRC16 | CRC-16/MODBUS校验码 |
串口指令详解
1,设置默认MAC地址为00.00.00.58.58.58
发送:A0 A0 01 00 00 00 58 58 58 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
01 | 功能码 | 设置默认MAC地址 |
00 00 00 58 58 58 |
默认MAC地址 | 6字节MAC地址 注意:设置时不要出现连续的A0/连续的AA以免和帧头/帧尾 冲突! 出厂默认值:00:08:dc:11:11:11 |
AA AA | 帧尾 | 结束字节 |
返回:A0 A0 01 01 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
01 | 功能码 | 设置默认MAC地址 |
01 | 设置状态 | 返回01代表设置成功 |
AA AA | 帧尾 | 结束字节 |
2,设置默认IP地址为192.168.0.88
发送:A0 A0 02 C0 A8 00 58 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
02 | 功能码 | 设置默认IP地址 |
C0 A8 00 58< |
默认IP地址 | 十六进制数据C0 A8 00 58代表十进制IP地址192.168.0.88 注意:设置时不要出现连续的A0/连续的AA以免和帧头/帧尾 冲突! 出厂默认值:192.168.1.88 |
AA AA | 帧尾 | 结束字节 |
返回:A0 A0 02 01 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
02 | 功能码 | 设置默认IP地址 |
01 | 设置状态 | 返回01代表设置成功 |
AA AA | 帧尾 | 结束字节 |
3,设置默认网关为192.168.0.1
发送:A0 A0 03 C0 A8 00 01 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
03 | 功能码 | 设置默认网关 |
C0 A8 00 01< |
默认网关 | 十六进制数据C0 A8 00 01代表十进制网关192.168.0.1 注意:设置时不要出现连续的A0/连续的AA以免和帧头/帧尾 冲突! 出厂默认值:192.168.1.1 |
AA AA | 帧尾 | 结束字节 |
返回:A0 A0 03 01 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
03 | 功能码 | 设置默认网关 |
01 | 设置状态 | 返回01代表设置成功 |
AA AA | 帧尾 | 结束字节 |
4,查询设置的参数 发送:A0 A0 10 AA AA
字段 | 含义 | 注释 |
A0 A0 | 帧头 | 起始字节 |
10 | 功能码 | 查询设置的参数 |
AA AA | 帧尾 | 结束字节 |
返回:Flash保存的默认MAC、默认IP和默认网关参数
串口指令使用说明
关于默认MAC地址:只有同一局域网下有多个Modbus网络继电器模块情况下才需要根据实际需求进行设置。
关于默认IP地址和网关:模块默认从路由器通过DHCP方式获得IP地址和网关参数,一般不需要设置这2个参数,只有DHCP获取失败的情况下才需要根据实际需求进行设置,如下:
以下以使用串口调试软件sscom5.13.1设置网络参数为例,步骤如下:
1,通过USB转TTL模块(如CH340/FT232模块)连接模块的串口,接线如下:
USB转TTL模块 | 网络继电器模块 |
3V3 | 3V3 |
GND | GND |
TXD | RXD |
RXD | TXD |
然后将USB转TTL模块插到电脑USB口
备注:设置参数时可以不用插网线!
2,打开sscom5.13.1软件,选择正确的COM口,波特率选择115200,上电前8秒的样子模块会尝试通过DHCP获取网络参数并输出相应的调试信息
3.调试信息显示完成后就可以通过串口设置默认网络参数了,因为指令是十六进制的,所以需勾选“HEX显示”和“HEX发送”,在指令区输入指令然后点发送即可设置
以下是设置列举:
1,设置默认MAC地址为00.00.00.58.58.58
发送:A0 A0 01 00 00 00 58 58 58 AA AA
返回:A0 A0 01 01 AA AA
2,设置默认IP地址为192.168.0.88
发送:A0 A0 02 C0 A8 00 58 AA AA
返回:A0 A0 02 01 AA AA
3,设置默认网关为192.168.0.1
发送:A0 A0 03 C0 A8 00 01 AA AA
返回:A0 A0 03 01 AA AA
4,查询设置的参数
因为参数是以文本形式显示的,所以需先取消勾选“HEX显示”
发送:A0 A0 10 AA AA
返回:
Flash存储的网络参数如下:
Flash存储的 MAC地址 : 0.0.0.58.58.58
Flash存储的 IP地址 : 192.168.0.88
Flash存储的 网关 : 192.168.0.1
参数设置完成后需断电重启/按板载RST键使设置生效!
备注:
1,设置的参数支持断电保存;
2,设置默认IP和网关时第三位数据表示网段比较关键,比如连在路由器上面的其他设备的IP地址是192.168.0.XXX,
那默认IP地址和网关也就只能分别设置成192.168.0.XXX和192.168.0.1;
3,设置默认IP时可进路由器后台确认该IP地址是否已经被占用,只有空闲的才能拿来用!
4,关于十六进制和十进制之前的转换可以用Win10自带的计算器软件查看