• 沒有找到結果。

EXIT

在文檔中 软 件 (頁 70-0)

2 参数部分

2.2 命令索引

2.2.19 EXIT

2.2.19.1 摘要信息

无条件退出循环。

2.2.19.2 语句

2.2.19.3 说明

EXIT出现在语句块循环中。它可以在任何循环中使用。

EXIT能被用于退出当前的循环。程序在ENDLOOP语句后继续。.

2.2.19.4 范例

从无穷的循环中退出。

LOOP

A=(A+1)*0.5/B IF A>=13.5 THEN

EXIT ENDIF ENDLOOP

FOR,WHILE,REPEAT,LOOP

长沙工控帮教育科技有限公司

71 2.2.20.1 摘要信息

声明外部的子程序。.

2.2.20.2 语句

自变量 类

型 解释

Program_

Source 识别子程序的名字和路径。.

Parameter_

List

参数列表包含下面的说明:

所有外部子程序的参数的数据类型的定义次序。

在参数数组的情况下,数组的尺维数有下列符号:

[ ] 一维数组 [,] 二维数组 [,,]三维数组 各自参数传送指令:

:IN 输入参数(由值调入)

:OUT 输出参数(由参数调入)(默认值)

参数列表的次序必须被遵守。单独的参数由逗号区分。

EXT声明不能在子程序中使用

2.2.20.3 说明

EXT声明用于确定在主程序中可调用的外部子程序。只有主程序可以使用 (程序名与作 为SRC文件的名子相同),在相同的文件中没有其他的子程序。另外在SRC文件中的子程 通常用关键字GLOBAL识别。

EXT声明必须被用于产生被调用子程序的名字和路径和编辑器使用的参数。通过制定参 数列表,必须的存储空间也是明确定义的。

长沙工控帮教育科技有限公司

72 2.2.20.4 范例

声明在目录R1中名为SP1的外部子程序。

EXT /R1/SP1( )

声明名为SP1的外部子程序和声明必要的参数。

EXT /SP1(INT,REAL:IN,CHAR[ ],INT[,,]:IN) 声明名为SP1的外部子程序和声明必要的参数。.

DEF PROG( ) ;主程序

EXT SP1(INT:OUT,REAL:OUT,BOOL:IN) INT A

REAL B BOOL C ...

SP1(A,B,C) ...

END

DEF SP1 (X1:OUT,X2:OUT,X3:IN);外部子程序 INT X1

REAL X2 BOOL X3 ...

END

DEF,EXTFCT

长沙工控帮教育科技有限公司

73

2.2.21 EXTFCT

2.2.21.1 摘要信息

声明外部局部函数。

2.2.21.2 语句

自变量 类型 解释

Data_Type 数据类型必须符合函数声明。

Program_ Source 识别函数使用的路径和名字。

Parameter_ List T数据列表包含下列说明: 

所有外部函数的参数的数据类型的定义次序。

在参数数组的情况下,数组的尺维数有下列符号:

[ ] 一维数组 [,] 二维数组 [,,]三维数组 各自参数传送指令:

:IN 输入参数(由值调入)

:OUT 输出参数(由参数调入)(默认值)

参数列表的次序必须被遵守。单独的参数由逗号区分。

EXTFCT声明不能在子程序中使用。

2.2.21.3 说明

EXTFCT声明用于识别程序中调用的外部函数。只有主程序能使用 (函数名与作为SRC 文件的名子相同),在相同的的文件中没有其它的函数。另外在SRC文件中的函数通常使 用关键字GLOBAL识别。

使用EXT声明使编译器可以认识被调用的子程序的名字和路径及参数。通过参数列表,

指定存储空间。

长沙工控帮教育科技有限公司

74 2.2.21.4 范例

声明在目录R1中名为FCT1的外部函数。

EXTFCT /R1/FCT1( ) DEF PROG( ) ;主程序

EXTFCT INT DELTA(INT:OUT,INT:IN) INT A,B,C

...

A=5 B=20

C=DELTA(A,B)

;调用函数 ...

END

声明名为FCT1的外部函数而且传送参数。

EXTFCT /FCT1(INT,REAL:IN,CHAR[ ],INT[,,]:IN) 声明名为FCT1的外部函数而且传送参数。

EXTFCT FCT1(INT:OUT,REAL:OUT,BOOL:IN)

在函数中,两个的变量被计算和传送到主程序是有差别的。变量的值在调用函数之 后::A=15,B=20,C=15.

DEF PROG( )

;主程序

EXTFCT INT DELTA(INT:OUT,INT:IN) INT A,B,C

...

A=5 B=20

C=DELTA(A,B)

