• 沒有找到結果。

程序,数据列表和模块

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

2 参数部分

2.1 基本原理

2.1.1 程序,数据列表和模块

KRC存储程序代码存储在扩展名为SRC扩展名的文件中。固定不变的数据保存在扩展名 为DAT的文件中。在一个模块可以由同名的SRC和DAT文件组成。

2.1.2 名字和文字

一个文字表示实际的值。例如:符号“1”表示数字“one”。一个名字或名称指定一个 数据对象表示包含值(例如:变量)或确定的值 (例如:常量)。

一个常量和变量名有以下的限制:

它最多24个字符

它用字母(A--Z),数字(0--9)和符号“_”和“$”组成.

它不能用数字开头 它必须不能是关键字

2.1.3 数据类型

有两个不同组的数据类型:例如:INT,它是在系统中预先确定的和用户定义的数据类 型,它以 ENUM和STRUC 类型为转变基础。

不同两类的两个例子:

在系统中预先定义的数据类型是有效的,由用户定义的数据类型仅在局部有效,

除非关键字GLOBAL被用于它们的声明中或它们在$CONFIG.DAT文件中被声 明。

当声明的数据类型是系统预先给定的时,关键字DECL可以被省略

2.1.3.1 简单数据类型

数据类型 关键字 意义 值的范围

Integer INT 整数 --231--1...231--1 Real REAL 浮点数 1.1E--38...3.4E+38 Boolean BOOL 逻辑状态 TRUE, FALSE Character CHAR 字符 ASCII字符

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

12 2.1.3.2 固有的类型转换

如果运算的两者都是整数类型,运算的结果是INT类型。如果整数除法的结果不是整数,

将切除小数。

如果操作数中有一个为实数类型(REAL),那么结果为实数类型REAL。

操作数 INT REAL

INT INT REAL

REAL REAL REAL

2.1.3.3 预先确定的数据类型

下面运动数据是在软件控制器中预先确定的。

STRUC AXIS REALA1,A2,A3,A4,A5,A6

用A1~A6组成的结构AXIS表示机器人1~6轴移动的角度值(转动轴)或移动值(移动轴)。

STRUC E6AXIS REALA1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6 外部轴的角度值和移动值被存储在附加的E1到E6部分中。

STRUCFRAMEREALX,Y,Z,A,B,C

空间坐标系被存在X,Y,Z中,极坐标系被存在A,B,C中。

STRUCPOSREALX,Y,Z,A,B,C,INTS,T

用附加的S(状况)和T(转动)明确定义轴的位置 。

STRUCE6POSREALX,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6,INT S,T

2.1.3.4固有的数据类型分配

如果一个变量名没有首先在KRL程序中声明,他将自动分配为POS类型.

固定数据类型不用特别注意,在编程中很容易遵守。

2.1.4 常量

常量的名字、数据类型和数值不会改变下面的设定值。

常量必须在数据列表中被定义和初始化。

为了可以使用常数,配置文件CONST_KEY必须为TRUE:

CONST_KEY=TRUE

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

13

14 2.1.6.6 操作优先级

在超过一个操作的复杂的表达式中,有些单独的表达式在命令中会被优先执行。

优先级 操作符

1(最高级) NOT,B_NOT

2 *,/

3 +,--

4 AND,B_AND 5 EXOR,B_EXOR

6 OR,B_OR

7(最低级) ==,<,>,<=,>=,<>

下面这些规则同样适用:

相同的运算从头开始.

不同的运算按运算符的优先权执行.

逻辑运算的左右两边优先执行.

2.1.7 声名

声明指定分配一个名字的数据类型。

2.1.8 初始化

初始化赋值 2.1.9 表达式

数据对象由自己的数据类型和数值所构成

如果结果是INT或REAL,那么是算术表达式.

如果结果是BOOL,那么是逻辑表达式

如果结果是 POS, E6POS, AXIS或E6AXIS,那么是几何表达式.

2.1.10 语句

语句是那些不表现自己的确定的值和数据类型的命令。简单的语句只包含一个命令行。

而复杂的语句则包含完整的控制结构。

2.1.11 注释

