王志秦
(唐山學(xué)院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)
王志秦
(唐山學(xué)院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng),利用嵌入式技術(shù)和以太網(wǎng)技術(shù)為PROFIBUS總線監(jiān)測(cè)和診斷提供了解決方案。該系統(tǒng)采用ARM嵌入式微處理器作為控制系統(tǒng)核心,利用嵌入式TCP/IP協(xié)議與PROFIBUS總線協(xié)議實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備的遠(yuǎn)程監(jiān)測(cè)和診斷。
以太網(wǎng);嵌入式監(jiān)測(cè)系統(tǒng);ARM;PROFIBUS
PROFIBUS總線廣泛應(yīng)用于現(xiàn)場(chǎng)工業(yè)控制設(shè)備中,是工業(yè)現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)規(guī)范之一?,F(xiàn)有小型工業(yè)企業(yè)控制系統(tǒng)升級(jí)改造和信息化集成過程中,迫切需求一種低成本的、基于以太網(wǎng)網(wǎng)絡(luò)的、對(duì)PROFIBUS總線控制系統(tǒng)進(jìn)行監(jiān)測(cè)和診斷的系統(tǒng)。現(xiàn)有的基于PC機(jī)和OPC技術(shù)的監(jiān)測(cè)和診斷系統(tǒng),技術(shù)復(fù)雜,不適應(yīng)惡劣的工業(yè)現(xiàn)場(chǎng)應(yīng)用場(chǎng)合,成本高,阻礙了監(jiān)測(cè)診斷系統(tǒng)的應(yīng)用發(fā)展[1]。
針對(duì)小型工業(yè)企業(yè)信息化集成度低,自動(dòng)控制系統(tǒng)遠(yuǎn)程監(jiān)測(cè)診斷技術(shù)復(fù)雜,設(shè)備成本高等特點(diǎn),研究以太網(wǎng)信息融合環(huán)境下PROFIBUS總線設(shè)備的遠(yuǎn)程監(jiān)測(cè)與診斷問題,將嵌入式技術(shù)、以太網(wǎng)技術(shù)和現(xiàn)場(chǎng)總線診斷技術(shù)相結(jié)合,設(shè)計(jì)基于PROFIBUS總線和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)。系統(tǒng)采用ARM嵌入式微處理器作為控制系統(tǒng)核心,利用嵌入式TCP/IP協(xié)議與PROFIBUS總線協(xié)議實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備的遠(yuǎn)程監(jiān)控和診斷。本系統(tǒng)能夠有效地對(duì)PROFIBUS總線控制系統(tǒng)進(jìn)行監(jiān)測(cè)和診斷,將控制系統(tǒng)的狀態(tài)和診斷信息傳輸給以太網(wǎng)的終端,具有成本低、智能化、信息集成化等特點(diǎn),可以較低成本方便地實(shí)現(xiàn)工業(yè)控制網(wǎng)絡(luò)與辦公網(wǎng)絡(luò)的信息化集成。
1.1 總體設(shè)計(jì)
基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)處于工業(yè)控制系統(tǒng)與局域以太網(wǎng)網(wǎng)絡(luò)之間,通過解析PROFIBUS網(wǎng)絡(luò)上傳輸?shù)膮f(xié)議數(shù)據(jù)獲得與監(jiān)測(cè)和診斷有關(guān)的有效信息,通過以太網(wǎng)網(wǎng)絡(luò)將數(shù)據(jù)傳送至特定的終端設(shè)備。系統(tǒng)原理如圖1所示。
圖1 系統(tǒng)原理圖
系統(tǒng)采用ARM處理器構(gòu)建嵌入式系統(tǒng)硬件設(shè)備,包含PROFIBUS總線協(xié)議接口芯片和以太網(wǎng)控制器接口芯片。ARM處理器具有處理速度快、成本低、片上資源豐富、功能強(qiáng)、編程方便、抗干擾能力強(qiáng)等優(yōu)點(diǎn),適合作為嵌入式系統(tǒng)設(shè)備的處理器核心。PROFIBUS總線協(xié)議的物理層協(xié)議符合RS485總線協(xié)議,可采用該類器件構(gòu)成接口電路,監(jiān)聽總線上的報(bào)文信息。以太網(wǎng)控制器接口器件集成了IEEE802.3協(xié)議標(biāo)準(zhǔn)的介質(zhì)訪問控制子層(MAC)和物理層的性能,支持以太網(wǎng)全雙工通信方式,支持UTP,AUI和BNC自動(dòng)檢測(cè),可以方便地與微處理器進(jìn)行接口。由以上器件構(gòu)成的系統(tǒng)再配以外部存儲(chǔ)器和必要功能模塊,作為系統(tǒng)的硬件基礎(chǔ)。系統(tǒng)硬件總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)硬件總體結(jié)構(gòu)圖
1.2 主控制器模塊
主控制器模塊的主要功能就是通過控制PROFIBUS-DP協(xié)議芯片及以太網(wǎng)接口芯片來實(shí)現(xiàn)對(duì)PROFIBUS總線進(jìn)行監(jiān)控,分析有效數(shù)據(jù)并轉(zhuǎn)換通信,主要包括CPU,復(fù)位電路等。
CPU采用具有ARM7內(nèi)核的嵌入式處理器LPC2214作為控制核心。它是由NXP半導(dǎo)體公司推出的一款基于ARM7TDMI-S的微控制器,具有外部RAM存儲(chǔ)器擴(kuò)展總線,可用于代碼或數(shù)據(jù)存儲(chǔ)。LPC2214微處理器是一款功能比較豐富,性能比較優(yōu)異,性價(jià)比較高的芯片[2]。
1.3 PROFIBUS-DP模塊
PROFIBUS-DP通信模塊主要負(fù)責(zé)微控制器和現(xiàn)場(chǎng)總線的數(shù)據(jù)通信,包括參數(shù)配置和數(shù)據(jù)交換。它的硬件電路主要由協(xié)議芯片VPC3+C和RS485接口組成。
VPC3+C是SIMENS公司提供的一種用于PROFIUBS-DP開放式工業(yè)現(xiàn)場(chǎng)總線智能化接口的芯片。它集成了全部的PROFIBUS-DP協(xié)議,其中包括方式寄存器、狀態(tài)寄存器、中斷寄存器、各種緩沖器指針和緩沖區(qū)等,從而減輕了智能從站的壓力,可用于12M波特率總線。VPC3+C支持所有8位處理機(jī)和微處理器。內(nèi)部的DART接口中,可完成并行數(shù)據(jù)流和串行數(shù)據(jù)流的互換[3]。
PROFIBUS-DP接口通過RS-485傳輸,VPC3+C通過RTS,TXD,RXD引腳與MAX3485的引腳相連。
1.4 以太網(wǎng)模塊
以太網(wǎng)控制器由CP2200以太網(wǎng)控制器與帶有隔離變壓器的RJ45接口構(gòu)成。CP2200以太網(wǎng)控制器是SILABS公司最新生產(chǎn)的單芯片以太網(wǎng)控制器。CP2200可以提供目前應(yīng)用最廣泛的局域網(wǎng)技術(shù),是體積較小和效能較高的以太網(wǎng)控制器。
1.5 其他功能模塊
該系統(tǒng)的SDRAM部分是系統(tǒng)運(yùn)行的主要區(qū)域,系統(tǒng)及用戶數(shù)據(jù)、堆棧均位于此。這里選用1片512K字節(jié)的IS61LV5128,數(shù)據(jù)總線寬度也是16位,占用的地址空間為Ox0c000000h-Ox0c080000h。系統(tǒng)電源管理模塊為系統(tǒng)不同模塊提供穩(wěn)定的電源供應(yīng)。JTAG接口提供系統(tǒng)調(diào)試功能。指示燈和按鍵提供系統(tǒng)運(yùn)行狀態(tài)和參數(shù)設(shè)定功能。
在系統(tǒng)硬件平臺(tái)的基礎(chǔ)上,移植嵌入式操作系統(tǒng)μC/OS-II以及嵌入式TCP/IP協(xié)議棧,通過軟件對(duì)PROFIBUS報(bào)文進(jìn)行解析,將提取出的有效信息發(fā)送給上位機(jī)終端。
2.1 嵌入式操作系統(tǒng)
本系統(tǒng)采用嵌入式操作系統(tǒng)實(shí)現(xiàn)系統(tǒng)任務(wù)的調(diào)度和管理。μC/OS-II是著名的、源碼公開的實(shí)時(shí)內(nèi)核,可用于各類8位、16位和32位單片機(jī)或DSP。它具有一個(gè)完整的、可移植、可固化、可剪裁的占先式實(shí)時(shí)多任務(wù)內(nèi)核,已有10多年應(yīng)用史,在諸多領(lǐng)域得到廣泛應(yīng)用。μC/OS-II的可移植性較強(qiáng),所以移植起來只需要在OS_CPU.H包含幾個(gè)類型的定義和幾個(gè)常數(shù)的定義;在OS_CPU_C.C和OS_CPU_A.ASM中包含幾個(gè)函數(shù)的定義和時(shí)鐘節(jié)拍中斷服務(wù)程序的代碼。
2.2 嵌入式TCP/IP協(xié)議
TCP/IP通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng),分別為:鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層,每一層都有相應(yīng)的協(xié)議集合來實(shí)現(xiàn)不同的功能,其層次結(jié)構(gòu)和主要的網(wǎng)絡(luò)協(xié)議如圖3所示。
圖3 TCP/IP層次結(jié)構(gòu)圖
為了既實(shí)現(xiàn)相應(yīng)的功能又節(jié)省系統(tǒng)資源,需要對(duì)協(xié)議進(jìn)行有針對(duì)性的模塊化裁剪,使其變?yōu)門CP/IP協(xié)議簇的一個(gè)子集。經(jīng)過裁剪后,只保留IP協(xié)議、TCP協(xié)議和UDP協(xié)議?;赑ROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng),為解決傳輸速率差別和冗余信息阻塞,連續(xù)一致型的系統(tǒng)狀態(tài)信息和診斷信息采用UDP協(xié)議進(jìn)行發(fā)送,變化型系統(tǒng)狀態(tài)信息和診斷信息采用TCP協(xié)議發(fā)送,終端控制信息采用TCP協(xié)議發(fā)送[4]。
2.3 PROFIBUS-DP報(bào)文解析
基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)利用軟件解析PROFIBUS總線報(bào)文,將診斷信息和控制信息發(fā)送給終端設(shè)備。PROFIBUS-DP通過數(shù)據(jù)鏈路層協(xié)議,在不可靠的物理鏈路上實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸。主站與從站之間的周期性數(shù)據(jù)傳輸采用主從方式,主站向從站發(fā)送或索取信息。系統(tǒng)針對(duì)PROFIBUS-DP不同的幀格式和SAP,通過軟件解析報(bào)文含義,將診斷信息發(fā)送給處理器。
2.3.1 PROFIBUS-DP數(shù)據(jù)交換
VPC3包括如下的服務(wù)訪問點(diǎn)(服務(wù)):缺省SAP(讀寫數(shù)據(jù)交換),SAP55(改變站地址),SAP56(讀輸入),SAP57(讀輸出),SAP58(向DP從站發(fā)控制命令),SAP59(讀組態(tài)數(shù)據(jù)),SAP60(讀從站診斷信息),SAP61(發(fā)送參數(shù)設(shè)置數(shù)據(jù)),SAP62(校驗(yàn)組態(tài)數(shù)據(jù))。VPC3中集成的PROFIBUS-DP狀態(tài)機(jī),用來描述PROFIBUS-DP站在每種情況下的行為。
在VPC3+C正常工作之前,需要進(jìn)行初始化以配置需要的寄存器。主站和VPC3+C通過默認(rèn)的服務(wù)訪問點(diǎn)交換數(shù)據(jù)。主站和VPC3+C通過服務(wù)訪問點(diǎn)SAP60處理診斷數(shù)據(jù),VPC3+C需要完成的任務(wù)主要包括以下5點(diǎn)。
①2個(gè)緩沖區(qū)可用,VPC3+C診斷數(shù)據(jù)發(fā)送緩沖區(qū)和用戶診斷緩沖區(qū)。
②用戶將外部診斷數(shù)據(jù)保存在Diag buffer中。
③有NEW DIAG CMD啟動(dòng)診斷數(shù)據(jù)的爆發(fā)。
④用“Diag buffer changed”確認(rèn)診斷數(shù)據(jù)己傳達(dá)。
⑤設(shè)置Diag_Flag,下一個(gè)讀寫周期將有高優(yōu)先權(quán)響應(yīng)新的診斷請(qǐng)求。
2.3.2 報(bào)文解析與封裝
PROFIBUS報(bào)文的一般結(jié)構(gòu)為:
SDLELErSDrDASAFCDUFCSED
第一個(gè)字節(jié)SD指明報(bào)文幀結(jié)構(gòu)。第二個(gè)字節(jié)LE為包括DA,SA,F(xiàn)C,DSAP,SSAP在內(nèi)的所有數(shù)據(jù)的長(zhǎng)度。第三個(gè)字節(jié)是LEr,通過判斷LE與LEr是否一致來判斷報(bào)文是否有誤。第四個(gè)字節(jié)SDr作用同LEr,判斷接收的報(bào)文是否有誤。FCS是校驗(yàn)碼。最后一個(gè)字節(jié)ED固定為0x16,用來標(biāo)志報(bào)文的結(jié)束。
解析過程的主要部分是完成DA,SA,F(xiàn)C,DSAP,SSAP,DU的解析。DA為報(bào)文的目的地址,SA為源地址。如果DA的最高位為0,則表示無DSAP;如果SA的最高位為0,則表示無SSAP。FC為功能碼,它標(biāo)識(shí)了報(bào)文幀的類型,同時(shí)包含了傳輸過程和相應(yīng)控制過程中的信息,如是否數(shù)據(jù)丟失或需要重復(fù)傳輸、站點(diǎn)的種類以及FDL的狀態(tài)等。DU為數(shù)據(jù)單元,如果有DSAP和SSAP,則除去SAP值剩余的DU值為具體數(shù)據(jù)。
數(shù)據(jù)封裝,在簡(jiǎn)單報(bào)文模塊完成數(shù)據(jù)的設(shè)置之后,即報(bào)文的DA,SA,F(xiàn)C及DU值已經(jīng)由用戶或操作員輸入,此時(shí)報(bào)文解析模塊完成對(duì)數(shù)據(jù)報(bào)文類型的選擇,進(jìn)行DSAP,SSAP的值的確定,計(jì)算LE(LEr),F(xiàn)CS的值,加入報(bào)頭SD和結(jié)束符ED,將整個(gè)報(bào)文進(jìn)行完整封裝,然后交由以太網(wǎng)轉(zhuǎn)換模塊進(jìn)行發(fā)送[5]。
對(duì)PROFIBUS總線的各種SAP報(bào)文進(jìn)行解析,將無用信息丟棄,將系統(tǒng)控制狀態(tài)和錯(cuò)誤診斷信息存儲(chǔ)于數(shù)據(jù)緩沖池,并逐一發(fā)送。
將基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)接入實(shí)驗(yàn)設(shè)備,PLC控制系統(tǒng)采用西門子S-300系列PLC,通過PROFIBUS-DP總線連接嵌入式監(jiān)測(cè)系統(tǒng),嵌入式監(jiān)測(cè)系統(tǒng)軟件預(yù)先設(shè)定IP地址和監(jiān)控變量,并連接實(shí)驗(yàn)用計(jì)算機(jī),計(jì)算機(jī)端通過網(wǎng)絡(luò)測(cè)試軟件接收監(jiān)測(cè)數(shù)據(jù)。實(shí)驗(yàn)系統(tǒng)針對(duì)具有80個(gè)數(shù)字量I/O和10個(gè)模擬量I/O的控制系統(tǒng)運(yùn)行狀態(tài)和診斷信息進(jìn)行處理和傳輸,當(dāng)改變系統(tǒng)環(huán)境和參數(shù)時(shí),需要重新設(shè)定系統(tǒng)軟件參數(shù)。PROFIBUS-DP總線傳輸速率為187.5 kbit/s,以太網(wǎng)傳輸速率為2 Mbit/s,數(shù)據(jù)包長(zhǎng)度為80至200字節(jié),以工作20 min采集的系統(tǒng)傳輸數(shù)據(jù)為例,系統(tǒng)傳輸信息的丟包率如表1所示。實(shí)驗(yàn)表明,UDP數(shù)據(jù)包丟包率雖然較高,但其發(fā)送的是重復(fù)性數(shù)據(jù),不影響關(guān)鍵數(shù)據(jù)接收。系統(tǒng)關(guān)鍵數(shù)據(jù)采用TCP協(xié)議發(fā)送,TCP數(shù)據(jù)包丟包率較低,系統(tǒng)的狀態(tài)數(shù)據(jù)和診斷數(shù)據(jù)能夠進(jìn)行有效傳輸。
表1 系統(tǒng)丟包率
基于PROFIBUS和以太網(wǎng)的嵌入式監(jiān)測(cè)系統(tǒng)利用嵌入式技術(shù)和以太網(wǎng)技術(shù)為PROFIBUS總線監(jiān)測(cè)診斷提供了解決方案。該系統(tǒng)能夠有效地對(duì)PROFIBUS總線控制系統(tǒng)進(jìn)行監(jiān)測(cè)和診斷,并將控制系統(tǒng)的狀態(tài)和錯(cuò)誤診斷信息傳輸給以太網(wǎng)網(wǎng)絡(luò)的終端,具有低成本、智能化、信息集成化等特點(diǎn),可以方便地實(shí)現(xiàn)工業(yè)控制網(wǎng)絡(luò)與辦公網(wǎng)絡(luò)的信息化集成。
[1] 周悅,于海斌.Profibus和FF現(xiàn)場(chǎng)總線的性能分析與評(píng)價(jià)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2004,22(4):434-437.
[2] 何一鳴,鮑玉軍.基于LPC2214的傳感器網(wǎng)關(guān)設(shè)計(jì)[J].南京航空航天大學(xué)學(xué)報(bào),2012,44(6):911-915.
[3] 肖紅翼,高建民.基于dsPIC的Modbus-Profibus-DP總線適配器的設(shè)計(jì)[J].自動(dòng)化與儀表,2012(3):29-32.
[4] 韓光潔,趙海.Embedded Internet環(huán)境下TCP/IP協(xié)議簇的約簡(jiǎn)[J].小型微型計(jì)算機(jī)系統(tǒng),2004,25(9):1602-1606.
[5] Lu Sheng, Liu Tan. Research on the communication and network organization of SIMATIC S7-300 based on PROFIBUS-DP[J]. Machine tool&Hydraulics,2007,35(9):15-19.
(責(zé)任編校:白麗娟)
A PROFIBUS and Ethernet Based Embedded Monitoring System
WANG Zhi-qin
(Department of Information Engineering, Tangshan College, Tangshan 063000, China)
The embedded monitoring system based on PROFIBUS and Ethernet combines embedded technology, Ethernet technology and field bus diagnostic technology. It uses the ARM embedded microprocessor as the core of the system. The embedded TCP/IP protocol and PROFIBUS protocol are used for monitoring and diagnostics.
Ethernet; embedded monitoring system; ARM; PROFIBUS
TP273.5
A
1672-349X(2015)03-0036-03
10.16160/j.cnki.tsxyxb.2015.03.013