《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 以太網(wǎng)技術(shù)在繼電器可靠性檢測系統(tǒng)中的應(yīng)用
以太網(wǎng)技術(shù)在繼電器可靠性檢測系統(tǒng)中的應(yīng)用
儀器儀表學(xué)報
楊彬 李志剛 馮勇 王雙存
摘要:   近些年來,,以太網(wǎng)通信速率的提高及交換式以太網(wǎng)技術(shù)的出現(xiàn),,使得以太網(wǎng)的通信性能大為改善,原來阻礙以太網(wǎng)進(jìn)入工業(yè)控制領(lǐng)域的不確定性等問題基本得到解決,,以太網(wǎng)開始從不同的途徑進(jìn)入到工業(yè)自動化和過程檢測等領(lǐng)域,,很多組織和廠家開始開發(fā)基于以太網(wǎng)的監(jiān)控系統(tǒng),。   本文所提出的繼電器可靠性檢測系統(tǒng)由服務(wù)器和多臺可靠性檢測裝置(客戶端)組成,可靠性檢測裝置是進(jìn)行可靠性試驗的必要手段,。服務(wù)器和可靠性檢測裝置通過調(diào)用TCP協(xié)議提供的套接字傳送數(shù)據(jù),,實現(xiàn)了服務(wù)器對多臺檢測裝置的實時集中檢測和控制,在節(jié)省人力的同時有利于失效試驗數(shù)據(jù)的分析和處理,。
Abstract:
Key words :

  1,、引言

  近些年來,以太網(wǎng)" title="以太網(wǎng)">以太網(wǎng)通信" title="通信">通信速率的提高及交換式以太網(wǎng)技術(shù)的出現(xiàn),,使得以太網(wǎng)的通信性能大為改善,,原來阻礙以太網(wǎng)進(jìn)入工業(yè)控制領(lǐng)域的不確定性等問題基本得到解決,以太網(wǎng)開始從不同的途徑進(jìn)入到工業(yè)自動化和過程檢測等領(lǐng)域,,很多組織和廠家開始開發(fā)基于以太網(wǎng)的監(jiān)控系統(tǒng)[1],。

  本文所提出的繼電器" title="繼電器">繼電器可靠性檢測系統(tǒng)由服務(wù)器和多臺可靠性檢測裝置(客戶端)組成,可靠性檢測裝置是進(jìn)行可靠性試驗的必要手段,。服務(wù)器和可靠性檢測裝置通過調(diào)用TCP協(xié)議提供的套接字" title="套接字">套接字傳送數(shù)據(jù),,實現(xiàn)了服務(wù)器對多臺檢測裝置的實時集中檢測和控制,在節(jié)省人力的同時有利于失效試驗數(shù)據(jù)的分析和處理,。

  2,、可靠性檢測裝置的實現(xiàn)方法和功能

  檢測裝置主要完成繼電器試品的定數(shù)截尾試驗,,記錄失效信息,對檢測結(jié)果進(jìn)行分析[2],。通過與服務(wù)器建立連接,,實時上傳當(dāng)前試驗狀態(tài)以及失效信息,并接收服務(wù)器的控制命令,。

  2.1 實現(xiàn)方法

  為了滿足試驗環(huán)境的需要,,采用工業(yè)控制計算機作為檢測裝置的核心。對觸點電壓的采集則選用兩塊高性能數(shù)據(jù)采集卡來實現(xiàn),,可同時對兩組共32對觸點進(jìn)行檢測,,兩組試品可以是不同型號不同廠商的繼電器,而且對檢測觸點的常開常閉不做限制,。需要注意的是,,當(dāng)觸點電壓為交流信號時,為了保證電壓有效值的計算精度,,采集卡在一個工頻周期內(nèi)要完成16個采集通道至少320次的AD轉(zhuǎn)換,,這就要求采集卡的采集速率非常快,,本裝置采用的是研華的PCL-818HG,。每塊采集卡還提供了一個20-PIN數(shù)字輸出口,用來控制試品線圈回路的通斷電。試品觸點回路采用一塊多通道的數(shù)字量輸出卡,,通過固態(tài)繼電器實現(xiàn)對兩組試品觸點回路的通斷電控制,。繼電器可靠性檢測裝置的結(jié)構(gòu)框圖如圖1所示。

