Modbus POE ETH Relay 16CH

来自Waveshare Wiki
跳转至: 导航搜索

说明

Modbus RTU Relay 16CH
{{{name2}}}
{{{name3}}}
功能简介
特性 双以太网继电器模块
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 Ethernet
  • 本产品是一款工业级双路以太网接口控制的 16 路继电器模块, 采用 Modbus RTU/Modbus TCP 协议,支持 PoE 网口供电,ABS 外壳设计。本产品操作简单,具有通信速度快、稳定、可靠、安全等特点,可适用于各种通信要求较高的工控设备或应用。

用电安全注意事项

  • 本产品须由专业的电工或技术人员作业使用,使用过程中请做好用电安全,防漏电和绝缘等保护措施。
  • 在安装、维护或更换继电器设备之前,请务必关闭电源并拔下插头。
  • 请勿试图拆卸继电器设备,以免损坏设备或导致电击危险。
  • 请妥善安装放置继电器设备产品,请勿在潮湿、过热、易燃坏境中使用,避免因安装或使用不慎,引发安全事故。

产品参数

供电方式 PoE 网口,DC 5.5*2.1 电源接口 或 接线端子 (7~36V)
通信接口 PoE 网口,支持 IEEE 802.3af 标准
继电器路数 16 路
触点类型 一常开、一常闭
触点负载 ≤10A 250V AC 或 ≤10A 30V DC
Modbus 协议 Modbus RTU 协议或 Modbus TCP 协议

指示灯说明

指示灯 状态说明
RUN灯 网口运行指示灯,网口工作正常后,会输出周期为2秒的方波。
STA灯 MCU指示灯,MCU正常工作时闪烁。
TXD灯 发送指示灯,发送数据时灯亮。
RXD灯 接收指示灯,接收数据时灯亮。
左网口绿色灯 网口 1 连接以太网后亮。
右网口绿色灯 网口 2 连接以太网后亮。
左网口黄色灯 TCP 连接建立后绿灯亮,可用于模块是否和上位机软件建立通讯链路。
右网口黄色灯 数据活动灯,当网口有数据传输时,黄色灯状态会改变,可以用于判断是否有数据传输。

硬件连接

Modbus-POE-ETH-Relay-C-details-21.jpg

  • 将模块通过网线连接到局域网,通过7~36V电源端口供电或者通过POE供电。两个网口功能一样,均可用于网口通讯和级联。

模块参数配置

模块再通讯前需要先设置模块参数,例如IP地址,串口格式,Modbus协议等。设置参数有Vircom软件配置和Web方式配置两种模式。
Vircom软件方式配置可以设置参数更多,但是需要安装软件,Web方式配置不需安装,但是需先知道IP地址,配置参数少。建议使用Virom配置。
注意:
1.配置可选任意一种方式,首次测试建议使用Virom软件方式配置。
2.首次配置建议只修改IP地址,其他参数不建议修改,串口参数必须为默认参数,修改串口参数则不能通讯。
3.模块支持Modbus RTU和Modbus TCP两种Modbus协议,在高级选项->转换协议中可选择,默认为"无",即Modbus RTU协议。首次配置不建议修改。
4.选择Modbus TCP协议必须使用Virom软件配置,设置为非存储Modbus网关,否则通讯不正常。

Virom软件方式配置

常规设置

将模块连接好硬件,并接入网络。运行Vircom 软件(安装Vircom的计算机须与模块在同个局域网内)。
操作如下:

  • 点击 设备管理
  • 点击 自动搜索
  • 软件搜索识别到接入到局域网的设备
  • 选择设备,然后点击 编辑设备 或者 直接双击搜索到的设备
  • 设置设备工作参数:
    • 点击“本地IP”按钮识别电脑IP地址,将“IP地址”修改为静态分配地址,注意输入的静态IP地址没有被其他设备使用,而且需要和电脑在同一局域网。
    • 工作模式为TCP服务器。串口设置默认为115200,不能修改。
    • “高级选项”中的“转换协议”,默认为“无”,即使用modbus rtu协议;如果选择“Modbus_TCP 协议”,则使用modbus tcp协议通讯。
  • 设置完成后,点击 Modify Setting修改设置
  • 点击 重启设备 ,等待模块重启,新的设置生效。

