王志秦
(唐山學院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太網的嵌入式監測系統
王志秦
(唐山學院 信息工程系,河北 唐山 063000)
基于PROFIBUS和以太網的嵌入式監測系統,利用嵌入式技術和以太網技術為PROFIBUS總線監測和診斷提供了解決方案。該系統采用ARM嵌入式微處理器作為控制系統核心,利用嵌入式TCP/IP協議與PROFIBUS總線協議實現對現場設備的遠程監測和診斷。
以太網;嵌入式監測系統;ARM;PROFIBUS
PROFIBUS總線廣泛應用于現場工業控制設備中,是工業現場總線標準規范之一。現有小型工業企業控制系統升級改造和信息化集成過程中,迫切需求一種低成本的、基于以太網網絡的、對PROFIBUS總線控制系統進行監測和診斷的系統。現有的基于PC機和OPC技術的監測和診斷系統,技術復雜,不適應惡劣的工業現場應用場合,成本高,阻礙了監測診斷系統的應用發展[1]。
針對小型工業企業信息化集成度低,自動控制系統遠程監測診斷技術復雜,設備成本高等特點,研究以太網信息融合環境下PROFIBUS總線設備的遠程監測與診斷問題,將嵌入式技術、以太網技術和現場總線診斷技術相結合,設計基于PROFIBUS總線和以太網的嵌入式監測系統。系統采用ARM嵌入式微處理器作為控制系統核心,利用嵌入式TCP/IP協議與PROFIBUS總線協議實現對現場設備的遠程監控和診斷。本系統能夠有效地對PROFIBUS總線控制系統進行監測和診斷,將控制系統的狀態和診斷信息傳輸給以太網的終端,具有成本低、智能化、信息集成化等特點,可以較低成本方便地實現工業控制網絡與辦公網絡的信息化集成。
1.1 總體設計
基于PROFIBUS和以太網的嵌入式監測系統處于工業控制系統與局域以太網網絡之間,通過解析PROFIBUS網絡上傳輸的協議數據獲得與監測和診斷有關的有效信息,通過以太網網絡將數據傳送至特定的終端設備。系統原理如圖1所示。

圖1 系統原理圖
系統采用ARM處理器構建嵌入式系統硬件設備,包含PROFIBUS總線協議接口芯片和以太網控制器接口芯片。ARM處理器具有處理速度快、成本低、片上資源豐富、功能強、編程方便、抗干擾能力強等優點,適合作為嵌入式系統設備的處理器核心。PROFIBUS總線協議的物理層協議符合RS485總線協議,可采用該類器件構成接口電路,監聽總線上的報文信息。以太網控制器接口器件集成了IEEE802.3協議標準的介質訪問控制子層(MAC)和物理層的性能,支持以太網全雙工通信方式,支持UTP,AUI和BNC自動檢測,可以方便地與微處理器進行接口。由以上器件構成的系統再配以外部存儲器和必要功能模塊,作為系統的硬件基礎。系統硬件總體結構如圖2所示。

圖2 系統硬件總體結構圖
1.2 主控制器模塊
主控制器模塊的主要功能就是通過控制PROFIBUS-DP協議芯片及以太網接口芯片來實現對PROFIBUS總線進行監控,分析有效數據并轉換通信,主要包括CPU,復位電路等。
CPU采用具有ARM7內核的嵌入式處理器LPC2214作為控制核心。它是由NXP半導體公司推出的一款基于ARM7TDMI-S的微控制器,具有外部RAM存儲器擴展總線,可用于代碼或數據存儲。LPC2214微處理器是一款功能比較豐富,性能比較優異,性價比較高的芯片[2]。
1.3 PROFIBUS-DP模塊
PROFIBUS-DP通信模塊主要負責微控制器和現場總線的數據通信,包括參數配置和數據交換。它的硬件電路主要由協議芯片VPC3+C和RS485接口組成。
VPC3+C是SIMENS公司提供的一種用于PROFIUBS-DP開放式工業現場總線智能化接口的芯片。它集成了全部的PROFIBUS-DP協議,其中包括方式寄存器、狀態寄存器、中斷寄存器、各種緩沖器指針和緩沖區等,從而減輕了智能從站的壓力,可用于12M波特率總線。VPC3+C支持所有8位處理機和微處理器。內部的DART接口中,可完成并行數據流和串行數據流的互換[3]。
PROFIBUS-DP接口通過RS-485傳輸,VPC3+C通過RTS,TXD,RXD引腳與MAX3485的引腳相連。
1.4 以太網模塊
以太網控制器由CP2200以太網控制器與帶有隔離變壓器的RJ45接口構成。CP2200以太網控制器是SILABS公司最新生產的單芯片以太網控制器。CP2200可以提供目前應用最廣泛的局域網技術,是體積較小和效能較高的以太網控制器。
1.5 其他功能模塊
該系統的SDRAM部分是系統運行的主要區域,系統及用戶數據、堆棧均位于此。這里選用1片512K字節的IS61LV5128,數據總線寬度也是16位,占用的地址空間為Ox0c000000h-Ox0c080000h。系統電源管理模塊為系統不同模塊提供穩定的電源供應。JTAG接口提供系統調試功能。指示燈和按鍵提供系統運行狀態和參數設定功能。
在系統硬件平臺的基礎上,移植嵌入式操作系統μC/OS-II以及嵌入式TCP/IP協議棧,通過軟件對PROFIBUS報文進行解析,將提取出的有效信息發送給上位機終端。
2.1 嵌入式操作系統
本系統采用嵌入式操作系統實現系統任務的調度和管理。μC/OS-II是著名的、源碼公開的實時內核,可用于各類8位、16位和32位單片機或DSP。它具有一個完整的、可移植、可固化、可剪裁的占先式實時多任務內核,已有10多年應用史,在諸多領域得到廣泛應用。μC/OS-II的可移植性較強,所以移植起來只需要在OS_CPU.H包含幾個類型的定義和幾個常數的定義;在OS_CPU_C.C和OS_CPU_A.ASM中包含幾個函數的定義和時鐘節拍中斷服務程序的代碼。
2.2 嵌入式TCP/IP協議
TCP/IP通常被認為是一個四層協議系統,分別為:鏈路層、網絡層、傳輸層、應用層,每一層都有相應的協議集合來實現不同的功能,其層次結構和主要的網絡協議如圖3所示。

圖3 TCP/IP層次結構圖
為了既實現相應的功能又節省系統資源,需要對協議進行有針對性的模塊化裁剪,使其變為TCP/IP協議簇的一個子集。經過裁剪后,只保留IP協議、TCP協議和UDP協議。基于PROFIBUS和以太網的嵌入式監測系統,為解決傳輸速率差別和冗余信息阻塞,連續一致型的系統狀態信息和診斷信息采用UDP協議進行發送,變化型系統狀態信息和診斷信息采用TCP協議發送,終端控制信息采用TCP協議發送[4]。
2.3 PROFIBUS-DP報文解析
基于PROFIBUS和以太網的嵌入式監測系統利用軟件解析PROFIBUS總線報文,將診斷信息和控制信息發送給終端設備。PROFIBUS-DP通過數據鏈路層協議,在不可靠的物理鏈路上實現可靠的數據傳輸。主站與從站之間的周期性數據傳輸采用主從方式,主站向從站發送或索取信息。系統針對PROFIBUS-DP不同的幀格式和SAP,通過軟件解析報文含義,將診斷信息發送給處理器。
2.3.1 PROFIBUS-DP數據交換
VPC3包括如下的服務訪問點(服務):缺省SAP(讀寫數據交換),SAP55(改變站地址),SAP56(讀輸入),SAP57(讀輸出),SAP58(向DP從站發控制命令),SAP59(讀組態數據),SAP60(讀從站診斷信息),SAP61(發送參數設置數據),SAP62(校驗組態數據)。VPC3中集成的PROFIBUS-DP狀態機,用來描述PROFIBUS-DP站在每種情況下的行為。
在VPC3+C正常工作之前,需要進行初始化以配置需要的寄存器。主站和VPC3+C通過默認的服務訪問點交換數據。主站和VPC3+C通過服務訪問點SAP60處理診斷數據,VPC3+C需要完成的任務主要包括以下5點。
①2個緩沖區可用,VPC3+C診斷數據發送緩沖區和用戶診斷緩沖區。
②用戶將外部診斷數據保存在Diag buffer中。
③有NEW DIAG CMD啟動診斷數據的爆發。
④用“Diag buffer changed”確認診斷數據己傳達。
⑤設置Diag_Flag,下一個讀寫周期將有高優先權響應新的診斷請求。
2.3.2 報文解析與封裝
PROFIBUS報文的一般結構為:

SDLELErSDrDASAFCDUFCSED
第一個字節SD指明報文幀結構。第二個字節LE為包括DA,SA,FC,DSAP,SSAP在內的所有數據的長度。第三個字節是LEr,通過判斷LE與LEr是否一致來判斷報文是否有誤。第四個字節SDr作用同LEr,判斷接收的報文是否有誤。FCS是校驗碼。最后一個字節ED固定為0x16,用來標志報文的結束。
解析過程的主要部分是完成DA,SA,FC,DSAP,SSAP,DU的解析。DA為報文的目的地址,SA為源地址。如果DA的最高位為0,則表示無DSAP;如果SA的最高位為0,則表示無SSAP。FC為功能碼,它標識了報文幀的類型,同時包含了傳輸過程和相應控制過程中的信息,如是否數據丟失或需要重復傳輸、站點的種類以及FDL的狀態等。DU為數據單元,如果有DSAP和SSAP,則除去SAP值剩余的DU值為具體數據。
數據封裝,在簡單報文模塊完成數據的設置之后,即報文的DA,SA,FC及DU值已經由用戶或操作員輸入,此時報文解析模塊完成對數據報文類型的選擇,進行DSAP,SSAP的值的確定,計算LE(LEr),FCS的值,加入報頭SD和結束符ED,將整個報文進行完整封裝,然后交由以太網轉換模塊進行發送[5]。
對PROFIBUS總線的各種SAP報文進行解析,將無用信息丟棄,將系統控制狀態和錯誤診斷信息存儲于數據緩沖池,并逐一發送。
將基于PROFIBUS和以太網的嵌入式監測系統接入實驗設備,PLC控制系統采用西門子S-300系列PLC,通過PROFIBUS-DP總線連接嵌入式監測系統,嵌入式監測系統軟件預先設定IP地址和監控變量,并連接實驗用計算機,計算機端通過網絡測試軟件接收監測數據。實驗系統針對具有80個數字量I/O和10個模擬量I/O的控制系統運行狀態和診斷信息進行處理和傳輸,當改變系統環境和參數時,需要重新設定系統軟件參數。PROFIBUS-DP總線傳輸速率為187.5 kbit/s,以太網傳輸速率為2 Mbit/s,數據包長度為80至200字節,以工作20 min采集的系統傳輸數據為例,系統傳輸信息的丟包率如表1所示。實驗表明,UDP數據包丟包率雖然較高,但其發送的是重復性數據,不影響關鍵數據接收。系統關鍵數據采用TCP協議發送,TCP數據包丟包率較低,系統的狀態數據和診斷數據能夠進行有效傳輸。

表1 系統丟包率
基于PROFIBUS和以太網的嵌入式監測系統利用嵌入式技術和以太網技術為PROFIBUS總線監測診斷提供了解決方案。該系統能夠有效地對PROFIBUS總線控制系統進行監測和診斷,并將控制系統的狀態和錯誤診斷信息傳輸給以太網網絡的終端,具有低成本、智能化、信息集成化等特點,可以方便地實現工業控制網絡與辦公網絡的信息化集成。
[1] 周悅,于海斌.Profibus和FF現場總線的性能分析與評價[J].吉林大學學報:信息科學版,2004,22(4):434-437.
[2] 何一鳴,鮑玉軍.基于LPC2214的傳感器網關設計[J].南京航空航天大學學報,2012,44(6):911-915.
[3] 肖紅翼,高建民.基于dsPIC的Modbus-Profibus-DP總線適配器的設計[J].自動化與儀表,2012(3):29-32.
[4] 韓光潔,趙海.Embedded Internet環境下TCP/IP協議簇的約簡[J].小型微型計算機系統,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