基于Modbus TCP和WEB的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)
摘要:為了實(shí)時(shí)、便捷地了解測(cè)控現(xiàn)場(chǎng)設(shè)備運(yùn)行的狀況,設(shè)計(jì)了一種基于Modbus TCP和WEB的實(shí)時(shí)監(jiān)控系統(tǒng)。該系統(tǒng)設(shè)計(jì)基于dsPIC30F6014單片機(jī),實(shí)現(xiàn)對(duì)采集模塊的控制,并通過(guò)ASP.NET創(chuàng)建的動(dòng)態(tài)WEB瀏覽器和SQL強(qiáng)大的數(shù)據(jù)庫(kù)功能完成實(shí)時(shí)監(jiān)控。結(jié)果表明,該系統(tǒng)能快速、方便、實(shí)時(shí)地動(dòng)態(tài)顯示設(shè)備的各項(xiàng)運(yùn)行指標(biāo)。
引言
隨著自動(dòng)化行業(yè)和控制技術(shù)的不斷發(fā)展和進(jìn)步,現(xiàn)場(chǎng)設(shè)備之間的通信不再僅僅局限于設(shè)備與控制器之間,人機(jī)之間的交互也越來(lái)越普遍?,F(xiàn)場(chǎng)總線作為信息傳輸?shù)闹鞲傻?,已?jīng)不再局限于現(xiàn)場(chǎng)的短距離通信,其應(yīng)用規(guī)模日益擴(kuò)大、復(fù)雜化,人們對(duì)現(xiàn)場(chǎng)設(shè)備的監(jiān)控也提出了越來(lái)越高的要求。封閉的總線環(huán)境已經(jīng)不能滿足現(xiàn)代自動(dòng)化控制的要求,為了降低設(shè)備的維護(hù)成本,提高企業(yè)和公司的生產(chǎn)效率,需要對(duì)現(xiàn)場(chǎng)設(shè)備的運(yùn)行進(jìn)行實(shí)時(shí)的監(jiān)測(cè)和控制。
近年來(lái),大量先進(jìn)的遠(yuǎn)程監(jiān)控技術(shù)開(kāi)始應(yīng)用于現(xiàn)場(chǎng)總線和遠(yuǎn)程客戶端的交換,但Modbus協(xié)議目前還僅限于現(xiàn)場(chǎng)總線上,只有基于TCP/IP的協(xié)議才能通過(guò)以太網(wǎng)實(shí)現(xiàn)超遠(yuǎn)距離的傳輸,為此 Modbus TCP/IP應(yīng)運(yùn)而生。筆者通過(guò)對(duì)Modbus TCP協(xié)議的研究,將油井現(xiàn)場(chǎng)采集的數(shù)據(jù)通過(guò)以太網(wǎng)、WiFi等設(shè)備傳送到遠(yuǎn)距離的客戶端,并通過(guò)瀏覽器終端實(shí)時(shí)地顯示現(xiàn)場(chǎng)設(shè)備的運(yùn)行狀況,為客戶提供一種遠(yuǎn)程實(shí)時(shí)監(jiān)控的解決方案。
1 監(jiān)控系統(tǒng)的總體設(shè)計(jì)
本監(jiān)控系統(tǒng)的設(shè)計(jì)原理:利用dsPIC30F6014A單片機(jī)搭載底層的硬件電路采集數(shù)據(jù),采用Modbus TCP/IP協(xié)議通過(guò)無(wú)線收發(fā)器傳輸至Int ernet,在此基礎(chǔ)之上,利用C#語(yǔ)言編程,結(jié)合ASP.NET創(chuàng)建的動(dòng)態(tài)WEB頁(yè)面和SQL Server數(shù)據(jù)庫(kù)的訪問(wèn)鏈接技術(shù),設(shè)計(jì)了一種實(shí)時(shí)監(jiān)控的WEB平臺(tái),達(dá)到了對(duì)現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)監(jiān)控的目的。
實(shí)時(shí)監(jiān)控系統(tǒng)主要由現(xiàn)場(chǎng)采集系統(tǒng)、數(shù)據(jù)傳輸、數(shù)據(jù)庫(kù)系統(tǒng)、客戶端系統(tǒng)4部分組成,其總體示意圖如圖1所示。
在本監(jiān)控系統(tǒng)中,現(xiàn)場(chǎng)采集系統(tǒng)主要由單片機(jī)系統(tǒng)和RTU組成,單片機(jī)系統(tǒng)采集數(shù)據(jù)并傳給RTU,RTU將數(shù)據(jù)進(jìn)行存儲(chǔ),并隨時(shí)等待服務(wù)器端的數(shù)據(jù)請(qǐng)求命令。當(dāng)收到服務(wù)器端數(shù)據(jù)請(qǐng)求命令時(shí),RTU根據(jù)傳輸?shù)木嚯x選擇不同的傳輸方式,近距離傳輸選用無(wú)線模塊傳輸,遠(yuǎn)距離傳輸選擇Internet網(wǎng)絡(luò)傳輸,數(shù)據(jù)庫(kù)服務(wù)器對(duì)上傳的數(shù)據(jù)進(jìn)行分析和判斷,將符合信息幀格式的數(shù)據(jù)進(jìn)行處理并存儲(chǔ)在數(shù)據(jù)庫(kù)中。同時(shí),采用B /S模式,瀏覽器終端用戶可通過(guò)在瀏覽器地址欄輸入服務(wù)器IP,以動(dòng)態(tài)網(wǎng)頁(yè)的形式瀏覽、查詢多個(gè)設(shè)備數(shù)據(jù);享有權(quán)限的管理人員可對(duì)生產(chǎn)現(xiàn)場(chǎng)設(shè)備進(jìn)行遠(yuǎn)程管理和控制。只要有網(wǎng)絡(luò)的地方就能使用該系統(tǒng),實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)實(shí)時(shí)監(jiān)控。
2 硬件原理設(shè)計(jì)
圖2為下位機(jī)硬件原理框圖。其核心是dsPIC30F6014A單片機(jī),主要由數(shù)據(jù)采集模塊、電路保護(hù)模塊、傳輸模塊和系統(tǒng)配置模塊組成。傳感器對(duì)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行采集,通過(guò)A/D轉(zhuǎn)換送到單片機(jī),單片機(jī)經(jīng)UART串口和無(wú)線模塊將數(shù)據(jù)傳送到嵌入式TCP/IP協(xié)議串口服務(wù)器,并通過(guò)Internet上傳至數(shù)據(jù)庫(kù)服務(wù)器中存儲(chǔ)。瀏覽器終端可以通過(guò)WEB服務(wù)器訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器了解現(xiàn)場(chǎng)設(shè)備的運(yùn)行狀態(tài)。為了保證系統(tǒng)的安全可靠性,在設(shè)計(jì)中添加了過(guò)流、過(guò)壓、和防雷擊等保護(hù)電路。硬件實(shí)物圖如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件的總體結(jié)構(gòu)如圖4所示,作為監(jiān)控系統(tǒng)的管理人員,在瀏覽器終端可以實(shí)現(xiàn)用戶管理、數(shù)據(jù)處理、瀏覽器實(shí)時(shí)顯示當(dāng)前數(shù)據(jù)和歷史數(shù)據(jù)查詢4個(gè)功能模塊的操作。在用戶管理界面,可以實(shí)現(xiàn)密碼設(shè)置、用戶添加和權(quán)限沒(méi)置等功能;在數(shù)據(jù)處理中,管理人員可以對(duì)上傳的數(shù)據(jù)進(jìn)行存儲(chǔ)備份,并保存到數(shù)據(jù)庫(kù)服務(wù)器中,以供瀏覽器終端訪問(wèn);在WEB平臺(tái)中,可以對(duì)上傳的數(shù)據(jù)進(jìn)行實(shí)時(shí)的顯示,對(duì)歷史數(shù)據(jù)可以進(jìn)行隨時(shí)查詢和曲線分析。
4 Modbus TCP協(xié)議
Modbus TCP協(xié)議以一種非常簡(jiǎn)單的方式將Modbus幀嵌入到TCP幀中,使其成為工業(yè)以太網(wǎng)應(yīng)用層協(xié)議,并以其簡(jiǎn)單性、開(kāi)放性、實(shí)時(shí)性及數(shù)據(jù)傳輸量大等特點(diǎn),在工業(yè)自動(dòng)化領(lǐng)域得到廣泛的應(yīng)用。
Modbus TCP協(xié)議規(guī)定每個(gè)控制器都需要有自己的地址,按地址識(shí)別發(fā)來(lái)的消息。如果需要回應(yīng),則控制器生成反饋信息并用Modbus TCP協(xié)議幀發(fā)出,但格式必須嚴(yán)格遵守協(xié)議規(guī)定,其應(yīng)用數(shù)據(jù)單元(ADU)由MBAP報(bào)文頭、功能碼和數(shù)據(jù)域3部分構(gòu)成,如圖5所示。
5 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)
5.1 現(xiàn)場(chǎng)與服務(wù)器端的數(shù)據(jù)傳輸
當(dāng)油井分布較分散,傳輸距離比較遠(yuǎn)且超過(guò)1 km時(shí),可以使用GPRS網(wǎng)絡(luò)進(jìn)行傳輸;當(dāng)油井分布比較集中,傳輸距離近,不超過(guò)1 km時(shí),可選擇使用無(wú)線模塊進(jìn)行組網(wǎng)傳輸。
現(xiàn)場(chǎng)與服務(wù)器端的數(shù)據(jù)傳輸流程如圖6所示,在系統(tǒng)運(yùn)行時(shí)應(yīng)首先啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器、初始化套接字庫(kù)。建立通信套接字后,服務(wù)器進(jìn)入端口監(jiān)聽(tīng)狀態(tài)。當(dāng)有現(xiàn)場(chǎng)終端向服務(wù)器發(fā)出連接請(qǐng)求時(shí),服務(wù)器開(kāi)一個(gè)線程建立連接,并啟動(dòng)數(shù)據(jù)請(qǐng)求定時(shí)器。當(dāng)定時(shí)時(shí)間到時(shí),服務(wù)器向已建立連接的現(xiàn)場(chǎng)終端發(fā)送Modbus TCP協(xié)議請(qǐng)求幀格式的數(shù)據(jù)請(qǐng)求?,F(xiàn)場(chǎng)終端在接收到數(shù)據(jù)請(qǐng)求后,對(duì)信息幀格式進(jìn)行分析,如果符合協(xié)議,則將數(shù)據(jù)按照Modbus TCP協(xié)議響應(yīng)幀格式上傳,否則不響應(yīng)。
5.2 瀏覽器端與服務(wù)器端的數(shù)據(jù)傳輸
B/S模式是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,即瀏覽器/服務(wù)器,與C/S模式相比,具有可以隨時(shí)隨地進(jìn)行查詢和瀏覽、維護(hù)簡(jiǎn)單方便、更新簡(jiǎn)單以及共享性強(qiáng)等特點(diǎn),符合實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控系統(tǒng)的發(fā)展要求。瀏覽器端與服務(wù)器端的數(shù)據(jù)傳輸采用的就是B/S模式。
B/S模式的工作流程如圖7所示。當(dāng)客戶端通過(guò)瀏覽器終端訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器時(shí),首先瀏覽器端通過(guò)Internet發(fā)出一個(gè)WEB請(qǐng)求,當(dāng)WEB服務(wù)器收到請(qǐng)求后,將請(qǐng)求交給ASP.NET Framework,此時(shí)ASP.NET Framework會(huì)向數(shù)據(jù)庫(kù)服務(wù)器請(qǐng)求合適的源代碼文件。數(shù)據(jù)庫(kù)服務(wù)器將源代碼的內(nèi)容返回給ASP.NET Framework,后者執(zhí)行源代碼生成HTML輸出返回給WEB服務(wù)器,這時(shí)WEB服務(wù)器會(huì)將請(qǐng)求的文件以動(dòng)態(tài)網(wǎng)頁(yè)的方式將HTML顯示在計(jì)算機(jī)瀏覽器頁(yè)面上。
結(jié)語(yǔ)
本文提出并實(shí)現(xiàn)了基于ModbusTCP及WEB的實(shí)時(shí)監(jiān)控系統(tǒng),較完善地實(shí)現(xiàn)了油井現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)監(jiān)控。系統(tǒng)基于功能強(qiáng)大的dsPIC30F6014單片機(jī)開(kāi)發(fā)了底層硬件環(huán)境,開(kāi)放式的ModbusTCP通信協(xié)議,靈活的組網(wǎng)方式,結(jié)合最新的ASP.NET技術(shù)的B/S模式與SQL數(shù)據(jù)庫(kù)的設(shè)計(jì),使系統(tǒng)具備界面友好、功能強(qiáng)大、執(zhí)行速度快且系統(tǒng)容錯(cuò)性、兼容擴(kuò)展性好等特點(diǎn),不僅能完成油井的監(jiān)控,而且可廣泛運(yùn)用于工業(yè)現(xiàn)場(chǎng)的任何智能設(shè)備,具有很好的推廣前景。
標(biāo)簽: Modbus TCP PIC30F6014單片機(jī) ASP.NET WEB瀏覽器 實(shí)時(shí)