一、什么是RAPID语言???
1、RAPID语言支持分层编程方案;在分层编程方案中,可为特定机器人系统安装新程序、数据对象和数据类型。该方案能对编程环境进行自定义(扩展编程环境的功能),并获得RAPID编程语言的充分支持。
此外,RAPID语言还带有若干强大功能:
】对任务和模块进行模块化编程
】无返回值程序和有返回值程序
】类型定义
】变量、永久数据对象、常量
】算术
】控制结构
】步退执行支持
】错误恢复
】撤销执行支持
】中断处理
】占位符
2、RAPID语言摘要
任务与模块 | RAPID应用被称作一项任务。一项任务包括一组模块。一个模块包含一组数据和程序声明。任务缓冲区用于存放系统当前在用(在执行、在开发)的模块。 RAPID语言区分了任务模块和系统程序模块。一个任务模块被视作任务/应用的一部分,而一个系统程序模块被视作系统的一部分。系统程序模块在系统启动期间自动加载到任务缓冲区,旨在(预)定义常用的系统特定数据对象(工具、焊接数据、移动数据等)、接口(打印机、日志文件..)等。 虽然(除了系统程序模块外)单个任务模块通常包含小应用,但较大应用可能包含主任务模块,主任务模块反过来又引用一项或多项其他任务模块所含的程序和/或数据。 一项任务模块包含任务的入口无返回值程序。运行任务实际上表示执行该入口程序。入口程序无法具备参数。 | ||
程序 | 有三类程序:有返回值程序、无返回值程序和软中断程序。
| ||
用户程序 | 用户(定义)程序利用RAPID声明来进行定义。 RAPID程序声明指定了程序名称、程序参数、数据声明、语句,可能也指定了回退处理器和/或错误处理器和/或撤销处理器。 | ||
预定义程序 | 预定义程序由系统提供,一直可供使用。 有两类预定义程序:内置程序和安装程序。
| ||
数据对象 | 有四种数据对象:常量、变量、永久数据对象和参数。
数据对象可呈结构化(记录),也可呈维度化(数组、矩阵等)。 | ||
语句 | 语句可为简单语句或复合语句。反过来,复合语句又可能包含其他语句。标签是“空操作”语句,可用于定义在程序中指定的(goto)位置。语句将被接连执行,除非goto、return、raise、exit、retry或trynext语句、或发生中断或错误,造成从另一点继续执行。 赋值语句将改变变量、永久数据对象或参数的值。 在将任何调用参数与无返回值程序的相应参数关联起来后,无返回值程序调用将引起无返回值程序被执行。RAPID语言支持对无返回值程序名称进行后期绑定。 goto语句会导致程序在标签指定位置继续执行。 return语句将终止程序的求值。 raise语句用于发出和传递错误。 exit语句将终止任务的求值。 connect语句用于指定中断编号,并将中断编号与软中断(中断服务)程序关联起来。 retry和trynext语句用于在错误发生后,重新开始求值。 if和test语句用于选择。if语句能够允许基于条件值,选择语句表。test语句将选择一组(或不选择)语句表,具体取决于表达式的值。 for和while语句用于迭代。只要循环变量处于指定值域内,for语句就会重复执行语句表的求值。在每一迭代结束时,将(以可选增量)更新循环变量。只要满足条件,while语句便会重复执行语句表的求值。在每一迭代开始时,会对条件进行求值和核实。 | ||
步退执行 | RAPID语言支持对语句进行逐步步退执行。在RAPID程序开发期间,步退执行对调试、测试和调节十分有用。RAPID无返回值程序可能包含回退处理器(语句表),回退处理器定义了无返回值程序的步退执行“行为”。 | ||
错误恢复 | 发生运行中的错误会造成正常程序执行被中止。反过来,可转由用户提供的错误处理器来进行控制。任何程序声明均可能包括错误处理器。错误处理器能取得有关错误的信息,并可能采取一些行动来对错误做出响应。如若合适,错误处理器可将错误返回给引起出错的语句来进行控制(retry)或返回给引起出错的语句的后一个语句来进行控制(trynext)或返回给程序调用点来进行控制。如果无法进一步执行程序,那么,错误处理器至少能确保平稳地中止了任务。 | ||
撤销执行 | 通过将程序指针移到程序外,可以在任意点中止程序。在一些情况下,当程序正在执行特定敏感程序时,不适合终止程序。采用撤销处理器,或许可以保护这些敏感程序,使其不会出现意外的程序复位。如果程序被中止,那么,将自动执行撤销处理器。该代码一般应执行清理动作,比如,关闭文件。 | ||
中断 | 中断发生原因在于用户定义(中断)条件变为真。中断不像错误,中断与特定代码段的执行无直接关联(不同步)。发生中断会引起正常程序执行被中止,可转由软中断程序来进行控制。为响应中断而采取必要动作后,软中断程序可从中断点重新开始执行程序。 | ||
数据类型 | 任何RAPID对象(值、表达式、变量、有返回值程序等)都具备一个数据类型。数据类型可为内置型,或为安装型(对照安装程序),还可为用户定义型(在RAPID语言中定义)。内置型数据为RAPID语言的一部分,而各站点之间的安装型数据集或用户定义型数据集可能不同。
数据还可分为三种类型:原子型、记录型和别名型。原子型的定义必须为内置型或安装型,而记录型或别名型也可为用户定义型。
除了原子型、记录型和别名型分类外,每一类型还具备一个值类型。存在三种值类型:值型、非值型和半值型。
| ||
内置数据类型 | 内置原子型数据有bool、num、dnum和string。
内置记录型数据有pos、orient和pose。
内置别名型数据有errnum和intnum。Errnum和intnum均为num的别名,用于表示错误和中断编号。 将利用算术运算符、关系运算符和逻辑运算符以及预定义程序来定义内置型数据的对象的运算。 | ||
安装数据类型 | 安装型数据的概念是,能够使用适当参数类型来使用安装程序。安装型数据可为原子型、记录型、或为别名型。 | ||
用户定义数据类型 | 用户定义型数据能更轻松地自定义应用程序,也能够编写更易读取的RAPID程序。 | ||
占位符 | 占位符概念支持对RAPID程序进行结构化生成和修改。离线编程工具和在线编程工具可利用占位符来临时表示RAPID程序的“未定义”部分。含占位符的程序在语法上是正确的,可加载到任务缓冲区(也可从任务缓冲区保存)。如果RAPID程序中的占位符未引起语义错误,那么,该程序甚至可被执行,但遇到的占位符会引起执行错误。 |
3、RAPID语言表示方法
上下文无关语法 | RAPID语言的上下文无关语法利用巴科斯范式的变体EBNF来表示。
|
4、错误分类
错误类型 | 按照检测时间,错误可分为静态错误或执行错误。 | |||||||||||||||
静态错误 | 静态错误的检出时间为模块加载到任务缓冲区时(参见任务模块)或程序修改后、执行前。
| |||||||||||||||
执行错误 | 在任务执行期间出现(并检出)执行错误。
RAPID语言的错误处理器能够恢复非致命执行错误,参见错误恢复。 |
以上是RAPID引言,方便大家了解它,后续将更新RAPID语言词汇元素