Toptech MultiLoad II User Manual

M
M
u
ullttii
L
L
o
o
d
d IIII
C
C
o
o
m
m
m
m
u
u
n
nii
attii
o
o
n
n
s
G
G
u
uii
d
d
e
IInncclluuddiinngg::
M
MuullttiiLLooaadd IIII
M
MuullttiiLLooaadd IIII SS
M
MPP
M
MuullttiiLLooaadd IIII SSCCSS
M
MuullttiiLLooaadd IIII
M
Moobbiillee
Part # 6077
Firmware Version 3/4.31.38
February 2018
2
Copyright Notice
Copyright © 2000 – 2018 Toptech Systems, Inc. The information contained in this document is proprietary and confidential. No part of this document may be copied, 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.
Logos are registered trademarks of Toptech Systems, Inc.
Copyright © 2000-2018 Toptech Systems, Inc. All Rights Reserved.
3
Table of Contents
CHAPTER 1 PROTOCOL SPECIFICATION ..................................................................................................... 7
1.1 DEFINITIONS ............................................................................................................................................ 7
1.2 SMITH PROTOCOL .................................................................................................................................... 8
1.3 BROOKS PROTOCOL ................................................................................................................................. 8
1.4 DANIELS PROTOCOL ................................................................................................................................. 8
1.5 MODBUS-RTU PROTOCOL ........................................................................................................................ 9
1.5.1 Read Holding Registers (fn=3) .......................................................................................................... 9
1.5.2 Write Single Registers (fn=6)............................................................................................................. 9
1.5.3 Loopback/Maintenance (fn=8) ......................................................................................................... 10
1.5.4 Preset Multiple Registers (fn=16) .................................................................................................... 10
1.5.5 Error Responses (fn= +128) ............................................................................................................ 10
1.5.6 Modbus Register Map Summary ..................................................................................................... 11
1.5.7 Extended Services Register ............................................................................................................ 11
1.6 MODBUS-TCP/IP PROTOCOL ................................................................................................................. 12
1.6.1 Read Holding Registers (fn=3) ........................................................................................................ 13
1.6.2 Write Single Registers (fn=6)........................................................................................................... 13
1.6.3 Loopback/Maintenance (fn=8) ......................................................................................................... 13
1.6.4 Preset Multiple Registers (fn=16) .................................................................................................... 13
1.6.5 Error Responses (fn= +128) ............................................................................................................ 14
1.6.6 Modbus Register Map Summary ..................................................................................................... 15
1.6.7 Extended Services Register ............................................................................................................ 15
CHAPTER 2 MULTILOAD COMMAND RESPONSES ................................................................................... 16
CHAPTER 3 QUERY COMMAND: .................................................................................................................. 18
CHAPTER 4 FUNCTION COMMANDS: .......................................................................................................... 19
CHAPTER 5 TERMINAL COMMANDS: .......................................................................................................... 21
5.1 TERMINAL ESCAPE COMMANDS:.............................................................................................................. 21
CHAPTER 6 METER COMMANDS: ................................................................................................................ 26
6.1 AUTHORIZE PRESET (PRODUCT AND PRESET VOLUME): ........................................................................... 26
6.2 CLEAR ALARMS: ..................................................................................................................................... 26
6.3 ENABLE PRESET .................................................................................................................................... 26
6.4 END TRANSACTION ................................................................................................................................. 26
6.5 BATCH COMPLETE .................................................................................................................................. 27
6.6 BATCH END:........................................................................................................................................... 27
6.7 END BATCH:........................................................................................................................................... 27
6.8 PRESET MESSAGE: ................................................................................................................................ 28
6.9 PROVING TRANSACTION MODE: .............................................................................................................. 28
6.10 REQUEST STATUS & PRESET ALARMS: .................................................................................................... 29
6.11 REQUEST TANK STATUS & TANK ALARMS: ............................................................................................... 52
6.12 REQUEST SAMPLER STATUS & SAMPLER ALARMS: .................................................................................. 60
6.13 REQUEST SMP STATUS & PRESET ALARMS: ........................................................................................... 69
6.14 TRIP PRESET ALARMS: ........................................................................................................................... 69
4
6.15 REQUEST BAY ALARMS: ......................................................................................................................... 70
6.16 REQUEST COMPONENT ALARMS: ............................................................................................................ 71
6.17 REQUEST METER ALARMS: ..................................................................................................................... 72
6.18 REQUEST ADDITIVE ALARMS: .................................................................................................................. 73
6.19 REQUEST SAMPLER ALARMS: ................................................................................................................. 74
6.20 REQUEST TANK ALARMS:........................................................................................................................ 75
6.21 REMOTE TRANSACTION DATA: ................................................................................................................ 76
6.22 START PRESET FLOW: ............................................................................................................................ 77
6.23 STOP PRESET FLOW: ............................................................................................................................. 77
CHAPTER 7 REGISTER OPERATIONS: ........................................................................................................ 78
7.1 GENERIC REGISTERS ............................................................................................................................. 79
7.1.1 Register Data Types ........................................................................................................................ 79
7.1.2 000 – RCU Level Configuration Registers ...................................................................................... 91
7.1.3 100 – Bay Level Configuration Registers ........................................................................................ 94
7.1.4 101 – Preset Level Configuration Registers .................................................................................... 95
7.1.5 102 – Meter Level Configuration Registers ..................................................................................... 99
7.1.6 103 – Component Level Configuration Registers .......................................................................... 103
7.1.7 104 – Additive Level Configuration Registers ............................................................................... 106
7.1.8 108 –Trace Level Configuration Registers .................................................................................... 108
7.1.9 110 –Network Level Configuration Registers ................................................................................ 108
7.1.10 111 –Tank Level Configuration Registers ................................................................................. 109
7.1.11 115 –Sampler Level Configuration Registers ........................................................................... 110
7.1.12 116 –Security Level Configuration Registers ............................................................................ 110
7.1.13 117 –Report Level Configuration Registers .............................................................................. 112
7.1.14 105 – Custom Logic Definitions Registers ................................................................................ 113
7.1.15 107 – Custom Logic Value Registers ........................................................................................ 128
7.1.16 200 – Stand Alone BOL Definition Registers ............................................................................ 128
7.1.17 800 – Transaction Archive Registers ........................................................................................ 132
7.2 SPECIAL PURPOSE REGISTERS ............................................................................................................. 134
7.2.1 000 – MultiLoad Firmware Version ................................................................................................ 134
7.2.2 001 – Date and Time ..................................................................................................................... 134
7.2.3 003 – FCM Poll Rate ..................................................................................................................... 135
7.2.4 005 – Current BOL/Ticket Number ................................................................................................ 135
7.2.5 070 – Ethernet Enable ................................................................................................................... 135
7.2.6 071 – IP Address ........................................................................................................................... 135
7.2.7 072 – IP Mask ................................................................................................................................ 135
7.2.8 073 – IP Gateway .......................................................................................................................... 135
7.2.9 074 – IP Host ................................................................................................................................. 136
7.2.10 076 – ADMIN PASSWORD ....................................................................................................... 136
7.2.11 077 – USER PASSWORD ........................................................................................................ 136
7.2.12 085 – Modem Initialization String .............................................................................................. 136
7.2.13 091..093 – Communication Port Parameters ............................................................................ 136
7.2.14 094 – 095 Network Printer Number Of Copies ......................................................................... 137
7.2.15 112 - Real-Time Preset Total Gross Totalizers ......................................................................... 137
7.2.16 113 - Real-Time Preset Total Net Totalizers ............................................................................. 138
5
7.2.17 114 - Real-Time Preset Total Mass Totalizers .......................................................................... 138
7.2.18 120 - Real-Time Sampler Total Gross Totalizers ...................................................................... 138
7.2.19 129 – FCM Low Level Meter Status .......................................................................................... 139
7.2.20 133 – FCM IO Access ............................................................................................................... 139
7.2.21 134 – Discrete Parameter Security settings .............................................................................. 140
7.2.22 135 – Group Parameter Security settings ................................................................................. 140
7.2.23 136 – Access Parameter Security settings ............................................................................... 141
7.2.24 140 –Current Latitude/Longitude position Registers (MultiLoad Mobile Only) ......................... 142
7.2.25 141 – Current Transaction Latitude/Longitude/Site Index Registers (MultiLoad Mobile Only) . 142
7.2.26 400 - Preset Definition Registers .............................................................................................. 142
7.2.27 401 – External Preset Display Register .................................................................................... 143
7.2.28 402 – Tank Definition Register .................................................................................................. 143
7.2.29 500 - Product Definition Registers ............................................................................................ 144
7.2.30 600 - Standalone Driver Card Database ................................................................................... 144
7.2.31 605 Modbus Device Database .................................................................................................. 145
7.2.32 650 –GPS Site Database (MultiLoad Mobile Only) ................................................................... 145
7.2.33 700 - Configurable Language Prompts ..................................................................................... 146
7.2.34 710 - Bay Alarm Messages ....................................................................................................... 147
7.2.35 711 - Preset Alarm Messages ................................................................................................... 149
7.2.36 712 - Meter Alarm Messages .................................................................................................... 151
7.2.37 713 - Component Alarm Messages ........................................................................................... 153
7.2.38 714 - Additive Alarm Messages ................................................................................................ 155
7.2.39 716 - SamplerAlarm Messages ................................................................................................. 157
7.2.40 715 - TankAlarm Messages ...................................................................................................... 158
7.2.41 910 – Read Event Log Message Queue ................................................................................... 160
7.2.42 912 – Read W & M Change Log Message Queue .................................................................... 160
7.2.43 913 – Read AUDIT Log Message Queue ................................................................................. 160
7.2.44 950 - Current Driver Card Number ............................................................................................ 161
7.2.45 951..955 - Current Driver Prompt Information ........................................................................... 161
7.2.46 960 – Input Data ........................................................................................................................ 161
7.2.47 961 – Input Data Terminating Key ............................................................................................ 161
7.2.48 962 - Current Driver Card Data ................................................................................................. 162
7.2.49 998 – Bitmap Graphic Cache .................................................................................................... 163
CHAPTER 8 COMMUNICATION TRACE EXAMPLE ................................................................................... 164
8.1 STARTUP OF HOST SOFTWARE ............................................................................................................. 164
8.1.1 Update Date & Time ...................................................................................................................... 164
8.1.2 Update Product Definitions ............................................................................................................ 164
8.1.3 Update Preset Definitions .............................................................................................................. 165
8.1.4 Status Query .................................................................................................................................. 165
8.2 TRANSACTION AUTHORIZATION ............................................................................................................. 166
8.2.1 Process Driver Card In .................................................................................................................. 166
8.2.2 Authorize a Transaction on MultiLoad ........................................................................................... 167
8.2.3 Reading Totalizers ......................................................................................................................... 167
8.3 BATCH AUTHORIZATION ........................................................................................................................ 168
8.3.1 Authorize a Batch on MultiLoad ..................................................................................................... 168
6
8.3.2 Monitor Load During Delivery ........................................................................................................ 170
8.4 END OF BATCH PROCESSING ................................................................................................................ 170
8.4.1 Ending a Batch on MultiLoad ......................................................................................................... 170
8.5 END OF TRANSACTION PROCESSING ..................................................................................................... 171
8.5.1 Ending a Transaction on MultiLoad ............................................................................................... 171
8.6 SHUTDOWN OF HOST SOFTWARE .......................................................................................................... 171
CHAPTER 9 DATA COMMUNICATION NOTES AND RECOMMENDATIONS ........................................... 172
9.1 PROTOCOL SELECTION: RS-232 VS. RS-485 ........................................................................................ 172
9.1.1 RS-232 ........................................................................................................................................... 172
9.1.2 RS-485 ........................................................................................................................................... 172
9.2 CABLE SELECTION................................................................................................................................ 172
9.3 LINE TERMINATION IN MULTI-DROPPED COMMUNICATIONS ..................................................................... 172
9.4 OPTICAL ISOLATION .............................................................................................................................. 173
9.5 SHIELD GROUNDING ............................................................................................................................. 173
CHAPTER 10 PARAMETER ACCESS SECURITY .................................................................................... 174
10.1 UNDERSTANDING NEW USER AND SECURITY FEATURES ......................................................................... 174
Chapter 1 – Protocol Specification
7
CHAPTER 1 PROTOCOL SPECIFICATION
The MultiLoad auto-detects four low level computer protocols for host communications.
- Smith Protocol
- Brooks Protocol
- Daniels
- Modbus-RTU Protocol
- Modbus- TCP/IP Protocol
Note: All unknown or not allowed signal or code sequences are rejected and have no impact on the software or measurement data.
Host communication can occur via multi-dropped RS-232/RS-485 serial on COM 1 or Ethernet 10/100 socket communication on port 7734. Port 7735 supports SSL encryption (TLS v1.2 only for security reasons) and can be enabled via the network setup screen.
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
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 the STX and including the ETX.
CRC
Cyclic Redundancy Check.
A1..A3
A 3-character ASCII unit address of the MultiLoad. Please refer to the MultiLoad 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.
Chapter 1 – Protocol Specification
8
1.2 SMITH PROTOCOL
The Smith protocol is compatible with devices from Smith Meter, such as the Accuload I and Accuload II mini­computer 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™ and
IMS Control™ units running in computer mode. Using this protocol, MultiLoad accepts data in the format:
SOH
DESTINATION SOURCE A1 A2 A3 S1 S2 S3
STX data ETX
BCC1BCC
2
1.4 DANIELS PROTOCOL
The Daniels protocol is compatible with devices from Daniels Flow Products. Using this protocol, MultiLoad accepts and responds with data in the format:
Quiet
Time
ADR
FN
LEN
(2 – 252)
D1...DN
CRC1
CRC2
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.
D1…Dn is string data containing the commands listed in this manual.
Note: Modbus extension to return larger packet sizes: On messages with data packet sizes from 2 to 252 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 Specification
9
1.5 MODBUS-RTU PROTOCOL
The Modbus-RTU protocol has been implemented to be as compatible as possible with the original published Modicon Modbus-RTU standard.
Note: The Modbus protocol allows parameter register access only as defined by the explicit mapping in this manual. To send the ASCII commands (R000, T`A, MAM, MRS, etc.) that are handled by the other three protocols, the Modbus Extended Services registers must be used.
Using the Modbus protocol, MultiLoad accepts data in the following format:
Quiet
Time
ADR
FN
...
CRC1
CRC2
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.
The formal specification of Modbus lists the starting Holding Register address as 40001. The Modbus Holding 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, 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.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
Register
MSB
Start
Register
LSB
Number
Of
Registers
MSB
Number
of
Registers
LSB
CRC1
CRC2
Quiet Time
Rx:
Quiet
Time
ADR
FN=3
(+128 if
error)
Byte
Count
1st
Register
MSB
1st
Register
LSB
Next
Register
MSB
Next
Register
MSB
CRC1
CRC2
Quiet
Time
1.5.2 WRITE SINGLE REGISTERS (FN=6)
Note: cannot be used for 32-bit registers.
Tx:
Quiet Time
ADR
FN=6
Start
Register
MSB
Start
Register
LSB
Register
MSB
Register
LSB
CRC1
CRC2
Quiet Time
Rx:
Quiet Time
ADR
FN=6
(+128 if
error)
Start
Register
MSB
Start
Register
LSB
Register
MSB
Register
LSB
CRC1
CRC2
Quiet Time
Chapter 1 – Protocol Specification
10
1.5.3 LOOPBACK/MAINTENANCE (FN=8)
Note: only loopback of command supported.
Tx:
Quiet Time
ADR
FN=8
Diagnostic
Code MSB
Diagnostic
Code LSB
Data MSB
Data LSB
CRC1
CRC2
Quiet Time
Rx:
Quiet Time
ADR
FN=8
Diagnostic
Code MSB
Diagnostic
Code 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:
Quiet
Time
ADR
FN=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
CRC1
CRC2
Quiet
Time
Rx:
Quiet Time
ADR
FN=16
(+128 if
error)
Start
Register
MSB
Start
Register
LSB
Number
Of
Registers
MSB
Number
of
Registers
LSB
CRC1
CRC2
Quiet Time
1.5.5 ERROR RESPONSES (FN= +128)
Rx:
Quiet Time
ADR
FN+128
Error
Subcode
CRC2
CRC1
Error Sub codes are: 1 = Invalid Function Code. Indicates that the use of an invalid or unimplemented function has been
attempted. 2 = Invalid Address Field. Indicates that a read or write was made to an invalid address. Can also
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 occurred. This error code will also be returned if an attempt is made to change a value under Weights 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 Specification
11
1.5.6 MODBUS REGISTER MAP SUMMARY
1 – 999 General, BOL Template, Misc. Configurations.
1000 – 1199 RCU Configurations
1200 – 1399 Bay Configurations
1400 – 1599 Preset Configurations
1600 – 1799 Meter Configurations
1800 – 1999 Component Configurations
2000 – 2199 Additive Configurations
2200 – 2999 Product, Alarm, Database, Misc. Configurations
3000 – 3999 Totalizers
4000 – 6000 Preset, Meter, Component and Additive Status
7000 – 7799 Status, Authorization Control and Alarms
7800 – 7999 Transaction Archive
8000 – 8999 Preset Definitions
9000-10999 Extended Services Register
Note: Tank and Sampler level is not available at the moment for Modbus. Use the custom logic mapping
tool for this.
1.5.7 EXTENDED SERVICES REGISTER
Not all commands native to the MultiLoad II have corresponding mapping to Modbus registers. The Extended Services register was implemented as a way to support sending and receiving native Multiload II commands across the Modbus RTU interface. Any native command listed can be sent to the MultiLoad via the 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. Command will execute when the final character of the Command Text is written (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 Responses
12
1.6 MODBUS-TCP/IP PROTOCOL
The Modbus-TCP/IP protocol has been implemented to be as compatible as possible with the original published Modbus-TCP/IP standard v1.0b.
Note: The Modbus protocol allows parameter register access only as defined by the explicit mapping in this manual. To send the ASCII commands (R000, T`A, MAM, MRS, etc.) that are handled by the other three protocols, the Modbus Extended Services registers must be used.
Using the Modbus tcp/ip-protocol, MultiLoad accepts data in the following format:
MBAP
FN
DATA
Modbus-TCP/IP protocol messages are framed by a MBAP-Header.
Fields
Length
Description
Client
Server
Transaction Identifier
2 Bytes
Identification of a MODBUS Request/ Response transaction.
Initialized by the client
Recopied by the server from the received request
Protocol Identifier
2 Bytes
0 = Modbus Protocol
Initialized by the client
Recopied by the server from the received request
Length
2 Bytes
Number of following bytes
Initialized by the client (request)
Initialized by the server (Response)
Unit Identifier
1 Byte
Identification of a remote slave connected on a serial line or on other buses
Initialized by the client
Recopied by the server from the received request
The header is 7 bytes long: Transaction Identifier - It is used for transaction pairing, the MODBUS server copies in the response the
transaction identifier of the request.
Protocol Identifier – It is used for intra-system multiplexing. The MODBUS protocol is identified by the value 0. Length - The length field is a byte count of the following fields, including the Unit Identifier and data fields. Unit Identifier – This field is used for intra-system routing purpose. It is typically used to communicate to a
MODBUS+ or a MODBUS serial line slave through a gateway between an Ethernet TCP-IP network and a MODBUS serial line. This field is set by the MODBUS Client in the request and must be returned with the same value in the response by the server.
All MODBUS/TCP ADU are sent via TCP to registered port 502. Remark : the different fields are encoded in Big-endian. Fn is the Modbus function. Functions implemented are as follows.
The formal specification of Modbus lists the starting Holding Register address as 40001. The Modbus Holding 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, and
16.
Chapter 2 –MultiLoad Responses
13
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.6.1 READ HOLDING REGISTERS (FN=3)
Note: Both Modbus registers MUST be read at the same time when reading 32-bit values.
Tx:
MBAP
FN=3
Start
Register
MSB
Start
Register
LSB
Number
Of
Registers
MSB
Number
of
Registers
LSB
Rx:
MBAP
FN=3
(+128 if
error)
Byte
Count
1st
Register
MSB
1st
Register
LSB
Next
Register
MSB
Next
Register
MSB
1.6.2 WRITE SINGLE REGISTERS (FN=6)
Note: cannot be used for 32-bit registers.
Tx:
MBAP
FN=6
Start
Register
MSB
Start
Register
LSB
Register
MSB
Register
LSB
Rx:
MBAP
FN=6
(+128 if
error)
Start
Register
MSB
Start
Register
LSB
Register
MSB
Register
LSB
1.6.3 LOOPBACK/MAINTENANCE (FN=8)
Note: only loopback of command supported.
Tx:
MBAP
FN=8
Diagnostic
Code MSB
Diagnostic
Code LSB
Data MSB
Data LSB
Rx:
MBAP
FN=8
Diagnostic
Code MSB
Diagnostic
Code LSB
Data MSB
Data LSB
1.6.4 PRESET MULTIPLE REGISTERS (FN=16)
Note: Both Modbus registers MUST be written at the same time when writing 32-bit values.
Tx:
MBAP
FN=16
Start
Register
MSB
Start
Register
LSB
Number
Of
Registers
MSB
Number
of
Registers
LSB
Byte
Count
Chapter 2 –MultiLoad Responses
14
1st
Register
MSB
1st
Register
LSB
Next
Register
MSB
Next
Register
MSB
Rx:
MBAP
FN=16
(+128 if
error)
Start
Register
MSB
Start
Register
LSB
Number
Of
Registers
MSB
Number
of
Registers
LSB
1.6.5 ERROR RESPONSES (FN= +128)
Rx:
MBAP
FN+128
Error
Subcode
Error Sub codes are: 1 = Invalid Function Code. Indicates that the use of an invalid or unimplemented function has been
attempted. 2 = Invalid Address Field. Indicates that a read or write was made to an invalid address. Can also
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 occurred.
This error code will also be returned if an attempt is made to change a value under Weights and Measures control without with W&M switch being in the active state.
4 = Query Processing Failure. This code is not returned.
Chapter 2 –MultiLoad Responses
15
1.6.6 MODBUS REGISTER MAP SUMMARY
1 – 999 General, BOL Template, Misc. Configurations. 1000 – 1199 RCU Configurations 1200 – 1399 Bay Configurations 1400 – 1599 Preset Configurations 1600 – 1799 Meter Configurations 1800 – 1999 Component Configurations 2000 – 2199 Additive Configurations 2200 – 2999 Product, Alarm, Database, Misc. Configurations 3000 – 3999 Totalizers 4000 – 6000 Preset, Meter, Component and Additive Status 7000 – 7799 Status, Authorization Control and Alarms 7800 – 7999 Transaction Archive 8000 – 8999 Preset Definitions 9000-10999 Extended Services Register
1.6.7 EXTENDED SERVICES REGISTER
Not all commands native to the MultiLoad II have corresponding mapping to Modbus registers. The Extended Services register was implemented as a way to support sending and receiving native Multiload II commands across the Modbus TCP/IP interface. Any native command listed can be sent to the MultiLoad via the 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:
6. Write the Command Length into the Holding Register 9000 (max value of 999 characters).
7. Write the Command Text into the Holding Register 9001 (max length of 999).
8. Command will execute when the final character of the Command Text is written (9001+Command Length-1).
9. Read the Reply Length from the Holding Register 9000 (max value of 999 characters).
10. 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 Responses
16
CHAPTER 2 MULTILOAD COMMAND RESPONSES
<command_status> <rcu_status> <card_status> <command specific response data>
For MultiLoad to acknowledge a message two conditions must be met. First the message must fit the Message Framing Protocol with a valid LRC, BCC or CRC. Second, the address specified in the first two 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',
Chapter 2 –MultiLoad Responses
17
REMOTE_AUTH_PRESET7 = 'g',
REMOTE_AUTH_PRESET8 = 'h',
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_SECOND_INSERTED =’2’
} 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 will always follow the three status characters. For example if the following valid command to read the current firmware version is sent:
Command => Response R000 => 0?0000MultiLoad II v3.31.xx Jan xx 2014
With “0?0” as the three status characters and “000MultiLoad II v3.31.xx Jan xx 2014” as the command specific response.
Chapter 3 – Query Command
18
CHAPTER 3 QUERY 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 audit_logmsg_queued:1; // a audit message is available 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 the Host is still active.
Modbus: Read Only Register=7002, Len=1, 16-Bit Integer (XXXX)
Chapter 4 – Function Commands
19
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 down
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 = Clears the host_up RCU status bit. Command should be issued when host
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)
FEODLOG = Prints EOD-Report for all totalizers type by arm and also gives the throughput
between the feodlog commands Modbus: Write Only Register=7018, Len=1, 16-Bit Integer (any value=FEODLOG)
Chapter 4 – Function Commands
20
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. FCLEARAUDITLOG = Clear Audit Log Messages stored in Multiload. Modbus: Supported through Modbus Extended Services Registers.
Chapter 5 – Terminal Commands
21
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:
<ESC><Terminal Escape Command and parameters >
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 be
retrieved 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 = 0x00 Blue = 0x01 Red = 0x02 Magenta = 0x03 Green = 0x04 Cyan = 0x05 Yellow = 0x06 White = 0x07 Custom 0 = 0x08 (Not available)
Chapter 5 – Terminal Commands
22
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: T<ESC>G$’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 <ESC>Y first to clear an entire line. Can be used as a CR since cursor will be positioned on next line.
K Erase from Cursor to End of Screen
Use with after <ESC>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
Chapter 5 – Terminal Commands
23
< Unlock the Display
> 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
brcwhp Update 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.
Ercwd Draw 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 Commands
24
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 position a small graphic starting at row 5, column 20, column width 2, code the string as
follows:
T<ESC>e%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)
grcwhc Fill 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 Commands
25
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 Commands
26
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 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.2 CLEAR ALARMS:
MCAppp by preset
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)
MCBA by bay
Modbus: Write Only Register=7019, 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.
Chapter 6 – Meter Commands
27
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)
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 (pending Host 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 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.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)
Chapter 6 – Meter Commands
28
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 during
this transaction. Modbus: Write Only Register=7081, Len=1, 16-Bit Integer (x)
Chapter 6 – Meter Commands
29
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.)
Chapter 6 – Meter Commands
30
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.)
Loading...
+ 145 hidden pages