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 un escaneo de los servidores de una máquina.

Ver como Markdown

El driver 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 gateways de PLC antiguos, 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. Agregue el driver y sus dispositivos en la página Connector.

El dispositivo

Campo Significado Valor inicial
Host o IP El nombre o la dirección de la computadora en la que funciona el servidor OPC DA. Vacío significa esta computadora, donde funciona la mayoría de los servidores clásicos. vacío: esta computadora
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, a menos que un tag fije su propio intervalo. 1000

La dirección del dispositivo se arma 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.

El 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 un escaneo los listan. La estación agrega 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.

Los tipos de dato

El selector de 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 un escaneo: 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 un arreglo, deja el tag sin valor. En OPC DA una fecha no trae zona horaria, y la estación la lee y la escribe como UTC.

Cada valor con el que responde el servidor trae 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 que falló 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.

El descubrimiento

Descubrir lista los servidores OPC DA registrados en una computadora: escriba su nombre o su dirección en el destino del escaneo, o déjelo vacío para esta computadora. 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 un arreglo, no se ofrece, y el escaneo lo cuenta entre lo que dejó fuera. Consulte Descubrimiento para ver cómo se eligen y se agregan los candidatos.

El escaneo le pide los servidores al enumerador de servidores OPC (OpcEnum), mediante las bibliotecas de proxy y stub de OPC DA registradas en esta computadora. Mientras falte una de ellas, el escaneo no lista nada y dice qué falta, con los pasos de Instalar los OPC Core Components.

Las escrituras

Los tags cuyo Acceso es Lectura y escritura o Solo escritura se pueden escribir, en el mismo elemento que usa la lectura. El valor se manda 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, así que una estación en cualquier idioma manda el mismo número. Un número entero fuera del rango del tipo del elemento se rechaza antes de mandar 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 driver no ofrece ninguno.

El proceso auxiliar de 32 bits

A los servidores OPC DA se llega mediante un cliente COM de 32 bits, que la estación de 64 bits no puede cargar. Por eso el driver funciona en un proceso auxiliar propio, Lab.Desktop.DriverBridge.exe, que la estación arranca la primera vez que un dispositivo o un escaneo OPC DA lo necesita, o que la estación revisa los OPC Core Components, y cierra cuando el Connector se detiene. Nada cambia en el uso del driver: 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 driver 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, después de 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 iba en camino cuando el proceso auxiliar se detuvo vuelve fallida, diciendo que no se sabe si el valor llegó al equipo. Ningún otro driver 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 revisa por sí misma si están registrados y, mientras falte uno, dice cómo instalarlos: consulte Instalar los OPC Core Components.
  • A un servidor en otra computadora se llega por DCOM, que las dos computadoras deben permitir para la cuenta de Windows con la que funciona la estación: permisos de DCOM, reglas del firewall 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 driver funciona solo en Windows.

Instalar los OPC Core Components

La estación revisa por sí misma, en el proceso auxiliar de 32 bits, si esta computadora 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 driver, 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 driver Un aviso de precaución, "Faltan los OPC Core Components en esta computadora", con los pasos de abajo. Su enlace abre la página de la OPC Foundation en el navegador de la computadora.
La página de cada dispositivo El mismo aviso, salvo que el dispositivo esté conectado.
Un escaneo No lista nada y dice qué falta: la línea que cierra el escaneo 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 driver.
El agente driver_capabilities los da en prerequisite, con installed en falso.

Para instalarlos:

  1. Vuelva a ejecutar el instalador de su servidor OPC DA: suele instalarlos.
  2. 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.
  3. Elija opc-core-components-redistributable-<version>-x86-x64.msi en Windows de 64 bits, que incluye también los componentes de 32 bits, y el que termina en -x86.msi solo en Windows de 32 bits.
  4. Ejecútelo como administrador y reinicie la computadora si el instalador lo pide.

A más tardar 30 segundos después de la instalación, el aviso desaparece, el escaneo muestra los servidores OPC DA y los dispositivos de este driver se conectan con la configuración que tienen, sin reiniciar Ganter Lab.

Preparar un servidor remoto

Un servidor en esta computadora no necesita nada más. A un servidor en otra computadora se llega por DCOM, que no deja entrar nada de otra computadora hasta que las dos están preparadas para ello. La preparación se hace en Windows en las dos computadoras, por un administrador de cada una, nunca en la estación:

  1. Use la misma cuenta de Windows con la misma contraseña en las dos computadoras (la cuenta con la que funciona la estación), o una cuenta de dominio que conozcan las dos.
  2. En la computadora del servidor, ejecute dcomcnfg y 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).
  3. Ahí 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.
  4. En la computadora de la estación, ejecute también dcomcnfg y, 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.
  5. En la computadora 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 firewall entre las dos computadoras 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»: la computadora está apagada o fuera de alcance, su firewall bloquea DCOM, o OpcEnum no se ejecuta ahí, 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 esta computadora 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 la computadora del servidor, lo evita por completo: la estación lee entonces el servidor con el driver OPC UA.