利用子程序技术可将机器人程序模块化,因而可以有效地按结构设计程序。目的是不将所有指令写入一个程序,而是将特定的流程、计算或过程转移到单独的程序中。
通过使用子程序产生了一系列的优点:
由于程序长度减短,主程序结构更清晰并更易读。
可独立开发子程序:编程耗时可分摊,最小化错误源。
子程序可多次反复应用。
原则上,有两种不同的子程序类型:
全局子程序
一个全局子程序是一个独立的机器人程序,可由另一个机器人程序调用。可根据具体要求对程序进行分支,即某一程序可在某次应用中用作主程序,而在另一次则用作子程序。
局部子程序
局部子程序是集成在一个主程序中的程序,即指令包含在同一个 SRC 文件中。子程序的点坐标相应存放在同一个 DAT 文件中。
每个程序都以 DEF 行开始并以 END 行 结束。如果要在主程序中调用子程序,则正常情况下子程序会从 DEF 运行至 END。到达 END 行后,程序运行指针重新跳入发出调用指令的程序 (主程序)。
为了能提早退出子程序 (即在 END 行之前),可以在子程序中编入 RETURN 指令。程序读到该程序行时,即可提前终止子程序的运行。
调用子程序的操作步骤:
为了能够对子程序调用进行编程,必须已选择用户组 “ 专家 ”。子程序调用的句法为:名称( )
1. 在主菜单中选择 配置 》 用户组。将显示出当前用户组。
2. 若欲切换至其它用户组,则:按下 登录 …。选定用户组专家。
3. 输入密码 kuka,然后用登录确认。
4. 用 打开将所需的主程序载入编辑器。
INI
PTP HOME Vel= 100% DEFAULT
PTP HOME Vel= 100% DEFAULT
5. 将光标定位在所需的行内。
6. 输入子程序名称和括号,例如:myprog( )。
INI
PTP HOME Vel= 100% DEFAULT
myprog( )
PTP HOME Vel= 100% DEFAULT
7. 用关闭图标关闭编辑器并保存修改。
KRL文件中包含至多255个局部子程序
子程序的最大嵌套深度为20
局部子程序位于主程序之后,通过 DEF 和 END 区别
局部子程序可被重复调用
点坐标保存于相应的 DAT 列表,并且可被全部文件调用
当局部子程序执行完,程序跳转回调用子程序后的下一条指令
子程序是从主程序中链接的程序。处理完子程序后,主程序将在紧接着子程序调用后面的一行继续运行。
局部子程序包含在与主程序相同的 SRC 文件中。可用关键词 GLOBAL 将其定义为全局。
全局子程序是从另一个程序中链接的包含自有 SRC 文件的程序。
在主程序中给出子程序的名称,然后加上圆括号,即可调用子程序。
在下列示例中将调用子程序 my_subprogram :
my_subprogram()
调用功能
函数是一种向主程序返回某一值的子程序。功能拥有一个数据类型。
功能的调用与子程序类似:在主程序中指定功能的名称,通过圆括号进行。但是,功能调用绝不能单独存在,而是必须始终为相同数据类型的变量分配该值。
从主程序中调用的示例:
REALVAR = REALFUNCTION()
INTVAR = 5 * INTFUNCTION() + 1
使用子程序可以使主程序实现结构化,程序的结构化使得程序层次分明。
子程序不能调用自己本身。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !