Comando NT
O comando NT (Numeric counTer) permite gerenciar 32 contadores aritméticos (acumuladores) que podem incrementar, decrementar e gerar disparos ao atingir limites.
Para que serve?
- 🔢 Contar eventos (ativações de entradas, relatórios enviados, etc.)
- 🎯 Disparar ações ao atingir um valor específico
- 📊 Acumular valores para estatísticas
- ⚡ Criar lógica condicional baseada em contagens
Tipos de Contadores
| Índice | Tipo | Persistência |
|---|---|---|
00-15 | Voláteis | Se perdem ao reiniciar |
16-31 | Não voláteis | Se mantêm após reset |
Use contadores 16-31 para valores que devam persistir (ex: contagem de manutenções).
Sintaxe
Operações disponíveis
| Operação | Comando | Descrição |
|---|---|---|
| Configurar | SNTaabbbbb | Define o máximo do contador |
| Consultar | QNTaa | Lê o valor atual |
| Incrementar | SNTaa+n | Soma n ao contador |
| Decrementar | SNTaa-n | Subtrai n do contador |
| Reiniciar | SNTaaR | Coloca o contador em 0 |
| Maximizar | SNTaaS | Coloca o contador no máximo |
Resposta
RNTaabbbbbcccccParâmetros
| Parâmetro | Descrição | Faixa |
|---|---|---|
aa | Índice do contador | 00-31 |
bbbbb | Valor máximo configurado | 00000-65535 |
ccccc | Valor atual do contador | 00000-65535 |
n | Valor a incrementar/decrementar | 1-65535 |
Sinal NT (Disparador)
O contador gera um disparo no sinal NT quando:
| Condição | Disparo | Comportamento |
|---|---|---|
| Incremento supera máximo | NT+ | O contador faz “wrap-around” |
| Decremento desce de zero | NT- | O contador volta desde o máximo |
Fórmulas matemáticas:
- Incremento:
(valor + incremento) Mod (máximo + 1) - Decremento:
((valor - decremento) Mod (máximo + 1)) + (máximo + 1)
Exemplos
Configuração básica
>SNT0200299< // Configura contador 02 com máximo 299
>SNT02+30< // Incrementa 30 → valor = 30
>SNT02-15< // Decrementa 15 → valor = 15
>QNT02< // Consulta: RNT020029900015Contar ativações de entrada
// Configurar contador 05 com máximo 100
>SNT0500100<
// Incrementar cada vez que se ativa IN00
>SRL00E;TRG=IN00+;ACC={SNT05+1}<
// Disparar alerta ao chegar a 100
>SRL01E;TRG=NT05+;ACC={GCP00H}<Contador de viagens (não volátil)
// Usar contador 20 (persistente) para contar viagens
>SNT2099999<
// Incrementar ao ligar ignição
>SRL10E;TRG=IN07+;ACC={SNT20+1}<Demo Completa
>SNT0300299< // Configura contador 03, máximo 299
// RNT030029900000
>SRL00E;TRG=NT03+;ACC={STX DISPARO}< // Regra: mostrar quando 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 executado!
>SNT03-7< // Decrementa → desce de 0 → dispara
// RNT030029900294 // Valor = 294
// RTX DISPARO // ¡Disparo executado!
>SNT03S< // Colocar no máximo
// RNT030029900299 // Valor = 299
>SNT03R< // Reiniciar a zero
// RNT030029900000 // Valor = 0Compatibilidade
💾Firmware:v1.00.00
SP-IOT
SM-IOT
Última atualização