“RS485 Modbus Relay”的版本间的差异

来自丢石头百科
 
(未显示同一用户的20个中间版本)
第1行: 第1行:
 
{{Product
 
{{Product
|images=
+
|images=[[File:RS485 Modbus Relay_示意图.png|400px]]
 +
RS485 Modbus Relay (1, Opto)
 +
-----
 +
[[File:RS485 Modbus Relay_示意图1.png]]
 +
RS485 Modbus Relay (2, Opto)
 +
-----
 +
[[File:RS485 Modbus Relay_示意图2.png|400px]]
 +
RS485 Modbus Relay (3, Opto)
 +
-----
 +
[[File:RS485 Modbus Relay_示意图3.png|400px]]
 +
RS485 Modbus Relay (4, Opto)
 
|categories=
 
|categories=
 
{{Category|继电器}}
 
{{Category|继电器}}
第9行: 第19行:
 
{{Category|RS485接口}}
 
{{Category|RS485接口}}
 
|related=
 
|related=
 +
* [[ESP8266 WIFI Relay]]
 +
* [[Time Delay Relay]]
 +
* [[Modbus RTU]]
 
* [[Solid State Relay Module]]
 
* [[Solid State Relay Module]]
 +
* [[Single-Key Bistable Relay]]
 
* [[Relay Module With Optocoupler]]
 
* [[Relay Module With Optocoupler]]
 
* [[XH-M131 Photosensitive Resistor Module]]
 
* [[XH-M131 Photosensitive Resistor Module]]
 
+
* [[RS232 Modbus Relay]]
 +
* [[RS232 Modbus Relay PRO]]
 +
* [[RS485 Modbus Relay ]]
 +
* [[RS485 Modbus Relay PRO]]
 +
* [[GPIO Relay]]
 +
* [[GPIO Relay PRO]]
 +
* [[USB Relay]]
 +
* [[USB Relay PRO]]
 
}}
 
}}
 
== 产品概述 ==
 
== 产品概述 ==
 
*继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
 
*继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
*一路/两路/四路Modbus继电器模块搭载成熟稳定的8位MCU和RS485电平通讯芯片。采用标准MODBUS RTU格式的RS485通讯协议,可以实现1/2/4路输入信号检测、1/2/4路继电器输出,可用于数字量检测或者功率控制场合。
+
*RS485 Modbus继电器模块搭载成熟稳定的8位MCU和RS485电平通讯芯片。采用标准MODBUS RTU格式的RS485通讯协议,可以实现2/3/4路输入信号检测、2/3/4路继电器输出,可用于数字量检测或者功率控制场合。
  
 
== 产品特点 ==
 
== 产品特点 ==
*板载成熟稳定的8bit MCU和MAX485电平转换芯片
+
*板载成熟稳定的8bit MCU和SP3485电平转换芯片
 +
*电源电压:5~32V
 
*通讯协议:支持标准Modbus RTU协议
 
*通讯协议:支持标准Modbus RTU协议
*通讯接口:支持RS485/TTL UART接口
+
*通讯接口:支持RS485接口
 
*通讯波特率:4800/9600/19200,默认9600bps,支持掉电保存
 
*通讯波特率:4800/9600/19200,默认9600bps,支持掉电保存
*光耦输入信号范围:DC3.3-24V(此输入不可用于继电器控制)
+
*输出信号:继电器开关信号
*输出信号:继电器开关信号,支持手动、闪闭、闪断模式。闪闭/闪断的延时基数为0.1S,最大可设闪闭/闪断时间为0xFFFF*0.1S=6553.5S
 
 
*设备地址:范围1-255, 默认255,支持掉电保存
 
*设备地址:范围1-255, 默认255,支持掉电保存
 
*波特率、输入信号、继电器状态、设备地址可使用软件/指令进行读取
 
