Skip to content

Pestaña: Dispositivos

Gestión de dispositivos

En la pestaña Dispositivos podemos configurar los dispositivos y sus variables:

Lista de dispositivos

Los dispositivos son un modo de agrupar variables y pueden o no corresponder a un dispositivo físico real o a una agrupación lógica de variables.

En la tabla podemos ver todos los dispositivos configurados, la instancia a la que pertenecen y cuántas variables tienen.

Estados de los dispositivos

El estado se muestra en la cabecera de cada fila en la tabla.

Si se activa el control de "Alertas de estado" para un dispositivo, adquio generará una alerta cuándo un dispositivo salga del estado Funcionamiento normal. Vea la sección Alertas automáticas para más información.

Los dispositivos tienen cautro estados:

  • Círculo gris  Detenido.
  • Círculo amarillo  Inicializando: estado inicial mientras se establece comunicación con el dispositivo.
  • Círculo verde  Funcionamiento normal.
  • Círculo rojo  Fuera de servicio: no se puede consultar el dispositivo/variable porque no está disponible o porque no está correctamente configurado.

Edición de dispositivo

Lista de dispositivos

Identificación del dispositivo

Esta sección es común a todos tipos de dispositivos. Los campos que contiene son:

  • Activo: Si se desactiva, nunca se iniciará el dispositivo.
  • Tipo: el tipo de protocolo. Este valor determinará las propiedades a cubrir del dispositivo/variables.
  • Código: identificador dispositivo. Debe ser único.
  • Nombre: nombre del dispositivo
  • Descripción: descripción larga del dispositivo
  • Datos extra: pares nombre-valor para almacenar datos del dispositivo únicamente de carácter informativo, como el número de serie, localización, ...
  • Intervalo de encuesta: tiempo de encuesta por defecto para las variable de este dispositivo. El valor se puede sobreescribir para variables individuales.

Datos de conexión

Los parámetros de esta sección son dependientes del tipo de módulo.

  • Módulo: selector de la instancia de módulo a la que pertenece este dispositivo. Solo se permiten seleccionar las instancias del mismo tipo de protocolo que el dispositivo configurado.
  • Variables lectura múltiple: (BACnet) número máximo de variables encuestadas en una única petición de lectura.
  • Instancia de dispositivo: (BACnet) identificador BACnet del dispositivo encuestado.
  • MAC BACnet: (BACnet IP) la MAC de BACnet identifica la dirección del dispositivo físicamente en la red. Aunque tiene el mismo formato, no es lo mismo que la MAC de Ethernet. Se puede calcular por la ip y el puerto donde el dispositivo está accesible por el protocolo BACnet de la siguiente forma: 4 pares de bytes identifican los 4 pares de bytes de la IP + 2 pares de bytes que identifican el puerto de red, representados en hexadecimal. Ejemplo:
  • 192.168.0.100:47808 -> C0:A8:00:64:BA:C0, siendo 192 = 0xC0, 168 = 0xA8, 100 = 0x64, 47808 = 0xBAC0.

  • Esclavo Modbus: (Modbus) identificador único del dispositivo en el bus.

  • Offset de dirección: (Modbus) dirección base de las variables en el dispositivo, se le sumará a la dirección de variable. Especialmente útil para casos en los que el dispositivo Modbus consultado contiene los datos de múltiples dispositivos reales (por ejemplo, una pasarela de climatización que maneja varias máquinas). En ese caso podemos configurar varios dispositivos exactamente con la misma configuración de variable solo cambiando el offset del dispositivo.
  • Timeout: (Modbus) tiempo de espera antes de dar por fallida la comunicación.
  • Tamaño máximo de petición: (Modbus) número máximo de direcciones de memoria a leer en una única petición. El valor debe ser menor o igual al soportado por el dispositivo.

Variables

Adquio soporta 2 tipos de variables:

  • Variables: son variables existentes en el dispositivo que se leen/escriben por el protocol, por lo tanto parte de los parámetros que tenemos que configurar son dependientes del protocolo.
  • Variables virtuales: son variables en memoria que no existen en el dispositivo pero que pueden resultarnos útiles para almacenar valores que podemos utilizar en la programación

