• 沒有找到結果。

CONTINUE

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

2 参数部分

2.2 命令索引

2.2.9 CONTINUE

2.2.9.1摘要信息

阻止先前运行的停止。.

2.2.9.2语法

CONTINUE

2.2.9.3描述

你能用系统变量$ADVANCE定义先前控制器执行的中断如何动作。在指令关于外围(例如 输入/输出指令)的情况下,计算机先前的运行总是被停止。如果你不想这样的事情发生,

CONTINUE语句必须在相应的指令前被编程。

CONTINUE语句总是用于下列指令行,甚至是空白行。

2.2.9.4例子

使用$OUT防止运行的停止:

CONTINUE

$OUT[1]=TRUE CONTINUE

$OUT[2]=FALSE

ANOUT,HALT,WAIT,PULSE

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

41 2.2.10.1 摘要信息

已经被“CHANNEL”语句承认的输入输出通道能用 “COPEN”语句打开。

2.2.10.2 语句

COPEN(Channel_Name, Handle)

自变量 类型 解释

Channel_Name 在“CHANNEL”语句承认的通道名

Handle INT 用户定义的变量

2.2.10.3 描述

被CHANNEL语句承认的输入输出通道能用 “COPEN”语句打开。

“Handle”变量确定下列存取有关的通道。如果系统拒绝打开通道,则返回0。

预先确定的变量“$CMD”是命令执行一般的打开可用到的。

2.2.10.4 例子

开放名为:“SER_2”的通道和“HANDLE”。

COPEN(:SER_2,HANDLE)

程序全部的例子都可以在“CHANNEL”章中找到。

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

42

2.2.11 CREAD

2.2.11.1 摘要信息

从通道中读取数据。

应用的例子: 在KRC1和外围数据(PC,智能传感器...) 数据交换(读语句)。

“CREAD”语句用于从打开的通道中读取数据。在这有两个区别::

主动读入

程序请求通过通道进行输入。通道驱动器提出输入请求并将接受到的数据作为 结果返回到CREAD语句 。

被动读入

预先确定的变量(INT$DATA_SER1orINT$DATA_SER2),未被请求的数据到达 后通过增加通道驱动器,每个通道都是这样的。当执行热启动或当打开/关闭通 道时变量初始化为0。在系统等待读入请求的反馈信号方面也是有差别的:绝对 的或有条件的。绝对的意思是系统等待直到通道给出请求的数据。在有条件的 情况下,系统检查数据是否有效。

2.2.11.2 语句

自变量 类型 解释

Handle INT

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

由“COPEN”转移变量。注意:变量“$CMD”将被拒绝

43 量的列举类型第一个元素。

“CMD_STAT”能有与“CREAD”有关的下列值:

CMD_OK 命令顺利的执行; Mode MODUS_T “MODUS_T”是列举类型,它有与下列“CREAD”有

关的值:

ABS 激活读入通道。函数等待到通道产生一个可用的 数据块或等待到“Timeout”失败。

COND 未被请求的通道读入。

SEQ 从以前被请求使用“ABS”或“COND”或作为 结果返回“CWRITE”的字节补偿读入完成了的数据块

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

44 Timeout REAL 参数“TIMOUT”可被用于指定时间,在等待数据块失败之后。

Timeout的值0.0允许无止境的等待。.

一个值大于60或是为负值,则数值是无效的。与系统有关的错误在等

“SER_1”和“SER_2”。

INT $DATA_SER1 或 INT $DATA_SER2,

在未被请求的数据到达后,这些数据通过通道驱动增加。当系统启动或通道打开或关闭 认信息“INVALIDHANDLE”被显示。

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

45 其它方式的规定或非初始化的变量导致一个被变量“STATUS”发现错误 。如果读“ABS”“COND”

成功,那么数据块的数据是先前被承认的,就像他们完全的读出。

文本是按照格式规定的程序段返回的。值决定被分配的适当的变量,系统检查值之否在任何区 域有效。“变量FOMAT”转换支持由“Kernighan/Ritchie”指定的格式规定(C语言1978),O,P,

N,U和【list】出外。

字符长度规范“H”和“L”不能使用。

只有9个格式参数可用于指定“CREAD”语句。如果几个变量是格式化可用到的,则必须在“#SEQ”

模式下读入。

系统不能区别大小写字符。在发生一个错误后读入失败(不符合格式或无效的值)。

转换字符“R”,当读入任何一个字节指定的字符长度次序 (与写入类似,例如“%2.5r”)或这所有 字节在结束信息之前,他也同样传入。

不像其它格式,单独字节的读入必须被“%1r”明确规定。.

