1.0.0 • Published 3 years ago

@iqrok/modbus.helper v1.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

modbus-serial Helper

Helper for modbus-serial package in async/await.

USAGE

const modbusHelper = require('@iqrok/modbus.helper');
const modbus =new modbusHelper({
		ip: '127.0.0.1',
		port: 502,
		id: 1,
		byteOrder: [1,0,3,2],
		decimalDigits: null,
		debug: true,
		timeout: 1000,
    });

new modbusHelper ({ip, port, baud, byteOrder, decimalDigits, nullable, timeout, debug})

Parameters:

NameTypeAttributesDefaultDescription
ipstringIP destination for modbus TCP
portnumber|stringPort number for modbus TCP or path to serial port for modbus RTU
baudnumberBaud Rate for modbus RTU
byteOrderArray.\<number>\<optional>1,0,3,2byte order of modbus register
decimalDigitsnumber\<optional> \<nullable>number of decimals for floating point
timeoutnumber\<optional>100timeout in ms
debugboolean\<optional>falsePrint debug message

byteLength (type) → {number}

Size of data type in bytes

Parameters:

NameTypeDescription
type"UINT16" | "INT16" | "UINT32" | "INT32" | "FLOAT" | "FLOAT32" | "DOUBLE" | "FLOAT64"number data type

Returns:

  • data type size in bytes

numToWords (number, type) → {Array.\<number\>}

Convert number into array of unsigned integer 16-bits numbers

Parameters:

NameTypeDescription
numbernumbernumber to be converted
type"UINT16" | "INT16" | "UINT32" | "INT32" | "FLOAT" | "FLOAT32" | "DOUBLE" | "FLOAT64"number data type

Returns:

  • array of uint16 numbers

readCoils (addr, len) → {Promise.\<Array.\<Boolean>>|Promise.\<Boolean>}

Read Coils (FC=1)

Parameters:

NameTypeAttributesDefaultDescription
addrnumberaddress to read from
lennumber\<optional>1number of addresses to read

Returns:

  • resolve false if reading is failed, otherwise resolve array of coils status

readDiscreteInputs (addr, len) → {Promise.\<Array.\<Boolean\>\>|Promise.\<Boolean>}

Read Discrete Inputs (FC=2)

Parameters:

NameTypeAttributesDefaultDescription
addrnumberaddress to read from
lennumber\<optional>1number of addresses to read

Returns:

  • resolve false if reading is failed, otherwise resolve array of discrete inputs status

readHoldingRegisters (addr, len) → {Promise.\<Buffer>|Promise.\<Boolean>}

Read Holding Register (FC=3)

Parameters:

NameTypeAttributesDefaultDescription
addrnumberaddress to read from
lennumber\<optional>1number of addresses to read

Returns:

  • resolve false if reading is failed, otherwise resolve read Buffer

readInputRegisters (addr, len) → {Promise.\<Buffer>|Promise.\<Boolean>}

Read Input Register (FC=4)

Parameters:

NameTypeAttributesDefaultDescription
addrnumberaddress to read from
lennumber\<optional>1number of addresses to read

Returns:

  • resolve false if reading is failed, otherwise resolve read Buffer

wordsLength (type) → {number}

Size of data type in words

Parameters:

NameTypeDescription
type"UINT16" | "INT16" | "UINT32" | "INT32" | "FLOAT" | "FLOAT32" | "DOUBLE" | "FLOAT64"number data type

Returns:

  • data type size in words

wordsToNum (words, type, digits, nullable) → {number}

Convert Words received from modbus to number

Parameters:

NameTypeAttributesDescription
wordsBufferArray.\<uint16>Buffer or array of uint16 numbers to be converted
type"UINT16" | "INT16" | "UINT32" | "INT32" | "FLOAT" | "FLOAT32" | "DOUBLE" | "FLOAT64"number data type
digitsnumber\<optional> \<nullable>number of decimal digits for float, will be default to set decimalDigits in config if left undefined

Returns:

  • converted number

writeCoil (addr, values) → {Promise.\<Object>|Promise.\<boolean>}

Write Single Coil (modified FC=15)

Parameters:

NameTypeDescription
addrnumberaddress to write
valuesbooleanarray of values to write

Returns:

  • resolve false if reading is failed, otherwise resolve address and length of written registers

writeCoils (addr, values) → {Promise.\<Object>|Promise.\<boolean>}

Write multiple Coils (FC=15)

Parameters:

NameTypeDescription
addrnumberaddress to write
valuesArray.\<boolean>array of values to write

Returns:

  • resolve false if reading is failed, otherwise resolve address and length of written registers

writeRegister (addr, value) → {Promise.\<Object>|Promise.\<Boolean>}

Write single Holding Register (FC=6)

Parameters:

NameTypeDescription
addrnumberaddress to write
valuenumbervalue to write

Returns:

  • resolve false if reading is failed, otherwise resolve address and length of written registers

writeRegisters (addr, values) → {Promise.\<Object>|Promise.\<Boolean>}

Write multiple Holding Registers (FC=16)

Parameters:

NameTypeDescription
addrnumberaddress to write
valuesArray.\<number>array of valuess to write

Returns:

  • resolve false if reading is failed, otherwise resolve address and length of written registers
1.0.0

3 years ago

0.1.0

3 years ago