导图社区 压铸工作
这是一篇关于压铸工作思维导图,AI压铸自动化系统全流程解析:从模具初始化到成品分拣的智能闭环控制,第一步完成 I/O 点位、工装夹具、生产工件、设备有效载荷基础配置;第二步搭建标准化程序格式,规范任务、模块、主程序、例行程序整体架构;第三步执行设备原点回归,精准校验机器人当前工位位置;第四步核心取件流程,完整梳理预定位、进模取件、顶针脱模、取件结果全流程安全管控逻辑;第五步检测与分流逻辑,规范先判断后执行的安全校验规则,异常信号快速复位处理机制;第六步冷却台管控逻辑,细化工位计数、冷台物料排序、工件流转匹配规则;第七步成品出料输出逻辑,规范工位判定、合格物料流转、机器人点位复位全流程;第八步全维度调试运行,覆盖仿真模拟、示教点位、手动自动调试、系统权限备份全环节;第九步配套功能检查,整理坐标系标定、系统参数配置、关节限位管控、特殊指令管理等收尾运维内容。既适合智能制造学生专业学习、新人岗位岗前培训,也可供调试工程师优化产线程序、技术讲师编写行业培训课件,能够满足大家查找压铸机器人流程思维导图、工业机器人编程实操脑图、压铸自动化产线框架、机器人调试岗位笔记、压铸工序管控速记模板的使用需求。
编辑于2026-06-20 17:10:50这是一篇关于经历失业、健康危机和容貌焦虑后的深度反思的思维导图,人生低谷期常常叠加多重打击,失业、健康崩塌、容貌焦虑接连袭来时,很容易陷入自我否定与内耗,这份思维导图把走出困境的真实经历、重建身心秩序的落地方法、重塑认知的底层逻辑系统梳理,为身处逆境的人提供一套可直接落地的自愈成长方案。主要内容包含:第一部分是至暗经历真实剖析,细致拆解失业自我价值崩塌、免疫系统健康崩溃、药物副作用带来容貌创伤三重低谷困境;第二部分三大生存法则重建,从身体优先主义、精神续航方案、目标分解技术三个维度给出实操办法,包含睡眠营养微运动、逆境人物阅读、五分钟微小目标、每日 5% 小进步等落地方法;第三部分认知重构关键发现,提炼痛苦阈值定律、低谷转折点、资源相对论三大核心认知观点,扭转消极思维;第四部分给到逆境人群可执行行动指南,涵盖危机日记记录、最小生存习惯搭建、三类支持者网络搭建完整自救流程,结尾点明低谷是生命系统升级的核心观点,完整打通困境梳理、身心修复、思维重塑、长期行动全链路,解决身处多重压力下找不到自愈思路、心态持续内耗、缺少可落地改善方法、无法客观看待低谷困境的痛点。适用人群:遭遇失业职场受挫的上班族、受容貌焦虑情绪困扰的年轻人、身体亚健康伴随心理内耗人群、想要做情绪复盘自我成长的学习者、心理成长自媒体文案创作者、长期陷入低谷自我否定的人群。该模板助力快速搭建完整逆境自愈与心态重建思路框架。
这是一篇关于压铸工作思维导图,AI压铸自动化系统全流程解析:从模具初始化到成品分拣的智能闭环控制,第一步完成 I/O 点位、工装夹具、生产工件、设备有效载荷基础配置;第二步搭建标准化程序格式,规范任务、模块、主程序、例行程序整体架构;第三步执行设备原点回归,精准校验机器人当前工位位置;第四步核心取件流程,完整梳理预定位、进模取件、顶针脱模、取件结果全流程安全管控逻辑;第五步检测与分流逻辑,规范先判断后执行的安全校验规则,异常信号快速复位处理机制;第六步冷却台管控逻辑,细化工位计数、冷台物料排序、工件流转匹配规则;第七步成品出料输出逻辑,规范工位判定、合格物料流转、机器人点位复位全流程;第八步全维度调试运行,覆盖仿真模拟、示教点位、手动自动调试、系统权限备份全环节;第九步配套功能检查,整理坐标系标定、系统参数配置、关节限位管控、特殊指令管理等收尾运维内容。既适合智能制造学生专业学习、新人岗位岗前培训,也可供调试工程师优化产线程序、技术讲师编写行业培训课件,能够满足大家查找压铸机器人流程思维导图、工业机器人编程实操脑图、压铸自动化产线框架、机器人调试岗位笔记、压铸工序管控速记模板的使用需求。
这是一篇关于汽车总装工艺(第2版)的思维导图,全书共分九章,内容覆盖从基础知识到具体技能的全过程。梳理了书籍各章节的核心要点。
社区模板帮助中心,点此进入>>
这是一篇关于经历失业、健康危机和容貌焦虑后的深度反思的思维导图,人生低谷期常常叠加多重打击,失业、健康崩塌、容貌焦虑接连袭来时,很容易陷入自我否定与内耗,这份思维导图把走出困境的真实经历、重建身心秩序的落地方法、重塑认知的底层逻辑系统梳理,为身处逆境的人提供一套可直接落地的自愈成长方案。主要内容包含:第一部分是至暗经历真实剖析,细致拆解失业自我价值崩塌、免疫系统健康崩溃、药物副作用带来容貌创伤三重低谷困境;第二部分三大生存法则重建,从身体优先主义、精神续航方案、目标分解技术三个维度给出实操办法,包含睡眠营养微运动、逆境人物阅读、五分钟微小目标、每日 5% 小进步等落地方法;第三部分认知重构关键发现,提炼痛苦阈值定律、低谷转折点、资源相对论三大核心认知观点,扭转消极思维;第四部分给到逆境人群可执行行动指南,涵盖危机日记记录、最小生存习惯搭建、三类支持者网络搭建完整自救流程,结尾点明低谷是生命系统升级的核心观点,完整打通困境梳理、身心修复、思维重塑、长期行动全链路,解决身处多重压力下找不到自愈思路、心态持续内耗、缺少可落地改善方法、无法客观看待低谷困境的痛点。适用人群:遭遇失业职场受挫的上班族、受容貌焦虑情绪困扰的年轻人、身体亚健康伴随心理内耗人群、想要做情绪复盘自我成长的学习者、心理成长自媒体文案创作者、长期陷入低谷自我否定的人群。该模板助力快速搭建完整逆境自愈与心态重建思路框架。
这是一篇关于压铸工作思维导图,AI压铸自动化系统全流程解析:从模具初始化到成品分拣的智能闭环控制,第一步完成 I/O 点位、工装夹具、生产工件、设备有效载荷基础配置;第二步搭建标准化程序格式,规范任务、模块、主程序、例行程序整体架构;第三步执行设备原点回归,精准校验机器人当前工位位置;第四步核心取件流程,完整梳理预定位、进模取件、顶针脱模、取件结果全流程安全管控逻辑;第五步检测与分流逻辑,规范先判断后执行的安全校验规则,异常信号快速复位处理机制;第六步冷却台管控逻辑,细化工位计数、冷台物料排序、工件流转匹配规则;第七步成品出料输出逻辑,规范工位判定、合格物料流转、机器人点位复位全流程;第八步全维度调试运行,覆盖仿真模拟、示教点位、手动自动调试、系统权限备份全环节;第九步配套功能检查,整理坐标系标定、系统参数配置、关节限位管控、特殊指令管理等收尾运维内容。既适合智能制造学生专业学习、新人岗位岗前培训,也可供调试工程师优化产线程序、技术讲师编写行业培训课件,能够满足大家查找压铸机器人流程思维导图、工业机器人编程实操脑图、压铸自动化产线框架、机器人调试岗位笔记、压铸工序管控速记模板的使用需求。
这是一篇关于汽车总装工艺(第2版)的思维导图,全书共分九章,内容覆盖从基础知识到具体技能的全过程。梳理了书籍各章节的核心要点。
压铸工作
1. 创建I/O、工具、工件、有效载荷
选择正确型号的工具安装、产品放置位置及方向
I/0接线
 这是一张 ABB DSQC 652 I/O 模块的接线示意图。与之前那张图类似,这张图展示了数字输入(按钮)和数字输出(指示灯)的详细连接逻辑。 结合您之前询问的“高电平”概念,以下是针对这张图的详细解析: 1. 核心组件识别 左侧模块:ABB DSQC 652(编号 3HAC025917-001/00),这是一个常用的分布式 I/O 模块。 右侧端子排:用于连接外部电源(24V)和负载。 下方设备:两个绿色的按钮开关(数字输入)。 中间设备:三个彩色的指示灯(数字输出)。 2. 电源接线(右上角端子排) 端子排分为上下两排,红线代表 24V,蓝线代表 0V。 24V (红线):连接到端子排的“+”极,为整个电路提供正极电源。 0V (蓝线):连接到端子排的“-”极,作为电路的公共参考地。 3. 数字输入接线(下方按钮) 这部分展示了源型(Source)输入的典型接法。 连接方式: 两个绿色按钮的一端分别连接到模块的 X5 输入端子(蓝色箭头)。 两个按钮的另一端共同连接到 0V(蓝线)。 工作逻辑(结合“高电平”): 模块内部通常会通过一个“下拉电阻”将输入端默认保持在低电平(0V,逻辑 0)。 当按下按钮时,电流从模块内部的 24V 电源流经输入引脚、按钮开关,最后到达 0V。 此时,输入引脚上的电压变为 24V,即产生了高电平(High,逻辑 1)信号。模块检测到这个高电平,就认为“按钮被按下了”。 4. 数字输出接线(中间指示灯) 这部分展示了源型(Source)输出的典型接法。 连接方式: 三个指示灯的一端分别连接到模块的 X2 输出端子(绿色箭头)。 三个指示灯的另一端共同连接到 0V(蓝线)。 工作逻辑: 当模块输出高电平信号时,内部开关闭合,电流从模块的 24V 端流出,经过输出端子、指示灯,最后到达 0V。 此时指示灯点亮。 如果输出低电平,内部开关断开,没有电流流过,灯灭。 总结与对比 共同点:无论是输入还是输出,它们最终都需要通过负载(按钮或灯)回到 0V 才能形成完整的回路。 高电平的体现:在这张图中,24V 就是“高电平”的物理表现。当信号线上有 24V 电压时,即为高电平(1);当信号线是 0V 时,即为低电平(0)。 安全提示:在实际接线中,务必确认模块的电源极性和输入输出类型(源型/漏型),错误的接线可能会烧毁模块或设备。
