ABB机器人程序框架

文摘   科技   2023-04-03 14:29   江西  
1.Task
    通常,一台机器人对应一个Task,Task可由多个Module组成;
    若配置选项Multitasking [623-1],一台机器人可由多个Task组成;

   Type:可设置前台任务和后台任务
    Task in Foreground:可设置各前台任务的优先级

    Main Entry:设置任务入口程序

2.Module
  Module类型包含Program Module和System Module;
  其中

(1)Program module:

    编程模块由各种数据和程序构成。每个模块或整个程序都可复制到磁盘和内存盘等设备中,反过来,也可从这些设备中复制模块或程序。

    其中一个模块中含有入口过程和被称为Main的全局过程。执行程序实际上就是在执行Main过程。本程序可包括多个模块,但其中一个必须要有一个主过程。

    如,一个模块要么可定义与外部设备的接口,要么就包含CAD系统生成的或经数字化(示教编程)在线上创建的几何学数据。

    因而,一个模块中通常会包含多个小型计算站,而多个偏大的计算站可能共用一个主模块,主模块可引用某一或其他多个模块中包含的程序和/或数据。


(2)System module:

    系统模块定义常见的系统专用数据和程序,如工具等。系统模块不会随程序一同保存,也就是说,对系统模块的任何更新都会影响程序内存中当前所有的或随后会载入其中的所有程序。


3.Routine
  程序(子程序)分为无返回值程序、有返回值程序和软中断程序这三类。
      • 无返回值程序不会返回数值。该程序用于指令中。

      • 有返回值程序会返回一个特定类型的数值。该程序用于表达式中。

      • 软中断程序提供了一种中断应对方式。一个软中断程序只对应一次特定中断。一旦发生中断,则将自动执行对应软中断程序。但不能从程序中直接调用软中断程序。

(1)无返回值程序声明

        如,用数值数组中的各元素乘以

PROC arrmul( VAR num array{*}, num factor)  FOR index FROM 1 TO dim( array, 1 ) DO    array{index} := array{index} * factor;  ENDFORENDPROC

(2)有返回值程序声明

        有返回值程序可返回任意数据类型的数值,但不能返回数组数值。

        如,可返回矢量长度。

FUNC num veclen (pos vector)  RETURN Sqrt(Pow(vector.x,2)+Pow(vector.y,2)+Pow(vector.z,2));ENDFUNC

(3)软中断声明

        如,对“给料机空载”所致中断的反应:

TRAP feeder_empty  wait_feeder;  RETURN;ENDTRAP


4.Program data

    可按数据形式保存信息,如工具数据,包含对应工具的所有相关信息,如工具的工具中心接触点及其重量等;数值数据,也有多种用途,如计算待处理的零件量等。

    数据分为多种类型,不同类型所含的信息也各有不同,如工具、位置和负载等。

    由于此类数据是可创建的,且可赋予任意名称,因此其数量不受限(除来自内存的限制外)。

    既可遍布于整个程序中,也可能只在某一程序的局部。

    数据分为三类—常量、变量和永久数据对象。

      • 常量表示的是静态值,只能通过人为方式赋予新值。

      • 另外,在程序执行期间,也可赋予变量一个新值。

      • 永久数据对象也被视作“永久”变量。保存程序时,初始化值呈现的就是永久数据对象的当前值。

CONST num a := 2VAR num global_variable; PERS num a__b := 5;

SongBot视觉实验室
主流工业机器人和机器视觉的各类应用编程技术介绍,以及技术支持和技术培训服务
 最新文章