Google Chat: zj734465502@gmail.com
+86-0755-88291180
sales01@spotpear.com
dragon_manager@163.com
services01@spotpear.com
manager01@spotpear.com
WhatsApp:13246739196
This product is an industrial 30-CH relay module controlled via Ethernet port, using Modbus RTU/Modbus TCP protocol, support PoE Ethernet port power supply, and ABS case design. This product is easy to operate, with fast communication speed, stability, reliability, security and other characteristics, can be applied to a variety of high communication requirements of industrial control equipment or applications.
Power Supply | PoE Ethernet Port, DC 5.5*2.1 power port or power supply screw terminal (7~36V) |
---|---|
Communication Interface | PoE Ethernet Port, Support IEEE 802.3af Standard |
Relay Channels | 8 Channels |
Touch Contact | 1NO, 1NC |
Touch Contact Load | ≤10A 250V AC Or ≤10A 30V DC |
Modbus Protocol | Modbus RTU Protocol Or Modbus TCP Protocol |
Indicator | Status Description |
RUN | Ethernet operation indicator. After the chip is working properly, it will output a square wave with a period of 2 seconds. |
STA | MCU indicator, blinking when the MCU is operating normally. |
TXD | Transmitting indicator, light is on when sending data. |
RXD | Receiving indicator, light is on when receiving data. |
Ethernet Port Green Light | The green light is on when a TCP connection is established and can be used to determine if the module has established a communication link with the host computer software. |
Ethernet Port Yellow Light | Data transmission light, when there is data transmission on the network port, the yellow light transition state will change, which can be used to determine whether there is data transmission. |
Vircom can be used for configuring device IP and other parameters, as well as creating virtual serial ports. If the virtual serial port functionality is not needed, you can simply download the installation-free version of the configuration software.
Driver installation requires decompression, double-click the software to install, if the virtual serial port in Vircom is not displayed, then reboot and check again.
After connecting to the Modbus POE ETH Relay, connect it to the network. Run the Vircom software, (The computer on which Vircom is installed must be on the same LAN as the module.).
The operation is shown below:
Device
Auto Search
Edit Device
or directly double click the searched device.Advanced settings
, the default setting is "None", that is, you select modbus rtu protocol. If you use Modbus_TCP protocol, you can select "modbus tcp protocol".Modify Setting
.Restart Dev
. After restarting the module, the new setting takes effect.As shown below:
The last step is to click "Modify Settings" to save the settings and take effect.
The SSCOM2 in the diagram communicates directly with the TCP and serial port server. In order to allow users to communicate with the serial port server using their existing serial port software, a virtual serial port needs to be added between the user program and the serial port server. As shown in the diagram, Vircom and the user program run on the same computer. Vircom virtualizes a COM port that corresponds to the serial port server. When the user program opens the COM communication, it can send data to the user's serial port device through the Vircom serial port server. The following steps demonstrate this operation:
Click on "Serial Port Management" on the Vircom main interface.
By default, data is transparently transmitted using the Modbus RTU protocol. If you need to implement Modbus TCP to RTU conversion, you need to select the conversion protocol as "Modbus TCP Protocol" in the device settings dialog, as shown in the diagram below. In this case, the device port automatically changes to 502. Users can connect their Modbus TCP tool to the IP of the serial port server on port 502, and the Modbus TCP commands they send will be converted to RTU commands and outputted through the serial port.
For example, if the server's Ethernet port receives a Modbus TCP command of 00 00 00 00 00 06 01 05 00 00 FF 00 (to turn on the first relay), the host controller will receive the Modbus RTU command of 01 05 00 00 FF 00 8C 3A.
If the error "A component named HEX0 already exists" is displayed, close the software and reopen it. Then close the software and reopen it, then re-import the file.
Using Vircom, you can search and configure device parameters in different network segments. For Web configuration, you must first ensure that the computer and the serial server are in the same IP segment, and you need to know the IP address of the serial server in advance. But web configuration can be done on any computer without Vircom.
1. Enter the IP address of the serial server in the browser, such as http://192.168.1.200
2. Enter password in "Password": There is no login password set by default in the factory, you can enter a password at will, and click the Login button to log in. After setting the password to log in, the settings at "Modify webpage login password" will take effect:
3. The serial server parameters can be modified on the web page that appears. For the relevant parameters, please refer to Table 4 for the meaning of the parameters.
4. After modifying the parameters, click the "Submit" button.
5. If the configuration web page files are overwritten during the configuration and downloading of MQTT and Jetson Modbus firmware, causing the configuration web page to be inaccessible, please follow these steps to re-download the web page files:
Connect the Raspberry Pi and the Modbus POE ETH Relay 30CH module to the same LAN.
Open the Raspberry Pi terminal and run the program by entering the following command.
sudo apt-get install unzip wget https://files.waveshare.com/wiki/Modbus-POE-ETH-Relay-30CH/Modbus_POE_ETH_Relay_30CH_Code.zip unzip Modbus_POE_ETH_Relay_30CH_Code.zip cd Modbus_POE_ETH_Relay_30CH_Code #modbus rtu protocol vi modbus_rtu.py #Modify the IP address and port number according to the actual situation sudo python3 modbus_rtu.py #modbus tcp protocol vi modbus_tcp.py #Modify the IP address and port number according to the actual situation sudo python3 modbus_tcp.py
Function Code | Note |
---|---|
01 | Read relay status |
03 | Read address and version |
05 | Write single relay |
06 | Set baudrate and address |
0F | Write all relays |
Address (HEX) | Address Storage Contents | Register Value | Permission | Modbus Function Code |
---|---|---|---|---|
0x0000 …… 0x001D | 1~30 Channels relay address | 0xFF00: relay on; 0x0000: relay off; 0x5500: relay flips; | Read/Write | 0x01,0x05,0x0F |
0x00FF | Operate All Relays | 0xFF00: All relays on; 0x0000: All relays off; 0x5500: All relays flip | Write | 0x05 |
0x0100 …… 0x011D | 1~30 Channels relay flip address | 0xFF00: Relay flips 0x0000: All relays not change | Write | 0x05,0x0F |
0x01FF | All relys fip | 0xFF00: All relays flip 0x0000: All relays not change | Write | 0x05 |
0x0200 …… 0x021D | 1~30 channels relay flash on | Delay time: data*100ms Value: 0x0007; Delay time: 7*100MS = 700MS | Write | 0x05 |
0x0400 …… 0x041D | 1~30 channels relay flash off | Delay time: data*100ms Value: 0x0007; Delay time: 7*100MS = 700MS | Write | 0x05 |
4x4000 | Device Address | Directly store Modbus address Device address: 0x0001 | Read | 0x03 |
4x8000 | Software Version | Converting to decimal and shifting the decimal point two places to the left indicates the software version. 0x0064 = 100 = V1.00 | Read | 0x03 |
Send: 01 05 00 00 FF 00 8C 3A
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control Relays |
00 00 | Address | The register address of the relay to be controlled: 0x0000 - 0x001D |
FF 00 | Command | 0xFF00: relay on; 0x0000: relay off; 0x5500: relay flip |
8C 3A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 05 00 00 FF 00 8C 3A
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control relays |
00 00 | Address | The register address of the relay to be controlled: 0x0000-0x001D |
FF 00 | Command | 0xFF00: relay on; 0x0000: relay off; 0x5500: relay flip |
8C 3A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[No.1 Adress Device]:
No.0 relay on: 01 05 00 00 FF 00 8C 3A No.0 relay off: 01 05 00 00 00 00 CD CA No.1 relay on: 01 05 00 01 FF 00 DD FA No.1 relay off: 01 05 00 01 00 00 9C 0A No.2 relay on: 01 05 00 02 FF 00 2D FA No.2 relay off: 01 05 00 02 00 00 6C 0A No.3 relay on: 01 05 00 03 FF 00 7C 3A No.3 relay off: 01 05 00 03 00 00 3D CA No.0 relay flip: 01 05 00 00 55 00 F2 9A No.1 relay flip: 01 05 00 01 55 00 A3 5A No.2 relay flip: 01 05 00 02 55 00 53 5A No.3 relay flip: 01 05 00 03 55 00 02 9A
Send: 01 05 00 FF FF 00 BC 0A
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control Relays |
00 FF | Address | Fixed 0x00FF |
FF 00 | Command | 0xFF00: relay on; 0x0000: relay off; 0x5500: relay flips |
BC 0A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 05 00 FF FF 00 BC 0A
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control Relays |
00 FF | Address | Fixed 0x00FF |
FF 00 | Command | 0xFF00: Relay on; 0x0000: Relay off; 0x5500: Relay flips |
BC 0A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[No.1 Adress Device]: All relays on: 01 05 00 FF FF 00 BC 0A All relays off: 01 05 00 FF 00 00 FD FA All relays flip: 01 05 00 FF 55 00 C2 AA
Send: 01 01 00 00 00 1E BC 02
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
01 | 01 Command | Query relay status |
00 00 | the Starting address of relays | the initial address of relay: 0x0000-0x001D |
00 1E | Quantity of Relays | Read Quantity of Relays |
BC 02 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 01 04 00 00 00 00 FB D1
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
01 | 01 Command | Query relay status |
02 | Byte Count | Returns all bytes of the status message. |
00 00 00 00 | Queried Status | Returned relay status, relay status in small end format; low byte first, high byte second Bit0: the starting status of relays; Bit1: next relay status; And so on, high order bits are zero filled. |
FB D1 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[No.1 Adress Device] Send: 01 01 00 00 00 1E BC 02 //Query all relays Receive: 01 01 04 00 00 00 00 FB D1 //All relay close Send: 01 01 00 01 00 03 2D CB //Query No.1,2,3 relay status Receive: 01 01 01 05 91 8B //No.1, 3 relay on, No.2 relay off Send: 01 01 00 04 00 0C 7D CE //Query No.4-15 relays Receive: 01 01 02 0F 00 BC 0C //No.4-7 relays on, No.8-15 relays off
Send: 01 0F 00 00 00 1E 04 FF FF FF 3F C1 92
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
0F | 0F Command | Write relay status |
00 00 | the Starting Address of Relays | 0x0000-0x001D |
00 1E | Quantity of Relays | Write relay numbers |
04 | Byte Count | Status byte numbers |
FF FF FF 3F | Relay status | Returned relay status, relay status in small end format; low byte first, high byte second Bit0: the starting status of relays; Bit1: next relay status; and so on, high order bits are zero filled. |
C1 92 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 0F 00 00 00 1E D5 C3
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
0F | 0F Command | Control all registers |
00 00 | Address | Relay initial addresses |
00 1E | Quantity of Relays | Write quantity of relays |
D5 C3 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[No.1 Adress Devic] All relays on: 01 0F 00 00 00 1E 04 FF FF FF 3F C1 92 No.0-1 on; No.3-29 off: 01 0F 00 00 00 1E 04 03 00 00 00 C0 12 No.0-1 on; No.3-7 off: 01 0F 00 00 00 08 01 03 BE 94 No.1,2,3 relay on: 01 0F 00 01 00 03 01 07 F3 55
Send: 01 05 02 00 00 07 8D B0
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Single Control Command |
02 | Command | 02: Flash on; 04: Flash off |
00 | Relay Address | Relay address to be controlled: 0x00~0x1D |
00 07 | Intervals | Delay time: data*100ms Value: 0x0007, Delay time: 7*100MS = 700MS Set the maximum intervals for flashing on/off: 0x7FFF |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 05 02 00 00 07 8D B0
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Single Control Command |
02 | Command | 02: Flash on; 04: Flash off |
00 | Relay Address | Relay address to be controlled: 0x00~0x1D |
00 07 | Intervals | Delay time: data*100ms Value:0x0007, Delay time: 7*100MS = 700MS |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[No.1 Adress Device] No.0 relay flash on: 01 05 02 00 00 07 8D B0 //700MS No.1 relay flash on: 01 05 02 01 00 08 9C 74 //800MS No.0 relay flash off: 01 05 04 00 00 05 0C F9 //500MS No.1 relay flash off: 01 05 04 01 00 06 1D 38 //600MS
Send: 01 03 80 00 00 01 AD CA
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
03 | 03 Command | Read holding register |
80 00 | Command Register | 0x8000: read software version |
00 01 | Byte Count | Fixed 0x0001 |
AD CA | CRC16 | CRC16 checksum of the first 6 bytes of data |
Receive: 01 03 02 00 64 B9 AF
Field | Description | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
03 | 03 Command | Read holding register |
02 | Byte Count | Returns the number of bytes |
00 64 | Software Version | Converting to decimal and shifting the decimal point two places to the left indicates the software version. 0x0064 = 100 = V1.00 |
F0 B8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
Send: 01 03 80 00 00 01 AD CA Receive: 01 03 02 00 C8 B9 D2 //0x00C8 = 200 =V2.00
Here is a brief introduction to Modbus TCP and Modbus RTU protocol conversion using the above commands to open the first relay as an example.
Field | Meaning | Note |
---|---|---|
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control relay commands |
00 00 | Address | Address of the register to control the relay, 0x00, that is, the first relay |
FF 00 | Command | 0xFF00: Relay on |
8C 3A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Field | Meaning | Note |
---|---|---|
00 00 | Message Label | Both be 0x00 |
00 00 | Modbus Label | Must both be 0, which means this is Modbus communication |
00 06 | Byte Length | Indicates the number of all bytes that follow, followed by 6 bytes |
01 | Device Address | Fixed 0x01 |
05 | 05 Command | Control relay commands |
00 00 | Address | Address of the register to control the relay, 0x00, i.e. the first relay |
FF 00 | Command | 0xFF00: relay on |
By comparing the commands above, we can observe that to convert a Modbus RTU command to Modbus TCP protocol, the CRC check is removed, and the command is prefixed with five 0x00 bytes followed by a byte representing the length.
1、If the module does not respond to the command, verify that the baud rate and device ID are correct. You may also try Restoring the factory settings.
2、If the above steps do not resolve the issue, please submit a ticket to contact the Waveshare technical support team.
-15℃~70℃.
Monday-Friday (9:30-6:30) Saturday (9:30-5:30)
Mobile: +86 13434470212
Email: services01@spotpear.com