Gei 100696
Gei 100696
Gei 100696
GE Energy
WorkstationST* Modbus®
These instructions do not purport to cover all details or variations in equipment, nor
to provide for every possible contingency to be met during installation, operation,
and maintenance. The information is supplied for informational purposes only, and
GE makes no warranty as to the accuracy of the information included herein.
Changes, modifications, and/or improvements to equipment and specifications are
made periodically and these changes may or may not be reflected herein. It is
understood that GE may make changes, modifications, or improvements to the
equipment referenced herein or to the document itself at any time. This document is
intended for trained personnel familiar with the GE products referenced herein.
GE may have patents or pending patent applications covering subject matter in this
document. The furnishing of this document does not provide any license whatsoever
to any of these patents.
This document contains proprietary information of General Electric Company, USA
and is furnished to its customer solely to assist that customer in the installation,
testing, operation, and/or maintenance of the equipment described. This document
shall not be reproduced in whole or in part nor shall its contents be disclosed to any
third party without the written approval of GE Energy.
GE provides the following document and the information included therein as is and
without warranty of any kind, expressed or implied, including but not limited to any
implied statutory warranty of merchantability or fitness for particular purpose.
If further assistance or technical information is desired, contact the nearest GE Sales
or Service Office, or an authorized GE Sales Representative.
g
* Trademark of General Electric Company
Modbus is a registered trademark of Schneider Automation.
Contents
Section Page
Overview ........................................................................................................ 3
Configuration.................................................................................................. 3
Enabling the Modbus Feature .................................................................. 5
Configuring the Modbus Feature ............................................................. 7
Modbus Properties ................................................................................. 12
Hardware Interface Properties................................................................ 14
Master Message Properties..................................................................... 15
Slave Properties...................................................................................... 15
Data Structure Properties ....................................................................... 15
Scaling.................................................................................................... 16
Spare Values .......................................................................................... 19
Importing or Exporting .csv Files .......................................................... 20
Error/ Warning Messages....................................................................... 21
Runtime ........................................................................................................ 25
WorkstationST Status of Features.......................................................... 25
WorkstationST Additional Status........................................................... 26
Tracing ................................................................................................... 31
Ethernet Messages.................................................................................. 32
Serial Messages...................................................................................... 33
Monitoring Live Values ......................................................................... 34
Troubleshooting............................................................................................ 35
Slave Exception Responses.................................................................... 35
Terms............................................................................................................ 37
Configuration
When the Modbus item in the component Tree View is selected, the properties that
display in the Property View apply to all connections. When the Modbus item is
expanded, Master and Slave items display. These are organizational categories with
no configuration properties. When you insert a hardware interface into either a
Master or a Slave, several configuration properties display in the Property Editor.
One or more Slaves may be inserted under each hardware interface. Slave definitions
consist of four types of data structures:
• Holding registers
• Holding Coils
• Input registers
• Input Coils
The Slave data structures represent different data depending on whether the Slave
definition being configured is under the Masters or the Slaves item in the Modbus
Tree View. A Slave definition under the Slaves item is the WorkstationST Modbus
data structure sent to the remote Master. A Slave definition under the Masters item
reflects a local copy of the remote Slave data that is mapped to ToolboxST variables.
Each Slave under the Masters item also contains configuration properties for each
Modbus message to be sent by the Master, including the rate at which the messages
are sent.
• Creating the Modbus data structures, which comprise the memory map (address
and datatype) of every message to be sent or received by Modbus.
• Attaching each Modbus data point to a ToolboxST variable, which is then used
to transfer data to or from the corresponding Modbus data point.
Each data structure contains Modbus data points that are created by connecting a
ToolboxST variable to a Modbus address in one of the data structures. Each Modbus
data point is configured with an address and a data type to be sent or received over
Modbus. When the WorkstationST is operating as a Master, the data structure to be
configured is determined by the remote Slave component. This means that the user
must know the details of the remote Slave component to configure the
WorkstationST Master data structure.
Once the Slave definitions are configured, the Modbus Master Messages must be
configured for each Slave under the Masters item. These messages determine the
values to be read from, or written to the Slave, and at what frequency.
From the
General tab
Tree View,
select
Features.
Note The EGD Configuration Server must be set to True in one of the configured
WorkstationST components (it does not have to be the WorkstationST with Modbus
enabled).
3 From the Tree View, select the Slave you inserted. From the Summary
View, Holding Registers and Input Registers tabs, add variables. From the
Holding Coils and Input Coils tabs, enter Boolean variables.
Note When you connect a Modbus variable, the data type defaults to the data type of
the variable that was connected. Some data types use more than one register. (Refer
to the section, Data Types.) If you want the data type to be different than the variable
that was connected, it is recommended that you change the data type before
connecting the next variable. This is because the program reserves as many registers
as needed for that data type and changing the data type later could leave you with
either holes or overlapping registers. For example, variables A and B are LREALs in
the system, but you want to send them over Modbus as REALs. Variable A would be
put at address 00001 and variable B at address 00005 unless you changed A’s data
type to a REAL before connecting B.
Number of Registers is the number of registers or coils read or written for this
message.
Period Multiplier is the number multiplied by the Master Message Base Period to
configure how frequently this message is sent.
Start Address is the start address for this message. Depending on which Function
Code was set, this refers to either a coil or register number.
2 From the Property Editor, select the Interface Type (Ethernet or Serial)
configured for the master. If you are using Ethernet, select the IP Address of
your computer.
3 From the Tree View, select the Slave you inserted. From the Summary
View, add variables to the Holding Registers and Input Registers tabs.
Enter Boolean variables to the Holding Coils and Input Coils tabs.
Note You can only change Ethernet Settings when the Interface Type is Ethernet,
and Serial Settings when it is Serial.
Lower/Upper Limits or
Property Allowed Values Description
Interface Type Serial / Ethernet Modbus Hardware Interface type
IP Address Valid IP Address format IP Address for Ethernet connection. For a Master, this is the IP
Address of the Slave that you are connecting to. For the Slave,
this is the IP Address at which you'll be listening for a
connection from a Master. If you're a Slave, verify that the
WorkstationST has a Network Adapter defined to support this IP
Address.
Baud Rate 300 / 600 / 1200 / 2400 / Communication baud rate for serial network
4800 / 9600 / 14400 / 19200
Data Bits 8 Communication data bits for serial network
Parity None / Even / Odd Communication Parity for serial network
Port COM1 / COM16 Communication Port for serial network
Response 0 / 999 Additional delay time, in ms, before the Slave responds to a
Delay Master request. Change this from zero only if the Master
cannot handle a quick response.
Stop Bits 1/2 Communication Stop Bits for serial network
Slave Properties
Property Lower/Upper Limits or Allowed Values
Slave ID The Slave ID on the Modbus network
Scaling
The relationship between Y (the value sent over Modbus) and X (the engineering
value) is linear. This equation:
y = mx + b
Where m = slope
b = offset
When a Master writes to a WorkstationST Slave, the Slave converts the Modbus
value to an Engineering value. If the calculated Engineering value is outside the
range of the Engineering variable’s data type, that value will not be set, and a Slave
Exception Response (Code 3, Illegal Data Value) is returned to the Master. Any
other valid values in the write request are written. In this case, the OPC Server Write
Errors counters increase.
When a Master reads from a WorkstationST Slave, the Slave converts the
Engineering value to a Modbus value. If the calculated Modbus value is outside the
range of the Modbus data type, the value is clamped by the Modbus data type range.
This clamping based on data type occurs even if the Clamp Values property is not
set. The clamped value is returned to the Master. In this case, no Slave Exception
response is returned.
After a WorkstationST Master reads from a Slave, the Master converts the Modbus
value to an Engineering value. If the calculated Engineering value is outside the
range of the Engineering variable’s data type, that value will not be set, and the OPC
Server Write Errors counters increase. Any other valid values in the write request are
still written.
At runtime, you can determine the number of times a value was clamped by
monitoring the corresponding counters in the Additional status detail window (for
example, Slave 1 on 3.29.17.149 HR has 0 Current, 0 Total Modbus Values being
Clamped occurrences).
EngMin = 0 inches
First example:
RawMax = 65000
RawMin = 0
Modbus data type is an unsigned 16-bit integer (in ToolboxST, referred to as UINT).
65000 − 0 8 * 0 − 0 * 65000
ModbusValue = * 8 .5 +
8−0 8−0
65000
ModbusValue = * 8.5 = 69062.5
8
Modbus Value = 65535 if Clamp Values = False. (just clamped based on Modbus
data type range, for unsigned 16-bit integer is 0 to 65535.)
Modbus Value = 65000 if Clamp Value = True. (the tighter of the two clamps
(RawMax/RawMin versus the data type range) is applied.)
Second example:
RawMax = 32000
RawMin = -32000
Modbus data type is a signed 16-bit integer (in ToolboxST, referred to as INT).
Modbus Value = 32560 if Clamp Values = False. (No clamp was reached.)
Modbus Value = 32000 if Clamp Values = True. (RawMax clamp was reached.)
Note If Booleans are packed into a register, all 16 bits within a register do not have
to be mapped.
ModbusMasterMessage1 is There is a hole in the signal Select the Modbus Master Message. Based on what the
configured to send a map. An example of a hole is a function code is, select the appropriate tab in the right
message with Starting message that tries to write 4 hand pane. (1, 5, 15 select Coil; 3, 6, 16 select Holding
Address 2 that takes up 2 registers starting at register 10, Register; 2 select Input; 4 select Input Register.) Look at
coils or registers. However, where there is a DINT at the hole (address) indicated in the error message.
there is no Variable register 10, no variable at Either move variables around to fill the hole, add a spare
connected to address 2 register 12, and an INT at variable to fill in the hole (refer to the section, Spares
(where the Message Name, register 13. Values), or use two Modbus messages. The first Modbus
Start Address, Number Of Note that the hole can be at the message includes variables before the hole and the
Registers, and first address beginning or end of the second includes variables after the hole.
that does not line up are message span.
yours) If the hole is at the beginning, change the Start Address
in the Message. If the hole is at the end, change the
Number of Registers in the Modbus Master Message and
verify that it does not extend beyond the end of the last
connected variable.
Note If Booleans are packed into a register, all 16 bits
within a register do not have to be mapped.
The logic that drives the Error/Warning/OK status for the Modbus feature is as
follows.
Errors
Note If detail items listed under a Master occur in a Slave, the Slave sends back a
Slave Exception Response, which triggers a WARNING status.
• OK – Value is zero
• Warning – Condition occurred at some point
• Error – Condition is still occurring
When you download Modbus, the list is refreshed. However, since Warning
means that a condition occurred at some point, any Error Level marked
Warning remains that way until you click the Zero Counters button.
Once a steady state condition has been reached, it is recommended that you set the
counters to zero to more easily identify any subsequent conditions that occur.
Slave 1 on 3.29.17.149 HR has 0 The Slave returns an Illegal Data Address 02 Slave Exception Response to the Master. If
Current, 0 Total Illegal Data this error occurs, the person responsible for the Master needs to determine why a
Address Errors. This error occurs message is expected at this location. Are there data type mismatches that caused signals
when the Master asks for an to get shifted in the register map? Should a spare variable be added at this address?
address for which no variable (Refer to the section, Spare Values.) Use the trace log file to identify which variable has
was configured. the error.
Slave 1 on 3.29.17.149 HR has 0 The Slave returns an Illegal Data Address 02 Slave Exception Response to the Master.
Current, 0 Total UnBound Normally, this occurs briefly when another component is downloaded, causing Modbus to
Variable Errors. stop and restart the lists to the OPC Server. However, if another component deleted a
variable being used by Modbus and was then downloaded, this could continually occur. In
that case, talk with the component owner to see if another variable should be used. If not,
the person responsible for the Master must delete this variable. In either case, modify the
configuration, then select the Build and Download commands. Refer to the trace log file to
identify which variable has the error.
Slave 1 on 3.29.17.149 HR has 0 The Slave returns a Slave Component Failure 04 Slave Exception Response to the
Current, 0 Total UnHealthy Master. Normally this is only a momentary occurrence when another component gets
Variable Errors. downloaded, and Modbus stops and restarts the lists to the OPC Server. However, it also
occurs if a component goes offline. Refer to the trace log file to identify which variable has
the error.
Masters Messages
Master talking to COM1 has 0 These could occur if either the Master tries to send, or receives a function code that it
Current, 0 Total UnSupported cannot handle.
Function Code Errors.
Master talking to COM1 has 0 This normally occurs when:
Current, 0 Total Skipped Periodic Modbus connection is down
Modbus Messages. Message
would be skipped when OPC Server connection is down
previously scheduled messages Too many messages were scheduled to be sent at the same time. In this case, modify
haven’t completed before new your configuration.
messages are scheduled to be
sent.
There are four message levels in the trace log file: Error, Warning, Info, and
Verbose.
1 - Errors
Note The default value is 3. If you need to view the contents of each message
received, change the value to 4 to include Verbose. However, because this value
quickly fills the trace log file, return the value to 3 as soon as possible.
Ethernet Messages
Change the message tracing level in the trace log file to Verbose to display raw data
about message content. Byte or word swapping has not yet occurred, if required.
However, when a message displays, for example, beginning to read 6 bytes to get the
message body, byte swapping has already taken place. This determines that 6 bytes
were expected for the message body.
Serial Messages
Serial messages start by reading a 7-byte header. The program then displays, for
example, beginning to read 8 bytes to get the message body. This means that the
entire message is 8 bytes. When reading serial trace messages, focus on the one that
reads, Received Message Body followed by data, not Received Message Header
followed by data.
Note The value displayed is the value before it is scaled and/or clamped to send over
Modbus.
OPC OLE for Process Control (OLE is Microsoft's Object Linking and Embedding)
is a standard for data exchange in an industrial environment. The OPC foundation
provides specifications for various OPC standards such as OPC DA (Data Access)
and OPC AE (Alarm and Event).
OPC DA Server - a core part of the WorkstationST product that conforms to the
OPC Data Access Specification
Scaling - The act of converting one value to another value, or the values (for
example, slope and offset) used to perform this conversion. In this program, an
engineering value is converted before it is sent over Modbus, and a value read from
Modbus is converted to an engineering value before being used in the system.