劉艷茹
(吉林工業(yè)職業(yè)技術(shù)學(xué)院,吉林 吉林 132013)
近些年,在計(jì)算機(jī)技術(shù)發(fā)展的同時(shí)網(wǎng)絡(luò)通信技術(shù)也得到相應(yīng)的提升,而在此影響下,如果仍是沿用常規(guī)的串口服務(wù)器,就無(wú)法滿足信息自動(dòng)化管理的要求[1]。目前,國(guó)家網(wǎng)絡(luò)使用中應(yīng)用的IP網(wǎng)絡(luò)服務(wù)器無(wú)法同時(shí)考慮傳統(tǒng)的串行通信設(shè)備,由于網(wǎng)絡(luò)技術(shù)中已經(jīng)取消了常規(guī)的通信方式,導(dǎo)致傳統(tǒng)設(shè)備的浪費(fèi),部分設(shè)備停用,而市場(chǎng)上各種IP網(wǎng)絡(luò)通信技術(shù)下的普通簡(jiǎn)單服務(wù)器兼容性差,局限性高,功能單一?,F(xiàn)有的串行服務(wù)器存在一些不足之處,如果仍然沿用這種模式就會(huì)影響整體效果。基于此,本文主要設(shè)計(jì)了一種基于MFC的網(wǎng)絡(luò)串行服務(wù)器,這種服務(wù)器可以用作串行通信服務(wù)器以及網(wǎng)絡(luò)通信服務(wù)器。網(wǎng)絡(luò)串行服務(wù)器可以隨時(shí)接受來(lái)自下層計(jì)算機(jī)的連接請(qǐng)求或斷開(kāi)連接請(qǐng)求,并且能夠直接與下層計(jì)算機(jī)進(jìn)行有效通信溝通,同時(shí)能夠進(jìn)行一對(duì)一數(shù)據(jù)信息處理,且這種服務(wù)器具有更強(qiáng)的兼容性與實(shí)用性,拓展性更高[2]。
MFC是微軟公司提供的一個(gè)類庫(kù),是完全包括了程序框架應(yīng)用的一種形式,可以有效減少程序人員在開(kāi)發(fā)中的工作[3]。該系統(tǒng)使用MFC作為開(kāi)發(fā)平臺(tái),使用C ++語(yǔ)言編程,建立MFC項(xiàng)目,承載串行網(wǎng)絡(luò)服務(wù)器,接收下位計(jì)算機(jī)發(fā)起的連接請(qǐng)求,接收數(shù)據(jù)推送,分析和處理接收到的數(shù)據(jù),并處理信息[4]。
串口通信主要指的是通過(guò)此模式進(jìn)行數(shù)據(jù)的發(fā)送與接收,這樣的通信模式比以往按字節(jié)的通信慢得多,而串行通信則可以將兩行數(shù)據(jù)直接發(fā)送至同一線路上,并將數(shù)據(jù)接收至另一條線路,這樣可以實(shí)現(xiàn)簡(jiǎn)單的遠(yuǎn)距離通信模式。串口通信主要是采用波特參數(shù)進(jìn)行設(shè)置,所有這些參數(shù)都需要與端口匹配才能正常通信[5]。
TCP/IP網(wǎng)絡(luò)服務(wù)是基于MFC平臺(tái)開(kāi)發(fā)的Windows軟件,主要可以在局域網(wǎng)的使用中對(duì)客戶端用戶進(jìn)行監(jiān)控,實(shí)時(shí)監(jiān)控客戶端應(yīng)用情況,并與客戶端實(shí)現(xiàn)直接通信,與串行服務(wù)器相比,這種系統(tǒng)模式的最大特點(diǎn)是其靈活的傳輸格式和高傳輸效率,具有應(yīng)用意義。同時(shí),該系統(tǒng)基于客戶端和服務(wù)器模型,由兩部分組成:服務(wù)器和客戶端。服務(wù)器能夠直接連接到數(shù)據(jù)庫(kù),服務(wù)器的應(yīng)用不僅可以接收下位服務(wù)器所發(fā)送的數(shù)據(jù)信息,還可以完成客戶端所提出的各種請(qǐng)求,再將處理意見(jiàn)直接發(fā)送至下位的計(jì)算機(jī)主機(jī)上。而客戶端則通過(guò)服務(wù)器的IP地址和端口號(hào)連接到服務(wù)器后,再移交給服務(wù)器[6]。
服務(wù)器和客戶端通過(guò)套接字進(jìn)行通信,具體分為3個(gè)步驟:首先,第一個(gè)步驟是利用服務(wù)器做好套接對(duì)象的準(zhǔn)備,其中一個(gè)是Listen Socket,主要位于偵聽(tīng)臺(tái)下的Socketzhuyao,具體應(yīng)用意識(shí)就是用于接收客戶端連接請(qǐng)求,另一個(gè)是Server Socket,主要作用就是在服務(wù)器與客戶端之間做好數(shù)據(jù)通信作用,為了在客戶端和服務(wù)器之間進(jìn)行通信,必須建立ClientSocket類[7]。其次,客戶端在創(chuàng)建輸入和輸出流的時(shí)候,可以將輸入和輸出流量與Socket連接。最后,主要是實(shí)現(xiàn)服務(wù)器網(wǎng)絡(luò)時(shí)間,從而及時(shí)響應(yīng)客戶端所發(fā)送的請(qǐng)求,直到雙方成功連接后,服務(wù)器需要接收客戶端發(fā)送的數(shù)據(jù),結(jié)束后,客戶端和服務(wù)器將斷開(kāi)連接,并基于一個(gè)或多個(gè)設(shè)備終端發(fā)送信息。
本系統(tǒng)的功能設(shè)定為3部分:串口通信服務(wù)器功能設(shè)定、網(wǎng)絡(luò)通信服務(wù)器功能設(shè)定、103協(xié)議應(yīng)用功能設(shè)置。其中,串行通信服務(wù)器和網(wǎng)絡(luò)通信服務(wù)器的兩個(gè)服務(wù)器對(duì)話框被合并到串行網(wǎng)絡(luò)服務(wù)器中;當(dāng)更改網(wǎng)絡(luò)服務(wù)器的IP地址時(shí),可以通過(guò)串行通信來(lái)修改綁定到客戶端的服務(wù)器IP。
2.3.1 串口服務(wù)器功能
串口服務(wù)器有兩種運(yùn)行模式:輪詢模式和手動(dòng)發(fā)送指令模式。當(dāng)打開(kāi)輪詢模式后,軟件將開(kāi)始在地址范圍內(nèi)巡視較低端的計(jì)算機(jī),此模式適用于測(cè)試多臺(tái)低端計(jì)算機(jī)的網(wǎng)絡(luò)性能;另一種是手動(dòng)發(fā)送指令,單擊不同的指令按鈕,軟件將發(fā)送相應(yīng)的消息,此模式測(cè)試來(lái)自一臺(tái)較低計(jì)算機(jī)的單個(gè)消息。
2.3.2 Web服務(wù)器功能
在Web服務(wù)器端要實(shí)現(xiàn)的主要功能是:
(1)實(shí)時(shí)顯示功能。服務(wù)器中的實(shí)時(shí)顯示功能,主要是通過(guò)有效獲取客戶端或嵌入式下位機(jī)的狀態(tài),然后直接將獲取后的顯示狀態(tài)發(fā)送給控件,內(nèi)容中所指的顯示內(nèi)容不僅包括客戶端是否在線,還包括客戶端的IP地址以及設(shè)備名稱的信息。
(2)信息收集功能。本服務(wù)器的信息收集功能則是接收從客戶端下位計(jì)算機(jī)發(fā)送的傳感器信息數(shù)據(jù),然后將收集到的數(shù)據(jù)信息直接連接到數(shù)據(jù)庫(kù)。
(3)通信功能。該服務(wù)器通信功能的靈活性表現(xiàn),主要體現(xiàn)在用戶可以隨意進(jìn)行選擇,通過(guò)選擇任何在線客戶端來(lái)完成通信。只要單擊要通信的客戶端,就可以將客戶端添加到通信鏈接,這次進(jìn)行通信的對(duì)象也可以通過(guò)單擊右鍵的模式進(jìn)行查看,查看內(nèi)容包括設(shè)備的狀態(tài)和相關(guān)歷史信息。
(4)改變服務(wù)器IP地址改變客戶服務(wù)器使用IP地址的模式主要在嵌入式下位機(jī)設(shè)備中。這種模式在應(yīng)用中,一旦需要更改相關(guān)服務(wù)器主機(jī),就可以有效使用此功能,迅速更改綁定到客戶端的服務(wù)器。
該系統(tǒng)的實(shí)現(xiàn)需要串行端口服務(wù)器,Web服務(wù)器和103協(xié)議應(yīng)用程序功能[8]。
串行端口服務(wù)器單擊串行端口連接按鈕,以開(kāi)始串行端口服務(wù)器和下層計(jì)算機(jī)之間的通信為第一步,當(dāng)通信完成之后就可以啟動(dòng)軟件,啟動(dòng)之后就可以進(jìn)行初始化串口數(shù)據(jù),再通過(guò)選擇模式的應(yīng)用,進(jìn)入相應(yīng)的工作過(guò)程,從而提高整個(gè)工作效率。
3.1.1 輪詢模式
輪詢模式在啟動(dòng)前應(yīng)嚴(yán)格設(shè)置其輪詢參數(shù),在整個(gè)輪詢過(guò)程中,會(huì)從第一個(gè)地址連續(xù)查詢?cè)O(shè)備數(shù)據(jù),直到查到數(shù)據(jù)為止。
3.1.2 手動(dòng)模式
采用手動(dòng)的方式利用軟件將消息發(fā)送到固定地址設(shè)備,其中默認(rèn)地址為0,通過(guò)手動(dòng)設(shè)置選擇命令后,消息被添加到發(fā)送緩沖區(qū)中,傳輸前無(wú)法加載新命令,成功防止了多個(gè)消息的混淆。
與串行服務(wù)器相比,網(wǎng)絡(luò)服務(wù)器的通信功能更加靈活,更加完善。右側(cè)是網(wǎng)絡(luò)IP地址,服務(wù)器啟動(dòng)和關(guān)閉以及服務(wù)器IP地址更改,該程序使用該結(jié)構(gòu)在相應(yīng)的結(jié)構(gòu)中存儲(chǔ)設(shè)備名稱、設(shè)備狀態(tài)、歷史信息以及下位計(jì)算機(jī)的IP地址[9]。
綜上所述,本文研究的串口服務(wù)器的網(wǎng)絡(luò)控制系統(tǒng)所有功能均正常,可以正常投入使用。串行端口服務(wù)器和網(wǎng)絡(luò)服務(wù)器正常連接到下部計(jì)算機(jī)后,它們可以及時(shí)與下部計(jì)算機(jī)傳輸消息,并且將響應(yīng)結(jié)果顯示到窗口并加以保存。串口服務(wù)器還能輪詢下位機(jī),并通過(guò)鏈表管理多個(gè)下位機(jī),進(jìn)行靈活通信。