以太網(wǎng)技術(shù)在繼電器可靠性檢測系統(tǒng)中的應(yīng)用
其次,若是服務(wù)器端的套接字,創(chuàng)建完成就可以偵聽端口,以便接收試圖連接到此端口的客戶端的套接字。接收了一個(gè)連接請求后就可以進(jìn)行口令驗(yà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。
圖 3 服務(wù)器與檢測裝置通信流程圖
CAsyncSocket類對網(wǎng)絡(luò)回調(diào)函數(shù)做了較好的封裝。當(dāng)有連接請求時(shí),服務(wù)器端的套接字就會(huì)收到OnAccept消息,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù)OnAccept();當(dāng)服務(wù)器接收了連接后,客戶端的套接字就會(huì)收到OnConnect消息,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù)OnConnect();當(dāng)有數(shù)據(jù)傳來時(shí),套接字會(huì)收到OnReceive消息,此消息觸發(fā)網(wǎng)絡(luò)回調(diào)函數(shù)OnReceive()。程序員也可以在CAsyncSocket類的派生類中重載以上回調(diào)函數(shù),實(shí)現(xiàn)特定的功能。
3.3 數(shù)據(jù)傳輸及服務(wù)器功能
服務(wù)器與檢測裝置在不同的狀態(tài)下需要傳輸大量的數(shù)據(jù),數(shù)據(jù)所代表的含義也各不相同,例如服務(wù)器通過以太網(wǎng)對檢測裝置的操作:簡單的有開始試驗(yàn)、暫停試驗(yàn)等,復(fù)雜的有設(shè)置檢測裝置工作參數(shù)、對號設(shè)置、讀取失效信息等。因此需要對服務(wù)器和檢測裝置傳輸?shù)臄?shù)據(jù)進(jìn)行嚴(yán)格的定義,這里采?。?p> 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ù)先定義的超時(shí)時(shí)間間隔,這個(gè)時(shí)間要足夠長,以使檢測裝置能夠作出正常的反應(yīng),超時(shí)事件將觸發(fā)服務(wù)器來處理錯(cuò)誤。
服務(wù)器操作界面的菜單項(xiàng)和檢測裝置基本一致,在文本顯示區(qū)顯示所有建立連接的檢測裝置的試驗(yàn)狀態(tài)和數(shù)據(jù)。建立連接后,通過服務(wù)器對檢測裝置進(jìn)行操作和在現(xiàn)場直接操作檢測裝置的效果是一樣的。
4、實(shí)驗(yàn)驗(yàn)證
為了驗(yàn)證本方案的可行性,整個(gè)檢測系統(tǒng)在宏發(fā)公司進(jìn)行了長期的運(yùn)行,通過網(wǎng)絡(luò)監(jiān)視軟件的分析,數(shù)據(jù)傳輸?shù)恼`碼率極低,在同一局域網(wǎng)內(nèi)數(shù)據(jù)傳輸?shù)耐禃r(shí)間大部分集中在100ms以內(nèi),達(dá)到了傳輸時(shí)間的要求,網(wǎng)絡(luò)傳輸中斷的情況基本沒有出現(xiàn)。
因此,本文所提出的基于以太網(wǎng)的繼電器可靠性檢測系統(tǒng)的通信方案,實(shí)時(shí)性較好,可靠性較高,能夠?qū)崿F(xiàn)服務(wù)器對現(xiàn)場設(shè)備的實(shí)時(shí)數(shù)據(jù)采集與監(jiān)控的功能,是切實(shí)可行的。且其開放性、可操作性也較高能夠適用于很多數(shù)據(jù)采集與監(jiān)控場合。
時(shí)間繼電器相關(guān)文章:時(shí)間繼電器
評論