Module libmodbus
lua bindings to libmodbus
Info:
- Author: Karl Palsson
2016 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Functions
version () | Returns the runtime linked version of libmodbus as a string |
new_rtu (device, baud, parity, databits, stopbits) | Create a Modbus/RTU context |
new_tcp_pi (host, service) | Create a Modbus/TCP context |
set_s32 (num) | Write a 32bit (u)int to 2x16bit registers |
set_f32 (num) | Write a bit float to 2x16bit registers |
get_s16 (1) | 16bit register as number to signed 16bit |
get_s32 (1, 2) | 2x16bit registers as number to signed 32 bit |
get_s32le (1, 2) | 2x16bit registers as number to signed 32 bit (reverse order) |
get_u32 (1, 2) | 2x16bit registers as number to unsigned 32 bit |
get_u32le (1, 2) | 2x16bit registers as number to unsigned 32 bit (reversed order) |
get_f32 (1, 2) | 2x16bit registers as number to 32 bit float |
get_f32le (1, 2) | 2x16bit registers as number to 32 bit float (Reversed order) |
get_s64 (1, 2, 3, 4) | 4x16bit registers as number to signed 64 bit |
get_u64 (1, 2, 3, 4) | 4x16bit registers as number to unsigned 64 bit |
Context Methods
ctx:connect () | Connect, see modbus_connect() |
ctx:close () | Close, see modbus_close() |
ctx:set_debug (enable) | Set debug |
ctx:set_error_recovery (a, b) | Set error recovery, see modbus_set_error_recovery FIXME get autodocs for the defined constants arguments will be or'd together |
ctx:set_byte_timeout (seconds, microseconds) | See also modbus_set_byte_timeout |
ctx:get_byte_timeout () | |
ctx:set_response_timeout (seconds, microseconds) | |
ctx:get_response_timeout () | |
ctx:get_socket () | |
ctx:set_socket (sock) | |
ctx:set_slave (unitid) | |
ctx:read_input_bits (address, count) | |
ctx:read_bits (address, count) | |
ctx:read_input_registers (address, count) | |
ctx:read_registers (address, count) | |
ctx:report_slave_id () | |
ctx:write_bit (address, value) | |
ctx:write_register (address, value) | |
ctx:write_bits (address, value) | |
ctx:write_registers (address, value) |
Functions
- version () line 73
-
Returns the runtime linked version of libmodbus as a string
Returns:
-
eg "3.0.6"
- new_rtu (device, baud, parity, databits, stopbits) line 93
-
Create a Modbus/RTU context
Parameters:
- device (required)
- baud rate, defaults to 19200
- parity defaults to EVEN
- databits defaults to 8
- stopbits defaults to 1
Returns:
-
a modbus context ready for use
- new_tcp_pi (host, service) line 154
-
Create a Modbus/TCP context
Parameters:
- host eg "192.168.1.100" or "modbus.example.org"
- service eg "502" or "mbap"
Returns:
-
a modbus context ready for use
- set_s32 (num) line 189
-
Write a 32bit (u)int to 2x16bit registers
Parameters:
- num 32bit number
Returns:
- reg1 upper 16bits
- reg2 lower 16bits
- set_f32 (num) line 204
-
Write a bit float to 2x16bit registers
Parameters:
- num floating point number
Returns:
- reg1 upper 16bits of a 32bit float
- reg2 lower 16bits of a 32bit float
- get_s16 (1) line 222
-
16bit register as number to signed 16bit
Parameters:
- 1 16bit register
Returns:
-
signed 16bit number
- get_s32 (1, 2) line 236
-
2x16bit registers as number to signed 32 bit
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit number
- get_s32le (1, 2) line 252
-
2x16bit registers as number to signed 32 bit (reverse order)
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit number
- get_u32 (1, 2) line 269
-
2x16bit registers as number to unsigned 32 bit
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit number
- get_u32le (1, 2) line 285
-
2x16bit registers as number to unsigned 32 bit (reversed order)
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit number
- get_f32 (1, 2) line 301
-
2x16bit registers as number to 32 bit float
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit float
- get_f32le (1, 2) line 321
-
2x16bit registers as number to 32 bit float (Reversed order)
Parameters:
- 1 16bit register
- 2 16bit register
Returns:
-
32bit float
- get_s64 (1, 2, 3, 4) line 343
-
4x16bit registers as number to signed 64 bit
Parameters:
- 1 16bit register
- 2 16bit register
- 3 16bit register
- 4 16bit register
Returns:
-
64bit number
- get_u64 (1, 2, 3, 4) line 366
-
4x16bit registers as number to unsigned 64 bit
Parameters:
- 1 16bit register
- 2 16bit register
- 3 16bit register
- 4 16bit register
Returns:
-
64bit number
Context Methods
- ctx:connect () line 424
- Connect, see modbus_connect()
- ctx:close () line 437
- Close, see modbus_close()
- ctx:set_debug (enable) line 451
-
Set debug
Parameters:
- enable optional bool, defaults to true
- ctx:set_error_recovery (a, b) line 472
-
Set error recovery, see modbus_set_error_recovery
FIXME get autodocs for the defined constants
arguments will be or'd together
Parameters:
- a either ERROR_RECOVERY_NONE or ERROR_RECOVERY_LINK or ERROR_RECOVERY_PROTOCOL
- b as a
- ctx:set_byte_timeout (seconds, microseconds) line 489
-
See also modbus_set_byte_timeout
Parameters:
- seconds (required)
- microseconds (optional, defaults to 0)
- ctx:get_byte_timeout () line 507
-
Returns:
- seconds
- microseconds
- ctx:set_response_timeout (seconds, microseconds) line 528
-
Parameters:
- seconds (required)
- microseconds (optional, defaults to 0)
- ctx:get_response_timeout () line 546
-
Returns:
- seconds
- microseconds
- ctx:get_socket () line 566
-
Returns:
-
the socket number
- ctx:set_socket (sock) line 579
-
Parameters:
- sock integer socket number to set
- ctx:set_slave (unitid) line 602
-
Parameters:
- unitid the unit address / slave id to use
- ctx:read_input_bits (address, count) line 656
-
Parameters:
- address
- count
Returns:
-
an array of results
- ctx:read_bits (address, count) line 667
-
Parameters:
- address
- count
Returns:
-
an array of results
- ctx:read_input_registers (address, count) line 715
-
Parameters:
- address
- count
Returns:
-
an array of results
- ctx:read_registers (address, count) line 726
-
Parameters:
- address
- count
Returns:
-
an array of results
- ctx:report_slave_id () line 735
-
Returns:
-
a luastring with the raw result (lua strings can contain nulls)
- ctx:write_bit (address, value) line 756
-
Parameters:
- address
- value either a number or a boolean
- ctx:write_register (address, value) line 780
-
Parameters:
- address
- value
- ctx:write_bits (address, value) line 797
-
Parameters:
- address
- value as a lua array table
- ctx:write_registers (address, value) line 859
-
Parameters:
- address
- value as a lua array table, or a sequence of values.
Usage:
either ctx:write_registers(0x2000, {1,2,3}) ctx:write_registers(0x2000, 1, 2, 3)