Zao NPF - Twotp-Is-Is2.26-P PDF
Zao NPF - Twotp-Is-Is2.26-P PDF
Zao NPF - Twotp-Is-Is2.26-P PDF
TWOTP-IS-IS2.26-P
Document ID: 4280
REVISION
2.26
by
Gilbarco Veeder-Root provides the material in this document “as is”, without warranty of any kind, either
expressed or implied. Gilbarco may make changes and/or improvements in the program(s) described in this
document at any time, without notice.
This product could contain technical inaccuracies or typographical errors. Changes are routinely made to the
information herein which will be incorporated into new editions of the publication.
The techniques described in this document are the property of Gilbarco Veeder-Root. The last character in the
document number printed on the title page of this document reflects the sensitivity of the material contained here,
and indicates, as explained below, the handling required:
This PROPRIETARY, SPECIAL HANDLING document contains extremely sensitive material. It may not
be duplicated or distributed either inside or outside Gilbarco without written approval by an authorized
executive.
The PROPRIETARY document may be duplicated as needed for general use within Gilbarco, by
Gilbarco employees. All distributions should be reported to Software and Documentation Control so
future revisions can be distributed to all those holding copies of the document.
For distribution outside Gilbarco, this should be handled like a PROPRIETARY, SPECIAL HANDLING
document (see above).
This non-confidential MANUAL may be duplicated as needed for use either inside or outside Gilbarco.
All distributions should be reported to Software and Documentation Control so any future revisions can
be distributed to all those holding copies of the document.
TABLE OF CONTENTS
1. CHANGE HISTORY ................................................................................................................. 5
2. INTRODUCTION ...................................................................................................................... 7
2.1 GENERAL DESCRIPTION 7
2.1.1 Compatibility 7
2.1.2 Improved Communication 7
2.1.3 Reduce Risk 7
2.1.4 Education 8
2.2SCOPE 8
2.3ORGANIZATION 8
2.4APPLICABLE REFERENCE DOCUMENTS 8
2.5GLOSSARY 8
3. LINE LEVEL COMMUNICATION PROTOCOL ...................................................................... 12
3.1 TWO WIRE CURRENT LOOP INTERFACE 12
3.2 NOTATION CONVENTIONS 12
3.3 WORD FORMAT 13
3.3.1 Exception 13
3.4 LINE PROTOCOL, TIMING REQUIREMENTS AND ERROR RECOVERY 14
3.4.1 POLLING (Status) 14
3.4.2 A SINGLE WORD COMMAND 14
3.4.3 DATA TO PUMP 15
3.4.4 DATA TO CONSOLE 16
3.5 DATA LENGTH (DL) 17
3.6 LRC CHECK CHARACTER 17
3.7 DATA AND DATA CONTROL WORD (DCW) 17
3.8 COMMAND CODE 18
3.9 PUMP STATUS WORDS 19
4. MESSAGE LEVEL COMMUNICATION PROTOCOL ............................................................ 20
4.1 STATUS POLLS: COMMAND ‟0‟ 20
4.2 AUTHORIZE OR RE-AUTHORIZE: COMMAND ‟1‟ 22
4.3 PUMP STOP: COMMAND ‟3‟ 23
4.4 BROADCAST COMMANDS TO ALL PUMPS 24
4.4.1 ALL STOP: COMMAND ‟F‟ ‟C‟ 24
4.5 REQUEST FOR TRANSACTION DATA: COMMAND ‟4‟ 25
4.6 REQUEST FOR PUMP TOTALS: COMMAND ‟5‟ 29
4.7 REQUEST FOR REAL-TIME MONEY: COMMAND ‟6‟ 31
4.8 SEND DATA TO PUMP: COMMAND ‟2‟ 32
4.8.1 “RANGE-OF-GRADES” PRESET DATA 32
4.8.2 STANDARD PRESET DATA 35
4.8.3 PRICE CHANGE DATA 38
4.8.4 LEVEL CHANGE DATA 40
4.9 SPECIAL FUNCTION COMMAND 41
4.9.1 COMMAND STRUCTURE 42
4.9.2 RESPONSE STRUCTURE 43
4.9.2.1 Data Block Format 45
4.9.3 This section describes the response messages in the Data Block. 46
4.9.3.1 The Definition of a Null Block 46
4.9.4 Command and Response Structure 47
4.9.4.1 Version Number Request (X3X2X1 = 001) 47
4.9.4.2 Miscellaneous Pump Data Request (X3X2X1 = 00E) 48
4.9.4.3 Configuration Request (X3X2X1 = 00F) 49
4.9.4.4 Extended Pump Status (X3X2X1 = 010) 50
4.9.4.5 Blend Ratio Data Request (X3X2X1 = 401) 52
4.9.4.6 Pure Product Totals Request 405 (X3X2X1 = 405) 53
1. CHANGE HISTORY
Revision Date Author Changes
1.0 01 DEC 1992 Committee Initial Release
2.0 01 JUL 2008 Oldham Change to more readable format
Add in Appendix to cover CRC Calculation
Added Application Note 2, 3, 5, 6, 7 and 8 covering preset
methodology, price change methodology, grade selecting,
push to start and push to stop methodology
Clarify preset messages, field lengths and use with 5 and 6
digit money mode
2.10 02 SEP 2008 Oldham Updated the document format
Added QWB ID Number to document
Added footer to document
Update the general information, baud rates and options
Added modern Two-Wire state diagram
Added more pump state information
2.11 28 JUL 2010 Oldham Clarify the grade bit field of the “Range-of-Grades” Preset
2.17 18 OCT 2010 Oldham Clarified 2+1+1 and 3+1+1 style dispensers for Special
Function 00E
All Special Functions detailed with Field Descriptions
2.18 20 JAN 2011 Oldham Clarified 2+2 and 3+2 dispensers for Special Function 00E
Pump Identification section to describe fields for totalizers,
prices, grades by unit type code
2.19 07 FEB 2011 Oldham Correct field information for totals messages
2.20 15 APR 2011 Oldham Added SHF Unit Type Code
Detailed SHF to Special Function 00E
Special Functions in sequential order
Special Function Data now details as command or response
in each Special Function description
2.21 21 APR 2011 Oldham Added original Two-Wire State Transition Table and state
transition descriptions back
2.22 25 APR 2011 Oldham Added Change History
Clarified 2+2 and 3+2 style dispensers for Special Function
00E
2.23 10 MAY 2011 Oldham Application Notes for China
Toogood Clarified and Corrected Application Note 8
Clarified Transaction Response (command 4) while pump is
in Stop state
Extra transitions on State Diagram & Tables
Special Function 410 error code definitions
Transaction Data Error Codes
Application Notes re-numbered
Application Note 9 added for China
Added Sprint and Frontier to Application Node 8
Removed approvals information from section 3.3
2.24 23 JUN 2011 Oldham Unit type Codes for x+1+1, x+SHMPD2 and x+2 redefined.
Grade and Totals mapping for 2+1+1, 3+1+1, 2+2 and 3+2
redefined.
Unit Type 41 in v2.23 is split into Types 41 and 42.
Unit Type 42 in v2.23 is split into Types 43, 44 and 45.
Unit Type 43 in v2.23 is split into Types 46, 47, 48 and 49.
Unit Type Code Table for SF00E set to reference Section 6.
2. INTRODUCTION
2.1 GENERAL DESCRIPTION
The purpose of this report is to describe the Gilbarco two-wire communication protocol which was designed to
transmit commands and data between electronic pumps and consoles. This report describes the protocol level,
message level, timing, and the effects of two-wire commands on the pump. This document will serve as a
design and test tool for future pump and console design.
The two-wire protocol is a Gilbarco proprietary protocol which uses an 11 bit data format. The protocol was
designed to support up to 16 active fueling positions. A single word command format and multiple word data
block are used in this protocol to obtain maximum communication throughput. Throughout the specification, the
console or controller means any device that can be connected to control the pumps.
This report provides a framework for a better understanding of the Two-Wire Protocol and the relationship
between all Gilbarco consoles and pumps regardless of country of origin. It attempts to describe the basic,
generic functional elements of pump control by a console or controller. It covers all aspects of basic pump control
including:
Bringing a pump on-line
Configuring a pump
Use of Special Functions
Polling pumps
Fuel Sale management
Pump diagnostics
Weights and Measures
Safety
2.1.1 Compatibility
An important aspect of all of our products is compatibility. Backward compatibility between pump and consoles
for existing functions is vitally important and a continuing Gilbarco customer service objective. The Two-Wire
Protocol exists for that reason as much as any other. However, true compatibility requires that a pump and a
console be compatible at not just the message level but also at the functional level.
2.1.4 Education
This document provides a source of accurate and complete information concerning pump control for employees
new to the company or new to the pump control aspect of our products.
2.2 SCOPE
This document is a source for:
An explanation of the relationship between a console/controller and pumps in the retail fuel marketplace;
The chronological order of the Two-Wire message set in basic pump control functions;
The status of the functional compliance with the Two-Wire of all Gilbarco pumps.
2.3 ORGANIZATION
The 3 LINE LEVEL COMMUNICATION PROTOCOL, 4 MESSAGE LEVEL COMMUNICATION PROTOCOL,
and 5 PUMP STATUS TRANSITION(S) sections provide three views of the pump/console relationship: line level
communications, message level communications, and basic pump control functions. The Basic Pump Control
section is written from the perspective of the console/controller with the topics appearing chronologically as they
would be encountered by a console/controller from installation through operation and, if appropriate, pump
programming and diagnostic control.
2.5 GLOSSARY
The Glossary, normally the last section of a document, appears near the beginning in this one because it
is vitally important that the reader know the meaning of key words and phrases used in this document.
Some familiar terms may be used in a new way or new terms used in place of old standbys. A careful
reading of this glossary along with reference to it during the reading of the other sections should help the
reader gain a more complete understanding of the concepts contained in this document.
Authorization Is the site controller/console approving the dispensing of fuel by a pump. A pump
may not dispense fuel prior to receiving authorization, however other elements
may be necessary after authorization is received before dispensing of fuel can
Blender Is any pump capable of blending two pure products to create a blended grade of
fuel. This includes single hose blender pumps, as well as “fixed” blender pumps,
which look to the user like a standard MPD. Electronic blenders may be blend
ratio programmable or set. If they are programmable, their blend ratios cannot be
changed over the Two-Wire. Set blenders do not allow their blend ratios to be
changed.
Mechanical Can dispense 1 grade of blended fuel but the blend ratio is mechanically set and
Blender cannot be changed. Over the Two-Wire this pump cannot be distinguished from
an MPD!
Fixed Blender Looks to the user just like an MPD (e.g. a nozzle per grade) but uses the blending
formats over the Two-Wire. Optionally it may have an additional hose which
dispenses a non-blending grade.
Command Is sent by the controller to the pump. A command contains data or instruction(s)
for the receiving device.
Device ID Or device address. The physical address of a device is part of the link level
protocol.
Dispenser Or device address. The physical address of a device is part of the link level
protocol.
Dispenser Is a unit which is used with a remote submerged turbine pump or STP.
Download Is the term used to describe the communication from a controller to a pump of the
parameters which control the operation of that pump. The latter may also be
referred to as Parameter Download.
Fuel Delivery The logical condition of a pump with respect to its ability to dispense fuel.
Condition
Fueling Position Is the term used to describe a single logically addressable device which dispenses
fuel and with which the Controller communicates concerning Fuel Sales. A fueling
Hose Is the physical hose which dispenses a grade (or grades of fuel). There is not
necessarily a one to one ratio equivalence for grade to hose due to blending
where one hose may dispense multiple grades and MPDs where the same grade
may be dispensed from multiple hoses.
Message Level Is the definition of the format, structure and meaning of the messages carried by
the link level protocol.
Messages Sent between the pumps and the controller via the link level protocol.
MSD Most Significant Digit: The leftmost, non-zero digit in a number. It is the digit with
the greatest value in the number.
PAM Is a Pump Access Module which allows a third party device to control Gilbarco
pumps, providing limited pump control and protocol conversion.
Price level Selects one of the prices in the pump at which a grade of fuel may be dispensed
(e.g. Cash price/Credit price). Price levels may be set by the controller or at the
pump.
Product flow Is defined to have begun when the pump no longer returns a zero volume amount
for Transaction Data. For example, if a pump does not display any volume until X
pulses have occurred, no product has flowed until X is reached.
Program Used as a noun refers to the actual binary object file of a device. When it is used
as a verb it means to set the operating parameters for a pump or a controller.
Pump A pump is the generic term used when it is not necessary to differentiate between
a dispenser and a self-contained unit. While a
Pump Handle (Or lever) when present, is a mechanism the consumer must lift or turn to cause
the pump to recognize that someone wants to use the pump.
Pump Totals Are the totals of the volume and money amount dispensed by grade. These totals
can be requested over the Two-Wire. These totals are never reset by the pump
other than through Cold Start and at rollover (although some pumps may allow
programming at the keypad or from the controller).
Pure Product Is the fuel which is kept in the storage tanks at a site. Pure product may be
dispensed as a non-blended grade or form a new grade in a blend with another
pure product.
Pure Product Are the non-resettable volume totals kept by a blender for the pure products used
Totals to make the blended grades. These totals are never reset to zero except at Cold
Start and rollover (although some pumps may allow programming at the keypad).
Real Time Money Is the process of a controller monitoring a fuel sale so the operator may watch the
money total for the sale increase as the fuel is dispensed.
Self Contained Is a unit which has the actual pump contained inside the unit housing, and does
not depend on an STP.
Settlement Is the process of actually paying for the sale and removing it as an active sale at
the console.
Standalone Is the mode of operation in which a pump authorizes the dispensing of fuel without
the controller. The pump will not communicate to the controller while it is operating
in Standalone, but will continue to accumulate Pump Totals and Pure Product
Totals.
System Is the entity resulting from the interconnection of a controller/console with pumps.
Terminated Fuel Is a fuel sale which has been discontinued such that no more fuel may be
Sale delivered, however all conditions are not met for the fuel sale to be complete.
This document does not define the physical implementation of the link. The standard form of physical layer is a
45 mA current loop, as defined in the referenced documents “Two-Wire Hardware Specification - TWO-HW-
S1.0-S” and “Electronic Dispenser Controller Interface Specification for Current Loop or RS422 - TWOTP-HW -
V50.0-P”. Other physical layers may be used, such as RS485 or Ethernet. These will not be inter-operable with
standard devices except with some form of hardware adapter. The descriptions and timings which follow
assume standard asynchronous communications using a UART or equivalent, and are applicable to the standard
current loop.
e. No Response Timer
No response timer is a time interval which is set up by the console to wait for pump responses
before retransmitting the request or taking any actions.
f. Retry Counter
Retry counter indicates the number of tries a requesting device will attempt to obtain the
appropriate response before it takes an appropriate action.
h. Data Word
Data Word is an 8 bit word, as part of a data block, which conveys the actual message. The most
significant nibble of a Data Word is always ‟E‟.
i. Pumps, dispenser, fueling positions are used in this specification interchangeably. It indicates a
unique addressable communication position. For example, a dual MPD will have two fueling
positions, but could have up to 8 hoses.
The bit rate is 5787 ± 0.5% bits/second, including variations due to frequency and clock phase shift tolerance.
3.3.1 Exception
Mandates for 1200, 2400, 4800, 9600 and 19200 bits/second are used for special configurations worldwide.
Note that all the timing requirements in this section indicate the time interval between the last bit of the previous
word and the first bit of the next word.
Console Pump
<STATUS REQUEST> ---------->
t1
<---------- <PUMP STATUS>
t2
<NEXT TRANSMISSION TO ANY PUMP> ------->
t1 = 0ms - 68ms
t2 = at least 5ms
Exception: Some very old pumps might exceed (be slower than) the t1 68ms limit.
Console Pump
<COMMAND CODE> ---------->
t0
<STATUS REQUEST> ---------->
t1
t0 = at least 68ma
t1 = 0ms - 68ms
t2 = at least 5ms
Exception: Some very old pumps might exceed (be slower than) the t1 68ms limit.
Console Pump
<DATA NEXT COMMAND> ---------->
t1
<---------- <SEND DATA>
t2
<DATA BLOCK> ---------->
t3
<STATUS REQUEST> ---------->
t1
<---------- <PUMP STATUS>
t2
<NEXT TRANSMISSION TO ANY PUMP> ---------->
<DATA BLOCK> := <STX>
t6
<DCL>
<message>
<LRC next>
<LRC>
<ETX>
t1 = 0ms - 68ms
t2 = at least 5ms
t3 = at least 68ms
t6 = The time interval between words in the data block should be at least 68ms.
Exception: Some very old pumps might exceed (be slower than) the t1 68ms limit.
Console Pump
<SEND DATA COMMAND> ---------->
t1
<---------- <DATA BLOCK>
t2
<NEXT TRANSACTION TO ANY PUMP> ---------->
t1 = 0 - 68ms
t2 = at least 5ms
t4 = all data blocks transmitted to the console must meet this condition:
The interval between words must be between 2ms and 68ms.
Data blocks with 8 or more words must also meet this condition:
For any group of 8 consecutive words, the average word transmission rate shall not be
faster than 6.5ms, as computed below:
Exceptions:
Sandpiper-based and E101-based pumps may transmit message words contiguously.
Some very old pumps might exceed (be slower than) the t1 68ms limit.
Standard
Word Format
A. Data Words E 0-F
B. Data Control Words
End of Text F 0
Volume Preset F 1
Money Preset F 2
Fill-Up F 3
Level 1 F 4
Level 2 F 5
Grade Data Next F 6
PPU Data Next F 7
Pump Identifier Next (from Pump)
F 8
Preset Quantity Next (from Console)
Volume Totals Next F 9
Money Totals Next F A
LRC Next F B
Unused F D
Special Function Mode Next F E
Start of Text F F
Command/Response Syntax
Valid Pump State: Any pump state
State After Command Acceptance A Pump may change its two-wire status as a result of a status poll
only as follows:
1. Clear ERROR condition
2. Transition from FEOT or PEOT to OFF or CALL
Note:
1. Pumps will respond FEOT/PEOT repeatedly to status polls, until another pump ID is polled or the pump
receives some command other than status poll.
0 DATA ERROR The pump will enter the DATA ERROR state under the
following conditions:
1. The pump is in DATA STATE when it receives an
invalid data block including any word that the most
significant nibble is not an E or F and any
transmission error such as parity error, checksum,
overrun or framing error
2. The pump receives a correctly formatted message
containing incorrect fields.
B FEOT The pump has completed a delivery with the pump handle at
‟OFF‟ position.
The command is used to enable a pump to deliver or to resume the delivery of the fuel product. In some
European pumps, the Authorization command is used when the pump is in state IDLE/OFF to clear the
transaction displays to zero. Only the pump with a matched pump ID should accept this command.
Command/Response Syntax
Valid Pump State: OFF or CALL for authorization, STOP for re-authorization
Response None
This command is used to de-authorize an authorized pump. It may also be used to cancel a Preset so that a
different limit can be sent (see Appendix A: Application Note #005). Some European dispensers can be
configured by the Manager Keypad so that a Pump Stop command received in the OFF state will turn off the Red
Drive-off Light. This is used to show that the sale has been paid. Only the pump with a matched pump ID should
accept this command.
Command/Response Syntax
Valid Pump State: AUTH or BUSY for de-authorization, OFF or CALL for Preset cancel
Response None
This command is used by the console to stop every pump in the loop.
Command/Response Syntax
Valid Pump State: OFF, BUSY, CALL or STOP
Response None
The command is used by the console to request the transaction data. Dispensers should return data for the
current transaction in the STOP state (and Call after Authorization), the just-finished transaction in the FEOT and
PEOT states, and previous transaction in OFF and CALL states before Authorization. The transaction data is
finalized before the pump transmits EOT status (or returns to OFF in the case of a zero transaction).
Controllers should be aware that not all dispensers will do this. In particular, some will continue to send the
previous transaction data even after Authorization in the CALL and STOP states.
Command/Response Syntax
Valid Pump State: OFF, CALL, FEOT, PEOT and STOP
Response
Symbol Words Bytes Definition
<STX> FF 1 Start of text
<g> EX 1 Grade
X = 0 – Grade 1
|
|
X = F – Grade 16
Total Bytes = 33
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
1
* There are two types of data which can be included in the pump identifier. The EA
response form must not include ERROR information. The console should ignore EX
data words. EC-EF shall be interpreted as EA.
A. EA Ep Ex Ex Ex
p: Pump number
0 ---- pump 1
|
|
F ---- pump 16
x: 0 to F don‟t care
B. EB Ep Eh Ea Eb
p: Pump number
TWOTP-IS-IS2.26-P Gilbarco Inc. 1993, 2011 Revision 2.26
Gilbarco Dispenser Two-Wire Protocol for Third Party Pump Controllers Document ID: 4280
This document is UNCONTROLLED if printed, unless properly stamped.
Exclusive use of ZAO "NPF "SIBNEFTEKART"
0 --- pump 1
|
|
F --- pump 16
h: 0 ---- no error
1 - F --- hose number
1 ---- left most hose at side A or right most hose at side B
2 ---- next to hose 1
: :
a,b: a and b are used as error code and identification bits.
Error code: b1, a4, a3, a2, a1 ---- a combined 5 bit word.
b1 is the least significant bit of b.
E b4 b3 b2 b1 E a4 a3 a2 a1
Optimized Advantage
China Advantage
5-Bit Binary E500
Error Endeavor
Decimal b1, a4, a3, Horizon
Legacy
Code SK700
Error a2, a1 Performer
E300
50 31 11111 POS Communications Failure
49 30 11110
48 29 11101
47 28 11100
46 27 11011 Minimum Preset
45 26 11010
Pump Handle Error Pump Handle Error
44 25 11001 Pump Handle on at Power Up Pump Handle on at Power Up
General Use General Use
43 24 11000 Must use Special Function 410 Must use Special Function 410
42 23 10111 Price Posting Option Changed
40 21 10101
39 20 10100
38 19 10011
37 18 10010
TWOTP-IS-IS2.26-P Gilbarco Inc. 1993, 2011 Revision 2.26
Gilbarco Dispenser Two-Wire Protocol for Third Party Pump Controllers Document ID: 4280
This document is UNCONTROLLED if printed, unless properly stamped.
Exclusive use of ZAO "NPF "SIBNEFTEKART"
36 17 10001
35 16 10000 Configuration Data Error
23 4 00100
22 3 00011
21 2 00010 Non-existent memory access
Pulser Error
20 1 00001 Pulser Failure
Pulser Failure
The command is used by the console to request the pump electronic volume and money totals that are stored in
the pump by grade. Only the pump with a matched pump ID should respond to the command. Also the PPU is
included in the data block which can be used to check if the pump has the correct price per unit.
Command/Response Syntax
Valid Pump State: OFF, CALL, FEOT, PEOT, and STOP
Response
Symbol Words Bytes Definition
<STX> FF 1 Start of text
<g> EX 1 Grade
X = 0 – Grade 1
|
|
X = F – Grade 16
(Repeat from <gn> Grade Data Next through <ppu2> digits for Grade 2, 3, 4, 5, and 6)
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
1
* <v> and <c> will be updated when a transaction that has at least 10 pulses is complete
in Advantage based pumps or when .01 units of fuel have been dispensed on Tulip,
Sandpiper and E101 based pumps.
The pump totals are updated before the pump transmits EOT status.
This command is used by the console to request the currently running transaction amount while the pump is
delivering fuel. Only the pump with a matched pump ID should respond to this command.
Command/Response Syntax
Valid Pump State: BUSY
Response
EX 6 The Current Money Display in the format
EX XXXXXX (BCD).
EX X = 0 to 9 in BCD format, the current
EX money display.
EX The least significant digit is transmitted
first. The decimal position of this field
EX matches the transaction data money
decimal point position.
Total Bytes = 6
State After Command Acceptance The pump should not change the STATE unless other events
occur, such as pump handle position, during transmission.
Note that some dispensers can be configured to return Real-Time Volume instead of Real-Time Money. In
that case, the format of the Volume data matches that in the Transaction Data (Command 4) response
message.
This section describes how the console sends the data to the pump. Refer to 3.4.3 DATA TO PUMP for line
level protocol information. Each data block message is processed by one pump only. In order for a pump to
process a message, it must first receive a Data Next single-byte command from the controller.
This is an alternative Standard format for “range of grades” money or volume preset.
Command/Response Syntax
Valid Pump State: OFF, CALL
Do not issue this command to a pump which has a preset transaction pending (see 3.4.3 DATA TO PUMP).
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
1
* Price level is optional for a money preset. The pump will assume the previous
transaction price level for this transaction if it is not specified in the block.
2
* The grade 4 or higher grade can be sent only to the pumps that support them. A
volume preset requires grade(s) and level in the preset block. The grades may
TWOTP-IS-IS2.26-P Gilbarco Inc. 1993, 2011 Revision 2.26
Gilbarco Dispenser Two-Wire Protocol for Third Party Pump Controllers Document ID: 4280
This document is UNCONTROLLED if printed, unless properly stamped.
Exclusive use of ZAO "NPF "SIBNEFTEKART"
optionally be sent in a money preset.
3
* The pump will enter ERROR state and ignore the preset data block if the grade or level
fields (volume or money preset) do not match a grade or level selection at the pump.
The console shall not transmit ‟AUTH‟ command to the pump until the console receives
a CALL or OFF response from this pump. Once the price level/grade(s) is accepted by
the pump, it shall not allow a delivery from any other level/grade(s).
4
* The comments associated with the Preset Amount are the same for this alternative
format as the ones shown for the previous format.
5
* Data length for 6 digit money fields is not available in Modular Advantage pumps or
before.
6
* Byte lengths for 6 digit mode field only apply to money preset messages. Volume
preset messages will only use 5 digit lengths.
NOTE: The only valid commands that may follow a preset message are status poll, ALL STOP,
pump stop, and Authorize after the pump accepts the preset message.
This command sequence allows the console to send the preset amount to the pump. An authorization command
code is required to authorize the pump even if the pump accepts the preset data. Note that the pump needs to
take all necessary caution to ensure that the preset amount will not be lost or reset before it receives an
authorization command. All authorizations for a preset amount/volume should be immediately preceded by a
preset data message. Also, once the preset amount is accepted by the pump, it must not allow the customer to
set or change price level or grade selection (volume preset only) at the pump. The pumps must support both the
money preset and volume preset.
This section only describes the format and contents of the data block. Refer to 3.4.3 DATA TO PUMP for line
level protocol information.
Command/Response Syntax
Valid Pump State: OFF, CALL
Do not issue this command to a pump which has a preset transaction pending (see 3.4.3 DATA TO PUMP).
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
1
* Price level is optional for a money preset. The pump will assume the previous
transaction price level for this transaction if it is not specified in the block.
2
* The grade 4 or higher grade can be sent only to the pumps that support them. A
volume preset requires grade and level in the preset block. The grade must not be
sent in a money preset.
3
* The pump will enter ERROR state and ignore the preset data block if the grade or level
fields (volume or money preset) do not match a grade or level selection at the pump.
The console shall not transmit ‟AUTH‟ command to the pump until the console receives
a CALL or OFF response from this pump. Once the price level/grade is accepted by
the pump, it shall not allow a delivery from any other level/grade.
NOTE: The only valid commands that may follow a preset message are status poll, ALL STOP,
pump stop, and Authorize after the pump accepts the preset message.
This command sequence allows the console to set the price at the pump. This section describes the format and
contents of the data block. Refer to 3.4.3 DATA TO PUMP for protocol level information.
Command/Response Syntax
Valid Pump State: OFF, CALL
Do not issue this command to a pump which has a preset transaction pending
(see note 4, 3.4.3 DATA TO PUMP).
Total Bytes = 13
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
1
* The grade 4 or higher grade can be sent only to the pumps that support them.
This command sequence allows the console to switch the price level at the pump without sending the whole price
per unit. This section describes the format and contents of the data block. Refer to 3.4.4 DATA TO CONSOLE
for protocol level information.
Command/Response Syntax
Valid Pump State: OFF, CALL
Do not issue this command to a pump which has a preset transaction pending
(see note 4, 3.4.3 DATA TO PUMP).
Total Bytes = 6
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
Special Functions are an extension to the basic Two-Wire Protocol which allow controllers to communicate with
pumps which provide features not anticipated by the initial Two-Wire design. Discussion in this section will be
limited to general information concerning the use of Special Functions. Use of specific Special Functions will be
discussed under the appropriate section of this document. For example, Special Functions for blending control
will be discussed under Blend Ratio Management.
Pumps that do not support Special Functions, or that support only a subset, are not easily identified by an ASC
(Authorized Service Contractor) as part of the system installation process. It is more desirable for the controller to
automatically determine which pumps on a loop support the Special Functions.
The following procedures are recommended for each Console, CRIND or PAM which will utilize the New Special
Functions.
A. To determine if a pump supports the Special Functions. First send a S.F. 001 (version #) command. If the
pump does not respond with a version #, it does not support the S.F.s. If it does respond with a version
#, send a S.F. 00E (Misc. Pump Data) command to it. If it responds with a configuration data block, the
pump supports at least the minimum subset of the Special Functions. If it does not respond or responds
with a Null block, it does not support the Special Functions.
B. Use of specific pump software version numbers returned by pumps to determine S.F. support should not
occur. This will leave us free to assign any version numbers we choose to new pump models or software
releases of existing models.
C. If the pump did not respond to S.F. 001 and you want to determine whether it is a blender, send it S.F 401
(Request for Blend Ratios). All blenders will respond to this S.F., and non-blenders will not.
Only the pump with a matched pump ID should send the data requested.
Command/Response Syntax
Valid Pump State
OFF, CALL, AUTH - for commands sending data to the pump
OFF, CALL, AUTH, STOP, FEOT/PEOT for commands requesting data
Total Bytes = Up to 41
Response <DATABLOCK>
State After Command Acceptance The pump should not change the STATE unless other events
occur, such as pump handle position, during transmission.
Refer to section 3.4.4 DATA TO CONSOLE for the line level communication requirement.
NOTE 1: Special Function Commands which have no data to transmit to the pump use the
above format with <m> omitted and a total message size of 9 bytes.
This section defines some general rules, which are used throughout the Special Function Responses.
A. All data blocks must conform to the Data Block format, which will be described in the 4.9.2.1 Data
Block Format.
B. In general, Most Significant Digit (MSD) will be transmitted first unless otherwise specified.
C. All words are transmitted in a modified ASCII format. The most significant bit of the word is set to 1.
The following table describes the words.
Pump Number B2 23
Category Command (SF3) B3
Checksum MSD C1 A7
Checksum LSD B7
G. Data Block is a block of words (data) including the Block Length, pump number, echoed commands,
block number, message, Carriage Return, and Line Feed.
This section describes the format of the Response Data Block. The response to a Special Function Command
must conform to this format.
NOTE: Modular Advantage non-blenders and some early Advantage non-blending pumps will
respond to a S.F. 001 with a data block which contains an additional character (F0).
This character is after the line feed which should be the last character (e.g. 8A F0)
4.9.3 This section describes the response messages in the Data Block.
When a pump responds with a Null Block to a S.F. Command, it means one of two things:
The Command is not supported by this pump
Some or all of the data in the data block is invalid
When a controller receives a Null Block from a pump, there is no point in resending the S.F. Command.
Response Format
Word Interpretation Comments
BX Software Version Number Version number MS digit (X = 0 – 9)
BX (C6 is a blank) Version Number Digit (X = 0 – 9)
BX Version Number Digit (X = 0 – 9)
BX Version Number LS Digit (X = 0 – 9)
Note: Epsilon units will send the last 4 digits of their 8 digit software version number.
Response Format
Word Interpretation Comments
BX Unit Type Code MSD (X = 0 – 9)
BX Unit Type Code LSD (X = 0 – 9)
BX Conversion Factor Code MSD (X = 0 – 9)
BX Conversion Factor Code LSD (X = 0 – 9)
BX Reserved Reserved
BX Reserved Reserved
BX Reserved Reserved
BX Reserved Reserved
BX Reserved Reserved
BX Reserved Reserved
BX 5/6 Digit Money Mode MSD (X = 0 – 9)
BX 5/6 Digit Money Mode LSD (X = 0 – 9)
BX Auto On/Push to Start Mode MSD (X = 0 – 9)
BX Auto On/Push to Start Mode LSD (X = 0 – 9)
Auto-On/Push-To-Start
00 Not Push-To-Start
01 Auto-On/Push-To-Start
Command Format
Word Interpretation Comments
BX Command Code MSD Received in Command
BX Command Code LSD
Note: This Special Function may not be implemented in all pumps and dispensers for all features.
Response Format
Word Interpretation Comments
XY Command Code MSD B0 Standard
XY = B0- B9
XY = C1 – C6 Extended More-Buttons
Post-Modular pumps provide Extended Status information for use by the controller (S.F. 010). This
Information allows the controller to determine more information about the customer‟s operation of the
dispenser for display of additional, perhaps more accurate, information to the console operator or pump
user.
True means operation not needed. False means operation needed. All operations are pump related. For
example, if the controller has selected the price level then it will have no effect on the Extended Pump
Status. Only selecting price level at the pump can do that. Any option not present at the pump (e.g.,
Push-To-Start) will default to Not Needed. An Auto-On SHMPD with Cash/Credit could set Price Level
Selection Needed, Grade Selection Needed and Push-To-Start needed all to True when in the CALL
state. Subsequently pressing one of the price level buttons would set all 3 flags to False.
Selection of Price Level may be independent of the safety Second Step. This merely indicates whether a
price level needs to be selected, not which one.
Grade selection may occur independent of the safety Second Step. Once it has occurred, the grade
information will be available also.
Under certain conditions the controller may not be able to determine the handle/nozzle position from the
response to the Status Poll (e.g. ERROR status). This information may be important for user/operator
prompting.
Push-To-Start Needed
This indicates whether the Push-To-Start button has been pressed. This too is independent of the safety
Second Step. For example, if the Push-To-Start status is true and the Pump Handle is IN, it may indicate
the user is confused about the proper sequence for pump activation.
Selected Grade
TWOTP-IS-IS2.26-P Gilbarco Inc. 1993, 2011 Revision 2.26
Gilbarco Dispenser Two-Wire Protocol for Third Party Pump Controllers Document ID: 4280
This document is UNCONTROLLED if printed, unless properly stamped.
Exclusive use of ZAO "NPF "SIBNEFTEKART"
In addition the Extended Pump Status tells the console which grade has been selected. This is in the
form of a grade number which is the same grade number used in other Two-Wire messages. The Grade
Selected will always be non-zero once a grade is selected by the customer, even if that grade is not
available. For example, if a pump is preset for grades 1 or 3 (only) and the customer selects grade 2 the
Selected Grade will be 2 but the Grade Selection Needed flag will still be True since a grade that can be
authorized has not yet been selected, the value of this field is zero or “unknown.”
Response Format
Word Interpretation Comments
BX Grade 1 Blend Ratio MSD X=0–1
BX Grade 1 Blend Ratio Digit X=0–9
BX Grade 1 Blend Ratio LSD X=0–9
This data block contains the Grade 1 - Grade 6 blend ratio that will be used for the next transaction.
Response Format
Word Interpretation Comments
BX Blend Manifold 1 1000000 Digit
Pure product total for high product X=0–9
BX (volume) 100000 Digit
X=0–9
BX 10000 Digit
X=0–9
BX 1000 Digit
X=0–9
BX 100 Digit
X=0–9
BX 10 Digit
X=0–9
BX 1 Digit
X=0–9
BX .1 Digit
X=0–9
BX .01 Digit
X=0–9
BX .001 Digit
X=0–9
NOTES:
1. This response violates the maximum 32 bytes of data in <m> limit specified in Data Block Format of the
Gilbarco Dispenser Two-Wire Protocol for Third Party Pump Controllers.
2. This function is only valid for pure products of standard single blend manifold blenders unit types. The
field for blend manifold 2 is optional and may be omitted in responses. Some dispensers may respond
with blend manifold 2 values populated with zeroes.
3. For Unit Type Code 46, 47, 48 and 49 (2+2 and 3+2 blenders with two sets of blend manifolds), pure
product totals for blend manifold 1 are for the corresponding pure products for the standard blender
portion of the dispenser. The pure products for blend manifold 1 are the only pure products in a
response for a SF405 request. Special Function 605 (detailed in Gilbarco Dispenser Two-Wire Protocol
for Third Party Pump Controllers – Extended Two-Wire Appendix) is required for all products totals for
these dispenser types.
Response Format
Word Interpretation Comments
BX Grade 1 Error Code MSD X=0–9
BX Grade 1 Error Code LSD X=0–9
BX Grade 2 Error Code MSD X=0–9
BX Grade 2 Error Code LSD X=0–9
BX Grade 3 Error Code MSD X=0–9
BX Grade 3 Error Code LSD X=0–9
BX Grade 4 Error Code MSD X=0–9
BX Grade 4 Error Code LSD X=0–9
BX Grade 5 Error Code MSD X=0–9
BX Grade 5 Error Code LSD X=0–9
BX Grade 6 Error Code MSD X=0–9
BX Grade 6 Error Code LSD X=0–9
BX Specific Blend Error Code MSD Error in current transaction
X=0–9
BX Specific Blend Error Code LSD Error in current transaction
X=0–9
Errors are reported in the data response as a sequence of 9 bits concatenated from 3 nibbles of the
response data Eh, Ea, Eb. The bits used are h4-h1, b1 and a4-a1 presenting a nine bit pattern as follows:
Hose Error
h4, h3, h2, h1 b1, a4, a3, a2, a1
A non-zero value in the Hose number portion indicates the presence of an error code in the error portion.
A zero value for the Hose number means bits b1 and a4-a1 are to be ignored by the Console. The binary
value of b1, a4, a3, a2, and a1 plus 19 results in the decimal error code displayed by the pump. For
example, if the binary value of the error bits is 24, then add 19 to get the displayed error of 43 or General
Error. This is a list of the current decimal error codes and their meanings returned by Post Modular,
Modular and some pre-modular pumps.
1
* Not Available in Modular Advantage Dispensers
Response Format
Word Interpretation Comments
BX Grade 1 blend ratio change 1000‟s Digit (X=0-9)
BX Counter from pump keyboard 100‟s Digit (X=0-9)
BX 10‟s Digit (X=0-9)
BX 1‟s Digit (X=0-9)
In the following diagram, pump or controller initiated status transitions are shown. The notation indicates a
controller initiated transition and indicates a pump initiated transition. A line of indicates that both
an action at the pump and a controller command are needed for this transition to occur. These may occur
simultaneously from the controller‟s view and the key factor governing some of these transitions will be whether
fuel was dispensed. Transitions to and from the ERROR status are omitted since they are all pump initiated and
can occur from and to any other status.
These transitions represent the sequence of external status responses the controller may see based on
conditions and actions occurring at a pump.
“EoT” represents the End-of-Transaction status. “Authorize” is the Authorize command from the controller.
“Stop” is the Pump Stop command from the controller. “Ready” indicates that all conditions have been met for
beginning a sale (price/grade selection, handle up, valid grade, etc.). “Not Ready” implies that some of these
conditions have not been met.
* Note 1: Transitions marked with asterisks are unlikely to be seen by the controller except when
status polling is very infrequent.
Note 2: Transitions 5 (Call to Off) and 6 (Auth to Off) could occur when fuel has been
dispensed for some pre-modular pumps (refer to Sale Completion section).
Note 3: For most pumps, Transition 7 (Busy to Off) occurs when no fuel has been dispensed.
Note 5: Transitions 13 (Busy to Call) & 19 (Busy to Stop) are alternatives. When no fuel has
been dispensed, some pumps will return to the Call state, others will go to the Stop
state the same as if fuel had been dispensed (Transition 18).
OFF
* Authorize &
Handle up &
fuel dispensed &
Stop &
Handle down
Handle down
Handle down &
no fuel dispensed
Handle
EoT Rx’d up
by controller * Stop &
Handle Handle down &
down Handle down & no fuel dispensed Authorize
no fuel dispensed
Authorize &
not Ready
CALL
AUTH
Stop &
Stop & no fuel no fuel
Authorize dispensed dispensed
EoT Rx’d
by controller & * Stop &
new Handle up BUSY fuel dispensed
PEOT/FEOT
In the following diagram, pump or controller initiated status transitions are shown. The notation “==>” indicates a
controller initiated transition and “-->” indicates a pump initiated transition. A line of “****>” indicates that both an
action at the pump and a controller command are needed for this transition to occur. These may occur
simultaneously from the controller‟s view and the key factor governing some of these transitions will be whether
fuel was dispensed. Transitions to the ERROR status are omitted since they are all pump initiated and can occur
from any other status.
These transitions represent the sequence of external status responses the controller may see based on
conditions and actions occurring at a pump. Each transition is numbered and the corresponding number in the
Transition Explanation list, explains the reason for the transition.
* NOTE 1: Transitions marked with asterisks are unlikely to be seen by the controller except when
status polling is very infrequent.
NOTE 2: Transitions 5 (Call to Off) and 6 (Auth to Off) could occur when fuel has been
dispensed for some pre-modular pumps (refer to Sale Completion section).
NOTE 4: Transitions 13 (Busy to Call) & 19 (Busy to Stop) are alternatives. When no fuel has
been dispensed, some pumps will return to the Call state, others will go to the Stop
state the same as if fuel had been dispensed (Transition 18).
6. Pump Identification
The console needs to identify the pump‟s functional type and make certain it agrees with the console‟s
current site configuration ”map”. There are two methods for soliciting functional type data via the Two-
Wire. The first way is to use the Request for Transaction Data command. The Pump Identifier field
contained in the pump‟s response has some basic functional information about the pump including
blender versus non-blender and an indication of the maximum number of grades (3 or 6). Not all pump
models and software groups support this method, for example, Multiline models do not.
If more precise information is required, some pump models/software groups support a Special Function
called Miscellaneous Pump Data Request which contains more specific pump configuration information.
This method is only supported by Post-Modular pump models including Advantage, Encore E300,
Dimension, Euroline and Euro-Advantage. Refer to the section on Special Functions to find out how a
console can determine if a pump supports this function.
30 Blender 3+0
G1 G2 G3
(3 blends, 3 hoses/side)
30 Blender 3+1
(3 blends + 1 non-blend, 4 G1 G2 G3 G6
hoses/side)
40 Blender 2+0
G1 G2
(2 blends, 1 hose/side)
40 Blender 2+1
(2 blends + 1 non-blend, 2 G1 G2 G6
hoses/side)
40 Blender 3+0
G1 G2 G3
(3 blends, 1 hose/side)
40 Blender 3+1
(3 blends + 1 non-blend, 2 G1 G2 G3 G6
hoses/side)
40 Blender 4+0 G1 G2 G3 G4
(4 blends, 1 hose/side)
40 Blender 4+1
(4 blends + 1 non-blend, 2 G1 G2 G3 G4 G6
hoses/side)
40 Blender 5+0
G1 G2 G3 G4 G5
(5 blends, 1 hose/side)
40 Blender 5+1
(5 blends + 1 non-blend, 2 G1 G2 G3 G4 G5 G6
hoses/side)
41 Blender 2+1+1
*5
(2 blends + 2 non-blends, 3 G1 G2 G3 G6
hoses/side)
42 Blender 3+1+1
*5
(3 blends + 2 non-blends, 3 G1 G2 G3 G4 G6
hoses/side)
*3
43 Blender 2 + Single-Hose MPD 2
*6
(2 blends + 2 non-blends, 2 G1 G2 G3 G6
hoses/side)
*3
44 Blender 3 + Single-Hose MPD 2
*6
(3 blends + 2 non-blends, 2 G1 G2 G3 G4 G6
hoses/side)
*3
45 Blender 4 + Single-Hose MPD 2
*6
(4 blends + 2 non-blends, 2 G1 G2 G3 G4 G5 G6
hoses/side)
*4
46 Blender 2+2
*7 *7
(4 Pure, 2 manifolds, 2 G1 G2 G3 G4
blend/1hose + 2 blend/2 hose)
*4
47 Blender 3+2
*7 *7
(4 Pure, 2 manifolds, 3 G1 G2 G3 G4 G5
blend/1hose + 2 blend/2 hose)
*4
48 Blender 2+2
*7 *7
(4 Pure, 2 manifolds, 2 G1 G2 G3 G4
blend/1hose + 2 blend/1 hose)
*4
49 Blender 3+2
*7 *7
(4 Pure, 2 manifolds, 3 G1 G2 G3 G4 G5
blend/1hose + 2 blend/1 hose)
*1
Tx = Position in Totals Message.
*2
Gx = Grade Number in Two-Wire Messages.
*3
Denotes a Single Hose blender with Single Hose MPD Combination
*4
Denotes a blender with two blend manifolds.
*5
For Unit Type 41 and 42 – Denotes Extra +1 Grade
*6
For Unit Types 43, 44 and 45 – Denotes the first of the extra MPD Grades
*7
For Unit Types 46, 47, 48 and 49 – Denotes One of the +2 Blended Grades
7. APPENDIX A
7.1 Application Note #001
Functional Impact: 1. Pump will turn off valves as soon as PUSH to STOP button is pushed.
2. Valve can not be turned on again until Pump Handle is turned off and
pump authorized by the console.
3. Pump will display an error code as long as Pump Handle is ON.
Two Wire Impact: 1. The pump will not change the current state (i.e. Two Wire Status.)
2. The pump will respond to Two Wire commands and pump handle as
specified in Two Wire Protocol Report.
3. The ERROR Code will be available to the Console in the transaction
data at PUMP STOP state.
4. Note the error code condition will be removed if Pump Handle is at
“OFF” condition or is turned off.
Two Wire Impact: 1. All pumps that support version number polling will also support a fast
PRESET and PPU Data transmission. This includes all modular
electronic pumps V50.2 and up, Blender and Post-Modular
Advantage. This currently does not include Epsilon, Sandpiper or
E101 based dispensers.
2. The delay time for word-to-word interval can be reduced from 68ms (as
specified in 3.4.3 DATA TO PUMP) to 6ms for this class of pumps.
3. A proposed algorithm from Two Wire Review Committee to take
advantage of the fast PPU/Preset Data transmission time.
a. Poll the pump version number when the pump comes on-line.
b. Store “response” or “no response” status for each pump in
the Console/Controller.
c. The Console/Controller will use the fast PPU/PRESET
transmission algorithm if all pumps at site respond to the
version number poll.
Note that this means the system may switch back to slow PRESET/PPU
transmission scheme if a “non-responding” pump (such as H-111B V10.7)
is added to the loop.
New Note 2007: Some pumps, such as Optimized Advantage and E300, support an even
faster Data transmission, called “Fast PPUs”. These pumps all respond
to the version number polling as above.
The delay time for word-to-word interval t6 can be reduced from 6ms (as
above) to 0ms. In addition, the delays for turn-around (t2), and between
data block and polling (t3) can both also be reduced to 0ms.
Note not all pumps that respond to the version number polling will support
the “Fast PPUs” enhanced timing. “Fast PPUs” should only be used if all
pumps on the site support it.
Author: T. E. Dickson
Two Wire Impact: 1. Preset/authorized pumps receiving a STOP (or ALL STOP) while the
handle is ON or the nozzle is OUT and with no fuel dispensed will
transition from BUSY to CALL. They will then accept a new preset
(and authorize) from the console/CRIND. Note that the pump only
goes BUSY when it enters lamp test which is after any prerequisite
operation such as Push-To-Start, keylock authorization or cash/credit
selection/confirmation by the customer.
2. If the pump handle is OFF (or the nozzle is IN) when the pump receives
a STOP, the pump will remain in IDLE (no change from current
operation).
3. There is no change to any message format or content as a result of this
modification of the pump‟s operation.
4. A grade or price level change is possible if the customer has not yet
confirmed the price level or selected the grade at the pump from the
previous preset. A grade and/or price level mismatch between the
preset command and the customer‟s selection will be handled per the
Two Wire Specification.
5. If a pump receives an Authorize after the STOP, instead of a new
preset, it will dispense up to the value of the previous preset received
(no change from current operation.) Exception: Sandpiper and later
based pumps clear the limit and any grade restriction, and so will not
stop at the previous preset limit.
Author: J. Ronchetti
Two Wire Impact: 1. If the console authorizes the pump for a fill-up, the customer selected
money or volume amount will terminate the sale.
2. If the console authorizes the pump for a preset and it matches the
customer preset type, i.e., both are money or both are volume, then
the lesser of the two presets will terminate the sale.
3. If the console authorizes the pump for a preset and it does not match
the customer preset type, then if the customer preset was received by
the pump before the console preset, then the pump will enter the
ERROR state and ignore the console preset data block and the
customer selected money or volume amount will terminate the sale.
The console must not send the AUTH command (or a matching
preset) to the pump until the pump has returned to either the OFF or
CALL state, i.e., the console must poll the pump again before sending
the next command. Or if the customer preset was initiated after the
pump received the console preset, then the customer preset will be
ignored by the pump and an error tone sounded by the pump.
Author: J. Ronchetti
Author: J. Ronchetti
Please note that the above sequence is performed for EACH price to be
sent to a dispenser, e.g., for a 5+1 blender with two level pricing, the
above sequence is performed a total of 12 times for each side, to update
every price.
The pump commands that do not require the LRC check character are:
Status Poll
Authorize
Pump Stop
All Stop
Request for Transaction Data
Request for Pump Totals
Request for Real Time Money
Example:
Data stream:
FF F1 F8 E1 E1 E1 E1 E1 F6 E1 F4 FB ED F0
Take the least significant nibble of this: 1101b = 0x0D. This is the
LRC, sent as 0xED.
0x01
0x23
0x45
0x67
0x89
-----------
0x0159 since this is greater than a 1 byte value we
ignore the most significant byte, thus we are left with 0x59
Note: The values in the data block that are C1 thru C6 are converted to A
thru F hex, respectively.
Author: A. Oldham
Real-Time Volume
3 3
Volume = X.XXX N/A X.XXX * X.XXX * N/A N/A N/A
3 3
Volume = X.XX N/A X.XXX * X.XXX * N/A N/A X.XXX
Transaction Data
2 2
5D Money = X.XXX X.XXXX X.XXXX X.XXXX X.XXX * X.XXX * X.XXXX
2
5D Money = X.XX X.XXX X.XXX X.XXX X.XXX X.XX * X.XXX
2
5D Money = X.X X.XX X.XX X.XX X.XX X.X * X.XX
2
5D Money = X X.X X.X X.X X.X X* X.X
3 3
Volume = X.XXX X.XXX X.XXX * X.XXX * X.XXX X.XXX N/A
3 3 2
Volume = X.XX X.XXX X.XXX * X.XXX * X.XXX X.XX * X.XXX
2
6D Money = X.XXX X.XXX X.XXX X.XXX X.XX * X.XXX X.XXX
6D Money = X.XX X.XX X.XX X.XX X.XX X.XX X.XX
6D Money = X.X X.X X.X X.X X.X X.X X.X
6D Money = X X X X X X X.
2
6D Money = X.XXX X.XXX X.XXX X.XXX X.XX * X.XXX X.XXX
6D Money = X.XX X.XX X.XX X.XX X.XX X.XX X.XX
6D Money = X.X X.X X.X X.X X.X X.X X.X
6D Money = X X X X X X X
6 2
Volume = X.XXX X.XX X.XX X.XX * X.XX X.XXX * N/A
Volume = X.XX X.XX X.XX X.XX X.XX X.XX X.XX
2
6D Money = X.XXX X.XXX X.XXX X.XXX X.XX * N/A X.XXX
6D Money = X.XX X.XX X.XX X.XX X.XX N/A X.XX
6D Money = X.X X.X X.X X.X X.X N/A X.X
6D Money = X X X X X N/A X
6
Volume = X.XXX X.XX X.XX X.XX * X.XX N/A N/A
Volume = X.XX X.XX X.XX X.XX X.XX N/A X.XX
5 or 6 Digit Money,
5 5 5
Regardles of Setting? No No Yes * Yes * N/A Yes *
Notes:
*1 – Early Epsilon-based systems do not accept Presets. Epsilon was always a 5-digit system.
*2 – Violates two-wire spec.
*3 – Matches transaction data format. Can be configured for XXX.XXX or follow the volume formats.
*4 – Later versions support both 5 & 6 digit fields for Volume Presets.
*5 – Later versions support either format, regardless of whether the pump is in 5-digit mode or 6-digit mode.
Decimal follows the display configuration.
*6 – Early versions of software implement this field incorrectly. Later versions of software correct the fields as
defined by this specification.
Notes:
1. Newer Chinese pumps go from CALL status to BUSY (9x) via AUTH (8x). The transition from AUTH to
BUSY happens spontaneously once the transaction money/volume has been reset and the pump and
solenoid activated. Some earlier China pumps do not have AUTH state when authorizing the pump from
CALL status; they will go to BUSY directly.
2. Some earlier China pumps do not send any EOT status (either PEOT or FEOT). The controller software will
have to handle the situation where the pump goes to IDLE from BUSY directly as an exceptional case, and
use the Totals increase to determine if it is a real transaction.
3. Earlier Endeavour pumps may not support Special Functions, and for Endeavour pump, each fuelling
position only has one product, so there is no need to ask for Products‟ ID by Special Function or by
command 4X at STOP status.
4. For China Endeavour pumps, even where there is only one product on each fuelling position, the Totals
Response to command 5X are still composed of 3 products, for historical compatibility reasons.
5. Volume totals implemented in China pumps are configured as one decimal place less than the volume main
display. So if the main display volume is (x)xxx.xxx, then the totals will be (xxxx)xxxxxx.xx, and if the main
display volume is (x)xxxx.xx, then the totals will be (xxxx)xxxxxxx.x format. In some new pumps the volume
totals decimal places can be selected as 1 or 2 from the keypad when the main display volume has 2
decimal places (x)xxxx.xx; refer to the pump manual.
6. Command 4X – transaction data is not updated at CALL status, but updated at STOP and EOT status.
7. Command 5X – totals data are not updated at STOP status, only updated at the EOT.
8. Extended data formats are used for the pumps with 7-7-6 main display.
9. Some old China pumps may also have a longer time to command response, >68ms.
10. For China pumps with 8051 CPU, the Two-Wire baud rate is 5760bps rather than 5787bps (Z80 CPU). This
is compatible with FCC running at 5787bps baud rate.
11. Most China pumps have the 2-wire input clamp voltage, <18V.