User manual
Scripting
7
if ret == 0 then
-- output data as mV
for i = 1, #v, 1 do
io.write(string.format("%7.2f ", v[i]*4096/65535))
end
io.write("\r")
io.flush()
else
print("ERROR: " .. ret)
end
-- sleep 1 second
lem.sleep_msec(1000)
end
The Lua interpreter has been expanded by various functions for easy access to the
Modbus hardware. Table4.1, “Extensions to the LUA language on gpio.ipCore” provides
information on the functions added by taskit GmbH.
Function definition Signature Description
name = lem.get_name() nil → string Returns the interpreter's name and
version information.
time = lem.get_msec() nil → number Returns system timer in
milliseconds.
rc, obuf =
tml.modbus_command(bus, id,
cmd, ibuf)
(string, number, number, table) →
(number, table)
A generic Modbus command cmd
is send to the server identified
by bus. Parameters are stored as
numbers in the table ibuf. The
Modbus device is addressed using
id. An error code rc and output
values (e.g. Modbus registers)
as table of numbers obuf are
returned.
rc, regs =
tml.read_holding_regs(bus, id,
addr, n)
(string, number, number, number)
→ (number, table)
Reads n holding registers starting
at addr. Returns errorcode rc and a
table of registers (numbers) regs.
rc, regs =
tml.read_input_regs(bus, id, addr,
n)
(string, number, number, number)
→ (number, table)
Same as tml.read_holding_regs but
for input registers.
rc = tml.write_regs(bus, id, addr,
regs)
(string, number, number, table) →
number
Writes register set regs (table of
numbers) starting at addr.
rc, bits = tml.read_coils(bus, id,
addr, n)
(string, number, number, number)
→ (number, table)
Similar to tml.read_holding_regs
but for read-/writable bit values.
Bits are returned in table bits
(numbers). A logic false is
represented by 0, anything else
equals true.
rc, bits = tml.read_inputs(bus, id,
addr, n)
(string, number, number, number)
→ (number, table)
Same as tml.read_coils but for
read-only bit values.
rc = tml.write_coils(bus, id, addr,
bits)
(string, number, number, table) →
number
Same as tml.write_regs but for bit-
wise data. Bits are taken from
table bits (numbers). A logic false
is represented by 0, anything else
equals true.
rc, id_string = tml.report_id(bus,
id)
(string, number) → (number,
string)
Returns the identification string
id_string for the addressed
Modbus device (bus, id).