• 沒有找到結果。

SWITCH...case...ENDSWITCH

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

2 参数部分

2.2 命令索引

2.2.41 SWITCH...case...ENDSWITCH

2.2.41.1 摘要信息

在几个语句分支中选择。

2.2.41.2 语句

自变量 类型 解释

Selection_

Criterion

INT,CHAR,

列举类型 选择标准能被变量,函数调用或指定表达似的数据类型。.

Block _Identifier

INT,CHAR, ENDSWITCH后重新开始。

几个块标识符能分配在一个程序分支中。另一方面,它几次使用一个块标识符是不明智 的,作为首个分支有相应的经过考虑的标识符。

数据类型的选择标准和块标识符必须符合。SWITCH语句必须最少包含一个CASE语句;

它必须确保没有空白行或注释出现在SWITC指令和第一个CASE语句之间。

DEFAULT语句可以被忽略。在SWITCH语句中默认的语句可能只出现一次。

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

120 SWITCH语句不能使用EXIT语句提前的退出。

2.2.41.4 范例

选择标准和整数类型的块标识符。DEFAULT语句在这儿用于输出错误信息。

SWITCH VERSION CASE 1

SP_1( ) ;调用子程序SP_1 CASE 2,3

SP_2( ) ;调用子程序SP_2 SP_3( ) ;调用子程序SP_3 SP_3A( ) ;调用子程序SP_3a DEFAULT

ERROR_SP( );调用子程序ERROR_SP ENDSWITCH

选择标准和字符类型的块标识符。语句SP_5( )从不执行,因为块标识符“JOHN”出现了两次。

SWITCH NAME CASE ”ALFRED”

SP_1( );调用子程序SP_1 CASE ”BERT”,”JOHN”

SP_2( );调用子程序SP_2 SP_3( );调用子程序SP_3 CASE ”JOHN” SP_5( );调用子程序SP_5ENDSWITCH

EXIT,FOR,REPEAT,WHILE,LOOP

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

121 2.2.42.1 摘要信息

“SWRITE”语句使得它能组合几个数据到数据组。

2.2.42.2 语句

自变量 类型 解释

String1 CHAR[ ] 操作串2写入到字符数组中。

State STATE_T 这结构返回的关于用户估计核心系统状况得信息。

STATE.MSG_NO如果在命令执行期间出现错误,

那么这个变量包含错误数字。

布尔值作为0或1输出。ENUM值作为数字。.

2.2.42.3 说明

122 由于输入的宽度,你能指定多少字节被延长或压缩。在这儿REAL值除外。

当压缩一个值,高位字节被忽略;当值被延长时,在结尾增加零字节(little endian format)。

如果没有指定宽度,固有的输出表示:INTEGER,REAL和ENUM 4字节,BOOL和CHAR 1 字节。

错误的格式可以由HITS的值推断。(看下面)。

Format Variable

%

(Signal)

INT X X

INT array X X X X

REAL X

REAL

array X X

(Signal)

BOOL X

123 2.2.42.4 范例

复制变量HUGO的内容到变量BERTA INTOFFSET

DECLSTATE_TSTATE DECLCHARHUGO[20]

DECLCHARBERTA[20]

OFFSET=0 HUGO[ ]=“TEST”

BERTA[ ]=”“

SWRITE(BERTA[ ],STATE,OFFSET,HUGO[ ])

;结果:BERTA[ ]=“TEST”

; 由参数调用作为“OFFSET的变量”,变量现在为值4

;重复相同的命令

SWRITE(BERTA[ ],STATE,OFFSET,HUGO[ ])

;结果:BERTA[ ]=“TESTTEST”

OFFSET=OFFSET+1

SWRITE(BERTA[ ],STATE,OFFSET,HUGO[ ])

;结果:BERTA[ ]=“TESTTESTTEST”

利用格式化字符 INTOFFSET INTNO

DECLSTATE_TSTAT DECLCHARHUGO[20]

DECLCHARBERTA[20]

NO=1 OFFSET=0

HUGO[ ]=”TEST%d”

BERTA[ ]=”“

SWRITE(BERTA[ ],STATE,OFFSET,HUGO[ ],NO)

;结果:BERTA[ ]=“TEST1“

OFFSET=OFFSET+1 NO=22

SWRITE(BERTA[ ];STATE,OFFSET,HUGO[ ],NO)

