PAC在某動(dòng)力系統訓練模擬器中的應用

發(fā)布時(shí)間:2010-8-10 14:37    發(fā)布者:lavida
關(guān)鍵詞: PAC , 系統訓練
0 引言  

上世紀九十年代以來(lái),由于計算機技術(shù)、自動(dòng)控制技術(shù)和仿真技術(shù)的飛速發(fā)展,訓練模擬器在各個(gè)領(lǐng)域特別是航海、航天、軍事領(lǐng)域得到了廣泛的應用并取得了很好的應用成果。動(dòng)力系統是艦艇的重要系統之一,其操作人員的操作水平對艦艇能否遂行各項戰斗任務(wù)影響重大。因此,動(dòng)力系統訓練模擬器在我國海軍已得到較廣泛應用。這些訓練模擬器大都采用半實(shí)物仿真的模式,模擬器在設備外觀(guān)上與被仿真設備完全一致,但其內部為計算機控制,并沒(méi)有真實(shí)設備。這種訓練模式的優(yōu)點(diǎn)是學(xué)員的操作手感與被仿真設備完全一致,學(xué)員完成訓練后完全可以達到操作實(shí)際裝備所需的操作技能,能顯著(zhù)提高軍事訓練的質(zhì)量與速度。  

半實(shí)物仿真設備面板上有各類(lèi)操作與顯示部件,必須用數據采集設備采集操作人員操作開(kāi)關(guān)等部件產(chǎn)生的數據,同時(shí)還要驅動(dòng)指示燈、儀表等顯示部件將計算結果進(jìn)行輸出。因此,設計一套可靠工作的數據采集與控制系統是研制半實(shí)物訓練模擬器的關(guān)鍵技術(shù)之一。  

1 系統概述  

動(dòng)力系統設備多而且關(guān)系復雜,筆者開(kāi)發(fā)的模擬器包括37 臺模擬設備,合計開(kāi)關(guān)量輸入點(diǎn)733 個(gè),開(kāi)關(guān)量輸出點(diǎn)1115 個(gè),模擬量輸入點(diǎn)19 個(gè),模擬量輸出點(diǎn)149 個(gè)。系統的核心是仿真服務(wù)器(該服務(wù)器同時(shí)作為模擬器的教練員臺)。服務(wù)器上運行SimuEngine 仿真引擎,系統中所有的數學(xué)模型都由仿真引擎調度。I/O 設備采集半實(shí)物設備上的操作,由通信程序將操作數據通過(guò)以太網(wǎng)上傳至服務(wù)器上的實(shí)時(shí)數據庫,服務(wù)器根據實(shí)時(shí)數據庫對數學(xué)模型進(jìn)行計算,計算結果也寫(xiě)入實(shí)時(shí)數據庫。通信程序將最新計算結果發(fā)送給I/O 設備,I/O 設備驅動(dòng)相應的指示燈或儀表進(jìn)行顯示。系統總體結構如圖1 所示。  

2 設備選型  

接口系統的設計有四種方案可供選擇:  

(1)基于某種型號的微處理器或單片機設計專(zhuān)用的接口硬件。該方案的優(yōu)點(diǎn)是成本低,但設計周期長(cháng),可靠性難以保證,且開(kāi)發(fā)調試困難。  

(2) 采用工業(yè)控制計算機以及配套的硬件接口。該方案的優(yōu)點(diǎn)是成本較低,選型方便快捷、開(kāi)發(fā)調試方便。但由于這種接口系統依賴(lài)于WINDOWS 操作系統運行,可靠性不高。  



  


圖 1 系統總體結構  

(3)采用可編程序控制器PLC 作為接口。該方案的優(yōu)點(diǎn)是可靠性高、開(kāi)發(fā)調試方便、模塊化結構、易于維護;缺點(diǎn)是成本高,而且傳統的中低端PLC 沒(méi)有以太網(wǎng)接口,不易構成較為復雜的網(wǎng)絡(luò )系統,最新推出的帶以太網(wǎng)接口的PLC 價(jià)格昂貴。  

