5.3.0 • Published 9 months ago

@libs-scripts-mep/temp-sim v5.3.0

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

Simulador de Temperatura Inova

Biblioteca que controla o simulador de temperatura inova.

Image

Instalando

Abra o terminal, e na pasta raíz do script, execute:

npm i @libs-scripts-mep/temp-sim

Desinstalando

Abra o terminal, e na pasta raíz do script, execute:

npm uninstall @libs-scripts-mep/temp-sim

Atualizando

Abra o terminal, e na pasta raíz do script, execute:

npm update @libs-scripts-mep/temp-sim

Como 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

ItemDetalhe
InterfaceUART
Baud Rate9600
Data Bits8
ParidadeNone
Stop Bit1

Funções Modbus Implementadas

FunçãoCódigoImplementada
Read Device Identification0x2B✔️
Read Holding Registers0x03✔️
Read Input Registers0x04
Write Single Register0x06
Write Multiple Registers0x10✔️

Mapa de Registradores

Slave Address
0x01
AddressTipo de RegistradorDescriçãoReferência em FirmwareObservação
0x2002Holding RegisterTipo de SensorSET_SENSORSomente para Modo de Operação = 0
0x2003Holding RegisterModo de OperaçãoSET_IN_OUTSomente para Modo de Operação = 0
0x2004Holding RegisterValorSET_VALUESomente para Modo de Operação = 0
0x2005Holding RegisterCompensacao-Somente para Modo de Operação = 0
0x3001Input RegisterValor LeituraLEITURAValor instantâneo da entrada de termopar, convertido para o sensor selecionado
0x3002Holding RegisterValor NTCAMBIENTEValor instantâneo da temperatura ambiente do SIMULADOR

Tipo de Sensor

DecimalHexOpção
00x00Tipo J
10x01Tipo K

Modo de Operação

DecimalHexOpção
00x00Output (Geração de Sinal)
10x01Input (Leitura de Sinal)

⚠️ Modo de operação só impacta apresentação no display.

Valor

DecimalHexOpção
100x000ASeta a saida em 10 graus convertidos para o Tipo de Sensor configurado
3000x012CSeta a saida em 300 graus convertidos para o Tipo de Sensor configurado
7500x02EESeta a saida em 750 graus convertidos para o Tipo de Sensor configurado

Grupo

Não tem. Sempre é "A"

Modo de Compensação

DecimalHexOpção
00x00Compensação Externa
10x01Compensaçã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:

ByteSignificadoDescrição do Valor
0x01Node AddressEndereço na rede modbus
0x10Modbus FunctionWrite Multiple Registers
0x00Start Address (High Byte)Endereço do primeiro registrador a ser lido
0x1EStart Address (Low Byte)-
0x00Nro os Registers (Hight Byte)Quantidade de registradores para ler a partir do endereço inicial
0x04Nro os Registers (Low Byte)-
0x08Byte CountIndica número de bytes subsequentes desta requisição
0x00Tipo de Sensor (High Byte)Tipo de Sensor
0x01Tipo de Sensor (Low Byte)-
0x00Modo de Operação (High Byte)Modo de Operação
0x00Modo de Operação (Low Byte)-
0x02Valor (High Byte)Valor
0xEEValor (Low Byte)-
0x00Grupo (High Byte)Grupo
0x00Grupo (Low Byte)-
0xEFCRC (High Byte)Ciclic Redundancy Check
0x1FCRC (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 propriedade inputValue;
      • Utilizando ReqInputValue() ou ReqInputValue(true), o valor bruto é obtido ao calcular inputValue - ambient - erro ou inputValueNotCompensated - erro.
    • Após obter o valor bruto, o controlador deve ler valor bruto + ambiente do controlador + erro;

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;
  • 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 propriedade inputValue;
      • Utilizando ReqInputValue() ou ReqInputValue(true), o valor bruto é obtido ao calcular inputValue - ambient - erro ou inputValueNotCompensated - erro.
    • Após obter o valor bruto, o controlador deve ler valor bruto + ambiente do controlador + erro;

Tabela de erro

Este é um "erro" que acontece quando o controlador está lendo com compensação um valor gerado sem compensação.

PropriedadeErro
300
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.
5.2.4

10 months ago

5.2.3

10 months ago

5.2.2

10 months ago

5.3.0

9 months ago

5.1.2

10 months ago

5.2.1

10 months ago

5.2.0

12 months ago

3.0.3

10 months ago

3.0.2

10 months ago

3.0.1

12 months ago

5.2.5

9 months ago

5.1.1

2 years ago

5.0.2

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

2.0.2

3 years ago

3.0.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago