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:

  1. reg1 upper 16bits
  2. reg2 lower 16bits
set_f32 (num) line 204
Write a bit float to 2x16bit registers

Parameters:

  • num floating point number

Returns:

  1. reg1 upper 16bits of a 32bit float
  2. 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

These functions are members of a modbus context, from either new_rtu() or new_tcp_pi()
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:

  1. seconds
  2. microseconds
ctx:set_response_timeout (seconds, microseconds) line 528

Parameters:

  • seconds (required)
  • microseconds (optional, defaults to 0)
ctx:get_response_timeout () line 546

Returns:

  1. seconds
  2. 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)
generated by LDoc 1.4.6 Last updated 2018-06-14 11:58:15