standard.
Before using this driver in the PROMOTIC application it is highly recommended to read the chapter:
.
The communication description by the PmCommData objects
For this driver, it is possible to use the
PmCommData objects (only data receive working so far). For regular ASDU variable receiving, it is more advantageous than using the
PmCommMsg object set for
Slave message of the
"Data receive" type. It is possible to receive all types of ASDU data/commands listed below, see
List and description of supported ASDU.
The PmCommData > Parameters > Communication refresh rate [ms] configurator is not defined for this driver and therefore is set to 0. The object does not send prompts for data transfers.
For IEC 60870-5-101, the opposite side sends data automatically, or the data transfer may be required by sending the Master message of the "Data request" type.
There can be multiple
PmCommData objects in one
PmComm object. The variables defined in different
PmCommData must differ by the value of their common address (
ASDU Common Address). It means that
there can be 2 variables with different common addresses in one
PmCommData object, but there
must not be two variables with the same common address in two
PmCommData objects.
Description of the ItemID configurator: ItemId is the text identifier of the item that is used for addressing the value in the device. The ItemID configurator tells the driver how to receive or send the item value. The text can be written manually, or it can be assembled in the window opened by the button to the right of the configurator. Macro expression can be used for input (it is evaluated while the application is launching).
The text can be e.g. "CA1501.v6".
- 1st part specifies the ASDU common address (CA1501 = Commnon Address 1501).
- 2nd part specifies the address of the information object and a value type of this object (
v6 = value on address 6). The types are:
v = Value = item value
t = Time
This configurator is not used for given driver.
List and description of supported ASDU
The following ASDU data types can be received (by
PmCommData object or by
Slave message of the
"Data receive" type) and sent (by
Master message of the
"Data send" type):
ASDUs for process information in monitor direction:
ASDU-1 (M_SP_NA_1) = One bit information: - Value is of Byte type, 0=OFF, 1=ON.
- Qualificator (
Qualif) is of type
SIQ - The Time is not used.
ASDU-2 (M_SP_TA_1) = One bit information: - Value is of Byte type, 0=OFF, 1=ON.
- Qualificator (
Qualif) is of type
SIQ - The Time is not implemented yet.
ASDU-3 (M_DP_NA_1) = Two bits information: - Value is of Byte type, 0=indeterminate or intermediate state, 1=determinate state OFF, 2=determinate state ON, 3=indeterminate state.
- Qualificator (
Qualif) is of type
DIQ - The Time is not used.
ASDU-4 (M_DP_TA_1) = Two bits information: - Value is of Byte type, 0=indeterminate or intermediate state, 1=determinate state OFF, 2=determinate state ON, 3=indeterminate state.
- Qualificator (
Qualif) is of type
DIQ - The Time is not implemented yet.
ASDU-5 (M_ST_NA_1) = Step position information: - Value is of the Byte type and represents the indication of transitional state for location signalisation. Highest bit of the value: 0 = the device is not in transitional state, 1 = the device is in transitional state.
- Qualificator (
Qualif) is of type
QDS - The Time is not used.
ASDU-6 (M_ST_TA_1) = Step position information with time tag CP24: - Value is of the Byte type and represents the indication of transitional state for location signalisation. Highest bit of the value: 0 = the device is not in transitional state, 1 = the device is in transitional state.
- Qualificator (
Qualif) is of type
QDS - The Time is not implemented yet.
ASDU-7 (M_BO_NA_1) = Bit string of 32 bits: - Value is of a
Long type and represents the binary state 32 bit information (each bit can be read, for example, by using the
Bit property).
- Qualificator (
Qualif) is of type
QDS - The Time is not used.
ASDU-8 (M_BO_TA_1) = Bit string of 32 bits: - Value is of a
Long type and represents the binary state 32 bit information (each bit can be read, for example, by using the
Bit property).
- Qualificator (
Qualif) is of type
QDS - The Time is not implemented yet.
ASDU-9 (M_ME_NA_1) = Measured normalized value: - Value is of Single type, range from -1.0 to +1.0.
- Qualificator (
Qualif) is of type
QDS - The Time is not used.
ASDU-10 (M_ME_TA_1) = Measured normalized value: - Value is of Single type, range from -1.0 to +1.0.
- Qualificator (
Qualif) is of type
QDS - The Time is not implemented yet.
ASDU-11 (M_ME_NB_1) = Measured value with with measure: - Value is of Integer type (range from -32536 to +32535) and represents a value with firm scale (e.g. the voltage of 10.3kV will be transferred as 103)
- Qualificator (
Qualif) is of type
QDS - The Time is not used.
ASDU-12 (M_ME_TB_1) = Measured value with measure with time mark: - Value is of Integer type (range from -32536 to +32535) and represents a value with firm scale (e.g. the voltage of 10.3kV will be transferred as 103)
- Qualificator (
Qualif) is of type
QDS - The Time is not implemented yet.
ASDU-13 (M_ME_NC_1) = Measured value, short float: - Value is of Single type and the full available range can be used.
- Qualificator (
Qualif) is of type
QDS - The Time is not used.
ASDU-14 (M_ME_TC_1) = Measured value, short float: - Value is of Single type and the full available range can be used.
- Qualificator (
Qualif) is of type
QDS - The Time is not implemented yet.
ASDU-15 (M_IT_NA_1) = Integrated totals: - Value is of the Long type in the whole extent.
- Qualificator (
Qualif) is of type
BCR - The Time is not used.
ASDU-16 (M_IT_TA_1) = Integrated totals with time tag: - Value is of the Long type in the whole extent.
- Qualificator (
Qualif) is of type
BCR - The Time is not implemented yet.
ASDU-30 (M_SP_TB_1) = One bit information with time mark CP56: - Value is of Byte type, 0=OFF, 1=ON.
- Qualificator (
Qualif) is of type
SIQ - The Time is of Date type.
ASDU-31 (M_DP_TB_1) = Two bits information with time mark CP56: - Value is of Byte type, 0=indeterminate or intermediate state, 1=determinate state OFF, 2=determinate state ON, 3=indeterminate state.
- Qualificator (
Qualif) is of type
DIQ - The Time is of Date type.
ASDU-33 (M_BO_TB_1) = Bit string of 32 bits with time mark CP56: - Value is of a
Long type and represents the binary state 32 bit information (each bit can be read, for example, by using the
Bit property).
- Qualificator (
Qualif) is of type
QDS - The Time is of Date type.
ASDU-34 (M_ME_TD_1) = Measured normalized value with time mark CP56: - Value is of Single type, range from -1.0 to +1.0.
- Qualificator (
Qualif) is of type
QDS - The Time is of Date type.
ASDU-35 (M_ME_TE_1) = Measured value with meter with time mark CP56: - Value is of Integer type (range from -32536 to +32535) and represents a value with firm scale (e.g. the voltage of 10.3kV will be transferred as 103)
- Qualificator (
Qualif) is of type
QDS - The Time is of Date type.
ASDU-36 (M_ME_TF_1) = Measured value, short float with time mark CP56: - Value is of Single type and the full available range can be used.
- Qualificator (
Qualif) is of type
QDS - The Time is of Date type.
ASDU-37 (M_IT_TB_1) = Integrated totals with time tag CP56: - Value is of the Long type in the whole extent.
- Qualificator (
Qualif) is of type
BCR - The Time is of Date type.
ASDUs for process information in control direction:
ASDU-45 (C_SC_NA_1) = Single command: - Value is of Byte type, 0=OFF, 1=ON.
- Qualificator (
Qualif) is of type
QOC - The Time is not used.
ASDU-46 (C_DC_NA_1) = Double command: - Value is of Byte type, 0=not permitted, 1=OFF, 2=ON, 3=not permitted.
- Qualificator (
Qualif) is of type
QOC - The Time is not used.
ASDU-48 (C_SE_NA_1) = Set-point command, normalised value: - Value is of Single type, range from -1.0 to +1.0.
- Qualificator (
Qualif) is of type
QOS - The Time is not used.
ASDU-49 (C_SE_NB_1) = Set-point command, value with measure: - Value is of Integer type (range from -32536 to +32535) and represents a value with firm scale (e.g. the voltage of 10.3kV will be transferred as 103)
- Qualificator (
Qualif) is of type
QOS - The Time is not used.
ASDU-50 (C_SE_NC_1) = Set-point command, short floating point number: - Value is of Single type and the full available range can be used.
- Qualificator (
Qualif) is of type
QOS - The Time is not used.
ASDU-51 (C_BO_NA_1) = Bitstring of 32 bit: - Value is of a
Long type and represents the binary state 32 bit information (each bit can be read, for example, by using the
Bit property).
- The qualificator (Qualif) is not used.
- The Time is not used.
ASDU-58 (C_SC_TA_1) = Single command with time tag CP56: - Value is of Byte type, 0=OFF, 1=ON.
- Qualificator (
Qualif) is of type
QOC - The Time is of Date type.
ASDU-59 (C_DC_TA_1) = Double command with time tag CP56: - Value is of Byte type, 0=not permitted, 1=OFF, 2=ON, 3=not permitted.
- Qualificator (
Qualif) is of type
QOC - The Time is of Date type.
ASDU-60 (C_RC_TA_1) = Regulation step command with time tag CP56: - Value is of Byte type, 0=not permitted, 1=next step Lower, 2=next step Higher, 3=not permitted.
- Qualificator (
Qualif) is of type
QOC - The Time is of Date type.
ASDU-61 (C_SE_TA_1) = Set-point command with time tag CP56, normalised value: - Value is of Single type, range from -1.0 to +1.0.
- Qualificator (
Qualif) is of type
QOS - The Time is of Date type.
ASDU-62 (C_SE_TB_1) = Set-point command with time tag CP56, value with measure: - Value is of Integer type (range from -32536 to +32535) and represents a value with firm scale (e.g. the voltage of 10.3kV will be transferred as 103)
- Qualificator (
Qualif) is of type
QOS - The Time is of Date type.
ASDU-63 (C_SE_TC_1) = Set-point command with time tag CP56, short floating point number : - Value is of Single type and the full available range can be used.
- Qualificator (
Qualif) is of type
QOS - The Time is of Date type.
ASDU-64 (C_BO_TA_1) = Bitstring of 32 bit with time tag CP56: - Value is of a
Long type and represents the binary state 32 bit information (each bit can be read, for example, by using the
Bit property).
- The qualificator (Qualif) is not used.
- The Time is of Date type.
ASDUs for system information in control direction:
ASDU-100 (C_IC_NA_1) = Interrogation command: The purpose of this command is more genaral but principialy the same as sending Master message of the "Data request" type. The "cause of transmission" can also be controled here.
- Value is of
Long type. It is the "
cause of transmission":
6=act,
7=actcon,
8=deact,
9=deactcon,
10=actterm.
- Qualificator (
Qualif) is of type
QOI - The Time is not used.
ASDU-101 (C_CI_NA_1) = Counter Interrogation Command: - Qualificator (
Qualif) is of type
QCC - The Time is not used.
Types and values of qualificators (Qualif)
The item qualificator (qualitative descriptor) provides additional information. It may regard the value quality (valid, invalid...), but also the period, order, etc.
Qualificator types:
-
SIQ:
It is of
Byte data type. This qualificator is used in
ASDU-1,
ASDU-2,
ASDU-30.
0 = normal value
5.bit = 0/1 = not blocked/blocked
6.bit = 0/1 = not substituted/substituted
7.bit = 0/1 = topical/not topical value
8.bit = 0/1 = valid/invalid value If this bit is set, then the variable
Quality property is set to
"0=Bad:NonSpecific".
-
DIQ:
It is of
Byte data type. This qualificator is used in
ASDU-3,
ASDU-4,
ASDU-31.
0 = normal value
5.bit = 0/1 = not blocked/blocked
6.bit = 0/1 = not substituted/substituted
7.bit = 0/1 = topical/not topical value
8.bit = 0/1 = valid/invalid value If this bit is set, then the variable
Quality property is set to
"0=Bad:NonSpecific".
-
QDS:
It is of
Byte data type. This qualificator is used in
ASDU-(5-14),
ASDU-(33-36).
0 = normal value
1.bit = 0/1 = no overflow/overflow
5.bit = 0/1 = not blocked/blocked
6.bit = 0/1 = not substituted/substituted
7.bit = 0/1 = topical/not topical value
8.bit = 0/1 = valid/invalid value If this bit is set, then the variable
Quality property is set to
"0=Bad:NonSpecific".
-
BCR:
It is of
Byte data type. This qualificator is used in
ASDU-15,
ASDU-16,
ASDU-37. Contains the sequence record:
- 0-4.bit (SQ) is the sequence number
- 5.bit (CY) specifies whether the counter overflow occured (=1) or not (=0) in the corresponding integration period
- 6.bit (CA) specifies whether the counter was set (=1) or not (=0) since the last reading
- 7.bit (IV) specifies whether the counter reading is considered valid (=0) or invalid (=1)
-
QOC:
It is of
Byte data type. This qualificator is used in
ASDU-(45-46),
ASDU-(58-60).
0 = no additional definition
1 = short pulse duration
2 = long pulse duration
3 = persistent output
>3 = reserved
Moreover if 8.bit=0=execute, 1=select(prepare)
-
QOS:
It is of
Byte data type. This qualificator is used in
ASDU-(48-50),
ASDU-(61-63).
0 = default
>1 = reserved
Moreover if 8.bit=0=execute, 1=select(prepare)
-
QOI:
It is of
Byte data type. This qualificator is used in
ASDU-100.
20 = station interrogation (global)
21..36 = group 1..16 interrogation
-
QCC:
It is of
Byte data type. This qualificator is used in
ASDU-101. Represents a sum of two numbers:
The first number is the RQT request: 0 = no counter requested, 1-4 = counter of the groups 1-4 requested, 5 = general counter request.
The second number is FRZ freeze: 0 = no freeze or zeroing, 64 = counter freeze, no zeroing, 128 = counter freeze with zeroing, 128+64 = counter zeroing.
Description of data query for IEC 60870-5-104.
The oposite side can send the data automatically (e.g. if change occured, then usually "cause of transmission"=
3=spont) and the data is received into the variables defined in the
PmCommData object (or it can be received as
Slave messages of the
"Data receive" type).
If the PROMOTIC application needs to ask for the data from the opposite side (all, not only the changed values), then the PROMOTIC application must send Master message of the "Data request" type. This message will send ASDU-100 with "cause of transmission"=6=act and then wait for reply. The opposite side should send back the same message with "cause of transmission"=7=actcon.
Then the opposite side starts to send data messages (with "cause of transmission"=20=inrogen), that will be received into the variables defined in the PmCommData object (or they can be accepted by Slave messages of the "Data receive" type).
After the termination the opposite side sends ASDU-100 message with "cause of transmission"=10=actterm - this message can be accepted by Slave message of the "Receive when nobody want" type.
The procedure is similar also backwards: the opposite side can send
ASDU-100 with "cause of transmission"=
6=act, i.e. that the opposite side requsts data into the PROMOTIC application. This message can be accepted by the
Slave message of the
"Receive when nobody want" type with
ErrorFlag=0. Then it is necessary to answer
ASDU-100 with "cause of transmission"=
7=actcon. Then the Promotic system will send the data by
Master message of the
"Data send" type. After sending the necessary data (sometimes not requested to) it is possible to send
ASDU-100 message with "cause of transmission"=
10=actterm - it can also be done by
Master message of the
"Data send" type.