BeckHoff <---> Mitsubishi RH-20FR(三菱)水平关节机械手通过网桥(EL6692)通讯
目录
一、 设备介绍
1、三菱RH-20FRH水平关节机器手外观
2、设备描述
1、负载与臂展2
2、性能特点
3、结构设计
4、控制系统
二、PLC通讯接配置
2.1 配置EL6692网桥
三、设备通讯接口数据类型定义
3.1 定义通讯数据类型
3.2 定义INPUT 结构体
3.3 定义OUTPUT结构体
3.4 定义全局变量
3.4.1 定义结构体 ST_IF_Rotary_From_Mitsubishi
3.4.2 定义结构体 ST_IF_Rotary_To_Mitsubishi
3.4.3 定义全局变量
3.5 实例化变量
3.5.1 实例化输入变量
3.5.2 实例化输出变量
3.6 建立实例化变量与模块硬件接口的连接
3.6.1 建立输入变量与模块硬件配置接口的连接
3.6.2 建立输出变量与模块硬件配置接口的连接
四、FB_MITSUBISHI_ROBOT_PROFINET_V1 通讯功能块变量声明
五、通讯功能块程序
六、通讯功能块程序分析
6.1 核心功能模块
6.2 关键实现细节
6.3 应用场景
6.4 优化建议
一、 设备介绍
1、三菱RH-20FRH水平关节机器手外观
2、设备描述
三菱 RH-20FRH 水平关节机器手是一款高性能的工业机器人,以下是其相关介绍:
1、负载与臂展2
- 负载能力:最大有效负载为 20kg,能够搬运较重的物体,适用于重物搬运、装箱等场景。
- 臂展:臂展在 850 - 1000mm 之间,可在一定的空间范围内进行作业,满足不同工作场景的需求。
2、性能特点
- 高速度11:采用高刚性手臂与新型的伺服控制,具备同级别机器人中较高的速度性能,如 XY 合成速度可达 13283mm/s,J4(θ 轴)速度为 2400deg/s,标准周期时间仅 0.30s,能够快速完成动作,提高生产效率。
- 高精度13:通过先进的伺服控制和优化的手臂构造设计,实现高速度的同时保证了高精度,可满足对精度要求较高的组装等作业。
- 强化手腕轴1:强化手腕轴后,可充裕适配多功能抓手及偏置抓手,能灵活连接各种末端执行器,以完成不同类型的任务。
- 良好的环境适应性11:环境标准为标准、油雾 lP65,清洁 ISO 级别 3,具备较好的防尘、防油雾能力,可适应多种工业生产环境。同时,该机器手符合欧洲机械认证(CE)、KCC 认证等,产品质量和安全性得到国际认可。
3、结构设计
- 紧凑轻巧:通过降低整体高度、优化手臂结构,在减轻主体重量的基础上,提升了整体负载能力,减少了机器人所占用的空间,便于安装和布局,适用于空间有限的工作场所。
- 内置走线和管道:机械臂内置抓手信号线和空气管道,同时附带多个可用于外部配线 / 管道的螺孔,使配线、配管更加便利,减少了外部线路的杂乱,提高了工作场所的整洁度和安全性。
4、控制系统
使用具有众多智能特征的下一代控制器,如 RH-FRH-Q/R 系列(iQ、iQ - R 平台)和 RH - FRH - D 系列(独立单机),标配 CC - Link IE Field Basic 网络,具有附加轴功能、传送带追踪功能等,可方便地与三菱 PLC 和伺服马达相连,能构建复杂的自动化生产系统,实现各种复杂的工业生产任务。
二、PLC通讯接配置
2.1 配置EL6692网桥
三、设备通讯接口数据类型定义
3.1 定义通讯数据类型
3.2 定义INPUT 结构体
TYPE ST_MITSUBISHI_ROBOT_Input :
STRUCT(*============================== INPUTS ==============================================*)i_bSTART : BOOL; (*Program is active (System output)*)i_bSRVON : BOOL; (*Servos are on (System output)*)i_bERRRESET : BOOL; (*Error present (System output)*)i_bIOENA : BOOL; (*Operation rights (System output)*)i_bRCREADY : BOOL; (*Controller is ready (System output)*)i_bSLOTINIT : BOOL; (*Program is reset (System output)*)i_bTEACHMD : BOOL; (*Robot is in teach mode (System output)*)i_bBATERR : BOOL; (*Battery voltage low (System output)*)i_bRes_by1b0 : BOOL; (*Reserve byte 1 bit 0*)i_bRes_by1b1 : BOOL; (*Reserve byte 1 bit 1*)i_bRes_by1b2 : BOOL; (*Reserve byte 1 bit 2*)i_bRes_by1b3 : BOOL; (*Reserve byte 1 bit 3*)i_bRes_by1b4 : BOOL; (*Reserve byte 1 bit 4*)i_bRes_by1b5 : BOOL; (*Reserve byte 1 bit 5*)i_bRes_by1b6 : BOOL; (*Reserve byte 1 bit 6*)i_bRes_by1b7 : BOOL; (*Reserve byte 1 bit 7*)i_byIODATA : BYTE; (*Common process data area, Bit 0 (System output)*)i_bRes_by3b0 : BOOL; (*Reserve byte 3 bit 0*)i_bRes_by3b1 : BOOL; (*Reserve byte 3 bit 1*)i_bRes_by3b2 : BOOL; (*Reserve byte 3 bit 2*)i_bRes_by3b3 : BOOL; (*Reserve byte 3 bit 3*)i_bRes_by3b4 : BOOL; (*Reserve byte 3 bit 4*)i_bRes_by3b5 : BOOL; (*Reserve byte 3 bit 5*)i_bRes_by3b6 : BOOL; (*Reserve byte 3 bit 6*)i_bRes_by3b7 : BOOL; (*Reserve byte 3 bit 7*)i_byHNDSTS1 : BYTE; (*Current Gripper State*)i_bTaskRequest : BOOL; (*Ready for new task*)i_bTaskRead : BOOL; (*Task data has been read*)i_bTaskActive : BOOL; (*Task is busy (running)*)i_bRobIsHome : BOOL; (*Robot is in home position*)i_bRes_by5b4 : BOOL; (*Reserve byte 5 bit 4*)i_bRes_by5b5 : BOOL; (*Reserve byte 5 bit 5*)i_bRes_by5b6 : BOOL; (*Reserve byte 5 bit 6*)i_bRes_by5b7 : BOOL; (*Reserve byte 5 bit 7*)i_byTask : BYTE; (*Mirror of motion task to PLC, Bit 0*)i_bRes_by7b0 : BOOL; (*Reserve byte 7 bit 0*)i_bRes_by7b1 : BOOL; (*Reserve byte 7 bit 1*)i_bRes_by7b2 : BOOL; (*Reserve byte 7 bit 2*)i_bRes_by7b3 : BOOL; (*Reserve byte 7 bit 3*)i_bRes_by7b4 : BOOL; (*Reserve byte 7 bit 4*)i_bRes_by7b5 : BOOL; (*Reserve byte 7 bit 5*)i_bRes_by7b6 : BOOL; (*Reserve byte 7 bit 6*)i_bRes_by7b7 : BOOL; (*Reserve byte 7 bit 7*)i_iErrorNumber : INT; (*Current Error Number to PLC*)i_arbProcess : ARRAY [0..15] OF BOOL; (*Process Signals 1-16*)i_arbyCounter : ARRAY [1..8] OF BYTE; (*Counter values 1-8*)i_arbOCAArea : ARRAY [0..15] OF BOOL; (*'Robot is out of collision-area Signals' 1-16*)i_arstGripper : ARRAY [1..8] OF ST_MITSUBISHI_ROBOT_Gripper (*Rob to PLC: Gripper 1-8*);END_STRUCT
END_TYPE
3.3 定义OUTPUT结构体
TYPE ST_MITSUBISHI_ROBOT_Output :
STRUCT(*============================== OUTPUTS =============================================*)q_bSTOP2 : BOOL; (*Roboterprogramm stoppen (System input)*)q_bSRVOFF : BOOL; (*Servomotoren ausschalten (System input)*)q_bERRRESET : BOOL; (*Fehlerrücksetzen (System input)*)q_bSTART : BOOL; (*Programm starten (System input)*)q_bSRVON : BOOL; (*Servomotoren einschalten (System input)*)q_bIOENA : BOOL; (*Betriebsrechte (System input)*)q_bSLOTINIT : BOOL; (*Programm zurücksetzen (System input)*)q_bRes_by0b7 : BOOL; (*Reserve byte 0 bit 7*)q_bOVRDSEL : BOOL; (*Override übernehmen (System input) (siehe IODATA)*)q_bOVRDOUT : BOOL; (*Override ausgeben (System input) (siehe IODATA)*)q_bRes_by1b2 : BOOL; (*Reserve byte 1 bit 2*)q_bRes_by1b3 : BOOL; (*Reserve byte 1 bit 3*)q_bRes_by1b4 : BOOL; (*Reserve byte 1 bit 4*)q_bRes_by1b5 : BOOL;