如何在TouchWin HMI上实现数字按键输入显示及简易计算器功能?
TouchWin HMI数字输入与简易计算器实现方案
一、数字输入功能(0-9按键拼接显示)
1. 创建内部变量
打开KincoBuilder软件,进入变量管理界面,新建两个32位无符号整数类型的内部寄存器变量:
D100:存储拼接后的最终数字- (可选)
D101:临时存储当前按下的数字(也可直接在按键脚本中处理)
2. 配置数字按键
在界面拖入10个按键控件,分别设置显示文本为0-9。给每个按键添加按下事件脚本,以数字4为例,脚本逻辑如下:
D100 = D100 * 10 + 4;
其余数字按键只需把脚本末尾的数字替换为对应0-9即可。如果需要限制输入位数(比如最多4位),可添加判断逻辑:
IF D100 >= 1000 THEN D100 = (D100 % 1000) * 10 + 4; ELSE D100 = D100 * 10 + 4; END_IF
3. 设置数据显示区域
拖入数值显示控件,绑定变量D100,设置显示格式为十进制整数,调整控件位置和字体到指定的数据显示区域。
4. 可选:添加清零按键
新增一个清零按键,按下事件脚本为:
D100 = 0;
用于快速重置输入的数字。
二、简易计算器功能实现(仅HMI内部运算)
1. 补充内部变量
在变量管理中新增以下32位无符号整数变量:
D102:存储第一个运算操作数D103:存储运算符标记(1=加法,2=减法,3=乘法,4=除法)D104:标记是否已输入运算符(0=未输入,1=已输入)
2. 配置运算按键
在界面添加+、-、×、÷四个运算按键,以及一个=等于按键。
3. 编写按键脚本
数字按键脚本调整
修改原数字按键的脚本,支持区分前后操作数:
IF D104 == 0 THEN D100 = D100 * 10 + X; // X替换为当前按键对应的数字0-9 ELSE D100 = X; // 输入运算符后,第二个操作数从头开始计数 D104 = 0; END_IF
运算符按键脚本(以加法为例)
D102 = D100; // 保存第一个操作数 D103 = 1; // 标记当前为加法运算 D104 = 1; // 标记已输入运算符,准备接收第二个操作数
减法、乘法、除法按键只需将D103的值分别改为2、3、4即可。
等于按键脚本
CASE D103 OF 1: D100 = D102 + D100; // 执行加法 2: D100 = D102 - D100; // 执行减法 3: D100 = D102 * D100; // 执行乘法 4: IF D100 != 0 THEN D100 = D102 / D100; // 执行除法,避免除零错误 ELSE D100 = 0; END_IF; END_CASE D104 = 0; // 运算完成后,允许输入新的数字
清零按键脚本扩展
重置所有计算器相关变量:
D100 = 0; D102 = 0; D103 = 0; D104 = 0;
内容的提问来源于stack exchange,提问作者Prima Marianju
相关产品推荐
相关产品推荐

