OPC Server
OPC Server
OPC Server
OPC server.................................................................................................................................2
Historia de OPC.........................................................................................................................4
Tipos de OPC.............................................................................................................................6
OPC DA (Data Access)............................................................................................................6
OPC A&E (Alarm and Events)................................................................................................8
OPC HDA (Historical Data Access)........................................................................................9
OPC UA (Unified architecture).............................................................................................10
Otras interfaces estándares OPC............................................................................................11
Caso de estudio.........................................................................................................................17
Referencias...............................................................................................................................19
OPC server
OPC es una tecnología de comunicación con una arquitectura de cliente y servidor. Una
aplicación actúa de servidor proporcionando datos y otra actúa como cliente leyéndolos o
manipulándolos o dicho de otra forma es una interfaz de programación de aplicaciones
estándar para el intercambio de datos que puede simplificar el desarrollo de Drivers de I/O
(Dispositivos de entrada y salida u/o Banco de Datos) y mejorar el rendimiento de los sistemas
de interfaz.
OPC es con mucha diferencia, la tecnología de comunicación industrial estándar. Ello permite
el intercambio de información entre múltiples dispositivos y aplicaciones de control sin
restricciones o límites impuestos por los fabricantes. Los softwares que tienen la capacidad de
adquirir datos de los dispositivos de campo y servirlos en OPC son los llamados Servidores
OPC u OPC Servers.
Un servidor OPC es una aplicación de software (driver) que cumple con una o más
especificaciones definidas por la OPC Foundation. El Servidor OPC hace de interfaz
comunicando por un lado con una o más fuentes de datos utilizando sus protocolo nativos
(típicamente PLCs, DCSs, básculas, Modulos I/O, controladores, etc.) y por el otro lado con
Clientes OPC (típicamente SCADAs, HMIs, generadores de informes, generadores de
gráficos, aplicaciones de cálculos, etc.). En una arquitectura Cliente OPC/ Servidor OPC, el
Servidor OPC es el esclavo mientras que el Cliente OPC es el maestro. Las comunicaciones
entre el Cliente OPC y el Servidor OPC son bidireccionales, lo que significa que los Clientes
pueden leer y escribir en los dispositivos a través del Servidor OPC.
Un servidor OPC puede estar comunicándose continuamente con los PLCs de campo, RTUs,
estaciones HMI u otras aplicaciones. Aunque el hardware y el software provengan de
diferentes marcas comerciales, el cumplimiento del estándar OPC posibilita la comunicación
continua en tiempo real.
Por ello, OPC ha permitido una mejor cooperación entre proveedores y usuarios, ayudando a
construir soluciones completamente transversales, dando a los consumidores más poder de
elección entre diferentes aplicaciones industriales.
Un Cliente OPC puede conectarse, por medio de una red a Servidores OPC proporcionados
por uno o más fabricantes. De esta forma no existe restricción por cuanto a tener un Software
Cliente para un Software Servidor, lo que es un problema de interoperabilidad que hoy en día
se aprecia con sistemas del tipo propietario. Como se muestra a continuación:
Los fabricantes, a su vez, proporcionan el código que identifica: Dispositivos, Tipos de Datos
a los que cada servidor tiene acceso, Valor de los Datos, y detalles sobre cómo el Servidor
físicamente acceda a los datos. Sin estos códigos Servidores y Clientes no podrían
comunicarse y reconocerse como sistemas compatibles.
Historia de OPC
El estándar OPC (inicialmente OLE for Proccess Control, pero renombrado Open Platform
Communications) surgió a mediados de los años 90 como una tecnología para la
comunicación del software SCADA y otros HMI con los dispositivos de control en el ámbito
de la industria. El principal acicate para su desarrollo fue la superación de las insuficiencias
que presentaban los sistemas basados en DDE, en particular su escaso rendimiento y la
incompatibilidad de las distintas extensiones que los fabricantes habían introducido para
solventarlo.
En agosto de 1996 se liberó una primera versión de las especificaciones (OPC Specification
Version 1.0), basadas en las tecnologías COM (Component Object Model), OLE (Object
Linking and Embedding) y DCOM (Distributed Component Model). La primera definía un
sistema de comunicación entre procesos y de creación dinámica de objetos de forma neutral;
es decir, éstos podían ser utilizados posteriormente en entornos de desarrollos distintos al de
creación original. La segunda, OLE, establecía mecanismos de mantenimiento y gestión de
datos y archivos de forma que pudiesen tratarse por distintas aplicaciones. La última, DCOM
permitía la creación de componentes distribuidos de software en diferentes sistemas
intercomunicados.
Uno de sus mayores retos del estándar OPC ha sido adaptarse a un dominio en continuo
cambio, para lo que se optó desde sus orígenes por una estrategia que permitiese enriquecerlo
de forma constante por medio de adiciones básicas. Esto se vino llevando a cabo inicialmente
mediante distintos documentos Data Access Specification, que recogían las incorporaciones a
los mecanismos y funcionalidad de lectura y escritura de datos de proceso. Paralelamente,
OPC se veía enriquecido por la adición de servicios de interés en el ámbito industrial.
A la primera versión del protocolo, que pasó a denominarse OPC DA (Data Access) y
establecía cómo debía realizarse el intercambio de datos de tiempo real entre servidores y
clientes, se le incorporó en 1999 la posibilidad de gestionar el tráfico de alarmas y eventos
entre servidores y clientes, OPC AE (Alarms and Events Specification), y en el año 2000 se le
agregó una capacidad semejante de manejo de datos históricos, OPC HDA (Historical Data
Access Specification). También en dicho año se definieron e implementaron políticas de
seguridad, OPC S (Security Specification). Otras adiciones posteriores fueron las recogidas en
la OPC Batch Specification, para la gestión de tareas, la OPC XML-DA Specification para
servicios web a través de XML y SOAP, o la OPC DX Specification, que define la
comunicación de servidor a servidor sin uso de clientes. La comunicación entre servidores,
que requieren mensajes con tipos de datos más complejos, se efectúa gracias a OPC CD
(Complex Data). Entre los últimos protocolos incorporados al estándar se encuentra OPC C
(Commands), que dota a clientes y servidores de un conjunto de interfaces para indentificar,
enviar y moonitorizar comandos de control.
Actualmente, el rápido crecimiento en el número de productos que incorporan OPC, así como
sus capacidades, han hecho de éste el estándar industrial con más aceptación. La OPC
Foundation es la organización encargada de crear y mantener las especificaciones de forma
abierta.
Conforme DCOM fue reemplazándose por la tecnología .NET, que permitía un desarrollo ágil
en redes y entornos Web, OPC debió adaptar sus interfaces a dicha plataforma. La última API
liberada del OPC clásico, conocida formalmente como OPC Express Interface (Xi), se basa en
el modelo .NET 4.0 WCF (Windows Communication Foundation). Provee de una envoltura a
las interfaces clásicas, y permite un uso más seguro a través de redes por medio de
mecanismos de autentificación, autorización y encriptación de datos. También simplifica el
acceso a través de cortafuegos, al requerir sólo la apertura de dos puertos.
Desde el año 2006, la OPC Foundation, en conjunción con el MTConnect Institute, viene
trabajando en una versión unificada de los estándares (OPC UA, o Unified Architecture), con
miras a avanzar hacia una arquitectura orientada a servicios de tipo multiplataforma. Gracias a
esto se elimina la tradicional dependencia de Microsoft Windows de los protocolos de control
industrial. OPC UA se beneficia de las características que proporcionan el conjunto de
estándares descrito, a las que se une la ventaja de ser portable a otros sistemas operativos. Para
ello, OPC abandona definitivamente el modelo DCOM y se constituye en una arquitectura
orientada a servicios (SOA, Service Oriented Architecture). Existen interfaces de
programación (API) implementadas para C, C++, .NET, Java, NodeJS y Python. Otras
ventajas que aporta son la seguridad revisada, el modelo de información, redundancia,
buffering de datos o monitorización de los enlaces.
Tipos de OPC
Existen cuatro tipos de servidores OPC definidos por la OPC Foundation, y son los siguientes:
A un alto nivel, un Servidor de Acceso a Datos OPC, se compone de varios objetos: Servidor,
Grupo, e Item. La función del servidor OPC, es mantener la información sobre sí mismo y
hacer las veces de un "Recipiente" unificando los datos en un Grupo. La función del Grupo
OPC es mantener la información y proporcionar un mecanismo por contener y organizar
lógicamente los Items.
Los Grupos OPC proveen a los clientes OPC, quienes ejecutan aplicaciones, una forma de
organizar sus datos. Por ejemplo, el grupo podría representar los Items de un dispositivo en
particular para que despliegue o informe sobre sus datos. Pueden leerse datos y pueden
escribirse.
Hay dos tipos de grupos, Público y Local, que se describen tal como sigue:
a) Público: Es compartido por múltiples clientes. Hay también interfaces optativas específicas
para grupos públicos en plataforma Linux o Unix
Dentro de cada Grupo el cliente puede definir uno o más Artículos de OPC
Los Items OPC representan conexiones a las fuentes de datos dentro del servidor. Un Item
OPC, bajo la perspectiva de interface, no es accesible como un objeto por un Cliente OPC. Por
consiguiente, ninguna interface externa se encuentra definida para un Item OPC. Todos
accedena los Items OPC vía Grupo OPC, objeto o ícono que “contiene” el (los) Item(es) OPC,
o simplemente donde el ítem OPC se define. Asociando, un Item es un valor, una condición y
permanece o varía en el tiempo. El valor está en la forma de una variable, y la condición es
similar a lo especificado por Fieldbus (Estándar de Buses de Campo).
OPC A&E (Alarm and Events)
Estas interfaces proveen de mecanismos a los Clientes OPC, con los cuales pueden ser
notificados de la ocurrencia de eventos y condiciones de alarmas específicas. Estas también
proporcionan servicios que les permiten a los Clientes OPC determinar eventos y condiciones
necesarias para alarmas, eventos, y para obtener su estado actual, todo ello apoyado por un
Servidor OPC. Dentro de OPC se puede definir que:
a) Alarma: Es una condición anormal del sistema y por lo que es un caso especial de esta.
b) Condición: Es un estado nombrado Evento en el Servidor OPC. Por ejemplo, la
etiqueta FC101 puede tener las condiciones siguientes asociadas con ella:
HighAlarm, HighHighAlarm,
Normal, LowAlarm,
LowLowAlarm.
c) Evento: Es una ocurrencia perceptible que es de importancia al Servidor OPC, de los
dispositivos que representa o sus Clientes OPC.
Un evento puede o no ser asociado con una condición. Por ejemplo, la transición de
HighAlarm a condiciones normales es un evento. Sin embargo, una acción del operador
permite cambiar la configuración del sistema, y los errores son ejemplos de eventos que no se
relacionan a las condiciones específicas del sistema. Los Clientes de OPC pueden subscribirse
al sistema para ser notificados de las ocurrencias de eventos específicos.
El cliente OPC se conecta creando un objeto OPCHDAServer en el servidor HDA. Este objeto
ofrece todas las interfaces y métodos para leer y actualizar datos históricos. Un segundo objeto
OPCHDABrowser está definido para navegar el espacio de direcciones del servidor HDA.
El primer mecanismo lee datos ‘crudos’ del archivo, donde el cliente define las
variables y la ventana temporal que quiere leer. El servidor devuelve todos los valores
archivados en la ventana temporal especificada hasta el número máximo de valores
especificado por el cliente.
El segundo mecanismo lee los valores de las variables especificadas para los instantes
de muestreo especificados.
Los valores incluyen siempre la calidad e instante de muestreo. Además de los métodos de
lectura, OPC-HDA define también métodos para insertar, reemplazar y borrar datos de la base
de datos de históricos.
OPC UA (Unified architecture)
El standard OPC clásico está basado en Microsoft DCOM el cual introduce vulnerabilidad a
todas ésas áreas. La necesidad de encontrar simplicidad, máxima interoperabilidad y seguridad
ha llevado a la OPC Foundation a la creación de un método de comunicación unificado para
las actuales especificaciones OPC DA, HDA, A&E, y Seguridad.
OPC UA (Arquitectura Unificada) extiende el gran éxito del protocolo de comunicación OPC,
para la adquisición de datos, el modelado de la información y la comunicación entre planta y
aplicaciones de una forma fiable y segura.
Alarm & Conditions (A&C) especifica un modelo avanzado para gestión de alarmas de
proceso y monitorización de condiciones.
Historical Access (HA) define los mecanismos para acceder a datos históricos y
eventos históricos.
Programs (Prog) especifica un mecanismo para iniciar, manipular y monitorizar la
ejecución de programas.
Hay varias consideraciones, que son únicas, para llevar a cabo la implementación de un
servidor OPC. Una de ellas, la principal, es la frecuencia de traslado e intercambio de datos a
través de redes comunicacionales, hacia dispositivos físicos u otras bases de datos las cuales
son incompatibles entre sí. De esta manera, se espera que Servidores OPC sean ejecutables ya
sean en forma Local o Remota, los cuales incluyan un código que los identifique y los
respalde en la recolección de datos en forma eficaz entre un dispositivo físico o una base de
datos.
Una aplicación Cliente OPC se comunica con un Servidor OPC a través de un cliente
específico e interfaces de automatización. Los servidores OPC deben llevar a cabo la interface
del cliente, y opcionalmente puede llevar a cabo la interface de automatización, tal como lo
describe la arquitectura típica OPC.
En algunos casos la Fundación OPC proporciona una interface estándar de automatización.
Esta interface, denominada wrapperDLL, puede usarse para cualquier Cliente-Servidor o
fabricante específico.
Caso de estudio
Este caso de estudio es sacado de una revista la cual trata de la Integración Vertical en plantas
industriales utilizando OPC UA e IEC-61499 en dicha reviste muestra caso de estudio
propuesto que describe un sistema de industrial a escala con el objetivo de mostrar una
aplicación de automatización industrial. En particular, la planta de producción es una línea de
montaje con tres estaciones FESTO® como se representa en la imagen. La Estación de
Manipulación recoge desde una posición de entrada las piezas de trabajo que deben procesarse
y las deja sobre una rampa que alimenta siguiente estación; la Estación de Transporte traslada
y selecciona las piezas; mientras que la Estación de Almacenamiento completa el
procesamiento de la línea de montaje.
La RPi2 controla las tres estaciones e integra el servidor OPC UA. Para ello se ejecuta una
instancia del runtime FORTE, el cual permite a los SIFBs anteriormente presentados llevar a
cabo el control de todo el proceso y la gestión del servidor OPC UA.
Los clientes OPC UA remotos, así como la aplicación de supervisión que se ejecuta en la
tarjeta BBB, pueden leer/escribir o suscribirse a los datos de proceso mediante el conjunto
SIFB anteriormente descrito. Por ejemplo, la imagen muestra la aplicación de supervisión de
la Estación de Transporte bajo la norma IEC 61499.
El servidor OPC UA y todas las características de los clientes se integran en una librería
propia implementada utilizando una pila OPC UA en C ++. La librería OPC UA incluye el
acceso a los esclavos Modbus/TCP y al GPIO del RPi2. Al mismo tiempo, esta librería OPC
UA se ha integrado en el runtime FORTE, de esta manera las características del servidor y
cliente están incrustadas en el runtime.
Además, en la página que se muestra a continuación existen muchos de los casos de estudios
que se han realizado según Matrikonopc.com.
https://www.matrikonopc.com/downloads/types/casestudies/index.aspx
Referencias
Casares J. (2015). Recuperado el 23 de Abril de 2020, de https://josecasares.com/historia-de-
opc/
García M., Irisarri E., & Pérez F. (2017). Integración Vertical en plantas industriales
utilizando OPC UA e IEC-61499. Recuperado el 23 de Abril de 2020, de
http://ingenieria.ute.edu.ec/enfoqueute/public/journals/1/html_v8n1/art021.html