高 煒,李樹軍,梁為育,涂偉鵬,封璞佳,梁澤榮,吳軍豪
(1.西北工業大學機電學院,陜西 西安 710072;2.航空工業陜西飛機工業(集團)有限公司,陜西 漢中 723200)
在工業生產過程中,電子手輪具有移動方便、抗干擾和帶載能力強、人機交互良好等優點,應用廣泛。一般情況下,電子手輪作為廠家提供的配套設備,已集成于控制系統中。此時,可通過基于計算機的操作平臺或電子手輪控制電機的運動。但在某些非標自動化生產中,設備未集成電子手輪,操作人員需在現場實時監測這些運動部件的運動情況。此時,可在原有設備中集成一套以電子手輪為交互設備的實時控制裝置。
針對這種情況,本文設計了一套基于力士樂L65與西門子PLC的手輪實時控制系統。經實際驗證,該系統可應用于其他類似場合。
在實際工業生產中,采用多軸運動控制器來控制多個電機協同運動。 IndraControl L65作為力士樂多軸運動控制的代表,具有強大的多軸運動控制功能。鑒于電子手輪的信號線數量較多,而PLC具有輸入/輸出端口較多、傳輸速率高等優點,故使用PLC接收手輪的實時脈沖。PLC具有較好的抗干擾能力。但是因為手輪的電壓與PLC的輸入端口電壓不匹配,所以需要通過轉接卡把手輪的脈沖信號接入PLC。首先把電子手輪的實時脈沖通過轉接卡接入到S7-200的輸入端口,通過S7-200的通信模塊EM277的Profibus-DP端口接到L65的Profibus-DP端口。L65利用內部編程系統Indraworks處理接收到的實時信號,并傳輸給相應的驅動器和力士樂電機。將接收到的數據通過EtherNET傳輸到交換機中,再把交換機與工控機相連,以實現整套基于力士樂L65與西門子S7-200的手輪實時控制電機運動方案。系統硬件原理圖如圖1所示。

圖1 系統硬件原理圖 Fig.1 Schematic diagram of system hardware
系統硬件主要包括電子手輪、轉接卡、S7-200、L65、驅動器及電機等部分。
電子手輪的全稱為手動脈沖發生器,是一種通過光電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的傳感器[1]。此處電子手輪調試使用通用6軸手輪,型號為ATT-PY100-LL-J-RP。手輪共有OFF檔、X檔、Y檔、Z檔、A檔、B檔五個檔位,并有X1、X10、X100三種倍率。手輪中央有紅色醒目急停按鈕,用以緊急情況使用。手輪側面配有黃色使能按鍵。只有在使能鍵按下并旋轉手輪時,方能向S7-200輸入口發出脈沖信號[2]。
轉接卡用于將電子手輪的5 V電壓轉換為PLC的24 V電壓輸入,并把各個信號線對應接入PLC的輸入端口。轉接卡電路如圖2所示。采用TLP521光電耦合器,使前端與負載完全隔離,減小電路干擾。電源模塊采用HDW5-24S05A1型號。

