Extension protocol
Preliminary
INTRODUCTION
PROTOCOL IN DETAIL
2.1
2.2
2.3
4
4
5
What is PPO
List of data input from UNISAB II
Data Outputs for UNISAB II
PKW
3.1
3.2
3.3
7
PKE
Error codes
PKW points in UNISAB II
7
7
8
15
Copyright
YORK Marine ApS
All Rights Reserved
YORK Marine, Controls
Author: Henning Hansen Owner: Claus Eifer
Page 2 of 15
Preliminary
INTRODUCTION
This paper describes Profibus DPV0 Protocol for UNISAB II in an Extended version compared to the Tiny
Profibus Protocol also available for UNISAB II.
This Extended version provides all analogue values, mode, state, control-on-value, capacity set point, active
timer number and value, digital inputs and digital outputs as well as cause of alarm and up to 2 warnings. All
this is updated continuously. Writing start/stop command, changing control-on-value, mode, setup for
sequencing and capacity set point is also featured using continuous updating.
All values, limits and settings in the databases of the UNISAB II holding measurements data, timer data
config data and alarm loggings are available using a command answer method. Some of these limits and
settings can be written to, also using the command answer method. UNISAB II will prevent writing values
beyond certain limits for safety reasons.
The transport mechanism (layer 1 and 2) is strictly according to standard Profibus DPV0 Protocol standards.
The application layer (layer 7) is presented in this paper. The application layer for UNISAB II is based on the
two papers listed below but it does not comply with any of those in detail.
PROFIBUS Profile
Profile for SEMI
Version 1.0
August 2002
PNO Order No. 3.152
PROFIBUS Profil
Profil fr Drehzahlvernderbare Antriebe, PROFIDRIVE
Ausgabe September 1997
PNO Best.-Nr. 3.071
Introduction
Revision: 1.0 Updated: 050217
Project : Extension protocol
Preliminary
PROTOCOL IN DETAIL
2.1
What is PPO
2.2
PKW1
PKW2
PKW3
PKW4
SW
PD1
PD2
PD3
PD4
PD5
PD6
PD7
PD8
PD9
PD10
PD11
PD12
PD13
PD14
PD15
PD16
PD17
PD18
PD19
PD20
PD21
PD22
PD23
PD24
PD25
PD26
PD27
33
PD28
PDR2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Text
PDR1
Type
Unit
Word
X
X
X
X
*1)
SUCT_PRESS,
SUCT_TEMP
SUCT_SUPERHEAT,
DISCH_PRESS,
DISCH_TEMP,
LUB_PRESS,
OIL FILTER DIFF_PRESS,
OIL_TEMP,
MOTOR_CURR,
BRINE_TEMP,
INTERM_PRESS,
INTERM_TEMP,
EXT_INPUT,
CAPACITY,
CAP_POSITION,
VI_POSITION,
DISCH_SUPERHEAT,
VOL FLOW COP
MOTOR REVS
MOTOR POWER
SUCT_PRESS_BAR,
DISCH_PRESS_BAR,
INTERM_PRESS_BAR,
YIELD,
Mode
State
Control mode (Suct=0, Brine=1, Disch, Hot Water, Ext.Cool or
Ext.H)
Multisab (Sys No/Controller/Start No/Multisab state) (4 bit each)
Protocol in detail
Revision: 1.0 Updated: 050217
Project : Extension protocol
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Preliminary
34
35
36
37
38
39
40
41
42
PD29
PD30
PD31
PD33
PD34
PD35
PD36
PD37
PD38
2.2.1
PDR2
Text
PDR1
Type
Unit
Word
X
X
X
X
X
X
X
X
X
Text
Common alarm
Common warning
Running
Ready
Capacity remote control mode
2.3
Description
PKW1
PKW2
PKW3
PKW4
CW
PD1
PD2
PDW2
1
2
3
4
5
6
Text
PDW1
Type
Unit
Word
X
X
X
X
*2)
Start/Stop command (High byte = 55h / Low byte = 55h)
Remote only
Control on value (Suct=0, Brine=1, Disch, Hot Water, Ext.Cool
or Ext.Heat) Remote.only
Write active while CW bit 12 is set
Protocol in detail
Revision: 1.0 Updated: 050217
Project : Extension protocol
X
X
X
Preliminary
PD2
PD3
PD4
10
PD5
2.3.1
PDW2
Text
PDW1
Type
Unit
Word
X
X
X
Text
Compressor Motor Starter Feed Back
Exrernal Start Permission Normal Stop
External Start Permission Instant Stop
Start_Request
Controller Set Point 1 or Set Point 2
Motor Current Limit 1 or Limit 2
Oil Pump Motor Starter Feed Back
Full Flow Punp Motor Starter Feed Back
Oil Float Switch
Capacity Decrease Blocked
Thermistor in Motor Windings
Description
Please note: Set XXX Parameter must be set only until the change of the XXX Parameter has taken place.
While set, this command blocks any other means of changing the XXX Parameter.
Protocol in detail
Revision: 1.0 Updated: 050217
Project : Extension protocol
Preliminary
PKW
Using 8 bytes it is possible to transfer data to and from UNISAB II in acyclic mode. This method is not
exactly according to the profiles referred to in chapter 1 but it does not differ much. Most notable is the
database and datapoint terms, which are used in place of PNU (Parameter Number).
0
PKE
1
PKE
2
IND
3
Res.
4
PWE
5
PWE
6
PWE
7
PWE
8
Rest
9
of
Etc.
Telegram
3.1
PKE
The 2 first bytes hold the PKE word. Bitwise description below.
15
AK
14
13
12
11
SPM
10
9
Database
7
6
5
4
3
2
Data Point Number in the database
Response required
Response
signature
Result OK
Response
signature
Result not
OK
0
1
2
3
4-9
10
None
Read Parameter Value
Write Parameter Value (integer)
Write Parameter Value (Long int)
Not used in UNISAB II
Write Parameter value (byte)
0
1,2 11
1
2
7
7
7
11
Response value will be returned in PWE 6 and 7 for integers and in PWE 7 for bytes. Response signature
will be returned in the AK field.
3.2
Error codes
If UNISAB II cannot return the data wanted or cannot write the settings wanted an error code is returned in
the PWE field byte no 6 and 7 as one integer.
0
1
Undefined PNU
Parameter cannot be written into
Preliminary
2
3
3.3
PKW (PARAMETER-KENNUNG-WERT)
Data in UNISAB II is stored in simple databases using structures. This makes tables and addressing simpler
than having one long numbered array of data. Furthermore it makes later extensions of these databases and
their structures possible without compromising compatibility towards newer or older versions. If master
indexes too far in an old slave the slave will respond with an error message telling that this point is not
defined (Error code 0). This demands that the numbering of existing points and indexes must never be
altered in UNISAB II versions to come.
HOW TO:
There are several databases, each with data points of different structure. The database is addressed with bit
8, 9 and 10 of the PKE. The 8 LSB of the PKE is the actual data point number in the database in question.
With IND (Index) of the PKW the structure is indexed into.
Please note that all index 0 in MEASUREMENTS DATA are all transferred in the PZD (Prozessdaten) field of
the PPO (Parameter-Prozessdaten-Objekt) using cyclic transfer. This might be useful for testing.
Please note that all data is transferred as integers. Data structures, which are not composed of integers,
must nevertheless be accessed as arrays of integers.
MEASUREMENTS DATA
TIMER DATA
CONFIG DATA
EXTENDED CONFIG DATA
EEPROM DATA
ALARM LOG DATA
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
YORK Marine, Controls
Author: Henning Hansen Owner: Claus Eifer
Page 8 of 15
Preliminary
VOL_FLOW_COP
MOTOR_REVS
MOTOR_POWER
SUCT_PRESS_BAR
DISCH_PRESS_BAR
INTERM_PRESS_BAR
YIELD
17
18
19
20
21
22
23
value;
alarmHIlim;
alarmHIlimmin;
alarmHIlimmax;
alarmLOlim;
alarmLOlimmin;
alarmLOlimmax;
warningHIlim;
warningHIlimmin;
warningHIlimmax;
warningLOlim;
warningLOlimmin;
warningLOlimmax;
actualSP;
setp1;
setp1min;
setp1max;
setp2;
setp2min;
setp2max;
neutralzone;
neutralzonemin;
neutralzonemax;
pband;
pbandmin;
pbandmax;
tsample;
tsamplemin;
tsamplemax;
tint;
tintmin;
tintmax;
tdiff;
tdiffmin;
tdiffmax;
p_bidrag;
i_bidrag;
d_bidrag;
minpulse;
minpulsemin;
minpulsemax;
actuatortime;
actuatortimemin;
actuatortimemax;
mv_gemt;
sample_timer;
reg_output;
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
YORK Marine, Controls
Author: Henning Hansen Owner: Claus Eifer
Page 9 of 15
Preliminary
float
gam_int_del;
unsigned char
retvendt;
unsigned char
symmetrical;
unsigned char alarmHIcode;
unsigned char alarmLOcode;
unsigned char warningHIcode;
unsigned char warningLOcode;
unsigned char type;
unsigned char exp;
MENU_FLAG_REC menuflag;
LIMIT_CHECK_REC limitflag;
ALARM_FLAG_REC alarmflag;
unsigned char
it_was_MAN;
Adressing beyond index 46 is not considered to be relevant. If you want to do so anyway you must transfer
the data needed as integers and figure out in which way to unpack data.
Later there may be added definitions about sub structures MENU_FLAG_REC etc. This is not considered
relevant now as this information is of no use outside UNISAB II except for debugging software internally to
UNISAB II.
Datapoints in TIMER DATA
For screw compressors:
START START
STOP START
START DELAY
STOP DELAY
SUCT.RAMP
SLIDE MAX
PRELUB
OIL FLOW
FLOW DELAY
NO OIL FLOW
LUBRIC.TIME
DIF.PRES.OK
OIL PRESS L
FILT.DIFF H
OIL TEMP.LO
OIL TEMP.HI
SUPERH.LOW
SUPERH.HIGH
DISCH.OVERL
CURR OVERLD
MOTOR START
PMS FEEDBCK
FULL FLOW M
OIL PUMP M
RECT.START
RECT.DELAY
RECT.DISABL
START HP
NO CHILLER
CAP.NEGATIVE
START UNLOAD
LOW SUCT.P
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Preliminary
LUBE PRESS
VI PAUSE
32
33
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
0
1
2
3
4
5
6
On UNISAB II Display
0
1
2
3
4
5
Preliminary
MOUNTED_WITH_AUTO_VI
MOUNTED_WITH_HLI_BLI
MOUNTED_WITH_ECO
HIGH_SUCT_LIM_FOR_ECO
LOW_CAP_LIM_FOR_ECO
SWEPT_VOLUME
COMMON_EVAP_COND
AUXILIARY_OUTPUT_TYPE
COMMUNICATIONS_SPEED
PRESS_MEASURING_UNIT
PREFERRED_MASTER_CONT
ADDITIONAL_UNLOAD
RANGE_MOTOR_CURRENT
CONTROLLING_ON
EXT_SIGNAL_USED_FOR
EXT_SIGNAL_MIN_VALUE
EXT_SIGNAL_MAX_VALUE
COLD_STORE
AUTO_START
AUTO_STOP
OIL_COOLING
DISCH_GAS_COOLING
HP_ON_TWO_STAGE
CLIMA_CONTROL
OIL_RECTIFIER
MANUAL_ZERO
MOTOR_SIZE
MOTOR_MEASURING_UNIT
COP_ACTIVE
COP_FLOW_FACTOR
SUBCOOLING_COP
MARTYR_AND_TAKE_OVER
EVAPORATOR
CONDENSOR
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
LANGUAGE - LANGUAGE
LANGUAGE - CONTRAST
CALIBRATE _ PRESS TRANSDUCER SUCT.ADJUST
CALIBRATE _ PRESS TRANSDUCER DISC.ADJUST
CALIBRATE _ PRESS TRANSDUCER IMED.ADJUST
CALIBRATE _ PRESS TRANSDUCER OIL.ADJUST
CALIBRATE _ PRESS TRANSDUCER DIFF.ADJUST
CALIBRATE BRINE TEMP BRINE ADJST
CALIBRATE CAP.POS. CAP.ZERO AD
CALIBRATE CAP.POS. CAP 100 ADJ
MULTISAB PARALLEL CONTR. PARALLEL CA
CONFIG COMPRESSOR VI MODE
CONFIG COMMUNICATION PORT 2
CONFIG COMMUNICATION BAUD RATE (Port 1)
CONFIG COMMUNICATION BAUD RATE (Port 2)
CONFIG COMMUNICATION PORT 1
Reserved for later expansion
CONFIG COMMUNICATION NODE NO (Port 1)
CONFIG COMMUNICATION NODE NO (Port 2)
DIAGNOSE MISC.FUNCTIONS BRAKE DLY.
CONFIG MEASURING UNIT - PRESS
YORK Marine, Controls
Author: Henning Hansen Owner: Claus Eifer
Page 12 of 15
Preliminary
ROTATUNE
MOTOR_INPUT_4_20
RANGE_MOTOR_POWER
CAP_SIGNAL
VI_ZERO_OFFSET
VI_100_OFFSET
PROFIBUS
PROFIBUS_BAUD_RATE
PROFIBUS_ADR
FREQ_ZERO_OFFSET
FREQ_100_OFFSET
MIN_FREQ
MAX_FREQ
PID_CONTROLLER
ALARM_OUTPUT_FOR_LOW_SUCT.
DANBUSS_VERSION
GSD_FILE_NUMBER
DIG_IN_1_VIA_PROFIBUS
DIG_IN_2_VIA_PROFIBUS
DIG_IN_3_VIA_PROFIBUS
DIG_IN_4_VIA_PROFIBUS
DIG_IN_5_VIA_PROFIBUS
DIG_IN_6_VIA_PROFIBUS
DIG_IN_7_VIA_PROFIBUS
DIG_IN_8_VIA_PROFIBUS
DIG_IN_9_VIA_PROFIBUS
DIG_IN_10_VIA_PROFIBUS
DIG_IN_11_VIA_PROFIBUS
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
0
1
2
sec;
/* Seconds
*/
min;
/* Minutes
*/
hour;
/* Hour
*/
mday;
/* Day of month */
month;
/* Month
*/
year;
/* Year
*/
compr_ser_no;
next_alarm_log;
total_number_of_alarms;
0
0
1
1
2
2
3 and 4
5
6
Preliminary
Datapoints in ALARM LOG DATA:
Simply an array of datastructures 0..29.
Please note that the alarms are being logged into a ring buffer system consisting of these 30 logs. The oldest
one may at any time be overwritten while You are fetching its data if a new alarm occurs. Date and time of
the log being read may be used for checking that it has not been updated while reading the rest of that log.
Please use the date and time of each log for sorting the logs chronologically. Or use the
total_number_of_alarms and next_alarm_log from the EEPROM DATA.
Datastructure for ALARM LOG DATA:
unsigned char al_type;
/*30-73*/
0
unsigned char year;
/*0=1992. 99 = 2091*/
0
unsigned char month;
/*1-12*/
1
unsigned char day;
/*1-31*/
1
unsigned char hour;
/*0-23*/
2
unsigned char min;
/*0-59*/
2
unsigned char mode_status; /*hi mode 0-4 lo nibble status 0-11*/
3
unsigned char start_system_no; /*hi start_no 0-14 , lo system_no 0-14*/
3
unsigned char multisab_state; /*0-9*/
4
unsigned char dig_i_00_07;
4
unsigned char dig_i_08_15;
5
unsigned char dig_o_00_07;
5
unsigned char dig_o_08_15;
6
unsigned char dig_o_16_23;
6
unsigned int
runtime;
/*0-0xffff*/
7
unsigned long latest_runtime; /*seconds*/
8 and 9
int
s_temp;
10
int
d_temp;
11
int
o_temp;
12
int
b_i_temp;
13
int
s_press;
14
int
d_press;
15
int
lub_press;
16
int
d_i_press;
17
int
vol_pos;
18
int
cap_pos;
19
int
ext_inp;
20
int
motor_curr;
21
int
s_superheat;
22
int
d_superheat;
23
int
motor_power;
24
int
motor_revs;
25
Preliminary
Date
Author
Pages affected
1.0
1.1
1.2
2.0
2.1
2.2
040826
040913
041007
041007
041108
041111
PSA
PSA
PSA
PSA
HEH
HEH
All
All
4-6
All
4
16
2.3
041125
HEH
2.4
2.5
041125
041125
HEH
HEH
3.0
041129
HEH
3.1
3.2
041207
041207
HEH
HEH
3.3
041213
HEH
3.4
4.0
041213
041214
HEH
HEH
Original issue
Added PD table and PKW points
Expanded the Input table
Expanded Input protocol
Removed doublet of Mode in the data Input table
Corrected data structure for TIMER data. EDIT OK up from
2 to 0
Separated Change value bit for PDW2 into bits for PD2,
PD3, PD4 and PD5. Bit for PDW3 removed
PD2 to PD5: Comments about CW bits for writing
Comment stressing the importance og writing capacity sp
less than -100 in order to return from remote control.
Removed change bits from data field PD4.
Data Points labelled in english. Text from display, not from
internal code. Added description of PKW with tables of
commands and error codes.
Indexes listed for EEPROM DATA and for ALARM LOG.
Renamed next log index to next alarm log in order to avoid
using index in two different meanings. Added explanation
for Time for Commissioning.
Removed unused columns in tables. Removed lines
describing data points which may be added later.
Added point no 37 - 48 in Extended Config Data.
Removed alarm and warning texts. Added explanation as to
where to find certain config points on the UNISAB II display
11
10
10
Most
18,19
All
Most
14
Most