8/9/2019 Modbus RTU Serial
1/50
Modbus RTU SerialDriver Help
2013 Kepware Technologies
8/9/2019 Modbus RTU Serial
2/50
Modbus RTU Serial Driver Help
Table of Contents
Table of Contents 2
Modbus RTU Serial Driver Help 4
Overview 4
Channel Setup 5
Device Setup 6
Cable Diagram 6
Modem Setup 7
Settings 7
Block Sizes 10
Variable Import Settings 10
Framing 11
Error Handling 13Automatic Tag Data base Generation 15
Ex porting Variables from Concept 15
Expor ting Variables from ProWORX 17
Data Ty pes Description 19
Addres s Descriptions 20
Modbus Addressing 20
Magne tek GP D 515 Drive Addressing 22
Elliott Flow Computer Addressing 23
Daniels S500 Flow Computer Addressing 23
Dynamic Fluid Meter Addressing 24
Omni Flow Computer Addressing 25
Omni Custo m Packets 27
Omni Ra w Data Archive 29
Omni Text Reports 33
Omni Text Archive 34
Function Codes Des cription 36
Error Descriptions 37
Address Validation 37
Address '' is out of range for the specified device or register 38
Ar ray si ze is out of range for address '' 38
Array support is not available for the specified address: '' 38
Data Ty pe '' is not valid for device address '' 38
Device add r es s '' conta ins a syntax e rror 38
Device address '' is not supported by model '' 39
De vice address ' ' is Read Only 39
Missi n g address 39
Received block length of '' does not match expected length of '' for address '' on device '' 39
Ser ial Commu nications 39Communications error on '' [] 39
www. kepware.com
2
8/9/2019 Modbus RTU Serial
3/50
Modbus RTU Serial Driver Help
COMn does not exist 40
COMn is in use by another application 40
Error opening COMn 40
Unable to set comm parameters on COMn 40Device Status Messages 40
Device '' is not responding 41
Unable to write to address '' on device '': Device responded with exception code'' 41
Unable to write to '' on device '' 41
Write failed for '' on device ''. Maximum path length of '' exceeded 41
Modbus RTU Serial Specific Messages 42
Bad address in block [ to ] on device '' 42
Bad a r ray spanning [ to ] on device '' 42
Could not rea d Omni te xt buffer due to memory allocation problem 42Could not read Omni text report '' on device '' d ue to packet limit 43
Error writing Omni text data to file for '' on device '' because 43
No Omni text archive data available in specified date range on device '' 43
Omni text output file specified for '' on device ' ' c ould not be opened because 43
Wr ite to Omni t e xt report '' on device ' ' trunca te d 43
Automatic Tag Database Generation Messages 44
Description trunc a te d for import file record number 44
Error parsing import file record number , field 44
File exception encountered during tag import 44
Imp o rted tag name '' is invali d . Na me changed t o ' ' 44
Tag '' could not b e imported because data type '' is not supported 44
Tag import failed due to low memory reso u rces 45
Modbus Exce p tion Codes 45
Index 47
www. kepware.com
3
8/9/2019 Modbus RTU Serial
4/50
Modbus RTU Serial Driver Help
Modbus RTU Serial Driver Help
Help version 1.047
CONTENTS
OverviewWhat is the Modbus RTU Serial Driver?
Channel SetupHow do I configure channels for use with this driver?
Device SetupHow do I configure a device for use with this driver?
Automatic Tag Database GenerationHow can I easily configure tags for the Modbus RTU Serial Driver?
Data Types DescriptionWhat data types does this driver support?
Address DescriptionsHow do I address a data location on a Modbus device?
Error DescriptionsWhat err or messages are produced by the Modbus RTU Serial Driver?
Over view
The Modbus RTU Serial Driver provides an easy and reliable way to connect Modbus RTU Serial devices to OPCClient applications, including HMI, SCADA, Historian, MES, ERP and countless custom applications. It is intendedfor use with serial devices that support the Modbus RTU protocol. The Modbus RTU Serial Driver has been devel-oped t o support a wide range of Modbus RTU compatible devices.
www. kepware.com
4
8/9/2019 Modbus RTU Serial
5/50
Modbus RTU Serial Driver Help
Channel Setup
Communication SerializationThe Modbus RTU Serial Driver supports Communication Serialization, which specifies whether data trans-missions should be limited to one channel at a time. For more information, refer to "Channel Properties -Advanced" in the server help file.
www. kepware.com
5
8/9/2019 Modbus RTU Serial
6/50
Modbus RTU Serial Driver Help
Device Setup
Supported DevicesModbus compatible devicesElliott Flow ComputerMagnetek GPD 515 Drive
Omni Flow ComputerDaniel S500 Flow ComputerDynamic Fluid Meter (DFM) SFC3TSXCUSBMBP USB Adapter
Communication ProtocolModbus RTU Protocol.
Supported Communication ParametersBaud Rate: 1200, 2400, 9600, and 19200.Parity: Odd, Even, and None.Data Bits: 8.Stop Bits: 1 and 2.
Note: Not all of the listed configurations may be supported in every device.
Maximum Number of Channels and DevicesThe maximum number of channels supported by this driver is 256. The maximum number of devices supportedis 255.
Ethernet EncapsulationThis d river supports Ethernet Encapsulation, which allows the driver to communicate with serial devicesattached to an Ethernet network using a terminal server (such as the Lantronix DR1). It may be enabled throughthe Communications d ialog in Channel Properties. For more information, refer to the main OPC server's help file.
Device ID (PLC Network Address)Modbus RTU Serial devices are assigned Device IDs in the range 0 to 255. When using Modbus Device ID 0, thedriver will send only broadcast Write messages to remote stations. When configuring a device under the channel,setting the Device ID to 0 will place that device in broadcast mode. Only Writes will occur from this device. Readsfrom the broadcast device will always return zero. All other Device IDs (1-255) will read and write data to/fromthe remote Modbus RTU device.
Flow ControlWhen using an RS232/RS485 converter, the type of flow control that is required will depend on the converter'sneeds. Some do not require any flow control whereas others require RTS flow. Consult the converter's doc-umentation in order to determine its flow requirements. An RS485 converter that provides automatic flow controlis recommended.
Note: When using the manufacturer's supp lied communications cable, it is sometimes necessary to choose aflow control setting of RTS or RTS Always under the Channel Properties.
Manual Flow ControlThe Modbus RTU driver supports RTS Manual flow control, which is used to configure the driver for operation
with radio modems that require special RTS timing characteristics. For more information, refer to the OPCserver's help documentation.
Cable Diagram
For recommended wiring and cable diagrams, refer to the Modbus device manufacturer's documentation. TheModicon 984 Modbus Controller cable diagram is shown below.
www. kepware.com
6
8/9/2019 Modbus RTU Serial
7/50
Modbus RTU Serial Driver Help
Modem Setup
This driver supports modem functionality. For more information, please refer to the topic "Modem Support" in theOPC Server Help documentation.
Settings
----- Data Access Group -----
Zero vs. One Based AddressingIf the address numbering convention for the device starts at one as opposed to zero, it can be specified whendefining the parameters for the device. By default, user entered addresses will have one subtracted from themwhen frames are constructed to communicate with a Modbus device. If the device doesn't follow this convention,then the Use zero based addressing check box should be unchecked in Device Properties. For information onthe appropriate application to obtain information on setting Device Properties, refer to the online help doc-umentation. The default behavior follows Modicon PLCs' conventions.
Zero vs One Based Bit Addressing Within RegistersMemory types that allow bits within Words can be referenced as a Boolean. The addressing notation for doing thisis as follows:
.
where represents the bit number within the word.
Zero Based Bit Addressing within registers provides two ways of addressing a bit within a given word: ZeroBased and One Based. Zero Based Bit addressing within registers s imply means the first bit begins at 0. OneBased Bit addressing means that the first bit begins at 1.
Zero Based Bit Addressing Within Registers (Default Setting / Checked)
Data Type Bit RangeWord Bits 015
One Based Bit Addressing Within Registers (Unchecked)
Data Type Bit RangeWord Bits 116
Holding Register Bit Mask Writes
www. kepware.com
7
8/9/2019 Modbus RTU Serial
8/50
Modbus RTU Serial Driver Help
When writing to a bit location within a holding register, the driver should only modify the bit of interest. Somedevices s upport a special command to manipulate a single bit within a register (Function code hex 0x16 or dec-imal 22). If the device does not support this feature, the driver will need to perform a Read/Modify/Write oper-ation to ensure that only the single bit is changed.
Check this box if the device supports holding register bit access. The default setting is unchecked. If this setting
is selected, then the driver will use function code 0x16, irrespective of the setting for Use Modbus function 06for single register writes . If this setting is not selected, then the driver will use either function code 0x06 or0x10 depending on the selection for 'Use Modbus function 06 for single register writes.'
Note: When Modbus byte order is deselected, the byte order of the masks sent in the command will be Intel byteorder.
Use Modbus Function 06 or 16The Modbus driver has the option of using two Modbus protocol functions to write holding register data to the tar-get device. In most cases, the driver switches between these two functions based on the number of registersbeing written. When writing a single 16 bit register, the driver will generally use the Modbus function 06. Whenwriting a 32 bit value into two registers, the driver will use Modbus function 16. For the standard Modicon PLC,the use of either of these functions is not a problem. There are, however, a large number of Third-Party devicesthat have implemented the Modbus protocol. Many of these devices support only the use of Modbus function 16 towrite to Holding registers, regardless of the number of r egisters to be written.
The Use Modbus function 06 selection is used to force the driver to use only Modbus function 16 if needed. Bydefault, this selection is checked which allows the driver to operate as it has historically, switching between 06and 16 as needed. If a device requires all writes be done using only Modbus function 16, uncheck this selection.
Note: For bit within word writes, the Holding Register Bit Mask Wr ites is not selected, then depending upon theselection of this property either function code 0x06 or 0x10 will be used for bit within word writes. When Hold-ing Register Bit Mask Writes is selected, then function code 0x16 is used no matter what the selection for thisproperty. However, if Holding Register Bit Mask Writes). The Use Modbus Function 06 property takes prec-edence over this property.
Use Modbus Function 05 or 15The Modbus driver has the option of using two Modbus protocol functions to write Output coil data to the targetdevice. In most cases the driver switches between these two functions based on the number of coils being
written. When writing a single coil, the driver will use the Modbus function 05. When writing an array of coils,the driver will use Modbus function 15. For the standard Modicon PLC, the use of either of these functions is not aproblem. There are, however, a large number of Third-Party devices that have implemented the Modbus protocol.Many of these devices support only the use of Modbus function 15 to write to output coils regardless of thenumber of coils to be written.
The Use Modbus function 05 selection is used to force the driver to use only Modbus function 15 if needed.The default setting is checked. This allows the driver to operate as it has historically, switching between 05 and15 as needed. If a device requires all writes be done using only Modbus function 15, however, this selectionshould be unchecked.
----- Data Encoding Group -----
Modbus Byte Order
This selection allows users to change the driver's byte order from the default Modbus byte ordering to Intel byteordering. The default setting is checked, which is the normal setting for Modbus compatible devices. If the deviceuses Intel byte ordering, deselecting this selection will enable the Modbus driver to properly read Intel formatteddata.
Note: This setting does not apply to the Omni model. It always uses Modbus byte order.
First Word Low in 32 Bit Data TypesTwo consecutive registers' addresses in a Modbus device are used for 32 bit data types. Users can specifywhether the driver should assume the first word is the low or the high word of the 32 bit value. The default, firstword low, follows the convention of the Modicon Modsoft programming software.
Note: This setting does not apply to the Omni model. It always uses Modbus byte order.
First DWord Low in 64 Bit Data Types
www. kepware.com
8
8/9/2019 Modbus RTU Serial
9/50
8/9/2019 Modbus RTU Serial
10/50
Modbus RTU Serial Driver Help
Data Types Checked
Block Sizes
Descriptions of the parameters are as follows:
l Coils (8-2000 in multiples of 8): This parameter specifies the output and input coils. Coils can beread from 8 to 2000 points (bits) at a time. A higher block size means more points will be read from thedevice in a single request. The block size can be reduced in order to read data from non-contiguous loca-tions within the device. The default setting is 32.
l Registers (1-125): This parameter specifies the internal and holding registers. Registers can be readfrom 1 to 125 locations (words) at a time. A higher block size means more register values will be readfrom the device in a single request. The block size can be reduced in order to read data from non-con-tiguous locations within the device. The default setting is 32.
Caution: If the Register Block sizes value is set above 120 and a 32 or 64 bit data type is used for anytag, then a "Bad address in block" error could occur. To prevent this error, decrease the block size valueto 120.
l Perform Block Read on Strings: When checked, this option will block read string tags (which are nor-
mally read individually). String tags will also be grouped together depending on the selected block size.Block reads can only be performed for Modbus model string tags. The default setting is unchecked.
Variable Import Settings
The Variable Import Settings parameters specify the location of the variable import file that will be used whenAutomatic Tag Database Generation is enabled.
www. kepware.com
10
8/9/2019 Modbus RTU Serial
11/50
Modbus RTU Serial Driver Help
Descriptions of the parameters are as follows:
l Variable Import File: This parameter is used to browse to the exact location of the Concept or ProWORXvariable import file that the driver will use during Automatic Tag Database Generation.
l Include Descriptions: When checked, imported tag descriptions will be used if present in the file.
Note: For more information on configuring the Automatic Tag Database Generation feature (and how to create avariable import file), refer to Automatic Tag Database Generation .
Framing
Some terminal server devices add additional data to Modbus frames; as such, the Framing parameters can beused to configure the driver to ignore the additional bytes in response messages.
www. kepware.com
11
8/9/2019 Modbus RTU Serial
12/50
Modbus RTU Serial Driver Help
Descriptions of the parameters are as follows:
l Use Modbus TCP Framing: When checked, this parameter communicates with native Modbus TCPdevices using Ethernet Encapsulation.
l Leading bytes: This parameter specifies the number of bytes to be attached to the beginning of Modbusresponses. Values may range from 0 to 8.
l Trailing bytes: This parameter specifies the number of bytes to be attached to the end of Modbusresponses. Values may range from 0 to 8.
Using Ethernet EncapsulationEthernet Encapsulation must be enabled in order for Framing to be available; otherwise, the selection Use Mod-bus TCP Framing will be disabled. For information on enabling Ethernet Encapsulation, refer to the instructionsbelow.
1. To start, open the device's Channel Properties .
2. In the Communications tab, select Use Ethernet Encapsulation . T his will enable Ethernet Encap-sulation for the channel. Then, click OK .
3. Next, open the device's Device Properties . Descriptions of the parameters are as follows:
l IP Address: This parameter specifies the device's IP address. The default setting is255.255.255.255.
l Port Number: This parameter specifies the port number. 502 is usually entered for ModbusTCP devices.
www. kepware.com
12
8/9/2019 Modbus RTU Serial
13/50
Modbus RTU Serial Driver Help
l Protocol: This parameter specifies the protocol. The default setting is T CP/IP.
4. Once finished, click OK .
See Also: Device Setup
Error Handling
The Error Handling parameters determine how to deal with errors from the device.
www. kepware.com
13
8/9/2019 Modbus RTU Serial
14/50
Modbus RTU Serial Driver Help
Descriptions of the parameters are as follows:
l Deactivate Tags on Illegal Address Exception: When checked, the driver will stop polling for a blockof data if the device returns Modbus exception code 2 (illegal address) or 3 (illegal data, such as number
of points) in response to a read of that block. When unchecked, the driver will continue to poll that datablock. The default setting is checked.
l
Reject Repeated Messages: When checked, the driver will expect repeated messages. Whenunchecked, the driver will interpret a repeated message as an invalid response and will retry the request.The default setting is unchecked.
Note: Some message-relay equipment will echo Modbus requests back to the driver.
www. kepware.com
14
8/9/2019 Modbus RTU Serial
15/50
Modbus RTU Serial Driver Help
Automatic Tag Database Generation
The Modbus RTU Serial Driver makes use of the OPC server's automatic tag database generation feature, whichenables drivers to automatically create tags that access data points used by the device's ladder program. While itis sometimes possible to query a device for the information needed to build a tag database, this driver must use aVariable Import File instead. Variable import files can be generated using the Concept and ProWORX device
programming applications.
Creating the Variable Import FileThe import file must be in semicolon delimited Concept .TXT format, which is the default export file format of theConcept device programming application. The ProWORX programming application can also export variable data inthis format. For application-specific information on creating the variable import file, r efer to Exporting Var-iables from Concept and Exporting Variables from ProWORX .
OPC Server ConfigurationAutomatic tag database generation can be customized to fit an application's specific needs. The primary controloptions can be set during the Database Creation step of the Device Wizard or later by selecting Device Prop-erties | Database Creation . For more information, refer to the OPC server's help documentation.
This dr iver requires additional settings in addition to the basic settings that are common to all drivers that sup-port automatic tag database generation. The specialized settings include the name and location of the variableimport file, which can be specified during the Variable Import Settings step of the Device Wizard or later by select-ing Device Properties | Variable Import Settings . For more information, r efer to Variable ImportSettings .
OperationDepending on the configuration, tag generation may start autom atically when the OPC server project starts or bein itiated man uall y at some other t ime. The OPC server's Event Log will show when the tag generation processstarted, any errors that occurred while processing the variable import file and when the process completed.
Exporting Variables from Concept
As the ladder program is created, symbolic names for various data points referenced can be defined using theVariable Editor . Additional symbols and constants that are not used by the ladder program can also be defined.
Note: Though Concept is used to define variable names that begin with an underscore, such names are notallowed by the OPC server. The driver will modify invalid imported tag names as needed, and inform users of any
such name changes in the server's Event Log.
www. kepware.com
15
8/9/2019 Modbus RTU Serial
16/50
Modbus RTU Serial Driver Help
User defined data types are not currently supported by this driver. Records in the export file containing ref-erences to such types will be ignored. The table below displays the supported simple data types.
Concept Data Type Generated Tag Data TypeBOOL BooleanByte WordDINT LongINT ShortREAL FloatTIME DWordUDINT DWordUINT WordWord Word
Note 1: Unlocated variables, which do not correspond to a physical address in the device, will be ignored by thedriver.
Note 2: Comments are allowed and can be included as the generated tag descriptions or not. For more infor-mation, refer to Variable Import Settings .
Exporting Variables from ConceptAfter the variables have been defined, they must be exported from Concept.
1. Click File | Export . Then, select the Variables: Text delimited format.
2. Click OK . Next, specify the filter and separator s ettings.
3. Although any filter setting can be chosen, this driver will only be able to read the exported data if thedefault semicolon separator is used. Click OK to generate the file.
www. kepware.com
16
8/9/2019 Modbus RTU Serial
17/50
Modbus RTU Serial Driver Help
Exporting Variables from ProWORX
In order for ProWORX to export the necessary variable information, the Symbols parameter must be checked. Todo so, click File | Preferences .
Note: As the ladder program is created, symbolic names for the various data points referenced can be definedusing the Document Editor .
Note: ProWORX does not place many restrictions on variable names. However, the OPC server r equires that tagnames consist of only alphanumeric characters and underscores. The first character cannot be an underscore.The driver will modify invalid imported tag names as needed and inform users of any such name changes in theserver's Event Log.
ProWORX will assign a data type of either BOOL or INT to the exported variables. The driver will create tags of type Boolean and Short respectively. In order to generate tags with other data types, u sers should manually editthe exported file and use any of the supported Concept data types. For a list of supported types, refer to Export-ing Variables from Concept .
Exporting Variables from ProWORXOnce the variables have been defined, they must be exported from ProWORX.
1. Click File | Utilities | Import/Export .
2. Select Export and the Concept .TXT file format.
3. Descriptors are allowed and may be included as the generated tag descriptions. For more information,refer to Variable Import Settings .
www. kepware.com
17
8/9/2019 Modbus RTU Serial
18/50
Modbus RTU Serial Driver Help
4. Click OK to generate the file.
www. kepware.com
18
8/9/2019 Modbus RTU Serial
19/50
Modbus RTU Serial Driver Help
Data Types Description
Data Type Descript ionBoolean Single b itWord Unsigned 16 bit value
bit 0 is the low bitbit 15 is the high bit
Short Signed 16 bit value
bit 0 is the low bitbit 14 is the high bitbit 15 is the sign bit
DWord Unsigned 32 bit value
bit 0 is the low bitbit 31 is the high bit
Long Signed 32 bit value
bit 0 is the low bitbit 30 is the high bitbit 31 is the sign bit
BCD Two byte packed BCD
Value range is 0-9999. Behavior is undefined for values beyond thisrange.
LBCD Four byte p acked BCD
Value range is 0-99999999. Behavior is undefined for values beyondthis range.
Str ing Null terminated ASCII s tr ing
Supported on Modbus Model, includes HiLo LoHi byte order selection,8 Byte and 16 Byte Omni Flow Computer s tring data.
Double* 64 bit f loating point value
The driver interprets four consecutive registers as a double precisionvalue by making the last two registers the high DWord and the firsttwo registers the low DWord.
Double Example If register 40001 is specified as a double, bit 0 of register 40001would be bit 0 of the 64 bit data type and bit 15 of register 40004would be bit 63 of the 64 bit data type.
Float* 32 b it f loating poin t value
The driver interprets two consecutive registers as a single precisionvalue by making the last register the high word and the first registerthe low word.
Float Example If register 40001 is specified as a float, bit 0 of register 40001 wouldbe bit 0 of the 32 bit data type and bit 15 of register 40002 would bebit 31 of the 32 bit data type.
*The descriptions assume the default first DWord low data handling of 64 bit data types, and first word low datahandling of 32 bit data types.
www. kepware.com
19
8/9/2019 Modbus RTU Serial
20/50
Modbus RTU Serial Driver Help
Address Descriptions
Address specifications vary depending on the model in use. Select a link from the following list to obtain specificaddress information for the model of interest.
Modbus AddressingMagnetek GPD 515 Drive AddressingElliott Flow Computer AddressingDaniels S500 Flow Computer AddressingDynamic Flu id Meter AddressingOmni Flow Computer Addressing
See Also: Function Codes Description
Modbus Addressing
The default data types for dynamically defined tags are shown in bold . T he Function Codes are displayed in dec-imal. For more information, refer to Function Codes Description .
5 Digit Addressing vs. 6 Digit AddressingIn Modbus addressing, the first digit of the address specifies the primary table. The remaining digits representthe device's data item. The maximum value is a two byte unsigned integer (65,535). Six digits are required to rep-resent the entire a ddress ta ble and item. As such, addresses that are specified in the device's manual as 0xxxx,1xxxx , 3xxxx, or 4xxxx w ill be padded with an extra zero once applied to the Address field of a Modbus tag.
Primary Table D escription0 Output Coils1 Input Coils3 Internal Registers4 Holding Registers
Modbus Addressing in Decimal FormatAddress Range Data Type Access* Function Code
Output Coils 000001-065536 Boolean Read/Write 01, 05, 15Input Coils 100001-165536 Boolean Read Only 02Internal Registers 300001-365536
300001-365535300001-365533
3xxxxx.0/1-3xxxxx.15/16***
Word , Short, BCDFloat, DWord, Long, LBCDDouble
Boolean
Read Only 04
Internal Registers AsString with HiLo ByteOrder
300001.2H-365536.240H
.Bit is string length, range2 to 240 bytes.
String** Read Only 04
Internal Registers AsString with LoHi ByteOrder
300001.2L-365536.240L
.Bit is string length, range2 to 240 bytes.
String** Read Only 04
Holding Registers 400001-465536400001-465535400001-465533
4xxxxx.0/1-4xxxxx.15/16***
Word , Short, BCDFloat, DWord, Long, LBCDDouble
Boolean
Read/Write 03, 06, 16
03, 06, 16, 22Holding Registers AsString with HiLo ByteOrder
400001.2H-465536.240H
.Bit is string length, range2 to 240 bytes.
String** Read/Write 03, 16
Holding Registers As
String with LoHi ByteOrder
400001.2L-465536.240L
.Bit is string length, range2 to 240 bytes.
String** Read/Write 03, 16
www. kepware.com
20
8/9/2019 Modbus RTU Serial
21/50
8/9/2019 Modbus RTU Serial
22/50
Modbus RTU Serial Driver Help
Device responded with exception code 3" is received in the server event window, this means that the device didnot like the string's length. If possible, shorten the string.
Normal Address Examples1. The 255'th output coil would be addressed as '0255' using decimal addressing or 'H0FF' using hexadecimaladdressing.
2. Some documentation refers to Modbus addresses by function code and location. For instance, function code 3;location 2000 would be addressed as '42000' or 'H47D0'. The leading '4' r epresents holding registers or functioncode 3.
3. Some documentation refers to Modbus addresses by function code and location. For ins tance, setting functioncode 5 location 100 would be addressed as '0100' or 'H064'. The leading '0' represents output coils or functioncode 5. Writing 1 or 0 to this address would set or reset the coil.
Array SupportArrays are supported for internal and holding r egister locations for all data types except for Boolean and strings.Arrays are also supported for input and output coils (Boolean data types). There are two methods of addressingan array. The following examples use holding register locations:
4xxxx [rows] [cols]4xxxx [cols] this method assumes r ows is equal to one.
For arrays, rows multiplied by cols cannot exceed the block size that has been assigned to the device for the reg-ister/coil type. For register arrays of 32 bit data types, rows multiplied by cols multiplied by 2 cannot exceed theblock size.
Packed Coil Address TypeThe Packed Coil address type allows access to multiple consecutive coils as an analog value. This feature is avail-able for both input coils and output coils, polled mode only. The only valid data type is Word. T he syntax is:
Output coils: 0 xxxxx # nn Word Read/WriteInput coils: 1 xxxxx # nn Word Read Only
where xxxxx is the address of the first coil (decimal and hex values allowed), and nn is the number of coils to be
packed into an analog value (1-16, decimal only).
The bit order will be such that the start address will be the LSB (least significant bit) of analog value.
Magnetek GPD 515 Drive Addressing
This table provides the general ranges of data available from the Magnetek GPD 515 Drive. For information onhow specific Drive parameters can be accessed using Modbus RTU addressing, refer to the Magnetek ModbusRTU Technical Manual, part number TM4025. In all cases, the letter H (used to signify Hex addressing) shouldprecede the desired address. The default data types for dynamically defined tags are shown in bold where appro-priate.
Magnetek GPD 515 Addressing Hexadecimal FormatAddress Range Data Type AccessCommand Registers
Bit Level Access
H40001-H4000F
H4xxxx.0/1-H4xxxx.F/10*
Word , Short
Boolean
Read/Write
Monitor Registers
Bit Level Access
H40010-H4001A
H4xxxx.0/1-H4xxxx.F/10*
Word , Short
Boolean
Read Only
Drive Parameter Registers(Monitor Only)
Bit Level Access
H40020-H40097
H4xxxx.0/1-H4xxxx.F/10*
Word , Short
Boolean
Read Only
Drive Parameter Registers
Bit Level Access
H40100-H4050D
H4xxxx.0/1-H4xxxx.F/10*
Word , Short
Boolean
Read/Write
Special Registers H4FFDD ACCEPT
H4FFFD ENTER
Word, Short Write Only
*For more information, refer to "Zero vs. One Based Bit Addressing Within Registers" in Settings .
www. kepware.com
22
8/9/2019 Modbus RTU Serial
23/50
8/9/2019 Modbus RTU Serial
24/50
Modbus RTU Serial Driver Help
Dynamic Fluid Meter Addressing
The default data types for dynamically defined tags are shown in bold where appropriate.
Dynamic Fluid Meter Addressing Decimal FormatAddress Range Data Type Access
Holding Registers (16 bit) 400000-407000400000-406999
408001-465535408001-465534
4xxxxx.0/1-4xxxxx.15/16*
Word , Short, BCDFloat, DWord, Long, LBCD
Word , Short, BCDFloat, DWord, Long, LBCD
Boolean
Read/Write
Holding Registers (32 bit) 407001-408000 Float Read/WriteHolding Registers As Stringwith HiLo Byte Order
400000.2H-407000.240H408001.2H-465535.240H
.Bit is string length, range 2 to 240 bytes.
String Read/Write
Holding Registers As Stringwith LoHi Byte Order
400000.2L-407000.240L408001.2L-465535.240L
.Bit is string length, range 2 to 240 bytes.
String Read/Write
*For more information, refer to "Zero vs. One Based Bit Addressing Within Registers" in Settings .
Dynamic Fluid Meter Addressing Hexadecimal FormatAddress Range Data Type AccessHolding Registers (16 bit) H400000-H401B58
H400000-H401B57
H401F41-H40FFFFH401F41-H40FFFE
H4xxxxx.0/1-H4xxxxx.F/10*
Word , Short, BCDFloat, DWord, Long, LBCD
Word , Short, BCDFloat, DWord, Long, LBCD
Boolean
Read/Write
Holding Registers (32 bit) H401B59-H401F40 Float Read/WriteHolding Registers As Stringwith HiLo Byte Order
H400000.2H-H401B58.240HH401F41.2H-H40FFFF.240H
.Bit is string length, range 2 to 240 bytes.
String Read/Write
Holding Registers As Stringwith LoHi Byte Order
H400000.2L-H401B58.240LH401F41.2L-H0FFFF.240L
.Bit is string length, range 2 to 240 bytes.
String Read/Write
*For more information, refer to "Zero vs. One Based Bit Addressing Within Registers" in Settings .
Note: This driver requires that all addresses begin with "4" for the Dynamic Fluid Meter model. This 4 may not
always be written explicitly in the Dynamic Fluid Meter documentation. For example, users may see a reference to"Unit ID at address 3001". This value must be addressed in the server as "403001".
String SupportThe Dynamic Fluid Meter model supports reading and wr iting holding register memory as an ASCII string. Whenusing holding r egisters for s tring data, each register will contain two bytes of ASCII data. The order of the ASCIIdata within a given register can be selected when the string is defined. The length of the string can be from 2 to240 bytes and is entered in place of a bit number. The length must be entered as an even number. The byteorder is specified by appending either a "H" or "L" to the address.
String Examples1. To address a string starting at 40200 with a length of 100 bytes and HiLo byte order, enter "40200.100H".
2. To address a string starting at 40500 with a length of 78 bytes and LoHi byte order, enter "40500.78L".
Note: The string's length may be limited by the maximum size of the write request that the device will allow. If,while utilizing a string tag, an error message of "Unable to write to address on device :
www. kepware.com
24
8/9/2019 Modbus RTU Serial
25/50
8/9/2019 Modbus RTU Serial
26/50
8/9/2019 Modbus RTU Serial
27/50
Modbus RTU Serial Driver Help
Meter Run #4 13040-13052 Short , Word, BCD Read/Wr iteProver Configuration 13053-13073 Short , Word, BCD Read/Wr iteGeneral Flow Configuration 13074-13084 Short , Word, BCD Read/Wr iteSerial Port Configuration 13085-13128 Short , Word, BCD Read/Wr itePID Configuration 13129-13160 Short , Word, BCD Read/Wr ite
PLC Data 13161-13299 Short , Word, BCD Read/Wr itePeer to Peer Setup 13300-13499 Short , Word, BCD Read/Wr iteRaw Data Archive 13500-13999 Short , Word, BCD Read/Wr ite
16 Character ASCII String Data Range Data Type AccessFlow Computer Configuration 14001-14499 String Read/Write
32 Bit Integer Data Range Data Type AccessFlow Computer Configuration 15001-16999 Long , DWord, LBCD, Float Read/Write
32 Bit IEEE Floating Point Data Range Data Type AccessFlow Computer Configuration 17001-18999 Float , Long, DWord, LBCD Read/Write
Supported Extended Omni TypesCustom PacketsRaw Data ArchiveText ReportsText Archive
Omni Custom Packets
The Omni Flow Computer allows users to map various ranges of memory to a single data structure that can beread with a single, highly efficient read command. These data structures are called Custom Packets.
Packet ConfigurationEach custom packet may contain up to twenty groups of data points. Each group is defined by its starting indexand the n umber of data points. The total size of the custom packet must not exceed 250 bytes. The addressesused to def ine the custom packets are listed below.
Custom Packet 1 (address 1)3001 Group 1-Starting index3002 Group 2-Number of points
to
3039 Group 20-Starting index3040 Group 20-Number of points
Custom Packet 2 (address 201)3041 Group 1-Starting index3042 Group 2-Number of points
to
3055 Group 20-Starting index3056 Group 20-Number of points
Custom Packet 3 (address 401)3057 Group 1-Starting index3058 Group 2-Number of points
to
3095 Group 20-Starting index3096 Group 20-Number of points
Note: Data is returned from the device as 16 bit registers. Digital I/O must be mapped in blocks of 16 bits.
Custom Packet Address Syntax
www. kepware.com
27
8/9/2019 Modbus RTU Serial
28/50
Modbus RTU Serial Driver Help
Tags can be created to access data at a given offset within a custom packet. The address syntax is as follows. Thedefault data types are shown in bold.
Address Range Data Type AccessCPn_o n = Packet Number (1-3)
o = Word offset (0-125)Word, Short , BCD, DWord, Long, LBCD, Float, String Read Only
CPn_o.b n = Packet Number (1-3)o = Word offset (0-125)b = Bit number (0/1-15/16)*
Boolean Read Only
*For more information, refer to "Zero vs. One Based Bit Addressing Within Registers" in Settings .
Note 1: Only 8 character ASCII string data is supported.
Note 2: If a 16 character ASCII string data address is contained in group configuration, then data can be read astwo 8 character ASCII string data items.
ExampleDefine Custom Packet #1 to map to the following:
l 16 bits of Digital I/O (1001-1016).l Fifteen 32-bit integers of Meter Run 1 Batch data (5101 -5115).l Twelve 32-bit floats of Analog Outputs (7001-7012).l Four 8-character ASCII strings of Meter Run (4101-4104).l Six 8-character ASCII strings of Meter Station (4808-4813).l Two 16-character ASCII strings of Flow Configuration data (14001-14002).
Note: This will make a total of 222 bytes. The custom packet configuration registers would have the followingvalues:
3001 = 10013002 = 163003 = 51013004 = 153005 = 70013006 = 123007 = 41013008 = 43009 = 48083010 = 63011 = 140013012 = 2
Tags to access the Digital I/O data would have the following addresses (all 16 values contained in word 0):CP1_0.0 (Word 0 of Custom Packet 1, bit 0-mapped to 1009)CP1_0.1 (Word 0 of Custom Packet 1, bit 1-mapped to 1010)...CP1_0.6 (Word 0 of Custom Packet 1, bit 6-mapped to 1015)CP1_0.7 (Word 0 of Custom Packet 1, bit 7-mapped to 1016)
CP1_0.8 (Word 0 of Custom Packet 1, bit 8-mapped to 1001)CP1_0.9 (Word 0 of Custom Packet 1, bit 9-mapped to 1002)...CP1_0.14 (Word 0 of Custom Packet 1, bit 14-mapped to 1007)CP1_0.15 (Word 0 of Custom Packet 1, bit 15-mapped to 1008)
Tags to access the Meter Run 1 Batch data would have the following addresses (each 32 bit value uses 2 words):CP1_1 (Word 1 of Custom Packet 1-mapped to 5101)CP1_3 (Word 3 of Custom Packet 1-mapped to 5102)...CP1_29 (Word 29 of Custom Packet 1-mapped to 5115)
Tags to access the Analog Output data would have the following addresses (each 32 bit value uses 2 words):CP1_31 (Word 31 of Custom Packet 1-mapped to 7001)CP1_33 (Word 33 of Custom Packet 1-mapped to 7002)
...CP1_53 (Word 53 of Custom Packet 1-mapped to 7012)
www. kepware.com
28
8/9/2019 Modbus RTU Serial
29/50
Modbus RTU Serial Driver Help
Tags to access the Meter Run 8 character ASCII String data would have the following addresses (each Stringvalue uses 4 words):CP1_55 (Word 55 of Custom Packet 1-mapped to 4101)...CP1_67 (Word 67 of Custom Packet 1-mapped to 4104)
Tags to access the Meter Station 8 character ASCII String data would have the following addresses (each Stringvalue uses 4 words):CP1_71 (Word 71 of Custom Packet 1-mapped to 4808)...CP1_91 (Word 91 of Custom Packet 1-mapped to 4813)
Tags to access the Flow Configuration 16 character ASCII String data would have the following addresses (eachString value uses 4 words):CP1_95 (Word 95 of Custom Packet 1-mapped to 14001 characters 1-8)CP1_99 (Word 99 of Custom Packet 1-mapped to 14001 characters 9-16)CP1_103 (Word 103 of Custom Packet 1-mapped to 14002 characters 1-8)CP1_107 (Word 107 of Custom Packet 1-mapped to 14002 characters 9-16)
Omni Raw Data Archive
The Omni Flow Computer may be configured to map various ranges of memory to a single data structure, andthen store that structure in an archive when triggered. Users may configure up to ten archives. There are twoadditional fixed format archives for Alarm and Audit data. Each archive is a circular buffer, where each new rec-ord replaces the oldest record.
Record Configuration and RetrievalUsers may configure the record s tructure of Raw Data Archives 1 to 10. Archives 11 and 12 are of fixed formatand contain Alarm and Audit data respectively. For a full discuss ion of Raw Data Archives, refer to Omni TechnicalBulletin 96073.
Each record may contain up to sixteen groups of data points. Each g roup is defined by its starting index and thenumber of data points. The addresses used to define the archive records are listed below. The total size of the rec-ord must not exceed 250 bytes. T he device will use the first 6 bytes for date and time stamp data, leaving 244bytes for raw data. Each record will have its own Boolean trigger. Data will be stored when the trigger goes fromlow to high.
Before a group starting index, number of points in group or trigger for a raw data archive can be changed, archiv-ing must halt. The Allow Archive Configuration Flag must be set in the device. Be aware that doing this willlikely cause the data archive in the device to be reinitialized, including all Raw Data Archives and the Text Archive.
13920 Archive Run-0=stop, 1= start13921 Reconfigure Archives-0=no configuration changes allowed, 1=configuration changes allowed
This driver may be used to read a Raw Data Archive one record at a time. To read a record, first write the desiredrecord index to the "Requested record" register. Once this value is set, users may read the record with an "RA"tag. Users should ensure that the specified record index does not exceed the maximum number of recordsallowed for that archive. If the "Last record updated" value is zero, there have been no records saved in thearchive since it was last initialized.
Raw Data Archive 1 (address 701)13500 Group 1-Starting Index13501 Group 1-Number of Points
to
13530 Group 16-Starting Index13531 Group 16-Number of points
13900 Trigger Boolean
3701 Maximum number of records3702 Last r ecord updated3703 Requested record
Raw Data Archive 2 (address 702)13540 Group 1-Starting Index13541 Group 1-Number of Points
www. kepware.com
29
8/9/2019 Modbus RTU Serial
30/50
Modbus RTU Serial Driver Help
to
13570 Group 16-Starting Index13571 Group 16-Number of points
13901 Trigger Boolean
3704 Maximum number of records3705 Last r ecord updated3706 Requested record
Raw Data Archive 3 (address 703)13580 Group 1-Starting Index13581 Group 1-Number of Points
to
13610 Group 16-Starting Index13611 Group 16-Number of points
13902 Trigger Boolean
3707 Maximum number of records3708 Last r ecord updated3709 Requested record
Raw Data Archive 4 (address 704)13620 Group 1-Starting Index13621 Group 1-Number of Points
to
13650 Group 16-Starting Index13651 Group 16-Number of points
13903 Trigger Boolean
3710 Maximum number of records3711 Last r ecord updated3712 Requested record
Raw Data Archive 5 (address 705)13660 Group 1-Starting Index13661 Group 1-Number of Points
to
13690 Group 16-Starting Index13691 Group 16-Number of points
13904 Trigger Boolean
3713 Maximum number of records3714 Last r ecord updated3715 Requested record
Raw Data Archive 6 (address 706)13700 Group 1-Starting Index13701 Group 1-Number of Points
to
13730 Group 16-Starting Index13731 Group 16-Number of points
13905 Trigger Boolean
3716 Maximum number of records3717 Last r ecord updated3718 Requested record
www. kepware.com
30
8/9/2019 Modbus RTU Serial
31/50
Modbus RTU Serial Driver Help
Raw Data Archive 7 (address 707)13740 Group 1-Starting Index13741 Group 1-Number of Points
to
13770 Group 16-Starting Index13771 Group 16-Number of points
13906 Trigger Boolean
3719 Maximum number of records3720 Last r ecord updated3721 Requested record
Raw Data Archive 8 (address 708)13780 Group 1-Starting Index13781 Group 1-Number of Points
to
13810 Group 16-Starting Index13811 Group 16-Number of points
13907 Trigger Boolean
3722 Maximum number of records3723 Last r ecord updated3724 Requested record
Raw Data Archive 9 (address 709)13820 Group 1-Starting Index13821 Group 1-Number of Points
to
13850 Group 16-Starting Index
13851 Group 16-Number of points
13908 Trigger Boolean
3725 Maximum number of records3726 Last r ecord updated3727 Requested record
Raw Data Archive 10 (address 710)13860 Group 1-Starting Index13861 Group 1-Number of Points
to
13890 Group 16-Starting Index
13891 Group 16-Number of points13909 Trigger Boolean
3728 Maximum number of records3729 Last r ecord updated3730 Requested record
Raw Data Archive 11 Alarm (address 711)Not configurable
3731 Maximum number of records3732 Last r ecord updated3733 Requested record
Raw Data Archive 12 Archive (address 712)Not configurable
3734 Maximum number of records
www. kepware.com
31
8/9/2019 Modbus RTU Serial
32/50
8/9/2019 Modbus RTU Serial
33/50
Modbus RTU Serial Driver Help
2 3-Byte Time hh/mm/ss.3 16 bit Integer Event number, increments for each event, rolls at 65535.4 16 bit Integer Modbus index of var iable changed.5 IEEE Float Numeric var iable value before change-old value.6 IEEE Float Numeric var iable value af ter change-new value.
7 16-Char ASCII String variable value before change-old value.8 16-Char ASCII String variable value after change-new value.9 32 bit Integer Volume totalizer at time of change.10 32 bit Integer Mass totalizer at thet ime of thechange.
Note: Fields 5 and 6 are set to 0.0 when the variable type changed is a string. Fields 7 and 8 contain null char-acters when the variable type change is not a string. When fields 7 and 8 contain 8 character strings, the remain-ing 8 characters are padded with nulls.
Omni Text Reports
The Omni Flow computer can generate several different types of text reports. Each of these reports can be readby this driver and sent to the OPC Client as a string value.
Text Report TypesThere are a number of report types that can be retrieved from the Omni Flow Computer. They may be read usinga "TR" tag. The report types are as follows.
Custom Report Templates9001 Report Template-Snapshot / Interval9002 Report Template-Batch9003 Report Template-Daily9003 Report Template-Prove
Previous Batch Reports9101 Batch Report-Last9102 Batch Report-Second from Last...9108 Batch Report-Eighth from last
Previous Prove Reports9201 Prove Report-Last9202 Prove Report-Second from last...9208 Prove Report-Eighth from last
Previous Daily Reports9301 Previous Day's Report-Last9302 Previous Day's Report-Second from last...9308 Previous Day's Report-Eighth from last
Last Snapshot Report9401 Last Local Snapshot / Interval Report
Miscellaneous Report Buffer9402 Miscellaneous Report Buffer
Text Report Address SyntaxAddress Range Data Type AccessTRnTRn T (triggered read)
n = Report address (9001-9402) String Read/Write
ExampleTo read or write to the Snapshot Report Template (address 9001), create a tag with address "TR9001".
Note: Because it can take several seconds to read a Text Report, the "TR" tags s hould be kept inactive in the OPCclient. Alternatively, triggered reads can be used instead. No other tags on the channel can be read or written towhile the driver is r eading or writing a Text Report.
Triggered Text Report Reads
www. kepware.com
33
8/9/2019 Modbus RTU Serial
34/50
Modbus RTU Serial Driver Help
As noted above, it is recommended that the Text Report tag be kept inactive, even though it is not always pos-sible. A triggered read capability has been added as an alternative, allowing the Text Archive tag to remain active.It also controls when the actual device reads occur with an auxiliary trigger tag.
A triggered read may not begin immediately depending on when in the Text Report tag's update cycle the triggeris set. After the read attempt has been completed, the driver will clear the trigger state. The Text Report tag will
show the value and data quality that resulted from the last triggered read attempt.
Text Report Read Trigger Address SyntaxAddress Range Data Type AccessTRIG_TRn n = Report address (9001-9402) Boolean Read/Write
ExampleTo read the Last Batch Report (address 9101) on trigger, create two tags. The first is a Text Report tag withaddress "TR9101 T", and the second is a Text Report Read Tr igger tag with address "TRIG_TR9101".
Note: The Text Report tag address looks like a normal Text Report address followed by a space and the letter "T"for "triggered read". This "T" must be present in the address for triggered reads to work.
To trigger a read, set the trigger tag value to true (non-zero). After the read attempt has been completed, the
driver will set the trigger value to false (0). If the read was successful, the Text Report tag's data quality will beGood. If the read failed, the Text Report tag's data quality will be Bad, and the value will be the last value suc-cessfully read.
Saving Text Report Data To DiskThe driver has the ability to save Text Report data to disk. T his feature is enabled by using Text Report Path tags.These tags are used to write file path strings to the driver's memory. Each report type has its own path buffer.After a successful T ext Report read, the driver will check the associated path buffer. If a valid path is storedthere, the driver will save the report data as ASCII text in that file. The file will be created if needed. The file willbe overwritten on subsequent Text Report reads.
The path buffers are initialized to empty strings upon server start up. The driver will not write Text Report data tofile until a valid path is saved in the associated path buffer. Path data is not persistent. The path strings must berewritten each time the server is r estarted. The path values can be changed at any time, allowing users to save
data to different files on each read if desired.
Path strings may be up to 255 characters long.
Text Report Path Address SyntaxAddress Range Data Type AccessPATH_TRn n = Report address (9001-9402) String Read/Write
ExampleTo read the Last Batch Report (address 9101) and save the result to disk, create two tags. The first is a TextReport tag with address "TR9101", and the second is a path tag with address "PATH_TR9101".
In order to save the report data in a file called "LastBatch.txt" (which is to be created in the folder "C:\-OmniData\BatchReports") set up the client so that the first thing that it does is wr ite "C:\-
OmniData\BatchReports\LastBatch.txt" to the path tag. Once this is done, read the Text Report tag. If the path isnot set before the first read of the Text Report, the driver will not be able to save the data to disk.
Note: To disable this feature, simply write a empty string to the path tag.
Omni Text Archive
The Omni Flow Computer can also store reports in an archive. This driver can read a range of reports from thearchive and send them to the OPC client as a string value.
Reading the Text ArchiveBefore the text archive can be read, two settings must be made in the device: the archive start date, and thenumber of days to retrieve. These 32 bit integer values are at addresses 15128 and 15127 respectively. The dateformat may be specified using the value at address 3842 (0 = dd/mm/yy, 1 = mm/dd/yy). Shortly after thenumber of days is set, the device will begin preparing the data. When the data is ready to be read, the number of days value will become negative. The Text Archive can be read at any time after the number of days is set. Thedriver will wait for the value to become negative.
www. kepware.com
34
8/9/2019 Modbus RTU Serial
35/50
Modbus RTU Serial Driver Help
Text Archive Address SyntaxAddress Range Data Type AccessTATA T (triggered read)
N/A String Read Only
Note: Because it can take several minutes to read a Text Archive, the "TA" tag should be kept inactive in the OPCclient. Alternatively, triggered r eads can be used instead. This tag should only be read using asynchronousreads, since the maximum synchronous read timeout cannot be increased high enough in the server to read a typ-ical text archive request. No other tags on the channel can be read or written to while the Text Archive is beingread.
If a Text Archive read fails midway, users should reset the device's read buffer by writing 999 to the number of days register (15127), and then repeat the normal Text Archive read procedure. Otherwise, the driver may notget the first part of the requested archive range.
Triggered Text Archive ReadsIt is recommended that the Text Archive tag be kept inactive even though it is not always possible. A triggeredread capability has been added as an alternative, thus allowing the Text Archive tag to remain active. It also con-trols when the actual device reads occur with an auxiliary trigger tag. The trigger value is stored in the driver'smemory and may be read and set using a tag with the address syntax described below.
A triggered read may not begin immediately depending on when in the Text Archive tag's update cycle the triggeris set. After the read attempt has been completed, the driver will clear the trigger state. The Text Archive tag willshow the value and data quality that resulted from the last triggered read attempt.
Text Archive Read Trigger Address SyntaxAddress Range Data Type AccessTRIG_TA N/A Boolean Read/Write
ExampleTo read the Text Archive on trigger, create two tags. The first is a Text Archive tag with address "TA T", and thesecond is a Text Archive Read Trigger tag with address "TRIG_TA". Users will also have to create start date and
number of days tags.Note: The Text Archive tag address looks like a normal Text Archive address followed by a space and the letter"T" for "triggered read". This "T" must be present in the address for triggered reads to work.
To trigger a read, set the trigger tag value to true (non-zero). After the read attempt has been completed, thedriver will set the trigger value to false (0). If the read was successful, the Text Archive tag's data quality will beGood. If the read failed, the Text Archive tag's data quality will be Bad and the value will be the last value suc-cessfully read.
Saving Text Archive Data To DiskThe driver has the ability to save Text Archive data to disk. This feature is enabled using a Text Archive Path tag.This tag is used to write a file path string to the driver's memory. After a successful Text Archive read, the driverwill check the associated path buffer. If a valid path is stored there, the driver will save the Text Archive data asASCII text in that file. The file will be created if needed. The file will be overwritten on subsequent Text Archivereads.
The path buffer is initialized to an empty string upon server start up. The driver will not write Text Archive data tofile until a valid path is saved in the associated path buffer. Path data is not persistent. Users will have to rewritethe path string each time the server is restarted. The path value can be changed at any time, allowing the data tobe saved to different files on each read (if desired).
The path string may be up to 255 characters long.
Text Archive Path Address SyntaxAddress Range Data Type AccessPATH_TA N/A String Read/Write
Example
www. kepware.com
35
8/9/2019 Modbus RTU Serial
36/50
Modbus RTU Serial Driver Help
To read the Text Archive and save the result to disk, create two tags. The first is a Text Archive tag with address"TA", and the second is a path tag with address "PATH_TA". Users will also have to create start date and numberof days tags as described above.
In order to save the Text Archive data in a file called "TextArchive.txt" (which is to be created in the folder "C:\-OmniData\ArchiveData") set up the client so that the first thing that it does is write "C:\-
OmniData\ArchiveData\TextArchive.txt" to the path tag. Once this is done, read the Text Archive tag. If the pathis not set before the first read of the Text Archive, the driver will not be able to save the data to disk.
Note: To disable this feature, simply write a empty string to the path tag.
Function Codes Description
Modbus Addressing ModelDecimal Hexadecimal Description01 0x01 Read Coil Status02 0x02 Read Input Status03 0x03 Read Holding Registers04 0x04 Read Internal Registers05 0x05 Force Single Coil06 0x06 Preset Single Register15 0x0F Force Multiple Coils16 0x10 Preset Multiple Registers22 0x16 Masked Write Register
Daniels S500 Flow Computer Addressing ModelDecimal Hexadecimal Description01 0x01 Read Coil Status02 0x02 Read Input Coil03 0x03 Read Holding Registers05 0x05 Force Single Coil16 0x10 Preset Multiple Registers
www. kepware.com
36
8/9/2019 Modbus RTU Serial
37/50
Modbus RTU Serial Driver Help
Error Descriptions
The following error/warning messages may be generated. Click on the link for a description of the message.
Address ValidationAddress '' is out of range for the specified device or register
Array size is out of range for address ''Array support is not available for the specified address: ''Data Type '' is not valid for device address ''Device address '' contains a syntax errorDevice address '' is not supported by model ''Device address '' is Read OnlyMissing addressReceived block length of '' does not match expected length of '' for address '' on device ''
Serial CommunicationsCommunications error on '' []COMn does not existCOMn is in use by another applicationError opening COMnU nable t o s et c o mm parameters o n COMn
Device St a tus MessagesDevice '' is no t respo n dingUnable t o write to address '' on device '': Device responded with exception code''Un a ble to write to '< a d d ress > ' on dev ice ''Write failed for '' on device ''. Maximum path length of ''characters exceeded
Modbus RTU Serial Spe cific MessagesBad address in block [ to ] on device ''Bad array spanning [ to ] on device ''Could not read Omni text buffer due to memory allocation problemCo uld not read Omni text re port '' on device '' due to packet number limitErr or writing Omni text data to file for '' on device '' because N o O mni text archive data a vailab le in s pecified date range on device ''Omni text output f i le spec i fied for ' ' on devi c e '' could not be openedbecause Write to Omni text report '' on device '' truncated
Automatic Tag Databas e Gen e ration Mess agesDes c rip t ion t runcated for imp o rt file record numbe r < r e c ord>Error parsi n g import file recor d num b e r , field File exception enco u ntered during tag import
Imported t ag name '' is invalid. Name changed to ''Ta g '' could not be i m porte d beca u se data type '' is not supportedTag import failed due to low memory resources
See Also:Modbus Ex c eption Codes
Address Validation
The following error/warning messages may be generated. Click on the link for a description of the message.
Address ValidationAddress '' is out of range for the specified device or registerArray size is out of range for address ''Array support is not available for the specified address: ''D at a T ype ' ' is not valid fo r device address ''D evice address '' contains a syntax e rror
www. kepware.com
37
8/9/2019 Modbus RTU Serial
38/50
Modbus RTU Serial Driver Help
Device address '' is not supported by model ''Device address '' is Read OnlyMissing addressReceived block length of '' does not match expected length of '' for address '' on device ''
Address '' is out of range for the specified device or registerError Type:Warning
Possible Cause:A tag address that has been specified statically references a location that is beyond the range of supported loca-tions for the device.
Solution:Verify that the address is correct; if it is not, re-enter it in the client application.
Array size is o ut of ra nge for address ''
Error Type:Warning
Possible Cause:A tag address that has been specified statically is requesting an array size that is too large for the address type orblock size of the driver.
Solution:Re-enter the address in the client application to specify a smaller value for the array or a different starting point.
Array support is not available for the specified address: ''
Error Type:Warning
Possible Cause:A tag address that has been specified statically contains an array reference for an address type that doesn't sup-port arrays.
Solution:Re-enter the address in the client application to remove the array reference or correct the address type.
Data Type '' is not valid for device address ''
Error Type:Warning
Possible Cause:
A tag address that has been specified statically has been assigned an invalid data type.
Solution:Modify the requested data type in the client application.
Device address '' contains a syntax error
Error Type:Warning
Possible Cause:A tag address that has been specified statically contains one or more invalid characters.
Solution:
Re-enter the address in the client application.
www. kepware.com
38
8/9/2019 Modbus RTU Serial
39/50
Modbus RTU Serial Driver Help
Device address '' is not supported by model ''
Error Type:Warning
Possible Cause:
A tag address that has been specified statically references a location that is valid for the communications protocolbut not supported by the target device.
Solution:Verify that the address is correct; if it is not, re-enter it in the client application. Also verify that the selectedmodel name for the device is correct.
Device address '' is Read Only
Error Type:Warning
Possible Cause:A tag address that has been specified statically has a requested access mode that is not compatible with what the
device supports for that address.
Solution:Change the access mode in the client application.
Missing address
Error Type:Warning
Possible Cause:A tag address that has been specified statically has no length.
Solution:
Re-enter the address in the client application.
Received block length of '' does not match expected lengthof '' for address '' on device ''
Error Type:Warning
Possible Cause:The driver attempted to read a block of memory but the PLC did not provide the driver with the requested size of data. No error code was returned.
Solution:N/A
Serial Communications
The following error/warning messages may be generated. Click on the link for a description of the message.
Serial CommunicationsCommunications error on '' []COMn does not existCOMn is in use by another applicationError opening COMnUnable to set comm paramete r s on COMn
Communi cations error on '' []
Error Type:Serious
www. kepware.com
39
8/9/2019 Modbus RTU Serial
40/50
Modbus RTU Serial Driver Help
Error Mask Definitions:B = Hardware break detected.F = Framing error.E = I/O error.O = Character buffer overrun.R = RX buffer overrun.
P = Received byte parity error.T = TX buffer full.
Possible Cause:1. The serial connection between the device and the Host PC is bad.2. The communications parameters for the serial connection are incorrect.
Solution:1. Verify the cabling between the PC and the PLC device.2. Verify that the specified communications parameters match those of the device.
COMn does not exist
Error Type:Fatal
Possible Cause:The specified COM port is not present on the target computer.
Solution:Verify that the proper COM port has been selected.
COMn is in use by another application
Error Type:Fatal
Possible Cause:The serial port assigned to a device is being used by another application.
Solution:1. Verify that the correct port has been assigned to the channel.2. Verify that only one copy of the current project is running.
Error opening COMn
Error Type:Fatal
Possible Cause:The specified COM port could not be opened due an internal hardware or software problem on the target com-puter.
Solution:Verify that the COM port is functional and may be accessed by other Windows applications.
Unable to set comm parameters on COMn
Error Type:Fatal
Possible Cause:The serial parameters for the specified COM port are not valid.
Solution:Verify the serial parameters and make any necessary changes.
Device Status MessagesThe following error/warning messages may be generated. Click on the link for a description of the message.
www. kepware.com
40
8/9/2019 Modbus RTU Serial
41/50
Modbus RTU Serial Driver Help
Device Status MessagesDevice '' is not respondingUnable to write to address '' on device '': Device responded with exception code''Unable to write to '' on device ''
Write failed for '' on device ''. Maximum path length of ''characters exceeded
Device '' is not responding
Error Type:Serious
Possible Cause:1. The serial connection between the device and the Host PC is broken.2. The communications parameters for the serial connection are incorrect.3. The named device may have been assigned an incorrect Network ID.4. The response from the device took longer to receive than the amount of time specified in the "Request Timeout"d e vice se t ting.
Sol ution:1. Ver ify the c a bling between the PC and the PLC device.2. Verify the s pecified communications parameters match those of the device.3. Verify the Network ID given to the named device matches that of the actual device.4. Increase the Request Timeout setting so that the entire response can be handled.
Unable to write to address '' on device '': Deviceresponded with exception code ''
Error Type:Warning
Possible Cause:
See Modbus Exception Codes for a description of the exception code.
Solution:See Modbus Exception Codes .
Unable to write to '' on device ''
Error Type:Serious
Possible Cause:1. The serial connection between the device and the Host PC is broken.2. The communications parameters for the serial connection are incorrect.3. The named device may have been assigned an incorrect Network ID.
Solution:1. Verify the cabling between the PC and the PLC device.2. Verify the specified communications parameters match those of the device.3. Verify that the Network ID given to the named device matches that of the actual device.
Write failed for '' on device ''. Maximum pathlength of '' exceeded
Error Type:Warning
Possible Cause:Path length is limited to the indicated number of characters.
Solution:Devise a shorter path.
www. kepware.com
41
8/9/2019 Modbus RTU Serial
42/50
Modbus RTU Serial Driver Help
Modbus RTU Serial Specific Messages
The following error/warning messages may be generated. Click on the link for a description of the message.
Modbus RTU Serial Specific Messages
Bad address in block [ to ] on device ''Bad array spanning [ to ] on device ''Could not read Omni text buffer due to memory allocation problemCould not read Omni text report '' on device '' due to packet number limitError writing Omni text data to file for '' on device '' because No Omni text archive data available in specified date range on device ''Omni text output file specified for '' on device '' could not be openedbecause Write to Omni text report '' on device '' truncated
Bad address in block [ to ] on device ''
Error Type:Serious
Possible Cause:1. A n attempt has been ma d e to reference a n onexist ent location in the specified device.2. A n attempt has been made to read more registe r s than allow e d by the protocol.
S ol u tion :1. Verify the tags assigned to addresses in the specified range on the device and eliminate ones that referencein valid l ocations.2. Decrease the register block size value to 125.
See Also:Error HandlingBlock Sizes
Bad array spanning [ to ] on device ''
Error Type:Serious
Possible Cause:1 . An att empt has been made to reference a nonexistent location in the specified device.2. An attempt has been made to read more registers than allowed by the protocol.
Solution:1. Verify that all the register addresses requested in the array exist in the device and reduce the array size suchthat only valid addresses (that exist in the device) are requested by the array.2. Reduce the array size value to 125.
See Also:Error HandlingBlock Sizes
Could not read Omni text buffer due to memory allocation problem
Error T ype:Serio us
Possible Cause:The driver could not allocate memory required for an Omni Text Record or T ext Archive read operation.
Solution:Shutdown all unnecessary applications and then retry.
www. kepware.com
42
8/9/2019 Modbus RTU Serial
43/50
Modbus RTU Serial Driver Help
Could not read Omni text report '' on device '' due topacket limit
Error Type:Serious
Possible Cause:Text reports are expected to be 8192 bytes or less. This is a limit imposed by the protocol. The driver read 8192bytes before encountering the expected end of file character.
Solution:Verify that the report template used by the device will generate reports of 8192 bytes or less.
Error writing Omni text data to file for '' on device '' because
Error Type:Warning
Possible Cause:The driver could not write the Omni text data to disk for the indicated reason.
Solution:The operating system supplies the reason indicated. The reason should determine appropriate corrective meas-ures.
No Omni text archive data available in specified date range on device ''
Error Type:Warning
Possible Cause:
No data was stored in the text archive for the date range specified by the Start Date register (15128) and theNumber of Days register (15127).
Solution:This is not necessarily an error.
Omni text output file specified for '' on device ''could not be opened because
Error Type:Warning
Possible Cause:The file specified in an Omni Text Path tag could not be created or opened.
Solution:The operating system supplies the reason indicated. The reason should determine appropriate corrective meas-ures. The most likely cause is an invalid path.
See Also:Omni Text ReportsOmni Text Archive
Write to Omni text report '' on device '' truncated
Error Typ e:Serious
Possible Cause:
An attempt was made to write more than 8192 bytes to a text report. This is a limit imposed by the protocol.
Solution:
www. kepware.com
43
8/9/2019 Modbus RTU Serial
44/50
Modbus RTU Serial Driver Help
Do not write strings greater than the 8192 byte limit. If the string is longer, only the first 8192 characters will bewritten to the device.
Automatic Tag Database Generation Messages
The following error/warning messages may be generated. Click on the link for a description of the message.
Automatic Tag Database Generation MessagesDescription truncated for import file record number Error parsing import file record number , field File exception encountered during tag importImported tag name '' is invalid. Name changed to ''Tag '' could not be imported because data type '' is not supportedTag import failed due to low memory resources
Description truncated for import file record number
Error Type:Warning
Possible Cause:The tag description given in specified record is too long.
Solu t ion:The driver wi ll truncate the d e scription as n eeded . To prevent this error in the future, edit the variable import filetochange the desc r iption if possib le.
Error p a rsing import file record number , field
Error Type:Serious
Possible Cause:The specified field in the variable import file could not be parsed because it is longer than expected or invalid.
Solution:Edit the variable import file to change the offending field if possible.
File exception encountered during tag import
Error Type:Serious
Possible Cause:The variable import file could not be read.
Solution:Regenerate the variable import file.
Imported tag name '' is invalid. Name changed to ''
Error Type:Warning
Possible Cause:The tag name encountered in the variable import file contained invalid characters.
Solution:The driver will construct a valid name based on the one from the variable import file. To prevent this error in thefuture, and to maintain name consistency, change the name of the exported variable (if possible).
Tag '' could not be imported because data type '' is notsupportedError Type:
www. kepware.com
44
8/9/2019 Modbus RTU Serial
45/50
Modbus RTU Serial Driver Help
Warning
Possible Cause:The driver does not support the data type specified in the variable import file.
Solution:
Change the data type specified in the variable import file to one that is supported. If the variable is for a struc-ture, manually edit the file to define each tag required for the structure. Alternatively, configure the required tagsmanually in the OPC server.
See Also:Exporting Variables from Concept
Tag import failed due to low memory resources
Error Type:Serious
Possible Cause:The driver could not allocate memory required to process variable import file.
Solution:Shut down all unnecessary applications and then retry.
Modbus Exception Codes
The f ollowin g data is fro m Modbus Appl ication Protocol Specifications documentation.
Code Dec/Hex Name Meaning01/0x01 ILLEGAL FUNC-
TIONThe function code received in the query is not an allowable action for the server(or slave). This may be because the function code is only applicable to newerdevices, and was not implemented in the unit selected. It could also indicate thatthe server (or slave) is in the wrong state to process a request of this type, forexample, because it is unconfigured and is being asked to return register values.
02/0x02 ILLEGAL DATAADDRESS
The data address r eceived in the query is not an allowable address for the server(or slave). More specifically, the combination of reference number and transferlength is invalid. For a controller with 100 registers, a request with offset 96 andlength 4 would succeed. A request with offset 96 and length 5 will generate excep-tion 02.
03/0x03 ILLEGAL DATAVALUE
A value contained in the query data field is not an allowable value for server (orslave). This indicates a fault in the structure of the remainder of a complexrequest, such as that the implied length is incorrect. It specifically does not meanthat a data item submitted for storage in a register has a value outside the expec-tation of the application program, since the MODBUS protocol is unaware of thesignificance of any particular value of any particular register.
04/0x04 SLAVE DEVICEFAILURE
An unrecoverable error occurred while the server (or slave) was attempting to per-form the requested action.
05/0x05 ACKNOWLEDGE The slave has accepted the request and is processing it, but a long duration of time will be required to do so. This response is returned to prevent a timeout errorfrom occurring in the master. The master can next issue a Poll Program Completemessage to determine if processing is completed.
06/0x06 SLAVE DEVICEBUSY
The slave is engaged in processing a long-duration pr ogram command. Themaster should retransmit the message later when the slave is free.
07/0x07 NEGATIVEACKNOWLEDGE
The slave cannot perform the program function received in the query. This code isreturned for an unsuccessful programming request using function code 13 or 14decimal. The master should request diagnostic or error information from theslave.
08/0x08 MEMORY PARITYERROR
The slave attempted to read extended memory, but detected a parity error in thememory. The master can retry the request, but service may be required on theslave device.
10/0x0A GATEWAY PATH
UNAVAILABLE
Specialized use in conjunction with gateways indicates that the gateway was
unable to allocate an internal communication path from the input port to the out-put port for processing the request. This usually means that the gateway is mis-configured or overloaded.
www. kepware.com
45
8/9/2019 Modbus RTU Serial
46/50
Modbus RTU Serial Driver Help
11/0x0B GATEWAY TARGETDEVICE FAILED TORESPOND
Specialized use in conjunction with gateways indicates that no response wasobtained from the target device. This usually means that the device is not presenton the network.
Note: For this driver, the terms Slave and Unsolicited are used interchangeably.
www. kepware.com
46
8/9/2019 Modbus RTU Serial
47/50
Modbus RTU Serial Driver Help
Index
A
Address '' is out of range for the specified device or register 38Address Descriptions 20Address Validation 37Array size is out of range for address '' 38Array support is not available for the specified address: '' 38Automatic Tag Database Generation 15Automatic Tag Database Generation Messages 44
B
Bad address in block [ to ] on device '' 42Bad array spanning [ to ] on device '' 42BCD 19Block Size 6Block Sizes 10Boolean 19
C
Cable Diagram 6Channel Setup 5Channels, maximum 6Coils 20Communications error on '' [] 39COMn does not exist 40COMn is in use by another application 40Could not read Omni text buffer due to memory allocation proble m 42Could not read Omni text report '' on device '' due to packet 43
D
Daniels S500 Flow Computer Addressing 23Data Type '' is not valid for device address '' 38Data Types Description 19Description truncated for import file record number 44Device '' is not responding 41Device address '' contains a syntax error 38Device address '' is not supported by model '' 39
Device address '' is Read Only 39Device ID 6Device Status Messages 40
www. kepware.com
47
8/9/2019 Modbus RTU Serial
48/50
Modbus RTU Serial Driver Help
Devices, maximum 6DWord 19Dynamic Fluid Meter Addressing 24
E
Elliott Flow Computer Addressing 23Error Descriptions 37Error Handling 13Error opening COMn 40Error parsing import file record number field 44Error writing Omni text data to file for '' on device '' because 43Exporting Variables from Concept 15Exporting Variables from ProWORX 17
F
File exception encountered during tag import 44Float 19Framing 11 , 40Function Codes Description 36
I
Imported tag name is invalid. Name changed to 44
L
LBCD 19Long 19
M
Magnetek GPD 515 Drive Addressing 22Mask 39Missing address 39Modbus Addressing 20Modbus Exception Codes 45Modbus RTU Serial Specific Messages 42Modem Setup 7
www. kepware.com
48
8/9/2019 Modbus RTU Serial
49/50
Modbus RTU Serial Driver Help
N
Network 6No Omni text archive data available in specified date range on device '' 43
O
Omni Custom Packets 27Omni Flow Computer Addressing 25Omni Raw Data Archive 29Omni Text Archive 34Omni text output file specified for '' on device '' could 43Omni Text Reports 33Overrun 40Overview 4
P
Parity 40
R
Received block length of '' does not match expected length of '' for address ''
39
Registers 20
S
Serial Communications 39Settings 7Short 19
T
Tag could not be imported because data type is not supported 44Tag import failed due to low memory resources 45
www. kepware.com
49
8/9/2019 Modbus RTU Serial
50/50
Modbus RTU Serial Driver Help
U
Unable to set comm parameters on COMn 40Unable to write to '' on device '' 41Unable to write to address '' on device '': Device responded with excep-tion code ''
41
V
Variable Import Settings 10
W
Word 19Write failed for '' on device ''. Maximum path length of ''
41
Write to Omni text report '' on device '' truncated 43
50
Top Related