You are on page 1of 66

UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION

FOR PTS CONTROLLER


OVER FUEL DISPENSERS AND ATG SYSTEMS

Review date: 21 October, 2017


Revision number: R23

Approved by: _______________ Date: ___________________

“TECHNOTRADE LTD”

This document is the property of “TECHNOTRADE LTD”. It is not to be used in any way inconsistent with the purpose for which it
is made. “TECHNOTRADE LTD” shall not be liable for technical or editorial errors or omissions which may appear in this
document. It also retains the right to make changes to this specification at any time without prior notice.
UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

CONTENT

CONTENT .............................................................................................................................................................. 2
REVISION HISTORY ............................................................................................................................................... 4
INTRODUCTION AND SCOPE ................................................................................................................................ 5
GENERAL FEATURES OF PTS CONTROLLER .......................................................................................................... 6
PHYSICAL LAYER OF COMMUNICATION............................................................................................................... 7
DATA LINK LAYER OF COMMUNICATION ............................................................................................................. 8
APPLICATION LAYER OF COMMUNICATION ...................................................................................................... 11
COMMANDS (MASTER TO PTS) .......................................................................................................................... 12
1. StatusRequest ‘S’ (0x53): command on request of pump status ............................................................. 12
2. LockRequest ‘L’ (0x4C): command on locking of control over pump ....................................................... 13
3. UnlockRequest ‘U’ (0x55): command on unlocking of control over pump .............................................. 14
4. AuthorizeRequest ‘A’ (0x41): command on allowance of dispensing ...................................................... 15
5. HaltRequest ‘H’ (0x48): command on compulsory stop of dispensing ..................................................... 16
6. SuspendRequest ‘s’ (0x73): command on pausing of dispensing ............................................................. 17
7. ResumeRequest ‘r’ (0x72): command on resuming of dispensing ........................................................... 18
8. CloseTransactionRequest ‘C’ (0x43): command on confirmation of transaction closing ......................... 19
9. TotalRequest ‘T’ (0x54): command on request of pump nozzle total counters ....................................... 20
10. PricesSetRequest ‘p’ (0x70): command on setting of pump nozzles prices ........................................... 21
11. PricesGetRequest ‘P’ (0x50): command on request of pump nozzles prices ......................................... 22
12. TagGetRequest ‘i’ (0x69): command on request of tag ID value from pump’s nozzle ........................... 23
13. LightsSetRequest ‘l’ (0x6C): command on switching on/off pump lights ............................................... 24
14. VersionRequest ‘V’ (0x56): command on request of firmware version and configuration .................... 25
15. PumpConfigSetRequest ‘Q’ (0x51): command on setting of configuration of pump ports.................... 26
16. PumpConfigGetRequest ‘F’ (0x46): command on request of configuration of pump ports .................. 27
17. ProbeConfigSetRequest ‘Z’ (0x5A): command on setting of configuration of probe ports .................... 28
18. ProbeConfigGetRequest ‘Y’ (0x59): command on request of configuration of probe ports .................. 29
19. ProbeMeasureRequest ‘X’ (0x58): command on request of probe measurements ............................... 30
20. ParamSetRequest ‘W’ (0x57): command on writing of parameter into PTS .......................................... 31
21. ParamGetRequest ‘R’ (0x52): command on reading of parameter from PTS......................................... 32
22. RestartRequest ‘x’ (0x78): command on restart of PTS .......................................................................... 33
RESPONSES (PTS TO MASTER)............................................................................................................................ 34
1. StatusResponse ‘S’ (0x53): response on pump status .............................................................................. 34
2. UnlockStatusResponse ‘U’ (0x55): response on pump status .................................................................. 35
3. AmountInfoResponse ‘A’ (0x41): response on current dispensing .......................................................... 36
4. TransactionInfoResponse 'T' (0x54): response on performed transaction............................................... 37
5. TotalInfoResponse ‘С’ (0x43): response on pump nozzle total counters ................................................. 38
6. PricesResponse ‘P’ (0x50): response on pump nozzles prices .................................................................. 39
7. TagResponse ‘i’ (0x69): response on tag ID value from pump’s nozzle .................................................... 40
8. VersionResponse ‘V’ (0x56): response on firmware version and hardware configuration ...................... 41
9. PumpConfigResponse ‘Q’ (0x51): response on configuration of pump ports .......................................... 42
10. ProbeConfigResponse ‘Z’ (0x5A): response on configuration of probe ports ........................................ 43
11. ProbeMeasureResponse ‘X’ (0x58): response on probe measurements ............................................... 44
12. ParamResponse ‘R’ (0x52): response on parameter value ..................................................................... 48
EXTENDED COMMANDS (MASTER TO PTS) ....................................................................................................... 49
1. ExtendedStatusRequest ‘ES’ (0x45 0x53): extended command on request of pump status ................... 49

www.technotrade.ua page 2 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

2. ExtendedAuthorizeRequest ‘EA’ (0x45 0x41): extended command on allowance of dispensing ............ 50


3. ExtendedTotalRequest ‘ET’ (0x45 0x54): extended command on request of pump nozzle total counters
................................................................................................................................................................. 51
4. ExtendedPricesSetRequest ‘Ep’ (0x45 0x70): extended command on setting of pump nozzles prices ... 52
5. ExtendedProbeConfigSetRequest ‘EZ’ (0x45 0x5A): extended command on setting of configuration of
probe ports .............................................................................................................................................. 53
6. ExtendedProbeConfigGetRequest ‘EY’ (0x45 0x59): extended command on request of configuration of
probe ports .............................................................................................................................................. 55
EXTENDED RESPONSES (PTS TO MASTER) ......................................................................................................... 56
1. ExtendedTransactionInfoResponse 'ET' (0x45 0x54): extended response on performed transaction .... 56
2. ExtendedTotalInfoResponse ‘EС’ (0x45 0x43): extended response on pump nozzle total counters ....... 57
3. ExtendedPricesResponse ‘EP’ (0x45 0x50): extended response on pump nozzles prices ........................ 58
4. ExtendedProbeConfigResponse ‘EZ’ (0x45 0x5A): response on configuration of probe ports ................ 59
APPENDIX 1: Examples of a subprogram for calculation of a checksum CRC .................................................... 61
APPENDIX 2: Interaction diagram between MASTER and PTS ........................................................................... 63
APPENDIX 3: Typical flow chart during transaction between MASTER and PTS................................................ 64
APPENDIX 4: PTS controller configuration XML file ........................................................................................... 66

www.technotrade.ua page 3 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

REVISION HISTORY
REV DATE BY SECTION DESCRIPTION
R23 21.10.2017 Evgeniy Command 4 “AuthorizeRequest” Added full tank authorization, reformatted the
Vasyliev document, more accurate description
R22 31.05.2017 Evgeniy Response 11 Added flag for automatic in-tank deliveries
Vasyliev “ProbeMeasureResponse”
R21 20.09.2016 Evgeniy Response 11 Added automatic in-tank deliveries
Vasyliev “ProbeMeasureResponse”
R20 11.09.2015 Evgeniy Command 22 “RestartRequest” Added restart command description
Vasyliev
R19 26.08.2014 Evgeniy Commands 12 and 13, response 7 Added commands for reading of dispenser ID tag and
Vasyliev switching on/off lights on dispenser
R18 04.07.2014 Evgeniy Appendix 4, 5, 6, 7 Appendix 4 updated, appendixes, 5, 6, 7 updated
Vasyliev
R17 24.03.2014 Evgeniy List of supported pumps Sanki Rus. protocol added
Vasyliev communication protocols. Parameter for Sanki Rus. protocol added
R16 05.02.2014 Evgeniy SuspendRequest SuspendRequest and ResumeRequest added
Vasyliev ResumeRequest
R15 13.01.2014 Evgeniy List of supported pumps Tominaga SS-LAN protocol added.
Vasyliev communication protocols. Topaz protocol added
Topaz_WONS protocol added
HongYang MPD 886 protocol added.
Falcon protocol added
Parameter for PTS firmware version number added
Parameter for PTS to use connection through fiscal
module added
R14 16.07.2013 Evgeniy List of supported pumps Batchen Gilb Electr, Gilb MPP protocols added.
Vasyliev communication protocols. Parameter 9 for PTS controller added
Parameters for PTS controller.
R13 10.06.2013 Eugene Parameters for pumps. Parameters Parameter 2 for UniPump protocol added
Vasylyev for UniPump pump protocol.
R12 23.05.2013 Eugene Parameters for pumps. Parameters Parameters for DongHwa Prime protocol added
Vasylyev for DongHwa Prime pump protocol.
R11 27.02.2013 Eugene Extendended command 3, extended Extended TotalRequest and TotalResponse added.
Vasylyev response 2 Examples to commands and responses added.
R10 02.01.2013 Eugene All Document format corrected, parameters for current
Vasylyev loop interface converter added, format of parameters
corrected.
R09 22.12.2012 Eugene Response 7 Maximum quantity of supported pump protocols
Vasylyev equals 75, Probe protocols – 25.
R08 29.11.2012 Eugene Extended commands 4, 5 Extended command and response for probes
Vasylyev Extended response 3 configuration.
Some of the commands’ and
responses’ names modified
R07 29.11.2012 Eugene Response 9 Code “5” for number of a PTS probe port in case of
Vasylyev probe connection to another PTS controller
R06 17.07.2012 Eugene Commands 8, 9 Pump executing request byte added to
Vasylyev Responses 1, 2, 6 StatusResponse and UnlockStatusResponse,
GetPricesRequest and PricesResponse added
R05 24.02.2012 Eugene Extended commands (MASTER to Extended commands and responses added
Vasylyev PTS)
Extended responses (PTS to
MASTER)
R04 18.10.2011 Eugene Appendix 2 and 3 Interaction diagram added,
Vasylyev typical flow chart added
R03 19.07.2011 Eugene Response 9 Updated ProbeMeasureResponse
Vasylyev
R02 26.06.2011 Eugene Commands 12, 13, 14 Reformatted, commands for probes added
Vasylyev Response 9
R01 06.01.2009 Oleg All Reformatted, most commands updated
Yurchenko
R00 06.01.2005 Oleg All First release
Yurchenko

www.technotrade.ua page 4 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

INTRODUCTION AND SCOPE

This document is intended to be used by OEMs who wish to interface a master device to the PTS controller.
The PTS controller serial link allows a master device to remotely control operation of petrol, diesel, LPG and
CNG dispensers and automatic tank gauge systems.

TECHNOTRADE LTD hereby permits reproduction of this document as may be required by any of our
customers or OEMs wishing to use it.

This document has been carefully prepared and is believed to be accurate. However TECHNOTRADE LTD, its
employees and its agents do not assume responsibility for its use either directly or indirectly.
TECHNOTRADE LTD reserves a right to make changes to this document at any time without notice.
Prospective users of this document should contact TECHNOTRADE LTD at the time they wish to implement
this protocol on their products to become aware of any updates that may apply.