圖2 轉接卡電路圖 Fig.2 Circuit of transfer card
S7-200 CPU支持高速數字量輸入和兩路高速數字量輸出。CPU224XP高速輸入用作單相脈沖輸入時,可以達到200 kHz;用作雙向90°正交脈沖輸入時,速度可以達到100 kHz,可滿足電子手輪轉動的實時脈沖計數[3]。基于工業現場對電子手輪實時性的要求,選用西門子PLC(型號S7-200 CPU-224XP)作為電子手輪脈沖輸入端口。該PLC可使用6個高速計數器,可編程并具有復位輸入。2個獨立的輸入端可同時作加、減計數,可連接兩個相位差為90°的A/B相增量編碼器。
EM 277經過串行I/O總線連接到S7-200 CPU。Profibus網絡經過其DP通信端口,連接到EM 277 Profibus-DP模塊。這個端口可運行于9 600 bit/s和12 Mbit/s之間的任何Profibus波特率。作為DP從站,EM 277模塊接收從主站發來的多種I/O配置,向主站發送和接收不同數量的數據[4]。
L65作為高精度運動控制實時多軸控制系統,提供了一個功能齊全的開放平臺。通過EtherCAT、Sercos、Profinet等現場總線,將來自不同廠商的產品接入到開放的控制系統。系統采用靈活的多線連接技術,具有功能參數設置簡單、免維護且低功率損耗、結構緊湊靈巧等特點,有效減少了安裝空間和成本。
在滿足系統使用性能的基礎上,考慮經濟成本、系統精簡及集成控制的開放性,選用Rexroth IndraDrive Cs伺服驅動器及IndraDynS-MSK同步伺服電機作為驅動運動部件的動力裝置。伺服驅動器通過網線串聯,形成閉合的Sercos環直接同步處理,大大提高了電機的響應速度。這種“多軸控制+伺服驅動器+伺服電機”的控制組合,采用其內部協議通信,通過IndraWorks軟件編輯程序和現場調試,在精簡系統的同時,減少了系統集成和現場調試的工作量。
電子手輪的輸入脈沖通過轉接卡輸入到S7-200的輸入端口。由于電子手輪的脈沖數隨時間變化速率較快,故屬于高速計數。高速計數是針對輸入的高頻率脈沖,用于累計計數觸發事件。電子手輪可以捕捉到持續時間小于一個掃描周期的脈沖[5]。
CPU224XP支持6臺高速計數器(HSC0至HSC5)。每臺高速計數器使用一條“高速計數器定義”指令[6]。此處以兩臺手動脈沖發生器為例,使用HSC0和HSC2兩個高速計數器。HSC0的高速計數器專用輸入端口為I0.0、 I0.1、 I0.2。HSC2的高速計數器專用輸入端口為I1.2、 I1.3、 I1.4、 I1.5[7]。
高數計數器HSC0和HSC2參數設置及部分PLC程序如下。
LD SM0.1
MOVB 16#FC,SMB37
MOVB 16#FC,SMB57
MOVD +0,SMD38
MOVD +0,SMD58
MOVD +1600000,SMD42
MOVD +1600000,SMD62
HDEF 0,9
HDEF 2,9
ENI
HSC 0
HSC 2
手輪順時針轉動,I0.1接通,T99定時器不工作。手輪停止轉動,T99定時器延時0.7 s后,停止工作,用來監測手輪是否轉動
LD I0.1
O M6.0
AN T99
= M6.0
AN I0.1
TON T99,+70
手輪停止轉動時,每隔0.5 s檢查與上一個0.5 s的脈沖數是否相等。若不相等,置位I0.1;若相等,則復位I0.1。
LD T99
LD I0.7
O I1.0
O I1.1
ALD
A SM0.5
LPS
AD<> VD900,VD1200
MOVD VD900,VD1200
AENO
S I0.1,1
LPP
AD= VD900,VD1200
MOVD VD900,VD1200
AENO
R I0.1,1
R M6.0,1
在Indraworks中,設置L65與S7-200的地址映射關系,并設置內存映射地址偏移量。此處設置偏移量為0,即I/O Offset in the V-memory的值為0,也可以根據需求,自行設置偏移量[8-9]。
在Indraworks中添加EM277通信模塊的GSD文件。在Indraworks的Profibus_DP_Master模塊中添加GSD文件,并找到EM277_Profibus_DP通信模塊,再添加32個字的數字量輸入輸出模塊。
由于ProfiBus模塊的通信地址從IW2開始,故在內存地址偏移量為0的情況下,L65的輸入IW2對應S7-200的VW64,IW4對應VW66,輸出QW2對應S7-200的VW0,IW4對應VW2,以此類推。
2.3.1 Indraworks簡介
首先在Indraworks中創建工程項目,并通過配置IP連接到L65,再掃描添加網絡中的驅動軸和面板I/O。通過網線或光纖形成閉合的Sercos環,并自動分配地址。Sercos III采用以太網傳輸數據的方式,L65控制為主站,伺服系統和可編程控制器I/O口等為從站。設置好循環周期,主站按周期向從站發送主站同步數據電文,所有從站同步接收,控制從站運行。主站給從站發送數據報文和數據控制指令,比如伺服軸位置、速度、增量等指令,從站全部接收,但是僅在指定位置找到自己所需的數據。伺服從站發送伺服數據電文給主站,其中包括電機狀態應答信號、伺服軸實際位置、扭矩、轉速、診斷及報警信號等。
L65采用標準的IEC 61131-3編程語言編輯和配置參數,具有符合開放性要求的PLCopen的功能庫標準模塊,并且支持用戶自行開發功能塊。L65將電機運動控制、狀態反饋、參數設置等功能都封裝成標準的Function Block,通過簡單的調用和變量參數設置實現電機的運動控制。功能塊的用戶輸入變量包括功能塊啟動變量Execute、用戶位置指令Position、用戶速度指令Velocity;輸出變量包括運動過程是否完成Active、目標位置是否到達Done。L65絕對位置功能塊如圖3所示。

