Protocolos y datos

ASDU, causas de transmisión y direcciones en IEC 60870

Lista de puntos IEC 101/104: tipo, causa de transmisión, dirección común y dirección de objeto, con una trama IEC 104 descifrada byte a byte.

Todo mensaje IEC 60870-5-101 o 104 que transporta datos contiene una ASDU, una unidad de datos de servicio de aplicación. La ASDU indica cómo se codifica el valor (tipo), por qué se envió (causa de transmisión), la estación o dispositivo lógico (dirección común) y el punto (dirección de objeto de información). Los fallos habituales de mapeo aparecen al interpretar uno de estos datos sin los demás: una IOA correcta bajo una dirección común equivocada, un valor flotante interpretado como entero escalado o una respuesta a una interrogación almacenada como evento.

Los campos

IEC 60870-5-101 define el identificador de unidad de datos al principio de cada ASDU. IEC 60870-5-104 usa el mismo identificador con tamaños de campo fijos.

CampoContenidoTamaño en IEC 104Opciones en IEC 101
Identificación de tipoCodificación de los objetos de información1 byte1 byte
Calificador de estructura variableNúmero de objetos, de 0 a 127 (bits 1 a 7), y bit SQ (bit 8)1 byte1 byte
Causa de transmisiónCausa, de 0 a 63 (bits 1 a 6), bit P/N (bit 7) y bit T (bit 8)1 byte1 byte
Dirección del originadorEstación de control que originó el mensaje; 0 si no se usa1 byte0 o 1 byte
Dirección común (CA)Estación o dispositivo lógico2 bytes1 o 2 bytes
Dirección de objeto de información (IOA)Punto3 bytes por objeto1, 2 o 3 bytes
Elementos de informaciónValor, calidad y, si procede, marca temporalDepende del tipoDepende del tipo

En IEC 101, los tamaños de la causa, la dirección común y la dirección de objeto son parámetros del sistema indicados en la lista de interoperabilidad; ambos extremos deben coincidir. Un tamaño erróneo desplaza todos los bytes posteriores. Renumerar puntos no lo corrige.

El bit SQ modifica la disposición de los objetos. Con SQ = 0, cada objeto lleva su propia IOA. Con SQ = 1, la ASDU lleva una sola IOA y, a continuación, los elementos de esa dirección y de las direcciones consecutivas. Una ASDU de tipo 13 con SQ = 1, 10 objetos e IOA 2001 lleva valores para las IOA 2001 a 2010 y solo 3 bytes de dirección. Un decodificador que espere una IOA antes de cada valor interpretará bytes del valor flotante como direcciones, y todos los valores después del primero serán erróneos.

El bit T indica un mensaje de prueba. No almacene un valor con T = 1 como dato de proceso. La dirección del originador identifica la estación de control que envió una orden y vale 0 si no se usa. Cuando dos centros de control comparten una RTU, cada uno puede establecer su propia dirección de originador. La RTU la reproduce en sus confirmaciones para que cada centro relacione estas con sus propias órdenes.

Una trama en el cable

Esta trama I de IEC 104 lleva una potencia activa de 2.340,5 kW desde la dirección común 12, IOA 1001, enviada porque cambió el valor:

68 12 00 00 00 00 0D 01 03 00 0C 00 E9 03 00 00 48 12 45 00

BytesCampoInterpretación
68Byte de inicioInicio de una trama IEC 104
12LongitudSiguen 18 bytes
00 00 00 00Campo de controlFormato I; números de secuencia de envío y recepción 0
0DIdentificación de tipo13, M_ME_NC_1
01Calificador de estructura variableSQ = 0, 1 objeto
03Causa de transmisión3, espontánea; P/N = 0, T = 0
00Dirección del originador0, no utilizada
0C 00Dirección común12
E9 03 00IOA1001 (0x0003E9)
00 48 12 45Flotante corto0x45124800, 2.340,5
00Descriptor de calidad0, ninguna bandera de calidad activa

Cada campo de varios bytes se transmite empezando por el byte menos significativo. Un decodificador que lea los campos en el orden contrario obtendrá una dirección común de 3.072 (0x0C00) y una IOA de 15.270.656 (0xE90300). Leerá el flotante como 6,6 × 10⁻³⁹, un valor que un historiador puede almacenar sin protestar. El convertidor de flotantes IEEE 754 muestra los bytes de cualquier valor. La guía de marcas temporales y calidad descifra los bits de calidad y la marca temporal.