没有用“%c格式”指定宽度,这样的格式是不合格的。字节能被分配到INT,REAL,CHAR,BOOL,

ENUM数据类型的变量或这种类型的一维数组。

假定整数数据类型出现在“little endian”格式中,而且是有正负之分的。

Real的数据类型在IEEE754标准格式中用32位表示。

Bit 31 符号, Bit 30—23 指数 Bit 22—0 尾数

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

46

hWDHir

(Signal) INT X X X X X X

INT array X X X X X

REAL X X X X

REAL array X X X

(Signal)

BOOL(1) X X X X X X

任何不等于0(zero)的值可以被TURN转换。

系统控制值是否被ENUM值允许。如果不是,读失败。ENUM开始为1。

如果没有足够的格式数据,(例如%2.5r,但只有7位),没有数据从格式读出,CREAD语句失败。被

47 下面列出了所有语句的应用:

--语句总是等待语句完全的执行完成和它返回程序。这是绝对CREAD语句读文本通道的一个显著特 征。

--不注意这些,这些程序会被中断程序打断。任何访问通道的努力都会被中断子程序阻断。.

语句的全部解释和通道指示命令信息都可以在“CHANNEL”中找到。观看2.2.5.部分。

程序完整的范例可以在“CHANNEL”章找到。

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

48

2.2.12 CWRITE

2.2.12.1 摘要信息

“CWRITE”语句能够使文字写入打开的通道,或者命令被写入命令通道。

应用实例: 数据 (写语句)在KRC1和装置间(PC,智能传感器...). 转换。

2.2.12.2 语句

2.2.12.3 说明

自变量 类型 解释

Handle INT “Handle”变量通过 “COPEN”或预先去定的变量

“$CMD”传送。

State STATE_T “CMD_STAT”是举例类型,它是组成结构类型

“STATE_T”状态变量的第一步。

“CMD_STAT”能有下列与CWRITE对应的值:

CMD_OK 命令成功执行;

;DATA_OK 命令被成功的执行。数据作为回复准备;

CMD_ABORT 因为“HANDLE”是无效的,命令没有被 执行;

CMD_REJ BCC 错误

CMD_SYN在 命令中语句错误。命令的语句错误,命令 因此不能被执行。

FMT_ERRI 错误的格式规范或不相应的变量。状况变 量由 “CWRITE”组成另一个重要部分:

HITS 正确的数字写入格式。.

Mode MODUS_T 变量类型“MODUS_T”(结构类型)定义些多少通道写入。

它有下面的值:

SYNC 语句直到数据已经发送还没有执行。

ASYNC 语句没有执行直到通道驱动已经证实数据 已经被承认。

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

49 变量的结构主要符合“C”语言 “FPRINTF” 功能的格式。

Var “Format”相应的变量.

2.2.12.3 说明

语句“CWRITE”使文本能够写入打开的通道或命令能够写入命令通道。

“Mode”的值写入命令通道的无关。如果“Mode”是非初始化的变量,那么语句失败而且 在变量“Status”中放置错误标记。

如果“Mode”有一个除SYNC或ASYNC以外的值,那么数据在SYNC模式下写入通道。

变量格式的转换规定有以下构造:

依靠输入的宽度(“%2r”),你可以指定多少字节的值会被延长或压缩。REAL的值出外。

当数值被压缩,高位字节被忽略;值通过在结尾增加原点位来延长 (little endian format) 。 如果宽度没有指定,固有的显示输出: INTEGER,REAL和ENUM 4个字节,BOOL和CHAR 1个字节。

50 布尔值作为0和1输出,ENUM作为数字值

结构变量 %d

<WDH> %4 r

(Signal)

INT X X X X X X

INT array X X X X X

REAL X X X

REAL array

X X X

(Signal)

BOOL X X X X X

BOOL array

X X X X X

ENUM X X X X X

ENUM

array X X X X X

CHAR X X X X

CHAR array

X X X X

通道结构的命令信息和状态定义都可以在“CHANNEL”章找到。

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

51 下面给出了几个“CWRITE”语句的范例:

数值的十进制和十六进制的转换

ENUM变量的固有转换值在ASCII中

“ENUM”变量的固有转换值在ASCII 中。相应的数字被输出。

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

52 DECL ENUM_TYP E

%D,E

写入两个真实值的名字(定义字符长度) REAL W1,W2

W1=3.97