Complete information regarding PTS controller can be found on its web-page:


http://www.technotrade.ua/fuel_pump_controller.html.

All technical questions regarding the PTS controller are welcome to be asked on support mailbox:
support_1a@technotrade.ua. Our support team will be glad to help you.

In case if you find any mistakes, omissions in this document or have any suggestions on improvements to
this document, please feel free to e-mail them our support mailbox: support_1a@technotrade.ua. We will
be grateful to you for this valuable information.

www.technotrade.ua page 5 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

GENERAL FEATURES OF PTS CONTROLLER

PTS controller is a specialized controller which allows remote control over petrol, diesel, CNG and LPG
dispensers (later in text named as pumps) and automatic tank gauge (ATG) systems (later in text named as
probes) installed at petrol, CNG and LPG stations and storage depots.

PTS controller is intended to be used in connection with control systems for petrol stations (POS systems,
cash registers, OPT terminals, etc) to provide simultaneous control over various types of pumps and probes
of various manufactures using the single common communication protocol UniPump. PTS controller
provides conversion of the common communication protocol UniPump into various proprietary
communication protocols of manufacturers.

This document covers a list of commands and responses of UniPump communication protocol for
communication with PTS controller for provision of control over pumps and probes and configuration of
PTS controller.

PTS controller has 2 internal independent polling cycles: cycle for communication with a MASTER device
(POS system, cash register, OPT terminal, etc) and a cycle for communication with pumps and probes. PTS
controller has input communication port in RS-232 interface through which a MASTER device
communicates with the PTS controller using UniPump communication protocol.

PTS controller can simultaneously control up to 16 fueling places. Fueling place is a whole dispenser if it has
only 1 side or a fueling place of a dispenser if the dispenser has 2 sides. Connected fuelling places can use
up to 4 various communication protocols because each of the PTS controller pump ports can be adjusted to
a separate communication protocol and baud rate. Each PTS controller pump port can connect up to 16
fueling places maximum.

Under a pump in the protocol it is understood a fueling place.

PTS controller polls pumps in the same pump port one by one, pumps in different pump ports are polled
independently (each pump port is polled in own thread).

PTS controller can simultaneously control up to 16 probes (gauges) (separate probes or probes connected
to ATG systems / consoles) that use up to 3 various communication protocols (each of the probe ports can
be adjusted to a separate communication protocol and baud rate and connect up to 16 probes).

PTS controller allows a possibility to lead management over the same pumps from several POS systems and
share probes measurement values between several interconnected PTS controllers. Thus every
interconnected PTS controller is able to provide control over any of the connected pumps and know probe
measurement data of every other interconnected PTS controller.

PTS controller has built-in parameters, which serve for configuration of the PTS controller, setting of
configuration for connected pumps and probes. Range of allowed parameters’ addresses is from 0 to 32.
Range of possible parameters' numbers for each parameter address is from 0 to 9999. Range of possible
parameters' values for each parameter number is from 0 to 0xFFFFFFFF. Writing of a parameter value to
allowed parameter address with parameter number not equal to 0 will set this parameter value for the
specified parameter address with parameter number. Writing of a parameter value to allowed parameter
address with parameter number equal to 0 will cause zeroing of all parameter values for all parameter
numbers for the specified parameter address.

www.technotrade.ua page 6 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

PHYSICAL LAYER OF COMMUNICATION

On physical layer the interface represents a 3-wire realization of RS-232 interface:


- line TXD (transmit data),
- line RXD (receive data),
- line GND (ground)

Communication parameters:
- Baud rate: 57600
- Start bits: 1 bit
- Data bits: 8 bit
- Stop bits: 1 bit
- Parity: none

Buffer size is application dependent, however maximum size is 256 bytes including control characters.

www.technotrade.ua page 7 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

DATA LINK LAYER OF COMMUNICATION

Described communication protocol supposes an informational exchange between two devices. First of
them - control device (POS system, cash register, OPT terminal, etc), which is always an initiator of the
exchange and hereinafter named as MASTER. Second device is PTS controller, which is subordinate and
hereinafter named as PTS.

Informational exchange between the MASTER and PTS devices is performed using byte packages (format of
packets see below).

Packet, which is sent by MASTER, is always a command to PTS.

Successful reception of a command by PTS invokes inside the PTS a corresponding operation and obligatory
transfer to MASTER a packet, containing a response.

All transferred bytes determine service and informational symbols. For differentiation in receive buffer of
MASTER or PTS of service and informational symbols the byte DLE (value equals 0x10) is used. The first byte
DLE, met in the informational stream, opens a DLE-cycle and any consequent byte of the stream closes the
DLE-cycle. By these two bytes of the DLE-cycle one service symbol is always coded, which value is defined
by the closing byte. After closing of the DLE-cycle according to described above algorithm a new DLE-cycle
can be opened. All bytes outside the DLE-cycle are considered to be informational symbols.

DLE-cycles are used in the given protocol for determination of the beginning and ending of packets and also
for setting the informational symbols with value equal to DLE value.

List of allowed values for bytes, closing DLE-cycles, is represented below:

• 0x02 (STX) – sets beginning of a packet;


• 0x03 (ETX) – sets end of a packet;
• 0x10 (DLE) – sets informational symbol with the same value.

Presence in informational stream of DLE-cycles with illegal values of closing bytes can be evaluated by a
receiving side as a communication failure.

Transferred packets have the following format:


<DLE> <STX> <ADDRESS> <COMMAND/RESPONSE CODE> <DATA> <CRC> <DLE> <ETX>, where
<DLE> - 1 byte
<STX> - 1 byte
<ADDRESS> - 1 byte (address)
<COMMAND/RESPONSE CODE> - 1 byte (for general commands) or 2 bytes (for extended commands)
<DATA> - from 1 to 200 bytes (data)
<CRC> - 2 bytes (checksum)
<DLE> - 1 byte
<ETX> - 1 byte

Informational field <ADDRESS> represents logical address of a device configured in PTS and can be in range
0x31 – 0xFF, address 0x00 or 0x30 is a broadcast address.

www.technotrade.ua page 8 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

In commands and responses to pump and probes addresses (range 1 – 16) are the following:

▪ 0x00 or 0x30 => address 0 (broadcast address)


▪ 0x31 => address 1
▪ 0x32 => address 2
▪ 0x33 => address 3
▪ 0x34 => address 4
▪ 0x35 => address 5
▪ 0x36 => address 6
▪ 0x37 => address 7
▪ 0x38 => address 8
▪ 0x39 => address 9
▪ 0x3A => address 10
▪ 0x3B => address 11
▪ 0x3C => address 12
▪ 0x3D => address 13
▪ 0x3E => address 14
▪ 0x3F => address 15
▪ 0x40 => address 16

Informational field <CRC> contains 2 bytes, which determine checksum of a packet.

Note! If within informational fields <DATA>, <CRC> a service symbol <DLE> (0x10) is met – it must be
followed with a second symbol <DLE> (dublicated), this second symbol <DLE> should be ignored at
calculation of checksum!

Checksum of a packet is calculated on all informational fields incoming in the packet excluding <CRC>:
<ADDRESS>, <COMMAND/RESPONSE CODE>, <DATA>. At checking the CRC you can use that calculated CRC
on the fields (<ADDRESS>, <COMMAND/RESPONSE CODE>, <DATA>, <CRC>) is equal to 0.

Algorithm for calculation of a checksum – algorithm CRC16 with a polynomial:

P(x) = x16 + x15 + x2 + 1

Before calculation initial value of CRC is equal to 0. Examples of a subprogram for calculation of a checksum
are shown in the Appendix 1.

Low-order byte of a checksum is transferred first.

At calculation only informational symbols are summarizes – this means that service prefixes DLE at
calculation of a checksum are ignored.

www.technotrade.ua page 9 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

MASTER and PTS must obey to below rules:


• PTS does not start transferring of a response before reception of a correct packet with a command
addressed to it. This means that a checksum in the received packet with a command must
correspond to its content.
• PTS must correctly response to every packet, addressed to it.
• PTS must wait a delay Td not less than 3 ms before starting to transfer the response to a MASTER.
Duration Td is measured starting from a moment of reception the ETX byte at receiving of a packet
with a command.
• First three bytes of the response packet must be transferred by the PTS not later than within
Ts = 100 ms after reception of the ETX byte at receiving of a packet with a command (some
responses may take longer time). First bytes of responses on commands, which cause restart of the
PTS, may be transferred during a longer time.
• MASTER device waits for a response packet during Ts = 100 ms after ending of transferring the
command (some responses of PTS may take a longer time).
• If MASTER device does not receive at least two any bytes during a primary waiting time for
response Ts = 150 ms, starting from the ending of transferring the command, it can start to transfer
a command addressed to a next device in PTS.
• After reception of a correct response from device in PTS, to which a previous command was
addressed, MASTER device must wait a delay Td = 3 ms before start to transfer the next command.
Duration Td is measured starting from a moment of reception of byte ETX at receiving of a response
packet.

www.technotrade.ua page 10 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

APPLICATION LAYER OF COMMUNICATION

On a layer of applications MASTER device and PTS form field <DATA> of packets. First byte of a <DATA>
field will be called a command code (for MASTER) and response code (for PTS). Format of the consequent
bytes is defined in accordance with a command code or a response code.

www.technotrade.ua page 11 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

COMMANDS (MASTER TO PTS)

1. StatusRequest ‘S’ (0x53): command on request of pump status


Command code: ‘S’ (0x53)
Data: Absent
Purpose: MASTER device transfers this command every time when it needs information about
status of correspondent pump (configured in PTS under appropriate number) and
also for keeping a continuity of packets exchanging with it
Response: As a response can be transferred:
▪ StatusResponse: while a control over pump is locked with a LockRequest
command
▪ UnlockStatusResponse: while a control over pump is not locked with a
LockRequest command
▪ AmountInfoResponse: during dispensing process
▪ TransactionInfoResponse: at a finished transaction
▪ TotalInfoResponse: at request of total counters values (see a note to
TotalRequest command)
▪ PricesResponse: at request to get or set pump prices (see notes to
PricesGetRequest and PricesSetRequest commands)
▪ TagResponse: at request to get pump nozzle tag ID (see notes to TagGetRequest
command)
Example: Request of status for pump 1:

10 02 31 53 55 AD 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
53 => <COMMAND CODE>
55 AD => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 12 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

2. LockRequest ‘L’ (0x4C): command on locking of control over pump


Command code: ‘L’ (0x4C)
Data: Absent
Purpose: MASTER device transfers this command when it needs to lock control over pump.
This command is optional and is to be used when parameter “NOT USE COMMANDS
LOCKREQUEST AND UNLOCKREQUEST” is unchecked in PTS configuration.
Response: Same response as the response to a command StatusRequest
MASTER device transfers this command when it needs to lock control over pump
(assuming that there can be other interconnected PTS controllers on the site, which
potentially can also give commands to this pump, thus to protect the pump from
commands from other PTS controllers given MASTER should lock control over this
pump by throwing LockRequest command). For a situation when there are no other
interconnected PTS controllers on the site (only 1 MASTER) – then usage of
LockRequest/UnlockRequest commands can be switched off if the parameter “NOT
USE COMMANDS LOCKREQUEST AND UNLOCKREQUEST” is unchecked in PTS
configuration (see section Appendix 4 for reference to PTS controller parameters), in
this case PTS will always response StatusResponse, even after sending to it
UnlockRequest command.
Example: Lock control over pump 1:

