03.11.2012 Views

Short description protocol ES40 - Krohne

Short description protocol ES40 - Krohne

Short description protocol ES40 - Krohne

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Short</strong> <strong>description</strong> <strong>protocol</strong> <strong>ES40</strong><br />

Version 1.4<br />

1. Intended use.<br />

The <strong>ES40</strong> communication <strong>protocol</strong> is intended for data exchange between<br />

Cargomaster and other computer units. Its main property is ease of implementation<br />

and debugging, which will lower the cost of development for new users.<br />

Transport media is RS 232C, resulting in a relatively slow operation. The advantage,<br />

on the other hand, is low cost and standardisation among systems.<br />

Typical application of <strong>ES40</strong> is data exchange from:<br />

- External level gauging systems to Cargomaster, for example from purged air<br />

systems.<br />

- Cargomaster to shipboard computer systems.<br />

- Cargomaster to separate loading computer.<br />

- Ballastmaster to shipboard computer systems<br />

2. Data transmission, transmit and receive<br />

The <strong>ES40</strong> is an ASCII <strong>protocol</strong>, which in case of communication failure makes it easy<br />

to isolate the system causing problems. (This is done by simply hooking up a terminal<br />

on the serial line, and watching the data flow.)<br />

Tank data<br />

Data is transferred sequentially, one line pr tank, with a configurable delay between<br />

each line.<br />

The tank number (Range 1 to 499) is always the first data item in each line, after the<br />

start byte(s) and separator. Following the tank number are the selected values to be<br />

transmitted. The engineering units and number of decimals for all available values are<br />

described in chapter 3. Each line (packet) of data is terminated by an optional<br />

checksum and a mandatory [CR][LF]<br />

Note: All tanks in one system will have the same data types transmitted. This means<br />

that if for example temperature is to be transmitted for cargo tanks, the temperature<br />

(or -9999 if invalid) need also be sent for all other tanks. However, data transmitted<br />

from a system may differ from data received, making it possible for example to send<br />

ullage, volume, density and temperature for selected tanks, while receiving only<br />

innage and volume.<br />

The type of data transferred pr. tank may vary between applications, and is agreed<br />

between the parties before establishing the link.<br />

Draft<br />

Drafts are assigned tank numbers if such data is to be transmitted. This means that<br />

for each draft, a line containing the same data items as the tanks will be transmitted.<br />

Irrelevant data as temperature or other tank data must be ignored by the receiver.<br />

Please note that draft may not be transmitted as a data item in other tank packets.<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 1 of 6


Error indication<br />

Invalid data is indicated by sending -9999 in the data field, for example after failure of<br />

a transducer or lack of user input data.<br />

Cargo line pressure<br />

Tank numbers above 900 are used to indicate load-line pressure data rather than tank<br />

data. 900 is added to the line pressure number before transmission, and the only data<br />

transmitted is pressure and, optionally, alarm status. The format of the data packets<br />

containing cargo line pressure will vary from the format of the tank data packets.<br />

System data<br />

As an option at the beginning of each transmit cycle, system data (trim, list, and<br />

atmospheric pressure) may be transferred on a separate line. The format of this data<br />

packet is fixed, and is indicated by setting zero in the tank no field.<br />

Data transmitted will be:<br />

[start][sep]0[sep]Trim[sep]List[sep]Atmospheric pressure.<br />

The start byte(s), separator and optional check sum will be used as globally configured<br />

for the system.<br />

The example in chapter 5 includes the system packet.<br />

Start byte(s).<br />

The start-byte is configurable. It is strongly recommended to use a printable character<br />

in the decimal ASCII range 33 to 42, or ASCII 64. The default is ASCII 64 (@).<br />

The number of start bytes is also configurable to allow for synchronisation bytes,<br />

please pay attention to the checksum <strong>description</strong> below when using multiple start<br />

bytes.<br />

Separator<br />

One separator is used between data items. The byte may be configured using the<br />

same guidelines as for the start byte, but the ASCII value of the start and separator<br />