(4)采用可編程自動(dòng)化控制器PAC(Programmable Automation Controller)。PAC 結合了PC 的處理器、RAM 和軟件的優(yōu)勢,以及PLC 固有的可靠性和分布特性,是近年來(lái)在工控領(lǐng)域出現的新型控制器。 PAC 與傳統PLC 的性能比較見(jiàn)表1。  



  


表 1 PAC 與傳統PLC 的性能比較  

PAC 產(chǎn)品型號眾多,經(jīng)過(guò)多方比較,選擇了ADAM5510-E/TCP。它采用模塊化結構,其CPU 模塊包括80188CPU、256KB FLASH ROM、256KB SRAM 和三個(gè)串行通訊口與一個(gè)10/100M 以太網(wǎng)接口。其底板有8 個(gè)擴展槽,可以安裝不同類(lèi)型的I/O 模塊。系統內置ROM-DOS,與MS-DOS 操作系統兼容,提供了除BIOS 之外的基本MS-DOS 功能調用,允許運行用C 或C++等高級語(yǔ)言編譯的應用程序。與PLC 相比,5510 運算能力和通訊能力更強,模擬量點(diǎn)價(jià)位低。與工控機相比,5510 系統更加緊湊,抗干擾能力更強,因此適合做模擬器的I/O 設備。  

本系統*選擇了四種 I/O 模塊:16 通道隔離數字量輸出模塊ADAM5056S、16 通道隔離數字量輸入模塊ADAM5051S、4 通道模擬量輸出模塊ADAM5024、8 通道高速模擬量輸入模塊ADAM5017H 等。另外,在某些操作臺上有數碼管顯示器件。由于數碼管的位數較多,為了節約輸出模塊,不宜用5056 的輸出口直接驅動(dòng)數碼管的各段,因此選用了MAX7219 作為數碼管的驅動(dòng)芯片。通常,使用單片機等微控制器通過(guò)7219 的DIN、CS 和CLK 三根信號線(xiàn)控制它進(jìn)行數碼管的顯示。該項目中由5056 的三個(gè)輸出口模擬微控制器的三個(gè)口線(xiàn)對7219 進(jìn)行控制。  

3 程序設計  

5510 沒(méi)有顯示界面,首先在PC 機上編寫(xiě)應用程序,編譯好之后再下載到5510 內。5510采用了DOS 類(lèi)操作系統,不支持多線(xiàn)程編程,每臺5510 的程序隨I/O 模塊配置不同略有不同,但程序的總體流程均如圖2 所示。  



  


圖2 程序總體流程  

3.1 初始化子程序  

(1)啟動(dòng)看門(mén)狗。系統由于某種原因陷入死循環(huán)后能自動(dòng)退出,使系統恢復正常。  

(2)初始化5024、5017。該兩種模擬量模塊在使用之前需要通過(guò)軟件進(jìn)行設置。其中5024 設置為4"20mA 電流輸出,5017 設置為0"10V 輸入。  

(3)啟動(dòng)網(wǎng)絡(luò )心跳包檢測定時(shí)器。網(wǎng)絡(luò )心跳包用于確認網(wǎng)絡(luò )連接是否正常。  

3.2 網(wǎng)絡(luò )連接子程序  

控制器首先建立 socket,然后與服務(wù)器連接。網(wǎng)絡(luò )連接子程序的主要部分為:  

void ConnectServer()  