10 02 31 4C 14 65 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
4C => <COMMAND CODE>
14 65 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 13 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

3. UnlockRequest ‘U’ (0x55): command on unlocking of control over pump


Command code: ‘U’ (0x55)
Data: Absent
Purpose: MASTER device transfers this command when it needs to unlock control over pump.
This command is optional and is to be used when parameter “NOT USE COMMANDS
LOCKREQUEST AND UNLOCKREQUEST” is unchecked in PTS configuration.
Response: Same response as the response to a command StatusRequest
Example: Unlock control over pump 1:

10 02 31 55 D5 AF 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
55 => <COMMAND CODE>
D5 AF => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 14 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

4. AuthorizeRequest ‘A’ (0x41): command on allowance of dispensing


Command code: ‘A’ (0x41)
Data: ▪ 1 decimal ASCII symbol: number of active nozzle (from 1 to 6)
▪ 1 ASCII symbol:
▪ ‘L’ (4Ch): preset by product volume
▪ ‘P’ (50h): preset by money amount
▪ ‘F’ (46h): preset with full tank, in some situations also meaning preset dose is
to be entered from pump preset keyboard
▪ 8 decimal ASCII symbols: preset dose in volume units (10 ml) or in currency units
(cents) (in case of authorization with full tank this field is ignored by PTS)
▪ 4 decimal ASCII symbols: price of 1 liter in currency units (cents)
Purpose: Sets preset and nozzle price, allows dispensing for specified nozzle
Response: Same response as the response to a command StatusRequest
Example: Authorize pump 1 with 15 liters and price 5.05:

10 02 31 41 31 4C 30 30 30 30 31 35 30 30 30 35 30 35 49
C1 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
41 => <COMMAND CODE>
31 => ‘1’ for nozzle number
4C => ‘L’ for preset by volume
30 30 30 30 31 35 30 30 => ‘00001500’ for preset dose
30 35 30 35 => ‘0505’ for nozzle price
49 C1 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 15 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

5. HaltRequest ‘H’ (0x48): command on compulsory stop of dispensing


Command code: ‘H’ (0x48)
Data: Absent
Purpose: Immediate stop of dispensing on pump.
Can be transferred with a broadcast address 0 without response.
Response: Same response as the response to a command StatusRequest
Example: Stop pump 1:

10 02 31 48 15 A6 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
48 => <COMMAND CODE>
15 A6 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 16 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

6. SuspendRequest ‘s’ (0x73): command on pausing of dispensing


Command code: ‘s’ (0x73)
Data: Absent
Purpose: This command is used to temporarily stop dispensing process. Can be used in
situation when contact with a Vehicle Identification Device is lost. It is a command
that will pause the filling, but PTS will keep sending AmountInfoResponse.
Response: AmountInfoResponse
Example: Pause dispensing on pump 1:

10 02 31 73 54 75 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
73 => <COMMAND CODE>
54 75 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 17 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

7. ResumeRequest ‘r’ (0x72): command on resuming of dispensing


Command code: ‘r’ (0x72)
Data: Absent
Purpose: This command is used to resume dispensing process after it was paused by
SuspendRequest command. Can be used in situation when contact with a Vehicle
Identification Device is again found.
Response: AmountInfoResponse.
Example: Resume dispensing on pump 1:

10 02 31 72 95 B5 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
72 => <COMMAND CODE>
95 B5 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 18 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

8. CloseTransactionRequest ‘C’ (0x43): command on confirmation of transaction closing


Command code: ‘C’ (0x43)
Data: 2 decimal ASCII symbols: number of transaction
Purpose: Closes transaction.
Number of a transaction must correspond to the number of transaction from
TransactionInfoResponse sent by PTS.
Response: Same response as response to a command StatusRequest
Example: Close transaction 2 on pump 1:

10 02 31 43 30 32 6A FD 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
43 => <COMMAND CODE>
6A FD => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 19 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

9. TotalRequest ‘T’ (0x54): command on request of pump nozzle total counters


Command code: ‘T’ (0x54)
Data: 1 decimal ASCII symbol: number of nozzle (from 1 to 6)
Purpose: Request of total counters for specified nozzle
Response: TotalInfoResponse
Note: In case if a pump can not at once transfer a response TotalInfoResponse, PTS can
response StatusResponse on a command TotalRequest, and at one of subsequent
requests for the pump status with StatusRequest to response with
TotalInfoResponse
Example: Request data of electronic total counters on pump 1 (nozzle 1):

10 02 31 54 31 AE DB 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
54 => <COMMAND CODE>
31 => ‘1’ nozzle number
AE DB => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 20 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

10. PricesSetRequest ‘p’ (0x70): command on setting of pump nozzles prices


Command code: ‘p’ (0x70)
Data: ▪ 4 decimal ASCII symbols: product price in cents for nozzle 1
▪ 4 decimal ASCII symbols: product price in cents for nozzle 2
▪ 4 decimal ASCII symbols: product price in cents for nozzle 3
▪ 4 decimal ASCII symbols: product price in cents for nozzle 4
▪ 4 decimal ASCII symbols: product price in cents for nozzle 5
▪ 4 decimal ASCII symbols: product price in cents for nozzle 6
Purpose: Sets prices for each pump nozzle
Response: PricesResponse
Note: In case if a pump can not at once transfer a response PricesResponse, PTS can
response StatusResponse on a command PricesSetRequest, and at one of
subsequent requests for the pump status with StatusRequest to response with
PricesResponse
Example: Set prices per nozzle on pump 1:

10 02 31 70 31 31 31 31 32 32 32 32 33 33 33 33 34 34 34
34 35 35 35 35 36 36 36 36 D1 E1 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
70 => <COMMAND CODE>
31 31 31 31 => ‘1111’ for price of nozzle 1
32 32 32 32 => ‘2222’ for price of nozzle 2
33 33 33 33 => ‘3333’ for price of nozzle 3
34 34 34 34 => ‘4444’ for price of nozzle 4
35 35 35 35 => ‘5555’ for price of nozzle 5
36 36 36 36 => ‘6666’ for price of nozzle 6
D1 E1 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 21 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

11. PricesGetRequest ‘P’ (0x50): command on request of pump nozzles prices


Command code: ‘P’ (0x50)
Data: Absent
Purpose: Gets prices for each pump nozzle
Response: PricesResponse
Note: In case if a pump can not at once transfer a response PricesResponse, PTS can
response StatusResponse on a command PricesGetRequest, and at one of
subsequent requests for the pump status with StatusRequest to response with
PricesResponse
In case if required to receive extended prices response ExtendedPricesResponse it is
necessary to keep requesting ExtendedStatusRequest after sending a command
PricesGetRequest.
Example: Request prices for nozzles from pump 1:

10 02 31 50 15 AC 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
50 => <COMMAND CODE>
15 AC => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 22 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

12. TagGetRequest ‘i’ (0x69): command on request of tag ID value from pump’s nozzle
Command code: ‘i’ (0x69)
Data: 1 decimal ASCII symbol: number of nozzle with tag reader (from 1 to 6)
Purpose: Gets value of tag ID from pump nozzle
Response: TagResponse
Note: In case if a pump can not at once transfer a response TagResponse, PTS can response
StatusResponse on a command TagGetRequest, and at one of subsequent requests
for the pump status with StatusRequest to response with TagResponse
Example: Request tag ID value from pump 2 nozzle 1:

10 02 32 69 31 4E 4B 10 03, where

10 => <DLE>
02 => <STX>
32 => <ADDRESS> ‘2’
69 => <COMMAND CODE>
31 => ‘1’ for nozzle number with tag reader
4E 4B => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 23 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

13. LightsSetRequest ‘l’ (0x6C): command on switching on/off pump lights


Command code: ‘l’ (0x6C)
Data: 1 of 2 possible ASCII symbols:
▪ ‘0’ (0x30): switch off pump lights
▪ ‘1’ (0x31): switch on pump lights
Purpose: Switches on/off the pump lights
Response: Same response as response to a command StatusRequest
Example: Switch on lights on pump 1:

10 02 31 6C 31 BD 1B 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
6C => <COMMAND CODE>
31 => ‘1’ to switch on pumps lights
BD 1B => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 24 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

14. VersionRequest ‘V’ (0x56): command on request of firmware version and configuration
Command code: ‘V’ (0x56)
Data: Absent
Purpose: MASTER device transfers this command when it needs information about PTS
firmware version. Command is transferred only with a broadcasting address 0.
Response: VersionResponse
Example: Request firmware version and configuration:

10 02 30 56 94 3E 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
56 => <COMMAND CODE>
94 3E => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 25 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

15. PumpConfigSetRequest ‘Q’ (0x51): command on setting of configuration of pump ports


Command code: ‘Q’ (0x51)
Data: ▪ Four blocks of data, repeating for every pump port of PTS:
▪ 1 decimal ASCII symbol: number of a pump port (from 1 to 4)
▪ 2 decimal ASCII symbols: type of communication protocol in pump port
▪ 1 ASCII symbol: code of baud rate in pump port

▪ Sixteen data blocks repeating for every logical address of pump:


▪ 2 decimal ASCII symbols: logical address of pump (from 1 to 16)
▪ 2 decimal ASCII symbols: physical address of pump (from 0 to 16, value 0 –
address is not set)
▪ 1 decimal ASCII symbol: number of PTS pump port (from 1 to 4)
Purpose: MASTER device transfers this command when it is necessary to set configuration of
pump ports in PTS. Command is transferred only with a broadcasting address 0.
Command is executed by PTS only in a case if all pumps are in the stopped state.
Command invokes restart of PTS.
Note: See Appendix 4 for reference to a list of supported pump communication protocols
and their respective codes
Response: PumpConfigResponse
Example: Set configuration of pump ports (pump 1 with physical address 1 configured on pump
port 1):

10 02 30 51 31 30 33 34 32 30 30 30 33 30 30 30 34 30 30
30 30 31 30 31 31 30 32 30 30 30 30 33 30 30 30 30 34 30
30 30 30 35 30 30 30 30 36 30 30 30 30 37 30 30 30 30 38
30 30 30 30 39 30 30 30 31 30 30 30 30 31 31 30 30 30 31
32 30 30 30 31 33 30 30 30 31 34 30 30 30 31 35 30 30 30
31 36 30 30 30 FF DB 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
51 => <COMMAND CODE>
31 => pump port 1
30 33 => ‘03’ for protocol “3. DART Complex”
34 => ‘4’ for baud rate “4. 9600”
...
Pump ports 2, 3, 4 => not configured (values ‘0’ for
communication protocol and baud rate)
...
30 31 => pump 1 logical address
30 31 => ‘1’ physical address of pump 1
31 => ‘1’ pump port for pump 1
...
Pumps 2-16 => not configured (values ‘0’ for physical
address and pump port)
...
FF DB => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 26 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