W2=-27.3 CWRITE(..,..,..,”Value1=%+#07.3F Value2=+#06.2F”,W1.W2)

;发送数据: Value1=+03.970 Value2=-27.30

程序全部的范例都可以在“CHANNEL”章中找到。

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

53 声明程序和数据列表中的变量和常量。

2.2.13.2 语句

声明程序中的变量:

声明程序中的数组

声明数据列表中的变量:

或者同时分配值:

声明数据列表中的数组:

声明和初始化数据列表中的常量:

声明和初始化数据列表中的数组:

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

54

自变量 类型 解释

Data_Type 简单的数据类型: 

INT,REAL,CHAR,BOOL

这些在系统文件能被任何结构和列举的类型,例如:

FRAME,POS,E6POS,AXIS,E6AXIS 能被自己定义的数据类型:

结构类型(STRUC)或列举类型(ENUM) Variable_Name,

Array_Name, Constant_Name, Object_Name

对象的名字被公告。

Size INT 没有负号的,正整数的常量定义数组的大小。

常量的数量产生数组的范围。

数组范围最大为3。

Value 被公告的常数数据类型

Array_Index INT 常量能在1到Size的范围内。把它看作数组元素开始来 分配值。

全部的变量和常量能仅仅在数据列表中被公告。

顺序使用关键字GLOBAL,在文件“Progress.ini”中的全球选项,

在INIT目录必须设为, TRUE:

GLOBAL_KEY=TRUE

2.2.13.3 说明

在程序中使用的变量必须是在声明中公告的名字和数据类型。简单的、复杂的和随意的、

可定义的数据类型是可用的。

声明首先由关键字DECL开始,跟随数据类型和变量列表和数组已有的数据类型。当声 明预先确定类型的变量和数组,关键字DECL可被省略。除简单数据类型INT,REAL,

CHAR和BOOL外,数据类型POS,EPOS,FRAME,AXIS,EAXIS etc中都被预先确 定。声明能被数据类型为POS的变量省略,因为这个数据类型是标准的数据类型而且是

55

56 变量数据类型“Freely” 声明可定义为结构类型或列举类型。

如果之后数据类型名不是预先确定的系统数据类型,关键字DECL必须在这里被编程。数 据类型定义STRUC和ENUM必须总是在DECL声明的这个类型变量之后。

2.2.13.4范例:

声明没有初始化。

DECL POS P1

;关键字DECL可被省略 INT A1,A2

REAL VEL[7],ACC[7],B DECL S_PAR_TYPE S_PAR[3]

由默认设置声明数组(只在数据列表中).

INT A[7] ;数组的7个整数值

A[1]=27 ;第一个数组元素被分配为27 A[2]=313

A[6]=11

CHAR TEXT1[80]

TEXT1[ ]=”Message Text”

CHAR TEXT2[2,80]

TEXT2[1,]=”First Message Text”

TEXT2[2,]=”Second Message Text”

声明变量的初始化(只在数据列表中).

FRAME F1={X 123.4, Y -56.7, Z 89.56}

STRUC,ENUM,DEFDAT

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

57

2.2.14 DEF...END

2.2.14.1 摘要信息

程序和子程序的声明。

2.2.14.2 语句

自变量 类型 解释

Program_Name

程序名进入这儿被定义。它是一个目标名而且在全球函 数情况下的它可能不长于24个字符

长度受控制器的指令系统限制。

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

58 关键字GLOBAL。

当程序被唤醒,有两种参数传送:传送输入参数和传送输出参数。 RETURN语句,没有时执行END语句。

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

59 没有外部参数的程序的声明:

DEF PROG( ) ...

END

声明子程序的外部电流和电压。适当的默认设置,他们输出参数。

DEF WELD(电流,电压) ...

END

声明子程序的外部电流和电压作为输入参数和RESULT作为输出参数。

DEF WELD(电流:IN,电压:IN,结果:OUT) ...

END

在CALCULATE子程序中,一些变量经过自动操作。在子程序调用后,在主程序中的A 和B跟随值:A=11;B=2。

DEF PROG( ) INT A,B A=1 B=2

CALCULATE(A,B) ...

END

DEF CALCULATE(X1:OUT,X2:IN) INT X1,X2

X1=X1+10 X2=X2+10 END

END,DEFFCT,RETURN

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

60

2.2.15 DEFDAT...ENDDAT

2.2.15.1 摘要信息

数据列表声明。

2.2.15.2 语句

自变量 类型 解释

Data_List_

Name

数据列表的名字进入这儿被定义。它是最长为24个字 符的对象名。长度通过控制器的管理系统限制。

如果数据列表的名字与指令相同,数据列表分配这个 指令作为数据列表声明的结果,同样在指令中相同的 名字也适用。

指令和数据列表从指令包中分配。

PUBLIC

通过增加这个关键字,其它指令和数据列表也能访问

PUBLIC

通过增加这个关键字,其它指令和数据列表也能访问

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