Comando NT
El comando NT (Numeric counTer) permite gestionar 32 contadores aritméticos (acumuladores) que pueden incrementarse, decrementarse y generar disparos al alcanzar límites.
¿Para qué sirve?
- 🔢 Contar eventos (activaciones de entradas, reportes enviados, etc.)
- 🎯 Disparar acciones al alcanzar un valor específico
- 📊 Acumular valores para estadísticas
- ⚡ Crear lógica condicional basada en conteos
Tipos de Contadores
| Índice | Tipo | Persistencia |
|---|---|---|
00-15 | Volátiles | Se pierden al reiniciar |
16-31 | No volátiles | Se mantienen tras reset |
Usa contadores 16-31 para valores que deban persistir (ej: conteo de mantenimientos).
Sintaxis
Operaciones disponibles
| Operación | Comando | Descripción |
|---|---|---|
| Configurar | SNTaabbbbb | Define el máximo del contador |
| Consultar | QNTaa | Lee el valor actual |
| Incrementar | SNTaa+n | Suma n al contador |
| Decrementar | SNTaa-n | Resta n al contador |
| Reiniciar | SNTaaR | Pone el contador a 0 |
| Maximizar | SNTaaS | Pone el contador al máximo |
Respuesta
RNTaabbbbbcccccParámetros
| Parámetro | Descripción | Rango |
|---|---|---|
aa | Índice del contador | 00-31 |
bbbbb | Valor máximo configurado | 00000-65535 |
ccccc | Valor actual del contador | 00000-65535 |
n | Valor a incrementar/decrementar | 1-65535 |
Señal NT (Disparador)
El contador genera un disparo en la señal NT cuando:
| Condición | Disparo | Comportamiento |
|---|---|---|
| Incremento supera máximo | NT+ | El contador hace “wrap-around” |
| Decremento baja de cero | NT- | El contador vuelve desde el máximo |
Fórmulas matemáticas:
- Incremento:
(valor + incremento) Mod (máximo + 1) - Decremento:
((valor - decremento) Mod (máximo + 1)) + (máximo + 1)
Ejemplos
Configuración básica
>SNT0200299< // Configura contador 02 con máximo 299
>SNT02+30< // Incrementa 30 → valor = 30
>SNT02-15< // Decrementa 15 → valor = 15
>QNT02< // Consulta: RNT020029900015Contar activaciones de entrada
// Configurar contador 05 con máximo 100
>SNT0500100<
// Incrementar cada vez que se activa IN00
>SRL00E;TRG=IN00+;ACC={SNT05+1}<
// Disparar alerta al llegar a 100
>SRL01E;TRG=NT05+;ACC={GCP00H}<Contador de viajes (no volátil)
// Usar contador 20 (persistente) para contar viajes
>SNT2099999<
// Incrementar al encender ignición
>SRL10E;TRG=IN07+;ACC={SNT20+1}<Demo Completa
>SNT0300299< // Configura contador 03, máximo 299
// RNT030029900000
>SRL00E;TRG=NT03+;ACC={STX DISPARO}< // Regla: mostrar cuando dispara
// RRL00E;TRG=NT03+;ACC={STX DISPARO}
>QNT03< // Consulta: valor = 0
// RNT030029900000
>SNT03+1< // Incrementa → valor = 1
// RNT030029900001
>SNT03+100< // Incrementa → valor = 101
// RNT030029900101
>SNT03+200< // Supera 299 → dispara NT03+
// RNT030029900001 // Valor = (101+200) mod 300 = 1
// RTX DISPARO // ¡Disparo ejecutado!
>SNT03-7< // Decrementa → baja de 0 → dispara
// RNT030029900294 // Valor = 294
// RTX DISPARO // ¡Disparo ejecutado!
>SNT03S< // Poner en máximo
// RNT030029900299 // Valor = 299
>SNT03R< // Reiniciar a cero
// RNT030029900000 // Valor = 0Compatibilidad
💾Firmware:v1.00.00
SP-IOT
SM-IOT
Last updated on