一个小项目用到的是大彩4寸的480*480屏,第一次使用LUA实现逻辑控制。遇到点问题请问下:
系统是串口屏485+一个电压表+一个4入4出的485 I/O模块。
现在写的LUA程序读不到外部1x0000的状态
画面上分别绑定了0x0000、1x0000、1x0001的位状态指示控件,现在0x0000变化能正常运行,其余两个不行。
顺便问下select_slave()函数写不写都能读到0x0000?
_ENCRYPT_=0 --LUA脚本加密 -- 数据类型定义 VT_LW = 1 --变量地址 VT_RW = 2 --FLASH存储 VT_0x = 10 VT_1x = 11 VT_3x = 12 VT_4x = 13 local A = 0x1001 local B = 0 local start_test = 0x1004 function on_init() start_timer(1, 5, 0, 0) select_slave(2) end function on_run(screen) end function on_update(slave, vtype, addr) --检测绑定的2号从机线圈位状态指示灯,这个单独运行正常可以检测到 if vtype == VT_0x then if addr == 0 then set_uint16(VT_LW, 0x1005, 8) End --检测画面绑定的2号从机离散输入0和离散输入1,不能读到状态 elseif vtype == VT_1x then if addr == 0 then set_uint16(VT_LW, 0x1005, 0) elseif addr == 1 then set_uint16(VT_LW, 0x1005, 1) end end end function on_timer(timer_id) if timer_id == 1 then B = (B + 1) % 100 set_uint16(VT_LW, A, B) end
|