OPC DA
Un cliente para servidores OPC Data Access clásicos sobre COM/DCOM, que funciona en un proceso auxiliar de 32 bits, con direccionamiento por ID de elemento y una exploración de los servidores de una máquina.
El controlador OPC DA es un cliente para servidores OPC Data Access clásicos (versiones 1.0, 2.05a y 3.0), los servidores COM a través de los cuales pasarelas de PLC antiguas, sistemas SCADA y simuladores siguen publicando sus datos. Un servidor se nombra por la máquina en la que funciona y por su ProgID, por ejemplo Matrikon.OPC.Simulation.1, y cada tag por el ID de elemento del servidor. Añada el controlador y sus dispositivos en la página Connector.
Dispositivo
| Campo | Significado | Por defecto |
|---|---|---|
| Host o IP | El nombre o la dirección del ordenador en el que funciona el servidor OPC DA. Vacío significa este ordenador, donde funcionan la mayoría de los servidores clásicos. | vacío: este ordenador |
| Servidor / Clave | El ProgID del servidor, tal como su fabricante lo registra en Windows, por ejemplo Matrikon.OPC.Simulation.1. |
OPC.Server.1 |
| Intervalo de sondeo (ms) | Cada cuánto lee la estación los tags del dispositivo, salvo que un tag fije su propio intervalo. | 1000 |
La dirección del dispositivo se compone con los dos, por ejemplo opc.da://localhost/Matrikon.OPC.Simulation.1. No hay puerto: COM encuentra el servidor por el propio registro de Windows.
Direccionamiento del tag
Un tag se direcciona por su ID de elemento, escrito como texto libre y enviado al servidor exactamente como se escribió, por ejemplo Random.Real8 o Channel1.Device1.Tag1. Los ID de elemento son los del propio servidor; su documentación o una exploración los listan. La estación añade cada elemento a un grupo del dispositivo la primera vez que un tag lo lee, y lo lee del equipo, no de la caché del servidor.
Tipos de dato
El selector Tipo de dato ofrece los tipos que guarda un elemento OPC DA: Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float, Double, String y DateTime. Cada lectura se convierte al tipo del tag, así que elija el tipo que el servidor declara para el elemento, el mismo que propone una exploración: un elemento real de 64 bits leído como Float pierde precisión, y leído como Double la conserva. Un valor que el tipo del tag no puede contener, como un texto que no es un número o una matriz, deja el tag sin valor. En OPC DA una fecha no lleva zona horaria, y la estación la lee y la escribe como UTC.
Cada valor con el que responde el servidor lleva su calidad. Un valor de calidad buena (Good) llega al tag. Uno de calidad incierta (Uncertain) o mala (Bad) deja el tag sin valor, y la línea del diario técnico de la lectura fallida nombra la calidad con las palabras de la especificación OPC DA, por ejemplo Bad: not connected (0x0008) o Uncertain: last usable value (0x0044). Un elemento cuya lectura falla deja su tag sin valor, y los demás tags del dispositivo siguen leyendo.
Descubrimiento
Descubrir lista los servidores OPC DA registrados en un ordenador: escriba su nombre o su dirección en el destino de la exploración, o déjelo vacío para este ordenador. Cada servidor se ofrece como un dispositivo, y se recorre su espacio de direcciones: cada elemento que contiene se ofrece como un tag de solo lectura, con el tipo que el servidor declara para él: un real de 64 bits como Double, un entero de 16 bits sin signo como UInt16, y así con cada tipo de arriba, con un valor monetario como Double. Un elemento que no declara tipo se ofrece como String, que lee cualquier valor; un elemento de un tipo que ningún tag lee, como una matriz, no se ofrece, y la exploración lo cuenta entre lo que dejó fuera. Consulte Descubrimiento para ver cómo se eligen y se añaden los candidatos.
La exploración pide los servidores al enumerador de servidores OPC (OpcEnum), mediante las bibliotecas de proxy y stub de OPC DA registradas en este ordenador. Mientras falte una de ellas, la exploración no lista nada y dice qué falta, con los pasos de Instalar los OPC Core Components.
Escrituras
Se pueden escribir los tags cuyo Acceso es Lectura y escritura o Solo escritura, sobre el mismo elemento que usa la lectura. El valor se envía en el tipo en que el servidor guarda el elemento (en el tipo del propio tag cuando el servidor no lo dice), convertido a partir del valor del tag sin pasar por texto, de modo que una estación en cualquier idioma envía el mismo número. Un número entero fuera del rango del tipo del elemento se rechaza antes de enviar nada, nunca se recorta al valor más cercano que el tipo puede contener. Una escritura que el servidor rechaza vuelve rechazada, con el motivo cuando es uno que la estación sabe decir (un elemento que no admite escritura, un valor que el elemento no admite, un elemento que el servidor no conoce, acceso denegado) y, si no, con el código de error del servidor, por ejemplo OPC DA 0x80004005; el diario técnico guarda el código del servidor en todos los casos. OPC DA no tiene comandos: un dispositivo de este controlador no ofrece ninguno.
El proceso auxiliar de 32 bits
Los servidores OPC DA se alcanzan mediante un cliente COM de 32 bits, que la estación de 64 bits no puede cargar. Por eso el controlador funciona en un proceso auxiliar propio, Lab.Desktop.DriverBridge.exe, que la estación arranca la primera vez que un dispositivo o una exploración OPC DA lo necesita, o que la estación comprueba los OPC Core Components, y cierra cuando el Connector se detiene. Nada cambia en el uso del controlador: sus dispositivos y tags se leen, se escriben, se exploran y quedan en el diario técnico como los de cualquier otro.
Si el proceso auxiliar se detiene, sus dispositivos muestran el error "El proceso auxiliar de 32 bits del controlador OPC DA se detuvo. La estación lo vuelve a arrancar, y el dispositivo se vuelve a conectar a través de él.", la página Eventos guarda su código de salida, y sus tags pierden los valores. La estación vuelve a arrancar el proceso auxiliar, tras una pausa que crece mientras siga deteniéndose, y los dispositivos se vuelven a conectar a través de él por sí solos. Una escritura que estaba en camino cuando el proceso auxiliar se detuvo vuelve fallida, diciendo que no se sabe si el valor llegó al equipo. Ningún otro controlador ni ninguna otra parte de la estación se detiene con él.
Antes de empezar
- La estación no instala ningún componente OPC. El enumerador de servidores OPC (OpcEnum) y las bibliotecas de proxy y stub de OPC DA vienen con el servidor OPC DA, o con los OPC Core Components. La estación comprueba por sí misma si están registrados y, mientras falte uno, dice cómo instalarlos: consulte Instalar los OPC Core Components.
- Un servidor en otro ordenador se alcanza por DCOM, que los dos ordenadores deben permitir para la cuenta de Windows con la que funciona la estación: permisos de DCOM, reglas del cortafuegos y la misma cuenta o un dominio de confianza. Esa configuración se hace en Windows y nunca en la estación: consulte Preparar un servidor remoto.
- El controlador funciona solo en Windows.
Instalar los OPC Core Components
La estación comprueba por sí misma, en el proceso auxiliar de 32 bits, si este ordenador tiene el enumerador de servidores OPC (OpcEnum) y las bibliotecas de proxy y stub de OPC DA registrados para programas de 32 bits: la primera vez que lo pregunta la página del controlador, la página de uno de sus dispositivos o el agente, y de nuevo cada 30 segundos mientras falte uno. Hasta que el Connector arranca, no se sabe si están, y no se dice nada. Mientras falte uno:
| Dónde | Qué dice |
|---|---|
| La página del controlador | Un aviso de precaución, "Faltan los OPC Core Components en este ordenador", con los pasos de abajo. Su enlace abre la página de la OPC Foundation en el navegador del ordenador. |
| La página de cada dispositivo | El mismo aviso, salvo que el dispositivo esté conectado. |
| Una exploración | No lista nada y dice qué falta: la línea que cierra la exploración remite al aviso, y device_discover del agente da los pasos en inglés. |
| El último error de un dispositivo cuya conexión falla | Qué falta y los mismos pasos, en inglés, como se escriben las causas propias del controlador. |
| El agente | driver_capabilities los da en prerequisite, con installed en false. |
Para instalarlos:
- Vuelva a ejecutar el instalador de su servidor OPC DA: suele instalarlos.
- Si no, abra la página Core Components de la OPC Foundation y descargue los OPC Core Components Redistributables. Solo un usuario registrado puede descargarlos: si la página indica que no tiene permiso para descargar el archivo, inicie sesión con "Login" o cree una cuenta con "Create Account" en la misma página.
- Elija
opc-core-components-redistributable-<version>-x86-x64.msien Windows de 64 bits, que incluye también los componentes de 32 bits, y el que termina en-x86.msisolo en Windows de 32 bits. - Ejecútelo como administrador y reinicie el ordenador si el instalador lo pide.
Como mucho 30 segundos después de la instalación, el aviso desaparece, la exploración muestra los servidores OPC DA y los dispositivos de este controlador se conectan con la configuración que tienen, sin reiniciar Ganter Lab.
Preparar un servidor remoto
Un servidor en este ordenador no necesita nada más. Un servidor en otro ordenador se alcanza por DCOM, que no deja entrar nada de otro ordenador hasta que los dos están preparados para ello. La preparación se hace en Windows en los dos ordenadores, por un administrador de cada uno, nunca en la estación:
- Use la misma cuenta de Windows con la misma contraseña en los dos ordenadores (la cuenta con la que funciona la estación), o una cuenta de dominio que conozcan los dos.
- En el ordenador del servidor, ejecute
dcomcnfgy abra Component Services > Computers > My Computer > Properties > COM Security. En Access Permissions y en Launch and Activation Permissions, tanto en Edit Limits como en Edit Default, conceda a esa cuenta todos los permisos remotos. En Edit Limits de Access Permissions, conceda además Remote Access a ANONYMOUS LOGON, que necesita el enumerador de servidores OPC (OpcEnum). - Allí mismo, en My Computer > DCOM Config, abra las Properties del servidor OPC y de OpcEnum, y en su pestaña Security personalice los tres permisos con la misma cuenta.
- En el ordenador de la estación, ejecute también
dcomcnfgy, en Edit Limits de Access Permissions, conceda Remote Access a la cuenta con la que se ejecuta el servidor OPC: el servidor llama de vuelta a la estación. - En el ordenador del servidor, en el Firewall de Windows Defender, permita la entrada por el puerto TCP 135 y los programas del servidor OPC y de OpcEnum (
OpcEnum.exe), y compruebe en Servicios que OpcEnum se está ejecutando y se inicia automáticamente.
Edit Default no cambia nada mientras Edit Limits niegue el permiso: ajuste los dos. DCOM responde en el puerto 135 y después lleva las llamadas por un puerto que elige Windows, así que un cortafuegos entre los dos ordenadores que solo abre el 135 sigue bloqueando el servidor.
| Lo que responde Windows | Lo que dice la página del dispositivo |
|---|---|
| Acceso denegado (0x80070005) | «host rechaza esta estación por DCOM», con la cuenta con la que funciona la estación y los pasos 1 a 4 |
| El servidor RPC no está disponible (0x800706BA) | «host no responde a DCOM»: el ordenador está apagado o fuera de alcance, su cortafuegos bloquea DCOM, o OpcEnum no se ejecuta allí, con el paso 5 |
Cada aviso ocupa el lugar del error del dispositivo y desaparece solo en cuanto el servidor se conecta. El diario técnico y el agente leen los mismos pasos en inglés. Un servidor en este ordenador nunca se dice así.
Donde la planta no permite DCOM, un wrapper o túnel que sirva el servidor OPC DA por OPC UA, en el ordenador del servidor, lo evita del todo: la estación lee entonces el servidor con el controlador OPC UA.