国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種飛行測(cè)試遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)

2013-11-27 02:15范蟠果胡逸雪
機(jī)械與電子 2013年11期
關(guān)鍵詞:工控機(jī)線程上位

范蟠果,胡逸雪

(西北工業(yè)大學(xué)自動(dòng)化學(xué)院,陜西 西安710129)

0 引言

飛機(jī)在試飛過程中,需要采集物理數(shù)據(jù)并監(jiān)控測(cè)試設(shè)備。同時(shí)由于試飛存在一定風(fēng)險(xiǎn)性,測(cè)試系統(tǒng)要減少操作人員,提高自動(dòng)化水平[1]。如測(cè)試飛機(jī)的操縱性和穩(wěn)定性的重心調(diào)控系統(tǒng);為測(cè)試機(jī)載雷達(dá)裝機(jī)性能的雷達(dá)液冷系統(tǒng)。這些測(cè)試系統(tǒng)要控制泵的通斷,閥門開啟角度;同時(shí)要采集流量、壓力、溫度信號(hào)以及測(cè)試系統(tǒng)的電流值等作為遠(yuǎn)程監(jiān)控計(jì)算機(jī)的數(shù)據(jù)源。而傳統(tǒng)的通信方式速度慢,硬件連接模式單一,不利于分布式監(jiān)控的需要。遠(yuǎn)程監(jiān)控系統(tǒng)使用基于TCP/IP協(xié)議的以太網(wǎng)傳輸模式,以PAC作為下位機(jī)和客戶端,通過以太網(wǎng)交換機(jī)與遠(yuǎn)程計(jì)算機(jī)實(shí)現(xiàn)TCP/IP協(xié)議的通信,實(shí)現(xiàn)分布式監(jiān)控。

1 PAC與以太網(wǎng)交換機(jī)

PAC(可編程自動(dòng)化控制器)同時(shí)具有PC處理器、內(nèi)存和軟件的優(yōu)勢(shì)和PLC堅(jiān)固性和分布特性。系統(tǒng)選用泓格公司的WP-8837 PAC控制器,該型使用 WindowsCE 5.0操作系統(tǒng),ISaGRAF作為開發(fā)軟件,可以與HMI整合,支持TCP/IP協(xié)議,具備I/O模塊熱插拔能力與8個(gè)擴(kuò)展插槽。

以太網(wǎng)交換機(jī)的結(jié)構(gòu)是每個(gè)端口都直接與主機(jī)相連,并且一般都工作在全雙工方式。交換機(jī)能同時(shí)連通許多對(duì)端口,使每一對(duì)相互通信的主機(jī)都能像獨(dú)占通信媒體那樣,進(jìn)行無沖突地傳輸數(shù)據(jù)。選用MOXA公司的EDS308,有8個(gè)端口數(shù)量,支持IEEE 802.3,802.3u和802.3x的網(wǎng)絡(luò)標(biāo)準(zhǔn)。

2 系統(tǒng)概述

分布式數(shù)據(jù)監(jiān)控系統(tǒng)由工控設(shè)備PAC及其模塊、現(xiàn)場(chǎng)監(jiān)控HMI、以太網(wǎng)交換機(jī)和遠(yuǎn)程監(jiān)控計(jì)算機(jī)組成,如圖1所示。

圖1 系統(tǒng)硬件結(jié)構(gòu)