;函数调用 ...

END

DEFFCT INT DELTA(X1:OUT,X2:IN)

;外部函数

INT X1,X2,X3 X1=X2-X1

X3=X1 RETURN(X3)

ENDFCT

长沙工控帮教育科技有限公司

75 DEFFCT,EXT

长沙工控帮教育科技有限公司

76

2.2.22 FOR...TO...ENDFOR

2.2.22.1 摘要信息

循环计算。

2.2.22.2 语句

自变量 类型 解释

Counter INT 循环计算使用整数变量 Start INT 表达式指定计算器最初的值。

End INT 表达式指定计算器最后的值。

Increment INT 算术表达式的计算器总量由每个执行的循环增加:

增量可能是负数 增量可能是零 增量可能是变量

如果增量被指定,那么默认值为1。

2.2.22.3 说明

指定运行数能真正明确FOR循环被程序使用。循环运行由计算器帮助计算。

执行FOR的条件:

 通过正增量:如果计算器的值比最后的值大,那么循环结束。

 通过负增量:如果计算器的值比最后的值小,那么循环结束。

执行的条件是在任何一个循环运行之前选择。在个别的情况下FOR循环不能完全执行。

表达式类型的整数必须给出计算器的最初和最后的值。表达式求一次循环开始的值。计 时器被最初的值调整和增加或在循环运行后消耗。

增加可以不是0。如果不指定增加,那么默认的值是1。负值也能被用于增加。

计数器的值能在循环语句的内部和外部使用。在循环内部,作为排列处理的最新的指数,

在循环外,计数器保留大部分新近来的值。

为了每个FOR语句都必须ENDFOR语句对应。在循环执行完成后,程序在 遇见ENDFOR 后返回第一个指令。使用EXIT语句循环可以提前退出。

长沙工控帮教育科技有限公司

77 在10循环中变量B每次增加1。

FOR A=1 TO 10 B=B+1

ENDFOR

在两级FOR循环中,增加计数器A后每次运行通过计数器的值增加变量B。变量B达到10,循 环提前退出。

FOR A=1 TO 15 STEP 2 B=B+A

IF B==10 THEN EX

IT ENDIF ENDFOR

EXIT,SWITCH,REPEAT,WHILE,LOOP

长沙工控帮教育科技有限公司

78

2.2.23 GOTO

2.2.23.1 摘要信息

无条件跳跃语句 2.2.23.2 语句

自变量 类型 解释

Marker Marker说明跳跃语句的目的地

2.2.23.3 说明

无条件跳跃语句GOTO是程序编程指令。在GOTO语句使用后,通过GOTO语句程序将 在指定的位置恢复执行。

作为GOTO语句的目的地必须是在同一个子程序和函数中。它通过跟随标记冒号定义。

在IF语句或在循环中跳跃到外面,或从一个CASE语句跳跃到到另一个CASE语句 是不可能的。

当使用GOTO时,程序很快变得混乱和无组织的。它比使用分支语句IF或选择语句 SWITCH代替要好。

2.2.23.4 范例

无条件的跳跃到程序的MARKER_1位置。

GOTO MARKER_1

无条件的从IF语句跳跃到程序END的位置.

IF X>100 THEN GOTO END ELSE X=X+1 ENDIF A=A*X ...

END:

END

IF,SWITCH,REPEAT,WHILE,LOOP

长沙工控帮教育科技有限公司

79 2.2.24.1 摘要信息

中断程序的执行和停止处理。

2.2.24.2 语句

2.2.24.3 说明

HALT语句停止程序的执行。最后的运动指令被无论如何被完全执行。

程序只有重新使用开始键才能执行。在HALT后的下一个指令被执行。.

在中断程序,在前面的程序完全执行后程序执行停止。在BRAKE语句的情况下,程序立 即执行停止。

WAITFOR,WAITSEC,BRAKE

长沙工控帮教育科技有限公司

80

2.2.25 IF...THEN...ENDIF

2.2.25.1 摘要信息

依靠逻辑表达式的结果执行语句。

2.2.25.2 语句

自变量 类型 解释

Condition BOOL 逻辑表达式能包含布尔变量、布尔函数或布尔结果的逻辑操作。

2.2.25.3说明

分支语句IF是程序执行指令。它依靠第一语句块(THEN black)或第二的语句块(ELSE block)来执行。程序由语句后跟随的ENDIF延续。

语句块中的包含的语句数是没有限制的。几个IF语句可以互相嵌套。

关键字ELSE和第二语句块可以被省略。如果条件没有满足,程序继续直接立即运行到 ENDIF。

在任何IF中必须有ENDIF。

