El parámetro es una propiedad obligatoria del sensor. Los sensores en el sistema funcionan principalmente basándose en los datos de parámetros.
Los parámetros pueden tener denominaciones muy diversas que están predefinidas en la configuración del dispositivo. Pueden ser, por ejemplo, param199, param240, TEMP, pwr_int, gsm, can6 y otros. Para conocer qué parametros se utilizan y qué significan estos parámetros, consulte la especificación del dispositivo. También se puede solicitar mensajes de la unidad en la pestaña Mensajes y revisar los parámetros disponibles en la columna correspondiente.
Al crear o modificar un sensor hace falta elegir su parámetro en la lista desplegable o introducir el nombre del parámetro manualmente.
El mismo parámetro puede utilizarse para crear cualquier cantidad de sensores. Se puede ver el número máximo permitido de sensores en la pestaña Cuenta de los parámetros del usuario.
Parámetros virtuales
Algunos parámetros están determinados en el sistema por defecto y convienen para casi todos los tipos de dispositivos:
speed | velocidad de movimiento |
---|---|
altitude | altitud sobre el nivel del mar |
sats | cantidad de satélites |
course | curso (dirección de movimiento) |
lat | latitud geográfica |
lon | longitud geográfica |
time | tiempo Unix del mensaje |
regtime | el tiempo de registrar mensajes en el servidor |
Es posible que algunos tipos de dispositivos raros no soporten algunos de estos parámetros, por ejemplo, altitud o velocidad.
Parámetros de entradas y salidas
El sistema soporta 32 entradas y salidas digitales. El formato de ajustarlos es el siguiente:
inN | parámetro de entrada digital; N es el número de la entrada |
---|---|
outN | parámetro de salida digital; N es el número de la salida |
adcN | parámetro de entrada análoga; N es el número de la entrada |
Por ejemplo, adc8 es el parámetro que fija el valor de la octava entrada análoga.
Los datos de las entradas/salidas digitales suelen mostrarse en mensajes en el siguiente formato: I/O = 0/0, donde I es la entrada (input), O es la salida (output). Si I/O = 0/0, todos los bits (entradas/salidas) no están activadas. El hecho de no ser 0 algo de esto quiere decir, que una entrada (I) o salida (O) está activada. Para saber cuál precisamente, hace falta transformar el valor hexadecimal en el binario y determinar el número de bit a base de este último.
Supongamos, que en el lugar de encenderse la ignición hemos recibido un mensaje con el parámetro I/O = 10/0. Para obtener de aquí el número de bit (entrada) en que se muestre el valor del sensor, hace falta introducir el valor recibido en la calculadora en el modo de valores hexadecimales (HEX). Es decir, introducir 10 y cambiar el modo por él de modo binario (BIN). Obtendremos nuevo número — 10000. Ahora hay que calcular en qué posición ha aparecido 1. El cálculo se realiza de derecha a izquierda. En el caso dado 1 está en la posición 5, es decir, el sensor de ignición está conectado al quinto puerto. Ya que el número cambiado está antes de la fracción (I/O), se trata de la entrada. Consecutivamente, el nombre del parámetro es in5 (entrada digital 5).
Para un sensor también se puede indicar el parámetro en forma in u out para designar la suma de todas las entradas o salidas, respectivamente.
Parámetro constante
Se puede crear un sensor virtual a base de un parámetro del tipo constN, donde N es un número cualquiera. El sensor creado según este parámetro siempre devuelve N. Por ejemplo, const10, const-8.5.
Un sensor así puede utilizarse por separado (es cómodo en gráficas para marcar una línea crítica) o para crear sensores virtuales por medio del sistema de validación o en expresiones.
Expresiones
Mientras configurar un sensor se puede ajustar su parámetro en forma de una expresión. En esta expresión pueden utilizarse:
parámetros del mensaje actual (adc1, in1, etc.);
parámetros del mensaje anterior (antes de los parámetros hay que poner el signo #, por ejemplo, #adc1);
control del parámetro bit a bit (param199:3, etc.);
nombres de sensores (hay que escribirlos entre corchetes, por ejemplo, [Nivel de combustible]);
números constantes (const10, const-4.54, etc.);
signos de operaciones aritméticas:
+ | adición |
---|---|
− | resta |
∗ | multiplicación |
/ | división |
^ | exponenciación |
( ) | paréntesis de prioridad |
| | comprobación de disponibilidad de valor |
: | operación de conversión |
Por ejemplo, ^const2 — cuadrar, ^const0.5 — calcular la raíz cuadrada.
Si uno de los parámetros que incluye la expresión no es válido, su valor total tampoco es válido.
Los parámetros del mensaje anterior no están disponibles para el sensor Modo privado y su validador, en las notificaciones, en las descripciones emergentes de las gráficas y durante la retransmisión de sensores.
Por medio de expresiones se puede crear sensores muy diversos que correspondan a cualesquiera necesidades y tareas.
Ejemplo 1: creación de un sensor de velocidad según coordenadas
El parámetro de un sensor de velocidad según coordenadas puede ser así:
((lat-#lat)||const2+(lon-#lon)||const2)||const0.5/(time-#time)*const200000
Decodificación:
La velocidad se calcula utilizando la formula distancia dividida en tiempo. Para calcular la distancia se emplea el teorema de Pitágoras: se toma la raíz cuadrada de la suma de la diferencia cuadrada de latitudes de los mensajes vecinos más diferencia cuadrada de longitud de los mensajes vecinos. De esta manera se obtiene la distancia (en grados). Este valor se divide por la diferencia de tiempo de los mensajes vecinos. Así obtenemos velocidad en grados por segundo. Para convertirlos en kilómetros por hora hay que aplicar el coeficiente que se utiliza para convertir grados en kilómetros en diferentes latitudes. Puede variar dependiendo de la posición geográfica. En el ejemplo de arriba está utilizado el coeficiente para Moscú equivalente a 200000.
Para calcular el coeficiente, se utiliza la siguiente fórmula:
111321*cos(55.75583)/1000*3600=225513.52
donde 111 321 es el largo del arco del paralelo en 1 grado de longitud en el ecuador, m;
55.75583 es latitud de Moscú en formato decimal.
Si quiere calcular el coeficiente para otro lugar, inserte su latitud en formato decimal en la fórmula, sin cambiar otros valores.
Si hay también sensor de ignición, el parámetro puede ser así:
((lat-#lat)||const2+(lon-#lon)||const2)||const0.5/(time-#time)*const200000*[Nombre del sensor de ignición]
Tal sensor puede utilizarse solo en los informes (no en las notificaciones en línea) porque requiere los parámetros del mensaje anterior.
Ejemplo 2: sensor de horas de motor relativas
Para obtener datos sobre las horas de motor reales hay que crear dos sensores:
Sensor de horas de motor relativas;
Sensor de coeficiente de horas de motor de acuerdo con las revoluciones del motor.
Creamos un sensor con el tipo Horas de motor relativas y el parámetro:
(time-#time)*[Nombre del sensor de coeficiente]/const3600
Es decir, el parámetro representa la diferencia temporal entre dos mensajes vecinos multiplicada por el coeficiente de la intensidad del trabajo y dividida en 3600. Es necesario dividir en 3600 para convertir segundos en horas.
El sensor del coeficiente que determine la intensidad del trabajo del implemento según las revoluciones del motor se crea según el siguiente esquema:
Se crea el sensor que ayudará a calcular el coeficiente de horas de motor:
1 minuto de trabajo con 2000 rpm corresponde a 90 segundos de horas de motor ⇒ el coeficiente es 1,5;
1 minuto de trabajo con 1500 rpm corresponde a 60 segundos de horas de motor ⇒ el coeficiente es 1;
1 minuto de trabajo con 1000 rpm corresponde a 40 segundos de horas de motor ⇒ el coeficiente es 0.67;
1 minuto de trabajo con 500 rpm corresponde a 20 segundos de horas de motor ⇒ el coeficiente es 0.33.
Supongamos, el parámetro param1 envía el valor de revoluciones de motor. Entonces, el parámetro del sensor será así:
(param1+#param1)/const2
Es decir, este parámetro es la media aritmética de revoluciones de motor en el intervalo entre dos mensajes vecinos.
Para obtener el coeficiente de revoluciones hay que aplicar la tabla de conversión:
x=500 y=0.33;
x=1000 y=0.67;
x=1500 y=1;
x=2000 y=1.5.
Tales sensores pueden utilizarse en los informes y contadores, pero no en las notificaciones en línea, porque requieren los parámetros del mensaje anterior.
Ejemplo 3: comprobación de disponibilidad de valor
Supongamos, que en un automóvil está instalado un dispositivo que envía algún parámetro (por ejemplo, param1). Este dispositivo se rompe y se instala otro. El dispositivo nuevo envía los mismos datos, pero en otro parámetro (por ejemplo, param2). Para excluir una pérdida de datos mientras generar un informe, hay que utilizar la comprobación de disponibilidad de valor. Digamos, el viejo dispositivo ha trabajado en diciembre y el nuevo — en enero; necesitamos un informe por estos dos meses. Entonces, si mientras introducir los parámetros se ha aplicado la comprobación de disponibilidad de valor (se ha indicado param1|param2 en los parámetros del sensor), el sistema tomará el valor del parámetro param1. Si el valor de param1 no es válido (por ejemplo, falta el dispositivo), se tomará del parámetro param2. Es decir, si se utiliza la comprobación de disponibilidad de valor, el sistema toma en consideración el primer valor válido del parámetro.
param1|param2
No funciona con los sensores digitales.
Parámetros de texto
De ordinario, los datos de parámetros son digitales. Sin embargo, en algunos casos un dispositivo puede enviar un texto en el parámetro. Puede ser, por ejemplo, el nombre de un estado (de servicio/personal), estado (ocupado/libre, enc./apag., etc.), el tiempo pasado desde un evento, etc.
Los sensores con parámetros de texto no requieren configuración de tablas de cálculo. Los datos de texto se muestran en el mismo estado en que han venido.
Los datos textuales pueden mostrarse:
en la pestaña Mensajes;
en el reproductor de recorridos;
durante el seguimiento de recorrido;
en la tabla Seguimiento del sensor en la columna Valor formateado.
Conversión de parámetros
La operación de conversión solo puede aplicarse a los parámetros que llegan directamente del dispositivo. Los casos de su empleo están descritos abajo.
Control de parámetro bit a bit
El control de parámetro bit a bit supone la posibilidad de controlar un bit concreto y no todo el parámetro. Por ejemplo, para controlar el tercer bit del parámetro param199 hay que poner dos puntos después del nombre del parámetro e indicar el número del bit.
param199:3
Conviene hacerlo si el dispositivo muestra gran cantidad de varios datos: por ejemplo, el primer bit muestra el estado de alarma (Activado/Desactivado), el segundo — el estado de la puerta del conductor (Abierta/Cerrada), el tercero — el estado de los faros, etc. De esta manera, por medio del control de un parámetro bit a bit se puede crear unos sensores distintos.
Los parámetros del tipo double durante el control bit a bit se convierten a int (íntegros) y solo después se recobra el bit.
No recomendamos que recurra directamente a un bit superior a 53. En caso de necesidad, se puede utilizar el siguiente esquema:
Crea un sensor en que viene el parámetro necesario. Por ejemplo, Sensor1.
Crea otro sensor. Por ejemplo, Sensor2.
En calidad del parámetro del segundo sensor indique la fórmula [Sensor1]/const4294967296. Así se producirá desplazamiento por 4 bytes a la derecha.
Conversión de parámetros de texto
Si en la fórmula de un sensor hay un parámetro de texto, se convierte en número íntegro de 53 bits. Se puede indicar el sistema de numeración por medio de dos puntos (por defecto se calcula en el sistema decimal). Supongamos, en el parámetro text_param haya venido el valor 100, entonces:
text_param = 100 text_param:10 = 100 text_param:16 = 256 text_param:2 = 4
Determinación del número del día en el año
Para determinar el número del día en el año (en relación con el 1 de enero) hay que indicar d después de dos comas. Por ejemplo, para el 28 de marzo de 2017 a las 11:00:00 (UTC) el tiempo Unix corresponde al valor 1490698800. Por lo tanto,
time = 1490698800 time:d = 87