Protocolos

⌘K
  1. Inicio
  2. Protocolos
  3. Protocolo DTPM
  4. VARIABLES Y GRÁFICOS
  5. PUT_EXT_VARS

PUT_EXT_VARS

Código Hexadecimal 0x70
Descripción Establece valores y/o estados en las variables extendidas del dispositivo. Es fundamental para actualizar marcadores, contadores, textos dinámicos o cronómetros en tiempo real.
Estructura de Datos Cabecera fija (4 Bytes):
1. ID Variable (‘A’-‘Z’) | 2. Tipo de Variable | 3. Color | 4. Operación

Valor (Variable):
Depende de la operación seleccionada (de 1 a 28 Bytes). Nota: A excepción del tipo String, los demás tipos numéricos exigen una longitud fija.
Respuesta esperada ACK

Código Tipo de variable extendida
0x61 Variable numérica.
0x62 Variable alfanumérica.
0x63 Variable de estado.
0x64 Variable BarGraph.
0x65 Variable porcentaje.
0x66 Variable cronómetro.

Código Color
0x00 Color del Script.
0x01 Rojo.
0x02 Verde.
0x03 Ámbar.
0x04 Azul.
0x05 Magenta.
0x06 Cyan.
0x07 Blanco.

Código Operación
0x00 No se modifica el valor.
0x10 Se estipula una cadena de texto (STRING) + NULL.
0x20 Se estipula un número con formato INT32.
0x21 Se estipula un número con formato INT32 y posición decimal.
0x22 Se estipula un número con formato FLOAT32.
0x23 Se estipula un número con formato FLOAT64.
0x24 Se estipula un número en formato STRING. La posición decimal se debe marcar con un punto ‘.’.
0x30 Se suma al valor de la variable actual un número con formato INT32.
0x31 Se suma al valor de la variable actual un número con formato INT32 y posición decimal.
0x32 Se suma al valor de la variable actual un número con formato FLOAT32.
0x33 Se suma al valor de la variable actual un número con formato FLOAT64.
0x34 Se suma al valor de la variable actual un número en formato STRING. La posición decimal se debe marcar con un punto ‘.’.
0x40 Se resta al valor de la variable actual un número con formato INT32.
0x41 Se resta al valor de la variable actual un número con formato INT32 y posición decimal.
0x42 Se resta al valor de la variable actual un número con formato FLOAT32.
0x43 Se resta al valor de la variable actual un número con formato FLOAT64.
0x44 Se resta al valor de la variable actual un número con formato STRING. La posición decimal se debe marcar con un punto ‘.’.
0x50 Se estipula 0 o 1.
0x51 Se alterna de 0 a 1 o viceversa.
0x60 Play: Se activa el cronómetro.
0x61 Pausa: Se congela el cronómetro.
0x62 Stop: Se sitúa el cronómetro en el valor inicial y se congela.
0x63 Reset: Se sitúa el cronómetro en el valor inicial y se activa.
0x64 Edición del valor inicial del cronómetro.
0x65 Edición de la tendencia del cronómetro: creciente o decreciente.

Tipo de información Longitud
Integer 4 Bytes (Little endian)
Integer + posición decimal 5 Bytes (Little endian + decimal point)
Float32 4 Bytes (Little endian)
Float64 8 Bytes (Little endian)
String Entre 1 y 28 Bytes
Boolean 1 Byte

Ejemplo 1: Estipular «1234» a la variable «A» (Integer)
SYN0x16 LEN 0x0F0x00 Longitud
LSB: 0x0F, MSB: 0x00
0x000F (15 bytes en total)
ID0x01 OD0x70 DATA 0x410x610x000x20 0xD20x040x000x00 Cabecera (4 Bytes):
• 0x41: ID Variable (‘A’)
• 0x61: Tipo Numérica
• 0x00: Color Script
• 0x20: Op. INT32

Valor Integer (4 Bytes):
• 0xD2 0x04 0x00 0x00 (Valor 1234)
CHK 0x2E0x02 Checksum
LSB: 0x2E, MSB: 0x02
0x022E

Ejemplo 2: Estipular «56.78» a la variable «B» (Int+Decimal, Azul)
SYN0x16 LEN 0x100x00 Longitud
LSB: 0x10, MSB: 0x00
0x0010 (16 bytes en total)
ID0x01 OD0x70 DATA 0x420x610x040x21 0x2E0x160x000x000x02 Cabecera (4 Bytes):
• 0x42: ID Variable (‘B’)
• 0x61: Tipo Numérica
• 0x04: Color Azul
• 0x21: Op. INT32 + Decimal

Valor (5 Bytes):
• 0x2E 0x16 0x00 0x00 (Valor 5678)
• 0x02 (2 decimales)
CHK 0xA50x01 Checksum
LSB: 0xA5, MSB: 0x01
0x01A5

Ejemplo 3: Estipular «23.14» a la variable «A» (Float32)
SYN0x16 LEN 0x0F0x00 Longitud
LSB: 0x0F, MSB: 0x00
0x000F (15 bytes en total)
ID0x01 OD0x70 DATA 0x410x610x000x22 0xB80x1E0xB90x41 Cabecera (4 Bytes):
• 0x41: ID Variable (‘A’)
• 0x61: Tipo Numérica
• 0x00: Color Script
• 0x22: Op. FLOAT32

Valor Float32 (4 Bytes):
• 0xB8 0x1E 0xB9 0x41 (23.14 en IEEE-754)
CHK 0x2A0x03 Checksum
LSB: 0x2A, MSB: 0x03
0x032A

Ejemplo 4: Estipular «12.34» a la variable «A» (String)
SYN0x16 LEN 0x100x00 Longitud
LSB: 0x10, MSB: 0x00
0x0010 (16 bytes en total)
ID0x01 OD0x70 DATA 0x410x610x000x24 0x310x320x2E0x330x34 Cabecera (4 Bytes):
• 0x41: ID Variable (‘A’)
• 0x61: Tipo Numérica
• 0x00: Color Script
• 0x24: Op. Numérico en STRING

Valor String (5 Bytes):
• ASCII «12.34»
CHK 0x550x02 Checksum
LSB: 0x55, MSB: 0x02
0x0255

Ejemplo 5: Estipular «OPEN» a la variable alfanumérica «C» (String)
SYN0x16 LEN 0x100x00 Longitud
LSB: 0x10, MSB: 0x00
0x0010 (16 bytes en total)
ID0x01 OD0x70 DATA 0x430x620x000x10 0x4F0x500x450x4E0x00 Cabecera (4 Bytes):
• 0x43: ID Variable (‘C’)
• 0x62: Tipo Alfanumérica
• 0x00: Color Script
• 0x10: Op. Cadena STRING + NULL

Valor String (5 Bytes):
• ASCII «OPEN» + 0x00 (NULL)
CHK 0x7E0x02 Checksum
LSB: 0x7E, MSB: 0x02
0x027E

Ejemplo 6: Estipular «1» a la variable de estado «D» (Boolean)
SYN0x16 LEN 0x0C0x00 Longitud
LSB: 0x0C, MSB: 0x00
0x000C (12 bytes en total)
ID0x01 OD0x70 DATA 0x440x630x000x50 0x01 Cabecera (4 Bytes):
• 0x44: ID Variable (‘D’)
• 0x63: Tipo Estado
• 0x00: Color Script
• 0x50: Op. Estipular Boolean

Valor Boolean (1 Byte):
• 0x01 (True)
CHK 0x8B0x01 Checksum
LSB: 0x8B, MSB: 0x01
0x018B