;结果:BERTA[ ]=“TEST1TEST22”

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

124

2.2.43 TRIGGER WHEN DISTANCE...DO

2.2.43.1 摘要信息

由轨迹触发相关机器人的开关相应的动作。

2.2.43.2 语句

自变量 类型 解释

Distance

INT 变量或常量指定开关操作的发生:

DISTANCE=0 在开 DISTANCE=1 在关 仅有这两个值可以分配!

Time INT 变量或常量能延迟或超前使用开关操作:如果值是:

肯定的 语句执行延迟  否定的 语句执行超前.

单位是毫秒。

Statement 指令能是 

分配值到变量或PULSE语句或调用的子程序 子程序像执行中断指令一样被执行。

想得到的优先权必须依靠操作PRIO指定。

Priority INT 变量或常量指定中断的优先权触发调用子程序的 语句被分配优先权。优先权1-39级和81-128级 是可用到的。优先权40-80级由系统保留而且如 果输入优先权-1值系统会自动分配。1级中断有最高 优先权。

2.2.43.3 说明

TRIGGER语句能被用于子程序的执行或距离规标准下分配一个数值到机器人动作所依 靠的变量。

指定在运动块的开始或依靠限定距离的结束的开关动作定义轨迹触发:

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

125 DISTANCE=1 目标点

在近似定位的情况下,DISTANCE=1意味着目标点在其后的近似定位的中间。如果以前 的块已经是近似定位块,DISTANCE=0意味着目标点在以前的近似定位的目标点 由在指定的一段时间中使用的DELAY选项可能延迟或提前语句的执行。开关点能被延迟

TRIGGER WHEN DISTANCE=0 DELAY=130 DO $OUT[8]=TRUE 开关在下一个动作结束时;调用子程序优先级为5.

TRIGGER WHEN DISTANCE=1 DO QUOTIENT(DIVIDEND,DIVISOR)PRIO=5 使用指定的动作次序和DELAY选项定义开关的范围。

DEF PROG( ) ...

PTP POINT0

TRIGGER WHEN DISTANCE=0 DELAY=40 DO A=12

;开关范围:0--1

TRIGGER WHEN DISTANCE=1 DELAY=-20 DO SP1( ) PRIO=10

;开关范围:0--1 LIN POINT1

TRIGGER WHEN DISTANCE=0 DELAY=10 DO SP2(A) PRIO=5

;开关范围:1--2’B

TRIGGER WHEN DISTANCE=1 DELAY=15 DO B=1

;开关范围:2’B--2’E

LIN POINT2 C_DIS

TRIGGER WHEN DISTANCE=0 DELAY=10 DO SP2(B) PRIO=12

; 开关范围:2’E--3’B

TRIGGER WHEN DISTANCE=1 DO SP(A,B,C) PRIO=6

; 开关范围:3’B--3’E LIN POINT3 C_DIS

TRIGGER WHEN DISTANCE=0 DELAY=50 DO SP2(A) PRIO=4

; 开关范围:3’E--4

TRIGGER WHEN DISTANCE=1 DELAY=-80 DO A=0

; 开关范围:3’E--4 LIN POINT4

...

END

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

126 INTERRUPTDECL, INTERRUPT ,PULSE

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

127

2.2.44 TRIGGER WHEN PATH...DO

2.2.44.1 摘要信息

轨迹延迟触发机器人相应动作的开关。.

2.2.44.2 语句

自变量 类型 解释

Distance INT 用毫米指定相应开关动作被延迟的与下一个运动的目标点的距离。

如果被延迟的开关动作在到达目标点前,则Distance为负值。

如果Distance为正值,被延迟的开关动作在到达目标点后。

如果目标点是近似定位点,那么Distance是近似定位运动的中心点。

由于正值Distance,它可以转化开关点远到在触发后被编程的的精确点。

如果开始点是近似定位点,开关点能被替换远到近似定位范围的开始。

Time INT 规定的“Time”用于轨迹触发的开关点的延迟或超前的 由时间的数量定义的标准。

开关点仅能被上面指定的范围替换。

单位是毫秒。

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

128

Statement 指令能分配一个值到变量或一个PULSE 语句或调 用一个子程序

子程序可以像中断程序一样被执行。想得到 的优先权必须由操作PRIO的方法指定。

Priority INT

