跳到主要内容

8.1 本章简介

工业/协作机器人是一种非常柔性的生产工具,用户可以通过指令编程,应对不同的需求。
本章将介绍 xCore 控制系统编程的方方面面。
从本章开始,用户将逐步深入了解 xCore 编程、设置、通信等高阶使用方式。

8.1

8.2 初识工程

xCore 以工程为单位,管理用户的编程。一个典型的工程,包含了 RL 程序、自定义用户界面、任务、变量、点位、路径、IO、用户坐标系、工具坐标系、工件坐标系等信息。

根据范围大小分为四个层次:

工程

Project

最高级别,包含各类信息,一个工程中可以包含多个任务,原则上每个任务互相独立,仅靠提供的接口进行交互;
机器人一次只能选择一个工程执行。

任务

Task

一个任务中可以包含多个程序模块,但有且仅有1个main.mod;
在main.mod中包含一个 GLOBAL PROC main,该 GLOBAL PROC main 作为整个工程的入口函数;
加载并执行某个工程,本质上是在执行main函数。

程序模块

Module

分为程序模块(.mod)与系统模块(.sys)两种,一个模块就是一个程序文件;
每个程序模块中都包含了若干数据变量以及函数,用于实现具体的机器人功能;
每一个程序文件都可以执行拷贝、删除等常规的文件操作。
模块的定义方式为:
PROC main()

ENDPROC

PROC test1()

ENDPROC

PROC test2()

ENDPROC

函数

Routine

用户可在函数内按自己的需求调用机器人功能或者其他模块;
支持用户自定义函数,不同的自定义函数可以存储在同一个程序文件中,也可以存储在不同的程序文件中。

工程、任务、程序模块以及函数的相互关系,如下图所示:

8.2

每一个模块中,位于文件头部与第一个函数之前的代码区称为声明区,用来存放 GLOBAL 和 LOCAL 作用域的变量声明。该区域中定义的变量在每次 pptomain 时将重新初始化。
例:int0 在变量列表中定义,初始值为 0;int1 在声明区中定义,初始值为 0。
循环运行时,int0 每次运行后递增1,其打印值为“1,2,3…​…​”;int1 每次运行时将重新初始化为 0,其打印值为“1,1,1…​…​”。
8.2.2