Changes for page User define

Last modified by Leo Wei on 2023/08/24 14:11

From version 1.1
edited by Leo Wei
on 2023/08/24 14:11
Change comment: Changed document syntax from [XWiki 2.1] to [xwiki/2.1].
To version 2.2
edited by Leo Wei
on 2023/08/24 14:11
Change comment: Changed document title to [User define].

Summary

Details

Page properties
Title
... ... @@ -1,0 +1,1 @@
1 +User define
Content
... ... @@ -1,0 +1,81 @@
1 += {{id name="HUserdefine"/}}**User define** =
2 +
3 +More serial port script instruction,please refer manual:[[Lua script function>>url:https://docs.we-con.com.cn/bin/view/V-BOX/V-Net/Manual/04%20Lua%20Script/01%20Lua%20Functions/]]~-~-->[[3.Serial port operation>>url:http://docs.we-con.com.cn/wiki/vbox/view/HMI/04.Lua%20script%20%20function%20and%20operation/01.Lua%20script%20function/#H3.Serialportoperation]]
4 +
5 +== {{id name="HReadthetemperatureA0sensor."/}}**Read the temperature sensor.** ==
6 +
7 +the commond format is as beliow:
8 +
9 +Send commond:01 03 02 00 00 03 04 73
10 +
11 +Feedback commond:01 03 06 07 F7 0E 7E B7 35
12 +
13 +Temperature data:07 F7,desimal = 2039,it means temperature is 20.39℃.
14 +
15 +Humidity data:0E 7E,desimal = 3710, it mean humidity is 37.10%RH.
16 +
17 +Script Demo:
18 +
19 +~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
20 +
21 +function com.main()
22 + ~-~-dosomething
23 + openPlc()
24 + end
25 + function openPlc()
26 + if obj then
27 + ~-~- If the serial port opened,then read/write data by timing
28 +
29 + local wri = string.pack(">HHHH",0X0103,0X0200,0X0003,0X0473)
30 + local arr = reading(wri)
31 + ~-~- if arr ~~=nil then
32 + ~-~- if arr[1] ==33 and arr[2] ==v[2][2] and arr[3] ==v[2][3] then
33 + ~-~- local A = arr[4]*256
34 + ~-~- local B = A+arr[5]
35 + ~-~- addr_setword(v[1],B)
36 + ~-~- end
37 + ~-~- end
38 +
39 + else
40 + ~-~-judge if there is a serial object, then initialize and open the serial port
41 + local configs = {
42 + name = 'COM1', ~-~-Select serial port COM1
43 + mode = 485, ~-~-Communication mode RS485
44 + baud_rate = 9600, ~-~-Baud rate 9600
45 + stop_bit = 1, ~-~-stop bit 1
46 + data_len = 8, ~-~-data length 8
47 + check_bit = 'NONE', ~-~-no parity
48 +
49 + }
50 + obj,err = serial.open(configs) ~-~-Open serial port
51 + if not obj then
52 + print("serial open :failed", err) ~-~- Open serial port failed
53 + end
54 + end
55 + end
56 +
57 + function reading(wri)
58 + obj:flush() ~-~- Clear serial port
59 + obj:write(wri) ~-~- Write serial port
60 + print(string.byte(wri,1,#wri))
61 + obj:flush() ~-~- Clear serial port 
62 + local readed =obj:read(9,1000) ~-~- Read 9 bytes, timeout 1 second
63 + if readed and readed ~~= "" then 
64 + ~-~- judge that a non-empty string is read
65 + print(string.byte(readed,1,#readed))
66 + a={string.byte(readed, 1, #readed)}
67 + if nil ~~= a[4] and nil ~~= a[5] and nil ~~= a[6] and nil ~~= a[7] then
68 + a1=a[4]*256+a[5]
69 + a2=a[6]*256+a[7]
70 + addr_setword("@HDW0",a1)
71 + addr_setword("@HDW1",a2)
72 + end
73 + return {string.byte(readed, 1, #readed)}
74 + elseif readed == nil then
75 + print("serial read err:", err or "")
76 + return nil
77 + end
78 + return nil
79 + end
80 +
81 +~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-