滑动画面是容器型控件:在主画面定义一个矩形视窗,手指左右/上下滑动切换一组预设画面,像手机桌面分页。支持固定范围、动态范围、任意画面集合三种。
1. 三种滑动范围
| 模式 | 说明 | 地址布局 |
|---|---|---|
| 固定 | 固定范围内滑动(开始画面~结束画面) | addr=当前画面ID,addr+1=开始,addr+2=结束 |
| 动态 | 连续画面范围可运行时改(如 5~7、8~11) | 同上(开始/结束可改) |
| 任意 | 任意画面集合(如 {13,16,15,14}) | addr=当前ID,addr+1=数量N,addr+2~addr+N=各画面ID |

其他属性:滑动方向(左右/上下)、循环滑动(到尾可回开头)、滑行时间(松开后自动滑行 ms)。

⚠️ 设计时不要把有滑动操作的控件(如滑块)布局在滑动窗口范围内——滑块滑动方向和页面滑动方向一致时,优先响应控件操作,不执行页面滑动。另外开始画面必须在滑动集合内,集合内画面 ID 不能重复。
2. 应用案例
2.1 固定范围 + 导航点
滑动范围固定(2_固定范围1 ~ 4_固定范围3),方向左右,读写地址 LW8000。配多状态指示灯做导航点:读取 LW8000,状态数 3,转换表 2;3;4(对应画面 2~4)。滑动时导航点跟随。


2.2 动态范围(LUA 改范围)
滑动范围动态,开始 5_动态范围1、结束 7_动态范围3,方向上下,循环,读写 LW8100(8100=当前、8101=开始、8102=结束)。位状态指示灯(LWF000)切换两套范围,LUA on_update 里改寄存器:
if key == 0 then set_uint16(VT_LW, 0x8100, 5) -- 当前页 set_uint16(VT_LW, 0x8101, 5) -- 开始 set_uint16(VT_LW, 0x8102, 7) -- 结束 elseif key == 1 then set_uint16(VT_LW, 0x8100, 8) set_uint16(VT_LW, 0x8101, 8) set_uint16(VT_LW, 0x8102, 11) end
两个导航多状态指示灯按 LWF000 值条件显示(==0 显示范围1导航,==1 显示范围2导航)。


2.3 任意画面集合
滑动范围任意,画面集合 13;16;15;14,方向上下,循环,读写 LW8200(8200=当前、8201=数量、8202+ =各画面ID)。LUA 用 set_array 改集合:
set_uint16(VT_LW, 0x8200, 13)
set_array(VT_LW, 0x8201, {4, 13, 16, 15, 14}) -- 数量4 + 各画面ID


动态/任意范围改集合时,导航多状态指示灯要配控件权限(条件地址 + 比较)按模式显示对应导航,否则两套导航同时亮。
整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)组态控件教程「滑动画面」,版权归大彩科技所有。
发表回复