摘 要:本文分析了PROFIBUS-DP現(xiàn)場(chǎng)總線的基本特性和通訊協(xié)議,介紹了一種基于赫優(yōu)訊嵌入式模塊COM-C的PROFIBUS-DP主站系統(tǒng)的設(shè)計(jì)方案,并在DCS系統(tǒng)中成功應(yīng)用。目前,該系統(tǒng)已投入現(xiàn)場(chǎng)運(yùn)行,穩(wěn)定可靠,取得很好的實(shí)效。
關(guān)鍵字:PROFIBUS-DP主站;現(xiàn)場(chǎng)總線;DCS系統(tǒng);嵌入式模塊
[b][align=center]The design of PROFIBUS-DP Master system based on Hilscher embedded module
ZHANG Xiao-gang, DENG Wu-peng[/align][/b]
Abstract: This paper analyzes the character and protocol of PROFIBUS-DP, and introduces one solution of PROFIBUS-DP Master system based on Hilscher embedded module, which is applied in DCS successfully. The system runs steadily on the field, and gets good feedback from customers.
Key words: PROFIBUS-DP Master, Fieldbus, DCS, Embedded module
0 引言
現(xiàn)場(chǎng)總線是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)。它的出現(xiàn),標(biāo)志著工業(yè)控制技術(shù)領(lǐng)域又一個(gè)新時(shí)代的開始,并將對(duì)該領(lǐng)域的發(fā)展產(chǎn)生重要影響。
作為歐洲首屈一指的開放式現(xiàn)場(chǎng)總線PROFIBUS(Process Fieldbus)已經(jīng)被全世界所接受,成為國(guó)際化的開放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),并在中國(guó)發(fā)展迅速,廣泛應(yīng)用于加工制造、過程等自動(dòng)化領(lǐng)域中。
目前,越來越多的國(guó)內(nèi)自動(dòng)化設(shè)備制造商都已開發(fā)出了帶有PROFIBUS從站接口的設(shè)備,并在市場(chǎng)上獲得廣泛的認(rèn)可。然而,自主開發(fā)的帶有PROFIBUS主站通訊接口的設(shè)備卻很少。本文介紹了一種基于嵌入式模塊COM-C的PROFIBUS-DP主站系統(tǒng)的設(shè)計(jì)方案,基于該方案設(shè)計(jì)的產(chǎn)品已經(jīng)在浙江中控的WebField ECS-100 DCS系統(tǒng)中得到成功應(yīng)用。
1 PROFIBUS-DP通訊協(xié)議
1.1 PROFIBUS的組成
PROFIBUS是由西門子公司推出的一種開放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),是德國(guó)標(biāo)準(zhǔn)(DIN19245)和歐洲標(biāo)準(zhǔn)(EN50170)的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),并已納入國(guó)際標(biāo)準(zhǔn)IEC 61158中。它是一種具有廣泛應(yīng)用范圍的、開放的數(shù)字通信系統(tǒng),特別適用于工廠自動(dòng)化和過程自動(dòng)化領(lǐng)域。
PROFIBUS由相互兼容的三個(gè)部分組成,即PROFIBUS-FMS、PROFIBUS-DP、PROFIBUS-PA。
PROFIBUS-FMS:用于車間級(jí)通用的控制及通信任務(wù),是一個(gè)令牌環(huán)結(jié)構(gòu)、實(shí)時(shí)多主網(wǎng)絡(luò)。
PROFIBUS-DP:是一種高速且優(yōu)化的通信方案,主要用于實(shí)現(xiàn)現(xiàn)場(chǎng)級(jí)控制與分布式I/O及其他現(xiàn)場(chǎng)級(jí)設(shè)備之間的通信。
PROFIBUS-PA:專為過程自動(dòng)化而設(shè)計(jì),符合本征安全規(guī)范,適用于防爆區(qū)的應(yīng)用。
PROFIBUS這三層協(xié)議使其成為能夠提供制造業(yè)自動(dòng)化、工程自動(dòng)化、樓宇自動(dòng)化以及電力自動(dòng)化完整解決方案的唯一的現(xiàn)場(chǎng)總線系統(tǒng)。
1.2 PROFIBUS-DP
PROFIBUS-DP協(xié)議設(shè)計(jì)用于現(xiàn)場(chǎng)層的快速數(shù)據(jù)交換,中央可編程控制器(如,PLC、PC或過程控制系統(tǒng))通過快速串行連接與分散的現(xiàn)場(chǎng)設(shè)備(如,I/O、驅(qū)動(dòng)器、閥門或變送器)進(jìn)行通信。依據(jù)各種應(yīng)用領(lǐng)域的特殊需求,已經(jīng)用特殊功能逐步地?cái)U(kuò)展了DP的基本功能,目前有三種版本:DP-V0,DP-V1和DP-V2,每一種版本都有自己專用的關(guān)鍵特性,如圖1所示。版本的這種區(qū)別,主要反映了依據(jù)不斷增長(zhǎng)的應(yīng)用需求而完成的規(guī)范工作的時(shí)間順序。
[align=center]
圖1 PROFIBUS-DP各版本的主要功能[/align]
DP-V0提供DP基本功能,包括循環(huán)的數(shù)據(jù)交換,以及站診斷、模塊診斷和特定通道的診斷。
DP-V1包含依據(jù)過程自動(dòng)化的需求而增加的功能,特別是用于參數(shù)賦值、操作、智能現(xiàn)場(chǎng)設(shè)備的可視化和報(bào)警處理等的非循環(huán)的數(shù)據(jù)通信。此外,DP-V1有三種附加的報(bào)警類型:狀況報(bào)警,刷新報(bào)警和制造商專用的報(bào)警。
DP-V2包含主要根據(jù)驅(qū)動(dòng)技術(shù)的需求而增加的其它功能。由于增加的功能,如等時(shí)同步從站模式和從站與從站通信等,DP-V2也可以被實(shí)現(xiàn)為驅(qū)動(dòng)總線,用于控制驅(qū)動(dòng)軸的快速運(yùn)動(dòng)時(shí)序。
2 PROFIBUS-DP主站系統(tǒng)設(shè)計(jì)
PROFIBUS是一種開放的標(biāo)準(zhǔn),原則上,該協(xié)議可以在任何處理器上實(shí)現(xiàn)。目前,自動(dòng)化廠商在開發(fā)PROFIBUS-DP主站設(shè)備時(shí),主要有以下三種解決方案:
1. 軟PROFIBUS主站,該方案完全由軟件來實(shí)現(xiàn)PROFIBUS協(xié)議,由微處理器來運(yùn)行完整的協(xié)議堆棧。該方案開發(fā)難度和開發(fā)風(fēng)險(xiǎn)都特別大,開發(fā)周期也長(zhǎng),而且需要開發(fā)人員對(duì)PROFIBUS協(xié)議、框架特別熟悉。產(chǎn)品開發(fā)出來后,需要送歐洲進(jìn)行協(xié)議一致性測(cè)試和認(rèn)證。
2. 專用ASIC芯片外加擴(kuò)展固化程序Firmware,該方案是采用較多的一種,由專用的ASIC芯片實(shí)現(xiàn)PROFIBUS協(xié)議數(shù)據(jù)鏈路層的介質(zhì)訪問控制功能;而數(shù)據(jù)鏈路層的其他功能和應(yīng)用層的功能則由微處理器運(yùn)行其擴(kuò)展固化程序?qū)崿F(xiàn)。但是,目前國(guó)內(nèi)市場(chǎng)很難購(gòu)買到Firmware,如果由用戶自己編寫Firmware則難度增加,開發(fā)周期也長(zhǎng),同樣需要送歐洲進(jìn)行協(xié)議一致性測(cè)試和認(rèn)證。
3. 嵌入式模塊主站,該方案是開發(fā)PROFIBUS-DP主站設(shè)備采用最多的一種,模塊內(nèi)部已經(jīng)集成專用的ASIC芯片和固化程序Firmware。該方案開發(fā)難度和開發(fā)風(fēng)險(xiǎn)都大大減少,開發(fā)周期縮減,并且協(xié)議已經(jīng)通過了一致性測(cè)試和認(rèn)證。
本文采用的是第三種方案——嵌入式模塊主站,使用的是德國(guó)赫優(yōu)訊(Hilscher)自動(dòng)化系統(tǒng)有限公司的嵌入式模塊COM-CN-DPM(PROFIBUS-DP Master),由該模塊實(shí)現(xiàn)PROFIBUS-DP主站協(xié)議,主機(jī)系統(tǒng)通過嵌入式模塊提供的雙端口內(nèi)存(Dual-Port Memory,DPM)接口與模塊進(jìn)行數(shù)據(jù)通信,用戶不需要關(guān)心PROFIBUS協(xié)議的具體實(shí)現(xiàn),只需往DPM接口讀/寫數(shù)據(jù)就可以,因此,該模塊就像一個(gè)內(nèi)存,使用起來非常方便。
2.1 硬件設(shè)計(jì)
嵌入式模塊COM-CN-DPM提供給用戶的硬件接口有X1和X2兩個(gè)排針連接頭,X1連接頭(50根管腳),即雙端口內(nèi)存接口,包含與主機(jī)通信必備的控制線、數(shù)據(jù)線和地址線。X2連接頭(30根管腳),即現(xiàn)場(chǎng)總線接口,包含PROFIBUS信號(hào)線以及LED狀態(tài)指示燈。
嵌入式模塊COM-C與主機(jī)接口電路如圖2所示。由于PROFIBUS協(xié)議都由模塊內(nèi)部實(shí)現(xiàn),因此用戶應(yīng)用程序只需通過提供的API接口和訪問方式,對(duì)雙端口內(nèi)存進(jìn)行讀/寫操作。通過現(xiàn)場(chǎng)總線接口,將PROFIBUS信號(hào)線引出,只需在母板上連接一個(gè)9針D-Sub連接頭,通過此接口將模塊連接到PROFIBUS-DP網(wǎng)絡(luò)中。該模塊同時(shí)提供LED狀態(tài)指示燈,可將LED信號(hào)線引出到母板上,方便用于診斷模塊的通信狀況。
[align=center]
圖2 嵌入式模塊與主機(jī)接口電路[/align]
由于該模塊已經(jīng)集成實(shí)現(xiàn)PROFIBUS協(xié)議的所有必備電路,因此在外圍電路設(shè)計(jì)的時(shí)候非常簡(jiǎn)單方便,其電路連接與MCU和內(nèi)存的連接相似。在該主站系統(tǒng)中,同時(shí)還設(shè)計(jì)了以太網(wǎng)接口,方便遠(yuǎn)程文件的下載。
2.2 軟件設(shè)計(jì)
嵌入式模塊COM-C提供的主機(jī)接口是雙端口內(nèi)存DPM,用戶應(yīng)用程序通過DPM接口來訪問該模塊。同時(shí),為了提高整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性,主機(jī)系統(tǒng)使用的是實(shí)時(shí)多任務(wù)操作系統(tǒng)Linux。因此,在進(jìn)行軟件設(shè)計(jì)時(shí),主要完成驅(qū)動(dòng)程序以及應(yīng)用程序的編寫。
2.2.1 雙端口內(nèi)存DPM結(jié)構(gòu)
嵌入式模塊COM-C提供的雙端口內(nèi)存DPM接口是8KByte的地址空間,其具體結(jié)構(gòu)如圖3所示。
[align=center]
圖3 雙端口內(nèi)存地址空間[/align]
用戶應(yīng)用程序通過雙端口內(nèi)存DPM來訪問PROFIBUS-DP主站嵌入式模塊COM-C,該雙端口內(nèi)存分為兩個(gè)部分,協(xié)議無關(guān)(循環(huán)數(shù)據(jù)地址空間)與協(xié)議相關(guān)(非循環(huán)數(shù)據(jù)地址空間)。循環(huán)數(shù)據(jù)包含PROFIBUS-DP主站與從站之間相互交換的過程映像輸入輸出數(shù)據(jù),非循環(huán)數(shù)據(jù)包含與PROFIBUS-DP協(xié)議相關(guān)的參數(shù)、報(bào)文、命令、狀態(tài)等數(shù)據(jù)。
l 過程映像輸出數(shù)據(jù):主機(jī)用戶程序發(fā)送給PROFIBUS-DP從站的輸出數(shù)據(jù)。
l 過程映像輸入數(shù)據(jù):PROFIBUS-DP從站發(fā)送給主機(jī)用戶程序的輸出數(shù)據(jù)。
l 發(fā)送郵箱:主機(jī)用戶程序發(fā)送給PROFIBUS-DP從站的非循環(huán)報(bào)文信息,命令、診斷、配置文件下載等。
l 接收郵箱:PROFIBUS-DP從站發(fā)送給主機(jī)用戶程序的非循環(huán)報(bào)文信息,從站報(bào)警、狀態(tài)、配置文件上傳等。
l 協(xié)議參數(shù):PROFIBUS-DP協(xié)議參數(shù)信息,波特率、看門狗時(shí)間、循環(huán)時(shí)間等。
l 協(xié)議狀態(tài):PROFIBUS-DP網(wǎng)絡(luò)狀態(tài)信息,網(wǎng)絡(luò)狀態(tài)、錯(cuò)誤、超時(shí)等。
l 系統(tǒng)狀態(tài):嵌入式模塊COM-C中運(yùn)行的操作系統(tǒng)的狀態(tài)信息和模塊的基本信息。
l 狀態(tài)/握手標(biāo)志:設(shè)備初始化狀態(tài)信息,過程映像輸入輸出數(shù)據(jù)和郵箱報(bào)文同步位,模塊寫,主機(jī)應(yīng)用程序讀。
l 命令/握手標(biāo)志:用戶應(yīng)用程序狀態(tài)信息,過程映像輸入輸出數(shù)據(jù)和郵箱報(bào)文同步位,主機(jī)應(yīng)用程序?qū)?,模塊讀。
2.2.2 驅(qū)動(dòng)程序的設(shè)計(jì)
赫優(yōu)訊提供基于PCI接口、Compact-PCI接口和ISA接口的Linux設(shè)備驅(qū)動(dòng),在該系統(tǒng)中,主機(jī)CPU直接對(duì)嵌入式模塊COM-C進(jìn)行訪問,因此可以借鑒提供的Linux設(shè)備驅(qū)動(dòng)代碼,進(jìn)行移植。
Linux設(shè)備驅(qū)動(dòng)主要完成對(duì)嵌入式模塊COM-C雙端口內(nèi)存的訪問,提供一個(gè)通用的驅(qū)動(dòng)程序接口,用戶程序通過調(diào)用接口函數(shù)來訪問PROFIBUS主站嵌入式模塊COM-C。Linux設(shè)備驅(qū)動(dòng)的框架如圖4所示,這樣做的好處就是,如果以后要使用赫優(yōu)訊公司的其它類型的現(xiàn)場(chǎng)總線(如DeviceNet、CANopen)嵌入式模塊COM-C, Linux設(shè)備驅(qū)動(dòng)不需要改變,直接可用。
[align=center]
圖4 設(shè)備驅(qū)動(dòng)框架[/align]
Linux設(shè)備驅(qū)動(dòng)主要實(shí)現(xiàn)的函數(shù)如表1。
表1 Linux設(shè)備驅(qū)動(dòng)函數(shù)表
2.2.3 應(yīng)用程序的設(shè)計(jì)
應(yīng)用程序主要實(shí)現(xiàn)的功能:配置文件的遠(yuǎn)程接收和下載,與遠(yuǎn)程監(jiān)控系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)的收發(fā),網(wǎng)絡(luò)監(jiān)控等等。
由網(wǎng)絡(luò)配置工具SyCon生成的網(wǎng)絡(luò)配置文件,可導(dǎo)出成DBM格式的文件,然后通過Mailbox(報(bào)文的形式)下載到嵌入式模塊的Flash中。配置文件下載流程如圖5所示。
[align=center]
圖5 配置文件下載流程[/align]
部分代碼如下:
/***** 下載配置文件 *****/
memset(&txMsg.data, 0, sizeof(txMsg.data));
/* 讀出DBM文件中的相關(guān)信息 */
fseek(pfFile, 40, SEEK_SET);
fread(&ul, 1, 4, pfFile);
…….
usFileLength=*(unsigned short*)&txMsg.data[9];
usFileLength=(unsigned short)usFileLength*2;
memcpy(&txMsg.data[17], &abTemp[0], 34);
/* 建立第一個(gè)報(bào)文 */
txMsg.rx = 0x00;
txMsg.tx = 0xff;
txMsg.ln = 51;
txMsg.nr = ++bNo;
txMsg.a = 0;
txMsg.f = 0;
txMsg.b = 6;
txMsg.e = 4;
txMsg.data[0] = 3;
if ( SendReceiveMessage(&txMsg, &rxMsg, 10000L)) goto LeaveProgram;
fseek(pfFile, 44, SEEK_SET);
iRead=fread(&txMsg.data[0], 1, DOWNLOAD_LEN, pfFile);
usTransmittedLength = 0;
/* 超過一個(gè)報(bào)文的最大長(zhǎng)度,進(jìn)入循環(huán),連續(xù)發(fā)送報(bào)文*/
txMsg.ln = (unsigned char)(iRead);
txMsg.nr = ++bNo;
txMsg.e = 8;
do
{
usTransmittedLength+=(unsigned short)iRead;
if ( SendReceiveMessage(&txMsg, &rxMsg, 1000L)) goto LeaveProgram;
iRead=fread(&txMsg.data[0], 1, DOWNLOAD_LEN, pfFile);
txMsg.ln = (unsigned char)iRead;
txMsg.nr = ++bNo;
txMsg.e = 8;
?。?while (iRead = = DOWNLOAD_LEN);
/* 發(fā)送最后一個(gè)報(bào)文 */
txMsg.e = 0xc;
usTransmittedLength += (unsigned short)iRead;
if ( SendReceiveMessage(&txMsg, &rxMsg, 15000L)) goto LeaveProgram;
/***** 下載配置文件結(jié)束 *****/
3 PROFIBUS-DP主站模塊在DCS系統(tǒng)中的應(yīng)用
WebField系列控制系統(tǒng)是浙江中控技術(shù)股份有限公司為適應(yīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,特別是Internet、Web技術(shù)的發(fā)展而推出的基于網(wǎng)絡(luò)技術(shù)的控制系統(tǒng)。該系統(tǒng)融合了最新的現(xiàn)場(chǎng)總線技術(shù)、嵌入式軟件技術(shù)、先進(jìn)控制技術(shù)與網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)了多種總線兼容和異構(gòu)系統(tǒng)綜合集成。各種國(guó)內(nèi)外DCS、PLC及現(xiàn)場(chǎng)智能設(shè)備都可以接入到WebField系列控制系統(tǒng)中,實(shí)現(xiàn)企業(yè)內(nèi)過程控制設(shè)備信息的共享。
WebField系列控制系統(tǒng)結(jié)構(gòu)如圖6所示。
[align=center]
圖6 系統(tǒng)結(jié)構(gòu)圖[/align]
由圖可見,WebField系列控制系統(tǒng)包含管理信息網(wǎng)、操作網(wǎng)、過程控制網(wǎng)和I/O總線4層網(wǎng)絡(luò)。
管理信息網(wǎng)采用通用的以太網(wǎng)技術(shù),用于工廠級(jí)的信息傳送和管理,是實(shí)現(xiàn)全廠綜合管理的信息通道。操作網(wǎng)采用快速以太網(wǎng)技術(shù),實(shí)現(xiàn)C/S模式下服務(wù)器與客戶端的數(shù)據(jù)通訊及操作網(wǎng)節(jié)點(diǎn)的時(shí)間同步。過程控制網(wǎng)(SCnetII網(wǎng))實(shí)現(xiàn)操作站節(jié)點(diǎn)與控制站的連接,完成信息、控制命令的傳輸與發(fā)送,采用雙重化冗余設(shè)計(jì),使得信息傳輸可靠、高速。I/O總線是控制站內(nèi)部通信網(wǎng)絡(luò),包括SBUS、PROFIBUS、Modbus、DeviceNet等現(xiàn)場(chǎng)總線。
基于COM-C模塊設(shè)計(jì)的PROFIBUS-DP主站系統(tǒng)是WebField系列DCS中過程控制網(wǎng)節(jié)點(diǎn)之一。它解決了系統(tǒng)與其他廠家測(cè)控系統(tǒng)和智能設(shè)備的互聯(lián)問題,用于將標(biāo)準(zhǔn)PROFIBUS-DP從站設(shè)備連入系統(tǒng),通過鏈接器和耦合器還可以接入PROFIBUS-PA設(shè)備。通過SCNetⅡ通訊協(xié)議,其他廠家測(cè)控系統(tǒng)和智能設(shè)備的過程參數(shù)可成功地與系統(tǒng)內(nèi)控制站、操作站等進(jìn)行信息雙向通信,實(shí)現(xiàn)組態(tài)、管理、顯示、操作及運(yùn)算等功能,從而使異種設(shè)備成為WebField系列DCS的一部分。
PROFIBUS網(wǎng)絡(luò)配置工具SyCon可安裝于工程師站,通過SyCon組態(tài)軟件提供的API函數(shù),可實(shí)現(xiàn)PROFIBUS組態(tài)到DCS組態(tài)軟件的完全信息共享,從而實(shí)現(xiàn)整個(gè)控制系統(tǒng)的一體化組態(tài)。
基于PROFIBUS-DP主站模塊開發(fā)的主站卡已經(jīng)成功應(yīng)用于WebField系列DCS中,并且在過程控制網(wǎng)、PROFIBUS-DP網(wǎng)絡(luò)都可以進(jìn)行冗余配置,保證了PROFIBUS網(wǎng)絡(luò)信息傳輸?shù)目煽啃?。截至目前,該P(yáng)ROFIBUS-DP主站卡已經(jīng)在現(xiàn)場(chǎng)有幾百個(gè)成功的應(yīng)用。
4 結(jié)束語
本文在研究PROFIBUS-DP現(xiàn)場(chǎng)總線通訊協(xié)議的基礎(chǔ)上,提出了高可靠性的PROFIBUS-DP主站設(shè)計(jì)方案,并且在DCS系統(tǒng)中成功應(yīng)用,已投入現(xiàn)場(chǎng)運(yùn)行,穩(wěn)定可靠,取得很好的實(shí)效。目前,國(guó)內(nèi)廠家多限于對(duì)國(guó)外產(chǎn)品的系統(tǒng)集成及PROFIBUS-DP從站產(chǎn)品的開發(fā),對(duì)PROFIBUS-DP主站產(chǎn)品的研究開發(fā)甚少,因此本文對(duì)開發(fā)PROFIBUS-DP主站產(chǎn)品具有借鑒作用。