16. PumpConfigGetRequest ‘F’ (0x46): command on request of configuration of pump ports


Command code: ‘F’ (0x46)
Data: Absent
Purpose: MASTER device transfers this command when it needs information on configuration
of PTS pump ports. Command is transferred only with a broadcasting address 0.
Response: PumpConfigResponse
Example: Request configuration of pump ports:

10 02 30 46 95 F2 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
46 => <COMMAND CODE>
95 F2 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 27 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

17. ProbeConfigSetRequest ‘Z’ (0x5A): command on setting of configuration of probe ports


Command code: ‘Z’ (0x5A)
Data: ▪ Three blocks of data, repeating for every probe port:
▪ 1 decimal ASCII symbol: number of a probe port (from 1 to 3)
▪ 2 decimal ASCII symbols: code of the communication protocol with probe
▪ 1 ASCII symbol: baud rate in probe port

▪ Sixteen data blocks repeating for every logical address of a probe:


▪ 2 decimal ASCII symbols: logical address of probe (from 1 to 16)
▪ 2 decimal ASCII symbols: physical address of probe (from 0 to 16, value 0 –
address is not set)
▪ 1 decimal ASCII symbol: number of PTS probe port (from 1 to 3)
Purpose: MASTER device transfers this command when it is necessary to set configuration of
probe ports of PTS. Command is transferred only with a broadcasting address 0.
Command invokes restart of PTS.
Note: See Appendix 4 for reference to a list of supported probes communication protocols
and their respective codes
Response: ProbeConfigResponse
Example: Set configuration of probe ports:

10 02 30 5A 31 30 31 34 32 30 30 30 33 30 30 30 30 31 30
33 31 30 32 30 30 30 30 33 30 30 30 30 34 30 30 30 30 35
30 30 30 30 36 30 30 30 30 37 30 30 30 30 38 30 30 30 30
39 30 30 30 31 30 30 30 30 31 31 30 30 30 31 32 30 30 30
31 33 30 30 30 31 34 30 30 30 31 35 30 30 30 31 36 30 30
30 B3 8C 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
5A => <COMMAND CODE>
31 => probe port 1 (DISP)
30 31 => ‘01’ for protocol “1. GILBARCO Veeder Root”
34 => ‘4’ for baud rate “4. 9600”
...
Probe ports 2 (LOG), 3 (USER) => not configured (values
‘0’ for communication protocol and baud rate)
...
30 31 => probe 1 logical address
30 33 => ‘3’ physical address of probe 1
31 => ‘1’ probe port for probe 1
...
Probes 2–16 => not configured (values ‘0’ for physical
address and probe port)
...
B3 8C => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 28 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

18. ProbeConfigGetRequest ‘Y’ (0x59): command on request of configuration of probe ports


Command code: ‘Y’ (0x59)
Data: Absent
Purpose: MASTER device transfers this command when it needs information on configuration
of PTS probe ports. Command is transferred only with a broadcasting address 0.
Response: ProbeConfigResponse
Example: Request configuration of probe ports:

10 02 30 59 D4 3A 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
59 => <COMMAND CODE>
D4 3A => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 29 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

19. ProbeMeasureRequest ‘X’ (0x58): command on request of probe measurements


Command code: ‘X’ (0x58)
Data: Absent
Purpose: MASTER device transfers this command when it needs information on measurements
of probe
Response: ProbeMeasureResponse
Example: Request of measurements by probe 1:

10 02 31 58 14 6A 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
58 => <COMMAND CODE>
14 6A => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 30 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

20. ParamSetRequest ‘W’ (0x57): command on writing of parameter into PTS


Command code: ‘W’ (0x57)
Data: ▪ 4 decimal ASCII symbols: number of parameter (from 0 to 9999)
▪ 8 hexadecimal ASCII symbols ('0'...'F'): value of a parameter
Purpose: MASTER device transfers this command when it needs to set a parameter in PTS.
Range of allowed parameters’ addresses is from 0 to 32. Range of possible
parameters' numbers for each parameter address is from 0 to 9999. Range of
possible parameters' values for each parameter number is from 0 to 0xFFFFFFFF.
Writing of a parameter value to allowed parameter address with parameter number
not equal to 0 will set this parameter value for the specified parameter address with
parameter number. Writing of a parameter value to allowed parameter address with
parameter number equal to 0 will cause zeroing of all parameter values for all
parameter numbers for the specified parameter address.
Response: ParamResponse
Note: For a list of supported parameters in PTS see Appendix 4 for reference to parameters
used in PTS
Example: Writing of parameter with address 1, number 1 and value 00000001:

10 02 31 57 30 30 30 31 30 30 30 30 30 30 30 31 B1 F0 10
03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
57 => <COMMAND CODE>
30 30 30 31 => parameter number (0001)
30 30 30 30 30 30 30 31 => parameter value (0x00000001)
B1 F0 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 31 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

21. ParamGetRequest ‘R’ (0x52): command on reading of parameter from PTS


Command code: ‘R’ (0x52)
Data: 4 decimal ASCII symbols: number of a parameter (from 0 to 9999)
Purpose: MASTER device transfers this command when it needs information on set parameters
in PTS
Response: ParamResponse
Note: For a list of supported parameters in PTS see Appendix 4 for reference to parameters
used in PTS
Example: Reading of value of parameter with address 1, number 1:

10 02 31 52 30 30 30 31 67 36 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
52 => <COMMAND CODE>
30 30 30 31 => parameter number 0001
67 36 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 32 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

22. RestartRequest ‘x’ (0x78): command on restart of PTS


Command code: ‘x’ (0x78)
Data: Absent
Purpose: MASTER device transfers this command when it needs to restart PTS
Response: Absent
Note: Command is transferred only with a broadcasting address 0
Example: Restart PTS:

10 02 30 78 14 22 10 03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
78 => <COMMAND CODE>
14 22 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 33 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

RESPONSES (PTS TO MASTER)

1. StatusResponse ‘S’ (0x53): response on pump status


Response code: ‘S’ (0x53)
Data: ▪ 1 decimal ASCII symbol (from 0 to 6): number of active (hang-up) nozzle, ‘0’ –
nozzles are hang down
▪ 1 decimal ASCII symbol (0....F): status of pump:
▪ ‘0’: pump is not active (blocked or local control is switched on)
▪ ‘1’: nozzle is hang down (waiting mode)
▪ ‘3’: nozzle is hang up, waiting for allowance on dispensing
▪ ‘8’: state of an error
▪ 1 decimal ASCII symbol - status of command currently executed on pump:
▪ 0 or ‘0’: previous command executed successfully (no pending command)
▪ (command code): command being currently executed by pump
▪ ‘E’: previous command not executed by pump (error)
Purpose: Transfers status of pump. PTS can transfer this response in order to confirm any of the
commands while its control over pump is locked with LockRequest command.
Example: StatusResponse of pump 1:

10 02 31 53 31 33 00 29 BF 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
53 => <RESPONSE CODE>
31 => number of active nozzle (1)
33 => status of pump (nozzle up)
00 => status of command currently executed on pump (no
pending command)
29 BF => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 34 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

2. UnlockStatusResponse ‘U’ (0x55): response on pump status


Response code: ‘U’ (0x55)
Data: ▪ 1 decimal ASCII symbol (from 0 to 6): number of active (hang-up) nozzle, ‘0’ –
nozzles are hang down
▪ 1 decimal ASCII symbol (0....F): status of pump:
▪ ‘0’: pump is not active (blocked or local control is switched on)
▪ ‘1’: nozzle is hang down (waiting mode)
▪ ‘3’: nozzle is hang up, waiting for allowance on dispensing
▪ ‘8’: state of an error
▪ 1 decimal ASCII symbol - status of command currently executed by pump:
▪ 0 or ‘0’: previous command executed successfully (no pending command)
▪ (command code): command being currently executed by pump
▪ ‘E’: previous command not executed by pump (error)
Purpose: Transfers the status of pump. PTS transfers this response while its control over pump is
unlocked. PTS can transfer this response in order to confirm any of the commands.
Example: UnlockStatusResponse of pump 1:

10 02 31 55 31 33 00 29 37 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
55 => <RESPONSE CODE>
31 => number of active nozzle (1)
33 => status of pump (nozzle up)
00 => status of command currently executed by pump (no
command)
29 37 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 35 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

3. AmountInfoResponse ‘A’ (0x41): response on current dispensing


Response code: ‘A’ (0x41)
Data: ▪ 2 decimal ASCII symbols: number of transaction
▪ 1 decimal ASCII symbol: number of active nozzle (from 1 to 6)
▪ 8 decimal ASCII symbols: dispensed in volume units (10 ml)
Purpose: PTS informs MASTER about currently performed dispensing by pump nozzle
Example: Current dispensing by pump 1 (transaction 2, nozzle 1, currently dispensed 2.50 liters):

10 02 31 41 30 32 31 30 30 30 30 30 32 35 30 77 41 10 03,
where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
41 => <RESPONSE CODE>
30 32 => number of transaction (2)
31 => number of active nozzle (1)
30 30 30 30 30 32 35 30 => dispensed in volume units (2500
ml)
77 41 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 36 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

4. TransactionInfoResponse 'T' (0x54): response on performed transaction


Response code: 'T' (0x54)
Data: ▪ 2 decimal ASCII symbols: number of transaction
▪ 1 decimal ASCII symbol: number of active nozzle (from 1 to 6)
▪ 8 decimal ASCII symbols: dispensed in volume units (10 ml)
▪ 4 decimal ASCII symbols: price of 1 liter in currency units (cents)
▪ 8 decimal ASCII symbols: dispensed in currency units (cents)
Purpose: Informs MASTER about finishing of a transaction. Given message can be transferred by
PTS as a response to any of the commands described above. PTS will repeat given
response until MASTER transfers command CloseTransactionRequest with the same
number of transaction as in the response TransactionInfoResponse (see description of
CloseTransactionRequest command). Repeating of response TransactionInfoResponse
will last even after switching off and on of a power supply of a pump until reception of
the command CloseTransactionRequest.
Example: Response on performed transaction by pump 1 (transaction 2, nozzle 1, dispensed 7.50
liters with price 5.05 on amount 37.87 currency units):

10 02 31 54 30 32 31 30 30 30 30 30 37 35 30 30 35 30 35 30
30 30 30 33 37 38 37 9D 02 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
54 => <RESPONSE CODE>
30 32 => number of transaction (2)
31 => number of active nozzle (1)
30 30 30 30 30 37 35 30 => dispensed in volume units (7500
ml)
30 35 30 35 => price of 1 liter in currency units (505
cents)
30 30 30 30 33 37 38 37 => dispensed in currency units
(3787 cents)
9D 02 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 37 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