byte may not take the same value. The default separator is space (ASCII 32), which is<br />

strongly recommended.<br />

The separator byte is inserted between all data items, also between the start byte and<br />

the tank no, but not before the [CR][LF] packet terminator.<br />

Stop bytes.<br />

To terminate each data packet, [CR][LF] is always used.<br />

Checksum.<br />

The use of checksum is optional. If used, the checksum is the eight bit sum of all<br />

preceding characters on the same line. Regardless of the number of start bytes used,<br />

only one start byte is to be used for checksum calculation. The [CR][LF] packet<br />

terminator is succeeding the checksum, and is therefore not included in the<br />

calculation.<br />

The decimal value of the checksum is transmitted as three ASCII characters in order<br />

to avoid non-printable characters in the telegram.<br />

The examples in chapter 5 include calculated checksum.<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 2 of 6


3. Units.<br />

Units for data transfer are:<br />

Temperature: 0C with one decimal (Tank average or any sensor temp)<br />

Draft: Meters with three decimals (Specify as level)<br />

Innage (flot.lev): Meters with three decimals (Level in flotation centre)<br />

Innage (level): Meters with three decimals (Level at manual ref. point)<br />

Ullage: Meters with three decimals (Ullage at manual ullage hatch)<br />

Inert gas pressure: mmWg with no decimals<br />

Weight: Metric ton with three decimals.<br />

Volume: m3 with three decimals<br />

Volume % of full: % with two decimals<br />

Ref. temperature: 0C with one decimal (Ref. temperature 1 or 2 from operator)<br />

Density: Density in air with five decimals, t/m3 (Actual dens., measured dens. or any operator input dens.)<br />

Density coefficient: Density change pr. 0C with five decimals, t/(m3 0C) Loadrate: m3 /h with one decimal<br />

Tank name: String of max. 8 characters<br />

Pressure: mmWg with no decimals for any tank pressure sensor.<br />

Tank type:<br />

First byte:<br />

Two consecutive bytes (No separator between bytes):<br />

Bit 7 - 0<br />

Bit 6 - 1<br />

Bit 5 - 1 = Variable solid (Load calculator only)<br />

Bit 4 - 1 = Constant solid (Load calculator only)<br />

Bit 3 - 1 = Misc. tank<br />

Bit 2 - 1 = Fuel tank<br />

Bit 1 - 1 = Ballast tank<br />

Bit 0 - 1 = CARGO tank<br />

Second byte:<br />

Bit 7 - 0<br />

Bit 6 - 1<br />

Bit 5 - Density display type *)<br />

Bit 4 - Density display type *)<br />

Bit 3 - Density display type *)<br />

Bit 2 - 1 = Online tank / 0 = Offline tank<br />

Bit 1 - 1 = Temp. tank<br />

Bit 0 - 1 = Draft tank<br />

*) Density display type:<br />

0 = Linear (Density @15 0 C and coefficient)<br />

1 = API CRUDE<br />

2 = API PRODUCT<br />

3 = API LUB OIL<br />

4 = API BALLAST<br />

5 = ASTM54b<br />

6 = Future use<br />

7 = Future use<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 3 of 6


Alarm status: Three consecutive bytes (No separator between bytes):<br />

First byte:<br />

Bit 7 - 0<br />

Bit 6 - 1<br />

Bit 5 - Future use<br />

Bit 4 - 1 = Horn on (Set to 1 if horn is on)<br />

Bit 3 - 1 = Sensor disabled<br />

Bit 2 - 1 = Hardware error on tank/line measurement<br />

Bit 1 - 1 = Alarm active (Active =1, Acknowledged=0)<br />

Bit 0 - 1 = Any alarm (active or acknowledged) in tank/line-pressure<br />

Second byte:<br />

Bit 7 - 0<br />

Bit 6 - 1<br />

Bit 5 - 1 = High High level<br />

Bit 4 - 1 = High level<br />

Bit 3 - 1 = Low level<br />