可靠性檢測裝置結(jié)構(gòu)圖

圖1 可靠性檢測裝置結(jié)構(gòu)圖

  如果某個試品的全部觸點均達(dá)到了最大允許失效次數(shù),那么在接下來的試驗中此試品要被剔除,,不再進(jìn)行試品線圈回路和觸點回路的通斷電操作,,避免故障試品因長時間通電而發(fā)生危險[3]。

  2.2 實現(xiàn)功能

  檢測裝置的軟件由兩大部分組成:一是實時檢測與處理程序,,包括了試驗參數(shù)的設(shè)置,,對試驗狀態(tài)以及失效數(shù)據(jù)的保存,對失效數(shù)據(jù)進(jìn)行數(shù)學(xué)分析,,打印報表等,,檢測裝置記錄的失效數(shù)據(jù)有失效時間,失效試品號,、觸點號,,觸點失效的類型,失效時觸點電壓以及各觸點累計失效次數(shù)等,;二是通訊程序,接收服務(wù)器的參數(shù)設(shè)置,、基本操作,,并上傳試驗狀態(tài)及失效信息,。圖2為檢測裝置的操作界面,菜單項代表了所能實現(xiàn)的所有操作,,文本顯示區(qū)對設(shè)置參數(shù),、試驗狀態(tài)以及失效發(fā)生時的失效信息進(jìn)行顯示。軟件采用可視化編程語言VC++6.0嵌入?yún)R編語言的方法實現(xiàn)[4],。

檢測裝置操作界面

圖2 檢測裝置操作界面

  3,、集中控制的實現(xiàn)

  以太網(wǎng)只定義了物理層和鏈路層,但目前在傳輸層和網(wǎng)絡(luò)層已基本上統(tǒng)一,,TCP/IP協(xié)議被普遍采用,。傳輸層協(xié)議包括UDP協(xié)議和TCP協(xié)議。無論是基于 UDP協(xié)議或者TCP協(xié)議,,都要保證網(wǎng)絡(luò)傳輸?shù)囊欢ǖ目煽啃院蛯崟r性,。由于UDP協(xié)議具有實現(xiàn)機制簡單、傳輸效率高的特點,,其較多地被應(yīng)用到高效率的實時系統(tǒng)中,。但為了實現(xiàn)傳輸?shù)目煽啃裕托枰趹?yīng)用層采用一些差錯控制機制,,而這些措施與TCP協(xié)議中自帶的傳輸機制非常相似,。實際上,在許多實時性的系統(tǒng)中,,采用TCP協(xié)議也基本可以滿足傳輸時間的要求,,還避免了在應(yīng)用層進(jìn)行繁瑣的處理[5]。因此在本方案中傳輸層選擇使用TCP協(xié)議,。