*波特率、输入信号、继电器状态、设备地址可使用软件/指令进行读取
*板载1路/2路/4路5V,10A/250VAC 10A/30VDC继电器,可连续吸合10万次,具有二极管泻流保护,响应时间短
+
*板载2路/3路/4路5V,10A/250VAC 10A/30VDC继电器,可连续吸合10万次,具有二极管泻流保护,光耦保护电路,响应时间短
*板载继电器开关指示灯;
+
*板载继电器开关指示灯和电源指示灯;
*供电电压:DC7-24V,支持DC座/5.08mm端子供电,带输入防反接保护;
 
  
== 引脚说明 ==
+
== 产品说明 ==
以Modbus RTU Relay (2)为例
+
*[[File:RS485 Modbus Relay_产品说明.png|600px]]
 
+
*1、VCC,GND: DC5-32V 5.08mm电源输入端子
[[File:Modbus RTU Relay_引脚说明.png|800px]]
+
*2、A+,B-, GND:RS485通讯接口,A+,B-分别接外部控制端的A+,B-,GND可不接
 
+
*3、继电器2开关信号输出:
*1、A+,B-:RS485通讯接口,A+,B-分别接外部控制端的A+,B-
 
*2、DC3.3-24V光耦信号输入(不可用于控制继电器吸合):
 
**IN1: 通道1正极
 
**IN2: 通道2正极
 
**GND_IN:公共端负极
 
*3、VCC,GND: DC7-24V 5.08mm电源输入端子
 
*4、继电器2开关信号输出:
 
 
**NC2:常闭端,继电器吸合前与COM短接,吸合后悬空;
 
**NC2:常闭端,继电器吸合前与COM短接,吸合后悬空;
 
**COM2:公共端;
 
**COM2:公共端;
 
**NO2:常开端,继电器吸合前悬空,吸合后与COM短接。
 
**NO2:常开端,继电器吸合前悬空,吸合后与COM短接。
*5、继电器1开关信号输出:
+
*4、继电器1开关信号输出:
 
**NC1:常闭端,继电器吸合前与COM短接,吸合后悬空;
 
**NC1:常闭端,继电器吸合前与COM短接,吸合后悬空;
 
**COM1:公共端;
 
**COM1:公共端;
 
**NO1:常开端,继电器吸合前悬空,吸合后与COM短接。
 
**NO1:常开端,继电器吸合前悬空,吸合后与COM短接。
*6、继电器指示灯:继电器吸合时点亮
+
*5、继电器指示灯:继电器吸合时点亮
*7、GND,RXD,TXD:TTL电平UART通讯接口,GND,RXD,TXD分别接外部控制端的GND,TXD,RXD,支持连接3.3V/5V 外部TTL串口
+
*6、光耦保护电路
*8、RS485和TTL串口选择端
+
 
**当使用RS485通信时,DI接TXD、RO接RXD
+
== 使用说明 ==
**当使用TTL通信时DI和RO都接NC端
+
* '''控制继电器时若出现发送指令无法控制的情况,可以尝试以下操作'''
 +
** '''在控制指令之间加入一条清除指令:0d 0a 0d 0a 0d 0a 0d 0a'''
 +
** '''指令之间的延时需要大于20ms'''
 +
* 继电器的输出端相当于一个电子开关,本身是不输出电流电压的
 +
* 当继电器输出端接入的负载功率较大或负载类型为感性负载等情况时,建议在负载端加入一个RC吸收回路,在降低通断过程对继电器触点产生的干扰
 +
=== 上位机测试 ===
 +
* '''连接串口'''
 +
**将继电器模块与USB转485模块相连,连接方式:A - A,B - B。GND可不接
 +
**打开[[:File:RS485 Modbus Relay_上位机.rar|上位机软件]]
 +
***[[File:RS485 Modbus Relay_上位机测试1.png|600px]]
 +
***刷新串口
 +
***选择对应的串口
 +
***选择波特率9600
 +
***打开串口
 +
*'''设置通信ID'''
 +
**如果485总线上只有一个模块,则可以点击读取ID按钮自动读取模块的ID,并显示到ID文本框内(16进制格式)。并且可以通过设置ID按钮,将模块的ID设置为ID文本框内的值(16进制格式)。设置的模块ID会保存到模块内,断电也可以保存。
 +