PAC的擴(kuò)展模塊作為系統(tǒng)控制信號(hào)輸出和測(cè)量信號(hào)輸入設(shè)備。其中,計(jì)數(shù)模塊I-8084W的采樣頻率為250 k Hz,用來接收管道流量計(jì)的計(jì)數(shù)脈沖。數(shù)字輸入/輸出模塊I-8042 W在輸入端采集罐組的液位開關(guān)信號(hào)和泵工作開關(guān)信號(hào);輸出端控制繼電器通斷,再由繼電器控制交、直流泵的開啟與關(guān)斷。同時(shí)在檢測(cè)到系統(tǒng)電流過大時(shí)關(guān)斷接觸器,保護(hù)監(jiān)控系統(tǒng)電路。模擬量輸入模塊I9017-H的輸入信號(hào)有3種:壓力傳感器輸出0~5 V電壓信號(hào);溫度傳感器輸入4~20 m A電流信號(hào);電流傳感器輸出0~5 V電壓信號(hào)。12位模擬量輸出模塊I-87024CW輸出4~20 m A的電流信號(hào)控制活門開啟角度進(jìn)而控制管路流量。

PAC的主CPU模塊作為下位機(jī),主要任務(wù)有:

a.收集還原I/O模塊的數(shù)據(jù)。如將A/D轉(zhuǎn)換后的數(shù)字量轉(zhuǎn)換為質(zhì)量、壓力、角度或電流等具體物理值,同時(shí)記錄獲得該數(shù)據(jù)的時(shí)間。

b.執(zhí)行具體的自動(dòng)調(diào)節(jié)規(guī)律,同時(shí)預(yù)留手動(dòng)控制功能,作為獲得權(quán)限后測(cè)試人員通過HMI進(jìn)行人工控制的途徑。

c.與上位機(jī)和HMI進(jìn)行通信。HMI通過485總線與PAC通信,HMI的界面由泓格自行開發(fā)的HMI設(shè)計(jì)工具elogger編寫。除了更好兼容PAC硬件外,elogger也支持工控開發(fā)軟件ISaGRAF,有利于降低編程難度。執(zhí)行任務(wù)不同,HMI的界面也不同,執(zhí)行液冷控制任務(wù)的HMI界面如圖2所示。

圖2 液冷控制H MI界面

PAC經(jīng)以太網(wǎng)交換機(jī)與作為遠(yuǎn)程監(jiān)控上位機(jī)的工控機(jī)進(jìn)行TCP/IP通信。工控機(jī)主要匯總各PAC采集的物理數(shù)據(jù)信息并記錄,在需要時(shí)調(diào)用并分析,如電流波動(dòng)。同時(shí)工控機(jī)也負(fù)責(zé)HMI界面操作權(quán)限的管理,以及PAC調(diào)節(jié)動(dòng)作的記錄,保證試飛結(jié)束后有測(cè)試設(shè)備的詳細(xì)資料查詢。

3 TCP/IP通信

工控機(jī)與PAC之間采用TCP/IP協(xié)議進(jìn)行通信。TCP/IP是一種面向連接的可靠的網(wǎng)絡(luò)通信協(xié)議,通信的雙方工作在服務(wù)器/客戶端(C/S)模型下[2]。TCP/IP協(xié)議是通過“三次握手”實(shí)現(xiàn)的,相較于另一種應(yīng)用較為廣泛的網(wǎng)絡(luò)協(xié)議UDP,TCP協(xié)議傳輸效率低但可靠性高,由于系統(tǒng)上位機(jī)不負(fù)責(zé)具體調(diào)節(jié)過程,故選用TCP/IP協(xié)議。

工控機(jī)作為服務(wù)器端,各PAC作為客戶端,服務(wù)器為每個(gè)客戶端開放一個(gè)大于1 000整數(shù)作為端口號(hào)(小于1 000的端口可能被操作系統(tǒng)占用),客戶端尋找該端口與服務(wù)器完成連接。因?yàn)門CP/IP為全雙工通信協(xié)議,在PAC向工控機(jī)傳輸數(shù)據(jù)同時(shí),工控機(jī)也可以向PAC發(fā)送指令。發(fā)送和接收的數(shù)據(jù)按照表1格式進(jìn)行封裝。

表1 數(shù)據(jù)封裝格式

收發(fā)信息時(shí),發(fā)送與接收方都首先檢驗(yàn)數(shù)據(jù)長(zhǎng)度以保證通信數(shù)據(jù)的完整性。

