Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Multiload II Modbus PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Chapter 8 – Communication Trace Example 164

CHAPTER 8 COMMUNICATION TRACE EXAMPLE


The following is an example of a typical communication session with MultiLoad starting with host system
startup, driver card in, transaction authorization, batch authorization, end of batch processing, and host system
shutdown.
Upon startup it is recommended that the host system verify as many parameters as practical to avoid
problems during loading due to mis-configuration. If any parameters are different then expected the
discrepancy should be logged and startup should be aborted. Recommended parameters to check are:
Firmware Version
Configured bit is set.
Remote Processing is enabled.
Number of configured presets.
Number of meters, components and additives for all presets.

8.1 STARTUP OF HOST SOFTWARE


8.1.1 UPDATE DATE & TIME
Sent:(U001010515153200) Received: (000)
Modbus:
Fn=0x16, Write (YYMMDDHHMMSS) to Registers 35 … 46

8.1.2 UPDATE PRODUCT DEFINITIONS


Start with a clear database and upload base product and additive definitions into indexes 020-099
Sent:(FCLEARPROD) Received: (000)
Sent:(U5000200001100Regular Unlead RUL
02010000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000210001300Premium Unlead PUL
02110000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000220000600Chevron Additive CHEVADD
02210000000000000000000000000000000000000000000000000000000000000210000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000230000700Shell Additive SHEADD
02310000000000000000000000000000000000000000000000000000000000000220000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000240000800Generic Additive GENADD
02410000000000000000000000000000000000000000000000000000000000000230000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000250000300Base Kerosene KERO
02510000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000260001400Base Low Sulfur Diesel BASLSD
02610000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000) Received: (000)
Chapter 8 – Communication Trace Example 165

Sent:(U5000270000900Red Dye REDDYE


02710000000000000000000000000000000000000000000000000000000000000260000000000000000000000
00000000000000000000000) Received: (000)
Sent:(U5000280000500Winter Additive WINADD
02810000000000000000000000000000000000000000000000000000000000000270000000000000000000000
00000000000000000000000) Received: (000)
Modbus:
For each recipe:
Fn=0x06, Write Recipe Index to Register 2200
Fn=0x16, Write Recipe Data to Registers 2201 … 2267
(both writes can be done at the same time with one Fn=0x16 command)

8.1.3 UPDATE PRESET DEFINITIONS


