Biblioteca que auxilia no desenvolvimento de scripts de testes que possuem comunicação modbus.
npm install @libs-scripts-mep/modbus-rtu-pvi
npm i @libs-scripts-mep/modbus-rtu-pvi
`
Após fianlizada a instalação da biblioteca, inclua em seu html:
`html
`
⚠️ Se seu projeto não utiliza a serial-pvi ou crc, será necessário incluir também em seu html:
`html
`
⚠️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
`js
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"
}
}
``