Controladores
Qué es un controlador, dónde se listan los controladores y cómo se añade uno a la estación, el controlador fijo de un dispositivo, la tabla de todos los controladores que conoce este producto, qué documenta la página de cada uno, y la nota sobre los controladores que un paquete no lleva.
El reproductor procede de YouTube y solo se carga al pulsar reproducir.
Un controlador es el protocolo con el que la estación habla con una familia de equipos: registros Modbus sobre TCP, un servidor OPC UA, un autómata Siemens. Todo dispositivo de la página Connector pertenece exactamente a un controlador, y el controlador decide qué campos de conexión muestra el dispositivo, cómo se direccionan sus tags, qué tipos de dato pueden llevar, si se pueden escribir, si el controlador puede explorar en busca de equipos, y si la estación los sondea o el equipo empuja hacia ella. Este grupo tiene una página por controlador; esta página es lo que todas tienen en común.
El registro
El conjunto de controladores es fijo: viene con la aplicación y no se puede ampliar desde la página. La carpeta Controladores, en lo alto del árbol de la columna Comunicación, abre el catálogo de los que lleva esta instalación, cada uno con su descripción, su recuento de dispositivos, su estado de salud y Añadir controlador, o Abrir y Quitar el controlador una vez añadido; el catálogo y sus reglas están en La lista de controladores y la página de un controlador.
Todo controlador que trae el paquete está listo para usarse, sin ningún interruptor para encenderlo o apagarlo: la estación añade los que usa. Bajo la carpeta Controladores, el árbol lista los controladores añadidos, tengan algo debajo o no, así que la columna lleva lo que la estación está preparada para leer. Un controlador se añade con Añadir controlador en su fila del catálogo o en el menú Nuevo… de la columna, y se quita con Quitar el controlador en su fila del catálogo, en su propia barra o en su menú del clic derecho. Quitar no elimina nada: se rechaza mientras el controlador tiene un dispositivo, una línea serie, un bróker o una carpeta, y un controlador que tiene alguno de ellos siempre está añadido. Una estación nueva no tiene ningún controlador añadido; una estación actualizada desde una versión anterior empieza con añadidos los controladores que ya usa.
El controlador de un dispositivo es fijo
El controlador se elige al crear el dispositivo: en el menú Nuevo… de la columna el dispositivo se crea desde la entrada del propio controlador, y Añadir dispositivo en la página de un controlador crea bajo ese controlador. A partir de ahí, la tarjeta Dispositivo muestra el controlador como texto de solo lectura. Para llevar un dispositivo a otro protocolo, cree un dispositivo nuevo bajo el otro controlador y elimine el antiguo; la dirección cambia, así que hay que apuntar las referencias a los tags nuevos desde la tarjeta Usado por de cada tag.
Todos los controladores
Los controladores se agrupan por la familia de equipos a la que llegan: los mismos grupos, en el mismo orden, en que los listan el catálogo Controladores y la entrada Añadir controlador del menú Nuevo… de la columna.
Autómatas
| Controlador | Habla con |
|---|---|
| Beckhoff ADS | Autómatas Beckhoff TwinCAT sobre ADS/AMS. |
| Mitsubishi MC | Autómatas Mitsubishi por el controlador MELSEC MC. |
| Omron | Autómatas Omron: los CJ, CS y CP por dirección de memoria sobre FINS (UDP, TCP o Host Link en una línea serie), y los NJ, NX y NY por nombre de variable sobre EtherNet/IP. |
| Rockwell EtherNet/IP | Autómatas Allen-Bradley / Rockwell sobre EtherNet/IP (CIP). |
| Siemens S7 | Autómatas Siemens S7 por el controlador S7comm. |
Protocolos industriales
| Controlador | Habla con |
|---|---|
| BACnet | Dispositivos de automatización de edificios BACnet/IP. |
| Generic serial and TCP | Equipos con un protocolo propio de texto o de bytes, como básculas y lectores de códigos de barras, por una línea serie, TCP o UDP. |
| Modbus RTU | Registros Modbus por una línea serie (RS-485/232), en modo de transmisión RTU o ASCII. |
| Modbus TCP | Registros Modbus sobre TCP/IP, en trama MBAP o como tramas RTU para un convertidor serie-Ethernet. Puerto 502 por defecto. |
| MQTT | Dispositivos que publican a través de un bróker MQTT externo, en MQTT simple o Sparkplug B. |
| OCPP | Puntos de recarga de vehículos eléctricos por OCPP (los puntos de recarga se conectan a esta estación). |
| OPC DA | Servidores OPC Data Access clásicos mediante COM/DCOM, a través de un proceso auxiliar de 32 bits propio. |
| OPC UA | Cliente OPC Unified Architecture sobre opc.tcp. |
| SNMP | Equipos de red que responden SNMP v1, v2c o v3, como SAI, PDU, switches y sensores de sala técnica; con Redfish para los servidores, cubre la sala técnica. |
Instrumentos y adquisición
| Controlador | Habla con |
|---|---|
| Fluke NetDAQ | Equipos de adquisición de datos Fluke NetDAQ (2640A, 2645A) y 2680 Series (2680A, 2686A), configurados a partir de los tags y leídos con la biblioteca propia de Fluke en un proceso auxiliar de 32 bits. |
| NI-DAQmx | Hardware de adquisición de datos de National Instruments (chasis cDAQ y sus módulos, dispositivos USB y PCI Express) a través del NI-DAQmx instalado en este ordenador, una muestra por lectura. |
| SCPI instruments | Instrumentos de banco que hablan SCPI, como multímetros, fuentes de alimentación y cargas electrónicas, por TCP, por línea serie, o por USB y GPIB a través de VISA. |
Inalámbricos
| Controlador | Habla con |
|---|---|
| LoRaWAN | Sensores LoRaWAN y concentradores de radio a través del servidor de red Basics Station integrado. |
| Matter | Dispositivos domésticos Matter (puesta en marcha por Bluetooth). |
Web y API
| Controlador | Habla con |
|---|---|
| AVEVA PI | Puntos de AVEVA PI System por PI Web API, por HTTPS de forma predeterminada. |
| HTTP | Endpoints HTTP y HTTPS genéricos sondeados como tags, con una credencial opcional. |
| Redfish | API REST Redfish para hardware de servidor y de centro de datos. |
Archivos y bases de datos
| Controlador | Habla con |
|---|---|
| Database | Tablas de la base de datos de un sistema de la fábrica (SQL Server, PostgreSQL, MySQL y MariaDB, SQLite, o cualquier base de datos a través de su controlador ODBC), cada tag leyendo una celda por su tabla, su columna y su fila o ejecutando una consulta propia; la celda o un comando propio del tag escritos donde un tag lo indica. |
| File | Archivos que otro programa escribe en una carpeta local o de red (CSV y texto en columnas, texto libre, JSON, XML), leídos de uno en uno o desde una carpeta de entrada; líneas o archivos completos escritos para ese programa donde el dispositivo lo permite. |
Pruebas
| Controlador | Habla con |
|---|---|
| Simulated | Señales sintéticas generadas en la propia aplicación, para probar sin hardware. |
El servidor Modbus no está en esta tabla: no es un controlador, sino la propia estación sirviendo sus tags y sus variables de Logic a PLC, HMI y sistemas de edificio por Modbus TCP, desde su propia fila bajo la carpeta Servidores.
Qué tienen en común los controladores, y en qué se diferencian
El Connector dibuja un solo editor para todos los controladores y deja que el controlador decida qué partes aparecen. Esta tabla dice qué esperar antes de abrir la página de un controlador:
| Controlador | Campos de conexión en la página del dispositivo | Direccionamiento del tag | Intervalo de sondeo | Escrituras en tags | Descubrir |
|---|---|---|---|---|---|
| Simulated | ninguno | el nombre del tag, más la forma de la señal | sí | sí | sí (su catálogo) |
| Modbus TCP | Host o IP, Puerto, ID de unidad, Formato de trama (MBAP o RTU), Intervalo mínimo entre transacciones | tipado: clase y número de registro | sí | sí | sí (exploración por dirección o CIDR) |
| Modbus RTU | Línea serie (fija; la línea fija el modo de transmisión, RTU o ASCII), ID de unidad | tipado: clase y número de registro | sí | sí | sí (sondeo de ID de unidad en una línea) |
| OPC UA | Host o IP, Puerto, Ruta del recurso, Usuario, Contraseña | texto libre: Id de nodo | sí | sí | sí (dirección del servidor) |
| OPC DA | Host o IP, Servidor / Clave | texto libre: ID de elemento | sí | sí | sí (los servidores de un ordenador) |
| Siemens S7 | Host o IP, Bastidor / Ranura | tipado: área, DB, byte, bit | sí | sí | no |
| Rockwell EtherNet/IP | Host o IP, Ranura | texto libre: tag del autómata, más un desplazamiento | sí | sí | sí (difusión) |
| Beckhoff ADS | Host o IP, Puerto, IP local (AMS) | texto libre: Símbolo | sí | sí | no |
| Mitsubishi MC | Host o IP, Puerto | texto libre: Dirección del dispositivo | fijo 1 s | sí | no |
| BACnet | Host o IP, Puerto, Id de dispositivo | tipado: tipo de objeto e instancia | fijo 1 s | sí | sí (Who-Is) |
| OCPP | Identificador | tipado: número de conector; el nombre del tag termina en Meter, Status o Transaction | lo empuja el punto de recarga | no (solo lectura) | sí (puntos de recarga conectados) |
| Redfish | Host o IP, Puerto, Usuario, Contraseña | texto libre: Ruta del recurso, más un puntero JSON | sí | sí | sí (dirección del servicio) |
| Matter | ID de nodo (solo lectura) | tipado: salida, clúster y atributo; los tags vienen del dispositivo | sí | sí (los valores que el controlador sabe cambiar) | sí (nodos puestos en marcha, con los valores que publica cada uno) |
| LoRaWAN | Identificador (DevEUI), Servidor / Clave (clave de aplicación) | tipado: canal o desplazamiento, tipo LPP | lo empuja el sensor | no (solo lectura) | no |
| AVEVA PI | Host o IP, Puerto, Ruta del recurso, Transporte, Usuario, Contraseña, Token de portador | texto libre: ruta PI | sí | sí | sí (elemento AF tras la dirección del servicio) |
| HTTP | Host o IP, Puerto, Ruta del recurso | texto libre: Ruta | sí | sí | no |
| MQTT | Bróker (fijo; el bróker lleva el host, el puerto, el transporte y el inicio de sesión), Protocolo y, en Sparkplug B, los ID de grupo, de nodo de borde y de dispositivo | texto libre: Tópico, más una ruta del valor dentro de una carga útil JSON, o Métrica de Sparkplug B | lo entrega el bróker | sí (en un tópico de comando, o con un comando Sparkplug B) | sí (escucha en un bróker) |
| Generic serial and TCP | Transporte (Cliente TCP o Escucha UDP), Host, Puerto, o la Línea serie (fija) en un dispositivo de línea; después las tarjetas Mensajes y Suma de verificación | tipado: modo de lectura, petición, filtro de mensajes y dónde está el valor en el mensaje | sí; un tag en escucha conserva lo que envía el equipo | sí (un mensaje de escritura; no por UDP) | no |
| Omron | Host o IP, Protocolo (FINS o Tags NJ/NX por nombre); por FINS, el Puerto y la tarjeta FINS (transporte, red, nodos, unidad, tiempo de espera de respuesta); en una línea serie, la Línea serie (fija), el ID de unidad (el número de unidad Host Link) y el tiempo de espera de respuesta | texto libre: Dirección de memoria (FINS) o Nombre de variable (NJ/NX) | sí | sí | sí (un sondeo FINS de un autómata, y una difusión para los autómatas NJ/NX) |
| SCPI instruments | Transporte (TCP (socket LXI) o VISA), Host y Puerto o el Recurso VISA, o la Línea serie (fija) en un dispositivo de línea; después la tarjeta Instrumento (terminador, tiempo de espera de respuesta, confirmación de escritura, comandos de preparación) | texto libre: Consulta, más qué valor de una respuesta separada por comas, y un comando de escritura | sí | sí (un comando de escritura, confirmado por la cola de errores del instrumento) | sí (los instrumentos que lista VISA, y un sondeo TCP de un host) |
| NI-DAQmx | ninguno: en su lugar la tarjeta Dispositivo NI-DAQmx (Nombre del dispositivo, y el Producto que lee NI-DAQmx) | tipado: Canal físico y Medida, con el rango, el cableado, el termopar o los ajustes de contador de la medida | sí | sí (líneas de salida digital y salidas de tensión) | sí (todos los dispositivos que conoce NI MAX, con sus canales) |
| Fluke NetDAQ | Host o IP; luego la tarjeta Instrumento (Canal base, Velocidad de escaneo) | tipado: Punto (un canal analógico y su Función, una línea digital, un relé o el totalizador) | sí; el instrumento escanea al intervalo más corto entre los tags del dispositivo | sí (líneas digitales y relés, y el totalizador vuelto a cero) | no |
| SNMP | Host o IP, Puerto; después la tarjeta Agente SNMP (versión, community o usuario SNMPv3 y seguridad, tiempo de espera de respuesta, reintentos) | texto libre: OID, en números o por su nombre estándar | sí | sí (un SET que el agente acepta; un objeto estándar que su MIB declara de solo lectura sigue de solo lectura) | sí (un recorrido de los subárboles estándar de un agente) |
| File | ninguno: en su lugar la tarjeta Carpeta y archivo (Ruta de la carpeta, Nombre del archivo o el patrón de la carpeta de entrada, Leer de, Formato del archivo), y después las tarjetas Texto del archivo y Escritura | tipado: lo que lee el tag (un valor, el archivo completo o un dato del archivo) y, para un valor, una columna y una fila (CSV), una línea y sus caracteres (texto libre) o una ruta (JSON, XML) | sí | sí (en un dispositivo que permite la escritura: una línea añadida, el archivo completo sustituido u otro archivo indicado) | sí (un archivo, el de un dispositivo o uno escrito) |
| Database | ninguno: en su lugar la tarjeta Base de datos (Tipo de base de datos, después Servidor, Puerto, Nombre de la instancia y Nombre de la base de datos, el Archivo de base de datos, o el Origen de datos o texto de conexión), después la tarjeta Inicio de sesión (Nombre de usuario y Contraseña, y en SQL Server el inicio de sesión de Windows y el Cifrado) | con campos: cómo lee el tag (una celda por Tabla, Columna del valor y Fila que leer, o el Texto de su consulta propia) | sí | sí (la celda que lee, o su comando de escritura propio) | sí (las tablas de la base de datos de un dispositivo) |
Cada controlador estrecha además la lista Tipo de dato que ofrece un tag a lo que de verdad puede transportar; la lista exacta está en la página del controlador. Donde la tabla dice "fijo 1 s", el controlador ignora el intervalo configurado, así que las páginas de Dispositivo y de Tag le esconden el campo Intervalo de sondeo. Donde dice "solo lectura", el campo Acceso ofrece únicamente Solo lectura y el campo de escritura no aparece nunca.
Qué documenta la página de cada controlador
La página de cada controlador recorre las mismas secciones en el mismo orden: los campos de conexión que muestra la tarjeta Dispositivo y cómo componen el URI base; cómo se direcciona un tag (los campos tipados o la ficha de texto libre, y la dirección de bus de solo lectura que previsualiza el panel); los tipos de dato ofrecidos; el descubrimiento, cuando el controlador lo tiene; las escrituras, cuando el controlador las acepta; y las particularidades del controlador (credenciales, certificados, tiempos, un servidor de red que corre la estación, emparejamiento).
Un controlador que el paquete no lleva
El Connector nunca lista ni ofrece un controlador que el paquete en ejecución no lleva. Una configuración que llega con esos dispositivos de todas formas (una copia de seguridad restaurada, una configuración de otra máquina) los conserva: el controlador sigue listado, en el catálogo y bajo la carpeta Controladores, mientras esos dispositivos existan, su descripción se lee "Este paquete no incluye el controlador.", y la página del controlador y todos los dispositivos que hay bajo ella llevan un aviso que dice lo mismo. Esos dispositivos se quedan sin conexión y conservan sus ajustes; se pueden eliminar, pero no copiar, y bajo ese controlador no se puede arrancar ningún dispositivo nuevo ni ninguna exploración de descubrimiento.
Qué controladores lleva un paquete se lee del registro de controladores del Connector, que solo existe una vez que el Connector ha arrancado. Hasta entonces todos los controladores cuentan como presentes, así que el catálogo se asienta unos segundos después del arranque y se queda quieta durante la sesión, incluso mientras el Connector se detiene y se vuelve a arrancar.
El código de un controlador se carga una sola vez mientras la aplicación corre. Detener y arrancar la comunicación reconstruye los dispositivos en marcha y la lista de controladores a partir de esa misma carga, que es lo que mantiene plana la memoria de la estación a lo largo de un día de reinicios. La consecuencia es que sustituir en disco los archivos de un controlador solo surte efecto después de reiniciar la propia aplicación.