板子
Unit
IO配置
Signal
io 检查
输入输出
视图
I/0单元
子主题
子主题
ProgKeys 配置可编程按键
子主题
系统配置
工具,工件,载荷 坐标
WorldZones 区域互锁 (rPowerON)
定义长方体区域对角坐标
PosExtRobSafe1、PosExtRobSafe2 为世界坐标系 wobj0 下两个对角顶点,框选出压铸机干涉禁区。
WZBoxDef 构建立体监视盒
标识\Inside代表规则在 TCP 位于盒内时触发,区域句柄 shExtRobSafe 供后续绑定信号。
WZDOSet 绑定区域与数字输出
配置静态监视:TCP 在区域内部时,自动将 do05RobInDCM 置 1;离开区域后信号自动复位为 0。
最开始就要设置。
参考工艺指导文件
2. 创建标准程序格式
任务、模块、主程序、例行程序
主程序标准格式
回原点
WHILE TRUE DO
ProcCall 例行程序
主程序 main() 采用了**“初始化 + 无限循环”**的经典工业控制结构:
初始化 (rInitAll) └── WHILE TRUE DO (死循环,保证系统持续运行) ├── IF 压铸机自动信号 (di01DCMAuto) THEN │ ├── 执行取件 (rExtracting) │ ├── 执行检测 (rCheckPart)(产品ok- 传送台-会原点)or 产品不ok-垃圾站-销毁-会原点 │ └── IF 冷却台满 (bFullOfCool) THEN │ └── 放置良品到传送带 (rRelGoodPart) │ ELSE │ └── 返回压铸机 (rReturnDCM) │ ENDIF └── 循环计时与延时 ENDWHILE
产品ok-传送台-会原点
产品不ok-垃圾站-销毁-会原点
PROC main() !主程序; rInitAll; !调用初始化程序,包括复位信号、复位程序数据、初始化中断等; WHILE TRUE DO !利用WHILE循环,将初始化程序隔离开,即只在第一次运行时需要执行一次初始化程序,之后循环执 行拾取放置动作; IF di01DCMAuto=1THEN !利用IF条件判断,di01DCMAuto为压铸机处于自动状态信号,即当压铸机处于自动联机状态才开始执 行取件程序 rExtracting; !调用取件例行程序; rCheckPart; !调用产品检测例行程序; IF bFullOfCool=TRUE THEN !条件判断指令,判断冷却台上产品是否放满 rRelGoodPart; !调用放置OK产品程序 ELSE rReturnDCM; !调用返回压铸机位置程序 ENDIF ENDIF rCycleTime; !调用计时例行程序 WaitTime 0.2; !等待时间; ENDWHILE ENDPROC
初始化 (rInitAll) └── WHILE TRUE DO (死循环,保证系统持续运行) ├── IF 压铸机自动信号 (di01DCMAuto) THEN │ ├── 执行取件 (rExtracting) │ ├── 执行检测 (rCheckPart)(产品ok- 传送台-会原点)or 产品不ok-垃圾站-销毁-会原点 │ └── IF 冷却台满 (bFullOfCool) THEN │ └── 放置良品到传送带 (rRelGoodPart) │ ELSE │ └── 返回压铸机 (rReturnDCM) │ ENDIF └── 循环计时与延时 ENDWHILE
rReturnDCM
check-DCM
以快速速度、宽松过渡区,使用冷却台坐标系 wobjCool 运动至检测点位 pPartCheck,作为中间避让过渡;
切换压铸机专属坐标系 wobjDCM,快速运动至机器人主原点 pHome,回到压铸机工作等待位。
PROC rReturnDCM() !机器人返回到压铸机程序; MoveJ pPartCheck, vFast, z100, tGripper\WObj:=wobjCool; MoveJ pHome, vFast, z100, tGripper\WObj:=wobjDCM; ENDPROC
rCycleTime; !调用计时例行程序 WaitTime 0.2;
PROC rCycleTime() !计时例行程序; ClkStop clock1; nCTime := ClkRead(clock1); TPWrite "the cycletime is "\Num:=nCTime; ClkReset clock1; ClkStart clock1; ENDPROC
ClkStop clock1:停止节拍计时器 clock1;
nCTime := ClkRead(clock1):读取本次循环总时长,存入数字变量 nCTime;
TPWrite "the cycletime is "\Num:=nCTime:在机器人示教器界面打印输出本次循环节拍数值;
ClkReset clock1:清空计时器缓存;
ClkStart clock1:重新启动计时器,开始下一轮循环计时。
3. 回原点:rInitialize
判断当前位置
在原点,不动
判断:rCheckHomePos()--NOT CurrentPos
设置当前位置:FUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP)
不在原点,移动(向上)
回原点:rCheckHomePos()
rInitAll;
!调用初始化程序,包括复位信号、复位程序数据、初始化中断等
,完成参数配置
AccSet
VelSet
ConfJ\Off; ConfL\Off;
O 复位、
rReset_Out;
程序太多,例行程序。
PROC rReset_Out() !复位输出信号复位例行程序; Reset do04StartDCM; Reset do06AtPartCheck; Reset do07EjectFWD; Reset do09E_Stop; Reset do12Error; Reset do03GripperOFF; Reset do01RobInHome; ENDPROC
do04StartDCM — DCM 设备启动信号
do06AtPartCheck — 产品检测到位信号
do07EjectFWD — 向前顶出 / 下料信号
do09E_Stop — 急停相关输出信号
do12Error — 设备故障报警脉冲信号
do03GripperOFF — 夹爪关闭控制信号
do01RobInHome — 机器人在原点反馈信号
机器人回零归位、
rHome
PROC rHome() !机器人回 Home 点程序; MoveJ pHome, vFast, fine, tGripper\WObj:=wobjDCM; !机器人运行到 Home 点,只有一条运动指令,转弯区选择 Fine
位置校验,
同时向压铸机发送就绪取件信号,
Set do04StartDCM
rCheckHomePos
有bug
改成原路返回
位置校验 (bCurrentPos)
自定义函数,通过比较当前位置与目标点(如Home点)的XYZ和四元数姿态偏差,精确判断机器人是否到位。
子主题
FUNC bool bCurrentPos(robtarget ComparePos,INOUT tooldata TCP) !检测目标点功能程序,带有两个参数,比较目标点和所使用的工具数据 ! Function to compare current manipulator position with a given position !函数用于比较当前机械手位置与给定位置; VAR num Counter:=0; !定义数字型数据 Counter VAR robtarget ActualPos; !定义目标点数据 ActualPos ActualPos:=CRobT(\Tool:=TCP\WObj:=wobjDCM); !利用 CRobT 功能读取当前机器人目标位置,并赋值给目标点数据 Actualpos IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.x<ComparePos.trans.x+25 Counter:=Counter+1; IF ActualPos.trans.y>ComparePos.trans.y-25 AND ActualPos.trans.y<ComparePos.trans.y+25 Counter:=Counter+1; IF ActualPos.trans.z>ComparePos.trans.z-25 AND ActualPos.trans.z<ComparePos.trans.z+25 Counter:=Counter+1; IF ActualPos.rot.q1>ComparePos.rot.q1-0.1 AND ActualPos.rot.q1<ComparePos.rot.q1+0.1 Counter:=Counter+1; IF ActualPos.rot.q2>ComparePos.rot.q2-0.1 AND ActualPos.rot.q2<ComparePos.rot.q2+0.1 Counter:=Counter+1; IF ActualPos.rot.q3>ComparePos.rot.q3-0.1 AND ActualPos.rot.q3<ComparePos.rot.q3+0.1 Counter:=Counter+1; IF ActualPos.rot.q4>ComparePos.rot.q4-0.1 AND ActualPos.rot.q4<ComparePos.rot.q4+0.1 Counter:=Counter+1; !将当前机器人所在目标位置数据与给定目标点位置数据进行比较,共七项数值,分别是 X、Y、Z 坐标 值以及工具姿态数据 q1、q2、q3、q4 的偏差值,如 X、Y、Z 坐标偏差值“25”可根据实际情况进行调整。每项 比较结果成立,则计数 Counter 加 1,七项全部满足的话,则 Counter 数值为 7RETURN Counter=7; !返回判断式结果,若 Counter 为 7,则返回 TURE;若不为 7,则返回 FALSE ENDFUNC
一、函数基础信息
新建功能程序,
类型:布尔返回函数 FUNC bool
入参:
ComparePos:待比对基准点位 robtarget
TCP:当前使用工具数据(INOUT 传入)
作用:校验机器人当前实际位置是否落在基准点位允许偏差范围内,用于判断机器人是否到位。
二、执行逻辑
定义局部变量
Counter:匹配项计数器,初始 0
计数
ActualPos:存储机器人实时点位
变量,机器的姿态
读取实时坐标姿态
读取实时数据,并赋值给actual pos
通过 CRobT 读取当前机器人位置,绑定传入工具 TCP、固定工件坐标系 wobjDCM,存入 ActualPos。
分 7 项逐项比对,满足一项计数 + 1
对比七个位置
X/Y/Z 轴坐标:允许 ±25mm 偏差
四元数姿态 q1/q2/q3/q4:允许 ±0.1 偏差
判断逻辑
7 项条件全部满足时 Counter=7,函数返回 TRUE,代表机器人到位;否则返回 FALSE。
用于 rCheckHomePos() 程序,确保机器人只有在确认回到Home点后,才允许执行后续动作。
定义局部的变量pAcutalpos1(pAcutalpos 已经使用过了) 如果是是在Home点-读取位置-将pAcutalposde的高度变为 Home 高度。-到Home高度,-直线会原点。
定义局部点位变量 pActualPos1,用于存储机器人实时位置。
调用位置校验函数 bCurrentPos(pHome,tGripper) 判断是否在原点:
NOT bCurrentPos(...) 代表机器人不在 HOME 点,进入回零逻辑;
若已在原点,直接跳过本段运动指令。
读取当前机器人实时点位存入 pActualPos1,工具tGripper、坐标系wobjDCM;
强制将当前点位 Z 轴高度修改为原点pHome的 Z 值,实现抬升;
两段直线运动安全回原点:
低速直线移动到抬升后的安全高度点位,先抬高工件规避工装碰撞;
低速精准直线运行至 HOME 原点。
PROC rCheckHomePos() !检测是否在 Home 位置程序; VAR robtarget pActualPos1; !定义一个目标点数据 pActualPos IF NOT bCurrentPos(pHome,tGripper) THEN !调用功能程序 CurrentPos,此为一个布尔量型的功能程序,括号里面的参数分别指的是所要比较的目标点 以及使用的工具数据,这里写入的是 pHome,则是将当前机器人位置与 pHome 点进行比较,若在 HOME 点,则此 布尔量为 TURE;若不在 HOME 点,则为 FALSE。在此功能程序的前面加上一个 NOT,则表示当机器人不在 HOME 点时,才会执行 IF 判断指令中机器人返回 HOME 点的动作指令。 pActualpos1:=CRobT(\Tool:=tGripper\WObj:=wobjDCM); !利用 CRobT 功能读取当前机器人目标位置,并赋值给目标点数据 pActualpos1 pActualpos1.trans.z:=pHome.trans.z; !将 pHome 点的 Z 值赋给 pActualpos1 点的 Z 值 MoveL pActualpos1,v100,z10,tGripper; !移至已被赋值后的 pActualpos1 点 MoveL pHome,v100,fine,tGripper; !移至 pHome 点,上诉指令的目的时需要先将机器人提升至与 pHome 点一样的高度,之后再平移至 pHome 点,这样可以简单地规划一条安全回 Home 的轨迹 ENDIF ENDPROC
PROC rIninAll() !初始化程序,用来复位 IO,初始化程序数据及返回 Home 点等; AccSet 100, 100; !加速度控制指令 VelSet 100, 3000; !速度控制指令 ConfJ\Off; ConfL\Off; !机器人运动控制指令(关闭轴配置监控) rReset_Out; !调用输出信号复位例行程序 rHome; !调用回 Home 点程序; Set do04StartDCM; !给压铸机,机器人可以开始取件信号 rCheckHomePos; !机器人位置初始化,调用检测是否在 Home 位置点程序,检测当前机器人位置是否在 HOME 点,若在 HOME 的话则继续执行后面的程序,如果不在 HOME 点,则先返回至 HOME 点。 ENDPROC
9. 其他功能检查
载荷定义方法
常用的系统I/O及配置
关节限制范围
奇点管理命令:插补命令
8. 调试运行
仿真
示教位置
确定需要示教的点
最好提供暂停及示教点给调试人员
手动调试
标准程序手动调试运行
重点:步进(每按一步都需要确认是否没有问题才按下)
机器人下降动作去接触产品时都需要把手放到停止按钮上面随时停止机器人动作
手动选择放置位置程序调试运行
自动运行调试
重点速度
在控制柜上更改:手动/自动
示教器上点确认
更改速度:20%
到控制柜上点上面的启动按钮
系统备份
工作站的备份
打包:硬件+软件
保持模块(工作程序)
机器人备份(backup)
权限设定
7, 成品输出逻辑 (rRelGoodPart)
取件与放置:当 bFullOfCool 为真时,根据 nRelPartNo 从冷却台取出最早的工件,然后放置到输送链 (pRelCNV)。
输送链空位联锁等待
传送带为空等待
WaitDI di05CNVEmpty, 1:持续等待输送链空位信号到位,只有输送链无产品时才允许下料,避免物料堆叠冲突。
WaitDI di05CNVEmpty, 1; !等待输送链上没有产品的信号
冷却台满料判定与工位取料
如果冷却为满, 对应冷却点抓取 工位上方-工件点精确-抓取-工位点上方-0.2S稳料 使用冷却台wobjcool.
仅当冷却台满载标记 bFullOfCool = TRUE 时,才执行冷却台取料动作:
根据工位计数 nRelPartNo(1/2/3/4)匹配对应冷却点位抓取,每个工位抓取流程统一:
移动至工位上方 Z 向安全偏移高度;
低速精准下行到工件点位;
调用rGripperClose闭合夹爪夹紧产品;
Set do03GripperOFF:置位夹爪夹紧控制信号;
Reset do02GripperON:复位夹爪打开信号,两路输出互锁,防止气路冲突;
WaitTime 0.3:延时 0.3 秒,给夹爪充足闭合时间,确保工件夹持牢固再执行移动。
PROC rGripperClose() !关闭夹爪例行程序; Set do03GripperOFF; Reset do02GripperON; WaitTime 0.3; ENDPROC
抬升回安全偏移高度,抓取完成后延时 0.2 秒稳料;
全程使用冷却台坐标系wobjCool、低速运行防磕碰。
IF bFullOfCool = TRUE THEN !判断冷却台上产品是否放满 IF nRelPartNo = 1 THEN !判断从冷却台上取第几个产品 MoveJ Offs(pRelPart1,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; MoveJ pRelPart1, vLow, fine, tGripper\WObj:=wobjCool; rGripperClose; MoveJ Offs(pRelPart1,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; ELSEIF nRelPartNo = 2 THEN MoveJ Offs(pRelPart2,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; MoveJ pRelPart2, vLow, fine, tGripper\WObj:=wobjCool; rGripperClose; MoveJ Offs(pRelPart2,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; ELSEIF nRelPartNo =3 THEN MoveJ Offs(pRelPart3,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; MoveJ pRelPart3, vLow, fine, tGripper\WObj:=wobjCool; rGripperClose; MoveJ Offs(pRelPart3,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; ELSEIF nRelPartNo = 4 THEN MoveJ Offs(pRelPart4,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; MoveJ pRelPart4, vLow, fine, tGripper\WObj:=wobjCool; rGripperClose; MoveJ Offs(pRelPart4,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; ENDIF WaitTime 0.2;
合格品输送链放料
放料-输送带上方-直线放料点,打开夹爪-上方偏移位
抓取工件后移动至输送链上方安全高度,直线运动到放料点位,打开夹爪放下产品,再抬升回输送链上方偏移位。
MoveJ Offs(pRelCNV,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool;MoveL pRelCNV, vLow, fine, tGripper\WObj:=wobjCool; rGripperOpen; MoveL Offs(pRelCNV,0,0,nCoolOffs_Z), vLow, z20, tGripper\WObj:=wobjCool; !从冷却台上去完产品后,运行到输送链上方,然后线性运行到放置点,松开夹爪
机器人复位回原点
复位,抬升,切换速度,工件坐标,过度点,phome -下一轮加测,冷却。
放料完成后逐级抬升、切换运动速度与工件坐标系,依次途经过渡点位,最终切换 DCM 坐标系快速返回pHome原点,等待下一轮检测、冷却流程。
MoveL Offs(pRelCNV,0,0,300), vLow, z50, tGripper\WObj:=wobjCool; MoveJ Offs(pRelPart2,0,0,nCoolOffs_Z), vFast, z50, tGripper\WObj:=wobjCool; MoveJ pPartCheck, vFast, z100, tGripper\WObj:=wobjCool; MoveJ pHome, vFast, z100, tGripper\WObj:=wobjDCM; !放完产品后返回 home 点,开始下一轮取放
6, 冷却台管理逻辑 (rCooling)
TEST 分支匹配工位
test 分配工位-nRelpartNo 工位上方Z-低俗精准下行-打开夹爪-退回工位上方偏移位-工件使用wobjiCool, 低速
根据计数变量 nRelPartNo 判断当前要使用的冷却工位(1/2/3/4 号点位 pRelPart1~pRelPart4),每个工位放料动作流程统一:
先移动到工位上方 Z 向偏移安全高度 Offs(点位,0,0,nCoolOffs_Z);
低速精准下行到放料点位;
调用 rGripperOpen 打开夹爪放下产品;
退回工位上方安全偏移位,避免碰撞。
全程使用冷却专用工件坐标系 wobjCool、低速运动。
TEST nRelPartNo !TEST 指令,将产品逐个放置到冷却台,冷却台总共可以放置 4 个产品,放置时机器人先运行到冷却目 标点上方偏移位置,然后运行到放料点,打开夹爪,放完产品后又运行到偏移位置 CASE 2: MoveJ Offs(pRelPart2,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; MoveJ pRelPart2, vLow, fine, tGripper\WObj:=wobjCool; rGripperOpen; Movej Offs(pRelPart2,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; CASE 3: MoveJ Offs(pRelPart3,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; MoveJ pRelPart3, vLow, fine, tGripper\WObj:=wobjCool; rGripperOpen; MoveJ Offs(pRelPart3,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; CASE 4: MoveJ Offs(pRelPart4,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; MoveJ pRelPart4, vLow, fine, tGripper\WObj:=wobjCool;rGripperOpen; MoveJ Offs(pRelPart4,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; CASE 1: MoveJ Offs(pRelPart1,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; MoveJ pRelPart1, vLow, fine, tGripper\WObj:=wobjCool; rGripperOpen; MoveJ Offs(pRelPart1,0,0,nCoolOffs_Z), vLow, z50, tGripper\WObj:=wobjCool; ENDTEST nRelPartNo := nRelPartNo + 1; !每次放完一个产品后,将产品数量加 1
工位计数自增
n=n+1
完成单次放料后执行 nRelPartNo := nRelPartNo + 1,切换至下一个空位。
冷却台满料判断
料满后,>4 冷却位位真,通知机器人已满 计数重置为1, 满料后,按顺序取走1号冷却品,到输送带。
条件:nRelPartNo > 4(4 个工位全部放满)
动作:
置位布尔变量 bFullOfCool := TRUE,通知上位 / 机器人冷却台已满;
计数重置为 1,下次放料循环从 1 号工位开始;
逻辑配套说明:满料后需执行取走最先放置的 1 号冷却成品,转运至输送链。
IF nRelPartNo > 4 THEN !当产品数量到 4 个后,即冷却台上已经放满时,将冷却台逻辑量置位为 TURE,同时将产品数量置位 为 1,此时放完第四个产品后,需要将已经冷却完成的第一个产品从冷却台上取下,放置到输送链上 bFullOfCool := TRUE; nRelPartNo := 1; ENDIF
5,. 检测与分流逻辑 (rCheckPart)
先判错:首先检查取件阶段是否有错误 (nErrPickPartNo),有则直接报错回Home。
取件失败-home-脉冲-return终止。
取件失败处理(优先级最高) 触发条件:系统变量 nErrPickPartNo = 1(判定取件失败)
机器人以快速速度、精准姿态(fine)回归原点 pHome,适配DCM工件坐标系;
输出时长0.2s的脉冲报警信号 do12Error,触发设备报错提示;
执行 RETURN 直接终止当前程序,不再执行后续检测逻辑。
PROC rCheckPart() !产品检测例行程序; IF nErrPickPartNo = 1 THEN !条件判断,当取件失败时,机器人重新回到 HOME 点并输出报警信号 MoveJ pHome, vFast, fine, tGripper\WObj:=wobjDCM; PulseDO\PLength:=0.2, do12Error; !信号 do12Error 产生的脉冲长度为 0.2 s RETURN; ENDIF
执行检测:机器人携带工件移动到检测位 (pPartCheck),输出检测启动信号 (do06AtPartCheck)。
取件无异常-会原点-压铸机启动-移动到检查工位-启动检查信号-延时稳检,-5秒等待结果,-复位检查信号
2. 正常分支:取件成功,执行完整检测流程
触发条件:取件无异常(nErrPickPartNo ≠ 1),按顺序执行标准化检测步骤:
1. 回归原点、触发设备启动:机器人低速回归原点,置位 do04StartDCM 信号,启动配套DCM设备;
2. 移动至检测工位:切换冷却工件坐标系,低速精准移动至产品检测点位 pPartCheck;
3. 启动产品检测:置位 do06AtPartCheck 检测触发信号,正式开启产品检测;
4. 延时稳检:强制等待3秒,预留检测设备工作时间,避免检测未完成导致误判;
5. 等待检测结果反馈:限时5秒等待合格信号 di04PartOK,检测结果赋值给布尔变量 bPartOK:5秒内收到合格信号则为TRUE,超时无信号则为FALSE;
6. 复位检测信号:无论检测结果如何,立即复位 do06AtPartCheck 检测触发信号,结束检测状态。
MoveJ pHome, vLow, z200, tGripper\WObj:=wobjDCM; Set do04StartDCM; MoveJ pPartCheck, vLow, fine, tGripper\WObj:=wobjCool; !取件成功时,则抓取产品运行到检测位置 Set do06AtPartCheck; !置位检测信号,开始产品检测 WaitTime 3; !等待时间,保证检测完成 WaitDI di04PartOK, 1\MaxTime:=5\TimeFlag:=bPartOK; !等待产品检测 OK 信号,时间 5s,逻辑量为 bPartOK ReSet do06AtPartCheck; !复位检测信号
结果分流:
beParkok 真,冷却 ng 到不良品
OK (bPartOK = TRUE):调用冷却放置程序 rCooling。
NG (bPartOK = FALSE):调用不良品放置程序 rRelDamagePart。
IF bPartOK = TRUE THEN !条件判断,当产品检测 NG 时,则该产品为不良品,机器人进入不良品处理程序 rRelDamagePart; !调用放置不良品例行程序; ELSE rCooling; !当产品检测 OK 时,调用冷却程序; ENDIF ENDPROC
PROC rRelDamagePart()
confJ\off 关闭轴配置错。 路径,check-phome-pmoveoutdire-preldapart 卸料, rGripperOpen 夹爪打开 退回避让点, confJ\on,开启关机监控。
关闭关节运动监控
ConfJ\off; 临时关闭关节碰撞检测,规避转运途中工装、空间干涉误报警。
不良品转运路径(低速运行,冷却台坐标系 wobjCool)
先移动至原点 pHome;
途经避让点位 pMoveOutDie;
精准到位不良品放置点 pRelDaPart;
卸料
调用rGripperOpen打开夹爪,放下不良产品;
PROC rGripperOpen() !打开夹爪例行程序; Reset do03GripperOFF; Set do02GripperON; WaitTime 0.3; ENDPROC
Reset do03GripperOFF:复位夹爪夹紧输出信号;
Set do02GripperON:置位夹爪打开输出信号;
WaitTime 0.3:延时 0.3 秒,保证夹爪完全张开后再移动机器人,防止刮蹭工件。
退回避让点位
直线运动回到避让点位 pMoveOutDie;
恢复碰撞检测
ConfJ\on; 重新开启关节碰撞监控,回到正常安全运行模式。
PROC rRelDamagePart() !不良品放置程序,当检测 NG 时,直接从检测位置运行到不良品放置位置,将产品放下 ConfJ\off; MoveJ pHome, vLow, z20, tGripper\WObj:=wobjCool; MoveJ pMoveOutDie, vLow, z20, tGripper\WObj:=wobjCool; MoveJ pRelDaPart, vLow, fine, tGripper\WObj:=wobjCool; rGripperOpen; MoveL pMoveOutDie, vLow, z20, tGripper\WObj:=wobjCool; ConfJ\on; ENDPROC
4,. 取件流程 (rExtracting)
这是整个程序中最关键的环节,包含了多重安全互锁:
等待条件:等待安全门开 (di02DoorOpen)、等待模具开模 (di03DieOpen),并设置了超时监控 (MaxTime:=6)。
不能直接进去。等待点-开门-模具打开-等待6秒
路线
home
wait
ok
offs
pick
off
out
home
子主题
步骤 操作内容 逻辑说明
1 预定位
以vFast空跑速度移动至压铸机外等待点pWaitDCM,等待1s;
到等待位,等待1S
MoveJ pWaitDCM, vFast, z20, tGripper\WObj:=wobjDCM; !机器人运行到等待位置 waittime 1; !等待 1 秒钟
先后等待di02DoorOpen(安全门开)、di03DieOpen(开模到位)信号,最长等待6s,超时则将bDieOpenKO置为TRUE,标记取件失败。
等待开门信号,开模到位,等待时间6s,超过6S, 模具打开位true, 取件失败。
WaitDI di02DoorOpen,1; !等待压铸机安全门打开 WaitDI di03DieOpen, 1\MaxTime:=6\TimeFlag:=bDieOpenKO; !等待开模信号,最长等待时间 6 S,得到信号后将逻辑量置位为 FALSE,如果没得到信号则将逻辑量 置位为 TRUE (指定 TimeFlag,则在超出时间时设置为 TRUE。否则,其将设置为 FALSE)
IF bDieOpenKO = TRUE THEN !当逻辑量为 TRUE 时,表示机器人没有在合理的时间内得到开模信号,此时取件失败 nErrPickPartNo := 1; !将取件失败的数字量置位为 1 GOTO lErrPick; !跳转到错误取件标签 lErrPick 处 ELSE nErrPickPartNo := 0; !如取件成功,则将取件失败的数字量置位为 0
GOTO lErrPick
错误标识
2 进模取件
复位取件请求信号do04StartDCM;
复位压铸的信号
Reset do04StartDCM; !复位机器人开始取件信号
先移动至取件点上方位(nPickOff_Z=200的Z向偏移量),再下降到取件点pPickDCM;
移动到偏移点-抓取点。
MoveJ Offs(pPickDCM,nPickOff_X,nPickOff_Y,nPickOff_Z), vLow, z10, tGripper\WObj:=wobjDCM; MoveJ pPickDCM, vLow, fine, tGripper\WObj:=wobjDCM; !机器人运行到取件目标点
关闭夹爪抓取工件,激活6轴软伺服(SoftAct)增加取件柔性。
关夹爪-激活软伺服,增加柔性。
关闭夹爪
rGripperClose; !调用关闭夹爪例行程序 rSoftActive; !调用软伺服激活例行程序
PROC rSoftActive()
PROC rSoftActive() !软伺服激活程序,设定机器人 6 个轴的软化指数; SoftAct 1, 99; SoftAct 2, 100; SoftAct 3, 100; SoftAct 4, 95; SoftAct 5, 95; SoftAct 6, 95; WaitTime 0.3;ENDPROC
SoftAct 轴号,刚度系数:激活对应轴软伺服,数值越小柔性越高、刚度越低;
1 轴:软化系数 99
2 轴、3 轴:软化系数 100(刚度最高,柔性最弱)
4、5、6 轴(手腕三轴):软化系数 95(柔性更强)
WaitTime 0.3:延时 0.3 秒,保证各轴柔性参数完全生效后再执行后续动作。
3 顶针脱模
置位do07EjectFWD触发压铸机顶针顶出,最长等待4s,超时标记顶针故障bEjectKo=TRUE;
信号do-顶针顶出-4s-超过-故障TRUE
Set do07EjectFWD; !置位模具顶针顶出信号 WaitDI di06LsEjectFWD, 1\MaxTime:=4\TimeFlag:=bEjectKo; !等待模具顶针顶出到位信号,时间为 4 S,在该时间内得到信号则将逻辑量置位为 FALSE pPosOK := CRobT(\Tool:=tGripper\WObj:=wobjDCM);
记录当前取件位置到pPosOK备用。
pPosOK := CRobT(\Tool:=tGripper\WObj:=wobjDCM); !记录机器人当前位置,并赋值给 pPosOK
4 取件结果处理
if else endif
❌ 取件失败(无开模信号/顶针故障):关闭软伺服→打开夹爪→抬升100mm脱离危险区。
bEjectKo = TRUE
顶针失效-软伺服失效-打开夹爪-移动到目标点偏移
IF bEjectKo = TRUE THEN !当逻辑量为 TRUE 时,表示顶针顶出失效,则此次取件失败,机器人开始取件失败处理 rSoftDeactive; !调用软伺服失效例行程序 rGripperOpen; !调用打开夹爪例行程序 MoveL Offs(pPosOK,0,0,100), vLow, z10, tGripper\WObj:=wobjDCM; !以之前机器人记录的目标点偏移
✅ 取件成功:等待0.5s后关闭软伺服,抬升工件200mm脱离模具,加载工件载荷LoadPart。
成功-等待0.5-关伺服-抬升200mm 离开模具-加载工件的力量。
ELSE !当逻辑量为 FALSE 时,取件成功,机器人则开始取件成功处理 WaitTime 0.5; rSoftDeactive; !调用软伺服失效指令程序 WaitTime 0.5; !等待时间,让软伺服失效完成 MoveL Offs(pPosOK,0,0,200), v300, z10, tGripper\WObj:=wobjDCM; !机器人抓取产品后按照之前记录的目标点偏移 GripLoad LoadPart; !加载有效载荷数据
rSoftDeactive
SoftDeact;:一键取消所有轴已激活的软伺服参数,恢复出厂常规刚度;
WaitTime 0.3;:延时 0.3 秒,等待伺服刚度切换完成,避免参数未生效就运行动作。
5 退模收尾 无论取件成败,均移动至pMoveOutDie退模点,复位顶针输出信号do07EjectFWD。
lErrPick: !错误取件标签; MoveJ pMoveOutDie, vLow, z10, tGripper\WObj:=wobjDCM; !机器人移动到搬出位置 Reset do07EjectFWD; !复位模具顶针顶出信号 ENDPROC