數(shù)據(jù)類型使接收方識(shí)別數(shù)據(jù)的屬性[3]。在系統(tǒng)PAC發(fā)送的數(shù)據(jù)包中,1A00H代表1號(hào)管路累計(jì)流量,0031H代表3號(hào)泵當(dāng)前狀態(tài)等。工控機(jī)的數(shù)據(jù)類型包括管理該P(yáng)AC手動(dòng)操作泵與閥門的權(quán)限,以及規(guī)定PAC傳輸?shù)臄?shù)據(jù)類型等。

數(shù)據(jù)內(nèi)容的長(zhǎng)度因數(shù)據(jù)類型而異。類型是泵的開關(guān)狀態(tài)或權(quán)限時(shí)為1B,是記錄時(shí)間時(shí)為2B等。

和校驗(yàn)在發(fā)現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤時(shí)可以要求發(fā)送方重發(fā)數(shù)據(jù)。

通信雙方數(shù)據(jù)封裝及解封過程如圖3所示。

圖3 通信流程

4 上位機(jī)軟件設(shè)計(jì)

上位機(jī)程序以Lab Windows/CVI作為開發(fā)平臺(tái),該軟件是NI公司推出的面向測(cè)控領(lǐng)域的開發(fā)軟件,具有集成化開發(fā)平臺(tái),交互式編程方法,豐富的控件和庫函數(shù)[4]。

傳統(tǒng)的Socket庫開發(fā)TCP網(wǎng)絡(luò)程序需要?jiǎng)?chuàng)建一個(gè)Socket并聲明使用TCP協(xié)議,初始化地址、端口并綁定Socket,收發(fā)數(shù)據(jù),關(guān)閉網(wǎng)絡(luò)連接。CVI將其封裝為幾個(gè)函數(shù),通過調(diào)用函數(shù)實(shí)現(xiàn)該過程[5]。TCP的數(shù)據(jù)接收與工控機(jī)處理流程如圖4所示。

圖4 上位機(jī)數(shù)據(jù)傳輸與處理流程

首先使用Get TCPHost Addr函數(shù)獲知服務(wù)器IP,調(diào) 用 Register TCPServer(port Num,-Server TCPCB,0)函數(shù)注冊(cè)為服務(wù)器端。port Num表示占用的端口;Server TCPCB為端口port Num對(duì)應(yīng)的服務(wù)器函數(shù)名,它包含了客戶端連接、斷開和發(fā)送數(shù)據(jù)后的相應(yīng)處理。Server TCPCB函數(shù)片段如下:

int CVICALLBACK Server TCPCB(unsigned handle,int event,int error,void*callbackdata)

……

switch(event)

case TCP_CONNECT:

hconversation=handle;/*獲取句柄*/

Get TCPPeer Addr (hconversation,addr Buf,31);/*獲取對(duì)方IP*/

Status1=1;

Set TCPDisconnect Mode(hconversation,TCP_DISCONNECT_AUTO);/*自動(dòng)斷開連接*/

……

break;

case TCP_DATAREADY:/*讀取數(shù)據(jù)*/

do

dataSize= Server TCPRead(hconversation,&receiveBuf[mSize],dataSize,1000);

mSize+=dataSize;

byte ToRead=buffer[0];

while(mSize<byte ToRead)

……

break;

case TCP_DISCONNECT:

if(handle==hconversation);

hconversation=0;

Status1=0;

……

break;

return 0;

TCP_CONNECT,TCP_DATAREADY 與TCP_DISCONNECT分別為為端口連接時(shí)、獲取數(shù)據(jù)和斷開連接時(shí)的操作,變量hconversation為服務(wù)器連接句柄,Server TCPRead為服務(wù)器讀取客戶端發(fā)送數(shù)據(jù)的函數(shù)。由于以太網(wǎng)讀寫并非一次完成,故每次讀數(shù)據(jù)都將本次數(shù)據(jù)長(zhǎng)度dataSize累加到mSize并與byteToRead作比較,直到數(shù)據(jù)接收完全。

