@libs-scripts-mep/temp-sim
v5.3.0
Published
Biblioteca que auxilia no gerenciamento do simulador de temperatura inova
Readme
- Simulador de Temperatura Inova
- Detalhes de Firmware e Hardware
- Calibração e Verificação
- Tabela de erro
- Como descobrir o erro
Simulador de Temperatura Inova
Biblioteca que controla o simulador de temperatura inova.

Instalando
Abra o terminal, e na pasta raíz do script, execute:
npm i @libs-scripts-mep/temp-simDesinstalando
Abra o terminal, e na pasta raíz do script, execute:
npm uninstall @libs-scripts-mep/temp-simAtualizando
Abra o terminal, e na pasta raíz do script, execute:
npm update @libs-scripts-mep/temp-simComo utilizar
Realize a importação:
import SimuladorTemp from "../node_modules/@libs-scripts-mep/temp-sim/temp-sim.js"As demais informações e instruções estarão disponíveis via JSDocs.
Detalhes de Firmware e Hardware
Interface Comunicacao
| Item | Detalhe | | --------- | ------- | | Interface | UART | | Baud Rate | 9600 | | Data Bits | 8 | | Paridade | None | | Stop Bit | 1 |
Funções Modbus Implementadas
| Função | Código | Implementada | | -------------------------- | :----: | :----------: | | Read Device Identification | 0x2B | ✔️ | | Read Holding Registers | 0x03 | ✔️ | | Read Input Registers | 0x04 | ❌ | | Write Single Register | 0x06 | ❌ | | Write Multiple Registers | 0x10 | ✔️ |
Mapa de Registradores
| Slave Address | | ------------- | | 0x01 |
| Address | Tipo de Registrador | Descrição | Referência em Firmware | Observação | | ------- | ------------------- | ------------------------------------- | ---------------------- | ------------------------------------------------------------------------------ | | 0x2002 | Holding Register | Tipo de Sensor | SET_SENSOR | Somente para Modo de Operação = 0 | | 0x2003 | Holding Register | Modo de Operação | SET_IN_OUT | Somente para Modo de Operação = 0 | | 0x2004 | Holding Register | Valor | SET_VALUE | Somente para Modo de Operação = 0 | | 0x2005 | Holding Register | Compensacao | - | Somente para Modo de Operação = 0 | | 0x3001 | Input Register | Valor Leitura | LEITURA | Valor instantâneo da entrada de termopar, convertido para o sensor selecionado | | 0x3002 | Holding Register | Valor NTC | AMBIENTE | Valor instantâneo da temperatura ambiente do SIMULADOR |
Tipo de Sensor
| Decimal | Hex | Opção | | ------- | ---- | ------ | | 0 | 0x00 | Tipo J | | 1 | 0x01 | Tipo K |
Modo de Operação
| Decimal | Hex | Opção | | ------- | ---- | ------------------------- | | 0 | 0x00 | Output (Geração de Sinal) | | 1 | 0x01 | Input (Leitura de Sinal) |
⚠️ Modo de operação só impacta apresentação no display.
Valor
| Decimal | Hex | Opção | | ------- | ------ | ------------------------------------------------------------------------------------------ | | 10 | 0x000A | Seta a saida em 10 graus convertidos para o Tipo de Sensor configurado | | 300 | 0x012C | Seta a saida em 300 graus convertidos para o Tipo de Sensor configurado | | 750 | 0x02EE | Seta a saida em 750 graus convertidos para o Tipo de Sensor configurado |
Grupo
Não tem. Sempre é "A"
Modo de Compensação
| Decimal | Hex | Opção | | ------- | ---- | ------------------- | | 0 | 0x00 | Compensação Externa | | 1 | 0x01 | Compensação Interna |
Desmembrando a Requisição
Tomando como exemplo a requisição:
01 10 00 1E 00 04 08 00 01 00 00 02 EE 00 00 EF 1F
Confira a estrutura do frame:
| Byte | Significado | Descrição do Valor | | ---- | ----------------------------- | ----------------------------------------------------------------- | | 0x01 | Node Address | Endereço na rede modbus | | 0x10 | Modbus Function | Write Multiple Registers | | 0x00 | Start Address (High Byte) | Endereço do primeiro registrador a ser lido | | 0x1E | Start Address (Low Byte) | - | | 0x00 | Nro os Registers (Hight Byte) | Quantidade de registradores para ler a partir do endereço inicial | | 0x04 | Nro os Registers (Low Byte) | - | | 0x08 | Byte Count | Indica número de bytes subsequentes desta requisição | | 0x00 | Tipo de Sensor (High Byte) | Tipo de Sensor | | 0x01 | Tipo de Sensor (Low Byte) | - | | 0x00 | Modo de Operação (High Byte) | Modo de Operação | | 0x00 | Modo de Operação (Low Byte) | - | | 0x02 | Valor (High Byte) | Valor | | 0xEE | Valor (Low Byte) | - | | 0x00 | Grupo (High Byte) | Grupo | | 0x00 | Grupo (Low Byte) | - | | 0xEF | CRC (High Byte) | Ciclic Redundancy Check | | 0x1F | CRC (Low Byte) | - |
Calibração e Verificação
Sem Compensação
- Simulação e Calibração: simular sem compensação (10 e 750);
- Verificação com sinal do simulador: gerar sinal sem compensação. Controlador deve ler:
sinal gerado + ambiente do controlador + erro; - Verificação com sinal externo ao simulador:
- O primeiro passo é obter o "valor bruto" do sinal na entrada do simulador, ou seja, descobrir o valor do sinal sem compensação. Isto pode ser feito de duas maneiras:
- Utilizando
ReqInputValue(false), o valor bruto é obtido na propriedadeinputValue; - Utilizando
ReqInputValue()ouReqInputValue(true), o valor bruto é obtido ao calcularinputValue - ambient - erroouinputValueNotCompensated - erro.
- Utilizando
- Após obter o valor bruto, o controlador deve ler
valor bruto + ambiente do controlador + erro;
- O primeiro passo é obter o "valor bruto" do sinal na entrada do simulador, ou seja, descobrir o valor do sinal sem compensação. Isto pode ser feito de duas maneiras:
Com Compensação usando Cabo Compensado
- Simulação e Calibração: simular com compensação (10 e 750);
- Verificação com sinal do simulador: controlador deve ler o sinal gerado;
- Verificação com sinal externo ao simulador: ler com compensação, controlador deve ler o mesmo valor.
Com Compensação usando Cabo de Cobre
- Simulação e Calibração:
- 10°C: simular com compensação o seguinte valor:
10 + ambiente do simulador - ambiente do controlador - erro; - 750°C: simular sem compensação o seguinte valor:
750 - ambiente do controlador - erro;
- 10°C: simular com compensação o seguinte valor:
- Verificação com sinal do simulador: gerar sinal sem compensação. Controlador deve ler:
sinal gerado + ambiente do controlador + erro; - Verificação com sinal externo ao simulador:
- O primeiro passo é obter o "valor bruto" do sinal na entrada do simulador, ou seja, descobrir o valor do sinal sem compensação. Isto pode ser feito de duas maneiras:
- Utilizando
ReqInputValue(false), o valor bruto é obtido na propriedadeinputValue; - Utilizando
ReqInputValue()ouReqInputValue(true), o valor bruto é obtido ao calcularinputValue - ambient - erroouinputValueNotCompensated - erro.
- Utilizando
- Após obter o valor bruto, o controlador deve ler
valor bruto + ambiente do controlador + erro;
- O primeiro passo é obter o "valor bruto" do sinal na entrada do simulador, ou seja, descobrir o valor do sinal sem compensação. Isto pode ser feito de duas maneiras:
Tabela de erro
Este é um "erro" que acontece quando o controlador está lendo com compensação um valor gerado sem compensação.
| Propriedade | Erro | | :---------- | :---: | | 30 | 0 | | 110 | -1 | | 330 | -2 | | 530 | -3 | | 620 | -4 | | 690 | -5 | | > 690 | -6 |
Como descobrir o erro
- Calcular
valor bruto + ambiente do controlador; - Encontrar na tabela de erro a propriedade que é maior ou igual a este valor;
- Utilizar o erro correspondente a essa propriedade.
