繼電器可靠性檢測係統設計
發布時間:2009-12-03 來源:儀器儀表學報
中心議題:
本文所提出的繼電器可靠性檢測係統由服務器和多台可靠性檢測裝置(客戶端)組成,可靠性檢測裝置是進行可靠性試驗的必要手段。服務器和可靠性檢測裝置通過調用TCP協(xie)議(yi)提(ti)供(gong)的(de)套(tao)接(jie)字(zi)傳(chuan)送(song)數(shu)據(ju),實(shi)現(xian)了(le)服(fu)務(wu)器(qi)對(dui)多(duo)台(tai)檢(jian)測(ce)裝(zhuang)置(zhi)的(de)實(shi)時(shi)集(ji)中(zhong)檢(jian)測(ce)和(he)控(kong)製(zhi),在(zai)節(jie)省(sheng)人(ren)力(li)的(de)同(tong)時(shi)有(you)利(li)於(yu)失(shi)效(xiao)試(shi)驗(yan)數(shu)據(ju)的(de)分(fen)析(xi)和(he)處(chu)理(li)。
可靠性檢測裝置的實現方法和功能
檢測裝置主要完成繼電器試品的定數截尾試驗,記錄失效信息,對檢測結果進行分析[2]。通過與服務器建立連接,實時上傳當前試驗狀態以及失效信息,並接收服務器的控製命令。
1實現方法
weilemanzushiyanhuanjingdexuyao,caiyonggongyekongzhijisuanjizuoweijiancezhuangzhidehexin。duichudiandianyadecaijizexuanyongliangkuaigaoxingnengshujucaijikalaishixian,ketongshiduiliangzugong32對觸點進行檢測,兩組試品可以是不同型號不同廠商的繼電器,而且對檢測觸點的常開常閉不做限製。
需要注意的是,當觸點電壓為交流信號時,為了保證電壓有效值的計算精度,采集卡在一個工頻周期內要完成16個采集通道至少320次的AD轉換,這就要求采集卡的采集速率非常快,本裝置采用的是研華的PCL-818HG。每塊采集卡還提供了一個20-PIN數字輸出口,yonglaikongzhishipinxianquanhuiludetongduandian。shipinchudianhuilucaiyongyikuaiduotongdaodeshuziliangshuchuka,tongguogutaijidianqishixianduiliangzushipinchudianhuiludetongduandiankongzhi。jidianqikekaoxingjiancezhuangzhidejiegoukuangturutu1所示。

圖1可靠性檢測裝置結構圖
如果某個試品的全部觸點均達到了最大允許失效次數,那麼在接下來的試驗中此試品要被剔除,不再進行試品線圈回路和觸點回路的通斷電操作,避免故障試品因長時間通電而發生危險[3]。
2實現功能
檢測裝置的軟件由兩大部分組成:
一(yi)是(shi)實(shi)時(shi)檢(jian)測(ce)與(yu)處(chu)理(li)程(cheng)序(xu),包(bao)括(kuo)了(le)試(shi)驗(yan)參(can)數(shu)的(de)設(she)置(zhi),對(dui)試(shi)驗(yan)狀(zhuang)態(tai)以(yi)及(ji)失(shi)效(xiao)數(shu)據(ju)的(de)保(bao)存(cun),對(dui)失(shi)效(xiao)數(shu)據(ju)進(jin)行(xing)數(shu)學(xue)分(fen)析(xi),打(da)印(yin)報(bao)表(biao)等(deng),檢(jian)測(ce)裝(zhuang)置(zhi)記(ji)錄(lu)的(de)失(shi)效(xiao)數(shu)據(ju)有(you)失(shi)效(xiao)時(shi)間(jian),失(shi)效(xiao)試(shi)品(pin)號(hao)、觸點號,觸點失效的類型,失效時觸點電壓以及各觸點累計失效次數等;
二是通訊程序,接收服務器的參數設置、基本操作,並上傳試驗狀態及失效信息。圖2為檢測裝置的操作界麵,菜單項代表了所能實現的所有操作,文本顯示區對設置參數、試驗狀態以及失效發生時的失效信息進行顯示。軟件采用可視化編程語言VC++6.0嵌入彙編語言的方法實現[4]。

