械手裝配程序開發(fā)與調(diào)試實(shí)戰(zhàn):從選型到節(jié)拍優(yōu)化)
最近在弄一條小型電子產(chǎn)品的自動化裝配線核心設(shè)備是一臺匯川四軸機(jī)械手。我負(fù)責(zé)整臺機(jī)械手的裝配程序開發(fā)和現(xiàn)場工藝調(diào)試說白了就是讓這臺機(jī)械手自己完成“抓料—對位—插裝—壓合—檢測”這一整套動作代替原來人工重復(fù)的裝配工位。項(xiàng)目從方案確認(rèn)到設(shè)備穩(wěn)定跑通前后用了三周左右中間踩了不少坑也積累了一些比較實(shí)用的經(jīng)驗(yàn)。這篇筆記就把整個(gè)裝配程序的開發(fā)過程完整梳理一遍從方案選型、程序框架設(shè)計(jì)、點(diǎn)位示教到問題排查給打算自己做類似項(xiàng)目的同行一個(gè)參考。這個(gè)內(nèi)容不需要多深的數(shù)學(xué)基礎(chǔ)但需要有一點(diǎn)PLC或者工業(yè)機(jī)器人編程的基本概念。如果你準(zhǔn)備上第一個(gè)機(jī)器人裝配項(xiàng)目、或者正在猶豫要不要用四軸機(jī)械手替換人工工位這篇文章應(yīng)該對你有用。我會把關(guān)鍵技術(shù)點(diǎn)、參數(shù)設(shè)定思路、現(xiàn)場故障排查方法都放在后面直接照著走基本就能搭出一條能跑的自動裝配邏輯。1. 項(xiàng)目背景與整體方案選型1.1 為什么裝配場景優(yōu)先選四軸機(jī)械手四軸機(jī)械手行業(yè)內(nèi)通常指SCARA形態(tài)的設(shè)備三個(gè)旋轉(zhuǎn)軸負(fù)責(zé)水平面內(nèi)的移動和旋轉(zhuǎn)一根垂直升降軸負(fù)責(zé)上下插裝動作。這種結(jié)構(gòu)從運(yùn)動學(xué)上就非常契合裝配工藝水平方向靈活、垂直方向剛度大插裝時(shí)不容易歪斜對零件配合段的沖擊也小。我這里的工件是一個(gè)尺寸大概拳頭大小的塑料殼體需要把內(nèi)部的限位卡簧、密封圈和一個(gè)小型PCB組件依次裝進(jìn)去。最開始考慮過六軸機(jī)械手但實(shí)際測算后發(fā)現(xiàn)六軸在這種工況下屬于“大材小用”第一整個(gè)裝配過程不需要復(fù)雜的空間姿態(tài)變換關(guān)鍵動作就是垂直插裝第二六軸多出來的兩個(gè)關(guān)節(jié)反而會放大末端誤差垂直方向剛度也不如SCARA結(jié)構(gòu)第三六軸本體價(jià)格和后期維護(hù)成本都明顯高出四軸一截。在裝配線上四軸機(jī)械手的優(yōu)勢可以簡單歸納成幾點(diǎn)垂直剛度大Z軸上下動作穩(wěn)定適合壓裝、插入、鉚接這類對垂直方向剛性要求高的工藝。水平柔順性好SCARA結(jié)構(gòu)在水平方向天然帶有一定柔性配合浮動接頭可以容忍零件和定位治具之間的小量偏差不易卡死。速度快同級負(fù)載下運(yùn)動慣量小整體節(jié)拍可以做得比六軸快對產(chǎn)線節(jié)拍提升更友好。性價(jià)比高機(jī)構(gòu)簡單、軸數(shù)少采購成本和后期保養(yǎng)成本都更低。打個(gè)比方六軸機(jī)械手像人的手臂能做各種復(fù)雜姿態(tài)四軸SCARA像“桌面上的圓規(guī)筆尖”在平面上跑得又快又準(zhǔn)垂直方向按下去又特別穩(wěn)。絕大多數(shù)“從上方把零件放進(jìn)固定工裝”的裝配動作都用不到六軸的那種靈活性四軸才是效率最高的選擇。如果你遇到需要傾斜裝配、繞障礙擺位或者工件需要多角度翻轉(zhuǎn)的工況那還是要老老實(shí)實(shí)選六軸。裝配場景選型的第一原則不是“功能越多越好”而是“結(jié)構(gòu)匹配工藝”。1.2 控制方案與通信架構(gòu)確定機(jī)械手本體之后緊接著要定控制方案。四軸機(jī)械手的控制通常有兩種做法一種是用機(jī)械手自帶的專用控制器示教器編程通過總線或者IO和PLC交互另一種是用PLC本身做運(yùn)動控制把四個(gè)伺服軸掛在一個(gè)控制器下自己寫運(yùn)動邏輯。我這次選的是第一種方案匯川四軸機(jī)械手自帶控制器配合外部PLC做整線邏輯。原因很直接機(jī)械手控制器的插補(bǔ)、軌跡規(guī)劃、防碰撞、力矩限制這些功能是出廠就調(diào)好的自己用PLC寫四軸聯(lián)動軌跡耗費(fèi)的開發(fā)時(shí)間遠(yuǎn)超省下的成本而且后期維護(hù)難度大。產(chǎn)線自動化項(xiàng)目講究的是可靠和可維護(hù)能用成熟功能就別自己造輪子。PLC和機(jī)械手控制器之間的數(shù)據(jù)交互我實(shí)測下來推薦用EtherCAT總線。EtherCAT循環(huán)周期短、數(shù)據(jù)量大可以同時(shí)傳輸位置給定、狀態(tài)反饋和工藝參數(shù)機(jī)械手動作和PLC邏輯的配合會非常絲滑。如果現(xiàn)場條件受限CANopen和Modbus RTU也能用但通訊周期和抗干擾能力要額外驗(yàn)證。這里有一個(gè)必須特別注意的點(diǎn)安全類信號絕對不要依賴總線傳輸必須走硬接線IO。急停、安全門、安全光柵這些信號要直接串進(jìn)伺服使能回路的繼電器鏈里一旦觸發(fā)就立刻斷使能停車。總線通訊再快也有延遲和斷線的可能安全信號走總線等于拿命賭運(yùn)氣這是行業(yè)里血的教訓(xùn)換來的共識。機(jī)械手和PLC之間預(yù)留的IO點(diǎn)也不要吝嗇每個(gè)關(guān)鍵動作最好都有對應(yīng)的狀態(tài)反饋信號哪怕暫時(shí)用不上也要預(yù)留。信號點(diǎn)補(bǔ)齊了后續(xù)調(diào)試和排故障能省一大半時(shí)間。1.3 機(jī)械手負(fù)載選型與節(jié)拍估算機(jī)械手選型不能只看“能不能抓起來”還要算動態(tài)負(fù)載和節(jié)拍。負(fù)載校核的公式不復(fù)雜但每一項(xiàng)都要認(rèn)真填總負(fù)載 末端夾具重量 工件重量 抓取附加力吸盤吸力、夾爪夾緊反力、偏載力矩比如我的項(xiàng)目里末端氣動夾爪加連接板接近1.8公斤工件0.6公斤加起來2.4公斤我選的是負(fù)載能力5公斤的機(jī)型留了超過一倍的余量。余量不是浪費(fèi)機(jī)械手在高速加減速時(shí)產(chǎn)生的慣性力遠(yuǎn)大于靜態(tài)負(fù)載余量不足輕則抖動丟步重則損壞減速機(jī)。還有一點(diǎn)容易被忽略慣量匹配。機(jī)械手末端夾具和工件的轉(zhuǎn)動慣量也要落在廠商給的允許范圍內(nèi)否則高速旋轉(zhuǎn)軸容易過載報(bào)警。選型階段可以直接把夾具的3D模型和重量發(fā)給機(jī)械手廠商的技術(shù)人員幫忙校核比自己悶頭算準(zhǔn)確得多。節(jié)拍估算同樣要提前做。一個(gè)簡單的經(jīng)驗(yàn)公式單循環(huán)時(shí)間 各段運(yùn)動時(shí)間總和 夾爪/氣缸動作時(shí)間 信號確認(rèn)延遲 預(yù)留安全余量運(yùn)動時(shí)間可以粗略用“移動距離/平均速度×1.5”來估算因?yàn)閷?shí)際運(yùn)動包含加減速階段平均速度并不會總在最大值附近。我們最初預(yù)估單循環(huán)28秒實(shí)際調(diào)試完空跑是24秒帶料后穩(wěn)定在26秒和估算值差距不大說明前期預(yù)留余量的思路是對的。如果節(jié)拍預(yù)估嚴(yán)重超標(biāo)就要在方案階段考慮雙機(jī)械手并行或者優(yōu)化工藝動線而不是等設(shè)備到場后再硬壓縮速度。2. 裝配程序的核心邏輯與關(guān)鍵設(shè)計(jì)2.1 程序流程框架的標(biāo)準(zhǔn)三段式裝配程序的結(jié)構(gòu)不需要多花哨基本就是“取料—裝配—返回”的標(biāo)準(zhǔn)三段式循環(huán)。程序設(shè)計(jì)失敗的項(xiàng)目多半不是因?yàn)檫壿嫃?fù)雜而是把簡單邏輯寫復(fù)雜了。我習(xí)慣把整個(gè)循環(huán)拆成三個(gè)階段每個(gè)階段再切分成若干“動作—確認(rèn)”的配對組合。取料階段機(jī)械手從供料盤上方快速移動到取料位慢速下降夾爪閉合確認(rèn)工件夾緊信號到位后抬升離開。裝配階段機(jī)械手?jǐn)y帶工件快速移動到裝配工位上方慢速下降接近定位治具執(zhí)行插裝動作等待裝配到位信號松爪再抬升。返回階段機(jī)械手抬升到安全高度回到原點(diǎn)或等待位輸出循環(huán)完成信號給PLC等待下一個(gè)啟動指令。每個(gè)階段內(nèi)部的邏輯就是“發(fā)動作指令—等待確認(rèn)信號—繼續(xù)下一步”。機(jī)械手程序內(nèi)部不判斷工件好壞的工藝邏輯夾具有沒有夾到料、裝配是不是到位這些確認(rèn)信號都來自外部傳感器和PLC的判斷。機(jī)械手就是一個(gè)“執(zhí)行者”PLC才是“大腦”。這種分工的好處是以后換產(chǎn)品、換治具只需要改機(jī)械手點(diǎn)位和PLC工藝邏輯程序架構(gòu)本身不需要大改。具體的程序結(jié)構(gòu)我用類似結(jié)構(gòu)化文本的偽代碼來表示方便大家理解核心順序PROGRAM MainLoop WHILE TRUE // 等待PLC啟動信號 WaitFor(StartSignal : TRUE); // 階段一取料 MoveJ(PickAbove, Speed : 50%); MoveL(PickPosition, Speed : 15%); SetDO(GripperClose, TRUE); WaitFor(PartClamped : TRUE); MoveL(PickAbove, Speed : 50%); // 階段二裝配 MoveJ(InsertAbove, Speed : 70%); MoveL(InsertStart, Speed : 30%); MoveL(InsertDeep, Speed : 8%, TorqueLimit : 30%); WaitFor(InsertOK : TRUE); SetDO(GripperOpen, TRUE); MoveL(InsertAbove, Speed : 50%); // 階段三返回 MoveJ(SafePosition, Speed : 80%); SetDO(CycleDone, TRUE); WaitFor(CycleAck : TRUE); SetDO(CycleDone, FALSE); END_WHILE END_PROGRAM這樣的結(jié)構(gòu)有一個(gè)顯著的優(yōu)點(diǎn)任意一個(gè)確認(rèn)信號沒有到位程序就停在當(dāng)前步驟不會繼續(xù)執(zhí)行后續(xù)動作天然具備防錯能力。調(diào)試過程中哪一步卡住就查哪個(gè)信號定位問題非??臁1劝阉袆幼鞔谝黄鸩煌?zhí)行、靠延時(shí)硬撐的寫法要安全得多。2.2 坐標(biāo)系與工具標(biāo)定裝配程序開發(fā)里最容易返工的就是坐標(biāo)系沒弄對。四軸機(jī)械手涉及坐標(biāo)系包括世界坐標(biāo)系、工具坐標(biāo)系TCP、工件坐標(biāo)系用戶坐標(biāo)系和關(guān)節(jié)坐標(biāo)系。其中TCP和用戶坐標(biāo)系的標(biāo)定質(zhì)量直接決定裝配精度。TCP就是工具中心點(diǎn)具體到這個(gè)項(xiàng)目就是夾爪兩個(gè)手指閉合后的中心點(diǎn)。機(jī)械手控制器的位置指令控制的是TCP點(diǎn)而不是末端法蘭中心。出廠時(shí)控制器只知道法蘭盤中心在哪里裝完夾爪之后TCP位置發(fā)生了變化必須重新標(biāo)定。如果TCP不標(biāo)或者標(biāo)得不準(zhǔn)最典型的表現(xiàn)是單點(diǎn)定位沒問題但換一個(gè)姿態(tài)去同一個(gè)位置時(shí)末端偏得很離譜。四軸機(jī)械手的TCP標(biāo)定通常用四點(diǎn)法操作上就是把一個(gè)尖銳的針尖固定在某個(gè)位置機(jī)械手用四個(gè)不同的姿態(tài)去對同一個(gè)針尖控制器根據(jù)四個(gè)姿態(tài)自動反算出TCP偏移量。這個(gè)操作看似簡單但有兩個(gè)細(xì)節(jié)直接影響精度對針時(shí)一定要慢速微調(diào)最好用增量模式每步0.1毫米甚至更小去逼近手一抖偏差就大了。標(biāo)定完成后必須做驗(yàn)證用尖點(diǎn)分別在不同高度、不同方向反復(fù)對準(zhǔn)同一物理標(biāo)記點(diǎn)誤差超過0.5毫米就要重新標(biāo)。工件坐標(biāo)系的設(shè)定同樣重要。我在裝配治具的定位銷平面上建立了一個(gè)用戶坐標(biāo)系水平面方向和治具安裝方向?qū)R。這樣做的好處非常明顯所有裝配點(diǎn)位都基于這個(gè)用戶坐標(biāo)系記錄將來整個(gè)治具整體平移或者旋轉(zhuǎn)我只需要更新用戶坐標(biāo)系的原點(diǎn)和方向不用一個(gè)一個(gè)重新示教點(diǎn)位。這種思路在換型調(diào)試時(shí)能省出大量時(shí)間和精力。2.3 裝配工藝參數(shù)的設(shè)定策略程序框架搭好之后真正決定裝配成敗的是工藝參數(shù)。這些參數(shù)包括各段運(yùn)動速度、加速度平滑系數(shù)、Z軸力矩限制閾值、到位確認(rèn)信號的選擇。速度分段是最基礎(chǔ)也是最重要的策略。我自己的習(xí)慣是三段法遠(yuǎn)距離快速移動用最大速度的70%到90%縮短空跑時(shí)間接近工件的階段降到30%左右給機(jī)械手留出減速緩沖真正進(jìn)入裝配配合段的插裝動作控制在5%到15%保證零件以穩(wěn)定的速度進(jìn)入配合位置減小沖擊。很多人圖省事全程用一個(gè)速度跑結(jié)果要么空跑太慢拖節(jié)拍要么插裝太快把零件撞飛。Z軸壓裝時(shí)的力矩限制值也很關(guān)鍵。四軸機(jī)械手的垂直軸通常支持力矩限制功能也就是在位置控制的同時(shí)設(shè)定一個(gè)扭矩上限一旦實(shí)際力矩超限就停止或者報(bào)警。這個(gè)功能本質(zhì)上就是一個(gè)“軟性力控”用來保護(hù)零件不被壓壞。我做的這個(gè)項(xiàng)目里卡簧需要壓入殼體卡槽純位置控制很難把握壓入深度我用的是“位置控制力矩報(bào)警”的方式壓入過程中如果力矩超過設(shè)定閾值程序立刻停止并報(bào)警防止卡簧變形或者殼體破裂。力矩閾值通過多次手動壓裝測試取平均值再加上20%余量來確定不能拍腦袋填。對位找正方面有一個(gè)小技巧。如果零件和定位孔都做了導(dǎo)向倒角允許一定的位置偏差可以在機(jī)械手抓具和法蘭之間加一個(gè)浮動接頭。浮動接頭讓夾爪在水平方向有少量自由活動空間插裝時(shí)零件會順著導(dǎo)向倒角自動滑入定位位置相當(dāng)于機(jī)械結(jié)構(gòu)幫忙做了一次“被動找正”。我見過很多項(xiàng)目糾結(jié)于提高機(jī)械手重復(fù)定位精度來解決插裝卡料其實(shí)加個(gè)浮動接頭就解決了成本低而且非??煽?。裝配程序里還必須設(shè)計(jì)完善的“信號確認(rèn)”邏輯。夾爪是否真正夾到料、壓裝是否到位、松爪是否完成每一步都要有傳感器信號反饋不能只靠程序延時(shí)猜測。我在取料位裝了光電傳感器檢測工件存在夾爪氣缸上裝了磁性開關(guān)檢測夾緊狀態(tài)裝配工位裝了接近開關(guān)檢測插裝到位。程序每個(gè)動作之間等待這些信號確認(rèn)缺一個(gè)就停在該步驟報(bào)警。雖然信號點(diǎn)多花了些成本但設(shè)備在無人值守運(yùn)行時(shí)出的問題大幅減少這筆投入非常值得。3. 實(shí)操過程與程序?qū)崿F(xiàn)示例3.1 程序架構(gòu)與模塊劃分裝配程序在機(jī)械手控制器里最好不要只寫一個(gè)巨大的主程序我習(xí)慣按功能拆成多個(gè)子程序模塊主程序只負(fù)責(zé)流程調(diào)度。這樣寫的好處是邏輯清楚、排查方便后續(xù)換產(chǎn)品或增加新工序時(shí)可以直接復(fù)用現(xiàn)有子程序不用動主流程。我這次的項(xiàng)目把程序拆成六個(gè)模塊Main主循環(huán)負(fù)責(zé)整機(jī)啟動、停止、復(fù)位和循環(huán)流程調(diào)度。Pick取料子程序管理取料位移動、夾爪控制、料檢測和夾緊確認(rèn)。Insert裝配子程序管理裝配位移動、壓裝參數(shù)、插入深度和到位確認(rèn)。Detect檢測子程序配合PLC讓機(jī)械手停留在檢測位讀取外部視覺或者傳感器結(jié)果。Alarm報(bào)警處理子程序匯總各類報(bào)警執(zhí)行安全回退動作并通知PLC。Home回零子程序開機(jī)或者報(bào)警恢復(fù)后的回零動作。程序之間的信號聯(lián)鎖通過控制器和PLC之間的IO映射表來實(shí)現(xiàn)。調(diào)試階段我把這套信號聯(lián)鎖表保存在柜門內(nèi)側(cè)方便現(xiàn)場人員隨時(shí)查閱。這里分享一張項(xiàng)目里實(shí)際使用的信號點(diǎn)表大家可以作為參考信號名稱方向作用備注StartSignalPLC → 機(jī)械手啟動一次裝配循環(huán)上升沿觸發(fā)PartClampedIO → 機(jī)械手工件已夾緊到位取料完成確認(rèn)InsertOKIO → 機(jī)械手裝配已到位壓裝完成確認(rèn)GripperClose機(jī)械手 → IO夾爪閉合指令控制氣動電磁閥GripperOpen機(jī)械手 → IO夾爪張開指令控制氣動電磁閥CycleDone機(jī)械手 → PLC單次循環(huán)完成等待PLC復(fù)位AlarmOut機(jī)械手 → PLC機(jī)械手報(bào)警輸出觸發(fā)產(chǎn)線聲光報(bào)警模塊化的思路在調(diào)試階段體現(xiàn)出的最大價(jià)值是我調(diào)整Insert子程序里的壓裝深度和速度完全不需要擔(dān)心影響Pick部分主程序只要調(diào)用的子程序名稱不變內(nèi)部邏輯隨便改。這種“高內(nèi)聚低耦合”的架構(gòu)思路放在機(jī)器人編程里一樣成立。3.2 從示教到運(yùn)行調(diào)試的完整步驟很多第一次做機(jī)械手項(xiàng)目的同行拿到設(shè)備之后不知道從哪里下手。我整理了一套現(xiàn)場調(diào)試流程嚴(yán)格按照這個(gè)順序推進(jìn)基本能避免“回頭返工”的尷尬。第一步機(jī)械手安裝與零點(diǎn)設(shè)置。機(jī)械手底座必須用水平儀校準(zhǔn)水平度太差會直接影響裝配精度和運(yùn)行穩(wěn)定性。底座固定螺絲采用對角順序逐步緊固確保底座不變形。然后在控制器里執(zhí)行回零操作把機(jī)械手設(shè)定到機(jī)械原點(diǎn)確認(rèn)各軸編碼器零點(diǎn)無偏差。首次通電建議先手動低速測試每個(gè)軸的運(yùn)動方向確認(rèn)與示教器顯示一致再嘗試聯(lián)動。第二步點(diǎn)位示教與程序編寫。示教之前先把所有關(guān)鍵位置在設(shè)備上用記號筆標(biāo)記出來包括取料位、裝配位、安全等待位、中間過渡點(diǎn)。示教器操作時(shí)用增量模式低速移動逐步逼近理想位置。點(diǎn)位記錄完成后把前面設(shè)計(jì)的模塊化程序錄入控制器編譯通過后下載到控制器。第三步空跑與帶料調(diào)試。先不給機(jī)械手裝工件以低速空跑完整循環(huán)觀察軌跡有沒有干涉、點(diǎn)位有沒有碰撞風(fēng)險(xiǎn)。空跑沒問題后逐步加快速度到目標(biāo)值。然后開始帶料調(diào)試第一次帶料建議全程低速用單步模式一步一步執(zhí)行確認(rèn)每一段的動作和信號都正常后再切換到連續(xù)模式。我在第一次帶料時(shí)發(fā)現(xiàn)插裝動作會輕微碰擦治具邊緣就是因?yàn)閱尾侥J较乱欢我欢味⒊鰜淼娜绻簧蟻砭瓦B續(xù)跑大概率直接撞壞治具。第四步節(jié)拍優(yōu)化與穩(wěn)定性測試。連續(xù)運(yùn)行24小時(shí)以上或者至少1000個(gè)循環(huán)記錄中途的報(bào)警次數(shù)和停機(jī)原因統(tǒng)計(jì)實(shí)際節(jié)拍分析瓶頸后再針對性地優(yōu)化。穩(wěn)定性測試期間不要離開現(xiàn)場隨時(shí)記錄異常聲音和信號狀態(tài)。整個(gè)調(diào)試周期我實(shí)際用了4個(gè)工作日就完成了從零位設(shè)置到帶料連續(xù)運(yùn)行。如果PLC程序、機(jī)械安裝這些都和機(jī)械手調(diào)試并行推進(jìn)一定要提前約定好信號時(shí)序避免互相等待浪費(fèi)時(shí)間。3.3 節(jié)拍優(yōu)化實(shí)錄節(jié)拍優(yōu)化這塊我用真實(shí)數(shù)據(jù)來說明更有參考價(jià)值。項(xiàng)目剛跑起來時(shí)單循環(huán)節(jié)拍是34秒離客戶要求的28秒差了6秒。我沒有直接加高速度而是先做瓶頸分析。我打開程序監(jiān)控界面把每個(gè)動作的耗時(shí)拉出來看發(fā)現(xiàn)問題集中在三處取料位到裝配位的長距離移動速度只給了50%明顯偏保守白白浪費(fèi)了空跑時(shí)間。壓裝動作統(tǒng)一用10%的速度執(zhí)行連中間的空行程也在蠕動實(shí)際上只需要在進(jìn)入配合段之后保持低速接近段可以用中速。機(jī)械手每次循環(huán)結(jié)束等待PLC復(fù)位信號PLC掃描周期配合不好多出將近1秒的空閑等待。針對這三個(gè)問題做了優(yōu)化長距離移動速度提高到80%接近段用30%只有實(shí)際插入段保持10%PLC側(cè)把CycleDone復(fù)位邏輯改到中斷任務(wù)里減少掃描周期延遲。改完之后單循環(huán)節(jié)拍從34秒降到26秒完全滿足客戶要求。而且機(jī)器運(yùn)行聲音、振動都在正常范圍沒有因?yàn)樘崴俪霈F(xiàn)抖動。這里想提醒一點(diǎn)節(jié)拍優(yōu)化的大忌是“一上來就拉滿加速度”。加速度設(shè)置過大機(jī)械手末端會出現(xiàn)明顯抖動時(shí)間長了還會損害減速機(jī)甚至把螺絲震松。優(yōu)化順序一定是先清理邏輯浪費(fèi)再調(diào)整路徑規(guī)劃最后才是提升速度和加速度參數(shù)。4. 常見問題與排查技巧實(shí)錄4.1 抖動、過沖與定位偏差現(xiàn)場調(diào)試中遇到最多的問題就是機(jī)械手運(yùn)動到目標(biāo)點(diǎn)之后出現(xiàn)抖動或者過沖定位結(jié)果忽好忽壞。出現(xiàn)這類現(xiàn)象時(shí)我建議按照“先機(jī)械、后電氣、再參數(shù)”的順序排查。先檢查機(jī)械底座固定螺絲有沒有松動、機(jī)械手安裝面是否水平、末端夾具連接板有沒有松脫。我有一次遇到高速定位后末端明顯抖動排查了很長時(shí)間最后發(fā)現(xiàn)是夾爪連接板的四個(gè)安裝螺絲有兩個(gè)已經(jīng)松了。這種機(jī)械問題初期很隱蔽因?yàn)榈退贂r(shí)感覺不出來速度一高就暴露。再檢查控制器參數(shù)加速度設(shè)置是否過猛、S曲線平滑參數(shù)是不是設(shè)成了0、負(fù)載參數(shù)是否和實(shí)際夾具一致。我見過的多起抖動問題最后都是因?yàn)榘鸭铀俣日{(diào)到接近最大值機(jī)械手末端負(fù)載的慣性力超過了機(jī)構(gòu)承受能力。處理方式很簡單把加速度回調(diào)到一個(gè)不再抖動的值通常是在原參數(shù)的70%到80%。如果項(xiàng)目節(jié)拍要求必須用很高的加減速就需要考慮換更大規(guī)格的機(jī)械手而不是硬逼現(xiàn)有設(shè)備超限運(yùn)行。定位偏差的問題則要回到零點(diǎn)、TCP和用戶坐標(biāo)系檢查。零點(diǎn)如果因?yàn)閿嚯娀蛘邎?bào)警時(shí)位置跑丟重新回零會導(dǎo)致所有點(diǎn)位整體偏移這種情況要重新校準(zhǔn)零點(diǎn)再示教關(guān)鍵點(diǎn)。TCP不準(zhǔn)的典型特征是機(jī)器人在不同姿態(tài)下對同一個(gè)物理點(diǎn)存在偏差解決辦法就是重新做TCP標(biāo)定和驗(yàn)證。4.2 抓料位置漂移抓料位置漂移的故障在裝配產(chǎn)線上非常影響士氣因?yàn)樗谋憩F(xiàn)往往是“時(shí)好時(shí)壞”。早晨開機(jī)位置準(zhǔn)運(yùn)行兩小時(shí)后慢慢偏下午出現(xiàn)抓空或者碰料。這種漂移首先懷疑機(jī)械結(jié)構(gòu)的熱變形和應(yīng)力釋放。供料盤的定位治具如果材質(zhì)較軟或者固定方式只用了單邊壓緊運(yùn)行一段時(shí)間后受機(jī)械手反復(fù)推料的影響會產(chǎn)生微小位移累積下來就足夠?qū)е伦タ铡N姨幚磉^一個(gè)類似問題對策是在治具底面增加定位銷和雙邊壓緊位置就穩(wěn)定下來了。如果確認(rèn)治具沒有位移還要排查供料盤上的來料位置是否有累積誤差。前段工序如果來料擺放本身就不穩(wěn)定機(jī)械手固定點(diǎn)位當(dāng)然會“時(shí)準(zhǔn)時(shí)不準(zhǔn)”。這種情況要么要求前道工序改進(jìn)定位要么在機(jī)械手上加視覺引導(dǎo)用相機(jī)識別來料實(shí)際位置后自動補(bǔ)償抓取。視覺引導(dǎo)路徑看起來投入高但如果是長期生產(chǎn)需求性價(jià)比很高。零點(diǎn)丟失導(dǎo)致的漂移也要留意。機(jī)械手如果頻繁急停報(bào)警、斷電時(shí)未回零編碼器數(shù)據(jù)可能丟失重新上電后必須回零。我建議在程序里設(shè)置開機(jī)強(qiáng)制回零邏輯不回零不允許進(jìn)入自動模式從制度上杜絕零點(diǎn)丟失帶來的批量不良。4.3 機(jī)械手與PLC通訊偶發(fā)斷線EtherCAT總線在正常運(yùn)行時(shí)非常穩(wěn)定但在復(fù)雜的工業(yè)現(xiàn)場偶爾會出現(xiàn)“運(yùn)行幾個(gè)小時(shí)斷一次線重新上電又好了”的故障。這種偶發(fā)故障最難查因?yàn)楝F(xiàn)場再現(xiàn)困難測試過程中可能幾個(gè)小時(shí)一段時(shí)間就是不復(fù)現(xiàn)。排查這類問題要按電磁兼容的思路來走。先檢查通訊線纜的屏蔽層接地屏蔽層必須在控制器側(cè)單端接地不能在兩側(cè)同時(shí)接地形成地環(huán)流也不能懸空不接。然后檢查通訊電纜是否和動力電纜在同一個(gè)線槽里貼著走線動力電纜的變頻器輸出會產(chǎn)生強(qiáng)烈的電磁干擾如果通訊電纜沒有屏蔽或者距離太近就會出現(xiàn)偶發(fā)丟包斷線。處理方式包括通訊電纜單獨(dú)走線槽并與動力線保持至少20厘米間距、加裝磁環(huán)、通訊接頭重新壓接保證接觸可靠。另一個(gè)容易被忽視的是連接器的接觸質(zhì)量。EtherCAT網(wǎng)線接頭如果在振動環(huán)境下沒有鎖緊運(yùn)行中會出現(xiàn)接觸不良導(dǎo)致的偶發(fā)斷線。這種問題往往表現(xiàn)為重新插拔一下線纜就“恢復(fù)正?!钡珜?shí)際接觸仍然處于脆弱狀態(tài)。排查時(shí)不要怕麻煩把每個(gè)接頭都重新插拔并檢查鎖扣必要時(shí)直接更換成品網(wǎng)線。考慮到斷線的危害我在程序里增加了通訊超時(shí)監(jiān)控和信號糾偏機(jī)制一旦通訊中斷機(jī)械手立即進(jìn)入安全停止?fàn)顟B(tài)并保持當(dāng)前位置通訊恢復(fù)后必須手動復(fù)位才能繼續(xù)循環(huán)而不是自動接著跑。這樣可以避免通訊瞬時(shí)中斷后數(shù)據(jù)錯亂導(dǎo)致的誤動作。4.4 常見問題速查表故障現(xiàn)象可能原因排查步驟高速定位抖動底座松動/加速度過大/減速機(jī)磨損緊螺絲 → 回調(diào)加速度 → 檢查減速機(jī)抓料位置漂移治具位移/來料偏差/零點(diǎn)丟失查定位銷 → 查來料一致性 → 重新回零通訊偶發(fā)斷線屏蔽接地不良/線纜干擾/接頭松動查接地 → 分線槽 → 換接頭插裝卡料零件倒角不足/定位偏差/夾爪不對中加導(dǎo)向倒角 → 加浮動接頭 → 重標(biāo)TCP夾爪夾不緊氣壓不足/夾爪磨損/磁性開關(guān)誤判查氣源壓力 → 查夾爪 → 校傳感器報(bào)警后無法復(fù)位信號未消除/回零未完成/安全回路鎖定查看報(bào)警碼 → 確認(rèn)信號狀態(tài) → 復(fù)位安全回路某軸偶發(fā)過載負(fù)載過重/加減速過猛/機(jī)械卡滯查負(fù)載參數(shù) → 降低加減速 → 盤動檢查裝配到位信號時(shí)好時(shí)壞接近開關(guān)安裝松動/檢測距離過近重新固定 → 調(diào)整檢測距離除了這些常見問題調(diào)試過程中務(wù)必養(yǎng)成記錄的習(xí)慣。每次報(bào)警的代碼、發(fā)生的時(shí)間、當(dāng)時(shí)的運(yùn)行速度、當(dāng)時(shí)的信號狀態(tài)都記在調(diào)試日志里。很多偶發(fā)問題單靠腦子記是記不住的有日志數(shù)據(jù)才有排查分析的依據(jù)。最后說點(diǎn)實(shí)在的做完整臺設(shè)備的機(jī)械手裝配程序我最大的體會是動作邏輯寫出來并不難真正常反應(yīng)的功夫都在“可靠”這兩個(gè)字上。一個(gè)看起來非常簡單的插裝動作背后是坐標(biāo)系標(biāo)定精度、信號時(shí)序設(shè)計(jì)、工藝參數(shù)匹配、機(jī)械結(jié)構(gòu)狀態(tài)、電氣抗干擾能力的綜合結(jié)果。如果你也是剛開始接觸機(jī)械手裝配項(xiàng)目我建議先從模仿標(biāo)準(zhǔn)流程開始不要一上來就搞復(fù)雜架構(gòu)。把每一個(gè)動作都拆成“指令—確認(rèn)信號”把每一段速度都按“快—中—慢”的原則去設(shè)定把每一類傳感器信號都接到程序里并寫清楚報(bào)警提示這條基礎(chǔ)路線走熟了很多高級功能自然就水到渠成。后續(xù)這個(gè)項(xiàng)目還可以繼續(xù)擴(kuò)展比如加一套2D視覺引導(dǎo)用來適應(yīng)來料位置的波動或者增加Z軸力矩閉環(huán)實(shí)現(xiàn)真正的力控壓裝再或者兩臺機(jī)械手同時(shí)協(xié)作一個(gè)工位提升節(jié)拍上限。每一步擴(kuò)展都可以基于現(xiàn)在這套模塊化架構(gòu)來實(shí)現(xiàn)只需要新增對應(yīng)的子程序模塊不需要推翻重來。設(shè)備穩(wěn)定運(yùn)行兩個(gè)多月之后我再去現(xiàn)場回訪操作工人說比人工裝配輕松多了良品率也穩(wěn)定。我覺得這就是自動化裝配項(xiàng)目最有價(jià)值的回報(bào)不需要人一直盯著機(jī)器自己就能把活干好而它背后的這套程序邏輯就是我們工程師價(jià)值的體現(xiàn)。