Bit 2 - 1 = Low Low level<br />

Bit 1 - 1 = High inert pressure (High pressure for line pressure)<br />

Bit 0 - 1 = Low inert pressure (Low pressure for line pressure)<br />

Third byte:<br />

Bit 7 - 0<br />

Bit 6 - 1<br />

Bit 5 - Future use<br />

Bit 4 - Future use<br />

Bit 3 - Future use<br />

Bit 2 - 1 = High temperature<br />

Bit 1 - 1 = Low temperature<br />

Bit 0 - 1 = Density difference (Deviation manual/measured density)<br />

Line pressure: mmWg with no decimals<br />

Atmospheric press.: mmWg with no decimals<br />

Trim: Degrees (360) with five decimals, Negative aft<br />

List: Degrees (360) with five decimals, Negative port<br />

Note:<br />

All above values are valid for output from Cargomaster. The following values are valid for<br />

input, taking the same units and number of decimals as for output:<br />

Ullage Volume Vol% Temperature (Average only)<br />

Inert press Density (As output) Density expansion Atmospheric pressure<br />

Level (Flot.) Dens. ref. temps. Trim List<br />

Level (Ref. Pt.)<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 4 of 6


4. Handshaking, data format and speed.<br />

The <strong>protocol</strong> uses no handshaking or control flow signals. Neither is there a need to<br />

request data, as each sender transmits the agreed data sequentially in an endless<br />

loop.<br />

This means that an ASCII terminal (or a PC with terminal emulator) can be hooked up<br />

on the line to check the data flow from each node in the system. (RX, TX and ground<br />

are the only lines connected.)<br />

Hardware data format:<br />

Speed: 300 to 19200 Baud. Default 9600 Baud<br />

Stop bits: 1 or 2. Default 1<br />

Start bits: 1<br />

Parity: Odd/even/none Default none<br />

Packet delay.<br />

The delay between each line(packet) of data is configurable. A typical system will<br />

delay 0.3 seconds between the start of each line.<br />

5. Example.<br />

A typical sequence (Start byte=$, Separator=space, Checksum included) to transmit:<br />

System data<br />

Innage, ullage, volume, volume%, inert pressure, 4 temperatures for tank 1 to 5<br />

Line pressure points 1 to 4<br />

$ 0 -0.06356 0.08881 9200 181<br />

$ 1 0.000 14.574 0.000 0.00 6 25.4 25.5 25.4 25.4 221<br />

$ 2 0.000 14.582 0.000 0.00 -14 25.2 25.3 25.2 25.2 049<br />

$ 3 0.000 14.566 0.000 0.00 9 -9999.0 -9999.0 -9999.0 25.2 210<br />

$ 4 0.000 14.570 0.000 0.00 3 -9999.0 -9999.0 -9999.0 25.2 200<br />

$ 5 0.000 14.560 0.000 0.00 -10 -9999.0 -9999.0 -9999.0 25.2 035<br />

$ 901 6617 242<br />

$ 902 7189 248<br />

$ 903 7786 252<br />

$ 904 9112 238<br />

Detail of the first line of the above telegram:<br />

$ 0 - 0 . 0 6 3 5 6 0 . 0 8 8 8 1 9 2 0 0 1 8 1 CR LF<br />

The above cycle will be transmitted in an endless loop.<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 5 of 6


6. Options<br />

As implemented by Scana Skarpenord, the above <strong>protocol</strong> may be substituted by the<br />

Simrad "Standard AVM" <strong>protocol</strong>. The implementation will generate one line (packet)<br />

of data pr tank, and treats the tank number as an analogue value. In all other aspects<br />

(i.e error indication, separators, checksum etc.) the Simrad AVM <strong>protocol</strong> <strong>description</strong><br />

(Doc.no.sa13304) is followed.<br />

Langesund, Sep 10. 1999<br />

H.Hogner<br />

Doc no. 60809001 Rev 1.4 empress\fou\doc\approved documnets\60809001.doc Page 6 of 6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!