詳解)
上個月在一臺裝盒機現(xiàn)場客戶反映橫封切刀總是偏1到2毫米我上去查程序發(fā)現(xiàn)寫的是MC_MoveVelocity加延時再靠MC_MoveAbsolute去“追”切刀位置。這種打法低速試機還行一跑到60包/分鐘就露餡。后來我?guī)退某蒑C_GearInPos做主同步、MC_Phasing做微調(diào)問題當場消失。在包裝機械里運動控制模式選得對不對很多時候不是能不能動的問題而是能不能持續(xù)穩(wěn)定跑高速的問題。這篇文章就圍繞MC_GearInPos、MC_Phasing這5種常見運動控制模式結(jié)合包裝機械的實際工藝聊聊各自的原理、參數(shù)、選型思路和調(diào)試經(jīng)驗。適合剛接觸PLCopen運動控制的工程師也適合想把手頭設備調(diào)得更穩(wěn)的老手。1. 先分清5種運動控制模式別把“同步”和“定位”混在一起在PLCopen標準里運動控制模式遠不止名字上看起來的“動一下”這么簡單。每種模式對應的是軸狀態(tài)機里的不同運動段定位、連續(xù)運動、同步運動、回零等等。包裝機械上最常用到的5種是MC_MoveAbsolute、MC_GearIn、MC_GearInPos、MC_CamIn也叫MC_CamTable、MC_Phasing。把這5個吃透包裝線上90%的軸都能搞定。1.1 五種模式的職責劃分與適用場景先看一張總表后面再展開細說。模式類型核心作用典型包裝工藝MC_MoveAbsolute點位運動從當前位置走到絕對目標位置推料手、升降臺、封口壓板MC_GearIn同步運動速度級從軸跟隨主軸速度比例可設送膜、輸送帶聯(lián)動、分瓶螺桿MC_GearInPos同步運動位置級從軸與主軸建立精確位置比例關(guān)系橫封刀、切刀、橫切機構(gòu)MC_CamIn凸輪同步從軸按凸輪曲線跟隨主軸位置異形容器封口、擺動式貼標、飛剪MC_Phasing運動疊加/修正在當前運動中臨時偏移軸相位色標修正、套準調(diào)整、糾偏微調(diào)MC_MoveAbsolute最好理解就是“走一段距離停到指定位置”。但注意它在PLCopen里屬于DiscreteMotion一旦執(zhí)行會占據(jù)軸的“控制權(quán)”。在包裝機械中如果軸正處于同步運動中直接發(fā)MC_MoveAbsolute默認會報錯或者需要依靠BufferMode去打斷原運動。MC_GearIn和MC_GearInPos聽起來接近實際差別很大。MC_GearIn建立的是主軸速度與從軸速度的比例關(guān)系它不管位置誤差積累只保證“速度同步”。MC_GearInPos則把主軸位置作為基準從軸位置嚴格等于“主軸位置經(jīng)過比例縮放后的值”屬于位置同步。做橫封、飛剪、切刀這類對位置關(guān)系要求極高的工藝必須用MC_GearInPos而不是MC_GearIn。MC_CamIn就更高級一點從軸的跟隨關(guān)系不再是一條直線比例而是一張凸輪表。主軸位置每隔一個角度從軸對應一個位置。包裝機械中的異形罐封口、間歇送料機構(gòu)、往復式貼標頭靠普通的固定比例根本畫不出動作軌跡這時候凸輪表就是唯一合理的選擇。MC_Phasing比較“特別”它本身不建立一個長期的同步關(guān)系而是在現(xiàn)有運動之上疊加一個相位偏移。說人話就是軸正在跑你讓它“超前一點”或“滯后一點”然后繼續(xù)跑。這在包裝機械的套準修正里是必不可少的功能。1.2 兩個容易混的概念電子齒輪和電子凸輪很多剛?cè)腴T的工程師會把電子齒輪和電子凸輪搞混甚至覺得MC_GearInPos和MC_CamIn差不多反正都是從軸跟著主軸跑。其實兩者完全不同。電子齒輪可以理解為“前后兩個齒輪用鏈條連在一起”傳動的速比是固定的。你蹬一圈前面的大盤后面的小盤轉(zhuǎn)幾圈是定死的。MC_GearIn和MC_GearInPos干的就是這件事主軸與從軸之間有固定的比例關(guān)系齒輪比分子分母一設后面就穩(wěn)定輸出。電子凸輪則是“靠?!钡母拍钕喈斢谧鲆粋€異形凸輪凸輪的輪廓決定了從軸怎么動。主軸勻速轉(zhuǎn)從軸可能一會兒快一會兒慢甚至短暫停一下。這個輪廓曲線就是凸輪表。MC_CamIn加載的是一段曲線數(shù)據(jù)跟齒輪比這種線性關(guān)系有著本質(zhì)區(qū)別。搞清這個概念后再去看橫封刀和貼標機的軸配置思路就會清楚很多。橫封刀的運動學關(guān)系是“主軸走多少膜從軸轉(zhuǎn)多少角度”基本是固定比例用MC_GearInPos貼標機的吸標擺臂需要模擬一個復雜的相對運動軌跡用MC_CamIn更合適。2. MC_GearInPos包裝機械位置同步的核心關(guān)鍵參數(shù)是這樣設的在包裝機械中MC_GearInPos最常見的應用就是橫封刀、縱封輥、切刀等旋轉(zhuǎn)切割機構(gòu)。主軸通常連著送膜牽引輥從軸帶動切刀。設備要穩(wěn)定運行必須讓切刀的位置和膜的位置保持嚴格的數(shù)學比例關(guān)系差一個脈沖切出來的袋長就會偏。2.1 主軸—從軸的位置同步邏輯MC_GearInPos的同步對象是“主軸位置”不是“主軸速度”。從軸位置 主軸位置 × 齒輪比 偏移量。有些控制器里這個偏移量叫MasterOffset或SlaveOffset作用是在建立同步的時候允許從軸有一個初始位置偏差。這里有一個重要的概念同步關(guān)系建立后主軸和從軸之間的關(guān)系是剛性的。如果主軸反向從軸也會跟著反向如果主軸急停從軸也會同時停下來在總線周期允許的范圍內(nèi)。這一點跟MC_MoveAbsolute截然不同。在包裝線現(xiàn)場最常見的錯誤就是有人用MC_GearIn做橫封刀同步。速度跟得上時沒問題但一旦主軸加減速從軸位置就會積累誤差。原因是MC_GearIn只保證速度比例位置差沒有閉環(huán)校正。累積到一定量切刀就“跑偏”了。這就像兩輛車你只控制油門確保車速是前車的幾分之幾但不看車距遲早會撞上或拉開。2.2 關(guān)鍵參數(shù)RatioNumerator、RatioDenominator、BufferModeMC_GearInPos的參數(shù)主要有Execute觸發(fā)執(zhí)行。MasterAxis/ SlaveAxis主軸和從軸。RatioNumerator / RatioDenominator齒輪比分子分母。Acceleration / Deceleration建立同步時的加速度和減速度。BufferMode緩沖模式。MasterOffset / SlaveOffset建立同步后的位置偏移。齒輪比分子分母建議寫成整數(shù)比例不要用浮點數(shù)直接填0.5這樣的值。比如主軸轉(zhuǎn)2圈從軸轉(zhuǎn)1圈就寫RatioNumerator1RatioDenominator2。用整數(shù)比例的好處是控制器的內(nèi)部運算精度更高而且程序被不同人維護時一眼能看出機械速比的來龍去脈。BufferMode是很多人忽略的坑。如果當前軸正在執(zhí)行MC_MoveAbsolute你直接給MC_GearInPos的Execute發(fā)上升沿默認的BufferMode通常是Aborting也就是說MC_GearInPos會立刻中斷當前運動把軸從“點位模式”切換成“同步模式”。如果不想中斷當前動作想讓這個指令排在上一個指令后面就要用Buffered模式。2.3 參數(shù)計算的實地示例橫封刀齒輪比舉個具體的例子。某臺枕式包裝機主軸通過牽引輥送膜牽引輥周長300mm也就是主軸每轉(zhuǎn)一圈膜往前走300mm。橫封刀要求每切一刀袋子長度是150mm。機械邏輯主軸每走300mm膜理論上應該切兩刀每刀間隔150mm。換算到軸轉(zhuǎn)角就是主軸每轉(zhuǎn)1圈橫封刀轉(zhuǎn)2圈。齒輪比RatioNumerator1RatioDenominator2即橫封刀轉(zhuǎn)速是主軸的2倍。如果控制器里位置單位用的是用戶單位比如毫米情況稍微復雜。假設從軸橫封刀的一圈我們習慣定義成3600個單位0.1度一個單位那么主軸走300mm對應從軸3600×27200個單位。齒輪比就是7200/300約分后RatioNumerator24RatioDenominator1。這代表主軸走1mm從軸轉(zhuǎn)24個單位。實際寫程序時我喜歡把這類換算放到一個FC里計算好然后賦值給MC_GearInPos的輸入?yún)?shù)。這樣改袋長時只需要改“每袋長度”這一個變量齒輪比自動算出來不會誤改其他東西。3. MC_Phasing連續(xù)運動中做“小修正”套準全靠它MC_Phasing在包裝機械里是個很低調(diào)但很關(guān)鍵的功能。它做的一件事是在當前運動的基準上把從軸的位置平移一個指定量。這個平移過程是連續(xù)的不會把運動打斷。3.1 相位修正的本質(zhì)在不破壞同步的前提下調(diào)整相位差如果把MC_GearInPos建立的同步關(guān)系看成一根“剛性傳動軸”那么MC_Phasing就相當于在這根軸中間加了一個“可調(diào)聯(lián)軸器”。你可以在設備運行過程中微微調(diào)整從軸相對于主軸的相位調(diào)整完之后同步關(guān)系繼續(xù)保持。這個功能在色標套準、貼標位置修正、袋長補償、封口對位中是核心手段。比如貼標機標簽紙在連續(xù)運行中可能因為張力波動稍微跑偏這時傳感器檢測到偏差發(fā)一個MC_Phasing指令讓貼標頭所在軸相對輸送軸提前或者滯后幾毫米把標簽“拉回”正確位置。MC_Phasing的關(guān)鍵參數(shù)是Position、Velocity、Acceleration、Deceleration。注意這里的Position不是絕對位置而是“相位偏移量”。正值表示從軸往正方向偏移負值表示反向偏移。3.2 與直接改SlaveOffset的差別有工程師會問既然MC_GearInPos里有SlaveOffset為什么不能直接改這個值來實現(xiàn)相位修正理論上可以但SlaveOffset是在建立同步時設定的固定補償運行中給它賦值不同廠家的實現(xiàn)差異很大。有的控制器根本不支持運行中修改SlaveOffset有的則需要先解除同步再重新建立非常不方便。MC_Phasing的優(yōu)勢在于它提供了一種“在線、平滑、受控”的相位調(diào)整手段。你設定好偏移量和修正速度功能塊內(nèi)部會按照指定的加速度曲線完成整個修正動作不會對設備產(chǎn)生沖擊。這里有一個非常重要的經(jīng)驗做色標修正時修正量不要一次給太大。我見過有人把修正量設成目標偏差的100%結(jié)果軸在幾個總線周期內(nèi)猛地趕了一大段相位標簽倒是回到位了但機械沖擊讓下一個產(chǎn)品又偏了。正確的做法是分多次小步修正或者一次只修正偏差量的50%~70%讓系統(tǒng)有一個穩(wěn)定過程。3.3 案例貼標機的色標修正假設一臺貼標機輸送皮帶每走1mm貼標頭從軸位置變化3個單位。傳感器檢測到標簽位置比標準位置偏了5mm。修正量換算成軸位置5mm × 3 15個單位。MC_Phasing的Position就設為15個單位讓貼標頭相對輸送軸向前多走15個單位把標簽“提前”貼上去。修正速度可以設成正常工作速度的1/3左右加速度不要太大讓修正過程平滑。如果傳感器是連續(xù)測量的建議在程序里做一個累積修正量。每次偏差都在±2mm以內(nèi)就累積到一個變量里等累積超過一定閾值再觸發(fā)一次MC_Phasing避免頻繁修正引起機械共振。4. 五種模式的橫向?qū)Ρ扰c選型建議前面把五種模式分別講了一遍下面放在一起對比并給出選型建議。這是一張我在多個項目里反復用到的對照表價值在于能快速判斷某個工藝應該用哪個功能塊。4.1 參數(shù)對照表功能塊運動類型是否建立長期同步相位可否在線調(diào)整適用工藝復雜度MC_MoveAbsolute點位否否低MC_GearIn速度級同步速度同步一般不直接調(diào)低~中MC_GearInPos位置級同步是需配合MC_Phasing中MC_CamIn非線性同步是需配合凸輪偏移高MC_Phasing運動疊加不建立疊加在現(xiàn)有運動上是低但作用大從軸狀態(tài)機來看MC_MoveAbsolute對應DiscreteMotionMC_GearIn和MC_GearInPos、MC_CamIn對應SynchronizedMotionMC_Phasing可以在DiscreteMotion或SynchronizedMotion期間執(zhí)行。4.2 按包裝工藝選型推料手、升降臺、壓板這一類的動作特點是“走到位停穩(wěn)干活回來”用MC_MoveAbsolute就夠了。送膜、送紙、輸送帶聯(lián)動這類只要求速度成比例的場合可以用MC_GearIn成本低調(diào)試簡單。橫封刀、切刀、飛剪這類要求位置比例嚴格的機構(gòu)必須用MC_GearInPos。異形軌跡、變速跟隨、間歇運動比如熱成型托盒封口、旋轉(zhuǎn)貼標頭優(yōu)先考慮MC_CamIn。在線修正套準MC_Phasing是標配。不管同步是基于MC_GearInPos還是MC_CamIn都可以用MC_Phasing來做微調(diào)。有一個容易走彎路的場景很多初學者拿到一臺飛剪設備一看是從軸跟著主軸轉(zhuǎn)就寫MC_GearInPos。實際飛剪工藝里切刀在剪切區(qū)間需要與材料速度完全同步在非剪切區(qū)間要快速回位這已經(jīng)超出了固定比例同步的范疇必須用MC_CamIn或者專門的飛剪功能塊。所以看到“同步”兩個字不要條件反射選GearInPos要先分析整個周期內(nèi)從軸是不是始終和主軸保持同一比例關(guān)系。4.3 老工程師的選型口訣在帶新人時我常用三句話來引導選型要停準用MoveAbsolute。要跟準用GearInPos。要變著花樣跟用CamIn。跑著跑著想修正一下用Phasing。只求速度差不多用GearIn。雖然這個口訣簡單但確實能覆蓋包裝機械里九成以上的軸控需求。5. 調(diào)試中的常見問題與排查心得把功能塊用在程序里只是第一步真正考驗經(jīng)驗的是調(diào)試階段。這里把我在包裝機械現(xiàn)場踩過的一些典型坑列出來很多問題不是功能塊的錯是參數(shù)配置和使用環(huán)境的問題。5.1 MC_Phasing沒生效先查這幾個地方MC_Phasing是運動控制里最容易被“靜默忽略”的功能塊之一。如果指令發(fā)了軸紋絲不動優(yōu)先按以下順序排查軸是否處于運動狀態(tài)。MC_Phasing是對“當前運動”做相位偏移如果軸本身處于StandStill狀態(tài)沒有基準運動指令自然無效。是否給了Execute上升沿。運動控制功能塊基本都是邊沿觸發(fā)不是電平觸發(fā)這一點和普通邏輯指令不同。同步狀態(tài)是否建立。如果是在MC_GearInPos之后做相位修正確認MC_GearInPos已經(jīng)處于Active狀態(tài)而不是剛剛觸發(fā)還沒建立同步。總線同步周期是否開啟。有的項目中同步指令依賴PLC的運動總線周期如果周期沒有正確啟動功能塊返回值是成功但軸不動作。5.2 齒輪同步抖動、跟隨不住MC_GearInPos跟隨不住最直觀的表現(xiàn)是從軸在高速運行時出現(xiàn)滯后和跟隨誤差報警。這種情況在包裝機械里很常見尤其是把主軸編碼器信號直接接到伺服驅(qū)動器的高速計數(shù)口時。排查思路編碼器分辨率是否足夠。主軸每轉(zhuǎn)脈沖數(shù)太少位置反饋顆粒度粗比例換算后從軸在每個采樣周期得到的位置變化量跟實際值有誤差表現(xiàn)出來就是抖動。建議主軸編碼器線數(shù)不要低于2500線并且四倍頻后使用。總線周期是否過長。位置同步的精度受總線周期直接影響。如果PLC的運動任務周期設成4ms甚至8ms主軸高速運行時每個周期內(nèi)的位置增量很大從軸在這段時間內(nèi)只能靠插補去追趕誤差就會被放大。加減速時間是否合適。建立同步時加速度太大會造成機械沖擊太小又會在主軸速度變化時跟不上。一般從實際工藝速度反推讓建立同步過程持續(xù)200~500ms比較適合。5.3 BufferMode選錯導致動作被打斷BufferMode這個參數(shù)很不起眼但選錯會讓設備出現(xiàn)“憑空多走一段”或“某個動作突然沒了”這種詭異現(xiàn)象。用MC_GearInPos建立的同步運動如果程序里緊接著還有一個MC_MoveAbsolute并且沒有正確設置BufferModeMC_MoveAbsolute默認Aborting會直接把同步運動打斷從軸瞬間變成點位模式停止跟隨主軸。這在連續(xù)運行的包裝線上就是災難橫封刀直接變成一個普通定位軸后續(xù)機構(gòu)全部錯位。我的建議是凡是同一個軸上有多個功能塊交叉調(diào)用必須把每個功能塊的BufferMode都明確寫出來不要依賴默認值。代碼讀起來會啰嗦一點但排查問題時能少掉很多頭發(fā)。6. 完整案例復盤熱成型托盒封裝線的運動控制配置最后用一個完整案例把前面的內(nèi)容串起來。某條熱成型托盒封裝線需要完成連續(xù)送膜、橫切封口、貼標套準、推料入盒四個工藝。整線以送膜主軸為基準其他軸按工藝關(guān)系做同步。6.1 工藝概況與軸配置主軸伺服電機通過減速機帶動牽引輥牽引輥周長300mm。主軸編碼器2500線四倍頻后每轉(zhuǎn)10000脈沖。橫切軸負責橫封切斷要求主軸每走300mm橫切軸轉(zhuǎn)2圈。建立MC_GearInPos同步齒輪比按用戶單位計算后寫入。貼標軸跟隨輸送位置運動標簽每隔200mm貼一張。貼標頭擺動軌跡比較復雜用MC_CamIn加凸輪表。色標偏差由光電傳感器檢測修正用MC_Phasing。推料軸屬于間歇動作用MC_MoveAbsolute實現(xiàn)。推料動作發(fā)生在橫切完成的瞬間由凸輪曲線或主軸的凸輪開關(guān)觸發(fā)。6.2 關(guān)鍵代碼與參數(shù)以ST語言為例關(guān)鍵邏輯大致如下// 橫切軸位置同步 MC_GearInPos_0.Axis : Axis_HengQie; MC_GearInPos_0.MasterAxis : Axis_ZhuZhou; MC_GearInPos_0.RatioNumerator : 24; MC_GearInPos_0.RatioDenominator : 1; MC_GearInPos_0.Acceleration : 500; MC_GearInPos_0.Deceleration : 500; MC_GearInPos_0.BufferMode : MC_BufferMode_Aborting; MC_GearInPos_0.Execute : SyncCmd AND NOT SyncCmdOld;這里RatioNumerator24RatioDenominator1的來歷是主軸走1mm對應橫切軸轉(zhuǎn)7200/30024個用戶單位。這樣設定后主軸送膜長度和橫切軸轉(zhuǎn)角嚴格對應。貼標修正的邏輯IF ColorSensorError 2 THEN MC_Phasing_0.Axis : Axis_TieBiao; MC_Phasing_0.Position : ColorSensorError * 3 * 0.6; MC_Phasing_0.Velocity : 20; MC_Phasing_0.Acceleration : 100; MC_Phasing_0.Deceleration : 100; MC_Phasing_0.Execute : TRUE; END_IF這里的0.6表示只修正偏差的60%剩余40%留給下一輪控制避免過沖。6.3 上電調(diào)試順序這條線我第一次調(diào)試時花了半天把順序理順。建議按下面步驟來第一步單軸回零確認各軸方向正確正負限位有效。第二步主軸單獨運行確認送膜長度與實際要求一致編碼器反饋正常。第三步建立橫切軸同步低速下觀察切刀位置是否穩(wěn)定逐步提速。第四步加載貼標凸輪表中速運行驗證貼標位置。第五步開啟色標修正功能讓設備全速跑觀察修正動作是否平滑。第六步連續(xù)空跑2小時以上記錄跟隨誤差和修正次數(shù)判斷系統(tǒng)是否穩(wěn)定。這套順序看似簡單但每一步都有明確目的只有在前面所有軸都正確的情況下才能分清問題出在機械、傳動、還是程序邏輯上。關(guān)于運動控制模式最后分享一點私人體會這幾年在包裝機械現(xiàn)場跑來跑去最大的感受是運動控制模式本質(zhì)上是給工程師提供的一套“標準動作庫”模式本身不神秘真正的功夫在于理解每個動作的適用范圍和內(nèi)在限制。MC_GearInPos和MC_Phasing這對組合一個負責穩(wěn)定建立位置同步一個負責在高速運行中平滑修正配合得當很多讓設備“看起來不好用”的老大難問題都能迎刃而解。調(diào)試運動控制設備我不太喜歡一上來就盯著參數(shù)表改來改去而是先問自己一句當前這個軸在這個工藝周期里到底應該處于怎樣的運動關(guān)系把這個問題想清楚了選哪個功能塊、參數(shù)怎么設、BufferMode用什么基本就有了答案。