KRL 是一种类似PASCAL的高级编程语言,利用KRL语言编程能够实现结构化编程处理复杂的任务。一个KRL程序通常由一个SRC源文件和一个DAT数据文件组成,两个文件名字相同,扩展名不同,在专家界面下显示两个独立文件,在普通用户界面下显示一个模块。DEF...END 程序和子程序的声明。
在文件开头用“DEF”进行标识
Program_Name |
程序名进入这儿被定义。它是一个目标名而且在全球函数情况下的它可能不长于24个字符 长度受控制器的指令系统限制。 |
Parameter_ List |
参数列表包含下列说明:
参数名
输出数组类型参数的情况下(输入参数不能被排列),数组尺寸除数组名字外使用下列符号。
[ ] 一维空间的数组
[,] 二维空间的数组
[,,]三维空间的数组
参数的各自转换格式:
:IN 输入参数( 由值唤醒)
:OUT 输出参数( 由参数唤醒)( 默认值) |
通过默认,SRC文件中的第一个程序与SRC文有同样的名字并认为全局有效,甚至没有
关键字GLOBAL。
当程序被唤醒,有两种参数传送:传送输入参数和传送输出参数。
输出参数( 关键字IN)
变量的值被传送到这儿。直接的参数传送工作就像在子程序中分配默认设置到变量。通
常传送的值可以是常量,变量函数,简单或复杂的表达式。
一个值在IN参数的情况下不能返回调入的指令( 由值唤醒) 。它仅仅由于赋一个值到子程
序。
I 如果当前的数据类型和外部的IN参数不同但兼容,系统自动转化被传送的值的类型。数
组不能像输入参数一样被传送 ( IN) 。
输出参数( 关键字OUT)
变量名被传送到这儿(有参数唤醒)。变量在调用子程序时必须有一个值。这个值能被
子程序用于调用。
参数类型OUT能在子程序调用时被分配一个值。由于这个原因当前的数据类型和外部参
数必须在传送模式OUT中完全一致。
作为一个参数输出传送是默认的设置,例如:OUT不需要指定。
END语句
END语句总是的全球或本地子程序的最后程序段。子程序的最后程序段执行任何RETURN语句,没有时执行END语句。
没有外部参数的程序的声明:
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
机器人程序的结构是体现其使用价值的一个十分重要的因数。程序结构化越规范,程序就越易于理解、执行效果越好、越便于读取、越经济。为了使程序得到结构化设计,可以使用以下技巧:
-
注释 | 注解和印章
-
缩进 | 空格
-
隐藏 | Folds (“ 折叠 ”)
-
模块化 | 子程序
添加注释为在机器人程序中存储仅针对程序读者的文本提供了可能性。即机器人解释器不读入该文本。该文本只是为了提高程序的可读性。
在机器人程序中可以在许多地方使用注释:
有关程序文本的分段:主要使用画图符号 (特殊符号 #、*、~ )
-
添加注释(专家层面):通过在程序行的起始位置添加分号来使该程序行“ 变成注释 ”,即该文本作为注释来识别,而不进入程序执行。
联机表单无法添加一个分号 “;”。
以及对需执行的工作的说明:标识未完成的程序段
可以使用三种不同的注释方式:
-
添加分号 (专家层面):通过插入分号 (“;”)使一行中的后面部分变成注释。
-
插入联机表格 “ 注释 ”
-
插入联机表格 “ 印章 ”:在此还另外插入一个时间戳记。此外,还可以插入编辑者的姓名。
插入注释和印章的操作步骤
1. 选中其后应插入注释或印章的那一行。
2. 选择菜单序列 指令 > 注释 > 正常或印章。
3. 输入所希望的数据。如果事先已经插入了注释或印章,则联机表格中还保留着相同数据。
-
插入注释时,可用新文本来清空注释栏,以便输入新的文字。
-
插入印章时,还可用新时间来更新系统时间,并用新名称清空名称栏。
4. 用 指令 OK存储。
程序行的缩进
提高机器人程序可读性的一个有效手段是缩进程序行。由此可提高程序单元之间关联的清晰度。
通过折叠夹隐藏程序行
-
KUKA 机器人编程语言可将程序行折叠和隐藏到 Fold 中。
-
用户因此而看不到这些程序行。这使程序的阅读变得更加简洁方便。
-
以后可在专家用户组中打开和编辑 Fold。