ModBus
ModBus
Contents
Description ............................................................................................................................................5
Annex ...................................................................................................................................................64
Modbus protocol and IEEE-754 format ...................................................64
Index.....................................................................................................................................................65
Description 5
Description
Application
Information from the gas analyzer can be transferred to a PC or DCS via
the Modbus. Measurement values, status signals and also signals of
analog and digital inputs and outputs are thus available for further usage.
Basic documents
Modbus Application Protocol Specification V1.1b, December 28, 2006
Modbus Over Serial Line Specification and Implementation Guide
V1.02, December 20, 2006
Modbus Messaging on TCP/IP Implementation Guide V1.0b,
October 24, 2006
These documents are available at http://www.Modbus.org/specs.php.
Interfaces
EL3000, EL3060
The RS232 and the RS485 interfaces (see page 6) located on the
optional RS232/RS485 module in the gas analyzer are supported, where
only one can be operated at a time.
As an alternative, the Ethernet 10/100BASE-T interface can be used for
data transmission via Modbus TCP/IP protocol (see page 11) (from
software version 3.3.2).
EL3010-C
The Ethernet 10/100BASE-T interface is used for data transmission via
Modbus TCP/IP protocol (see page 11).
6 EL3000, EL3060, EL3010-C Modbus
NOTE
The RS232 and RS485 interfaces are supported only in the EL3000
series and EL3060 series gas analyzers.
Parameters
Function
The gas analyzer can be connected e.g. to a PC or a process control
system via the RS232 or RS485 interface when it is equipped with the
Modbus module (option). The gas analyzer supports the Modbus slave
protocol with RTU (Remote Terminal Unit) mode. The access interval of
the Modbus master should be > 100 ms.
Configuration
The Modbus parameters can only be set in the configurator and not in the
gas analyzer.
Modbus parameters
Parameter Value range
Modbus address 1...255
Interface RS232, RS485
Baud rate 9600, 19200, 38400
Parity bit none, odd, even
Stop bits 1, 2
The default settings are underlined.
Modbus via RS232/RS485 7
Cable type
A 3-core twisted-pair cable with cable cross-section of 0.25 mm2 (e.g.
Thomas & Betts, Type LiYCY) is used. The maximum line length is 1200
m.
Level converter
If the PC does not have an RS485 interface, an RS232/RS485 level
converter must be connected between the PC and the Modbus cabling.
RC terminating connector
Order no. 24009-4-0746616
10 EL3000, EL3060, EL3010-C Modbus
Variable connection
The desired cable lengths must be specified in the order in the case of
this connection variant. The connectors and sockets must be attached to
the cable on-site. There are two executions:
Direct connection of two T-joints. Pin contacts must be provided on
both sides.
Extension with a pin contact on one side and a socket on the other
side.
Order no.
Cable with a variable 24009-4-0746622
length
Pin plug 24009-4-0746318
Socket connector 24009-4-0746471
Preassembled connection
The cable is used for the direct connection of two T-joints. There is a
choice of three preassembled lengths for this connection variant.
Length Order no.
1.0 m 24009-4-0746619
2.0 m 24009-4-0746620
5.0 m 24009-4-0746621
Modbus via TCP/IP 11
Modbus/TCP client
Integration
The EL3000 Modbus/TCP server expects requests from the current
IP addresses via the communication port. A maximum of 4 clients can be
connected to the Modbus/TCP server of an EL3000 at the same time. If
the connection to a client breaks down, the connection status in the
Modbus/TCP server is enabled again after a max. 60 seconds.
Scan
Byte Description Value Explanation
MBAP Header
0 Transaction identifier 0x00 Transaction identifier: 0x0005 = We send the 5th scan
1 Transaction identifier 0x05
2 Protocol identifier 0x00 Protocol identifier: 0x0000 = Modbus protocol
3 Protocol identifier 0x00
4 Length 0x00 Length: 0x0006 bytes follow this byte, this includes the
5 Length 0x06 last byte of the MBAP header
6 Unit identifier 0xFF Unit: Any value
General Modbus Frame
7 Function code 0x04 Function code: 0x04 = Read out input register
8 Starting address 0x00 Starting address = 0x0000
9 Starting address 0x00
10 Quantity of registers 0x00 Quantity of registers = 0x0003
11 Quantity of registers 0x03
Modbus via TCP/IP 13
Answer
Byte Description Value Explanation
MBAP Header
0 Transaction identifier 0x00 Transaction identifier: 0x0005 is returned as sent by the
1 Transaction identifier 0x05 client
2 Protocol identifier 0x00 Protocol identifier: 0x0000 = Modbus Protocol
3 Protocol identifier 0x00
4 Length 0x00 Length: 0x0009 bytes follow this byte, this includes the
5 Length 0x09 last byte of the MBAP header
6 Unit identifier 0xFF Unit: is returned as sent by the client
General Modbus Frame
7 Function code 0x04 Function code: 0x04 = Read out input register
8 Byte count 0x06 Number of bytes: 0x06 bytes with data follow
9 Byte 1 0x41 0x411E3282 = 9.887331
10 Byte 2 0x1E
11 Byte 3 0x32
12 Byte 4 0x82
13 Byte 5 0x00 0x000 = Status "No error"
14 Byte 6 0x00
14 EL3000, EL3060, EL3010-C Modbus
Function Description
Measured values as floating- Measured value, in each case followed by the associated measured
point numbers with value status (as a 16-bit integer).
measured value status The active component (see page 22) is shown for detectors with several
(see page 17) components (max. 5).
Measured values as fixed- Measured value in % span, in each case followed by the associated
point numbers with measured value status (both values as 16-bit integers).
measured value status The active component (see page 22) is shown for detectors with several
(see page 17) components (max. 5).
Range Limits Lower value and end-point of measuring range 2 as floating-point
(see page 18) numbers.
The active component (see page 22) is shown for detectors with several
components (max. 5).
Drift, delta drift Drift values and delta drift values as a floating-point number
(see page 19) The active component (see page 22) is shown for detectors with several
components (max. 5).
Status signals Status signals Error, Function Check and Maintenance Required as a 1
(see page 20) bit value in each case.
Status of the alarm values Status of the alarm values as a 1-bit value. Up to 10 alarm values.
(see page 20)
Bus digital inputs Eight digital inputs as 1-bit values, writable.
(see page 24)
Autocalibration control Starting, aborting and disabling the autocalibration.
(see page 26)
Autocalibration status Autocalibration running.
(see page 26)
Autocalibration mode Mode of the autocalibration: zero point and end-point calibration alone
(see page 25) or together.
Autocalibration of calibration Setpoints of the zero point and span gases for the autocalibration.
setpoints Format: floating-point numbers, alterable, for up to 5 components.
(see page 25)
Active component Selection of the active component with up to 5 detectors. A 16 bit
(see page 22) register in each case.
Low pass time constants Time constant, time constant for non-linear filter and threshold for non-
(see page 21) linear filter as a floating-point number.
The active component (see page 22) is shown for detectors with several
components (max. 5).
Status of the digital inputs Status of the digital inputs as a 1-bit value, 16 objects for 4 IO modules
(see page 23) with 4 inputs each.
Status of the digital outputs Status of the digital outputs as a 1-bit value, 16 objects for 4 IO modules
(see page 24) with 4 outputs each.
Externally controlled Control signals for initiation of the calibration, control signals for initiation
calibration of the calibration reset, control signals for insertion of the calibration
(see page 27) cells, control signals for control of the Fidas24 NMHC, transmission of
the calibration setpoints, parameterization of the calibration method,
feedback signal of the externally controlled calibration
Control of the Fidas24 Fidas24 Standby, Fidas24 Standby/Purge, Fidas24 Restart
(see page 38)
User memory User Memory Record, User Memory Store
(see page 39)
Overview of the functions 15
Measured values
Measuring range
Drift values
Status
Alarm values
Low pass
Component switch-over
Automatic calibration
Autocalibration mode
Autocalibration setpoints
The calibration setpoints are transmitted in the IEEE 754 32-bit floating-
point format (see page 64). Two Word registers are used to represent a
floating-point value.
26 EL3000, EL3060, EL3010-C Modbus
Autocalibration control
Autocalibration status
The user has full control over the sequence of the calibration and the
feed-in of the calibration gases in this type of calibration. The instrument
carries out a calibration immediately after transmission of the calibration
command. The only exception here is the check of the raw values during
an end-point calibration: an end-point calibration with zero gas is not
carried out.
The following input and control signals are required for the externally
controlled calibration:
Control signals (see page 28) for initiation of the zero point or end-
point calibration in one or more detectors
Control signals (see page 29) for initiation of the calibration reset
Control signals (see page 29) for insertion of the calibration cells of
the Uras26 for the end-point calibration
Control signals (see page 30) for control of the Fidas24 NMHC
Specification (see page 31) of the setpoints for zero points and end-
points
Setting the calibration method
Feedback signal (see page 34) of the calibration process
28 EL3000, EL3060, EL3010-C Modbus
Calibration method
Information on the "calibration method" is included in the operator's
manual of the gas analyzer.
The calibration method can be set for each detector via the following
register:
Modicon Modbus address Type Register number Description/name
40211 Holding Register 210 Extcal. mode detector 1
40212 Holding Register 211 Extcal. mode detector 2
40213 Holding Register 212 Extcal. mode detector 3
40214 Holding Register 213 Extcal. mode detector 3
40215 Holding Register 214 Extcal. mode detector 4
The following applies here:
Calibration method Value
Common calibration 0
Substitute gas calibration 1
Standard gas calibration 2
Single-point gas calibration 3
Permissible calibration methods for the analyzers:
Calibration method Uras26 Limas23 Magnos206 Magnos27 Caldos25 Caldos27 Fidas24
Common calibration X X X X X X X
Substitute gas calibr. X X X (X)
Standard gas calibr. X
Single-point calibr. X
If a non-permissible calibration method is set, the common calibration is
automatically activated as the method. Since only the common calibration
is permissible for Uras26 and Limas23, there is no write access for the
calibration method.
Externally controlled calibration 33
Extcal. running: "1" Externally controlled calibration / calibration reset currently running
"0" No externally controlled calibration
Extcal. status: "0" Calibration OK
"1" Calibration error (The calibration was aborted; does not occur for drift events.)
The status signals are deleted at the beginning of a calibration and set at
the end. The status is then active until the next calibration or until a cold
restart of the instrument.
Example: Performing an externally controlled calibration 35
Preliminary remarks
The following example is based upon the procedures described in the
document "Modbus Application Protocol Specification V1.1b, December
28, 2006".
The example describes the procedure of a zero point and end point
calibration in detector 1 of a gas analyzer.
36 EL3000, EL3060, EL3010-C Modbus
Zero-point calibration
Modicon Modbus address Type Coil number Description/name
1111 Coil Status 1110 Ext. calibration zero point
detector 1
Procedure
1. Use Modbus function No. 05 to write coils (see section 6.5 in document
"Modbus Application Protocol Specification V1.1b").
Send "On" to coil No. 1110:
Request Response
Field Name Hex Field Name Hex
Function 05 Function 05
Output Address Hi 04 Output Address Hi 04
Output Address Lo 56 Output Address Lo 56
Output Value Hi FF Output Value Hi FF
Output Value Lo 00 Output Value Lo 00
2. Wait for two seconds.
3. Use Modbus function No. 01 to read coils until hex 00 is sent (see
section 6.1 in document "Modbus Application Protocol Specification
V1.1b").
Read coil No. 1110:
Request Response
Field Name Hex Field Name Hex
Function 01 Function 01
Starting Address Hi 04 Byte Count 01
Starting Address Lo 56 Output Status 01
Quantity of Outputs Hi 00
Quantity of Outputs Lo 01
End-point calibration
Modicon Modbus address Type Coil number Description/name
1121 Coil Status 1120 Ext. calibration end point
detector 1
Procedure
(like zero-point calibration)
1. Use Modbus function No. 05 to write coils.
2. Wait for two seconds.
3. Use Modbus function No. 01 to read coils until hex 00 is sent.
38 EL3000, EL3060, EL3010-C Modbus
Fidas24 Standby
In this mode, the detector flame is out, and there is no sample gas flow.
The detector is kept at setpoint temperature:
The fuel gas valve is switched off.
The injector air is switched off.
All pressure regulators have the output variable 0.
The detector temperature remains at its setpoint.
For safe standby operation, it is recommended that the detector is purged
with zero gas before execution of the standby function (Purge; only in
EL3000 if calibration gas valves are present).
Fidas24 Standby/Purge
This function requires a zero gas valve and can therefore not be used in
the EL3010-C.
Fidas24 Restart
The automatic ignition procedure of the Fidas24 is started. The Fidas24
varies the combustion air quantity and the fuel gas quantity during the
ignition procedure. Successful ignition of the flame is indicated by the
temperature display of the flame monitoring increasing to approx. 30 °C
above the current detector temperature. In the case of a restart from
standby operation, the detector temperature is 191 °C.
User memory
The User Memory area enables user data or parameters, e.g. external
calculation quantities for the calibration or measured value correction, to
be stored in the instrument.
"Read File Record" and "Write File Record" are required as functions in
the Modbus stack for reading and writing to the User Memory area. Four
file records with 4 kBytes (2 kWord Register) are available.
The data is initially stored in the RAM after it is written to the file record. It
is permanently stored in the database of the instrument by setting an
additional coil register.
The User Memory segments are stored in the database and the database
backed up on the flash disk by setting the coil status. The coil status can
be read at this time thereby enabling the storage event to be monitored.
At the earliest, a read request may be sent 1 second after the coil status
has been set. The conclusion of the storage event is indicated by the
reset status.
Instrument information
Preliminary remarks
The following device information is available:
Production number
Serial number
Software version
Software version date
Device information data is stored as ASCII code. Up to 16 register
numbers are reserved for each information. Data can be extracted by
reading the content of the subsequent register numbers. A "Hex 00"
content is used as terminator and readout may be stopped.
The serial number is the ID of the built in PCB. The last digits of the serial
number correspond to the MAC address.
46 EL3000, EL3060, EL3010-C Modbus
System events
All events of the instrument are stored in the event store. This event store
is volatile, i.e. it is empty after a cold restart of the system. However, if a
system defect or similar is present, the resulting event is detected again
during the run-up phase of the instrument and entered in the event store.
Format of an event
An event comprises 8 Records. The first event begins with Record #2 of
the file.
Event acknowledgement
If an event in the instrument requires acknowledgement, the event must
be confirmed, before it is removed from the event system of the
instrument. Confirmation can take place on the HMI of the instrument
(see Format of an event (see page 50), "Event behavior")
The events can be acknowledged via the Modbus event file (file 256) by a
write access to the relative Record 0 of the event.
Record offset Meaning (write record)
0 Sender ID
Writing the sender ID acknowledges the event.
Write file
Example
Event 1 of the event list is acknowledged by writing the sender ID of
Event 1 in Record 2 of file 256. Event 2 of the event list is acknowledged
by writing the sender ID of Event 2 in Record 12 of file 256. After
acknowledgement, a change in the event list is shown in Bit 1 of Record
0. All the events in the file can be acknowledged before the file is
updated. The acknowledgement of an event which does not require
acknowledgement or the transmission of an invalid sender ID does not
cause a system reaction.
Administration of system events 53
Format of a sender ID
The sender ID can be transmitted multilingually. The individual language
texts are transmitted in succession in a character string separated by an
identifier. The transmission takes place in the form of a UTF8 encoded
character string. If there is no language identifier, the text is directly
applicable.
Administration of system events 55
Examples
Multilingual text
Sender ID: "|001Fidas24:A.Pres.|049Fidas24:Luftd."
Identifier Language Text
001 English Fidas24:A.Pres.
049 German Fidas24:Luftd.
Example
Multilingual text
Event text: "|001Offset >>§The offset Drift§exceeds the§permissible
range.|049Offset >>§Die Offsetdrift§überschreitet den§zulaessigen
Bereich."
Identifier Language Event text
001 English Event short text: Line 1: Offset >>
Details of the Line 2: The offset drift
event: Line 3: exceeds the
Line 4: permissible range.
049 German Event short text: Line 1: Offset >>
Details of the Line 2: Die Offsetdrift
event: Line 3: überschreitet den
Line 4: zulaessigen
Bereich.
60 EL3000, EL3060, EL3010-C Modbus
Status messages
Annex
Example
The number –12.5 is stored as a hexadecimal value 0xC1480000. The
following table describes the memory assignment:
Address +0 +1 +2 +3
Format SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM
Binary 11000001 01001000 00000000 00000000
Hexadecimal C1 48 00 00
Explanation
The sign bit S is 1, i.e. the value is negative.
The exponent E is 10000010 binary, which corresponds to a decimal
value of 130. If 127 is subtracted from 130, the result is 3. This is the
exponent value.
The stored mantissa value M is 10010000000000000000000. The
value 1.10010000000000000000000 is obtained by adding the
un-stored leading 1 in front of the decimal point.
1100.10000000000000000000 is obtained after adjusting the
mantissa to the exponent (shift of three places). This binary number
corresponds to the decimal number 12.5.
This decimal number still has to be provided with the negative sign. The
number –12.5 is obtained from this.
Index 65
ABB 2013