,
(中國船舶重工集團公司第七0二研究所,江蘇 無錫 214082)
船模水池拖車是一種研究水動力學的試驗裝備,國內(nèi)外的船模水池拖車大都只能進行直線運動,而本文介紹的X-Y航車其X車作為總的平臺在X方向作直線運動,搭載在X車上的Y車在Y方向作直線運動,X方向與Y方向成直角,Y車下掛旋轉(zhuǎn)平臺,旋轉(zhuǎn)平臺吊掛試驗模型,旋轉(zhuǎn)平臺可在平面內(nèi)360°旋轉(zhuǎn),故試驗模型可在水池的整個平面做進退、橫移、旋轉(zhuǎn)運動。通過組合,可進行直線運動、斜向運動、蛇形運動、圓周運動、以及自定義曲線運動。可實現(xiàn)水動力快速性、操縱性、耐波性試驗于一體。但由于本系統(tǒng)中X車和Y車不但慣量大,而且慣量差距也較大,要實現(xiàn)圓周運動等復合運動,需X車和Y車的速度控制響應(yīng)很快,并且其加速度和減速度要求在不同的工況下可靈活快速調(diào)整。這就對整套運動控制系統(tǒng)提出了很高要求,要求上下位機通信實時性強、通信速率高、數(shù)據(jù)刷新頻率快。在傳統(tǒng)的測控系統(tǒng)設(shè)計中,點對點的快速數(shù)據(jù)交換問題不大,采用自定義通信編程可實現(xiàn)ms級的通信刷新率,但是由于本系統(tǒng)比較復雜,具有多個控制器,需要多個控制器之間快速交換數(shù)據(jù),采用自定義通信編程工作量巨大,且可靠性難以保證,宜采用成熟的工業(yè)網(wǎng)絡(luò)通信技術(shù)。但是主流的工業(yè)通信網(wǎng)絡(luò)中其上下位機數(shù)據(jù)刷新率都在百ms級,例如工廠DCS集散式控制系統(tǒng)中,組態(tài)軟件與下位現(xiàn)場級控制器之間的數(shù)據(jù)刷新率基本都在150 ms以上。要在采用成熟的工業(yè)通信網(wǎng)絡(luò)的基礎(chǔ)上實現(xiàn)ms級的數(shù)據(jù)刷新率,必須另辟蹊徑。而將西門子WinAC軟邏輯PLC結(jié)合Profibus現(xiàn)場總線就提供了這種可能。本系統(tǒng)采用Profibus現(xiàn)場總線通信網(wǎng)絡(luò)可將多個控制器互聯(lián)以成熟、可靠的方式實現(xiàn)底層數(shù)據(jù)交互,同時將通信主站以軟件方式嵌入功能強大的PC機中,使ms級的通信在PC機與多個下位機之間以成熟、可靠的組態(tài)式編程方式實現(xiàn)。在人機交互環(huán)節(jié),利用Visual Basic編程語言實現(xiàn)與WinAC之間的進程間通信,并結(jié)合NI公司的Measurement Studio ActiveX組件可開發(fā)友好美觀的人機交互界面。鑒于PC機多任務(wù)處理導致的實時性無法保證的缺陷,采用增加RTX實時內(nèi)核的方法可以在保留PC機強大性能的基礎(chǔ)上解決此問題。
WinAC是西門子公司研發(fā)的一種軟邏輯PLC的簡稱。它的核心思想是將傳統(tǒng)的SIMATIC S7硬邏輯PLC具優(yōu)勢的控制、通信功能與PC機具優(yōu)勢的數(shù)據(jù)運算和處理功能及豐富的第三方軟件兼容性能結(jié)合起來,將控制、通信、數(shù)據(jù)處理、工藝與可視化功能集中于一臺PC機上實現(xiàn)。其主要特點為:
1)運行于采用主流的Windows 2000/XP等操作系統(tǒng)的標準PC機平臺中。
2)與傳統(tǒng)的SIMATIC S7系列PLC使用同樣的編程環(huán)境,代碼兼容性好。其生成的程序也可用于SIMATIC S7系列PLC。
3)與其它PC應(yīng)用程序之間有多種接口方法,如:ActiveX控件、DCOM、OPC等。
4)接口開放,易于構(gòu)建軟硬件高度結(jié)合的控制任務(wù)。
WinAC 特別適用于以下場合:
1)由于性能需求和空間限制的原因,需要將通信、控制、數(shù)據(jù)處理及可視化任務(wù)集中在同一臺PC機平臺上完成。
2)由于特殊工藝的原因,有復雜的軟硬件集成要求。
Profibus是目前國際上通用的現(xiàn)場總線標準之一,是一種不依賴于特定生產(chǎn)廠家的、開放式的現(xiàn)場總線,遵循該協(xié)議的不同生產(chǎn)廠家的自動化設(shè)備之間可實現(xiàn)可靠而高速的數(shù)據(jù)交互。Profibus協(xié)議包括三個子集:Profibus-DP、Profibus-PA、Profibus-FMS,其中Profibus-DP主要應(yīng)用于制造業(yè)自動化系統(tǒng)中現(xiàn)場級的通信,它采用主站和從站之間輪詢的通信方式,支持高速的循環(huán)數(shù)據(jù)通信,通信速率最高為12 Mbps,最大網(wǎng)絡(luò)節(jié)點數(shù)為127點。本文中所述Profibus如無特別說明均指DP協(xié)議。
X-Y航車系統(tǒng)主要由X航車、Y航車和轉(zhuǎn)臺組成。X航車橫跨水池寬度架設(shè)做縱向運動(沿水池長度X方向);Y航車懸掛在X航車下,做橫向運動(沿水池寬度Y方向);Y航車的下面設(shè)一個工作室,工作室底部有一個可360°旋轉(zhuǎn)的轉(zhuǎn)臺(以下簡稱轉(zhuǎn)臺),轉(zhuǎn)臺的運動同時受控于X航車、Y航車。由于X航車和Y航車兩者運動方向互成直角,故Y航車可在水池的整個平面做二元運動。X航車、Y航車的運動與轉(zhuǎn)臺的回轉(zhuǎn)運動可以通過控制實現(xiàn)同步,故可使船模艏向沿運動切線方向或任意迎角運動。其中X航車的重量約100噸,X方向的最大速度為3米/秒;Y航車重量約10噸,Y方向的最大速度為2米/秒。
X-Y航車控制系統(tǒng)的主要組成部分:1)上位機:運動控制計算機;2)下位機:X航車直流調(diào)速系統(tǒng)、Y航車直流調(diào)速系統(tǒng)、轉(zhuǎn)臺交流伺服調(diào)速系統(tǒng);3)通信網(wǎng)絡(luò)。
在上位機層面,采用高性能PC機作為硬件,以西門子WinAC軟件+Ardence RTX構(gòu)成實時控制核心,采用Visual Basic 6.0編程語言(以下簡稱VB)結(jié)合NI公司的Measurement Studio ActiveX組件開發(fā)人機界面。在下位機層面,分別采用西門子6RA70系列直流調(diào)速器、西門子S7系列PLC、德國LENZE伺服控制器、意大利ELTRA絕對值編碼器等;通信網(wǎng)絡(luò)采用Profibus,主站采用CP5613通訊卡。
X航車驅(qū)動直流電機共8臺,主副軌道各4臺,主副軌均勻分布的各4臺電機共用一臺直流調(diào)速器,采取電樞繞組串聯(lián)和勵磁繞組串聯(lián)方式。直流調(diào)速器選用西門子6RA70,兩臺6RA70裝置配置為主從模式,主驅(qū)動裝置的速度環(huán)輸出通過SIMOLINK光纖網(wǎng)絡(luò)同步給定從驅(qū)動裝置的電流環(huán)輸入,使主從電機保持力矩一致,均勻分擔負載。
Y航車驅(qū)動直流電機共4臺,共用一臺直流調(diào)速器,采取電樞繞組串聯(lián)和勵磁繞組串聯(lián)方式。直流調(diào)速器選用西門子6RA70。
轉(zhuǎn)臺的驅(qū)動電機為2臺交流伺服電機,分別由兩臺德國LENZE 9300伺服驅(qū)動器控制,兩臺9300伺服驅(qū)動器配置為主從模式,主驅(qū)動裝置的速度環(huán)輸出作為從驅(qū)動裝置力矩環(huán)的輸入,使主從電機保持力矩一致,均勻分擔負載。
工控PC機通過Profibus CP5613通訊卡與6RA70 裝置、西門子S7-200 PLC、X軌道絕對值編碼器組成Profibus通信網(wǎng)絡(luò)交換數(shù)據(jù)。為滿足特定場合下X航車、Y航車、轉(zhuǎn)臺的獨立控制需求,工控PC機上配置3塊CP5613通訊卡分別與X航車、Y航車、轉(zhuǎn)臺的控制器組成三個Profibus通信網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)的實時交互。圖1~3分別為X航車、Y航車、轉(zhuǎn)臺驅(qū)動控制系統(tǒng)組成框圖。
圖1 X航車驅(qū)動控制系統(tǒng)組成框圖
圖2 Y航車驅(qū)動控制系統(tǒng)組成框圖
圖3 轉(zhuǎn)臺驅(qū)動控制系統(tǒng)組成框圖
2.3.1 開發(fā)環(huán)境
操作系統(tǒng)選用Windows XP,操作系統(tǒng)實時內(nèi)核選用Ardence RTX??刂萍巴ㄐ啪幊汰h(huán)境為西門子SIMATIC NET、WinAC軟邏輯PLC組件。人機界面編程工具選用Visual Basic 6.0及NI儀器公司的Measurement Studio組件。
2.3.2 WinAC站組態(tài)
首先需進行WinAC站組態(tài),其步驟在SIMATIC NET、WinAC軟件安裝正確之后進行。詳細步驟如下:
1)在“Station Configuration Editor”中新增“WinLC”。
WinAC安裝完畢后,“Station Configuration Editor”會自動把“WinLC”加入到索引號為2的PC站中。索引號為PC站虛擬機架中虛擬插槽的編號(它與PC主板的實際PCI插槽順序無關(guān))。如果自動添加未成功,則在索引號為2的位置右鍵彈出式菜單中選擇“Add”鍵,并從隨后跳出的“Add Component”對話框中選擇“WinLC” 。此處的“Station”為計算機名。
2)組態(tài)CP5613通訊卡。
(1)首先打開組態(tài)控制臺,方法為用鼠標依次單擊菜單“開始”→“SIMATIC”→“SIMATIC NET”→“Settings”→“Configuration Console”。
(2)在“Configuration Console”窗口中依次單擊“Modules”和“CP5613/CP5614”前的符號“+”后選擇“General”,在右邊數(shù)據(jù)窗口中將“Mode of the module”的列表框選為“Configured mode”,列表框“index”選為4。以相同方法分別添加另兩塊CP5613通訊卡,“index”分別為5和6。
3)綁定CP5613通訊卡為WinLC的子模塊。
在CP5613通訊設(shè)置為組態(tài)方式后,還需將其設(shè)為WinLC的子模塊,這樣WinLC才可以驅(qū)動各種DP從站。每個WinLC最多可以有4個子模塊。 在“Station Configuration Editor”編輯器中,右鍵單擊索引號為2的行(即WinLC行),從快捷菜單中選擇“Edit”,打開“Edit Component”對話框,選擇“Properties…”,彈出“WinLC Properties”對話框,右鍵單擊索引號為IF1的行,并從快捷菜單中單擊“Add”鍵, 在打開的“Add CP Module to WinLC Interface IF1”對話框中選擇CP5613,單擊“OK”鍵,關(guān)閉“Add CP module To WinLC Interface IF1”對話框,回到“WinLC Properties”窗口,可以看到CP5613/CP5614位于IF1索引號上,單擊“OK”鍵。當再次打開“Station Configuration Editor”后,可發(fā)現(xiàn)CP5613已不在索引號為4的插槽上,原因是CP5613通訊卡已被當作子模塊綁定到WinLC的“插槽”中。以同樣的方法把索引號分別為5和6的另兩塊CP5613通訊卡綁定為WinLC的子模塊。至此基本的WinAC PC站組態(tài)完畢。
2.3.3 WinAC硬件組態(tài)
由于WinAC的站組態(tài)信息不能直接下載到Step7中,因此須手工在Step7中完成硬件組態(tài),并且硬件組態(tài)信息必須和PC站組態(tài)編輯器中的信息保持一致。WinAC硬件組態(tài)方法與傳統(tǒng)的SIMATIC S7 PLC組態(tài)方法很相似,共用STEP 7集成式編程環(huán)境。在STEP 7編程軟件的菜單中單擊“Options”→“Configure Network”,進入網(wǎng)絡(luò)組態(tài)“NetPro”窗口,在虛擬的硬件插槽位置按實際硬件板卡位置分別插入三塊CP5613卡,界面會自動出現(xiàn)三條Profibus總線,然后在總線下分別按照實際控制器配置分別插入6RA70直流調(diào)速裝置、S7-200PLC通信模塊EM277、LENZE伺服驅(qū)動器通信模塊2133、ELTRA編碼器。需要注意的是,STEP 7軟件內(nèi)主要集成西門子自己廠家的設(shè)備,對于LENZE驅(qū)動器和ELTRA編碼器,需從廠家官網(wǎng)下載GSD文件導入到STEP 7中,STEP 7中才會出現(xiàn)該設(shè)備的圖標。配置完后的組態(tài)圖形如圖4所示。組態(tài)完成后下載到CPU中。
圖4 WinAC組態(tài)圖
2.3.4 通信編程
硬件組態(tài)完成后,WinAC與下位機之間的數(shù)據(jù)交換可以在STEP 7集成環(huán)境中調(diào)用通信類的系統(tǒng)功能塊來實現(xiàn)??墒褂肂SEND(SFB 12)、BRCV(SFB 13)、USEND(SFB 8)、URCV(SFB 9)、GET(SFB 14)、PUT(SFB 15)。
為便于通信數(shù)據(jù)的集中管理,可在WinAC的DB數(shù)據(jù)塊中規(guī)劃好與各個下位機的控制字和狀態(tài)字區(qū)間,然后在循環(huán)程序塊中調(diào)用數(shù)據(jù)讀寫模塊,引用DB地址進行集中讀寫操作??砂磾?shù)據(jù)的重要程度在不同循環(huán)周期的程序塊中進行讀寫操作,以實現(xiàn)重要數(shù)據(jù)和普通數(shù)據(jù)的差別化刷新。
以讀取直流調(diào)速主驅(qū)動裝置6RA70為例,在中斷循環(huán)OB37程序塊中梯形圖編程如圖5所示。
圖5 通信程序梯形圖
所用系統(tǒng)功能塊為GET(標識符“DPRD_DAT”)和PUT(標識符“DPWR_DAT”):
DPRD_DAT功能塊的功能為讀取6RA70裝置的數(shù)據(jù),將收到的6RA70裝置的狀態(tài)字12個字節(jié)存放在數(shù)據(jù)塊DB1起始地址為0的連續(xù)空間;DPWR_DAT功能塊的功能為發(fā)送指令給6RA70裝置,將存放在數(shù)據(jù)塊DB1起始地址為168的連續(xù)12個字節(jié)的控制字發(fā)送給6RA70裝置。
VB與WinAC之間的通信采用OPC客戶端/服務(wù)器方式,由于處于同一臺PC機中,屬于進程間通信,其通信時滯可以忽略。SIMATIC NET提供一個工具OPC Scout, 它是一個簡單的SIMATIC OPC客戶端工具軟件,可瀏覽存在的SIMATIC OPC服務(wù)器名稱、添加OPC組、添加項、監(jiān)控項值等功能。
首先在VB的菜單“工程”→“部件”窗口中添加名稱為“SMIATIC NET OPC DATA”控件。然后在VB的窗體上添加一個DatCon對象DatCon1。打開DatCon1的屬性設(shè)置窗口,選擇“OPC Server”選項卡,Server編輯框中輸入OPC服務(wù)器名稱“OPC.SimaticNet”, 在Node編輯框中輸入計算機名(與前述站組態(tài)時的計算機名稱一致)。之后即可在VB的代碼中以函數(shù)的方式讀寫WinAC的數(shù)據(jù)。讀寫數(shù)據(jù)代碼為:DatCon1.ReadVariable("s7:[s7 connection_1]DB1,int0,84", v1, q1, time1)表示讀取DB1數(shù)據(jù)塊從地址0開始的84個整數(shù)值作為狀態(tài)字;DatCon1.WriteVariable("s7:[s7 connection_1]DB1,int168,84", Send)表示將控制字發(fā)送給DB1數(shù)據(jù)塊從地址168開始的84個整數(shù)值存儲區(qū)間。
2.3.5 人機界面設(shè)計
軟件人機交互主界面如圖6所示。界面右側(cè)為狀態(tài)監(jiān)視區(qū),右上部以指示燈圖形直觀顯示X航車、Y航車、轉(zhuǎn)臺的主要驅(qū)動控制設(shè)備的通信狀態(tài)、故障報警狀態(tài)。正常工況時報警指示燈隱藏,異常工況時會顯示報警或故障指示燈,點擊報警或故障指示燈會有進一步的故障代碼及解決措施建議的指示。右下部以文本方式顯示與地面計算機之間的收發(fā)信息。界面下部為操作區(qū),以選項卡方式分別布置三個自由度的獨立操作區(qū)以及聯(lián)動操作區(qū)。每個自由度的操控又分成“PC機”、“操縱桿”、“外部給定”三種操控方式。界面左上部為航車位置監(jiān)控組態(tài)區(qū)域,深色區(qū)域為水池。中間圓圈圖標代表Y航車,其在坐標上的位置可直觀顯示Y航車在整個水池平面位置,箭頭方向代表Y航車上的轉(zhuǎn)臺角度,也是船模艏向角度。組態(tài)區(qū)域下部的橫向標尺代表X坐標,左部的豎向標尺代表Y坐標,“限位開關(guān)”指示安裝在軌道上的行程開關(guān)位置,在每個軌道兩端設(shè)置了多個行程限位開關(guān),用于航車以不同速度行駛時既保證足夠的制動安全距離,又盡量延長工作段?!败浖尬稽c”用于控制航車自動停車,其位置可調(diào)整,鼠標雙擊后可在彈出的設(shè)置對話框中輸入“軟件限位點”的坐標位置。
圖6 軟件人機交互主界面
系統(tǒng)軟硬件集成安裝完畢后,首先進行系統(tǒng)通信調(diào)試,通信周期從低往高逐步調(diào)試,實測結(jié)果表明,上位機與10臺下位機可實現(xiàn)可靠交換的最小通信周期為2 ms,再往小調(diào)時通信出現(xiàn)了不穩(wěn)定的現(xiàn)象。分析發(fā)現(xiàn)主要原因為PC機本身的處理能力已到極限,CPU使用率已接近100%。在通信網(wǎng)絡(luò)調(diào)試完畢后再分別對X車、Y車、轉(zhuǎn)臺獨立調(diào)試,滿足單自由度的運動控制指標后再進行三個自由度的聯(lián)合運動調(diào)試。聯(lián)合運動最高的技術(shù)要求指標為轉(zhuǎn)臺攜帶模型的狀態(tài)下做直徑6 m,切向速度1 m/s的圓周運動時,位置誤差須不大于±2%,角度誤差須不大于±0.5°。圓周運動是X車與Y車分別做相位相差90°的正弦運動的合成,由于X車和Y車的慣量差距較大,在設(shè)定為90°相位的情況下,其實際相位有一定的偏差,在調(diào)試時需測出其相位差值,然后在給定量中以負反饋方式予以修正。通過進行不同直徑和切向速度的圓周運動實驗,發(fā)現(xiàn)X車和Y車的正弦運動相位差的理論值和實際值之間的偏差量基本固定,說明X車和Y車各自的機械傳動系數(shù)穩(wěn)定,因此在控制給定中,以固定的相位差值修正量以負反饋方式疊加在Y車的正弦運動速度給定中。但X車和Y車的正弦運動幅值差修正值在做不同直徑和切向速度的圓周運動時差別較大,不能采取固定值,所以設(shè)置在軟件界面上可以隨時修正。經(jīng)1-2次調(diào)整后,實際圓周軌跡即可收斂至可接受圓度。實測結(jié)果顯示,五次連續(xù)圓周運動(直徑6 m,切向速度1 m/s)的位置精度及角度精度均滿足指標要求,且圓心重合度非常好。
本系統(tǒng)設(shè)計基于WinAC及Profibus以組態(tài)式編程的方式實現(xiàn)了PC機與多臺下位機的可靠實時高速通信,據(jù)實測,上位機與10臺下位機可實現(xiàn)2 ms周期的可靠實時數(shù)據(jù)交換。利用Ardence RTX實時控制核心,可在保持Windows操作系統(tǒng)強大軟件兼容性能的基礎(chǔ)上實現(xiàn)過程控制數(shù)據(jù)的實時通信?;诟咚偾覍崟r的數(shù)據(jù)通信,實現(xiàn)了對X航車、Y航車及轉(zhuǎn)臺的精確控制,聯(lián)合調(diào)試結(jié)果表明,該航車在圓周運動(畫圓)驗收試驗中,重復性非常好,圓度及圓心重合度都圓滿達到了預定設(shè)計目標,交付國內(nèi)某重點實驗室后運行穩(wěn)定可靠。該工程設(shè)計方法對類似需要將PC機性能與PLC性能無縫結(jié)合以實現(xiàn)高刷新頻率通信的控制系統(tǒng)設(shè)計有較強的借鑒作用。