注意:首次配置建议只修改IP地址,其他参数不要修改。
具体见下图:
Modbus-POE-ETH-Relay-Vircom-setting-cn.jpg

协议设置

注意:首次配置建议使用默认Modbus RTU协议,不需要修改。
模块虽然通过网口传输数据,但是支持Modbus RTU和Modbus TCP两种Modbus协议。默认数据是透明传输,即使用Modbus RTU协议。
在“高级选项”中的“转换协议”可以设置为Modbus TCP协议。此时主控的Modbus RTU协议将转为Modbus TCP协议再通过网口传输。
此时设备端口自动变为 502,此时用户的 Modbus TCP 工具连接上串口服务器的 IP 的 502 端口,
启用modbus TCP功能.jpg

  • 如果设置为Modbus TCP协议,还需要设置为非存储型Modbus网口。点击“更多高级选项...”选择Modbus网关类型为非存储型Modbus网关。

注意:默认的modbus网关类型为存储型方式,会自动多次发送查询指令,可能会导致主控芯片响应不过来,导致查询指令不影响。故需要设置为非存储型Modbus网关 Modbus poe eth relay 4.png

虚拟串口设置

模块通过网口传输数据(TCP/UPD协议),为了能够让用户已有开发好的串口软件也能通讯,需要添加虚拟串口,若不需要可跳过此部分。
首先安装虚拟串口驱动Virtual-serial-port ,Vircom 和用户程序在一台计算机上运行。
Vircom 虚拟一个 COM 口,让这个 COM 口对应这个串口服务器。当用户程序打开 COM 通讯时可以通过 Vircom 串口服务器发到用户串口设备。下面演示这个操作步骤:

  • 点击 Vircom 主界面的“串口管理”,然后点击“添加”,选择添加 COM2(其中 COM2 须是计算机原来不存在的 COM 口)。

Modbus poe eth relay 3.png

  • 然后进入设备管理,并双击需要和 COM2 绑定的设备。如图 所示,在左上角的“虚拟串口”列表中选择 COM2。然后点击“修改设置”,再点击“重启设备”。

添加虚拟串口.jpg

  • 返回 Vircom 的主界面。可以看到 COM2 已经和 IP 为 192.168.1.200 的设备联通了。此时可以使用虚拟串口 COM2 代替网口进行通信。

虚拟串口已经联通.jpg

WEB方式配置

使用 Vircom 可以在不同的网段内搜索和配置设备参数,Web 方式配置需要首先保证计算机和串口服务器处于同一个 IP 段,且需要预先知道串口服务器的 IP 地址。
但是 Web 配置可以在任何一台没有 Vircom 的计算机上进行。(不同产品网页界面不同,可切换中英文显示)
1.在浏览器中输入串口服务器的 IP 地址,例如 http://192.168.1.200 打开如下网页
Modbus-POE-ETH-Relay-16CH-web.png
2.在 Password 中输入密码:出厂默认无设置登录密码,可随便输入一个密码,点击 Login 按钮登录。设置密码可登录后,在”修改网页登录密码”处设置生效:
WEB配置页面.jpg
3.在出现的网页中可以修改串口服务器参数。
4.修改参数后点击“提交修改”按钮。
注意:系统出厂默认已添加网页设置功能,如果覆盖了配置界面页面文件,导致网页无法打开,需要重新下载网页文件。
可参考:RS485 TO ETH (B)用户手册

实例演示

演示介绍了下面两种软件的操作方式。
SSCOM串口调试助手操作更方便,免安装,指令完整显示分析更方便,缺点是数据不直观。
Modbus Poll软件是直接对寄存器操作,数据显示更方便观察,缺点是指令不完成显示,需熟悉Modbus寄存器操作。
可选任意一种方式测试,首次测试建议使用SSCOM串口调试助手软件。

SSCOM串口调试助手

  • 打开串口调试助手窗口,端口号选择TCPClient,根据上面Vircom设置修改远程IP和端口号,加校验选择ModbusCRC16,点击“连接”按钮连接TCP服务端,连接成功后网口绿色灯将亮起。