圖2檢測裝置操作界麵
集中控製的實現
以太網隻定義了物理層和鏈路層,但目前在傳輸層和網絡層已基本上統一,TCP/IP協議被普遍采用。傳輸層協議包括UDP協議和TCP協議。無論是基於UDP協議或者TCP協議,都要保證網絡傳輸的一定的可靠性和實時性。由於UDP協議具有實現機製簡單、傳(chuan)輸(shu)效(xiao)率(lv)高(gao)的(de)特(te)點(dian),其(qi)較(jiao)多(duo)地(di)被(bei)應(ying)用(yong)到(dao)高(gao)效(xiao)率(lv)的(de)實(shi)時(shi)係(xi)統(tong)中(zhong)。但(dan)為(wei)了(le)實(shi)現(xian)傳(chuan)輸(shu)的(de)可(ke)靠(kao)性(xing),就(jiu)需(xu)要(yao)在(zai)應(ying)用(yong)層(ceng)采(cai)用(yong)一(yi)些(xie)差(cha)錯(cuo)控(kong)製(zhi)機(ji)製(zhi),而(er)這(zhe)些(xie)措(cuo)施(shi)與(yu)TCP協議中自帶的傳輸機製非常相似。
實際上,在許多實時性的係統中,采用TCP協議也基本可以滿足傳輸時間的要求,還避免了在應用層進行繁瑣的處理[5]。因此在本方案中傳輸層選擇使用TCP協議。
應用層的協議目前還沒有統一,本文旨在研究一個可廣泛適用於多種應用場合和多種應用層協議的通用的通信方案,用戶可根據需要選擇不同的應用層協議,也可以定義自己的數據包格式。
[page]
1套接字(Socket)
TCP/IP網絡環境下的應用程序是通過網絡係統編程界麵套接字Socket(在Windows操作係統下稱之為Winsock)來(lai)實(shi)現(xian)的(de)。套(tao)接(jie)字(zi)構(gou)成(cheng)了(le)核(he)心(xin)協(xie)議(yi)的(de)用(yong)戶(hu)視(shi)圖(tu),通(tong)過(guo)套(tao)接(jie)字(zi)應(ying)用(yong)程(cheng)序(xu)可(ke)訪(fang)問(wen)通(tong)信(xin)協(xie)議(yi),套(tao)接(jie)字(zi)是(shi)網(wang)絡(luo)通(tong)信(xin)的(de)基(ji)本(ben)構(gou)件(jian)。套(tao)接(jie)字(zi)是(shi)可(ke)以(yi)被(bei)命(ming)名(ming)的(de)通(tong)信(xin)端(duan)點(dian),應(ying)用(yong)程(cheng)序(xu)通(tong)過(guo)它(ta)在(zai)網(wang)絡(luo)上(shang)發(fa)送(song)和(he)接(jie)收(shou)數(shu)據(ju)。每(mei)個(ge)套(tao)接(jie)字(zi)都(dou)有(you)其(qi)類(lei)型(xing),並(bing)有(you)一(yi)個(ge)與(yu)之(zhi)相(xiang)連(lian)的(de)進(jin)程(cheng)。
TCP/IP提供3種類型套接字:
1)流式套接字(StreamScoket)。該接口提供一個麵向連接、可靠的數據傳輸服務,數據無差錯、無重複地發送,且按發送順序接收。內設流量控製,避免數據流超限;數(shu)據(ju)被(bei)看(kan)作(zuo)字(zi)節(jie)流(liu),無(wu)長(chang)度(du)限(xian)製(zhi)。流(liu)式(shi)套(tao)接(jie)字(zi)提(ti)供(gong)了(le)一(yi)種(zhong)可(ke)靠(kao)的(de)麵(mian)向(xiang)連(lian)接(jie)的(de)數(shu)據(ju)傳(chuan)輸(shu)方(fang)式(shi),如(ru)果(guo)想(xiang)發(fa)送(song)大(da)批(pi)量(liang)數(shu)據(ju)或(huo)想(xiang)讓(rang)數(shu)據(ju)按(an)順(shun)序(xu)無(wu)重(zhong)複(fu)地(di)到(dao)達(da)目(mu)的(de)地(di),流(liu)式(shi)套(tao)接(jie)字(zi)最(zui)為(wei)有(you)用(yong)。
2)數據包套接字(DatagramScoket)。該(gai)接(jie)口(kou)提(ti)供(gong)一(yi)個(ge)無(wu)連(lian)接(jie)服(fu)務(wu)。數(shu)據(ju)包(bao)以(yi)獨(du)立(li)包(bao)形(xing)式(shi)被(bei)發(fa)送(song),不(bu)提(ti)供(gong)無(wu)錯(cuo)保(bao)證(zheng),數(shu)據(ju)可(ke)能(neng)丟(diu)失(shi)或(huo)重(zhong)複(fu),並(bing)且(qie)接(jie)收(shou)順(shun)序(xu)混(hun)亂(luan)。數(shu)據(ju)包(bao)套(tao)接(jie)字(zi)比(bi)較(jiao)適(shi)用(yong)於(yu)數(shu)據(ju)包(bao)或(huo)記(ji)錄(lu)型(xing)數(shu)據(ju)的(de)傳(chuan)輸(shu),數(shu)據(ju)包(bao)的(de)發(fa)送(song)不(bu)能(neng)得(de)到(dao)保(bao)證(zheng),而(er)且(qie)不(bu)能(neng)排(pai)序(xu)到(dao)達(da)。
3)原始套接字(RawScoket)。該接口允許對較低層協議,如IP、ICMP直接訪問,主要用於新的網絡協議實現的測試等[6]。
在進行網絡開發時,阻塞問題是網絡編程中十分重要的問題。由於在阻塞模式下,在I/O操作完成前,執行操作的Winsock函數會一直等待下去,不會立即返回程序(將控製權交還給程序)。guyongzhezhongfangshi,fuwuqiyingyongchengxujianghennantongshitongguoduogejianhaolianjiedetaojiezijinxingtongxin。zaicixitongdeyingyongzhong,xuyaoshixianyitaifuwuqitongshiheliugetaojiezijinxingtongxin,yincijieheduiyouxianyingjianziyuandekaolv,xuanzelefeizusaileixingdetaojiezi,zheyeshiyibanxieyikaifazhongtongchangyongdaodetaojiezitongxinfangshi。
2通信的實現
係統通信采用客戶機/服務器模式,利用VC的微軟基礎類(MFC)進行網絡開發,MFC提供了兩種類型描述WindowsSocket,分別是CAsynSocket和CSocket。其中CAsynSocket類封裝了WindowsSocketsAPI,並將與Socket有關的Windows消息轉換為回調函數。CAsynSocket處於網絡更底層,其使用就更具靈活性,相應要求編程者應熟悉網絡底層細節。而CSocket類是CAsynSocket類的派生類,通過MFC中的CArchive類的對象提供了更高層次的抽象,它封裝了Socket實現中的許多細節。這裏我們采用CAsynSocket類實現係統中“一對多”的數據發送,通過在服務器中建立Winsock空間數組的方式來解決[7]。
首先,構造CAsyncSocket類型的對象,然後利用該對象創建內嵌的Socket句柄。例如:
CAsyncSocketm_listen;
m_listen.Create(nPort);//服務器指定端口
若是客戶端,需要用CAsyncSocket::Connect()函han數shu連lian接jie服fu務wu器qi端duan的de套tao接jie字zi。其qi次ci,若ruo是shi服fu務wu器qi端duan的de套tao接jie字zi,創chuang建jian完wan成cheng就jiu可ke以yi偵zhen聽ting端duan口kou,以yi便bian接jie收shou試shi圖tu連lian接jie到dao此ci端duan口kou的de客ke戶hu端duan的de套tao接jie字zi。接jie收shou了le一yi個ge連lian接jie請qing求qiu後hou就jiu可ke以yi進jin行xing口kou令ling驗yan證zheng或huo直zhi接jie建jian立li連lian接jie等deng工gong作zuo。服fu務wu器qi偵zhen聽ting的de函han數shu是shiCAsyncSocket::Listen(),接收客戶端套接字的函數是CAsyncSocket::Accept()。
繼而采用CAsyncSocket類的成員函數進行數據的收發。發送的函數是CAsyncSocket::send(),接收的函數是CAsyncSocket::Receive()。
最後,通信結束後,通過CAsyncSocket::Close()函數銷毀對象。服務器與檢測裝置的通訊流程見圖3。

