滑动화면是容器型控件:在主화면定义一个矩形视窗,手指左右/上下滑动전환一组预设화면,像手机桌面分页。支持固定范围、动态范围、任意화면集合三种。
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)구성(SCADA)控件튜토리얼「滑动화면」,版权归大彩科技所有。
답글 작성