工业机器人应用案例集锦
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 程序结构指令详解

2.4.1 无条件跳转指令

GoTo—无条件跳转指令。

On GoTo—对应于指定的变量值进行相应行的跳转(1,2,3,4,…)。

2.4.2 根据条件执行程序分支跳转的指令

(1)功能

本指令用于根据“条件”执行“程序分支跳转”的指令,是改变程序流程的基本指令。

(2)指令格式1

    If <判断条件式>Then<流程1>□[Else<流程2>]

①这种指令格式是在程序一行里书写的判断-执行语句,如果“条件成立”就执行Then后面的程序指令,如果“条件不成立”就执行Else后面的程序指令。

②指令例句1

    10  If M1>10 Then*L100′——如果M1大于10,则跳转到*L100行。
    11  If M1>10 Then GoTo*L20 Else GoTo*L30′——如果M1大于10,则跳转到*L20行,否则跳转到*L30行。

(3)指令格式2

如果判断-跳转指令的处理内容较多,无法在一行程序里表示,就使用指令格式2。

    If<判断条件式>
    Then
    <流程1>
    Else
    <流程2>]
    EndIf

说明:如果“条件成立”则执行Then后面一直到Else的程序行,如果“条件不成立”执行Else后面到EndIf的程序行。EndIf用于表示流程2的程序结束。

①指令例句1:

    10  If M1>10 Then′——如果M1大于10,则执行下一行。
    11  M1=10′——赋值。
    12  Mov P1′——前进到P1点。
    13  Else′——否则。
    14  M1=-10′——赋值。
    15  Mov P2′——前进到P2点。
    16  EndIf′——选择语句结束。

②指令例句2:多级If…Then…Else…EndIf嵌套。

    30  If M1>10 Then′——第1级判断—执行语句。
    31  If M2>20 Then′——第2级判断—执行语句。
    32  M1=10′——赋值。
    33  M2=10′——赋值。
    34  Else′——否则。
    35  M1=0′——赋值。
    36  M2=0′——赋值
    37  EndIf′——第2级判断-执行语句结束。
    38  Else′——否则。
    39  M1=-10′——赋值。
    40  M2=-10′——赋值。
    41  EndIf′——第1级判断-执行语句结束。

③指令例句3:在对Then及Else的流程处理中,以Break指令跳转到EndIf的下一行(不要使用GoTo指令跳转)。

    30  If M1>10 Then′——第1级判断-执行语句。
    31  If M2>20 Then Break′——如果 M2>20就跳转出本级判断执行语句(本例中为39行)。
    32  M1=10′——赋值。
    33  M2=10′——赋值。
    34  Else′——否则。
    35  M1=-10′——赋值。
    36  If M2>20 Then Break′——如果M2>20就跳转出本级判断执行语句(本例中为39行)。
    37  M2=-10′——赋值。
    38  EndIf′——第3级判断语句结束。
    39  If M_BrkCq=1 Then Hlt′——判断。
    40  Mov P1′——前进到P1点。

(4)说明

①多行型指令“If…Then…Else…EndIf”必须书写EndIf,不得省略,否则无法确定“流程2”的结束位置。

②不要使用GoTo指令跳转到本指令之外。

③嵌套多级指令最大为8级。

④在对Then及Else的流程处理中,以Break指令跳转到EndIf的下一行。