Identificación de tipo

El tipo indica cómo decodificar los elementos de información. La cláusula 7.3 de IEC 60870-5-101 define cada tipo. Algunos tipos habituales:

TipoNombreContenido
1M_SP_NA_1Estado de punto simple: 0 desactivado, 1 activado
3M_DP_NA_1Estado de punto doble: 1 desactivado, 2 activado, 0 intermedio, 3 indeterminado
9M_ME_NA_1Valor medido normalizado (16 bits)
11M_ME_NB_1Valor medido escalado (16 bits)
13M_ME_NC_1Valor medido de coma flotante corta (32 bits)
15M_IT_NA_1Totales integrados (contadores)
30, 31, 36, 37M_SP_TB_1, M_DP_TB_1, M_ME_TF_1, M_IT_TB_1Tipos 1, 3, 13 y 15 con marca temporal CP56Time2a
45, 46C_SC_NA_1, C_DC_NA_1Órdenes simples y dobles
50C_SE_NC_1Orden de consigna en coma flotante corta
100C_IC_NA_1Orden de interrogación general
101C_CI_NA_1Orden de interrogación de contadores
103C_CS_NA_1Orden de sincronización de reloj

El prefijo M indica datos de supervisión enviados desde la RTU. El prefijo C indica órdenes dirigidas a ella. IEC 104 solo utiliza la marca temporal CP56Time2a de 7 bytes. Los tipos de IEC 101 con marca CP24Time2a de 3 bytes, como los tipos 2, 4 y 14, no se usan en IEC 104.

Los tipos 9 y 11 transportan un entero con signo de 16 bits, no un valor físico. Para el tipo 9, divida el entero entre 32.768 para obtener una fracción de −1 a +0,99997 y multiplíquela por el valor de plena escala. Con una plena escala de 1.000 kW, un valor bruto de 16.384 equivale a 0,5, es decir, 500 kW. Para el tipo 11, el entero es el valor multiplicado por un factor acordado: 2.340,5 kW con un factor de 10 se envía como 23.405. Ninguno de los dos tipos incluye su plena escala o factor. Un receptor con el factor equivocado produce una cifra errónea pero plausible.

Un tipo de coma flotante tampoco incluye la unidad. Un valor de 2.340,5 en el tipo 13 podría representar kW, kVA o A. La unidad, la convención de signos y el punto de medida deben figurar en la lista de puntos acordada por ambas partes.

Causa de transmisión

Valores habituales de causa de transmisión:

CausaSignificado
1Periódica o cíclica
3Espontánea: cambió el valor
5Solicitada
6Activación: una orden
7Confirmación de activación
8, 9Desactivación y su confirmación
10Terminación de activación: terminó la orden
11, 12Información de retorno causada por una orden remota o local
20Interrogación de estación: respuesta a una interrogación general
21 a 36Interrogación de grupos 1 a 16
37Solicitada por interrogación general de contadores, para totales integrados
44Identificación de tipo desconocida
45Causa de transmisión desconocida
46Dirección común desconocida
47Dirección de objeto de información desconocida

Interprete la causa junto con el tipo y el bit P/N. La causa 7 con P/N = 1 es una confirmación negativa: la RTU rechazó la orden. La guía de órdenes sigue una orden a través de cada causa.

Direcciones

Un punto se identifica por su dirección común y dirección de objeto de información juntas, dentro de una conexión. El tipo no forma parte de la dirección. La IOA 1001 puede existir bajo las direcciones comunes 12 y 13, y en todas las RTU de una red de instalaciones. La dirección IP (IEC 104) o la dirección de enlace (IEC 101) identifica la conexión, no el punto.

Una conexión IEC 104 puede servir varias direcciones comunes. El valor más alto, 65535 con un campo de 2 bytes o 255 con uno de 1 byte, es la dirección global. Una estación de control la usa para funciones de toda la estación, como la interrogación general, y cada dirección común responde bajo su propia dirección. No todas las funciones pueden utilizarla. La RTU de lib60870 rechaza una orden de lectura (tipo 102), una orden de prueba (tipos 104 y 107) o una orden de adquisición de retardo (tipo 106) enviada a la dirección global, con causa 46.

