MMuullttiiLLooaadd IIII CCoommmmuunniiccaattiioonnss GGuuiiddee
I In nc cl lu ud di in ng g: : MMuullttiiLLooaadd IIII
MMuullttiiLLooaadd IIII SSMMPP MMuullttiiLLooaadd IIII MMoobbiillee
Part # 6077 Firmware Version 3/4.31.00 March 2011 2 Copyright
Notice Copyright 2000 - 2011 Toptech Systems, Inc.
Theinformationcontainedinthisdocumentisproprietaryandconfidential.Nopartofthisdocumentmaybecopied,reproduced,or
transmitted 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 liable for any claims of
damage, lost data, or lost time as a result of using its products.
Toptech Systems, 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 II 1-Arm, MultiLoad II -
SMP, FCM Flow Control Module are trademarks of Toptech Systems,
Inc. Copyright 2000 - 2011 Toptech Systems, Inc. All Rights
Reserved. 3 Table of Contents CHAPTER 1PROTOCOL SPECIFICATION
.....................................................................................................
6 1.1DEFINITIONS
............................................................................................................................................
6 1.2SMITH PROTOCOL
....................................................................................................................................
7 1.3BROOKS PROTOCOL
.................................................................................................................................
7 1.4DANIELS PROTOCOL
.................................................................................................................................
7 1.5MODBUS-RTU PROTOCOL
........................................................................................................................
8 1.5.1Read Holding Registers (fn=3)
..........................................................................................................
8 1.5.2Write Single Registers
(fn=6).............................................................................................................
8 1.5.3Loopback/Maintenance (fn=8)
...........................................................................................................
9 1.5.4Preset Multiple Registers (fn=16)
......................................................................................................
9 1.5.5Error Responses (fn= +128)
..............................................................................................................
9 1.5.6Modbus Register Map Summary
.....................................................................................................
10 1.5.7Extended Services Register
............................................................................................................
10 CHAPTER 2MULTILOAD COMMAND RESPONSES
...................................................................................
11 CHAPTER 3QUERY COMMAND:
..................................................................................................................
13 CHAPTER 4FUNCTION COMMANDS:
..........................................................................................................
14 CHAPTER 5TERMINAL COMMANDS:
..........................................................................................................
15 5.1TERMINAL ESCAPE
COMMANDS:..............................................................................................................
15 CHAPTER 6METER COMMANDS:
................................................................................................................
20 6.1AUTHORIZE PRESET (PRODUCT AND PRESET VOLUME):
...........................................................................
20 6.2CLEAR ALARMS:
.....................................................................................................................................
20 6.3ENABLE PRESET
....................................................................................................................................
20 6.4END TRANSACTION
.................................................................................................................................
20 6.5BATCH COMPLETE
..................................................................................................................................
21 6.6BATCH
END:...........................................................................................................................................
21 6.7END
BATCH:...........................................................................................................................................
21 6.8PRESET MESSAGE:
................................................................................................................................
22 6.9PROVING TRANSACTION MODE:
..............................................................................................................
22 6.10REQUEST STATUS & PRESET ALARMS:
....................................................................................................
23 6.11REQUEST SMP STATUS & PRESET ALARMS:
...........................................................................................
46 6.12TRIP PRESET ALARMS:
...........................................................................................................................
46 6.13REQUEST BAY ALARMS:
.........................................................................................................................
47 6.14REQUEST COMPONENT ALARMS:
............................................................................................................
48 6.15REQUEST METER ALARMS:
.....................................................................................................................
49 6.16REQUEST ADDITIVE ALARMS:
..................................................................................................................
50 6.17START PRESET FLOW:
............................................................................................................................
51 6.18STOP PRESET FLOW:
.............................................................................................................................
51 CHAPTER 7REGISTER OPERATIONS:
........................................................................................................
52 7.1GENERIC REGISTERS
.............................................................................................................................
53 7.1.1Register Data Types
........................................................................................................................
53 4 7.1.2000 RCU Level Configuration Registers
......................................................................................
59 7.1.3100 Bay Level Configuration Registers
........................................................................................
61 7.1.4101 Preset Level Configuration Registers
....................................................................................
62 7.1.5102 Meter Level Configuration Registers
.....................................................................................
65 7.1.6103 Component Level Configuration Registers
............................................................................
68 7.1.7104 Additive Level Configuration Registers
.................................................................................
70 7.1.8105 Custom Logic Definitions Registers
......................................................................................
72 7.1.9200 Stand Alone BOL Definition Registers
..................................................................................
76 7.1.10800 Transaction Archive Registers
..........................................................................................
79 7.2SPECIAL PURPOSE REGISTERS
...............................................................................................................
81 7.2.1000 MultiLoad Firmware Version
..................................................................................................
81 7.2.2001 Date and Time
.......................................................................................................................
81 7.2.3003 FCM Poll Rate
.......................................................................................................................
81 7.2.4005 Current BOL/Ticket Number
..................................................................................................
81 7.2.5070 Ethernet Enable
.....................................................................................................................
81 7.2.6071 IP Address
.............................................................................................................................
82 7.2.7072 IP Mask
..................................................................................................................................
82 7.2.8073 IP Gateway
............................................................................................................................
82 7.2.9074 IP Host
...................................................................................................................................
82 7.2.10085 Modem Initialization String
................................................................................................
82 7.2.11091..093 Communication Port Parameters
..............................................................................
82 7.2.12095..099 Program Mode Passwords (5)
..................................................................................
83 7.2.13112 - Real-Time Preset Total Gross Totalizers
...........................................................................
84 7.2.14113 - Real-Time Preset Total Net Totalizers
...............................................................................
84 7.2.15133 FCM IO Access
.................................................................................................................
84 7.2.16140 Current Latitude/Longitude position Registers
(MultiLoad Mobile Only) ........................... 85 7.2.17141
Current Transaction Latitude/Longitude/Site Index Registers
(MultiLoad Mobile Only) ... 86 7.2.18400 - Preset Definition
Registers
................................................................................................
86 7.2.19401 External Preset Display Register
......................................................................................
87 7.2.20500 - Product Definition Registers
..............................................................................................
87 7.2.21600 - Standalone Driver Card Database
.....................................................................................
88 7.2.22650 GPS Site Database (MultiLoad Mobile Only)
.....................................................................
88 7.2.23700 - Configurable Language Prompts
.......................................................................................
89 7.2.24710 - Bay Alarm Messages
.........................................................................................................
89 7.2.25711 - Preset Alarm Messages
.....................................................................................................
91 7.2.26712 - Meter Alarm Messages
......................................................................................................
92 7.2.27713 - Component Alarm Messages
.............................................................................................
94 7.2.28714 - Additive Alarm Messages
..................................................................................................
96 7.2.29910 Read Event Log Message Queue
.....................................................................................
97 7.2.30912 Read W & M Change Log Message Queue
......................................................................
98 7.2.31950 - Current Driver Card Number
..............................................................................................
98 7.2.32951..954 - Current Driver Prompt Information
.............................................................................
98 7.2.33960 Input Data
..........................................................................................................................
98 7.2.34961 Input Data Terminating Key
..............................................................................................
99 7.2.35962 - Current Driver Card Data
...................................................................................................
99 7.2.36998 Bitmap Graphic Cache
....................................................................................................
101 5 CHAPTER 8COMMUNICATION TRACE EXAMPLE
...................................................................................
102 8.1STARTUP OF HOST SOFTWARE
.............................................................................................................
102 8.1.1Update Date & Time
......................................................................................................................
102 8.1.2Update Product Definitions
............................................................................................................
102 8.1.3Update Preset Definitions
..............................................................................................................
103 8.1.4Status Query
..................................................................................................................................
103 8.2TRANSACTION AUTHORIZATION
.............................................................................................................
104 8.2.1Process Driver Card In
..................................................................................................................
104 8.2.2Authorize a Transaction on MultiLoad
...........................................................................................
105 8.2.3Reading Totalizers
.........................................................................................................................
105 8.3BATCH AUTHORIZATION
........................................................................................................................
106 8.3.1Authorize a Batch on MultiLoad
.....................................................................................................
106 8.3.2Monitor Load During Delivery
........................................................................................................
108 8.4END OF BATCH PROCESSING
................................................................................................................
108 8.4.1Ending a Batch on MultiLoad
.........................................................................................................
108 8.5END OF TRANSACTION PROCESSING
.....................................................................................................
109 8.5.1Ending a Transaction on MultiLoad
...............................................................................................
109 8.6SHUTDOWN OF HOST SOFTWARE
..........................................................................................................
109 CHAPTER 9DATA COMMUNICATION NOTES AND RECOMMENDATIONS
........................................... 110 9.1PROTOCOL
SELECTION: RS-232 VS. RS-485
........................................................................................
110 9.1.1RS-232
...........................................................................................................................................
110 9.1.2RS-485
...........................................................................................................................................
110 9.2CABLE
SELECTION................................................................................................................................
110 9.3LINE TERMINATION IN MULTI-DROPPED COMMUNICATIONS
.....................................................................
110 9.4OPTICAL ISOLATION
..............................................................................................................................
111 9.5SHIELD GROUNDING
.............................................................................................................................
111 Chapter 1 Protocol Specification6 CHAPTER 1PROTOCOL
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 the
software or measurement data.
Hostcommunicationcanoccurviamulti-droppedRS-232/RS-485serialonCOM1orEthernet10/100socket
communication on port 7734. 1.1DEFINITIONS
Thenon-printingcharactersthatformtheskeletonoftheSmithandBrooksprotocolsarestandardASCII
(American Standard Code Information Interchange): ASCII
CHARACTERDECIMALHEXBINARY NUL0000000000 STX2200000010 ETX3300000011
SOH1100000001 PAD1277F01111111 CHARACTERDESCRIPTION BCC Block Check
Characters. The ASCII hex representation of the binary sum of all
the data in the message from the SOH through the ETX character. LRC
Longitudinal Redundancy Check. The LRC is an ASCII character
computed as the exclusive or(XOR) sum of all characters following
theSTX and including the ETX. CRCCyclic Redundancy Check. A1..A3
A3-characterASCIIunitaddressoftheMultiLoad.Pleaserefertothe
MultiLoad User Guide for configuring the unit address. D1..DnData
field characters. FnFunction field code. AdrA single character
binary unit address of the MultiLoad. Chapter 1 Protocol
Specification7 1.2SMITH PROTOCOL
TheSmithprotocoliscompatiblewithdevicesfromSmithMeter,suchastheAcculoadIandAcculoadIImini
computer modes of operation.Using this protocol, MultiLoad accepts
data in the format: NULSTXA1A2dataETXLRCPAD A1 and A2 are the last
two digits of the unit address in the RCU configuration. 1.3BROOKS
PROTOCOL
TheBrooksprotocoliscompatiblewithdevicesfromBrooksInstrumentssuch
astheirPetrocountRAUand IMS Control units running in computer
mode.Using this protocol, MultiLoad accepts data in the format:
SOHDESTINATION SOURCEA1 A2 A3 S1 S2 S3STX data ETXBCC1BCC2
1.4DANIELS PROTOCOL
TheDanielsprotocoliscompatiblewithdevicesfromDanielsFlowProducts.Usingthisprotocol,MultiLoad
accepts and responds with data in the format: Quiet Time ADRFN
LEN(2 252) D1...DNCRC1CRC2 Quiet Time 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/0x42 for normal responses and 0xc1/0xc2 for
exception responses. D1Dn is string data containing the commands
listed in this manual.
Note:Modbusextentiontoreturnlargerpacketsizes:Onmessageswithdatapacketsizesfrom2to252
characters the Fn values of 0x41/0x42 will be returned.With
messages outside this range, Fn will be the MSB value 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). Chapter 1 Protocol Specification8
1.5MODBUS-RTU PROTOCOL
TheModbus-RTUprotocolhasbeenimplementedtobeascompatibleaspossiblewiththeoriginalpublished
Modicon Modbus-RTU standard. Note:The Modbus protocol allows
parameter register access only as defined by the explicit mapping
in thismanual.TosendtheASCIIcommands(R000,T`A,MAM,
MRS,etc.)thatarehandledbytheother three protocols, the Modbus
Extended Services registers must be used. Using the modbusprotocol,
MultiLoad accepts data in the following format: Quiet Time
ADRFN...CRC1CRC2 Quiet Time 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. Theformal
specificationof Modbus lists the
startingHoldingRegisteraddressas40001. TheModbus Holding Register
functions (Fn 3, 6 and 16)allhave animplied 4XXXX reference.
ReferencingHolding Register 40001 is addressed as register 0000 in
the register address field in the message for fn 3, 6, and 16.
Since Modbus addressing has been implemented in various ways over
the years, to avoid confusion in this manual, the Modbus Holding
Register addresses listed are the value in the register address
field in the message.If it is necessary to know the formal Modbus
Holding Register address, simply add 40001 to the register
addresses listed in the manual. 1.5.1READ HOLDING REGISTERS (FN=3)
Note: Both Modbus registers MUST be read at the same time when
reading 32-bit values. Tx: Quiet TimeADRFN=3 Start Register MSB
Start Register LSB Number Of Registers MSB Number of Registers LSB
CRC1CRC2Quiet Time Rx: Quiet Time ADR FN=3 (+128 if error) Byte
Count 1st Register MSB 1st Register LSB Next Register MSB Next
Register MSB CRC1CRC2 Quiet Time 1.5.2WRITE SINGLE REGISTERS (FN=6)
Note: can not be used for 32-bit registers. Tx: Quiet TimeADRFN=6
Start Register MSB Start Register LSB Register MSB Register LSB
CRC1CRC2Quiet Time Rx: Quiet TimeADR FN=6 (+128 if error) Start
Register MSB Start Register LSB Register MSB Register LSB
CRC1CRC2Quiet Time Chapter 1 Protocol Specification9
1.5.3LOOPBACK/MAINTENANCE (FN=8) Note: only loopback of command
supported. Tx: Quiet TimeADRFN=8 Diagnostic Code MSB Diagnostic
Code LSB Data MSBData LSBCRC1CRC2Quiet Time Rx: Quiet TimeADRFN=8
Diagnostic Code MSB Diagnostic Code LSB Data MSBData
LSBCRC1CRC2Quiet Time 1.5.4PRESET MULTIPLE REGISTERS (FN=16) Note:
Both Modbus registers MUST be written at the same time when writing
32-bit values. Tx: Quiet Time ADRFN=16 Start Register MSB Start
Register LSB Number Of Registers MSB Number of Registers LSB Byte
Count 1st Register MSB 1st Register LSB Next Register MSB Next
Register MSB CRC1CRC2 Quiet Time Rx: Quiet TimeADR FN=16 (+128 if
error) Start Register MSB Start Register LSB Number Of Registers
MSB Number of Registers LSB CRC1CRC2Quiet Time 1.5.5ERROR RESPONSES
(FN= +128) Rx: Quiet TimeADRFN+128 Error Subcode CRC2CRC1 Error
Subcodes are:
1=InvalidFunctionCode.Indicatesthattheuseofaninvalidorunimplementedfunctionhasbeen
attempted.
2=InvalidAddressField.Indicatesthatareadorwritewasmadetoaninvalidaddress.Canalso
indicate 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.This
errorcodewill also be returned if an attempt is made to
changeavalueunderWeights and Measures control without with W&M
switch being in the active state. 4 = Query Processing Failure.This
code is not returned. Chapter 1 Protocol Specification10
1.5.6MODBUS REGISTER MAP SUMMARY 1 999 General, BOL Template, MIsc.
Configurations. 1000 1199RCU Configurations 1200 1399Bay
Configurations 1400 1599Preset Configurations 1600 1799Meter
Configurations 1800 1999Component Configurations 2000 2199Additive
Configurations 2200 2999Product, Alarm, Database, Misc.
Configurations 3000 3999Totalizers 4000 6000Preset, Meter,
Component and Additive Status 7000 7799Status, Authorization
Control and Alarms 7800 - 7999Transaction Archive 8000 - 8999Preset
Definitions 9000-10999Extended Services Register 1.5.7EXTENDED
SERVICES REGISTER Not all commands native to the MultiLoad II have
corresponding mapping to Modbus registers.The
ExtendedServicesregisterwasimplementedasawaytosupportsendingandreceivingnativeMultiloadIIcommands
across the Modbus RTU interface.Anynative commandlisted can be sent
tothe MultiLoad viathe extended Services 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.CommandwillexecutewhenthefinalcharacteroftheCommandTextiswritten(9001+Command
Length-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. Chapter 2 MultiLoad Responses11
CHAPTER 2MULTILOAD COMMAND RESPONSES
ForMultiLoadtoacknowledgeamessagetwoconditionsmustbemeet.Firstthemessagemustfitthe
MessageFramingProtocolwithavalidLRC,BCCorCRC.Second,theaddressspecifiedinthefirsttwo
characters of the command must match the configured MultiLoad
address.Any message that satisfies both of these requirements will
be sent a response. Modbus: If using the Modbus protocol, the
Modbus Extended Services Registers must be used to pass in these
ASCII string commands. The first three characters of every response
will contain command, RCU and card status data as defined below.
enum { VALID_COMMAND= 0, INVALID_PARAMETER= 1, INVALID_COMMAND= 2 }
command_status; enum { IDLE= '0', AUTH_BAY= '4', MENU_MODE= '9',
DIAG_MODE= '%', AUTHORIZING_LOAD= 'A', LOAD_AUTHORIZED= 'B',
COMPLETING_LOAD= 'C', TRANSACTION_DONE= 'D', TRANSACTION_CANCEL=
'E', PULLING_TRANSACTION= 'P', ARCHIVING_TRANSACTION= 'R',
TRANSACTION_AUTHORIZED= 'T', RCU_NOT_CONFIGURED= '?', RCU_POWER_UP=
'!', INITIALIZING= 'I', NO_TRANSACTION= 'N', REMOTE_AUTH_PRESET1=
'a', REMOTE_AUTH_PRESET2= 'b', REMOTE_AUTH_PRESET3= 'c',
REMOTE_AUTH_PRESET4= 'd', REMOTE_AUTH_PRESET5= 'e',
REMOTE_AUTH_PRESET6= 'f', REMOTE_AUTH_PRESET7= 'g',
REMOTE_AUTH_PRESET8= 'h', Chapter 2 MultiLoad Responses12
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)
Inmostcasesacommandwillreturnadditionalinformationspecifictothecommand.Thisinformationwill
alwaysfollowthethreestatuscharacters.Forexampleifthefollowingvalidcommandtoreadthecurrent
firmware 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 specific response. Chapter 3 Query Command13 CHAPTER
3QUERY COMMAND: Query Command=>Response Q=>0?0XXXX Where:
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 unused12:1; 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 Timerand should be issued periodically to
notifyMultiLoad that the Host is still active. Modbus: Read Only
Register=7002, Len=1, 16-Bit Integer (XXXX) Chapter 4 Function
Commands14 CHAPTER 4FUNCTION 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.
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=Setsthehost_upRCUstatusbit.Clearedonpoweruporwhenhostdown
timeout expires between Q commands.Command should be issued when
host system starts communicating with MultiLoad. Modbus: Write Only
Register=7013, Len=1, 16-Bit Integer (any value=FHOSTUP)
FHOSTDOWN=Clearsthehost_upRCUstatusbit.Commandshouldbeissuedwhenhost
system 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) FPccc.=Send ccc characters to the attached printer
port (if defined). FCLEARPROD=Clear all product definitions (500
register) except for the 000-Unknown Product definition.
FCLEARID=Clear Access ID and PIN database. FCLEARCUSTOM=Clears all
custom logic entries. Modbus: Supported through Modbus Extended
Services Registers. Chapter 5 Terminal Commands15 CHAPTER 5TERMINAL
COMMANDS: Ts Where: s = Any text string to display.Display string
may contain one or more terminal escape commands. 5.1TERMINAL
ESCAPE COMMANDS: Where Terminal Escape Commands are: AAuthorize
Transaction: Authorize MultiLoad Transaction.Will display load
screen. Modbus: Write Only Register=7016, Len=1, 16-Bit Integer
(any value=Authorize Transaction) CxClear RCU counters Where, X =
counter to clear, 1 = counter 1, 2 = counter 2 ESetup Data Entry
Usedtodisplayaflashingcursor(SetupDataEntryLength>1)andallowuserinput.Datatobe
retrieved at R960, R961. FTurn on Big Font Used to enable double
size font. fTurn off Big Font Used to return to normal size font.
GSet 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= 0x00 Blue= 0x01 Red= 0x02 Magenta= 0x03 Green= 0x04 Cyan=
0x05 Yellow= 0x06 White= 0x07 Custom 0= 0x08 (Not available)
Chapter 5 Terminal Commands16 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 display a green word 'Hello' code the
string as follows: TG$Hello $ = 0x20 + 0x04 (Green) = 0x20 + 0x07
(White) HHome Cursor to Position (0,0) Move cursor position to
upper left corner of screen. IrcleSet 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) JErase 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 positioned on next line. KErase from
Cursor to End of Screen Use with after H to clear entire screen.
LxxSetup Data Entry Length Where: xx = Length of Data Entry Input
Required (00-25) (0 = Key Press with No Flashing Cursor) NTurn On
Cursor OTurn Off Cursor RReset the RCU Display Modbus: Write Only
Register=7017, Len=1, 16-Bit Integer (any value=Reset RCU Display)
YrcSet 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) XClear Entire Display
Chapter 5 Terminal Commands17 Lock the Display @Turn Character Echo
On !Turn Asterisk Echo On arcwh Draw Progress Box 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 Rows Down brcwhpUpdate Progress Box 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 Rows Down p = (character) 0x20 + Percent Value to
Display (0 = None, 100 = Full) crcpf Display Animation Frame Where:
r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom)
c = (character) 0x20 + Left Text Column Position (0 = left, 39 =
right) p = (character) 0x20 + Animation Picture Index f =
(character) 0x20 + Animation Frame Index Note:Test only since
Animation Picture Index and Animation Frame Index values may change
between firmware versions. df Display Factory Logo Where: f =
(character) 0x20 + Factory Logo Index Note:Test only since Factory
Logo Index values may change between firmware versions. ercwdDraw
Display Graphic 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 d = (character) 0x20 + pixel color palette index
values from left to right, top to bottom, Note:Each text column =
16 pixels wide, each text row = 30 pixels high Pixel color palette
index values defined as: Chapter 5 Terminal Commands18 Black= 0x00
Blue= 0x01 Red= 0x02 Magenta= 0x03 Green= 0x04 Cyan= 0x05 Yellow=
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 positiona
smallgraphic startingatrow5, column 20, column width 2,code the
string as follows: 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= 0x00 Blue= 0x01 Red= 0x02 Magenta= 0x03 Green=
0x04 Cyan= 0x05 Yellow= 0x06 White= 0x07 Custom 0= 0x08 (Not
available) Chapter 5 Terminal Commands19 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 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. Chapter 6 Meter Commands20
CHAPTER 6METER COMMANDS: 6.1AUTHORIZE 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 is
authorized 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.2CLEAR 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.3ENABLE 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.4END 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 a PRESET_END_OF_BATCH state. Modbus: Write Only
Register=7044, Len=1, 16-Bit Integer (any value) Chapter 6 Meter
Commands21 6.5BATCH COMPLETE MBCppp Where: ppp = The specified
zero-based preset or load arm number (000-011).
WhenaBCcommandisreceived,thepresetflowwillstopandthebatchwillbemarkedascomplete.The
operator will not be able to restart the batch, but will be allowed
to clear the batch and preset another (pending Host authorization).
Modbus: Write Only Register=7045+ppp, Len=1, 16-Bit Integer (any
value) 6.6BATCH 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 flow stops 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.7END 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) Chapter 6
Meter Commands22 6.8PRESET 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 forthe particularpreset. A detail
message will be displayed when the presetis selected.Driver and
acknowledge and clear the message by pressing CLR key. Modbus: Only
supported through Modbus Extended Services Registers. 6.9PROVING
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 during this transaction. Modbus: Write Only
Register=7081, Len=1, 16-Bit Integer (x) Chapter 6 Meter Commands23
6.10REQUEST 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.) Chapter 6 Meter Commands24 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.) Chapter 6 Meter Commands25 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
unused_3:1; unsigned int unused_4:1; unsigned int unused_5:1;
unsigned int unused_6: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
unused_9:1; unsigned int unused_10:1; unsigned int unused_11:1;
unsigned int unused_12:1; unsigned int unused_13:1; Chapter 6 Meter
Commands26 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). Chapter 6 Meter
Commands27 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; Chapter 6 Meter Commands28 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;//batchdatahasbeenarchivedintotransaction 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;
Chapter 6 Meter Commands29 yyyy= preset alarms in hexadecimal as:
union { unsigned int value; struct { unsigned char
preset_fcm_com:1;//oneormoreFCMsthatarerequiredfor
PRESETstatusorsignalsareincom error. unsigned char
preset_permissive:1;// preset permissive not active but preset is
authorized to load. unsigned char
swing_arm_permissive:1;//swingarmnotinbayandpresetis authorized to
load. unsigned char
line_not_flushed:1;//lessthanmin_line_flush_volhasflowed since a
non-flush component has flowed and batch was ended. unsigned char
preset_block_valve:1;//blockvaluestatusdoesnotagreewith commanded
valve position. unsigned char bay_alarm:1;// a bay level alarm
currently exists. unsigned char component_alarm:1;// a component
level alarm currently exists for this preset. unsigned char
additive_alarm:1;// a additive level alarm currently exists for
this preset. unsigned char meter_stop:1;// meter stop button for
preset pressed unsigned char
preset_overrun:1;//presetdeliveredvolumeisovertarget volume by
overrun_alarm_vol. unsigned char
excess_flow:1;//presetflowratehasexceeded 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;//presetconfigurationhasinvaliddata, check
message log for details } flags; } preset_alarms; Chapter 6 Meter
Commands30 qqqqqqqqq= preset quantity in whole units ddddddddd =
delivered gross quantity in whole
unitsddddddddd=deliverednetquantityinwhole 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 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)) Chapter 6
Meter Commands31 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))
Chapter 6 Meter Commands32 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 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 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)) Read Only Register=6292+p*8+c, Len=2, 32-Bit
Integer (sddddd (component current relative density)) Chapter 6
Meter Commands33 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)) Chapter 6 Meter Commands34 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;//batchdatahasbeenarchivedintotransaction 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;
Chapter 6 Meter Commands35 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; Chapter 6 Meter Commands36 xxxx= preset status #2
in hexadecimal as: union { unsigned int value; struct { unsigned
char permissive_out:1;// preset permissive output status unsigned
char load_interrupted:1; // has loading been interrupted unsigned
char clearing_batch:1; // batch in process of clearing unsigned
char alt_high_flow:1; // alt_high_flow input active 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 batch_alarm:1; // one or more preset level
alarms occurred during the batch 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: } preset_status_2; Modbus:
Supported through Modbus Extended Services Registers. Chapter 6
Meter Commands37 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; Chapter
6 Meter Commands38 xxxx= meter status #1 in hexadecimal as: union {
unsigned int value; struct { unsigned char unused1_0:1; // future
use unsigned char unused1_1:1; // future use unsigned char
unused1_2:1; // future use 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: }
meter_status_1; Chapter 6 Meter Commands39 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. Chapter 6 Meter Commands40 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; Chapter 6 Meter Commands41 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; Chapter 6 Meter Commands42 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. Chapter 6 Meter Commands43 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; Chapter 6 Meter Commands44 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; Chapter 6 Meter Commands45 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. Chapter 6
Meter Commands46 6.11REQUEST SMP STATUS & PRESET ALARMS:
MSSpppxxxxyyyyzzzz => SSppp (Requested parameters as listed
above). The MSS command for the MultiLoad IISMP, is identical to
theMRS 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.12TRIP 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;//oneormoreFCMsthatarerequiredfor
PRESETstatusorsignalsareincom error. unsigned char
preset_permissive:1;// preset permissive not active but preset is
authorized to load. unsigned char
swing_arm_permissive:1;//swingarmnotinbayandpresetis authorized to
load. unsigned char
line_not_flushed:1;//lessthanmin_line_flush_volhasflowed since a
non-flush component has flowed and batch was ended. unsigned char
preset_block_valve:1;//blockvaluestatusdoesnotagreewith commanded
valve position. unsigned char bay_alarm:1;// a bay level alarm
currently exists. unsigned char component_alarm:1;// a component
level alarm currently exists for this preset. unsigned char
additive_alarm:1;// a additive level alarm currently exists for
this preset. unsigned char meter_stop:1;// meter stop button for
preset pressed unsigned char
preset_overrun:1;//presetdeliveredvolumeisovertarget volume by
overrun_alarm_vol. unsigned char
excess_flow:1;//presetflowratehasexceeded 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;//presetconfigurationhasinvaliddata, check
message log for details } flags; } preset_alarms; Chapter 6 Meter
Commands47 Modbus: Write Only Register=7082+ppp, Len=1, 16-Bit
Integer (yyyy) 6.13REQUEST BAY ALARMS: MRBA => RBAxxxx Where:
xxxx = bay alarms in hexadecimal as: union { struct { unsigned char
bay_fcm_com:1;//oneormoreFCMsthatarerequiredforBAY status or
signals are in com error. unsigned char
bay_permissive0:1;//userdefinablepresetpermissive0notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive1:1;//userdefinablepresetpermissive1notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive2:1;//userdefinablepresetpermissive2notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive3:1;//userdefinablepresetpermissive3notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive4:1;//userdefinablepresetpermissive4notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive5:1;//userdefinablepresetpermissive5notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive6:1;//userdefinablepresetpermissive6notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char
bay_permissive7:1;//userdefinablepresetpermissive7notactive
butbayisauthorizedtoload.Errormessage can be renamed to indicate
permissive. unsigned char all_stop:1;// all stop button pressed
unsigned char bay_pcm_com:1;//oneormoreFCMsthatarerequiredforBAY
status 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 unused14:1;
unsigned char fcm_trace:1; } flags; unsigned int value; }
bay_alarms; Modbus: Chapter 6 Meter Commands48 Read Only
Register=7094, Len=1, 16-Bit Integer (xxxx) 6.14REQUEST 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;//oneormoreFCMsthatare
requiredforCOMPONENTstatus or signals are in comm error. unsigned
char component_permissive:1;// component permissive not active
butcomponentisauthorizedto load. unsigned char
component_block_valve:1;//blockvaluestatusdoesnot
agreewithcommandedvalve position. unsigned char
component_unauth_flow:1;//greaterthan unauth_flow_alarm_volhasbeen
metered when component was not authorized for flow. unsigned char
component_pump_status:1;// pump status does not agree with
commanded pump state. unsigned char
meter_alarm:1;//ameterlevelalarmcurrently exists for this
component. unsigned char
component_over_blend_tol:1;//blendprecenthasbeenoverby
blend_chk_alarm_pctfor blend_chk_alarm_time seconds. unsigned char
component_under_blend_tol:1;// blend precent has been under by
blend_chk_alarm_pctfor blend_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; } flags; } component_alarm;
Modbus: Where: p = preset (0-11), c = component (0-7) Chapter 6
Meter Commands49 Read Only Register=7095+8*p+c, Len=1, 16-Bit
Integer (xxxx) Note: Last Component Alarm Register Used=7190
6.15REQUEST 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;//oneormoreFCMsthatarerequiredfor
METERstatusorsignalsareincomm error. unsigned char
meter_permissive:1;// meter permissive notactive but meter is
authorized to load. unsigned char
fcm_invalid_config:1;//FCMreportinganerrorwithloaded
configuration.(Meterfactorslikelysource of this type of error.)
unsigned char fcm_wdt_reset:1;//FCMstoppedflowduetolackof
communication from RCU. unsigned char
fcm_com_timeout:1;//FCMcomtimedoutduetoalackof communication from
RCU. unsigned char
valve_fault:1;//greaterthanvalue_fault_alarm_volhas been metered
since flow was stopped. unsigned char low_flow:1;// flow rate was
below low_flow_alarm_rate forlow_flow_alarm_timesecondswhile
attempting to flow. unsigned char excess_flow:1;//flowratewasabove
excess_flow_alarm_rate. unsigned char quad_encoding:1;//
max_quad_errors were received. unsigned char
density_error:1;//densitysignalnotvalidordensity<
alarm_low_densityordensity> alarm_high_density. unsigned char
temp_error:1;//tempsignalnotvalidortemp<
alarm_low_temportemp> alarm_high_temp. unsigned char
valve_control:1;//notabletoslowforstopflowratefor
valve_control_alarm_time. unsigned char meter_creep:1;// greater
than meter_creep_alarm_vol has been metered since flow was stopped.
unsigned char
pressure_error:1;//pressuresignalnotvalidorpressure<
alarm_low_pressureorpressure> alarm_high_pressure.
unsignedcharquad_encoding_a:1;//max_quad_errorswerereceivedonchannel
A. Chapter 6 Meter Commands50
unsignedcharquad_encoding_b:1;//max_quad_errorswerereceivedonchannel
B. } 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.16REQUEST
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;//oneormoreFCMsthatarerequiredfor
ADDITIVEstatusorsignalsareincomm error. unsigned char
additive_permissive:1;//additivepermissivenotactivebut additive is
authorized to load. unsigned char
additive_under_add:1;//recipeadditiveneededisunderactual
additivedeliveredby under_adtv_alarm_injects. unsigned char
additive_over_add:1;//recipeadditiveneededisoveractual
additivedeliveredby over_adtv_alarm_injects. unsigned char
additive_valve_fault:1;//greaterthanvalue_fault_alarm_volhas been
metered since flow was stopped. unsigned char
additive_pump_status:1;//pumpstatusdoesnotagreewith commanded pump
state. unsigned char
additive_injection:1;//pistonswitchorpulserdidnotindicate an
injection took place. unsigned char
additive_unauth_flow:1;//greaterthanunauth_flow_alarm_volhas
beenmeteredwhenadditivewasnot authorized for flow. unsigned char
additive_line_not_flushed:1; // min_line_flush_volume of product
has not flushed since last inject was completed and batch was
ended. unsigned charadditive_meter_creep:1; // greater than
meter_creep_alarm_volhas been metered since flow was stopped.
unsignedcharadditive_block_valve:1;//blockvalvestatusdoesnotagreewith
commanded valve position. unsigned char unused11:1; Chapter 6 Meter
Commands51 unsigned char unused12:1; unsigned char unused13:1;
unsigned char unused14:1; unsigned char unused15: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.17START PRESET FLOW:
MMSppp Where: ppp = The specified zero-based preset or load arm
number (000-011).
Startsflowfortheparticularpreset.AmessageisplacedintotheMessageLogwhenthiscommandis
executed. Modbus: Write Only Register=7443+ppp, Len=1, 16-Bit
Integer (any value) 6.18STOP 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
preset is 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. Chapter 7 Register
Operations52 CHAPTER 7REGISTER 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 meter factors.All of these registers
are accessed using the same two commands.
ToreadthevalueofaregisterthecommandisRfollowedbytheregisterandsubregisternumbers.The
response will be the register and sub register numbers, followed by
the register value.The value may be up to 9 decimal digits.To
update the value of a register the command is U followed by the
register and sub register numbers and the value to be stored. While
almost all registers can be read or updated, a few have only read
access.Many others have protection that prevents updates while a
transaction is in process, host system is up, or when Weights &
Measures security is in effect. Chapter 7 Register Operations53
7.1GENERIC REGISTERS 7.1.1REGISTER DATA TYPES
Allregistersarereadandupdatedaspositiveintegersevenwhenvaluesexpressedarenonpositiveor
fractional.In some cases a several values are concatenated bit-wise
to form the register value. unsigned int Unsigned integer value.
Numeric ValueRegister Value 1234512345 unsigned div10 Unsigned
numeric value with 1 decimal place. Numeric ValueRegister Value
1234.512345 unsigned div100 Unsigned numeric value with 2 decimal
places. Numeric ValueRegister Value 123.4512345 unsigned div1000
Unsigned numeric value with 3 decimal places. Numeric ValueRegister
Value 12.34512345 unsigned div10000 Unsigned numeric value with 4
decimal places. Numeric ValueRegister Value 1.234512345 percent
Unsigned percent value with 2 decimal places. Numeric ValueRegister
Value 123.45%12345 percent div 10000 Unsigned percent value with 4
decimal places. Numeric ValueRegister Value 1.2345%12345 signed int
Signed integer value. Numeric ValueRegister Value +1234512345 +00
+11 +3276732767 -3276832768 -165535 signed div10 Signed numeric
value with 1 decimal place. Numeric ValueRegister Value Chapter 7
Register Operations54 +1234.512345 +0.00 +0.11 +3276.732767
-3276.832768 -0.165535 signed div100 Signed numeric value with 2
decimal places. Numeric ValueRegister Value +123.4512345 +0.000
+0.011 +327.6732767 -327.6832768 -0.0165535 signed div1000 Signed
numeric value with 3 decimal places. Numeric ValueRegister Value
+12.34512345 +0.0000 +0.0011 +32.76732767 -32.76832768 -0.00165535
signed div10000 Signed numeric value with 4 decimal places. Numeric
ValueRegister Value +1.234512345 +0.00000 +0.00011 +3.276732767
-3.276832768 -0.000165535 disable enable Enumerated disable and
enable values. enum{ //Enumerated ValueRegister Value DISABLED= 0,
ENABLED= 1 }; measure Enumerated measure values. enum{ //Enumerated
ValueRegister Value GALLONS= 0, LITRES= 1, CUBIC_METERS= 2, TONNES=
3, Chapter 7 Register Operations55 KILOGRAMS= 4, GRAMS= 5, POUNDS=
6, BARRELS= 7, NO_MEASURE= 8, LITERS= 9, DECALITERS= 10, }; api
table name Enumerated api table name values. enum{ //Enumerated
ValueRegister Value NONE= 0, TABLE_6A= '1', TABLE_6B= '2',
TABLE_6C= 'F', TABLE_6D= 'U', TABLE_7= 'M', TABLE_8= 'H',
TABLE_23E= 'a', TABLE_24A= '3', TABLE_24B= '4', TABLE_24E= 'S',
TABLE_26= 'B', TABLE_34= '7', TABLE_53A= 'Q' TABLE_53B= 'R'
TABLE_53D= 'Y' TABLE_54= 'A', TABLE_54A= '5', TABLE_54B= '6',
TABLE_54BE= 'P', TABLE_54C= '8', TABLE_54D= 'X', TABLE_59E= 'b',
TABLE_60A= 'C', TABLE_60B= 'D', TABLE_60D= 'E', TABLE_60o= 'c',
TABLE_901A= 'd', TABLE_TEC= '9', TABLE_TEC_ETH= 'G', TABLE_I= 'I',
TABLE_J= 'J', TABLE_K= 'K', TABLE_L= 'L', TABLE_O= 'O', Chapter 7
Register Operations56 TABLE_1122= 'T', TABLE_1122M= 'W', };
Note:Registervalueisstillanintegervaluenotanasciichar.Forexample,tospecifyTABLE_54,theascii
value of A or 65 would be the register value, not the characterA.
fcm address FCM addressing parameters. This type is a bit-wise
concatenation of four different FCM addressing parameters that is
expressed as a single register 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.
Forexample,tospecifyport_number4,fcm_number1,normalsignal,enabled,(0000,0,1,0,00001,100)the
numericvalueofthebit-wiseconcatenationofthesefourdifferentFCMaddressingparameterswouldbe
0x020C = 524.
Forexample,tospecifyport_number11,fcm_number3,normalsignal,enabled,(0000,1,1,0,00011,011)the
numericvalueofthebit-wiseconcatenationofthesefourdifferentFCMaddressingparameterswouldbe
0x061B = 1563. language Enumerated language values. enum{
//Enumerated ValueRegister Value LANGUAGE_ENGLISH = 0,
LANGUAGE_SPANISH = 1, LANGUAGE_PORTUGUESE= 2, LANGUAGE_FRENCH= 3,
LANGUAGE_MANDARIN= 4, }; alarm count reset mode Enumerated alarm
count reset mode values. enum{ //Enumerated ValueRegister Value
AUTH_TRANS= 0, CLEAR_PROMOTED= 1, TIME_2_MIN= 2, TIME_5_MIN= 3,
TIME_15_MIN= 4, TIME_30_MIN= 5, TIME_60_MIN= 6, TIME_3_HOURS= 7,
Chapter 7 Register Operations57 TIME_6_HOURS= 8, TIME_12_HOURS= 9,
TIME_24_HOURS= 10, }; Chapter 7 Register Operations58 meter type
Enumerated meter type values. enum{ //Enumerated ValueRegister
Value METER_TYPE_VOLUME_PULSE_INPUT= 0,
METER_TYPE_MASS_PULSE_INPUT= 1, METER_TYPE_VOLUME_ANALOG_INPUT= 2
}; totalizer Totalizer selection parameter. This type is a bit-wise
concatenation of four totalizer selection parameters that is
expressed as a single register value. struct
totalizer_selection_type { unsigned int preset_selected:1; unsigned
int meter_selected:1; unsigned int component_selected:1; unsigned
int additive_selected:1; unsigned int unused0:4; unsigned int
unused1:8; unsigned int unused2:8; unsigned int unused3:8; }; Note:
Register value is still an integer value not a binary structure.
Forexample,tospecifypreset_selectedandcomponent_selected,(0101)thenumericvalueofthebit-wise
concatenation of these four different totalizer selection
parameters would be 0x0005 = 3. Chapter 7 Register Operations59
7.1.2000 RCU LEVEL CONFIGURATION REGISTERS
PrefixRegisterDescriptionDate Type Min Value Max Value Default
Value Protection Modbus Register Len=2 R / U004Reload ROM Lang
Filedisable/enableEnabledGeneral1008 R / U008Driver
LanguagelanguageEnglishGeneral1016 R / U009Program Mode
LanguagelanguageEnglishGeneral1018 R / U010Card
Readerdisable/enableEnabledGeneral1020 R / U011Prox Card Pull
Secsunsigned int2303General1022 R / U012Remote
Processingdisable/enableEnabledGeneral1024 R / U013Message Swap
Delayunsigned int1603General1026 R / U014Message Hold Delayunsigned
int16010General1028 R / U015 Max GPS Site Distance (MultiLoad
Mobile Only)unsigned int010000200General 1030 R / U016Auto
Authorizedisable/enableDisabledGeneral 1032 R / U017MM/DD/YY
Datedisable/enableEnabledW & M1034 R / U018Default to Alt
Langdisable/enableDisabledGeneral1036 R / U019Load Date From
Enddisable/enableEnabledGeneral1038 R / U020Measure
UsedmeasuresGallonsW & M1040 R / U021Print Blend
Detailsunsigned int 02 1General1042 R / U022Compartment
Entrydisable/enableDisabledGeneral1044 R / U023Config Timeout
Minsunsigned int09920General1046 R / U024Print
TotalizerstotalizersNoneGeneral1048 R / U025unused1050 R /
U026Large Promptsdisable/enableDisabledGeneral1052 R / U027Confirm
Flow Startsdisable/enableDisabledGeneral1054 R / U028Display Adtv
as CCsdisable/enableDisabledGeneral1056 R / U029Display
Hundredthsdisable/enableDisabledGeneral1058 R / U030Use
Hundredthsdisable/enableDisabledW & M1060 R / U031unused1062 R
/ U032Print Ticketdisable/enableDisabledGeneral1064 R / U033Form
Feed After Tcktdisable/enableEnabledGeneral1066 R / U034Print
Ticket on PCMdisable/enableDisabledGeneral1068 R / U035Ticket
PCMunsigned int0320General1070 R / U036Meter Arch Timeoutunsigned
int012030General1072 R / U037InactivityTimeoutunsigned
int06035General1074 R / U038Print Msg Log on
PCMdisable/enableDisabledGeneral1076 R / U039Message Log
PCM#unsigned int0320General1078 R / U040No Prox Pull If
Flowdisable/enableDisabledGeneral1080 R / U041Host Down
Timeoutunsigned int3099930General1082 Chapter 7 Register
Operations60 PrefixRegisterDescriptionDate Type Min Value Max Value
Default Value Protection Modbus Register Len=2 R / U042Host Wait
Timeoutunsigned int60999999General1084 R / U043Prt Alibi Log on
PCMdisable/enableDisabledGeneral1086 R / U044Alibi Log PCM#
unsigned int03 0General1088 R / U045Swing Arm
Secondarydisable/enableDisabledGeneral1090 R / U046Screen Saver
Timeoutunsigned int0 65535600General1092 R / U047Screen Saver
Brightpercent0100005000General1094 R / U048Min Time Change
Secsunsigned int 06553560W & M1096 R / U049Display Load
Volumedisable/enableDisabledGeneral1098 R / U050FCM
Tracedisable/enableDisabledGeneral1100 R / U051Measure On Load
Scrndisable/enableDisabledW & M1102 R / U052Status Scrn
Lockoutdisable/enableEnabledGeneral1104 R / U053Load Screen
Timeoutunsigned int06553560General1106 R / U054Preset Slct
Timeoutunsigned int0655350General1108 R / U055Pixel
Testdisable/enableDisabledGeneral1110 R / U056Meter Proving
Modedisable/enableDisabledGeneral1112 R / U057Trace Preset
Numberunsigned int1121General1114 R / U058unused 1116 R / U059Trace
Recipedisable/enableDisabledGeneral1118 R / U060Trace Adtv
Numberunsigned int1161General1120 R / U061Trace FCM Numberunsigned
int03332General1122 R / U062Trace FCM
Assignmentdisable/enableDisabledGeneral1124 R / U063Trace Meter
Flowsdisable/enableDisabledGeneral1126 R / U064Trace Adtv
Volumedisable/enableDisabledGeneral1128 R / U065unused 1130 R /
U066unused 1132 R / U067unused 1134 R / U068W&M Key FCM#fcm
addressDisabledW & M1136 R / U069Program Key FCM#fcm
addressDisabledW & M1138 R / U090RCU Addressunsigned
int09991General1180 Chapter 7 Register Operations61 7.1.3100 BAY
LEVEL CONFIGURATION REGISTERS AccessRegisterDescriptionDate Type
Min Value Max Value Default ValueProtection Modbus Register Len=2 R
/ U100000Number Bay Presetsunsigned int1121General1200 R /
U100001Number of FCMsunsigned int0321General1202 R / U100002Number
of PCMsunsigned int0321General1204 R / U100003Temps in
Fdisable/enableDisabledW & M1206 R / U100004Canada API
Limitsdisable/enableDisabledW & M1208 R / U100005unused1210 R /
U100006Bay Numberunsigned int099990General 1212 R / U100007Number
External Presetsunsigned int0120General1214 R / U100008unused 1216
R / U100009unused 1218 R / U100080unused1360 R / U100081Output
Pulse FCM#Fcm addressDisabledGeneral1362 R / U100082Output Pulse
Factorunsigned div 10000.00150.00010.000W & M1364 R /
U100083unused 1366 R / U100084unused 1368 R / U100085unused 1370 R
/ U100086unused 1372 R / U100087unused 1374 R / U100088unused 1376
R / U100089Alarm Out FCM#Fcm addressDisabledGeneral1378 R /
U100090Authorized FCM#Fcm addressDisabledGeneral1380 R /
U100091Permiss 0 FCM#Fcm addressDisabledGeneral1382 R /
U100092Permiss 1 FCM#Fcm addressDisabledGeneral1384 R /
U100093Permiss 2 FCM#Fcm addressDisabledGeneral1386 R /
U100094Permiss 3 FCM#Fcm addressDisabledGeneral1388 R /
U100095Permiss 4 FCM#Fcm addressDisabledGeneral1390 R /
U100096Permiss 5 FCM#Fcm addressDisabledGeneral1392 R /
U100097Permiss 6 FCM#Fcm addressDisabledGeneral1394 R /
U100098Permiss 7 FCM#Fcm addressDisabledGeneral1396 R /
U100099Permiss Out FCM#Fcm addressDisabledGeneral1398 Chapter 7
Register Operations62 7.1.4101 PRESET LEVEL CONFIGURATION REGISTERS
Note:ppp = The specified zero-based preset or load arm number
(000-011). Modbus: The Modbus Preset Index Register sets the ppp
index, Read/Write Register=996, Len=1, 16-Bit Integer
PrefixRegisterDescriptionDate Type Min Value Max Value Default
ValueProtection Modbus Register Len=2 R / U101000pppNumber of
Metersunsigned int161General1400 R / U101001pppNumber of
Componentsunsigned int181General1402 R / U101002pppNumber of
Additivesunsigned int0160General1404 R / U101003pppSequential
Blendingdisable/enableDisabledGeneral1406 R / U101004pppRatio
Blendingdisable/enableDisabledGeneral1408 R / U101005pppW&M
Controlleddisable/enableDisabledW & M1410 R / U101006pppProving
Flow Rateunsigned int09999600General1412 R / U101007pppExcess Flw
Alrm Rateunsigned int099991100General1414 R / U101008pppOverrun
Alarm Volunsigned int0655355General1416 R / U101009pppLow Flow
Start Volunsigned int06553550General 1418 R / U101010pppLow Flow
Restart Volunsigned int06553515 General1420 R / U101011pppLow Flow
Rateunsigned int09999150 General1422 R / U101012pppHigh Flow
Rateunsigned int09999600 General1424 R / U101013pppProving Low Flow
Volunsigned int06553550General1426 R / U101014pppLine Flush
Volunsigned int0655350General1428 R / U101015pppLine Flush Min
Volunsigned int0655350General1430 R / U101016pppLine Flush
Comp#unsigned int080General1432 R / U101017pppTake L.F. from
Matchdisable/enableEnabledGeneral1434 R / U101018pppTake L.F. from
Firstdisable/enableDisabledGeneral1436 R / U101019pppTake L.F. from
Lastdisable/enableDisabledGeneral1438 R / U101020pppunused 1440 R /
U101021pppAlt. High Flow Rateunsigned int09999600 General1442 R /
U101022pppStop Start Delayunsigned int0655350General1444 R /
U101023pppBlnd Chk Start Volunsigned int06553560Conditional1446 R /
U101024pppBlnd Chk Restart Volunsigned int06553510Conditional1448 R
/ U101025pppBlnd Chk Alarm %percent0.10%100.00%5.00%Conditional1450
R / U101026pppBlnd Chk Alarm Volunsigned int06553525Conditional1452
R / U101027pppBlnd Chk Alarm Timeunsigned
int06553510Conditional1454 R / U101028pppunused1456 R /
U101029pppBlnd On Lead Compdisable/enableDisabledGeneral1458 R /
U101030pppBlnd Adj Start Volunsigned int06553560General1460 R /
U101031pppBlnd Adj Restart Volunsigned int06553510General1462 R /
U101032pppBlnd Adj Dev %percent0.00%100.00%1.00%General1464 Chapter
7 Register Operations63 PrefixRegisterDescriptionDate Type Min
Value Max Value Default ValueProtection Modbus Register Len=2 R /
U101033pppBlnd Adj Dev Volunsigned int0655355General1466 R /
U101034pppBlnd Adj Timeunsigned int0655355General1468 R /
U101035pppunused1470 R / U101036pppMin Preset Volumeunsigned long
int0999999100General1472 R / U101037pppDefault Preset
Volumeunsigned long int09999990General1474 R / U101038pppMax Preset
Volumeunsigned long int099999910000General1476 R / U101039pppAuto
Batch Authorize disable/enableDisabled General1478 R /
U101040pppDeliver In Netdisable/enableDisabledW & M1480 R /
U101041pppBlkValve Open Delayunsigned int0655350General1482 R /
U101042pppB.V. Open Alrm Timeunsigned int26553510General1484 R /
U101043pppB.V. Close Alrm Timeunsigned int26553510General1486 R /
U101044pppunused 1488 R / U101045pppunused 1490 R /
U101046pppOutput Pulse FCM#Fcm addressDisabledGeneral1492 R /
U101047pppOutput Pulse Factorunsigned div 10000.00150.00010.000W
& M1494 R / U101048pppOutput Pulse Netdisable/enableDisabledW
& M1496 R / U101049pppAlt High Flow Start Delayunsigned int
09990 General 1498 R / U101050pppAlt High Flow Stop Delayunsigned
int 09990 General 1500 R / U101051pppPermissive Alarm Timeunsigned
int 09990 General 1502 R / U101080pppunused 1560 R /
U101081pppunused 1562 R / U101082pppunused 1564 R /
U101083pppunused 1566 R / U101084pppunused 1568 R /
U101085pppunused 1570 R / U101086pppRemote Clear FCM#fcm address
DisabledGeneral1572 R / U101087pppAlt. H.F. Rate FCM#fcm
addressDisabledGeneral1574 R / U101088pppClose Blk Val FCM#fcm
addressDisabledGeneral1576 R / U101089pppBlk Val Status FCM#fcm
addressDisabledGeneral1578 R / U101090pppOpen Blk Val FCM#fcm
addressDisabledGeneral1580 R / U101091pppFlow Active FCM#fcm
addressDisabledGeneral1582 R / U101092pppBatch Authorizd FCM#fcm
addressDisabledGeneral1584 R / U101093pppRemote Start FCM#fcm
addressDisabledGeneral1586 R / U101094pppSwing Arm FCM#fcm
addressDisabledGeneral1588 R / U101095pppMeter Stop FCM#fcm
addressDisabledGeneral1590 R / U101096pppAlarm Out FCM#fcm
addressDisabledGeneral1592 R / U101097pppAuthorized FCM#fcm
addressDisabledGeneral1594 Chapter 7 Register Operations64
PrefixRegisterDescriptionDate Type Min Value Max Value Default
ValueProtection Modbus Register Len=2 R / U101098pppPermiss FCM#fcm
addressDisabledGeneral1596 R / U101099pppPermiss Out FCM#fcm
addressDisabledGeneral1598 Chapter 7 Register Operations65 7.1.5102
METER LEVEL CONFIGURATION REGISTERS Note:ppp = The specified
zero-based preset or load arm number (000-011). mmm = The specified
zero-based meter number (000-005). Modbus: The Modbus Preset Index
Register sets the ppp index, Read/Write Register=996, Len=1, 16-Bit
Integer The Modbus Meter Index Register sets the mmm index,
Read/Write Register=998, Len=1, 16-Bit Integer
PrefixRegisterDescriptionDate Type Min Value Max Value Default
ValueProtection Modbus Register