www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
3
Page 4
1 GENERAL INFORMATION
1.1 Scope of the document
These instructions are supplementary to the signal converter handbook. For all other data, use
the relevant chapters of the handbook. If you do not have this document, please contact the
nearest office or download them from the manufacturer's internet site.
1.2 Scope of delivery
The information in this supplementary manual only contains the data applicable to MODBUS
communication.
The technical data in the handbook shall be valid in its current version, provided that it is not
rendered invalid or replaced by this supplement.
1.3 Modbus protocol interface
The Modbus interface to the signal converter is implemented in the Modbus RTU
communications protocol and is done in accordance with the specification and requirements of
the "Modbus Protocol Specification V1.1b".
MFC 400
The physical electrical parameters of the Modbus specification are defined by the EIA/TIA-485
(RS485) standard and the "Modbus over Serial Line - Specification and Implementation Guide
V1.02".
Both specifications can be obtained on the official website of the Modbus organisation:
http://www.modbus.org
4
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 5
MFC 400
TECHNICAL DATA 2
2.1 General technical data
InterfaceRS485, galvanically isolated
Baud rate1200, 2400, 3600, 4800, 9600, 19200, 38400, 57600 or
ProtocolModbus RTU (available as a separate document on request)
Maximum participants on bus32 per line, master included (may be extended by repeaters)
CodingNRZ bit coding
Address range1...247
Transmission procedureHalf duplex, asynchronous
Bus accessMaster / slave
CableScreened twisted pair
DistancesMaximum 1.2 km / 3937 ft without repeater (dependant on
115200 bps
baud rate and cable specifications)
2.2 Technical data of the Modbus interface (acc. to EIA/TIA standards)
Kind of signal transmissionDifferential, 2-wire topology
Maximum number of
transmitter/receivers
Voltage range on converter input-7...+12 V
Maximum voltage on converter output5V
Minimum voltage on driver output, max.
load
Maximum input current (off state)-20...+20 μA
Receiver input voltage-7...+12 V
Sensitivity of the receiver-200...+200 mV
Receiver input resistance>12kΩ
Short circuit current< 250 mA
Termination / polarization resistors
(if activated by factory)
32
U
>1.5V
diff
120 Ω / 560 Ω
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
5
Page 6
3 ELECTRICAL CONNECTIONS
3.1 Modbus connection
The signal converter is hooked up onto the bus using terminals C and D:
TerminalsDescription
D-Signal A (D 0)
DSignal B (D 1)
C-Common 0 V
CNot connected
Terminals A and B of the signal converter are dependant on the options selected at order. Refer
to the standard handbook of the signal converter for connection details.
3.2 Connection to Modbus bus
The signal converter is designed to be connected as a slave device onto the 2-wire bus
implementation of the Modbus serial physical layer definition.
MFC 400
In addition to the D0 and D1 signal lines the bus MUST
ground reference point for the data signals.
For proper operation of Modbus in half duplex mode in single or multi-drop communication, it is
recommended that a termination resistor is applied to both ends of the data line. The simplest
form of termination is line-to-line resistor across the differential input.
In RTU mode the Modus protocol requires quiet periods on the communications bus for
synchronisation. It is therefore important that the Modbus is not allowed to "float", i.e.
unreferenced to 0 V, as this could lead to spurious signals due to noise pick-up. It is therefore
necessary to employ biasing resistors at one point on the bus network.
MUST include a "Common" signal line to act as a
MUSTMUST
6
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 7
MFC 400
ESTABLISH RS485 CONNECTION 4
To establish a RS485 connection with the signal converter, prepare the master device with the
appropriate default settings or use custom parameters specified via display of the signal
converter.
The Modbus RS485 settings can be found in the menu C6.8 of the display. The following
parameters can be configured:
Data formatBig Endian, Little EndianBig EndianC6.8.4
Transmission
delay
Stop Bits1 Stop Bit, 2 Stop Bits1 Stop BitC6.8.6
19200, 38400, 57600, 115200
bps
0...0.04 [s]0sC6.8.5
19200 bpsC6.8.2
These settings can be changed via Modbus too. For further information refer to
Communication Settings
on page 24.
Modbus RS485
All devices connected to the bus, must have the same baud rate.
INFORMATION!
It is of great importance to ensure at the time of the procedure of devices addressing, that there
are not two devices with the same address. In such a case, an abnormal behaviour of the whole
serial bus can occur. It is then impossible for the master to communicate with all present slaves
on the bus.
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
7
Page 8
5 MODBUS PROTOCOL
5.1 RTU frame format
Using RTU (Remote Terminal Unit) format, data is transmitted as 8 bit binary characters. There
are no special characters to determine the start and end of a message frame. Synchronization is
achieved by a minimum silent period of at least 3.5 character times before the start of each
frame transmission and a maximum silent period of 1.5 character times between characters in
the same frame.
The format of the query and response frames vary slightly depending upon the function code.
The basic form is outlined below.
Command functionFrame formatDescription
MFC 400
Silent period3.5 x TAll transmissions must be preceded by a minimum silent
Slave address8bitsThis is a single byte slave address which is transmitted
Function code8bitsThis is an eight bit code in the range of 1...255 although
Register start address or
byte count when required
Number of points or data
bytes when required
8 bit byte count
16 bit address
n×8bitsNumber of points:
period of 3.5 x T, where T is the transmission time of a
single character. This can be calculated from the baud
rate, e.g. T = 572 µs at 19.2 kbps.
first and must be in the range of 1...247. Address 0 is
reserved for a broadcast address which all slaves should
recognise, and therefore requires no response.
only 126 functions exist as the codes 129...255 represent
an error condition. An error condition occurs when the
addressed slave does not accept the command, in which
case it responds with the function code + 128, i.e. with its
msb set to 1.
Register start address:
Register start address: for a query command that requires
Register start address:Register start address:
data to be returned, this field will contain the 16 bit start
address of the register (or data) to be returned.
Note that the signal converter uses protocol addresses.
Therefore the register address listed is the actual number
required in the Modbus command.
E.g:
E.g: to access input register 30006, the register start
E.g:E.g:
address is 30006 = 0x7536.
Byte count:
Byte count: In general this is only present in frames that
Byte count:Byte count:
are transferring data, and has a value equal to the number
of bytes contained in the data field. The data field is limited
to a maximum of 250 bytes.
Number of points: for a query command that requires data
Number of points:Number of points:
to be returned, this field will contain the number of
registers to be returned regardless of their bit size.
Data bytes:
Data bytes: contains the data requested. The signal
Data bytes:Data bytes:
converter can use Big Endian format (MSB first) or Little
Endian format (LSB first).
CRC16 bitsThis field contains a 16 bit CRC which is calculated on all
8
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
the data bits of the message bytes.
Page 9
MFC 400
5.2 Data representation
There are two data types used to transmit information on a Modbus data bus, the "Bit" and the
"Register". The "Bit" represents a single binary state, whether as an output or an input condition.
The "Register" is a 16-bit integer transmitted as two 8-bit characters. Using multiple "Registers"
the Modbus interface can transmit higher accuracy values such as "Floating Point" and "Double
Precision Floating Point" numbers.
"Bit" variables are packed into a byte containing 8 bit, so each character, sent or received, can
contain up to 8 "Bit" variables. The master and slave devices use only as many 8 bit data
characters as are required to transmit the information. Any unused bits in the data characters
are ignored. The bit that is requested by the start address is transmitted in the LSB at bit 0. The
next "Bit" value is transmitted in the next bit (bit 1). This continues until the last bit location (bit 7)
of the LSB is reached. The next "Bit" value is then transmitted in the next data byte (LSB+1/MSB)
at bit 0. This continues until all of the requested values have been transmitted. Any unused bits in
the MSB are filled out with "0"s.
For simple single register variables the MSB of the register is transmitted first, with the LSB
following immediately after. However, for variables that require multiple registers, i.e. the
"Floating Point" and "Double Precision Floating Point" variables, the transmission order can be
selected in the RS485 settings. By default, those values will be transmitted in Big Endian.
MODBUS PROTOCOL 5
5.2.1 8-bit values
Register HiLo
N0x00Byte
5.2.2 16-bit values
Register HiLo
NMSBLSB
5.2.3 32-bit values
Little Endian
Register HiLo
NLSB + 1LSB
N + 1MSBLSB + 2
Big Endian
Register HiLo
NMSBLSB + 2
N + 1LSB + 1LSB
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
9
Page 10
5 MODBUS PROTOCOL
Float (single precision, IEEE 754)
MSBLSB + 1LSB + 1LSB
SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
With S = sign, E = exponent, M = mantissa/fraction
5.2.4 64-bit values
Little Endian
Register HiLo
NLSB + 1LSB
N + 1LSB + 3LSB + 2
N + 2LSB + 5LSB + 4
N + 3MSBLSB + 6
MFC 400
Big Endian
Register HiLo
NMSBLSB + 6
N + 1LSB + 5LSB + 4
N + 2LSB + 3LSB + 2
N + 3LSB + 1LSB
Double (double precision, IEEE 754)
MSB
MSBLSB + 6
MSBMSB
SEEEEEEEEEEEMMMMMMMMMMMMMMMMMMMM
LSB + 3
LSB + 3LSB + 2
LSB + 3LSB + 3
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
LSB + 6LSB + 5
LSB + 6LSB + 6
LSB + 2LSB + 1
LSB + 2LSB + 2
LSB + 5LSB + 4
LSB + 5LSB + 5
LSB + 1LSB
LSB + 1LSB + 1
LSB + 4
LSB + 4LSB + 4
LSB
LSBLSB
With S = sign, E = exponent, M = mantissa/fraction
10
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 11
MFC 400
5.3 Modbus Register Addresses
The signal converter supports four types of data references, which are associated to a range of
Modbus registers.
Address rangePrimary tablesAccess rights
0...9999Coilsread + write
10000...19999Discrete Inputsread
20000...39999Input Registersread
40000...65535Holding Registersread + write
INFORMATION!
•
Sometimes register numbers are asked for. The register numbers can be calculated by
adding a 1 to the register address.
•
Some systems cannot use addresses above 9999. For these systems there is the possibility to
use the listed addresses but
- for Input Registers omit the leading 3 of 3xxxx;
- for Holding Registers omit the leading 4 of 4xxxx.
MODBUS PROTOCOL 5
5.4 Supported Function Codes
Function codeName
dechex
0101Read Single Coil
0202Read Descrete Inputs
0303Read Holding Register
0404Read Input Register
0505Write Single Coil
0808Diagnostics
1610Write Multiple Register
432BEncapsulated Interface Transport
For detailed information about the telegrams structure of all function codes refer to
Modbus function codes
on page 33.
5.5 Error messages
When the signal converter detects an error in the requests, received in a properly formatted
telegram, it will respond with an error message. The error message response telegram is
formatted as follows:
Supported
AddressFunction CodeError CodeCRC LoCRC Hi
The msb (most significant bit) of the requested function code is set (add 0d128 / 0x80) in the
reponse telegram to indicate an error has been detected. For example, if an error were detected
in a function 1 request, then the returned function code would be 0x81 (0d129).
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
11
Page 12
5 MODBUS PROTOCOL
The single data character in the response telegram will indicate the type of error detected.
These are as follows:
MFC 400
Error
NameMeaning
Code
01ILLEGAL FUNCTIONThe requested function code is not supported or not valid due to the
02ILLEGAL DATA
03ILLEGAL DATA VALUEThe requested data is invalid for the register being written.
04SLAVE DEVICE
06SLAVE DEVICE BUSYThe slave is unable to process the requested command because a
ADDRESS
FAILURE
Errors due to communications faults (CRC errors, Parity errors etc.) are logged but no response
is returned because the data in the received telegram is deemed unreliable. The master system
can read the error logs by using the diagnostics command (for details on Function Code 0x08
refer to
Diagnostics
on page 13).
5.6 Device identification
Retrieve all of the identification information from the signal converter.
Modbus Function Code "Encapsulated Interface Transport" (0x2B).
current settings of the device.
The register requested is not valid or the quantity of requested
registers hits invalid registers.
An unrecoverable error occurred while the slave was attempting to
perform the requested action.
long-duration command is in progress. The master should
retransmit the message later.
Modbus Encapsulated Interface (MEI) type (0x0E).
Category Object IdObject nameTypeContent
Basic0x00VendorName16 byte ASCII StringKROHNE
0x01ProductCode10 byte ASCII StringCG number; order code for the
0x02MajorMinorRevision7 byte ASCII StringElectronic Revision number
0x06UserApplicationName16 byte ASCII StringUser tag, displayed on the
signal converter assembly
header of the local screen
12
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 13
MFC 400
5.7 Diagnostics
This command function permits the user to perform one of several diagnostics operations, such
as retrieving the error and event logs. For further details on this command function, refer to the
Modbus Application Protocol Specification V1.1b.
Modbus Function Code "Diagnostics" (0x08)
Sub function codeName
dechex
0000Return Query Data
0101Restart Communication Option
0404Force Listen Only Mode
100AClear Counters
110BReturn Bus Message Count
120CReturn Bus Communication Error Count
130DReturn Bus Exception Count
140EReturn Slave Message Count
150FReturn Slave No Response Count
1812Return Bus Character Overrun Count
MODBUS PROTOCOL 5
5.8 Parameters
The functions of the Modbus interface are arranged in groups of thematically coherent
parameters.
Large gaps have been left between these groups of data types in order to permit expansion of the
signal converter interface and compatibility with further high performance signal converters.
Some registers are protected by a custody transfer lock for use when the signal converter is
used in custody transfer applications. These registers are indicated by the symbol.
The configuration of the signal converter can be changed via Modbus Holding Registers. Writing
data to those registers does not take effect immediately. In order to apply the new configuration
it is necessary to perform "Apply Changes". Parameters that require "Apply Changes" are
indicated by the symbol. Changes that are not applied can be discarded via "Discard Changes"
(details on page 14). For further information refer to
Application sequences
on page 28.
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
13
Page 14
5 MODBUS PROTOCOL
5.8.1 Device Control
The "Device Control" offers some basic functionality to operate with the signal converter.
Therefore, the Modbus interface provides five coils that can be accessed via Modbus Function
Code "Write Single Coil" (0x05).
MFC 400
Write a coil to value 1
value 1 (ON) to initiate the action.
value 1value 1
Modbus Function Code "Write Single Coil" (0x05)
Coil
NameDescriptionDisplay
Address
1000
1000
10001000
(0x03E8)
1001
1001
10011001
(0x03E9)
1002
1002
10021002
(0x03EA)
1003
1003
10031003
(0x03EB)
1004
1004
10041004
(0x03EC)
Restart DeviceRestart entire signal converterD2.2.1
Reset ErrorsClears the system error flagsA3.1
Apply ChangesApply latest changes of configuration-
Discard ChangesDiscard all of the configuration changes made since the last "Apply
Reset to Factory
Data
Changes"
Resets the signal converter to factory configurationC6.6.3
The flow sensor can be switched between three modes. Use the following Modbus register to
request a change of the operation mode. The actual operation mode can be read via Modbus
register 39000 (details on page 15).
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
Fct. No.
-
Holding
Register
51000
51000
5100051000
(0XC738)
NameDescriptionTypeNo. of
registers
Operation
Mode
Set the actual operation mode
of the flow sensor
Byte11 = Stop Mode
ValuesDisplay
Fct. No.
A.9
3 = Measure Mode
5 = Standby Mode
14
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 15
MFC 400
5.8.2 Device Status
Modbus Function Codes "Read Discrete Inputs" (0x02)
MODBUS PROTOCOL 5
Discrete
NameDescriptionTypeNo. of
Inputs
10000
10000
1000010000
(0x2710)
10001
10001
1000110001
(0x2711)
Status of Custody
Transfer Lock
Are Changes
Made?
Indicates if custody transfer lock
is active or no
Indicates if there are unsaved
changes. "Apply Changes" to
save them, "Discard Changes" to
work with previous settings
Modbus Function Codes "Read Input Registers" (0x04)
Input
NameTypeNo. of
Register
39000
39000
3900039000
(0x9858)
39002
39002
3900239002
(0x985A)
39004
39004
3900439004
(0x985C)
39100
39100
3910039100
(0x98BC)
Actual Operation ModeLong21 = Stop
Device Operation TimeFloat2[s]B2.1
NE 107 Status GroupsLong2For further information refer to
NE 107 Device StatusByte1Bit 7 = Failure (F)
registers
Values
registers
Bit10 = unlocked
Bit10 = no changes made
1 = locked
1 = unsaved changes
detected
Values / UnitsDisplay
Fct. No.
2 = Startup
3 = Measuring
5 = Standby
NAMUR NE 107 Event Group(s)
on page 32.
Bit 6 = reserved
Bit 5 = Out of Specification (S)
Bit 4 = Function Check (C)
Bit 3 = reserved
Bit 2 = Maintenance required (M)
Bit 1 = reserved
Bit 0 = Information (I)
B2.16
-
-
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
15
Page 16
5 MODBUS PROTOCOL
5.8.3 Measurement values
Modbus Function Codes "Read Input Registers" (0x04)
MFC 400
Input
Register
30000
30000
3000030000
(0x7530)
30002
30002
3000230002
(0x7532)
30004
30004
3000430004
(0x7534)
30006
30006
3000630006
(0x7536)
30008
30008
3000830008
(0x7538)
30010
30010
3001030010
(0x753A)
30012
30012
3001230012
(0x753C)
30014
30014
3001430014
(0x753E)
30016
30016
3001630016
(0x7540)
1 Only available with option "concentration measurement"
NameTypeNo. of
UnitsDisplay
registers
Flow VelocityFloat2[m/s]B2.5
Volume FlowFloat2[m³/s]B2.4
Mass FlowFloat2[kg/s]B2.3
TemperatureFloat2[K]B2.7
DensityFloat2[kg/m³]B2.6
Concentration 1 Value 1Float2[Brix], [% Mass], [Baume 144],
Concentration 2 Value1Float2-
Concentration 1 Flow 1Float2[m³/s] or [kg/s]-
Concentration 2 Flow 1Float2-
[Baume 145], [% NaOH], [Plato],
[% Volume], [API], [% Alcohol by
mass], [% Alcohol by volume]
5.8.4 Measurement Status compliant with NAMUR NE 107
Fct. No.
-
Modbus Function Codes "Read Input Registers" (0x04)
Input
NameTypeNo. of
Register
30500
30500
3050030500
(0x7724)
30501
30501
3050130501
(0x7725)
30502
30502
3050230502
(0x7726)
30503
30503
3050330503
(0x7727)
30504
30504
3050430504
(0x7728)
30505
30505
3050530505
(0x7729)
30506
30506
3050630506
(0x772A)
30507
30507
3050730507
(0x772B)
30508
30508
3050830508
(0x772C)
NE 107 Status of Flow VelocityByte1Bit 7 = Failure (F)
NE 107 Status of Volume FlowByte1
NE 107 Status of Mass FlowByte1
NE 107 Status of TemperatureByte1
NE 107 Status of DensityByte1
NE 107 Status of Conc. 1 valueByte1
NE 107 Status of Conc. 2 valueByte1
NE 107 Status of Conc. 1 flowByte1
NE 107 Status of Conc. 2 flowByte1
Values
registers
Bit 6 = reserved
Bit 5 = Out of Specification (S)
Bit 4 = Function Check (C)
Bit 3 = Initial Value
Bit 2 = Maintenance required (M)
Bit 1 = Value is too large and limited
Bit 0 = Value is too small and limited
If none of these bits is set, there is no status
message.
16
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 17
MFC 400
5.8.5 Auxiliary Values
Modbus Function Codes "Read Input Registers" (0x04)
MODBUS PROTOCOL 5
Input
Register
31000
31000
3100031000
(0x7918)
31002
31002
3100231002
(0x791A)
31004
31004
3100431004
(0x791C)
31006
31006
3100631006
(0x791E)
31008
31008
3100831008
(0x7920)
31010
31010
3101031010
(0x7922)
31012
31012
3101231012
(0x7924)
31014
31014
3101431014
(0x7926)
NameTypeNo. of
UnitsDisplay
registers
Drive LevelFloat2[%]B2.11
Sensor A LevelFloat2[%]B2.12
Sensor B LevelFloat2[%]B2.13
Strain 1Float2[Ω]B2.8
Strain 2Float2[Ω]B2.9
Tube FrequencyFloat2[Hz]B2.10
2 Phase SignalFloat2-B2.14
SE PCB TemperatureFloat2[K]B2.15
5.8.6 Totaliser
Modbus Function Codes "Read Coils" (0x01) and "Write Single Coil" (0x05)
Coil
Address
NameFunctionActionValuesDisplay
Fct. No.
Fct. No.
3000
3000
30003000
(0x0BB8)
3001
3001
30013001
(0x0BB9)
3002
3002
30023002
(0x0BBA)
3003
3003
30033003
(0x0BBB)
3004
3004
30043004
(0x0BBC)
3005
3005
30053005
(0x0BBD)
1 Only available in signal converters with "modular carrier"
Totaliser 1Start / StopWrite0 = stop totaliser
StatusRead0 = totaliser stopped
Totaliser 2Start / StopWrite0 = stop totaliser
StatusRead0 = totaliser stopped
Totaliser 3 1Start / StopWrite0 = stop totaliser
StatusRead0 = totaliser stopped
Totaliser 1 Resetset totaliser value
to zero
Totaliser 2 Resetset totaliser value
to zero
Totaliser 3 Reset 1set totaliser value
to zero
Write1 = reset totaliserC4.1.6
Write1 = reset totaliserC4.2.6
Write1 = reset totaliserC4.3.6
1 = start totaliser
1 = totaliser running
1 = start totaliser
1 = totaliser running
1 = start totaliser
1 = totaliser running
C4.1.8 /
C4.1.9
-
C4.2.8 /
C4.2.9
-
C4.3.8 /
C4.3.9
-
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
17
Page 18
5 MODBUS PROTOCOL
Modbus Function Code "Read Input Registers" (0x04)
MFC 400
Input
Register
32000
32000
3200032000
(0x7D00)
32004
32004
3200432004
(0x7D04)
32008
32008
3200832008
(0x7D08)
32100
32100
3210032100
(0x7D64)
32102
32102
3210232102
(0x7D66)
32104
32104
3210432104
(0x7D68)
1 Only available in signal converters with "modular carrier"
NameTypeNo. of
Units
registers
Totaliser 1 value (double precision)Double4[m³] or [kg]
Totaliser 2 value (double precision)Double4
Totaliser 3 value (double precision) 1Double4
Totaliser 1 value (single precision)Float2
Totaliser 2 value (single precision)Float2
Totaliser 3 value (single precision) 1Float2
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
Holding
Register
40000
40000
4000040000
(0x9C40)
40001
40001
4000140001
(0x9C41)
40002
40002
4000240002
(0x9C42)
40003
40003
4000340003
(0x9C43)
40004
40004
4000440004
(0x9C44)
40005
40005
4000540005
(0x9C45)
1 Only available in signal converters with "modular carrier"
2 Only available with option "concentration measurement"
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 19
MFC 400
MODBUS PROTOCOL 5
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
Holding
NameActionTypeNo. of
Register
40500
40500
4050040500
(0x9E34)
40502
40502
4050240502
(0x9E36)
40504
40504
4050440504
(0x9E38)
40506
40506
4050640506
(0x9E3A)
40508
40508
4050840508
(0x9E3C)
40510
40510
4051040510
(0x9E3E)
40512
40512
4051240512
(0x9E40)
40514
40514
4051440514
(0x9E42)
40516
40516
4051640516
(0x9E44)
40518
40518
4051840518
(0x9E46)
40520
40520
4052040520
(0x9E48)
40522
40522
4052240522
(0x9E4A)
1 Only available in signal converters with "modular carrier"
Totaliser 1Low Flow Cut-Off
Totaliser 2Low Flow Cut-Off
Totaliser 3
1
Value
Time Constant0...100 [s]C4.1.4
Set or Read Value[m³] or [kg]C4.1.7
Preset[m³] or [kg]C4.1.5
Value
Time Constant0...100 [s]C4.2.4
Set or Read Value[m³] or [kg]C4.2.7
Preset[m³] or [kg]C4.2.5
Low Flow Cut-Off
Value
Time Constant0...100 [s]C4.3.4
Set or Read Value[m³] or [kg]C4.3.7
Preset[m³] or [kg]C4.3.5
Float2[m³/s] or [kg/s]C4.1.3
Float2[m³/s] or [kg/s]C4.2.3
Float2[m³/s] or [kg/s]C4.3.3
registers
UnitsDisplay
Fct. No.
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
19
Page 20
5 MODBUS PROTOCOL
5.8.7 Zero Calibration
Due to process and installation variations that cannot be accounted for by factory calibration, it is
always good practice to perform regular zero calibrations on the sensor to ensure the accuracy
of the results.
The Coils and Registers below are required to perform a zero calibration. For further
information refer to
Zero calibration
Modbus Function Codes "Read Coils" (0x01) and "Write Single Coil" (0x05)
on page 29.
MFC 400
Coil
NameFunctionActionValuesDisplay
Address
2000
2000
20002000
(0x07D0)
Zero Calibration
Control
StartWrite1 = start zero calibrationC1.1.1
StatusRead0 = zero calibration not running /
complete
1 = zero calibration in progress
Modbus Function Code "Read Input Registers" (0x04)
Input
Register
20000
20000
2000020000
(0x4E20)
20001
20001
2000120001
(0x4E21)
NameTypeNo. of
Values
registers
Zero Calibration ResultByte10 = success
Zero Calibration new "Zero Flow
Offset"
Float2-
1 = fail – sensor not measuring
2 = fail – zero too high
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
Holding
NameTypeNo. of
Register
46000
46000
4600046000
(0xB3B0)
Zero Calibration ValueFloat2
Fct. No.
-
registers
20
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 21
MFC 400
5.8.8 Density Calibration Coefficients
Modbus Function Code "Read Input Registers" (0x04)
MODBUS PROTOCOL 5
Input
NameTypeNo. of registersDisplay
Register
33000
33000
3300033000
(0x80E8)
33002
33002
3300233002
(0x80EA)
33004
33004
3300433004
(0x80EC)
33006
33006
3300633006
(0x80EE)
33008
33008
3300833008
(0x80F0)
33010
33010
3301033010
(0x80F2)
33500
33500
3350033500
(0x82DC)
33501
33501
3350133501
(0x82DD)
DCF2Float2C1.8.2
DCF3Float2C1.8.3
DCF4Float2C1.8.4
DCF6Float2C1.8.6
DCF7Float2C1.8.7
DCF8Float2C1.8.8
DCF1Byte1C1.8.1
DCF5Byte1C1.8.5
5.8.9 Density Configuration
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
Holding
Register
NameTypeNo. of
registers
ValuesDisplay
Fct. No.
D1.2.2
D1.2.3
D1.2.4
D1.2.6
D1.2.7
D1.2.8
D1.2.1
D1.2.5
Fct. No.
43000
43000
4300043000
(0xA7F8)
43500
43500
4350043500
(0xA9EC)
43502
43502
4350243502
(0xA9EE)
43504
43504
4350443504
(0xA9F0)
43506
43506
4350643506
(0xA9F2)
43508
43508
4350843508
(0xA9F4)
43510
43510
4351043510
(0xA9F6)
43512
43512
4351243512
(0xA9F8)
1 Only if Density Mode = Fixed
2 Only if Density Mode = Referred
3 Only if Density Mode = Standard
Density ModeByte10 = Actual
Fixed Density Value
1
Density Referred Temperature
2
Referred Density Slope
2
Standard Density Temperature
3
Standard Density k0
3
Standard Density k1
3
Standard Density k2
3
1 = Fixed
C1.2.2
2 = Referred
3 = Standard
Float20.08...5000 [kg/m³]C1.2.3
Float228.15...773.15 [K]C1.2.3
Float20...65C1.2.4
Float228.15...773.15 [K]C1.2.5
Float20...5000C1.2.6
Float2-100...100C1.2.7
Float2-10...10C1.2.8
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
21
Page 22
5 MODBUS PROTOCOL
5.8.10 Filters
Modbus Function Codes "Read Holding Registers" (0x03) and "Write Multiple Registers" (0x10)
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
29
Page 30
7 TROUBLESHOOTING
7.1 No response to Modbus requests
There are a number of possibilities why no response would be received from the signal
converter. Here is a list of some of the more obvious things to check:
• Check that there is an appropriate voltage input on the V+ and V- terminals of the signal
converter.
• Ensure that there is continuity between the A and B input terminals and their associated
terminals at the master device. Check that A and B are connected correctly (details on page
6). Ensure that there is a proper "Common" connection between the master device and the
signal converter.
• The signal converter will ignore messages that are not addressed to it, or any message that
contains fundamental formatting errors. So, check that the Address ID that is being
requested is correct, the default value is 1. Check that the transmission rate (default = 19200
Baud) and format (default = 8 data bits, even parity and 1 stop bit) are correct.
7.2 Communication errors
Intermittent communication errors can have a number of causes, almost all of which can be
attributed to the quality of the connection between the master device and the signal converter,
such as:
MFC 400
• Low quality connections at the terminals of the signal converter or master device. Ensure
that good contact is being made and that the connections are not frayed or corroded.
• Cable lengths and/or cable capacitance are too great for the data rates being used.
• Powerful sources of electromagnetic interference in close proximity to the path of the cable
route.
• It is common to use converter devices to connect the Modbus RS485 output of the signal
converter to the serial RS232 port or USB port of a host PC using off-the-shelf protocol
converters. Many of these, especially USB based converters will have problems operating the
Modbus interface as it is a timing critical protocol. Where possible, a dedicated RS485
interface PC card should be used.
7.3 Responding with exception "Illegal Function"
There can be two reasons why this error response will be returned by the signal converter in
answer to a request:
• The function being requested is not valid for the signal converter; check the list of valid
Modbus functions. For further information refer to
• An attempt is being made to write to a register that is protected by the Custody Transfer Lock.
Supported Function Codes
on page 11.
30
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 31
MFC 400
TROUBLESHOOTING 7
7.4 Responding with exception "Illegal Data Address"
There are four reasons why the signal converter will return an "Illegal Data Address" error
message when the master device makes a request.
a) The register address being requested is not supported by the signal conveter, check the
requested register against the registers specified in the section "Parameters".
b) Although the start address is valid, when accessing multiple registers the number of registers
requested may extend beyond the end of the valid address range for that group of variables.
Check the number of variables requested and ensure that the last register address is valid.
c) The number of registers requested is not correct for the data type being requested. For
example, if registers containing floating point variables are requested then the number of
requested registers must be a multiple of 2 as the floating point variables are held in two
consecutive registers. For double precision floating point variables the number of registers
requested must be a multiple of 4.
d) From c) above, the system will respond with an "Invalid Address" error when an attempt is
made to access the associated registers of a multi-register variable, for example when access to
the second register of a floating point variable is attempted. i.e. if an attempt is made to access
Input register 30001, which contains the second half of the variable accessed by Input register
30000.
7.5 Responding with exception "Illegal Data Value"
When the signal converter responds with an "Illegal Data Value", it is because the value being
written to a holding register in the signal converter is beyond the permitted limits for that
register. The limits for each holding register are indicated in the section "Parameters".
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
31
Page 32
8 APPENDIX
8.1 NAMUR NE 107 Event Group(s)
Modbus Input Register
3900439005
Byte 0Byte 1Byte 2Byte 3
MFC 400
ByteBitStatus
Event group
signal
37-reserved
6-reserved
5-reserved
4-reserved
3-reserved
2IConfig: No Meas. Value
1IElectr: Operation Info
0--
27FProc: Current Input 1
6SElectr: IO Connection 1
5FProc: Signal Search 1
4SProc: 2 Phase Flow 1
3SProc: Signal Low 1
2SConfig: Totaliser 1
1IProc: System Control 1
0IElectr: Power Failure 1
17SSensor
6SElectronics
5SConfiguration
4SProcess
3MSensor
2MElectronics
1MConfiguration
0MProcess
07FSensor
6FElectronics
5FConfiguration
4FProcess
3CSensor
2CElectronics
1CConfiguration
0CProcess
1 Those event groups can be mapped to any status signals.
32
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 33
MFC 400
8.2 NAMUR NE 107 status signals
APPENDIX 8
FFailure
Failure
FailureFailure
Output signal invalid due to malfunction in the signal converter.
CFunction Check
Function Check
Function CheckFunction Check
Output signal temporarily invalid due to ongoing work on the signal converter.
SOut of specification
Out of specification
Out of specificationOut of specification
• Deviations from the permissible ambient or process conditions determined by
the signal converter itself through self-monitoring.
• Faults in the signal converter itself indicate that the measuring uncertainty of
flow sensors or deviations from the set value in actuators is probably greater
than expected under operating conditions.
MMaintenance required
Maintenance required
Maintenance requiredMaintenance required
Although the output signal is valid, the wear reserve is nearly exhausted or a
function will soon be restricted due to operational conditions.
8.3 Supported Modbus function codes
Function Code 0x01: Read Coils
RequestResponseError
Function0x01Function0x01Function0x81
Starting Address Hi0x00 to 0xFFByte CountnException Code0x01 / 0x02 /
Starting Address Lo0x00 to 0xFFCoil n Status
Quantity of Coils Hin (0x00 to 0x07)......
Quantity of Coils Lon (0x01 to 0xFF)
max Quantity:
0x07D0
0x03 / 0x04
Function Code 0x02: Read Discrete Inputs
RequestResponseError
Function0x02Function0x02Function0x82
Starting Address Hi0x00 to 0xFFByte CountnException Code0x01 / 0x02 /
Starting Address Lo0x00 to 0xFFInput n Status
Quantity of
Registers Hi
Quantity of
Registers Lo
n (0x00 to 0x07)......
n (0x01 to 0xFF)
max Quantity:
0x07D0
0x03 / 0x04
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Output Address Hi 0x00 to 0xFFOutput Address Hi 0x00 to 0xFFException Code0x01 / 0x02 /
Output Address Lo 0x00 to 0xFFOutput Address Lo 0x00 to 0xFF
Output Value Hi0x00 or 0xFFOutput Value Hi0x00 or 0xFF
Output Value Lo0x00Output Value Lo0x00
0x03 / 0x04
Function Code 0x08: Diagnostics
RequestResponseError
Function0x08Function0x08Function0x88
Sub-function Hi0x00 to 0xFFSub-function Hi0x00 to 0xFFException Code0x01 / 0x03 /
Sub-function Lo0x00 to 0xFFSub-function Lo0x00 to 0xFF
Data n Hi0x00 to 0xFFData n Hi0x00 to 0xFF
Data n Lo0x00 to 0xFFData n Lo0x00 to 0xFF
............
0x04
34
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 35
MFC 400
APPENDIX 8
Function Code 0x10: Write Multiple Registers
RequestResponseError
Function0x10Function0x10Function0x90
Starting Address Hi0x00 to 0xFFStarting Address Hi0x00 to 0xFFException Code0x01 / 0x02 /
Starting Address Lo0x00 to 0xFFStarting Address Lo0x00 to 0xFF
0x03 / 0x04
Quantity of
Registers Hi
Quantity of
Registers Lo
Byte Count2 * n (0x02 to
Register n Value Hi0x00 to 0xFF
Register n Value Lo0x00 to 0xFF
......
0x00Quantity of
Registers Hi
0x01 to 0x7BQuantity of
Registers Lo
0xFF)
0x00
0x01 to 0x7B
Function Code 0x2B: Encapsulated Interface Transport 0x0E Read Device Identification
RequestResponseError
Function0x2BFunction0x2BFunction0xAB
MEI Type0x0EMEI Type0x0EException Code0x01 / 0x02 /
Read Device ID
Code
Object ID0x00 to 0xFFConformity Level0x02 (0x01 /
0x01 / 0x02
(0x03 / 0x04)
Read Device ID
Code
More Follows0x00 (or 0xFF)
Next Object ID0x00 to 0xFF
Number of
Objects
Object n ID0x00 to 0xFF
Object n length0x00 to 0xFF
Object n valuen (1...254 bytes)
......
0x01 / 0x02
(0x03 / 0x04)
0x03 / 0x04)
0x01 to 0x07
(0xFF)
0x03 / 0x04
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
35
Page 36
8 APPENDIX
8.4 Number format
• Hexadecimal values are written in the format 0xNNNN, where NNNN is the hexadecimal
value.
• Decimal values are written in the format 0dNNNN or NNNN, where NNNN is the decimal
value.
8.5 Glossary
RTURemote Terminal Unit mode is a Modbus serial transmission mode
RS232TIA/EIA-232 Standard
RS485TIA/EIA-485 Standard
Master/ClientA device that polls one or more slave devices and always initiates
Slave/ServerA device that responds to requests from a master and never initiates
CRCCyclic Redundancy Checksum
RegisterA Modbus data object corresponding to a word (16 bits)
CoilA Modbus data object corresponding to a single bit
LSBLeast Significant Byte
MSBMost Significant Byte
lsbleast significant bit
msbmost significant bit
MFC 400
communication
communication
36
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 37
MFC 400
NOTES 9
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
37
Page 38
9 NOTES
MFC 400
38
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
Page 39
MFC 400
NOTES 9
www.krohne.com05/2013 - 4002525102 - AD Modbus MFC 400 R02 en