Professional Documents
Culture Documents
UniPump Protocol For PTS Controller
UniPump Protocol For PTS Controller
“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
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
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.
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.
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.
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.
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.
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).
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.
Presence in informational stream of DLE-cycles with illegal values of closing bytes can be evaluated by a
receiving side as a communication failure.
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.
In commands and responses to pump and probes addresses (range 1 – 16) are the following:
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.
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.
At calculation only informational symbols are summarizes – this means that service prefixes DLE at
calculation of a checksum are ignored.
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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)
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)
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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
Using C language:
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;
}
....
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
<----------------------------------
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)
----------------------------------> <----------------------------------
APPENDIX 3: Typical flow chart during transaction between MASTER and PTS
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.
STEP 1.
Cyclically request current states of all pumps (one by one):
STEP 2.
In case if a nozzle is taken up on the pump – lock the pump for control by 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:
STEP 4.
Keep requesting status (StatusRequest) during dispensing process and receiving AmountInfoResponse with
currently dispensed volume value:
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):
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:
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:
STEP 8.
Receive pump nozzle total counters’ values for requested nozzle on one of subsequent status requests:
STEP 9.
Unlock the pump from control by PTS by throwing UnlockRequest command:
STEP 10.
Cyclically request current states of all pumps (one by one):
Go to STEP 1.
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.