Tutorial Straton 2: Domina la comunicación MMS en IEC 61850
Introducción
Hola a todos, aquí está el segundo tutorial sobre el estándar IEC61850, para seguirlo correctamente, os aconsejo encarecidamente leer el primero porque empiezo desde su final para continuar la ingeniería.
Enlace: Tutorial 1 Straton
No vamos a repasar el estándar, así que este tutorial va dirigido a gente que ya está familiarizada con él.
Este artículo se centrará en uno de los dos protocolos de comunicación, el MMS (Manufacturing Message Specification), de este estándar y detallará cómo programarlo en Straton.
Este protocolo se usa para modelar dispositivos y funciones reales, para intercambiar información y datos de proceso bajo condiciones de tiempo real. Esta comunicación se basa en el principio cliente-servidor y tiene lugar verticalmente en una arquitectura de red.
Hay dos mecanismos en MMS:
- Mecanismo Request-Reply (Petición-Respuesta): Se hace al inicio de la conexión entre cliente y servidor porque el cliente necesita leer la información antes de que se establezca la conexión. El cliente puede leer, hecho por polling, o escribir, ejecutando un comando en el servidor.
- Mecanismo de Reporting (Informes): El servidor envía datos solo cuando se necesita, definido por el usuario según la aplicación y el estándar IEC61850, usado frecuentemente para aplicaciones SCADA.

Tutorial 2 - Comunicación MMS
1) Ahora que el intercambio de datos está configurado entre PLCNextEngineer y Straton, es necesario insertar un servidor IEC61850 en la configuración de fieldbus. Haz clic en "Insert Configuration" (Insertar configuración) y elige "IEC 61850 Server incl. GOOSE". El estándar define el número de puerto TCP 102 para el rol de servidor MMS.
2) Ahora podemos configurar nuestro Dispositivo Electrónico Inteligente (IED) a través del Lenguaje de Descripción de Configuración de Subestación (SCL). Para hacer esto, abre el Editor SCL haciendo clic en la pestaña Tools (Herramientas).
3) Haz doble clic en el IED para configurar la parte de comunicación del SCL.
4) Luego, añade los dos Nodos Lógicos obligatorios, LLNO y LPHD. Los Data Objects (Objetos de Datos) por defecto ya están seleccionados, eres libre de añadir más marcando las casillas.
5) Ahora podemos crear nuestro propio Nodo Lógico, que contendrá los datos que queremos manejar. Creemos un GGIO que es un nodo lógico genérico. Como hemos importado dos alarmas (BOOL) desde PLCNextEngineer, empecemos importando dos SPS (Single Point Status) Data Objects y aprovechemos para configurar un SPC (Single Point Controllable) Data Object que nos permitirá enviar comandos desde un cliente, planeado para el 4º tutorial.
Como puedes ver tenemos que crear nuestro propio SPS para la segunda alarma.
Necesitamos seleccionar los Data Attributes (Atributos de Datos) del Data Object que hemos creado (Ind2) es decir, stVal, q (quality) y t (timestamp).
Ahora podemos configurar los Data Attributes de nuestro SPC para que podamos usarlo en varios tipos de comandos.
6) El siguiente paso es añadir un Data Set (Conjunto de Datos) que contendrá el grupo ordenado de referencias a Data Objects y/o Data Attributes contenidos en el modelo de datos y que será compartido con un cliente 61850. Como se especifica en el estándar, los Data Sets son parte de un nodo lógico y lo más probable es que estén incluidos en el LLN0.
Haz doble clic en él y selecciona los datos apropiados.
7) Finalmente tenemos que añadir un Report Control Block (RCB), luego configurarlo eligiendo su tipo y vinculándolo al Data Set y después seleccionar los Optional Fields (Campos Opcionales) y Trigger Option (Opción de Disparo) apropiados.
8) Esta herramienta también está equipada con un comprobador de sintaxis. Haz clic en él y los errores aparecerán en el log. Luego haz clic en estos errores y pulsa las opciones por defecto hasta que aparezca el mensaje "Check succeeded" (Comprobación exitosa). No olvides guardar tu archivo para poder abrirlo luego.
9) Nuestro SCL está listo para usar. Tenemos que importarlo a nuestro proyecto principal yendo a la Configuración de Fieldbus y clic derecho en IEC61850 Server incl. GOOSE. Luego selecciona "Read variable from SCL file" (Leer variable desde archivo SCL).
Haz clic en "Insert" (Insertar) e importa el archivo SCL que acabas de crear luego selecciona los Data Attributes de tus Data Objects para ser usados como variables en el programa. Si no seleccionas el timestamp, la pila del runtime lo manejará automáticamente.
10) El último paso es mapear las variables PLCNext importadas por MODBUS con las creadas a través del SCL. Para hacer esto, ve a la pestaña "Profile" (Perfil) en el árbol del proyecto, selecciona IEC61850S2 y copia y pega el nombre de las variables MODBUS en la columna "Name" de las variables 61850.
11) Ahora leeremos online las variables del servidor 61850 desde un cliente virtual 61850. El Editor Straton también tiene esta herramienta, que es muy fácil de configurar. Solo tienes que configurar la dirección IP para conectar. Si estás familiarizado con IEDExplorer, funciona igual de bien.
Ahora puedes alternar la variable en PLCNextEngineer y ver el efecto desde un cliente 61850 leyendo desde un servidor 61850.
Gracias por leer, el siguiente tutorial está en progreso.
Tecnología Industrial
- Integración de datos de sensores en Raspberry Pi: Guía práctica
- Entendiendo Protocolos de Red: De Capa Física a Arbitraje Avanzado
- Por Qué Importa la Memoria Digital
- Microprocesadores: La Evolución de la Computación con Programa Almacenado
- Datos Completos de Op‑Amps: Hojas de Datos National Semiconductor y CA3130
- Fabricación Basada en Datos: Desbloqueando Eficiencia, Ahorro de Costes e Innovación
- Maximice la ventaja de su organización: Convierta datos en insights estratégicos
- Big Data vs IA: La sinergia detrás de la transformación digital
- Datos de Mantenimiento Explicados: La Clave para una Gestión de Activos Confiable
- Serie EDAM‑4200 de acceed: Módulos I/O integrados para comunicación de datos escalable y fiable
- Dominar la programación en C: Tutorial completo para principiantes