https://github.com/iqrok/modbus.helper
Modbus helper. Reading and writing via modbus-serial package
https://github.com/iqrok/modbus.helper
modbus-serial
Last synced: 2 months ago
JSON representation
Modbus helper. Reading and writing via modbus-serial package
- Host: GitHub
- URL: https://github.com/iqrok/modbus.helper
- Owner: iqrok
- Created: 2020-11-25T06:49:29.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-16T09:29:09.000Z (almost 4 years ago)
- Last Synced: 2025-03-18T03:47:16.110Z (2 months ago)
- Topics: modbus-serial
- Language: JavaScript
- Homepage:
- Size: 15.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# modbus-serial Helper
Helper for modbus-serial package in async/await.# USAGE
```javascript
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:
| Name | Type | Attributes | Default | Description |
| --- | --- | --- | --- | --- |
| `ip` | string | | | IP destination for modbus TCP |
| `port` | number\|string | | | Port number for modbus TCP or path to serial port for modbus RTU |
| `baud` | number | | | Baud Rate for modbus RTU |
| `byteOrder` | Array.\ | \ | [1,0,3,2] | byte order of modbus register |
| `decimalDigits` | number | \ \ | | number of decimals for floating point |
| `timeout` | number | \ | 100 | timeout in ms |
| `debug` | boolean | \ | false | Print debug message |## byteLength (type) → {number}
Size of data type in bytes
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `type` | "UINT16" \| "INT16" \| "UINT32" \| "INT32" \| "FLOAT" \| "FLOAT32" \| "DOUBLE" \| "FLOAT64" | number data type |### Returns:
- data type size in bytes
## numToWords (number, type) → {Array.\\}
Convert number into array of unsigned integer 16-bits numbers
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `number` | number | number to be converted |
| `type` | "UINT16" \| "INT16" \| "UINT32" \| "INT32" \| "FLOAT" \| "FLOAT32" \| "DOUBLE" \| "FLOAT64" | number data type |### Returns:
- array of uint16 numbers
## readCoils (addr, len) → {Promise.\\>|Promise.\}
Read Coils (FC=1)
### Parameters:
| Name | Type | Attributes | Default | Description |
| --- | --- | --- | --- | --- |
| `addr` | number | | | address to read from |
| `len` | number | \ | 1 | number of addresses to read |### Returns:
- resolve false if reading is failed, otherwise resolve array of coils status
## readDiscreteInputs (addr, len) → {Promise.\\\\>|Promise.\}
Read Discrete Inputs (FC=2)
### Parameters:
| Name | Type | Attributes | Default | Description |
| --- | --- | --- | --- | --- |
| `addr` | number | | | address to read from |
| `len` | number | \ | 1 | number of addresses to read |### Returns:
- resolve false if reading is failed, otherwise resolve array of discrete inputs status
## readHoldingRegisters (addr, len) → {Promise.\|Promise.\}
Read Holding Register (FC=3)
### Parameters:
| Name | Type | Attributes | Default | Description |
| --- | --- | --- | --- | --- |
| `addr` | number | | | address to read from |
| `len` | number | \ | 1 | number of addresses to read |### Returns:
- resolve false if reading is failed, otherwise resolve read Buffer
## readInputRegisters (addr, len) → {Promise.\|Promise.\}
Read Input Register (FC=4)
### Parameters:
| Name | Type | Attributes | Default | Description |
| --- | --- | --- | --- | --- |
| `addr` | number | | | address to read from |
| `len` | number | \ | 1 | number 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:
| Name | Type | Description |
| --- | --- | --- |
| `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:
| Name | Type | Attributes | Description |
| --- | --- | --- | --- |
| `words` | Buffer |Array.\ | | Buffer or array of uint16 numbers to be converted |
| `type` | "UINT16" \| "INT16" \| "UINT32" \| "INT32" \| "FLOAT" \| "FLOAT32" \| "DOUBLE" \| "FLOAT64" | | number data type |
| `digits` | number | \ \ | number of decimal digits for float, will be default to set decimalDigits in config if left undefined |### Returns:
- converted number
## writeCoil (addr, values) → {Promise.\|Promise.\}
Write Single Coil (modified FC=15)
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `addr` | number | address to write |
| `values` | boolean | array of values to write |### Returns:
- resolve false if reading is failed, otherwise resolve address and length of written registers
## writeCoils (addr, values) → {Promise.\|Promise.\}
Write multiple Coils (FC=15)
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `addr` | number | address to write |
| `values` | Array.\ | array of values to write |### Returns:
- resolve false if reading is failed, otherwise resolve address and length of written registers
## writeRegister (addr, value) → {Promise.\|Promise.\}
Write single Holding Register (FC=6)
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `addr` | number | address to write |
| `value` | number | value to write |### Returns:
- resolve false if reading is failed, otherwise resolve address and length of written registers
## writeRegisters (addr, values) → {Promise.\|Promise.\}
Write multiple Holding Registers (FC=16)
### Parameters:
| Name | Type | Description |
| --- | --- | --- |
| `addr` | number | address to write |
| `values` | Array.\ | array of valuess to write |### Returns:
- resolve false if reading is failed, otherwise resolve address and length of written registers