***[[File:RS485 Modbus Relay_上位机测试2.png|600px]]
 +
**如果485总线上不止一个模块,则不可用以上的方法读取或设置ID。必须将要通信的模块的ID手动填到ID文本框内(16进制格式),才可以操作对应的模块。如果ID填0则是广播模式,总线上所有的模块都会收到相同的指令进行相同的动作,但回复的指令可能出现冲突导致意想不到的结果。
 +
***[[File:RS485 Modbus Relay_上位机测试3.png|600px]]
 +
*'''操作继电器'''
 +
**通过继电器控制的按钮可以操作对应通道的继电器,或全部打开全部关闭。对应通道的输出状态指示会在收到模块回复后进行相应的显示。
 +
***[[File:RS485 Modbus Relay_上位机测试4.png|600px]]
 +
*'''调试功能'''
 +
**调试区域显示当前串口发送和接收到的指令数据(16进制格式)。点击直接发送按钮可以通过串口发送发送数据文本框内的数据。点击计算CRC按钮会自动计算发送数据文本框内所有数据的CRC,并将结果加到结尾,可以方便进行modbus指令的调试。注意:由于发送的指令已经包含CRC,所以如果要手动修改发送的指令,需要将最后两个字节删除然后再按计算CRC按钮。
 +
***[[File:RS485 Modbus Relay_上位机测试5.png|600px]]
  
== Modbus RTU指令简介 ==
+
=== Modbus RTU指令简介 ===
 
Modbus设备通过接收来自外部控制端(如:上位机/MCU)的Modbus RTU指令来执行相关操作,一帧指令一般由设备地址、功能码、寄存器地址、寄存器数据、校验码组成,帧长度和功能码有关。一般每帧数据的首字节为设备地址,可设置范围为1-255,默认255(即0xFF),最后2字节为CRC校验码。
 
Modbus设备通过接收来自外部控制端(如:上位机/MCU)的Modbus RTU指令来执行相关操作,一帧指令一般由设备地址、功能码、寄存器地址、寄存器数据、校验码组成,帧长度和功能码有关。一般每帧数据的首字节为设备地址,可设置范围为1-255,默认255(即0xFF),最后2字节为CRC校验码。
  
