1、概述
FANUC 机器人系统的 KAREL 系统由机器人,控制器和系统软件组成。它使用用 KAREL 编程语言编写的程序来完成工业任务。KAREL 可以操作数据,控制和与相关设备进行通信并与操作员进行交互。
配备 KAREL 的系统 R-30iA 控制器可与各种机器人模型配合使用,以处理各种应用。这意味着常见的操作,编程和故障排除程序以及更少的备件。KAREL 系统扩展到包括全系列支持产品,如整体视觉,离线编程和特定于应用的软件包。
KAREL 编程语言实际上融合了像 Pascal和PL / 1 这样的高级语言的逻辑,类似英语的功能,以及机器控制语言经验证的工厂车间效率。KAREL 结合了高级语言通用的结构和惯例以及专门为机器人应用开发的功能。这些 KAREL 功能包括
• 简单和结构化的数据类型
• 算术,关系和布尔运算符
• 控制循环和选择的结构
• 条件处理程序
• 程序和功能例程
• 输入和输出操作
• 多编程支持
本章总结了 KAREL 编程语言,并描述了 KAREL 系统软件和控制器。
以下说明适用于 R-30iB控制器:
注意为了加载 KAREL 程序,必须在机器人控制器上安装 KAREL 选件。
1.2 KAREL 编程语言
1.2.1 概述
KAREL程序由存储在源代码文件中的声明和可执行语句组成。与程序关联的变量数据值存储在变量文件中。
使用 OLPC PRO 或其他编辑器(如Word Pad)创建和编辑 KAREL程序。
KAREL 语言编译器将源代码转换为称为p代码的内部格式并生成p代码文件。编译器提供OLPC PRO。编译完成后,可以使用 KAREL 命令语言(KCL)或FILE菜单将产生的p代码程序加载到控制器上。
在加载期间,系统将创建任何不在RAM中的所需变量并将其设置为未初始化。当你运行程序时,KAREL 解释器执行加载的p代码指令。
KAREL 程序由程序逻辑和程序数据组成。程序逻辑定义了执行特定任务所需执行的一系列步骤。程序数据是程序逻辑使用的任务相关信息。在KAREL中,程序逻辑与程序数据是分开的。
程序逻辑由 KAREL 程序中BEGIN和END语句之间的 KAREL 可执行语句定义。程序数据包括通过RAM中的名称,数据类型和存储区域在 KAREL 程序的VAR声明部分中标识的变量。程序数据的值可以通过示教器点动机器人,通过程序计算,从数据文件读取,从CRT / KB内设置或者教导式菜单结构,或者在执行过程中作为输入接受。数据值可以从一次执行改变到下一次,但是使用相同的程序逻辑来操纵数据。
由于以下原因,程序逻辑和程序数据在 KAREL 程序中是分开的:
• 允许在同一个程序中的多个地方引用数据
• 允许多个程序引用或共享相同的数据
• 允许程序使用替代数据
• 促进离线计算机辅助设计(CAD)系统建立数据文件
程序的可执行部分包含数据操作语句,I / O语句和例程调用。
程序开发周期:
• 创建一个程序源代码文件
• 编译程序文件。
• 加载程序逻辑和数据。
• 执行程序。
• 维护程序的执行历史。
1.2.2 创建一个程序
您可以使用离线编辑器(如OLPC PRO)或任何文本编辑器(如写字板)创建 KAREL 程序。生成的文件称为源文件或源代码。
1.2.3 编译程序
在执行之前,KAREL源文件必须编译成内部代码,称为p代码。KAREL语言编译器执行此功能并检查源代码中的错误。
KAREL语言编译器从源代码的***行开始并持续到遇到错误或成功编译程序。如果遇到错误,转换程序会尝试继续检查程序,但不会生成p代码。
您可以从 OLPC PRO 调用编译器,并且您正在编辑的源代码将被编译。成功编译后,编译将显示成功的编译消息并创建一个p代码文件。p代码文件将使用源代码文件名和.pc文件类型。该文件包含源代码的内部表示以及系统将程序链接到变量数据和例程所需的信息。
如果编译器检测到任何错误,它将显示正在编译的错误消息和源代码行。纠正错误后,您可以再次编译程序。
1.2.4 加载程序逻辑和数据
以下说明适用于R-30iB控制器:
注意为了加载KAREL程序,必须在机器人控制器上安装KAREL选件。
一个程序的p代码被加载到一个可以执行的控制器上。加载程序时,将在RAM中创建一个包含程序中所有静态变量的变量数据表。变量数据表包含程序标识符,所有变量标识符以及变量所在RAM中的存储区域的名称。
加载程序还会建立语句和变量之间的链接。***初,变量数据表中的值将被初始化。如果成功加载变量文件(.vr),则任何变量的值都将存储在可变数据存储区(CMOS,DRAM,SHADOW)中。
通常使用多个程序来将大型应用程序或问题分解为可以单独开发和测试的较小块。KAREL 系统允许加载多个程序。每个加载的程序都有自己的p代码结构。
可变数据可以在多个程序之间共享。在这种情况下,必须在VAR声明中指定 KAREL 语言的FROM子句,以便系统可以在程序加载时执行链接。这节省了包含数据的多个副本所需的存储空间。
以下限制适用于可以加载的KAREL程序的数量和大小:
• 程序数量限制为2704或可用RAM。
• 每个程序的变量数量限制为2704或可用RAM。
1.2.5 执行程序
从程序列表中选择一个程序并将p代码和变量文件加载到RAM后,测试和调试程序以确保其按预期运行。
程序执行从***个可执行文件行开始。除非您指定堆栈大小,否则将分配300个字的堆栈。堆栈从可用的用户RAM分配。
1.2.6 执行历史
每次执行程序时,可以使用SHOW HISTORY命令从KCL显示已执行的嵌套例程和行号的日志。
这在程序暂停或意外中止时非常有用。执行历史显示导致中断的事件序列。
1.2.7 程序结构
KAREL程序由声明和由KAREL语言声明组成的可执行部分组成,如KAREL程序的结构所示:
PROGRAM prog_name
Translator Directives
CONST, TYPE, and/or VAR Declarations
ROUTINE Declarations
BEGIN
Executable Statements
END prog_name
ROUTINE Declarations
在KAREL计划的结构中,用大写字母表示的词语是具有专用意义的KAREL保留字。PROGRAM,CONST,TYPE,VAR和ROUTINE表示程序的声明部分。BEGIN和END标记可执行部分。
确定程序的PROGRAM语句必须是任何KAREL程序中的***条语句。PROGRAM语句由保留字PROGRAM和您选择的标识符(KAREL程序结构中的prog_name)组成。
注意您的程序必须位于文件中。该文件可以但不一定与程序具有相同的名称。这种区别很重要,因为您调用翻译器并使用包含程序的文件的名称加载程序,但是您会启动程序的执行并使用程序名称清除程序。
例如,如果名为移动器的程序包含在名为transfer的文件中,则可以通过传输引用该文件进行翻译,但会使用程序名移动器来执行该程序。如果程序和文件都被命名为移动器,则可以使用移动器翻译文件并执行该程序。
创建任务来执行程序,任务名称是您启动的程序的名称。该程序可以在另一个程序中调用例程,但任务名称不会更改。
用于命名程序的标识符不能在程序中用于任何其他目的,例如标识变量或常量。
CONST(常量),TYPE(类型)和VAR(变量)声明节在PROGRAM语句之后。一个程序可以包含任意数量的CONST,TYPE和VAR部分。每个部分还可以包含任意数量的单个声明语句。此外,多个CONST,TYPE和VAR部分可以按任意顺序出现。CONST,TYPE和VAR段以及声明语句的数量仅受可用内存量的限制。
例程声明可以遵循CONST,TYPE和VAR部分。每个例程都以保留字ROUTINE开头,在语法上与程序类似。在END语句后,ROUTINE声明也可以跟在主程序的可执行部分之后。
可执行部分必须在开始和结束时用BEGIN标记,***后用程序标识符(在KAREL程序的结构中为prog_name)标记。END语句中必须使用与PROGRAM语句中相同的程序标识符。可执行部分可以包含任意数量的可执行语句,仅受可用内存量的限制。
1.3 系统软件
R-30iA系统软件是由FANUC Robotics提供的软件,由控制器CPU执行,允许您操作R-30iA系统。您使用系统软件来运行程序,以及执行日常操作,维护和故障排除。
系统软件的组件包括:
• Motion Control - 将工具中心点(TCP)从初始位置移动到所需的目标位置
• File System - 将数据存储在RAM磁盘或外围存储设备上
• System Variables - 作为KAREL系统软件一部分声明的***定义的变量
• CRT/KB or Teach Pendant Screens - 便于操作KAREL系统的屏幕
• KCL - KAREL 命令语言
• KAREL Interpreter - 执行 KAREL 程序
1.4 控制器
1.4.1 内存
有三种控制器内存:
• 动态随机存取存储器(DRAM)
• 有限的电池备份静态/随机访问存储器(SRAM)
• 闪存可编程只读存储器(FROM)
更多发那科机器人资讯请点击:http://fanuc-shanghai.gongboshi.com/
新闻中心