中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 工業(yè)以太網(wǎng)技術在繼電器可靠性檢測系統(tǒng)中的應用

        工業(yè)以太網(wǎng)技術在繼電器可靠性檢測系統(tǒng)中的應用

        作者: 時間:2014-01-08 來源:網(wǎng)絡 收藏


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

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

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

        3.2 通信的實現(xiàn)

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

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

        CAsyncSocket m_listen;

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

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

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

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

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


        圖 3 服務器與檢測裝置通信流程圖

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

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

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

        Command+Length+Content

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

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

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

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

        4、實驗驗證

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

        因此,本文所提出的基于可靠性的通信方案,實時性較好,可靠性較高,能夠實現(xiàn)服務器對現(xiàn)場設備的實時數(shù)據(jù)采集與監(jiān)控的功能,是切實可行的。且其開放性、可操作性也較高能夠適用于很多數(shù)據(jù)采集與監(jiān)控場合。

        繼電器相關文章:繼電器工作原理


        時間繼電器相關文章:時間繼電器



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