圖3服務器與檢測裝置通信流程圖
CAsyncSocket類對網絡回調函數做了較好的封裝。當有連接請求時,服務器端的套接字就會收到OnAccept消息,此消息觸發網絡回調函數OnAccept();當服務器接收了連接後,客戶端的套接字就會收到OnConnect消息,此消息觸發網絡回調函數OnConnect();當有數據傳來時,套接字會收到OnReceive消息,此消息觸發網絡回調函數OnReceive()。程序員也可以在CAsyncSocket類的派生類中重載以上回調函數,實現特定的功能。
3數據傳輸及服務器功能
服務器與檢測裝置在不同的狀態下需要傳輸大量的數據,數據所代表的含義也各不相同,例如服務器通過以太網對檢測裝置的操作:簡單的有開始試驗、暫停試驗等,複雜的有設置檢測裝置工作參數、對號設置、讀取失效信息等。因此需要對服務器和檢測裝置傳輸的數據進行嚴格的定義,這裏采取:
Command+Length+Content
Command:通信命令號,Length:文本字節長度,Content:文本字節內容。
如果傳輸內容為簡單的控製數據,則文本字節長度和文本字節內容都為零,否則應按具體的通信內容進行添加。
fuwuqineibupeizhiyiyuxiandingyidechaoshishijianjiange,zhegeshijianyaozugouchang,yishijiancezhuangzhinenggouzuochuzhengchangdefanying,chaoshishijianjiangchufafuwuqilaichulicuowu。
fuwuqicaozuojiemiandecaidanxianghejiancezhuangzhijibenyizhi,zaiwenbenxianshiquxianshisuoyoujianlilianjiedejiancezhuangzhideshiyanzhuangtaiheshuju。jianlilianjiehou,tongguofuwuqiduijiancezhuangzhijinxingcaozuohezaixianchangzhijiecaozuojiancezhuangzhidexiaoguoshiyiyangde。
weileyanzhengbenfangandekexingxing,zhenggejiancexitongzaihongfagongsijinxinglechangqideyunxing,tongguowangluojianshiruanjiandefenxi,shujuchuanshudewumalvjidi,zaitongyijuyuwangneishujuchuanshudewangfanshijiandabufenjizhongzai100ms以內,達到了傳輸時間的要求,網絡傳輸中斷的情況基本沒有出現。
因此,本文所提出的基於以太網的繼電器可靠性檢測係統的通信方案,實時性較好,可靠性較高,能夠實現服務器對現場設備的實時數據采集與監控的功能,是切實可行的。且其開放性、可操作性也較高能夠適用於很多數據采集與監控場合。
- 可靠性檢測裝置的實現方法和功能
- 集中控製的實現
- 實時檢測與處理程序
- 接收服務器的參數設置、基本操作,並上傳試驗狀態及失效信息
本文所提出的繼電器可靠性檢測係統由服務器和多台可靠性檢測裝置(客戶端)組成,可靠性檢測裝置是進行可靠性試驗的必要手段。服務器和可靠性檢測裝置通過調用TCP協(xie)議(yi)提(ti)供(gong)的(de)套(tao)接(jie)字(zi)傳(chuan)送(song)數(shu)據(ju),實(shi)現(xian)了(le)服(fu)務(wu)器(qi)對(dui)多(duo)台(tai)檢(jian)測(ce)裝(zhuang)置(zhi)的(de)實(shi)時(shi)集(ji)中(zhong)檢(jian)測(ce)和(he)控(kong)製(zhi),在(zai)節(jie)省(sheng)人(ren)力(li)的(de)同(tong)時(shi)有(you)利(li)於(yu)失(shi)效(xiao)試(shi)驗(yan)數(shu)據(ju)的(de)分(fen)析(xi)和(he)處(chu)理(li)。
可靠性檢測裝置的實現方法和功能
檢測裝置主要完成繼電器試品的定數截尾試驗,記錄失效信息,對檢測結果進行分析[2]。通過與服務器建立連接,實時上傳當前試驗狀態以及失效信息,並接收服務器的控製命令。
1實現方法
weilemanzushiyanhuanjingdexuyao,caiyonggongyekongzhijisuanjizuoweijiancezhuangzhidehexin。duichudiandianyadecaijizexuanyongliangkuaigaoxingnengshujucaijikalaishixian,ketongshiduiliangzugong32對觸點進行檢測,兩組試品可以是不同型號不同廠商的繼電器,而且對檢測觸點的常開常閉不做限製。
需要注意的是,當觸點電壓為交流信號時,為了保證電壓有效值的計算精度,采集卡在一個工頻周期內要完成16個采集通道至少320次的AD轉換,這就要求采集卡的采集速率非常快,本裝置采用的是研華的PCL-818HG。每塊采集卡還提供了一個20-PIN數字輸出口,yonglaikongzhishipinxianquanhuiludetongduandian。shipinchudianhuilucaiyongyikuaiduotongdaodeshuziliangshuchuka,tongguogutaijidianqishixianduiliangzushipinchudianhuiludetongduandiankongzhi。jidianqikekaoxingjiancezhuangzhidejiegoukuangturutu1所示。

