Mvi69E-Mbtcp: User Manual
Mvi69E-Mbtcp: User Manual
Mvi69E-Mbtcp: User Manual
CompactLogix Platform
Modbus TCP/IP Enhanced
Communication Module
May 8, 2019
USER MANUAL
Your Feedback Please
We always want you to feel that you made the right decision to use our products. If you have suggestions, comments,
compliments or complaints about our products, documentation, or support, please write or call us.
ProSoft Technology, Inc.
+1 (661) 716-5100
+1 (661) 716-5101 (Fax)
www.prosoft-technology.com
support@prosoft-technology.com
May 8, 2019
ProSoft Technology®, is a registered copyright of ProSoft Technology, Inc. All other brand or product names are or
may be trademarks of, and are used to identify products and services of, their respective owners.
In an effort to conserve paper, ProSoft Technology no longer includes printed manuals with our product shipments.
User Manuals, Datasheets, Sample Ladder Files, and Configuration Files are provided at:
www.prosoft-technology.com
Content Disclaimer
This documentation is not intended as a substitute for and is not to be used for determining suitability or reliability of
these products for specific user applications. It is the duty of any such user or integrator to perform the appropriate
and complete risk analysis, evaluation and testing of the products with respect to the relevant specific application or
use thereof. Neither ProSoft Technology nor any of its affiliates or subsidiaries shall be responsible or liable for
misuse of the information contained herein. Information in this document including illustrations, specifications and
dimensions may contain technical inaccuracies or typographical errors. ProSoft Technology makes no warranty or
representation as to its accuracy and assumes no liability for and reserves the right to correct such inaccuracies or
errors at any time without notice. If you have any suggestions for improvements or amendments or have found errors
in this publication, please notify us.
No part of this document may be reproduced in any form or by any means, electronic or mechanical, including
photocopying, without express written permission of ProSoft Technology. All pertinent state, regional, and local safety
regulations must be observed when installing and using this product. For reasons of safety and to help ensure
compliance with documented system data, only the manufacturer should perform repairs to components. When
devices are used for applications with technical safety requirements, the relevant instructions must be followed.
Failure to use ProSoft Technology software or approved software with our hardware products may result in injury,
harm, or improper operating results. Failure to observe this information can result in injury or equipment damage.
Copyright © 2019 ProSoft Technology, Inc. All Rights Reserved.
Printed documentation is available for purchase. Contact ProSoft Technology for pricing and availability.
North America: +1 (661) 716-5100
Asia Pacific: +603.7724.2080
Europe, Middle East, Africa: +33 (0) 5.3436.87.20
Latin America: +1.281.298.9109
Important Safety Information
Contents
Your Feedback Please ........................................................................................................................ 2
Content Disclaimer .............................................................................................................................. 2
Important Safety Information ............................................................................................................... 3
1 Start Here 9
1.1 System Requirements ............................................................................................. 10
1.2 Deployment Checklist.............................................................................................. 11
1.3 Setting Jumpers ...................................................................................................... 11
1.4 Installing the Module in the Rack ............................................................................ 12
1.5 Package Contents ................................................................................................... 15
7 Reference 107
7.1 Product Specifications .......................................................................................... 107
7.1.1 General Specifications - Modbus Client/Server .................................................... 108
7.1.2 Hardware Specifications ....................................................................................... 108
7.2 About the Modbus TCP/IP Protocol ...................................................................... 109
7.2.1 Modbus Client ....................................................................................................... 109
7.2.2 Modbus Server...................................................................................................... 110
7.2.3 Function Codes Supported by the Module ........................................................... 110
7.2.4 Read Coil Status (Function Code 01) ................................................................... 111
Index 149
1 Start Here
In This Chapter
System Requirements ........................................................................... 10
Deployment Checklist ............................................................................ 10
Setting Jumpers .................................................................................... 11
Installing the Module in the Rack ........................................................... 12
Package Contents ................................................................................. 15
To get the most benefit from this User Manual, you should have the following
skills:
Rockwell Automation® RSLogix™ software: launch the program, configure
ladder logic, and transfer the ladder logic to the processor
Microsoft Windows: install and launch programs, execute menu commands,
navigate dialog boxes, and enter data
Hardware installation and wiring: install the module, and safely connect
Modbus and CompactLogix devices to a power source and to the MVI69E-
MBTCP module’s Ethernet port
Important: The MVI69E-MBTCP module has a power supply distance rating of 4 (L43 and L45
installations on first 2 slots of 1769 bus). It consumes 500 mA at 5 Vdc.
Important: For 1769-L23x processors, please make note of the following limitation:
1769-L23E-QBFC1B = 450 mA at 5 Vdc (No MVI69E module can be used with this processor.)
Note: The Hardware and Operating System requirements in this list are the minimum
recommended to install and run software provided by ProSoft Technology®. Other third party
applications may have different minimum requirements. Refer to the documentation for any third
party applications for system requirements.
Note: If you are installing the module in a remote rack, you may prefer to leave the Setup pins
jumpered. That way, you can update the module’s firmware without requiring physical access to
the module.
Warning: Please follow all safety instructions when installing this or any other electronic devices.
Failure to follow safety procedures could result in damage to hardware or data, or even serious
injury or death to personnel. Refer to the documentation for each device to be connected to verify
that suitable safety procedures are in place before installing or servicing the device.
After you verify the jumper placements, insert the MVI69E-MBTCP into the rack.
Use the same technique recommended by Rockwell Automation to remove and
install CompactLogix modules.
Warning: This module is not hot-swappable! Always remove power from the rack before
inserting or removing this module, or damage may result to the module, the processor, or other
connected devices.
1 Align the module using the upper and lower tongue-and-groove slots with the
adjacent module and slide forward in the direction of the arrow.
2 Move the module back along the tongue-and-groove slots until the bus
connectors on the MVI69 module and the adjacent module line up with each
other.
3 Push the module’s bus lever back slightly to clear the positioning tab and
move it firmly to the left until it clicks. Ensure that it is locked firmly in place.
5 Press the DIN-rail mounting area of the controller against the DIN-rail. The
latches momentarily open and lock into place.
Important: Before beginning the installation, please verify that all of the following items are
present.
In This Chapter
Creating the Module in an RSLogix 5000 Project .................................. 17
Installing ProSoft Configuration Builder ................................................. 24
Generating the AOI (.L5X File) in ProSoft Configuration Builder ........... 25
Creating a New RSLogix 5000 Project .................................................. 30
Importing the Add-On Instruction........................................................... 31
Adding Multiple Modules in the Rack (Optional) .................................... 34
1 Run the MPSetup.exe file to start the Setup Wizard. Follow the Setup Wizard
to install the AOP.
3 Click FINISH when complete. The AOP is now installed in RSLogix 5000. You
do not need to reboot the PC.
2 In the Module Type Vendor Filters area, uncheck all boxes except the
PROSOFT TECHNOLOGY box. A list of ProSoft Technology modules appears.
Note : The I/O TABLE SIZES above should reflect the Block Transfer Size parameter set in ProSoft
Configuration Builder (see Module Configuration Parameters (page 47)).
2 Enter GENERIC in the search text box and select the GENERIC 1769 MODULE. If
you're using an earlier version of RSLogix, expand OTHER in the Select
Module dialog box, and then select the GENERIC 1769 MODULE.
4 On the Connection tab, set the REQUESTED PACKET INTERVAL value for your
project and click OK.
The PCB window consists of a tree view on the left, and an information pane and
a configuration pane on the right side of the window. The tree view consists of
folders for Default Project and Default Location, with a Default Module in the
Default Location folder. The following illustration shows the PCB window with a
new project.
1 In the Tree view, right-click DEFAULT MODULE, and then choose CHOOSE
MODULE TYPE. This opens the Choose Module Type dialog box.
2 In the Product Line Filter area of the dialog box, click MVI69. In the Select
Module Type dropdown list, click MVI69E-MBTCP, and then click OK to save
your settings and return to the ProSoft Configuration Builder window. The
MVI69E-MBTCP icon is now visible in the tree view.
1 Expand the MVI69E-MBTCP icon by clicking the [+] symbol beside it.
Similarly, expand the icon.
4 Edit the Slot Number indicating where the module is located in the 1769 bus.
5 Click OK to close the Edit – Module dialog box. The .L5X file is now ready to
export to the PC/Laptop.
6 Right-click the MVI69E-MBTCP icon in the project tree and choose EXPORT
AOI FILE.
7 Save the .L5X file to the PC/Laptop in an easily found location, such as the
Windows Desktop.
Note: You can place the Add-On Instruction in a different routine than the MainRoutine. Make sure
to add a rung with a jump instruction (JSR) in the MainRoutine to jump to the routine containing the
Add-On Instruction.
5 Select the .L5X file that you exported from ProSoft Configuration Builder. See
Creating and Exporting the .L5X File (page 27).
This opens the Import Configuration dialog box. Click TAGS under
MAINROUTINE to display the controller tags in the Add-On Instruction.
Note: If you are using RSLogix version 16 or earlier, the Import Configuration dialog box does not
contain the Import Content tree.
6 If the module is not located in the default slot (or is in a remote rack), edit the
connection input and output variables that define the path to the module in
the FINAL NAME column (NAME column for RSLogix version 16 or less). For
example, if your module is located in slot 3, change Local:1:I in the FINAL
NAME column to Local:3:I. Do the same for Local:1:O.
Note: If your module is located in Slot 1 of the local rack, this step is not required.
When the import is completed, the new rung with the Add-On Instruction is
visible as shown in the following image.
The procedure has also imported new user-defined data types, data objects
and the Add-On instruction to be used in the project with the MVI69E-MBTCP
module.
Important: This procedure is for multiple MVI69E-MBTCP modules running in the same
CompactLogix rack
You can add additional modules of the same type to the rack.
1 Add a new MVI69E-MBTCP module to the ProSoft Configuration Builder
(PCB) project.
2 Export the module configuration as an L5X file.
3 Add a new MVI69E-MBTCP to the RSLogix 5000 project.
4 Import the .L5X file into RSLogix 5000 for the new module as an Add-On
Instruction.
4 In the Choose Module Type dialog box, select MVI69E in the PRODUCT LINE
FILTER area, and then select MVI69E-MBTCP as the MODULE TYPE. Click
OK.
5 Select the MVI69E-MBTCP module in the tree and repeat the above steps to
add a second (or more) module in the PCB project.
Note: You must give each MVI69E-MBTCP module a unique name. The default name on a
duplicate module appends a number to the end such as MVI69E-MBTCP_000, MVI69E-
MBTCP_001, etc.
6 You can rename the module by right clicking the module and selecting
Rename.
6 You must also import the Add-On Instruction(AOI) for the new module (see
Adding another module in PCB). In the Controller Organizer pane, double-
click MAINROUTINE to open the ladder for the routine.
7 Right-click an empty rung in the routine and then choose IMPORT RUNGS…
8 Select the .L5X file you created and exported for the new module, and click
IMPORT. Recall that the new .L5X file has a unique filename that is specific to
the new module.
9 This opens the Import Configuration dialog box. Click TAGS to show the
controller tags in the AddOn Instruction. You must edit the FINAL NAME
column of the tags for the second module to make them unique.
11 Click OK.
The setup procedure is now complete. Save the project. It is ready to download
to the CompactLogix processor.
In This Chapter
Basic PCB Functions ............................................................................. 44
ProSoft Configuration Builder (PCB) provides a quick and easy way to manage
module configuration files customized to meet your application needs.
You build and edit the module’s configuration in ProSoft Configuration Builder.
You use PCB to download the configuration file to the CompactLogix processor,
where it is stored in the MBTCP.CONFIG controller tag generated by the
previously exported AOI. See Creating and Exporting the .L5X File (page 27).
When the MVI69E-MBTCP module boots up, it requests the processor to send
the configuration over the backplane in special Configuration Blocks.
See the chapter Adding the Module to RSLogix (page 16) for the procedures to
create a new PCB project and export a .L5X file for the processor. This chapter
describes the module configuration parameters in detail, as well as how to
download the configuration to the processor using PCB.
Note: Depending on the parameter, you must enter text, or a valid number, or select from a list of
options.
5 Double-click any icon to open an Edit dialog box with a table. Use this
dialog box to build and edit Modbus Client commands.
7 To edit the row, click EDIT ROW. This opens an Edit dialog box.
3.2.1 Module
This section contains general module configuration parameters. In the ProSoft
Configuration Builder (PCB) tree view, expand the MVI69E-MBTCP icon, then
expand MODULE, and then double-click the MODULE icon.
Important: The sum of the Read Register Count and Write Register Count cannot exceed 10,000
total registers. Furthermore, neither the Read Data nor the Write Data area may extend above
module register 9999. The Read Data and Write Data areas must have separate address ranges in
the module database and must not overlap.
Output Offset 0 to 9999 Specifies the offset address into the internal Modbus database
for network requests for Modbus function 1, 5 or 15
commands. For example, if you set the value to 100, an
address request of 0 corresponds to register 100 in the
database.
Bit Input Offset 0 to 9999 Specifies the offset address into the internal Modbus database
for network requests for Modbus function 2 commands. For
example, if you set the value to 150, an address request of 0
returns the value at register 150 in the database.
Holding Register 0 to 9999 Specifies the offset address in the internal Modbus database
Offset for network requests for Modbus function 3, 6, or 16
commands. For example, if you enter a value of 50, a request
for address 0 corresponds to the register 50 in the database.
Word Input Offset 0 to 9999 Specifies the offset address into the internal Modbus database
for network requests for Modbus function 4 commands. For
example, if you set the value to 150, an address request of 0
returns the value at register 150 in the database.
Connection 0 to 1200 Specifies the server’s timeout period if it is not receiving any
Timeout new data in the amount of seconds preset.
Float Start 0 to 9998 Specifies the first register of floating-point data. All requests with
register values greater-than or equal to this value are considered
floating-point data requests. This parameter is only used if the
Float Flag is enabled.
Float Offset 0 to 9998 Specifies the start register for floating-point data in the internal
database. This parameter is used only if the Float Flag is
enabled.
ARP Timeout 1 to 60 Specifies the number of seconds to wait for an ARP reply after a
seconds request is issued. If the value is out of range, the module uses
the default value of 5.
Command Error Delay 0 to 300 Specifies the number of 100 millisecond intervals to turn off a
command in the error list after an error is recognized for the
command. If you set this parameter to 0, there is no delay.
MBAP Port Override Yes or No Override default port settings.
NO = Use standard server Port 502 with MBAP format
messages. All other server Port values use encapsulated
Modbus message format (RTU via TCP).
YES = Use MBAP format messages for all server Port values.
RTU via TCP is not used.
Note: The first command in the Client x Command list cannot be disabled.
The MBTCP Modbus client (and server) communication drivers support several
data read and write commands. When you configure a command, you need to
consider the type of data (bit, 16-bit integer, 32-bit float, etc), and the level of
Modbus support in the server equipment.
In the ProSoft Configuration Builder tree view, double-click the MBTCP CLIENT X
COMMANDS icon.
Register Count 1 to 125 (words) Specifies the number of registers or digital points to be associated
or with the command. Modbus Function Codes 5 and 6 ignore this
1 to 800 (coils) field as they only apply to a single data point.
For Modbus Function Codes 1, 2, and 15, this parameter sets the
number of single bit digital points (inputs or coils) to be associated
with the command.
For Modbus Function Codes 3, 4, and 16, this parameter sets the
number of 16-bit registers to be associated with the command.
Swap Code No Change, Defines if the data received from the Modbus server is to be
Word Swap, ordered differently than received from the server device. This
Word and Byte parameter is helpful when dealing with floating-point or other multi-
Swap, register values, as there is no standard method of storing these
Byte Swap data types in server devices. You can set this parameter to order
the register data received in an order useful by other applications.
NO CHANGE = No change is made in the byte ordering (ABCD =
ABCD)
WORD SWAP = The words are swapped (ABCD= CDAB)
WORD AND BYTE SWAP = The words are swapped, then the bytes
in each word are swapped (ABCD=DCBA)
BYTE SWAP = The bytes in each word are swapped
(ABCD=BADC)
Note: Each pair of characters is a byte (example: AB and CD).
Two pairs of characters is a 16-bit register (example: ABCD).
Node IP Address xxx.xxx.xxx.xxx Specifies the IP address of the target device being addressed by
the command.
Service Port 1 to 65535 Use a value of 502 when addressing Modbus TCP/IP servers
which are compatible with the Schneider Electric MBAP
specifications (most devices).
If a server implementation supports another service port, enter the
value here. Service Port 2000 is common for encapsulated format
messages.
Slave Address 0 to 255 Mainly used for Modbus TCP/IP to serial conversion. This
specifies the Modbus slave node address on the serial network to
be considered.
If a Modbus TCP/IP server device does not have or need a slave
address, use a value of ‘1’.
If you set the value to zero, the command is a broadcast message
on the network. The Modbus protocol permits broadcast
commands for write operations. Do not use this node address for
read operations.
Modbus Function 1, 2, 3, 4, 5, 6, 15, Specifies the Modbus function to be executed by the command.
16 These function codes are defined in the Modbus protocol.
1 = Read Coil Status (0xxxx)
2 = Read Input Status (1xxxx)
3 = Read Holding Registers (4xxxx)
4 = Read Input Registers (3xxxx)
5 = Force (Write Single) Coil (0xxxx)
6 = Force (Write Single) Holding Register (4xxxx)
15 = Preset (Write) Multiple Coils (0xxxx)
16 = Preset (Write) Multiple Registers (4xxxx)
MB Address in 0 to 9999 Specifies the register or digital point address offset within the
Device Modbus server device. The MBTCP client reads or writes from/to
this address within the server.
Refer to the documentation of each Modbus server device for their
3.2.5 Ethernet 1
This section defines the permanent IP address, Subnet Mask, and Gateway of
the module.
In the ProSoft Configuration Builder tree view, double-click the ETHERNET 1 icon.
Parameter Description
IP Address Unique IP address assigned to the module
Netmask Subnet mask of module
Gateway Gateway (if used)
Hardware MAC FF.FF.FF.FF.FF.FF This table contains a list of static MAC addresses that the
Address module uses when an ARP is required. The module accepts
up to 40 static IP/MAC address data sets.
Important: If the device in the field is changed, this table must
be updated to contain the new MAC address for the device
and downloaded to the module. If the MAC is not changed,
there is no communication with the module.
3 Browse to, and then click the CompactLogix processor and click OK.
4 Notice the CIPConnect path has been updated in the Download Configuration
File dialog box. Click TEST CONNECTION to verify the path is active and can
successfully connect to the processor.
6 After rebooting, the ladder logic sends the configuration data from the
processor to the module. When that is complete, the module starts Modbus
communications.
2 In the Upload Configuration File dialog box, the CIPConnect path should
already be constructed if you have previously downloaded the configuration
file from the same PC. If not, click RSWHO, browse to, and then select the
CompactLogix Processor, and click OK.
3 Click TEST CONNECTION to verify the path is active and can successfully
connect to the processor.
In This Chapter
General Concepts of the MVI69E-MBTCP Data Transfer ..................... 63
Backplane Data Transfer ....................................................................... 64
Normal Data Transfer ............................................................................ 65
Data Flow Between the Module and Processor..................................... 70
After the module has received the module configuration, the module begins
communicating with other devices on the Modbus network, depending on the
Modbus configuration of the module.
All data transferred between the module and the processor over the backplane is
through the input and output images. Ladder logic in the CompactLogix
processor interfaces the input and output image data with data defined in the
Controller Tags. All data used by the module is stored in its internal database.
This database is defined as virtual MBTCP data tables with addresses from 0 to
the maximum number of points for each data type.
Step Description
1 Any time the module restarts (boots or reboots), the server port driver receives
configuration information from the MBTCP controller tags. This information configures the
Ethernet port and defines Server driver characteristics. The configuration information may
also contain instructions to offset data stored in the database to addresses different from
addresses requested in the received messages.
2 A Modbus client device, such as a Modicon PLC or an HMI application, issues a read or
write command to the module’s IP address. The Server driver qualifies the message before
accepting it into the module. Rejected commands cause an Exception Response.
3 After the module accepts the command, the data is immediately transferred to or from the
module’s internal database. On a read command, the data is read from of the database and
a response message is built. On a write command, the data is written directly into the
database and a response message is built.
4 After Steps 2 and 3 have been completed, either a normal response message or an
Exception Response message is sent to the client.
5 Counters are available in the Status Block to permit the ladder logic program to determine
the level of activity of the Server driver.
In Server Pass-Through mode, write commands from the client are handled
differently than they are in Normal mode. In Server Pass-Through mode, all write
requests are passed directly to the processor and data is not written directly into
the module’s database.
This mode is especially useful when both a Modbus client and the module’s
processor logic need to be able to read and write values to the same internal
database addresses.
The following diagram shows the data flow for a server port with Pass-Through
enabled:
Step Description
1 Same as normal mode.
2 Same as normal mode.
3 a. In Pass-Through mode, if the Server driver receives a read request, it looks for the
data in module’s internal database, just as it would in Normal mode.
b. The data needed to respond to the read command is retrieved directly from the
internal database and returned to the Server driver so it can build a response message.
c. In Pass-Through mode, if the Server Driver receives a write request, it does not send
the data directly to the module’s internal database. It puts the data to be written into a
special Input Image with a special Block ID code to identify it as a Pass-Through Write
Block and substitutes this special block in place of the next regular Read Data Block. The
special block is processed by the ladder logic and the data to be written is placed into the
WriteData controller tag array at an address that corresponds to the Modbus Address
received in the write command.
d. During normal backplane communications, the data from the WriteData array,
including the data updated by the Pass-Through Write Block, is sent to the module’s
internal database. This gives the ladder logic the opportunity to also change the values
stored in these addresses, if need be, before they are written to the database.
Note: The ReadData array is not used in Pass-Through mode.
4 Same as normal mode.
5 Same as normal mode.
Step Description
1 Upon module boot-up, the Client driver obtains configuration data from the MBTCP
controller tags. The configuration data retrieved includes Ethernet configuration and the
Client Command List.
Special Commands can be issued directly from the CompactLogix processor using Event
Commands and Command Control. The Client driver uses these command values to
determine the types and order of commands to send to server on the network.
2 After configuration, the Client driver begins transmitting read and/or write commands to
server nodes on the network. If the Client driver is writing data to a server, the data for
the write command is retrieved from the module’s internal database.
3 Once the specified server has successfully processed the command, it returns a
response message to the Client driver for processing.
4 Data received from a server in response to a read command is stored in the module’s
internal database.
5 Status is returned to the processor for each command in the Client Command List.
Important: Take care when constructing each command in the list to ensure predictable operation
of the module. If two commands write to the same internal database address of the module, the
results are invalid. All commands containing invalid data are ignored by the module.
Note: 125 words is the maximum count allowed by the Modbus protocol. Some field devices may
support less than the full 125 words. Check with the device manufacturer for the maximum count
supported by the particular slave device.
Server IP Address.
Modbus Service Port of the server.
Modbus Function Code: This is the type of command that is issued.
Source or destination address in the server device.
Note: The Command Error List must be placed in the Read Data area of the database, so it can be
transferred to the processor in the input image. Each MBTCP client must place their own
Command Error List within the Read Data area so that they do not overlap each other.
In This Chapter
Controller Tags ...................................................................................... 75
User-Defined Data Types (UDTs) ......................................................... 76
MBTCP Controller Tag Overview .......................................................... 79
The five lower-level controller tag structures contain other controller tags and
controller tag structures. Click the [+] sign next to any controller tag structure to
expand it and view the next level in the structure.
For example, if you expand the MBTCP.DATA controller tag structure, you see
that it contains two controller tag arrays, MBTCP.DATA.ReadData and
MBTCP.DATA.WriteData, which are 600-element integer arrays by default.
The controller tags in the Add-On Instruction are commented in the DESCRIPTION
column.
Notice that the DATA TYPE column displays the data types used to declare each
controller tag, controller tag array or controller tag structure. Individual controller
tags are declared with basic data types, such as INT and BOOL. Controller tag
arrays are declared with arrays of basic data types. Controller tag structures are
declared with user-defined data types (UDTs).
Click the [+] signs to expand the UDT structures and view lower-level UDTs.
For example, if you expand MBTCP.DATA, you see that it contains two UDTs,
ReadData and WriteData. Both of these are 600-element integer arrays by
default.
Notice that these UDTs are the data types used to declare the
MBTCP.DATA.ReadData and MBTCP.DATA.WriteData controller tag arrays.
The UDTs are commented in the DESCRIPTION column.
Tip: If more than 600 words of Read or Write Data are needed, the MBTCP.DATA.ReadData and
MBTCP.DATA.WriteData controller tag arrays can be expanded. Simply edit the size of the
ReadData or WriteData integer array in the Data Type column of the MBTCPDATA UDT. In the
example below, the ReadData array size has been changed to 2000. Save and download the
ladder program for this change to take effect.
5.3.1 MBTCP.CONFIG
When ProSoft Configuration Builder (PCB) downloads the configuration file from
the PC to the processor, the processor stores the configuration file data in the
MBTCP.CONFIG.FileData array. Its CRC is also included in this array.
You cannot edit this array directly. You must use PCB to edit the module
configuration since PCB calculates a unique CRC to protect data integrity. Any
change to the configuration parameters directly in this array do not match the
calculated CRC.
Tag Name Description
MBTCP.CONFIG.FileData This parameter contains the MBTCP configuration data after it
has been downloaded from PCB. It is displayed in ASCII format.
Note: MBTCP configuration changes cannot be made directly in
this array; the configuration must be downloaded with PCB.
MBTCP.CONFIG.FileSize Configuration file size (MBTCP.CONFIG.FileData array) in bytes.
MBTCP.CONFIG.FileCRC32 CRC checksum of the configuration file stored in the array.
MBTCP.CONFIG.FileStatus Configuration file status. 0 = No file present, 1 = File present
5.3.2 MBTCP.DATA
This array contains the Read Data and Write Data arrays for processor-to-
module communication.
5.3.3 MBTCP.CONTROL
This array handles special tasks requested by the processor.
MBTCP.CONTROL
This array allows the processor to dynamically enable configured commands for
execution.
MBTCP.CONTROL.EventCommand_DBData
This array allows the processor to dynamically build Modbus commands with
data associated to the module’s database. This feature is meant for periodic
execution such as resetting clock and zeroing-out counters.
MBTCP.CONTROL.EventCommand_PLCData
This array allows the processor to dynamically build Modbus commands with
PLC processor data. This feature is meant for periodic execution such as
resetting the clock and zeroing-out counters.
MBTCP.CONTROL.EventSequenceCommand
This tag array contains the values needed to build one Modbus TCP/IP
command, have it sent to a specific client on the module, and control the
processing of the returned response block.
MBTCP.CONTROL.Time
This array allows the processor to get or set module time.
Tag Name Range Description
MBTCP.CONTROL.Time.SetTime 0 or 1 Sends the PLC time to the module
0 = Disable, 1 = Enable
MBTCP.CONTROL.Time.GetTime 0 or 1 Retrieves the time from the module to PLC
0 = Disable, 1 = Enable
MBTCP.CONTROL.Time.Year 0 to 9999 Four digit year value. Example: 2014
MBTCP.CONTROL.Time.Month 1 to 12 Month
MBTCP.CONTROL.Time.Day 1 to 31 Day
MBTCP.CONTROL.Time.Hour 0 to 23 Hour
MBTCP.CONTROL.Time.Minute 0 to 59 Minute
MBTCP.CONTROL.Time.Second 0 to 59 Second
MBTCP.CONTROL.Time.Milliseconds 0 to 999 Millisecond
MBTCP.CONTROL.Time.Error 0 or -1 0 = OK
-1 = Error present
MBTCP.CONTROL.ClientServerControl
This array allows the control and retrieval of driver command active bits.
Tag Name Range Description
MBTCP.CONTROL.ClientServerControl. 0 or 1 Toggle client/server control
Trigger 0 = Disable, 1 = Enable
MBTCP.CONTROL.ClientServerControl. 0 or 1 Server active state:
ActiveServer 0 = Disable, 1 = Enable
MBTCP.CONTROL.ClientServerControl. Client 0 to 15 bit map for active status of clients
ActiveClient_0to15
MBTCP.CONTROL.ClientServerControl. Client 16 to 19 bit map for active status of
ActiveClient_16to19 clients
MBTCP.CONTROL.ClientServerControl. 0 or 1 Client 0 to 19 command active bits. One word
ActiveClientCmd[x] for each client. Each bit is a command.
0 = Disable, 1 = Enable
MBTCP.CONTROL.ClientServerControl. 0 or 1 Toggle request for status
GetStatus 0 = Disable, 1 = Enable
MBTCP.CONTROL.ClientServerControl. 0 or 1 Server active state
ServerStatus 0 = Disabled, 1 = Enabled
MBTCP.CONTROL.ClientServerControl. Client 0 to 15 bit map for active status of clients
Client_0to15Status
MBTCP.CONTROL.ClientServerControl. Client 16 to 19 bit map for active status of
Client_16to19Status clients
MBTCP.CONTROL.ClientServerControl. 0 or 1 Clients 0 to 19 command active bits. One word
ClientCmdStatus[x] for each client. Each bit is a command.
0 = Disabled, 1 = Enabled
MBTCP.CONTROL.ResetStatus
This array resets the module along with client and server status tags.
MBTCP.CONTROL.EventSequenceCounts
This tag triggers the counting of the event sequence operation.
MBTCP.CONTROL.EventSequenceStatus
This tag triggers the request for the event sequence status.
MBTCP.CONTROL.GetGeneralStatus
This tag triggers the request for the general status of the module.
MBTCP.CONTROL.GetEventDataStatus
This tag triggers the request of the event status.
MBTCP.CONTROL. ColdBoot
This tag triggers the processor to Coldboot the module (full reboot).
MBTCP.CONTROL.WarmBoot
This tag triggers the processor to Warmboot the module (driver reboot).
5.3.4 MBTCP.STATUS
This array contains the status information of the module.
MBTCP.STATUS.Block
This array contains block status.
Tag Name Description
MBTCP.STATUS.Block.Read Total number of read blocks transferred from the module to the
processor
MBTCP.STATUS.Block.Write Total number of write blocks transferred from the processor to
the module
MBTCP.STATUS.Block.Parse Total number of blocks successfully parsed that were received
from the processor
MBTCP.STATUS.Block.Event Total number of event command blocks received from the
processor
MBTCP.STATUS.Block.Cmd Total number of command blocks received from the processor
MBTCP.STATUS.Block.Err Total number of block transfer errors recognized by the module
MBTCP.STATUS.ClientStatus
This array contains the status of a specific MBTCP client (0 to 19).
MBTCP.STATUS.EventSeqStatus
This array contains the status of the event command queue.
MBTCP.STATUS.EventSeqCounts
This array indicates the number of commands waiting in the command queue.
Byte 1: Number of Event sequence commands for which status has not yet been
retrieved (up to 15). This corresponds to the
MNETC.STATUS.EventSeqCmdPending.Client[x]_QueueCount controller tag.
Byte 2: Total number of commands waiting in the command queue. This includes
Event Commands, Event Commands with Sequence Numbers, and Command
Control messages. This corresponds to the
MBTCP.STATUS.EventSeqStatus.MessageCount controller tag.
MBTCP.STATUS.GeneralStatus
This array contains the general status of the module including firmware revision
and general communication status.
0 = Disable, 1 = Enable
MBTCP.STATUS.GeneralStatus. Each bit in each of the 19 words is used to enable/disable the
Client1to19CmdExecutionWord commands for clients 1 to 19.
0 = Disable, 1 = Enable
MBTCP.STATUS.GeneralStatus. Bit mapped (1 bit per client 0 to 19)
EventSeqReady Bit = 0, no event sequence status data ready
Bit = 1, event sequence status data ready
MBTCP.STATUS.GeneralStatus. Increments each time an encapsulated Modbus TCP/IP (Service
MNetRequestCount port 2000) request is received.
MBTCP.STATUS.GeneralStatus. Increments each time an encapsulated Modbus TCP/IP (Service
MNetResponseCount port 2000) response message is sent.
MBTCP.STATUS.GeneralStatus. Increments each time an error is sent from a server on service
MnetErrorSent port 2000.
MBTCP.STATUS.GeneralStatus. Increments each time an error is received from a server on
MNETErrorReceived service port 2000.
MBTCP.STATUS.GeneralStatus. Increments each time a MBAP (Service port 502) request is
MBAPRequestCount received.
MBTCP.STATUS.GeneralStatus. Increments each time a MBAP (Service port 502) response
MBAPResponseCount message is sent.
MBTCP.STATUS.GeneralStatus. Increments each time an error is sent from the server on service
MBAPErrorSent port 502.
MBTCP.STATUS.GeneralStatus. Increments each time an error is received from a server on
MBAPErrorReceived service port 502.
MBTCP.STATUS.GetEventDataStatus
This array contains the status of the event command last executed.
5.3.5 MBTCP.UTIL
The array is used for internal ladder processing. It should not be modified.
In This Chapter
Ethernet LED Indicators ........................................................................ 93
LED Status Indicators ............................................................................ 94
Connecting the PC to the Module's Ethernet Port ................................. 96
Using the Diagnostics Menu in ProSoft Configuration Builder ............... 98
Communication Error Codes ............................................................... 104
Connecting to the Module’s Webpage ................................................. 105
During module configuration, the OK LED is red and the BP LED is on. If the BP
ACT and OK LEDs blink at a rate of every one-second, this indicates a serious
problem with the module. Call ProSoft Technology Technical Support to arrange
for repairs.
If the module's OK LED does not turn GREEN, verify that the module is inserted
completely into the rack. If this does not cure the problem, contact ProSoft
Technology Technical Support.
6.2.2 Troubleshooting
Use the following troubleshooting steps if you encounter problems when the
module is powered up. If these steps do not resolve your problem, please contact
ProSoft Technology Technical Support.
Processor Errors
Problem description Steps to take
Processor fault Verify that the module is securely plugged into the slot that has been
configured for the module in the I/O Configuration in RSLogix.
Verify that the slot location in the rack has been configured correctly in
the ladder logic.
Processor I/O LED This indicates a problem with backplane communications. A problem
flashes could exist between the processor and any installed I/O module, not just
the MVI69E-MBTCP. Verify that all modules in the rack are correctly
configured.
Module Errors
Problem description Steps to take
BP ACT LED (not This indicates that backplane transfer operations are failing. Connect to
present on MVI56E the module’s Configuration/Debug port to check this.
modules) remains OFF To establish backplane communications, verify the following items:
or blinks slowly The processor is in RUN or REM RUN mode.
MVI69 modules with The backplane driver is loaded in the module.
scrolling LED display:
<Backplane Status> The module is configured for read and write data block transfer.
condition reads ERR The ladder logic handles all read and write block situations.
The module is properly configured in the processor I/O configuration
and ladder logic.
OK LED remains RED The program has halted or a critical error has occurred. Connect to the
Configuration/Debug (or communication) port to see if the module is
running. If the program has halted, turn off power to the rack, remove the
card from the rack and re-insert it, and then restore power to the rack.
To use ProSoft Configuration Builder, arrange the Ethernet connection so that there is no router/
layer 3 switch between the computer and the module, OR reconfigure the router/ layer 3 switch to
allow routing of the UDP broadcast messages.
1 In the tree view in ProSoft Configuration Builder (PCB), select the MVI69E-
MBTCP module. (For instructions on opening and using a project in PCB,
please refer to the chapter Configuring the MVI69E-MBTCP Using PCB
(page 42).
4 In the Connection Setup dialog box, click BROWSE DEVICE(S) to start ProSoft
Discovery Service. Right-click the module and choose ASSIGN TEMPORARY
IP.
Important: The temporary IP address is only valid until the next time the module is initialized. For
information on how to set the module’s permanent IP address, see Ethernet 1 (page 55) .
6 Close the ProSoft Discovery Service window. Enter the temporary IP address
in the Ethernet address field of the Connection Setup dialog box, then click
TEST CONNECTION to verify that the module is accessible with the current
settings.
7 If the Test Connection is successful, click CONNECT. The Diagnostics window
is now accessible. See Using the Diagnostics Menu in ProSoft Configuration
Builder (page 98) for more information.
3 After the Diagnostics window opens, click the SETUP CONNECTION button to
browse for the module’s IP address.
4 In the Ethernet field of the Connection Setup dialog box, enter the current IP
address, whether it is temporary or permanent. Click TEST CONNECTION to
verify that the module is accessible with the current settings.
Note: If an error code is reported that is not listed below, check with the documentation of the
Modbus device(s) on the module's application ports. Modbus devices can produce device-specific
error codes.
Note: If an error code is reported that is not listed above, check with the documentation of the end
device. Device-specific error codes can be produced by the end device.
2 In the Connection Setup dialog box, click BROWSE DEVICE(S) to start the
ProSoft Discovery Service.
3 Right-click the module icon and choose VIEW MODULE’S WEBPAGE to launch
your default browser and display the module’s webpage.
7 Reference
In This Chapter
Product Specifications ......................................................................... 107
About the Modbus TCP/IP Protocol ..................................................... 108
Floating-Point Support ......................................................................... 121
Function Blocks ................................................................................... 127
Ethernet Port Connection .................................................................... 145
Command List Up to 16 commands per client, each fully configurable for function,
server IP address, register to/from addressing and word/bit count.
Polling of command list Configurable polling of command list, including continuous and on
change of data, and dynamically user or automatic enabled.
Status Data Error codes available on an individual command basis. In addition,
a server status list is maintained per active Modbus client.
Query
This function allows you to obtain the ON/OFF status of logic coils (Modbus 0x
range) used to control discrete outputs from the addressed server only.
Broadcast mode is not supported with this function code. In addition to the server
address and function fields, the message requires that the information field
contain the initial coil address to be read (Starting Address) and the number of
locations that are interrogated to obtain status data.
The addressing allows up to 2000 coils to be obtained at each request; however,
the specific server device may have restrictions that lower the maximum quantity.
The coils are numbered from zero; (coil number 1 = zero, coil number 2 = one,
coil number 3 = two, and so on).
The following table is a sample read output status request to read coils 0020 to
0056 (37 coils) from server device number 11.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display
Node Function Data Start Data Start Number of Number of Error Check
Address Code Point High Point Low Points High Points Low Field (2 bytes)
0B 01 00 13 00 25 CRC
Response
An example response to Read Coil Status is as shown in the table below. The
data is packed one bit for each coil. The response includes the server address,
function code, quantity of data characters, the data characters, and error
checking. Data is packed with one bit for each coil (1 = ON, 0 = OFF). The low
order bit of the first character contains the addressed coil, and the remainder
follows. For coil quantities that are not even multiples of eight, the last characters
are filled in with zeros at high order end. The quantity of data characters is
always specified as quantity of RTU characters, that is, the number is the same
whether RTU or ASCII is used.
Because the server interface device is serviced at the end of a controller's scan,
data reflects coil status at the end of the scan. Some servers limit the quantity of
coils provided each scan; thus, for large coil quantities, multiple PC transactions
must be made using coil status from sequential scans.
Node Func Byte Data Coil Data Coil Data Coil Data Coil Data Coil Error Check
Address Code Count Status 20 Status 28 Status 36 Status 44 Status 52 Field
to 27 to 35 to 43 to 51 to 56 (2 bytes)
0B 01 05 CD 6B B2 OE 1B CRC
Query
This function allows you to obtain the ON/OFF status of discrete inputs (Modbus
1x range) in the addressed server. PC Broadcast mode is not supported with this
function code. In addition to the server address and function fields, the message
requires that the information field contain the initial input address to be read
(Starting Address) and the number of locations that are interrogated to obtain
status data.
The addressing allows up to 2000 inputs to be obtained at each request;
however, the specific server device may have restrictions that lower the
maximum quantity. The inputs are numbered form zero; (input 10001 = zero,
input 10002 = one, input 10003 = two, and so on, for a 584).
The following table is a sample read input status request to read inputs 10197 to
10218 (22 coils) from server number 11.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Data Start Data Start Number of Number of Error Check
Address Code Point High Point Low Points High Points Low Field (2 bytes)
0B 02 00 C4 00 16 CRC
Response
An example response to Read Input Status is as shown in the table below. The
data is packed one bit for each input. The response includes the server address,
function code, quantity of data characters, the data characters, and error
checking. Data is packed with one bit for each input (1=ON, 0=OFF). The lower
order bit of the first character contains the addressed input, and the remainder
follows. For input quantities that are not even multiples of eight, the last
characters are filled in with zeros at high order end. The quantity of data
characters is always specified as a quantity of RTU characters, that is, the
number is the same whether RTU or ASCII is used.
Because the server interface device is serviced at the end of a controller's scan,
the data reflect input status at the end of the scan. Some servers limit the
quantity of inputs provided each scan; thus, for large coil quantities, multiple PC
transactions must be made using coil status for sequential scans.
Node Func Byte Data Discrete Data Discrete Data Discrete Error Check
Address Code Count Input 10197 to Input 10205 to Input 10213 to Field
10204 10212 10218 (2 bytes)
0B 02 03 AC DB 35 CRC
Query
This function allows you to retrieve the contents of holding registers 4xxxx
(Modbus 4x range) in the addressed server. The registers can store the
numerical values of associated timers and counters which can be driven to
external devices. The addressing allows retrieving up to 125 registers at each
request; however, the specific server device may have restrictions that lower this
maximum quantity. The registers are numbered form zero (40001 = zero, 40002
= one, and so on). The broadcast mode is not allowed.
The example below reads registers 40108 through 40110 (three registers) from
server number 11.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Data Start Data Start Data Number Data Number Error Check
Address Code Registers Registers Low of Registers of Registers Field
High High Low (2 bytes)
0B 03 00 6B 00 03 CRC
Response
The addressed server responds with its address and the function code, followed
by the information field. The information field contains 1 byte describing the
quantity of data bytes to be returned. The contents of the registers requested
(DATA) are two bytes each, with the binary content right justified within each pair
of characters. The first byte includes the high order bits and the second, the low
order bits.
Because the server interface device is normally serviced at the end of the
controller's scan, the data reflect the register content at the end of the scan.
Some servers limit the quantity of register content provided each scan; thus for
large register quantities, multiple transmissions are made using register content
from sequential scans.
In the example below, the registers 40108 to 40110 have the decimal contents
555, 0, and 100 respectively.
Node Function Byte High Low High Low High Low Error Check
Address Code Count Data Data Data Data Data Data Field
(2 bytes)
0B 03 06 02 2B 00 00 00 64 CRC
Query
This function retrieves the contents of the controller's input registers from the
Modbus 3x range. These locations receive their values from devices connected
to the I/O structure and can only be referenced, not altered from within the
controller, The addressing allows retrieving up to 125 registers at each request;
however, the specific server device may have restrictions that lower this
maximum quantity. The registers are numbered for zero (30001 = zero, 30002 =
one, and so on). Broadcast mode is not allowed.
The example below requests the contents of register 30009 in server number 11.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Data Start Data Start Data Number Data Number Error Check
Address Code Point High Point Low of Points High of Points Low Field
(2 bytes)
0B 04 00 08 00 01 CRC
Response
The addressed server responds with its address and the function code followed
by the information field. The information field contains 1 byte describing the
quantity of data bytes to be returned. The contents of the registers requested
(DATA) are 2 bytes each, with the binary content right justified within each pair of
characters. The first byte includes the high order bits and the second, the low
order bits.
Because the server interface is normally serviced at the end of the controller's
scan, the data reflect the register content at the end of the scan. Each PC limits
the quantity of register contents provided each scan; thus for large register
quantities, multiple PC scans are required, and the data provided is from
sequential scans.
In the example below the register 30009 contains the decimal value 0.
Node Function Byte Count Data Input Data Input Error Check
Address Code Register High Register Low Field
(2 bytes)
0B 04 02 00 00 E9
Query
This Function Code forces a single coil (Modbus 0x range) either ON or OFF.
Any coil that exists within the controller can be forced to either state (ON or
OFF). However, because the controller is actively scanning, unless the coil is
disabled, the controller can also alter the state of the coil. Coils are numbered
from zero (coil 0001 = zero, coil 0002 = one, and so on). The data value 65,280
(FF00 HEX) sets the coil ON and the value zero turns it OFF; all other values are
illegal and do not affect that coil.
The use of server address 00 (Broadcast Mode) forces all attached servers to
modify the desired coil.
Note: Functions 5, 6, 15, and 16 are the only messages that are recognized as valid for broadcast.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Data Start Bit Data Start Bit Number of Number of Error Check
Address Code High Low Bits High Bits Low Field (2 bytes)
0B 05 00 AC FF 00 CRC
Response
The normal response to the Command Request is to re-transmit the message as
received after the coil state has been altered.
Node Function Data Coil Bit Data Coil Bit Data On/Off Data Error Check
Address Code High Low Field (2 bytes)
0B 05 00 AC FF 00 CRC
The forcing of a coil via Modbus function 5 happens regardless of whether the
addressed coil is disabled or not (In ProSoft products, the coil is only affected if
you implement the necessary ladder logic).
Note: The Modbus protocol does not include standard functions for testing or changing the
DISABLE state of discrete inputs or outputs. Where applicable, this may be accomplished via
device specific Program commands (In ProSoft products, this is only accomplished through ladder
logic programming).
Coils that are reprogrammed in the controller logic program are not automatically
cleared upon power up. Thus, if such a coil is set ON by function Code 5 and
(even months later), an output is connected to that coil, the output is "hot".
Query
This Function Code allows you to modify the contents of a Modbus 4x range in
the server. This writes to a single register only. Any holding register that exists
within the controller can have its contents changed by this message. However,
because the controller is actively scanning, it also can alter the content of any
holding register at any time. The values are provided in binary up to the
maximum capacity of the controller. Unused high order bits must be set to zero.
When used with server address zero (Broadcast mode), all server controllers
load the specified register with the contents specified.
Note Functions 5, 6, 15, and 16 are the only messages that are recognized as valid for broadcast.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
The example below is a request to write the value ‘3’ to register 40002 in server
11.
Node Function Data Start Bit Data Start Preset Data Preset Data Error Check
Address Code High Bit Low Register High Register Low Field (2 bytes)
0B 06 00 01 00 03 CRC
Response
The response to a preset single register request is to re-transmit the query
message after the register has been altered.
Node Function Data Register Data Register Preset Data Preset Data Error Check
Address Code High Low Register High Register Low Field (2 bytes)
0B 06 00 01 00 03 CRC
Request Response
Field Name (Hex) Field Name (Hex)
Function 08 Function 08
Sub-function Hi 00 Sub-function Hi 00
Sub-function Lo 00 Sub-function Lo 00
Data Hi A5 Data Hi A5
Data Lo 37 Data Lo 27
The data fields in responses to other kinds of queries could contain error counts
or other data requested by the sub-function code.
Query
This function forces each coil (Modbus 0x range) in a consecutive block of coils
to a desired ON or OFF state. Any coil that exists within the controller can be
forced to either state (ON or OFF). However, because the controller is actively
scanning, unless the coils are disabled, the controller can also alter the state of
the coil. Coils are numbered from zero (coil 00001 = zero, coil 00002 = one, and
so on). The desired status of each coil is packed in the data field, one bit for each
coil (1= ON, 0= OFF). The use of server address 0 (Broadcast Mode) forces all
attached servers to modify the desired coils.
Note: Functions 5, 6, 15, and 16 are the only messages (other than Loopback Diagnostic Test) that
are recognized as valid for broadcast.
The following example forces 10 coils starting at address 20 (13 HEX). The two
data fields, CD =1100 and 00 = 0000 000, indicate that coils 27, 26, 23, 22, and
20 are to be forced on.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Coil Coil Number of Number of Byte Force Force Error Check
Address Code Address Address Coils High Coils Low Count Data High Data Low Field (2 bytes)
High Low 20 to 27 28 to 29
0B 0F 00 13 00 0A 02 CD 01 CRC
Response
The normal response is an echo of the server address, function code, starting
address, and quantity of coils forced.
Query
This Function Code allows you to modify the contents of a Modbus 4x range in
the slave. This writes up to 125 registers at time. Since the controller is actively
scanning, it also can alter the content of any holding register at any time.
Note: Function codes 5, 6, 15, and 16 are the only messages that are recognized as valid for
broadcast.
Note: This is the structure of the message being sent out to the Modbus network. The byte values
below are in hexadecimal display.
Node Function Data Start Data Start Number Number Byte Data Data Data Data Error
Address Code Address Address of Points of Points Count High Low High Low Check
High Low High Low Field (2
bytes)
0B 10 00 01 00 02 04 00 0A 01 02 CRC
Response
The normal response to a function 16 query is to echo the address, function
code, starting address and number of registers to be loaded.
Node Function Data Start Data Start Number Number Error Check
Address Code Address Address of Points of Points Field (2 bytes)
High Low High Low
0B 10 00 01 00 02 CRC
This instruction moves one floating-point value in two 16-bit integer images to
MBTCP.DATA.WriteData[0], which is an integer tag. For multiple floating-point
values increase the Length field by a factor of 2 per floating-point value.
The COP instruction to move data from MBTCP.DATA.ReadData[0], which is an
integer tag, to a floating-point tag (something you would do to receive floating-
point values from the module) is shown below.
This instruction moves two 16-bit integer registers containing one floating point
value image into the floating-point tag. For multiple values increase the Length
field.
Example #1
Modbus Address Data Type Parameter
47101 32 bit REAL TEMP Pump #1
47102 32 bit REAL Pressure Pump #1
47103 32 bit REAL TEMP Pump #2
47104 32 bit REAL Pressure Pump #2
With the module configured as a client, you only need to enable these
parameters to support a write to this type of addressing (Modbus FC 6 or 16).
If the server device uses addressing as shown in Example #2, then you do not
need to do anything with the Float Flag or Float Start parameters, as this
addressing scheme uses two Modbus addresses to represent each floating-point
value:
Example #2
Modbus Address Data Type Parameter
47101 32 bit REAL TEMP Pump #1
47103 32 bit REAL Pressure Pump #1
47105 32 bit REAL TEMP Pump #2
47107 32 bit REAL Pressure Pump #2
Because each 32 bit REAL value is represented by two Modbus addresses
(example 47101 and 47102 represent TEMP Pump #1), then you do not need to
set the Float Flag, or Float Start for the module for Modbus FC 6 or 16
commands being written to the server.
The next few pages show three specific examples:
Example #1: Client is issuing Modbus command with FC 16 (with Float Flag: Yes) to transfer
Float data to server.
In the above example, the client's Modbus command to transmit inside the
Modbus packet is as follows.
Server Function Address in Reg Count Byte Count Data
Address Code Device
DEC 01 16 7100 2 8 85.37 22.86
HEX 01 10 1B BC 00 02 08 BD 71 42 AA E1 48 41 B6
In this example, the client's Modbus packet contains the data byte and data word
counts that have been doubled from the amount specified by Reg Count due to
the Float flag set to Y. Some servers look for the byte count in the data packet to
know the length of the data to read from the wire. Other servers know at which
byte the data begins and read from the wire the remaining bytes in the packet as
the data the client is sending.
Example #2: client is issuing Modbus command with FC 16 (with Float Flag: No) to transfer
Float data.
Float Flag: "N" tells the client to ignore the floating values and treat each
register data as a data point composed of 1 word, 2 bytes or 16 bits.
Float Start: Ignored.
DB Addr - same as when Float Flag: Y.
Reg Count - Tells the client how many data points to send to the server.
Swap Code - same as when Float Flag: Y.
Func Code - same as when Float Flag: Y.
Addr in Dev - same as when Float Flag: Y as long as the server's Float Flag = Y.
In the above example, the client's Modbus command to transmit inside the
Modbus packet is as follows.
Server Function Address in Reg Byte Data
Address Code Device Count Count
DEC 01 16 7100 2 4 85.37
HEX 01 10 1B BC 00 02 04 BD 71 42 AA
In this example, the client's Modbus packet contains the data byte and data word
counts that have NOT been doubled from the amount specified by Reg Count
due to the Float Flag set to N. The server looks for the byte count in the data
packet to know the length of the data to read from the wire. Because of
insufficient byte count, some servers read only half the data from the client's
transmission. Other servers read all 8 bytes in this example because they know
where in the packet the data starts and ignore the byte count parameter inside
the Modbus packet.
Example #3: client is issuing Modbus command with FC 3 to transfer Float data from server.
In the above example, the client's Modbus command to transmit inside the
Modbus packet is as follows.
Server Function Code Address in Device Reg Count
Address
DEC 01 3 6100 2
HEX 01 03 17 D4 00 02
In the above example the (Enron/Daniel supporting) server's Modbus command
to transmit inside the Modbus packet is as follows.
Server Address Function Code Byte Count Data
DEC 01 3 8 32.75 275.69
HEX 01 03 08 00 00 42 03 D8 52 43 89
In the above example the (a NON-Enron/Daniel supporting) server's Modbus
command that is transmitted inside the Modbus packet is as follows.
Server Address Function Code Byte Count Data
DEC 01 3 4 32.75
HEX 01 03 04 00 00 42 03
Note: Overusing Event Commands may substantially slow or totally disrupt normal polling. Use
Event Commands sparingly. Event Commands are meant to be used as one-shot commands
triggered by special circumstances or uncommon events.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
7.4.5 Get Queue and Event Sequence Block Counts Block (4200)
This block requests the command queue count and the number of pending event
sequence commands for all module clients.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Offset Description
41 Encapsulated Modbus TCP/IP error sent: this counter increments each time the
server sends an error to the remote Modbus TCP/IP client.
42 Encapsulated Modbus TCP/IP error received: this counter increments each time an
error is received from a remote Modbus TCP/IP client.
43 Modbus MBAP request count: this counter increments each time an MBAP (Service
Port 502) request is received from a remote Modbus TCP/IP client.
44 Modbus MBAP response count: this counter increments each time an MBAP
(Service Port 502) response is sent back to a remote Modbus TCP/IP client
command.
45 Modbus MBAP error sent: this counter increments each time the server sends an
error to the remote MBAP Modbus TCP/IP client.
46 Modbus MBAP error received: this counter increments each time an error is
received from a remote MBAP Modbus TCP/IP client
47 to (n-1) Spare
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Offset Description
0 Block ID 9500 to set server and client enable/disable state
1 Server active state
0=Disabled
1=Enabled
2 Client 0 to client 15 bit map for active status of clients
3 Client 16 to client 19 bit map for active status of clients
4 to 23 Client 0 to client 19 command active bits. One word for each client with each bit
used to turn on and off the commands for the client.
0=Disabled
1=Enabled
24 to (n-1) Spare
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Note: Mutual exclusion on Pass-Through Block IDs 9956, 9957, 9958, and 9959 from all server
connections. When multiple server connections are active and they receive write commands with
the same Function Code, the same block identifier from the above list is needed. The module
processes the command from the server which first received a command.
The module returns an Exception Code error code 6 (Node is busy - retry command later error)
from the other server that received the command last. The client retries the command on the busy
port after a short delay. This prevents Pass-Through blocks on multiple servers from overwriting
each other.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through control block with an
output image write block with the following format. This informs the module that
the command has been processed and can be cleared from the Pass-Through
queue.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through block with a write block
with the following format. This informs the module that the command has been
processed and can be cleared from the Pass-Through queue.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through control block with an
output image write block with the following format. This informs the module that
the command has been processed and can be cleared from the Pass-Through
queue.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through control block with a write
block with the following format. This informs the module that the command has
been processed and can be cleared from the Pass-Through queue.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through control block with an
output image write block with the following format. This informs the module that
the command has been processed and can be cleared from the Pass-Through
queue.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
The ladder logic is responsible for parsing and copying the received message
and performing the proper control operation as expected by the client device.
The processor must then respond to the Pass-Through control block with an
output image write block with the following format. This informs the module that
the command has been processed and can be cleared from the Pass-Through
queue.
4 Hour (0-23)
5 Minutes (0-59)
6 Seconds (0-59)
7 Milliseconds (0-999)
8 to (n-1) Spare
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Where n = 60, 120, or 240 depending on the Block Transfer Size parameter.
Note: The standard connector view shown is color-coded for a straight-through cable.
Ethernet Performance
Ethernet performance in the MVI69E-MBTCP module can be affected in the
following way:
Accessing the web interface (refreshing the page, downloading files, and so
on) may affect performance
Also, high Ethernet traffic may impact MBTCP performance, so consider one
of these options:
o Use managed switches to reduce traffic coming to module port
o Use CIPconnect for these applications and disconnect the module
Ethernet port from the network
In This Chapter
Contacting Technical Support ............................................................. 147
Warranty Information ........................................................................... 148
Note: For technical support calls within the United States, an emergency after-hours answering
system allows 24-hour/7-days-a-week pager access to one of our qualified Technical and/or
Application Support Engineers. Detailed contact information for all our worldwide locations is
available on the following page.
E
Index Editing Configuraiton Parameters • 44
ENRON Floating Point Support • 122
0 Ethernet 1 • 55, 98
Ethernet Cable Configuration • 145
00 Return Query Data • 117 Ethernet Cable Specifications • 145
Ethernet LED Indicators • 93
A Ethernet Performance • 146
Ethernet Port Connection • 145
About the Modbus TCP/IP Protocol • 109
Event Command Blocks (2000 to 2019) • 128
Add Event with Data for Client Blocks (8000) • 133
Event Sequence Command Error Status Blocks (4100
Adding another module in PCB • 34
to 4119) • 131
Adding Another Module in RSLogix 5000 • 36
Event Sequence Request Blocks (4000 to 4019) • 130
Adding Multiple Modules in the Rack (Optional) • 34
Example and State Diagram • 118
Adding the Module to RSLogix • 17, 43, 44
B F
Floating-Point Support • 121
Backplane Data Transfer • 64
Force Multiple Coils (Function Code 15) • 119
Basic PCB Functions • 44
Force Single Coil (Function Code 05) • 115
C Function Blocks • 127
Function Codes Supported by the Module • 110
Clearing a Fault Condition • 94
Client Command List • 73 G
Client Status Request/Response Blocks (3000 to
General Concepts of the MVI69E-MBTCP Data
3019) • 129
Transfer • 63
Cold-boot Control Block (9999) • 144
General Specifications - Modbus Client/Server • 108
Command Control Blocks (5001 to 5016) • 132
Generating the AOI (.L5X File) in ProSoft
Command Error Codes • 73
Configuration Builder • 25
Command List Entry Errors • 104
Get Driver and Command Active Bits Block (9501) •
Communication Error Codes • 73, 104
137
Configuring the Floating Point Data Transfer • 122
Get Event with Data Status Block (8100) • 134
Configuring the MVI69E-MBTCP Using PCB • 43, 96,
Get General Module Status Data Block (9250) • 135
98
Get Queue and Event Sequence Block Counts Block
Connecting the PC to the Module's Ethernet Port • 96
(4200) • 132
Connecting to the Module’s Webpage • 105
Contacting Technical Support • 147 H
Content Disclaimer • 2
Controller Tags • 75 Hardware Specifications • 108
Creating a Module in the Project Using a Generic 1769
Module Profile • 17, 21 I
Creating a Module in the Project Using an Add-On If Block Transfer Size = 120 • 68
Profile • 17, 18 If Block Transfer Size = 240 • 69
Creating a New PCB Project and Exporting an .L5X If Block Transfer Size = 60 • 67
File • 44 Important Safety Information • 3
Creating a New RSLogix 5000 Project • 30 Importing the Add-On Instruction • 31
Creating and Exporting the .L5X File • 27, 32, 35, 43 Installing an Add-On Profile • 18
Creating the Module in an RSLogix 5000 Project • 17 Installing ProSoft Configuration Builder • 24
D Installing the Module in the Rack • 12