Los parámetros de configuración de variables son:

  • Código: identificador único de la variable en el dispositivo.
  • Nombre: nombre de la variable.
  • Descripción: descripción larga de la variable.
  • Tipo: indica qué representa la variable: temperatura, potencia, humedad, ...
  • Tipo de valor: indica la forma de representación interna de la variable: entero de 32 bits, decimal de 32 bits, ...
  • Unidades: indica la unidad de la medida: fahrenheit, hercios, amperios, ...
  • Soporta escritura: indica si la variable es escribible.
  • Soporta lectura: indica si la variable puede leerse en tiempo real.
  • Intervalo de lectura: tiempo de encuesta de la variable, se va a leer pasado este tiempo.
  • Valor mínimo: valor mínimo admisible en las escrituras de la variable.
  • Valor máximo: valor máximo admisible en las escrituras de la variable.
  • Corrección de valor: valor que se suma al valor leído en el dispositivo. Por ejemplo: corrección de error en un sensor de temperatura.
  • Valores NULL: lista de valores que la variable toma cuando está fuera de rango o no disponible. Si el valor coincide con uno de la lista, se pasa la variable a fuera de servicio. Por ejemplo, un termostato que no detecta sensor de temperatura externo puede devolver como valor 65535.
  • Datos extra: pares nombre-valor para almacenar datos de la variable únicamente de carácter informativo, como el número de serie, localización, ...
  • Objecto BACnet: (BACnet) indica el objeto de la variable en BACnet. Tipos existentes: 'analog-input', 'analog-output', 'analog-value', 'binary-input', 'binary-output' y 'binary-value'.
  • Instancia objeto BACnet: (BACnet) índice a encuestar para el objeto indicado.
  • ID BACnet: (BACnet) propiedad del objeto a encuestaras. Posibles valores: 'present-value', 'out-of-service'.
  • Application TAG BACnet: (BACnet) indica el tipo de dato a utilizar en las escrituras. Posibles valores: 'Null', 'Boolean', 'Unsigned Int', 'Signed Int', 'Real', 'Double' y 'Enumerated'.
  • Memoria Modbus: (Modbus) indica la zona de memoria donde se encuentra la variable. Posibles valores: 'coil', 'discrete_input', 'holding_register' y 'input_register'.
  • Dirección Modbus: (Modbus) dirección de Modbus donde empieza la variable. El formato es: <dirección>.<bit en dirección>. El bit solo debe indicarse en variables bool, uint8 o int8. Puede especificarse en hexadecimal iniciando el valor con 0x. Ejemplos de valores: 2, 0x20, 2.13, 0x0f.b, ...
  • Máscara: (Modbus) aplica la máscara al valor leído por Modbus en holding_register o input_register y desplaza a la derecha el valor tantos bits como ceros a la derecha de la máscara. Se utiliza cuando una variable corresponde solo a un conjunto de bits dentro de la dirección. Note que, cuando se configurada una máscara, la función Modbus de escritura utilizada para la variable es la función 22 (0x16) (ver parámetro Escritura registro completo). Ejemplo:
    • Máscara: 0x0FF0
    • Valor leído por Modbus: 0x1234
    • Valor devuelto: 0x0023 (= (0x1234 & 0x0FF0) >> 8)
  • Escritura registro completo: (Modbus) se utiliza en las escrituras cuando se configura una máscara. Si se activa, en vez de escribir usando la función de Modbus 22 (0x16), se realiza una lectura del registro (función 3) e inmediatamente se escribe el registro completo actualizado (función 6). Esta configuración se debe activar si el dispositivo no soporta la función 22.
  • Mapeos: en variables numéricas enumeradas define a qué corresponde cada valor numérico.

Mapeos de variables

  • Conversores: los conversores permiten hacer conversiones de tipo de dato o de valor de la variable directamente al leer/escribir para estandarizar y unificar las representaciones de las variables de los distintos dispositivos.
  • sum (parámetro): suma el valor indicado al valor de la variable.
  • divide (parámetro): divide la variable por el valor indicado.
  • multiply (parámetro): multiplica la variable por el valor indicado.
  • round (parámetro): redondea el valor con los decimales indicados.
  • celsius_to_fahrenheit: de celsius a fahrenheit
  • fahrenheit_to_celsius: de fahrenheit a celsius
  • nullif (parámetro): si el valor de la variable coincide con el especificado se toma como nulo (fuera de servicio).
  • cast: convierte el tipo de dato del valor. Tienes dos parámetros (tipo de origen y tipo de destino)
  • cdab32, int32cdab: (Modbus) cambia el orden de los bytes.
  • badc32, float32badc: (Modbus) cambia el orden de los bytes.
  • dcba64, int64dcba, float64dcba: (Modbus) cambia el orden en bloques de 2 bytes.
  • invert16: (Modbus) invierte el orden en bloques de 2 bytes.
  • swap16: (Modbus) invierte el orden de los bytes en cada bloque de 2 bytes.
  • eq (parámetro): si el valor de la variable coincide con el valor indicado, se convierte a 1, si no a 0.
  • ne (parámetro): si el valor de la variable coincide con el valor indicado, se convierte a 0, si no a 1.
  • lt (parámetro): si el valor de la variable es menor que el valor indicado, se convierte a 1, si no a 0.
  • le (parámetro): si el valor de la variable es menor o igual que el valor indicado, se convierte a 1, si no a 0.
  • gt (parámetro): si el valor de la variable es mayor que con el valor indicado, se convierte a 1, si no a 0.
  • ge (parámetro): si el valor de la variable es mayor o igual que el valor indicado, se convierte a 1, si no a 0.
  • shift (parámetro): desplazamiento de bits a la derecha de la variable.

Mapeos de variables

  • Los conversores se aplican secuencialmente en el orden en que se muestran en la tabla cuando se hace una lectura del valor al dispositivo. Cuando se hace una escritura se aplican en orden inverso.
  • El campo Tipo de dato en 'adquio' es el tipo de dato que tiene la variable en adquio, no se puede cambiar desde esta pantalla. El campo Tipo de dato en el protocolo es el tipo de dato que tiene la variable en el dispositivo real, el sistema lo calcula según el tipo de dato en adquio y los conversores en orden inverso.
  • En el ejemplo de la imagen es un caso típico de variable Modbus que almacena el valor multiplicado por 100 en 1 registro Modbus (16 bits). Lo primero que se hace es convertir el valor a tipo decimal (float64) y luego se divide entre 100. Una división directa sobre un campo int16 truncaría los decimales.

Los parámetros de configuración de las variables virtuales son:

  • Persistente: el valor de la variable se guarda en la memoria persistente, así que mantiene el valor en los reinicios.
  • Valor por defecto: valor que toma la variable al inicio.
  • Autoincremental: provoca que la variable se incremente 1 unidad cada vez que se encuesta (realmente no se encuesta, ya que no se encuentra en ningún otro sitio).

Edición del JSON (modo avanzado)

Si se activa la edición JSON se puede editar a bajo nivel en su representación JSON.

Además de para editar de forma más avanzada los dispositivos, esta opción puede servir para hacer copias de la configuración para crear un dispositivo igual en la misma o en otra adquio.

Los cambios en el texto se interpretan e intentan refrescar en el formulario siempre que sean válidos. Los cambios en el formulario también se transmutan en la representación JSON en tiempo real.