byte数组添加数据_ABB机器人:基于现场通信方式向西门子PLC发送实时位置数据的方法

本文介绍了如何使用ABB机器人通过现场通信(如ProfiBus)向西门子PLC发送实时位置数据。详细讲解了变量声明、组输出信号配置、中断子程序、位置数据发送子程序的编写,以及主程序的实现,确保数据在大小端模式不同的系统间正确传输。
摘要由CSDN通过智能技术生成

概述

在ABB机器人系统集成项目中,很多时候由于控制需求,我们需要对机器人的实时位置进行监控,这样就需要机器人向主控系统实时发送当前位置数据。

对于不同的主控系统,机器人发送当前位置数据的方式也多种多样。如果使用PC机作为上位机来读取机器人实时位置信息,那么我们就可以通过使用IRC5 OPC Server来读取机器人位置数据,然后再发送给PC上位机;当然,也可以通过PC SDK对机器人控制器进行二次开发,然后通过PC Interface选项,直接读取控制器中机器人的位置信息。如果是使用PLC作为上位机来读取机器人实时位置信息,那么我们就可以通过工业现场通信,如ProfiBus、ProfiNet、DeviceNet等,然后使用ABB机器人内置的数据处理指令编写实时位置数据发送程序,来实现机器人位置数据的发送。

本期,就来为大家介绍一下ABB机器人通过现场通信形式,向西门子PLC发送实时位置数据的方法。

变量声明

机器人的当前位置就是工具末端的当前位置,也就是TCP的当前坐标,它是由x、y、z的坐标值以及分别绕x、y、z轴旋转的角度值组成,这些数据的类型均是实数类型。在ABB机器人中,使用num与dnum来表示实数,其中num类型与西门子PLC中的real类型一致,都是32位的单精度实数;而dnum类型数据是64位的双精度实数。因此,在机器人中,我们可以声明num类型变量来存放机器人的当前位置数据。同时,声明其他类型的数据变量,作为数据处理的中间转换变量。变量声明代码如下所示。

469b4cc3fa9b48d0d44bff7231984aa3.png

变量声明程序代码如下所示:

    !声明机器人当前位姿变量    VAR robtarget pCurrentPos;    !声明机器人位姿存储变量    VAR num x;    VAR num y;    VAR num z;    VAR num rx;    VAR num ry;    VAR num rz;    !声明机器人位姿通用数据容器中间转换变量    VAR rawbytes rawbyte_x;    VAR rawbytes rawbyte_y;    VAR rawbytes rawbyte_z;    VAR rawbytes rawbyte_rx;    VAR rawbytes rawbyte_ry;    VAR rawbytes rawbyte_rz;    !声明机器人位姿字节型中间数据转换变量    VAR byte byte_x{4};    VAR byte byte_y{4};    VAR byte byte_z{4};    VAR byte byte_rx{4};    VAR byte byte_ry{4};    VAR byte byte_rz{4};    !声明双精度类型机器人位姿数据变量    VAR dnum dn_x;    VAR dnum dn_y;    VAR dnum dn_z;    VAR dnum dn_rx;    VAR dnum dn_ry;    VAR dnum dn_rz;    !声明中断数据变量    VAR intnum TrapNum;

组输出信号配置

ABB机器人传输实数数据的方式大致可以分为两种:一、使用模拟量输出信号传输实数数据,由于模拟量信号自身抗干扰性能差,并且需要加装价格昂贵的模量信号扩展模块,因此,在传输大量的实数数据的场合中,一般很少使用模拟量信号;二、使用组输出信号传输实数数据,组输出信号不仅可以通过加装价格相对低廉的数字量I/O信号扩展模块实现,也可以通过加装现场通信模块的方式实现。本例,使用第二种方式,通过ProfiBus现场总线通信的形式来传输机器人当前位置数据。

由于机器人当前位置数据都是32位的单精度实数类型,所以,我们定义的每一个组输出信号长度也应该是32位。

14497d5f5d5a1727a169b2a87f090ad1.png

中断子程序编写

创建中断子例行程序,并在其中编写读取机器人当前位置x、y、z坐标数据程序。由于ABB机器人系统中使用四元数形式表示TCP绕相应坐标轴的旋转角度,因此,这里需要使用EulerZYX指令将以四元数形式表示的角度数据转换为欧拉角形式表示的旋转角度数据。完整的中断子程序代码如下所示。

dc4a5a4234fc24d5d2a602bcdef9d947.png

中断子程序代码如下所示:

    TRAP iTrap!中断程序iTrap        !读取机器人当前位置
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值