需要注意的是當(dāng)客戶端連接成功時(shí)給參數(shù)Status1賦值1,此處上位機(jī)執(zhí)行處理客戶端1(即1號(hào)PAC)發(fā)送信息的線程程序,而當(dāng)客戶端斷開連接Status1的值為0時(shí),不執(zhí)行該線程。數(shù)據(jù)處理線程片段如下:

int CVICALLBACK Client1(void*function-Data);

int main(int argc,char*argv[])

int Thread1;

……

CmtSchedule ThreadPool Function (DEFAULT_THREAD_POOL_HANDLE,Client1,NULL,&Thread1);//創(chuàng)造線程函數(shù)

Cmt Wait For Thread Pool FunctionCompletion(DEFAULT_THREAD_POOL_HANDLE,Thread1,0);//等待線程執(zhí)行

Cmt Release ThreadPoolFunctionID (DEFAULT_THREAD_POOL_HANDLE,F(xiàn)unction-ID);//釋放線程

return 0;

int CVICALLBACK Client1(void*function-Data)//線程函數(shù)

while(Status1){

……

return 0;

5 結(jié)束語

系統(tǒng)采用以太網(wǎng)通信代替?zhèn)鹘y(tǒng)的串口通信,通過以太網(wǎng)交換機(jī),實(shí)現(xiàn)對(duì)多個(gè)子任務(wù)系統(tǒng)同時(shí)監(jiān)控的目的。利用PAC作為客戶端與下位機(jī)系統(tǒng),在完成調(diào)節(jié)任務(wù)與現(xiàn)場(chǎng)操作的同時(shí),兼顧TCP/IP協(xié)議的數(shù)據(jù)傳輸,實(shí)現(xiàn)通信的穩(wěn)定性[6]。在上位機(jī)使用多個(gè)客戶端口數(shù)據(jù)同時(shí)接收處理的多線程功能,滿足了系統(tǒng)的高效性。系統(tǒng)在飛機(jī)試飛中得到應(yīng)用,目前運(yùn)行穩(wěn)定、良好。

[1] 凌 晨,吳成富,吳佳楠.基于以太網(wǎng)的多通道數(shù)據(jù)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(4):851-853.

[2] Richard Stevens W.TCP/IP詳解(卷1:協(xié)議)[M].范建華,等譯.北京:機(jī)械工業(yè)出版社,2001.

[3] 袁繼敏,李小玲,古天祥.網(wǎng)絡(luò)化數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].燃?xì)鉁u輪試驗(yàn)與研究,2003,16(1):41-44,56.

[4] 范蟠果,陳 雪.基于Connect ME的油田遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].測(cè)控技術(shù),2011,30(12):41-48.

[5] 史君成,張淑偉,律淑珍.LabWindows虛擬儀器設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2010.

[6] 泓格公司.泓格PAC產(chǎn)品數(shù)據(jù)手冊(cè)[Z].深圳,2011.

猜你喜歡
工控機(jī)線程上位
定制工控機(jī)在老舊線路計(jì)算機(jī)聯(lián)鎖設(shè)備中的應(yīng)用
中壓電子束焊工控機(jī)Windows NT系統(tǒng)文件丟失故障的修復(fù)方法
特斯拉 風(fēng)云之老阿姨上位
淺談linux多線程協(xié)作
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測(cè)管理系統(tǒng)
以新思路促推現(xiàn)代農(nóng)業(yè)上位
線程池技術(shù)在B/S網(wǎng)絡(luò)管理軟件架構(gòu)中的應(yīng)用
中國(guó)工控機(jī)市場(chǎng)新Style
新漢 前插拔CoreTM-i系列無風(fēng)扇工控機(jī)