using modbus devices
A convenient solution is to use a modbus module, such as Promux PM6RTD
In a nutshell, keep the factory settings on the PM6RTD : 9600 bauds, 1 stop bit, no parity.
PM6RTD RS485 terminal block | 4 | 3 | 2 | 1 |
---|---|---|---|---|
connector | 4- | 3+ | 12V+ | GND |
Adjust the modbus address with the switches on the front
modbus address | S1 | S2 | S3 |
---|---|---|---|
1 | ON | OFF | OFF |
2 | OFF | ON | OFF |
3 | ON | ON | OFF |
RTU mode
Use a USB to serial adapter, eg the moxa uport 1150 - download MOXA uport drivers for linux/windows.
If using a window desktop, go to the device manager and fit the Moxa so it works in RS485(2W). Here the Moxa appears to be on COM1
promux | 4- | 3+ |
---|---|---|
cable | white | green |
uport 1150 | R-(D-)=4 | R+(D+)=3 |
TCP mode
smartflex RS485 terminal block | 1 | 2 | 3 |
---|---|---|---|
connector | GND | TxRx+ | TxRx- |
promux | 4- | 3+ |
---|---|---|
cable | white | green |
smartflex | 2 | 3 |
basic testing and discover how to configure
Once the promux module powered and connected via RTU or TCP, make a simple test with modbus doctor. Even without any sensor, you can check the serial on register 0. It should be something like 96D (upper byte = software version, here 9, lower byte always = 109 ie 6D)
The PM6RTD supports various RTD types :
number | RTD Type |
---|---|
1 | PT100 |
2 | Ni120 |
3 | PT1000 |
4 | Ni1000 DIN |
5 | Ni1000 Landys&Gyr |
6 | Ohms 10 - 400 ohms |
7 | Ohms 100-4000ohms |
register number | description |
---|---|
99 | modbus address or unitId |
100 | RTD Type |
101 | Line Frequency (50/60) |
102 | Units Type (1=°C, 2=°F) |
Please note register 99 is read only
Here is a screen capture for a PM6RTD configured with modbus address 2, PT100 and °C
if DIP 10 is OFF, communication settings are 9600 bauds, no parity, 1 stop bit
if DIP 10 is ON, communication settings can be programmed :
register number | description |
---|---|
120 | Baud Rate (2400, 4800, 9600, 19200, 38400,57600,115200) |
121 | Parity (0 = none, 1 = even, 2 = odd) |
122 | Stop Bits (1 = 1 stop bit, 2 = 2 stop bits) |
123 | Reply Delay (0 = Disable, >0 = Enable) |
PT100 wiring
with the PM6RTD, sensors values can be found from register 1 to 6
thermocouple wiring
Composition : copper / Constantan (copper + nickel)
From −185 °C to 300 °C ;
accuracy +/-0,1 °C from −200 °C to 200 °C.
CEI 584-3
- brown rubber sheath
- brown = +
- white = -
Use the PM8TC isolated module
with the PM8TC, sensors values can be found from register 1 to 8
using a TCP datalogger
in case of a demonstrator instrumentation, with a lot of data to record, the HIOKI 8402-20 is a good choice
Using the HIOKI 8402-20 datalogger with a universal analog input unit LR8501
Configure the HIOKI 8204 for DHCP and connect it to the smartflex via an ethernet cable
Define a static DHCP lease for the HIOKI, using its MAC address :
use the specific Hioki socket interfacer for emonhub :
[[HiokiTCP]]
Type = EmonHiokiTcpInterfacer
[[[init_settings]]]
IP = 192.168.2.3
port = 8802
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
nodeId = 1
# in seconds
interval = 10
node configuration
[[1]]
nodename = Hioki8402
[[[rx]]]
names = TC1,TC2,TC3
channels = 1,1,1
voice = 1,2,3
There is no datacode to fix : the HIOKI is streaming ASCII and the decoding is integrated to the interfacer
to understand how to interrogate the HIOKI opening a TCP socket : python building block