主模块和主程序
1.主模块
主模块是包含有作业主程序及首要子程序的模块,它需求紧接在标题后。主模块的基本结构如下。
MODULE 模块称号(特点); // 主模块开始
模块注释
程序数据界说
主程序
子程序 1
……
子程序 n
ENDMODULE // 主模块完毕
主模块以 MODULE、ENDMODULE 作为开始、完毕符号,开始行为模块声明(module declaration),模块标识 MODULE 后必须界说模块称号(如 mainmodu 等);称号后的括号内,可附加模块的特点(可选,如 SYSMODULE 等)。主模块的称号可在示教器上输入与显现,但特点只能经过离线编程软件增加,也不能在示教器上显现。RAPID 模块的常用特点有以下几种。
① SYSMODULE:程序模块或体系模块;
② NOVIEW:可履行但不能显现的模块;
③ NOSTEPIN:不能单步履行的模块;
④ VIEWONLY:可显现但不能修改的模块;
⑤ READONLY:只读模块,只能显现、不能编辑,但可删除特点的模块。
当模块需求一起界说两种以上特点时,特点需求按以上 ①~⑤ 的次序排列,不同特点间用逗号分隔,如(SYSMODULE,NOSTEPIN)等。但是,特点 NOVIEW、NOSTEPIN、VIEWONLY、READONLY 不能一起界说;特点 VIEWONLY、READONLY 不能一起界说。
主模块开始行后一般为主模块注释,注释以文本的形式增加,数量不限;注释文本之后依次为程序数据界说指令、主程序、子程序模块;***后是主模块完毕符号 ENDMODULE。
主模块的程序数据界说指令一般包含工具坐标系(tooldata)、工件坐标系(wobjdata)、作业参数(如 welddata)及机器人 TCP 移动方针位置(robtarget)、特别移动速度(speeddata)等。程序数据可经过后述的 RAPID 数据声明指令界说为变量(VAR)、常量(CONST)、***数据(PERS)等;运算符「:=」相当于算术运算的等号「=」。
2.主程序
主程序(Main program)是用来安排、调用子程序的管理程序,每一主模块都需求有一个主程序。主程序以 PROC、ENDPROC 作为开始、完毕符号,其基本结构如下。
PROC 主程序称号(参数表)
程序注释
一次性履行子程序
……
WHILE TRUE DO
循环子程序
……
履行等候指令
ENDWHILE
ERROR
过错处理程序
……
ENDIF
ENDPROC
主程序开始行为程序声明(routine declaration),它用来界说程序运用范围、结构类型、称号及程序参数等。主程序一般选用全局普通程序结构(PROC,见第 2.2 节),PROC 后为程序称号(procedure name,如 mainprg 等);如需求,称号后的括号内还可附加参数化编程用的程序参数表(parameter list);无程序参数时,称号后需求保留括号「( )」;有关程序参数的界说办法见后述。
主程序的程序声明后一般为程序注释;随后为子程序的调用、管理指令;***后为主程序完毕符号 ENDPROC。主程序调用子程序的办法与子程序的类别有关,它可分为中止程序调用、功用程序调用和普通程序调用 3 类。
中止程序(Trap routines,简称 TRAP)需求经过 RAPID 程序中的中止功用调用,中止功用一旦使能(启用),只需中止条件满意,体系可当即停止现行程序、直接跳转到中止程序,而无需编制程序调用指令。
功用程序(Functions,简称 FUNC)实际上是用来完成杂乱运算或特别动作的子程序,它可向主程序返回运算或履行成果,因而,可直接用程序数据调用,相同无需编制专门的程序调用指令。
普通程序(Procedures,简称 PROC)是程序模块的主体,它既可用于机器人作业操控,也可用于体系其他处理,需求经过 RAPID 程序履行管理指令调用。程序履行管理指令有一次性履行和循环履行两大类,并可利用无条件履行、条件履行、重复履行等指令来挑选子程序的调用办法。普通子程序的履行管理办法见下述。
过错处理程序(ERROR)是用来处理程序履行过错的特别程序块,当程序呈现过错时,体系可当即中止现行指令,跳转至过错处理程序块,并履行相应的过错处理指令;处理完成后,可返回断点,持续后续指令。任何类型的程序(PROC、FUNC、TRAP)都可编制一个过错处理程序块;如用户程序中没有编制过错处理程序块 ERROR,或 ERROR 中无相应的过错处理指令,将主动调用体系的过错中止程序,由体系软件进行过错处理。
3.普通子程序履行管理
普通子程序的履行办法分一次性履行和循环履行两类,其编程办法如下。
① 一次性履行子程序。一次性履行的子程序在发动主程序后,只能调用和履行一次,这些程序的调用指令应紧接在主程序注释后编写,并以无条件履行指令调用。
子程序的无条件调用可省掉调用指令 Proc Call,而只需求在程序行编写子程序称号,当体系履行至该程序行时,便可跳转至指定的子程序持续履行。例如:
PROC mainprg ()
! Main program for MIG welding
Initall ; // 无条件调用子程序 Initall
……
一次性履行的子程序一般用于机器人作业起点、操控信号初始状况、程序数据初始值的界说以及中止的设定,因而,在 ABB 机器人上常称为初始化子程序,并命名为 Init、Initialize、Initall 或 r Init、r Initialize、r Init All 等。
② 循环履行子程序。循环履行子程序一般是机器人的作业操控程序,它们可在主程序发动后无限重复地履行。循环履行子程序一般运用「WHILE-DO」指令编程,其格局如下:
WHILE 循环条件DO
循环子程序
条件调用循环子程序
……
履行等候指令
ENDWHILE
ENDPROC
体系履行 WHILE 指令时,如循环条件满意,则可履行 WHILE 至 ENDWHILE 的循环指令;循环指令履行完成后,体系将再次查看循环条件,如满意,则持续履行循环指令;如此循环。如 WHILE 指令的循环条件不满意,体系可跳过 WHILE 至 ENDWHILE 的循环指令,履行 ENDWHILE 后的其他指令。
WHILE 指令的循环条件可为判别、比较式,如「Counter1=10」「reg1
更多ABB机器人配件资讯欢迎点击咨询:ABB机器人售后技术服务