5. TotalInfoResponse ‘С’ (0x43): response on pump nozzle total counters


Response code: ‘С’ (0x43)
Data: ▪ 2 decimal ASCII symbols: number of transaction
▪ 1 decimal ASCII symbol: number of nozzle (from 1 to 6)
▪ 10 decimal ASCII symbols: money amount totals value (in cents)
▪ 10 decimal ASCII symbols: volume totals value (in 10 ml)
Purpose: PTS informs MASTER pump nozzle total volume and amount counters
Example: Response on data of electronic total counters of pump 1 nozzle 1 (totally dispensed
amount 37.87 currency units, totally dispensed volume 7.50 liters):

10 02 31 43 30 32 31 30 30 30 30 30 30 33 37 38 37 30 30 30
30 30 30 30 37 35 30 1C DF 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
43 => <RESPONSE CODE>
30 32 => number of transaction (2)
31 => number of nozzle (1)
30 30 30 30 30 30 33 37 38 37 => money amount totals (3787
cents)
30 30 30 30 30 30 30 37 35 30 => volume totals (750 ml)
1C DF => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 38 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

6. PricesResponse ‘P’ (0x50): response on pump nozzles prices


Response code: ‘P’ (0x50)
Data: ▪ 4 decimal ASCII symbols: product price in cents for nozzle 1
▪ 4 decimal ASCII symbols: product price in cents for nozzle 2
▪ 4 decimal ASCII symbols: product price in cents for nozzle 3
▪ 4 decimal ASCII symbols: product price in cents for nozzle 4
▪ 4 decimal ASCII symbols: product price in cents for nozzle 5
▪ 4 decimal ASCII symbols: product price in cents for nozzle 6
Purpose: PTS informs MASTER prices of each pump nozzles
Example: Response on prices for pump 1 nozzles:

10 02 31 50 31 31 31 31 32 32 32 32 33 33 33 33 34 34 34 34
35 35 35 35 36 36 36 36 7A 8B 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
50 => <RESPONSE CODE>
31 31 31 31 => ‘1111’ for price of nozzle 1
32 32 32 32 => ‘2222’ for price of nozzle 2
33 33 33 33 => ‘3333’ for price of nozzle 3
34 34 34 34 => ‘4444’ for price of nozzle 4
35 35 35 35 => ‘5555’ for price of nozzle 5
36 36 36 36 => ‘6666’ for price of nozzle 6
7A 8B => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 39 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

7. TagResponse ‘i’ (0x69): response on tag ID value from pump’s nozzle


Response code: ‘i’ (0x69)
Data: ▪ 1 decimal ASCII symbol: number of a nozzle with tag reader (from 1 to 6)
▪ 16 decimal ASCII symbols: ID code of tag
Purpose: PTS informs MASTER about ID code of tag
Example: Response on tag ID value from pump 1 nozzle 5:

10 02 31 69 35 30 30 30 30 30 30 30 35 30 30 30 30 30 30 30
35 94 F3 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
69 => <RESPONSE CODE>
35 => nozzle 5
30 30 30 30 30 30 30 35 30 30 30 30 30 30 30 35 => tag ID
value
94 F3 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 40 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

8. VersionResponse ‘V’ (0x56): response on firmware version and hardware configuration


Response code: ‘V’ (0x56)
Data: ▪ 8 decimal ASCII symbols: number of firmware version:
▪ 6 symbols: date of creation (“year-month-day”)
▪ 2 symbols: sequence number of firmware assembly (00 – 99)
▪ 150 ASCII symbols: list of available pumps communication protocols (every protocol
is represented by two ASCII symbols)
▪ 50 ASCII symbols: list of available probes communication protocols (every protocol
is represented by two ASCII symbols)
Purpose: PTS informs MASTER about current firmware version and hardware configuration.
Response is transferred only with a broadcasting address 0.
Note: See Appendix 4 for reference to a list of supported pump communication protocols and
their respective codes
Example: Response on firmware version and hardware configuration of PTS:

10 02 00 56 31 33 30 32 32 34 36 37 30 31 30 32 30 33 30 34
30 35 30 36 30 37 30 38 30 39 31 30 31 31 31 32 31 33 31 34
31 35 31 36 31 37 31 38 31 39 32 30 32 31 32 32 32 33 32 34
32 35 32 36 32 37 32 38 32 39 33 30 33 31 33 32 33 33 33 34
33 35 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 ED 95 10 03, where

10 => <DLE>
02 => <STX>
00 => <ADDRESS> ‘0’ (broadcast address)
56 => <RESPONSE CODE>
31 33 30 32 32 34 36 37 => firmware from 24 February, 2013,
assembly number 67
30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30 39 31 30
31 31 31 32 31 33 31 34 31 35 31 36 31 37 31 38 31 39 32 30
32 31 32 32 32 33 32 34 32 35 32 36 32 37 32 38 32 39 33 30
33 31 33 32 33 33 33 34 33 35 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 => list of available pumps
communication protocols
30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 => list of available probes
communication protocols
ED 95 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 41 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

9. PumpConfigResponse ‘Q’ (0x51): response on configuration of pump ports


Response code: ‘Q’ (0x51)
Data: ▪ Four blocks of data, repeating for every pump port of PTS:
▪ 1 decimal ASCII symbol: number of a pump port (from 1 to 4)
▪ 2 decimal ASCII symbols: type of communication protocol in pump port
▪ 1 ASCII symbol: code of baud rate in pump port

▪ Sixteen data blocks repeating for every logical address of pump:


▪ 2 decimal ASCII symbols: logical address of pump (from 1 to 16)
▪ 2 decimal ASCII symbols: physical address of pump (from 0 to 16, value 0 –
address is not set)
▪ 1 decimal ASCII symbol: number of PTS pump port (from 1 to 4)
Purpose: PTS informs MASTER about current configuration of PTS pump ports.
Response is transferred only with a broadcasting address 0.
Example: Response on configuration of pump ports:

10 02 00 51 31 30 31 34 32 30 30 30 33 30 30 30 34 30 30 30
30 31 30 31 31 30 32 30 30 30 30 33 30 30 30 30 34 30 30 30
30 35 30 30 30 30 36 30 30 30 30 37 30 30 30 30 38 30 30 30
30 39 30 30 30 31 30 30 30 30 31 31 30 30 30 31 32 30 30 30
31 33 30 30 30 31 34 30 30 30 31 35 30 30 30 31 36 30 30 30
AD C9 10 03, where

10 => <DLE>
02 => <STX>
00 => <ADDRESS> ‘0’ (broadcast address)
51 => <RESPONSE CODE>
31 => pump port 1
30 31 => ‘01’ for protocol “1. ADAST Easycall”
34 => ‘4’ for baud rate “4. 9600”
...
Pump ports 2, 3, 4 => not configured (values ‘0’ for
communication protocol and baud rate)
...
30 31 => pump 1 logical address
30 31 => ‘1’ physical address of pump 1
31 => ‘1’ pump port for pump 1
...
Pumps 2-16 => not configured (values ‘0’ for physical
address and pump port)
...
AD C9 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 42 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

10. ProbeConfigResponse ‘Z’ (0x5A): response on configuration of probe ports


Response code: ‘Z’ (0x5A)
Data: ▪ Three blocks of data, repeating for every probe port of PTS:
▪ 1 decimal ASCII symbol: number of a probe port (from 1 to 3)
▪ 2 decimal ASCII symbols: code of the communication protocol with probe
▪ 1 ASCII symbol: baud rate in probe port

▪ Sixteen data blocks repeating for every logical address of a probe:


▪ 2 decimal ASCII symbols: logical address of probe (from 1 to 16)
▪ 2 decimal ASCII symbols: physical address of probe (from 0 to 16, value 0 –
address is not set)
▪ 1 decimal ASCII symbol: number of PTS probe port (from 1 to 3)
Purpose: PTS informs MASTER about current configuration of PTS probe ports.
Response is transferred only with a broadcasting address – 0.
Example: Response on configuration of probe ports:

10 02 00 5A 31 30 31 34 32 30 30 30 33 30 30 30 30 31 30 31
31 30 32 30 30 30 30 33 30 30 30 30 34 30 30 30 30 35 30 30
30 30 36 30 30 30 30 37 30 30 30 30 38 30 30 30 30 39 30 30
30 31 30 30 30 30 31 31 30 30 30 31 32 30 30 30 31 33 30 30
30 31 34 30 30 30 31 35 30 30 30 31 36 30 30 30 39 D5 10
03, where

10 => <DLE>
02 => <STX>
30 => <ADDRESS> ‘0’ (broadcast address)
5A => <RESPONSE CODE>
31 => probe port 1 (DISP)
30 31 => ‘01’ for protocol “1. GILBARCO Veeder Root”
34 => ‘4’ for baud rate “4. 9600”
...
Probe ports 2 (LOG), 3 (USER) => not configured (values ‘0’
for communication protocol and baud rate)
...
30 31 => probe 1 logical address
30 31 => ‘1’ physical address of probe 1
31 => ‘1’ probe port for probe 1
...
Probes 2–16 => not configured (values ‘0’ for physical
address and probe port)
...
39 D5 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 43 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

11. ProbeMeasureResponse ‘X’ (0x58): response on probe measurements


Response code: ‘X’ (0x58)
Data: ▪ 2 bytes: bit mask of values measured by probe (1 = true, 0 = false):
▪ Byte 1:
▪ bit 7 (most significant bit): product height
▪ bit 6 – water height
▪ bit 5 – temperature
▪ bit 4 – product volume
▪ bit 3 – water volume
▪ bit 2 – product ullage
▪ bit 1 – product temperature compensated volume
▪ bit 0 (least significant bit) – product density
▪ Byte 2:
▪ bit 7 (most significant bit) – product mass
▪ bit 6 – reserved for future use
▪ bit 5 – reserved for future use
▪ bit 4 – reserved for future use
▪ bit 3 – reserved for future use
▪ bit 2 – reserved for future use
▪ bit 1 – automatic-in-tank delivery
▪ bit 0 (least significant bit) – probe error (tank alarm)
▪ 6 decimal ASCII symbols: value of product height in 0.1 mm (value “017526” is
equivalent to 1.7526 m)
▪ 5 decimal ASCII symbols: value of water height in 0.1 mm (value “02121” is
equivalent to 0.2121 m)
▪ 1 of 2 possible ASCII symbols:
▪ ‘+’ (0x2B): temperature of product is above or equal to zero degrees Celcium
▪ ‘-‘ (0x2D): temperature of product is below zero degrees Celcium
▪ 3 decimal ASCII symbols: absolute value of product temperature in 0.1 degrees
Celcium (value “212” is equivalent to 21.2 degrees Celcium)
▪ 6 decimal ASCII symbols: value of product volume in liters (value “7590” is
equivalent to 7590 l = 7.59 m3)
▪ 5 decimal ASCII symbols: value of water volume in liters (value “123” is equivalent
to 123 l = 0.123 m3)
▪ 6 decimal ASCII symbols: value of product ullage in liters (value “1600” is equivalent
to 1600 l = 1.6 m3)
▪ 6 decimal ASCII symbols: value of product temperature compensated volume in
liters (value “7120” is equivalent to 7120 l = 7.12 m3)
▪ 4 decimal ASCII symbols: value of product density in 0.1 kg/m3 units (value “7590” is
equivalent to 759.0 kg/m3 = 0.759 kg/l = 0.759 g/sm3)
▪ 7 decimal ASCII symbols: value of product mass in 0.1 kg (value “125634” is
equivalent to 12563.4 kg = 12.5634 tons)

