軟體運動控制帶來的效能與彈性

撰文:克莉絲汀‧洛瓦斯基
運動控制與馬達協會
發布時間:2017 年 11 月 30 日

在現代製造業,每個人都想要更高的產量、更快的速度、更多的彈性及更好的效能。雖然很多應用程式可以有效配合常見的可程式化邏輯控制器(PLC)或運動控制器,但業界仍存在著這些解決方案無法滿足的特殊需求,這使得軟體運動控制成為新的焦點。當要為專業應用程式尋找配套措施時,軟體運動控制就成為高效能應用程式的必備方案。

多年來,控制領域始終是 PLC 的天下。PLC 擅長計數、計時、管理輸入輸出(I/O),以及處理其他機器控制事項。最初,PLC 只能控制少軸數的運動,無法做太複雜或高度同步的動作,然而許多要求很高的應用程式需要專門的運動控制器。近幾年來,PLC 與運動控制器的界線變得模糊,如今專業 PLC 已能處理高度同步的運動,有些運動控制器也能處理幾十個 I/O 點,不再需要個別的機器控制器做這些事。

專門的運動控制器與運動控制 PLC 是針對專業領域特製化,可以用很高的效率完成特定工作,但這些特殊功能也限制了它們的彈性。客製化不是不可能,但耗時費力。再者,這些控制器和 PLC 的頻寬也有限,因為它們常使用搭配特定應用的積體電路(ASIC)或數位訊號處理(DSP),產品更新週期通常很慢。軟體運動控制則提供了其他的可能性,它有通用型處理器優異的運算效能做後盾,可以提供高效能、高度客製化和夠多的彈性。

「比起傳統解決方案,軟體運動控制更經濟實惠、效能更好。」ACS Motion Control(公司位於明尼蘇達州布魯明頓)總經理傑森‧戈格斯表示。「電腦可以利用英特爾設計生產的處理器,他們的處理器比運動控制公司設計的處理器更強大也更有效率。」

在軟體運動控制領域,產品功能性取決於程式設計。一般而言,軟體運動控制使用運動演算法,這些演算法是以某些版本的運動指令碼語言寫成,通常是 C/C++ 或 Visual Basic,這是軟體運動控制能在任何數位運算平台上運作的原因。控制命令會透過軟體建立和傳送,而非透過硬體,因此,它可以解決複雜的運動問題;若用傳統途徑解決這些問題,將會相當耗時費力。

考量系統需要依據輸入的變數更新運動軌跡,I/O 需要快速切換,得到結果後,控制器會決定接下來怎麼做,同時依據運動控制軌跡更新下一個目標位置。「之前要執行這類專案非常困難,因為要先在 PLC 上完成邏輯,決定下一步怎麼做,再送出觸發條件,還得確保 PLC 和運動系統之間的控制迴路或通訊沒有太多延遲。」國家儀器(National Instruments,公司位於德州奧斯汀)運動控制研發組經理奈特‧荷姆斯說道。當運動控制器的制式功能無法處理輸入訊號的類型或時序時,問題就出現了。「你得使用特定技術或取巧的方法,讓 PLC 和運動控制器上的元件能正常同步運作。」他補充說明。「用軟體運動控制就簡單多了,因為這些工作都可以在控制器上的同一套應用程式裡客製化和執行。」

智慧驅動器與連線能力

有幾個關鍵技術的發展促成了軟體運動控制的成熟,第一項是數位匯流排介面。數位網路以單一數位匯流排取代了點對點類比接線,這種匯流排能讓大量的元件高速溝通,常見的通訊協定包括 EtherCAT、Ethernet/IP 與 PROFINET。

智慧驅動器是第二個條件,正是它們的崛起掀起了軟體運動控制的潮流。傳統系統中,運動控制器會將類比訊號傳送至驅動器,驅動器再去關閉扭矩迴路,運動控制器則負責關閉控制機制和速度控制迴路。這種架構需要把每個軸從馬達連到驅動器,驅動器再連到控制器。如果需要用大機器和相當多的軸數,這樣的連接方式會大幅增加成本、複雜度和失敗的機率,智慧驅動器為此提供了解決方法。

智慧驅動器納入了微處理器和內建記憶體,大幅提升了功能性。它可以關閉扭矩、位置和速度迴路,也能夠提供保護機制,有些智慧驅動器甚至還具備可供使用者自行配置的數位 I/O,能與系統內其他裝置溝通。

智慧驅動器和連線能力開啟了分散式控制架構的大門。不像以往的驅動器只能藏身在機箱內的控制器旁,智慧驅動器可以放在馬達旁的機器上,以串接方式加入主從式架構,處理更複雜的多軸運動。驅動器和馬達之間的點對點接線現在可以用一條乙太網路線取代。這對電源和 I/O 纜線有很大的助益,因為這兩種線的價格可能非常昂貴。雖然智慧驅動器比傳統驅動器要貴,但不會貴太多,而且配線成本可以因此降低,支出可以由此平衡。

