@libs-scripts-mep/modbus-rtu-pvi

1.2.2 • Public • Published

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 ✔️

Readme

Keywords

Package Sidebar

Install

npm i @libs-scripts-mep/modbus-rtu-pvi

Weekly Downloads

0

Version

1.2.2

License

ISC

Unpacked Size

19.4 kB

Total Files

3

Last publish

Collaborators

  • inv-eduardo
  • mateus_ab
  • inv-guilherme.matte
  • inv-thiagosantos
  • inv-rafaela.freitas
  • inv-lucas.kroth