In case if automatic in-tank delivery bit is set – then following bytes are added:
▪ 6 decimal ASCII symbols: start delivery date in format YYMMDD
▪ 6 decimal ASCII symbols: start delivery time in format hhmmss
▪ 6 decimal ASCII symbols: end delivery date in format YYMMDD
▪ 6 decimal ASCII symbols: end delivery time in format hhmmss
▪ 6 decimal ASCII symbols: start delivery product height in 0.1 mm (value “017526” is
equivalent to 1.7526 m)
▪ 6 decimal ASCII symbols: end delivery product height in 0.1 mm (value “017526” is
www.technotrade.ua page 44 from 66
UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

equivalent to 1.7526 m)
▪ 5 decimal ASCII symbols: start delivery water height in 0.1 mm (value “02121” is
equivalent to 0.2121 m)
▪ 5 decimal ASCII symbols: end delivery water height in 0.1 mm (value “02121” is
equivalent to 0.2121 m)
▪ 1 of 2 possible ASCII symbols:
▪ ‘+’ (0x2B): start delivery temperature of product is above or equal to zero
degrees Celcium
▪ ‘-‘ (0x2D): start delivery temperature of product is below zero degrees Celcium
▪ 3 decimal ASCII symbols: absolute value of product start delivery temperature in 0.1
degrees Celcium (value “212” is equivalent to 21.2 degrees Celcium)
▪ 1 of 2 possible ASCII symbols:
▪ ‘+’ (0x2B): end delivery temperature of product is above or equal to zero
degrees Celcium
▪ ‘-‘ (0x2D): end delivery temperature of product is below zero degrees Celcium
▪ 3 decimal ASCII symbols: absolute value of product end delivery temperature in 0.1
degrees Celcium (value “212” is equivalent to 21.2 degrees Celcium)
▪ 6 decimal ASCII symbols: value of start delivery product volume in liters (value
“7590” is equivalent to 7590 l = 7.59 m3)
▪ 6 decimal ASCII symbols: value of end delivery product volume in liters (value
“7590” is equivalent to 7590 l = 7.59 m3)
▪ 6 decimal ASCII symbols: value of start delivery product temperature compensated
volume in liters (value “7120” is equivalent to 7120 l = 7.12 m3)
▪ 6 decimal ASCII symbols: value of end delivery product temperature compensated
volume in liters (value “7120” is equivalent to 7120 l = 7.12 m3)
Purpose: PTS informs MASTER about measurements of probe
Example: Response on measurements by probe 1:

10 02 31 58 FF 80 30 32 35 30 30 30 30 32 35 30 30 2B 31 37
30 30 32 30 30 30 30 30 32 30 30 30 30 31 30 30 30 30 30 31
39 35 30 30 37 38 30 30 30 31 35 36 30 30 30 E5 67 10 03,
where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
58 => <COMMAND CODE>
FF 80 => bit mask of values measured by probe
(0b1111111110000000):
- product height present
– water height present
– temperature present
– product volume present
– water volume present
– product ullage present
– product temperature compensated volume present
– product density present
– product mass present
30 32 35 30 30 30 => product height 2500 mm (2.5 m)
30 32 35 30 30 => water height 250 mm (0.25 m)
2B 31 37 30 => product temperature +17 degrees Celcium
30 32 30 30 30 30 => product volume 20000 l (20 m3)

www.technotrade.ua page 45 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

30 32 30 30 30 => water volume 2000 l (2 m3)


30 31 30 30 30 30 => product ullage 10000 l (10 m3)
30 31 39 35 30 30 => product temperature compensated volume
19500 l (19.5 m3)
37 38 30 30 => product density 780 kg/m3 (0.78 kg/l or 0.78
g/sm3)
30 31 35 36 30 30 30 => product mass 15600 kg (15.6 tons)
E5 67 => <CRC>
10 => <DLE>
03 => <ETX>

Response on measurements by probe with information about in-tank delivery:


10 02 31 58 FF 80 30 30 31 32 30 30 30 30 30 31 32 2B 31 31
31 30 30 39 36 30 30 30 30 30 39 36 30 31 35 34 30 30 30 30
37 36 38 30 37 35 38 38 30 30 36 38 32 39 32 30 30 30 30 30
30 30 30 30 30 33 35 30 30 30 30 30 30 30 30 30 30 33 36 30
30 31 30 30 30 30 30 31 32 30 30 30 30 30 31 30 30 30 30 31
32 2B 31 31 30 2B 31 31 31 30 30 38 30 30 30 30 30 39 36 30
30 30 30 36 34 30 30 30 30 37 36 38 30 61 87 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
58 => <RESPONSE CODE>
FF 80 => bit mask of values measured by probe
(0b1111111110000000):
- product height present
– water height present
– temperature present
– product volume present
– water volume present
– product ullage present
– product temperature compensated volume present
– product density present
– product mass present
30 30 31 32 30 30 => product height 2500 mm (2.5 m)
30 30 30 31 32 => water height 250 mm (0.25 m)
2B 31 31 31 => product temperature +17 degrees Celcium
30 30 39 36 30 30 => product volume 20000 l (20 m3)
30 30 30 39 36 => water volume 2000 l (2 m3)
30 31 35 34 30 30 => product ullage 10000 l (10 m3)
30 30 37 36 38 30 => product temperature compensated volume
19500 l (19.5 m3)
37 35 38 38 => product density 780 kg/m3 (0.78 kg/l or 0.78
g/sm3)
30 30 36 38 32 39 32 => product mass 15600 kg (15.6 tons)
30 30 30 30 30 30 => start delivery date in format YYMMDD
(0 year, 0 month, 0 day)
30 30 30 30 33 35 => start delivery time (00:00:35)
30 30 30 30 30 30 => end delivery date in format YYMMDD (0
year, 0 month, 0 day)

www.technotrade.ua page 46 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

30 30 30 30 33 36 => end delivery time (00:00:36)


30 30 31 30 30 30 => start delivery product height 100 mm
(0.1 m)
30 30 31 32 30 30 => end delivery product height 120 mm
(0.12 m)
30 30 30 31 30 => start delivery water height 1 mm (0.001
m)
30 30 30 31 32 => end delivery water height 1.2 mm (0.0012
m)
2B 31 31 30 => absolute value of product start delivery
temperature +11 degrees Celcium
2B 31 31 31 => absolute value of product end delivery
temperature +11 degrees Celcium
30 30 38 30 30 30 => value of start delivery product volume
8000 l (8 m3)
30 30 39 36 30 30 => value of end delivery product volume
9600 l (9.6 m3)
30 30 36 34 30 30 => value of start delivery product
temperature compensated volume 6400 l (6.4 m3)
30 30 37 36 38 30 => value of end delivery product
temperature compensated volume 7680 l (7.68 m3)
61 87 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 47 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

12. ParamResponse ‘R’ (0x52): response on parameter value


Response code: ‘R’ (0x52)
Data: ▪ 4 decimal ASCII symbols: number of a parameter (from 0 to 9999)
▪ 8 hexadecimal ASCII symbols ('0'...'F'): value of a parameter
Purpose: PTS informs MASTER about values of the set parameters
Note: For a list of supported parameters in PTS controller see Appendix 4 for reference to
parameters used in PTS controller.
Example: Response on value of parameter with address 1, number 1:

10 02 31 52 30 30 30 31 30 30 30 30 30 30 30 31 BD F5 10
03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
52 => <RESPONSE CODE>
30 30 30 31 => parameter number (1)
30 30 30 30 30 30 30 31 => parameter value (0x00000001)
BD F5 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 48 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

EXTENDED COMMANDS (MASTER TO PTS)

1. ExtendedStatusRequest ‘ES’ (0x45 0x53): extended command on request of pump status


Command code: ‘ES’ (0x45 0x53)
Data: Absent
Purpose: MASTER device transfers this command every time when it needs information about
status of correspondent pump (configured in PTS under appropriate number) and
also for keeping a continuity of packets exchanging with it
Response: As a response can be transferred:
▪ StatusResponse: while a control over pump is locked with a LockRequest
command
▪ UnlockStatusResponse: while a control over pump is not locked with a
LockRequest command
▪ AmountInfoResponse: during dispensing process
▪ ExtendedTransactionInfoResponse: at a finished transaction
▪ ExtendedTotalInfoResponse: at request of total counters values (see a note to
ExtendedTotalRequest command)
▪ ExtendedPricesResponse: at request to get or set pump prices (see notes to
PricesGetRequest and ExtendedPricesSetRequest commands)
▪ TagResponse: at request to get pump nozzle tag ID (see notes to TagGetRequest
command)
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended request of status of pump 1:

10 02 31 45 53 23 62 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 53 => <COMMAND CODE>
23 62 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 49 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

2. ExtendedAuthorizeRequest ‘EA’ (0x45 0x41): extended command on allowance of dispensing


Command code: ‘EA’ (0x45 0x41)
Data: ▪ 1 decimal ASCII symbol: number of active nozzle (from 1 to 6)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 ASCII symbol:
▪ ‘L’ (4Ch): preset by product volume
▪ ‘P’ (50h): preset by money amount
▪ ‘F’ (46h): preset with full tank, in some situations also meaning preset dose is
to be entered from pump preset keyboard
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: preset dose in volume units (10 ml) or in currency
units (cents) (in case of authorization with full tank this field is ignored by PTS)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: price of 1 liter in currency units (cents)
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: Sets preset and nozzle price, allows dispensing for specified nozzle
Response: Same response as the response to a command ExtendedStatusRequest
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended request to authorize pump 1 with 7.50 liters and price 5.05:

10 02 31 45 41 31 3B 4C 3B 37 35 30 3B 35 30 35 3B 55 29
10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 41 => <COMMAND CODE>
31 => ‘1’ for nozzle number
3B => separator byte between data fields
4C => ‘L’ for preset by volume
3B => separator byte between data fields
37 35 30 => ‘750’ for preset dose
3B => separator byte between data fields
35 30 35 => ‘505’ for nozzle price
3B => separator byte between data fields
55 29 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 50 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