英特蒙(IntervalZero,公司位於麻薩諸塞州沃瑟姆)客服工程協理傑瑞‧萊茲,提到了軟體運動控制興起的另一項因素:處理器速度。「現在電腦越來越快,」他道。「兩個分數相乘不比兩個整數相乘來得慢,這顛覆了過去的情況,軟體現在可以做以往做不到的事。」

多面向的軟體運動控制

不同的實行方案經過改良後,可以滿足不同的需求,或許最簡單的方式是讓 PLC 執行一套軟體運動控制演算法。這種做法似乎不符合電腦控制的趨勢,但 PLC 說穿了是一種強固型數位計算機,很多 PLC 都使用 x86 處理器。就像一般電腦一樣,PLC 能執行軟體運動演算法,只是速度不夠快,運算能力有限而已。在這些領域,電腦的延展性就比較大了。

儘管電腦運動控制已不再是陌生的詞彙,許多包括荷姆斯在內的業界專家仍不樂見這種結果,因為這種方法與個人電腦和 Windows 脫不了關係。對軟體運動控制應用程式而言,Windows 不是作業系統的好選擇。執行軟體運動控制的平台必須具備可靠精準的效能,要達到這樣的條件需要即時作業系統(RTOS),硬體也必須夠堅固、效能夠高。雖然一般電腦的價格足夠吸引人,工業控制還是需要強固的機器,才能在嚴苛的環境下運作順暢。

「你不能隨便找台 Windows 電腦,寫個程式發布下去,然後期待系統會穩定執行標準自動化作業或協調運動。」荷姆斯道。「那些工作需要控制或驅動器通訊之類的元件,而且需要在某些時候很精準的執行。」

軟體運動控制常見的做法是用多核心處理器,將其中一個核心分配給 Windows,再安裝 RTOS,讓一個核心負責運動控制,另一個核心執行 Windows,Windows 核心可以控管人機介面(HMI)之類的工作(圖一),RTOS 和 Windows 可以透過 TCP/IP 和共享記憶體溝通。即使 Windows 核心出問題,也不會影響運動控制的運作。

圖一:為確保即時運作,PC 控制器會使用雙核心處理器。一個核心給 Windows,負責人機介面(HMI)之類的非即時工作;另一個核心給即時作業系統(RTOS),負責運動控制。(圖片由英特蒙提供)

這種軟體控制器可以配合傳統 PLC 控制機器。另一種方式是,用第二台電腦或另一個核心來執行軟體 PLC。現在,不管是哪個層面的控制都可以用軟體執行。

使用電腦來執行軟體運動控制的情境很多。除了上述的例子,x86 主機板可以裝在產品上,經過配置後,能夠執行軟體運動演算法。機箱結構和外殼因使用狀況而有所不同,但效能是一樣的。反過來說,一台電腦可以使用數位訊號處理(DSP)或圖形處理單元(GPU)等不同的加速器來執行軟體運動控制,即使這樣做會回到受限於硬體和功能的階段。至於那些要求很高的應用程式,現場可程式邏輯閘陣列(FPGA)提供了可程式設計的內嵌式運算解決方案(圖二)。

圖二:現場可程式邏輯閘陣列(FPGA)控制器提供了可用程式調整的高速運作方案。(圖片由國家儀器提供)

在 PC 系統上,優質的安全措施是必要的。在可視化工廠興起的同時,設備需要連到網際網路。所有連網的元件都有一定的風險,但 PC 特別容易受到惡意軟體攻擊。RTOS 核心也許安全,但 Windows 核心怎麼辦?如果這兩者要溝通,而且是頻繁溝通,必定得採取某些措施來確保兩者能安全通訊。

軟體運動控制實務

軟體運動控制可以透過多個應用程式完成工作,但只有在能處理複雜需求、極小容忍度和高度同步化運動的應用程式上,才會顯出它的優勢。這些應用程式很適合用來處理一些精密工作,如半導體製程檢測所用的 XYZ 定位平台。

這樣的技術可以用於大型硬體的精密測試,如飛機零件的壓力測試。這個應用需要為超大型零件定位、套用精確的力道並同時收集資料。國家儀器運動產品經理克里斯‧強森表示:「我們能密切同步化這些資訊,做出多數 PLC 廠商無法做到的類比功能,來進行高精準的測量。」

