ProSoft Technology MVI56E-MCM/MCMXT User Manual
Page 64

Configuration as a Modbus Slave
MVI56E-MCM ♦ ControlLogix Platform
User Manual
Modbus Communication Module
Page 64 of 199
ProSoft Technology, Inc.
June 18, 2014
Once again, the COP statement will take as many of the Source elements
required to fill the Dest tag for the length specified. Therefore, the COP statement
will take MCM.DATA.R
EAD
D
ATA
[0]
TO
[19]
to fill the MCM_R
EAD
_F
LOATS
[0]
TO
[9].
3.4.1 Enron/Daniel Float Configuration
Sometimes it is necessary for the module to emulate Enron or Daniel floating-
point addressing.
Copying the data to the MCM.DATA.W
RITE
D
ATA
array and from the
MCM.DATA.R
EAD
D
ATA
array is the same as described in the section above. The
main difference is the addressing of the module.
For example, an Enron Float device is required to access address 47001 for
floating-point data, and each Modbus register would emulate a single float value
(does not require 2 Modbus addresses for 1 float value).
A Master device requiring this type of addressing, would require that for every
count of 1, the MVI56E-MCM module responds to the request message with 4
bytes (one 32-bit REAL) value.
To emulate this addressing, the module has the parameters
MCM.CONFIG.P
ORT
X.F
LOAT
F
LAG
,
F
LOAT
S
TART
,
and F
LOAT
O
FFSET
.
Value
Description
FloatFlag
Tells the module to use the FloatStart and FloatOffset parameters
listed below
FloatStart
Determines what starting address on the Modbus network to treat
as floating-point data. A value of 7000 will signal the module that
address 47001 on the Modbus network is the starting location for
Modbus floating-point data. Every address will occupy 2 registers
within the modules database
FloatOffset
Determines the address within the module to which to associate
the data from the FloatStart section.
Here is a sample configuration for the module.
With the above configuration, this would be the addressing for the module.
Module Address
Modbus Address
Tag Address
100
47001
MCM.DATA.WriteData[100]
102
47002
MCM.DATA.WriteData[102]
104
47003
MCM.DATA.WriteData[104]
110
47006
MCM.DATA.WriteData[110]
120
47011
MCM.DATA.WriteData[120]
200
47051
MCM.DATA.WriteData[200]
300
47101
MCM.DATA.WriteData[300]
500
47201
MCM.DATA.WriteData[500]