Monitor ASDUs
To determine the address representing the information object in the monitor direction, use the following template:
ASDU_TYPE.IOA.Option[,Read=1], where ASDU_TYPE specifies the type of the represented ASDU (see below),
IOA specifies the address of the information object,
Option specifies the attribute represented by the address (see below),
and the Read=1 (optional) descriptor indicates that the value must be
requested periodically by sending the command C_RC_NA_1
The Read=1 specifier affects the request procedure if the Enable Reads parameter of the device is set to True.
The table below lists the possible values for ASDU_TYPE.
ASDU_TYPE |
ASDU |
Description |
M_SP |
M_SP_NA_1, M_SP_TA_1, M_SP_TB_1 |
Single-point information. |
M_DP |
M_DP_NA_1, M_DP_TA_1, M_DP_TB_1 |
Double-point information. |
M_ST |
M_ST_NA_1, M_ST_TA_1, M_ST_TB_1 |
Step position information. |
M_BO |
M_BO_NA_1, M_BO_TA_1, M_BO_TB_1 |
Bit string of 32 bit. |
M_ME_NV |
M_ME_NA_1, M_ME_TA_1, M_ME_TD_1 |
Measured value normalized. This represents a value between -1 and 0.999969482421875. |
M_ME_SV |
M_ME_NB_1, M_ME_TB_1, M_ME_TE_1 |
Measured value scaled. Possible values are -32768 to 32767. |
M_ME_FV |
M_ME_NC_1, M_ME_TC_1, M_ME_TF_1 |
Measured value short floating point number. |
M_IT |
M_IT_NA_1, M_IT_TA_1, M_IT_TB_1 |
Integrated totals. Read=1 specifier is not supported for this ASDU type. |
The table below lists the possible values for Option.
Option |
Supported ASDU_TYPE |
Description |
Value |
All types |
Represents the value of the information object. If the IV (invalid) bit is set in the quality descriptor of the information object, the tag will go to the Bad state. |
COT |
All types |
Represents the ASDU cause of transmission field. |
Quality |
All types |
Represents the quality descriptor of the information object as a number. |
Timestamp |
All types |
Represents the timestamp CP56Time2a (without any conversion) of the information object. If the information object does not contain a timestamp, the tag will take the value 0001-01-01 00:00:00 and go to the Bad state. |
Transient |
Only for M_ST |
Specifies whether M_ST is in transient state. |
SQ |
Only for M_IT |
Represents the M_IT sequence number. |
Note that if the information object contains the timestamp CP56Time2a, it will be used as the timestamp of the tag (taking into account the time zone of the station), otherwise the time ASDU arrival to the server will be used.
It should also be noted that for buffered ASDUs (containing several states of the same information object), the “last” state of the information object will be used as the resulting tag state, but the entire sequence of states will be written to the store (for example, InfluxDB), if such feature is used.
Examples of allowed addresses in the monitor direction:
- M_SP.1.COT
- M_SP.62.Quality,Read=1
- M_SP.40.Timestamp,Read=1
- M_SP.1.Value
- M_ME_SV.1.Value,Read=1
- M_BO.1.Value,Read=1
- M_IT.9.Value
- M_ME_FV.1.Value
Control ASDUs
To determine the address representing the information object in the control direction, use the following template:
ASDU_TYPE.IOA.Option[.SubOption][.Timestamp], where ASDU_TYPE specifies
the type
of the control command (see below),
IOA defines the address of the information object,
Option specifies the purpose of the command (see below),
SubOption (optional) specifies the duration of the command,
Timestamp (optional) indicates that a timestamp must be sent along
with the command (the time zone set for the station affects the timestamp generation)
The table below lists the possible values for ASDU_TYPE.
ASDU_TYPE |
ASDU |
Description |
C_SC |
C_SC_NA_1, C_SC_TA_1 |
Single command. Possible values are True or False |
C_DC |
C_DC_NA_1, C_DC_TA_1 |
Double command. Possible values are 1 or 2. |
C_RC |
C_RC_NA_1, C_RC_TA_1 |
Step command. Possible values are 1 or 2. |
C_SE_NV |
C_SE_NA_1, C_SE_TA_1 |
Set point command (normalized value). Possible values are -1 to 0.999969482421875. |
C_SE_SV |
C_SE_NB_1, C_SE_TB_1 |
Set point command (scaled value). Possible values are -32768 to 32767. |
C_SE_FV |
C_SE_NC_1, C_SE_TC_1 |
Set point command (short value). |
C_BO |
C_BO_NA_1, C_BO_TA_1 |
Bit string of 32 bit. |
The table below lists the possible values for Option.
Option |
Supported ASDU_TYPE |
Description |
Execute |
All types |
Indicates that the control command is executed in one step. |
Select |
All types except C_BO |
The first step of the two-step value writing process known as “select before operation”. The command is executed with the help of sending the Execute command for the same information object. |
Deselect |
All types except C_BO |
Resets the selection command to the initial stage before execution, if a selection has been made for it. |
The table below lists the possible values for SubOption.
SubOption |
Supported ASDU_TYPE |
Description |
ShortPulse |
C_SC, C_DC, C_RC |
The value of the command specifier will be set to 1. |
LongPulse |
C_SC, C_DC, C_RC |
The value of the command specifier will be set to 2. |
Persistent |
C_SC, C_DC, C_RC |
The value of the command specifier will be set to 3. |
Examples of allowed addresses in the control direction:
- C_SC.1.Execute
- C_DC.15.Select.ShortPulse
- C_DC.1.Select.Timestamp
- C_SC.73.Select.ShortPulse.Timestamp
- C_SC.1.Select.Persistent
- C_SC.3219.Deselect.LongPulse
- C_SC.1.Deselect.Persistent
Control commands are executed in asynchronous mode. Thus, when writing the value through the OPC UA client, in most cases the result of the writing will be Good. BadNoCommunication is possible if the communication channel is lost or the number of unconfirmed packets is exceeded. After receiving a response ASDU with the cause of transmission ACTIVATION_TERMINATION or DEACTIVATION_CON (depends on the mode: Execute, Select or Deselect), depending on whether the confirmation is positive or negative, the tag will switch to the Good or Bad state, respectively.