Modbus Communication with EK2x0_V2.0_d

Modbus Communication with Modbus Communication with Volume Devices VolumeConversion Conversion Devices EK220, EK230, EK2

Views 142 Downloads 8 File size 5MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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