对于不同的主控系统,机器人发送当前位置数据的方式也多种多样。如果使用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类型变量来存放机器人的当前位置数据。同时,声明其他类型的数据变量,作为数据处理的中间转换变量。变量声明代码如下所示。
变量声明程序代码如下所示:
!声明机器人当前位姿变量 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信号扩展模块实现,也可以通过加装现场通信模块的方式实现。
更多详情:abb机械手
- 下一篇:机器人当前位置数据发送子程序编写
- 上一篇:ABB程序储存器的组成