# Dispositivos

> La página del dispositivo: su cabecera y sus verbos, la tarjeta Dispositivo, la tarjeta Conexión con los campos que muestra cada controlador, credenciales y certificados, la rejilla de Tags con la edición masiva, copiar un dispositivo, y cómo se tratan los duplicados y los choques de nombre.

Un **dispositivo** es un equipo con el que la estación habla a través de un controlador: cómo se llega a él y los tags que se leen de él. Seleccione una fila de dispositivo en la columna Comunicación, o pulse Abrir en una fila de dispositivo de la tabla de un controlador, de una línea, de un bróker o de una carpeta, para abrir su página. Ver Connector la lee; Configurar Connector la edita. Las líneas serie tienen su propia página, [Líneas serie](connector-lines), y los brókeres MQTT se describen en [MQTT](driver-mqtt#the-broker).

## Crear un dispositivo {#creating-a-device}

| Gesto | Resultado |
| --- | --- |
| **Nuevo…** > `<Controlador>` > **Nuevo dispositivo** en el pie de la columna | Un dispositivo en el nivel propio del controlador, bajo todo controlador cuyos dispositivos cuelgan directamente de él. |
| **Añadir dispositivo** en la tabla Dispositivos de la página de un controlador | Lo mismo. |
| **Nuevo dispositivo** en la tabla Dispositivos de una carpeta o en su menú del clic derecho, o **Nuevo…** > `<Controlador>` > `<Carpeta>` > **Nuevo dispositivo** | Un dispositivo archivado en esa carpeta; bajo Matter se abre el formulario de emparejamiento y el nodo emparejado se archiva en esa carpeta. |
| **Añadir dispositivo** en la tarjeta Dispositivos de una línea serie o en su menú del clic derecho, o **Nuevo…** > `<Controlador>` > `<Línea>` > **Nuevo dispositivo** | Un dispositivo Modbus RTU en esa línea, bajo el primer ID de unidad libre, o, en una línea del controlador Generic serial and TCP o del controlador SCPI instruments, un dispositivo de ese controlador en la línea. En una línea del controlador Omron, un autómata en la línea con el primer número de unidad libre de 0 a 31. |
| **Añadir dispositivo** en la tarjeta Dispositivos de un bróker o en su menú del clic derecho, o **Nuevo…** > MQTT > `<Bróker>` > **Nuevo dispositivo** | Un dispositivo MQTT en ese bróker, en MQTT simple. |
| **Añadir dispositivo** en un resultado del descubrimiento | Un dispositivo con el endpoint que encontró la exploración y los tags que se hayan marcado; véase [Descubrimiento](connector-discovery). |
| **Emparejar dispositivo** en la barra del controlador Matter, o **Nuevo…** > Matter > **Emparejar dispositivo** | Un nodo Matter puesto en marcha, en el nivel propio del controlador; véase [Descubrimiento](connector-discovery#pairing-a-matter-device). |
| **Copiar el dispositivo** sobre un dispositivo | Una copia del dispositivo seleccionado, tags incluidos. |

Un dispositivo nuevo se llama "Nuevo dispositivo" (luego "Nuevo dispositivo 2", y así), nace habilitado, con un intervalo de sondeo de 1000 ms, ID de unidad 1 y el puerto que usa su controlador (vea la tarjeta Conexión más abajo; un dispositivo del controlador Generic serial and TCP nace sin ninguno), y no se abre: aparece resaltado, desplazado hasta quedar a la vista, en la tabla Dispositivos de la página que lo lista (la del controlador, la carpeta, la línea o el bróker), y el registro de acciones dice "Se añadió el dispositivo 'Nuevo dispositivo'. Ábralo para editar sus datos." Desde esa tabla la pantalla se queda donde está; desde Nuevo… o un clic derecho va a esa página. El **Abrir** de la fila, o su fila en el árbol, abre el dispositivo. Un dispositivo se rechaza bajo un controlador que el paquete no lleva, y bajo Matter, donde un dispositivo solo viene del emparejamiento o del descubrimiento ("Use Emparejar dispositivo para añadir un nodo Matter nuevo, o Descubrir para añadir uno ya puesto en marcha."). Todos estos gestos están bajo un controlador ya añadido; cómo se añade uno se describe en [La lista de controladores y la página de un controlador](connector-drivers#row-actions).

Un dispositivo cuyo controlador llega a su equipo por un host (todo controlador con el campo **Host o IP**) nace con ese host vacío, y la estación no intenta conectarlo hasta que se indica el host: su punto se queda gris, la fila y la página dicen "Host aún sin indicar", sus tags se leen como huecos, y no puede aparecer ningún error de conexión antes de que haya una dirección que probar. Mientras tanto nunca se dirige a este ordenador; para un equipo que de verdad está en este ordenador, indique `localhost`. Un dispositivo NI-DAQmx no tiene host: espera del mismo modo su **Nombre del dispositivo**, y dice "Dispositivo NI-DAQmx aún sin indicar" hasta que lo tiene (vea [NI-DAQmx](driver-ni-daqmx#the-ni-daqmx-device-card)). Un dispositivo Fluke NetDAQ espera su host y después el **Canal base** de su instrumento, y dice "Canal base aún sin indicar" hasta que lo tiene (vea [Fluke NetDAQ](driver-fluke-netdaq#device)). Un dispositivo File espera su **Ruta de la carpeta**, y dice "Carpeta aún sin indicar" hasta que la tiene (vea [File](driver-file#device)). Un dispositivo Database espera saber dónde está su base de datos (su servidor y el nombre de la base de datos, su archivo o su origen de datos), y dice "Servidor aún sin indicar" hasta que tiene un servidor (vea [Database](driver-database#the-database-card)). Un dispositivo LoRaWAN espera su **Identificador DevEUI** (un sensor) o su **EUI de la estación** (un concentrador), y dice "DevEUI aún sin indicar" o "EUI de la estación aún sin indicar" hasta que tiene uno (vea [LoRaWAN](driver-lorawan#connection-fields)); un identificador que está escrito y no tiene 16 dígitos hexadecimales no se espera, se rechaza.

Una vez que tiene host, conectarse no es nunca un paso que bloquee: el Connector da de alta el dispositivo y se conecta en un bucle de reintentos de fondo, así que un dispositivo inalcanzable no cuesta nada. Sus tags se leen como huecos hasta que la conexión llega, y mientras tanto la página muestra el último error de conexión.

## La cabecera {#the-header}

El nombre, la línea "Un equipo con el que habla esta estación: cómo se llega a él y los tags que se leen de él." y una pastilla con la **URI base**, la dirección exacta a la que se conecta el Connector, montada en vivo a partir de la tarjeta Conexión (por ejemplo `modbus+tcp://192.168.0.10:502/1`, `opc.tcp://plc:4840`, `simulated://CompressedAir`). Un dispositivo todavía sin host no tiene URI base, así que la pastilla no aparece hasta que se indica el host. Tampoco aparece mientras los campos no forman una dirección que el controlador acepte, por ejemplo en un dispositivo Modbus RTU cuya línea falta, o cuya línea tiene un valor que su página no ha guardado. Debajo, uno de estos seis avisos:

- **Controlador no incluido en este paquete**: "Este dispositivo necesita el controlador …, que esta instalación no incluye, así que se queda sin conexión. Sus ajustes se conservan y se puede eliminar; nada más de aquí cambia lo que lee." Los puntos suspensivos ocupan el lugar del nombre del controlador.
- **VISA no está instalado en este ordenador** (SCPI instruments, un dispositivo alcanzado a través de VISA): "Este dispositivo llega a su instrumento a través de VISA, que este ordenador no tiene, así que se queda sin conexión. Instale NI-VISA o Keysight IO Libraries Suite y el dispositivo se conectará. Un instrumento con puerto de red también se puede alcanzar por TCP." Vea [SCPI instruments](driver-scpi#visa-on-this-computer).
- **NI-DAQmx no está instalado en este ordenador** (NI-DAQmx, en un ordenador sin él): "Este dispositivo se lee a través de NI-DAQmx, que este ordenador no tiene, así que se queda sin conexión. Ganter Lab no incluye NI-DAQmx: instálelo, gratis desde ni.com, y el dispositivo se conectará con la configuración que tiene." Vea [NI-DAQmx](driver-ni-daqmx#ni-daqmx-on-this-computer).
- **Esperando la aprobación del certificado** (OPC UA, Redfish, AVEVA PI, HTTP por HTTPS, MQTT por TLS): "Este equipo presentó un certificado que esta estación nunca ha aprobado, así que todavía no se lee nada de él. Compruebe la huella digital con quien puso en marcha el equipo y después apruébelo en Acceso a los equipos, en la página del controlador OPC UA.", con el controlador del propio dispositivo nombrado, o para un dispositivo MQTT "El bróker de este dispositivo presentó un certificado que esta estación nunca ha aprobado, así que todavía no se lee nada del dispositivo. Compruebe la huella digital con quien administra el bróker y después apruébelo en Acceso a los equipos, en la página del controlador MQTT.", con un botón **Revisar el certificado** que abre Acceso a los equipos en la página del controlador sobre ese certificado ([OPC UA](driver-opc-ua#equipment-access), [Redfish](driver-redfish#equipment-access), [AVEVA PI](driver-aveva-pi#equipment-access), [HTTP](driver-http#equipment-access), [MQTT](driver-mqtt#equipment-access)).
- **Host aún sin indicar**, un aviso neutro en un dispositivo habilitado cuyo host sigue vacío: "La estación no intenta conectarse a este dispositivo mientras no tenga host, así que todavía no se lee nada de él y no hay ningún error que mostrar. Indique el host en la tarjeta Conexión de abajo y la estación se conecta a él." Un dispositivo NI-DAQmx sin nombre de dispositivo dice **Dispositivo NI-DAQmx aún sin indicar** en su lugar: "La estación no intenta conectarse a este dispositivo mientras no tenga el nombre de un dispositivo NI-DAQmx, así que todavía no se lee nada de él y no hay ningún error que mostrar. Indique el nombre que NI MAX da al dispositivo en la tarjeta Dispositivo NI-DAQmx de abajo y la estación se conecta a él." Un dispositivo File sin carpeta dice **Carpeta aún sin indicar**: "La estación no lee este dispositivo mientras no tenga una carpeta, así que todavía no se lee nada de él y no hay ningún error que mostrar. Indique la carpeta en la tarjeta Carpeta y archivo de abajo y la estación empieza a leerlo." Un dispositivo Database que no indica dónde está su base de datos dice **Servidor aún sin indicar**, **Nombre de la base de datos aún sin indicar**, **Archivo de base de datos aún sin indicar** u **Origen de datos aún sin indicar**, según lo que aún le falte: "La estación no llega a este dispositivo mientras no indique dónde está su base de datos, así que todavía no se lee nada de él y no hay ningún error que mostrar. Indíquelo en la tarjeta Base de datos de abajo (el servidor y el nombre de la base de datos, el archivo o el origen de datos) y la estación se conecta a ella."
- En los demás casos, en un dispositivo que pasa por una línea serie o un bróker con error, un aviso neutro que señala hacia allí, "Este dispositivo pasa por la línea serie Bench bus, que tiene un error. La página de la línea dice por qué.", o si no el error propio del dispositivo en rojo, cuando lo hay (véase [Habilitación y estado de salud](connector-health#last-error)).

Debajo, el dispositivo nombra sus tags que tienen un error propio, detrás del mismo marcador rojo que muestra el árbol: "3 tags con error: C3, Opt_Int, T5", y los demás contados pasados tres nombres. El motivo de cada uno se queda en el tag. Mientras el dispositivo no está conectado no nombra ninguno: su propio error dice por qué.

## La barra de comandos {#the-command-bar}

| Comando | Qué hace | Gris cuando (situación) | No se dibuja cuando (rol) |
| --- | --- | --- | --- |
| **Reconectar** | Cierra la conexión de este dispositivo y la vuelve a abrir, sin tocar ningún otro. El registro de acciones espera al controlador y luego dice qué pasó: "Se reconectó 'Furnace'.", o "No se pudo reconectar 'Furnace':" con la causa. No se recarga nada, y un dispositivo que solo contesta más tarde vuelve igualmente por su cuenta. | Hay una exploración o un emparejamiento en marcha, un ensayo retiene la estación, el runtime está detenido, o el dispositivo todavía espera su dirección. Su información emergente dice entonces qué le falta a su controlador, con las palabras de la propia fila del dispositivo: "Host aún sin indicar, así que no hay ninguna conexión que reabrir." en un controlador que llega a su equipo por un host, y la misma frase abierta por "Dispositivo NI-DAQmx aún sin indicar" en NI-DAQmx, por "Carpeta aún sin indicar" y después "Nombre del archivo aún sin indicar" en File, y por "Servidor aún sin indicar", "Nombre de la base de datos aún sin indicar", "Archivo de base de datos aún sin indicar" u "Origen de datos aún sin indicar" en Database, y por "DevEUI aún sin indicar" o "EUI de la estación aún sin indicar" en LoRaWAN. | Sin Configurar Connector. |
| **Habilitar** | Deja que el dispositivo participe en la adquisición. | Ya está habilitado, o la estación rechaza los cambios. | Sin Configurar Connector. |
| **Deshabilitar** | Detiene toda comunicación con el dispositivo y retira sus tags del espacio de direcciones en vivo; cada tag conserva su propio conmutador Habilitado. | Ya está deshabilitado, o la estación rechaza los cambios. | Sin Configurar Connector. |
| **Copiar el dispositivo** | Crea una copia, resaltada en la tabla de la página que la lista (más abajo). | El paquete no lleva el controlador ("Este paquete no incluye el controlador."), o la estación rechaza los cambios. | Sin Configurar Connector. |
| **Eliminar el dispositivo** (tinta de peligro, a la derecha) | Pregunta "¿Eliminar 'Furnace'? Esto también elimina todos sus tags. Esta acción no se puede deshacer.", luego elimina y selecciona el padre, abierto en el árbol y con su tabla a la vista (la línea, el bróker, la carpeta en la que estaba archivado o el controlador). | La estación rechaza los cambios. | Sin Configurar Connector. |

El menú del clic derecho añade **Añadir tag** y **Mover a** (véase [Carpetas de dispositivos](connector-folders#moving-a-device)).

## La tarjeta Dispositivo {#the-device-card}

| Campo | Qué es | Valores / valor por defecto | Efecto |
| --- | --- | --- | --- |
| **Nombre** | El nombre familiar; el último segmento de la identidad de bus y de la dirección del dispositivo. | Obligatorio; único dentro del controlador, sin distinguir mayúsculas. | Al escribir se muestra de antemano lo que arrastra el cambio de nombre ("Comprobando las referencias…", y después cuántas referencias van detrás, o "La dirección efectiva no cambia; no hay referencias que actualizar."); Entrar o salir del campo lo confirma, y todas las referencias a las direcciones antiguas se reescriben en la misma operación: "Dispositivo renombrado y 3 referencias actualizadas." Un nombre en blanco se rechaza: "El nombre del dispositivo es obligatorio." |
| **Controlador** | El protocolo que habla el dispositivo. | Solo lectura. | Fijado al crearlo; véase [Controladores](drivers). |
| **Intervalo de sondeo (ms)** | Cada cuánto lee la estación los tags del dispositivo, salvo que un tag lo invalide. | 1000; un valor de cero o menos se guarda como 1000. | Oculto en los controladores que sondean a 1 s fijo o que reciben datos empujados (Mitsubishi MC, BACnet, OCPP, LoRaWAN, MQTT). |

## La tarjeta Conexión {#the-connection-card}

La tarjeta aparece en todos los controladores que declaran campos de conexión y muestra solo los campos que ese controlador lee. La página de cada controlador explica sus campos a fondo; este es el inventario completo tal y como lo dibuja el panel.

| Campo | Se muestra en | Qué es |
| --- | --- | --- |
| **Host o IP** | Modbus TCP, OPC UA, Siemens S7, Rockwell, Omron, Beckhoff, Mitsubishi, BACnet, Redfish, AVEVA PI, HTTP, Generic serial and TCP (Cliente TCP), SCPI instruments (TCP), SNMP | Nombre de host o dirección IP. Mientras está en blanco el dispositivo no se conecta en absoluto (véase [Crear un dispositivo](#creating-a-device)); escriba `localhost` para un equipo en este ordenador. Un literal IPv6 se pone entre corchetes por usted en la URI base. Se puede pegar una dirección completa: el esquema propio del controlador (`opc.tcp://`, `modbus+tcp://` y similares) se descarta, un puerto tras el host pasa al campo del puerto y una ruta a la ruta del recurso. Lo que el dispositivo no guarda en ningún campo (el esquema de otro protocolo, una ruta o un puerto que el controlador no admite, una dirección IPv6 sin corchetes tras un esquema) se rechaza con el motivo bajo el campo, y el campo vuelve al host vigente. Lo mismo ocurre con un host que no puede ser un nombre: una de sus partes separadas por puntos vacía (`plc..local`), de más de 63 caracteres, o que empieza o termina con un guion. |
| **Puerto** | Modbus TCP, OPC UA, Beckhoff, Mitsubishi, Omron (FINS), BACnet, Redfish, AVEVA PI, HTTP, Generic serial and TCP (Cliente TCP), SCPI instruments (TCP), SNMP | Puerto TCP, de 1 a 65535, o el puerto UDP en que responde un agente SNMP. Un dispositivo nuevo nace en el puerto que usa su controlador (502, 4840, 851, 5007, 5025, 9600, 47808, 443, 161). Un campo vacío muestra ese puerto en gris y se llama al dispositivo por él: así se lee un dispositivo guardado con 0, y vaciar el campo vuelve a él. AVEVA PI y HTTP nacen vacíos, porque su puerto sigue al transporte elegido: el 443 sobre HTTPS, el 80 sin cifrar, y el puerto en gris cambia con el transporte. Generic serial and TCP también nace vacío, sin puerto en gris: ningún puerto es estándar para este tipo de equipo, y el dispositivo no se conecta hasta que tiene uno. |
| **ID de unidad** | Modbus TCP, Modbus RTU | El ID de unidad Modbus: de 0 a 255 en TCP; de 1 a 247 en una línea serie, único por línea. En una línea serie, cualquier otro número se rechaza antes de llegar al dispositivo: el registro de acciones dice por qué ("El ID de unidad debe estar entre 1 y 247.") y el campo vuelve al ID de unidad vigente. |
| **Formato de trama** | Modbus TCP | Cómo viaja cada petición por la conexión: MBAP (el propio Modbus TCP, el valor por defecto) o RTU, la trama RTU con su CRC enviada tal cual, para un convertidor serie-Ethernet en modo transparente. El URI base lleva entonces `framing=rtu`. Véase [RTU sobre TCP](driver-modbus-tcp#rtu-over-tcp). |
| **Intervalo mínimo entre transacciones (ms)** | Modbus TCP | Silencio después de un intento completado antes de que el endpoint empiece el siguiente, de 0 a 1000, por defecto 0 ("Ayuda de compatibilidad, 0-1000 ms. Cero no añade retardo artificial."). Los dispositivos habilitados que comparten host y puerto usan el mayor valor de entre todos ellos, y la tarjeta lo dice cuando otro dispositivo lo eleva: "Efectivo 200 ms · otro dispositivo habilitado en 192.168.0.10:502 eleva el máximo del endpoint." |
| **Línea serie · fija** | Modbus RTU, Generic serial and TCP (un dispositivo de línea), SCPI instruments (un dispositivo de línea), Omron (un dispositivo de línea) | El nombre de la línea y su tupla, de solo lectura; se cambian en la página de la propia línea. "Falta la línea" o "Sin línea física asignada" significa que el dispositivo ha perdido su línea y no se puede guardar: "Se necesita una línea serie." |
| **Bróker · fijo** | MQTT | El nombre del bróker sobre su dirección, de solo lectura; la conexión y el inicio de sesión se cambian en la página del propio bróker. "Falta el bróker" significa que el dispositivo ha perdido su bróker y no se puede guardar: "Se necesita un bróker MQTT." |
| **Protocolo** | MQTT, Omron | En MQTT, **MQTT simple** o **Sparkplug B**: si cada tag nombra un tópico o una métrica. Véase [MQTT](driver-mqtt#device). En Omron, **FINS** o **Tags NJ/NX por nombre**: si cada tag nombra una dirección de memoria o una variable, y si el dispositivo tiene puerto y tarjeta FINS. Véase [Omron](driver-omron#connection). |
| **ID de grupo**, **ID del nodo de borde**, **ID del dispositivo** | MQTT, solo Sparkplug B | El nodo de borde que es el dispositivo, o el dispositivo detrás de él; un ID del dispositivo vacío lee las métricas propias del nodo de borde. Una identidad Sparkplug B se configura una sola vez por bróker. |
| **Bastidor / Ranura** | Siemens S7 | Dos números; la URI base se lee `s7://host:rack:slot`. |
| **Ranura** | Rockwell EtherNet/IP | Un número, la posición del chasis en la que está montado el autómata; una ruta CIP no lleva bastidor, y la URI base se lee `eip://host:slot`. |
| **IP local (AMS)** | Beckhoff ADS | La IP de esta estación en la ruta AMS; los dos net id AMS se derivan como `<ip>.1.1`. En blanco usa la dirección de esta estación en la red que llega al autómata, mostrada en gris. |
| **AMS Net Id del autómata** | Beckhoff ADS | El AMS Net Id propio del autómata, para un autómata cuyo id no es su IP seguida de `.1.1`. En blanco usa la dirección IPv4 del host seguida de `.1.1` (un nombre se resuelve antes), mostrada en gris. |
| **Id del dispositivo** | BACnet | La instancia del dispositivo BACnet. |
| **Servidor / Clave** | LoRaWAN | La clave de aplicación. |
| **Identificador** | OCPP, LoRaWAN | El id del punto de recarga, o el DevEUI (una grafía con dos puntos o guiones se normaliza al hexadecimal desnudo). En blanco recurre al nombre del dispositivo higienizado. |
| **Ruta del recurso** | OPC UA, AVEVA PI, HTTP | Una ruta añadida a la autoridad: la ruta del servidor OPC UA, la raíz del servicio de la PI Web API (por defecto `piwebapi`), o el prefijo al que se une la ruta de todos los tags HTTP. |
| **Transporte** | AVEVA PI, HTTP, Generic serial and TCP, SCPI instruments | En un dispositivo de red del controlador Generic serial and TCP, una lista: Cliente TCP o Escucha UDP, que cambia Host y Puerto por Aceptar de y Puerto local (vea [Generic serial and TCP](driver-generic-serial-tcp#connection)). En un dispositivo del controlador SCPI instruments que no está en una línea, una lista: TCP (socket LXI) o VISA (USB, GPIB, red), que cambia Host y Puerto por Recurso VISA (vea [SCPI instruments](driver-scpi#connection)). En AVEVA PI y HTTP, la casilla **Enviar por HTTP sin cifrar**. Desactivada significa HTTPS, con la nota "HTTPS. El token de portador o la contraseña viajan cifrados hasta la PI Web API."; activada, la nota se convierte en una advertencia de que el token o la contraseña se envían sin cifrar en cada petición, para una PI Web API que no contesta por ningún otro transporte. Un dispositivo HTTP lleva la misma casilla con una nota propia, sobre las peticiones y cualquier credencial que envíe, y en él la casilla es también lo que mueve un host escrito con `http://` o `https://` delante, guardándose el host sin él. |
| **Recurso VISA** | SCPI instruments (VISA) | El nombre del instrumento tal como lo lista VISA, como `USB0::0x0957::0x1A07::MY12345678::INSTR`, en lugar del host y el puerto. Descubrir lo completa. |
| **Nombre de usuario**, **Contraseña** | OPC UA, Redfish, AVEVA PI | Credenciales por dispositivo; un nombre de usuario vacío significa una conexión anónima ("Vacío = anónimo. Se guarda por dispositivo; la contraseña está protegida en reposo."). |
| **Token de portador** | AVEVA PI | Un token que gana al nombre de usuario y la contraseña cuando está puesto; **Mostrar el token** lo revela. |

Un dispositivo Matter muestra otra tarjeta Conexión: **ID de nodo · solo lectura**, el id de nodo de 64 bits que asignó el emparejamiento (o "Necesita volver a emparejarse" cuando la identidad guardada no se puede leer), **Red · solo lectura**, el nombre de la red a la que se unió el dispositivo al emparejarse (un dispositivo emparejado antes de que Ganter Lab la registrara, o añadido con Descubrir, dice que no se registró), y **Estado**, la palabra de salud del dispositivo. Nada de ahí es editable. Un dispositivo Simulated no tiene tarjeta Conexión en absoluto. Un dispositivo del controlador Generic serial and TCP lleva dos tarjetas más bajo su tarjeta Conexión, Mensajes y Suma de verificación, que dicen cómo termina un mensaje y cómo se comprueba; vea [Generic serial and TCP](driver-generic-serial-tcp#the-messages-card). Un dispositivo Omron leído por FINS lleva una tarjeta FINS bajo su tarjeta Conexión, con el transporte, la red, los nodos, la unidad y el tiempo de espera de respuesta; vea [Omron](driver-omron#the-fins-card). Un dispositivo del controlador SCPI instruments lleva una tarjeta Instrumento bajo su tarjeta Conexión, con la identidad del instrumento, el terminador, el tiempo de espera de respuesta, la confirmación de escritura y los comandos de preparación; vea [SCPI instruments](driver-scpi#the-instrument-card). Un dispositivo NI-DAQmx no tiene tarjeta Conexión: en su lugar está la tarjeta Dispositivo NI-DAQmx, con el nombre que NI MAX da al dispositivo y el producto que NI-DAQmx lee de él; vea [NI-DAQmx](driver-ni-daqmx#the-ni-daqmx-device-card). Un dispositivo del controlador SNMP lleva una tarjeta Agente SNMP bajo su tarjeta Conexión, con la versión, la community o el usuario SNMPv3 con su nivel de seguridad, sus protocolos y sus contraseñas, el tiempo de espera de respuesta y los reintentos; vea [SNMP](driver-snmp#the-snmp-agent-card). Un dispositivo File no tiene tarjeta Conexión: en su lugar está la tarjeta Carpeta y archivo, con la carpeta, el archivo y el formato, seguida de la tarjeta Texto del archivo y, en un dispositivo que lee un archivo, de la tarjeta Escritura; vea [File](driver-file#the-folder-and-file-card). Un dispositivo Database no tiene tarjeta Conexión: en su lugar está la tarjeta Base de datos, con el tipo de base de datos y dónde está, seguida de la tarjeta Inicio de sesión en toda base de datos salvo SQLite; vea [Database](driver-database#the-database-card).

### Credenciales y certificados {#credentials-and-certificates}

Las contraseñas, los tokens de portador y las community SNMP están protegidos en reposo con la protección de datos de Windows por usuario, así que la base de datos de configuración nunca guarda el valor en claro. Esa protección está ligada a la cuenta de Windows y a la máquina que introdujo el secreto: en otra cuenta el campo vuelve vacío con la nota "No se puede leer en esta cuenta de Windows: solo se abre en el ordenador y en la cuenta de Windows que lo introdujo. Vuelva a introducirlo aquí." Las credenciales se entregan al controlador directamente; no aparecen nunca en la URI base ni en el diario técnico, y se ocultan de los mensajes de error que muestra el registro de acciones.

Un dispositivo OPC UA presenta su certificado de equipo antes de que se abra una sesión, y también lo hace el equipo al que llega un dispositivo Redfish, AVEVA PI o HTTP por HTTPS, o el bróker de un dispositivo MQTT por TLS. Uno en el que Windows no confía y que esta estación nunca ha aprobado no falla en silencio: el dispositivo dice "Esperando la aprobación del certificado" en el árbol y en la página, y el botón del aviso abre Acceso a los equipos en la página de su controlador sobre el certificado para aprobarlo o bloquearlo. Revocar más tarde una aprobación cierra las conexiones que corren sobre ella. Los detalles están en la página de cada controlador: [OPC UA](driver-opc-ua#equipment-access), [Redfish](driver-redfish#equipment-access), [AVEVA PI](driver-aveva-pi#equipment-access), [HTTP](driver-http#equipment-access) y [MQTT](driver-mqtt#equipment-access).

## La tarjeta Comandos {#the-commands-card}

Tres controladores llegan a equipos a los que se les pide que hagan cosas además de leerlos: **HTTP**, **Redfish** y **AVEVA PI**. Su página de dispositivo lleva una tarjeta **Comandos** entre las tarjetas Conexión y Tags, encabezada con "Lo que se le puede pedir a este equipo. Cada comando nombra la ruta a la que se envía la petición, bajo la dirección del dispositivo." Todo el mundo ve la lista; declarar, editar y enviar exigen Configurar Connector, y a un rol sin ese bit no se le dibujan ni los campos ni los verbos.

**Añadir comando** añade una fila llamada "Comando 1" (numerada a partir de lo que ya haya). Cada fila lleva:

| Columna | Qué es |
| --- | --- |
| **Nombre** | Cómo se llama el comando. Es además el nombre del método sobre el dispositivo en el espacio de direcciones OPC UA propio de esta estación, así que es único dentro del dispositivo. |
| **Ruta** | Adónde va la petición, bajo la dirección propia del dispositivo: la ruta que nombra la documentación del equipo, por ejemplo `redfish/v1/Systems/1/Actions/ComputerSystem.Reset`. Un comando sin ruta no se pone nunca en el dispositivo. |
| **Admite** | El nombre del único valor que toma el comando, tal y como lo nombra el equipo (`ResetType`), o vacío para un comando que no toma nada. |
| **Ofrecido** | Si el comando se ofrece siquiera. Un comando apagado ni se crea en el dispositivo ni se envía, que es la forma de aparcar uno sin perder lo que direcciona. |
| **Valor** | Lo que envía esta pulsación, para un comando que toma un valor. Pertenece a la pulsación, no al dispositivo, así que no se guarda nunca. |

El grupo final lleva los dos verbos que actúan solo sobre esa fila: **Ejecutar**, que lo envía e informa de lo que contestó el equipo ("'Reset' respondió: accepted"), y **Eliminar**. Ejecutar dice por qué se rechaza en lugar de desaparecer: un comando sin ruta ("Este comando todavía no tiene ruta, así que no hay nada que enviar."), uno que está apagado, uno que aún espera a guardarse en la configuración en ejecución, un dispositivo que no está conectado, y el propio límite de ingeniería o de ensayo de la estación. Los demás controladores no llevan la tarjeta en absoluto: un punto de recarga también admite comandos, pero los suyos los fija el protocolo y vienen del controlador, no de lo que se escriba aquí, y un nodo Matter no admite ninguno, porque todo cambio en él es una escritura en uno de sus tags.

Disparar es una escritura en el equipo, así que Ejecutar pasa por el mismo embudo que la escritura manual de un tag: el comando espera su turno detrás de lo que la estación ya está haciendo, llega al equipo por el mismo camino que toma una llamada de un sistema de fuera, y la pulsación queda registrada con lo que se pidió, en qué dispositivo y qué contestó. Mientras la estación ha dejado de admitir trabajo, la pulsación se contesta en lugar de quedarse muda: "La estación no admite comandos en este momento." Un Connector que no está en ejecución contesta "Connector no está en ejecución, así que no se puede enviar nada al equipo.", y un rechazo del propio equipo se traslada con sus mismas palabras. Un comando que Connector no pudo ejecutar dice lo que encontró en el idioma de la estación, como lo dice la línea roja de un dispositivo: "El dispositivo no está conectado, así que no se le envió nada." para un dispositivo que se cayó, el dispositivo que no respondió a tiempo, una solicitud que la red rechazó o el controlador que falló; el diario técnico conserva la línea técnica.

## La tarjeta Tags {#the-tags-card}

La tarjeta se encabeza con **Tags**, luego "Formato de dirección · `<pista>`", que dice cómo direcciona un tag este controlador ("Nombre de tag libre (p. ej. sim/temperature).", "Número de registro + cantidad (campos tipados).", "ID de nodo, p. ej. ns=2;s=Temperature."), y, para Configurar Connector, la instrucción "Marque filas y después edite una celda para aplicarla a todas. Las marcas se borran cuando se aplica." y el botón **Añadir tag**. Añadir tag crea "Tag nº 5" (numerado a partir del recuento) como Float, o el primer tipo que admita el controlador, de Solo lectura. El tag no se abre: aparece resaltado en la rejilla, dentro del grupo de su tipo y desplazado hasta quedar a la vista, donde sus campos se editan en la fila, y su **Abrir** lleva a su página. El registro de acciones dice "Se añadió un tag a 'Furnace'." o, cuando al tag nuevo todavía le falta algo, "Se añadió un tag a 'Furnace'. Rellene sus datos en su fila." En el menú Nuevo… de la columna, la entrada de un dispositivo ofrece **Nuevo tag**, y el menú del clic derecho del dispositivo **Añadir tag**: los dos llevan la pantalla a la página del dispositivo y hacen lo mismo. Junto al botón Añadir tag, donde el controlador del dispositivo puede leer los puntos de un solo dispositivo, está **Descubrir tags**: explora el dispositivo en busca de los valores que publica y ofrece los que todavía no tienen tag (vea [Descubrir los tags de un dispositivo](connector-discovery#discovering-a-devices-tags)).

### La rejilla {#the-grid}

Las filas se agrupan por tipo de dato, en este orden: **Numérico**, **Booleano**, **Texto y otros**, cada grupo encabezado con su recuento. Las columnas siguen el orden de las tarjetas de la página del tag; una celda que no procede en una fila (un campo numérico en un tag booleano) se dibuja vacía y deshabilitada.

| Columna | Grupo | Qué edita |
| --- | --- | --- |
| marca | | Selecciona la fila para una edición masiva. Se dibuja solo con Configurar Connector. |
| **Nombre** | Datos generales | El nombre del tag, con la misma vista previa de cambio de nombre y la misma reescritura de referencias que la página. Nunca se replica. Un tag con un error propio lleva el marcador rojo del árbol detrás del nombre, con el motivo como información emergente. |
| **Tipo** | Datos generales | El tipo de dato; cambiarlo ajusta el tipo de señal de la fila, la clase de registro Modbus, la acción de límite y la política de NaN, como se describe en [Tags](connector-tags#the-general-card). |
| **Acceso** | Datos generales | Solo lectura, Solo escritura, Lectura y escritura (únicamente Solo lectura en OCPP y LoRaWAN). |
| **Unidad** | Datos generales | La unidad de ingeniería. |
| **Sondeo (ms)** | Datos generales | La invalidación por tag; 0 significa el valor por defecto del dispositivo. Oculta en los controladores de ritmo fijo y de datos empujados. |
| **Dirección** | Fuente | La dirección de texto libre, en los controladores que toman una. Nunca se replica. |
| **Señal** | Fuente | El tipo de señal simulada, con un dibujo de la forma al lado de cada nombre. Solo en dispositivos Simulated. |
| **Bruto** | Fuente | La última lectura bruta, de solo lectura. |
| **Escala ×**, **Escala +**, **Escalado** | Conversión | El factor y el desplazamiento de la etapa Escala, y su resultado. |
| **Calib. act.**, **Calib. ×**, **Calib. +**, **Calibrado** | Conversión | La etapa Calibración: su conmutador, su factor y su desplazamiento, y su resultado. |
| **Límites act.**, **Mín**, **Máx**, **Límite**, **Limitado** | Conversión | La etapa Límites: su conmutador, sus cotas, su acción y su resultado. |
| **Decim. act.**, **Decim.** | Conversión | La etapa Decimales: su conmutador y sus posiciones, de 0 a 15. |
| **Invertir** | Conversión | La negación booleana. |
| **Inicio subcad.**, **Long. subcad.** | Conversión | La ventana de subcadena de String. |
| **Valor** | Valor en vivo | El valor de ingeniería, de solo lectura. |
| acciones | | **Abrir**; y luego, con Configurar Connector, **Habilitar**, **Deshabilitar** y **Eliminar**, esta última con una confirmación. |

Los tres conmutadores de etapa son columnas como los campos que gobiernan, y se editan en masa con ellos: marcar filas, escribir los coeficientes y encender la etapa cambia lo que leen esas filas en la misma edición, sin abrir cada punto. Lo que la rejilla sigue sin llevar son las políticas de lectura no válida, los asistentes de dos puntos, el campo de escritura y las referencias cruzadas: eso está en la página del tag. Un rol que solo calibra lee la rejilla pero no edita nada en ella, incluidas las celdas de Calib. y el conmutador Calib. act.; sus ediciones de calibración pasan por la página del tag.

### La edición masiva {#mass-edit}

Marque las filas que quiera cambiar y luego edite una celda de cualquier fila: el valor nuevo se aplica a esa fila y a todas las filas marcadas, y las marcas se gastan. Mientras hay filas marcadas, una tira encima de la rejilla dice "3 filas seleccionadas. Editar una celda la aplica a todas ellas y borra las marcas." con un botón **Borrar la selección**. Las marcas pertenecen al dispositivo: al volver a él más tarde están borradas. Tres reglas mantienen honrada una selección mezclada: el nombre y la dirección no se replican nunca; la celda de tipo de dato ajusta los campos dependientes de cada fila según aterriza; y un valor que una fila no puede tomar se rechaza para esa fila y se deja como estaba, que es como una fila String sobrevive a que le den un tipo de señal numérica, y una fila de enteros a una acción de límite NaN.

## Copiar el dispositivo {#copy-device}

Copiar el dispositivo crea un dispositivo propio a partir del seleccionado: los mismos campos de conexión y las mismas credenciales, y todos los tags clonados bajo una identidad nueva con toda su cadena de conversión, su estado de habilitación y su intervalo de sondeo. La copia toma el nombre del origen mientras esté libre en el controlador, luego "Furnace (2)", "Furnace (3)", y aterriza en el nivel propio del controlador esté el origen en la carpeta que esté; una copia Modbus RTU se queda en la misma línea bajo el siguiente ID de unidad libre, una copia en una línea del controlador Generic serial and TCP o del controlador SCPI instruments se queda en esa línea, y una copia MQTT en el mismo bróker, la Sparkplug B con su ID más interno numerado de la misma manera ("Press1 (2)") para que dos dispositivos del bróker nunca nombren una misma identidad. La copia no se abre: la pantalla va a la página que la lista (el controlador, la línea o el bróker), con la copia resaltada en su tabla Dispositivos y desplazada hasta quedar a la vista, el original a su lado: "Se copió 'Furnace' en 'Furnace (2)'. Abra la copia para editarla." Una copia Omron en una línea se queda en esa línea con el siguiente número de unidad libre.

## Duplicados y choques {#duplicates-and-collisions}

Los nombres de dispositivo son únicos dentro de un controlador, sin distinguir mayúsculas: los verbos de creación se apartan con un sufijo numérico, y un cambio de nombre hacia un nombre ocupado se rechaza al confirmarlo. Dos dispositivos habilitados bajo un mismo controlador cuyos nombres se normalizan al mismo segmento técnico (`Line A` y `Line-A`) quedan los dos fuera del sondeo en vez de ganar uno, y sus tags no leen nada hasta que uno se renombra o se deshabilita. La identidad técnica está limitada a 128 caracteres: "La identidad técnica del dispositivo no puede superar los 128 caracteres." Dos dispositivos Modbus TCP pueden compartir host y puerto con ID de unidad distintos y compartir entonces la cadencia de transacciones del endpoint. Dos dispositivos Matter pueden nombrar el mismo id de nodo: el descubrimiento ofrece abrir el que ya existe, pero no prohíbe el segundo. Dos dispositivos NI-DAQmx pueden leer del mismo modo el mismo dispositivo de NI MAX, por ejemplo un módulo con dos intervalos de sondeo.

## Lo que la página del dispositivo no hace {#what-the-device-page-does-not-do}

El controlador no se puede cambiar, la carpeta no se edita aquí, y ni la línea de un dispositivo de línea serie ni el bróker de un dispositivo MQTT se pueden reasignar; un dispositivo del controlador Generic serial and TCP cambia entre TCP y UDP, y uno del controlador SCPI instruments entre TCP y VISA, nunca entre una línea y la red. Habilitar un dispositivo no habilita sus tags, y deshabilitar un dispositivo no cambia los de ellos. No hay importación ni exportación por dispositivo, ni más prueba de conexión que habilitar el dispositivo y leer su estado de salud y su último error. Un dispositivo Omron cambia entre UDP y TCP, nunca entre una línea y la red.
