条件判断执行指令说明 "IF1=0"

变能王工 2018-7-24 11442

IF ——条件判断执行指令 例:IF1=0,J8; 表示输入1口为0条件满足时

执行并入同行的跳转指令。同理例:IF1=0,F500; 例:IF1=0,L100;

如果条件不满足直接执行下一行的指令

1.条件判断执行指令式例说明:

>IF1=0,X+100; //输入1口 0电平时,电机移动

>IF1=0,END; //输入1口 0电平时,控制器停止工作

>IF1=1,J10; //输入1口 1电平时,跳转到第10行


2.(仅MAX版本支持)多条件判断指令如下   (多个条件都满足才执行,并在后面指令,否则跳过执行下一行)

>IF10=0,IF11=1,IF12=0,IF13=0,X+100 ;

由于指令单行字符限制,实际书写格式如下:(结尾加& 是指令换行)


PLUS版本  .增加虚拟输入输出口标志位  50~59(输入输出等同)

例1:
>DT51=0;   将51标志设置为0
>IF51=0,END;   判断51标志位0结束程序
>X++ ; 这行不会执行
例:
>DT51=1;    将51标志设置为1
>IF51=0,END;    判断51标志位0结束程序
>X++ ; 这行才会执行


2022.08.19更新 .将虚拟输入输出口标志位  50~59(输入输出等同)改为90~99,为了和MAX版本指令匹配

其中 DT90~DT99是设置标志位    IF90~IF99是取标志位状态(并J跳转实现原地等待),即虚拟IO口 (切记不支持DI90 等待指令去读标志,这里很容易错)

例1:
>DT91=0;   将51标志设置为0
>IF91=0,END;   判断51标志位0结束程序
>X++ ; 这行不会执行
例:
>DT51=1;    将51标志设置为1
>IF91=0,END;    判断51标志位0结束程序
>X++ ; 这行才会执行


提示:标志位不能用DI等待指令

例如 :DI91=0;  是错误的

如果指令在第一行 可以写

>IF91=1,J1;   来代替 ,当有满足低信号时就会往下执行


以BE2023  2029 多线程虚拟输入口标志位案例举例:

第一套程序 :

1
2
3
4
5
>001:DT90=1;     执行输出口90为高电平 
>002:X+10;     X轴正向移动10
>003:DT90=0;     执行输出口90为低电平 
>004:L5000;     延时时间毫秒设定为5000
将本内容全部直接复制后,到程序编辑界面粘贴即可。

第二套程序:

1
2
3
4
5
>001:0L1;     延时时间毫秒设定为1
>002:IF90=1,J1;     如果条件满足就执行,不满足就忽略在一行的指令,条件为输入口90为高电平  满足执行否则跳过 跳转到指定行1
>003:Y+15;     本套程序多线程同时运行,Y轴正向移动15
>004:Y-15;     Y轴反向移动15
将本内容全部直接复制后,到程序编辑界面粘贴即可。

虚拟输入口90, 这两套程序同时执行,第1线程给信号让第2线程启动,实现交互运行。

关键在第一行指令>001:DT90=1;     将虚拟输入口 复位。

否则即使重新上电开机 这个虚拟输入口90为上次指令的执行的状态,断电也会记忆。


最新回复 (2)
  • cxx 2021-2-26
    0 引用 2
    试了多条件无效啊,只要满足了最后一条条件就运行了
  • 变能王工 2021-11-17
    0 引用 3
    17款以上才有这个功能  16款 没有这个多条件判断功能
    • 深圳市变能科技有限公司-专注工业运动控制,运动控制卡,运动控制器
      4
        立即登录 立即注册 
返回