{ //首先進(jìn)行相關(guān)變量定義  

if((SO_5510=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==  

INVALID_SOCKET) //建立socket 并設置為T(mén)CP 方式  

{//未能建立socket 的處理}  

pulArgp = 1;  

if(ioctlsocket(SO_5510, FIONBIO, &pulArgp)) //將socket 設置為非阻塞模式  

{//未能設置socket 的處理}  

he=gethostbyname("172.18.55.1"); //server address  

Server_addr.sin_family = AF_INET; //TCP/IP  

Server_addr.sin_port = htons(Server_Port);  

Server_addr.sin_addr =*((struct in_addr *)he->h_addr);  

memset(&(Server_addr.sin_zero), 0, 8);  

ConnectReturnFlag = connect(SO_5510, (struct sockaddr *)&Server_addr,sizeof(struct  

sockaddr));//建立連接  

if( ConnectReturnFlag == 0)  

{//建立連接成功的相應處理}  

else  

{//建立連接失敗的相應處理}  

}  

3.3 接收數并處理子程序  

5510 接收到數據包后首先分析數據包內的命令字。本系統中設計的命令字有開(kāi)始采集、停止采集、檢查連接、有效數據等。如果是前三種命令則立即執行,如果是“有效數據”命令則打開(kāi)數據包后面的內容(可能包含多個(gè)子包),子包內包含開(kāi)關(guān)量、模擬量等若干子命令,程序根據不同子命令執行相應子程序。程序主體示意如下。  

void ReceiveAndProcess()  

{ if ((numbytes = recv(SO_5510, (char *)&RECVITEMS, sizeof(RECVITEMS), 0))==  

SOCKET_ERROR)  

{//沒(méi)有接收到數據的處理}  

if(numbytes>0)//收到數據后的處理  

{ switch(RECVITEMS.Command) //判斷命令字  

{ case Scollectstart: //開(kāi)始采集命令  

SendCommand(CReplyCollectStart);//表示收到開(kāi)始采集命令  

break;  

case Ssendgroupdata: //有效數據指令  

{ for(CircleNum=0;CircleNum
{ switch (RECVITEMS.Items[CircleNum].Command) //判斷子命令  

{ case SsendoneDOdata: //server 發(fā)送的開(kāi)關(guān)量單字節指令  

WriteOneDOChannel(RECVITEMS.Items[CircleNum]);  

break;  

case SsendoneAOdata: //server 發(fā)送的模擬量單字節指令  

WriteOneAOChannel(RECVITEMS.Items[CircleNum]);  

break;  

default: break;  

} } }  

default: break;  

} } }  

3.3 數據采集發(fā)送子程序  

為了降低網(wǎng)絡(luò )傳輸的數據量,PAC 控制器只向服務(wù)器發(fā)送狀態(tài)發(fā)生變化的數據,而狀態(tài)沒(méi)有發(fā)生變化的數據則不發(fā)送。同樣,服務(wù)器通信程序SimuTrans 只向PAC 控制器發(fā)送模型計算后發(fā)生變化的數據。  

為了保證數據不會(huì )丟失,針對不同種類(lèi)的數據采用了不同的發(fā)送、回送方式。在該模擬器中,輸入的模擬量為艇員操作面板上的旋鈕時(shí)帶動(dòng)內部的電位器產(chǎn)生0"10V 的模擬電壓信號,由于其操作是連續過(guò)程,操作過(guò)程會(huì )產(chǎn)生一系列變化數據,因此5017H 采集到的變化數據直接發(fā)送到服務(wù)器即可。對于操作按鈕、多位開(kāi)關(guān)等部件產(chǎn)生的開(kāi)關(guān)量數據,為了避免數據丟失采用了重復發(fā)送,并且服務(wù)器收到數據后要做應答,確保了數據傳輸的可靠性。  

4 結論  

該模擬器2007 年9 月通過(guò)了驗收、鑒定。在動(dòng)力系統管理人員及在校學(xué)員的學(xué)習與訓練過(guò)程中發(fā)揮了重要作用,獲得了良好的軍事和經(jīng)濟效益。該半實(shí)物仿真訓練模擬器的成功研制實(shí)踐說(shuō)明,將新型PAC 控制器應用于模擬器代替傳統的工控機或PLC 不僅能縮短開(kāi)發(fā)周期、使系統運行穩定可靠,而且系統開(kāi)放性好,可以方便地與其他系統的模擬器連接組成更大規模的模擬器進(jìn)行訓練,是模擬器研制的一種新思路。
本文地址:http://selenalain.com/thread-20609-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页