modbus rtu serial

Upload: roman-velazquez-chable

Post on 01-Jun-2018

303 views

Category:

Documents


2 download

TRANSCRIPT

  • 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