O que é um script

Um script no Protolinker é um pequeno trecho de lógica personalizada que permite processar ou transformar dados antes que sejam transmitidos.

Enquanto as tags armazenam os valores brutos e os links os movem entre os protocolos, os scripts oferecem a flexibilidade de adaptar esses valores às suas necessidades específicas.

Em resumo, os scripts permitem adicionar inteligência ao tratamento dos dados dentro do Protolinker.


Porque Scripts são uteis #

Nem todos os dispositivos e sistemas utilizam os dados da mesma forma. Às vezes, é necessário:

  • Converter unidades (ex: Celsius → Fahrenheit).
  • Escalonar valores (ex: sensor bruto 253 → 25,3 °C).
  • Aplicar limites ou faixas (ex: limitar um valor a 100).
  • Filtrar ou limpar dados com ruído.
  • Implementar lógica simples (ex: converter uma entrada 0/1 em “OFF/ON”).

Os scripts oferecem a flexibilidade para realizar tudo isso sem precisar modificar os dispositivos ou os próprios protocolos.


Como os Scripts funcionam no Protolinker #

Atualmente, é possível usar qualquer linguagem de script ou binário como script, desde que seja compatível com o sistema operacional host e todas as dependências estejam instaladas. Basta selecionar o arquivo do script (pode ser Python, Bash, JavaScript ou até mesmo um binário), e especificar o comando que o sistema precisa para executá-lo, por exemplo, python para arquivos Python ou sh para scripts Bash, entre outros.

Scripts para Tags #

Um script pode ser associado a uma tag para que:

  • Quando a tag receber um valor do seu protocolo, o script transforme esse valor antes de armazená-lo ou aplicá-lo.
  • Quando a tag enviar dados, o script ajuste o valor antes do envio, garantindo que todos os links recebam o novo valor processado.

Exemplo:

Registrador Modbus bruto 40001 = 253 → Script divide por 10 → Valor da tag = 25,3 °C.


Um script também pode ser aplicado a um link para que:

  • O valor da tag de origem seja modificado durante a transmissão para a tag de destino.
  • Isso é útil quando você deseja que a tag permaneça com o valor bruto, mas ainda assim adapte os dados antes que cheguem a outro protocolo. Dessa forma, os outros links dessa tag continuarão recebendo o dado original, e apenas o link especificado terá o valor adaptado.

Exemplo:

Tag de origem temperature = 25,3 °C → Script do link converte para Fahrenheit → Tag de destino sensor/temperature_f = 77,5 °F.


Cenário de exemplo #

  • Conversão de unidade: pressure_kpa (do sensor) → script converte para pressure_psi.
  • Mapeamento de status: valor da Tag 0 → script retorna “STOP”; valor 1 → “RUN”.
  • Filtragem de dados: script suaviza flutuações rápidas antes de enviar para o MQTT.

Quais são seus sentimentos

Atualizado em setembro 23, 2025