應(yīng)用層的協(xié)議目前還沒有統(tǒng)一,本文旨在研究一個可廣泛適用于多種應(yīng)用場合和多種應(yīng)用層協(xié)議的通用的通信方案,用戶可根據(jù)需要選擇不同的應(yīng)用層協(xié)議,也可以定義自己的數(shù)據(jù)包格式,。

  3.1 套接字(Socket)

  TCP/IP網(wǎng)絡(luò)環(huán)境下的應(yīng)用程序是通過網(wǎng)絡(luò)系統(tǒng)編程界面套接字Socket(在Windows操作系統(tǒng)下稱之為Winsock)來實現(xiàn)的。套接字構(gòu)成了核心協(xié)議的用戶視圖,,通過套接字應(yīng)用程序可訪問通信協(xié)議,,套接字是網(wǎng)絡(luò)通信的基本構(gòu)件。套接字是可以被命名的通信端點,,應(yīng)用程序通過它在網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù),。每個套接字都有其類型,并有一個與之相連的進(jìn)程,。TCP/IP提供3種類型套接字:

  1)流式套接字(Stream Scoket),。該接口提供一個面向連接、可靠的數(shù)據(jù)傳輸服務(wù),,數(shù)據(jù)無差錯,、無重復(fù)地發(fā)送,且按發(fā)送順序接收,。內(nèi)設(shè)流量控制,,避免數(shù)據(jù)流超限,;數(shù)據(jù)被看作字節(jié)流,無長度限制,。流式套接字提供了一種可靠的面向連接的數(shù)據(jù)傳輸方式,,如果想發(fā)送大批量數(shù)據(jù)或想讓數(shù)據(jù)按順序無重復(fù)地到達(dá)目的地,流式套接字最為有用,。

  2)數(shù)據(jù)包套接字(Datagram Scoket),。該接口提供一個無連接服務(wù)。數(shù)據(jù)包以獨立包形式被發(fā)送,,不提供無錯保證,,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂,。數(shù)據(jù)包套接字比較適用于數(shù)據(jù)包或記錄型數(shù)據(jù)的傳輸,,數(shù)據(jù)包的發(fā)送不能得到保證,而且不能排序到達(dá),。

   3)原始套接字(Raw Scoket),。該接口允許對較低層協(xié)議,如IP,、ICMP直接訪問,,主要用于新的網(wǎng)絡(luò)協(xié)議實現(xiàn)的測試等[6]。

   在進(jìn)行網(wǎng)絡(luò)開發(fā)時,,阻塞問題是網(wǎng)絡(luò)編程中十分重要的問題,。由于在阻塞模式下,在I/O操作完成前,,執(zhí)行操作的Winsock函數(shù)會一直等待下去,,不會立即返回程序(將控制權(quán)交還給程序)。故用這種方式,,服務(wù)器應(yīng)用程序?qū)⒑茈y同時通過多個建好連接的套接字進(jìn)行通信,。在此系統(tǒng)的應(yīng)用中,需要實現(xiàn)一臺服務(wù)器同時和六個套接字進(jìn)行通信,,因此結(jié)合對有限硬件資源的考慮,,選擇了非阻塞類型的套接字,這也是一般協(xié)議開發(fā)中通常用到的套接字通信方式,。

  3.2 通信的實現(xiàn)

  系統(tǒng)通信采用客戶機/服務(wù)器模式,,利用VC的微軟基礎(chǔ)類(MFC)進(jìn)行網(wǎng)絡(luò)開發(fā),MFC提供了兩種類型描述Windows Socket,,分別是CAsynSocket和CSocket,。其中CAsynSocket類封裝了Windows Sockets API,并將與Socket有關(guān)的Windows消息轉(zhuǎn)換為回調(diào)函數(shù),。CAsynSocket處于網(wǎng)絡(luò)更底層,,其使用就更具靈活性,,相應(yīng)要求編程者應(yīng)熟悉網(wǎng)絡(luò)底層細(xì)節(jié)。而CSocket類是CAsynSocket類的派生類,,通過MFC中的CArchive類的對象提供了更高層次的抽象,它封裝了 Socket實現(xiàn)中的許多細(xì)節(jié),。這里我們采用CAsynSocket類實現(xiàn)系統(tǒng)中“一對多”的數(shù)據(jù)發(fā)送,,通過在服務(wù)器中建立Winsock空間數(shù)組的方式來解決[7]。

  首先,,構(gòu)造CAsyncSocket類型的對象,,然后利用該對象創(chuàng)建內(nèi)嵌的Socket句柄。例如:

