Propiedades de cosa
Las propiedades de cosa se utilizan para describir los puntos de datos relacionados con una cosa. Por ejemplo, supongamos que un cliente tiene una propiedad de nombre y una propiedad de dirección. Un camión puede tener las siguientes propiedades: conductor, capacidad y ubicación.
Las propiedades son una manera simple y eficaz de saber las condiciones actuales de una cosa. Pueden tener las siguientes características:
Estáticas: valores que no cambian, como el fabricante y el número de modelo.
Dinámicas: valores que cambian con el tiempo, como la temperatura.
Se pueden configurar propiedades en función de la estructura de activos, los procesos empresariales y las soluciones que se quieren proporcionar.
Tipos de enlace de propiedades
Al crear una propiedad, se puede seleccionar uno de los siguientes tipos de enlaces:
Ninguno
Una propiedad para una cosa local. Esta es la configuración por defecto.
Enlazado localmente
Permite vincular la propiedad con una propiedad definida en una cosa distinta del servidor de ThingWorx. Esta propiedad se puede definir para que sea de solo lectura y, además, puede recibir un valor de otra propiedad en el servidor. Este tipo de enlazado no suele utilizarse para dispositivos remotos, a menos que se cree un enlace local a una propiedad enlazada de manera remota.
Enlazado remotamente
Cuando un dispositivo remoto se conecta por primera vez a un servidor ThingWorx, el servidor enlaza el dispositivo remoto a su cosa correspondiente. Una vez enlazado el dispositivo remoto, se debe crear un enlace remoto entre cada propiedad definida en dicho dispositivo y la cosa remota que representa el dispositivo en ThingWorx. ThingWorx utiliza este enlace para enviar y recibir actualizaciones de cada valor de propiedad de un dispositivo remoto en una conexión de WebSocket activa.
* 
Si una cosa local y una cosa remota tienen una propiedad con el mismo nombre y otra propiedad está enlazada a la configuración de propiedad remota, la propiedad remota también define el valor de la propiedad local.
* 
Después de cambiar el valor de la propiedad remota en la cosa remota a través de Composer, no se guarda en ThingWorx y el evento DataChange no se activa. Solo la actualización de la propiedad se envía a la periferia.
* 
Para obtener información sobre la configuración de enlaces de propiedad, ya sean locales o remotos, consulte Gestión de enlaces de propiedad.
Detalles de la propiedad
Cada propiedad tiene un nombre, una descripción y un tipo de datos de ThingWorx denominado tipo base en ThingWorx. En función del tipo base, se pueden activar campos adicionales. Un tipo escalar sencillo, como un número o una cadena, permite añadir campos básicos como valor por defecto. Los tipos base más complejos tienen más opciones. Por ejemplo, un tipo base de INFOTABLE incluye la capacidad de definir una definición de datos para describir la estructura de datos de la infotable. Para obtener más información, consulte Tipos base de propiedades.
Un valor de propiedad de cosa consta de tres características: valor, fecha y calidad (VTQ). Se pueden proporcionar o definir automáticamente valores de VTQ, y los estados de calidad aceptable se encuentran en la clase QualityStatus. Siempre que se define o se actualiza una propiedad, se actualizan sus características de VTQ.
Actualización de los valores de propiedad
En general, una propiedad se puede actualizar en Composer definiendo me.PropertyName = value, y la fecha y hora reflejarán la fecha y hora actuales del servidor. Para las actualizaciones históricas, se pueden utilizar los servicios UpdatePropertyValues y UpdatePropertyValuesBatched, que permiten realizar actualizaciones de valores de múltiples propiedades. Los valores de la propiedad no se pueden definir en nulo. Para obtener más información sobre estos servicios, consulte la siguiente tabla.
Opción
Descripción
UpdatePropertyValues
Permite aceptar un parámetro de infotable de valores únicos que consta de múltiples filas.
En cada fila se incluyen el nombre, el valor y la calidad de la propiedad, acompañados por la fecha y hora de actualización.
Los valores de la propiedad no se pueden definir en nulo.
Por defecto, las actualizaciones de valores se realizan para cada propiedad por separado. Para clasificar y agrupar los valores por fecha y hora en lugar de por propiedad, la configuración GroupPropertyValuesByTime se debe definir en verdadero en la sección BasicSettings de platform-settings.json.
Cuando la configuración anterior se define en verdadero, las alertas y los eventos activados por datos de todas las propiedades actualizadas con la misma fecha y hora se lanzan juntos. Como resultado, las suscripciones multievento registradas para algunos o todos estos eventos solo se ejecutarán una vez por fecha y hora, y los eventos coincidentes se pasarán en el parámetro events.
* 
Antes de utilizar el servicio UpdatePropertyValues, asegúrese de que el usuario actual tenga permiso de escritura para la propiedad. En este servicio no se utilizan permisos de usuario del sistema al actualizar los valores de VTQ.
UpdatePropertyValuesBatched
Acepta un único parámetro batches de infotable que consta de múltiples filas.
En cada fila se incluye un lote de valores de propiedades y la fecha y hora de actualización.
El valor del campo batch es una infotable que consta de múltiples filas. En cada fila se incluyen el nombre, el valor y la calidad de la propiedad.
Los valores de la propiedad no se pueden definir en nulo.
Los valores de las propiedades se clasifican y agrupan por marcas de fecha y hora de los lotes, lo que significa que los eventos y las alertas activados por datos de todas las propiedades actualizadas con la misma fecha y hora se lanzan juntos. Como resultado, las suscripciones multievento registradas para algunos o todos estos eventos solo se ejecutarán una vez por fecha y hora, y todos los eventos coincidentes se pasarán en el parámetro events.
* 
Al escribir servicios personalizados, se debe evitar la generación de código que puede modificar simultáneamente la misma propiedad de una entidad dada. Por ejemplo, no incremente ni reduzca simultáneamente un valor de propiedad, ya que puede provocar valores de propiedad imprevisibles. Del mismo modo, el incremento de las propiedades para que actúen como contadores dentro de las suscripciones es un uso incorrecto habitual que provocará inexactitudes.
El evento HistoricalDataLogged se inicia cuando se define un valor de propiedad histórica. Por ejemplo, si la fecha y hora actuales de una propiedad VTQ es 2020-02-04 20:16:20 y se importa un valor histórico con fecha y hora 2019-12-24 19:00:45, el evento se activará. Todas las suscripciones a este evento se ejecutarán según corresponda.
Alertas
Para obtener información sobre alertas, consulte Alertas.
Aspectos de las propiedades
Las propiedades pueden tener la siguiente configuración de aspecto:
Tipo base: se proporciona contexto en torno a los datos almacenados en la propiedad. Para obtener más información, consulte Tipos base de propiedades.
Tiene valor por defecto: permite definir un valor por defecto para la propiedad cuando se inicializa la cosa.
Índice: si se selecciona, la propiedad se almacena y se indexa en el proveedor de persistencia de propiedad de base de datos para mejorar la búsqueda mediante el servicio QueryImplementingThingsOptimized. Consulte Propiedades indexadas para obtener más información.
Solo se deben indexar las propiedades que cambian con poca frecuencia. Las propiedades de datos de telemetría no se deben indexar.
Si se selecciona Índice, se seleccionará automáticamente la configuración Persistir y se desactivará la edición de la configuración Persistir.
Si la configuración Índice se desactiva posteriormente, la opción Persistir permanecerá seleccionada, pero la edición se volverá a activar para que el usuario pueda definirla o anular su selección.
Solo los siguientes tipos base soportan la configuración Índice: STRING, NUMBER, INTEGER, LONG, BOOLEAN, DATETIME, THINGNAME, USERNAME, GROUPNAME, HYPERLINK, IMAGELINK, MASHUPNAME, MENUNAME, DASHBOARDNAME, TEXT, GUID, NOTIFICATIONCONTENTNAME, NOTIFICATIONDEFINITIONNAME, STYLETHEMENAME y THINGGROUPNAME.
Persistir: si se selecciona o se define en true, cada cambio de valor se almacena en la base de datos. Las escrituras de la base de datos de propiedades persistentes se producen de manera asíncrona para evitar bloqueos. Aunque el valor de la propiedad se define inmediatamente, la escritura de la base de datos se produce de manera asíncrona posteriormente. Las siguientes validaciones tienen lugar antes de que se escriba un valor de propiedad persistente en la base de datos:
La cosa debe existir todavía.
La cosa debe tener un ID.
El ID de la cosa y el ID de escritura pendiente deben coincidir.
La cosa todavía debe definir la propiedad con el mismo nombre que la escritura pendiente.
La propiedad definida todavía debe ser persistente.
Las actualizaciones y los reinicios no afectan al procesamiento de la cola.
Solo lectura: si se selecciona o se define en true, los datos son estáticos y no se pueden escribir en tiempo de ejecución. La única manera de cambiar su valor es cambiando el valor por defecto. Esto es útil para los datos de configuración estáticos.
Registro: si se selecciona o se define en true, el valor de la propiedad se registra automáticamente en un flujo de valor cada vez que cambian los datos, en función del tipo de cambio de datos.
* 
Si un evento de cambio de datos no se arranca, la entrada de flujo de valor no se registra, pero se conserva el valor de la propiedad definido. Es posible que las propiedades se puedan definir en una entidad, pero se puede quitar la escritura de flujo de valor correspondiente, debido a que la cola que contiene esas escrituras se está llenando y no se puede vaciar en la base de datos. Esto puede ocurrir si el volumen de escrituras entrantes es mayor que la velocidad de vaciado que tiene configurada la cola. Esto se puede ajustar en platform-settings.json por proveedor de persistencia. La pérdida de conexión entre ThingWorx y la base de datos también puede provocar que la cola realice una copia de seguridad y que no se vacíe de manera eficiente.
Ámbito: permite seleccionar el ámbito de la propiedad.
Información de cambio de datos
Tipo de cambio de datos
La opción de configuración Tipo de cambio de datos permite especificar cuándo un cambio de valor de propiedad desencadena un evento de cambio de datos. Esto es de utilidad cuando se deben iniciar otros procesos en función del valor de la propiedad. A cada suscriptor se le envía una notificación de cambio con una infotable en la que se incluyen los valores anterior y nuevo de la propiedad. Por ejemplo, se puede configurar una suscripción para los cambios realizados en la propiedad DeliverySchedule. Si la programación cambia, se puede avisar al conductor a través de SMS.
Las opciones de Tipo de cambio de datos son las siguientes:
Siempre: se desencadena un evento de cambio de datos cada vez que cambia el valor de la propiedad, independientemente del valor.
Nunca: se desactivan los eventos de cambio de datos para la propiedad. No se activará ningún evento.
Activado: se activa un evento de cambio de datos cuando cambia el valor de la propiedad. Para la mayoría de los tipos base, cualquier cambio desencadenará un evento. Para tipos base más complejos, como infotables, las reglas del evento pueden ser distintas.
Desactivado: se activa un evento de cambio de datos solo cuando el nuevo valor se evalúa como Boolean false.
Valor: para los tipos base numéricos, un evento de cambio de datos solo se activa si el nuevo valor difiere del valor anterior en más de un umbral definido. Para los tipos no numéricos, el evento de cambio se activa siempre que cambia el valor. El registro del valor en un flujo de valor solo se produce si se ha determinado que el valor ha cambiado.
Desfasado
Si se selecciona la casilla Desfasado, la entidad quedará obsoleta. Introduzca el valor de Versión a partir del cual la entidad debe quedar obsoleta, en el formato major.minor.patch. Opcionalmente, añada un comentario.
Información de enlace remoto
En la siguiente tabla se muestran las opciones que están disponibles si la opción Enlace se define en Enlazado remotamente.
Opción
Descripción
Nombre de propiedad remota
Permite especificar el nombre de la propiedad, tal como existe en el servidor Edge.
* 
No es necesario que el nombre de propiedad y el nombre de propiedad de la cosa de periferia enlazada coincidan.
Método de caché
Permite definir cómo el servidor recupera el valor de la propiedad de periferia enlazada. Están disponibles las siguientes opciones:
La opción Leer de la caché del servidor prohíbe solicitudes del servidor al valor de la propiedad de Edge. Solo recupera el valor del servidor. Todas las actualizaciones del valor de la propiedad Edge almenado en caché en el servidor dependen del valor Tipo de cambio de datos de la propiedad Edge y de la velocidad de escaneado (la definición de inserción del valor de la propiedad Edge). Sin la configuración correcta en la propiedad Edge, es posible que el servidor nunca tenga el valor de la propiedad Edge y que solo devuelva el valor por defecto de la propiedad del servidor. Si el valor de Tipo de cambio de datos de la propiedad Edge a la que se va a enlazar es igual a SIEMPRE o VALOR, el tipo de caché será esta configuración por defecto.
La opción Obtener en cada lectura remota permite recuperar el valor de la propiedad Edge del servidor Edge para cada solicitud. No hay ningún almacenamiento en caché con esta opción. Si el valor de Tipo de cambio de datos de la propiedad Edge a la que se va a enlazar es igual a NUNCA, el tipo de caché se define en esta configuración por defecto.
La opción En caché durante un tiempo específico permite controlar la frecuencia de solicitudes a la propiedad Edge. Después de la primera solicitud, el servidor accede a la propiedad Edge para obtener su valor y no realiza otra solicitud a la propiedad Edge durante el número de segundos definido. Se debe tener en cuenta que la propiedad Edge puede actualizar el valor del servidor (mediante inserción) durante ese tiempo.
Intervalo de caché
Permite especificar la duración (en segundos) durante el que el servidor almacena en caché el valor de la propiedad de periferia antes de que una solicitud lo recupere de la periferia. El valor siempre se recupera del servidor Edge en la primera solicitud.
Tipo de inicio
Permite determinar el valor utilizado para inicializar una propiedad enlazada de forma remota cuando se inicia o reinicia su cosa. Este valor inicializado no activa un evento de cambio de propiedad.
Utilizar valor por defecto: permite definir el valor inicial de la propiedad en el valor por defecto especificado, a pesar del valor del lado del servidor Edge. Si la propiedad se almacena, el valor inicial se definirá en el último valor almacenado en la base de datos.
Leer valor del servidor Edge: permite consultar el valor actual del servidor Edge, de modo que el valor del servidor esté siempre sincronizado con el valor del servidor Edge, incluso si la cosa se reinicia en el servidor.
Tipo de inserción
Se aplica solo a propiedades de cosa mejorada del servidor Edge. Estos componentes pueden insertar sus cambios de valor en el servidor. Esta capacidad se puede configurar mediante el enlace de propiedades del servidor.
Inserción basada en cambio de valor: se puede configurar un umbral de cambio de valor. Al utilizar esta configuración, también se puede definir el valor de Umbral de inserción, que es una banda muerta que se debe superar antes de que un nuevo valor se inserte en el servidor desde el servidor Edge.
Nunca se inserta
Se inserta siempre
Umbral de inserción
Está disponible cuando Tipo de inserción se define en Inserción basada en cambio de valor. Permite especificar el rango (más o menos) alrededor del valor de la propiedad Edge para que se produzca la inserción del valor de la propiedad. El valor de la propiedad debe cambiar en más que el valor especificado.
Cuando se desconecta
Permite especificar cómo se debe controlar el enlace del valor de la propiedad remota si la conexión a la cosa remota se pierde temporalmente.
Desestimar valores que cambian durante la desconexión.
Reunir todos los cambios en un único valor de última modificación: permite enviar el último valor cambiado cuando se restablece la conexión.
* 
Si Cuando se desconecta se configura a través de un servicio para definir Reunir todos los cambios en un único valor de última modificación, definafoldType: FOLD.
Si Cuando se desconecta se configura mediante un servicio para definir Desestimar valores que cambian, se debe definir foldType: NONE.
Tiempo de espera
Permite especificar el tiempo de espera que se utiliza para las llamadas a cosas remotas durante una lectura o escritura de propiedades.
Utilizar valor por defecto del sistema: el valor por defecto es 30 segundos.
Tiempo de espera personalizado. Añádalo a Intervalo de tiempo de espera (s).
Vínculos relacionados
¿Fue esto útil?