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