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