变量或常量指定中断的优先权触发调用子程序的 语句被分配优先权。优先权1-39级和81-128级 是可用到的。优先权40-80级由系统保留而且如 果输入优先权-1值系统会自动分配。1级中断有 最高优先权。

2.2.44.3 说明

如果你使用TRIGGER语句,你能在任何沿轨迹触指定距离的位置触发发开关动作。使用

“Trigger when Distance”语句他能再一次增加开关点的提前或延迟。

以被计算出的标准距离的轨迹为条件控制位置,由近似定位决定的运动,在台面上的显 示。标准时间总是由轨迹计算出来的。开关点的范围依靠在近似定位中在台面上的显示 而决定。

指令次序:

LIN POINT2 C_DIS

TRIGGER WHEN PATH = Y DELAY= X DO

$OUT[2]=TRUE LIN POINT3 C_DIS LIN POINT4 C_DIS LIN POINT5

自从开关点能被编程的前的运动点替换后,所有近似定位点要直到到达下一个精确位置 点,开关点可能被近似定位的开始点POINT2到POINT5替换。如果POINT2在这个指令 中不是近似定位点,那么开关点能仅被精确位置点POINT2替换。

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

129 INTERRUPTDECL,INTERRUPT,PULSE

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

130

2.2.45 WAITFOR

2.2.45.1 摘要信息

等待继续的条件。

2.2.45.2 语句

自变量 类型 解释

Continue_

Condition

BOOL 当程序被继续时,逻辑表达式被用于 指定继续的条件。

如果逻辑表达式为TRUE,那么在调 用WAIT时程序的执行没有被停止。

如果逻辑表达式为FALSE,那么程序 的执行被停止,直到表达式的值为 TRUE后程序才能继续。

. 2.2.45.3 说明

WAIT语句可以停止程序的执行和在指定的等待时间后继续执行程序。等待的时间长度 由由编程决定。

如果由于错误的表达式永远得不到编辑器认可的TRUE值,在这种条情况下,因为程序等 待不能实现的条件,程序将被永远的停止。

2.2.45.4 范例

程序执行中断,直到$IN[17]为TRUE。

WAIT FOR $IN[17]

程序执行中断,直到BIT1为FALSE。

WAIT FOR BIT1 == FALSE

WAIT SEC

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

131 2.2.46.1 摘要信息

等待时间

2.2.46.2 语句

自变量 类型 解释

Wait_Time INT ,REAL 算术表达式被用于指定程序执行被中断的秒数。

如果值为负数,那么程序不执行中断。

很少的等待时间的精确性由插补循环的倍数指定。

2.2.46.3 说明

WAIT语句可以停止程序的执行而且可以在指定的等待时间后继续程序的执行。等待时 间的长度用秒指定。

2.2.46.4 范例

中断程序执行17.156秒。

WAIT SEC 17.156

中断程序执行的时间由用秒指定的变量V_WAIT的值决定。

WAIT SEC V_WAIT

WAIT FOR

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

132

Repetition_

Condition

BOOL 逻辑表达式能包含Boolean 的值为FALSE,那么程序重新执行在ENDWHILE后的下一个指令。Each WHILE语句 必须由ENDWHILE语句结束。.

2.2.47.4 范例

程序循环执行99次。W在循环结束后的值为100。

W=1

WHILE W<100 W=W+1 ENDWHILE

程序循环执行到$IN[1]的值为true。

WHILE $IN[1]==TRUE Statements ENDWHILE

由于在循环执行前重复条件没有满足,循环没有执行。在退出后W的值为100。

W=100

WHILE W<100 W=W+1 ENDWHILE

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

133 EXIT, SWITCH, FOR, REPEAT, LOOP

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

134

2.3.1 VARSTATE( )

2.3.1.1 摘要信息

变量状态 VARSTATE ( ) 是“VAR_STATE”类型的返回值:

ENUM VAR_STATE DECLARED, INITIALIZED, UNKNOWN VARSTATE的声明:

VAR_STATE VARSTATE(CHAR VAR_STR[80]:IN)

2.3.1.2 语法

自变量 类型 解释

Variable_

Name

VAR_STATE

任何变量名

Variable 任何 有状态决定的变量名

2.3.1.3 说明

函数VARSTATE被用于决定变量的状态。函数的返回值可以是Enum常数,DECLARED,

INITIALIZED或UNKNOWN。

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

135

IF VARSTATE(“A”)==#DECLARED THEN

