您好!欢迎光临工博士商城

Yaskawa工业机器人销售

产品:133    

咨询热线:18717873382(微信同号)

您当前的位置:首页 » 安川机器人资料中心 » 安川机器人MOTOCOMES版本函数特点及举例
产品分类
安川机器人资料中心
安川机器人MOTOCOMES版本函数特点及举例
发布时间:2020-04-12        浏览次数:249        返回列表

一、MOTOCOMES版本函数特点及举例

MOTOCOMES版本的库函数既然能够同时控制多个机器人运动当然也能够控制单个机器人运动。对比起来,MOTOCOMES版本的库函数自身已经完成了一次封装了,设计了诸多数据结构对“底层”进行封装,下面举个例子。

函数ESCartMove,查看手册,其功能是“Moves the robot to specified positions. (Type Cartesian Coordinates)”,即“在笛卡尔坐标系(直角坐标系)下,控制机器人运动到指定位置”。

函数声明为:

LONG ESCartMove(HANDLE handle, LONG moveType, ESCartMoveData moveData);

需要说明的是:

LONG:可以查到“typedef long LONG”
HANDLE:通信句柄(typedef void *HANDLE)
moveType:运动类型,通过查阅手册可以查到如下说明(三种方式分别为圆弧插补、直线插补和增量插补。)

安川机器人MOTOCOMES版本函数特点及举例
ESCartMoveData:同样查阅手册,发现它是一个结构体,并且该结构体里的成员也是结构体,手册里然后依次介绍了各个结构体的含义(这里篇幅过大,不再示意,大家可以查阅手册)。

安川机器人MOTOCOMES版本函数特点及举例
因此,根据手册中的讲解,Jungle设计了如下的函数,对该功能函数进行封装:

/**
* @function-命令机器人移动到指定位置
* @param iMoveData-指定机器人运动信息
*       double position[8]:指定机器人移动的目标位置
        double moveSpeed:指定机器人的移动速度(单位:%-MOVJ;mm/s-MOVL,IMOV;°/s-MOVL,IMOV)
        long moveType:指定机器人的运动类型:1-MOVJ;2-MOVL;3-IMOV增量
* @return
* @author-Jungle
* @date-2019.1.23
*/
void Robot::moveToAppointedPoint(MoveDataInfo iMoveData)
{
        ESCartMoveData moveData;
        memset(&moveData, 0, sizeof(ESCartMoveData));

        long moveType = iMoveData.moveType;
        ///机器人序号
        moveData.moveData.robotNo = 1;
        moveData.moveData.stationNo = 0;
        ///速度分类:0-%(MOVJ);1-V(MOVL,IMOV);2-VR(MOVL,IMOV)
        moveData.moveData.speedType = 1;
        moveData.moveData.speed = iMoveData.moveSpeed;
        ///数据类型:16-基坐标系;17-机器人坐标系;18-工具坐标系;19-用户坐标系
        moveData.robotPos.dataType = 16;
        moveData.robotPos.fig = 0;
        ///工具号
        moveData.robotPos.toolNo = 0;
        ///用户坐标系号
        moveData.robotPos.userFrameNo = 0;
        moveData.robotPos.exFig = 0;

        for(int i=0;i        moveData.robotPos.axesData.axis[i] = iMoveData.position[i];
        for(int i=0;i        moveData.basePos.axis[i] = 0;
        for(int i=0;i        moveData.stationPos.axis[i] = 0;

        long result = ESCartMove(handle,moveType,moveData);
        ///等待机器人运动到达该点
        ///略
}

其中,MoveDataInfo是Jungle自己设计的一个结构体:

///轨迹点结构体
struct MoveDataInfo
{
        //机器人移动的目标位置
        double position[8];
        //指定机器人的移动速度
        double moveSpeed;
        //机器人的运动类型:1-MOVJ;2-MOVL;3-IMOV增量
        long moveType;
};

在查阅手册的时候可以发现,MOTOCOMES版本的函数基本都会用到一些“在规定内建的结构体”。这样使用起来就相对更方便了,用户在进行二次封装的时候接口可以更加简洁清晰。



了解更多可点击咨询:安川机器人
服务商



 

联系热线:18717873382(微信同号)   联系人:郑经理 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 Yaskawa工业机器人销售