@libs-scripts-mep/modbus-rtu-pvi
v1.2.2
Published
Biblioteca que auxilia no desenvolvimento de scripts de testes que possuem comunicação modbus.
Downloads
16
Readme
Modbus RTU PVI
Biblioteca que auxilia no desenvolvimento de scripts de testes que possuem comunicação modbus.
Instalando
Abra o terminal, e na pasta do script, execute:
npm i @libs-scripts-mep/modbus-rtu-pvi
Após fianlizada a instalação da biblioteca, inclua em seu html:
<script src="node_modules/@libs-scripts-mep/modbus-rtu-pvi/modbus-rtu-pvi.js"></script>
⚠️ Se seu projeto não utiliza a serial-pvi ou crc, será necessário incluir também em seu html:
<!-- DEPENDENCIAS -->
<script src="node_modules/@libs-scripts-mep/crc/CRC.js"></script>
<script src="node_modules/@libs-scripts-mep/serial-pvi/serial-pvi.js"></script>
<!-- BIBLIOTECA -->
<script src="node_modules/@libs-scripts-mep/temp-sim/modbus-rtu-pvi.js"></script>
⚠️Fique atento à ordem de carregamento dos arquivos, as dependências devem ser carregadas ANTES da biblioteca, como no trecho acima.
Desinstalando
Abra o terminal, e na pasta do script, rode:
npm uninstall @libs-scripts-mep/modbus-rtu-pvi
Exemplo de Utilização
class TestScript {
constructor(eventMap, event) {
this.SerialControlador = new ModbusProtocol(9600, 0, "AA") // baud = 9600, parity = 0, nodeAddress = "AA"
this.Run()
.then(async () => {
//se tudo OK
})
.catch((error) => {
//se algo NOK
})
ObjTeste = {
DataHora:{
ParamCom: {
InitialRegister: 0x5000,
Quantity: 7 // Lendo 7 registradores iniciando pelo initialRegister
},
}
ReadKey:{
ParamCom: {
InitialRegister: 0x7202,
Quantity: 1 // Lendo apenas um registrador iniciando pelo initialRegister
},
},
WriteOUT:{
ParamCom: {
InitialRegister: 0x7100,
ArrayRegisterValue: [100, 0, 1, 4] // Valores para escrita nos registradores iniciando pelo initialRegister
},
},
NumSerie:{
ParamCom: {
ReadDeviceIDCode: 4,
ObjectID: 129
},
}
}
}
async Run() {
const dataHoraReturn = await this.SerialControlador.ReadHoldingRegister(ObjTeste.DataHora.ParamCom.InitialRegister, ObjTeste.DataHora.ParamCom.Quantity)
if (dataHoraReturn.sucess) {
dataHoraReturn.response // Array com a leitura dos 7 registradores, iniciando as posições a partir do Initialregister.
} else {
// ERRO
}
const teclaReturn = await this.SerialControlador.ReadInputRegister(ObjTeste.ReadKey.ParamCom.InitialRegister, ObjTeste.ReadKey.ParamCom.Quantity)
if (teclaReturn.sucess) {
const valorRegistradorTecla = teclaReturn.response[0]
} else {
// ERRO
}
const saidaReturn = await this.SerialControlador.WriteMultipleRegister(ObjTeste.ParamCom.InitialRegister, ObjTeste.ParamCom.ArrayRegisterValue)
if (saidaReturn.sucess) {
// OK
} else {
// ERRO
}
const numSerieReturn = await this.SerialControlador.ReadDeviceIdentification(ObjTeste.ParamCom.NumSerie.ReadDeviceIDCode, ObjTeste.ParamCom.NumSerie.ObjectID)
if (numSerieReturn.sucess) {
const valorNumeroDeSerie = numSerieReturn.response // Retorno em String (ASCII) do ObjectID lido.
} else {
// ERRO
}
throw "termino"
}
}
Funções Modbus Implementadas
| Função | Código | Implementada | | -------------------------- | :----: | :----------: | | Read Holding Registers | 0x03 | ✔️ | | Read Input Registers | 0x04 | ✔️ | | Write Single Register | 0x06 | ✔️ | | Write Multiple Registers | 0x10 | ✔️ | | Read Device Identification | 0x2B | ✔️ |