;这个A没有被公告但已被初始化的IF条件是错误的。

$OUT[1]=TRUE ENDIF

IF VARSTATE(“A”)==#INITIALIZED THEN

;这个IF条件是正确的.

$OUT[2]=TRUE ENDIF

IF VARSTATE(“A”)==#UNKNOWN THEN

;这个IF条件是错误的

$OUT[3]=TRUE ENDIF

IF VARSTATE(“B”)==#DECLARED THEN

;这个IF条件是正确的.

$OUT[4]=TRUE ENDIF

IF VARSTATE(”NOTHING”)==#UNKNOWN THEN

;这个IF条件是正确的,设想在$CONFIG.DAT 中没有变量“NOTHING”。

$OUT[5]=TRUE ENDIF

IF VARSTATE(STR[ ])==#INITIALIZED THEN;

;这个A已被初始化的IF条件是正确地。

$OUT[6]=TRUE ENDIF

END

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

137 :SER_1,27

:SER_2,27,41

$CMD,27,48

$CUSTOM.DAT,27

%FWGU,49,115,121

|,9

A

ABS,43,45 Active reading,44 ANIN,20

ANOUT,22 Areas of validity,16 Arithmetic operators,13 ASYNC,48

AXIS,12

B

Bit operators,13 Block structure,15 BOOL,11

BRAKE,24

C

Cprogramming Language,45 CCLOSE,25

CHANNEL,27

Channel_Name,27,41 CHAR,11

CIRC,29 CIRC_REL,34

CMD_ABORT,25,43,48,121 CMD_OK,25,43,48,121 CMD_REJ,48

CMD_STAT,43,48 CMD_SYN,48 CMD_TIMEOUT,43 Comment,14 COND,43,45 CONFIRM,38

Constants,12 CONTINUE,40

Continuous—path motions,15 Control structures,15

Conversion character,45 COPEN,41

CP motions,15 CREAD,42 CWRITE,48

D

Data lists,11 Data types,11 DATA_BLK,43 DATA_END,43 DATA_OK,43,48 DECL,53

Declaration,14 DEF...END,57

DEFDAT...ENDDAT,60 DEFFCT...ENDFCT,63 DIGIN,66

E

E6AXIS,12 E6POS,12 ENUM,68

ENUM value,46,116 EXIT,70

Expression,14 EXT,71 EXTFCT,73

F

FMT_ERR,43,48 FOR...TO...ENDFOR,76

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

138 Format,44,45,49,114,121

FPRINTF,49 FRAME,12 Functions,15

G

Geometric operator,13 GOTO,78

H

HALT,79

Handle,25,41,42,48 HITS,43,48,121

I

IEEE 754 standard format,45 IF...THEN...ENDIF,80

Implicit data type assignment,12 Implicit type conversion,12 IMPORT...IS,81

Initialization,14 INT,11

INT$DATA_SER1,42,44 INT$DATA_SER2,42,44 Interface_Name,27 INTERRUPT,86

INTERRUPTDECL...when...do,83

K

Keywords,16

L

LENGTH,43 LIN,90 LIN_REL,94 Literals,11

Little endian format,45 Logic operators,13 LOOP...ENDLOOP,96 PTP,97

PTP_REL,101

M

Maximum line length,16 Mode,43,48

Modules,11 MODUS_T,43,48 Motion programming,15

N

Names,11

O

OFFSET,121 Offset,44,114 Operators,13

P

Passive reading,44

Point--to--pointmotions(PTP),15 POS,12

Predefined data types,12 Priority of operators,14 PULSE,103

R

REAL,11

Relationaloperators,13 REPEAT...UNTIL,106 RESUME,108

RETURN,110

S

SEQ,43 SER_1,27,44 SER_2,27,44 SIGNAL,112 Simple data types,11 SREAD,114

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

139 STATE_T,27,43,48

Statement,14 String1,114,121 String2,114,121 STRUC,117,121 Structure_Variable,27 Subprograms,15

SWITCH...CASE...ENDSWITCH,119 SWRITE,121

SYNC,48

System variables,13

T

Timeout,44

TRIGGER WHEN DISTANCE...DO,124 TRIGGERWHENPATH...DO,127

V

VALUE,114,121 Var,44,49 Variables,13 VARSTATE( ),134

W

Wait,44 WAITFOR,130 WAITSEC,131

WHILE...ENDWHILE,132

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

140

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

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