圖1可靠性檢測裝置結構圖
如果某個試品的全部觸點均達到了最大允許失效次數,那麼在接下來的試驗中此試品要被剔除,不再進行試品線圈回路和觸點回路的通斷電操作,避免故障試品因長時間通電而發生危險[3]。
2實現功能
檢測裝置的軟件由兩大部分組成:
一(yi)是(shi)實(shi)時(shi)檢(jian)測(ce)與(yu)處(chu)理(li)程(cheng)序(xu),包(bao)括(kuo)了(le)試(shi)驗(yan)參(can)數(shu)的(de)設(she)置(zhi),對(dui)試(shi)驗(yan)狀(zhuang)態(tai)以(yi)及(ji)失(shi)效(xiao)數(shu)據(ju)的(de)保(bao)存(cun),對(dui)失(shi)效(xiao)數(shu)據(ju)進(jin)行(xing)數(shu)學(xue)分(fen)析(xi),打(da)印(yin)報(bao)表(biao)等(deng),檢(jian)測(ce)裝(zhuang)置(zhi)記(ji)錄(lu)的(de)失(shi)效(xiao)數(shu)據(ju)有(you)失(shi)效(xiao)時(shi)間(jian),失(shi)效(xiao)試(shi)品(pin)號(hao)、觸點號,觸點失效的類型,失效時觸點電壓以及各觸點累計失效次數等;
二是通訊程序,接收服務器的參數設置、基本操作,並上傳試驗狀態及失效信息。圖2為檢測裝置的操作界麵,菜單項代表了所能實現的所有操作,文本顯示區對設置參數、試驗狀態以及失效發生時的失效信息進行顯示。軟件采用可視化編程語言VC++6.0嵌入彙編語言的方法實現[4]。

