User define
User define
More serial port script instruction,please refer manual:Lua script function--->3.Serial port operation
Read the temperature sensor.
the commond format is as beliow:
Send commond:01 03 02 00 00 03 04 73
Feedback commond:01 03 06 07 F7 0E 7E B7 35
Temperature data:07 F7,desimal = 2039,it means temperature is 20.39℃.
Humidity data:0E 7E,desimal = 3710, it mean humidity is 37.10%RH.
Script Demo:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
function com.main()
--dosomething
openPlc()
end
function openPlc()
if obj then
-- If the serial port opened,then read/write data by timing
local wri = string.pack(">HHHH",0X0103,0X0200,0X0003,0X0473)
local arr = reading(wri)
-- if arr ~=nil then
-- if arr[1] ==33 and arr[2] ==v[2][2] and arr[3] ==v[2][3] then
-- local A = arr[4]*256
-- local B = A+arr[5]
-- addr_setword(v[1],B)
-- end
-- end
else
--judge if there is a serial object, then initialize and open the serial port
local configs = {
name = 'COM1', --Select serial port COM1
mode = 485, --Communication mode RS485
baud_rate = 9600, --Baud rate 9600
stop_bit = 1, --stop bit 1
data_len = 8, --data length 8
check_bit = 'NONE', --no parity
}
obj,err = serial.open(configs) --Open serial port
if not obj then
print("serial open :failed", err) -- Open serial port failed
end
end
end
function reading(wri)
obj:flush() -- Clear serial port
obj:write(wri) -- Write serial port
print(string.byte(wri,1,#wri))
obj:flush() -- Clear serial port
local readed =obj:read(9,1000) -- Read 9 bytes, timeout 1 second
if readed and readed ~= "" then
-- judge that a non-empty string is read
print(string.byte(readed,1,#readed))
a={string.byte(readed, 1, #readed)}
if nil ~= a[4] and nil ~= a[5] and nil ~= a[6] and nil ~= a[7] then
a1=a[4]*256+a[5]
a2=a[6]*256+a[7]
addr_setword("@HDW0",a1)
addr_setword("@HDW1",a2)
end
return {string.byte(readed, 1, #readed)}
elseif readed == nil then
print("serial read err:", err or "")
return nil
end
return nil
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------