El paradigma olvidado (2). Lenguajes de HMI

En la entrada previa de esta serie comenté a grandes rasgos los lenguajes más habituales de programación de autómatas, básicamente los que especifica la norma IEC61131-3. Cuando desplazamos la atención a las interfaces hombre-máquina (HMI), descubrimos que tienen poca o ninguna relación con ellos de cara al desarrollo.
Empecemos por decir que ni las pantallas táctiles ni los SCADA u otros HMI se plantearon inicialmente para ejercer funciones de control. Su papel se limitaba inicialmente a representar valores, modificar consignas y, como mucho, almacenar información. Lo habitual es que el software del HMI se encargue de forma automática de gestionar comunicaciones, bases de datos, alarmas e históricos. Por ello, hace dos o tres de décadas estos lenguajes de programación centraban su enfoque en la animación de gráficos, por medio de ciertos script, como éste para una XBT de Telemecanique:

http://www.global-download.schneider-electric.com/mainRepository/EDMS_CORP5.nsf/69f5d72c7a0cf811c12573d800389503/cb9c47a7afc266fa8525787f005f5a2c/$FILE/xbt-xl901en.pdf
XBTL900 Software User Guide

Uno de los lenguajes más extendidos para la programación de estos sistemas ha sido el Basic, en diversas adaptaciones. Un script de Intouch como el que sigue permitía, por ejemplo, enviar alarmas por SMS. Hago notar la dependencia de una aplicación externa para cumplir la función.
IVR Software
IVR Software

Salvo excepciones, los lenguajes de programación de interfaces HMI han sido de tipo imperativo; esto es, alteran elementos de la memoria a través de una serie de sentencias que ejecutadas en serie.
Caso aparte son los sistemas de control distribuido (DCS). Algunos, al haber nacido de la integración de varias plataformas, mezclan lenguajes de distinto tipo. El PCS7 de Siemens, por ejemplo, se originó de una unificación de Simatic con WinCC, de modo que se programa parte en CFC (lenguaje funcional), parte en scripts con sintaxis semejante a Visual Basic o C (imperativos). Y admite además AWL, KOP, FUP, SCL y SFC. Por contra, entornos como el T-3000, también de Siemens, usan un único lenguaje funcional púramente gráfico.
T-3000
T-3000

Desde hace unos años, algunos fabricantes de SCADA han apostado por avanzar en la dirección de la programación dirigida a objetos. Ello aporta beneficios como la herencia, el polimorfismo o el encapsulamiento, dando por descontada la posibilidad de crear estructuras de datos y métodos asociados. Los resultados hay que entenderlos como una aproximación a este paradigma, conservando muchas características de los entornos previos (funciones automatizadas -como comunicaciones, historización y alarmas-, desarrollo rápido, etc.). La plataforma que más penetración ha conseguido es ArchestrA de Wonderware.
ArchestrA
ArchestrA

Esta entrada continúa en El paradigma olvidado (3). Programación lógica.

Facebooktwitterlinkedin