Modbus Us Brasil
Modbus Us Brasil
Filename MODBUS.DLL
Manufacturer Modicon
Devices Any device compatible with Modbus protocol v1.1b
Protocol Modbus v1.1b
Version 3.0.11
Last Update 05/29/2015
Platform Win32 and Windows CE (Pocket PC ARM, HPC2000 ARM, HPC2000 X86, and
HPC2000 MIPS)
Dependencies No dependencies
Superblock Readings Yes
Level 0
Introduction
This Driver implements the Modbus protocol, which allows an Elipse application to communicate with any
slave device that implements this protocol in ASCII, RTU, or TCP modes.
This Driver always works as a master of a Modbus network. If users need to use a Driver to communicate with
master devices, then Elipse's Modbus Slave Driver must be used, which can be downloaded at Elipse's
website.
Modbus Driver, starting at version 2.00, was developed using Elipse's IOKit library. This library is responsible
for implementing the physical layer access (Serial, Ethernet, Modem, or RAS). For more information about
IOKit configuration, please check IOKit User's Manual.
For a proper usage of this Driver, it is recommended to read, in this order, chapters Adding a Driver to an
Elipse Application and Configuration.
If a device fully complies with the standard Modbus protocol defined by the Modbus Organization
(Modbus.org), and if users need to read or write bits and registers from a device, with no need to use more
advanced Driver features, then it is recommended to start reading by topic Quick Configuration Guide.
To create large scale applications, it is also recommended to read topic Performance Tips.
Modbus Protocol
Recommended Websites
Supported Functions
Special Functions
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Modbus Protocol
The Modbus protocol was initially developed by Modicon in 1979, and today it is an open standard,
maintained by the Modbus Organization (modbus.org), and implemented by hundreds of manufacturers in
thousands of devices. Schneider Electric, current controller of Modicon, transferred protocol rights to the
Modbus Organization in April 2004, and committed to keep Modbus as an open protocol. Specification can be
downloaded for free at Organization's website (www.modbus.org), and protocol usage is free of licensing
fees.
This protocol is based on command and response messages, positioned at layer 7 of the OSI model
(application layer), which provides client and server communication among devices connected to different
types of networks. It offers services with functions defined by an eight-bit code. There are three categories of
function codes:
Public function codes: Protocol's well-defined functions, guaranteed to be unique, validated by the
Modbus community and publicly documented in MB IETF RFC. They can assume values ranging from 1
to 64, from 73 to 99, and from 111 to 127.
User-defined function codes: Non-standard functions, which do not need Modbus.org approval,
without any guarantee of being unique, and freely implementable. They can assume values ranging
from 65 to 72 and from 100 to 110.
Reserved function codes: Codes with values inside the range of public functions, currently used by
some manufacturers for legacy products, and not publicly available anymore. Examples are the 9, 10,
13, 14, 41, 42, 90, 91, 125, 126, and 127 codes. For more information, please check Annex A of protocol
specification (version 1.1b), which is available at protocol's official website.
This Driver currently implements 11 of all 19 public functions defined on the current version of protocol's
specification (1.1b), as well as some specific manufacturer's functions or related to specific Driver features,
known as Special Functions. The implemented public functions are described on topic Supported Functions.
The following protocol's public functions are not yet supported:
If users want to implement one of these functions, please contact Elipse's commercial department.
Recommended Websites
Elipse's Modbus Driver is available for download (at no cost) at Elipse's Drivers download area.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
More information about the Modbus protocol can be found at www.modbus.org, protocol's official website.
Modsim Modbus Slave Simulator, probably the best known in its category, can be purchased at www.win-
tech.com/html/modsim32.htm. This software emulates a device, allowing communication with this Driver.
There is also the free alternative Free Modbus PLC Simulator, available for download at
www.plcsimulator.org.
Other alternatives for simulators and software tools related to the protocol can be found at protocol's official
website.
Supported Functions
Modbus protocol functions supported by this Driver are described next.
Reading functions
Writing functions
In addition to protocol's standard functions, as already stated, this Driver also implements special functions,
not defined by the protocol, usually related to mass memory readings. A list of special functions supported by
this Driver can be checked on topic Special Functions. The complete Driver configuration is described on
topic Configuration. If users need to add support to a new function in this Driver, please contact Elipse's
commercial department.
Special Functions
Special reading and writing functions are Driver functions not defined by the standard Modbus protocol. They
were developed to meet specific features of certain devices, or else to provide, in a standardized way by this
Driver, features not available in the default protocol. Modbus Driver, in its current version, includes the
following special functions:
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Reading functions
65 03: Mass Memory Reading (ABB MGE 144). This function is described in details on topic Reading
Mass Memory Registers in ABB MGE 144 Meters.
GE SOE: Event Reading (GE PAC RX7 Systems). More information on topic Reading an Event Buffer in
GE PAC RX7 Controllers.
SP SOE: Event Reading (Schneider Electric SEPAM series relays). This function is described in details on
topic Reading Events in Schneider Electric SEPAM Series 20, 40, and 80 Relays.
GenSOE: SOE reading with a generic algorithm, implemented by a resident software in the slave device
(PLC). This function is discussed in details on topic Elipse's Generic SOE Reading Algorithm.
Writing functions
65 01: Restarts (performs a reset) a power meter (ABB MGE 144). This command is sent as a simple
Tag's writing command (Write). The Tag's Value field is ignored by this Driver, and can be kept in zero.
For more information, please check device's manual.
65 02: Zeroes the maximum and minimum memory (ABB MGE 144). This command is sent as a simple
Tag's writing command (Write). The Tag's Value field is ignored by the Driver, and can be kept in zero.
For more information, please check the device's manual.
Notice that special functions in this Driver, except for the 65 01 writing function, are directly or indirectly
related to the reading of mass memory registers of their respective devices. For more information, please
check topic Mass Memory Reading. For a description on how to configure operations and Tags using these
functions, please check topic Configuration.
Elipse E3 or Power
Go to the Organizer, select the Server Objects item and then Drivers and OPC. Right-click this item, select
the Insert I/O Driver in option, and then select a project.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Adding a Driver to an E3 or Elipse Power application
On the window that opens, select the Driver (this file must be extracted to a folder on the computer in use)
and click Open.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Operations tab
On the second step of topic Quick Configuration Guide, there is a procedure for a basic Driver
configuration, for the most common usages. On topic Properties this configuration is presented in details.
Driver's configuration window can also be opened, later, by clicking Driver settings, as shown on the next
figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Driver's configuration window in Organizer
After configuring Driver's properties, click OK so that E3 opens Tag Browser window, allowing to insert pre-
defined Tags in the application, based on the configured operations. The next figure shows Tag Browser's
window. To add Tags, drag them from the list on the right (Tags available from driver) to the list on the left
(Current project tags).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Notice that Tags are, by default, named with an "Op" prefix, followed by the number of the operation that it
represents and a configured data type for that operation between characters "<" and ">". This name can be
changed later, in application's Organizer.
NOTE: This Driver already contains seven pre-defined operations, whose most common operation is 01. If
users only want to read and write a Word-type using functions 03 and 16, the most common ones used,
and if the device complies with default Modbus protocol regarding byte order (please check topic
Operations Tab), then there is no need to change the configuration of operations, just define Tags with
N2/B2 = 1 (please check topic Configuring an I/O Tag). In this case, users can use the predefined Tag
Op1<word> as a template for all other application Tags.
Elipse SCADA
Using the Organizer, select the Drivers item and click New.
On the window that opens, select the Driver (this file must be extracted to a folder on the computer in use)
and click Open.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Select a Driver
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Driver in the Organizer
For this Driver to work correctly, users still need to configured it on its configuration window. To open this
window, showed on the next figure, click Extra.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Driver's configuration window
The second step of topic Quick Configuration Guide shows how to configure a Driver for the most common
usages, for devices complying to default Modbus protocol requirements. On topic Properties that
configuration is described in details, including advanced configuration resources.
Configuration
This section describes how to configure a Modbus Driver. The following topics are discussed:
Properties
Configuring Tags
Properties
Driver properties can be configured at design time or at run time. A runtime configuration is also called an
Offline Mode Configuration, and it is described on a specific topic.
At design time, this Driver can be configured using its configuration window, displayed on the next figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Driver's configuration window
To open Driver's configuration window in E3 or Elipse Power, select the Driver object in Organizer and click
Driver settings, as displayed on the next figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
In Elipse SCADA, on the other hand, Driver's configuration window can be opened by clicking Extra, in
application's Organizer.
This configuration window is divided into several tabs, some of them for IOKit configuration, and others are
Driver-specific. For Modbus Driver, the Operations, Modbus, and Gen SOE tabs are specific. Other tabs are
for IOKit configuration, and they are not described on this Manual. For more information about IOKit
configuration, please check IOKit User's Manual.
The following topics describe Driver's specific tabs, and also the runtime configuration, in Offline Mode,
using scripts.
Operations Tab
Modbus Tab
Operations Tab
This topic describes how to configure Operations tab on Driver's configuration window, where operations
used in I/O Tags are defined, as shown on the next figure.
Operations tab
Operations
For a proper usage of this Driver, users must define which reading and writing Modbus functions are used for
each I/O Tag. To do so, select the Operations tab on configuration window.
For this Driver, configurations that define how each I/O Tag performs data readings and writings on a device
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
are called Operations.
An operation is nothing more than a definition of a pair of protocol functions, one for writing and
another one for reading, and a specification of additional conversions on data format, which can be
linked to application Tags, that is, in Modbus Driver all N or B parameters of I/O Tags do not directly
reference protocol functions, but rather pre-configured operations that, by their turn, not only inform
functions (protocol's native or even special ones) to use on communication, as well as the way native
protocol data must be interpreted.
Configuration of I/O Tag parameters is described later on this Manual, on topic Configuring an I/O Tag. Next,
there is a description of the configuration of operations, which must be later linked to each I/O Tag.
NOTE: Operations work only as a template to configure I/O Tags, and it is possible, and usually necessary,
to set one single operation to several Tags, which have in common the same value for their N2/B2
parameters.
Functions
Modbus protocol defines reading and writing functions, which can access distinct addressing spaces in a
device, and with specific data types. Functions 3 and 16, for example, the most used ones in the protocol, are
responsible for reading and writing Holding Registers, which are simply 16-bit unsigned integer values
(Word).
Default functions of Modbus protocol provide data only in basic 16-bit Bit and Word formats. There are no
additional data formats in protocol specification.
A list of Modbus functions supported by this Driver, which can be set to the configured operations, can be
checked on topic Supported Functions.
In addition to protocol functions, this Driver also contains some Special Functions, which are not part of the
default protocol, in a proprietary format, commonly used for event reading (SOE).
Data formats
In addition to allow linking functions (from protocol or special ones) to specific Tags, operations also allow
defining an additional format to apply to data, providing support to additional data types, not specified by the
protocol, such as 32-bit (Float) and 64-bit (Double) floating point values. Supported types are described on
topic Supported Data Types.
It is important to notice that, when 32-bit and 64-bit types are defined in operations, users must define
protocol functions that work with 16-bit registers. This way, reading data with more than 16 bits results in
reading several 16-bit Modbus registers from a device, that is, to read a Tag linked to an operation that
defines a 32-bit Float data type, this Driver must read two consecutive 16-bit registers from a device,
concatenate them, and then perform a conversion to a Float format.
It is also possible to define eight-bit data types (Byte, Int8, or Char) in operations. Notice that, as protocol
functions do not allow reading and writing single bytes, for each two Block Elements of eight-bit types this
Driver is forced to access a distinct 16-bit register in a device. For that reason, this Driver does not allow
writing eight-bit types to Tags, single Block Elements, or Blocks with odd or unitary sizes. Writing eight-bit
types must be performed always in even-size Blocks.
User-defined types
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
In addition to pre-defined types (native or built-in types) described on topic Supported Data Types, this
Driver also allows user-defined types. These types must be declared on a specific window, by clicking User
Defined Types, at the bottom of this tab. Such types are structures created from pre-defined types. For more
information about user-defined types, please check topic User-Defined Types.
Byte order
In addition to protocol's reading and writing functions and the used data type, each operation also allows
setting additional manipulations to bytes, related to a byte order, that is, the order of bytes inside every
value. These are called swap options (Swap Bytes, Swap Words, and Swap DWords). Such options only
need to be enabled for devices that do not respect protocol's default byte order.
Modbus protocol defines that its 16-bit values always use a byte order known as big endian, also known as
Motorola, because it is used by this manufacturer. The big endian standard always defines a byte order so
that the most significant byte of each value comes first. Thus, as an example, when reading the hexadecimal
value 1234h, the device first sends the most significant byte 12h, and then the least significant one, 34h.
For devices that do not implement protocol's default byte order, and that use the one known as little endian
or Intel, data is sent with the least significant bytes first. Users must then enable swap options to reverse
that byte order.
There are also devices that use different byte orders for 32- and 16-bit types. For devices that, for example,
use Modbus' default byte order (big endian) for 16-bit types, but provide 32-bit data with the least significant
Word first (little endian), users must only enable the Swap Words option, leaving the Swap Bytes option
deselected. There are basically three situations:
For devices that provide data using Modbus' default byte order (Motorola or big endian), with the most
significant bytes first, users must left all swap options disabled. This is the most common situation.
For devices using another byte order standard, with the least significant bytes first (little endian), users
must enable all swap options referring to the type used, that is, for 16-bit types, enable the Swap Bytes
option. For 32-bit types, enable the Swap Bytes and Swap Words options. For 64-bit types, all three
swap options must be enabled.
In the least common case, devices that use different byte orders for different data sizes, providing the
most significant byte of each Word first, but the least significant Word of each DWord first, then
users must evaluate in which case each swap option must be enabled, to convert a value returned by a
device to protocol's default big endian format.
NOTE: All mentioned swap options have no effect for Bit data types or types with an eight-bit size (Byte,
Char, and Int8). Swap occurs inside every data type, that is, the Swap Words options has no effect for 16-
bit data types, as well as the Swap DWords option has no effect for 32-bit data types. BCD types do not
allow swapping either.
To check if a device uses some unusual byte order format, check its manufacturer's documentation. In case
this information is not found on that documentation, please contact manufacturer's technical support.
Topic Frequently Asked Questions on this Manual contains tips on configuring byte order for some devices,
which are known to use swap options.
Bit mask
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
The Use Bit Mask option is an advanced resource, used in specific and unusual cases where users want to
read only a bit from the value returned by a device, but it is not possible to use application's bit mapping.
For most users, application's bit mapping fields are the best alternative to access bit masks, and there is no
need to use this Driver's resource.
This resource was initially created to allow reading bits from Holding Registers by specialized E3 libraries, in
situations that prevented the usage of application's bit mapping.
In this case, this Driver reads a value from a device normally and then masks it, to return to Tag's Value field
only the specified bit (0 or 1). Definition of a bit number to return is performed in I/O Tag's N3/B3 parameter.
The Use Bit Mask option can only be used with integer types with 16 bits or more (Int16, Int32, Word, or
DWord). In addition, operations that enable this option can only be used for reading. Modbus' function for
writing operations (Write) that use this mask option can be defined as None.
By default, when a new Driver is added to an application, this Driver is already created with seven default
operations, described on the next table.
Default operations
OPERATION READING FUNCTION WRITING FUNCTION DATA TYPE PURPOSE
1 3 - Read Holding 16 - Write Multiple Word Reads and writes
Registers Registers unsigned 16-bit
integers
2 3 - Read Holding 16 - Write Multiple DWord Reads and writes
Registers Registers unsigned 32-bit
integers
3 3 - Read Holding 16 - Write Multiple Int16 Reads and writes
Registers Registers signed 16-bit
integers
4 3 - Read Holding 16 - Write Multiple Int32 Reads and writes
Registers Registers signed 32-bit
integers
5 3 - Read Holding 16 - Write Multiple Float Reads an writes 32-
Registers Registers bit floating point
values
6 3 - Read Holding 15 - Write Multiple Bit Reads and writes
Registers Coils bits
7 2 - Read Discrete None Bit Reads bits from a
Inputs Discrete Input data
block.
These operations are the most commonly used, and operation 1 is the most common one. For most
devices, just select all operations needed among the ones provided by default, so there is no need to create
new operations or change the configuration of default operations.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Add an operation
As shown on the previous figure, after clicking Add this new operation must be configured. A number for this
operation must be selected (this number is used in I/O Tag's N2/B2 parameter), which function to use for
reading and which function to use for writing, and also inform a data type that the Driver reads or writes.
Notice that, when clicking Add, this Driver already suggests a value that is not in use for this new operation.
For more information about supported data types, please check topic Supported Data Types. All other fields
can be configured as needed. The next table contains a description of these fields.
Field options
OPTION DESCRIPTION
Size A size in bytes of each element of the selected data
type must be informed. This field is automatically
filled for fixed-size data types, such as Byte, Word,
and Int16 types, and it must be filled for String and
BCD data types. For Strings, this size defines exactly
the number of bytes sent or received for each String
value, that is, for each Tag or Block Element. If the
String read or written has a shorter size, the
remaining bytes are filled with zeroes to complete
the configured size. The String type in this Driver has
no defined maximum limit size, and this limit is the
maximum allowed by the protocol for frame's data
area for a certain function.
Swap Bytes Indicates that this Driver must reverse the order of
bytes one by one to retrieve a value.
Swap Words Indicates that this Driver must reverse the order of
bytes two by two (in Words) to retrieve a value.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
OPTION DESCRIPTION
Swap DWords Indicates that this Driver must reverse the order of
bytes four by four (in DWords) to retrieve a value.
Use Bit Mask Enables a bit masking of registers, using the N3/B3
parameter. This option only affects readings and can
only be used with signed or unsigned integer types,
with at least 16 bits as its size (Int16, Int32, Word,
or DWord). Operations with this option enabled
cannot be used for writing. For most users, it is
recommended to use application's bit mapping,
and leave this option unselected (please check the
specific section).
Protocol functions that can be configured in operations' Read and Write fields are described on topic
Supported Functions. The next table describes each one of the available options.
Available options on the Operations tab
OPTION DESCRIPTION
Import Configuration This option allows importing configurations for
operations from versions prior to Modbus Master/
Slave Driver version 2.0, which stored these
configurations in a modbus.ini file. This Driver does
not use INI files anymore to store such
configurations, which are now stored on the
application file. For more information, please check
topic Import and Export Operations.
Export Configuration This option executes the opposite operation of the
previous option, generating an INI file containing all
operation configurations, in the current format or in
the same format of this Driver's previous versions.
So, it is possible to store operation configurations of
a certain device in a file, and these configurations
can be used by other applications. For more
information, please check topic Import and Export
Operations.
Add Adds a new operation to the list.
Edit Updates the selected operation on the list
(equivalent to double-clicking an item).
Remove Removes the selected operation from the list.
NOTE: The Swap Bytes, Swap Words, and Swap DWords options, as already explained, were added to
provide compatibility with devices that do not follow Modbus protocol standard on data encoding (byte
order). If these options remain disabled, Driver's behavior corresponds to protocol's default, and this is
the recommended option for most devices.
The next table lists Driver's native data types, which can be defined when configuring operations. As
explained on topic Operations Tab, Modbus protocol itself only supports Bit and Word types (16-bit). All
other types are implemented by this Driver, and are converted to Word at a protocol level, for reading or
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
writing in the equipment or slave device.
Also notice that this Driver supports User-Defined Types, defined as structures with elements composed by
native types listed on the next table.
On the next table, types are presented by the name displayed on the combo box Data, on Driver's
configuration window (Operations Tab). In some cases, frequent alternative names are displayed between
parentheses.
Available options for data types
TYPE RANGE DESCRIPTION
Char -128 to 127 Word with eight bits, character.
Writing must always occur in
blocks with even size (Words).
Byte 0 to 255 Unsigned word with eight bits. The
writing must always occur in blocks
with even size (Words).
Int8 -128 to 127 Signed word with eight bits.
Writing must always occur in
blocks with even size (Words).
Int16 -32768 to 32767 Signed 16-bit integer.
Int32 -2147483648 to 2147483647 Signed 32-bit integer.
Word (or UInt) 0 to 65535 Unsigned 16-bit integer.
DWord (or ULong) 0 to 4294967295 Unsigned 32-bit integer (Double
Word).
Float -3.4E38 to 3.4E38 32-bit floating point (IEEE 754)
(four bytes: EXP F2 F1 0).
Float_GE -1.427E+45 to 1.427E+45 32-bit floating point used by GE,
not compatible with IEEE 754. It is
used in GE GEDE UPS devices, with
an eight bit exponent 2[-128 ... +127]
and 24 bit mantissa [-223 ...+(223-
1)]. (four bytes: EXP F2 F1 F0). For
more information, please check
device's documentation.
Double (or Real) -1.7E308 to 1.7E308 64-bit floating point (IEEE 754).
String Does not apply Text in ANSI format, with a
determined number of eight bit
ASCII characters (Chars).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
TYPE RANGE DESCRIPTION
BCD Please check description BCD (Binary-Coded Decimal)
number value. When using this
type, an application must provide a
positive and integer decimal value,
sent in BCD format, respecting the
specified size. The Size field, for
BCD types, refers to the number of
bytes sent to represent a value. As
in BCD encoding each figure is
converted to a nibble, then the
allowed values must have a
maximum number of figures equal
to double the size of the value
specified in the Size field, that is, if
a value of two is selected for the
Size field, the maximum value that
can be sent is 9999. Likewise, if
Size is equal to four, the maximum
value is then 99999999. Allowed
values for the Size field for BCD
types are two (Word) and four
(Double Word). For more
information about the BCD
encoding, please check topic BCD
Encoding.
GE_events Please check description Data type used when reading an
event buffer (SOE) from a GE PAC
RX7 PLC. Its definition is only
allowed for operations that use the
special reading function GE SOE.
These events are returned as
blocks with two Elements, with
timestamps defined by the
controller. For more information,
please check topic Reading an
Event Buffer in GE PAC RX7
Controllers.
Bit 0 (zero) or 1 (one) This type is automatically selected
when a bit-access function is
selected. Bit-access functions are
01, 02, 05, and 15. The Size field is
not used for Bit types. When using
this type, each Tag or Block Tag
Element represents a bit.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
TYPE RANGE DESCRIPTION
SP_events Please check description Data type used when reading
events (SOE) in Schneider Electric
relays from SEPAM 20, 40, and 80
series. Its definition is only allowed
for operations that use the special
reading function SP SOE. These
events are returned as a three-
Element Block, with a device-
provided timestamp. For more
information, please check topic
Reading Events in Schneider
Electric Relays from SEPAM 20,
40, and 80 Series.
GenTime 1/1/1970 00:00 to 31/12/2035 Date and time type composed by a
23:59:59.999 (please check the structure of eight bytes, originally
next note) created for use when reading
events that use Elipse's Generic
SOE Reading Algorithm. This type
can be used with other Modbus
protocol functions, in addition to
GenSOE. This format is read
internally as a structure of Words,
and the only valid swap function
for this type is Swap Bytes.
Representation of this type in PLC
memory is described on topic
GenTime Type. For more
information about this type, please
check topic Elipse's Generic SOE
Reading Algorithm.
Sp_time 1/1/1970 00:00 to 31/12/2035 Date and time type composed by a
23:59:59.999 (please check the structure of eight bytes, used by
next note) Schneider Electric relays from
SEPAM 20, 40, and 80 series,
usually to represent a timestamp.
For more information, please check
device's documentation.
UTC64d 1/1/1970 00:00 to 31/12/2035 Date and time type represented in
23:59:59.999 (please check the Double format (64-bit IEEE 754),
next note) with seconds since 1/1/1970
00:00.
UTC32 1/1/1970 00:00 to 31/12/2035 Date and time type as an unsigned
23:59:59.999 (please check the 32-bit integer (DWord or UInt),
next note) with seconds since 1/1/1970
00:00. This format does not
represent milliseconds, they are
always considered as 0 (zero).
NOTE: Although representation of date and time types on the previous table can represent dates up to
12/31/2035, this limit is displayed on the table because Elipse applications do not currently support ranges
of values that exceed this limit for timestamps.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
GenTime Type
The GenTime type is a date and time type originally defined and added to this Driver for use with Elipse's
Generic SOE Reading Algorithm. It is, however, a generic type that can be easily used with almost any PLC.
In an application, that is, in values of Tags and Block Tag Elements, as well as in Tag's Timestamp field, this
type, as well as all other Driver's date and time types, is represented by a native application's date and time
type. For more information about other date and time types supported by this Driver, please check topic
Supported Data Types. For more information about application's date and time types, please check their
respective user's manual (there are a few differences between VBScript used in Elipse SCADA and the one
used in E3 and Elipse Power).
In the PLC or slave device, this type is represented by a structure composed by four 16-bit registers (eight
bytes), as displayed on the next table.
Structure of registers
OFFSET CONTENT BIT MAPPING (16 BITS) RANGE (DECIMAL)
0 Year AAAAAAAA AAAAAAAA Between 0 and 65535
DDDDDDDD
1 Day / Month Between 0 and 65535
MMMMMMMM
HHHHHHHH
2 Hour / Minute Between 0 and 65535
MMMMMMMM
SSSSSSMM
3 Second / Millisecond Between 0 and 65535
MMMMMMMM
That is, the base address (offset 0), to set in Tag's N4/B4 parameter that access data contains the year. The
next register (offset 1) contains the day as the most significant byte and the month as the least significant
byte. The offset 2 contains the hour represented in the most significant byte and the minutes in the least
significant byte. The fourth register contains the four most significant bits of the Word representing seconds,
and the remaining bits (the two least significant of the most significant and the least significant integer byte)
representing milliseconds.
Notice that each Tag that references this type forces a Driver to read a block of four Modbus registers in the
device to represent the value of each Tag or Block Element to return a valid value.
Advantages of this type are its simplicity (it is easily generated in a PLC ladder), its milliseconds precision,
and its relative compression, as it does not need native support by the PLC or slave device.
NOTE: Although GenTime type itself has a size of eight bytes (four Words), the only swap option that has
an effect on it is Swap Bytes. This happens because, as already explained on this topic, this type is
structured in the PLC memory as having four Words, and it is not a native device type, rather a Driver type.
More information about swap options (byte order) can be found on topic Operations Tab.
User-Defined Types
User-defined types, or structures, after configured on User Defined Types configuration window, can be used
by Driver operations the same way as pre-defined types.
These types are in fact structures whose elements may have different native types, that is, a user-defined
type is solely a structure defined based on Driver's pre-defined types (native or built-in types), allowing users
to configure Block Tags where each Element may have a different native type.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Users can use almost all pre-defined Driver types in their structures. The only types not allowed are Bit,
eight-bit types, variable-size types, such as String and BCD, and event types linked to specific SOE functions.
Once a type is defined, users can link it to any operation, as long as it uses Modbus functions supporting
Words, that is, it is not allowed to link a user-defined type to an operation that defines as its reading
function (Read) the 01 function, for example, because that function only reads bits.
In addition to the definition of structure elements, whose values are returned in Block Elements, users can
also define the type of a Tag's timestamp, as well as the default address for that structure, address that are
used for the B4 parameter of Tags available using E3's Tag Browser.
Applications
User-defined types were originally implemented for use with Elipse's Generic SOE Reading Algorithm (Gen
SOE), as this algorithm performs a reading on data structure tables.
In addition to using with SOE's generic algorithm, this resource can also be used to group data from different
types on a single Block Tag, optimizing communication in applications without Superblocks, such as Elipse
SCADA, or if the device in use for some reason does not allow using Superblocks (please check topic
Superblock Reading).
Configuration of user-defined types is performed on a specific window, by clicking User Defined Types on
Operations Tab of Driver's configuration window, as shown on the next figure.
Operations tab
This window to configure user-defined types allows editing files with structure configurations. When opening
this window for the first time, it displays the default configuration file (with comments), which defines three
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
example types that appear commented with multiple line comments ("/*" and "*/"), as explained later.
The next figure displays the configuration window for user-defined types, with a small file defining these
three example types.
Notice that line comments always start with "//", identifying what is on the right, on the same line, as a
comment, following the pattern for line comments of the C/C++ programming language.
Comments with multiple lines are also supported, still following the same C/C++ syntax, starting by "/*" and
finishing by "*/". Notice that the example file that accompanies this Driver already applies that comment
format to its example types, leaving them commented by default.
As the text of the configuration file changes, the status bar displays the result of this file's syntactical
analysis, in real-time. This status bar displays a "Status: OK!" message if no errors are detected in this file.
The line and column of cursor position in the edit box are always displayed on the right side of the status bar.
Errors displayed on the status bar always reference the line and column number where it was detected.
This check can be also fully performed by clicking Verify and, in case of any error, cursor is then
automatically placed on the error line.
The definition of each type has the following syntax (elements inside brackets are optional):
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
struct <Type Name>
{
[timestamp = <date and time type>;]
[DefaultAddress = <address>;]
<type> [name of element 1];
<type> [name of element 2];
<type> [name of element 3];
[...]
<type> [name of element n];
}
Where:
struct: Keyword, lower case, that starts the definition of a user-defined type.
<Type Name>: Name by which this new type is identified by the Driver. This is the name displayed on
the combo box Data, when configuring operations. Its maximum size is six characters.
timestamp: Optional field that indicates that this structure contains a device-defined timestamp, which
must be returned in Tag's Timestamp field. Each structure can have only one timestamp. The order in
which it appears on this structure affects the position in which this field is read in the frame returned by
a device (notice that in Tags this value is returned only in the Timestamp field). Any date and time
types supported by this Driver can be defined. In the current version, this Driver supports date and time
types GenTime, Sp_time, UTC64d, and UTC32. For more information about data types, please check
topic Supported Data Types.
DefaultAddress: Optional field that specifies a default address value, used to fill the B4 parameter of
Tags in Tag Browser that reference operations that contain this structure. Address values can be
provided in decimal or hexadecimal format. To use the later, users must precede the number with prefix
"0x" (for example, using "0x10" to encode decimal value 16 to hexadecimal).
<date and time type>: Date and time types pre-defined by this Driver, which can be used as a
timestamp by a slave device. In the current version of this Driver, native types GenTime, Sp_time,
UTC32, and UTC64d are accepted.
<type>: Element type. It must be defined as one of Driver's pre-defined types, and written as it appears
on the combo box Data, on the configuration window for operation parameters, respecting lower and
upper case. Bit types, eight-bit types, and variable-size types, such as BCD and String, are not allowed.
[element name]: Optional parameter that defines a name for each Block Element. If defined,
determines a name for Block Elements in Tags displayed in E3's Tag Browser. If not defined in
structure's declaration, this Driver then sets default names to Elements in Tag Browser, with the
keyword "Element" followed by the index of that Element in the Block ("Element1", "Element2", etc.).
Import File and Export File options allow importing and exporting a configuration file with user-defined types
to text files on disk. These options can be used to create backup copies of a file, or to share it among several
Drivers. This file is always saved and read using Windows default ANSI format (Windows-1252 Charset).
Future versions of this Driver may include support for other formats.
In addition to copying to disk, users can also use shortcut keys CTRL + A (Select All), CTRL + C (Copy), and
CTRL + V (Paste) to copy and paste this file's content to another text editor.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
The Load Default Configuration option loads the default configuration file again in the editor, the same file
loaded when the configuration window is opened for the first time.
NOTE: When clicking Cancel, all changes performed on the file are discarded by this Driver. By clicking OK,
this file is then stored in the application. This operation performs a full check on this file and if any error is
identified, this error is then displayed and this window is not closed. If users want to save these changes
with pending errors, export this file or copy and paste it in another text editor.
After defining new types in the configuration file of the User-Defined Types window, these types are
available for use in Driver operations. Remember that only operations that use Modbus functions for access
to 16-bit registers, such as functions 03, 04, 06, and 16, allow user-defined types.
The next figure displays the configuration of a new operation that uses a user-defined type (structure) called
TYPE3, showed on a previous example, after clicking Add.
NOTE: Swap options for user-defined types are only effective on the elements of the defined structure, not
on the entire structure. That is, if the Swap Words option is enabled, all elements with more than 16 bits
have their Words swapped. 16-bit elements, however, are not changed.
After defining a new operation, by using the new type TYPE3, define a Block Tag with that same type and size
equal to the number of elements of that structure, as shown on the next figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Declaring Tags using structures in E3 or Elipse Power
If a name was defined for each element of this structure, then it is possible to use E3's Tag Browser to add a
Block Tag referring the desired type in an application, without typing it again. The next figure shows how to
perform this procedure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
As this figure suggests, click to open Tag Browser and drag the desired type from the list of Driver's Tags
to the list of current project's Tags.
Event-Reported Reading
User-defined types or structures are generally used to define events in PLC's memory, and can be used with
Elipse's Generic SOE Reading Algorithm. However, if there is a need to read organized events in PLC's
memory, such as a sequence of structures, in an operation that only uses protocol's public reading
function, that is, without using special functions with the SOE algorithm, such procedure can be performed in
two ways:
Block Reading: Create a Block with a number of Elements that is a multiple of the number of elements
of user's data structure. For example, a user-defined type or structure with two elements that represent
events collected on an arrangement in PLC's memory. If users want to read a block with five events,
they must define a Block Tag with 10 Elements. Thus, a single reading from this Tag retrieves all events
at once.
Event-Reported Reading: Uses a sequence of Tag's OnRead events to read a data block. With it,
considering the example on the previous item, instead of creating a Tag with 10 Elements, users only
need to create a single Block Tag with two Elements, configuring its B3 parameter as "5". This way,
when performing a Tag reading, E3 calls Tag's OnRead event five times, and at each call the Elements
and properties of this Block Tag contain data related to a specific event. The most common usage for
Tags reported by events is storing events read directly from a historical database. This is easily
performed using Historic's WriteRecord method previously linked to this Tag, in the OnRead event of
the Tag reported to events. For more information, please check topic about Tags Reported by Events on
E3 User's Manual.
In other words, every I/O Tag that uses structures and that uses a protocol's public reading function (this
resource does not work for special SOE functions), becomes a Tag Reported by Events if its B3 parameter is
configured with a non-null value.
In case of special SOE functions, such as the GenSOE function, the event-reported return is defined by the
function's proprietary algorithm itself.
For more information about I/O Tag configurations, please check topic Configuring an I/O Tag.
IMPORTANT: When reading mass memory events in Tags reported by events in E3, disable Tag's dead band
(the EnableDeadBand property configured as False) and also the linked Historic object (the DeadBand
property equal to zero), to avoid loosing events with close values. It is also important to disable the historic
by scan (in E3, the ScanTime property equal to zero). This ensures that new events are only stored using
the WriteRecord method, executed in Tag's OnRead event, thus avoiding duplicated events.
Importing and exporting operations can be performed on Driver's Operations tab, by clicking Import
Configuration or Export Configuration, as shown on the next figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Options for importing and exporting configurations
These options allow importing and exporting operation configurations displayed on Modbus Operations
frame to INI files.
On this Driver's versions previous to 2.00, operation configurations were performed on the modbus.ini file,
which was loaded during Driver's initialization. modbus.ini files of these old versions still can be loaded on
the current Driver version, by using the import option.
NOTE: Driver operations used to be called Driver Functions in initial versions. This name was then changed
to Driver Operations due to some cases when users confused it with Protocol Functions.
Import
Importing configuration files is very simple. Click Import Configuration and select an INI file. The Driver
must load operation configurations, which immediately appear on Modbus Operations frame. This Driver
allows importing files generated on previous versions.
Export
Exporting files with operation configurations can be performed to share the same operation configurations
among different Driver objects, as well as performing backup copies of operation configurations of a certain
device.
Another possible use is exporting configurations to a modbus.ini file compatible with previous Driver
versions, allowing to load these configurations on previous versions. This is not advisable but, if inevitable in
case of legacy applications, usersmust consider the following considerations.
When clicking Export Configuration, a window with two options is then opened, as in the following figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Export options
On this window, users must select between exporting based on the new format (New format with type
mnemonics), with displayed types defined as Strings (mnemonics), or based on the old format (Old format
with types' numeric codes), in which types were identified by a numerical value, corresponding to the
position where they appeared on the combo box Data on Operations tab.
This new format is more legible, making it easy to debug, and is used on next versions of this Driver, and it is
the most recommended option.
The old format, on the other hand, must be selected only if it is indispensable to export for versions previous
to version 2.08 of this Driver.
Notice that, to export modbus.ini files successfully to load them to versions previous to 2.00, operations
cannot define any new data type not implemented on the destination version, nor define operations that use
the Use bit mask parameter, or the import operation may fail.
Modbus Tab
The Modbus tab allows configuring Driver and protocol parameters, as shown on the next figure.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Modbus tab
Configuration options available on this tab are described on the next table.
Available options on Modbus tab
OPTION DESCRIPTION
Modbus Mode On this combo box users can select a protocol mode to
use. Protocol modes are variations defined by the
standard for better adapting the protocol to different
physical layers (Serial, Ethernet TCP/IP, RAS, etc.).
There are three available options:
RTU mode: Default mode for use in serial
communications. Includes a 16-bit CRC.
ASCII mode: Also used in serial communications, it is
used in simpler devices, which do not support RTU
mode requirements. It uses ASCII characters for
transmission, where each byte contains two ASCII
characters (one per nibble), thus it is less efficient
than RTU mode, and rarely found on the market. Uses
LRC (Longitudinal Redundancy Checking) for error
checking.
ModbusTCP mode: Used for TCP/IP communication.
Includes a field for transaction check, and does not
have an error check system. The transaction field
allows discarding delayed responses, thus avoiding
that a Driver assumes as a valid response for the
current command the response frames from previous
commands. This situation may occur if previous
modes are encapsulated in TCP/IP.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
OPTION DESCRIPTION
Customize Max. PDU Size If enabled, this option allows defining a maximum
custom size for PDU (Protocol Data Unit). A PDU is a
part of the protocol that does not vary between modes
(ModbusTCP, ASCII, and RTU) and that contains a data
area. The number of data bytes supported in each
communication is given by this value minus the header
bytes, which depend on the Modbus function used. If
disabled, the maximum considered size is the default
value defined by the Modbus protocol version 1.1b,
with 253 bytes, and this is the recommended option for
most devices.
Enable CMS Addressing This option must be only used in devices that support
the TeleBUS protocol. If enabled, a Driver accepts a 16-
bit Word as its slave address, that is, it is possible to
define values above 255 and below 65535 as its slave
address. In this case, a slave address is then defined in
the protocol by three bytes. In addition, the Default
Slave Address option stops working.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
OPTION DESCRIPTION
Data Address Model Offset This option enables or disables the default protocol's
data offset, by one unit. Available options are:
Data is addressed from 1 (default): Provided
address in the N4/B4 parameter is decremented by 1
(one) before sending it to a device.
Data is addressed from 0: User-provided address is
used in protocol requests, without changes.
As a general rule, select the first option if device's
register mapping starts at 1 (one), and the second
option if it starts at 0 (zero). Also check if manufacturer
uses additional offsets from old Modbus Convention.
NOTE: In protocol's default data model, four data
blocks (or addressing spaces) are defined: Discrete
Inputs, Coils, Input Registers, and Holding Registers.
In each one of these blocks, data elements are
addressed starting at 1 (one). On the other hand,
communication frame's specification defines a PDU
with addresses that can vary between 0 (zero) and
65535. Relationship between an address provided by
the PDU and a data element address, therefore,
contains an offset of 1 (one), that is, if a request's PDU
contains the address 0 (zero), the accessed data
element is the address 1 (one). With this option, users
can select whether they want a Driver to set this value
automatically, to allow using data element's address in
Tags (default option), or want that a value sent in the
PDU is the same value provided when configuring Tags
(N4/B4 parameter). There are devices that follow
Modbus standard in their address mappings (starting at
one), and others that map their data without a default
offset, directly using an address value present in the
communication frame (starting at zero). In addition to
this unitary offset, there are also devices that use the
old offset standard used by Modicon, the company that
created this protocol, a standard known as the Modbus
Convention, detailed on topic Addressing Tips on this
Manual. Please check device's documentation for its
register map and check the standard in use. In case of
any doubt, please contact manufacturer's technical
support.
NOTE: The Data Address Model Offset option was named as Use Older Address on versions prior to 2.03,
where Data is addressed from 1 is equivalent to the old Use Older Address option enabled, and the Data is
addressed from 0 option is equivalent to the Use Older Address option disabled.
TIP: Avoid using protocol's RTU mode encapsulated in Ethernet TCP/IP layer. If there is a need to
encapsulate serial communication for devices using Modbus RTU in TCP/IP, there are gateways available
on the market that not only encapsulate serial communication in Ethernet TCP/IP, but also convert Modbus
RTU into Modbus TCP. As a last option, if using Modbus RTU in an Ethernet TCP/IP layer is inevitable,
remember to enable the Reconnect after Timeout option, described on the next table.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Other available options on Modbus tab
OPTION DESCRIPTION
Default Slave Address This resource allows configuring a default address
for slaves, so that it is not necessary to configure
them in each Tag. To use this resource, configure
the N1/B1 parameter to 1000, that is, all Tags with
B1/N1 equal to 1000 have this value replaced by the
value configured in the Default Slave Address
option. It is also possible to force using a default
address in all Tags, regardless of the value
configured in N1/B1, by selecting the Use Default
Address option.
Wait Silence on error If this option is enabled, after every communication
error a Driver remains in loop, receiving data until a
time-out occurs. This clears the reception channel,
preventing problems in future communications due to
the reception of delayed bytes, which are still in
transit at the time of the error, and which may be
confused with a response to a new command.
Reconnect after Timeout (Ethernet only) With this option enabled, after any timeout error in
device's frame reception, a Driver performs a
disconnection and a reconnection to the physical
layer, cleaning the connection from possible delayed
frames still in transit and that may affect future
requests. This option must be always enabled if it is
inevitable to use Modbus RTU in an Ethernet TCP/IP
layer in legacy systems, as the RTU mode does not
have a transaction control, and it is not always
possible to distinguish a correct response frame from
a delayed one, resulting from a previous reading,
possibly from another address, which failed by time-
out. For new projects, it is strongly recommended
NOT using Modbus RTU or Modbus ASC in an
Ethernet TCP/IP layer. Please notice that users must
keep the Retry failed connection every option
enabled on IOKit's Setup tab, so that this Driver
reconnects after a time-out. Otherwise, this time-out
only generates a disconnection and an application is
responsible for managing this new connection.
NOTE: The old Swap Address Delay option was removed from the configuration window in version 2.08.
This Driver still supports it in pre-existing applications, and allows enabling it by script (please check topic
Offline Mode Configuration). For new applications, it is recommended to use the Inter-frame Delay
option on IOKit's Serial tab, which replaces this old option with benefits.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Gen SOE tab
Enable control and data registers grouping (default True): Enables grouping control and data
registers, to perform the minimum possible number of readings. If this option is enabled, this Driver
starts reading tables already trying to read the maximum number of protocol-allowed registers, be them
control or data registers, and possibly reading the entire table in a single reading. Such procedure
usually optimizes Tag scanning the same way as Superblocks, because the time spent for reading large
blocks is usually less than the time needed to perform several readings of the same amount of data,
although this may depend on the PLC. ATOS PLCs do not allow grouped reading of control registers and
data structures, thus requiring this option to be disabled.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
PARAMETER TYPE
ModiconModbus.UseSwapAddressDelay Boolean (0 or 1)
ModiconModbus.SwapAddressDelay Integer, with a delay interval in milliseconds. NOTE:
Obsolete option kept for compatibility reasons. For new
applications, please use the Inter-frame delay option
on IOKit's Serial tab.
ModiconModbus.WaitSilenceOnError Boolean (0 or 1)
ModiconModbus.EnableCMSAddressing Boolean (0 or 1)
ModiconModbus.EnCustomizeMaxPDUSize Boolean (0 or 1)
ModiconModbus.MaxPDUSize Integer
ModiconModbus.ConfigFile String containing a configuration file with Driver
operations. This file can be exported and imported on
Operations tab on Driver's configuration window
ModiconModbus.EnableReconnectAfterTimeout Boolean (0 or 1):
0: Timeout does not imply a disconnection from
physical layer
1: In case of a timeout, when in an Ethernet physical
layer, this Driver performs a physical layer
disconnection and a reconnection
ModiconModbus.UserTypesConfigFile Configuration String for user-defined types
(structures). This is the same configuration file that can
be accessed on Driver's configuration window (User-
Defined Types).
ModiconModbus.EnableGenSOERegGrouping Boolean (0 or 1):
0: Event-reading algorithm first reads control
registers, and then event data
1: Generic SOE reading is grouped to its maximum,
not only reading control registers first, but also the
maximum possible events
For more information about Offline configurations at run time, please check IOKit User's Manual.
Configuring Tags
This topic describes configurations for several types of Tags supported by this Driver. Tags are divided into
two categories, described on the following topics:
I/O Tags allow reading and writing Modbus registers on slave devices, by using Modbus protocol functions,
or even special functions. This Driver does not differentiate between Block and simple Tags, in case of I/O
Tags, that is, I/O Tags work the same way as Block Tags with a single Element.
Data is read from a device using protocol-supported formats, that is, 16-bit integer value registers or sets of
bits, depending on the protocol function used. For more information about protocol functions, please check
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
specifications at protocol's official website.
Operations
As already explained on topic Operations tab, this Driver supports other data types in addition to protocol's
native types. For this reason, the concept of Operation was created on this Driver.
On operations that use Modbus functions that read and write bits, such as protocol functions 1, 5, and 15,
this Driver always map binary values for each bit to Block Elements, where each Element represents the value
of a specific bit.
Operations with eight-bit data types, such as the Byte type, always imply, obviously, on reading at least two
bytes (a 16-bit Modbus register). To prevent surprises for users, this Driver requires that eight-bit data
writings be performed in pairs, that is, writing Blocks with an even number of Elements. Operations must be
referenced using I/O Tag's N2/B2 parameters, as described further.
The following configuration applies to I/O Tag's N parameters, as well as to I/O Block Tag's B parameters.
N1/B1: Address of a slave device (PLC) on the network (Slave Id). This address is used on serial
networks and can vary from 1 to 247. This parameter can be also configured with value 0 (zero). Thus,
this Tag works in Broadcast mode, sending a message to all slave devices (PLC) on the network. In
Ethernet (Modbus TCP mode), the address generally used is the IP address, but the Slave Id can still be
used when the IP address references a gateway connected to a device network (usually an RS485
network, with Modbus RTU, using a gateway capable of performing a conversion from Modbus TCP to
Modbus RTU).
NOTE: In Broadcast mode with N1 equal to zero, it is not possible to perform readings, only writings. In this
mode all devices on the network are addressed, receiving the written value and not returning any response,
to avoid network conflicts.
N2/B2: Operation code. References an operation added on Driver's configuration window (please check
topic Operations Tab).
N3/B3: Additional parameter. This parameter is not generally used and can be kept in 0 (zero). It is only
used in four situations:
Modbus functions 20 and 21: For operations that use these functions for file access (functions 20
and 21), the N3/B3 parameters specify the file to access.
Use Bit Mask: For Tags referencing operations with the Use Bit Mask option enabled, the N3/B3
parameter specifies the number of the bit to access (please check topic Operations Tab).
User-Defined Types: For operations that use structures, if the B3 parameter is greater than 0 (zero),
it defines the return of an event-reported block array, by using a sequence of Tag's OnRead events
(please check topic User-Defined Types).
Gen SOE Special Function: For operations that use the Gen SOE special reading function, the N3/
B3 parameter indicates the size of the linked table in the PLC or slave device memory, as the
maximum number of supported events (please check topic Elipse's Generic SOE Reading
Algorithm).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
N4/B4: Register, variable, or bit address on the slave device (PLC) to read or write, according to
device's register map (please check device's documentation). It is important to correctly configure the
Data Address Model Offset option (please check topic Modbus Tab) and check if manufacturer's
documentation does not use offsets used by old Modbus devices, known as Modbus Convention.
Size/Index (Block Tags only): Each Block Element represents a data value of a type defined in the
operation used (the N2/B2 parameter). Notice that this protocol only supports Bit or Word types. Thus,
if this operation selects the DWord type (32-bit) for each Block Element, this Driver must read two
consecutive registers from a device.
Special Tags
In addition to I/O Tags (Tags referencing operations), there are also special Tags to execute specific Driver
functions. These Tags are described on topic Configuring Special Tags.
On topic Configuring an I/O Tag, Tag addressing ( the N4/B4 parameter) is described based on the most
recent Modbus protocol specification (version 1.1b). However, there are devices that still use the old offset
addressing convention known as Modbus Convention, which adds offsets to an address. This topic explains
how to address Tags if device's register mapping still follows that old convention, originated from initial
Modicon specification, not included on the current specification.
As explained on topic Configuring an I/O Tag, the register or bit address to access must be provided in I/O
Tag's N4/B4 parameter. This address is sent together with protocol's request frame, with or without the
default offset of 1 (one), required by the Modbus Data Model specified by the protocol, according to the
configuration in the Data Model Offset field, on Modbus tab of Driver's configuration window.
In addition to this default offset of 1 (one), defined on the current Modbus standard (version 1.1b), some
manufacturers still use the old Modicon standard, known as Modbus Convention, with an offset that can be
added to the address, and whose value depends on the Modbus function used, or more specifically, depends
on which address space this function accessed originally. Such additional offset must be ignored when
defining Tag addresses on this Driver (N4/B4 parameters). Further on this Manual there are more examples.
The next table lists all offsets used by the Modbus Convention standard.
Modbus Convention standard offsets
DATA TYPE (STANDARD DATA MODBUS FUNCTIONS OFFSET (MODBUS CONVENTION)
MODEL)
Coils 01: Read Coils (0x) 000000
05: Write Single Coil (0x)
15: Write Multiple Coils (0x)
Discrete Inputs 02: Read Discrete Inputs (1x) 10000
Input Registers 04: Read Input Registers (3x) 30000
Holding Registers 03: Read Holding Registers (4x) 40000
06: Write Single Register (4x)
16: Write Multiple Registers (4x)
File Register (old Extended 20: Read General Reference (6x) 60000
Memory file) 21: Write General Reference (6x)
If device's register map uses this convention, users must follow this procedure to determine addresses to
configure Tag's N4 or B4 parameters:
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
1. On Modbus tab, select the Data is addressed from 1 option.
2. Subtract from the address displayed on device's manual the offset shown on the previous table for the
Modbus function used. TIP: Remove the fifth digit from right to the left.
Notice that, in devices that use this old convention, users can determine which Modbus functions can be used
to access each register or bit using the offset used in its address.
Examples
ADDRESS WITH OFFSET (DEVICE'S I/O TAG'S N4/B4 MODBUS FUNCTIONS
MANUAL)
01234 1234 01: Read Coils
05: Write Single Coil
15: Write Multiple Coils
11234 1234 02: Read Discrete Inputs
31234 1234 04: Read Input Registers
41234 1234 03: Read Holding Registers
06: Write Single Register
16: Write Multiple Registers
45789 5789 03: Read Holding Registers
06: Write Single Register
16: Write Multiple Registers
65789 5789 20: Read General Reference
21: Write General Reference
Starting with version 2.00, Modbus Driver now has a resource called Automatic Block Partition. With this
resource, this Driver manages the division of blocks larger than protocol limits. Thus, users do not need to
worry about exceeding the maximum limit for block size, because this Driver divides blocks in the correct
sizes during communication with a device, if any Block Tag exceeds the maximum allowed size.
Starting with version 2.01, this Driver also supports Superblock Readings. With this resource enabled, users
do not need to group variables into Block Tags aiming to improve performance, it is possible to use only Tags
without degrading performance. And as the Superblock algorithm already considers the maximum block size
allowed by the protocol, when this resource is used this Driver also does not need to use Automatic Partition
resource.
In cases when, due to device's specificity (please check topic Superblock Reading), it is not possible to
enable the EnableReadGrouping property in E3 or Elipse Power (a property that enables Superblocks), or if
users are using the old Elipse SCADA, which does not support grouping (Superblocks), then they must use
Automatic Block Partition to ignore protocol limits.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
IMPORTANT: Superblock grouping in E3 and Elipse Power, as well as Driver's Automatic Block Partition,
require that a device supports all limits established by standard Modbus (please check topic Maximum
Limit for the Size of Blocks Supported by the Protocol). There are devices, however, that support lower
limits. For this automatic block partition to work in these cases, as well as Superblock grouping, starting
with version 2.03 this Driver allows customizing the maximum supported limit for PDU (Protocol Data Unit).
To do so, on Driver's configuration window, on Modbus tab, enable the Customize Max. PDU Size option
and configure the maximum size of bytes supported by this device for PDU. If this device has different limits
for each function, it may be necessary to perform that grouping manually (please check topic Superblock
Reading).
Article KB-23112 in Elipse Knowledgebase presents a summary of questions related to Tag grouping and
Block resizing in Modbus Driver, discussed here and in other topics (please check topics Superblock Reading
and Optimization Tips).
Starting with version 2.01, this Driver supports a Superblock Reading resource. This resource is supported by
E3 and Elipse Power, and it can be enabled via Driver's EnableReadGrouping property in Organizer. When
this property is configured in True, users do not need to worry about block resizing.
With this resource, it is possible (and usually recommended) to create applications with only simple Tags
(PLC Tags in Elipse SCADA) without performance issues, because group optimization on readings is
automatically performed during communication. The next figure displays the configuration of the
EnableReadGrouping property in E3 or Elipse Power.
EnableReadGrouping property
Elipse SCADA does not support Superblocks. The behavior when reading Tags in Elipse SCADA is identical to
E3 and Elipse Power when the EnableReadGrouping property is configured as False. In both cases, this
Driver relies on Automatic Block Partition, and it can divide blocks with sizes larger than protocol limits
into smaller blocks during communication. In these cases, users must consider that grouping when defining
application Tags, as seen further on this topic.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
NOTE: Automatic grouping is performed based on application Tags in advise. Whenever new Tags enter or
leave advise, the Superblock algorithm redefines this grouping, that is, Superblocks to read automatically, at
run time, including only Tags in advise.
IMPORTANT: Superblock grouping in E3, as well as Driver's Automatic Block Partition, require that a
device supports the limits established by standard Modbus (please check topic Maximum Limit for the Size
of Blocks Supported by the Protocol). There are devices, however, that support lower limits. For
automatic block partition and Superblock grouping to work on these cases, starting with version 2.03, this
Driver allows customizing the maximum limit supported for PDU (Protocol Data Unit). To do so, on Driver's
configuration window, Modbus tab, enable the Customize Max. PDU Size option and configure the
maximum size of bytes supported for PDU on this device. If this device supports different limits for each
type of function, users must perform a manual grouping (please check further on this topic), observing all
limits described on manufacturer's documentation.
Superblock algorithm considers all limits and addressing spaces defined by standard Modbus protocol. For
devices that implement Modbus protocol with small variations, some additional advanced configurations may
be necessary to use this Superblock feature, if its usage appears viable. In these cases, it is necessary to
disable automatic grouping (the EnableReadGrouping property configured as False), and then perform a
manual grouping. The following conditions may prevent using Superblocks, or may require additional
advanced configurations:
Devices that define maximum limits for block sizes lower than protocol's standard limit (a limit of 253
bytes for PDU). Solution: Configure the Customize Max. PDU Size option, on Modbus tab.
NOTE: There are devices whose PDU limits vary according to the Modbus function used. In these cases, if it
is necessary to use functions with different limits, it is also necessary to disable Superblocks (the
EnableReadGrouping property configured as False), by manually grouping Tags (please check further on
this topic).
Devices with discontinuities (undefined address intervals inserted between valid intervals) on the
register map. Solution: Once it is impossible to inform to Superblock algorithm which intervals cannot
be inserted in blocks, usually it is not possible to use Superblocks. Disable Superblocks (the
EnableReadGrouping property configured as False) and manually group all Tags.
Devices that do not support block readings. Solution: Disable Superblocks (the EnableReadGrouping
property configured as False) and define simple Tags.
Devices that only allow defining blocks in pre-determined addresses and with fixed sizes. Solution:
Disable Superblocks (the EnableReadGrouping property configured as False) and define simple Tags
(PLC Tags in Elipse SCADA) or Blocks according to device's specification.
Manual Grouping
Usually, the larger the grouping of variables in blocks, the less reading requests are needed to complete a
scan cycle of application Tags, thus increasing Tag's update speed. For this reason, if it is not possible use
automatic grouping (Superblocks), it is preferable to create Block Tags containing as many variables as
possible, instead of creating simple Tags (PLC Tags in Elipse SCADA).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Notice that, due to Automatic Block Partition resource, there is no need to prevent exceeding protocol's
maximum limits, as long as a device supports protocol's default maximum limits. If this device does not
support these limits, but defines fixed limits, valid for all supported Modbus functions, users must configure
the Customize Max. PDU Size option, on Modbus tab.
If a device supports different limits for each supported function, automatic partitioning can be also
unfeasible. In these cases, an application developer must also consider device's limits, and define blocks
respecting these limits.
For a manual grouping, using User-Defined Types can increase possibilities of grouping, by allowing to
gather on a single Block Tag variables from the same addressing space, that is, a single Modbus function, but
with different data types (the defined structure may have elements with different types).
For more tips, please check topic Optimization Tips. Article KB-23112 in Elipse Knowledgebase presents a
summary of questions related to Tag grouping and block resizing in Modbus Driver, discussed here and on
other topics.
Special Tag used to discard all pending data from communication until it finds a timeout, indicating that there
is no more data to receive.
This service can be configured on Modbus tab, to occur whenever detecting a communication error. With this
Tag, however, it is possible to execute this service at any time by an application.
This Special Tag is executed using a Tag's writing command, with its N2 parameter equal to "9001". This
value, if written to this Tag, is ignored.
N2: 9001
As already mentioned on this Manual, Special Tags for reading the last exception code are used to read the
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
last exception code sent from a certain slave device.
Such codes are automatically stored by this Driver in internal registers, which can then be accessed using this
Tag. In addition, at each successful communication with a certain device where no exception was returned,
this Driver automatically zeroes the associated register.
Exception Codes
Exception codes are used by a slave device (PLC) to report a failure when executing a certain function. Slave
devices do not return exceptions in case of communication failures, situation when these devices simply do
not respond. Exception codes are returned by slaves in situations where a master request (in case of a Driver)
was successfully received, but could not be executed for any reason, such as trying to read or write to a non-
existent register. In this case, the returned exception code indicates the type of error occurred, that is, the
reason that a Driver's request, although correctly received, could not be completed.
Modbus protocol specification defines nine exception codes. The list of protocol's default exceptions can be
checked on topic List of Protocol's Default Exceptions. In addition to these codes, some manufacturers
define additional codes, specific to their devices. Such codes must be documented on device's manual. If they
are not, please check with manufacturer's technical support.
Configuration
Configuring of Special Tags for Reading Exception Codes must be performed this way:
B2: 9999
Element 1 (index 0): Exception code returned by a device (please check topic List of Protocol's Default
Exceptions)
Element 2 (index 1): I/O Tag's N2/B2 parameter that generated this exception
Element 3 (index 2): I/O Tag's N3/B3 parameter that generated this exception
Element 4 (index 3): I/O Tag's N4/B4 parameter that generated this exception
Element 5 (index 4): I/O Tag's Size parameter that generated this exception
The most common usage for this Tag during a normal scan of function Tags is via an exception Tag's OnRead
event. In this case, a script must first reject null values, because these values indicate that exceptions were
not received. Next, users can handle that exception by executing the adequate procedures, according to the
received code. It is advisable to zero the exception register when leaving a script, to indicate that this
exception was already handled. Please check the following example, written in Elipse Basic (Elipse SCADA):
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
// Tag TagExc's OnRead event
// Note: For this example, consider TagExc
// with automatic reading and writing enabled
If TagExc == 0
Return
EndIf
If TagExc == 1
... // Handles exception 1
ElseIf TagExc == 2
... // Handles exception 2
Else
... // Handles all other exceptions
EndIf
Sub TagExc_OnRead()
If Value = 0 Then
Exit Sub
End If
If Value = 1 Then
... ' Handles exception 1
ElseIf Value = 2 Then
... ' Handles exception 2
Else
... ' Handles all other exceptions
End If
In writing operations by script, on the other hand, where users must test for the return of exceptions right
after sending a command, users must first zero the exception register. That avoids an eventual exception
provoked by a writing command to be confused with another pre-existing one. Execute the writing operation
and test a Special Tag's value, which must return 0 (zero) if no exception was received. In case it returns a
value different from 0 (zero), then users can properly handle that exception received. Please check the
following example, written in Elipse Basic (Elipse SCADA):
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
// Note: For this example, consider TagExc
// with automatic reading and writing enabled
// and TagVal with automatic writing disabled.
If TagExc <> 0
... // Handles this exception
EndIf
NOTE: Special Tag B2 = 9999 returns, in addition to an exception code (returned on Element zero), also Tag
parameters whose communication provoked that exception. If this information is not needed, users can read
the same register using a Tag with N2 = 9999. In this case, all recommended procedures remain the same.
Callback Readings
Starting with version 2.08, this Driver implements callback readings, a resource available in E3 (starting with
version 3.0) and in Elipse Power, which optimizes performance of mass memory readings. With this resource,
an application delegates to a Driver a Tag scan for reading mass memory events. In other words, an
application does not need to keep asking a Driver at each scan period. Instead, a Driver performs a
verification of new events on a device and collects events as soon as they become available, and sends them
to an application.
On the current version of this Driver, the following functions for reading sequences of events (SOE) are
supported:
GE SOE: Performs event collecting from GE PAC RX7 PLCs. For more information, please check topic
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Reading an Event Buffer from GE PAC RX7 Controllers.
SP SOE: Collects events from Schneider Electric SEPAM series 20, 40, and 80 relays. For more
information, please check topic Reading Events from Schneider Electric Relays from SEPAM 20, 40,
and 80 Series.
GenSOE: This function uses a generic Algorithm created by Elipse, Elipse Modbus SOE, which can be
used by most Programmable Controllers. It requires the creation of an analogous programming
procedure on PLC's programming (ladder). For more information, please check topic Elipse's Generic
SOE Reading Algorithm.
65 03: Special function for reading mass memory events from ABB MGE 144 meters. For more
information, please check topic Reading Mass Memory Registers from ABB MGE 144 Meters.
Event buffer can be read using three types of Tags: Event-reported Tags, Event-reported Tags by point,
and Real-time Tags.
Event-reported Tags
Event-reported Tags return, at each reading operation, all events stored in Driver's internal buffer. The
following parameters must be used:
B1: Slave ID
B3: 0 (zero)
At each scan on this Tag, this Driver checks if there are events on controller's buffer. If there are events, this
Driver starts an event-reading thread, which is executed in background, not blocking all other Tag scanning.
After finishing the reading of a Driver's buffer, this event-reported Tag, returns a set of events read on that
scan.
Returned events generate a sequence of OnRead events on this Tag. For each read event, E3 updates Tag
fields (Element values and timestamp) with values from a certain event, and calls the OnRead event once.
This event's script must be defined by users, and it is generally used to insert Tag's data in a Historic.
Every event is represented by a Block with two Elements, with its timestamp field read from a device. Fields
from the respective reading Block Tag are displayed on the next table.
Block Tag fields
OFFSET MEANING DATA TYPE RANGE OF VALUES
0 Identification of a point Byte Between 0 and 15
1 Point status Byte Between 0 and 1
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
For more information about event-reported Tags, please check the specific topic on E3 User's Manual.
IMPORTANT: When reading mass memory events in event-reported Tags in E3, disable Tag's dead band
(the EnableDeadBand property configured as False) and also the linked Historic object (the DeadBand
property equal to zero), to avoid loosing events with near values. It is also important to disable historic by
scan (in E3, the ScanTime property equal to zero). This ensures that new events are only stored using the
WriteRecord method, executed on Tag's OnRead event, avoiding duplication of events.
Starting with version 2.5 of this Driver, it is possible to use a new Tag to download events from a specific
point.
This Tags works as the previous one, except that it returns only events from a specific point.
Different from the previous event, the returned value only contains a single Element with a status value of a
point, so that only one Tag can be used. This Tag must be configured as follows:
N1: Slave ID
N3: 200 + Point Index (for example, for point 2, configure N3 as 202)
For more information about event-reported Tags, please check a specific topic on E3 User's Manual.
Real-time Tags
These Tags return the most recent event already read for a specific point. These events are stored on Driver's
internal memory for each PLC's event reading, with their respective timestamps read from a device. This Tag
uses the following parameters:
N1: Slave ID
Reading Events from Schneider Electric Relays from SEPAM 20, 40, and 80 Series
To read event buffers (SOE) from Schneider Electric SEPAM series 20, 40, and 80 controllers, users must
define, on Operations tab, an operation that uses as its reading function the special function SP SOE. Data
type is automatically defined as SP_events when selecting the SP SOE reading function.
To read SEPAM relays, the offset model of addressing must be configured as Data is addressed from 0, on
Modbus tab. Reading these events is performed using two basic types of Tags:
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Tag for collecting all table events (mandatory): Performs a collect of all table events from a certain
memory zone on a device. This Tag, in addition to returning all events read to an event-reported
application, still stores events read in a Driver's internal buffer, to remove them using readings on Tags
for reading a single event, described next.
Tag for reading a single event (optional): Returns events received from a specified relay, with a
certain address, type, and zone. This Tag does not perform a direct reading from a device, but returns
events from Driver's internal buffer, stored during the reading of a Tag for collecting all table events,
described previously, that is, to be able to read events with this type of Tag, a Collecting all events-
type Tag must be already active, with its scan enabled. This Tag is useful when users need to get
events from a specific type and source (relay, zone, address, and type). An example of usage is an
association to Screen objects, displaying the status of a certain event address. Although this Tag
returns the same information returned by the previous Tag, its usage prevents users from creating
filters, Select Case clauses in VBScript, or any other method to separate several types of events
returned by a Tag for collecting all events by script in an application.
An application must implement a Tag for collecting all events for each table or event zone to collect on each
relay, because it is during the reading of this Tag that actual events are collected from a device.
Configuration for these two Tags is presented next.
This is an event-reported Tag. Its typical usage is inserting events in a linked Historic, by using Historic's
WriteRecord method, called on Tag's OnRead event. At each reading, that is, at each Tag's scan period, this
Driver can collect up to four new events from a device. This is the maximum number of events that each
relay's event zone contains at each reading request.
As it is during the reading of this Tag that events are effectively collected from a device, event if its data is
not used directly, that is, even if there is no need to store all events in a Historic, its implementation is
mandatory for single-event Tags to return data. A Tag for collecting all events must be configured as a Block
Tag with three Elements, and with the following parameters:
B1: 1000 + Slave address (relay) on the network (between 1 and 247)
B3: 0 (zero)
The next table describes the meaning of these three Block Elements, which have their values returned as
reported by events.
Meaning of Block Elements
OFFSET MEANING DATA TYPE RANGE OF VALUES
0 Type of event Word From 0 to 65535 (800H for
Remote Annunciation,
Internal Data, and Logic
Input)
1 Address of the event Word References bit addresses
from 1000H to 105FH
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
OFFSET MEANING DATA TYPE RANGE OF VALUES
2 Ramp up or down Word 00: Ramp down
01: Ramp up
For more information about event-reported Tags, please check topic Tags Reported by Events on E3 User's
Manual.
IMPORTANT: When reading mass memory events in event-reported Tags in E3, disable Tag's dead band
(the EnableDeadBand property configured as False) and also the associated Historic object (the DeadBand
property equal to zero), to avoid loosing events with close values. It is also important to disable historic by
scan (in E3, the ScanTime property equal to zero). This ensures that new events are only stored using the
WriteRecord method, executed on Tag's OnRead event, avoiding duplication of events.
This Tag is also reported by events, and it is possible to use its OnRead event for storage in a Historic. Notice
that this does not prevent it to be treated as a normal Tag (a real-time Tag), in case only its most recent
value is relevant. As this Driver only reads an internal buffer, it is advisable to define a very low scan time,
even lower than the one from the other type of Tag. CPU consumption at each scan can be considered as not
significant. It is suggested to configure it as half the scan period for a Tag for collecting all events.
As already mentioned, this Tag is used to get a status for a certain event address, without parsing or
performing filters on events that arrive by the previous Tag, by script, or by any other means. A typical
application would be linking it to Screen objects.
A Tag for reading a single event, as already mentioned, does not perform a reading of events from a device,
but from a Driver's internal buffer, previously filled during the reading of a Tag for collecting all events. This
Tag returns a single Element, an event-reported one, and it can be configured as a simple Tag (it does not
need to be a Block Tag). This Driver accepts up to eight events accumulated by event point, that is, for each
combination of relay, zone, type, and event address, in its internal buffer. If there is an overflow, that is, if
more than eight events from a single point are returned without any single-event Tag collecting them, this
Driver starts to discard older events. The correct configuration of a scan time may prevent data loss.
TIP: It is recommended to configure a scan for single-event Tags with a value equivalent to half the
configured value for the Tag for collecting all associated events, thus avoiding the loss of events by
overflow of Driver's internal buffer.
N4: Event address (Event Bit Address) + Event Zone Offset*, as described on the next table
Options for event address
EVENT ZONE EVENT ZONE OFFSET*
1 0
2 8000H (8000 in hexadecimal)
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Examples:
NOTE: To represent values in hexadecimal in Elipse E3 and in Elipse Power, users must use prefix '&H' (for
example, &H10 = 16). In Elipse SCADA, use suffix 'h' (for example, 10h = 16). In this Manual, however, the
uppercase suffix 'H' is used to indicate values in hexadecimal format.
Timestamp: The Timestamp property represents the date and time an event was actually read from a
relay, during the reading of a Tag for collecting all events previously described
For more information about relay events, their meanings and addressing, please check manufacturer's
documentation. For more information about event-reported Tags, please check topic Tags Reported by
Events on E3 User's Manual.
The generic algorithm for Sequencing of Events (SOE) of this Driver (Elipse Modbus SOE) was developed by
Elipse to provide a default alternative for reading events from programmable controllers that do not have a
native version of this resource, provided that these controllers meet some basic requirements of memory
space and programming resources, and also allow creating tables and control registers described next.
With this algorithm, it is possible to store and read events from almost all programmable controllers, in an
optimized way, by using resources already implemented and validated in Modbus Driver.
Event reading on Modbus Driver follows a standard procedure, defined by Elipse, reading events from tables
created in PLC's memory or in slave devices by its resident application (ladder).
To use this algorithm, users must define an operation using the special function Gen SOE. For operations
using this function, this Driver always use Modbus function 03 (Read Holding Register) when reading
registers from a device, during the reading of events using this algorithm. For the writing function used when
updating control registers, however, it is used a Modbus function selected in operation's Write field, on
Modbus tab. Functions 06 (Write Single Registers) or 16 (Write Multiple Registers) can be selected. As this
algorithm never needs to write blocks of registers, it is advisable to select function 6 (Write Single
Registers), if supported by a device (function 16 is the most common, supported by a large number of devices
in the market).
PLC's resident software (ladder or equivalent) must keep updated all control registers that provide
information to this Driver, such as the number of events available for reading and the address of the last
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
register to read.
A device can keep more than one event table, in different memory addresses, containing different types.
Each table must be preceded by their respective control registers, in adjacent addresses. This table is
formed by a circular buffer in contiguous addresses, accumulating events or data for collecting by this Driver
at each collect procedure (download of events).
Users can define distinct data formats (events) for each defined table, which are usually defined as a data
structure, and may contain event's timestamp field. Events can also be defined using a Driver's native type.
In this case, it is not possible to define a Timestamp field in the PLC (the timestamp is sent with the reading
date), and the event contains a single field, which can be represented by a simple Tag (a PLC Tag in Elipse
SCADA).
NOTE: The SOE algorithm always uses Modbus protocol's function 03 (Read Holding Registers) to read
registers from a device, whenever a Gen SOE special function is selected for operation. To write registers
it is possible to select, when defining an operation with 06 (Write Single Register) function or 16 (Write
Multiple Registers) function. It is recommended to select the first one (Write Single Register) whenever
possible. The 16 function, however, is accepted by a large number of devices in the market, and can be used
with no problems, if the 06 function is not supported by a device.
The next topics describe in details this algorithm, its implementation in a PLC software (ladder), and how to
perform its reading by using Driver's Tags:
Event Table
Event Table
As already mentioned on topic Elipse's Generic SOE Reading Algorithm, each event table keeps events in a
circular buffer. The circular buffer of each table is defined by its initial address, or base address, contiguous
to control registers, and by its maximum number of registers, which defines its final limit. The following table
shows a layout of events inside a table's circular buffer.
Layout of events in a circular buffer
EVENT # TIMESTAMP ELEMENT1 ELEMENT2 ELEMENT3 ... ELEMENTN
1
2
3
4
5
...
N
Each row on the previous table represents a stored event, usually represented by a structure, or by User-
Defined Types.
Notice that, in the example of the previous table, the first element of that event structure is a timestamp.
This field, whose presence is not mandatory and that does not need to appear in the first position, defines
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Tag's Timestamp property and it is not returned in its Elements (for more information, please check topic
User-Defined Types).
It is also possible to define events with Driver's native types, and in this case there is only one data Element
in each event, without timestamp.
Events must be inserted in this circular buffer in ascending order, returning to the base address after reaching
the upper limit of this circular buffer. The following control registers must be defined for each table:
Table status: Must be kept by the PLC, indicating the number of events available for reading in the
circular buffer. It must be updated by the device whenever new events are added to the circular buffer,
or after finishing the collecting of events by an application, which can be detected via Acquisition
status.
Recording pointer: This value indicates an index, starting at 0 (zero), of the position where a device
must insert the next event. It must be incremented by the device after each new event insertion in the
circular buffer, moving back to the base address after reaching buffer's upper limit. Notice that this
value must not be provided in units of Modbus registers, but in event positions, and it must be
incremented by one unit at every new event inserted, regardless of the number of Modbus registers
occupied for each event in the circular buffer. With this, the maximum allowed value for this pointer is
given by the formula MaxWritePtr = (Size of the circular buffer / Size of event structure) - 1.
Acquisition status: Indicates the number of registers already read by a Driver at each individual event
reading. After each reading, this Driver writes in this register the number of registers it successfully
read. Slave's resident application (ladder) must immediately subtract the value written by this Driver
from Table status and then zeroes Acquisition status.
Reserved: This register is currently not used. It may be used on future versions of this Driver, and it can
be kept in 0 (zero) in its current version.
As already mentioned, the base address of this circular buffer, that is, the address where an event table
starts, must be contiguous to control registers.
Control registers, on the other hand, must be also set on contiguous addresses, on the same order presented
previously, allowing their reading on a single operation, that is, assuming that the base address of control
registers for a certain table is 100, these are the addresses for the other registers:
Register addresses
CONTROL REGISTER ADDRESS
Table Status 100
Recording Pointer 101
Acquisition Status 102
Reserved 103
Circular Buffer's Base Address 104
Topic Acquisition Procedure in a PLC describes a step-by-step acquisition procedure or algorithm based on a
slave device (PLC). The next topic, Acquisition Procedure in an Application, discusses how to configure an
application for acquiring table events.
This topic presents a discussion about an algorithm for collecting events from the point of view of a PLC or
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
slave device. Its goal is to clarify to developers what must be implemented in PLC's resident application
(ladder).
A device must start inserting events in ascending order, starting at table's base address, that is, starting at
the circular buffer. For each new event inserted, the Recording Pointer must be incremented, pointing to the
next available position in that buffer.
This Driver performs a reading starting from the oldest to the newest event. The starting address of this
reading is calculated by this Driver using the value of Recording Pointer and Table Status.
If the number of available events is greater than protocol's maximum allowed into a single communication
frame, this Driver performs multiple block readings, updating the value of Acquisition Status after finishing
this process with the total amount of events read.
NOTE: If a device does not respect the default limit of 253 bytes for PDU, then users must configure the
Customize Max. PDU Size option, on Modbus tab, according to supported limits, which must be described
on manufacturer's documentation.
When detecting a non-null value written by this Driver to Acquisition Status, a PLC's or device's application
must immediately subtract Acquisition Status' value from Table Status' value and then zeroes Acquisition
Status. With Acquisition Status zeroed again, this Driver can start a new acquisition at any time.
A PLC can insert new events to a table during PLC's acquisition process, as long as there is no overflow on
circular buffer, that is, as long as its writing pointer does not exceed its reading pointer, by incrementing
Table Status.
An event collecting or downloading procedure is finished when Table Status is zeroed. All collected events are
then provided to an application via event-reported Tags, as described in the next topic.
The next figure shows a flow chart, as a UML Activity Diagram, with a suggestion of implementation for a PLC
logic. Notice that some variations are possible, for example discarding the oldest event in case of overflow,
which can be evaluated by a developer, depending on the context.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
UML Activity Diagram (PLC)
Timestamp
As already mentioned, every event is composed by a structure containing one or more data elements (usually,
but not necessarily, represented by User-Defined Types).
If structures (User-Defined Types) are used, then it is possible to associate a timestamp to each PLC-provided
event. In this case, the value of the Timestamp field must be provided in a structure field, in PLC memory, in
the order it was declared in the configuration file, and its value is not displayed in any Block Element, it is
only returned in the Timestamp property of the linked Tag.
As explained on topic User-Defined Types, any date and time type supported by this Driver can be used. The
GenTime type, however, was specially created for use with Elipse Modbus SOE, due to an easy definition in
PLC's resident application (ladder).
If a millisecond precision is needed, another option is consider Driver's UTC32 type, represented as an integer
with only 32 bits (4 bytes) with seconds starting at 1/1/1970, without a milliseconds representation,
considered as 0 (zero).
The next topic, Acquisition Procedure in an Application, describes how to configure an application for
collecting events accumulated in a PLC or programmable slave device.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Acquisition Procedure in an Application
This topic contains a detailed explanation on the configuration of an application to acquire events
accumulated in a PLC or programmable slave device, from the point of view of the application.
Reading events in an application is performed using Tags that reference operation with the special reading
function Gen SOE, configured on Operations tab. The data type defined in this operation's Data field defines
a structure of events stored in device's table. If a Driver's native data type is defined (a built-in type), each
event has only one element of this type, without a PLC-provided timestamp (a timestamp represents the
instant events were collected). On the other hand, if User-Defined Types are used, then it is possible to
define structures for events, including timestamps. The next figure shows an example of an operation that
uses the special function Gen SOE, with a Word data type.
Notice that function 16 (Write Multiple Registers) was selected as its writing function, which is the most
common function. However, it is recommended to use function 06 (Write Single Register) whenever supported
by a device.
The next figure shows the same operation with a user-defined type TYPE3 (please check topic User-Defined
Types), which is a type defined in the example configuration file, available with this Driver and that is used
as an example in this topic.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Configuration using the Gen SOE function and a user-defined type
This is a data type with six data fields, a timestamp, and a default address (Tag's B4 parameter) equal to
"101H" (257 in decimal). To read it, users must define a Block Tag with six Elements and the following
configuration:
B2: 8 (A previously defined operation with the special function Gen SOE)
B3: N (Size of a device's table, as the maximum number of events that table can contain)
B4: 100 (Address of the first control record, using a value defined on the example table of topic Event
Table)
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Size: 6
NOTE: The B3 parameter informs the size of a table as the maximum number of events, not as Modbus
records. Together with the B4 parameter, it indirectly informs the final address or upper limit of that table.
The size of table's data area, therefore, in number of Modbus records, is the product of B3 by the size of
each event in number of Modbus records, that is, in 16-bit Words.
Notice that, if E3's Tag Browser is used to insert a Tag in an application, Tag Elements are already named
according to the name of structure elements when they were declared.
Once defined a proper Tag (or Tags), enable its scan and let this Driver collect events from the respective
table, whenever new events are detected.
A Tag linked to the Gen SOE function is always event-reported. This means, as already explained on topic
User-Defined Types, that this Driver can return several events on a single reading operation, that is, on a
single interval of a Tag's scan. This Driver returns a set of events (in this case, sets of blocks with six data
fields and a timestamp) at once, which produces a sequence of OnRead events in a Tag, one for each event
(a block with six data fields and a timestamp) returned by this Driver. The usual way of handling event-
reported Tags is inserting in its OnRead event a WriteRecord method of a Historic previously linked to this
Tag, ensuring that all events reaching this Historic are recorded. In this case, this Historic must be configured
without a dead band (the DeadBand property set to zero) and disabling historic by scan (in E3, the ScanTime
property set to zero). Tag's EnableDeadBand property must also be configured to False.
IMPORTANT: When reading mass memory events in E3's event-reported Tags, disable Tag's dead band
(the EnableDeadBand property configured as False) and also in the linked Historic object (the DeadBand
property configured as zero), to avoid losing events with close values. It is also important to disable
historic by scan (in E3, the ScanTime property configured as zero). This ensures that new events are only
stored using the WriteRecord method, executed on Tag's OnRead event, avoiding duplicated events.
Some devices, such as PLCs by ATOS, do not support block readings using types with different structures. In
practice, this prevents a Driver to read data from control and event registers as a single block. To collect PLC
events with these restrictions, users must disable the Enable Control and Data Registers Grouping option
on Gen SOE tab.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Configuring an operation with special function 65 03
This special function 65 03 is ABB's proprietary and it is practically identical to protocol's standard function
03 (Read Holding Registers), differing only on returned data, referring to ABB meter's mass memory.
Data is returned as a Word (as in function 03), with a protocol's default byte order (big endian). Therefore, it
is not necessary to enable any swap function (Swap Bytes, Swap Words, or Swap DWords).
Meter's register map, specifying data to read, as well as its correct configuration, must be checked on
meter's manufacturer-provided documentation.
This Driver also has two special reading functions specific for this meter, functions 65 01 and 65 02. For more
information about those special writing functions, please check topic Special Functions and also device's
documentation.
If a device fully complies with this standard protocol, and if users only want to read or write registers or bits,
the following three steps are probably sufficient to configure this Driver:
Inserting a Driver
Configuring a Driver
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Inserting a Driver
If using Elipse E3 or Elipse Power, please read topic Adding a Driver to an Elipse Application - Elipse E3 or
Power.
If using Elipse SCADA, please read topic Adding a Driver to an Elipse Application - Elipse SCADA.
Then, read the next step on this Manual, which shows how to configure a Driver using its configuration
window for the most common cases.
Configuring a Driver
After inserting a Driver in an application, users must open Driver's configuration window, as explained on
topics Elipse E3 or Power or Elipse SCADA. With this configuration window open, follow these steps:
a. On Setup tab, select a physical layer (Serial, Ethernet, Modem, or RAS) to use when connecting with
a device.
b. Configure the selected physical layer on its corresponding tab (Serial, Ethernet, Modem, or RAS).
c. For more information about configuring a physical layer, please check IOKit User's Manual.
2. On Modbus tab, select a protocol mode (RTU, ASCII, or TCP) used by this device. As a general rule, users
must select RTU or ASC (for most devices it is RTU) for Serial or Modem physical layers, or TCP for
Ethernet or RAS physical layers. The other options usually can be kept with their default configurations.
For more information about all options on this tab, please check topic Modbus Tab.
NOTE: For new applications, it is strongly recommended to avoid using ModbusRTU (RTU mode)
encapsulated in an Ethernet TCP/IP layer. However, if by any reason, for legacy applications, users need to
use ModbusRTU encapsulated in TCP/IP, please do not forget to enable the Reconnect after Timeout
option, described on topic Modbus Tab.
3. On Operations tab, check the seven default operations already pre-configured in this Driver. These
operations, already available when opening a Driver for the first time, are the most common ones.
Evaluate all reading and writing functions and their data types used for each operation, and check which
ones are needed for this application. If these pre-defined operations do not fit application needs, please
read topic Operations Tab. The next table contains all seven pre-defined operations.
Pre-defined operations
OPERATION READING FUNCTION WRITING FUNCTION DATA TYPE PURPOSE
1 3: Read Holding 16: Write Multiple Word Read and write
Registers Registers unsigned 16-bit
integers
2 3: Read Holding 16: Write Multiple DWord Read and write
Registers Registers unsigned 32-bit
integers
3 3: Read Holding 16: Write Multiple Int16 Read and write
Registers Registers signed 16-bit
integers
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
OPERATION READING FUNCTION WRITING FUNCTION DATA TYPE PURPOSE
4 3: Read Holding 16: Write Multiple Int32 Read and write
Registers Registers signed 32-bit
integers
5 3: Read Holding 16: Write Multiple Float Read 32-bit floating
Registers Registers point values
6 3: Read Holding 15: Write Multiple Bit Read and write bits
Registers Coils
7 2: Read Discrete None Bit Read bits from a
Inputs data block of
Discrete Inputs
NOTE: These seven default operations are configured assuming that a device complies with Modbus'
default byte order, big endian, in which the most significant bytes come first. If a device does not comply
with that standard, please check topic Operations Tab for more information about configuring operations
for different byte orders.
For more information about configuring this Driver, please read topic Configuration. The next step shows
how to configure I/O Tags based on pre-defined operations.
For Elipse E3 or Elipse Power, it is possible to use Tag Browser to create Tags with pre-defined operations, as
explained on topic Inserting a Driver. Tag Browser's window, shown on the next figure, is opened when
clicking OK on Driver's configuration window.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Elipse E3's or Power's Tag Browser
1. Drag Tags from the Tags available from driver list to the Current project tags list, as described on topic
Inserting a Driver. For many devices, operation 1, the most common, should be sufficient, just drag
Op1<word> Tag to the list of project Tags. Notice that, assuming that several Tags are needed with the
same operation, which is a normal situation, users can drag the same Tag several times (notice that an
application adds sequential numbers to the default name). Users can also add a Tag from each operation
and then later create other copies in Organizer.
2. Close Tag Browser and configure the N4/B4 parameter of each Tag with the register or bit address to read
or write, according to device's register map. This address map must be described on manufacturer's
documentation. For more information, please check topic Optimization Tips.
3. Also configure the N1/B1 parameter of each Tag with device's address (Slave Id) to access in each case.
This parameter is usually device-configurable and, to determine it, please check manufacturer's
documentation or technical support.
4. Rename all Tags, if needed, with a more significant name for this application.
Configure preferably simple Tags (called PLC Tags in old Elipse SCADA) instead of Block Tags, keeping
Superblocks feature enabled (the EnableReadGrouping property configured as True), leaving to application
and to Driver the group optimization. For more information, please check topic Superblock Reading.
NOTE: In its current version, this Driver does not use Device and Item fields from E3 or Elipse Power. All
Tag configuration must be performed using its N and B parameters.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Elipse SCADA does not support Tag Browser, thus it is necessary to configure I/O Tags manually. Users must
create Tags with the following configuration:
Notice that for this Driver, simple Tag's N parameters have the same meaning as Block Tag's B parameters,
so they are described together.
For more information about which value to configure in the N4/B4 parameter, please check topic
Optimization Tips.
As Elipse SCADA does not support Superblocks, it is recommended to create Block Tags, grouping adjacent or
close registers, to read the maximum number of registers in the smallest number of protocol requests.
Also notice that, once a device supports default protocol limits for the size of a communication frame, due
to Automatic Block Partition feature, there is no need to worry about exceeding the maximum block size
supported by this protocol, because this Driver already creates the appropriate subdivisions during
communication.
Final Considerations
If users only need to use Driver's default operations, and if a device complies with standard Modbus protocol
defined by Modbus Organization, the three steps presented in this Quick Configuration Guide should be
sufficient to configure this Driver.
For more information about configuring I/O Tags, please check topic Configuring an I/O Tag.
Appendix
This appendix contains the following topics:
Optimization Tips
BCD Encoding
Optimization Tips
This topic enumerates some optimization tips to communicate with slave devices.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Tips for configuring a Driver for E3 and Elipse Power
Use Superblocks whenever possible, preferring to create simple Tags (PLC Tags in Elipse SCADA)
instead of Block Tags (please check topic Superblock Reading).
If it is not possible to create Superblocks, prefer to create Block Tags, grouping the largest possible
number of variables in the smallest number of blocks (please check the text about manual grouping on
topic Superblock Reading).
In case of high-latency networks, reduced bandwidth, or packet losses, please also read article E3's
Network Settings for networks with high latency, low bandwidth and/or packet loss.
In high-latency networks, configure higher timeouts, considering the expected latency. Remember that a
timeout is only effective on delays, it does not interfere with the performance of normal usage
situations.
Prefer to create Block Tags, by grouping the largest possible number of variables in the smallest
number of blocks (please check the text about manual grouping on topic Superblock Reading).
Consider all recommendations of article Developing applications with optimum performances, also
available in Elipse Knowledgebase.
In high-latency networks, configure higher timeouts, considering the expected latency. Remember that a
timeout is only effective on delays, it does not interfere with the performance of normal usage
situations.
If possible, group all variables defined by a resident application (ladder) that have the smallest scan
time, in contiguous addresses in PLC's memory. The total scan time of Tags highly depends on the
capacity of grouping variables in communication blocks.
It is trying to read a Float-type value, but it is failing. The value displayed by this PLC is completely
different from the one displayed by an application for the same address.
Answer: Users must enable the Swap Words option on Modbus Driver's operation configurations.
For more information, please check manufacturer's documentation and section Byte Order on topic
Operations Tab.
Answer: This device does not allow reading or writing input and output variables, and it is
necessary to use PLC's internal variables to perform this reading, that is, create a mirror of inputs
and outputs in an area where this Driver has access. Users must also be careful to create a PLC
routine to check when an application changes an output value, so that it is effectively activated or
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
deactivated in this PLC.
It is trying to read a DWord-type value, but the correct value is not displayed. The application displays
values different from the ones in this PLC.
Answer: Please check article Using Modbus Master (ASC/RTU/TCP) drivers with ATOS's controllers in
Elipse Knowledgebase. Also check topic Operations Tab on this Manual, specially the Byte Order
section.
How to join two Int16-type values (which are in this PLC) into an Int32-type value (in an Elipse
application)?
I have a 32-bit number stored in two 16-bit registers in this PLC. How to display this number on an
Elipse application's screen as a single 32-bit register?
Answer: Users must create, on Driver's configuration window, an operation with the desired 32-bit
data type, such as Float, DWord, or Int32 types. Notice that, on configuration window (Operations
Tab), 32-bit data types are always displayed with a four-byte size (the Size field, please check topic
Supported Data Types). When configuring an I/O Tag, users must use that operation and inform
the first address of PLC variables (please check topic Configuring an I/O Tag). So, this Driver joins
two 16-bit registers into a single 32-bit value with the type selected on the operation, returned on
Tag's value field or on a Block Tag Element.
I already have an application, but how do I join values from two Words into a single Tag?
Answer: It is possible to execute that join operation using scripts, by creating an unsigned 32-bit
integer. To do so, users must multiply the Word that contains the highest part of that word by
65536 and then sum the Word that contains the lowest part of that word. For example, UInt32 =
(HighWord × 65536) + LowWord.
I need to read Float-type values. I configured a reading function as 03 and a writing function as 16 with
a Float data type. However, the E3 or Elipse Power application displays a value that is different from
the one in this device.
Answer: Official Modbus protocol uses a default big endian byte order, with the most significant
bytes of every value coming first. If this Driver is reading non-sense values, even with its address
correctly configured, probably this device uses a byte order other than protocol's default. In this
case, it is necessary to configure swap options. Please check section Byte Order on topic
Operations Tab for more information about using swap options.
How to communicate with more than one device on a Serial communication network?
I have more than one device on my serial network, each one with a unique address. How to
communicate with every one of them?
Answer: Users must be careful with N1/B1 parameters of each I/O Tag, because this field indicates
a device to communicate. Users can use the same operations for Tags on different devices.
I have more than one serial port in my computer. How to configure this Driver to communicate with
devices connected to each one of these ports?
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Answer: In this case, as there is more than one different physical layer (Serial 1, Serial 2, etc.), it is
necessary as many I/O Drivers as the existent ports. Driver's configuration for operations and Tags
can be the same for all Driver objects (instances). The only difference is that one Driver must be
configured to communicate via Serial 1, another Driver configured to communicate via Serial 2, and
so on.
How to communicate with more than one device on a serial network with an RS485 converter?
I have an RS485 network with several devices communicating via an RS232-RS485 converter using a
Serial port. An address switching (Slave ID) always occurs, that is, when this Driver requests data from
another device, a timeout occurs. After retrying the same message, this device answers normally. Is
there is a way of preventing this timeout during an address switching (Slave ID)?
Answer: Some RS232-RS485 converters require a time interval to switch, that is, commuting from
transmission mode to reception mode, or vice versa. To circumvent this limitation, users can use
the Inter-frame delay option on IOKit's Serial tab, available on the configuration window. This
field defines a time interval between messages. The exact value of this interval depends on the
converter in use but, if it is not known, it is recommended to try values between 50 ms and 300 ms.
NOTE: IOKit's Inter-frame delay option may significantly degrade performance in some applications, and it
must be used only when absolutely necessary. Please be sure that this converter is in good conditions, and
if it effectively requires a delay. If needed, please check with manufacturer's technical support.
There is more than one device connected to my Ethernet network, each one with a unique IP address.
How to communicate with each one of them?
Answer: Currently, for each IP address, it is necessary as many I/O Drivers as the number of IP
addresses to communicate. Configurations referring to Driver's operations and Tags can be the
same for all Drivers. The only difference is that one Driver must be configured to communicate with
IP 1's address, another Driver must be configured to communicate with IP 2's address, and so on.
The N1/B1 parameter (Slave Id) can be also used in Modbus TCP mode to differentiate devices
connected to a gateway, in the same IP address. The IP address must be configured on IOKit's
Ethernet tab, on Driver's configuration window.
TIP: Avoid using protocol's RTU or ASC mode encapsulated in TCP/IP layer. In case it is necessary to
encapsulate serial communication of devices using Modbus RTU in TCP/IP, there are gateways available in
the market that not only encapsulate serial communication in Ethernet TCP/IP (physical, network, and
transport layers), but also convert Modbus RTU into Modbus TCP (application layer). As a last option, if it
is inevitable to use Modbus RTU in Ethernet TCP/IP layer, enable the Reconnect after Timeout option,
previously described on topic Modbus Tab of this Manual.
Is there any software that simulates Modbus protocol and can be used for tests with this Driver?
Answer: Yes, there are several alternatives. Modsim software is one of the oldest and well known
alternatives to emulate a Modbus slave device. It can be purchased at http://www.win-tech.com/
html/modsim32.htm. In addition, there is also the free alternative Free Modbus PLC Simulator,
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
available at www.plcsimulator.org. There are also other alternatives. A list with other applications
can be found at Modbus.org website.
Answer: This address varies from device to device. To discover what is the exact address to use,
please check device's documentation or contact technical support.
When to use the RTS and DTR controls (which appear on Serial tab of Driver's configuration window)?
I am communicating with a device directly connected to computer's RS232 serial port. How to configure
RTS and DTR?
Answer: Please check device's documentation or manufacturer's technical support for the correct
configuration.
Answer: When communicating with devices using RS232-RS485 converters, such configurations
depend on the converter. A device (Slave) does not influence it, as these signals only exist on the
RS232 serial side, with no equivalents on the RS485 serial layer. RTS is commonly used by older
converters to switch between transmission and reception modes (RS485 is half-duplex), and in these
cases it must be configured in Toggle mode (there are some rare devices that require other
configurations). On most recent converters, however, switching between transmission and reception
is automatic, and these signals in general are not used, and they may be ignored. For more
information, please check converter's documentation or manufacturer's technical support.
When to use the Swap Bytes, Swap Words, and Swap DWords functions?
These functions must be used for 16-, 32-, or 64-bit types, whose byte order of this device-provided value
does not correspond to Modbus default byte order, where the most significant bytes always come first (big
endian standard, also called Motorola). If this Driver is reading non-sense values, or values different from the
ones stored in a PLC, it may use a byte order different from protocol's default. For more information, please
check section Byte Order on topic Operations Tab, as well as device's documentation.
I am trying to read a Word value, but this value appears different from the one configured in the PLC. If
in the PLC it is configured as 1 (one), in the Elipse application it appears as 256.
Answer: One in hexadecimal is 0001H and 256 in hexadecimal corresponds to 0100H. This device
has a byte order different from protocol's default. Users must enable the Swap Bytes option to read
the correct value. For more information about byte order, please check topic Operations Tab.
I have a Tag configured to read a DWord value, but the value read by the Elipse application is different
from the value stored in the PLC. If I set 258, for example, to a PLC register, the Elipse application
displays an absurd value of 16908288.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
How to correctly read Float types in WEG TPW-03 PLCs?
Answer: On Driver's configuration tab for operations, users must enable the Swap Words option in the
reading and writing operation used.
Known peculiarities of devices from the ABB Advant Controller 31 series 90 family (for example, ABB
07KT97 PLC)
When using E3 or Elipse Power, I am trying to read registers or bits from this PLC, but there are always
errors.
Answer: Devices from this series do not allow using E3 (or Elipse Power) Superblocks for two
reasons:
There are interruptions on the address map of device's registers, with undefined address
intervals.
Maximum PDU size is different from the one established by protocol's default, and it is defined
as a size that supports 96 Words or Bits. As this protocol groups eight bits at each data byte,
that results in different maximum PDU sizes for reading functions for Bits and Words, which
prevents customizing the maximum PDU size allowed by this Driver, which does not allow
configuring different limits for each protocol function.
Prefer defining Block Tags, by grouping the largest possible number of variables in the smallest
number of blocks, respecting device's limit of 96 Words or 96 Bits for each Block (for more
information, please read section about Manual Grouping on topic Superblock Reading).
NOTE: Users can also use automatic grouping (Superblocks) if there is no need to read Words and Bits in
the same Driver object, obviously depending on the interval of addresses to read (more specifically, whether
this interval contains interruptions or not). In this case, anyway, users must configure the Customize Max.
PDU Size property on Modbus Tab, according to the limit of 96 Words (96 × 2 = 192 bytes) or 96 Bits (96 /
8 = 12 bytes). Such possibility can be carefully evaluated, in a case-by-case basis, by this application's
developer.
I am trying to read Float values, and the following message appears on Driver's log: "Warning:
denormalized float number! Returning zero". What should I do?
Answer: This message does not mean a communication or configuration error. It is recommended that
users check PLC's programming why it is returning denormalized values.
Additional Information: Such information indicates that a device sent a floating point value (Float) to
this Driver in IEEE 754 format, but non-normalized. Such values may be a result of arithmetical
operations with results that extrapolate all representation possibilities of this format, such as overflow,
underflow, +infinite, -infinite, etc. Non-normalized values are described in IEEE 754 standard, and they
are not supposed to raise problems for this Driver or for an application. However, due to previous error
detections related to specific hardware, this Driver now returns 0 (zero) to an application when
receiving non-normalized values from a device, registering this message in its log.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
List of Devices that Communicate with Modbus
The next table has a short list of devices, separated by manufacturer, for which there is already some
experience on communicating with Modbus protocol.
For a complete list of devices already validated for this protocol, please check Modbus Device Directory,
maintained by the Modbus Organization.
Devices that communicate with Modbus
MANUFACTURER DEVICE
ABB ETE30
MGE 144
KT97
KT98
Altus Almost all Altus devices have Modbus, except a few
models from Piccolo series
Areva MiCOM P127
P632 relay
Atos ATOS PLCs support Modbus RTU protocol with small
variations regarding the maximum size of frames and
byte order. For more information about these
variations, please check article Using Modbus Master
(ASC/RTU/TCP) drivers with ATOS's controllers, in Elipse
Knowledgebase
BCM BCM1088
BCM1086
BCM-GP3000
BCM2085
Ciber Brasil Multivariable Meter for Electrical Quantities UDP200
Multivariable Meter for Electrical Quantities UDP600
Contemp CPM45
Deep Sea DSE5210
DSE5310
DSE5310M
DSE5320
DSE5510
DSE5510M
DSE5520
DSE7310
DSE7320
Embrasul MD4040 meter
Eurotherm 2500 Intelligent Data Acquisition and Precision
Multi-Loop PID Control
Fatek FB - 14MCU
GE GE PAC RX7
GE GEDE UPS
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
MANUFACTURER DEVICE
Gefran CLP Gefran Gilogk II
Gefran 600RDR21
Hitachi Hitachi HDL17264
Honeywell PLC HC-900
Horner APG Devices from series XLe/XLt all-in-one control
devices
Koyo PLC CPU 260
Kron MKM-120 meter
LG DMT40U
LG / LSIS LG Master K120 S
LG XGB - XBM
Moeller XC100 - Serial Port 232
XC200 - Serial Port 232/422/485 (communication
module XIO-SER) and Ethernet Port
XV200 - Serial Port 232 and Ethernet Port
XVH300 - Serial Port 232 and Ethernet Port
XV400 - Serial Port 232 and Ethernet Port
Novus N1100
N1500
N2000
N3000
Schneider Twido
A340
CLP M340
Premium Series
Frequency Converters and soft starter
MT and BT breakers
BT and MT protection relays
SEPAM Series 20, 40, and 80 relays
Telemecanique Zelio logic controllers ending with BD
Unitronics V120
Weg TP 03
Clic 02
Yaskawa V1000
Exceptions are registered in Driver's log, whenever detected, and they can be read by an application by
Reading the Last Exception Code.
Notice that, in addition to exceptions listed here, a device may define other proprietary exceptions. In this
case, they are supposed to be described on manufacturer's documentation of that device.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Exception codes standardized by the Modbus protocol
CODE (IN HEXADECIMAL) NAME MEANING
01 ILLEGAL FUNCTION The function code received is not
valid. This may indicate that this
function is not implemented yet or
that the slave is in an inadequate
status to process it.
02 ILLEGAL DATA ADDRESS The data address received is not a
valid address. More specifically,
the combination of a reference
address and the amount of data to
transfer is invalid.
03 ILLEGAL DATA VALUE The current value on Master's
request is not valid. This indicates
a failure on the remaining data
structure of a complex request,
such as when the informed size for
a data block is not correct. This
exception does not indicate that
values submitted for writing are
out of the expected scope by an
application, as such information is
not accessible to this protocol.
04 SLAVE DEVICE FAILURE An irrecoverable error occurred
during the processing of the
requested function.
05 ACKNOWLEDGE Used with programming
commands. The Slave accepted
this message and it is processing
it. However, this processing
demands a long time. This
exception prevents a timeout on
the Master. The end of this request
must be tested by a polling
process.
06 SLAVE DEVICE BUSY Used with programming
commands. Indicates that the Slave
is processing another long-lasting
command and that this request
must be sent again later, when the
Slave is available again.
08 MEMORY PARITY ERROR Used with functions 20 and 21,
reference type 6, to indicate that
the extended file area failed on a
consistency test. The Slave device
may need maintenance.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
CODE (IN HEXADECIMAL) NAME MEANING
0A GATEWAY PATH UNAVAILABLE Used together with gateways, to
indicate that the gateway was
unable to allocate an internal path
to process this request. It usually
indicates that a gateway is not
correctly configured or it is
overloaded.
0B GATEWAY TARGET DEVICE FAILED Used together with gateways, to
TO RESPOND indicate that no response was
received from the destination
device. It usually indicates that
such device is not on the network.
Notice that, due to Superblock Reading and Automatic Block Partition features, present in this Driver's
current version, users hardly need to consider these limits in their applications, as this Driver already
performs all optimizations automatically during communication.
However, as there are devices that do not support standard limits established by this protocol, users may
need to know these limits, and most of all they must know how to evaluate device's limits, in case they are
forced to perform a manual grouping (please check topic Superblock Reading). In these cases, information
on this topic can be very helpful.
Modbus protocol defines a simple data unit called PDU (Protocol Data Unit), which is kept unchanged through
several protocol modes and through several communication layers.
A full communication layer, including PDU and other additional header fields, is called ADU (Application Data
Unit).
According to this protocol's specification, a full Modbus frame (ADU) can have a PDU with a maximum size of
253 bytes.
Thus, depending on the data type or Modbus function used in communication, this protocol imposes the limits
for block elements at each communication described on the next table.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Limit for block elements
MODBUS FUNCTION DESCRIPTION LIMIT
03, 04 Reading multiple 16-bit registers 125 registers (250 bytes)
16 Writing multiple 16-bit registers 123 registers (247 bytes)
(Holding Registers)
01, 02 Reading multiple bits 2000 bits (250 bytes)
15 Writing multiple bits 1968 bits (247 bytes)
20 Reading file registers 124 registers (248 bytes)
21 Writing file registers 122 registers (244 bytes)
Article KB-23112: I/O Block's ideal size with Modbus driver in Elipse Knowledgebase presents a summary of
questions relative to Tag grouping and block resizing in this Driver, discussed here and on other topics.
BCD Encoding
BCD Encoding (Binary Coded Decimal) was originally created to circumvent limitations regarding the
maximum number of digits that can be represented in traditional formats for storing values. Formats such as
the representation of real numbers in floating point are usually acceptable for math and scientific
calculations. However, rounding errors caused by numbers that cannot be represented due to overflow or
underflow problems may not be acceptable in certain applications, such as financial procedures. To overcome
that limitation, BCD encoding was developed to allow representing numbers up to the last digit.
In this representation, each decimal digit is represented only in binary form, without limitations regarding its
number of digits.
The next table shows decimal digits and their corresponding values in BCD (binary values).
Decimal digits in BCD encoding
DECIMAL BCD DECIMAL BCD
0 0000b 5 0101b
1 0001b 6 0110b
2 0010b 7 0111b
3 0011b 8 1000b
4 0100b 9 1001b
To improve efficiency of this encoding, it is common to represent two digits per byte. Notice that, on the
previous table, each decimal digit requires only four bits, or a half byte, for its representation.
Such representation with two digits in each byte is called Packed BCD, and this the representation used by
this Driver, that is, packets sent by this Driver with BCD values use a data byte for every two digits of the
represented decimal value. That is why the Size field, for BCD data types, must be defined as half the
maximum number of digits represented in values that are read or written.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Driver Revision History
VERSION DATE AUTHOR COMMENTS
3.0.11 05/29/2015 A. Quites Driver ported to IOKit 2.0
(Case 13891).
Fixed an error on
operations' configuration
window, when removing an
operation from the table
could fail (Case 14874).
Fixed an error in which this
Driver could behave
erratically when the
Reconnect after timeout
option was enabled, when
reading SOE Tags using
callbacks. This error could,
in rare situations, allow
this Driver to try a
disconnection several
consecutive times, and
also try reconnections
several consecutive times
as well (Case 14775).
Fixed a handle leak when
downloading events from a
GE PAC RX7 controller
(Case 16404).
Fixed an error in Use Bit
Mask feature when used
with Superblocks enabled
(Case 18340).
Fixed an error when
reading Strings with odd
sizes, where the last
characters could be
truncated if swap options
were enabled (Case
16744).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
2.8.17 10/19/2012 A. Quites Implemented Elipse
Modbus SOE, a feature
that standardizes SOE
readings for most PLCs
(Case 12038).
Added user-defined types
or structures, as part of
implementing Elipse
Modbus SOE feature (Case
12038).
Implemented SOE readings
for Schneider Electric
Series SEPAM 20, 40, and
80 relays (Case 12106).
Added a new Sp_time type
to represent timestamps
for Schneider Electric
SEPAM Series relays (Case
12106).
Added date and time
types GenTime, UTC64d,
and UTC32, which can be
used to represent
timestamps (Case 12038).
Added support for callback
readings in SOE Tags (Case
12464).
Added an option to
reconnect in case of
timeout when receiving
frames, on Ethernet
physical layer (Case
12537).
Redesigned the
configuration window to
allow adding new
configuration options, by
creating a new Operations
tab (Case 12038).
Removed the Swap
Address Delay option from
Driver's configuration
window. This option,
turned obsolete by IOKit's
Inter-frame delay option,
is still available as an
offline configuration, thus
keeping compatibility with
legacy applications (Case
13285).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
Removed the Reverse
Frame option from Driver's
configuration window for
operations, because it is
now obsolete. This option
is still supported for legacy
applications (Case 12443).
Added information about
configurations for Float
types in WEG TPW-03
controllers (Case 12546).
Added information about
Driver's configuration for
ABB 07KT97 controllers
and all controllers from
ABB Advant Controller 31
series 90 family (Case
12667).
Added ATOS PLC to the list
of devices that support
Modbus protocol (Case
13247).
Added information about
automatic block partition
feature, available since
version 2.00 (Case 11594).
Added WEG Clic 02 PLC to
the list of supported
devices (Case 11602).
Revised text of
introductory topic to
clearly state that this
Driver works as Master on
a Modbus network,
allowing communication
with Slave devices (Case
12035).
Added a topic about
Superblocks (the
EnableReadGrouping
property) (Case 13287).
Added a topic about
automatic partitioning of
blocks (Case 13288).
Added a topic with
optimization tips (Case
13287).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
Added to topic Frequently
Asked Questions a
question about a message
referring to reception of
non-normalized Float
values (Case 13295).
Updated the list of devices
that communicate using
Modbus protocol,
considering devices
registered during recent
support calls (Case 13298).
Added topic Quick
Configuration Guide, with
a step-by-step procedure
to configure this Driver for
the most common usage
cases (Case 13301).
Fixed an error when
loading a configuration file
on Windows CE ARM
HPC2000 platform (Case
12352).
Fixed an error when
writing float_GE types
(Case 12298).
Fixed an error in which the
last character of a String
with an odd number of
characters could not be
returned to an application
(Case 12466).
2.7.1 06/30/2010 A. Quites Adjustments in data
reception to discard
possible invalid bytes
(Case 11394).
C. Mello Updated topic Reading the
Last Exception Code (Case
11233).
Updated topic Frequently
Asked Questions (Case
11316).
2.6.3 11/26/2009 A. Quites Removed a false error
message in the log file
when reading memory data
with address zero (Case
10654).
Optimized reading of Bit
types via Superblocks
(Case 10971).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
C. Mello Changed the Wait Silence
procedure to be performed
on any errors occurring in
this Driver. Users can also
execute the Wait Silence
procedure manually by
using the new Special Tag
N2 = 9001 (Case 10850).
Added compatibility to
Windows CE platform
(Case 10914).
2.5.12 06/30/2009 A. Quites Fixed an error in the Swap
Address Delay option
(Case 10425).
Updated the default value
for PDU's maximum size,
according to the most
recent Modbus standard
(Case 10274).
Fixed an error in special
Tags that read the last
exception, which could not
report some exceptions
(Case 10337).
Fixed an error when
returning the year in SOE
registers with the current
day for GE PAC RX7
controllers (Case 10382).
Fixed an error in function
20 (Read File Record)
(Case 10312).
M. Ludwig Added a new Tag for
reading SOE events from
specific points for GE PAC
RX7 controllers (Case
10370).
2.4.10 02/17/2009 A. Quites Fixed an error when
reading Bit types with
Superblocks (Case 10100).
Implemented reading of
the most recent GE SOE
event (Case 10178).
Created default operations
for the most common
function types (Case 9185).
2.3.22 09/02/2008 C. Mello Added a new Float_GE
data type (Case 9427).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
A. Quites Fixed an error on offline
configuration of the
ModiconModbus.Modbus
Mode parameter (Case
9831).
Implemented reading of bit
masks for registers (Case
9682).
Implemented reading of an
event buffer on GE PAC
RX7 controllers (Case
9523).
Implemented the
possibility of configuring a
maximum limit for PDU
(Case 9154).
Fixed an error in byte
swapping features (Swap
Byte, Swap Word, Swap
DWord, and Rev. Frame)
when reading Word types
with Superblocks enabled
(Case 9220).
Implemented the Enable
CMS Addressing option
(Case 8665).
Revisions and tests in
rarely used Modbus
functions (Case 8730).
Improved consistency on
data written using Modbus
function 06 (Write Single
Register) (Case 8663).
2.2 05/11/2007 A. Quites Fixed an error when
reading blocks of non-
Word types with
Superblocks enabled (Case
8243).
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
VERSION DATE AUTHOR COMMENTS
2.1 01/23/2007 A. Quites Added support for
Superblocks (Case 6185).
Improved consistency of
N2/B2 parameters for Tags
accessing registers (Case
7714).
Fixed an error when
reading BCD-type data
blocks with size four (Case
7728).
Fixed an error when
reading blocks of Strings
(Case 7804).
2.0 11/10/2006 A. Quites Original version with IOKit
(Case 3339).
1.0 R. Farina Every release published
before revision control.
Copyright © 2001-2015 Elipse Software Ltda. All rights reserved. Modicon Modbus Master (ASC/RTU/TCP) Driver v3.0.11
Headquarters USA
Rua 24 de Outubro, 353 - 10º andar 2501 Blue Ridge Road, Suite 250
90510-002 Porto Alegre Raleigh - NC - 27607 USA
Phone: (+55 51) 3346-4699 Phone: (+1 252) 995-6885
Fax: (+55 51) 3222-6226 Fax: (+1 252) 995-5686
E-mail: [email protected] E-mail: [email protected]
Taiwan
9F., No.12, Beiping 2nd St., Sanmin Dist.
807 Kaohsiung City - Taiwan
Phone: (+886 7) 323-8468
Fax: (+886 7) 323-9656
E-mail: [email protected]
www.elipse.com.br
kb.elipse.com.br
[email protected]