20130201 Multiload II Communications Manual_fv_3!4!31_09

download 20130201 Multiload II Communications Manual_fv_3!4!31_09

of 117

Transcript of 20130201 Multiload II Communications Manual_fv_3!4!31_09

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    1/117

    MMuullttiiLLooaaddIIII

    CCoommmmuunniiccaattiioonnssGGuuiiddeeIInncclluuddiinngg::

    MMuullttiiLLooaaddIIII

    MMuullttiiLLooaaddIIIISSMMPPMMuullttiiLLooaaddIIIIMMoobbiillee

    Part # 6077

    Firmware Version 3/4.31.09

    February 2013

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    2/117

    Copyright Notice

    Copyright 2000 - 2013 Toptech Systems, Inc.The information contained in this document is proprietary and confidential. No part of this document may be copied, reproduced, ortransmitted in any medium without the express written permission of Toptech Systems, Inc.

    Disclaimer

    Toptech Systems assumes no responsibility for damages resulting from installation or use of its products. Toptech Systems will not be liablefor any claims of damage, lost data, or lost time as a result of using its products.

    Toptech

    System s, Inc.

    logo is a registered trademark of Toptech Systems, Inc.

    TMS, TMS5, TMS6, RCU II Remote Control Unit,Toptech MultiLoad II,MultiLoad II -RCU, MultiLoad II1-Arm, MultiLoad II - SMP, FCM Flow Control Module are trademarks of Toptech Systems, Inc.

    Copyright 2000 - 2013 Toptech Systems, Inc. All Rights Reserved.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    3/117

    Table of ContentsCHAPTER 1 PROTOCOL SPECIFICATION ..................................................................................................... 6

    1.1

    DEFINITIONS ............................................................................................................................................ 6

    1.2

    SMITH PROTOCOL .................................................................................................................................... 7

    1.3

    BROOKS PROTOCOL ................................................................................................................................. 7

    1.4

    DANIELS PROTOCOL ................................................................................................................................. 7

    1.5

    MODBUS-RTUPROTOCOL ........................................................................................................................ 8

    1.5.1 Read Holding Registers (fn=3) .......................................................................................................... 8

    1.5.2 Write Single Registers (fn=6)............................................................................................................. 8

    1.5.3 Loopback/Maintenance (fn=8) ........................................................................................................... 9

    1.5.4 Preset Multiple Registers (fn=16) ...................................................................................................... 9

    1.5.5 Error Responses (fn= +128) .............................................................................................................. 9

    1.5.6 Modbus Register Map Summary ..................................................................................................... 10

    1.5.7

    Extended Services Register ............................................................................................................ 10

    CHAPTER 2

    MULTILOAD COMMAND RESPONSES ................................................................................... 11

    CHAPTER 3 QUERY COMMAND: .................................................................................................................. 13

    CHAPTER 4 FUNCTION COMMANDS: .......................................................................................................... 14

    CHAPTER 5 TERMINAL COMMANDS: .......................................................................................................... 16

    5.1

    TERMINAL ESCAPE COMMANDS:.............................................................................................................. 16

    CHAPTER 6 METER COMMANDS: ................................................................................................................ 21

    6.1

    AUTHORIZE PRESET (PRODUCT AND PRESET VOLUME): ........................................................................... 21

    6.2

    CLEARALARMS: ..................................................................................................................................... 21

    6.3

    ENABLE PRESET .................................................................................................................................... 21

    6.4

    END TRANSACTION ................................................................................................................................. 21

    6.5

    BATCH COMPLETE .................................................................................................................................. 22

    6.6

    BATCH END:........................................................................................................................................... 22

    6.7

    END BATCH:........................................................................................................................................... 22

    6.8

    PRESET MESSAGE: ................................................................................................................................ 23

    6.9

    PROVING TRANSACTION MODE: .............................................................................................................. 23

    6.10

    REQUEST STATUS &PRESETALARMS: .................................................................................................... 24

    6.11

    REQUEST SMPSTATUS &PRESETALARMS: ........................................................................................... 48

    6.12

    TRIP PRESETALARMS: ........................................................................................................................... 48

    6.13

    REQUEST BAYALARMS: ......................................................................................................................... 49

    6.14

    REQUEST COMPONENTALARMS: ............................................................................................................ 50

    6.15

    REQUEST METERALARMS: ..................................................................................................................... 51

    6.16

    REQUESTADDITIVEALARMS: .................................................................................................................. 52

    6.17

    START PRESET FLOW: ............................................................................................................................ 53

    6.18

    STOP PRESET FLOW: ............................................................................................................................. 53

    CHAPTER 7 REGISTER OPERATIONS: ........................................................................................................ 54

    7.1

    GENERIC REGISTERS ............................................................................................................................. 55

    7.1.1 Register Data Types ........................................................................................................................ 55

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    4/117

    7.1.2 000RCU Level Configuration Registers ...................................................................................... 64

    7.1.3 100Bay Level Configuration Registers ........................................................................................ 66

    7.1.4 101Preset Level Configuration Registers .................................................................................... 67

    7.1.5 102Meter Level Configuration Registers ..................................................................................... 70

    7.1.6 103Component Level Configuration Registers ............................................................................ 74

    7.1.7

    104Additive Level Configuration Registers ................................................................................. 76

    7.1.8 105Custom Logic Definitions Registers ...................................................................................... 78

    7.1.9 200Stand Alone BOL Definition Registers .................................................................................. 82

    7.1.10 800Transaction Archive Registers .......................................................................................... 85

    7.2

    SPECIAL PURPOSE REGISTERS ............................................................................................................... 87

    7.2.1 000MultiLoad Firmware Version .................................................................................................. 87

    7.2.2 001Date and Time ....................................................................................................................... 87

    7.2.3 003FCM Poll Rate ....................................................................................................................... 88

    7.2.4 005Current BOL/Ticket Number .................................................................................................. 88

    7.2.5 070Ethernet Enable ..................................................................................................................... 88

    7.2.6 071 IP Address ............................................................................................................................. 88

    7.2.7

    072IP Mask .................................................................................................................................. 88

    7.2.8 073 IP Gateway ............................................................................................................................ 88

    7.2.9 074 IP Host ................................................................................................................................... 89

    7.2.10 085Modem Initialization String ................................................................................................ 89

    7.2.11

    091..093Communication Port Parameters .............................................................................. 89

    7.2.12 095..099Program Mode Passwords (5) .................................................................................. 90

    7.2.13 112 - Real-Time Preset Total Gross Totalizers ........................................................................... 90

    7.2.14 113 - Real-Time Preset Total Net Totalizers ............................................................................... 91

    7.2.15 133FCM IO Access ................................................................................................................. 91

    7.2.16 140Current Latitude/Longitude position Registers (MultiLoad Mobile Only) ........................... 92

    7.2.17 141Current Transaction Latitude/Longitude/Site Index Registers (MultiLoad Mobile Only) ... 92

    7.2.18 400 - Preset Definition Registers ................................................................................................ 93

    7.2.19 401External Preset Display Register ...................................................................................... 93

    7.2.20 500 - Product Definition Registers .............................................................................................. 94

    7.2.21 600 - Standalone Driver Card Database ..................................................................................... 94

    7.2.22 650GPS Site Database (MultiLoad Mobile Only) ..................................................................... 95

    7.2.23 700 - Configurable Language Prompts ....................................................................................... 95

    7.2.24 710 - Bay Alarm Messages ......................................................................................................... 96

    7.2.25 711 - Preset Alarm Messages ..................................................................................................... 98

    7.2.26 712 - Meter Alarm Messages ...................................................................................................... 99

    7.2.27 713 - Component Alarm Messages ........................................................................................... 101

    7.2.28

    714 - Additive Alarm Messages ................................................................................................ 102

    7.2.29 910Read Event Log Message Queue ................................................................................... 104

    7.2.30 912Read W & M Change Log Message Queue .................................................................... 104

    7.2.31 950 - Current Driver Card Number ............................................................................................ 105

    7.2.32 951..954 - Current Driver Prompt Information ........................................................................... 105

    7.2.33 960Input Data ........................................................................................................................ 105

    7.2.34

    961Input Data Terminating Key ............................................................................................ 105

    7.2.35

    962 - Current Driver Card Data ................................................................................................. 106

    7.2.36

    998Bitmap Graphic Cache .................................................................................................... 107

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    5/117

    CHAPTER 8 COMMUNICATION TRACE EXAMPLE ................................................................................... 108

    8.1

    STARTUP OF HOST SOFTWARE ............................................................................................................. 108

    8.1.1 Update Date & Time ...................................................................................................................... 108

    8.1.2 Update Product Definitions ............................................................................................................ 108

    8.1.3 Update Preset Definitions .............................................................................................................. 109

    8.1.4

    Status Query .................................................................................................................................. 109

    8.2

    TRANSACTIONAUTHORIZATION ............................................................................................................. 110

    8.2.1 Process Driver Card In .................................................................................................................. 110

    8.2.2 Authorize a Transaction on MultiLoad ........................................................................................... 111

    8.2.3 Reading Totalizers ......................................................................................................................... 111

    8.3

    BATCHAUTHORIZATION ........................................................................................................................ 112

    8.3.1 Authorize a Batch on MultiLoad..................................................................................................... 112

    8.3.2 Monitor Load During Delivery ........................................................................................................ 114

    8.4

    END OF BATCH PROCESSING ................................................................................................................ 114

    8.4.1 Ending a Batch on MultiLoad ......................................................................................................... 114

    8.5

    END OF TRANSACTION PROCESSING ..................................................................................................... 115

    8.5.1

    Ending a Transaction on MultiLoad ............................................................................................... 115

    8.6

    SHUTDOWN OF HOST SOFTWARE .......................................................................................................... 115

    CHAPTER 9

    DATA COMMUNICATION NOTES AND RECOMMENDATIONS ........................................... 116

    9.1

    PROTOCOL SELECTION:RS-232VS.RS-485 ........................................................................................ 116

    9.1.1 RS-232 ........................................................................................................................................... 116

    9.1.2 RS-485 ........................................................................................................................................... 116

    9.2

    CABLE SELECTION................................................................................................................................ 116

    9.3

    LINE TERMINATION IN MULTI-DROPPED COMMUNICATIONS ..................................................................... 116

    9.4

    OPTICAL ISOLATION .............................................................................................................................. 117

    9.5

    SHIELD GROUNDING ............................................................................................................................. 117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    6/117

    Chapter 1Protocol Specification

    CHAPTER 1 PROTOCOL SPECIFICATION

    The MultiLoad auto-detects four low level computer protocols for host communications.

    - Smith Protocol- Brooks Protocol

    - Daniels

    - Modbus-RTU Protocol

    Note: All unknown or not allowed signal or code sequences are rejected and have no impact on thesoftware or measurement data.

    Host communication can occur via multi-dropped RS-232/RS-485 serial on COM 1 or Ethernet 10/100 socketcommunication on port 7734.

    1.1 DEFINITIONS

    The non-printing characters that form the skeleton of the Smith and Brooks protocols are standard ASCII(American Standard Code Information Interchange):

    ASCII CHARACTER DECIMAL HEX BINARY

    NUL 0 0 00000000

    STX 2 2 00000010

    ETX 3 3 00000011

    SOH 1 1 00000001

    PAD 127 7F 01111111

    CHARACTER DESCRIPTION

    BCCBlock Check Characters. The ASCII hex representation of the binary sum of allthe data in the message from the SOH through the ETX character.

    LRCLongitudinal Redundancy Check. The LRC is an ASCII character computed asthe exclusive or (XOR) sum of all characters following the STX and includingthe ETX.

    CRC Cyclic Redundancy Check.

    A1..A3A 3-character ASCII unit address of the MultiLoad. Please refer to theMultiLoad User Guide for configuring the unit address.

    D1..Dn Data field characters.

    Fn Function field code.

    Adr A single character binary unit address of the MultiLoad.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    7/117

    Chapter 1Protocol Specification

    1.2 SMITH PROTOCOL

    The Smith protocol is compatible with devices from Smith Meter, such as the Accuload I and Accuload II minicomputer modes of operation. Using this protocol, MultiLoad accepts data in the format:

    NUL STX A1 A2 data ETX LRC PAD

    A1 and A2 are the last two digits of the unit address in the RCU configuration.

    1.3 BROOKS PROTOCOL

    The Brooks protocol is compatible with devices from Brooks Instruments such as their Petrocount RAU andIMS Control units running in computer mode. Using this protocol, MultiLoad accepts data in the format:

    SOHD ES TINA TION S OURC E

    A1 A2 A3 S1 S2 S3

    STX data ETX BCC

    1

    BCC

    2

    1.4 DANIELS PROTOCOL

    The Daniels protocol is compatible with devices from Daniels Flow Products. Using this protocol, MultiLoadaccepts and responds with data in the format:

    QuietTime

    ADR FNLEN

    (2252)D1...DN CRC1 CRC2

    QuietTime

    Daniels protocol messages are framed by a quiet time of three and one-half characters.

    ADR is binary character of the address of the MultiLoad. Typically 0x01.

    Fn is expected to be 0x41/0x42 alternating on each command. Responses will have Fn as 0x41/0x42for normal responses and 0xc1/0xc2 for exception responses.

    D1Dn is string data containing the commands listed in this manual.

    Note: Modbus extention to return larger packet sizes: On messages with data packet sizes from 2 to 252characters the Fn values of 0x41/0x42 will be returned. With messages outside this range, Fn will be the MSBvalue of the data size and the Len will be LSB of the data size.

    For Example:

    Fn = 0x41, Len = 0x80, when data packet size = 0x0080,

    Fn = 0x42, Len = 0x80, when data packet size = 0x0080,

    Fn = 0x00, Len = 0xFF, when data packet size = 0x00FF ( 255),

    Fn = 0x01, Len = 0x00, when data packet size = 0x0100 ( 256),Fn = 0x01, Len = 0x01, when data packet size = 0x0101 ( 257),

    Fn = 0x02, Len = 0x00, when data packet size = 0x0200 ( 512),

    Fn = 0x04, Len = 0x00, when data packet size = 0x0400 (1024),

    Fn = 0x08, Len = 0x00, when data packet size = 0x0800 (2048).

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    8/117

    Chapter 1Protocol Specification

    1.5 MODBUS-RTUPROTOCOL

    The Modbus-RTU protocol has been implemented to be as compatible as possible with the original publishedModicon Modbus-RTU standard.

    Note: The Modbus protocol allows parameter register access only as defined by the explicit mapping inthis manual. To send the ASCII commands (R000, T`A, MAM, MRS, etc.) that are handled by the otherthree protocols, the Modbus Extended Services registers must be used.

    Using the modbus protocol, MultiLoad accepts data in the following format:

    QuietTime

    ADR FN ... CRC1 CRC2QuietTime

    Modbus-RTU protocol messages are framed by a quiet time of three and one-half characters.

    ADR is binary character of the address of the MultiLoad. Typically 0x01.

    Fn is the Modbus function. Functions implemented are as follows.

    The formal specification of Modbus lists the starting Holding Register address as 40001. The ModbusHolding Register functions (Fn 3, 6 and 16) all have an implied 4XXXX reference. Referencing Holding

    Register 40001 is addressed as register 0000 in the register address field in the message for fn 3, 6, and16.

    Since Modbus addressing has been implemented in various ways over the years, to avoid confusion inthis manual, the Modbus Holding Register addresses listed are the value in the register address field inthe message. If it is necessary to know the formal Modbus Holding Register address, simply add 40001to the register addresses listed in the manual.

    1.5.1 READ HOLDING REGISTERS (FN=3)

    Note: Both Modbus registers MUST be read at the same time when reading 32-bit values.

    Tx:

    Quiet Time ADR FN=3

    Start

    RegisterMSB

    Start

    RegisterLSB

    Number

    OfRegisters

    MSB

    Number

    ofRegistersLSB

    CRC1 CRC2 Quiet Time

    Rx:

    QuietTime

    ADR

    FN=3

    (+128 iferror)

    ByteCount

    1st

    Register

    MSB

    1st

    RegisterLSB

    NextRegister

    MSB

    NextRegister

    MSB CRC1 CRC2

    QuietTime

    1.5.2 WRITE SINGLE REGISTERS (FN=6)

    Note: can not be used for 32-bit registers.

    Tx:

    Quiet Time ADR FN=6Start

    RegisterMSB

    StartRegister

    LSB

    Register

    MSB

    Register

    LSBCRC1 CRC2 Quiet Time

    Rx:

    Quiet Time ADR

    FN=6

    (+128 iferror)

    StartRegister

    MSB

    StartRegister

    LSB

    Register

    MSB

    Register

    LSBCRC1 CRC2 Quiet Time

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    9/117

    Chapter 1Protocol Specification

    1.5.3 LOOPBACK/MAINTENANCE (FN=8)

    Note: only loopback of command supported.

    Tx:

    Quiet Time ADR FN=8DiagnosticCode MSB

    DiagnosticCode LSB

    Data MSB Data LSB CRC1 CRC2 Quiet Time

    Rx:

    Quiet Time ADR FN=8DiagnosticCode MSB

    DiagnosticCode LSB

    Data MSB Data LSB CRC1 CRC2 Quiet Time

    1.5.4 PRESET MULTIPLE REGISTERS (FN=16)

    Note: Both Modbus registers MUST be written at the same time when writing 32-bit values.

    Tx:

    QuietTime

    ADR FN=16Start

    RegisterMSB

    StartRegister

    LSB

    Number

    OfRegisters

    MSB

    Numberof

    RegistersLSB

    ByteCount

    1st

    Register

    MSB

    1st

    RegisterLSB

    NextRegister

    MSB

    NextRegister

    MSB CRC1 CRC2

    QuietTime

    Rx:

    Quiet Time ADR

    FN=16

    (+128 iferror)

    StartRegister

    MSB

    StartRegister

    LSB

    Number

    OfRegisters

    MSB

    Numberof

    RegistersLSB

    CRC1 CRC2 Quiet Time

    1.5.5 ERROR RESPONSES (FN=+128)

    Rx:

    Quiet Time ADR FN+128Error

    SubcodeCRC2 CRC1

    Error Subcodes are:

    1 = Invalid Function Code. Indicates that the use of an invalid or unimplemented function has beenattempted.

    2 = Invalid Address Field. Indicates that a read or write was made to an invalid address. Can alsoindicate that a read or write to a single register of a 32-bit value has been attempted.

    3 = Invalid Data Field. Indicates that an attempt to write an invalid value to a register has occured. Thiserror code will also be returned if an attempt is made to change a value under Weights and Measures controlwithout with W&M switch being in the active state.

    4 = Query Processing Failure. This code is not returned.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    10/117

    Chapter 1Protocol Specification

    1.5.6 MODBUS REGISTER MAP SUMMARY

    1999 General, BOL Template, MIsc. Configurations.

    10001199 RCU Configurations

    12001399 Bay Configurations

    14001599 Preset Configurations16001799 Meter Configurations

    18001999 Component Configurations

    20002199 Additive Configurations

    22002999 Product, Alarm, Database, Misc. Configurations

    30003999 Totalizers

    40006000 Preset, Meter, Component and Additive Status

    70007799 Status, Authorization Control and Alarms

    7800 - 7999 Transaction Archive

    8000 - 8999 Preset Definitions

    9000-10999 Extended Services Register

    1.5.7 EXTENDED SERVICES REGISTER

    Not all commands native to the MultiLoad II have corresponding mapping to Modbus registers. The ExtendedServices register was implemented as a way to support sending and receiving native Multiload II commandsacross the Modbus RTU interface. Any native command listed can be sent to the MultiLoad via the extendedServices Register.

    Modbus Registers:

    Write Holding Register=9000, Len=1, 16-Bit Integer (Command Length)

    Write Holding Register=9001, Max Len=999, Characters (Command Text)

    Read Holding Register=9000, Len=2, 32-Bit Integer (Reply Length)

    Read Holding Register=9001, Max Len=999, Characters (Reply Text)Perform the following operations to use of the Extended Services Register:

    1. Write the Command Length into the Holding Register 9000 (max value of 999 characters).

    2. Write the Command Text into the Holding Register 9001 (max length of 999).

    3. Command will execute when the final character of the Command Text is written (9001+CommandLength-1).

    4. Read the Reply Length from the Holding Register 9000 (max value of 999 characters).

    5. Read the Reply Text from the Holding Register 9001 (max length of 999).

    Steps 1 & 2 can be done with a single Modbus Function 16.

    Steps 4 & 5 can be done with a single Modbus Function 3.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    11/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    12/117

    Chapter 2MultiLoad Responses

    REMOTE_AUTH_PRESET9 = 'i',

    REMOTE_AUTH_PRESET10 = 'j',

    REMOTE_AUTH_PRESET11 = 'k',

    REMOTE_AUTH_PRESET12 = 'l',

    REMOTE_AUTH_PRESET13 = 'm',

    REMOTE_AUTH_PRESET14 = 'n'} rcu_status;

    Modbus:

    Read Only Register=7000, Len=1, Character (rcu_status)

    enum

    {

    CARD_NOT_INSERTED =0,

    CARD_INSERTED =1

    } card_status;

    Modbus:

    Read Only Register=7001, Len=1, Character (card_status)

    In most cases a command will return additional information specific to the command. This information willalways follow the three status characters. For example if the following valid command to read the currentfirmware version is sent:

    Command => Response

    R000 => 0?0000MultiLoad II v3.29.xx Jan xx 2009

    With 0?0 as the three status characters and 000MultiLoad II v3.29.xx Jan xx 2009 as the command specificresponse.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    13/117

    Chapter 3Query Command

    CHAPTER 3 QUERY COMMAND:

    Query Command => Response

    Q => 0?0XXXXWhere:

    XXXX = 4 digit hexadecimal number with bits representing the rcu_status as:

    union

    {

    unsigned int value;

    struct

    {

    unsigned char rcu_trans_header:1;

    unsigned char proving_mode:1;

    unsigned char power_up:1; // indicated system has been powered on

    unsigned char configured:1; // indicates configuration state

    unsigned char unassigned_keypress_on_load_screen:1;

    unsigned char logmsg_queued:1; // a log message is available

    unsigned char unused6:1;

    unsigned char unused7:1;

    unsigned char wm_logmsg_queued:1; // a w&m log message is available

    unsigned char host_up:1; // host system is up, card in will be allowed.

    unsigned char input_in_progress:1;

    unsigned char input_done:1;

    unsigned char keypad_locked:1; // is keypad locked or not

    unsigned char reserved13:1;unsigned char wm_key:1; // W&M key is active

    unsigned char program_key:1; // Program key is active

    } flags;

    } rcu_status;

    This command also resets the Host Down Timer and should be issued periodically to notify MultiLoad that theHost is still active.

    Modbus:

    Read Only Register=7002, Len=1, 16-Bit Integer (XXXX)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    14/117

    Chapter 4Function Commands

    CHAPTER 4 FUNCTION COMMANDS:

    FREBOOT = Performs a software reboot of the MultiLoad RCU.

    FFACTORY = Restores all MultiLoad registers to factory defaults.FUPDATEAPPFLASH = Updates the Flash with an uploaded image (req. W&M and a valid image)

    Modbus:

    Supported through Modbus Extended Services Registers.

    FKEYPADON = Enables the keypad on the MultiLoad RCU (default it is active)

    FKEYPADOFF = Disables the keypad on the MultiLoad RCU

    Write Only Register=7008, Len=1, 16-Bit Integer (any value=FKEYPADON)

    Write Only Register=7009, Len=1, 16-Bit Integer (any value=FKEYPADOFF)

    FUNCONFIG = Clears the configured RCU status bit.

    FRECONFIG = Sets the configured RCU status bit.

    Modbus:

    Write Only Register=7010, Len=1, 16-Bit Integer (any value=FUNCONFIG)

    Write Only Register=7011, Len=1, 16-Bit Integer (any value=FRECONFIG)

    FPOWERUP = Resets the power_up RCU status bit. This bit is set on power up.

    Modbus:

    Write Only Register=7012, Len=1, 16-Bit Integer (any value=FPOWERUP)

    FHOSTUP = Sets the host_up RCU status bit. Cleared on power up or when host downtimeout expires between Q commands. Command should be issued when hostsystem starts communicating with MultiLoad.

    Modbus:

    Write Only Register=7013, Len=1, 16-Bit Integer (any value=FHOSTUP)

    FHOSTDOWN = Clears the host_up RCU status bit. Command should be issued when hostsystem stops communicating with MultiLoad.

    Modbus:

    Write Only Register=7014, Len=1, 16-Bit Integer (any value=FHOSTDOWN)

    FHOSTWAIT = Bypass host down timer once with alternate timeout.

    Modbus:

    Write Only Register=7015, Len=1, 16-Bit Integer (any value=FHOSTUP)

    FEODLOG = Prints EOD-Report for all totalizers type by arm and also gives the thruputbetween the feodlog commands

    Modbus:

    Write Only Register=7018, Len=1, 16-Bit Integer (any value=FEODLOG)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    15/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    16/117

    Chapter 5Terminal Commands

    CHAPTER 5 TERMINAL COMMANDS:

    Ts

    Where:s = Any text string to display. Display string may contain one or more terminal escape commands.

    5.1 TERMINAL ESCAPE COMMANDS:

    Where Terminal Escape Commands are:

    A Authorize Transaction:

    Authorize MultiLoad Transaction. Will display load screen.

    Modbus:

    Write Only Register=7016, Len=1, 16-Bit Integer (any value=Authorize Transaction)

    Cx Clear RCU counters

    Where,

    X = counter to clear, 1 = counter 1, 2 = counter 2

    E Setup Data Entry

    Used to display a flashing cursor (Setup Data Entry Length > 1) and allow user input. Data to beretrieved at R960, R961.

    F Turn on Big Font

    Used to enable double size font.

    f Turn off Big Font

    Used to return to normal size font.

    G Set Foreground/Background Text Colors

    Where:

    f = (character) 0x20 + Foreground Color Palette Index

    b = (character) 0x20 + Background Color Palette Index

    Pixel color palette index values defined as:

    Black = 0x00Blue = 0x01

    Red = 0x02

    Magenta = 0x03

    Green = 0x04

    Cyan = 0x05

    Yellow = 0x06

    White = 0x07

    Custom 0 = 0x08 (Not available)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    17/117

    Chapter 5Terminal Commands

    Custom 1 = 0x09 (Not available)

    Custom 2 = 0x0a (Not available)

    Custom 3 = 0x0b (Not available)

    Custom 4 = 0x0c (Not available)

    Custom 5 = 0x0d (Not available)

    Flash 1 = 0x0eFlash 2 = 0x0f

    Example: To display a green word 'Hello' code the string as follows:

    TG$Hello

    $ = 0x20 + 0x04 (Green) = 0x20 + 0x07 (White)

    H Home Cursor to Position (0,0)

    Move cursor position to upper left corner of screen.

    Ircle Set Reverse Video

    Where:

    r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom)

    c = (character) 0x20 + Left Text Column Position (0 = left, 39 = right)

    l = (character) 0x20 + Length in Text Columns

    e = 0 or 1 (0 = Set Inverse Text, 1 = Clear Inverse Text)

    J Erase from Cursor to End of Line

    Use with after Y first to clear an entire line. Can be used as a CR since cursor will be positionedon next line.

    K Erase from Cursor to End of Screen

    Use with after H to clear entire screen.

    Lxx Setup Data Entry Length

    Where:

    xx = Length of Data Entry Input Required (00-25) (0 = Key Press with No Flashing Cursor)

    N Turn On Cursor

    O Turn Off Cursor

    R Reset the RCU Display

    Modbus:Write Only Register=7017, Len=1, 16-Bit Integer (any value=Reset RCU Display)

    Yrc Set Cursor Position

    Where:

    r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom)

    c = (character) 0x20 + Left Text Column Position (0 = left, 39 = right)

    X Clear Entire Display

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    18/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    19/117

    Chapter 5Terminal Commands

    Black = 0x00

    Blue = 0x01

    Red = 0x02

    Magenta = 0x03

    Green = 0x04

    Cyan = 0x05Yellow = 0x06

    White = 0x07

    Custom 0 = 0x08 (Not available)

    Custom 1 = 0x09 (Not available)

    Custom 2 = 0x0a (Not available)

    Custom 3 = 0x0b (Not available)

    Custom 4 = 0x0c (Not available)

    Custom 5 = 0x0d (Not available)

    Flash 1 = 0x0e

    Flash 2 = 0x0f

    Example: To position a small graphic starting at row 5, column 20, column width 2, code the string asfollows:

    Te%4

    $$$$$$

    $$$

    $$$$

    $$$$$$$$

    $$$$$$$$$$

    Note: formatted for illustration only, there are no spaces or CRs in the above command.

    '%' = 0x20 + 5 '4' = 0x20 + 20 = 0x20 + 2

    = 0x20 + 0x07 (White) $ = 0x20 + 0x04 (Green)

    grcwhcFill Box with a Color

    Where:

    r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom)

    c = (character) 0x20 + Left Text Column Position (0 = left, 39 = right)

    w = (character) 0x20 + Width in Text Columns

    h = (character) 0x20 + Height in Text Columns Down

    c = (character) 0x20 + color palette index value

    Pixel color palette index values defined as:

    Black = 0x00Blue = 0x01

    Red = 0x02

    Magenta = 0x03

    Green = 0x04

    Cyan = 0x05

    Yellow = 0x06

    White = 0x07

    Custom 0 = 0x08 (Not available)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    20/117

    Chapter 5Terminal Commands

    Custom 1 = 0x09 (Not available)

    Custom 2 = 0x0a (Not available)

    Custom 3 = 0x0b (Not available)

    Custom 4 = 0x0c (Not available)

    Custom 5 = 0x0d (Not available)

    Flash 1 = 0x0eFlash 2 = 0x0f

    hrcwhaaaaaaaa Display Graphic Cache

    Where:

    r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom)

    c = (character) 0x20 + Left Text Column Position (0 = left, 39 = right)

    w = (character) 0x20 + Width in Text Columns

    h = (character) 0x20 + Height in Text Columns

    aaaaaaaa = 8 character hexadecimal cache offset start value.

    See R/U 998 command for more details on cache offset.

    Modbus:

    Supported through Modbus Extended Services Registers.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    21/117

    Chapter 6Meter Commands

    CHAPTER 6 METER COMMANDS:

    6.1 AUTHORIZE PRESET (PRODUCT AND PRESET VOLUME):

    MAMpppaiiivvvvvvvvvcc

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    a = Authorize bit, 0 = Cancel Authorization, 1 = Authorize.

    iii = Product Index (500 register) for the authorized product.

    vvvvvvvvv = Preset volume.

    cc = Compartment number.

    Note: Will only accept Authorize Preset command when in REMOTE_AUTH_PRESET state or when preset isauthorized and a batch not already authorized.

    Modbus:

    Write Only Register=7500+5*ppp, Len=1, 16-Bit Integer (iii)

    Write Only Register=7501+5*ppp, Len=2, 32-Bit Integer (vvvvvvvvv)

    Write Only Register=7503+5*ppp, Len=1, 16-Bit Integer (cc)

    Write Only Register=7504+5*ppp, Len=1, 16-Bit Integer (a)

    Note: Last Authorize Preset Register Used=7559

    6.2 CLEAR ALARMS:

    MCAppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    Modbus:

    Write Only Register=7020+ppp, Len=1, 16-Bit Integer (any value)

    6.3 ENABLE PRESET

    MEMpppa

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    a = Enable Flag, 0 = Disabled, 1 = Enabled/Not Available, 2 = Available

    Modbus:

    Write Only Register=7032+ppp, Len=1, 16-Bit Integer (a)

    6.4 END TRANSACTION

    MET

    When an ET command is received, a forced card out will occur.

    Note: The Host will still need to send a MEB command for each preset that reaches aPRESET_END_OF_BATCH state.

    Modbus:

    Write Only Register=7044, Len=1, 16-Bit Integer (any value)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    22/117

    Chapter 6Meter Commands

    6.5 BATCH COMPLETE

    MBCppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    When a BC command is received, the preset flow will stop and the batch will be marked as complete. The

    operator will not be able to restart the batch, but will be allowed to clear the batch and preset another (pendingHost authorization).

    Modbus:

    Write Only Register=7045+ppp, Len=1, 16-Bit Integer (any value)

    6.6 BATCH END:

    MBEppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    Command used to start end batch processing and to transition state to PRESET_END_OF_BATCH when flowstops and final values are received.

    Note: Typical end of batch command order is:

    MSMppp (tell Multiload to stop flow)

    MBCppp (tell Multiload to mark batch as complete, no further flowing on batch)

    MBEppp (tell Multiload to get ready for total pickup)

    wait for state==PRESET_END_OF_BATCH (ok to get totals)

    MRSppp to get totals

    MEBppp (ok to clear totals on Multiload)

    Modbus:

    Write Only Register=7057+ppp, Len=1, 16-Bit Integer (any value)

    6.7 END BATCH:

    MEBppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    Command is used to finish end-of-batch processing and that totals can be cleared.

    Modbus:

    Write Only Register=7069+ppp, Len=1, 16-Bit Integer (any value)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    23/117

    Chapter 6Meter Commands

    6.8 PRESET MESSAGE:

    MPMpppssssssssssddddddddddddddddddddddddddddddddddddddd

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    ssssssssss = 10 Character Message.

    ddddddddddddddddddddddddddddddddddddddd = 39 Character Detail Message.

    Displays a message for the particular preset. A detail message will be displayed when the preset is selected.Driver and acknowledge and clear the message by pressing CLR key.

    Modbus:

    Only supported through Modbus Extended Services Registers.

    6.9 PROVING TRANSACTION MODE:

    MPTx

    When:

    x = Mode Status 0 = Off, 1 = On. Default Off when transaction is authorized.Command is used to indicate when a card in is done with a proving card and meter proving may be done duringthis transaction.

    Modbus:

    Write Only Register=7081, Len=1, 16-Bit Integer (x)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    24/117

    Chapter 6Meter Commands

    6.10 REQUEST STATUS &PRESET ALARMS:

    MRSpppxxxxyyyyzzzzaaaa => RSppp (Requested parameters as listed below).

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    xxxx = Optional response configuration bits #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {

    unsigned int preset_state:1;

    unsigned int preset_status_0:1;

    unsigned int preset_alarms:1;

    unsigned int volume_preset_whole:1;

    unsigned int batch_gross_del_whole:1;unsigned int batch_net_del_whole:1;

    unsigned int batch_temp_tenths:1;

    unsigned int batch_pressure_tenths:1;

    unsigned int batch_gravity:1;

    unsigned int gross_flow_rate:1;

    unsigned int component_batch_gross_del_whole:1;

    unsigned int component_batch_net_del_whole:1;

    unsigned int component_batch_temp_tenths:1;

    unsigned int component_batch_pressure_tenths:1;

    unsigned int component_batch_gravity:1;

    unsigned int additive_batch_gross_del_thous:1;

    } flags;

    } query_0; (default value 0x965f.)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    25/117

    Chapter 6Meter Commands

    yyyy = Optional response configuration bits #1 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned int preset_status_0:1;

    unsigned int preset_status_1:1;

    unsigned int preset_status_2:1;

    unsigned int meter_status_0:1;

    unsigned int meter_status_1:1;

    unsigned int meter_status_2:1;

    unsigned int component_status_0:1;

    unsigned int component_status_1:1;

    unsigned int component_status_2:1;

    unsigned int additive_status_0:1;

    unsigned int additive_status_1:1;

    unsigned int additive_status_2:1;

    unsigned int temp_press_in_hunds:1;

    unsigned int component_current_temp_hund:1;

    unsigned int component_current_pressure_hund:1;

    unsigned int component_current_density_tenths:1;

    } flags;

    } query_1; (default value 0x0000.)

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    26/117

    Chapter 6Meter Commands

    zzzz = Optional response configuration bits #2 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned int meter_batch_gross_del_whole:1; //Mass

    unsigned int meter_gross_flow_rate:1; // Mass

    unsigned int component_current_relative_density_tenthous:1;

    unsigned int component_current_bsw_hund:1;

    unsigned int component_current_api_gravity_tenths 1;

    unsigned int component_batch_bsw_hund:1;

    unsigned int component_batch_api_gravity_tenths:1;

    unsigned int unused_7:1;

    unsigned int unused_8:1;

    unsigned int unused_9:1;

    unsigned int unused_10:1;

    unsigned int unused_11:1;

    unsigned int unused_12:1;

    unsigned int unused_13:1;

    unsigned int unused_14:1;

    unsigned int unused_15:1;

    } flags;

    } query_2; (default value 0x0000.)

    aaaa = Optional response configuration bits #3 in hexadecimal as:union

    {

    unsigned int value;

    struct

    {

    unsigned int component_meter_gross_del_whole:1;

    unsigned int component_meter_net_del_whole:1; // Mass

    unsigned int component_meter_batch_temp_tenths:1;

    unsigned int component_meter_batch_pressure_tenths:1;

    unsigned int component_meter_batch_gravity:1;

    unsigned int component_meter_current_temp_tenths:1;unsigned int component_meter_current_pressure_tenths:1;

    unsigned int component_meter_current_gravity:1;

    unsigned int component_meter_current_relative_density_tenthous:1;

    unsigned int component_meter_current_bsw_hund:1;

    unsigned int component_meter_current_api_gravity_tenths:1;

    unsigned int component_meter_batch_bsw_hund:1;

    unsigned intcomponent_meter_batch_api_gravity_tenths:1;

    unsigned int unused_13:1;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    27/117

    Chapter 6Meter Commands

    unsigned int unused_14:1;

    unsigned int unused_15:1;

    } flags;

    } query_3; (default value 0x0000.)

    Defaults are compatible with previous Multiload MRS replies.To query for preset information only use: MRSppp03ff

    To query for preset pressure only use: MRSppp0080

    To query for additive delivered only use: MRSppp8000

    RS = Request Status Response

    ppp = The specified zero-based preset or load arm number (000-011).

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    28/117

    Chapter 6Meter Commands

    Query 0 and 1 Responses:

    wwww= preset state in hexidecimal as:

    enum

    {

    PRESET_IDLE = 0,

    PRESET_LOW_FLOW = 1,

    PRESET_HIGH_FLOW = 2,PRESET_1ST_TRIP = 3,

    PRESET_2ND_TRIP = 4,

    PRESET_FINAL_TRIP = 5,

    PRESET_START = 6,

    PRESET_ALARM = 7,

    PRESET_COMPLETE = 8,

    PRESET_NOT_AUTH = 9,

    PRESET_WAIT_TMS = 10,

    PRESET_AUTH = 11,

    PRESET_PRESET = 12,

    PRESET_DISABLED = 13,

    PRESET_STOP = 14,

    PRESET_REMOTE_MSG = 15,

    PRESET_END_OF_BATCH = 16,

    PRESET_ARCHIVING = 17,

    PRESET_CLEARING = 18,

    PRESET_TRANS_DONE = 19

    } preset_state;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    29/117

    Chapter 6Meter Commands

    xxxx= preset status #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {

    unsigned char preset_enabled:1; // preset is enabledunsigned char preset_host_enabled:1; // preset enabled by host

    unsigned char authorized:1; // preset available for use

    unsigned char flow_active:1; // flow state is not idle

    unsigned char batch_authorized:1; // product & preset has been authorized

    unsigned char remote_msg:1; // remote message active

    unsigned char remote_desc:1; // remote descriptive message active

    unsigned char load_complete:1; // no further loading on batch can be done

    unsigned char end_batch:1; // MBE command processing started

    unsigned char end_batch_done:1; // MBE command processing done

    unsigned char tms_got_data:1; // MEB command received

    unsigned char archived:1; // batch data has been archived into

    transaction databaseunsigned char batch_cleared:1; // batch has been cleared

    unsigned char clearing_load:1; // load clear has been issued

    unsigned char load_cleared:1; // load has been cleared

    unsigned char trans_done:1; // transaction is done

    } flags:

    } preset_status_0;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    30/117

    Chapter 6Meter Commands

    yyyy= preset alarms in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char preset_fcm_com:1; // one or more FCMs that are required forPRESET status or signals are in comerror.

    unsigned char preset_permissive:1; // preset permissive not active but preset isauthorized to load.

    unsigned char swing_arm_permissive:1; // swing arm not in bay and preset isauthorized to load.

    unsigned char line_not_flushed:1; // less than min_line_flush_vol has flowedsince a non-flush component has flowedand batch was ended.

    unsigned char preset_block_valve:1; // block value status does not agree withcommanded valve position.

    unsigned char bay_alarm:1; // a bay level alarm currently exists.

    unsigned char component_alarm:1; // a component level alarm currently existsfor this preset.

    unsigned char additive_alarm:1; // a additive level alarm currently exists forthis preset.

    unsigned char meter_stop:1; // meter stop button for preset pressed

    unsigned char preset_overrun:1; // preset delivered volume is over targetvolume by overrun_alarm_vol.

    unsigned char excess_flow:1; // preset flow rate has exceededexcess_flow_alarm_rate.

    unsigned char unused11:1;

    unsigned char unused12:1;

    unsigned char unused13:1;

    unsigned char unused14:1;

    unsigned char configuration_error:1; // preset configuration has invalid data,check message log for details

    } flags;

    } preset_alarms;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    31/117

    Chapter 6Meter Commands

    qqqqqqqqq= preset quantity in whole units

    ddddddddd = delivered gross quantity in whole units ddddddddd = delivered net quantity in wholeunits

    Note: if the Use Hundredths W&M RCU parameter is enabled, the gross and net quantity value will have an implied two decimal places.

    sddddd = signed batch average temp in tenths or hundredths

    sddddd = signed batch average pressure in tenths or hundredths

    dddddd = depending on API table selected,

    batch average density in tenths OR

    batch average relative density in ten thousands OR

    batch average gravity in tenths

    ddddd = preset gross flow rate in whole units

    Modbus :

    Where: p = preset (0-11)

    Read Only Register=4000+p, Len=1, 16-Bit Integer (wwww)

    Read Only Register=4012+p, Len=1, 16-Bit Integer (xxxx)

    Read Only Register=4024+p, Len=1, 16-Bit Integer (yyyy)

    Read Only Register=4036+p, Len=2, 32-Bit Integer (qqqqqqqqq)Read Only Register=4060+p, Len=2, 32-Bit Integer (ddddddddd (gross))

    Read Only Register=4084+p, Len=2, 32-Bit Integer (ddddddddd (net))

    Read Only Register=4108+p, Len=2, 32-Bit Integer (sddddd (temp))

    Read Only Register=4132+p, Len=2, 32-Bit Integer (sddddd (pressure))

    Read Only Register=4156+p, Len=2, 32-Bit Integer (dddddd)

    Read Only Register=4180+p, Len=1, 16-Bit Integer (ddddd (rate))

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    32/117

    Chapter 6Meter Commands

    per meter(5):

    ddddddddd = meter delivered gross quantity in whole units

    Note: if the Use Hundredths W&M RCU parameter is enabled, the gross quantity value will have an implied two decimal places.

    ddddd = meter gross flow rate in whole units

    Modbus :

    Where: p = preset (0-11), m = meter (0-4)

    Read Only Register=4192+p*5+m, Len=2, 32-Bit Integer (ddddddddd (gross))

    Read Only Register=4312+p*5+m, Len=1, 16-Bit Integer (ddddd (rate))

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    33/117

    Chapter 6Meter Commands

    per component(8):

    ddddddddd = delivered gross quantity in whole units

    ddddddddd = delivered net quantity in whole units

    Note: if the Use Hundredths W&M RCU parameter is enabled, the gross and net quantity value will have an implied two decimal places.

    sddddd = signed component batch average temp in tenths or hundredths

    sddddd = component batch average pressure in tenths or hundredths

    dddddd = depending on API table selected,

    component batch average density in tenths OR

    component batch average relative density in ten thousands OR

    component batch average gravity in tenths

    sddddd = signed component current temp in hundredths

    sddddd = signed component current pressure in hundredths

    sddddd = signed component current density in tenths

    sddddd = signed component current relative density in ten thousands

    sddddd = signed component current bsw hund

    sdddd = signed component current api gravity tenths

    sddddd = signed batch average bsw hundsdddd = signed batch average api gravity tenths

    ddddddddd = component meter delivered gross quantity in whole units

    ddddddddd = component meter delivered net quantity in whole units

    sddddd = signed component meter batch average temp in tenths or hundredths

    sddddd = component meter batch average pressure in tenths or hundredths

    dddddd = depending on API table selected,

    component meter batch average density in tenths OR

    component meter batch average relative density in ten thousands OR

    component meter batch average gravity in tenths

    sddddd = signed component meter current temp in hundredths

    sddddd = signed component meter current pressure in hundredths

    sddddd = signed component meter current density in tenths

    sddddd = signed component meter current relative density in ten thousands

    sddddd = signed component meter current bsw hund

    sdddd = signed component meter current api gravity tenths

    sddddd = signed meter batch average bsw hund

    sdddd = signed meter batch average api gravity tenths

    Modbus :

    Where: p = preset (0-11), c = component (0-7)

    Read Only Register=4372+p*8+c, Len=2, 32-Bit Integer (ddddddddd (gross))Read Only Register=4564+p*8+c, Len=2, 32-Bit Integer (ddddddddd (net))

    Read Only Register=4756+p*8+c, Len=2, 32-Bit Integer (sddddd (component average temp))

    Read Only Register=4948+p*8+c, Len=2, 32-Bit Integer (sddddd (component average pressure))

    Read Only Register=5140+p*8+c, Len=2, 32-Bit Integer (dddddd (component average density/rel.dens./gravity))

    Read Only Register=5332+p*8+c, Len=2, 32-Bit Integer (sddddd (component current temp))

    Read Only Register=5524+p*8+c, Len=2, 32-Bit Integer (sddddd (component current pressure))

    Read Only Register=5716+p*8+c, Len=2, 32-Bit Integer (sddddd (component current density))

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    34/117

    Chapter 6Meter Commands

    Read Only Register=6292+p*8+c, Len=2, 32-Bit Integer (sddddd (component current relative density))

    Read Only Register=6484+p*8+c, Len=2, 32-Bit Integer (sddddd (component current bsw))

    Read Only Register=6676+p*8+c, Len=2, 32-Bit Integer (sddddd (component current api gravity))

    NOT AVAILABLE, Len=2, 32-Bit Integer (sddddd (component average bsw))

    NOT AVAILABLE Len=2, 32-Bit Integer (sdddd (component average api gravity))

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    35/117

    Chapter 6Meter Commands

    per additive(16):

    ddddddddd = delivered quantity in thousands

    Modbus :

    Where: p = preset (0-11), a = additive (0-11)

    Read Only Register=5908+p*16+a, Len=2, 32-Bit Integer (ddddddddd (delivered quantity in thousands))

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    36/117

    Chapter 6Meter Commands

    Query 1 Responses:

    xxxx= preset status #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char preset_enabled:1; // preset is enabled

    unsigned char preset_host_enabled:1; // preset enabled by host

    unsigned char authorized:1; // preset available for use

    unsigned char flow_active:1; // flow state is not idle

    unsigned char batch_authorized:1; // product & preset has been authorized

    unsigned char remote_msg:1; // remote message active

    unsigned char remote_desc:1; // remote descriptive message active

    unsigned char load_complete:1; // no further loading on batch can be done

    unsigned char end_batch:1; // MBE command processing started

    unsigned char end_batch_done:1; // MBE command processing done

    unsigned char tms_got_data:1; // MEB command received

    unsigned char archived:1; // batch data has been archived intotransaction database

    unsigned char batch_cleared:1; // batch has been cleared

    unsigned char clearing_load:1; // load clear has been issued

    unsigned char load_cleared:1; // load has been cleared

    unsigned char trans_done:1; // transaction is done

    } flags:

    } preset_status_0;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    37/117

    Chapter 6Meter Commands

    xxxx= preset status #1 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char program_clear_errors:1; // command to clear errors

    unsigned char remote_clear_errors:1; // command to clear errors

    unsigned char driver_clear_errors:1; // command to clear errors

    unsigned char clearing_errors:1; // currently clearing errors

    unsigned char flow_batch:1; // command to flow/not flow product

    unsigned char clear_batch:1; // command to clear batch

    unsigned char clear_load:1; // command to clear load

    unsigned char flush_stage_needed:1; // product flush stage required

    unsigned char open_blk_val:1; // block valve open

    unsigned char blk_val_status:1; // block valve status

    unsigned char close_blk_val:1; // block valve close

    unsigned char remote_start:1; // remote start button status

    unsigned char swing_arm:1; // swing arm select status

    unsigned char meter_stop:1; // meter stop button status

    unsigned char alarm_out:1; // preset alarm output status

    unsigned char permissive:1; // preset permissive input status

    } flags:

    } preset_status_1;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    38/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    39/117

    Chapter 6Meter Commands

    per meter(6):

    xxxx= meter status #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char program_clear_errors:1; // command to clear errors

    unsigned char remote_clear_errors:1; // command to clear errors

    unsigned char driver_clear_errors:1; // command to clear errors

    unsigned char clearing_errors:1; // currently clearing errors

    unsigned char clear_totals:1; // commanded to clear totals

    unsigned char start_flow:1; // commanded to start flow

    unsigned char stop_flow:1; ; // commanded to stop flow

    unsigned char high_flow:1; // forcing flow into high flow

    unsigned char upstream_valve:1; // upstream valve status

    unsigned char downstream_valve:1; // downstream valve status

    unsigned char alarm_out:1; // meter alarm output status

    unsigned char authorized:1; // meter authorized output status

    unsigned char permissive:1; // meter permissive input status

    unsigned char permissive_out:1; // meter permissive output status

    unsigned char wm_clear_errors:1; // command to clear errors

    unsigned char unused0_15:1; // future use

    } flags:

    } meter_status_0;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    40/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    41/117

    Chapter 6Meter Commands

    xxxx= meter status #2 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char unused2_0:1; // future use

    unsigned char unused2_1:1; // future use

    unsigned char unused2_2:1; // future use

    unsigned char unused2_3:1; // future use

    unsigned char unused2_4:1; // future use

    unsigned char unused2_5:1; // future use

    unsigned char unused2_6:1; // future use

    unsigned char unused2_7:1; // future use

    unsigned char unused2_8:1; // future use

    unsigned char unused2_9:1; // future use

    unsigned char unused2_10:1; // future use

    unsigned char unused2_11:1; // future use

    unsigned char unused2_12:1; // future use

    unsigned char unused2_13:1; // future use

    unsigned char unused2_14:1; // future use

    unsigned char unused2_15:1; // future use

    } flags:

    } meter_status_2;

    Modbus:

    Supported through Modbus Extended Services Registers.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    42/117

    Chapter 6Meter Commands

    per component(8):

    xxxx= component status #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char program_clear_errors:1; // command to clear errors

    unsigned char remote_clear_errors:1; // command to clear errors

    unsigned char driver_clear_errors:1; // command to clear errors

    unsigned char clearing_errors:1; // currently clearing errors

    unsigned char clear_batch:1; // commanded to clear batch

    unsigned char remote_start_button:1; // remote start button input status

    unsigned char pump_run:1; // pump run output status

    unsigned char pump_kill:1; // pump kill output status

    unsigned char pump_status:1; // pump status input status

    unsigned char open_blk_val:1; // open block valve output status

    unsigned char blk_val_status:1; // block valve status input status

    unsigned char close_blk_val:1; // close block valve output status

    unsigned char alarm_out:1; // alarm out output status

    unsigned char authorized:1; // authorized output status

    unsigned char permissive:1; // component permissive input status

    unsigned char permissive_out:1; // component permissive output status

    } flags:

    } component_status_0;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    43/117

    Chapter 6Meter Commands

    xxxx= component status #1 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char blend_ready:1; // component blend ready

    unsigned char blend_complete:1; // component blend complete

    unsigned char flush_ready:1; // component flush ready

    unsigned char flush_complete:1; // component flush complete

    unsigned char sequential_delivery:1; // component to be sequentially delivered

    unsigned char clearing_batch:1; // component batch in process of clearing

    unsigned char gross_value_measured_for_trade:1; // gross value is W&M approved

    unsigned char wm_clear_errors:1; // command to clear errors

    unsigned char unused1_8:1; // future use

    unsigned char unused1_9:1; // future use

    unsigned char unused1_10:1; // future use

    unsigned char unused1_11:1; // future use

    unsigned char unused1_12:1; // future use

    unsigned char unused1_13:1; // future use

    unsigned char unused1_14:1; // future use

    unsigned char unused1_15:1; // future use

    } flags:

    } component_status_1;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    44/117

    Chapter 6Meter Commands

    xxxx= component status #2 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char unused2_0:1; // future use

    unsigned char unused2_1:1; // future use

    unsigned char unused2_2:1; // future use

    unsigned char unused2_3:1; // future use

    unsigned char unused2_4:1; // future use

    unsigned char unused2_5:1; // future use

    unsigned char unused2_6:1; // future use

    unsigned char unused2_7:1; // future use

    unsigned char unused2_8:1; // future use

    unsigned char unused2_9:1; // future use

    unsigned char unused2_10:1; // future use

    unsigned char unused2_11:1; // future use

    unsigned char unused2_12:1; // future use

    unsigned char unused2_13:1; // future use

    unsigned char unused2_14:1; // future use

    unsigned char unused2_15:1; // future use

    } flags:

    } component_status_2;

    Modbus:

    Supported through Modbus Extended Services Registers.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    45/117

    Chapter 6Meter Commands

    per additive(16):

    xxxx= additive status #0 in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char program_clear_errors:1; // command to clear errors

    unsigned char remote_clear_errors:1; // command to clear errors

    unsigned char driver_clear_errors:1; // command to clear errors

    unsigned char clearing_errors:1; // commanded to clear errors

    unsigned char clear_batch:1; // commanded to clear batch

    unsigned char test_button:1; // test inject button input status

    unsigned char pump_run:1; // pump run output status

    unsigned char pump_kill:1; // pump kill output status

    unsigned char pump_status:1; // pump status input status

    unsigned char open_blk_val:1; // open block valve output status

    unsigned char blk_val_status:1; // block valve status input status

    unsigned char close_blk_val:1; // close block valve output status

    unsigned char flush_pump_run:1; // flush pump run output status

    unsigned char alarm_out:1; // alarm out output status

    unsigned char authorized:1; // authorized output status

    unsigned char permissive:1; // additive permissive input status

    } flags:

    } additive_status_0;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    46/117

    Chapter 6Meter Commands

    xxxx= additive status #1 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char permissive_out:1; // permissive out output status

    unsigned char feedback_status:1; // additive feedback input status

    unsigned char wm_clear_errors:1; // command to clear errors

    unsigned char unused1_3:1; // future use

    unsigned char unused1_4:1; // future use

    unsigned char unused1_5:1; // future use

    unsigned char unused1_6:1; // future use

    unsigned char unused1_7:1; // future use

    unsigned char unused1_8:1; // future use

    unsigned char unused1_9:1; // future use

    unsigned char unused1_10:1; // future use

    unsigned char unused1_11:1; // future use

    unsigned char unused1_12:1; // future use

    unsigned char unused1_13:1; // future use

    unsigned char unused1_14:1; // future use

    unsigned char unused1_15:1; // future use

    } flags:

    } additive_status_1;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    47/117

    Chapter 6Meter Commands

    xxxx= additive status #2 in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char unused2_0:1; // future use

    unsigned char unused2_1:1; // future use

    unsigned char unused2_2:1; // future use

    unsigned char unused2_3:1; // future use

    unsigned char unused2_4:1; // future use

    unsigned char unused2_5:1; // future use

    unsigned char unused2_6:1; // future use

    unsigned char unused2_7:1; // future use

    unsigned char unused2_8:1; // future use

    unsigned char unused2_9:1; // future use

    unsigned char unused2_10:1; // future use

    unsigned char unused2_11:1; // future use

    unsigned char unused2_12:1; // future use

    unsigned char unused2_13:1; // future use

    unsigned char unused2_14:1; // future use

    unsigned char unused2_15:1; // future use

    } flags:

    } additive_status_2;

    Modbus:

    Supported through Modbus Extended Services Registers.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    48/117

    Chapter 6Meter Commands

    6.11 REQUEST SMPSTATUS &PRESET ALARMS:

    MSSpppxxxxyyyyzzzz => SSppp (Requested parameters as listed above).

    The MSS command for the MultiLoad II SMP, is identical to the MRS command but only returns 1 component

    instead of 8, 1 meter instead of 4, and 2 additives instead of 16 additives in the response.

    6.12 TRIP PRESET ALARMS:

    MTPApppyyyy => TPAppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    yyyy= preset alarms in hexadecimal as:

    union

    {

    unsigned int value;

    struct{

    unsigned char preset_fcm_com:1; // one or more FCMs that are required forPRESET status or signals are in comerror.

    unsigned char preset_permissive:1; // preset permissive not active but preset isauthorized to load.

    unsigned char swing_arm_permissive:1; // swing arm not in bay and preset isauthorized to load.

    unsigned char line_not_flushed:1; // less than min_line_flush_vol has flowedsince a non-flush component has flowedand batch was ended.

    unsigned char preset_block_valve:1; // block value status does not agree withcommanded valve position.

    unsigned char bay_alarm:1; // a bay level alarm currently exists.

    unsigned char component_alarm:1; // a component level alarm currently existsfor this preset.

    unsigned char additive_alarm:1; // a additive level alarm currently exists forthis preset.

    unsigned char meter_stop:1; // meter stop button for preset pressed

    unsigned char preset_overrun:1; // preset delivered volume is over targetvolume by overrun_alarm_vol.

    unsigned char excess_flow:1; // preset flow rate has exceeded

    excess_flow_alarm_rate.unsigned char unused11:1;

    unsigned char unused12:1;

    unsigned char unused13:1;

    unsigned char unused14:1;

    unsigned char configuration_error:1; // preset configuration has invalid data,check message log for details

    } flags;

    } preset_alarms;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    49/117

    Chapter 6Meter Commands

    Modbus:

    Write Only Register=7082+ppp, Len=1, 16-Bit Integer (yyyy)

    6.13 REQUEST BAY ALARMS:

    MRBA => RBAxxxx

    Where:

    xxxx = bay alarms in hexadecimal as:

    union

    {

    struct

    {

    unsigned char bay_fcm_com:1; // one or more FCMs that are required for BAYstatus or signals are in com error.

    unsigned char bay_permissive0:1; // user definable preset permissive 0 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive1:1; // user definable preset permissive 1 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive2:1; // user definable preset permissive 2 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive3:1; // user definable preset permissive 3 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive4:1; // user definable preset permissive 4 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive5:1; // user definable preset permissive 5 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive6:1; // user definable preset permissive 6 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char bay_permissive7:1; // user definable preset permissive 7 not activebut bay is authorized to load. Error messagecan be renamed to indicate permissive.

    unsigned char all_stop:1; // all stop button pressed

    unsigned char bay_pcm_com:1; // one or more FCMs that are required for BAYstatus or signals are in comm error.

    unsigned char printer_error:1; // one or more printers are in error.unsigned char unused12:1;

    unsigned char unused13:1;

    unsigned char deadman:1; //deadman alarm active

    unsigned char fcm_trace:1;

    unsigned char unused16-31:1;

    } flags;

    unsigned int value;

    } bay_alarms;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    50/117

    Chapter 6Meter Commands

    Modbus:

    Read Only Register=7094, Len=1, 16-Bit Integer (xxxx)

    6.14 REQUEST COMPONENT ALARMS:

    MRCAppp => RCApppxxxx

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    per component(8):

    xxxx = component alarms in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {

    unsigned char component_fcm_com:1; // one or more FCMs that arerequired for COMPONENT statusor signals are in comm error.

    unsigned char component_permissive:1; // component permissive not activebut component is authorized toload.

    unsigned char component_block_valve:1; // block value status does notagree with commanded valveposition.

    unsigned char component_unauth_flow:1; // greater thanunauth_flow_alarm_vol has beenmetered when component was notauthorized for flow.

    unsigned char component_pump_status:1; // pump status does not agree with

    commanded pump state.unsigned char meter_alarm:1; // a meter level alarm currently

    exists for this component.

    unsigned char component_over_blend_tol:1; // blend precent has been over byblend_chk_alarm_pct forblend_chk_alarm_time seconds.

    unsigned char component_under_blend_tol:1; // blend precent has been under byblend_chk_alarm_pct forblend_chk_alarm_time seconds.

    unsigned char component_api_table:1; // API VCF table error

    unsigned char unused9:1;

    unsigned char unused10:1;

    unsigned char unused11:1;

    unsigned char unused12:1;

    unsigned char unused13:1;

    unsigned char unused14:1;

    unsigned char unused15:1;

    unsigned char unused16-31:1;

    } flags;

    } component_alarm;

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    51/117

    Chapter 6Meter Commands

    Modbus:

    Where: p = preset (0-11), c = component (0-7)

    Read Only Register=7095+8*p+c, Len=1, 16-Bit Integer (xxxx)

    Note: Last Component Alarm Register Used=7190

    6.15 REQUEST METER ALARMS:MRMAppp => RMApppxxxx

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    per meter(5):

    xxxx = meter alarms in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {unsigned char meter_fcm_com:1; // one or more FCMs that are required for

    METER status or signals are in commerror.

    unsigned char meter_permissive:1; // meter permissive not active but meter isauthorized to load.

    unsigned char fcm_invalid_config:1; // FCM reporting an error with loadedconfiguration. (Meter factors likely sourceof this type of error.)

    unsigned char fcm_wdt_reset:1; // FCM stopped flow due to lack ofcommunication from RCU.

    unsigned char fcm_com_timeout:1; // FCM com timed out due to a lack of

    communication from RCU.unsigned char valve_fault:1; // greater than value_fault_alarm_vol has

    been metered since flow was stopped.

    unsigned char low_flow:1; // flow rate was below low_flow_alarm_ratefor low_flow_alarm_time seconds whileattempting to flow.

    unsigned char excess_flow:1; // flow rate was aboveexcess_flow_alarm_rate.

    unsigned char quad_encoding:1; // max_quad_errors were received.

    unsigned char density_error:1; // density signal not valid or density alarm_high_density.

    unsigned char temp_error:1; // temp signal not valid or temp alarm_high_temp.

    unsigned char valve_control:1; // not able to slow for stop flow rate forvalve_control_alarm_time.

    unsigned char meter_creep:1; // greater than meter_creep_alarm_vol hasbeen metered since flow was stopped.

    unsigned char pressure_error:1; // pressure signal not valid or pressure alarm_high_pressure.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    52/117

    Chapter 6Meter Commands

    unsigned char quad_encoding_a:1; // max_quad_errors were received on channelA.

    unsigned char quad_encoding_b:1; // max_quad_errors were received on channelB.

    unsigned char meter_com:1; // assigned serial (mass) meter is in commerror.

    unsigned char bsw_error:1; // Bottom Sediment Water Errorunsigned char api_gravity_error:1; // API Gravity Error

    unsigned char unused16-31:1;

    } flags;

    } meter_alarms;

    Modbus:

    Where: p = preset (0-11), m = meter (0-4)

    Read Only Register=7191+5*p+m, Len=1, 16-Bit Integer (xxxx)

    Note: Last Meter Alarm Register Used=7250

    6.16 REQUEST ADDITIVE ALARMS:MRAAppp => RAApppxxxx

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    per additive(16):

    xxxx = additive alarms in hexadecimal as:

    union

    {

    unsigned int value;

    struct

    {

    unsigned char additive_fcm_com:1; // one or more FCMs that are required forADDITIVE status or signals are in commerror.

    unsigned char additive_permissive:1; // additive permissive not active butadditive is authorized to load.

    unsigned char additive_under_add:1; // recipe additive needed is under actualadditive delivered byunder_adtv_alarm_injects.

    unsigned char additive_over_add:1; // recipe additive needed is over actualadditive delivered byover_adtv_alarm_injects.

    unsigned char additive_valve_fault:1; // greater than value_fault_alarm_vol hasbeen metered since flow was stopped.

    unsigned char additive_pump_status:1; // pump status does not agree withcommanded pump state.

    unsigned char additive_injection:1; // piston switch or pulser did not indicatean injection took place.

    unsigned char additive_unauth_flow:1; // greater than unauth_flow_alarm_vol hasbeen metered when additive was notauthorized for flow.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    53/117

    Chapter 6Meter Commands

    unsigned char additive_line_not_flushed:1; // min_line_flush_volume of product hasnot flushed since last inject was completedand batch was ended.

    unsigned char additive_meter_creep:1; // greater than meter_creep_alarm_vol hasbeen metered since flow was stopped.

    unsigned char additive_block_valve:1; // block valve status does not agree with

    commanded valve position.unsigned char unused11:1;

    unsigned char unused12:1;

    unsigned char unused13:1;

    unsigned char unused14:1;

    unsigned char unused15:1;

    unsigned char unused16-31:1;

    } flags;

    } additive_alarms;

    Modbus:

    Where: p = preset (0-11), a = additive (0-15)

    Read Only Register=7251+16*p+a, Len=1, 16-Bit Integer (xxxx)

    Note: Last Additive Alarm Register Used=7442

    6.17 START PRESET FLOW:

    MMSppp

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    Starts flow for the particular preset. A message is placed into the Message Log when this command isexecuted.

    Modbus:

    Write Only Register=7443+ppp, Len=1, 16-Bit Integer (any value)

    6.18 STOP PRESET FLOW:

    MSMpppssssssssssddddddddddddddddddddddddddddddddddddddd

    Where:

    ppp = The specified zero-based preset or load arm number (000-011).

    ssssssssss = 10 Character Optional Message.

    ddddddddddddddddddddddddddddddddddddddd = 39 Character Optional Detail Message.

    Stops flow and displays a message for the particular preset. A detail message will be displayed when the presetis selected. Driver and acknowledge and clear the message by pressing CLR key.

    Modbus:Write Only Register=7455+ppp, Len=1, 16-Bit Integer (any value)

    Stop Preset Message only supported through Modbus Extended Services Register.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    54/117

    Chapter 7Register Operations

    CHAPTER 7 REGISTER OPERATIONS:

    Read Register Command => Response

    R => R004 => 0?00004000000001

    R104021000001 => 0?0104021000001000000020

    R999 => 1?0999 (invalid register!)

    Update Register Command => Response

    U =>

    U004000000001 => 0?0004

    U104021000001000000020 => 0?0104021000001

    U999000000001 => 1?0999 (invalid register or value!)

    MultiLoad contains literally hundreds of registers that configure everything from message toggling delay to meterfactors. All of these registers are accessed using the same two commands.

    To read the value of a register the command is R followed by the register and sub register numbers. Theresponse will be the register and sub register numbers, followed by the register value. The value may be up to9 decimal digits.

    To update the value of a register the command is U followed by the register and sub register numbers a nd thevalue to be stored.

    While almost all registers can be read or updated, a few have only read access. Many others have protectionthat prevents updates while a transaction is in process, host system is up, or when Weights & Measures securityis in effect.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    55/117

    Chapter 7Register Operations

    7.1 GENERIC REGISTERS

    7.1.1 REGISTER DATA TYPES

    All registers are read and updated as positive integers even when values expressed are non positive orfractional. In some cases a several values are concatenated bit-wise to form the register value.

    unsigned int Unsigned integer value.

    Numeric Value Register Value

    12345 12345

    unsigned div10 Unsigned numeric value with 1 decimal place.

    Numeric Value Register Value

    1234.5 12345

    unsigned div100 Unsigned numeric value with 2 decimal places.

    Numeric Value Register Value123.45 12345

    unsigned div1000 Unsigned numeric value with 3 decimal places.

    Numeric Value Register Value

    12.345 12345

    unsigned div10000 Unsigned numeric value with 4 decimal places.

    Numeric Value Register Value

    1.2345 12345

    percent Unsigned percent value with 2 decimal places.

    Numeric Value Register Value

    123.45% 12345

    percent div 10000 Unsigned percent value with 4 decimal places.

    Numeric Value Register Value

    1.2345% 12345

    signed int Signed integer value.

    Numeric Value Register Value

    +12345 12345+0 0

    +1 1

    +32767 32767

    -32768 32768

    -1 65535

    signed div10 Signed numeric value with 1 decimal place.

    Numeric Value Register Value

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    56/117

    Chapter 7Register Operations

    +1234.5 12345

    +0.0 0

    +0.1 1

    +3276.7 32767

    -3276.8 32768

    -0.1 65535

    signed div100 Signed numeric value with 2 decimal places.

    Numeric Value Register Value

    +123.45 12345

    +0.00 0

    +0.01 1

    +327.67 32767

    -327.68 32768

    -0.01 65535

    signed div1000 Signed numeric value with 3 decimal places.

    Numeric Value Register Value

    +12.345 12345

    +0.000 0

    +0.001 1

    +32.767 32767

    -32.768 32768

    -0.001 65535

    signed div10000 Signed numeric value with 4 decimal places.

    Numeric Value Register Value+1.2345 12345

    +0.0000 0

    +0.0001 1

    +3.2767 32767

    -3.2768 32768

    -0.0001 65535

    disable enable Enumerated disable and enable values.

    enum{ // Enumerated Value Register Value

    DISABLED = 0,

    ENABLED = 1};

    measure Enumerated measure values.

    enum{ // Enumerated Value Register Value

    GALLONS = 0,

    LITRES = 1,

    CUBIC_METERS = 2,

    TONNES = 3,

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    57/117

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    58/117

    Chapter 7Register Operations

    TABLE_HYDRO_BRAZIL =206,

    TABLE_I = 'I',

    TABLE_J = 'J',

    TABLE_K = 'K',

    TABLE_L = 'L',

    TABLE_O = 'O',

    TABLE_2004_6A = 1000,

    TABLE_2004_6B = 1001,

    TABLE_2004_6C = 1002,

    TABLE_2004_6D = 1003, //why cab on this place

    TABLE_2004_6X = 1004,

    TABLE_2004_24A = 1008,

    TABLE_2004_24B = 1009,

    TABLE_2004_24C = 1010,

    TABLE_2004_24D = 1011,

    TABLE_2004_24X = 1012,

    TABLE_2004_5A = 1013,

    TABLE_2004_5B = 1014,

    TABLE_2004_5D = 1015,

    TABLE_2004_5X = 1016,

    TABLE_2004_23A = 1017,

    TABLE_2004_23B = 1018,

    TABLE_2004_23D = 1019,

    TABLE_2004_23X = 1020,

    TABLE_2004_54A = 1021,

    TABLE_2004_54B = 1022,

    TABLE_2004_54C = 1023,

    TABLE_2004_54D = 1024,

    TABLE_2004_60A = 1025,

    TABLE_2004_60B = 1026,

    TABLE_2004_60C = 1027,

    TABLE_2004_60D = 1028,

    TABLE_2004_60X = 1029,

    TABLE_2004_53A = 1030,

    TABLE_2004_53B = 1031,

    TABLE_2004_53D = 1032,

    TABLE_2004_59A = 1033,TABLE_2004_59B = 1034,

    TABLE_2004_59D = 1035,

    TABLE_2004_59X = 1036,

    TABLE_2004_1121 = 1040,

    TABLE_2004_1121M = 1041

    };

    Note: Register value is still an integer value not an ascii char. For example, to specify TABLE_54, the asciivalue of A or 65 would be the register value, not the characterA.

  • 8/11/2019 20130201 Multiload II Communications Manual_fv_3!4!31_09

    59/117

    Chapter 7Register Operations

    fcm address FCM addressing parameters.

    This type is a bit-wise concatenation of four different FCM addressing parameters that is expressed as a singleregister value.

    struct fcm_address_type

    {

    unsigned char port_number:3; // FCM port range 0-7

    unsigned char fcm_number:5; // FCM number range 0-31

    unsigned char invert:1; // Normal signal = 0, Invert signal = 1

    // For pulse outputs, single pulse = 0, dual pulse = 1

    unsigned char enabled:1; // Disabled = 0, Enabled = 1

    unsigned char ext_port:3; // ext_port(3) Port range 0-39

    unsigned char unused:3;

    };

    Note: Register value is still an integer value not a binary structure.

    For example, to specify port_number 4, fcm_number 1, normal signal, enabled, (0000,0,1,0,00001,100) thenumeric value of the bit-wise concatenation of these four different FCM addressing parameters would b