Modbus poe eth relay b 2.png

  • 点击多字符串打开多条字符串发送窗口,此时默认显示的为Modbus RTU指令,而且没有CRC校验,需要加校验选择ModbusCRC16。点击对应的功能即可发送对应的命令。
  • 配置默认为Modbus RTU指令,如果设置为Modbus TCP指令,则需要更改指令。在多条字符串发送栏中点击导入ini按钮,选择modbus tcp.ini文件导入Modbus TCP指令。

注意:如果提示“A component named HEX0 already exists”错误。则关闭软件重新打开,再重新导入文件即可。
Modbus poe eth relay 6.png

  • 成功导入后显示如下,点击对应的功能即可发送对应的命令。

注意:modbus tcp不需要CRC校验,加校验选择None。
Modbus poe eth relay 5.png

  • 更加详细的Modubs指令请查看请查看开发协议。

Modbus Poll软件

  • 串口软件不方便观察数据,可以选择Modbus Poll软件读取数据。下载并安装Modbus Poll软件。
  • 打开软件,选择setup->Read/Write Definition,Slave ID选择实际设备地址,Function选择01 Read Coils功能码,Quantity改为16通道。点击OK确认。

Modbus-POE-ETH-Relay-16CH-1.png

  • 选择Connection->Connect...,Connection选择Modbus RTU/ASCII Over TCP/IP,Mode选择RTU,输入正确的IP地址和端口号。点击OK连接。

Modbus-POE-ETH-Relay-6.jpg

  • 连接正常后则可以查看当前继电器状态,选择对应通道后,双击状态值即可跳出发送页面,选择ON或OFF,然后发送即可控制对应的继电器开合。

Modbus-RTU-Relay-C-2.png

Modbus RTU 开发协议

功能码介绍

功能码 功能说明 备注
01 读线圈状态 读继电器状态
03 读保持寄存器 读取地址、版本
05 写单线圈 写单个继电器
06 写单寄存器 设置波特率,地址
0F 写多个线圈 写全部继电器

寄存器地址介绍

地址(HEX) 地址存储内容 寄存器取值 权限 Modbus 功能码
0x0000
……
0x000F
道通1~通道16继电器地址 0xFF00:继电器开启;
0x0000:继电器关闭;
0x5500:继电器翻转;
读/写 0x01,0x05,0x0F
0x00FF 操作全部继电器 0xFF00:继电器全部开启;
0x0000:继电器全部关闭;
0x5500:继电器全部翻转;
0x05
0x0100
……
0x010F
道通1~通道16继电器翻转 0xFF00:继电器翻转;
0x0000:继电器不变;
0x05,0x0F
0x01FF 翻转全部继电器 0xFF00:继电器全部翻转;
0x0000:继电器全部不变;
0x05
0x0200
……
0x020F
道通1~通道16继电器闪开 延时时间为数据*100ms
数值:0x0007,延时:7*100MS = 700MS
0x05
0x0400
……
0x040F
道通1~通道16继电器闪闭 延时时间为数据*100ms
数值:0x0007,延时:7*100MS = 700MS
0x05
4x4000 设备地址 直接存储 Modbus 地址
设备地址:0x0001
0x03
4x8000 软件版本 转为十进制然后小数点左移两位即表示软件版本
0x0064 = 100 = V1.00
0x03

Modbus RTU指令介绍

控制单个继电器

发送码:01 05 00 00 FF 00 8C 3A

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 控制继电器指令
00 00 地址 要控制继电器的寄存器地址,0x0000 - 0x000F
FF 00 指令 0xFF00:继电器开启;
0x0000:继电器关闭;
0x5500:继电器翻转;
8C 3A CRC16 前6字节数据的CRC16校验和

返回码: 01 05 00 00 FF 00 8C 3A

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 控制继电器指令
00 00 地址 要控制继电器寄存器地址,0x0000-0x000F
FF 00 指令 0xFF00:继电器开启;
0x0000:继电器关闭;
0x5500:继电器翻转;
8C 3A CRC16 前6字节数据的CRC16校验和

示例: [1号地址设备]:

0号继电器开启 : 01 05 00 00 FF 00 8C 3A
0号继电器关闭 : 01 05 00 00 00 00 CD CA
1号继电器开启 : 01 05 00 01 FF 00 DD FA
1号继电器关闭 : 01 05 00 01 00 00 9C 0A
2号继电器开启 : 01 05 00 02 FF 00 2D FA
2号继电器关闭 : 01 05 00 02 00 00 6C 0A
3号继电器开启 : 01 05 00 03 FF 00 7C 3A
3号继电器关闭 : 01 05 00 03 00 00 3D CA
0号继电器翻转 : 01 05 00 00 55 00 F2 9A
1号继电器翻转 : 01 05 00 01 55 00 A3 5A
2号继电器翻转 : 01 05 00 02 55 00 53 5A
3号继电器翻转 : 01 05 00 03 55 00 02 9A

控制全部继电器

发送码:01 05 00 FF FF 00 BC 0A

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 控制继电器指令
00 FF 地址 固定0x00FF
FF 00 指令 0xFF00:继电器开启;
0x0000:继电器关闭;
0x5500:继电器翻转;
BC 0A CRC16 前6字节数据的CRC16校验和

返回码: 01 05 00 FF FF 00 BC 0A

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 控制继电器指令
00 FF 地址 固定0x00FF
FF 00 指令 0xFF00:继电器开启;
0x0000:继电器关闭;
0x5500:继电器翻转;
BC 0A CRC16 前6字节数据的CRC16校验和

示例:[1号地址设备]:

全部继电器开启 : 01 05 00 FF FF 00 BC 0A
全部继电器关闭 : 01 05 00 FF 00 00 FD FA
全部继电器翻转 : 01 05 00 FF 55 00 C2 AA

读取继电器状态

发送码:01 01 00 00 00 10 3D C6

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
01 01指令 查询继电器状态指令
00 00 继电器起始地址 继电器的寄存器地址,0x0000 - 0x000F
00 10 继电器数量 读取继电器数量,不能超过最大继电器数量
3D C6 CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 01 02 00 00 B9 FC

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
01 01指令 查询继电器状态指令
02 字节数 返回状态信息的所有字节数。
00 00 查询的状态 返回的继电器状态
继电器状态为小端格式,低字节在前,高字节在后
Bit0:起始继电器状态;
Bit1:下个继电器状态,
依次类推,高端空闲位则为零
B9 FC CRC16 前 6 字节数据的 CRC16 校验和

示例:[1号地址设备]

发送 : 01 01 00 00 00 10 3D C6     //查询全部继电器
返回 : 01 01 02 00 00 B9 FC        //全部继电器关闭
发送 : 01 01 00 01 00 03 2D CB     //查询1,2,3号继电器状态
返回 : 01 01 01 05 91 8B           //1、3号继电器开启,2号继电器关闭
发送 : 01 01 00 04 00 0C 7D CE     //查询4-15号继电器
返回 : 01 01 02 0F 00 BC 0C        //4-7号继电器开启,8-15号继电器关闭

写继电器状态

发送码:01 0F 00 00 00 10 02 FF FF E3 90

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
0F 0F指令 写继电器状态指令
00 00 继电器起始地址 要控制继电器的寄存器地址,0x0000 - 0x000F
00 10 继电器数量 操作继电器数量,不能超过最大继电器数量
02 字节数量 状态字节数
FF FF 继电器状态 继电器状态为小端格式,低字节在前,高字节在后
Bit0:起始继电器状态;
Bit1:下个继电器状态,
依次类推,高端空闲位则为零
E3 90 CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 0F 00 00 00 10 54 07

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
0F 0F指令 全部寄存器控制指令
00 00 继电器起始地址 要控制继电器的寄存器地址,0x0000 - 0x0008
00 10 继电器数量 操作继电器数量
54 07 CRC16 前 6 字节数据的 CRC16 校验和

示例:[1号地址设备]

继电器全部开启 : 01 0F 00 00 00 10 02 FF FF E3 90
继电器全部关闭 : 01 0F 00 00 00 10 02 00 00 E2 20
0-1开;3-15关  : 01 0F 00 00 00 10 02 03 00 E2 D0

继电器闪开闪闭指令