圖2檢測裝置操作界麵
集中控製的實現
以太網隻定義了物理層和鏈路層,但目前在傳輸層和網絡層已基本上統一,TCP/IP協議被普遍采用。傳輸層協議包括UDP協議和TCP協議。無論是基於UDP協議或者TCP協議,都要保證網絡傳輸的一定的可靠性和實時性。由於UDP協議具有實現機製簡單、傳(chuan)輸(shu)效(xiao)率(lv)高(gao)的(de)特(te)點(dian),其(qi)較(jiao)多(duo)地(di)被(bei)應(ying)用(yong)到(dao)高(gao)效(xiao)率(lv)的(de)實(shi)時(shi)係(xi)統(tong)中(zhong)。但(dan)為(wei)了(le)實(shi)現(xian)傳(chuan)輸(shu)的(de)可(ke)靠(kao)性(xing),就(jiu)需(xu)要(yao)在(zai)應(ying)用(yong)層(ceng)采(cai)用(yong)一(yi)些(xie)差(cha)錯(cuo)控(kong)製(zhi)機(ji)製(zhi),而(er)這(zhe)些(xie)措(cuo)施(shi)與(yu)TCP協議中自帶的傳輸機製非常相似。
實際上,在許多實時性的係統中,采用TCP協議也基本可以滿足傳輸時間的要求,還避免了在應用層進行繁瑣的處理[5]。因此在本方案中傳輸層選擇使用TCP協議。
應用層的協議目前還沒有統一,本文旨在研究一個可廣泛適用於多種應用場合和多種應用層協議的通用的通信方案,用戶可根據需要選擇不同的應用層協議,也可以定義自己的數據包格式。
[page]
1套接字(Socket)
TCP/IP網絡環境下的應用程序是通過網絡係統編程界麵套接字Socket(在Windows操作係統下稱之為Winsock)來(lai)實(shi)現(xian)的(de)。套(tao)接(jie)字(zi)構(gou)成(cheng)了(le)核(he)心(xin)協(xie)議(yi)的(de)用(yong)戶(hu)視(shi)圖(tu),通(tong)過(guo)套(tao)接(jie)字(zi)應(ying)用(yong)程(cheng)序(xu)可(ke)訪(fang)問(wen)通(tong)信(xin)協(xie)議(yi),套(tao)接(jie)字(zi)是(shi)網(wang)絡(luo)通(tong)信(xin)的(de)基(ji)本(ben)構(gou)件(jian)。套(tao)接(jie)字(zi)是(shi)可(ke)以(yi)被(bei)命(ming)名(ming)的(de)通(tong)信(xin)端(duan)點(dian),應(ying)用(yong)程(cheng)序(xu)通(tong)過(guo)它(ta)在(zai)網(wang)絡(luo)上(shang)發(fa)送(song)和(he)接(jie)收(shou)數(shu)據(ju)。每(mei)個(ge)套(tao)接(jie)字(zi)都(dou)有(you)其(qi)類(lei)型(xing),並(bing)有(you)一(yi)個(ge)與(yu)之(zhi)相(xiang)連(lian)的(de)進(jin)程(cheng)。
TCP/IP提供3種類型套接字:
1)流式套接字(StreamScoket)。該接口提供一個麵向連接、可靠的數據傳輸服務,數據無差錯、無重複地發送,且按發送順序接收。內設流量控製,避免數據流超限;數(shu)據(ju)被(bei)看(kan)作(zuo)字(zi)節(jie)流(liu),無(wu)長(chang)度(du)限(xian)製(zhi)。流(liu)式(shi)套(tao)接(jie)字(zi)提(ti)供(gong)了(le)一(yi)種(zhong)可(ke)靠(kao)的(de)麵(mian)向(xiang)連(lian)接(jie)的(de)數(shu)據(ju)傳(chuan)輸(shu)方(fang)式(shi),如(ru)果(guo)想(xiang)發(fa)送(song)大(da)批(pi)量(liang)數(shu)據(ju)或(huo)想(xiang)讓(rang)數(shu)據(ju)按(an)順(shun)序(xu)無(wu)重(zhong)複(fu)地(di)到(dao)達(da)目(mu)的(de)地(di),流(liu)式(shi)套(tao)接(jie)字(zi)最(zui)為(wei)有(you)用(yong)。
2)數據包套接字(DatagramScoket)。該(gai)接(jie)口(kou)提(ti)供(gong)一(yi)個(ge)無(wu)連(lian)接(jie)服(fu)務(wu)。數(shu)據(ju)包(bao)以(yi)獨(du)立(li)包(bao)形(xing)式(shi)被(bei)發(fa)送(song),不(bu)提(ti)供(gong)無(wu)錯(cuo)保(bao)證(zheng),數(shu)據(ju)可(ke)能(neng)丟(diu)失(shi)或(huo)重(zhong)複(fu),並(bing)且(qie)接(jie)收(shou)順(shun)序(xu)混(hun)亂(luan)。數(shu)據(ju)包(bao)套(tao)接(jie)字(zi)比(bi)較(jiao)適(shi)用(yong)於(yu)數(shu)據(ju)包(bao)或(huo)記(ji)錄(lu)型(xing)數(shu)據(ju)的(de)傳(chuan)輸(shu),數(shu)據(ju)包(bao)的(de)發(fa)送(song)不(bu)能(neng)得(de)到(dao)保(bao)證(zheng),而(er)且(qie)不(bu)能(neng)排(pai)序(xu)到(dao)達(da)。
3)原始套接字(RawScoket)。該接口允許對較低層協議,如IP、ICMP直接訪問,主要用於新的網絡協議實現的測試等[6]。
在進行網絡開發時,阻塞問題是網絡編程中十分重要的問題。由於在阻塞模式下,在I/O操作完成前,執行操作的Winsock函數會一直等待下去,不會立即返回程序(將控製權交還給程序)。guyongzhezhongfangshi,fuwuqiyingyongchengxujianghennantongshitongguoduogejianhaolianjiedetaojiezijinxingtongxin。zaicixitongdeyingyongzhong,xuyaoshixianyitaifuwuqitongshiheliugetaojiezijinxingtongxin,yincijieheduiyouxianyingjianziyuandekaolv,xuanzelefeizusaileixingdetaojiezi,zheyeshiyibanxieyikaifazhongtongchangyongdaodetaojiezitongxinfangshi。
2通信的實現
係統通信采用客戶機/服務器模式,利用VC的微軟基礎類(MFC)進行網絡開發,MFC提供了兩種類型描述WindowsSocket,分別是CAsynSocket和CSocket。其中CAsynSocket類封裝了WindowsSocketsAPI,並將與Socket有關的Windows消息轉換為回調函數。CAsynSocket處於網絡更底層,其使用就更具靈活性,相應要求編程者應熟悉網絡底層細節。而CSocket類是CAsynSocket類的派生類,通過MFC中的CArchive類的對象提供了更高層次的抽象,它封裝了Socket實現中的許多細節。這裏我們采用CAsynSocket類實現係統中“一對多”的數據發送,通過在服務器中建立Winsock空間數組的方式來解決[7]。
首先,構造CAsyncSocket類型的對象,然後利用該對象創建內嵌的Socket句柄。例如:
CAsyncSocketm_listen;
m_listen.Create(nPort);//服務器指定端口
若是客戶端,需要用CAsyncSocket::Connect()函han數shu連lian接jie服fu務wu器qi端duan的de套tao接jie字zi。其qi次ci,若ruo是shi服fu務wu器qi端duan的de套tao接jie字zi,創chuang建jian完wan成cheng就jiu可ke以yi偵zhen聽ting端duan口kou,以yi便bian接jie收shou試shi圖tu連lian接jie到dao此ci端duan口kou的de客ke戶hu端duan的de套tao接jie字zi。接jie收shou了le一yi個ge連lian接jie請qing求qiu後hou就jiu可ke以yi進jin行xing口kou令ling驗yan證zheng或huo直zhi接jie建jian立li連lian接jie等deng工gong作zuo。服fu務wu器qi偵zhen聽ting的de函han數shu是shiCAsyncSocket::Listen(),接收客戶端套接字的函數是CAsyncSocket::Accept()。
繼而采用CAsyncSocket類的成員函數進行數據的收發。發送的函數是CAsyncSocket::send(),接收的函數是CAsyncSocket::Receive()。
最後,通信結束後,通過CAsyncSocket::Close()函數銷毀對象。服務器與檢測裝置的通訊流程見圖3。

