智能電控閥門的Profibus-DP通信接口的設(shè)計(jì)
現(xiàn)場(chǎng)總線是用于現(xiàn)場(chǎng)儀表與控制系統(tǒng)和控制室之間的一種全分散、全數(shù)字化、智能、 雙向、互聯(lián)、多變量、多點(diǎn)、多站的通信網(wǎng)絡(luò)。工業(yè)現(xiàn)場(chǎng)總線是用來解決當(dāng)前工業(yè)領(lǐng)域中“信 息孤島”的必然方法?,F(xiàn)在已經(jīng)被廣泛使用的工業(yè)現(xiàn)場(chǎng)總線的種類很多,有CANBUS、 DeviceNet、CClink、Modbus 等幾十種現(xiàn)場(chǎng)總線[1]。
德國(guó)的西門子公司是進(jìn)入中國(guó)市場(chǎng)較早的跨國(guó)公司。該公司的工業(yè)現(xiàn)場(chǎng)總線產(chǎn)品在國(guó) 內(nèi)占有很大的市場(chǎng)份額。西門子公司的SIMATIC NET 工業(yè)通信網(wǎng)絡(luò)結(jié)構(gòu)可以分為三級(jí):企 業(yè)級(jí)、車間級(jí)和現(xiàn)場(chǎng)級(jí)。PROFIBUS 是一種用于工廠自動(dòng)化車間級(jí)監(jiān)控和現(xiàn)場(chǎng)設(shè)備層數(shù)據(jù)通 信與控制的現(xiàn)場(chǎng)總線技術(shù)。
本文主要介紹開發(fā)工業(yè)用電動(dòng)閥門的通信接口——Profibus-DP 總線的開發(fā)。通過開發(fā) 的Profibus-DP 工業(yè)總線通信接口,可以將單臺(tái)設(shè)備的控制器引入到工業(yè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)之中, 使單臺(tái)設(shè)備成為一個(gè)智能節(jié)點(diǎn),實(shí)現(xiàn)控制的遠(yuǎn)程化,可以大大提高生產(chǎn)設(shè)備的整體系統(tǒng)控制 水平、降低生產(chǎn)成本。
一、Profibus 總線介紹
ISO/OSI 的通信標(biāo)準(zhǔn)模型由七層組成。從用戶角度看,Profibus 提供了三種通信協(xié)議標(biāo) 準(zhǔn):PROFIBUS-DP、PROFIBUS-PA、PROFIBUS-FMS[2]。
(1)、PROFIBUS-DP:是一種高速低成本通信,用于設(shè)備級(jí)控制系統(tǒng)與分散式I/O 的通信。 使用PROFIBUS-DP 可取代原來的24VDC 或4-20mA 信號(hào)傳輸。
(2)、PROFIBUS-PA:專為過程自動(dòng)化設(shè)計(jì),可使傳感器和執(zhí)行機(jī)構(gòu)聯(lián)在一根總線上,并有 本征安全規(guī)范。
(3)、PROFIBUS-FMS:用于車間級(jí)監(jiān)控網(wǎng)絡(luò),是一個(gè)令牌結(jié)構(gòu)、實(shí)時(shí)多主網(wǎng)絡(luò)。 PROFIBUS-DP:定義了第一、二層和用戶接口。
第三到七層未加描述。用戶接口規(guī)定 了用戶及系統(tǒng)以及不同設(shè)備可調(diào)用的應(yīng)用功能,并詳細(xì)說明了各種不同PROFIBUS-DP 設(shè)備 的設(shè)備行為。PROFIBUS-DP 總線的物理層(第一層)采用RS485 總線傳輸。
二、硬件方案
Profibus-DP總線的通信接口設(shè)計(jì)采用了西門子公司的SPC3協(xié)議芯片作為本設(shè)計(jì)的核心 芯片。SPC3協(xié)議芯片是SIEMENS公司研制開發(fā)的專門用于開發(fā)PROFIBUS-DP從站的智能通信集成電路。該芯片集成了完整的PROFIBUS-DP協(xié)議。SPC3主要由控制整個(gè)過程的微序列 器、參數(shù)/方式寄存器、RAM和RAM控制器組成雙口RAM、中斷控制器、內(nèi)置的看門狗定 時(shí)器、內(nèi)部總線接口單元、UART接口、波特率發(fā)生器和總線空閑定時(shí)器組成。SPC3芯片可 以自動(dòng)檢測(cè)總線上波特率從9.6K到12M的信號(hào),并且能夠自適應(yīng)的采取相應(yīng)的總線頻率[3]。
從圖1可以看出,微序列器是SPC3的核心。該芯片可以承擔(dān)通信部分的微處理器功能, 實(shí)現(xiàn)PROFIBUS-DP從站通信處理,從而減輕從站CPU的工作負(fù)荷。SPC3通過它自身的雙端口RAM 與微處理器交換數(shù)據(jù),微處理器操作SPC3芯片就像操作它的外部RAM一樣。SPC3芯片的整個(gè) RAM采用8字節(jié)的段結(jié)構(gòu)方式,共被分成192段,所有需要分配地址的BUF指針,必須指向段的 開頭。SPC3的總線接口是個(gè)可參數(shù)化的同步/異步8位接口。該接口適合于Motorola和Intel 的微控制器/處理器。PROFIBUS-DP通信的服務(wù)存取點(diǎn)(SAP)由SPC3自動(dòng)建立的。各種報(bào)文信 息呈現(xiàn)在用戶面前的是不同BUF的內(nèi)部數(shù)據(jù)。用戶可以通過總線接口訪問這些內(nèi)部數(shù)據(jù)。SPC3 芯片有8根數(shù)據(jù)線和11根地址線,但是為了節(jié)約單片機(jī)資源,低8位地址線與數(shù)據(jù)線采取了復(fù) 用的方式。
三、RS485 接口設(shè)計(jì)
PROFIBUS-DP在底層的物理層上使用的是RS485協(xié)議。為了滿足PROFIBUS-DP的數(shù)據(jù)高速 傳輸?shù)囊螅仨氝x擇高速光隔和高速RS485收發(fā)器。本設(shè)計(jì)采用的高速光隔為6N137, RS485 采用MAXIM公司的高速差分總線收發(fā)器MAX3468作為驅(qū)動(dòng)器。這樣PROFIBUS-DP的傳輸速率最 高可以達(dá)到6Mbps。如果要讓數(shù)據(jù)傳輸速率達(dá)到12Mbps,就必須選用更為高速的光隔。智能 從站節(jié)點(diǎn)RS485傳輸用的雙絞線電纜采用了SIEMENS公司提供的PROFIBUS-DP總線電纜和終端 接口器。Profibus總線不帶中繼的情況下每分段32個(gè)站(主站或從站),最多可以達(dá)到127 個(gè)站(帶中繼)。每段的頭和尾各有一個(gè)總線終端電阻,確保操作運(yùn)行不發(fā)生誤差。兩個(gè)總 線終端電阻必須永遠(yuǎn)有電源。
四、Profibus 總線硬件接口結(jié)構(gòu)
在PROFIBUS-DP 硬件接口電路設(shè)計(jì)方案基礎(chǔ)之上,我們采用單片機(jī)+專用集成芯片SPC3+ RS485 驅(qū)動(dòng)的方案。Profibus-DP 接口卡與控制設(shè)備(從站)的數(shù)據(jù)交換采用雙端口RAM。采 用這樣方式的優(yōu)點(diǎn)是可以減少對(duì)控制設(shè)備資源的占用,并且由于數(shù)據(jù)交換是并行方式,數(shù)據(jù) 交換速度快[4]。
五、軟件設(shè)計(jì)
DP 智能從站上電或復(fù)位后,首先進(jìn)行SPC3 的初始化,其中包括有效地復(fù)位SPC3,觸發(fā) 硬件看門狗,清零SPC3 內(nèi)部RAM 單元(1016H~15FFH),設(shè)置SPC3 允許的中斷,寫入從站 識(shí)別號(hào)和地址以及地址是否可以被PROFIBUS-DP 改變,設(shè)置SPC3 內(nèi)部看門狗計(jì)時(shí)初值,設(shè) 置SPC3 方式寄存器,設(shè)置參數(shù)緩沖區(qū)、診斷緩沖區(qū)、SSA 緩沖區(qū)、組態(tài)緩沖區(qū)、輸入輸出 緩沖區(qū)的初始長(zhǎng)度,并根據(jù)以上初始值求出各個(gè)緩沖區(qū)的指針;根據(jù)傳輸?shù)妮斎胼敵鰯?shù)據(jù)長(zhǎng) 度,確定輸出緩沖區(qū)和輸入緩沖區(qū)的指針;獲得波特率,針對(duì)波特率控制要求調(diào)整看門狗的 初始值。初始化流程圖4 如下:
SPC3 與微處理器進(jìn)行數(shù)據(jù)交換時(shí)通過中斷方式進(jìn)行的,以提高響應(yīng)速度。通常情況下, 采用INT0 中斷。SPC3 可以提起中斷的中斷源有:New_Prm_Data、New_DDB_Prm_Data 和 New_Cfg_Data 等。中斷程序模塊用于處理SPC3 發(fā)生的各種事件,這些事件包括: 新的參數(shù) 報(bào)文事件;全局控制命令報(bào)文事件;進(jìn)入或退出數(shù)據(jù)交換狀態(tài)事件;新的配置報(bào)文事件;新 的地址設(shè)置報(bào)文事件;監(jiān)測(cè)到波特率事件和看門狗溢出事件。軟件中采用中斷方式處理從站 地址設(shè)定,檢查組態(tài)和參數(shù)報(bào)文是否正確。采用外部中斷INTO 輸入,其入口地址為0003H。 使用函數(shù)定義語法 void dps2_ind(void) interrupt0 調(diào)用外部中斷INTO,當(dāng)外部中斷0 被觸發(fā)時(shí),將會(huì)執(zhí)行此中斷模塊中的服務(wù)函數(shù),在函數(shù)中由DPS2_GET_INDICATION()宏可以 讀出相應(yīng)的事件信息,并進(jìn)行各個(gè)中斷事件的處理。中斷程序流程如圖5 所示。
六、GSD 文件
PROFIBUS 設(shè)備具有不同的性能特征,特性的不同在于現(xiàn)有功能(即I/O 信號(hào)的數(shù)量和診斷信息)的不同或可能的總線參數(shù),例如波特率和時(shí)間的監(jiān)控不同。對(duì)一種設(shè)備類型的特 性,GSD 文件以一種準(zhǔn)確定義的格式給出其全面而明確的描述。GSD 文件由生產(chǎn)廠商分別 針對(duì)每一種設(shè)備類型準(zhǔn)備并以設(shè)備數(shù)據(jù)庫(kù)清單的形式提供給用戶,這種明確定義的文件格式 便于讀出任何一種PROFIBUS-DP 設(shè)備的設(shè)備數(shù)據(jù)庫(kù)文件,并且在組態(tài)總線系統(tǒng)時(shí)自動(dòng)使 用這些信息。在組態(tài)階段,系統(tǒng)自動(dòng)地對(duì)輸入與整個(gè)系統(tǒng)有關(guān)的數(shù)據(jù)的輸入誤差和前后一致 性進(jìn)行檢查核對(duì)。GSD 文件可分為三個(gè)部分:(1) 總規(guī)范。(2) 與DP 有關(guān)的規(guī)范。(3) 與 DP 從站有關(guān)的規(guī)范。
七、調(diào)試
SIEMENS 公司推出的PACKAGE 4 主從站開發(fā)包,可以很方便的開發(fā)和調(diào)試 PROFIBUS-DP 主站和從站。開發(fā)包硬件包括IM183-1 從站接口模塊、帶載體板IM181 的IM180 主接口模板、IM184 從站接口模塊以及總線連接器等附件,使用這些主站、從站 接口模塊和連接器可以組成完整的DP 網(wǎng)絡(luò);軟件包括組態(tài)軟件COM PROFIBUS、仿真演 示軟件DPMT 和固態(tài)程序DPS2。本設(shè)計(jì)也可以用此開發(fā)板進(jìn)行調(diào)試和測(cè)試。用IM181 的 IM180 主接口模板構(gòu)成主站與設(shè)計(jì)的從站進(jìn)行Profibus—DP 的通信。除此以外,還可以用 300 系列PLC 等構(gòu)件Profibus 網(wǎng)絡(luò)調(diào)試[5]。
八、結(jié)束語
Profibus-DP 總線已經(jīng)在國(guó)內(nèi)得到了廣泛的應(yīng)用。通過研究Profibus-DP 總線的開發(fā),本 文詳細(xì)闡述了開發(fā)Profibus-DP 總線的軟件和硬件的方法。當(dāng)前國(guó)內(nèi)市場(chǎng)各類控制器很多, 我們開發(fā)Profibus 接口,可以提高產(chǎn)品的附加值、開拓新的產(chǎn)品市場(chǎng)。
評(píng)論