发送码:01 05 02 00 00 07 8D B0

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 单个控制指令
02 闪开闪闭 02 为是闪开指令,04为闪闭指令
00 继电器地址 要控制的继电器地址,0x00~0x0F
00 07 间隔时间 延时时间为数据*100ms
数值:0x0007,延时:7*100MS = 700MS
闪开闪闭的时间最大设置为0x7FFF
8D B0 CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 05 02 00 00 07 8D B0

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
05 05指令 单个控制指令
02 闪开闪闭 02 为是闪开指令,04为闪闭指令
00 继电器地址 要控制继电器地址,0x00~0x0F
00 07 间隔时间 延时时间为数据*100ms
数值:0x0007,延时:7*100MS = 700MS
闪开闪闭的时间最大设置为0x7FFF
8D B0 CRC16 前 6 字节数据的 CRC16 校验和

示例:[1号地址设备]

0号继电器闪开 : 01 05 02 00 00 07 8D B0  //700MS = 7*100MS = 700MS
1号继电器闪开 : 01 05 02 01 00 08 9C 74  //800MS
0号继电器闪闭 : 01 05 04 00 00 05 0C F9  //500MS
1号继电器闪闭 : 01 05 04 01 00 06 1D 38  //600MS

读取软件版本指令

发送码:01 03 80 00 00 01 AD CA

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取软件版本,读取设备地址指令
80 00 软件版本寄存器 0x4000为读取设备地址,0x8000为读取软件版本
00 01 字节数 固定0x0001
AD CA CRC16 前 6 字节数据的 CRC16 校验和

返回码:01 03 02 01 2C B8 09

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
03 03指令 读取软件版本,读取设备地址指令
02 字节数 返回字节数
01 2C 软件版本 转为十进制然后小数点左移两位即表示软件版本


0x012C = 300 = V3.00

B8 09 CRC16 前 6 字节数据的 CRC16 校验和

示例:

发送:01 03 80 00 00 01 AD CA
返回:01 03 02 01 2C B8 09       //0x012C = 300 =V3.00

异常功能码

当接收到的指令出错或者异常设备将会返回异常响应,异常响应格式如下。

返回码:01 85 03 02 91

字段 含义 备注
01 设备地址 0x00表示广播地址;0x01-0xFF表示设备地址
85 异常功能吗 异常功能码 = 请求功能码 + 0x80
03 字节数 异常码
02 91 CRC16 前 6 字节数据的 CRC16 校验和

异常码是一个单字节值,用于指示错误的类型。Modbus协议定义的几个常用异常码:

异常码 名称 描述
0x01 非法功能 请求的功能码不支持
0x02 非法数据地址 请求的数据地址错误
0x03 非法数据值 请求的数据值或操作无法执行
0x04 服务器故障 服务器设备故障
0x05 应答 已接收到请求并正在处理
0x06 设备繁忙 设备当前正忙无法执行请求的操作

Modbus TCP 开发协议

在这里以上面打开第一个继电器的指令为例简单介绍一下modbus tcp与modbus rtu协议转换。

  • Modbus RTU 指令:01 05 00 00 FF 00 8C 3A
字段 含义 备注
01 设备地址 固定0x01
05 05指令 控制继电器指令
00 00 地址 要控制继电器的寄存器地址,0x00,即第一个继电器
FF 00 指令 0xFF00:继电器开启
8C 3A CRC16 前6字节数据的CRC16校验和
  • Modbus TCP 指令:00 00 00 00 00 06 01 05 00 00 FF 00
字段 含义 备注
00 00 消息标号 都是0x00即可
00 00 modbus标志号 必须都为0,代表这是modbus 通信
00 06 字节长度 表示后面的所有字节数,后面还有6个字节
01 设备地址 固定0x01
05 05指令 控制继电器指令
00 00 地址 要控制继电器的寄存器地址,0x00,即第一个继电器
FF 00 指令 0xFF00:继电器开启

通过上面指令的对比可以发现,modbus rtu 指令去掉CRC校验,前面加上五个0x00和一个字节长度即可转为modbus tcp协议。

高级应用 - MQTT连云平台

资料

程序

软件

相关资料

FAQ

  • 恢复网口的设置参数,需要拆开外壳,用镊子短接DEF丝印下的焊盘短接5s以上,模块将会复位为 192.168.1.254 的IP。
    Modbus-POE-ETH-Relay-Reload.jpg


工作温度范围是-15℃~70℃

{{{5}}}


技术支持


联系人:林工
EMAIL:services@waveshare.net (邮箱不常用,推荐使用QQ或微信沟通)
电话:0755-83040712
QQ:3004506335
微信:扫下方二维码添加
Lxw.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证