3. ExtendedTotalRequest ‘ET’ (0x45 0x54): extended command on request of pump nozzle total
counters
Command code: ‘ET’ (0x45 0x54)
Data: 1 decimal ASCII symbol: number of nozzle (from 1 to 6)
Purpose: Request of total counters for specified nozzle
Response: ExtendedTotalInfoResponse
Note: In case if a pump can not at once transfer a response ExtendedTotalInfoResponse,
PTS can response StatusResponse on a command ExtendedTotalRequest, and at one
of subsequent requests for the pump status with ExtendedStatusRequest to
response with ExtendedTotalInfoResponse
Example: Request data of electronic total counters on pump 1 (nozzle 1):

10 02 31 45 54 31 E0 3D 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 54 => <COMMAND CODE>
31 => ‘1’ nozzle number
E0 3D => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 51 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

4. ExtendedPricesSetRequest ‘Ep’ (0x45 0x70): extended command on setting of pump nozzles


prices
Command code: ‘Ep’ (0x45 0x70)
Data: ▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 1
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 2
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 3
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 4
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 5
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 6
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: Sets prices for each pump nozzle
Response: ExtendedPricesResponse
Note: ▪ In case if a pump can not at once transfer a response ExtendedPricesResponse, it
is allowed on a command ExtendedPricesSetRequest to response
ExtendedStatusResponse, and at subsequent requests for the status
ExtendedStatusRequest to response ExtendedPricesResponse.
▪ In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended request on setting of prices for nozzles to pump 1:

10 02 31 45 70 31 31 31 31 3B 32 32 32 32 3B 33 33 33 33
3B 34 34 34 34 3B 35 35 35 35 3B 36 36 36 36 3B BB 23 10
03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 70 => <COMMAND CODE>
31 31 31 31 => ‘1111’ for price of nozzle 1
3B => separator byte between data fields
32 32 32 32 => ‘2222’ for price of nozzle 2
3B => separator byte between data fields
33 33 33 33 => ‘3333’ for price of nozzle 3
3B => separator byte between data fields
34 34 34 34 => ‘4444’ for price of nozzle 4
3B => separator byte between data fields
35 35 35 35 => ‘5555’ for price of nozzle 5
3B => separator byte between data fields
36 36 36 36 => ‘6666’ for price of nozzle 6
3B => separator byte between data fields
BB 23 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 52 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

5. ExtendedProbeConfigSetRequest ‘EZ’ (0x45 0x5A): extended command on setting of


configuration of probe ports
Command code: ‘EZ’ (0x45 0x5A)
Data: ▪ Three blocks of data, repeating for every probe port of PTS:
▪ 1 decimal ASCII symbol: number of a probe port (from 1 to 3)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 2 decimal ASCII symbols: code of the communication protocol with probe
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 ASCII symbol: baud rate in probe port
▪ ‘;’ (0x3B): separator byte between data fields

▪ Sixteen data blocks repeating for every logical address of a probe:


▪ 2 decimal ASCII symbols: logical address of probe (from 1 to 16)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 2 decimal ASCII symbols: physical address of probe (from 0 to 16, value 0 –
address is not set)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 decimal ASCII symbol: number of PTS probe port (from 1 to 3)
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: MASTER device transfers this command when it is necessary to set configuration of
probe ports of PTS. Command is transferred only with a broadcasting address 0.
Command invokes restart of PTS.
Response: ExtendedProbeConfigResponse
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended request on setting of configuration of probe ports:

10 02 00 45 5A 31 3B 30 31 3B 34 3B 32 3B 30 30 3B 30 3B
33 3B 30 30 3B 30 3B 30 31 3B 30 31 3B 31 3B 30 32 3B 30
30 3B 30 3B 30 33 3B 30 30 3B 30 3B 30 34 3B 30 30 3B 30
3B 30 35 3B 30 30 3B 30 3B 30 36 3B 30 30 3B 30 3B 30 37
3B 30 30 3B 30 3B 30 38 3B 30 30 3B 30 3B 30 39 3B 30 30
3B 30 3B 31 30 3B 30 30 3B 30 3B 31 31 3B 30 30 3B 30 3B
31 32 3B 30 30 3B 30 3B 31 33 3B 30 30 3B 30 3B 31 34 3B
30 30 3B 30 3B 31 35 3B 30 30 3B 30 3B 31 36 3B 30 30 3B
30 3B A7 66 10 03, where

10 => <DLE>
02 => <STX>
00 => <ADDRESS> ‘0’ (broadcast address)
45 5A => <COMMAND CODE>
31 => probe port 1 (DISP)
3B => separator byte between data fields
30 31 => ‘01’ for protocol “1. GILBARCO Veeder Root”
3B => separator byte between data fields
34 => ‘4’ for baud rate “4. 9600”
3B => separator byte between data fields
...
Probe ports 2 (LOG), 3 (USER) => not configured (values

www.technotrade.ua page 53 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

‘0’ for communication protocol and baud rate)


...
30 31 => probe 1 logical address
3B => separator byte between data fields
30 31 => ‘1’ physical address of probe 1
3B => separator byte between data fields
31 => ‘1’ probe port for probe 1
3B => separator byte between data fields
...
Probes 2–16 => not configured (values ‘0’ for physical
address and probe port)
...
A7 66 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 54 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

6. ExtendedProbeConfigGetRequest ‘EY’ (0x45 0x59): extended command on request of


configuration of probe ports
Command code: ‘EY’ (0x45 0x59)
Data: Absent
Purpose: MASTER device transfers this command when it needs information on configuration
of PTS probe ports. Command is transferred only with a broadcasting address 0.
Response: ExtendedProbeConfigResponse
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended request of probe ports configuration:

10 02 00 45 59 F2 AA 10 03, where

10 => <DLE>
02 => <STX>
00 => <ADDRESS> ‘0’ (broadcast address)
45 59 => <COMMAND CODE>
F2 AA => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 55 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

EXTENDED RESPONSES (PTS TO MASTER)

1. ExtendedTransactionInfoResponse 'ET' (0x45 0x54): extended response on performed


transaction
Response code: 'ET' (0x45 0x54)
Data: ▪ 2 decimal ASCII symbols: number of transaction
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 decimal ASCII symbol: number of active nozzle (from 1 to 6)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: dispensed in volume units (10 ml)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: price of 1 liter in currency units (cents)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: dispensed in currency units (cents)
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: Informs MASTER about finishing of a transaction. Given message can be transferred by
PTS as a response to any of the commands described above. PTS will repeat given
response until MASTER transfers command CloseTransactionRequest with the same
number of transaction as in the response ExtendedTransactionInfoResponse (see
description of CloseTransactionRequest command). Repeating of response
ExtendedTransactionInfoResponse will last even after switching off and on of a power
supply of a pump until reception of the command CloseTransactionRequest.
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended response on performed transaction on pump 1 (transaction 1, nozzle 1,
dispensed 7.5 liters with price 5.05 on amount 37.87 currency units):

10 02 31 45 54 31 3B 31 3B 37 35 30 3B 35 30 35 3B 33 37 38
37 3B 71 27 10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 54 => <RESPONSE CODE>
31 => number of transaction (1)
3B => separator byte between data fields
31 => number of active nozzle (1)
3B => separator byte between data fields
37 35 30 => dispensed in volume units (7500 ml)
3B => separator byte between data fields
35 30 35 => price of 1 liter in currency units (505 cents)
3B => separator byte between data fields
33 37 38 37 => dispensed in currency units (3787 cents)
3B => separator byte between data fields
71 27 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 56 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

2. ExtendedTotalInfoResponse ‘EС’ (0x45 0x43): extended response on pump nozzle total


counters
Response code: ‘EС’ (0x45 0x43)
Data: ▪ 2 decimal ASCII symbols: number of transaction
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 decimal ASCII symbol: number of nozzle (from 1 to 6)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 19 decimal ASCII symbols: money amount totals value (in cents)
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 19 decimal ASCII symbols: volume totals value (in 10 ml)
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: PTS informs MASTER pump nozzle total volume and amount counters
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Extended response on data of electronic total counters of pump 1 nozzle 1 (totally
dispensed amount 37.87 currency units, totally dispensed volume 7.50 liters):

10 02 31 45 43 31 3B 31 3B 33 37 38 37 3B 37 35 30 3B 6F D3
10 03, where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 43 => <RESPONSE CODE>
31 => number of transaction (2)
3B => separator byte between data fields
31 => number of nozzle (1)
3B => separator byte between data fields
33 37 38 37 => money amount totals (3787 cents)
3B => separator byte between data fields
37 35 30 => volume totals (750 ml)
3B => separator byte between data fields
6F D3 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 57 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

3. ExtendedPricesResponse ‘EP’ (0x45 0x50): extended response on pump nozzles prices


Response code: ‘EP’ (0x45 0x50)
Data: ▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 1
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 2
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 3
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 4
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 5
▪ ‘;’ (0x3B): separator byte between data fields
▪ Up to 9 decimal ASCII symbols: product price in cents for nozzle 6
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: PTS informs MASTER prices of each pump nozzles
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Response on prices for pump 1 nozzles:

10 02 31 45 50 31 31 31 31 3B 32 32 32 32 3B 33 33 33 33 3B
34 34 34 34 3B 35 35 35 35 3B 36 36 36 36 3B BA F1 10 03,
where

10 => <DLE>
02 => <STX>
31 => <ADDRESS> ‘1’
45 50 => <RESPONSE CODE>
31 31 31 31 => ‘1111’ for price of nozzle 1
3B => separator byte between data fields
32 32 32 32 => ‘2222’ for price of nozzle 2
3B => separator byte between data fields
33 33 33 33 => ‘3333’ for price of nozzle 3
3B => separator byte between data fields
34 34 34 34 => ‘4444’ for price of nozzle 4
3B => separator byte between data fields
35 35 35 35 => ‘5555’ for price of nozzle 5
3B => separator byte between data fields
36 36 36 36 => ‘6666’ for price of nozzle 6
3B => separator byte between data fields
BA F1 => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 58 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

4. ExtendedProbeConfigResponse ‘EZ’ (0x45 0x5A): response on configuration of probe ports


Response code: ‘EZ’ (0x45 0x5A)
Data: ▪ Three blocks of data, repeating for every probe port of PTS:
▪ 1 decimal ASCII symbol: number of a probe port (from 1 to 3)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 2 decimal ASCII symbols: code of the communication protocol with probe
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 ASCII symbol: baud rate in probe port
▪ ‘;’ (0x3B): separator byte between data fields

▪ Sixteen data blocks repeating for every logical address of a probe:


▪ 2 decimal ASCII symbols: logical address of probe (from 1 to 16)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 2 decimal ASCII symbols: physical address of probe (from 0 to 16, value 0 –
address is not set)
▪ ‘;’ (0x3B): separator byte between data fields
▪ 1 decimal ASCII symbol: number of PTS probe port (from 1 to 3)
▪ ‘;’ (0x3B): separator byte between data fields
Purpose: PTS informs MASTER about current configuration of PTS probe ports.
Response is transferred only with a broadcasting address – 0.
Note: In case if data value equals to 0 – this data value it can be omitted and closing
separator between fields ‘;’ (0x3B) may be used at once.
Example: Response on configuration of probe ports:

10 02 00 45 5A 31 3B 31 3B 34 3B 32 3B 30 3B 30 3B 33 3B 30
3B 30 3B 31 3B 31 3B 31 3B 32 3B 30 3B 30 3B 33 3B 30 3B 30
3B 34 3B 30 3B 30 3B 35 3B 30 3B 30 3B 36 3B 30 3B 30 3B 37
3B 30 3B 30 3B 38 3B 30 3B 30 3B 39 3B 30 3B 30 3B 31 30 3B
30 3B 30 3B 31 31 3B 30 3B 30 3B 31 32 3B 30 3B 30 3B 31 33
3B 30 3B 30 3B 31 34 3B 30 3B 30 3B 31 35 3B 30 3B 30 3B 31
36 3B 30 3B 30 3B 4E 1F 10 03, where

10 => <DLE>
02 => <STX>
00 => <ADDRESS> ‘0’ (broadcast address)
45 5A => <RESPONSE CODE>
31 => probe port 1 (DISP)
3B => separator byte between data fields
31 => ‘1’ for protocol “1. GILBARCO Veeder Root”
3B => separator byte between data fields
34 => ‘4’ for baud rate “4. 9600”
3B => separator byte between data fields
...
Probe ports 2 (LOG), 3 (USER) => not configured (values ‘0’
for communication protocol and baud rate)
...
31 => probe 1 logical address
3B => separator byte between data fields
31 => ‘1’ physical address of probe 1
3B => separator byte between data fields
www.technotrade.ua page 59 from 66
UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

31 => ‘1’ probe port for probe 1


3B => separator byte between data fields
...
Probes 2–16 => not configured (values ‘0’ for physical
address and probe port)
...
4E 1F => <CRC>
10 => <DLE>
03 => <ETX>

www.technotrade.ua page 60 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

APPENDIX 1: Examples of a subprogram for calculation of a checksum CRC

Using C language:

typedef unsigned short WORD;


typedef unsigned char byte;

#define MAKE_TABS 0 /* Builds tables below */


#define FAST_CRC 1 /* If fast CRC should be used */

#if FAST_CRC & !MAKE_TABS

static WORD crc_16_tab[] = {


0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
};
#endif

www.technotrade.ua page 61 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

/* CRC-16 is based on the polynomial x^16 + x^15 + x^2 + 1. Bits are */


/* sent LSB to MSB. */
WORD get_crc_16( WORD crc, byte *buf, int size )
{
#if !(FAST_CRC & !MAKE_TABS)
register int i;
register int ch;
#endif

while (size--) {
#if FAST_CRC & !MAKE_TABS
crc = (crc >> 8) ^ crc_16_tab[ (crc ^ *buf++) & 0xff ];
#else
ch = *buf++;
for (i = 0; i < 8; i++) {
if ((crc ^ ch) & 1)
crc = (crc >> 1) ^ 0xa001;
else
crc >>= 1;
ch >>= 1;
}
#endif
}
return crc;
}

Using assembler 8051:

....
crc: ds 2
....
polin: ;in - a - next byte
xrl a,crc
mov crc,crc+1
mov crc+1,a
mov c,p
jnc li0
xrl crc,#01h
li0:
rrc a
jnc li1
xrl crc,#40h
li1:
mov c,acc.7
xrl a,crc+1
rrc a
mov crc+1,a
jnc li2
xrl crc,#80h
li2:
ret

www.technotrade.ua page 62 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

APPENDIX 2: Interaction diagram between MASTER and PTS


Table below shows possible responses by PTS on requests:
REQUEST RESPONSE
StatusRequest (‘S’ or 0x53) StatusResponse (‘S’ or 0x53)
AuthorizeRequest (‘A’ or 0x41) (while a control over pump is locked with a “LockRequest” command
HaltRequest (‘H’ or 0x48) in idle state and when a command is being executed by PTS and
CloseTransactionRequest (‘C’ or 0x43) response can not be given out at once)
TotalRequest (‘T’ or 0x54)
LockRequest (‘L’ or 0x4C) UnlockStatusResponse (‘U’ or 0x55)
UnlockRequest (‘U’ or 0x55) (while a control over pump is not locked with a “UnlockRequest”
SuspendRequest (‘s’ or 0x73) command)
ResumeRequest (‘r’ or 0x72)
LightsSetRequest (‘l’ or 0x6C) AmountInfoResponse (‘A’ or 0x41)
(during pump dispensing process)
---------------------------------->
TransactionInfoResponse (‘T’ or 0x54)
(at a finished transaction by pump)

TotalInfoResponse (‘C’ or 0x43)


(at request of total counters values from pump)

<----------------------------------
SetPricesRequest (‘p’ or 0x70)
GetPricesRequest (‘P’ or 0x50) PricesResponse (‘P’ or 0x50)

----------------------------------> <----------------------------------
TagGetRequest (‘i’ or 0x69) TagResponse (‘i’ or 0x69)

----------------------------------> <----------------------------------
ProbeMeasureRequest (‘X’ or 0x58) ProbeMeasureResponse (‘X’ or 0x58)

----------------------------------> <----------------------------------
ParamSetRequest (‘W’ or 0x57),
ParamGetRequest (‘R’ or 0x52) ParamResponse (‘R’ or 0x52)

----------------------------------> <----------------------------------
VersionRequest (‘V’ or 0x56) VersionResponse (‘V’ or 0x56)

----------------------------------> <----------------------------------
PumpConfigSetRequest (‘Q’ or 0x51),
PumpConfigGetRequest (‘F’ or 0x46) PumpConfigResponse (‘Q’ or 0x51)

----------------------------------> <----------------------------------
ProbeConfigSetRequest (‘Z’ or 0x5A),
ProbeConfigGetRequest (‘Y’ or 0x59) ProbeConfigResponse (‘Z’ or 0x5A)

----------------------------------> <----------------------------------

www.technotrade.ua page 63 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

APPENDIX 3: Typical flow chart during transaction between MASTER and PTS

Initial status of pump – unlocked by PTS, all nozzles are down.

In given example a pump is authorized by MASTER when a nozzle is taken up on pump. Also in given
example pump is previously locked by PTS controller (assuming that there can be other interconnected PTS
controllers on the site, which potentially can also give commands to this pump, thus to protect the pump
from commands from other PTS controllers given MASTER should lock control over this pump by throwing
LockRequest command). For a situation when there are no other interconnected PTS controllers on the site
(only 1 MASTER) – then LockRequest and UnlockRequest commands can be switched off if the parameter
for this reason is set (see section Appendix 4 for reference to a list of supported parameters in PTS
controller. Parameters for PTS controller), in this case PTS will always response StatusResponse, even after
sending to it UnlockRequest command.

Logic of using extended commands is the same as shown in this example.

STEP 1.
Cyclically request current states of all pumps (one by one):

StatusRequest (‘S’ or 0x53)


(MASTER) -------------------------------------------->
UnlockStatusResponse (‘U’ or 0x55)
<----------------------------------------------- (PTS)

STEP 2.
In case if a nozzle is taken up on the pump – lock the pump for control by PTS:

LockRequest (‘L’ or 0x4C)


(MASTER) -------------------------------------------->
StatusResponse (‘S’ or 0x53), byte 6 = 0
<----------------------------------------------- (PTS)

STEP 3.
Authorize a pump for dispensing (current price has to be specified in the command AuthorizeRequest). PTS
controller will keep returning StatusResponse with a value of status of command currently executed by
pump equal to ‘A’ until the pump is authorized:

AuthorizeRequest (‘A’ or 0x41)


(MASTER) -------------------------------------------->
StatusResponse (‘S’ or 0x53), byte 6 = ‘A’
<----------------------------------------------- (PTS)

STEP 4.
Keep requesting status (StatusRequest) during dispensing process and receiving AmountInfoResponse with
currently dispensed volume value:

StatusRequest (‘S’ or 0x53)


(MASTER) -------------------------------------------->
AmountInfoResponse (‘A’ or 0x41)
<----------------------------------------------- (PTS)

www.technotrade.ua page 64 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

STEP 5.
On one of subsequent requests of status (StatusRequest) receive total information about performed
transaction (total information about last dispensing) in the end of dispensing (as a rule at hanging down a
nozzle on pump):

StatusRequest (‘S’ or 0x53)


(MASTER) -------------------------------------------->
TransactionInfoResponse (‘T’ or 0x54)
<----------------------------------------------- (PTS)

STEP 6.
Close current transaction by throwing CloseTransactionRequest command. Note that PTS will keep
responding TransactionInfoResponse until the transaction is closed with a correct value of transaction
number:

CloseTransactionRequest (‘C’ or 0x43)


(MASTER) -------------------------------------------->
StatusResponse (‘S’ or 0x53)
<----------------------------------------------- (PTS)

STEP 7.
At necessity request pump nozzle total counters’ values (if required) by throwing TotalRequest command.
PTS controller will keep returning StatusResponse with a value of status of command currently executed by
pump equal to ‘T’ until the pump nozzle total counters’ values are given out:

TotalRequest (‘T’ or 0x54)


(MASTER) -------------------------------------------->
StatusResponse (‘S’ or 0x53) , byte 6 = ‘T’
<----------------------------------------------- (PTS)

STEP 8.
Receive pump nozzle total counters’ values for requested nozzle on one of subsequent status requests:

StatusRequest (‘S’ or 0x53)


(MASTER) -------------------------------------------->
TotalInfoResponse (‘C’ or 0x43)
<----------------------------------------------- (PTS)

STEP 9.
Unlock the pump from control by PTS by throwing UnlockRequest command:

UnlockRequest (‘U’ or 0x55)


(MASTER) -------------------------------------------->
UnlockStatusResponse (‘U’ or 0x55)
<----------------------------------------------- (PTS)

STEP 10.
Cyclically request current states of all pumps (one by one):

StatusRequest (‘S’ or 0x53)


(MASTER) -------------------------------------------->
UnlockStatusResponse (‘U’ or 0x55)
<----------------------------------------------- (PTS)

Go to STEP 1.

www.technotrade.ua page 65 from 66


UNIPUMP COMMUNICATION PROTOCOL SPECIFICATION FOR PTS CONTROLLER OVER FUEL DISPENSERS AND ATG SYSTEMS
Revision: R23 Review date: 21 October, 2017

APPENDIX 4: PTS controller configuration XML file

Pts controller configuration file pts_config_en.xml (name can differ depending of the localization of the file)
contains information on:
• list of supported pumps communication protocols and their respective codes,
• list of supported probes communication protocols and their respective codes,
• list of supported baud rates and their respective codes,
• list of parameters for PTS controller,
• list of parameters for pumps and probes communication protocol

Pts controller configuration file pts_config_en.xml can be found in the PTS controller configuration utility.

www.technotrade.ua page 66 from 66

You might also like