軟體運動控制非常適合用於軸數龐大的系統。為特定軸數設計的專業運動控制器也許只能儲存特定存取數量的設定資料,也有可能因記憶體不足、處理器效能不夠而無法支援更多的軸數。軟體運動控制結合智慧驅動器、工業乙太網路及軟體運動演算法,能以最低成本擴展到高軸數需要的環境。

這種架構支援複雜的控制系統。萊茲舉例,一條輸送帶上的電子零件組裝線會經過 20 站,每站都需要在特定時間內加入零件。基本上,有 20 軸需要和單一主軸同步。「如果你要用硬體做這件事,就只能把編碼器從所謂的主軸上取出,再將線路接到要同動的副軸板子上。」萊茲道。「你會煩死。」如果是使用 EtherCAT 軟體運動控制系統,資料會透過全雙工匯流排,以一週期 500 微秒或更快的速度循序通過這 21 軸。「現在,軟體已經知道這 21 軸的確切位置。假設因為連動的關係,第五軸需要知道第 17 軸在哪裡,它只要問軟體它在哪裡就行了。第五軸可以決定接下來要做什麼,這是很大的差別。」

要同步大量軸數,也可以用另一種方法,就是建立所謂的幻影軸。幻影軸是一種虛擬軸,以固定速度轉動。系統內其他軸都會以電子變速的方式配合幻影軸。「你只要告訴幻影軸何時開始和結束,機器就會順暢地同步運動。」萊茲說道。「你不會想用 DSP 控制器做這件事,因為你會浪費一整個軸,但用軟體就沒差,因為幻影軸免費。」

最後一個例子是,我們要迎向業界的研發趨勢:將多台機器或模組合併在單一控制器上。想像一下,有一套半導體設備負責生產完成的電路板,這些電路板會送到另一條有垂直堆積器的輸送帶上,堆積器可以接受貯存盒。如果用傳統技術,每台機器或模組會有自己的控制機構,這些機構全都要整合以達成同步運動。軟體運動控制可以做的事,不僅僅是讓兩台機器同步運作而已,它可以讓控制機構合而為一。

主機器有一台電腦執行軟體運動演算法,同時透過乙太網路線與智慧驅動器溝通。只要堆積器有安裝智慧驅動器,就可以很容易地將它與主機器整合。透過乙太網路線,兩套設備可以快速連在一起,接下來將獨立的軟體運動程式載入主機器的電腦,就能開始操控堆積器。「這樣就完成了。就某種層面來說,它們算兩台機器,因為有兩套軟體在運作,但軟體是在同一台電腦上,兩支程式也都和同一個軟體運動程式庫溝通。」萊茲說道。「如果要用另一台機器,只要把馬達和放大器裝上去就行了,不用再裝電腦、DSP、螢幕,你可以省下一大筆錢。」

軟體運動控制適合你嗎?

就像工程界常說的,世上沒有完美的解決方案。如果需要的控制迴路速率,比驅動器和控制器之間的即時數位匯流排上可達到的通訊迴路速率更快,那麼軟體運動控制就不適用。在這種情形下,應用程式需要的是客製化解決方案。從另一個層面來說,一個常見的應用程式可能已經具備了低成本標準解決方案,而專為機器人和數值控制工具機(CNC)訂做的應用程式控制器,則是用來簡化程式設計,使設備更易於使用。這不是因為軟體運動控制無法做到同樣的事情,而是因為它做同樣的事不會更有效率或使成本更低,除非應用程式需要的功能無法透過標準機器人或 CNC 控制器完成。就後者來說,軟體運動控制也許就是理想的選擇。

「如果硬體不適合,或需要用供應商不支援的方式擴充,軟體運動控制就變得很吸引人,因為你可以客製化或擴充功能,不需要從頭開始。」荷姆斯道。「軟體運動控制提供了一個中間地帶,讓你可以從這裡切入,它可以幫你處理好很多機器、控制迴路和介面的基礎架構,但讓應用程式端保持開放,你可以在既有的基礎架構上進行各種測試,來找出你需要的功能。」

隨著科技進步,本篇報導的每個受訪者都預言了這個領域的成長。「商業需求量越來越大,公司需要某種變革。要讓這種變革出現最好的方法,或許也是唯一的辦法,就是透過軟體運動控制或軟體工具。」荷姆斯補充道。「我們看到很多用軟體運動控制的人都想在流程或應用程式上有所創新,他們通常不是無法使用現成的解決方案來改良他們現有的流程,就是想把自家開發的應用程式賣給別人,來提高產品價值。」

「我想軟體運動控制會繼續從硬體那裡搶食更多市場大餅。」戈格斯道。「任何想做運動控制的公司,都應該把軟體運動控制的可行性納入考量,因為在很多情況下,你能以較低的成本獲得更高的效能。」

Translated from: motioncontrolonline.org