数值、文本、密码입력都会弹键盘。VisualHMI 的键盘是可编程的화면——键盘上的键是「虚拟按键」控件,背后靠几个系统레지스터驱动。这篇把键盘管理和系统레지스터讲清楚,懂了这个,自定义键盘就不难。
1. 默认键盘
新建엔지니어링默认生成两个键盘:全键盘和数字键盘。文本입력支持 GBK、UTF8 编码。


2. 键盘管理
HMI 最多支持 10 个键盘,在【엔지니어링】→【键盘】设置:
- 활성화:勾选后可用
- 键盘화면:활성화后选择对应화면作为键盘화면;键盘화면可以复用(如数字键盘和密码键盘共用一个화면)
- 恢复默认键盘:按屏幕分辨率恢复默认键盘화면 100_digitxxxxxx、101_digitxxxxxx

3. 键盘系统레지스터(自定义键盘的核心)
| 레지스터 | 作用 |
|---|---|
| SysKBMax / SysKBMin | 数字键盘显示范围的最大值/最小值(跟随数值控件설정的范围) |
| SysKBSelect | 键盘모드:0=英文,1=数문자号,2=중국어 |
| SysKBPinyin / SysKBHanzi | 중국어입력的拼音、预选汉字显示 |
| SysKBText | 显示键盘录入的데이터 |

3.1 SysKBMax/Min:范围限制显示
数值控件설정了范围(如 0~100),弹出数字键盘会显示限定的最大/最小值。键盘화면上用两个数值控件显示 SysKBMin/SysKBMax,用 SysKBStatus.1 控制显示/隐藏(1=설정了范围限定)。

3.2 SysKBSelect:모드전환
0=英文(a~z、A~Z)、1=数문자号(!?#123)、2=중국어。键盘上放递增/递减버튼写 SysKBSelect(0~2 循环),配 3 个多状态指示灯显示当前모드。

3.3 SysKBPinyin/SysKBHanzi:중국어입력
입력 「guang」,SysKBHanzi 预选汉字显示「光 广 逛 咣...」。键盘화면加两个文本控件分别关联这两个레지스터。

3.4 SysKBText:录入데이터显示
显示键盘录入的콘텐츠,键盘화면加一个文本控件关联它。

4. 虚拟按键(键盘的「键」)
功能버튼的用途设为虚拟按键,就变成键盘上的键。支持的按键유형:
| 유형 | 설명 | 유형 | 설명 |
|---|---|---|---|
| 문자 | 0~9、a~z、可视化문자等 | Left | 预选汉字向左翻页 |
| 전환键盘 | 전환到目标键盘 | Right | 预选汉字向右翻页 |
| Enter | 回车 | Shitf | 문자전환(大小写/符号) |
| Space | 空格 | ESC | 退出 |
| 지우기 | 삭제所有입력 | Delete | 삭제单个문자 |

문자键最多填 4 个문자,多문자전환靠 Shitf 或 SysKBSelect:
- 填入 "q1":SysKBSelect=0(字母)时键码为 q;SysKBSelect=1(문자)时键码为 1
- 填入 "a~^":字母모드下 Shitf=0 录 a、Shitf=1 录 A;문자모드下 Shitf=0 录 ~、Shitf=1 录 ^

还有 图库状态(关联弹起/按下图库)、裁剪、使用文字(把문자栏콘텐츠直接显示出来)等属性。
5. 중국어입력:Left/Right 翻页
중국어键盘입력 「da」,预选汉字显示「大 打 达 答 搭...」。键盘화면上加两个功能버튼(虚拟按键→Left/Right)在预选汉字左右翻页。


6. 键盘전환
键盘화면可以用虚拟按键(유형=전환键盘)互相전환。例程中建 3 个화면 「105_abc」、「106_number」、「107_char」,用전환按键在各键盘间跳转。

整理自 广州大彩科技 VisualHMI 개발문서(hmi-doc.gz-dc.com)자료介绍「键盘」,版权归大彩科技所有。
답글 작성