La lista de interoperabilidad también indica si la IOA es estructurada o no. Algunas herramientas y listas de puntos de fabricantes muestran una IOA estructurada como tres octetos decimales. La IOA 1001 es 0x0003E9. Puede aparecer como 0.3.233 en una herramienta y como 233.3.0 en otra. Convierta ambas listas a un único entero antes de compararlas.

Ejemplo de entrada en una lista de puntos:

CampoValor
ConexiónRTU A de subestación, 10.40.1.20, puerto 2404
Dirección común12
IOA1001
Tipo13, M_ME_NC_1 (flotante corto, sin marca temporal)
SignificadoPotencia activa en el punto de conexión a red
Unidad y signokW, importación positiva
Banda muerta50 kW
Causas esperadas3 (espontánea, si el valor cambia más que la banda muerta), 20 (interrogación general)

Asigne filas distintas a la potencia medida, la consigna de potencia y la lectura de retorno de la consigna activa, aunque sus nombres se parezcan. La potencia medida es M_ME_NC_1 en sentido de supervisión. La consigna es C_SE_NC_1, tipo 50, en sentido de control, y su confirmación llega en la misma IOA con causa 7. La lectura de retorno de la consigna es otro punto de supervisión con su propia IOA.

Pruebe tanto el rechazo como la aceptación

Ponga en servicio al menos un punto de cada tipo de la lista de puntos. Compare tipo, dirección común, IOA, causa, unidad y valor decodificados con la lista acordada.

Después conecte un simulador de centro de control IEC 104 en lugar del sistema de control y envíe órdenes que la RTU deba rechazar. Hágalo durante las pruebas de aceptación, antes de que la RTU controle una instalación en servicio.

  1. Envíe un tipo de orden que la RTU no admita. Espere la causa 44.
  2. Envíe una orden admitida con causa 3 en vez de 6. Espere la causa 45.
  3. Envíe una orden a una dirección común que la RTU no atienda. Espere la causa 46.
  4. Envíe una orden a una IOA no configurada. Espere la causa 47.

Una RTU que responde devuelve la petición con la nueva causa y el bit P/N a uno. El comportamiento ante una dirección común desconocida varía. La RTU de lib60870 solo devuelve causa 46 si la aplicación indica a la biblioteca qué direcciones comunes existen. Algunas RTU descartan la petición y no envían nada. Anote el resultado esperado de cada caso en la lista de interoperabilidad y conserve juntos la revisión de la lista de puntos y los resultados de las pruebas.

Telecontrol y sistemas EpiSensor

Edge no implementa IEC 60870-5-101 ni 104. En una instalación con enlace de telecontrol, la RTU o la pasarela de subestación transporta los puntos del operador de red y un sistema EpiSensor mide la instalación situada detrás. La guía de IEC 101 frente a 104 explica dónde se encuentra ese límite.

Preguntas frecuentes

¿Qué es una ASDU en IEC 60870-5-104?

La unidad de datos de servicio de aplicación: la parte del mensaje que transporta datos de telecontrol. Comienza con un identificador de unidad de datos (tipo, calificador de estructura variable, causa de transmisión, dirección del originador y dirección común), seguido de uno o más objetos de información, cada uno con su dirección y valor.

¿Qué significa la causa de transmisión 3?

Espontánea: la RTU envió el valor porque cambió. La causa 20 indica que lo envió en respuesta a una interrogación general; la causa 1 indica transmisión periódica o cíclica.

¿Qué es una IOA en IEC 104?

La dirección de objeto de información: un número de 3 bytes en IEC 104 que identifica un punto o función dentro de una dirección común. Se transmite empezando por el byte menos significativo, por lo que la IOA 1001 aparece en el cable como E9 03 00. La misma IOA puede existir bajo otra dirección común o en otra conexión.

¿Qué es M_ME_NC_1?

Identificación de tipo 13: un valor medido como número de coma flotante corta (32 bits), con descriptor de calidad y sin marca temporal. La misma medida con una marca temporal CP56Time2a es M_ME_TF_1, tipo 36.