• 沒有找到結果。

CWRITE

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

2 参数部分

2.2 命令索引

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

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

这个数据列表,而且在这儿被分配的变量,etc..,可 用于其它的指令包。它们必须使用关键字GLOBAL定 义。

Declaration 子程序和函数指令的外部声明在指令中使用。

为了输入变量引入声明。

声明变量

声明信号和通道名。

声明结构和列举类型

在数据列表中声明的变量声明可以包含默认设置。

2.2.15.3 说明

除预先确定的数据列表外,你自己可以定义更多的数据列表。程序列表被特定的程序和 高级的声明所使用。变量值可以存储在在被声明的数据列表中。数据列表作为独立的 ENDDAT语句总是在任何数据列表的最后程序段。

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

61 没有语句出现在数据列表中,除了变量和常量的初始化。

2.2.15.4 范例

声明数据列表。

DEFDAT WELD ...

ENDDAT

为了符合全局声明数据列表。

DEFDAT CENDAT PUBLIC ...

ENDDAT

指令包PROG_1由指令和被分配的数据列表PROG_1组成。

如果它在数据列表中被声明和被初始化的,那么在主程序作中被省略。如果在主程序 的变量OTTO被分配了新的值,那么它也进入数据列表并被存储在这儿。.

“new”值在控制器转换完成而且再次返回后被使用。这是在线修正和和其他程序修 改的要素。如果你想总是用相同的值开始主程序,那么想得到的值必须在主程序中 被作为默认分配适当的变量。

DEFDAT PROG_1 INT OTTO = 0 ENDDAT

DEF PROG_1( ) HALT ;OTTO现在是0

OTTO=25 HALT ;数据列表现在包含INTOTTO=25 END

全局的数据列表:变量OTTO在PROG_1和PROG_2中被验证的。它可能允许外面的主程 序访问在数据列表中定义的变量。数据列表必须作为PUBLIC定义而且变量必须作为 GLOBAL公告。DEFDAT PROG_1 PUBLIC GLOBAL INT OTTO = 0 ENDDAT DEF PROG_1( )

HALT OTTO = 25 END

DEF PROG_2( ) OTTO=27 END

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

62

IMPORT

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

63 2.2.16.1 摘要信息

声明函数。

2.2.16.2 语句

自变量 类型 解释

GLOBAL 关键字GLOBAL使所有装入KRL程序的函数可用。

Data_Type 函数的数据类型 Function_

Name

函数名被定义。函数名是对象名而且字符不能超过24个字符。长度受控 制器的目录系统限制。.

Parameter_ List 参数列表包含下列规定: 

参数名

在输出情况下的参数类型排列(输入不能被排列),排列的尺寸用下列 的符号增加排列名:

[ ]一维空间排列 [,]二维空间排列 [,,]三维空间排列  参数各自的转换指令

:IN 输入参数(由值唤醒)

:OUT 输出参数(有参数唤醒)(默认值)

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

64

Declarations

只有在声明部分可能出现声明。在这里不能使用程序语句。

与在第一个语句定义的声明部分和语句部分接近

Statements

只有在语句部分可能出现语句。函数的返回值使用RETURN语句转化。

2.2.16.3 说明

函数发送返回的值到调入指令。函数是表达式而且函数可以比被分配为变量或其他算术 语句使用的。这儿有两种参数传送:通过输入参数传送和通过输出参数传送。

输入参数

变量的值被传送到这儿。直接的参数传送工作就像在子程序中分配默认设置到变量。通 常传送的值可以是常量,变量函数,简单或复杂的表达式。

一个值在IN参数的情况下不能返回调入的指令(由值唤醒)。它仅仅由于赋一个值到子程 序。

如果当前的数据类型和外部的IN参数不同但兼容,系统自动转化被传送的值的类型。数 组不能像输入参数一样被传送 (IN)。

输出参数(关键字OUT)

变量名被传送到这儿(有参数唤醒)。变量在调用子程序时必须有一个值。这个值能被 子程序用于调用。

参数类型OUT能在子程序调用时被分配一个值。由于这个原因当前的数据类型和外部参 数必须在传送模式OUT中完全一致。

作为一个参数输出传送是默认的设置,例如:OUT不需要指定。

ENDFCT语句

ENDFCT语句总是的全球或本地子程序的最后程序段。子程序的最后程序段总是执行 RETURN语句。如果注释遇到ENDFCT语句同时执行函数,那么出现运行时间错误。

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

65 说明INT数据类型的函数,用FCT1命名而且传送参数P1和P2。

DEFFCT INT FCT1(P1,P2) ...

ENDFCT

声明BOOL数据类型的函数,用WELD命名而且输入参数CURRENT和VOLTAGE。

DEFFCT BOOL WELD(电流:IN,电压:IN) ...

ENDFCT

在函数中,不同的两个变量被计算出并传送到主程序。

DEF PROG_1( )

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

A=1 B=25

C=DELTA(A,B) END

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

X3=X2-X1 RETURN(X3) ENDFCT

DEF,RETURN

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

66

2.2.17 DIGIN

2.2.17.1 摘要信息

循环读入数字输入。

2.2.17.2 语句

读数字输入:

中止数字输入:

自变量 类型 解释

Signal_Value Real 操作的结果存储在Signal_Value中。他可以是变量或信号名.

Factor Real 要素可以是常量,变量或信号名。

$DIGINX

$DIGINX指出预先确定的信号名:

$DIGINX

$DIGINX指出预先确定的信号名:

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