注释是指被程序编辑器忽略的文本。使用“;”字符在程序中把注释和程序区分出来。

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

15 以下两种基本的运动模式:

2.1.12.1 点到点的运动(PTP=点到点)

机器人的主要轴,使用最大的加速度和速比到达目标点。它不保持直线轨迹。

2.1.12.2 连续路径运动(CP=连续轨迹)

机器人手臂从起始点到目标点的轨迹路径为直线(LIN)或圆弧(CIRC)。这主要是依 靠程序对速度和加速度的控制,而且从起始点到目标点之间不使用近似定位。

2.1.13 控制结构

控制语句可以用于影响程序的执行。在程序段中它依靠条件而执行。IF ELSE就是一个 例子。

2.1.14 子程序

子程序是主程序的分支。当一个子程序被调用时,子程序中的命令立即被重新执行。

除主程序外,更多的子程序被定义在SRC文件中。如果它们和程序卡中SRC文件的程序 名相同,那么主程序是经过认证的。如果SRC中的子程序是全局有效的,那么必须用关 键字GLOBAL。

2.1.15 函数

函数能分配数据类型,函数能像子程序一样被程序调用。

2.1.16 块结构

块由KRL程序语言组成。它包括指令、参数和注释。这些语句、声明在系统中逐块的执 行。KRL块的建立必须遵循一定的规律。它规定块的结构要符合语法描述的说明和指令 索引中语句的规定。

在一个块中包含:

声明 语句 注释

空的块也是可以使用。它可以只包含一个块结束的字符。

块的开始行没有任何的标识符。块也可以由一个或多个空格开始,但块的结尾必须键入 RETURN字符。如果程序块太长,屏幕显示不下时,系统将自动换行。在程序块中每行 最长474个字符。

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

16 2.1.17 有效性区域

如果常量、变量、子程序、函数和变量是全局的,而且读入的所有KRL程序都是经过认 证的,那么必须用GLOBAL关键字。否则数据对象只是局部有效的,只有一个例外:在 CONFIG.DAT文件中被激活的变量也是全局有效的。

局部数据的有效性:

在程序中激活的局部变量是合法的,它被置于关键字DEF和ENDDEF中。

在数据列表中被承认的常量是有效的。

子程序和函数在参与SRC文件的主程序中是有效的。

一个局部中断只有在优先级比程序级别低或者相等时,它是被承认的。

如果局部和全局变量名相同,那么编辑器在局部变量名有效的区域内使用局部变量名。

全局变量和常量都在公告在数据列表中。

为了可以使用关键字GLOBAL,在文件“Progress.ini”中的全局选项在INIT选项中必须设 置位TRUE:

GLOBAL_KEY=TRUE 2.1.18 关键字

关键字的字母排列有固定的功能。它们在上面的印刷中用粗体描述。

下面是保留和不保留的关键字:

保留的关键字:不能用于与其内在含义不同的场合。多数时候他们不能用于文件名。

在下表中列出了一些被编辑器认可但不用于系统的关键字。它们虽然没有被执行,

但仍然保留

非保留的关键字:受到上下文的限制。当非保留的关键字出现在文章中时,上下文可 以解释他的含义。此外,非保留关键字还可以解释为一个名字。但为了避免混淆,

非关键字一般不用作名字。

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

17

ANIN

语句 循环读入模拟输入。

ANOUT

语句 操作控制模拟输出。

BRAKE

语句 在中断程序中制动机器人的运动。

CASE

语句 在SWITCH语句中开始一个分支。

CCLOSE

语句 关闭通道。

CHANNEL

声明 声明输入和输出的通道名。

CIRC

语句 圆形运动。

CIRC_REL

语句 相对目标坐标系的圆形运动。

CONFIRM

语句 承认确认的消息。

CONTINUE

语句 防止先前的停止运行。

COPEN

语句 操作输入/输出通道。

CREAD

语句 从通道读入数据。

CWRITE

语句 从通道写入数据。

DECL

声明 变量的声明和排列。

DEF

定义 程序和子程序的声明。

DEFAULT

语句 在SWITCH语句中开始默认的分支。

DEFDAT

定义 数据声明列表。

DEFFCT

定义 声明函数。

DELAY