Sent:(U400000BLENDER
02002100000000000000000002202302400000000000000000000000000000000000000002002102202302400
0000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Received: (000)
Sent:(U400001BLENDER
02002100000000000000000002202300000000000000000000000000000000000000000002002102202300000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Received: (000)
Sent:(U400002LSD
02000000000000000000000002200000000000000000000000000000000000000000000002002200000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Received: (000)
Sent:(U400003HSD
02500000000000000000000000000000000000000000000000000000000000000000000002500000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Received: (000)
Sent:(U400004KEROSENE
02600000000000000000000002700000000000000000000000000000000000000000000002602702800000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Received: (000)
Modbus:
Fn=0x16, Write Preset Data to Registers 8000 … 8066
Fn=0x16, Write Preset Data to Registers 8067 … 8133
Fn=0x16, Write Preset Data to Registers 8134 … 8200
Fn=0x16, Write Preset Data to Registers 8201 … 8267
Fn=0x16, Write Preset Data to Registers 8268 … 8334

8.1.4 STATUS QUERY


Periodically query the status of MultiLoad by issuing the following command.
This command also provides indication to MultiLoad that the host is still up.
Sent:(Q) Received: (0000038)
From the Q response, when needed send the following commands:
power_up bit is set
Modbus:
Fn=0x03, Read Register 7000
Chapter 8 – Communication Trace Example 166

Sent:(FPOWERUP) Received:(000)
logmsg_queued bit is set
Modbus:
Fn=0x06, Write 0 to Register 7012

Sent:(R910) Received: (00091000010515153200REGAINED COMMUNICATION WITH HOST.)


host_up bit is clear
Modbus:
Fn=0x03, Read Registers 2600 ... 2685

Sent:(FHOSTUP) Received: (000)


Modbus:
Fn=0x06, Write 0 to Register 7013

8.2 TRANSACTION AUTHORIZATION


8.2.1 PROCESS DRIVER CARD IN
Reset terminal screen.
Sent:(T_R) Received: (000)
Modbus:
Fn=0x06, Write 0 to Register 7017

Wait for card in by watching the CARD_STATUS character


Sent:(Q) Received: (000C218)
Sent:(Q) Received: (000C218)
...(some time later)...
Sent:(Q) Received: (041C218)
Modbus:
Fn=0x03, Read Register 7001 -> 0
Fn=0x03, Read Register 7001 -> 0
...(some time later)...
Fn=0x03, Read Register 7001 -> 1

Get the card number


Sent:(R962) Received: (0419620=01=0000000=00004504=01)
Modbus:
Fn=0x03, Read Registers 2900 … 2979

Prompt for Driver PIN


Sent:(T_H_K_>Enter Pin: _!_L04_E) Received: (041)
Modbus:
Use Extended Services Register

Wait for driver input_done bit to be set


Sent:(Q) Received: (041C618)
Chapter 8 – Communication Trace Example 167

...(some time later)...


Sent:(Q) Received: (041CA18)
Modbus:
Fn=0x03, Read Register 7002 -> (0xC61A)
...(some time later)...
Fn=0x03, Read Register 7002 -> (0xCA1A)

Get driver input and terminating key


Sent:(R960) Received: (0419601111)
Sent:(R961) Received: (041961D)
Modbus:
Fn=0x03, Read Registers 2850 ... 2875

8.2.2 AUTHORIZE A TRANSACTION ON MULTILOAD


Authorize transaction on Multiload
Sent:(T_A) Received: (0T1)
Modbus:
Fn=0x06, Write 0 to Register 7016

Enable available presets


Sent:(MEM0002) Received: (0T1)
Sent:(MEM0012) Received: (0T1)
Sent:(MEM0022) Received: (0T1)
Modbus:
Fn=0x06, Write 2 to Register 7032
Fn=0x06, Write 2 to Register 7033
Fn=0x06, Write 2 to Register 7034

Upload the driver number and any other additional information to be included with stored BOL in Multiload
Sent:(U95000004504) Received: (0T1)
Sent:(U9510001234) Received: (0T1)
Sent:(U952 ) Received: (0T1)
Sent:(U953 ) Received: (0T1)
Sent:(U954 ) Received: (0T1)
Modbus:
Fn=0x16, Write data to Registers 2700 … 2724
Fn=0x16, Write data to Registers 2725 … 2749
Fn=0x16, Write data to Registers 2750 … 2774
Fn=0x16, Write data to Registers 2775 … 2799
Fn=0x16, Write data to Registers 2800 … 2824

8.2.3 READING TOTALIZERS


Sent:(R112000) Received:
(0001120000000010000000010000000000000000000000000000000000010000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Chapter 8 – Communication Trace Example 168

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000)
Sent:(R112001) Received:
(0001120010000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000)
Sent:(R112002) Received:
(0001120020000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000)
Sent:(R112003) Received:
(0001120030000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000)
Sent:(R112004) Received:
(0001120040000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000)
Modbus:
Fn=0x03, Read Registers 3000 … 3006 (Preset Gross Totalizers)
Fn=0x03, Read Registers 3144 … 3191 (Component Gross Totalizers)
Fn=0x03, Read Registers 3336 … 3432 (Additive Gross Totalizers)
Etc…

8.3 BATCH AUTHORIZATION


8.3.1 AUTHORIZE A BATCH ON MULTILOAD
Checking status found a preset authorization request for a preset.
Sent:(Q) Received: (0a1CA1A)
Modbus:
Fn=0x03, Read Register 7000 -> a

Prompt driver for batch information.

Display available product names


Sent:(T_H_K_Y! 1. Regular Unlead_Y” 2. Premium Unlead) Received: (0a1)
Modbus:
Use Extended Services Register

Prompt for product name


Sent:(T_H_>Enter Preset #01 Product Code: _@ _L02_E) Received: (0a1)
Modbus:
Use Extended Services Register

Wait for driver input done


Chapter 8 – Communication Trace Example 169

Sent:(Q) Received: (0a1C61A)


...(some time later)...
Sent:(Q) Received: (0a1CA1A)
Modbus:
Fn=0x03, Read Register 7002 -> (0xC61A)
...(some time later)...
Fn=0x03, Read Register 7002 -> (0xCA1A)

Get driver input and terminating key


Sent:(R960) Received: (0a19601 )
Sent:(R961) Received: (0a1961D)
Modbus:
Fn=0x03, Read Registers 2850 ... 2875

Prompt for preset quantity


Sent:(T_H_K_>Enter Preset #01 Qty: _@_L06_E) Received: (0a1)
Modbus:
Use Extended Services Register

Wait for driver input done


Sent:(Q) Received: (0a1C61A)
...(some time later)...
Sent:(Q) Received: (0a1CA1A)
Modbus:
Fn=0x03, Read Register 7002 -> (0xC61A)
...(some time later)...
Fn=0x03, Read Register 7002 -> (0xCA1A)

Get driver input and terminating key


Sent:(R960) Received: (0a19601000 )
Sent:(R961) Received: (0a1961D)
Modbus:
Fn=0x03, Read Registers 2850 ... 2875

Upload selected recipe definitions into index in range of 001-019 (recommend using preset number as index).
Sent:(U5000010001100Regular Unlead RUL
02010000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000) Received: (0a1)
Modbus:
Fn=0x06, Write Index 1 to Register 2200
Fn=0x16, Write Recipe Data to Registers 2201 … 2267

Authorize preset for batch indicating volume and recipe definition index.
Sent:(MAM000100100000100000) Received: (0T1)
Modbus:
Fn=0x16, Write Authorization Data (1, 0, 1000, 1, 1) to Registers 7500 … 7504
Chapter 8 – Communication Trace Example 170

Status no longer request for remote authorization


Sent:(Q) Received: (0T1CA3A)
Modbus:
Fn=0x03, Read Register 7000 -> T

8.3.2 MONITOR LOAD DURING DELIVERY


Sent:(MRS000) Received:
(0T1RS0000001001F0000000001000000000015+0022400113000000015+00224000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Sent:(MRS001) Received:
(0T1RS001000000070000000000000000000000+0000000000000000000+00000000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Sent:(MRS002) Received:
(0T1RS002000000070000000000000000000000+0000000000000000000+00000000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Sent:(MRS003) Received:
(0T1RS003000900030000000000000000000000+0000000000000000000+00000000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Sent:(MRS004) Received:
(0T1RS004000900030000000000000000000000+0000000000000000000+00000000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Modbus:
Fn=0x03, Read Registers 4060 … 4067 (Preset Gross Volumes)
Fn=0x03, Read Registers 4084 … 4091 (Preset Net Volumes)
Etc…

8.4 END OF BATCH PROCESSING


8.4.1 ENDING A BATCH ON MULTILOAD
End Batch request can come from MultiLoad (Driver Clears Batch or Card Pull) or from the Host with a MBE
command.

Wait until preset state is PRESET_END_OF_BATCH and pick up totals (with MRS) and/or totalizers.
Sent:(MRS000) Received:
(0T1RS000001107970000000001000000001000+0022400000000001000+00224000000000+0000000000000
0+00000000000000+00000000000000+00000000000000+00000000000000+00000000000000+000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000)
Modbus:
Fn=0x03, Read Registers 4060 … 4067 (Preset Gross Volumes)
Chapter 8 – Communication Trace Example 171

Fn=0x03, Read Registers 4084 … 4091 (Preset Net Volumes)


Etc…

Send end batch command to allow MultiLoad to clear batch totals.


Sent:(MEB000) Received: (0T1)
Modbus:
Fn=0x06, Write Register 7069

When preset state returns to PRESET_IDLE, prompting for next batch can begin again.

8.5 END OF TRANSACTION PROCESSING

8.5.1 ENDING A TRANSACTION ON MULTILOAD

A transaction can be ended by MultiLoad (Driver pulls card) or from the Host with a MET command

End of transaction processing started when RCU state changes to COMPLETING_LOAD.


Sent:(Q) Received: (0C0C23B)
Modbus:
Fn=0x03, Read Register 7000

And uncleared batched will be set to end batch waiting for the host to acknowledge with a MEB command to
clear totals.

When all presets have been cleared, RCU status will go to TRANSACTION_DONE.
Sent:(Q) Received: (0D0C238)
Modbus:
Fn=0x03, Read Register 7000

Reset display to reset RCU status back to idle.


Sent:(T_R) Received: (000)
Modbus:
Fn=0x06, Write 0 to Register 7017

8.6 SHUTDOWN OF HOST SOFTWARE

Sent:(FHOSTDOWN) Received: (000)


Modbus:
Fn=0x03, Write 0 to Register 7014

You might also like