HMI逻辑语句
注意
所有的逻辑语句只能在上位编辑状态下写入控件的事件中,不支持串口传输逻辑语句。
所有的判断语句都不支持多余空格,添加进任何空格,编译都会报错
if语句
if-示例1:
如果password.txt等于”123456”那么就切换到admin页面
1if(password.txt=="123456")
2{
3 page admin
4}
if-示例2:
如果t0.txt不等于”a”也不等于b”那么就切换到页面1
1if(t0.txt!="a"&&t0.txt!="b")
2{
3 page 1
4}
if-示例3:
如果 10 < n0.val ≤ 100 那么就切换到页面1
1if(n0.val>10&&n0.val<=100)
2{
3 page 1
4}
if-示例4:
以下语句写在b0按钮的按下事件中将实现b0的txt内容在开始和停止之间来回切换
1if(b0.txt=="开始")
2{
3 b0.txt="停止"
4}else
5{
6 b0.txt="开始"
7}
if-示例5:
以下语句写在b0按钮的按下事件中将实现b0的txt内容在1,2,3之间来回切换
1if(b0.txt=="1")
2{
3 b0.txt="2"
4}else if(b0.txt=="2")
5{
6 b0.txt="3"
7}else
8{
9 b0.txt="1"
10}
注意
1.数值类型变量支持:
大于 >
小于 <
等于 ==
不等于 !=
大于等于 >=
小于等于 <=
2.字符串类型仅支持:
等于 ==
不等于 !=
3.if判断的时候不支持括号优先级,比如:if((t0.txt==”a”||t0.txt==”b”)&&t1.txt==”1”)这样是不支持的。
4.if判断的时候不允许出现运算,比如:if(n0.val+2==3)这样是不支持的,请提前用中间变量计算好,再在if中判断
5.不要出现多余的空格,会导致编译时报错
while语句
while-示例1:
n0.val一直自加到100为止,在自加过程中屏幕不会刷新显示,直到整个过程所有语句结束
1while(n0.val<100)
2{
3 n0.val++
4}
while-示例2:
while提前退出循环
1sys0=va0.id
2whileflag=1
3while(sys0<100&&whileflag==1)
4{
5 sys0++
6 if(b[sys0].val==1)
7 {
8 //提前退出循环
9 n0.val=sys0
10 whileflag=0
11 }
12}
while-示例3:
n0.val一直自加到100为止,在自加过程中屏幕会一直不断的刷新n0控件的显示
注意
1.在一个较多指令的过程执行中,或者在一个较长时间的循环语句中,系统所有控制权被此过程全部占用,在过程结束之前,尽管相应的内存数据可以任意正常读写,但是屏幕不会刷新显示,加入doevents后可以转让控制权给屏幕刷新,执行doevents之后,屏幕会刷新所有被改变过的控件,刷新完之后,控制权交回当前过程继续执行。防止屏幕呈现假死的显示状态。
2.while语句循环过程中,设备不会响应触摸事件,串口指令会接收到缓冲区,但不会执行,直到当前过程所有语句执行完毕为止,请慎重使用,以防进入死循环。
1while(n0.val<100)
2{
3 n0.val++
4 doevents
5}
for语句
for-示例1:
n0.val一直自加到100为止,在自加过程中屏幕不会刷新显示,直到整个过程所有语句结束
1for(n0.val=0;n0.val<100;n0.val++)
2{
3 //需要循环100次的代码
4}
for-示例2:
满足条件后退出for循环
1 for(sys0=n0.id;sys0<n19.id;sys0++)
2 {
3 if(b[sys0].val!=0)
4 {
5 //如果需要记录这个不为零的值,可以将它赋值给另一个变量
6 sys1=sys0
7
8 //使其不满足条件退出循环
9 sys0=100
10 }
11 }
for-示例3:
n0.val一直自加到100为止,在自加过程中屏幕会一直不断的刷新n0控件的显示
注意
1.在一个较多指令的过程执行中,或者在一个较长时间的循环语句中,系统所有控制权被此过程全部占用,在过程结束之前,尽管相应的内存数据可以任意正常读写,但是屏幕不会刷新显示,加入doevents后可以转让控制权给屏幕刷新,执行doevents之后,屏幕会刷新所有被改变过的控件,刷新完之后,控制权交回当前过程继续执行。防止屏幕呈现假死的显示状态。
2.for语句循环过程中,设备不会响应触摸事件,串口指令会接收到缓冲区,但不会执行,直到当前过程所有语句执行完毕为止,请慎重使用,以防进入死循环。
1for(n0.val=0;n0.val<100;n0.val++)
2{
3 //需要循环100次的代码
4 doevents
5}