分期(租赁锁机):到约定时间自动锁屏,输密码才解锁。适合设备试用、分期付款。系统方案是「到期前锁定」,自定义方案(见 04)是「到期才锁」。
1. 설정
엔지니어링 → 엔지니어링设置 → 分期使用:활성화分期、分期数(最大10)、到期锁定화면 ID、每期到期日和密码。

2. 锁定界面与系统레지스터
锁定화면放两个数值控件:密码입력绑定 $SysStageEnterPwd(LW0205,UINT32)、当前期号绑定 $SysStageTimeLevel(LW0204,UINT16,缩放1偏移1)。

3. 分期时间掉电存储(LUA)
改分期时间需写系统레지스터 SysCfgCtrl(0x011A)/SysCfgOption(0x011B):
function on_update(slave,vtype,addr)
if vtype == VT_LW then
if addr >= 0x0210 and addr <= 0x0218 then -- 5个分期时间주소
set_uint16(VT_LW, 0x011B, (1<<5)) -- 选择分期密码
set_uint16(VT_LW, 0x011A, 0x5501) -- 저장
end
end
end

4. 分期密码(不读只写)
set_stage_pwd(level, pwd):level 0~9 对应分期1~10,pwd 为数字密码。首次使用把密码쓰기 RW 区(检测标识位 0x0055 防重复初始化):
function on_init()
local _val = get_uint16(VT_RW, 0x2000)
if _val ~= 0x0055 then
set_uint32(VT_RW, 0x0000, 1111)
set_uint32(VT_RW, 0x0002, 2222)
set_uint32(VT_RW, 0x0004, 3333)
set_uint32(VT_RW, 0x0006, 4444)
set_uint32(VT_RW, 0x0007, 5555)
set_uint16(VT_RW, 0x2000, 0x0055)
end
set_uint16(VT_LW, 0x011B, (1<<5))
set_uint16(VT_LW, 0x011A, 0x5502) -- 从set_stage_pwd后的密码불러오기
end

5. 恢复与开关
恢复分期写 SysCfgCtrl=0x5503;动态开关通过写 LW0200(分期数 0 或 1)+ 저장实现。所有涉及分期的写 RW/系统레지스터操作都要配合 SysCfgCtrl/SysCfgOption 저장。

分期密码是只写不读的:你想让用户改密码或初始化,得自己在 RW 区镜像一份,再用 set_stage_pwd 同步。每次改完记着调 SysCfgCtrl(0x011A)/SysCfgOption(0x011B) 저장,否则掉电丢。
整理自 广州大彩科技 VisualHMI 개발문서(hmi-doc.gz-dc.com)其他기술튜토리얼「分期적용(系统)」,版权归大彩科技所有。
답글 작성