圖3 L65絕對位置功能塊 Fig.3 L65 absolute position function block
2.3.2 Indraworks驅動器配置
Indraworks驅動器配置如下。
①設置運動及編碼形式。系統中所有電機采用絕對編碼方式,即在系統斷電后,電機的零點不丟失。實際生產中,采用絕對編碼方式不丟失零點,保證關機暫停以后的任務得以繼續進行。
②設置傳動比及絲杠導程。根據伺服傳動機構的傳動比及導程進行配置,驅動器即可將接收的直線位置值準確地轉化為電機的旋轉位置,并將編碼器旋轉值轉化成直線運動位置反饋。
③設置限位。在滿足軸行程范圍要求的基礎上安裝正、負限位開關,共用限位開關為零位開關。根據本系統中使用常開型限位開關,勾選限位開關類型N/O,激活限位開關功能。
④零點設置。在Reference travel direction選項中設置回零方向,Positive是從正向回零,Negative是從反向回零。根據限位開關安裝位置及坐標系設置要求,設置負向回零。為節約空間,用限位開關同時作為回零開關,勾選Limit switch as zero switch。
2.3.3 Indraworks變量定義
首先在函數塊的變量定義區定義所需變量并注釋其含義,截取部分變量如下所示。
FUNCTION_BLOCK SMControl_New
VAR_INPUT
InputPulse:DWORD;
//輸入脈沖
PowerState:BOOL;
//電機使能狀態
SMEnable:BOOL;
//手脈使能按下
HMIEnable:BOOL;
//人機界面使能
ControlAxis:AXIS_REF;
//受控電機
END_VAR
VAR
mv:MC_MoveVelocity;
//速度模塊建立
VelocityOut:REAL;
//電機運行最大速率
EnableRun:BOOL;
//速度模塊使能信號
InputEnable:BOOL;
//手輪脈沖信號
MVActive:BOOL;
//速度模塊完成信號
ms:MC_Stop;
//停止模塊建立
InputPulse0:DINT;
//32位脈沖輸入
InputPulse1:REAL;
//實數型脈沖輸入
t1:TON;
//延時接通定時器
VelocityOut_D:REAL;
//電機設定運行速率
END_VAR
2.3.4 Indraworks程序設計
首先通過NE模塊判斷輸入的脈沖數是否為0,若不為0,則InputEnable為True。然后判斷SMEnable使能鍵是否按下、HMIEnable上位機是否使能,PowerState電機是否上電,InputEnable手輪是否轉動。若以上全部為True,則延時0.1 s以消除抖動,并使能EnableRun為True。
由于不同檔位的電機運行速率不同,根據S7-200中傳送的數據已經將不同速率檔位的脈沖數做了相應的處理。為防止操作人員人為地以超過額定速度轉動手輪,設置了自動清零功能。X1檔位在計數滿100時自動清零,X10檔位在計數滿10 000時自動清零,X100檔位在計數滿1 000 000時自動清零,并可根據不同的脈沖數來確定不同的電機運行速率。
當使能EnableRun為True且手輪轉動時,MC_MoveVelocity激活,并按照設定的參數控制電機的運行。當MC_MoveVelocity模塊完成后,MVActive為True,激活MC_Stop使電機停止運動。
本文設計了一套基于力士樂L65與西門子PLC的手輪實時控制系統,可廣泛應用于一般伺服電機與步進電機。該系統結構緊湊、模塊化強、使用方便、精度高、效率快、安全性高,有效地解決了一般情況下工業生產中需集成電子手輪控制裝置的問題,具有良好
的推廣價值。
參考文獻:
[1] 黃風. 手輪在PLC簡易數控系統中的應用[J]. 金屬加工(冷加工),2011(3):72-73.
[2] 王益紅,陳志同. 基于PMAC的數控機床手輪功能的實現[J]. 機械工程師,2005(12):68-70.
[3] 崔堅.西門子S7可編程控制器:STEP7編程指南[M].北京:機械工業出版社,2007.
[4] 鄧三鵬,劉鋼,吳立國,等. 基于PLC的儲油罐清理機器人液壓
系統設計[J]. 液壓與氣動,2013(3):35-37.
[5] 陳進,施海濤,李橋. 基于PLC的船舶壓載艙監控系統設計[J]. 自動化儀表,2017,38(3):30-32,36.
[6] 聶國倫,白生威. 基于PLC技術的礦井提升機位置與速度控制系統設計[J]. 煤礦機械,2011(4):157-159.
[7] 黃風. 手輪在三菱FXPLC定位控制系統中的應用[J]. 制造技術與機床,2011(3):167-168.
[8] 朱學兵. PLC在數控機床手輪控制中的應用[J]. 電氣傳動自動化,1999(3):50-52.
[9] 譚聰,金璐. PLC控制原理分析及其在工業中的應用[J]. 硅谷,2014(1):95-101.