# Addressing

### Monitor ASDUs <a href="#h.2ay3hasa6gha" id="h.2ay3hasa6gha"></a>

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          | <p>M\_BO\_NA\_1, M\_BO\_TA\_1,</p><p>M\_BO\_TB\_1</p> | Bit string of 32 bit.                                                                |
| M\_ME\_NV      | <p>M\_ME\_NA\_1, M\_ME\_TA\_1,</p><p>M\_ME\_TD\_1</p> | Measured value normalized. This represents a value between -1 and 0.999969482421875. |
| M\_ME\_SV      | <p>M\_ME\_NB\_1, M\_ME\_TB\_1,</p><p>M\_ME\_TE\_1</p> | 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:

* &#x20;M\_SP.1.COT
* &#x20;M\_SP.62.Quality,Read=1
* &#x20;M\_SP.40.Timestamp,Read=1
* &#x20;M\_SP.1.Value
* &#x20;M\_ME\_SV.1.Value,Read=1
* &#x20;M\_BO.1.Value,Read=1
* &#x20;M\_IT.9.Value
* &#x20;M\_ME\_FV.1.Value

### Control ASDUs <a href="#h.4qy6c7m5iw3q" id="h.4qy6c7m5iw3q"></a>

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.                                                              |

&#x20;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. |

&#x20;Examples of allowed addresses in the control direction:

* &#x20;C\_SC.1.Execute
* &#x20;C\_DC.15.Select.ShortPulse
* &#x20;C\_DC.1.Select.Timestamp
* &#x20;C\_SC.73.Select.ShortPulse.Timestamp
* &#x20;C\_SC.1.Select.Persistent
* &#x20;C\_SC.3219.Deselect.LongPulse
* &#x20;C\_SC.1.Deselect.Persistent


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.monokot.io/tags-and-devices/iec-60870-5-104-connectivity/addressing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
