ProSoft Technology MVI69E-MBTCP User Manual

Page 122

Advertising
background image

Reference

MVI69E-MBTCP ♦ CompactLogix Platform

User Manual

Modbus TCP/IP Enhanced Communication Module

Page 122 of 150

ProSoft Technology, Inc.

May 20, 2015

7.3.1 ENRON Floating Point Support

Many manufacturers have implemented special support in their drivers for what is
commonly called the Enron version of the Modbus protocol. In this
implementation, addresses greater than 7000 are presumed to contain floating-
point values. The significance to this is that the count descriptor for a data
transfer now denotes the number of floating-point values to transfer, instead of
the number of words.

7.3.2 Configuring the Floating Point Data Transfer

A common question is how to handle floating-point data when using the module
as a Modbus client. This really depends on the server device and how it
addresses this application.

Just because your application is reading or writing floating-point data, does not
mean that you must configure the Float Flag, Float Start, and Float Offset
parameters within the module.

These parameters are only used to support what is typically referred to as Enron
or Daniel Modbus, where one register address must have 32 bits, or one floating
point value. Below is an example:

Example #1

Modbus Address

Data Type

Parameter

47101

32 bit REAL

TEMP Pump #1

47102

32 bit REAL

Pressure Pump #1

47103

32 bit REAL

TEMP Pump #2

47104

32 bit REAL

Pressure Pump #2

With the module configured as a client, you only need to enable these
parameters to support a write to this type of addressing (Modbus FC 6 or 16).

If the server device uses addressing as shown in Example #2, then you do not
need to do anything with the Float Flag or Float Start parameters, as this
addressing scheme uses two Modbus addresses to represent each floating-point
value:

Example #2

Modbus Address

Data Type

Parameter

47101

32 bit REAL

TEMP Pump #1

47103

32 bit REAL

Pressure Pump #1

47105

32 bit REAL

TEMP Pump #2

47107

32 bit REAL

Pressure Pump #2

Because each 32 bit REAL value is represented by two Modbus addresses
(example 47101 and 47102 represent TEMP Pump #1), then you do not need to
set the Float Flag, or Float Start for the module for Modbus FC 6 or 16
commands being written to the server.

The next few pages show three specific examples:

Advertising