2.2.25.4 范例

没有第二语句块IF循环。.

IF A==17 THEN B=1

ENDIF

有第二语句块IF循环。

IF $IN[1] THEN

$OUT[17]=TRUE ELSE

$OUT[17]=FALSE ENDIF

长沙工控帮教育科技有限公司

81

2.2.26 IMPORT...IS...

2.2.26.1 摘要信息

从数据列表输入数据。

2.2.26.2 语句

自变量 类型 解释

Data_Type 数据必须是在外部数据列表中公告过的数据类型。

Import_Name 引入数据能被分配一个与外部数据列表中的数据名不 同的名字。

Data_Source 数据的来源看作被调入的数据在数据列表中的路径和 名字。

Data_Name 数据名与变量名分配在外部数据列表中的数据符合。

2.2.26.3 说明

IMPORT语句允许外部的数据列表影响访问“PUBLIC”的属性。IMPOR语句允许变量,

完整的排列或排列元素从外部的数据列表定义你自己的程序活数据列表。任何变量的调 入需要IMPORY语句承认。已经被调入的变量不能使用其它IMPORT语句分配。变量必 须从最初创建的数据列表中调入。

数据必须由外部数据列表公告的类型相同的数据调入。直到连线操作执行,系统才检查 正确的数据被选择。

数据能在你自己的数据列表或有外部数据列表的程序有不同的名字。数据列表的目录和 名字由路径指定。数据名与外部数据列表中的名字相应。

数据来源和数据名在两个周期内互相连接。在两个周期内没有空白。

长沙工控帮教育科技有限公司

82 2.2.26.4 范例

从数据列表DATA中调用整数变量VALUE的值。

IMPORT INT VALUE IS /DATA..VALUE 简化格式

IMPORT INT VALUE

在数据列表R1/POSITION中调用POS排列POS_EX。

IMPORT POS POS1[ ] IS /R1/POSITION..POS_EX

DEFDAT

长沙工控帮教育科技有限公司

83

2.2.27 INTERRUPTDECL...WHEN...DO

2.2.27.1 摘要信息

声明中断。.

2.2.27.2 语句

自变量 类型 解释

GLOBAL 关键字GLOBAL用于识别中断包括子程序以上级别

的被公告的中断。

如果中断在子程序中公告,那么在主程序调用时是经 过验证的。.

Prio INT 算术表达式指定先前的中断。先前的级别1到128可用,

但是系统自动优先分配40到80范围保留。.

Event BOOL 逻辑表达式定义中断的结果。下面是允许的:

布尔常量 布尔变量 信号名 比较

简单的逻辑操作:NOT,OR,AND或EXORT 不能用于:

◆结构部分

Subprogram 子程序的名字和参数(中断程序),它在中断出现时执 行。

如果程序被延伸到HAL语句,中断依然被检测和执行(包括运动指令)。在指令被执行后,程序 在HALT语句暂停一次。

中断声明是指令。它不是必须在声明部分定位。

在第一次公告时,中断被解除和失效。

运行时间变量可能不作为中断程序的参数被传送和在数据列表中区分变量公告。

长沙工控帮教育科技有限公司

84 同时最多公告32个中断。

2.2.27.3 说明

中断功能允许用户在程序执行的不同时发生事件使用程序语句来反映。这种事件可以是 紧急停止,错误信息和输入信号。中断可能的原因和系统对对中断声明的各自的定义的 反映。中断可以被分配优先权,事件和中断程序可以被调用。在相同的时间内可以调用 32个中断。声明可以在任何时候被另一个声明覆盖。

如果下面所有的四个条件都满足,定义中断触发一个反映::

1. 中断必须被触发(中断打开).

2. 中断必须被允许(中断使能).

3. 中断必须是最高级。

4. 有关的事件必须发生。事件发生由边沿触发。(边沿触发)

如果几个中断同时出现,最高级的中断首先执行,然后按优先级高低顺序执行。中 断直到声明级别后才发现。高级别的编程尽管中断被激活,中断仍不能识别。换句话说,

在子程序识别中断不能被主程序识别。为了识别主程序的中断和级别,它必须作为全球 的公告。

在事件被发现后,机器人存储当前的位置和调用中断程序。中断可以被本地子程序和外 部子程序使用。中断在结束时使用RENTURN和END语句是惯例。中断程序是在随后中 断出现的位置恢复(除了RESUME的情况)。

在一般程序中触发先前运行中止语句,不能在子程序中这样做。中断程序在命令等级上

在一般程序中触发先前运行中止语句,不能在子程序中这样做。中断程序在命令等级上

在文檔中 软 件 (頁 70-0)