Resi M XXX Sio Eth En10
Resi M XXX Sio Eth En10
RESI-xxx-ETH
Our series of intelligent IO modules based on MODBUS protocol and ASCII text protocol for building automation and
industrial automation.
Text, illustrations and programs have been elaborated with the greatest care. However, RESI Informatik & Automation
GmbH, translators and authors cannot accept any legal responsibility or liability for any incorrect information and its
consequences that may remain. This publication is protected by copyright. All rights reserved. No part of this book may be
reproduced in any form by photocopying, microfilm or other methods or in a language suitable for machines, in particular
data processing systems, without the prior written consent of RESI. The rights of reproduction through lectures, radio and
television are also reserved. This documentation and the associated software are protected by copyright by the company
RESI and by DI HC SIGL, MSc.
Only skilled personal trained in electro-engineering should perform the described steps in the following chapters. Please observe the
country specific rules and standards. Do not perform any electrical work while the device is connected to power.
Pay attention to the following rules:
1. Disconnect the system from power
2. Secure the system against automatic power on
3. Check that the system is de-energized
4. Cover other energized parts of the system
IMPORTANT HINT: Before you start with the installation and the initial setup of the device, you have to read this document
and the attached installation guide and the actual manual for the device very carefully. You have to follow all the herein given
information very accurate!
Only authorized and qualified personnel are allowed to install and setup the device!
The connection of the device must be done in de-energized state!
Do not perform any electrical work while the device is connected to power!
Disable and secure the system against any automatic restart or power on procedure!
The device must be operated with the defined voltage level!
Supply voltage jitters must not exceed the technical specifications and tolerances given in the technical manuals for the product. If
you do not obey this issue, the proper performance of the device cannot be guaranteed. This can lead to fail functions of the
device and in worst case to a complete breakdown of the device!
You have to obey the current EMC regulations for wiring!
All signal, control and supply voltage cables must be wired in a way, that no inductive or capacitive interference or any other
severe electrical noise disturbance may interfere with the device. Wrong wiring can lead to a malfunction of the device!
For signal or sensor cables you have to use shielded cables, to avoid damages through induction!
You have to obey and to apply the current safety regulations given by the ÖVE, VDE, the countries, their control authorities, the
TÜV or the local energy supply company!
Obey country-specific laws and standards!
The device must be used for the intended purpose of the manufacturer!
No warranties or liabilities will be accepted for defects and damages resulting from improper or incorrect usage of the device!
Subsequent damages, which results from faults of this device, are excluded from warranty and liability!
Only the technical data, wiring diagrams and operation instructions, which are part to the product shipment are valid!
The information on our homepage, in our data sheets, in our manuals, in our catalogs or published by our partners can deviate
from the product documentation and is not necessarily always actual, due to constant improvement of our products for technical
progress!
In case of modification of our devices made by the user, all warranty and liability claims are lost!
The installation has to fulfill the technical conditions and specifications (e.g. operating temperatures, power supply, …) given in the
devices documentation!
Operating our device close to equipment, which do not comply with EMC directives, can influence the functionality of our device,
leading to malfunction or in worst case to a breakdown of our device!
RESI-1RO-SIO 1xrelay output with max. 230Vac,30Vdc, 8A and NO+NC contacts ULTRA SLIM 17.5mm
RESI-1RO-ETH 1xrelay output with max. 230Vac,30Vdc, 8A and NO+NC contacts ULTRA SLIM 35.8mm
RESI-2RO-SIO 2xrelay output with max. 230Vac,30Vdc, 8A and NO contacts ULTRA SLIM 17.5mm
RESI-2RO-ETH 2xrelay output with max. 230Vac,30Vdc, 8A and NO contacts ULTRA SLIM 35.8mm
RESI-2SSR-1A-SIO 2xsolid state relay outputs with max. 600Vac, 600Vdc, 1A and NO contacts ULTRA SLIM 17.5mm
RESI-2SSR-1A-ETH 2xsolid state relay outputs with max. 600Vac, 600Vdc, 1A and NO contacts ULTRA SLIM 35.8mm
RESI-2SSR-6A-SIO 2xsolid state relay outputs with max. 60Vac, 60Vdc, 6A and NO contacts ULTRA SLIM 17.5mm
RESI-2SSR-6A-ETH 2xsolid state relay outputs with max. 60Vac, 60Vdc, 6A and NO contacts ULTRA SLIM 35.8mm
RESI-4DO-SIO 4xdigital outputs with max. 2-32Vdc, 300mA ULTRA SLIM 17.5mm
RESI-4DO-ETH 4xdigital outputs with max. 2-32Vdc, 300mA ULTRA SLIM 35.8mm
RESI-8CO-SIO 8xrelay output with max. 230Vac,30Vdc, 8A and NO+NC contacts BIGIO XT8 142.3mm
RESI-8COBI-SIO 8xbistable relay output with max. 230Vac,30Vdc, 8A and NO+NC contacts BIGIO XT8 142.3mm
RESI-10SSR-1A-SIO 10xsolid state relay outputs with max. 600Vac, 600Vdc, 1A and NO contacts BIGIO XT8 142.3mm
RESI-10SSR-6A-SIO 10xsolid state relay outputs with max. 60Vac, 60Vdc, 6A and NO contacts BIGIO XT8 142.3mm
RESI-30DO-SIO 30xdigital outputs with max. 2-32Vdc, 300mA BIGIO XT8 142.3mm
RESI-60DO-SIO 60xdigital outputs with max. 2-32Vdc, 300mA BIGIO XT12 213mm
RESI-S8RO-SIO 8xbistable power relais max. 250Vac, 16A, 200µF BIGIO XT8 142.3mm
RESI-16RI8RO-SIO 16xdigital inputs for 10-250Vac/dc signals BIGIO XT12 213mm
8xbistable power relais max. 250Vac, 16A, 200µF
RESI-8RO-SIO 8xbistable power relais max. 250Vac, 16A, 200µF BIGIO XT12 213mm
RESI-4SB-SIO 8xrelais max. 250Vac, 6A, AgSNO2 contacts BIGIO XT8 142.3mm
RESI-20RI8SB-SIO 20xdigital inputs for 10-250Vac/dc signals BIGIO XT12 213mm
16xrelais max. 250Vac, 6A, AgSNO2 contacts
RESI-8SB-SIO 16xrelais max. 250Vac, 6A, AgSNO2 contacts BIGIO XT12 213mm
RESI-4AOU-SIO 4xanalog outputs for -10..+10Vdc signals, 16 bit, ±0.1% ULTRA SLIM 17.5mm
RESI-4AOU-ETH 4xanalog outputs for -10..+10Vdc signals, 16 bit, ±0.1% ULTRA SLIM 35.8mm
RESI-12AOU-SIO 12xanalog outputs for -10..+10Vdc signals, 16 bit, ±0.1% BIGIO XT8 142.3mm
RESI-2AIU2AOU-SIO 2xanalog inputs for 0..+10Vdc signals, 12 bit, ±0.5% ULTRA SLIM 17.5mm
2xanalog outputs for 0..+10Vdc signals, 12 bit, ±0.5%
RESI-2AIU2AOU-ETH 2xanalog inputs for 0..+10Vdc signals, 12 bit, ±0.5% ULTRA SLIM 35.8mm
2xanalog outputs for 0..+10Vdc signals, 12 bit, ±0.5%
RESI-2RTD-ETH 2xinputs for RTD temperature sensors (PT100, PT1000, NI1000, NI120,…) ±0.1% ULTRA SLIM 35.8mm
2-wire, 3-wire and 4 wire connection
RESI-8RTD-SIO 2xinputs for RTD temperature sensors (PT100, PT1000, NI1000, NI120,…) ±0.1% BIGIO XT8 142.3mm
2-wire, 3-wire and 4 wire connection
RESI-8RTD2-SIO 2xinputs for RTD temperature sensors (PT100, PT1000, NI1000, NI120,…) ±0.1% BIGIO XT8 142.3mm
2-wire connection
RESI-1S0-SIO 1xS0 impulse input for smart meter with S0 interface ULTRA SLIM 17.5mm
RESI-1S0-ETH 1xS0 impulse input for smart meter with S0 interface ULTRA SLIM 35.8mm
RESI-2S0-SIO 2xS0 impulse input for smart meter with S0 interface ULTRA SLIM 17.5mm
RESI-2S0-ETH 2xS0 impulse input for smart meter with S0 interface ULTRA SLIM 35.8mm
RESI-1EGYDCS-SIO 1xDC metering with external shunt, DC voltage: 0..100Vdc, max. 255A shunt ULTRA SLIM 17.5mm
RESI-1EGYDCS-ETH 1xDC metering with external shunt, DC voltage: 0..100Vdc, max. 255A shunt ULTRA SLIM 35.8mm
RESI-1EGYDC-SIO 1xDC metering with external hall sensor, DC voltage: 0..100Vdc, max. 80A ULTRA SLIM 17.5mm
RESI-1EGYDC-ETH 1xDC metering with external hall sensor, DC voltage: 0..100Vdc, max. 80A ULTRA SLIM 35.8mm
RESI-MBUS2-ETH MBUS master to read data from 2 smart meter with MBUS interface ULTRA SLIM 35.8mm
RESI-MBUS8-ETH MBUS master to read data from 8 smart meter with MBUS interface ULTRA SLIM 35.8mm
RESI-MBUS24-ETH MBUS master to read data from 24 smart meter with MBUS interface ULTRA SLIM 35.8mm
RESI-MBUS48-ETH MBUS master to read data from 48 smart meter with MBUS interface ULTRA SLIM 35.8mm
Then open the clamp lever on the bottom side with a screw driver (2) and press the device on the DIN rail (3). Release
the clamp lever. The module is now placed correctly on the DIN rail.
4 5
Then open the black hook with a screw driver (2). Now press the module with the opened hook onto the DIN rail until
both sides of the module snap into the DIN rail (3). Release the screw driver now. The hook snaps into the DIN rail and
the module is now mounted correctly onto the DIN rail.
3
2
To remove the module from the DIN rail, you must open the hook with a screwdriver first. (4). Afterwards tilt the bottom
side of the module upwards with the open hook (5). Now remove the module slightly from the DIN rail with the top
side, to completely hang out the module from the DIN rail.
4 5
1
2
You will notice, that there are two holes for wall hooks or screws on the top side of the housing. (1) and (2). On the
bottom side you will notice a small hole for a screw to fix the housing on the wall from the front (3). But first we have to
remove the hook, which blocks the screw hole in the housing.
Illustration: Bottom view of the module with holes for XT8 wall mounting
Serial interface
(only for serial ULTRA SLIM IOs and BIG IOs)
Protocols MODBUS/RTU slave or ASCII text protocol
Type RS232 or RS485 for ULTRA SLIM IOs
RS485 for BIG IOs
Baud rate 300 to 256000bd
Data bits 8 bits
Parity none, even or odd
Stop bits 1 or 2 bits
LED indicator Yes
Ethernet interface
(only for Ethernet ULTRA SLIM IOs)
Protocols MODBUS/TCP Server
ASCII Text socket
MODBUS/RTU over Ethernet
Type Ethernet
Cable connection via RJ 45 socket
LED indicator Yes
General
Storage temperature -20...85 °C
Operating temperature 0...60 °C
Humidity 25...90% RH non-condensing
Protection class IP20 (EN 60529)
Dimensions LxWxH see section Dimension
Weight see individual technical data for specific IO module
Installation on DIN EN50022 rail for ULTRA SLIM IOs
on DIN EN50022 rail and on wall for BIG IOs
Approvals
CE conformity Yes
Terminal type USLIM Cable cross section: max. 2.5 mm², max. 14AWG
Screw: M3
Tightening torque: max. 0.5Nm, max. 4.5 Lb-in
Terminal type USLIM Cable cross section: max. 2.5 mm², max. 14AWG
Screw: M3
Tightening torque: max. 0.5Nm, max. 4.5 Lb-in
L+, M- Power supply via two separated plug-in 2-pin terminal blocks.
For daisy chain IN and OUT power supply of many modules
Pin 1: L+: 12-48 V=
Pin 2: M-: Ground
Terminal type: RM5
Terminal type RM5 Cable cross section: max. 2.5 mm², max. 14AWG
Screw: M3
Tightening torque: max. 0.5Nm, max. 4.43 Lb-in
Terminal type RM3.5 Cable cross section: max. 1.5 mm², max. 16AWG
Screw: M2
Tightening torque: max. 0.2Nm, max. 1.77 Lb-in
Figure: Serial connection for RS232 or RS485 for our serial ULTRA SLIM IO modules
Figure: Serial connection for RS485 for our serial BIG IO modules
Figure: Serial connection for RS485 for our serial BIG IO modules
For communication via ASCII texts, ASCII messages with a special start character # (0x23, 35dec) and special end
characters (0x0d, 13dec or CARRIAGE RETURN) are sent from the host to the module. The module also sends its
responses with this special start and end character. See the ASCII command description below. In ASCII mode you
can communicate with or without a bus number.
The following MODBUS functions are available for communication via MODBUS/RTU or MODBUS/TCP:
Note:
The functions READ HOLDING REGISTER and PRESET MULTIPLE REGISTERS are limited to max. 125 registers
limited per request! The functions READ INPUT STATUS, READ COIL STATUS and FORCE MULTIPLE COILS are
limited to 2000 coils or inputs (bits) per data frame.
More details about the MODBUS standard and the MODBUS protocol can be found here:
http://en.wikipedia.org/wiki/Modbus
http://www.modbus.org/
You can find a documentation about this in the internet called “PI_MBUS_300.pdf”, which describes the MODBUS
protocol pretty good.
To communicate, our RESI-xxx-SIO converters have either a RS232 interface to communicate 1 to 1, which means
one MODBUS/RTU master (your host system) can talk to exact one MODBUS/RTU slave, or a RS485 to offer a one to
many communication. Here one MODBUS/RTU master can communicate with a maximum of 255 MODBUS/RTU
slaves. In older host systems the limit is 32 slaves. This depends on the capabilities of the RS485 driver IC in the host
system. Our converters are able to use 256 communication partners on a RS485 line.
Our RESI-xxx-ETH converters can communicate with MODBUS/TCP protocol. A MODBUS/TCP system consists out
of one TCP server which is in fact our gateway and at least one to n MODBUS/TCP clients. This will be your host. Our
converters can connect only to one TCP client at a time.
MODBUS unit:
The MODBUS protocol demands a unique address of a MODBUS slave to address this special slave. This address is
called MODBUS unit. The range of this address is from 0 to 255. Usually 0 is not used in applications. We use 0 for
broadcast functions.
IMPORTANT HINT: If there is more than one MODBUS slave on a serial line, the pausing of the START and END
sequence are essential to re synchronize the slaves in case of data loss. If the host doesn’t keep this gaps,
communication with the slaves can be corrupted or impossible!
We support
03 READ HOLDING REGISTER
04 READ INPUT REGISTER
06 PRESET SINGLE REGISTER
16 PRESET MULTIPLE REGISTER
IMPORTANT HINT:
A MODBUS/RTU master can read and write into this registers with a 16 bit index, called the
starting address. The problem is the definition of the starting address. A 16 bit value can store the values from 0 to
65535. But according the MODBUS standard the registers are numbered from 1 to 65536. So, if the MODBUS
standard talks about register 1, an index of 0 must be used as start address in the telegram. You have to check
carefully, how this index is interpreted by the manufacturers’ documentation.
Whenever you get a description of registers for a MODBUS device, the first question to solve is: How is the
enumeration of the registers done?! Does the author use base=0, then he talks about the real start index of the
telegram. Does the author mean base=1, conforming to naming conventions of the MODBUS consortium, then you
have to subtract 1 before using this address in your telegrams.
… …
Usually a hexadecimal digit describes 4 bits. So we can group the 16 bits into 4 hexadecimal digits named
H3,H2,H1,H0. This means eg. the hexadecimal number 0xABCD stands for H3=A, H2=B, H1=C, H0=D.
A B C D
INTEL byte order, Little endian systems store the least significant byte first. So a memory map for 0xABCD
look like:
Memory address 0 CD
Memory address 1 AB
MOTOROLA byte order, Big endian systems store the most significant byte first. So a memory map for 0xABCD look
like:
Memory address 0 AB
Memory address 1 CD
Consult the internet for more details about this storage system.
http://en.wikipedia.org/wiki/Endianness
We want to store the 32 bit integer value 0x12345678 into two consecutive holding registers starting at 4x00020. The
memory map of the holding registers look like:
16 bit value
But again, we can also store the reverse word order into two consecutive registers. Then the result looks like this:
16 bit value
Be aware, that both systems (host and converter) have to treat the 32 bit value in the same way. Otherwise you will
read out wrong data! We will discuss this issue later in combination with 32 bit float numbers.
Our converter uses the second described way to store 32 bit values. We follow the little endian strategy of INTEL
systems and store 0x5678 into the first HOLDING register, and then we store 0x1234 in the consecutive register.
16 bit value
32 bit IEEE floating point: This is a float number using 32 bit. As before, this float needs two consecutive holding
registers. We store the least significant word first. The energy value of 6632480,00 is defined in 32 bit hex with
0x4ACA6840. This leads to the following HOLDING register layout. For more details search in the internet or
consult http://en.wikipedia.org/wiki/IEEE_floating_point or try out some float values and their hexadecimal
representation under http://www.h-schmidt.net/FloatConverter/IEEE754.html
16 bit value
IMPORTANT HINT:
32 bit floats are very tricky! Eg. The value 3,5351799 is represented internally as 0x40624063. But the reverse word
order (if the host reads out the wrong register indexes or the host corrupts the word order) 0x40634062 leads to the
float number 3,5508046. So this error in your software is very hard to find! Be very cautious, which register indexes
you read and how the word order of the two registers are interpreted.
32 bit date&time: This is a compressed format using 32 bit. Again the least significant word is stored into the first
register. The structure of the 32 bits are:
Bits 0..7: minute
Bits 8..15: hour
Bits 16..20: day
Bits 21..24: month
Bits 25..31: year
The current date & time “07.04.00 01:13” is represented hexadecimal with 0x0087010d (8847628dec) and stored
as followed:
16 bit value
We do a simple sample. We want to store the 32 bit unsigned integer value in hexadecimal 0x12345678 in MODBUS
holding registers starting with index 4x00010. The mapping can be done in two different ways:
But it is only one possibility, that we store the high word in the first MODBUS register. With the same right, we can
define to store the low word in the first register, and the high word in the second.
More complicated is the storage of a FLOAT32 value into two consecutive holding registers. We use a standard room
temperature e.g. 23,45 °C as a value, we want to store into two registers.
First we have to translate this value into a valid IEE754 float value. Therefore we use a perfect site in the internet
(http://www.h-schmidt.net/FloatConverter/IEEE754.html):
We enter the value 23.45 and we get a 32 bit hexadecimal representation of the float value. It is the number
0x41BB999A. Now we store this value in the same way, we have stored the UINT32 value into two registers:
HIGH WORD
4x00011 The low word of the 32 bit float value 0x41BC41BB is stored in the second 16 bit wide MODBUS
I:10 register. This means the value 0x41BB is stored here.
LOW WORD
But now we make a very big mistake, we read the two registers and restore the hexadecimal value in our host
software in the reverse word order. First low word, then high word. The result is the 32 bit value 0x41BB41BC instead
the correct value 0x41BC41BB. Then we convert this into an IEE754 float value.
The result is 23.407097. This is not far away from the original number of 23.532095! So this massive software error
can be undiscovered for a long time. Only if the reverse float value generates numbers which are physically not
possible for the measured signal, this error is discovered!
In addition the SAME registers are also readable over the function READ INPUT STATUS (function code: 2). This is for
host systems, which do not support all MODBUS/RTU functions properly.
The MODBUS convention defines 65535 possible coils with the notation 1x00001 to 1x65536. Inputs are usually noted
with 2x00001 to 2x65536. Please refer the software MODBUS POLL as a sample for this notation. Internally in the
MODBUS/RTU frames an index notation is used, which starts with 0 and ends with 65535. So we decided to note in
the following document a register with: 1x00100 for the coil 100, 2x00100 as a hint, that you can read this register also
as the input 100, and in addition also the real index of the protocol index 99 with the notation I:99.
In addition the SAME holding registers are also readable over the function READ INPUT REGISTER (function code:
4). This is for host systems, which do not support all MODBUS/RTU functions properly.
The MODBUS convention defines 65535 possible holding register with the notation 4x00001 to 4x65536. Input register
are usually noted with 3x00001 to 3x65536. Please refer the software MODBUS POLL as a sample for this notation.
Internally in the MODBUS/RTU frames an index notation is used, which starts with 0 and ends with 65535. So we
decided to note in the following document a register with: 4x00100 for the holding register 100, 3x00100 as a hint, that
you can read this register also as the input register 100, and in addition also the real index of the protocol index 99
with the notation I:99.
The host sends a command or a command with parameters without a bus address:
#<command><CR> or
#<command>:<parameter><CR>
The host sends the following to the module with the bus address:
#<ADR>,<command><CR> or
#<ADR>,<command>:<parameter><CR>
The bus address is in the range from 1dec to 255dec or 0x00 to 0xFF hexadecimal. The setting is made using our free
configuration software MODBUSConfigurator or our free LIBRE OFFICE® based configurator.
There are two spellings for each command. A long version and a short version, so that you have to send less. For
example, you can query the software version with the VERSION command or with the VER command.
Reply:
#VERSION:<HIGH>.<MED>.<LOW><CR> oder
#<ADR>,VERSION:<HIGH>,<MED>,<LOW><CR>
Examples:
#VERSIONCR
#VERSION:3.0.0CR
Respond:
#TYPE:<TYP><CR> or
#<ADR>,TYPE:<TYP><CR>
<TYP> represents the current type of the module. A RESI-2RI-SIO is shown as an example
Examples:
#TYPECR
#TYPE:RESI-2RI-SIOCR
#255,TYPCR
#255,TYPE:RESI-2RI-SIOCR
Please refer to the description of individual products for more details about the available ASCII commands.
Redefines the unit ID of the module. This change will affect the MODBUS/RTU communication immediately. As a Unit IO you can use the values 0dec to 255dec.
HINT: The new settings are activated after a system reboot or power off on cycle!
SET MODBUS BAUDRATE ASCII #SET MODBUS BAUDRATE:<BAUD><CR> ASCII NO
WRITE #SETMBBAUD:<BAUD><CR>
COMMAND Result:
#OK<CR>
BAUD 57600:57600BD
TX #SET MODBUS BAUDRATE:57600<CR>
RX N/A
HINT: This commands are only valid for the ULTRA SLIM IOs with serial RS232 or RS485 interface and for the BIG
IOs with RS485 interface.
7.5.1 ULTRA SLIM IOs: Howto change the UnitID of the IO module
When DIP switch #4:FD is set to ON, the module always communicates with the Unit ID 255. When you switch this
DIP switch to OFF, the module will use the internal Unit ID from the FLASH memory.
You can set this Unit ID either with this MODBUS register:
UNIT_ID 3x65222 1,0x0001 N/A:NO CHANGE UINT16 NO
4x65222 B:00 01 R/W
I:65221
UNIT ID:1 1
f the host reads this register, the current programmed unit ID is returned. All values above unit ID 255 define also the unit ID 255.
If the host write a new value into this register, the new value will be stored in the FLASH as the new unit ID. The new unit ID is activated after a power off/power on cycle or a software reboot of the module.
The host can execute a reboot in writing to the register RESET SYSTEM.
NOTE:DIP switch 4 must set to OFF to activate this unit ID, otherwise the unit ID is 255.
Redefines the unit ID of the module. This change will affect the MODBUS/RTU communication immediately. As a Unit IO you can use the values 0dec to 255dec.
HINT: The new settings are activated after a system reboot or power off on cycle!
After you changed the Unit ID you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, only if the DIP Switch #4 FD=OFF, you can use your new UnitID. Otherwise the module communicates
with UnitID 255.
After you changed the two settings you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, now the Module uses ALWAYS the new parity and stop bit setting in all communication modes!
But you can change the baud rate used with DIP switch setting ON,ON:
You can set the baud rate with this MODBUS register:
BAUD_RATE 3x65223 57600,0x0000E100 38400 38400 UINT32 NO
4x65223 B:00 00 E1 00 R/W
I:65222
57600Bd ENTER BAUD RATE 57600
This is the current configured baud rate in the FLASH
For ULTRA SLIM IOs RESI-xxx-SIO: This baudrate is only used, if DIP switch mode DIP1=ON+DIP2=ON (BR) (default is 57600bd)
For BIG IOs RESI-xxx-SIO: This baudrate is only used, if DIP switch mode DIP7=ON (PARAMETER) (default is 57600bd)
Valid baud rates are:
300bd, 600bd, 900bd, 1200bd, 2400bd, 4800bd,
9600bd, 19200bd, 38400bd, 57600bd, 115200bd, 128000bd
230400bd, 250000bd, 256000bd
After you changed the two settings you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, now the Module uses ALWAYS the new bau drate, if yu set the two DIP switches #1+#2 to ON,ON!
You can set this Unit ID either with this MODBUS register:
UNIT_ID 3x65222 1,0x0001 N/A:NO CHANGE UINT16 NO
4x65222 B:00 01 R/W
I:65221
UNIT ID:1 1
f the host reads this register, the current programmed unit ID is returned. All values above unit ID 255 define also the unit ID 255.
If the host write a new value into this register, the new value will be stored in the FLASH as the new unit ID. The new unit ID is activated after a power off/power on cycle or a software reboot of the module.
The host can execute a reboot in writing to the register RESET SYSTEM.
NOTE:DIP switch 4 must set to OFF to activate this unit ID, otherwise the unit ID is 255.
Redefines the unit ID of the module. This change will affect the MODBUS/RTU communication immediately. As a Unit IO you can use the values 0dec to 255dec.
HINT: The new settings are activated after a system reboot or power off on cycle!
After you changed the Unit ID you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, only if the DIP Switches #1-#4:ADDRESS are all OFF, you can use your new UnitID. Otherwise the
module communicates with the selected UnitID.
You can set the parity and the stop bits with this MODBUS register:
PARITY 3x65225 0,0x0000 N/A:NO CHANGE UINT16 NO
4x65225 B:00 00 R/W
I:65224
NO PARITY SELECT PARITY
If the register is read out, the currently set parity of the serial interface is returned.
Writing a value to this register will change the new parity in FLASH. This will only take effect after a restart of the module. This can be triggered by writing to the RESET SYSTEM register.
Parity values are
0: no parity
1: even parity
2: odd parity
STOP BITS 3x65226 1,0x0001 N/A:NO CHANGE UINT16 NO
4x65226 B:00 01 R/W
I:65225
TWO STOPBITS SELECT STOPBITS
f the register is read out, the currently set number of stop bits of the serial interface is returned.
Writing a value to this register will change the new number of stop bits in the FLASH. This will only take effect after a restart of the module. This can be triggered by writing to the RESET SYSTEM register.
Values for stop bits are
1: one stop bit
2: two stop bits
After you changed the two settings you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, now the Module uses the new parity and stop bit setting only, if DIP switch #8=ON!
This baud rates and the parity NONE and ONE stop bit are used, if the DIP switch #8 is set to OFF.
But you can change the baud rate used with DIP switch #8 PARAMETER setting to ON. Remember, that you will also
use the configured parity and stop bits from the FLASH memory!
You can set the baud rate with this MODBUS register:
BAUD_RATE 3x65223 57600,0x0000E100 38400 38400 UINT32 NO
4x65223 B:00 00 E1 00 R/W
I:65222
57600Bd ENTER BAUD RATE 57600
This is the current configured baud rate in the FLASH
For ULTRA SLIM IOs RESI-xxx-SIO: This baudrate is only used, if DIP switch mode DIP1=ON+DIP2=ON (BR) (default is 57600bd)
For BIG IOs RESI-xxx-SIO: This baudrate is only used, if DIP switch mode DIP7=ON (PARAMETER) (default is 57600bd)
Valid baud rates are:
300bd, 600bd, 900bd, 1200bd, 2400bd, 4800bd,
9600bd, 19200bd, 38400bd, 57600bd, 115200bd, 128000bd
230400bd, 250000bd, 256000bd
After you changed the two settings you have to restart the module to make the changes effective. You can also use the
MODBUS register for resetting the module:
SOFTWARE RESET
RESET 1x06001 0,0x00 N/A:NO CHANGE BIT NO
2x06001 B:00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
RESET 3x06001 0,0x0000 N/A:NO CHANGE UINT16 NO
4x06001 B:00 00 R/W
I:6000
Performs a software reset, whenever 1 is written to this register. If the host writes to this register 1, the module executes a soft reset (reboot).
Remember, now the Module uses ALWAYS the new baud rate, the parity and the stop bits, if you set the DIP switch #8
to ON! If you set the DIP switch #8 to OFF, you will use the baud rate defined by DIP switch #5-#7 and the parity is
always NONE and the stop bit is always ONE.
Test the connection by pressing the button "Test connection". If you have successfully established the connection, you
will see the following picture:
Otherwise you will get after a few seconds an error message like this:
Select the correct serial interfaces, the correct baud rates, parity and stop bits for an automatic search for IO modules.
Very important is the correct range of UnitID for this search:
Now select the module from the project tree and activate the test mode, you will see all actual values of your module
on the screen:
You can also use now commands from then command bar to control the connected IO module.
Ethernet
12-48Vdc
• TRANSPARENT MODE: Bidirectional, transparent gateway between Ethernet socket data and IO module. All
data arriving at the Ethernet socket are processed directly by the IO module. All data from the IO module is
forwarded directly to the Ethernet socket. This mode is required for the ASCII protocol.
TRANSPARENT MODE
Ethernet
Socket
Ethernet
Power 12-48Vdc
Ethernet
Socket
MODBUS/RTU MODBUS/RTU
Request Answer
e.g. #1:READ e.g. #1:data for READ
HOLDING REGISTER HOLDING REGISTER
Power 12-48Vdc
MODBUS/TCP
Ethernet
Socket
MODBUS/TCP MODBUS/TCP
Request Answer
e.g. #1:READ e.g. #1:data for READ
HOLDING REGISTER HOLDING REGISTER
Power 12-48Vdc
HINT: Please check the individual section of each IO module for the standard IP settings of our specific module.
The default user name is RESI and the default password is RESI.
• IP type: Selection between STATIC IP for a static IP address or DHCP mode for an automatic assignment of
the IP address.
• Static IP: Choose your desired IP address in IPv4 format
• Submask: Select your desired subnet mask in IPv4 format
• Gateway: Select your desired gateway IP address in IPv4 format
• DNS server: Select your desired DNS server IP address in IPv4 format
Click SAVE to save your data. But don't forget to restart the device for the new IP settings to take effect. If you have
problems, set the CFG DIP switch to ON and restart the device. Wait for more than 30 seconds. The gateway resets to
the factory settings with the IP standard settings defined above. Don't forget to set the CFG DIP switch back to OFF
afterwards.
NOTE: Do not change the TTL communication parameters (e.g. baud rate, ...). You can lose the connection to the
gateway!
• Work mode: Here you can select TCP Server/none if you want to communicate in transparent mode. All
incoming data on the socket are forwarded directly to the IO module. If you want to use the internal MODBUS /
TCP to MODBUS/RTU converter, you have to select TCP Server/ModbusTCP. If you select TCP-Server/none,
you can also communicate with the MODBUS/RTU protocol over Ethernet or use the ASCII protocol.
• Socket number: Here you can select the desired socket number that you want to use for the Ethernet
connection. The default value for our converters is 1024, for MODBUS/TCP 502.
Please leave the rest of the parameters unchanged. They are only suitable for experts!
• Module name: Here you can enter a new module name. It is used for better identification if you have more
than one gateway in your network.
• Username: Here you can enter a new user name for accessing the web configuration.
• Password: Here you can enter a new password for accessing the web configuration.
Don't forget to save the new settings with the SAVE button!
Please leave the rest of the parameters unchanged. These are only for experts!
Now you have reset the factory settings to the IP standard settings and selected the MODBUS/TCP server mode.
To test your MODBUS/TCP server functionality, use the MODBUS Poll software shown here:
Now you have reset the factory settings to the IP standard settings and selected the MODBUS/TCP server mode. Now
open the Web configuration with your browser and navigate to the page shown below:
Now change the Work Mode from MODBUS/TCP to None and adapt the socket number to your needs. (e.g. 1024).
Click SAVE and restart the module with the RESTART button. Now the module works in TRANSPARENT mode.
After you have established a connection, set the MODBUS read parameters to your needs. Select the function Setup /
Read-Write Definition .. and configure the following parameters. If successful, the following values should be
displayed:
Then we have to change the behavior of the PUTTY terminal emulation. Click Terminal in the tree on the left and
change the settings to the parameters shown below:
You can also use the UnitID of the IO module in this protocol:
Click on the button “Test connection”. The software should display after a short test: connection test successful.
Baudrate
DIP switch #1
Baudrate
DIP switch #2
Interface
RS232 or RS485
Function
selection
Function 1
DIP switch #1
Function 2
DIP switch #2
Mode
DIP switch #3
Factory config
DIP switch #4
FUNC1 ON: When the module is restarted, the module changes to STATIC IP configuration with
the standard IP settings
OFF: The current IP settings are used
FUNC2 ON: When the module is restarted, the module changes to DHCP IP configuration.
OFF: The current IP settings are used
MODE While resetting to factory settings (CFG=ON):
OFF: Socket mode is set to MODBUS/TCP Socket
ON: Socket mode is set to MODBUS/RTU or ASCII over Ethernet
In normal operation:
OFF: The configured UnitID is used
ON: UnitID 255 is always used!
CFG ON: When the module restarts, the module restores the factory settings.
Wait for about 30 seconds until the STATE + CFG LED
blink quickly. Then set all DIP switches to OFF.
The module restarts automatically and is ready for use.
OFF: Normal start of the module
NOTE After changing a DIP switch, the module restarts immediately.
After restarting, all LEDs are briefly switched on to visually indicate the restart of the
device.
Address
DIP switch
#1-#4
Baudrate
DIP switch
Parameter
#5-#7
DIP switch #8
DIP SWITCH
1=ADR0
2=ADR1
3=ADR2
4=ADR3
5=BR0
6=BR1
7=BR2
8=PARAMETER
ADR3 ADR2 ADR1 ADR0 MODBUS/RTU unit number or ASCII bus number
OFF OFF OFF OFF Internal MODBUS/RTU unit number is used from
the FLASH memory in the range of 0 to 255.
OFF OFF OFF ON 1
OFF OFF ON OFF 2
OFF OFF ON ON 3
OFF ON OFF OFF 4
OFF ON OFF ON 5
OFF ON ON OFF 6
OFF ON ON ON 7
ON OFF OFF OFF 8
ON OFF OFF ON 9
ON OFF ON OFF 10
ON OFF ON ON 11
ON ON OFF OFF 12
ON ON OFF ON 13
ON ON ON OFF 14
ON ON ON ON 15
BAUD RATE Those three DIP switches BR2-BR0 define the MODBUS/RTU or ASCII baud rate for the
communication:
PARAMETER This DIP switch selects between the configuration via DIP switch or via FLASH parameter for the
serial setup.
=0: The selected UnitID, baud rate from the DIP switch settings are used.
The parity is NONE and the one stop bit is used
=1: The selected UnitID from the DIP switches is used, but the serial parameters are taken from
the FLASH parameters.
Baud rate can be selected between 300 to 256000 Baud.
Parity can be NONE, EVEN or ODD.
Stop bits can be ONE or TWO.
NOTE After changing the DIP switch, the device will be booted automatically So no voltage off/
voltage one cycle is necessary. After restarting, all LEDs flash briefly to represent the restart
sequence.
Address
DIP switch
#1-#4
Baudrate
DIP switch
#5-#7
Parameter
DIP switch #8
DIP SWITCH
1=ADR0
2=ADR1
3=ADR2
4=ADR3
5=BR0
6=BR1
7=BR2
8=PARAMETER
ADR3 ADR2 ADR1 ADR0 MODBUS/RTU unit number or ASCII bus number
OFF OFF OFF OFF Internal MODBUS/RTU unit number is used from the
FLASH memory in the range of 0 to 255.
OFF OFF OFF ON 1
OFF OFF ON OFF 2
OFF OFF ON ON 3
OFF ON OFF OFF 4
OFF ON OFF ON 5
OFF ON ON OFF 6
OFF ON ON ON 7
ON OFF OFF OFF 8
ON OFF OFF ON 9
ON OFF ON OFF 10
ON OFF ON ON 11
ON ON OFF OFF 12
ON ON OFF ON 13
ON ON ON OFF 14
ON ON ON ON 15
BAUD RATE Those three DIP switches BR2-BR0 define the MODBUS/RTU or ASCII baud rate for the
communication:
PARAMETER This DIP switch selects between the configuration via DIP switch or via FLASH parameter for the
serial setup.
=0: The selected UnitID, baud rate from the DIP switch settings are used.
The parity is NONE and the one stop bit is used
=1: The selected UnitID from the DIP switches is used, but the serial parameters are taken from
the FLASH parameters.
Baud rate can be selected between 300 to 256000 Baud.
Parity can be NONE, EVEN or ODD.
Stop bits can be ONE or TWO.
NOTE After changing the DIP switch, the device will be booted automatically So no voltage off/
voltage one cycle is necessary. After restarting, all LEDs flash briefly to represent the
restart sequence.
STATE
LED
HOST LED
INFO
LED
STATE State LED, flashes slowly (approx. 1s) if the module is OK.
Flashes quickly when the module has an internal error
INFO This LED shows more information about the local IOs. The functionality depends on the
used IO module. Please refer to the detailed description for each IO module.
HOST Shows whether serial data is currently being sent or received via the RS232 or RS485 interface
HOST
LED
INFO
LED
DATA
LED
STATE LINK
LED LED
CFG
LED
STATE State LED, flashes slowly (approx. 1s) if the module is OK.
Flashes quickly when the module has an internal error
INFO This LED shows more information about the local IOs. The functionality depends on the
used IO module. Please refer to the detailed description for each IO module.
HOST Shows whether serial data is currently being sent or received via the internal serial
interface to the Ethernet controller
LINK This LED is on when the Ethernet interface is electrically connected correctly with the
network
DATA This LED shows the data flow on the Ethernet interface
COMM
LED
STATE-ERROR
LED
INFO
LED
COMM Shows whether serial data is currently being sent or received via the RS485
interface
STATE-ERROR State LED, flashes slowly (approx. 1s) in WHITE if the module is OK.
Flashes quickly in RED when the module has an internal error
INFO This LED shows more information about the local IOs. The functionality depends on the
used IO module. Please refer to the detailed description for each IO module.
STATE
LED
STATE State LED, flashes slowly (approx. 1s) in WHITE if the module is OK.
Flashes quickly in RED when serial data is currently being sent or received via the RS485 interface
Figure: Dimensions of the housing for our serial ULTRA SLIM IO modules in mm
Dimensions
Housing illustration 17.5 x 90 x 58
Color gray RAL 7035
Material PA-UL 94 V0
Protection class IP20 based on DIN 40050 / EB 60529
Figure: Dimensions of the housing for our Ethernet ULTRA SLIM IO modules in mm
Dimensions
Housing illustration 35.8 x 90 x 58
Color gray RAL 7035
Material PA-UL 94 V0
Protection class IP20 based on DIN 40050 / EB 60529
Figure: Dimensions of the housing for our serial BIG IOs XT8 modules in mm
Dimensions
Housing illustration 142.3 x 110 x 62
Color grey RAL 7035
Material Self-extinguishing Blend PC/ABS UL94-VO
Protection class IP20 based on DIN 40050 / EB 60529
Figure: Dimensions of the housing for our serial BIG IOs XT12 modules in mm
Dimensions
Housing illustration 213 x 110 x 62
Color grey RAL 7035
Material Self-extinguishing Blend PC/ABS UL94-VO
Protection class IP20 based on DIN 40050 / EB 60529
First row:
• Create a new empty project
• Open an existing project
• Save current project
• Save current project with new name
Second row:
• Add a gateway, IO module or object to the project tree
• Delete selected item from the project tree
• Copy selected item into internal clipboard
• Paste internal clipboard to project tree
Third row:
• Generate project report
Test
This button activates a cyclic test option, which will show values from the connected device. IN this case it will show
the current meter values of the connected MBUS meter on your MBUS gateway.
Value grid:
Under the specific device settings most of our module show a gird with more configuration possibilities or a grid with
MODBUS registers. Again the configuration grid will be downloaded with the button Download int the device. The
MODBUS values will be cyclic updated by activating the Test button.
For more details refer to the specific devices, what information the MODBUSConfigurator software will offer.
Digital inputs
Total amount of inputs 14
Sampling rate Every 5ms
DC rating
Input voltage range 24-250V= +/-10%
Input current per channel
approx. 1.0mA@20V=
approx. 1.6mA@24V=
approx. 1.9mA@32V=
approx. 2.1mA@250V=
Input power consumption max. 0.6W/channel
Logic levels 0: <3V=
1: >20V=
AC rating
Input voltage range 24-250V= +/-10%
Input current per channel
approx. 1.2mA@20V~
approx. 1.4mA@24V~
approx. 1.8mA@48V~
approx. 2.0mA@110V~
approx. 2.1mA@230V~
approx. 2.1mA@250V~
Input power consumption max. 0.6W/channel
INFO This LED is on, if at least one of the digital inputs is high (1).
DC signal
Ground
Figure: Cabling of the digital inputs of the IO module with DC signals
Don’t forget, that you can use signals from different DC power supplies for each input, because all digital inputs are
galvanically insulated to each other. Also you can mix AC and DC input signals on one module!
L
N
Figure: Cabling of the digital inputs of the IO module with AC signals
Don’t forget, that you can use signals from different AC power supplies for each input, because all digital inputs are
galvanically insulated to each other. Also you can mix AC and DC input signals on one module!
Please refer to the external document for detailed documentation of the current MODBUS register mapping for this IO
module:
RESI-L-14RI-SIO-MODBUS+ASCII-ENxx.pdf
Please refer to the external document for detailed documentation of the current ASCII commands for this IO module:
RESI-L-14RI-SIO-MODBUS+ASCII-ENxx.pdf
DIx
SWITCH ROx
DIx
SWITCH ON ROx
TOGGLE ROx
Figure: Internal logic functions
Example: Switch the output relay RO1 on and off with the digital input DI1
Over the ASCII interface you have to send the following commands:
PC->IO: #SET SWITCH1:0x0001
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 0x0001 in MODBUS register SWITCH RO1 (4x20001)
PC->IO: Write value 0x0001 in MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
Example: Switch the output relay DO1 with digital input DI1 on and off, with DI2 the relay RO2, with DI3 the
relay RO3 and so on.
Over the ASCII interface you have to send the following commands:
PC->IO: #SET SWITCH1:0x0001
IO->PC: #OK
RESI Informatik & Automation GmbH RESI-xxx-SIO, RESI-xxx-ETH 121 of 215
© Copyright by RESI Informatik & Automation GmbH & DI HC Sigl,MSc
PC->IO: #SET SWITCH2:0x0002
IO->PC: #OK
PC->IO: #SET SWITCH3:0x0004
IO->PC: #OK
PC->IO: #SET SWITCH4:0x0008
IO->PC: #OK
PC->IO: #SET SWITCH5:0x0010
IO->PC: #OK
PC->IO: #SET SWITCH6:0x0020
IO->PC: #OK
PC->IO: #SET SWITCH7:0x0040
IO->PC: #OK
PC->IO: #SET SWITCH8:0x0080
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 0x0001 to MODBUS register SWITCH RO1 (4x20001)
PC->IO: Write value 0x0002 to MODBUS register SWITCH RO2 (4x20002)
PC->IO: Write value 0x0004 to MODBUS register SWITCH RO3 (4x20003)
PC->IO: Write value 0x0008 to MODBUS register SWITCH RO4 (4x20004)
PC->IO: Write value 0x0010 to MODBUS register SWITCH RO5 (4x20005)
PC->IO: Write value 0x0020 to MODBUS register SWITCH RO6 (4x20006)
PC->IO: Write value 0x0040 to MODBUS register SWITCH RO7 (4x20007)
PC->IO: Write value 0x0080 to MODBUS register SWITCH RO8 (4x20008)
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
Now you can switch on or off all 8 relay outputs RO1 to RO8 with the first 8 digital inputs DI1 to DI8.
Example: The relay output RO1 is switched on by one of the four digital inputs DI1, DI2, DI3 and DI4
Over the ASCII interface you have to send the following commands:
PC->IO: #SET SWITCH ON1:0x000F
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 0x000F to MODBUS register SWITCH ON RO1 (4x20017)
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
Over the ASCII interface you have to send the following commands:
PC->IO: #SET SWITCH ON1:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON2:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON3:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON4:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON5:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON6:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON7:0x8000
IO->PC: #OK
PC->IO: #SET SWITCH ON8:0x8000
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
If you connect a push button switch to the digital input 16 and press this button, all eight relay outputs are switched on
immediately. If you don’t press the button, you can switch each of the eight relay on or off via MODBUS or ASCII
protocol
Example: Switch off relay output RO2 with one of the three digital inputs DI1, DI3, DI6
Over the ASCII interface you have to send the following commands:
Bit 0 stands for DI1 -> 1
Bit 2 stands for DI3 -> 4
Bit 5 stands for DI6 -> 32
Results in 1+4+32 -> 37
PC->IO: #SET SWITCH OFF2:37
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 37 to MODBUS register SWITCH OFF RO2 (4x20026)
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
Over the ASCII interface you have to send the following commands:
PC->IO: #SET SWITCH OFF1:0x4000
IO->PC: #OK
PC->IO: #SET SWITCH OFF2:0x4000
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO1 (4x20025)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO2 (4x20026)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO3 (4x20027)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO4 (4x20028)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO5 (4x20029)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO6 (4x20030)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO7 (4x20031)
PC->IO: Write value 0x4000 to MODBUS register SWITCH OFF RO8 (4x20032)
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
The other relay outputs are not affected by this configuration. If you connect a pushbutton switch to digital input DI15,
all eight relay outputs are switched immediately to 0, if the button is pressed. If the button is released, you can switch
on or off each output relay via the MODBUS or ASCII protocol.
Example: Toggle switch: With one of the two digital inputs DI1, DI2 we want to invert the relay output RO4.
Over the ASCII interface you have to send the following commands:
Bit 0 stands for DI1 -> 1
Bit 1 stands for DI2 -> 2
Results in 1+2 -> 3
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 3 to MODBUS register TOGGLE RO4 (4x20012)
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
The other relay outputs are not affected by this configuration. If you connect two push buttons to the digital inputs DI1
and DI2 and press one of them, the current status of the relay output RO4 is inverted.
Example: Stairway lighting: With one of the two digital inputs DI1, DI2 we want to switch on the output relay
RO1 for 30 seconds.
Over the ASCII interface you have to send the following commands:
Bit 0 stands for DI1 -> 1
Bit 1 stands for DI2 -> 2
Results in 1+2 -> 3
PC->IO: #SET PULSE4:3
IO->PC: #OK
The time is defined in 1/10s. So the value 300 defines a time of 30 seconds.
PC->IO: #SET PULSE TIME4:300
IO->PC: #OK
PC->IO: #SET SPECIAL MODE:1
IO->PC: #OK
Via the MODBUS interface you have to set the following registers:
PC->IO: Write value 3 to MODBUS register PULSE RO1 (4x20033)
PC->IO: Write value 300 as a 32 bit value to the two registers PULSE TIME RO1 4x20065-4x20066.
The number 0x12345678 will be divided into two 16 bit values and stored in this way:
4x200065:0x1234 and 4x20066:0x5678
300 as hexadecimal number is 0x0000012C.
PC->IO: Write value 0x0000 to MODBUS register PULSE TIME RO1 (4x20065)
PC->IO: Write value 0x012C to MODBUS register PULSE TIME RO1 (4x20066)
or:
PC->IO: Write value 300 as a 32 bit value to the two registers PULSE TIME RO1 4x20081-4x20082
PC->IO: Write value 0x0001 to MODBUS register ENABLE LOGIC FUNCTIONS (4x21001)
The other relay outputs are not affected by this configuration. If you connect two push buttons to the digital inputs DI1
and DI2 and you press one of the two buttons, the relay output RO4 will be on for 30 seconds. After this time span the
relay output will be switched off automatically. If you press one of the two buttons again, if the output relay is on, the
time span of 30 seconds starts again.
Power consumption
RESI-S16DI8RO-SIO <2.0W
RESI-S8RO-SIO <2.0W
Product housing
RESI-S16DI8RO-SIO BIG IO XT8
RESI-S8RO-SIO BIG IO XT8
Product weight
RESI-S16DI8RO-SIO 565g
RESI-S8RO-SIO 555g
Digital inputs
only RESI-S16DI8RO-SIO
Total amount of inputs 16
Sampling rate Every 5ms
Input voltage range 12-48V= +/-10%
Input current approx. 1mA per channel
Logic levels 0: <3V=
1: >5V=
Cable connection Via 18-pin plug-in terminal block
Terminal type RM3.5
Galvanic insulation No
Relay outputs
Number of outputs 8 bistable relays
for socket-outlets and light applications
Relay type Bistable with manual operation
Incandescent electric lamp load Max 4.800 W
Capacitive load Max. 200µF
Maximum voltage 250Vac
Maximum current 16A
Mechanical lifetime 106 cycles of operation
Contact material AgSnO2
Insulation Creepage and clearance distance 8mm
Cable connection Via 8 2-pin plug-in terminal blocks
Terminal type RM5
Galvanic insulation Yes, with the relay
LN LN LN LN LN LN LN LN
Figure: Connecting the bistable relay outputs to the IO module
Please refer to the external document for detailed documentation of the current MODBUS register mapping for this IO
module:
RESI-L-S16DI8RO,S8RO-SIO-MODBUS+ASCII-ENxx.pdf
Please refer to the external document for detailed documentation of the current ASCII commands for this IO module:
RESI-L-S16DI8RO,S8RO-SIO-MODBUS+ASCII-ENxx.pdf
Product housing
RESI-4AIU-SIO CEM17
RESI-4AIU-ETH CEM35
Product weight
RESI-4AIU-SIO 65g
RESI-4AIU-ETH 90g
Analog inputs
Number 4
Update speed Every 100ms
Range -10V .. + 10V
ADC resolution 16 bit
Input voltage range -10.24V .. + 10.24V
Accuracy +/- 0.1V
Cable connection via terminals
Galvanic isolation Yes
User RESI
password RESI
INFO If everything is OK, this LED is on. If there is an internal error at the analog inputs,
this LED flashes quickly.
+ - - + + - - +
+ - - + + - - +
Please refer to the external document for detailed documentation of the current MODBUS register mapping for this IO
module:
RESI-L-4AIU-SIO-ETH-MODBUS+ASCII-ENxx.pdf
Please refer to the external document for detailed documentation of the current ASCII commands for this IO module:
RESI-L-4AIU-SIO-ETH-MODBUS+ASCII-ENxx.pdf
Click on the add to project button to open a dialog with all available IO modules. Then select the section SLIM-IO
modules… and select RESI-4AIU-SIO or RESI-4AIU-ETH to add this device to your project. or you search the connected
module automatically.
Your screen should look like this if you activate the Test button.
• RESI-MBUS2-ETH: MBUS master gateway for readout of MBUS data from 2 MBUS smart meter, up to 40
MODBUS holding registers/20 mappings from MBUS to MODBUS, Ethernet interface
→ Former product RESI-MBUST-ETH
• RESI-MBUS8-ETH: MBUS master gateway for readout of MBUS data from 8 MBUS smart meter, up to 400
MODBUS holding registers/200 mappings from MBUS to MODBUS, Ethernet interface
→ Former product RESI-MBUS-ETH
• RESI-MBUS24-ETH: MBUS master gateway for readout of MBUS data from 24 MBUS smart meter, up to
1000 MODBUS holding registers/500 mappings from MBUS to MODBUS, Ethernet interface
→ Former product RESI-MBUS2-ETH
• RESI-MBUS48-ETH: MBUS master gateway for readout of MBUS data from 48 MBUS smart meter, up to
1200 MODBUS holding registers/600 mappings from MBUS to MODBUS, Ethernet interface
→ Former product RESI-MBUS3-ETH
• RESI-MBUS64-ETH: MBUS master gateway for readout of MBUS data from 64 MBUS smart meter, up to
1200 MODBUS holding registers/600 mappings from MBUS to MODBUS, Ethernet interface
→ New product
The amount of meters are defined by the standard unit load of 1.5mA per meter. Please note that many meters need
more current from the MBUS power supply, so the total number of meters may not recht the maximum of the used
module.
Product housing
RESI-MBUSx-SIO CEM17
RESI-MBUSx-ETH CEM35
Product weight
RESI-MBUSx-SIO 55g
RESI-MBUSx-ETH 90g
MBUS cabling
Nominal cable for MBUS bus JYStY 2x0.8mm² or
JYStY 0x1.5mm²
Nominal cable resistance 75 Ohm/km
Nominal cable capacity 50nF/km
Maximum cable length max. 7000m
Maximum cable capacity: max. 180nF
HINT: The real cable length is determined how many MBUS meters you will connect to the segment and how the
segment is designed (star, tree, line) and how fast you will communicate over the bus line. Please refer to the internet
for more details how to build a correct MBUS meter network!
User RESI
password RESI
MBUS system MBUS master for connection of 2/8/24/48/64 smart meters with MBUS interface
One 3 pin terminal blocks
Terminal type: USLIM
MB+: Positive signal of MBUS bus system
MB-: Negative signal of MBUS bus system
HINT: Swapping the two wires of the bus is also permitted and
does not generate any errors
STATE If no configuration is downloaded into the module, this LED blinks very quickly (~100ms)
If the configuration or the module has an error this LED blinks very fast (~50ms)
If everything is ok this LED blinks very slow (~1s)
MBUS If any data is send or received by the MBUS interface, this LED flashes
Figure: Connecting the MBUS bus system to the serial MBUSx converter
Figure: Connecting the MBUS bus system to the Ethernet MBUSx converter
In most cases a standard telephone cable is used which is a twisted pair wire with a diameter of 0.8mm each
(2x0.8mm). This type of cable should be used for the main wiring. For the wiring to the meters from the main wiring
(last one or two meters to the meter) a cable with smaller diameter may be used.
The maximum distance between a slave and the master is around 3km to 10km, depending on the individual network
configuration. This distance applies for the standard configuration having Baud rates between 300 and 2400 Baud,
and a maximum of 64 slaves. The maximum distance can be increased by limiting the Baud rate and using fewer
slaves, but the bus voltage at no point in a segment fall below 24V, because of the remote powering of the slaves. In
the standard configuration the total cable length should not exceed 3000 m, in order to meet the requirement of a
maximum cable capacitance of 180nF.
Please refer to the internet for more details about the MBUS bus cabling and the theoretical and practical cable length.
The resistive cable length defines the maximum length of a cable segment with in the bus structure. The cable
segment length is the distance from the M-Bus Master to the M-Bus device furthest away. The capacitive cable length
defines the maximum bus cable length in total.
Usage:
• max. 64 devices with max 9600 baud
Usage:
• max. 64 devices with max 2400 baud
Usage:
• max. 64 devices with max 2400 baud
Usage:
• max. 64 devices with max 2400 baud
Usage:
• max. 16 devices with max 300 baud
Usage:
• max. 1 device with max 300 baud
You will notice, that you find the new MBUS converters on top of the list. But for compatibility reasons, you can also
add and use older modules or older projects with the old MBUS modules form us.
After you have selected your device, don't forget to set the serial or Ethernet parameters correctly for communication
with your module. Or you use the automatic search function of our software.
• Baudrate: This is the current used MBUS baud rate on the MBUS. Usually you will see the currently
configured baud rate of your converter.
• Start, End: This two fields define the primary address range, which will be used for an automatic search for
connected MBUS slaves via primary addressing mode. You can enter a valid MBUS primary address in the
range from 1 to 251. If you have connected only one meter, you can also use the primary broadcast address
254 for communication with this meter.
• Query timeout: This field defines the timeout between two query cycles in the gateway. Usually the gateway
communicates with all configured meters sequentially. After finishing the data readout for the last meter, the
gateway pauses for this defined interval in seconds. This values are used:
Value 65535 or values 0..5 defines ~5s pause.
Values 6 to 65534: defines 6 to 65534 seconds of pause, before the next polling cycle will start.
• Poll timeout: This field defines a general pause after the readout of a configured meter before the readout of
the next meter starts. In the past we discovered that there are many meters out in the market, which need a
special treatment in the timing. e.g. very old KAMSTRUP meters need often two readout cycles with a gap of
at least 10-15 seconds. This is non standard to the MBUS. Or other meters have problems with secondary
addressing, if there is a too small gap between the readout. So we introduced this new parameter: This
timeout defines the pause after finishing reading of a meter and starting reading the next meter. In the
previous firmware versions this timeout was fixed to 250ms gap, which was ok for 99% of the meter readout
on the markets. But some meter fail to process this little gap. The values is interpreted as follows:
Value 1..30: Gap time 1 seconds to 30 seconds
Value 101..400: Gaptime=(Value-100)*0.1s → 0.1s .. 30s e.g. 105 → 0.5s
Value 65535: Gap time is 1 second
Value 65534: Gap time is 250ms
Value 65533: Gap time is 500ms
Value 65532: Gap time is7250ms
All other values: Gap time is 1000ms
Change the MBUS baudrate and/or the poll & query timeouts
Follow this steps to change to communication baud rate of the MBUS bus system:
1. Select a new baud rate from the drop down list Baudrate in the MBUS area.
2. Change the query timeout to your needs
3. Change the poll timeout to your needs
4. Use the Download config button to download the new settings into your device
5. Now your device will use the new settings of the baud rate and the timeouts on the MBUS side
You can achieve the same with writing the new MBUS baud rate and the timeouts to certain MODBUS registers.
Please refer to the section of the MODBUS register description, how this function will work.
1 2 n 1 2 n 1 2 n
time t
Now we go more into detail, how the MBUS gateway will handle the request process of one meter. Forst we define the
parameters:
• Poll repeats 1: This field defines the amount of telegram repetitions for the addressing command to a meter,
before the gateway declares the communication as not possible and resumes with the next meter.
Value 65535 or 0: use 3 repeats as standard
Value 1..n: Use n repeats
• Poll repeats 2: This field defines the amount of telegram repetitions for the data readout command to a meter,
before the gateway declares the communication as not possible and resumes with the next meter.
Value 65535 or 0: use 5 repeats as standard
Value 1..n: Use n repeats
• Poll pre delay 1: This field defines the first pause time in Milliseconds before starting to send the first
addressing command telegram to a meter.
Value 65535: use 250ms as standard pause time
Value 0..65534: Use x ms as pause time
PREV
SLAVE
or
START
A A OK
D D D DATA1
time t
DATA1
D D D DATA2
time t
D DATAn-1
D D DATAn
NEXT
SLAVE
time t
• Search M-Bus slaves with primary address: With this function the MBUS network is scanned for new
meters only by addressing the meters with the primary address. The address range is defined with the
parameters Start and End in the MBUS area. Every found meter, which is not part of the configuration, will be
added automatically to the project.
• Search M-Bus slaves with secondary address: With this function the MBUS network is scanned for new
meters using secondary addressing mode with the unique serial number of the meters. Every found meter,
which is not part of the configuration, will be added automatically to the project.
First setup the address range for your search with defining Start end End parameter in the area MBUS. In our example
we use the full range 1 to 251:
Click then on the button Search M-Bus slaves to start the automatic search. Be aware, that you will not find a
connected meter if it has a different baud rate configured or if it has no primary address programmed or if there are
two meters with the same primary address on the bus!
HINT: You can interrupt the automatic search process by pressing the ESC button. After a few seconds the search will
be interrupted.
You notice, that now two meters are sown in the project tree. One with the number 2 and one with the number 4. Also
the software has build an automatic mapping table between the MBUS data points and the MODBUS registers of the
meter. This table is shown below the current settings. lets take a closer look into this table:
You see, that the first meter is mapped to the MODBUS registers 4x00001 to 4x00041. The second meter is mapped
to the MODBUS registers 4x00042 to 4x000232, because the meter offers has much more MBUS data points.
Area 1 is compatible to our old MBUS converter modules, but it is located in a different area of the MBUS registers
starting at 4x09001. For every configured meter two MODBUS entries are generated. One holds the communication
state of the MBUS gateway with the meter with the following states:
• 0 - Meter isn't configured!: This value shows, that this meter slot is currently not configured in the MBUS
gateway.
• 1 - Meter isn't normalized!: This value shows, that the configured meter doesn't answer to the addressing
command. Either via primary addressing or via secondary addressing mode. This depends, how the meter
was configured.
• 2 - Meter isn't read!: This value shows, that the configured meter has answered to the addressing command
but there are problems by reading all data from the meter. So the meter data is not valid any more.
Area 2 is new to the new series of gateways and represent the information of the MBUS fixed data header.
This header is sent by many answer frames of the MBUS meter to the master. Due to the fact, that is is not part of the
variable data block of the meter, our old converters could not map this information to registers. Our new series map
this information to the following register set starting at 4x10001. For each meter there are eight MODBUS entires:
The following medium types are defined by the standard for meters with fixed+variable data structure:
• 0x00: OTHER
• 0x01: OIL
• 0x02: Electricity
• 0x03: Gas
• 0x04: Heat-Volume measured at return temperature outlet
• 0x05: Steam
• 0x06: Hot Water
• 0x07: Water
• 0x08: H.C.A.=Heat Cost Allocator
• 0x09: Compressed Air
• 0x0A: Cooling load meter Volume measured at return temperature outlet
• 0x0B: Cooling load meter Volume measured at flow temperature inlet
• 0x0C: Heat Volume measured at flow temperature inlet
• 0x0D: Heat/Cooling load meter
• 0x0E: Bus/System
• 0x0F: Unknown Medium
• 0x16: Cold Water
• 0x17: Dual Water
• 0x18: Pressure
• 0x19: A/D Converter
For meters with fixed data structure only, the 16 bit value must be interpreted in another way. Refer to the MBUS
standard for this definition.
Click on the button Search M-Bus slaves via serial to start the automatic search with secondary addressing mode for
the meters. Now the software does a pattern search for new connected MBUS meters. The benefit with this method is,
that you don't have to program any primary addresses into your meters.
HINT: You can interrupt the automatic search process by pressing the ESC button. After a few seconds the search will
be interrupted.
Click on the button Save CSV file. A dialog for entering the name of the CSV file will be opened. After you defined the
name, the CSV file is on your file system. Take a calculation software to open the CSV file (in our case Libre office),
select Semicolon as a separator and open the CSV file.
Click on the button Erase configuration. A question will pop up. If you answer with YES, the gateway will be restored to
factory defaults and the meter configuration will be erased.
Select the desired primary address for this action with the filed Start in the MBUS area. Then click on the button
Application reset. A question will pop up. If you answer with YES, the gateway will send the special MBUS command
Application reset to the selected meter.
This is helpful, because some of the meters have trouble to resynchronize to the start of data readout when do a lot of
connection /disconnection or other electrical stuff on the MBUS line. There it helps to send this command before trying
to search for the connected meter.
The integrated LEVEL converter is designed to configure meters with individual software form manufacturers over a
standard level converter. Usually you have to have another MBUS level converter module either from RESI or from
other suppliers like RELAY ® to configure your meters. Now you can do this over our gateway.
In our test szenario, we want to connect to a Schneider Electric meter with the original Schneider Electric configuration
software. So when we start the software, we get the following screen:
So first of all we have to change the speed settings for our gateway to parameters which are suitable to most of the
MBUS tools on the market. Since the MBUS standard defines 2400bd, even parity and one stop bit as common on the
MBUS side and many MBUS gateways are simple electrical converters, the tools assume a gateway with 2400bd,
EVEN parity and one stop bit.
Select 2400bd, even parity and 1 stopbit in the area MODBUS and download this configuration with the button
Download config.
After that activate the integrated LEVEL converter by pressing the button Activate LEVEL converter.
if everything is ok, the converter LED state will flash extraordinary fast to show, that the LEVEL converter is active.
Press the button Test COM first, then press the OK button. The software will now scan automatically the meter and
show the result on the screen:
Click again first on Test COM button then on OK button. You will get the following screen:
After you have exited the SCHNEIDER software you can deactivate the LEVEL function either by
disconnecting/reconnecting the power supply from the gateway (hard reset) or by pressing the button Deactivate
LEVEL converter in the software. This will do a software reset and the STATE LED will flash normally again.
• Button Change primary address: With this function you can program a new primary address in the selected
meter, as long as the meter supports the standard MBUS command for setting a new primary address.
• Button Read meter data: With this function you can read out all MBUS datapoints from the connected meter
again in the below data grid. This is useful, if you have erroneous deleted some datapoints of the meter and
you want to restore the original datapoints of the meter.
• Slave name: Here you can define the name of the meter for the tree view and the documentation.
• Addressing mode radio button: This radio button selects the addressing mode for this meter. Either primary
addressing mode in combination with the selected primary address in the field Primary meter address or
Secondary addressing mode in combination with the first of the four fields in the row Secondary meter
address. this is the field serial number of the meter.
• Primary meter address: This drop down defines the primary address for the meter either for readout or for
programming a new primary address. Use 1 to 251 for slave address or if you have connected only one meter
use 254 (Broadcast address), if you don't know the correct primary address.
• Secondary meter address (hex): This four fields represents the following information:
◦ Serial number: The first field is the current serial number of the meter. Or you enter a desired serial
number for secondary addressing mode for a specific meter.
◦ Manufacturer ID: The second field represents the two bytes of the manufacturer ID from the fixed data
structure at the beginning of a variable data frame of the meter. The manufacturer is defined by three
ASCII uppercase characters encoded with the following formula (In our example 2C2D stands for
KAM=KAMSTRUP):
IEC 870 Man.ID=[ASCII(1st letter)-64]•32•32+[ASCII(2nd letter)-64]•32+[ASCII(3rd letter)-64]
◦ Version: The third field represents one byte from the fixed data structure at the beginning of a variable
data frame of the meter defining the version of the meter.
◦ Medium: The fourth field represents one byte from the fixed data structure at the beginning of a variable
data frame of the meter defining the medium of the meter.
◦ Meter status: This field represents one byte from the fixed data structure at the beginning of a variable
data frame of the meter defining the status of the meter. Beside this field you will see under the caption
current meter status the interpretation of the bits of this status byte as text.
◦ Manufacturer name: This field shows the three ASCII letters from the two byte manufacturer ID from the
fixed data structure at the beginning of a variable data frame of the meter. In our case KAM for
KAMSTRUP.
◦ Poll pre delay 1: This is a pause time in ms, before the gateway will send a primary or secondary address
telegram to the meter to initiate the data readout process with this meter.
◦ Poll pre delay 2: This is a pause time in ms, before the gateway will send a request for data telegram to
the meter to readout more data from this meter.
◦ Poll post delay 1: This is a pause time in ms, after the gateway will send a primary or secondary address
telegram to the meter to initiate the data readout process with this meter.
◦ Poll post delay 2: This is a pause time in ms, after the gateway will send a request for data telegram to
the meter to readout more data from this meter.
◦ Poll repeats 1: This is a repeat count, how often the MBUS gateway will send a primary or secondary
address telegram to the meter, in the case the meter do not answer correctly.
◦ Poll repeats 2: This is a repeat count, how often the MBUS gateway will send a request for data telegram
to the meter, in the case the meter do not answer correctly.
All this setup parameters for the meter will be downloaded with the button Download configuration.
Here you will find a basic diagram, how the MBUS master request cycle is handled by our gateways.
1 2 n 1 2 n 1 2 n
time t
PREV
SLAVE
or
START
A A OK
D D D DATA1
time t
DATA1
D D D DATA2
time t
D DATAn-1
D D DATAn
NEXT
SLAVE
time t
Don't forget, that the meter will only answer to the request, if the meter is programmed for the defined primary address,
the meter uses the same MBUS baud rate and there is not another meter on the MBUS with the same primary
address.
In this grid you will find all datapoints regarding the selected meter. The grid has the following columns:
• Index: This is a running index starting with 0 to see how many datapoints you have defined. This is important,
because the amount of datapoint mappings between MBUS and MODBUS is limited like the amount of
MODBUS registers. e.g. The RESI-MBUS64-SIO can handle 1200 MODBUS registers but only 600 MBUS
datapoints in total.
• MBUS datatype: Here you will see the used data type in the MBUS frame.
• MB datatype: Here you will find the MODBUS data type to map the MBUS data type to MODBUS register.
• Content: here you will see the name of the datapoint. This name will be build automatically with the additional
information in the MBUS data (DIF+VIF fields). But it can be changed manually to user data.
• MBUS data: Here you can see in which record and on which offset within this record the MBUS data was
found. The writing is <record>-<offset> in Bytes. This describes the ___location in the variable data structure of
the MBUS data frame.
• MBUS size: This column shows the current size of the MBUS data in bytes.
• MBUS exponent: This column shows the exponent of the MBUS value, how it is defined in the MBUS data
due to the DIF+VIF fields.
• MB exponent: This column shows the user defined exponent to shift the value in MODBUS registers.
Your new list will look like this. If you download this configuration, only the desired datapoints are mapped to the
MODBUS registers. The gateway requests only as much MBUS frames as necessary for mapping all values to the
MODBUS registers.
Basically it is the data grid line in an editable version. You can change the content description here. Or you can change
the MODBUS data type here. If you really add MBUS data frames manually you can also edit the MBUS data type, the
MBUS exponent, the MBUS record number, the MBUS data index and the MBUS size in here to define the exact
___location of the MBUS data within the MBUS data frame.
Usually you will change the MODBUS exponent and or the MODBUS data type. Lets do a sample configuration
change:
As you can see from the live data, the external temperature is currently 28°C. Our automatic mapping algorithm maps
the MBUS data type INT8 (8 bit SIGNED INTEGER) to a FLOAT32 using two consecutive MODBUS registers,
because we try to show on the MODBUS side the correct value with the correct exponent. But in this special case a
standard Holding register will be enough.
So we do the following changes, then we download the configuration and test it:
Please note also, that the next MBUS datapoint starts not longer in the register 4x00011, It starts now in the register
4x00010. So we saved really one register.
Now we define, that your host can handle only temperatures with one comma. This means the 28°C should be stored
as 280 in the holding register. For that we change the MODBUS exponent field to -1 to shift the result by 10:
Now click on the button Add to project: . A dialog will open and show all meters from the general meter
database and all your user defined meter templates:
Click in the project tree on the meter MY METER to change the individual parameters for the selected meter. Adopt the
addressing mode, the meter name and the other parameters of the meter, so that your gateway can communicate with
this meter.
Then we select the datapoints 22-24 and delete then from the meter setup, by clicking on the button Delete datapoints.
Now our new setup is finished and can be downloaded into the gateway.
In this case, the meter answers with only one data frame to the MBUS request of the gateway (All bytes in
hexadecimal):
What data is in the MBUS frame? This is the interpretation of the complete received MBUS frame by our software:
====================================================================================================================
MBUS:FRAME TYPE:0x72:12 BYTE HEADER+VARIABLE DATA
====================================================================================================================
MBUS:HEADER12:ID:104218979,0x06364163
MBUS:HEADER12:MANUFACTURER:19619,0x4CA3,SEC
MBUS:HEADER12:VERSION:24,0x18
MBUS:HEADER12:MEDIUM:2,0x02
MBUS:HEADER12:MEDIUM:Electricity
MBUS:HEADER12:ACCESS:200,0xC8
MBUS:HEADER12:STATUS:0,0x00
MBUS:HEADER12:STATUS:NO ERROR
MBUS:HEADER12:SIGNATURE:0,0x0000
====================================================================================================================
MBUS:VARIABLE DATA
====================================================================================================================
--------------------------------------------------------------------------------------------------------------------
MBUS:VARIABLE DATA:DATARECORD:1:DATABLOCK:0
--------------------------------------------------------------------------------------------------------------------
MBUS:VARIABLE DATA:[0]DIF:0D
MBUS:VARIABLE DATA:DIF:BIT 7:EXTENSION BIT:0
MBUS:VARIABLE DATA:DIF:BIT 6:LSB STORAGE NUMBER:0
MBUS:VARIABLE DATA:DIF:BIT 5-4:FUNCTION FIELD:0:00:Instantaneous value
MBUS:VARIABLE DATA:DIF:BIT 3-0:DATA FIELD:D:D:1101:variable length
MBUS:VARIABLE DATA:[1]VIF:FD
MBUS:VARIABLE DATA:VIF:BIT 7:EXTENSION BIT:1
MBUS:VARIABLE DATA:VIF:BIT 6-0:UNIT+MULTIPLIER:7D:LINEAR VIF EXTENSION
MBUS:VARIABLE DATA:[2]VIFE:0A
MBUS:VARIABLE DATA:VIFE:BIT 7:EXTENSION BIT:0
MBUS:VARIABLE DATA:VIFE:BIT 6-0:UNIT+MULTIPLIER:0A:SECONDARY VIF (8.4.4) a.
SUB VIF:MANUFACTURER (as in fixed header)
MBUS:VARIABLE DATA:ASCII:18
MBUS:VARIABLE DATA:[3]-[21]DATABLOCK:LENGTH:12,18
MBUS:VARIABLE DATA:DATA BLOCK:DATA:[63][69][72][74][63][65][6C][45][20][72][65][64][69][65][6E][68][63][53]
MBUS:VARIABLE DATA:DATA BLOCK:DATA:ASCII:Schneider Electric
DIFFUNCTIONTEXT:INSTANTANEUS VALUE
DIFTEXT:LVAR:ASCII(18 bytes)
VIFTEXT:Manufacturer
--------------------------------------------------------------------------------------------------------------------
MBUS:VARIABLE DATA:DATARECORD:1:DATABLOCK:1
--------------------------------------------------------------------------------------------------------------------
MBUS:VARIABLE DATA:[22]DIF:0D
MBUS:VARIABLE DATA:DIF:BIT 7:EXTENSION BIT:0
MBUS:VARIABLE DATA:DIF:BIT 6:LSB STORAGE NUMBER:0
MBUS:VARIABLE DATA:DIF:BIT 5-4:FUNCTION FIELD:0:00:Instantaneous value
MBUS:VARIABLE DATA:DIF:BIT 3-0:DATA FIELD:D:D:1101:variable length
MBUS:VARIABLE DATA:[23]VIF:FD
MBUS:VARIABLE DATA:VIF:BIT 7:EXTENSION BIT:1
MBUS:VARIABLE DATA:VIF:BIT 6-0:UNIT+MULTIPLIER:7D:LINEAR VIF EXTENSION
MBUS:VARIABLE DATA:[24]VIFE:0C
MBUS:VARIABLE DATA:VIFE:BIT 7:EXTENSION BIT:0
MBUS:VARIABLE DATA:VIFE:BIT 6-0:UNIT+MULTIPLIER:0C:SECONDARY VIF (8.4.4) a.
SUB VIF:MODEL/VERSION
====================================================================================================================
MBUS:END VARIABLE DATA
====================================================================================================================
END OF FRAME
====================================================================================================================
You will notice, that the MBUS answer starts with a fixed header. This information is interpreted by our gateway and
stored in a fixed MODBUS mapping structure starting at 4x10001. See the MODBUS register definition for more
details.
After the fixed data header, there come one or more data records. The gateway will read this records sequentially and
map one datapoint to another to MODBUS registers. So the configured mapping datapoints must be sequentially
defined according to the data in the MBUS frame.
The first entry in our configuration matches this MBUS data. It is an ASCII string which defines the manufacturer of the
meter. The Name starts at byte index 4 in the first received data frame from the meter and it needs 18 bytes. So now
the gateway knows exactly, that it has to copy the 18 bytes starting form index 4 to the first 9 MODBUS 16-Bit registers
starting at 4x00001. But also the byte order is mirrored for the ASCII string and there is no trailing 0x00 character at
the end of the string, so our software maps this string to 10 16-bit registers and adds the trailing 0x00 character.
You notice in the column MBUS exponent different exponents for different values and in the column Content those
exponents are added with 10^xx.
When you download and test this configuration, we get the following online data:
Look at registers 4x00009 to 4x00013, three temperature values. In the MBUS frame, the temperatures are
transmitted as INT32 values with the exponent 10^-2. So in fact this are integer values with two commas: 2812 will
mean 28,12°C. Our converter maps this values to FLOAT32 values and automatically shifts the MBUS exponents to
display the value based to 10^0. But in some cases you don't want to shift. So we double click on the desired
datapoint in the meter configuration and modify the MODBUS exponent in entering the number -2. This means, that
we want to multiply the MBUS value by 10^-2.
If we change now the MODBUS data type to SINT16 we use only one MODBUS register for every temperature, but
because the original MBUS value is based to 10^-2, we have to set the MODBUS exponent to 0. This is different to a
FLOAT32 or DOUBLE64 MODBUS register, where the gateway always normalize the MBUS value to 10^0.
Now we want to store the temperatures only with one comma in the 16 bit holding registers. Therefore we use the
MODBUS exponent to divide the values by 10. So we enter an exponent of 1 for all tree temperatures:
Download and test again, the result will look like this:
Please refer to the external document for detailed documentation of the current MODBUS register mapping for this IO
module:
RESI-L-MBUSx-SIO-ETH-MODBUS+ASCII-ENxx.pdf
Register Description
4x00001 First holding register of MBUS data mapping for first configured MBUS meter
3x00001
I:0
R/O
MODBUS MAPPING
...
4x00040 Last holding register of MBUS data mapping for last configured MBUS meter for products
3x00040 RESI-MBUS2-SIO
I:39 RESI-MBUS2-ETH
R/O
MODBUS MAPPING
…
4x00400 Last holding register of MBUS data mapping for last configured MBUS meter for products
3x00400 RESI-MBUS8-SIO
I:399 RESI-MBUS8-ETH
R/O
MODBUS MAPPING
...
4x01000 Last holding register of MBUS data mapping for last configured MBUS meter for products
3x01000 RESI-MBUS24-SIO
I:999 RESI-MBUS24-ETH
R/O
MODBUS MAPPING
...
4x01200 Last holding register of MBUS data mapping for last configured MBUS meter for products
3x01200 RESI-MBUS48-SIO
I:1199 RESI-MBUS48-ETH
R/O
MODBUS MAPPING
...
4x01200 Last holding register of MBUS data mapping for last configured MBUS meter for products
3x01200 RESI-MBUS64-SIO
I:1199 RESI-MBUS64-ETH
R/O
MODBUS MAPPING
Register Description
4x09001 Returns the current state of the communication with the meter #1
3x09001 =0: Meter isn't configured
I:9000 =1: Meter isn't normalized
R/O =2: Meter isn't read
STATE =3: Values are valid
METER 1
4x09002-3 UINT32R: Returns the current serial number of the meter #1 as a 32 bit unsigned integer
3x09002-3 value
I:9001-2 1st.WORD: lower 16 bit of the serial number
R/O 2nd.WORD: higher 16 bit of the serial number
SERIAL NUMBER
METER 1
4x09004 UINT16: Returns the current state of the communication with the meter #2
3x09004 =0: Meter isn't configured
I:9003 =1: Meter isn't normalized
R/O =2: Meter isn't read
STATE =3: Values are valid
METER 2
4x09005-6 UINT32R: Returns the current serial number of the meter #2 as a 32 bit unsigned integer
3x09005-6 value
I:9004-5 1st.WORD: lower 16 bit of the serial number
R/O 2nd.WORD: higher 16 bit of the serial number
SERIAL NUMBER
METER 2
…
4x09022 UINT16: Returns the current state of the communication with the meter #8
3x09022 =0: Meter isn't configured
I:9021 =1: Meter isn't normalized
R/O =2: Meter isn't read
STATE =3: Values are valid
METER 8
4x09023-24 UINT32R: Returns the current serial number of the meter #8 as a 32 bit unsigned integer
3x09024-24 value
I:9022-23 1st.WORD: lower 16 bit of the serial number
R/O 2nd.WORD: higher 16 bit of the serial number
SERIAL NUMBER
METER 8
...
This header is sent by many answer frames of the MBUS meter to the master. Due to the fact, that is is not part of the
variable data block of the meter, our old converters could not map this information to registers. Our new series map
this information to the following register set starting at 4x10001. For each meter there are eight MODBUS entries:
Register Description
4x10001-2 UINT32: Returns the current serial number of the meter #1 as a 32 bit unsigned integer value
3x10001-2 1st.WORD: higher 16 bit of the serial number
I:10000-1 2nd.WORD: lower 16 bit of the serial number
R/O
ID NUMBER Each meter offers a unique ID. In the MBUS protocol there are four bytes reserved for this
METER 1 number. In our gateway we need a UINT32 to represent this 4 bytes of the ID.
4x10003-4 UINT32->ASCII: Returns the current manufacturer of the meter #1 as a 32 bit unsigned
3x10003-4 integer value
I:10002-3 1st.WORD: higher 16 bit of the manufacturer name as ASCII text
R/O 2nd.WORD: lower 16 bit of of the manufacturer name as ASCII text
MANUFACTURER Each meter offers a manufacturer ID, represented in two bytes. But in this two bytes there are
METER 1 three ASCII digits encoded. Our gateway decode this ASCII digits and stores this digits into a
UINT32 using ASCII encoding with 0x00 at the end representing a standard null terminated
ASCII string of three letters. For example the manufacturer KAMSTRUM uses KAM with the
bytes 0x4B 0x41 0x4D. This will be represented by 32 bit value : 0x004D414B, so the higher
WORD will be 0x004D and the lower word will be 0x414B.
4x10005 UINT16: Returns the current version of the meter #1
3x10005 In the fixed data header, there is also a version number encoded into one byte. It represents
I:10004 the version of the meter. Our gateway stores this byte into a UINT16 holding register for easy
R/O readout.
VERSION METER 1
4x10006 UINT16: Returns the current medium of the meter #1
3x10006 In the fixed data header, there is also a medium number encoded into one byte. it defines
I:10005 what type of medium the meter is measuring. Our gateway stores this byte into a UINT16
R/O holding register for easy readout.
MEDIUM METER 1
The following medium types are defined by the standard for meters with fixed+variable data
structure:
0x00: OTHER, 0x01: OIL, 0x02: Electricity, 0x03: Gas, 0x04: Heat-Volume measured at
return temperature outlet, 0x05: Steam, 0x06: Hot Water, 0x07: Water,
0x08: H.C.A.=Heat Cost Allocator, 0x09: Compressed Air, 0x0A: Cooling load meter Volume
measured at return temperature outlet, 0x0B: Cooling load meter Volume measured at flow
temperature inlet, 0x0C: Heat Volume measured at flow temperature inlet,
0x0D: Heat/Cooling load meter, 0x0E: Bus/System, 0x0F: Unknown Medium,
0x16: Cold Water, 0x17: Dual Water, 0x18: Pressure, 0x19: A/D Converter
For meters with fixed data structure only, the 16 bit value must be interpreted in another way.
Refer to the MBUS standard for this definition.
Register Description
4x65231 UINT16: The baud rate for the MBUS interface. Parity is always EVEN, ONE stop bit is used.
3x65231 The following baud rates are available:
I:65230 300,600,900,1200,2400,4800,9600,19200,38400,57600
R/W All other values are interpreted as 2400 baud.
MBUS BAUDRATE
HINT: After writing a new value to this register a reboot is necessary to activate the new
settings
4x65232 UINT16: The query timeout for the MBUS polling process.
3x65232 This value defines the timeout between two query cycles in the gateway. Usually the gateway
I:65231 communicates with all configured meters sequentially. After finishing the data readout for the
R/W last meter, the gateway pauses for this defined interval in seconds.
MBUS QUERY This values are used:
TIMEOUT Value 65535 or values 0..5 defines ~5s pause.
Values 6 to 65534: defines 6 to 65534 seconds of pause, before the next polling cycle will
start.
HINT: After writing a new value to this register a reboot is necessary to activate the new
settings
4x65233 UINT16: The poll delay for the MBUS polling process.
3x65233 This value defines a general pause after the readout of a configured meter before the readout
I:65232 of the next meter starts. In the past we discovered that there are many meters out in the
R/W market, which need a special treatment in the timing. e.g. very old KAMSTRUP meters need
MBUS POLL DELAY often two readout cycles with a gap of at least 10-15 seconds. This is non standard to the
MBUS. Or other meters have problems with secondary addressing, if there is a too small gap
between the readout. So we introduced this new parameter: This timeout defines the pause
after finishing reading of a meter and starting reading the next meter. In the previous firmware
versions this timeout was fixed to 250ms gap, which was ok for 99% of the meter readout on
the markets. But some meter fail to process this little gap.
The values is interpreted as follows:
Value 1..30: Gap time 1 seconds to 30 seconds
Value 101..400: Gaptime=(Value-100)*0.1s → 0.1s .. 30s e.g. 105 → 0.5s
Value 65535: Gap time is 1 second
Value 65534: Gap time is 250ms
Value 65533: Gap time is 500ms
Value 65532: Gap time is7250ms
All other values: Gap time is 1000ms
HINT: After writing a new value to this register a reboot is necessary to activate the new
settings
Please refer to the external document for detailed documentation of the current ASCII commands for this IO module:
RESI-L-MBUSx-SIO-ETH-MODBUS+ASCII-ENxx.pdf