Modbus Communication with Modbus Communication with Volume Devices VolumeConversion Conversion Devices EK220, EK230, EK2
Views 142 Downloads 8 File size 5MB
Modbus Communication with Modbus Communication with Volume Devices VolumeConversion Conversion Devices EK220, EK230, EK260EK280 EK220, EK230, EK260,
Version V2.0d; Edition: 10.04.2014
Content 1
Modbus Communication Equipment ....................................................................................5
2
Hardware Connection ............................................................................................................6 2.1 EK2x0 – Connection via RS-232 Interface to a PC ............................................................................ 6 2.2 EK220 – Connection via RS-485 (2/4 wires) Interface ....................................................................... 7 2.3 EK220 – Bus Connection via RS-485 Interface .................................................................................. 8 2.4 EK220 – Connection via EM260 (e.g. with Ethernet card).................................................................. 9 2.5 EK220 – Connection via FE260 (e.g. with GPRS modem) ...............................................................10 2.6 EK220 – Connection via MTL5051 ...................................................................................................11 2.7 EK260 – Connection via RS-485/422 Converter ..............................................................................12 2.8 EK2x0 – Bus structure via FE260 with internal RS-485 – Board ......................................................13
3
EK220 Basic Modbus Settings............................................................................................ 14 3.1 Configure Modbus Table via WinPADS ............................................................................................15
4
PC Software for Modbus Setting / Simulation ................................................................... 16 4.1 Modbus Settings with WinPADS .......................................................................................................16 4.2 Modbus Simulator Program on PC ...................................................................................................16
5
Communication Protocols .................................................................................................. 17 5.1 Modbus ASCII ...................................................................................................................................17 5.2 Communication Protocol Modbus RTU .............................................................................................21 5.3 Communication Protocol Modbus TCP .............................................................................................22
6
Creating an Individual Data List for Modbus Communication.......................................... 25 6.1 Read out Captured Values (Maxima, Minima and Mean Values) .....................................................29 6.2 Writing Multiple Data via Individual Modbus List ...............................................................................35
7
Reading-out Fixed Archives EK2xx via Modbus ............................................................... 37 7.1 Archive Construction EK2xx ..............................................................................................................37 7.2 Reading-out Fixed Archive EK260 ....................................................................................................39 7.3 Reading-out Fixed Archives EK230 / EK220 ....................................................................................44
8
Reading-out Flexible Archives EK220 via Modbus ........................................................... 47 8.1 Creating an Individual Archive Content .............................................................................................47 8.2 Reading-out an Individual Archive Content .......................................................................................54
Appendix ...................................................................................................................................... 56 A-1 Basic Modbus Description .................................................................................................. 56 A-2 Various Implementations .................................................................................................... 56 A-3 Protocol Versions ................................................................................................................ 57 Modbus Communication with EK2x0_V2.0_d.docx
3
A-4 Modbus Data Model ............................................................................................................. 57 A-5 Function Codes ................................................................................................................... 57 A-6 Master/Slave (Client/Server) Architecture .......................................................................... 58 A-7 Modbus Addressing Models ............................................................................................... 59 A-8 Data Formats........................................................................................................................ 61 A-8.1 A-8.2 A-8.3 A-8.4 A-8.5 A-8.6 A-8.7 A-8.8 A-8.9
Standard Data Types .................................................................................................................62 Special Data Types ....................................................................................................................62 Ushort ..........................................................................................................................................63 Ulong ...........................................................................................................................................63 Counter6 .....................................................................................................................................64 Array2 ..........................................................................................................................................64 Array6 ..........................................................................................................................................64 Array8 ..........................................................................................................................................65 IEEEfloat .....................................................................................................................................65
A-9 Error Messages.................................................................................................................... 67 A-10Register Size (only EK220).................................................................................................. 67 A-11Data Encoding ..................................................................................................................... 68 B-1 Device-dependent support of special functions................................................................ 69 C-1 Basic Requirements for Modbus Communication ............................................................ 70 C-1.1 C-1.2 C-1.3 C-1.4 C-1.4a
Power Supply .............................................................................................................................70 Call Acceptance Window ..........................................................................................................70 Timeout for Modbus Communication ......................................................................................70 Lock Handling ............................................................................................................................71 Example: Handling Supplier Lock ............................................................................................71
D-1 Modbus Default Settings EK2xx ......................................................................................... 73 D-2 Modbus Default Table and Data Types .............................................................................. 74 D-3 LIS-200 – Addresses for Individual Modbus Maps ............................................................ 75 E-1 Example: Modbus Communication to Excel Spreadsheet................................................ 84 E-2 Communication of MdBus program with the EVC............................................................. 85 F-1 Final Remark ........................................................................................................................ 86
4
Modbus Communication with EK2x0_V2.0_d.docx
1 Modbus Communication Equipment This guideline describes the communication process when using Modbus protocol between volume converters EK2xx and a Modbus simulation program on a PC. The volume converters EK2xx are capable of Modbus communication starting from software version:
- EK220
≥ V1.21
for Modbus ASCII, RTU and TCP
- EK230
≥ V1.61
for Modbus ASCII and RTU
- EK260 EK260
V 2.51 ≥ V2.53
for Modbus ASCII and RTU for Modbus ASCII, RTU and TCP
- EK280
≥ V2.10
for Modbus ASCII, RTU and TCP
In many applications the EK220 volume converter will be the standard device. This guideline refers directly to this device because all important features for Modbus communication are covered by the EK220. Deviations for other EK2xx are mentioned in the related chapters. For easy parameterization of EK220 ... EK260 volume converters the parameterization and read-out software WinPADS from Elster is used. For EK280 we recommend to use the successor called “enSuite”. Both software modules can be downloaded from the website www.elster-instromet.com. With increasing experience in interesting applications we’ll try to incorporate these applications into this brochure. We’d like to encourage every user of Modbus communication with EK2xx in special applications to share his experience with us. The email-address of our Electronic Hotline is: [email protected].
Modbus Communication with EK2x0_V2.0_d.docx
5
2 Hardware Connection 2.1 EK2x0 – Connection via RS-232 Interface to a PC
The EK2x0 must be installed outside Ex-Zone 1! Pin numbers of the Sub D-9 socket and colors are valid when using a ready-made cable available from Elster GmbH, order number 73016923 (2 m). An external power supply (e.g. 5-9 VDC for EK220) is required for Modbus communication and at least one “call acceptance window” has to be open. For special applications (EK220 from version V1.32ff on and EK280) a Modbus communication is also possible in battery mode. Take care that the duration of the call acceptance window has to be as short as possible, because the EK220 / EK280 is active during the complete call acceptance window and so the battery life time is reduced! In an EK220 and EK260 the GND of the RS-232 terminals and GND of the 4 output terminals are connected on the circuit board. If at least one output is not used, the GND terminal screw of this output (e.g. DA4-) can be used to connect GND of the serial interface (PC) to the GND of EK220 / EK260 (see picture). For read-out communication with EK2xx at least one lock (customer lock, supplier lock or calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open. To take care against Electromagnetic Interferences (EMC) we strictly would recommend using a galvanic isolation between the EK2xx and the PLC / SCADA system!
6
Modbus Communication with EK2x0_V2.0_d.docx
2.2 EK220 – Connection via RS-485 (2/4 wires) Interface
The EK2xx must be installed outside Ex-Zone 1! The signals (TX+…) connected from the ADAM to the PLC / SCADA system depends on the used hardware interface of the PLC/SCADA system. An external power supply 5-9 VDC (EK220) is required for Modbus communication and at least one “call acceptance window” has to be open. RS-485 or RS-422 Use the ADAM 4510 S only as a repeater (RS-485 as a converter (RS-485 / RS-422 converter application see chapter 2.7).
RS-422) NOT
For read out data from EK220 at least one lock (customer lock, supplier lock or calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open.
Modbus Communication with EK2x0_V2.0_d.docx
7
2.3 EK220 – Bus Connection via RS-485 Interface
The bus mode is only available by EK220 from version V1.20 on! The EK220 must be installed outside Ex-Zone 1! Use of the bus structure is not allowed in hazardous area! An external power supply 5-9 VDC (EK220) is required for Modbus communication and at least one “call acceptance window” has to be open. The terminal R+ must be connected to T+ and R- to T- (external of the EK220). To take care against Electromagnetic Interferences (EMC) we strictly would recommend using a galvanic isolation between the EK220 and the PLC / SCADA system! Note 1: EK220 uses per default a 4-wire RS-485 interface (similar to a RS-422). So, R+, R-, T+ and T- are connected separately. If the user wants to use the above described twowire- mode the bus mode (address: “02:704”) must set to “1” (= two-wire mode). Note 2: Standard PCs do not have a RS-485 interface on board. In this case a converter from RS-485 to RS-232 like an ADAM-4520 has to be interconnected between the RS-232 port of the PC and the RS-485 interface terminals of EK220 (see picture above). Note 3: The two-wire mode is not supported via EK260. There is an external RS-485 (2w) RS-422 (4w) converter necessary.
8
Modbus Communication with EK2x0_V2.0_d.docx
2.4 EK220 – Connection via EM260 (e.g. with Ethernet card) Wiring example for EK220 to EM260 with internal Ethernet Module (not usable for EK230):
The EK220 must be installed outside Ex-Zone 1! External power of +9VDC is supplied from EM260. Shown are colors when using the cable supplied from Elster GmbH (Attention: the colours may differ from the drawing).
Colours legend of the Ethernet-Mod.: gn/wh: green/white or/wh: orange/white gn: green or: orange
For read-out communication with EK220 at least one lock (customer lock, suppliers lock, calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open.
The Ethernet card inside the EM260 must be set to automatically answer the incoming call by itself (ATS0=1)!
Modbus Communication with EK2x0_V2.0_d.docx
9
2.5 EK220 – Connection via FE260 (e.g. with GPRS modem) Wiring example for EK220 and FE260 with different kinds of communication modules:
The EK220 can be installed inside Ex-Zone 1; the FE260 must be installed in Ex-Zone 2 or outside the hazardous area! External power of +9VDC (Ex – safe) is supplied from FE260. For read-out communication with EK220 at least one lock (customer lock, suppliers lock, calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open. Inside the FE260, different kinds of modems can be used: PSTN, ISDN, GSM, GPRS (ComTCPServ), RS-232 / RS-485 or Ethernet card. If a modem is used, the modem must be set to automatically answer the incoming call itself (ATS0=1)!
10
Modbus Communication with EK2x0_V2.0_d.docx
2.6 EK220 – Connection via MTL5051 Wiring example for EK220 and Ex-Barrier MTL5051 for direct connection to a PC / PLC:
The EK220 can be installed inside Ex-Zone 1; the MTL5051 must be installed outside the hazardous area!
Settings of MTL5051:
External power of +5VDC (Ex - safe) is supplied from MTL5051.
1a = OFF 1b = ON
For read-out communication with EK220 at least one lock (customer lock, suppliers lock, calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open.
2a = OFF 2b = ON
Inside the FE260, different kinds of modems can be used: PSTN, ISDN, GSM, GPRS (ComTCPServ), RS-232 / RS-485 or Ethernet card. If a modem is used, the modem must be set to automatically answer the incoming call itself (ATS0=1)!
Modbus Communication with EK2x0_V2.0_d.docx
11
2.7 EK260 – Connection via RS-485/422 Converter Wiring example:
The EK260 can be used only with 4-wire (RS-422) point-to-point connections. Both EK2xx must be installed outside Ex-Zone! If you want to use it on a 2-wire RS-485 bus system together with other devices, you need a RS-485/RS-422 converter like the CommFront. RPT-485_422-4 type. No switches need to be set on the CommFront. converter. Modbus settings on the EK260 are the same like on a EK220 but without a Bus-mode setting.
12
Modbus Communication with EK2x0_V2.0_d.docx
2.8 EK2x0 – Bus structure via FE260 with internal RS-485 – Board Wiring example:
Test specifications Baud rate / Data format of all bus devices: EK260 Modbus slave address: EK220 Modbus slave address: EK220 Bus mode: EK260 Bus mode:
EK2x0 Md.S2: EK2x0 Typ.S2:
9600 Bd / 8n1 1 2 on n/a – only in 4w RS-485 connection usable (Bus mode is emulated by the CommFront. “RPT-485_422-4” – Converter) 13 (Modbus) 2 (RS-485)
The EK220 and EK260 can be installed inside Ex-Zone 1; the FE260 must be installed in Ex-Zone 2 or outside the hazardous area! External power of +9 VDC (Ex – safe) is supplied from FE260 to each EK2x0 separately. For read-out communication with EK2x0 at least one lock (customer lock, suppliers lock, calibration lock) must be open. For writing e.g. gas data at least the suppliers lock or the calibration lock must be open.
Modbus Communication with EK2x0_V2.0_d.docx
13
3 EK220 Basic Modbus Settings Basic technical data for the Modbus communication with EK220 are: Description
Type
EK220 EK220 Setting Address
Interface
RS-232, RS-485 Ethernet module 1,2)
02:70A
TypS2=1 (RS-232) TypS2=2 (RS-485)
Communication protocol
Modbus ASCII, Modbus RTU, Modbus TCP 2)
02:7B1
MBTrM=0 (ASCII) MBTrM=1 (RTU) MBTrM=2 (TCP)
02:708
Bd.S2= 300, 600, 1200, 2400, 4800, 9600, 19200
02:707
DF.S2=0 (7e1) DF.S2=1 (7o1) DF.S2=2 (8n1)
02:704
BusS2=0 (4-wire mode) BusS2=1 (2-wire mode)
Baud rate in bit/s Data format Bus mode (only in RS485 mode possible)
7e1, 7o1, 8n1 Two-wire 2,3,4) Four-wire
Word order
HWord first, 2,4,5,7) LWord first
02:7B0
MBDir= 0 (H Word first) MBDir=1 (L Word first)
Modbus slave address
1… 247
02:7B2
MBAdr=1 (default)
Register size
2 byte (16 bit), 4 byte (32 bit) 2,4)
02:7B8
MBRSz=2 MBRSz=4
02:7B9
MBAMd=0 (logical) MBAMd=1 (physical)
Logical: start with “0” Address mode
2,4)
Physical: start with “1” Wiring cable length
RS-232 : 0 … 15 m RS-485 6) : 0… 1000 m
Cable specification
twisted shielded copper cable; acc. EN 50170
1) Ethernet module in modem EM260 or in Function Extension FE260 2) Not for EK230 3) Four-wire RS-485 operation with Function Extension FE260 4) Not for EK260 5) Word order effects only data format IEEEfloat, Ulong and pre-decimal places Counter6 (see chapter: A-8) 6) With sufficient cross-sectional areas of the conductors 7) Independent if you use L or H word first, the bytes are transmitted via “high byte” first
14
Modbus Communication with EK2x0_V2.0_d.docx
3.1 Configure Modbus Table via WinPADS The following table shows the default settings of values for Modbus communication. A change of the Modbus register assignment can be made with the aid of the WinPADS under the register card “Interface”, “Modbus Register”. Attention! The “Modbus Address” is shown as “physical” address. If you use the “logical” address mode in the EK2x0, you have to subtract an offset of “-1”. (Example: Transmitting of pressure value
Change Modbus map via WinPADS
337 – 1 = 336)
Store actual Modbus map on PC
Modbus Communication with EK2x0_V2.0_d.docx
Load Modbus from PC to EK2xx 15
4 PC Software for Modbus Setting / Simulation 4.1 Modbus Settings with WinPADS The Modbus settings are easy to control or to change with WinPADS. See the standard (factory) settings in chapter 3.1.
4.2 Modbus Simulator Program on PC For test purposes of Modbus protocol communication with a Windows™ compatible PC we use the Modbus simulator program Mdbus.exe from Calta Computer Systems Ltd. Rev. 3.53 2004-Oct-26 (www.calta.com) in this guideline. The computer must run Windows 95, 98, 2000, NT or XP with at least one serial communication port. It’s also possible to connect an USB port of the PC to an USB-toSerial (RS-232) Converter. We are using the model UC-232A from Aten® International Co., Ltd. without any problems. An alternative is the Modbus emulator Simply Modbus (www.simplyModbus.ca). It’s available as a master emulator for Modbus RTU/ASCII and also as a TCP client emulator for Modbus TCP. Both versions can be used as trial versions (you can start Modbus communication five times and then you have to close and restart the software again). There is also basic information about Modbus available in the online help.
16
Modbus Communication with EK2x0_V2.0_d.docx
5 Communication Protocols 5.1 Modbus ASCII The content of each 16 bit register is transmitted as four ASCII coded hexadecimal digits. For the Modbus ASCII protocol one of the formats with 7 data bits is necessary (DF.S2=0 → 7e1 or DF.S2=1 → 7o1). An easier way is using WinPADS, menu: “Interface”, “Modbus-Configuration”:
The corresponding settings in the simulator program SimplyModbus – configuration for reading out the default setup are as follows:
ASCII mode COM port “1” Baud rate: 9600 Bd, 7E1 Transmission of 30 Modbus registers from start address 301(logical) Select 16 / 32 bit register size Offset “1” to get the real physical address “300” (012C hex.) Function code (see chapter A-5) Slave address: “1” High byte first, mark if Low byte first gives a wrong display of register values L word first, mark if H Word first is needed
Modbus Communication with EK2x0_V2.0_d.docx
17
SimplyModbus results of register 1 and 2 using the factory setup of the Modbus table (see chapter: 3.1):
Modbus addresses 101 – 105 results:
Modbus addresses 301ff results:
18
Modbus Communication with EK2x0_V2.0_d.docx
Modbus addresses 501 – 507 results:
Modbus addresses 801 – 820 results (BCD format):
Modbus Communication with EK2x0_V2.0_d.docx
19
5.1.1 Writing Data via Modbus Writing gas data via Modbus is possible. For changing parameters the necessary lock had to be opened. Only EK220 from Version V1.32 supports also the handling of the lock (opening/closing). During active Modbus communication, the designated value can be changed via function “WRITE” of Simply Modbus if the data format is float. E.g. the next picture shows the input of 10.55 kWh/m3 calorific value in Modbus register 333 and the result on the right side.
20
Modbus Communication with EK2x0_V2.0_d.docx
5.2 Communication Protocol Modbus RTU For the Modbus RTU protocol 8 data bits are necessary (DF.S2=2 → 8n1) and the register order is typically “H word first”. Other settings are analogue to Modbus ASCII. The pictures show the configuration of EK220 with WinPADS for Modbus RTU mode and the configuration of Simply Modbus.
Modbus Communication with EK2x0_V2.0_d.docx
21
5.3 Communication Protocol Modbus TCP Preliminary activities: For this communication type and in addition to the wiring shown on chapter 2.4 (page 9) the IP address and port number must be set in the Ethernet module of EM260 or FE260. The EK220 is connected and power supplied by EM260/FE260. The Ethernet card inside the EM260 must be set to automatically answering the incoming call by itself – that’s not the standard configuration! Setting IP address inside EM260 / FE260: The settings for TCP communication can be done comfortably via WinPADS with optical read-out adapter by transferring the wpp-parameter file: “EK220_1v2.. - EM260 & int. Ethernet-Adapter (Insys)_b.WPP” into EK220. After the successful transfer, the init string for the modem module is displayed in WinPADS – “Interface” – “Modem” – “String for connected modem”:
Change the string to following setting (Example: IP address: 10.1.200.22; Port = 37359):
Note: “s0=1” = the Ethernet module answers an incoming call itself “&w” = store the configuration in the EEPROM of the Ethernet module No changes of the above described baud rate and data format allowed! The Ethernet module inside the EM260 / F260 is fixed set to 19200 Bd / 8N1! Close the optical connection and take care that “Md.S2” inside the EK220 is set to “3” (FE260/EM260)! If not change it via keypad in the “Ser. I/O” list. 22
Modbus Communication with EK2x0_V2.0_d.docx
Switch-on the external power supply and wait until the flashing “o” starts after one minute and until it stopped after additional 1.. 3 minutes! Change “Md.S2” inside the EK220 via keypad to “5” for IEC 62056:21 communication! To store the changed parameters inside the Ethernet card, switch-off the power supply of the EM/FE260 and switch it on again. After 1 minute all changes are saved and active. The “Ping” command simply checks if a dedicated device in an IP-network is available and which time is needed for receiving a reply:
Another helpful check could be to test the communication under WinPADS TCP/IP: Action – Start connection via – TCP-IP (or push F 9). Input IP-address and IP-port in the shown format: 10.1.200.22:37359 to open TCP/IP connection to EK220:
Now the Ethernet module works well only for IEC 62056-21 communication.
Modbus Communication with EK2x0_V2.0_d.docx
23
5.3.1 Communication Modbus TCP After these preliminary steps are done, change the parameter Md.S2 (actual = “5” for IEC 62056:21 communication) inside the EK220 to “Modbus” (“13”) to activate Modbus communication (easily via keypad in the register list “Ser IO”. Change also the other Modbus parameter to the user specific one (see chapter 2.6). Attention: it’s not allowed to change the following parameters in this application: Abbreviated Designation
EK220 Address
Mode, interface 2
Md.S2
02:705
Modbus
13
Data format, interface 2
DF.S2
02:707
8n1
2
Baud rate, interface 2
Bd.S2
02:708
19200 Bd
Type, interface 2
TypS2
02:70A
RS-232
1
Bus mode RS-485 on/off
BusS2
02:704
BusS2 = off
0
Transmission mode
MBTrM
02:7B1
TCP
2
Description
EK220 Setting
The settings in simulator program SimplyModbusTCP are:
24
Modbus Communication with EK2x0_V2.0_d.docx
6 Creating an Individual Data List for Modbus Communication In typical applications only a special set of current process data are required and should be transferred via Modbus communication to a control center. This data set can be easily created via WinPADS. Start WinPADS and establish a connection e.g. via optical read-out adapter. Click on “Interface” – “Modbus Register”. Here you’ll see the actual Modbus table according to 3.1:
Via “Read Modbus config...” you can store the actual Modbus table in a file on your PC (e.g. to set all other EK220 in your system to the same Modbus table (via “Send Modbus config..“). With button “Delete all…” you can delete the whole Modbus table – please do it. Via “Edit” you can change the actual Modbus table.
Modbus Communication with EK2x0_V2.0_d.docx
25
Next input the register with the serial number by clicking in the tree Identification – Device – Serial Number. With the arrow key -> or by drag and drop this field is transferred into the window “Modbus Register”. By default the Modbus address is 100 and the data type is Array6:
Modbus register address is selectable between 1 and 65535. The data type Array6 is not used by Modbus applications as a default. Let us choose data type “Ulong” from the combo box and starting address 101 for long integers like in the default setting: See chapter A-8 for more information about the data formats.
26
Modbus Communication with EK2x0_V2.0_d.docx
Next the Date and Time stamp is added as shown in the lower picture. As usual, this time stamp is in Unix format. So in Mdbus simulator only a number in Unix-time- format will be displayed. Other subsequent programs can change it according to the general algorithm. The Modbus address is automatically set to the next following address:
In the same way the other data Vmtotal, Vbtotal are inputted as long integers (Ulong) in the Modbus Register list. Flow rates, pressure, temperature and several other data are defined in the data type IEEEfloat starting for example with Modbus address 301. If the post decimal places of Vmtotal and Vbtotal should be displayed in Mdbus.exe they can be defined as Ushort. For the starting address of Ushort-type data, “1” is used. With “↑” the both values are shifted to the top of the list:
Modbus Communication with EK2x0_V2.0_d.docx
27
The results are shown on the following pictures of SimplyModbus:
28
Modbus Communication with EK2x0_V2.0_d.docx
6.1 Read out Captured Values (Maxima, Minima and Mean Values) All EK2xx can transmit different kind of maxima, minima and mean values depend on the measurement period, by daily or monthly period. Inside the EK2xx these values are “caught” e.g. every hour, every day or every month. For these values always the current value (e.g. the consumption from the beginning of the current day until now) or the last value (here: the consumption of the last day) are available. Most of them are stored in the Monthly archive of the EK2xx at the end of each month. But via their corresponding LIS200 address these values are also available via Modbus (depend on the EK2xx): LIS-address Current value
LIS-address Last value
1:0160
1:0161
digits before the decimal point
1:0160_1
1:0161_1
decimal places
1:0160_2
1:0161_2
Daily counter Vb
2:0160
2:0161
Max. meas. period value Vb of the month
3:0160
3:0161
Max. daily counter Vb of the month
4:0160
4:0161
Max. flow rate Qb of the month
5:0160
5:0161
Min. flow rate Qb of the month
6:0160
6:0161
7:0160 (= 2:300)
7:0161
Measurement period counter Vm
8:0160
8:0161
Daily counter Vm
9:0160
9:0161
Max. meas. period value Vm of the month
10:0160
10:0161
Max. daily counter Vm of the month
11:0160
11:0161
Max. flow rate Qm of the month
12:0160
12:0161
Min. flow rate Qm of the month
13:0160
13:0161
End meter reading Vm of the month
14:0160 (=4:300)
14:0161
Mean value for T (meas. period)
15:0160
15:0161
Monthly mean value for T
16:0160
16:0161
Monthly max for T
17:0160
17:0161
Monthly min for T
18:0160
18:0161
Mean value for p (meas. period)
19:0160
19:0161
Monthly mean value for p
20:0160
20:0161
Monthly max for p
21:0160
21:0161
Value Measurement period counter Vb (digits before the decimal point)
End meter reading Vb of the month
Modbus Communication with EK2x0_V2.0_d.docx
EK220
EK230
EK260
29
LIS-address Current value
LIS-address Last value
Monthly min for p
22:0160
22:0161
Mean value for K (meas. period)
23:0160
23:0161
Monthly mean value for K
24:0160
24:0161
Mean value for C (meas. period)
25:0160
25:0161
Monthly mean value for C
26:0160
26:0161
Meas. period counter energy (W)
27:0160
27:0161
≥V1.40
Daily counter energy (W)
28:0160
28:0161
≥V1.40
Max. meas. period value W of the month
29:0160
29:0161
≥V1.40
Max. daily counter W of the month
30:0160
30:0161
≥V1.40
Monthly max for power (P)
31:0160
31:0161
≥V1.40
Monthly min for power (P)
32:0160
32:0161
≥V1.40
End meter reading W of the month
33:0160 (=1:300)
33:0161
Mean value for T (day)
34:0160
34:0161
≥V1.64
≥V1.51
Mean value for p (day)
35:0160
35:0161
≥V1.64
≥V1.51
Mean value for K (day)
36:0160
36:0161
≥V1.64
≥V1.51
Mean value for C (day)
37:0160
37:0161
≥V1.64
≥V1.51
Value
EK220
EK230
EK260
6.1.1 Some Notes for Reading out Caught Values All catch values can be defined flexible inside the EK2x0 and so the functionality depends on the programming of these values. In the table above the default settings of the EK2xx are described. For all meter readings and consumptions the value is separated into digits before the decimal point (pre-decimal) and after the decimal point (post-decimal places). Via the LIS200 address: “01:160” or via “01:0160_1” (see above) the pre-decimal places of the meas. period counter (= hourly consumption) can be transferred via Modbus. Via the same address with the extension: xx:16x_2 also the post-decimal places can be read out. For meter readings we want to suggest using the data format Ulong (s. chapter: A:A-8.4). For analogue values (pressure, temperature,…) the format IEEEfloat (see chapter: A:A8.9) should be used. These values are transferred with pre- and post-decimal places.
30
Modbus Communication with EK2x0_V2.0_d.docx
Example 1: Reading out the month end reading of the standard volume (last month): So the necessary LIS-200 address is: 07:0161 (see table above). If required the post-decimal places can also be read out via the address 07:161_2. Reading out the values via WinPADS:
In the Modbus map of the EK2xx the address “07:0161” and “07:161_2” must be used:
Note: Via “Edit” you have to use the button “Direct input of addresses..:” because the address 07:0161_2 is not available in the tree structure of the standard values! So the result for a Modbus communication is as follows:
Month end reading for Vb = 125990,4698 m3! Note: The corresponding time stamp for this value is the address xx:0165.0. For the current value (07:160) it’s the address xx:0164.0!
Modbus Communication with EK2x0_V2.0_d.docx
31
Example 2: Reading out the maximal hourly value of the actual volume Vm (current month): So the necessary LIS-200 address is: 10:0160 (see table above) Reading out the values via WinPADS:
The corresponding Modbus list:
Note: The Vm may (current month) in our example can be read out via Modbus register 103 till 105. But for the maximum value there is also the date and time needed, when these maximum happened. For the current value (xx:0160.x) the corresponding LIS-200 address for date and time is the xx:0164.0 and for the last value (xx:0161.x) it’s the address xx:0165.0! So via Modbus two values must be read out:
Vm MPmax = 60 m3 at 23. of September 2011 between 12:00 and 13:00 o’clock!
32
Modbus Communication with EK2x0_V2.0_d.docx
Example 3: Reading out the daily mean value for analogue values T/p/K/C (current month): So the necessary LIS-200 address is: 34…37:0160 (see table above) Reading out the values via WinPADS:
Corresponding Modbus list:
So via Modbus two values must be read out:
Note: For analogue values the value is transferred with decimal places. Take care about the following post decimal places: - Temperature T: 2 digits - Pressure p: 5 digits - K-value k: 5 digits - Conversion factor C: 5 digits
Modbus Communication with EK2x0_V2.0_d.docx
33
Example 4: Reading out the maximum flow rate Qb (current month): So the necessary LIS-200 address is: 5:0160 (see table above) Reading out the values via WinPADS:
Corresponding Modbus list:
So via Modbus two values must be read out:
Qbmax (current month) = 144,58 m3/h at 09. of August 2011 at 14:27:08 o’clock! Qbmax (last month) = 49,37 m3/h at 31. of March 2010 (not real) at 00:23:18 o’clock! 34
Modbus Communication with EK2x0_V2.0_d.docx
6.2 Writing Multiple Data via Individual Modbus List For the demonstration of writing actual gas data via Modbus into EK220, the gas composition data which are needed for S-GERG-88 algorithms are added as data type IEEEfloat to our Modbus table. Change the proposed data type Ulong to IEEEfloat:
If manually changes are made in the list please check the Modbus addresses! If register size is “2” (16 bit register) as shown here, the Modbus addresses must increase in steps of 2 if they should be displayed via Modbus together:
With “Write” you can also transfer multiple values via Modbus: Modbus Communication with EK2x0_V2.0_d.docx
35
36
Modbus Communication with EK2x0_V2.0_d.docx
7 Reading-out Fixed Archives EK2xx via Modbus For archived values, there are no corresponding LIS200-addresses available. Because of this, another addressing mechanism was implemented to read out archives via Modbus. For the desired archive a Modbus start address must be assigned. Starting from this address, the desired columns of the archive can be read out. The start address belongs to the actual data set in the archive. To read out archived data, the desired columns, and the desired output data format of these columns have to be parameterized. The number of possible columns varies according to the device types and software releases. The order of the values within the answer telegram starts at the current (newest) dataset and then goes back to the older ones. The recorded datasets of archives within a device are normally store at periodic events, for example hourly or daily periods. To read out only these datasets the standard archives contain one column, which stores the event, which causes this dataset. Note:
The archives can also be stored at special events e.g. modification of date/time or counter reading. For transmission archives via Modbus the read out software can only get the datasets caused by the periodic events. All the other datasets of non periodic events are skipped by the Modbus read out application.
7.1 Archive Construction EK2xx The fixed archives (an exclusive type in EK230 and EK260) have the same structure:
Note:
After each of the 4 counter columns Vb, VbT, Vm and VmT there are additional columns of the increments from the previous stored counter value available. These increment values can be displayed in the volume conversion display and transferred via Modbus but not transferred via WinPADS. Anyhow, the increment columns must be considered in the column order to be outputted correctly.
Modbus Communication with EK2x0_V2.0_d.docx
37
So, for the output data via Modbus the following column numbers have to be used: Data Global Order Number Archive Block Number Time (and Date) Standard volume, undisturbed Delta standard volume, undisturbed Standard volume, total Delta standard volume, total Measured volume, undisturbed Delta measured volume, undisturbed Measured volume, total Delta measured volume, total Average pres. in meas. period p.Mp Average temp. in meas. period T.Mp Average K-number in meas. period Average conversion No. in meas. period Status 2 St.2 Status 4 St.4 Status 7 St.7 Status 6 St.6 Status System Event Check sum
Short descr.
Column No.
GONo ABNo Time Vb ∆Vb VbT ∆VbT Vm ∆Vm VmT ∆VmT p.MP T.MP K.MP C.MP St.2 St.4 St.7 St.6 St.Sy Event Check
1 2 3 4 (5) 6 (7) 8 (9) 10 (11) 12 13 14 15 16 17 18 19 20 21 22
For reading-our archive data via Modbus the respective column number of this data in the archive has to be programmed. The procedure depends on the EK2xx (see next chapters).
38
Modbus Communication with EK2x0_V2.0_d.docx
7.2 Reading-out Fixed Archive EK260 For EK260 (from version V.251) only the reading-out of the measurement period archive via Modbus is supported. The factory setting for EK260 is following (11 rows): Row 5 9 5 9 20 5 9 12 13 5 9
Short Meaning descr. Consumption of the standard volume ∆ Vb (post decimal places) Consumption of the measured volume ∆ Vm (post decimal places) Consumption of the standard volume ∆ Vb (pre decimal places) Consumption of the measured volume ∆ Vm (pre decimal places) Status information (St.Sy) ∆ Vb Consumption of the standard volume ∆ Vm Consumption of the measured volume p.MP Pressure; mean value T.MP Temperature; mean value ∆ Vb Consumption of the standard volume ∆ Vm Consumption of the measured volume
Unit
Format
No. of Offset Reg.
m3
UShort
1
0
m3
UShort
1
1
m3
ULong
2
2
m3
ULong
2
4
m3 m3 m3 bar °C m3 m3
ULong Counter6 Counter6 IEEEfloat IEEEfloat Array 8 Array 8 Sum:
2 3 3 2 2 4 4 26
6 8 11 14 16 18 22
Explanation: Value Row
Meaning Selection of the required row of the measurement period archive The EK260 calculates the difference between the start and end ∆ Vx meter reading of the selected counter of the selected measurement period (consumption) Format Transmission of the archive value via required format No. of Depend on the selected data format a adequate number of reg. modbus registers is necessary to transmit the required value To read out single archive content (only one value) in one Offset archive line you’ll need the offset from the start address of the required archive line.
See chapter Table 7.1 A-8.1 See below
The default setting for the start address (2:7B3) is “2001” and the number of archive rows for Modbus transmission (2:7B4) is: “11”.
Modbus Communication with EK2x0_V2.0_d.docx
39
Calculation of the necessary Modbus register numbers for a special entry: The archive may starts with the Register No: 2001 and each entry in the archive occupies 26 registers (see above) whereby a maximum of 256 entries can be read out from the archive. The address of the individual register is calculated by the formula: + * 26 + If for example the mean temperature (Offset = 16) of the third last entry in the archive has to be read-out, then the number of the register is 16 + (26 * (3-1)) + 2001 = 2069 Note:
The number of entries refers only to the event “measurement periods end”. Any other entries in the archive are ignored. That means a change of a meter reading, date & time or special entries (warning or alarm) are not transmitted via Modbus!
7.2.1 Example Archive content of the measurement period archive EK260 (version V2.55):
Calculation of the meter difference via EXCEL:
40
Modbus Communication with EK2x0_V2.0_d.docx
Result:
Interpretation: Reg. No.
Content
Meaning
2001
9856
2002
0000
2003
0000 0053
2005
60
2007
0000 0000
2009 2011
0035 0000 2680
standard volume in Format Counter 6 (always LSB first)
53,9856 m3
A-8.5
2012 2014
003C 0000 0000
Measured volume in Format Counter 6 (always LSB first)
60,0000 m3
A-8.5
2015
3F81 0E02
Mean value pressure
1,0082 bar
A-8.9
2017
41E5 AE14 Mean value temperature
28,71 °C
A-8.9
Consumption of the standard volume (post decimal places) Consumption of the measured volume (post decimal places) Consumption of the standard volume (pre decimal places) Consumption of the measured volume (pre decimal places) Status bits 16-1 Note: transmission as Ulong; but inside EK260 only Ushort used; so MSWord not used
Result
See chapter
x.9856 m3 x.0 m3 53.x m3 60.x m3 “0”
Detection of the messages: A-8.3
2019 2022
0000 0000 9856 0053
standard volume in Format Array 8 (BCD format)
53,9856 m3
A-8.8
2023 2026
0000 0000 0000 0060
Measured volume in Format Array 8 (BCD format)
60,0000 m3
A-8.8
Modbus Communication with EK2x0_V2.0_d.docx
41
7.2.2 Changing Default Setting for Reading-out Fixed Archive EK260 Enclosed there is one example to read out the fixed archive of an EK260. Requirements (Start address for archive transmission: 3000): Value
Type
Format
Archive Order No.
-
Ushort
Date and time
-
Array8
Original meter Reading (Vo)
Meter reading
Counter 6
Standard volume total (VbT)
Meter reading
Counter 6
Pressure p.MP
Mean value
IEEEfloat
Temperature T.MP
Mean value
IEEEfloat
Row No. in measurement period archive EK260:
Necessary programming of the EK260: LIS-200 Address
42
Meaning (see EXCEL sheet in chapter: 7.2.1)
Value
2:7B3
Start address for archive transmission
3000
2:7B4
Number of rows
1:8C3
1st row = Archiv Order No; ABNo;
1:8C4
Format for 1st row (Ushort – see chapter A-8.1)
3
2:8C3
2nd row = Date and time ;
3
2:8C4
Format for 2nd row (Array 8 – see chapter A-8.1)
17
3:8C3
3rd row = Vo;
10
3:8C4
Format for 3rd row ( Counter 6 – see chapter A-8.1)
9
4:8C3
4th row = VbT;
6
4:8C4
Format for 4th row ( Counter 6 – see chapter A-8.1)
9
5:8C3
5th row = p.MP;
row “12”
12
5:8C4
Format for 5th row (IEEEfloat – see chapter A-8.1)
32
6:8C3
6th row = T.MP;
row “13”
13
6:8C4
Format for 6th row (IEEEfloat – see chapter A-8.1)
32
6 row “2”
row “3”
row “10” row “6”
2
Modbus Communication with EK2x0_V2.0_d.docx
Result: Value
Format
No. of Reg.
Archive Order No.
Ushort
1
Date and time
Array8
4
Original meter Reading (Vo)
Counter 6
3
Standard volume total (VbT)
Counter 6
3
Pressure p.MP
IEEEfloat
2
Temperature T.MP
IEEEfloat
2
Pressure Temperature
Pressure Temperature
Modbus Communication with EK2x0_V2.0_d.docx
43
7.3 Reading-out Fixed Archives EK230 / EK220 For EK230 and EK220 all available archives can be transmitted via Modbus. To do this the corresponding archive numbers must to be find out. This can be done easily via WinPADS: EK220 – Available archives:
EK230 – Available archives:
44
Modbus Communication with EK2x0_V2.0_d.docx
Example: The following picture shows the content of the last days of fixed daily archive (number 7 – see above) of an EK220. The data Date/Time, VmT, VbT, p.Day and T.Day should be read out in this order via Modbus.
To read-out the desired data via Modbus, the following wpp-file has to be transferred into the volume converter. Alternatively the same content can be send as single write commands using the User list in the WinPADS: # Daily Archive 7 W1 07:0A36.0 (7000) W1 7:0AA0_1.0 (3.4) W1 7:0AA1_1.0 (10.4) W1 7:0AA2_1.0 (6.4) W1 7:0AA3_1.0 (12.32) W1 7:0AA4_1.0 (13.32) W1 7:0AA5_1.0 (0.4) W1 7:0AA6_1.0 (0.4) W1 7:0AA7_1.0 (0.4) W1 7:0AA8_1.0 (0.4) W1 7:0AA9_1.0 (0.4) W1 7:0AAA_1.0 (0.4) W1 7:0AAB_1.0 (0.4) W1 7:0AAC_1.0 (0.4) W1 7:0AAD_1.0 (0.4) W1 7:0AAE_1.0 (0.4) W1 7:0AAF_1.0 (0.4) W1 7:0AB0_1.0 (0.4)
# Modbus-Start address begins at 7000 # column 3 outputted in format 4 = ULong # column 10 outputted in format 4 = ULong # column 6 outputted in format 4 = ULong # column 12 outputted in format 32 = Float # column 13 outputted in format 32 = Float # column is not outputted # column is not outputted Data format legend: # column is not outputted (see Chapter A-8) # column is not outputted Ushort 3 # column is not outputted Ulong 4 # column is not outputted Counter6 9 # column is not outputted Array2 12 # column is not outputted Array6 16 # column is not outputted Array8 17 # column is not outputted IEEEfloat 32 # column is not outputted # column is not outputted
The setting must be done for the daily archive (archive 7). The start address of the archive is 7000. Take care that these addresses are higher than the used standard Modbus addresses for the registers (see chapter: 3.1)! Note:
Only archive lines with the event “meas. period end” will be transferred via Modbus. All archive lines which based on special events are filtered out of the Modbus transmission!
Modbus Communication with EK2x0_V2.0_d.docx
45
The last entry of the archive can be read out via the Modbus address 7000. For reading out the previous lines you have to calculate the number of registers for the requested columns: Address Column Content
Format Meaning
No. of Modbus registers
Date /time
4
Ulong
2
10
Vmt
4
Ulong
2
Vbt
4
Ulong
2
7:0AA0
6 12
Pressure
32
IEEEfloat
2
7:0AA0
13
temperature
32
IEEEfloat
2
7:0AA0
3
7:0AA0 7:0AA0
And so, the Modbus address for the previous line is 7000 + 10 = 7010:
The time stamps are in UNIX time format: So the difference between two time stamps, e.g. 1266472800 – 1266386400 is 86400 s (= one day in seconds). „Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight proleptic Coordinated Universal Time (UTC) of January 1, 1970, not counting leap seconds.“ (en.wikipedia.org) For calculating the right time there are tools available; e.g.: www.unixtime.de (in German): Note:
46
This tool is based on the time in Germany (GMT+1h) and adds an offset of 1h during summer time (GMT+2h)! Modbus Communication with EK2x0_V2.0_d.docx
8 Reading-out Flexible Archives EK220 via Modbus In some applications, only special data is required and should be stored over a definite period in an archive of the EK220 (not available by EK230 and EK260). It should be possible to read-out this data at any time via Modbus from a control centre. This task consists of two steps: 1. Creating the individual content in an archive (only possible with EK220) 2. Read-out this archive content via Modbus
8.1 Creating an Individual Archive Content This example shows how to define a special content in the flexible archive 15 with daily registration via WinPADS. Start WinPADS and make a connection e.g. via optical head. Open step by step the windows shown:
Untag the mark “Assure standard configuration” and delete the content of this archive.
Modbus Communication with EK2x0_V2.0_d.docx
47
Now the individual content of this archive can be defined.
The “Date and time” can be entered via drag and drop or by push on the arrow → to the window “Columns flexible Archive”.
48
Modbus Communication with EK2x0_V2.0_d.docx
Next values in this example are Vm total quantity, Vb total quantity, mean value p of last day and mean value T of last day.
Modbus Communication with EK2x0_V2.0_d.docx
49
If the first data in the archive should be the serial number of the device, its address can alternatively - if known - be inputted via “Direct input of addresses…” and moved with arrow ↑ in the shown position.
The most important addresses are described in D-3.
Finish the data input by clicking on “OK”. 50
Modbus Communication with EK2x0_V2.0_d.docx
For reading out flexible archives with Modbus, the last data in the archive must be the triggering event (address xx:0A22, where xx is the archive number, in this example 15:0A22) or the triggering event (address xx:0A22) and the checksum (address xx:0A21). Push “Direct input of addresses…” and input “15:0A22”:
After confirming with “OK” the result is:
This archive content can be outputted via Modbus as shown on chapter 8.2.
Modbus Communication with EK2x0_V2.0_d.docx
51
Next step is to define the triggering events in WinPADS. Click on “Events…”:
Delete old entries in the displayed “Triggering events” window, click on “Add…” and mark the event “Day boundary passed forwards” as shown on the right. To add the event click on “OK”:
Finally a meaningful name of this archive can be defined by a click on “Properties…”. The allowed space in an EK220 for storing the name is 12 characters and for the short description only 5 characters! Inputting more characters in this field creates an error message when the data are written into EK220’s memory. Confirm the input in this window with “OK”.
52
Modbus Communication with EK2x0_V2.0_d.docx
After the last input, pushing the button “Verify” checks if all settings of all flexible archives together are compatible with the available memory in the device. If necessary, the size of one or more archives has to be changed:
Note: You’ll get the information if the regarding archive content of one or more changed archives will be preserved or deleted. Finally push the button “Apply…” to save the inputs and changes. The archive columns can be displayed via WinPADS after some days (via button “show content” from first picture on page 47):
Modbus Communication with EK2x0_V2.0_d.docx
53
8.2 Reading-out an Individual Archive Content Modbus communication is not designed to read-out archive data; on the contrary it is well designed to read-out “living” process data. Therefore, the preparation to read-out archives looks a little bit complicated. This example should only give a feeling about this procedure. In case you need help to read-out archives please contact Elster GmbH for support ([email protected]). To read-out the archive No. 15 defined before, with 6 data values (see right) beginning with Modbus address 20000, please program the following content via “WinPADS – Action – Set/read single values…” to the EK220:
# File: Archive 15 Example Flex Arc. Settings_b.wpp ##### Flexible Archive 15 - Individual Daily Archive W1 15:0A36.0 (20000) # Modbus start address of archive 15 begins at 20000 # Archive addresses must be higher than the addresses of Modbus register W1 15:0AA0_1.0 (1.4) W1 15:0AA1_1.0 (2.4) W1 15:0AA2_1.0 (3.4) W1 15:0AA3_1.0 (4.4) W1 15:0AA4_1.0 (5.32) W1 15:0AA5_1.0 (6.32) W1 15:0AA6_1.0 (0.4) W1 15:0AA7_1.0 (0.4) W1 15:0AA8_1.0 (0.4) W1 15:0AA9_1.0 (0.4) W1 15:0AAA_1.0 (0.4) W1 15:0AAB_1.0 (0.4) W1 15:0AAC_1.0 (0.4) W1 15:0AAD_1.0 (0.4) W1 15:0AAE_1.0 (0.4) W1 15:0AAF_1.0 (0.4) W1 15:0AB0_1.0 (0.4)
# output column 1 in format 4 = ULong; Serial Number # output column 2 in format 4 = ULong; Date/Time # output column 3 in format 4 = ULong; VmT # output column 4 in format 4 = ULong; VbT # output column 5 in format 32 = Float; p_average_day # output column 6 in format 32 = Float; T_average_day # column is not outputted # column is not outputted Data format legend: # column is not outputted (see Chapter A-8) # column is not outputted # column is not outputted Ushort 3 Ulong 4 # column is not outputted Counter6 9 # column is not outputted Array2 12 # column is not outputted Array6 16 # column is not outputted Array8 17 # column is not outputted IEEEfloat 32 # column is not outputted
Here, it is not necessary to output the triggering event via Modbus.
54
Modbus Communication with EK2x0_V2.0_d.docx
Start SimplyModbus and perform the settings for our example of reading out the last line in archive 15 from start address 20000:
So the last entry of the configured flexible archive can be reached via Modbus register number 20000. The entry before can be calculated via the sum of all Modbus register numbers (see screen shot above). So the next entry can be reached via Modbus register number 20012! Note:
Only archive lines with the event “meas. period end” will be transferred via Modbus. All special events are filtered out of the transmission.
Depend on the required number of archive lines which must be read out via Modbus the start address for the next archive transmission via Modbus can be calculated as follows:
*
e.g. 1000
*
+ < start address> 10
+
20000
The start address for reading-out the next archive via Modbus must be grater than 30000; e.g. 35000 (see also chapter: Fehler! Verweisquelle konnte nicht gefunden werden.)! Note: Take care that the start addresses are also higher than the used standard Modbus addresses for the registers (see chapter: 3.1)!
Modbus Communication with EK2x0_V2.0_d.docx
55
Appendix A-1 Basic Modbus Description Modbus is a serial messaging protocol for communication between intelligent devices. It was published 1979 by PLC (Programmable Logic Controller) manufacturer Modicon for use in networks based on master/client architecture. Communication between the Modbus nodes was achieved with messages. The physical layer of the Modbus interface ran at first on RS-232, but later implementations used RS-485 because this allows longer distances. The newest implementation of Modbus uses “Intranet” or “Internet” environment with TCP/IP (e.g. Ethernet). Modbus allows communication between many devices connected within the same network (bus mode). Often it is used for supervisory purposes and connects a computer in the control room with a remote terminal unit (RTU) in supervisory and data acquisition systems (SCADA). The official Modbus specification and a lot of helpful technical information are presented at www.Modbus-ida.org. Also basic information about Modbus “What’s Modbus” is also available by SimplyModbus (www.simplyModbus.ca).
A-2 Various Implementations Almost all implementations have variations from the official standard. Different devices from different manufacturers may not communicate correctly with each other. Some of the most common variations are: - Data Types o Floating Point IEEE o 32 bit integer o 8 bit data o Mixed data types - Protocol extensions o 16 bit slave addresses o 32 bit data size (1 address = 32 bits of data returned) o … Modbus itself does not define a floating point data type but it is widely accepted that it implements 32-bit floating point data using the IEEE-754 standard. However, the IEEE standard does not define whether the high order or low order register should come first. Therefore, the most important consideration when dealing with 32-bit data is addressing in the proper order.
56
Modbus Communication with EK2x0_V2.0_d.docx
A-3 Protocol Versions Versions of the Modbus protocol exist for serial ports and for Ethernet or other networks which support Internet protocol. For serial connections exist 2 variants which are representing the numerical data different. • Modbus ASCII is human readable. Transmission performance is less compared to Modbus RTU. • Modbus RTU is a compact binary representation of the data. Nodes configured for the RTU variant will not communicate with nodes set to ASCII. Another derivate is “RTU over TCP”. That means, the Modbus master and slave work in RTU mode; only the hardware layer (the hardware-)interface uses an Ethernet network with TCP/IP, the protocol is the same as the one used in RTU mode, the RTU-protocol is tunneled in a TCP/IP session. • Modbus TCP exists for connections over TCP/IP and is the most recent Modbus variant, it uses a different protocol as Modbus ASCII or RTU.
A-4 Modbus Data Model The data model is simply structured and distinguishes between four basic types: Name Access rights (References) • Discrete Inputs read-only, single bit 1xxxx • Coils (outputs) read-write, single bit 0xxxx • Input Register (input data) read-only, 16 bit quantity 3xxxx • Holding register (output data) read-write, 16 bit quantity 4xxxx The naming refers to the origin of the Modbus protocol and communication with programmable logic controllers. Today’s Modbus implementations transfer these basic definitions very freehanded to the various data types of modern intelligent devices. Note: The references described by the Modbus Protocol Reference Guide (e.g. 4x references, holding registers) are not implicit used by the EK2xx. That means if a PLC requires these references the necessary address had to be entered explicit in the Modbus map; e.g. address 40337 = act. pressure (see chapter 3.1).
A-5 Function Codes To inform the device which command will be used, Modbus uses so-called “function codes”. Following function codes of the Modbus protocol are implemented in the EK2xx: • Read input registers (Function 3) • Read holding registers (Function 4) • Preset single register (Function 6) • Preset multiple registers (Function 16) Note: Writing to the registers is only possible if the corresponding locks in the device are open. The handling of the locks (open and closing of the necessary locks) can also be supported via Modbus addresses. Modbus Communication with EK2x0_V2.0_d.docx
57
A-6 Master/Slave (Client/Server) Architecture MODBUS is an application layer messaging protocol, positioned at level 7 of the OSI model, that provides client/server communication between devices connected on different types of buses or networks. In this bus system there is mostly one master (client) who collects data from one or more slaves (server) e.g. SCADA systems are the master and EK2x0, pressure sensors, actors, switches,…) are slaves. So, each device using Modbus needs an unique (slave) address. In a standard Modbus network there is one master and up to 247 slaves with unique slave addresses from 1 to 247. The slaves supply the information to the master, but the master can also write information into the slave devices. A Modbus command contains the Modbus address of the target device. Only this device will react on the command, even though other devices receive it as well. All Modbus commands contain checking information, ensuring that the command arrives undamaged. The answer from the slave to the master includes the requested data fields - if the transmission was ok - otherwise an Exception code:
If an error occurred, the first bit of above function code “04” (= 0000 0100) send is set to “1”, so the response from the slave is: “84” (= 1000 0100). The meaning of the exception code is described in chapter A-9!
58
Modbus Communication with EK2x0_V2.0_d.docx
A-7 Modbus Addressing Models Modbus address (slave address) The data field of a Modbus request sent from the master to the slave devices contains the “slave address” (see chapter A-6) and additional information that the slave uses to take the action defined by the function code. This includes typically the start addresses of the Modbus register and the count of actual data bytes (No. of registers) in the field. Modbus register: physical or logical addresses The Modbus Specification defines Modbus registers for values from 1 to 65535. Inside the Elster-Implementation these addresses are called “logical addresses”. There are Modbus Implementations on the market which start with address “0”, which means, that each used address is decremented by one. This kind of addresses corresponds with the internal address inside the Modbus Protocol and is called the “physical address”. For customized software, which uses the physical addresses, all the requested addresses have to be decremented by 1 compared to the programmed Modbus-register-list in the device. Elster address ranges for reading out single values and archives Current LIS200-values can be read out by their corresponding Modbus (register) addresses. Note: The references described by the Modbus Protocol Reference Guide (e.g. 4x references, holding registers) are not implicit used by the EK2xx. That means if a PLC requires these references the necessary address had to be entered explicit in the Modbus map; e.g. address 40337 = act. pressure. The values of archives can’t be read out in this way, because they have no corresponding LIS200-addresses. Therefore, another mechanism was installed to read out these archived values. This mechanism divides the whole Modbus (register) address range into three parts: The lower part is defined from address “1” to “X-1” and contains current values. The access is carried out as described in chapter 6. In the enclosed example below the address range is defined from 100 to 999. The middle part is defined from address “X” to “Y-1” and contains archived values from single archives. This address range can be partitioned to all the available single archives. The access is carried out as described in chapter 7 or 8.2. In the enclosed example below the address range is defined from 1000 to 1999 for the measurement period archive and from 2000 to 2999 for the daily archive. The upper part is defined from address “Y” to “65535” and contains archived values from combined archives. This address range can be partitioned to all the desired archives. In the example below the address range is defined from 3000 to 65535. Because this is a rarely used special application, it is currently not supported by Elster devices. Modbus Communication with EK2x0_V2.0_d.docx
59
Example of a Modbus registers address range: Modbus register addresses
Content of the values: Combined Measurement- and Daily Archive
3000 -> Daily Archive 2000 -> Measurement Period Archive 1000 -> Single Values
100 ->
60
Modbus Communication with EK2x0_V2.0_d.docx
A-8 Data Formats The main advantage (and also the main disadvantage) of Modbus is the flexible transmission of parameters and archives. Each Modbus application can use a different kind of data formats for the same values. So this point has to be clarified for the Modbus master (e.g. PLC /SCADA systems) and the slave (e.g. EK2x0). The following example for Modbus function code “3” (read input registers) shows, that register 40108 contains “AE41” (converted to binary representation: 1010 1110 0100 0001). But this value could mean different kind of things. 1. Register defined as a 16-bit data type (register 40108): Type
Allowed Range
Value
Meaning
Conversion
16-bit unsigned integer (Ushort)
a whole number between 0 and 65535
44’609
hex to decimal conversion
16-bit signed integer
a whole number between -32768 and 32767
-20’927
hex to decimal conversion that wraps, if its over 32767 then subtract 65536
2 char. ASCII string (Array2)
2 typed letters
discrete on/off value
this works the same as 16-bit integers with a value of 0 / 1
AE41 ®A
no conversion
1010 1110 0100 0001
ON OFF ON OFF ON ON ON OFF OFF ON OFF OFF OFF OFF OFF ON
2. Register defined as a 32-bit data type (register 40108 and 40109): Type
Allowed Range
Value
32-bit unsigned integer (Ulong)
a whole number between 0 and 4’294’967’295
2’923’517’522
hex to decimal conversion
32-bit signed integer
a whole number between - 2’147’483’648 and 2’147’483’647
-1’371’449’774
hex to decimal conversion that wraps, if its over 65535 then subtract 131072
4 char. ASCII string (Array4)
2 typed letters
32-bit double precision IEEE floating point number (IEEEfloat)
a number (with decimal points) represented by 32 bits with an accuracy of about seven digits
AE41 5652
Meaning
Conversion
®AVR
no conversion
-11
- 4.395978 E
See chapter A-8.1
More registers can be combined to form longer ASCII strings. Each register is being used to store two ASCII characters (two bytes).
Modbus Communication with EK2x0_V2.0_d.docx
61
A-8.1 Standard Data Types For the EK2xx from Elster LIS-200 system, following data formats where supported:
Format
Code
Length
Ushort Ulong
3 4
16 Bit 2x16 Bit
Counter6
9
Array2 Array4 Array6 Array8 IEEEfloat
12 14 16 17 32
2x16 bit (Ulong) + 16 Bit (Ushort) 16 Bit 2x16 Bit 3x16 Bit 4x16 Bit 2x16 Bit
Format
No of. Scaling Register 1 n*1 2 n*1
Digit Digit
binary binary
Counter
binary
3
n*10
BCD coded BCD coded BCD coded BCD coded Exponential
decimal decimal decimal decimal binary
1 2 3 4 2
n*1 n*1 n*1 n*1 n*1
-4
Code: The code number is used inside the EK2xx to program the necessary data format for each parameter of the Modbus map.
A-8.2 Special Data Types Since the Modbus protocol only recognises 16-bit registers, special data types have been defined to simplify reading out the measurements whilst retaining the accuracy. These data types are formed on the 16-bit registers according to the method used by Modicon. This means that a special data type occupies a number of registers, i.e. a 32-bit register is represented by two 16-bit registers, where the first register contains the LSW and the last register the MSW.
62
Modbus Communication with EK2x0_V2.0_d.docx
A-8.3 Ushort Reg. 1 2 3
Short Description designation Bat.R Remaining battery lifetime Stat VmT
Momentary status register, total Total actual volume (post-decimal places)
Unit
Scaling
Months
n*1
LIS-200 address 2:404
-
n*1
1:100
m
3
-4
n*10
4:302_2
Register: default Modbus register of EK2xx
Remaining battery lifetime (Bat.R) FC
Modbus Command
Answer
Meaning
03
01 03 00 00 00 01 84 0A
01 03 02 00 40 B9 B4
64 month
Momentary status register, total (Stat) FC
Modbus Command
Answer
Meaning
03
01 03 00 01 00 01 D5 CA
01 03 02 B0 00 CD 84
1011 0000 0000 0000 any message 16;14;13 active
Total actual volume – post decimal places (VmT) FC
Modbus Command
Answer
Meaning
03
01 03 00 02 00 01 25 CA
01 03 02 04 D2 3A D9
xxx.1234 m3 (post dec. places)
A-8.4 Ulong Reg.
Short Description designation 101 VmT Total actual volume (pre-decimal places)
Unit
Scaling
m3
n*1
LIS-200 address 4:302_1
Note: By data format “Ulong” the setting of the word order has to be clarified! Total actual volume – pre decimal places (VmT) FC
Modbus Command
Answer
Meaning
03
01 03 00 64 00 02 85 D4
01 03 04 CC 23 0F FD F0 D8
L-word first! 0FFD CC23 = 268291107,xxxx m3 (pre-decimal places)
Modbus Communication with EK2x0_V2.0_d.docx
63
A-8.5 Counter6 Reg.
Short Description designation 501 VmT Total actual volume (16 Bit pre-decimal places and 16 Bit post-decimal places)
Unit
Scaling
m3
n*1
LIS-200 address 4:302
Note: By data format “Counter6” the setting of the word order has to be clarified for the pre-decimal places! Total actual volume (VmT) FC
Modbus Command
Answer
Meaning
03
01 03 01 F4 00 03 45 C5
01 03 06 CC EA 0F FD 04 D2 39 17
L-word first! 0FFD CCEA = 268291306 m3 04D2 = ,1234 m3 268291306,1234 m3
A-8.6 Array2 Reg.
Short Description designation 820 DayB Day boundary (shown as time: hh:mm)
Unit
Scaling
-
n*1
LIS-200 address 2:141_1
Day boundary; shown as time: hh:mm; BCD coded FC
Modbus Command
Answer
Meaning
03
01 03 03 33 00 01 74 41
01 03 02 06 00 BB E4
06:00 o’clock (no transmission)
A-8.7 Array6 Reg.
Short Description designation 817 S.No Serial number
Unit
Scaling
-
n*1
LIS-200 address 1:180
Serial number EK2xx; BCD coded FC
Modbus Command
Answer
Meaning
03
01 03 03 30 00 03 05 80
01 03 06 00 00 04 30 83 02 C0 BB
000004308302
Note: By data format “BCD coded” the transmission generally: H-word first!
64
Modbus Communication with EK2x0_V2.0_d.docx
A-8.8 Array8 Reg.
Short Description designation 801 VmT Total actual volume 813
Time
Date and time
Unit
Scaling
m3
n*10-4
LIS-200 address 4:302
-
n*1
1:400
Total actual volume (VmT); BCD coded (000PPPPPPPPPpppp) FC
Modbus Command
Answer
Meaning
03
01 03 03 20 00 04 45 87
01 03 08 00 02 68 29 18 35 12 34 F8 E0
000268291835,1234 m3
Note: With data format “BCD coded” the transmission generally is H-word first! The following format are used by Counters: “000PPPPPPPPPpppp” (P: pre-decimal places; p: post-decimal places) Date and time; BCD coded (CCYYMMDDhhmmss00) FC
Modbus Command
Answer
Meaning
03
01 03 03 2C 00 04 85 84
01 03 08 20 10 11 29 11 05 00 00 CD B4
29 of November 2010; 11:05:00:00
Note: With data format “BCD coded” the transmission generally: H-word first! The following format is used by date / time: “CCYYMMDDhhmmss00” (C: Century; Y: Year; M: Month; D: Day; h: Hour; m: Minute; s: Second)
A-8.9 IEEEfloat Reg.
Short Description designation 337 p Gas pressure
Unit
Scaling
bar
n*1
LIS-200 address 7:310_1
339
T
Gas temperature
°C
n*1
6:310_1
311
C
Conversion factor
-
n*1
5:310
313
K
Gas law deviation factor
-
n*1
8:310
327
Q
Flow rate
m3/h
n*1
4:310
333
Ho.b
kWh/m3
n*1
10:314_1
Calorific value
Note: By data format “IEEEfloat” the setting of the word order has to be clarified! Transmission from IEEE to an analogue value: see chapter: A-8.2
Modbus Communication with EK2x0_V2.0_d.docx
65
Gas pressure (p) FC
Modbus Command
Answer
Meaning
03
01 03 01 50 00 02 C5 E6
01 03 04 84 8C 3F 7E 82 F8
L-word first! 3F7E 848C = 0,9942100 bar
Gas temperature (T) FC
Modbus Command
Answer
Meaning
03
01 03 01 52 00 02 64 26
01 03 04 33 33 41 AD F4 95
L-word first! 41AD 3333 = 21,650000 °C
Conversion factor (C) FC
Modbus Command
Answer
Meaning
03
01 03 01 36 00 02 25 F9
01 03 04 85 0A 3F 68 E3 23
L-word first! 0,9082800
3F68 850A =
K-value (K) = Compressibility factor ratio FC
Modbus Command
Answer
Meaning
03
01 03 01 38 00 02 44 3A
01 03 04 14 51 3F 80 BE 42
L-word first! 1,0006200
3F80 1451 =
Flow rate (Q) FC
Modbus Command
Answer
Meaning
03
01 03 01 46 00 02 24 22
01 03 04 00 00 44 E1 09 7B
L-word first! 44E1 0000 = 1800,0000 m3/h
Calorific value (Ho.b) FC
Modbus Command
Answer
Meaning
03
01 03 01 4C 00 02 04 20
01 03 04 CC CD 41 24 64 D7
L-word first! 4124 CCCD = 10,300000 kWh/m3
66
Modbus Communication with EK2x0_V2.0_d.docx
A-9 Error Messages The Modbus protocol defines eight different error messages, from which the following are used from the current implementation: Error code Name
Meaning
01
Illegal Function The function code received in the query is not implemented
02
Illegal Data Address
The desired register doesn’t exist The desired register is only a part of a complete value (i.e. a part of a float value)
03
Illegal Data Value
A value contained in the query data field is not allowable for the specified format All locks are closed – so no Modbus communication is possible. Elster suggests to keep the customer lock open – so readout data via Modbus is possible but no writing access
04
Slave Device Failure
An unrecoverable error occurred while the slave was attempting to perform the requested action; e.g.: - Archive start address outside allowed range (see chapter 7 or 8.2) - No archive content available in the requested area (outside range)
A-10 Register Size (only EK220) The Modbus Protocol normally knows only 16-Bit registers. Within the ELSTER implementation also 32-Bit-registers are defined. The register size can be selected with LIS200-address “02:07B8”. The possible values are „2“ (for 16-Bit register) or „4“ (for 32Bit register).This size is valid for all of the Modbus registers. The setting can be done via WinPADS (register card “Interface”, “Modbus configuration”):
Modbus Communication with EK2x0_V2.0_d.docx
67
A-11 Data Encoding Modbus uses a ‘Big-Endian’ representation for addresses and data items. This means, if a numerical quantity larger than a single byte is transmitted, the most significant byte (which is stored at the memory location with the lowest address) is sent first. In WinPADS we use “H-Word first” for Big-Endian and “L-Word first” for Little-Endian. Example:
(the prefix 0x indicates hexadecimal notation)
8 bit atomic hexadecimal element and 1 byte address increment: Big-Endian: … | 0x0A | 0x0B | 0x0C | 0x0D | …
increasing addresses
On the left you see the graphic of Big-Endian architecture, on the right the alternative Little-Endian architecture: Register 0A 0B 0C 0D
Fehler! Es ist nicht möglich, durch die Bearbeitung von Feldfunktionen Objekte zu erstellen.
Memory
a:
0A
a+1:
0B
a+2:
0C
a+3:
0D Big-Endian
With 16 bit atomic element size: Big-Endian (H-Word first):
| 0x0A0B | 0x0C0D | …
increasing addresses
Little-Endian (L-Word first):
| 0x0C0D | 0x0A0B | …
increasing addresses
Note: The original Modbus capable PLC’s used the Big-Endian architecture. Most modern PLC’s are based on common microprocessors using the Little-Endian architecture. So, as the factory setting of the EK2xx we use also the Little-Endian architecture (L word first). The fact that Modbus is used to exchange data between these two architectures introduces some possibilities of failure, if the complete details are not considered.
68
Modbus Communication with EK2x0_V2.0_d.docx
B-1 Device-dependent support of special functions Because of the increasing functionality of our devices this document explains functionalities which are not included in every device. On this account, in the following table all the functionalities in combination with the devices and software releases are shown.
Functionalities
Devices EK220
EK230
EK260
Single values (meter reading, meas. values, parameters…)
From V1.00
From V1.61
From V2.50
Measurement period archive
From V1.00
From V1.61
From V2.50
Other single archives
From V1.00
From V1.61
---
Combined archives
From V1.00
From V1.61
---
Modbus TCP
From V1.21
---
From V2.53
No. of Modbus registers
60
40
40
Register size four bytes
From V1.00
---
---
Bus mode (real RS-485)
From V1.21
---
---
Lock handling (e.g. open/closing of supplier lock to set parameters like date/Time etc.)
From V1.32
---
---
Modbus in battery mode (Md.S2 = “14”)
From V1.32
---
---
Modbus Communication with EK2x0_V2.0_d.docx
69
C-1 Basic Requirements for Modbus Communication C-1.1 Power Supply In most Modbus applications the EK2xx needs an external power supply. The external power supply must be used for the EK230 and EK260. The EK220 from version V1.32 on supports Modbus communication also in battery operated mode.
Note: That means that the device is active the whole time during the open call acceptance window and the battery lifetime is reduced. So, this application is only recommended in combination e.g. with FE260 where the Modbus communication is active only once a day for e.g. 60 minutes. If a Modbus communication is necessary for the whole time, then an external power supply is strictly recommended. To test that the external power supply is connected the right way and switched on, you can check via the status display of the EK2x0 – device. In the “Status” list under “STAT” the status „15“ must not be active. “15” means: device battery powered! The necessary supply voltage and current is described in the manual of the corresponding EK2x0 (mostly chapter: B-3 – External power supply).
Note: After switching on the external power supply you’ll have to wait 40 seconds before you can establish a Modbus communication. Only for EK220 starting from version V1.31, this time is reduced to 2 seconds.
C-1.2 Call Acceptance Window The EK2x0 uses a call acceptance window to control the call acceptance only within specified time periods. The EK2x0 does not respond outside of this time window. There are up to two (EK260; EK230) or four (EK220) programmable time windows available. At the EK220 these four are divided into two time windows for battery mode and two time windows for external power mode. If externally powered, all time windows of all EK2x0 could be opened from 00:00 o’clock until 23:59 o’clock (!) to establish a communication. The two time windows of the EK220 (from version V1.31 on) can be used in combination e.g. with FE230 to establish a Modbus communication only to specified call acceptance windows (e.g. every day from 08:00 o’clock to 09:00 o’clock) to save the battery energy of the FE230 AND EK220!
C-1.3 Timeout for Modbus Communication Because there is no end command defined via Modbus there is one parameter inside the Ek2x0 used to define a time period until the communication stops after the last Modbus command. The value is set via “02:0712”; the default setting is 30 seconds.
70
Modbus Communication with EK2x0_V2.0_d.docx
C-1.4 Lock Handling To answer a Modbus request, it’s necessary that at least one lock is open. If all locks (calibration lock, supplier and customer lock) are closed, each Modbus request will be rejected (Exception code “83” when using command “03” = Illegal Data Function)! As a recommendation, we suggest to keep the customer lock open, so a Modbus communication can work all the time. If this lock is open, all parameters and archives can be read out but no changes of parameters are possible. To change parameters via Modbus, the corresponding lock must be opened; e.g. for the gas analysis - as default - the supplier lock. Depending on the application, the Modbus master has to open the supplier lock before changing such parameters.
Note: The lock handling is only supported from EK220 starting from version V1.32! Note: The entries necessary for the handling of the supplier lock, aren’t defined in the factory default Modbus map!
C-1.4a Example: Handling Supplier Lock The handling of the supplier lock is described in the following tables. At first, the Modbus map has to be completed with the following two entries:
Reading actual status of the supplier lock Modbus Command
Answer
Meaning
01 03 03 85 00 01 95 A7
01 03 02 00 01 79 84
Supplier lock open
01 03 02 00 00 B8 44
Supplier lock closed
01 83 03 01 31
All locks are closed
Exception Response 03 = Illegal Data Value 03
Function code “03”
0385
Register address “902”
0001
No. of requested registers
Modbus Communication with EK2x0_V2.0_d.docx
71
Closing supplier lock Modbus Command
Answer
Meaning
01 10 03 85 00 01 02 00 00 8A C5
01 10 03 85 00 01 10 64
Supplier lock closed
10
Function code “16”
0385
Register address “902”
0001
No. of changed registers
02
No. of following byte
0000
Value (“0” = closing)
Opening supplier lock Modbus Command
Answer
Meaning
01 10 03 83 00 02 04 00 00 00 00 AF 2A
01 10 03 83 00 02 B0 64
Supplier lock opened
10
Function code “16”
0383
Register address “900”
0002
No. of changed registers
04
No. of following byte
00000000 Supplier code
Opening (or changing) supplier lock with supplier code “12345678” Modbus Command
Answer
Meaning
01 10 03 83 00 02 04 12 34 56 78 D4 1E
01 10 03 83 00 02 B0 64
Supplier lock opened.
10
Function code “16”
0383
Register address “900”
0002
No. of changed registers
04
No. of following byte
Note: If the lock is open, the same command is used to change the supplier lock to a new code.
12345678 Supplier code
Note: Depending on the Modbus master software, the supplier code must be “translated” into “BCD” before it can be transferred via “Array4” data format to the EK220! E.g. the Modbus simulation software Simply Modbus doesn’t support “BCD” representation of values, so the requested value “12345678” must be converted from “HEX” to “DEZ” (305419896). With this value, the right code will be transferred as a “HEX” value “12345678” to the EK220.
Note: If data format “Array4” is used, the transmission mode „L word first“ or „H word first“ doesn’t have any influence on the BCD coding used here. 72
Modbus Communication with EK2x0_V2.0_d.docx
D-1 Modbus Default Settings EK2xx For an easy start with Modbus communication, default settings (including the base settings of the interface and also the default Modbus configuration table) are set in the volume converter series EK2xx. With the parameterizing software WinPADS and e.g. the optical head these standard settings can be controlled or changed. If the default settings should be reinstalled, first of all delete the actual settings and load (push “Send param. file” button) the corresponding wpp-file for e.g. EK220 which is available on the CD or can be downloaded from our website. The path to this file on CD is: “…\WinPADS\EK200\PROFILES\EK220\V1.2x\Applications”. The name of the file is “EK220 - Modbus Elster-Instromet_*.WPP”. Visualizing the standard Modbus settings via WinPADS shows:
The interface mode Md.S2 is automatically set to “Modbus” during the download of the wpp-file. If Md.S2 is set to another value, the button “Activate Modbus” appears (see above). A click on this button sets “Md.S2” to Modbus” and the button “Activate Modbus” disappears.
Modbus Communication with EK2x0_V2.0_d.docx
73
D-2 Modbus Default Table and Data Types The following table shows the default settings of values for Modbus communication. A change of the Modbus register assignment can be made with the WinPADS software tool under the register card “Interface”, “Modbus Register”. No.
Modbus Address
Data Type
Register Size
EK220 Address
Dis-played Name
1
1
Ushort
1
2:404
Bat.R
2
2
Ushort
1
1:100
Stat
Momentary status, total
3
3
Ushort
1
4:302_2
VmT
Total actual volume (post-decimal places)
10-4 m3
4
4
Ushort
1
2:302_2
VbT
Total volume at base conditions (post-decimal places)
10-4 m3
5
5
Ushort
1
1:302_2
W.T
Total Energy (post-decimal places)
6
101
Ulong
2
4:302_1
VmT
Total actual volume (pre-decimal places)
m3
7
103
Ulong
2
2:302_1
VbT
Total volume at base conditions (pre-decimal places)
m3
8
105
Ulong
2
1:302_1
W.T
Total Energy (pre-decimal places)
kWh
9
301
IEEEfloat
2
7:312_1
pb
Pressure at base conditions
bar
10
303
IEEEfloat
2
6:312_1
Tb
Temperature at base conditions
°C
11
305
IEEEfloat
2
6:210_1
p.Abs
Absolute pressure measurement
bar
12
307
IEEEfloat
2
6:211_1
p.Mes
Pressure - measured value
bar
13
309
IEEEfloat
2
5:210_1
T.Mes
Temperature – measured value
°C
14
311
IEEEfloat
2
5:310
C
Conversion factor
15
313
IEEEfloat
2
8:310
K
K-value, 1/K = super compressibility ratio factor (Fpv)2
16
315
IEEEfloat
2
7:311_1
p.F
17
317
IEEEfloat
2
6:311_1
18
319
IEEEfloat
2
14:314
19
321
IEEEfloat
2
20
323
IEEEfloat
21
325
22
Designation / Value Remaining battery service lifetime
Unit time months
10-4 kWh
Pressure substitute value
bar
T.F
Temperature substitute value
°C
N2
Nitrogen content
%
12:314
H2
Hydrogen content
%
2
11:314
CO2
Carbon dioxide content
%
IEEEfloat
2
13:314_1
Rhob
Density gas at base conditions
kg/m3
327
IEEEfloat
2
4:310
Qm
Flow rate at measurement conditions
m3/h
23
329
IEEEfloat
2
2:310
Qb
Flow rate at base conditions
m3/h
24
331
IEEEfloat
2
1:310
P
25
333
IEEEfloat
2
10:314_1
Ho,b
26
335
IEEEfloat
2
15:314
dr
27
337
IEEEfloat
2
7:310_1
p
Pressure value used for conversion
bar
28
339
IEEEfloat
2
6:310_1
T
Temperature value used for conversion
°C
29
501
Counter6
3
4:302
VmT
Total actual volume
m3
30
504
Counter6
3
2:302
VbT
Total volume at base conditions
m3
31
507
Counter6
3
1:302
W.T
W, total
32
801
Array8
4
4:302
VmT
Total actual volume
10-4 m3
33
805
Array8
4
2:302
VbT
Total volume at base conditions
10-4 m3
34
809
Array8
4
1:302
W.T
Total Energy
35
813
Array8
4
1:400
Time
Date and time
36
817
Array6
3
1:180
SNo
Serial number
37
820
Array2
1
2:141_1
DayB
Day boundary (shown as time)
Power
kW
Calorific value
kWh/m3
Density ratio
kWh
10-4 kWh
The differences of the data types are described in chapter: A-8.
74
Modbus Communication with EK2x0_V2.0_d.docx
D-3 LIS-200 – Addresses for Individual Modbus Maps Plenty of various data is stored in the volume converters EK2xx and can be read-out via Modbus protocol. To do that, the Modbus map must be created first, which links the Modbus address with the internal LIS address of the volume converter and defines the type of each individual data. This can be done via a wpp-file or the procedure described above on chapter 6. Especially for the direct input of addresses, the following table lists the most used parameter addresses of an EK220. Most of these addresses are also valid for EK260 and EK230.
Standard Volume Vb Data List LIS Address
Abbreviation
Designation
2:0300
Vb
Volume at base conditions
2:0300_1
Vb
Volume at base conditions (pre-decimal places)
2:0300_2
Vb
2:0301
VbD
Vb, disturbance quantity
2:0301_1
VbSt
Vb, disturbance quantity (pre-decimal places)
2:0301_2
VbSt
Vb, disturbance quantity (post-decimal places)
2:0302
VbT
Vb total quantity
2:0302_1
VbT
Vb total (pre-decimal places)
2:0302_2
VbT
Vb total (post-decimal places)
2:0303
VbA
Vb, adjustable counter
2:0303_1
VbA
Vb, adjustable counter (pre-decimal places)
Volume at base conditions (post-decimal places)
2:0303_2
VbA
1:0160
VbMP
Vb within current measuring period
1:0161
VbMP
Vb within last measuring period
2:0160
VbDy
Vb of current day
2:0161
VbDy
Vb of last day
7:0160
VbME
Vm within current month
7:0161
VbME
Vb end-of-month value
3:0160
VbMP
Maximum VbMP of current month
3:0161
VbMP
Maximum VbMP of last month
4:0160
VbDy
Maximum VbDy of current month
4:0161
VbDy
2:0310
Qb
Flow at base conditions
5:0160
Qb
Maximum Qb of current month
5:0161
Qb
Maximum Qb of last month
6:0160
Qb
Minimum Qb of current month
6:0161
Qb
Minimum Qb of last month
7:0150
QbLW
7:0158
QbUW
2:0308
Note
Vb, adjustable counter (post-decimal places)
Maximum VbDy of last month
Lower warning limit Qb Upper warning limit Qb Physical unit for volume at base conditions
1...37:0160_1
Pre-decimal places from address 1...37:160 (actual value)
1...37:0160_2
Decimal places from address 1...37:160 (actual value)
1...37:0161_1
Pre-decimal places from address 1...37:161 (last value)
1...37:0161_2
Decimal places from address 1...37:161 (last value)
Modbus Communication with EK2x0_V2.0_d.docx
75
Actual Volume Vm Data List LIS Address
Abbreviation
4:0300
Vm
Volume at measurement conditions
4:0300_1
Vm
Volume at measurement conditions (pre-decimal places)
4:0300_2
Vm
Volume at measurement conditions (post-decimal places)
4:0301
VmD
Vm, disturbance quantity
4:0301_1
VbSt
Vm, disturbance quantity (pre-decimal places)
4:0301_2
VbSt
Vm, disturbance quantity (post-decimal places)
4:0302
VmT
Vm total quantity
4:0302_1
VmT
Vm total (pre-decimal places)
4:0302_2
VmT
Vm total (post-decimal places)
4:0303
VmA
Vm, adjustable counter
4:0303_1
VmA
Vm, adjustable counter (pre-decimal places)
4:0303_2
VmA
Vm, adjustable counter (post-decimal places)
8:0160
VmMP
Vm within current measuring period
8:0161
VmMP
Vm within last measuring period
9:0160
VmDy
Vm of current day
9:0161
VmDy
Vm of last day
14:0160
VmME
Vm within current month
14:0161
VmME
Vm end-of-month value
10:0160
VmMP
Maximum VmMP of current month
10:0161
VmMP
Maximum VmMP of last month
11:0160
VmDy
Maximum VmDy of current month
11:0161
VmDy
Maximum VmDy of last month
4:0310
Qm
Flow at measurement conditions
12:0160
Qm
Maximum Qm of current month
12:0161
Qm
Maximum Qm of last month
13:0160
Qm
Minimum Qm of current month
13:0161
Qm
Minimum Qm of last month
8:0150
QmLW
8:0158
QmUW
4:0308
76
Designation
Note
Lower warning limit Qm (factory settings: deactivated) Upper warning limit Qm (factory settings: deactivated) Physical unit for volume at measurement conditions
Modbus Communication with EK2x0_V2.0_d.docx
Energy W Data List LIS Address
Abbreviation
Designation
1:0300
W
Energy
1:0300_1
W
Energy (pre-decimal places)
1:0300_2
W
Energy (post-decimal places)
1:0301
WD
W, disturbance quantity
1:0301_1
WSt
W, disturbance quantity (pre-decimal places)
1:0301_2
WSt
W, disturbance quantity (post-decimal places)
1:0302
W.T
W total quantity
1:0302_1
W.G
W total (pre-decimal places)
1:0302_2
W.G
W total (post-decimal places)
1:0303
W.A
W, adjustable counter
1:0303_1
W.P
W, adjustable counter (pre-decimal places)
1:0303_2
W.P
W, adjustable counter (post-decimal places)
27:0160
WMP
W within current measuring period
27:0161
WMP
W within last measuring period
28:0160
WDy
W of current day
28:0161
WDy
W of last day
33:0160
WME
W of current month
33:0161
WME
W month-end value
29:0160
WMP
Maximum WMP of current month
29:0161
WMP
Maximum WMP of last month
30:0160
WDy
Maximum WDy of current month
30:0161
WDy
Maximum WDy of last month
1:0308
Note
Physical unit for energy
1:0310
P
Power
31:0160
P
Maximum P of current month
31:0161
P
Maximum P of last month
32:0160
P
Minimum P of current month
32:0161
P
Minimum P of last month
Modbus Communication with EK2x0_V2.0_d.docx
77
Pressure Data List LIS Address
Abbreviation
7:0310
p
Pressure in bar
7:0310_1
p
Pressure (user unit; default in bar)
6:0210
p.Abs
Pressure - measured value
6:0210_1
p.Abs
Absolute pressure measurement
7:0311
p.F
Pressure substitute value in bar
7:0311_1
p.F
Pressure substitute value (user unit; default in bar)
7:0312
pb
Pressure at base conditions
7:0317
Md.p
Pressure mode
7:03A0
pMax
Upper alarm limit pressure in bar
7:03A0_1
pMax
Upper alarm limit pressure (user unit; default in bar)
78
Designation
7:03A8
pMin
Lower alarm limit pressure in bar
7:03A8_1
pMin
Lower alarm limit pressure (user unit; default in bar)
10:0158
p.UW
Upper warning limit pressure
Note
10:0150
p.LW
6:0225
MRU.p
Pressure range upper limit in bar
Lower warning limit pressure
6:0225_1
MRU.p
Pressure range upper limit (user unit; default in bar)
6:0224
MRL.p
Pressure range lower limit in bar
6:0224_1
MRL.p
Pressure range lower limit(user unit; default in bar)
7:0210
p2Abs
Pressure 2 - measured value
EK220 only
7:0210_1
p2Abs
Absolute pressure 2 measurement
EK220 only
15:0158
p2.UW
Upper warning limit pressure 2
EK220 only
15:0150
p2.LW
Lower warning limit pressure 2
EK220 only
7:0225
MBop2
Pressure 2 range upper limit
EK220 only
7:0225_1
MRUp2
Pressure 2 range upper limit (user unit; default in bar)
EK220 only
7:0224
MRLp2
Pressure 2 range lower limit
EK220 only
7:0224_1
MRLp2
Pressure 2 range lower limit (user unit; default in bar)
EK220 only
19:0160
p.MP
Mean value p of current meas. period
19:0161
p.MP
Mean value p of last meas. period
35:0160
p.Day
Mean value p of current day
35:0161
p.Day
Mean value p of last day
20:0160
p.Mon
Mean value p of current month
20:0161
p.Mon
Mean value p of last month
21:0160
p.Mon
Maximum p of current month
21:0161
p.Mon
Maximum p of last month
22:0160
p.Mon
Minimum p of current month
22:0161
p.Mon
Minimum p of last month
Modbus Communication with EK2x0_V2.0_d.docx
Temperature Data List LIS Address
Abbreviation
Designation
6:0310
T
Temperature in K
6:0310_1
T
Temperature (user unit; default °C)
5:0210
T.Mes
Temperature - measured value in K
5:0210_1
T.Mes
Temperature - measured value (user unit; default °C)
6:0311
T.F
Temperature substitute value in K
6:0311_1
T.F
Temperature substitute value (user unit; default °C)
6:0312
Tb
Temperature at base conditions in K
6:0317
Md.T
Temperature mode
6:03A0
TMax
Upper alarm limit temperature in K
6:03A0_1
TMax
Upper alarm limit temperature (user unit; default °C)
6:03A8
TMin
Lower alarm limit temperature in K
6:03A8_1
TMin
Lower alarm limit temperature (user unit; default °C)
9:0158
T.UW
Upper warn limit temperature in K
9:0150
T.LW
Lower warn limit temperature in K
5:0225
MBo.T
Temperature range upper limit in K
5:0225_1
MRU.T
Temperature range upper limit (user unit; default °C)
5:0224
MBu.T
Temperature range lower limit in K
5:0224_1
MRL.T
Temperature range lower limit (user unit; default °C)
3:0410
Ta
Ambient temperature in K
3:0410_1
Ta
Ambient temperature (user unit; default °C)
3:0417
Md.Tu
Ambient temperature measurement on / off
3:04A2
Tu.OW
Upper warn limit ambient temperature in K
3:04A2_1
Tu.OW
Upper warn limit ambient temperature (user unit; default °C)
3:04A9
Tu.UW
Lower warn limit ambient temperature in K
3:04A9_1
Tu.UW
Lower warn limit ambient temperature (user unit; default °C)
15:0160
T.MP
Mean value T of current meas. period
15:0161
T.MP
Mean value T of last meas. period
34:0160
T.Day
Mean value T of current day
34:0161
T.Day
Mean value T of last day
16:0160
T.Mon
Mean value T of current month
16:0161
T.Mon
Mean value T of last month
17:0160
T.Mon
Maximum T of current month
17:0161
T.Mon
Maximum T of last month
18:0160
T.Mon
Minimum T of current month
18:0161
T.Mon
Minimum T of last month
Modbus Communication with EK2x0_V2.0_d.docx
Note
79
Volume Conversion Data List LIS Address
Abbreviation
9:0310
Z
Compressibility factor
9:0312
Zb
Compressibility factor at base conditions
9:0311
z.F
Compressibility factor, substitute value
80
8:0310
K
8:0311
K.F
23:0160
K.MP
Designation
Note
Compressibility factor ratio K=Z/Zb Compressibility factor ratio, substitute value Mean value K of current meas. period
23:0161
K.MP
Mean value K of last meas. period
36:0160
K.Day
Mean value K of current day
36:0161
K.Day
Mean value K of last day
24:0160
K.Mon
Mean value K of current month
24:0161
K.Mon
Mean value K of last month
5:0310
C
25:0160
C.MP
Mean value C of current meas. period
25:0161
C.MP
Mean value C of last meas. period
37:0160
C.Day
Mean value C of current day
37:0161
C.Day
Mean value C of last day
26:0160
C.Mon
Mean value C of current month
26:0161
C.Mon
Mean value C of last month
1:0253
cp.I1
cp value input 1
2:0253
cp.I2
cp value input 2
8:0317
Md.K
Compressibility mode
10:0314
Ho.b
Calorific value
10:0314_1
Ho.b
Calorific value (user unit, default: kWh/m3) Based on pbx / Tbx
10:0312_1
Ho.b
Calorific value (user unit, default: kWh/m3) Recalculated value (not changeable) of entered Hon (address: 10:314_1) from pbx / Tbx to pb / Tb
10:0311
Ho.b
Calorific value (k-value mode: fixed value)
11:0314
CO2
Carbon dioxide content
12:0314
H2
Hydrogen content
14:0314
N2
Nitrogen content
15:0314
dr
Density ratio
13:0314
Rhob
Density gas at base conditions
13:0314_1
Rhob
Density gas at base conditions (user unit, default: kWh/m3)
Conversion factor
1:330
CH4
Methane content
Only EK220 ≥ V1.31
14:314
N2
Nitrogen content
Only EK220 ≥ V1.31
11:314
CO2
Carbon Dioxide content
Only EK220 ≥ V1.31
2:330
C2H6
Ethane content
Only EK220 ≥ V1.31
Modbus Communication with EK2x0_V2.0_d.docx
LIS Address
Abbreviation
Designation
Note
3:330
C3H8
Propane content
Only EK220 ≥ V1.31
4:330
H2O
Water content
Only EK220 ≥ V1.31
5:330
H2S
Hydrogen Sulfide content
Only EK220 ≥ V1.31
12:314
H2
Hydrogen content
Only EK220 ≥ V1.31
6:330
CO
Carbon Monoxide content
Only EK220 ≥ V1.31
7:330
O2
Oxygen content
Only EK220 ≥ V1.31
8:330
iC4Hx
i-Butane content
Only EK220 ≥ V1.31
9:330
nC4Hx
n-Butane content
Only EK220 ≥ V1.31
10:330
iC5Hx
i-Pentane content
Only EK220 ≥ V1.31
11:330
nC5Hx
n-Pentane content
Only EK220 ≥ V1.31
12:330
C6H14
Hexane content
Only EK220 ≥ V1.31
13:330
C7H16
Heptane content
Only EK220 ≥ V1.31
14:330
C8H18
Octane content
Only EK220 ≥ V1.31
15:330
C9H20
Nonane content
Only EK220 ≥ V1.31
16:330
C10Hx
Decane content
Only EK220 ≥ V1.31
17:330
He
Helium content
Only EK220 ≥ V1.31
18:330
Ar
Argon content
Only EK220 ≥ V1.31
9:35F
SumGC
Total amount of gas analysis values
Only EK220 ≥ V1.31
Volume Converter System Data List LIS Address
Abbreviation
1:0180
SNo
Designation
Note
Serial number
1:0181
Device name
2:0181
Manufacturer name
2:0190
Vers
Software version
2:0191
Chk
Software checksum
1:0400
Time
Date and time
1:0400_2
Date
Date
1:0400_3
Time
Time
1:01F3
Bat.C
Initial battery capacity
2:0404
Bat.R
Remaining battery service life
2:0405
Remaining battery capacity
2:04A1
Battery warning limit (months)
4:0150
MPer
Measurement period
1:01F0
MCyc
Measuring cycle time
1:01F1
OCyc
Operating cycle time
1:01A0
Aut.V
Time to changeover to standard display
2:01A0
Disp
Time before display switches off
5:0150
CW1.S
Call acceptance window 1, start (battery mode)
5:0158
CW1.E
Call acceptance window 1, end (battery mode)
6:0150
CW2.S
Call acceptance window 2, start (battery mode)
Modbus Communication with EK2x0_V2.0_d.docx
81
LIS Address
Abbreviation
Designation
6:0158
CW2.E
Call acceptance window 2, end (battery mode)
16:0150
CW3.S
Call acceptance window 3, start (external power mode)
16:0158
CW3.E
Call acceptance window 3, end (external power mode)
17:0150
CW4.S
Call acceptance window 4, start (external power mode)
17:0158
CW4.E
Call acceptance window 4, end (external power mode)
1:0100
Stat
Momentary status, total
2:0100
StSy
System status
1:0101
SReg
Status register, total
2:0101
SRSy
System status register
1:0170
St.PL
Calibration lock: Status / close
3:0170
St.SL
Suppliers lock: Status / close
4:0170
St.CL
Customers lock: Status / close
8:0170
Status of PTB logbook lock
3:0180
Station number
3:0181
Station name
1:021A
Customer number
1:021B
Customer name
1:021C
Meter location number
1:021D
Meter location name
1:0221
Metering Point ID
1:0222
SNM
Serial number of gas meter
1:0223
Typ.Z
Gas meter size (max. 10 Characters)
1:0224
Gas meter measuring range, lower limit
1:0225
Gas meter measuring range, upper limit
Note
Modbus-connected Data List LIS Address
Abbreviation
2:0705
Md.S2
Mode, Interface 2
2:0707
DF.S2
Data format, Interface 2
2:0708
Bd.S2
Baud rate, Interface 2
2:070A
TypS2
Type, Interface 2
82
Designation
Note
2:0704
BusS2
Bus mode RS485 on/off
2:07B0
MBDir
Modbus register order
2:07B1
MBTrM
Modbus transmission mode
2:07B2
MBAdr
Modbus device address (slave address)
2:07B8
MBRSz
Modbus register size
2:07B9
MBAMd
Modbus address mode
1...60:08C0
MAd1...60
Modbus map – external address (only for EK220)
EK260 / EK230: 1…40
1...60:08C1
LAd1...60
LIS-200 address (only for EK220)
EK260 / EK230: 1…40
1...60:08C2
Fmt1...60
Modbus format code (only for EK220)
EK260 / EK230: 1…40
Modbus Communication with EK2x0_V2.0_d.docx
LIS Address
Abbreviation
Designation
1...15:0A36
MBAdr
1...15:0AA0
MBI1
1...15:0AA0_1
MBF1
Modbus archive Format column 1
1...15:0AA1
MBI2
Modbus archive information column 2
1...15:0AA1_1
MBF2
Modbus archive Format column 2
1...15:0AA2
MBI3
Modbus archive information column 3
1...15:0AA2_1
MBF3
Modbus archive Format column 3
1...15:0AA3
MBI4
Modbus archive information column 4
1...15:0AA3_1
MBF4
Modbus archive Format column 4
Note
Modbus archive start address Modbus archive information column 1
1...15:0AA4
MBI5
Modbus archive information column 5
1...15:0AA4_1
MBF5
Modbus archive Format column 5
1...15:0AA5
MBI6
Modbus archive information column 6
1...15:0AA5_1
MBF6
Modbus archive Format column 6
1...15:0AA6
MBI7
Modbus archive information column 7
1...15:0AA6_1
MBF7
Modbus archive Format column 7
1...15:0AA7
MBI8
Modbus archive information column 8
1...15:0AA7_1
MBF8
Modbus archive Format column 8
1...15:0AA8
MBI9
Modbus archive information column 9
1...15:0AA8_1
MBF9
Modbus archive Format column 9
1...15:0AA9
MBI10
Modbus archive information column 10
1...15:0AA9_1
MBF10
Modbus archive Format column 10
1...15:0AAA
MBI11
Modbus archive information column 11
1...15:0AAA_1
MBF11
Modbus archive Format column 11
1...15:0AAB
MBI12
Modbus archive information column 12
1...15:0AAB_1
MBF12
Modbus archive Format column 12
1...15:0AAC
MBI13
Modbus archive information column 13
1...15:0AAC_1
MBF13
Modbus archive Format column 13
1...15:0AAD
MBI14
Modbus archive information column 14
1...15:0AAD_1
MBF14
Modbus archive Format column 14
1...15:0AAE
MBI15
Modbus archive information column 15
1...15:0AAE_1
MBF15
Modbus archive Format column 15
1...15:0AAF
MBI16
Modbus archive information column 16
1...15:0AAF_1
MBF16
Modbus archive Format column 16
1...15:0AB0
MBI17
Modbus archive information column 17
1...15:0AB0_1
MBF17
Modbus archive Format column 17
Modbus Communication with EK2x0_V2.0_d.docx
83
E-1 Example: Modbus Communication to Excel Spreadsheet In the software package from Calta Computer Systems you can find an Excel file test.xls with included macros to demonstrate Modbus communication with an Excel spreadsheet via DDE poke commands. In this example, you can see the settings of Mdbus.exe for EK220 loaded with the standard Modbus parameters as well as the output in the Excel spreadsheet. Data is displayed in the added extra sheet of the renamed file Test_def.xls outlining a simple station with one stream and volume converter EK220.
Configuration of MdBus.exe program for communication with EK2xx Default Modbus list loaded into volume converter
For communication with Excel via poke commands check Excel DDE and Macro DDE. Mdbus program default is: these fields are unchecked.
84
Modbus Communication with EK2x0_V2.0_d.docx
E-2 Communication of MdBus program with the EVC
The parameters with Modbus addresses from 801 on are BCD coded and have to be decoded for further use. Mdbus.exe program allows simple display of conversion. Click with right mouse key on the values in the Modbus Holding window and the values are displayed in hex (BCD-) representation. Indicated is this representation with an “x” after the value. In this form, it is easy to see that Modbus registers 818 and 819 contain the serial number 4308308.
Modbus Communication with EK2x0_V2.0_d.docx
85
F-1 Final Remark With an EK220 up to 60 actual ("living") different values can be defined in the reference list for read-out via Modbus. All standard addresses for usage in the reference list are presented in Appendix D-3. However, if a customer specific wpp-file - different from the standard data - has been created by the Elster support with non-standard data, some of these addresses could have been used and therefore, they may display different, customer-specific information. With increasing experience in interesting applications, we’ll try to add these applications in this brochure. We’d like to encourage every user of Modbus communication with EK220, EK230 or EK260 in special applications, to share his experience with us. The email-address of our Electronic Hotline is: [email protected]. Elster GmbH May 2012
86
Modbus Communication with EK2x0_V2.0_d.docx