圖3服務器與檢測裝置通信流程圖
CAsyncSocket類對網絡回調函數做了較好的封裝。當有連接請求時,服務器端的套接字就會收到OnAccept消息,此消息觸發網絡回調函數OnAccept();當服務器接收了連接後,客戶端的套接字就會收到OnConnect消息,此消息觸發網絡回調函數OnConnect();當有數據傳來時,套接字會收到OnReceive消息,此消息觸發網絡回調函數OnReceive()。程序員也可以在CAsyncSocket類的派生類中重載以上回調函數,實現特定的功能。
3數據傳輸及服務器功能
服務器與檢測裝置在不同的狀態下需要傳輸大量的數據,數據所代表的含義也各不相同,例如服務器通過以太網對檢測裝置的操作:簡單的有開始試驗、暫停試驗等,複雜的有設置檢測裝置工作參數、對號設置、讀取失效信息等。因此需要對服務器和檢測裝置傳輸的數據進行嚴格的定義,這裏采取:
Command+Length+Content
Command:通信命令號,Length:文本字節長度,Content:文本字節內容。
如果傳輸內容為簡單的控製數據,則文本字節長度和文本字節內容都為零,否則應按具體的通信內容進行添加。
fuwuqineibupeizhiyiyuxiandingyidechaoshishijianjiange,zhegeshijianyaozugouchang,yishijiancezhuangzhinenggouzuochuzhengchangdefanying,chaoshishijianjiangchufafuwuqilaichulicuowu。
fuwuqicaozuojiemiandecaidanxianghejiancezhuangzhijibenyizhi,zaiwenbenxianshiquxianshisuoyoujianlilianjiedejiancezhuangzhideshiyanzhuangtaiheshuju。jianlilianjiehou,tongguofuwuqiduijiancezhuangzhijinxingcaozuohezaixianchangzhijiecaozuojiancezhuangzhidexiaoguoshiyiyangde。
weileyanzhengbenfangandekexingxing,zhenggejiancexitongzaihongfagongsijinxinglechangqideyunxing,tongguowangluojianshiruanjiandefenxi,shujuchuanshudewumalvjidi,zaitongyijuyuwangneishujuchuanshudewangfanshijiandabufenjizhongzai100ms以內,達到了傳輸時間的要求,網絡傳輸中斷的情況基本沒有出現。
因此,本文所提出的基於以太網的繼電器可靠性檢測係統的通信方案,實時性較好,可靠性較高,能夠實現服務器對現場設備的實時數據采集與監控的功能,是切實可行的。且其開放性、可操作性也較高能夠適用於很多數據采集與監控場合。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