假设设备地址为255,则常用的Modbus RTU指令如下:(更多详细指令请参考[[:File:Modbus RTU Relay_指令详解.pdf|指令详解]]
+
假设设备地址为255,则常用的Modbus RTU指令如下:详情请查看[[:File:RS485 Modbus Relay_模块说明.zip|模块使用说明]]
*'''打开1号继电器(手动模式)'''
+
*'''打开1号继电器'''
 
<pre>
 
<pre>
 
发送:    FF 05 00 00 FF 00 99 E4
 
发送:    FF 05 00 00 FF 00 99 E4
第69行: 第106行:
 
备注2:发送帧的第5--6个字节代表数据,0xFF00代表打开继电器,0x0000代表关闭继电器
 
备注2:发送帧的第5--6个字节代表数据,0xFF00代表打开继电器,0x0000代表关闭继电器
  
*'''关闭1号继电器(手动模式)'''
+
*'''关闭1号继电器'''
 
<pre>
 
<pre>
 
发送:    FF 05 00 00 00 00 D8 14  
 
发送:    FF 05 00 00 00 00 D8 14  
 
原样返回:FF 05 00 00 00 00 D8 14  
 
原样返回:FF 05 00 00 00 00 D8 14  
</pre>
 
 
*'''打开2号继电器(手动模式)'''
 
<pre>
 
发送:    FF 05 00 01 FF 00 C8 24 
 
原样返回:FF 05 00 01 FF 00 C8 24
 
</pre>
 
 
*'''关闭2号继电器(手动模式)'''
 
<pre>
 
发送:    FF 05 00 01 00 00 89 D4
 
原样返回:FF 05 00 01 00 00 89 D4
 
 
</pre>
 
</pre>
  
第98行: 第123行:
 
返回:FF 0F 00 00 00 08 41 D3
 
返回:FF 0F 00 00 00 08 41 D3
 
</pre>
 
</pre>
 
*'''设置设备地址为1'''
 
<pre>
 
发送:    00 10 00 00 00 01 02 00 01 6A 00
 
原样返回:00 10 00 00 00 01 02 00 01 6A 00
 
</pre>
 
备注:发送帧的第9个字节0x01为写入的设备地址
 
  
 
*'''设置设备地址为255'''
 
*'''设置设备地址为255'''
第111行: 第129行:
 
原样返回:00 10 00 00 00 01 02 00 FF EB 80
 
原样返回:00 10 00 00 00 01 02 00 FF EB 80
 
</pre>
 
</pre>
备注:发送帧的第9个字节0xFF为写入的设备地址
+
备注:发送帧的第8和第9个字节0x00FF为写入的设备地址
  
*'''读取设备地址'''  
+
*'''读取设备地址 255'''  
 
<pre>
 
<pre>
 
发送:    00 03 00 00 00 01 85 DB   
 
发送:    00 03 00 00 00 01 85 DB   
 
返回:    00 03 02 00 FF C5 C4  
 
返回:    00 03 02 00 FF C5 C4  
 
</pre>
 
</pre>
备注:返回帧的第5个字节0xFF为读取到的设备地址
+
备注:返回帧的第4个和第5个字节0x00FF为读取到的设备地址
 
 
*'''读取继电器状态'''
 
<pre>
 
发送:    FF 01 00 00 00 08 28 12
 
返回:    FF 01 01 01 A1 A0
 
</pre>
 
备注:返回帧的第4个字节0x01的Bit0--Bit7分别代表继电器1--继电器8,0为关闭,1为打开
 
 
 
*'''读取光耦输入状态'''
 
<pre>
 
发送:    FF 02 00 00 00 08 6C 12
 
返回:    FF 02 01 01 51 A0
 
</pre>
 
备注:返回帧的第4个字节0x01的IN1--IN8分别代表光耦1--光耦8输入信号,0代表低电平,1代表高电平
 
 
 
*'''设置波特率为4800'''
 
<pre>
 
发送:    FF 10 03 E9 00 01 02 00 02 4A 0C
 
返回:    FF 10 03 E9 00 01 C5 A7
 
</pre>
 
备注:发送帧的第9个字节为波特率设置值,0x02, 0x03, x04分别代表4800, 9600, 19200
 
  
 
*'''设置波特率为9600'''
 
*'''设置波特率为9600'''
第147行: 第144行:
 
</pre>
 
</pre>
  
*'''设置波特率为19200'''
+
*'''读取继电器状态'''
 
<pre>
 
<pre>
发送:    FF 10 03 E9 00 01 02 00 04 CA 0E
+
发送:    FF 01 00 00 00 08 28 12
返回:    FF 10 03 E9 00 01 C5 A7
+
返回:    FF 01 01 01 A1 A0
</pre>
 
 
 
*'''读取波特率'''
 
<pre>
 
发送:    FF 03 03 E8 00 01 11 A4
 
返回:    FF 03 02 00 04 90 53
 
</pre>
 
备注:返回帧的第5个字节代表读取到的波特率,0x02, 0x03, x04分别代表4800, 9600, 19200
 
 
 
*'''打开1号继电器(闪闭模式2S)'''
 
<pre>
 
发送:    FF 10 00 03 00 02 04 00 04 00 14 C5 9F
 
返回:    FF 10 00 03 00 02 A4 16
 
</pre>
 
备注1:发送帧的第3--4个字节代表继电器地址,继电器1--继电器8的地址分别为0x0003,0x0008,0x000D,0x0012,0x0017,0x001C,0x0021,0x0026
 
 
 
备注2:发送帧的第10--11个字节代表延时设置值,延时基数为0.1S,故延时时间为0x0014*0.1=20*0.1S=2S,继电器打开2S后自动关闭
 
 
 
*'''关闭1号继电器(闪断模式3S)'''
 
<pre>
 
发送:    FF 10 00 03 00 02 04 00 02 00 1E A5 99
 
返回:    FF 10 00 03 00 02 A4 16
 
 
</pre>
 
</pre>
备注1:发送帧的第3--4个字节代表继电器地址,继电器1--继电器8的地址分别为0x0003,0x0008,0x000D,0x0012,0x0017,0x001C,0x0021,0x0026
 
 
备注2:发送帧的第10--11个字节代表延时设置值,延时基数为0.1S,故延时时间为0x001E*0.1=30*0.1S=3S,继电器关闭3S后自动打开
 
 
== 使用说明 ==
 
Modbus 继电器模块可经由RS485/TTL UART接口接收来自上位机/MCU的Modbus RTU指令来执行相关操作。下面以使用上位机软件通过RS485接口来打开继电器1和2(手动模式)为例,假设设备地址为255,波特率为9600,则使用步骤如下:
 
#VCC、GND接电源正负极。
 
#A+,B-分别USB转RS485模块输出端的A+和B-;
 
#打开上位机软件“ModbusRTU 配置工具”,选择正确的端口号,波特率选择9600,地址设为255,点击“打开串口”;
 
#再点击“JD1打开”即可打开继电器1,同时继电器1指示灯点亮。如下图:
 
 
[[File:Modbus RTU Relay_使用说明.png|600px]]
 
[[File:Modbus RTU Relay_使用说明1.png|800px]]
 
  
 
== 生成校验码 ==
 
== 生成校验码 ==
Modbus RTU指令通过现成的上位机软件(如:ModbusRTU 配置工具)来发送时,CRC校验码是自动生成的,如果想使用串口调试软件(如SSCOM)来测试Modbus继电器模块时就需要手动生成CRC校验码放在发送帧的末尾,比如打开第1路继电器(手动模式):
+
模块指令通过现成的上位机软件来发送时,CRC校验码是自动生成的,如果想使用串口调试软件(如SSCOM)来测试Modbus继电器模块时就需要手动生成CRC校验码放在发送帧的末尾,比如打开第1路继电器(手动模式):
 
*打开/关闭继电器(手动模式)的发送帧组成为:设备地址(1Byte)+功能码(1Byte)+寄存器地址(2Byte)+寄存器数据(2Byte)+CRC校验码(2Byte)
 
*打开/关闭继电器(手动模式)的发送帧组成为:设备地址(1Byte)+功能码(1Byte)+寄存器地址(2Byte)+寄存器数据(2Byte)+CRC校验码(2Byte)
 
*假设设备地址为0xFF, 则发送帧的前6个字节为:FF 05 00 00 FF 00
 
*假设设备地址为0xFF, 则发送帧的前6个字节为:FF 05 00 00 FF 00
第200行: 第162行:
  
 
== 参考资料 ==
 
== 参考资料 ==
*[[:File:Modbus RTU Relay_调试软件.zip|调试软件]]
+
*[[:File:RS485 Modbus Relay_上位机.rar|上位机]]
*[[:File:Modbus RTU Relay_相关资料.zip|相关资料]]
+
*[[:File:RS485 Modbus Relay_模块说明.zip|模块使用说明]]
*[[:File:Modbus RTU Relay_指令详解.pdf|指令详解]]
 
  
 
== 注意事项 ==
 
== 注意事项 ==

2025年2月20日 (四) 17:51的最新版本

RS485 Modbus Relay
RS485 Modbus Relay 示意图.png

RS485 Modbus Relay (1, Opto)


RS485 Modbus Relay 示意图1.png RS485 Modbus Relay (2, Opto)


RS485 Modbus Relay 示意图2.png RS485 Modbus Relay (3, Opto)


RS485 Modbus Relay 示意图3.png RS485 Modbus Relay (4, Opto)

基本信息

分类: 继电器

品牌: 丢石头

功能简介
特性
  • RS485 Modbus 继电器

接口

RS485接口

相关产品

产品概述

  • 继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
  • RS485 Modbus继电器模块搭载成熟稳定的8位MCU和RS485电平通讯芯片。采用标准MODBUS RTU格式的RS485通讯协议,可以实现2/3/4路输入信号检测、2/3/4路继电器输出,可用于数字量检测或者功率控制场合。

产品特点

  • 板载成熟稳定的8bit MCU和SP3485电平转换芯片
  • 电源电压:5~32V
  • 通讯协议:支持标准Modbus RTU协议
  • 通讯接口:支持RS485接口
  • 通讯波特率:4800/9600/19200,默认9600bps,支持掉电保存
  • 输出信号:继电器开关信号
  • 设备地址:范围1-255, 默认255,支持掉电保存
  • 波特率、输入信号、继电器状态、设备地址可使用软件/指令进行读取
  • 板载2路/3路/4路5V,10A/250VAC 10A/30VDC继电器,可连续吸合10万次,具有二极管泻流保护,光耦保护电路,响应时间短
  • 板载继电器开关指示灯和电源指示灯;

产品说明

  • RS485 Modbus Relay 产品说明.png
  • 1、VCC,GND: DC5-32V 5.08mm电源输入端子
  • 2、A+,B-, GND:RS485通讯接口,A+,B-分别接外部控制端的A+,B-,GND可不接
  • 3、继电器2开关信号输出:
    • NC2:常闭端,继电器吸合前与COM短接,吸合后悬空;
    • COM2:公共端;
    • NO2:常开端,继电器吸合前悬空,吸合后与COM短接。
  • 4、继电器1开关信号输出:
    • NC1:常闭端,继电器吸合前与COM短接,吸合后悬空;
    • COM1:公共端;
    • NO1:常开端,继电器吸合前悬空,吸合后与COM短接。
  • 5、继电器指示灯:继电器吸合时点亮
  • 6、光耦保护电路

使用说明

  • 控制继电器时若出现发送指令无法控制的情况,可以尝试以下操作
    • 在控制指令之间加入一条清除指令:0d 0a 0d 0a 0d 0a 0d 0a
    • 指令之间的延时需要大于20ms
  • 继电器的输出端相当于一个电子开关,本身是不输出电流电压的
  • 当继电器输出端接入的负载功率较大或负载类型为感性负载等情况时,建议在负载端加入一个RC吸收回路,在降低通断过程对继电器触点产生的干扰

上位机测试

  • 连接串口
    • 将继电器模块与USB转485模块相连,连接方式:A - A,B - B。GND可不接
    • 打开上位机软件
      • RS485 Modbus Relay 上位机测试1.png
      • 刷新串口
      • 选择对应的串口
      • 选择波特率9600
      • 打开串口
  • 设置通信ID
    • 如果485总线上只有一个模块,则可以点击读取ID按钮自动读取模块的ID,并显示到ID文本框内(16进制格式)。并且可以通过设置ID按钮,将模块的ID设置为ID文本框内的值(16进制格式)。设置的模块ID会保存到模块内,断电也可以保存。
      • RS485 Modbus Relay 上位机测试2.png
    • 如果485总线上不止一个模块,则不可用以上的方法读取或设置ID。必须将要通信的模块的ID手动填到ID文本框内(16进制格式),才可以操作对应的模块。如果ID填0则是广播模式,总线上所有的模块都会收到相同的指令进行相同的动作,但回复的指令可能出现冲突导致意想不到的结果。
      • RS485 Modbus Relay 上位机测试3.png
  • 操作继电器
    • 通过继电器控制的按钮可以操作对应通道的继电器,或全部打开全部关闭。对应通道的输出状态指示会在收到模块回复后进行相应的显示。
      • RS485 Modbus Relay 上位机测试4.png
  • 调试功能
    • 调试区域显示当前串口发送和接收到的指令数据(16进制格式)。点击直接发送按钮可以通过串口发送发送数据文本框内的数据。点击计算CRC按钮会自动计算发送数据文本框内所有数据的CRC,并将结果加到结尾,可以方便进行modbus指令的调试。注意:由于发送的指令已经包含CRC,所以如果要手动修改发送的指令,需要将最后两个字节删除然后再按计算CRC按钮。
      • RS485 Modbus Relay 上位机测试5.png

Modbus RTU指令简介

Modbus设备通过接收来自外部控制端(如:上位机/MCU)的Modbus RTU指令来执行相关操作,一帧指令一般由设备地址、功能码、寄存器地址、寄存器数据、校验码组成,帧长度和功能码有关。一般每帧数据的首字节为设备地址,可设置范围为1-255,默认255(即0xFF),最后2字节为CRC校验码。

假设设备地址为255,则常用的Modbus RTU指令如下:详情请查看模块使用说明

  • 打开1号继电器
发送:    FF 05 00 00 FF 00 99 E4
原样返回:FF 05 00 00 FF 00 99 E4

备注1:发送帧的第3--4个字节代表继电器地址,继电器1--继电器8的地址分别为0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007

备注2:发送帧的第5--6个字节代表数据,0xFF00代表打开继电器,0x0000代表关闭继电器

  • 关闭1号继电器
发送:    FF 05 00 00 00 00 D8 14 
原样返回:FF 05 00 00 00 00 D8 14 
  • 打开所有继电器
发送:FF 0F 00 00 00 08 01 FF 30 1D  
返回:FF 0F 00 00 00 08 41 D3
  • 关闭所有继电器
发送:FF 0F 00 00 00 08 01 00 70 5D  
返回:FF 0F 00 00 00 08 41 D3
  • 设置设备地址为255
发送:    00 10 00 00 00 01 02 00 FF EB 80  
原样返回:00 10 00 00 00 01 02 00 FF EB 80

备注:发送帧的第8和第9个字节0x00FF为写入的设备地址

  • 读取设备地址 255
发送:    00 03 00 00 00 01 85 DB  
返回:    00 03 02 00 FF C5 C4 

备注:返回帧的第4个和第5个字节0x00FF为读取到的设备地址

  • 设置波特率为9600
发送:    FF 10 03 E9 00 01 02 00 03 8B CC 
返回:    FF 10 03 E9 00 01 C5 A7
  • 读取继电器状态
发送:    FF 01 00 00 00 08 28 12
返回:    FF 01 01 01 A1 A0

生成校验码

模块指令通过现成的上位机软件来发送时,CRC校验码是自动生成的,如果想使用串口调试软件(如SSCOM)来测试Modbus继电器模块时就需要手动生成CRC校验码放在发送帧的末尾,比如打开第1路继电器(手动模式):

  • 打开/关闭继电器(手动模式)的发送帧组成为:设备地址(1Byte)+功能码(1Byte)+寄存器地址(2Byte)+寄存器数据(2Byte)+CRC校验码(2Byte)
  • 假设设备地址为0xFF, 则发送帧的前6个字节为:FF 05 00 00 FF 00
  • 使用CRC校验工具对这6个字节求校验码:http://www.ip33.com/crc.html

Modbus RTU Relay 校验码.png

  • 交换校验计算结果E499的高低字节位置后得到CRC校验码99E4,以及完整的发送帧:FF 05 00 00 FF 00 99 E4
  • 将该发送帧通过串口调试软件SSCOM V5.13.1发送到Modbus继电器模块即可打开第一路继电器(手动模式),如下:

Modbus RTU Relay 校验码1.png

参考资料

注意事项

  • 电源与负载请在参数范围内使用,请勿超范围使用。
  • 额定负载和寿命是一个参考值,会根据不同的环境因素负载性质与种类而有较大不同,因此最好在实际或模拟实际的使用中进行确认。
  • 模块的负载能力受环境温度和自身温升的影响较大,需依据实际工作环境条件利用空气对流散热即可,要求安装在有良好对流环境。
  • 高温下的电耐久性:模块在高温下使用时,电耐久性会比常温下使用要低,所以请在实际使用中进行确认。

FAQ

Icon-mail.png 联系 丢石头

我们的工作时间是: 09:00-18:00 (UTC+8 周一到周六)