参数 在TRIGGER和ANOUT语句中启动延时。

DIGIN

语句 循环读入数字输入。

DISTANCE

参数 在TRIER语句中,启动开关点。

DO

语句 开始在INTERRUPT声明中调用中断程序和调用子程序 或在TRIGGER语句中分配一个值。

ELSE

语句 在IF语句中开始另一个语句分支。

END

语句 子程序结束(参考 DEF)。

ENDDAT

语句 数据列表结束(参考 DEFDAT)。

ENDFCT

语句 函数结束(参考 DEFFCT)。

ENDFOR

语句 FOR循环语句结束。

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

18

ENDIF

语句 IF分支结束。

ENDLOOP

语句 LOOP结束。

ENDSWITCH

语句 结束SEITCH传送。

ENDWHILE

语句 结束WHILE环语句。

ENUM

声明 列举类型的声明。

EXIT

语句 无条件退出循环。

EXT

声明 外部子程序的声明。

EXTFCT

声明 外部函数的声明。

FOR

语句 计算循环或以WAIT语句为条件的开始。

GLOBAL

声明 全局声明。

GOTO

语句 无条件的跳跃语句。

HALT

语句 中断程序的执行和暂停。

IF

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

IMPORT

声明 在数据列表中输入变量。

INTERRUPT

语句 中断功能的定义和它的激活和解除。

IS

语句 初始化IMPORT声明中的源属性。

LIN

语句 直线运动。

LIN_REL

语句 在相对坐标系中的直线运动。

LOOP

语句 无穷循环。

MAXIMUM

参数 输出模拟量最小值的关键字。

MINIMUM

参数 输出模拟量最大值的关键字。

PRIO

参数 在TRIGGER语句中调用子程序时,启动规定的优先权。

PTP

语句 点到点的运动。

PTP_REL

语句 相对坐标系中的点到点的运动。

PULSE

语句 激活脉冲输出。

REPEAT

语句 循环程序总是最少执行一次(不拒绝循环)。中止条件在循

环中止时选择。

RESUME

语句 子程序和中断程序的中断。

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

19

SEC

语句 开始在WAIT语句中规定的时间。

SIGNAL

声明 输入和输出信号名的声明。

SREAD

语句 中止数据进入它的组成部分。

STRUC

声明 结构类型的声明。

SWITCH

语句 在几个语句分支中选择。

SWRITE

语句 组合数据形成数据设置。

THEN

语句 在IF语句中开始第一个语句。

TO

语句 在FOR语句中最初和最后的值和开始在SIGNAL语句中指出的 数字输入/输出。

TRIGGER

语句 通道触发开关的作用是使机器人的运动同步。

UNTIL

语句 在REPEAT循环中开始“end”质询。

WAIT

语句 等待继续的条件或指定的周期时间。

WHEN

语句 在INTERRUPT声明中开始逻辑表达式和在TRIGGER中指出的 轨迹距离标准。

WHILE

语句 程序循环;在选择循环开始时选择循环终止的条件(拒绝循环)。

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

20 2.2

命令索引

2.2.1 ANIN

2.2.1.1 摘要信息

循环读入模拟输出 2.2.1.2 语法

读入模拟输出:

中止读操作

类型 解释

Signal_Value REAL 循环读入的结果存储在信号值中。信号值可以是变量、

模拟信号或前面说明过的信号。

Factor REAL 常量、变量或说明过得信号可以成为要素。

Signal_Name REAL 信号名指定输入模拟信号的信号名。

Offset REAL 偏移量可以是变量、常量、模拟信号或前面说明的信号.

在ANIN语句中的所有的变量必须在数据列表中公告。

在特定的时间内最多有3个ANIN ON被激活。

2.2.1.3描述

模拟模块产生能通过定义变量$ANIN[1]到$ANIN[8]的手段读入的模拟界面。模拟输入能 在时间周期内使用ANIN或使用“=”操作符的手段,使变量能分配一次REAL类型。在

模拟模块产生能通过定义变量$ANIN[1]到$ANIN[8]的手段读入的模拟界面。模拟输入能 在时间周期内使用ANIN或使用“=”操作符的手段,使变量能分配一次REAL类型。在

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