Los controladores lógicos programables están diseñados para introducir varios tipos de señales (discretas, analógicas), ejecutar algoritmos de control sobre esas señales y luego emitir señales en respuesta a los procesos de control. Por sí solo, un PLC generalmente carece de la capacidad de mostrar esos valores de señal y variables de algoritmo a los operadores humanos.
Un técnico o ingeniero con acceso a una computadora personal y el software necesario para editar el programa del PLC puede conectarse al PLC y ver el estado del programa "en línea" para monitorear los valores de las señales y los estados de las variables, pero esta no es una forma práctica para que el personal de operaciones controle lo que hace el PLC de manera regular.
Para que los operadores controlen y ajusten los parámetros dentro de la memoria del PLC, necesitamos un tipo diferente de interfaz que permita leer y escribir ciertas variables sin comprometer la integridad del PLC al exponer demasiada información o permitir que cualquier persona no calificada altere el programa en sí.
Una solución a este problema es una pantalla de computadora dedicada programada para proporcionar acceso selectivo a ciertas variables en la memoria del PLC, generalmente denominada Interfaz Hombre-Máquina o HMI.
Las HMI pueden adoptar la forma de computadoras de propósito general (“personales”) que ejecutan un software gráfico especial para interactuar con un PLC, o como computadoras de propósito especial diseñadas para ser montadas en paneles de chapa metálica para no realizar ninguna tarea más que la interfaz operador-PLC.
Esta primera fotografía muestra un ejemplo de una computadora personal (PC) común con software HMI ejecutándose en ella:
La pantalla que se muestra aquí es para monitorear un ejemplo, un proceso de adsorción por oscilación de vacío (VSA) para purificar el oxígeno extraído del aire ambiente. En algún lugar, un PLC (o un conjunto de PLC) está monitoreando y controlando este proceso VSA, con el software HMI actuando como una “ventana” hacia la memoria del PLC para mostrar las variables pertinentes en un formato fácil de interpretar para el personal de operaciones. La computadora personal que ejecuta este software HMI se conecta al PLC a través de cables de red digital como Ethernet.
Nota: Un término más antiguo para un panel de interfaz de operador era “Interfaz hombre-máquina” o “MMI”.
La siguiente fotografía muestra un ejemplo de un panel HMI de propósito especial diseñado y construido expresamente para ser utilizado en entornos operativos industriales:
Estos paneles HMI no son realmente más que computadoras personales “reforzadas” construidas de manera resistente y en un formato compacto para facilitar su uso en entornos industriales.
La mayoría de los paneles HMI industriales vienen equipados con pantallas sensibles al tacto, lo que permite a los operadores presionar los objetos mostrados con las yemas de los dedos para cambiar de pantalla, ver detalles sobre partes del proceso, etc.
Los técnicos y/o ingenieros programan pantallas HMI para leer y escribir datos a través de una red digital a uno o más PLC.
Los objetos gráficos dispuestos en la pantalla de una HMI suelen imitar indicadores e interruptores del mundo real, con el fin de proporcionar una interfaz familiar para el personal de operaciones.
Un objeto de “pulsador” en la cara de un panel HMI, por ejemplo, se configuraría para escribir un bit de datos en el PLC, de manera similar a un interruptor del mundo real que escribe un bit de datos en el registro de entrada del PLC.
Los paneles y el software HMI modernos se basan casi exclusivamente en etiquetas, y cada objeto gráfico en la pantalla está asociado con al menos un nombre de etiqueta de datos, que a su vez está asociado a puntos de datos (bits o palabras) en el PLC mediante un archivo de base de datos de nombres de etiquetas residente en la HMI.
Los objetos gráficos en la pantalla de la HMI aceptan (leen) datos del PLC para presentar información útil al operador, envían (escriben) datos al PLC desde la entrada del operador, o ambas cosas.
La tarea de programar una unidad HMI consiste en crear una base de datos de nombres de etiquetas y luego dibujar pantallas para ilustrar el proceso con el mejor nivel de detalle que los operadores necesitarán para ejecutarlo.
Aquí se muestra un ejemplo de captura de pantalla de una tabla de base de datos de nombres de etiquetas para una HMI moderna:
Se accede a la base de datos de nombres de etiquetas y se edita utilizando el mismo software para crear imágenes gráficas en la HMI.
Según este ejemplo, puede ver varios nombres de etiquetas (por ejemplo, BOTÓN DE INICIO, TEMPORIZADOR DE MARCHA DEL MOTOR, MENSAJE DE ERROR, VELOCIDAD DEL MOTOR) asociados con puntos de datos dentro de la memoria del PLC (en este ejemplo, las direcciones del PLC se muestran en formato de registro Modbus).
En muchos casos, el editor de nombres de etiquetas podrá mostrar los puntos de memoria del PLC correspondientes de la misma manera en que aparecen en el software del editor de programación del PLC (por ejemplo, I:5/10, SM0.4, C11, etc.).
Un detalle importante a tener en cuenta en esta visualización de la base de datos de nombres de etiquetas son los atributos de lectura/escritura de cada etiqueta.
Observe en particular cómo cuatro de las etiquetas mostradas son de solo lectura: esto significa que la HMI solo tiene permiso para leer los valores de esas cuatro etiquetas desde la memoria del PLC, y no para escribir (alterar) esos valores.
La razón de esto en el caso de estas cuatro etiquetas es que esas etiquetas hacen referencia a puntos de datos de entrada del PLC. La etiqueta START PUSHBUTTON, por ejemplo, hace referencia a una entrada discreta en el PLC activada por un interruptor de botón pulsador real.
Como tal, este punto de datos obtiene su estado de la activación del terminal de entrada discreta. Si se le diera permiso de escritura a la HMI para este punto de datos, probablemente habría un conflicto.
Supongamos que el terminal de entrada en el PLC se activa (estableciendo el bit START PUSHBUTTON en un estado "1") y la HMI intentara simultáneamente escribir un estado "0" en la misma etiqueta.
Una de estas dos fuentes de datos ganaría y la otra perdería, lo que posiblemente daría como resultado un comportamiento inesperado del programa del PLC.
Por este motivo, los puntos de datos en el PLC vinculados a entradas del mundo real siempre deben estar limitados como permiso de "solo lectura" en la base de datos de la HMI, de modo que la HMI no pueda generar un conflicto.
Sin embargo, también existe la posibilidad de que se produzcan conflictos de datos en algunos de los otros puntos de la base de datos.
Un buen ejemplo de esto es el bit MOTOR RUN, que es el bit dentro del programa del PLC que le indica al motor del mundo real que funcione.
Se supone que este bit obtiene sus datos de una bobina en el programa del diagrama de escalera del PLC. Sin embargo, dado que también aparece en la base de datos de la HMI con permiso de lectura/escritura, existe la posibilidad de que la HMI sobrescriba (es decir, entre en conflicto) ese mismo bit en la memoria del PLC.
Supongamos que alguien programó un objeto de pantalla de “botón pulsador” de alternancia en la HMI vinculada a esta etiqueta: al presionar este “botón” virtual en la pantalla de la HMI se intentaría establecer el bit (1), y al presionarlo nuevamente se intentaría restablecer el bit (0).
Sin embargo, si una bobina del programa del PLC escribe en este mismo bit, existe la posibilidad de que el objeto de “pulsador” de la HMI y la bobina del PLC entren en conflicto, y uno intente indicarle al bit que sea un “0” mientras que el otro intente indicarle que sea un “1”.
Esta situación es bastante similar al problema que se experimenta cuando varias bobinas de un programa de diagrama de escalera se dirigen al mismo bit.
La regla general que se debe seguir aquí es no permitir nunca que más de un elemento escriba en ningún punto de datos. En mi experiencia enseñando programación de PLC y HMI, este es uno de los errores más comunes que cometen los estudiantes cuando aprenden a programar HMI por primera vez: intentarán que tanto la HMI como el PLC escriban en las mismas ubicaciones de memoria, con resultados extraños.
Una de las lecciones que aprenderá al programar sistemas grandes y complejos es que es muy beneficioso definir todos los nombres de etiquetas necesarios antes de comenzar a diseñar gráficos en una HMI.
Lo mismo ocurre con la programación de PLC: hace que todo el proyecto avance más rápido y con menos confusión si se toma el tiempo de definir todos los puntos de E/S necesarios (y los nombres de las etiquetas, si el software de programación de PLC admite nombres de etiquetas en el entorno de programación) antes de comenzar a crear cualquier código que especifique cómo se relacionarán entre sí esas entradas y salidas.
También es importante mantener una convención consistente para los nombres de las etiquetas. Por ejemplo, es posible que desee comenzar el nombre de la etiqueta de cada punto de E/S cableado como ENTRADA o SALIDA (por ejemplo, INTERRUPTOR DE PRESIÓN DE ENTRADA ALTO, MOTOR DEL AGITADOR DE SALIDA EN MARCHA, etc.).
El motivo para mantener una convención de nombres estricta no es obvio al principio, ya que el objetivo de los nombres de las etiquetas es dar al programador la libertad de asignar nombres arbitrarios a los puntos de datos del sistema.
Sin embargo, verá que la mayoría de los editores de nombres de etiquetas enumeran las etiquetas en orden alfabético, lo que significa que una convención de nombres organizada de esta manera presentará todas las etiquetas de entrada de manera contigua (adyacente) en la lista, todas las etiquetas de salida de manera contigua en la lista, y así sucesivamente.
Otra forma de aprovechar la lista alfabética de nombres de etiquetas a su favor es comenzar cada nombre de etiqueta con una palabra que describa su asociación con un equipo importante.
Tomemos como ejemplo este proceso con varios puntos de datos definidos en un sistema de control PLC y mostrados en una HMI:
Si enumeramos todas estas etiquetas en orden alfabético, la asociación es inmediatamente obvia:
- Bomba de efluente del intercambiador
- Temperatura de salida del efluente del intercambiador
- Bomba de precalentamiento del intercambiador
- Temperatura de entrada del precalentamiento del intercambiador
- Válvula de precalentamiento del intercambiador
- Temperatura del lecho del reactor
- Flujo de alimentación del reactor
- Temperatura de alimentación del reactor
- Válvula de la camisa del reactor
Como puede ver en esta lista de nombres de etiquetas, todas las etiquetas asociadas directamente con el intercambiador de calor se encuentran en un grupo contiguo, y todas las etiquetas asociadas directamente con el reactor se encuentran en el siguiente grupo contiguo.
De esta manera, la denominación juiciosa de las etiquetas sirve para agruparlas de manera jerárquica, lo que facilita que el programador las localice en cualquier momento futuro en la base de datos de nombres de etiquetas.
Notará que todos los nombres de etiquetas que se muestran aquí carecen de caracteres de espacio entre palabras (por ejemplo, en lugar de “Temperatura del lecho del reactor”, un nombre de etiqueta debe usar guiones o marcas de subrayado como caracteres de espaciado: “Temperatura del lecho del reactor”), ya que los lenguajes de programación de computadoras generalmente asumen que los espacios son delimitadores (separadores entre diferentes nombres de variables).
Al igual que los propios controladores lógicos programables, las capacidades de las HMI han aumentado de manera constante mientras que su precio disminuye.
Las HMI modernas admiten tendencias gráficas, archivo de datos, alarmas avanzadas e incluso capacidad de servidor web, lo que permite que otras computadoras accedan fácilmente a ciertos datos a través de redes de área amplia.
La capacidad de las HMI de registrar datos durante largos períodos de tiempo libera al PLC de tener que realizar esta tarea, que consume mucha memoria.
De esta manera, el PLC simplemente “sirve” datos actuales a la HMI, y la HMI puede mantener un registro de datos actuales y pasados utilizando sus reservas de memoria mucho más grandes.
Si la HMI se basa en una plataforma de computadora personal (por ejemplo, Rockwell RSView, Wonderware, software FIX/Intellution), incluso puede estar equipada con una unidad de disco duro para almacenar enormes cantidades de datos históricos.
Algunos paneles HMI modernos incluso tienen un PLC integrado dentro de la unidad, lo que proporciona control y monitoreo en el mismo dispositivo.
Estos paneles proporcionan puntos de conexión de regleta de terminales para E/S discretas e incluso analógicas, lo que permite que todas las funciones de control e interfaz se ubiquen en una sola unidad de montaje en panel.