CAsyncSocket m_listen;
m_listen.Create(nPort);//服務(wù)器指定端口

  若是客戶端,,需要用CAsyncSocket::Connect()函數(shù)連接服務(wù)器端的套接字,。

  其次,若是服務(wù)器端的套接字,,創(chuàng)建完成就可以偵聽端口,,以便接收試圖連接到此端口的客戶端的套接字。接收了一個連接請求后就可以進(jìn)行口令驗證或直接建立連接等工作,。服務(wù)器偵聽的函數(shù)是CAsyncSocket::Listen(),,接收客戶端套接字的函數(shù)是 CAsyncSocket::Accept()。

  繼而采用CAsyncSocket類的成員函數(shù)進(jìn)行數(shù)據(jù)的收發(fā),。發(fā)送的函數(shù)是CAsyncSocket::send(),,接收的函數(shù)是CAsyncSocket::Receive()。

  最后,,通信結(jié)束后,,通過CAsyncSocket::Close()函數(shù)銷毀對象。服務(wù)器與檢測裝置的通訊流程見圖3,。

 服務(wù)器與檢測裝置通信流程圖

圖 3 服務(wù)器與檢測裝置通信流程圖

  CAsyncSocket類對網(wǎng)絡(luò)回調(diào)函數(shù)做了較好的封裝,。當(dāng)有連接請求時,服務(wù)器端的套接字就會收到OnAccept消息,,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù) OnAccept(),;當(dāng)服務(wù)器接收了連接后,客戶端的套接字就會收到OnConnect消息,,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù)OnConnect(),;當(dāng)有數(shù)據(jù)傳來時,套接字會收到OnReceive消息,,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù)OnReceive(),。程序員也可以在CAsyncSocket類的派生類中重載以上回調(diào)函數(shù),實現(xiàn)特定的功能,。

  3.3 數(shù)據(jù)傳輸及服務(wù)器功能

  服務(wù)器與檢測裝置在不同的狀態(tài)下需要傳輸大量的數(shù)據(jù),,數(shù)據(jù)所代表的含義也各不相同,,例如服務(wù)器通過以太網(wǎng)對檢測裝置的操作:簡單的有開始試驗、暫停試驗等,,復(fù)雜的有設(shè)置檢測裝置工作參數(shù),、對號設(shè)置、讀取失效信息等,。因此需要對服務(wù)器和檢測裝置傳輸?shù)臄?shù)據(jù)進(jìn)行嚴(yán)格的定義,,這里采取:

Command+Length+Content
Command:通信命令號,,Length:文本字節(jié)長度,,Content:文本字節(jié)內(nèi)容。

  如果傳輸內(nèi)容為簡單的控制數(shù)據(jù),,則文本字節(jié)長度和文本字節(jié)內(nèi)容都為零,,否則應(yīng)按具體的通信內(nèi)容進(jìn)行添加。

  服務(wù)器內(nèi)部配置一預(yù)先定義的超時時間間隔,,這個時間要足夠長,,以使檢測裝置能夠作出正常的反應(yīng),超時事件將觸發(fā)服務(wù)器來處理錯誤,。

  服務(wù)器操作界面的菜單項和檢測裝置基本一致,,在文本顯示區(qū)顯示所有建立連接的檢測裝置的試驗狀態(tài)和數(shù)據(jù)。建立連接后,,通過服務(wù)器對檢測裝置進(jìn)行操作和在現(xiàn)場直接操作檢測裝置的效果是一樣的,。

  4、實驗驗證

  為了驗證本方案的可行性,,整個檢測系統(tǒng)在宏發(fā)公司進(jìn)行了長期的運行,,通過網(wǎng)絡(luò)監(jiān)視軟件的分析,數(shù)據(jù)傳輸?shù)恼`碼率極低,,在同一局域網(wǎng)內(nèi)數(shù)據(jù)傳輸?shù)耐禃r間大部分集中在100ms以內(nèi),,達(dá)到了傳輸時間的要求,網(wǎng)絡(luò)傳輸中斷的情況基本沒有出現(xiàn),。

  因此,本文所提出的基于以太網(wǎng)的繼電器可靠性檢測系統(tǒng)的通信方案,實時性較好,可靠性較高,能夠?qū)崿F(xiàn)服務(wù)器對現(xiàn)場設(shè)備的實時數(shù)據(jù)采集與監(jiān)控的功能,是切實可行的,。且其開放性、可操作性也較高能夠適用于很多數(shù)據(jù)采集與監(jiān)控場合,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。