移動(dòng)機(jī)車位置檢測(cè)器的PROFIBUS-DP接口設(shè)計(jì)
摘要:PB-OEM2-SE是一種用于PROFIBUS-DP開(kāi)放式工業(yè)現(xiàn)場(chǎng)總線的智能化嵌入式總線僑。文中簡(jiǎn)要介紹了PROFIBUS-DP總線的特點(diǎn),闡述了如何利用PB-OEM2-SE嵌入式總線橋設(shè)計(jì)移動(dòng)機(jī)車位置檢測(cè)器的PROFIBUS-DP總線接口,給出一種基于PB-OEM2-SE將第三方設(shè)備接入到Profibus總線中的設(shè)計(jì)方案,這種方案具有開(kāi)發(fā)周期短、開(kāi)發(fā)成本低等優(yōu)點(diǎn)。
關(guān)鍵詞:現(xiàn)場(chǎng)總線;PB-OEM2-SE;PROFIBUS總線;數(shù)據(jù)通信
0 引言
工業(yè)有軌作業(yè)機(jī)車的自動(dòng)行走,自動(dòng)定位,要求機(jī)車控制系統(tǒng)能夠檢測(cè)作業(yè)機(jī)車的行走位置。所設(shè)計(jì)的移動(dòng)機(jī)車位置檢測(cè)器能夠精確地、快速地檢測(cè)機(jī)車的行走位置,并通過(guò)PROFIBUS-DP接口將位置檢測(cè)器變成機(jī)車上PROFIBUS網(wǎng)絡(luò)的站點(diǎn),機(jī)車主控PLC能夠隨時(shí)獲取機(jī)車行走位置。
PROFIBUS是以德國(guó)西門子公司為主研究推出的一種國(guó)際化的開(kāi)放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),是一種用于工廠自動(dòng)化車間級(jí)監(jiān)控和現(xiàn)場(chǎng)設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場(chǎng)總線技術(shù),這是目前我國(guó)唯一批準(zhǔn)的現(xiàn)場(chǎng)總線國(guó)家標(biāo)準(zhǔn),在國(guó)內(nèi)應(yīng)用廣泛。其中PROFIBUS-DP主要用于現(xiàn)場(chǎng)設(shè)備,有較高的實(shí)時(shí)性,數(shù)據(jù)傳送速率可在9.6kb/s~12Mb/s范圍內(nèi)選擇,響應(yīng)時(shí)間為幾百μs到幾百ms,傳輸技術(shù)主要用RS485,傳輸介質(zhì)是雙絞線和光纖,廣泛應(yīng)用于電氣自動(dòng)化、工業(yè)控制和數(shù)控加工等領(lǐng)域??蓪?shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備層到車間級(jí)監(jiān)控的分散式數(shù)字控制和現(xiàn)場(chǎng)通信網(wǎng)絡(luò),從而為實(shí)現(xiàn)工廠綜合自動(dòng)化和現(xiàn)場(chǎng)設(shè)備智能化提供了可行的解決方案。
為位置檢測(cè)器設(shè)計(jì)PROFIBUS-DP接口,如果采用西門子公司的PROFIBUS-DP接口芯片SPC3進(jìn)行設(shè)計(jì),則需要深入了解PROFIBUS總線協(xié)議,熟悉SPC3芯片,這種做法開(kāi)發(fā)周期長(zhǎng),開(kāi)發(fā)技術(shù)要求較高,需要投入大量的人力物力。位置檢測(cè)器采用第三方接口板PB-OEM2-SE設(shè)計(jì)PROFIBU S-DP接口,這種做法不需要深入了解PROFIBUS開(kāi)發(fā)技術(shù),不需要購(gòu)買PROFIBuS開(kāi)發(fā)系統(tǒng),大大縮短了開(kāi)發(fā)周期,并且具有自主知識(shí)產(chǎn)權(quán)。
1 PB-OEM2-SE嵌入式總線橋
1.1 PB-OEM2-SE介紹
PB-OEM2-SE是專為PROFIBUS-DP通信功能產(chǎn)品所提供的嵌入式總線橋,它以O(shè)EM的方式提供PROFIBUS-DP從站通信接口。
PB-OEM2-SE內(nèi)部集成了PROFIBUS-DP協(xié)議,符合GB/T20540-2006:測(cè)量和控制數(shù)字?jǐn)?shù)據(jù)通信工業(yè)控制系統(tǒng)用現(xiàn)場(chǎng)總線第3部分:PROFIBUS規(guī)范;標(biāo)準(zhǔn)PROFIBUS-DP驅(qū)動(dòng)接口,波特率自適應(yīng),最大波特率12M;PROFIBUS輸入/輸出數(shù)量可自由設(shè)定,最大200字節(jié)輸入+200字節(jié)輸出;PB-OEM2-SE接口板與用戶模板之間數(shù)據(jù)交換報(bào)文長(zhǎng)度可由用戶設(shè)定,最大為202字節(jié);可實(shí)現(xiàn)PROFIBUS用戶參數(shù)化功能;接口板與用戶板接口為TTL異步串口,可以自動(dòng)適應(yīng)用戶模板的5種波特率。
用戶模板的CPU通過(guò)串行接口向PB-OEM2-SE讀/寫(xiě)輸入/輸出數(shù)據(jù),PB-OEM2-SE自動(dòng)將其轉(zhuǎn)換成PROFIBUS-DP協(xié)議報(bào)文與PROFIBUS-DP主站進(jìn)行通信。用戶可以自由設(shè)定PROFIBUS-DP輸入/輸出的數(shù)量以及PB-OEM2-SE與用戶模板之間數(shù)據(jù)交換報(bào)文的長(zhǎng)度。此外,PB-OEM2-SE實(shí)現(xiàn)PROFIB US-DP用戶參數(shù)化功能:用戶模板可將一次性設(shè)置的參數(shù),如溫度上限報(bào)警值等在主站配置中設(shè)定;主站在與從站連接時(shí)一次將這些用戶參數(shù)傳送到從站,用戶模板可使用這些參數(shù)實(shí)現(xiàn)參數(shù)化,避免將一次性設(shè)置參數(shù)作為PROFIBUS的I/O數(shù)據(jù),占用周期性數(shù)據(jù)通信時(shí)間和空間資源。
2.PB-OEM2-SE的硬件原理框圖與對(duì)外連接
2. 1 PB-OEM2-SE的硬件原理框圖
PB-OEM2-SE接口板硬件原理框圖如圖2所示。
CPU通過(guò)Txd端口和Rxd端口與用戶模塊進(jìn)行通信,然后CPU與芯片SPC3進(jìn)行數(shù)據(jù)交換。這樣,SPC3將通信得到的數(shù)據(jù)轉(zhuǎn)化為PROFIBUS-DP協(xié)議,通過(guò)與PROFIBUS-DP網(wǎng)絡(luò)連接使用戶模塊變成PROFIBUS網(wǎng)絡(luò)上的一個(gè)站點(diǎn)。
PB-OEM2-SE接口板與外界的接口集成為一個(gè)16針的插件J1,其排列見(jiàn)圖3,其意義見(jiàn)表1。[!--empirenews.page--]
2.2 PB-OEM2-SE的對(duì)外連接
PB-OEM2-SE接口板對(duì)外連接具有3種方式:
(1)方式0。此種方式,PROFIBUS的D型插座安裝在用戶模塊,PROFIBUS信號(hào)來(lái)自J1-16,J1-16上的B、A、RTS信號(hào)線應(yīng)在用戶PCB模板上走線,避免跨越接插件;避免受到臨近信號(hào)線的干擾。用戶模板上的VCC/GND和5V/0V在進(jìn)入J1-16之前要加退耦電容。這種方式比較簡(jiǎn)單。
(2)方式1與方式2。如果用戶PROFIBUS的D型插座與PB-OEM2-SE塊連接需要較長(zhǎng)的軟線,則需要采用方式1或方式2,這時(shí)需要用戶設(shè)計(jì)外接口轉(zhuǎn)接板,PROFIBUS的D型插座安裝在外接口轉(zhuǎn)接板上。方式1,PROFIBUS信號(hào)線從PB-OEM2-SE板上J2-10上引出使用較長(zhǎng)的軟線連接到外接口轉(zhuǎn)接板。方式2,用戶將J1-16中的PROFIBUS信號(hào)引至用戶模板自定義插座,從此插座上引出使用較長(zhǎng)的軟線連接到外接口轉(zhuǎn)接板。
3 位置檢測(cè)器與PB-OEM2-SE硬件連接
位置檢測(cè)器采用AT89S51單片機(jī)為核心,采用方式0與PB-OEM2-SE接口板連接,如圖4所示。盡管J1-16上有眾多的信號(hào),但在實(shí)際應(yīng)用時(shí),并不需要都用上。
PB-OEM2-SE上有一個(gè)功能選擇開(kāi)關(guān)SW1,要按照說(shuō)明書(shū)定義和用戶要求進(jìn)行設(shè)置,位置檢測(cè)器使用接口板時(shí)SW1設(shè)置如表2,其意義為:波特率為9.6k,使用連接方式0,用戶模板可通過(guò)管腳對(duì)SE模塊硬件復(fù)位。
4 位置檢測(cè)器相關(guān)軟件設(shè)計(jì)
位置檢測(cè)器的軟件包括:PB-OEM2-SE接口板初始化模塊、檢測(cè)信號(hào)PGA控制模塊、位置檢測(cè)運(yùn)算模塊、輸出模塊、顯示模塊等。軟件流程如圖5所示。
4.1 對(duì)接口板初始化的程序設(shè)計(jì)
位置檢測(cè)器的AT89S51單片機(jī)程序在設(shè)置堆棧后,立即通過(guò)P1.3輸出低電平對(duì)PB-OEM2-SE接口板復(fù)位,再系統(tǒng)初始化設(shè)置,設(shè)定通信波特率9.6kb/s。然后,位置檢測(cè)器的AT89S51輸出49個(gè)字節(jié),格式如表3所示,對(duì)PB-OEM2-SE接口板進(jìn)行初始化。輸出的49個(gè)字節(jié)除byte0外,都用偽指令的定義字節(jié)命令寫(xiě)在程序存儲(chǔ)器中,只需逐一取出發(fā)送即可。發(fā)送完畢后,等待接收接口板的回應(yīng)。[!--empirenews.page--]
對(duì)PB-OEM2-SE接口板進(jìn)行初始化的報(bào)文中,I/O配置數(shù)據(jù)采用代碼的方式。PB-OEM2-SE接口板接收到初始化報(bào)文之后,回答初始化成功/失敗報(bào)文給用戶模板,其格式如表4所示。程序中,將接收的回應(yīng)報(bào)文存放在AT89S51片內(nèi)RAM,盡管占了眾多的RAM單元,但初始化結(jié)束后,即可釋放這些單元。
[!--empirenews.page--]
byte0字節(jié)是接口板返回的檢測(cè)到用戶模板串口波特率編號(hào):1=9.6k,2=19.2k,3=38.4k,4=57.6k,5=115.2k,6=460.8k,7=1.8432M。
byte1字節(jié)是初始化報(bào)文錯(cuò)誤號(hào),其意義如表5所示。
程序中對(duì)接口板回應(yīng)報(bào)文進(jìn)行檢測(cè),若對(duì)接口板初始化成功,繼續(xù)程序流程,這時(shí)PB-OEM2-SE接口板上的紅色指示燈滅。
若檢測(cè)到是初始化失敗的回應(yīng)報(bào)文,則顯示回應(yīng)報(bào)文中初始化報(bào)文錯(cuò)誤號(hào)約2s,然后進(jìn)入死循環(huán),停止看門狗喂食,讓位置檢測(cè)器的AT89S51自動(dòng)復(fù)位,重新對(duì)接口板進(jìn)行初始化。
與接口板進(jìn)行數(shù)據(jù)交換程序設(shè)計(jì)若初始化成功,且PB-OEM2-SE接口板與PROFIBUS-DP主站連通,則接口板上綠色指示燈亮,接口板進(jìn)入數(shù)據(jù)交換狀態(tài)。
用戶模板的CPU只與PB-OEM2-SE交換數(shù)據(jù),PB-OEM2-SE按照設(shè)定的數(shù)據(jù)交換報(bào)文長(zhǎng)度自動(dòng)將其轉(zhuǎn)換成PROFIBUS-DP協(xié)議報(bào)文與PROFIBUS-DP主站進(jìn)行通信。所以用戶程序只需要考慮與PB-OEM2-SE的數(shù)據(jù)交換,這種數(shù)據(jù)交換是采用用戶模板主動(dòng)詢問(wèn),接口板被動(dòng)回答的方式。
在數(shù)據(jù)交換狀態(tài)下,PB-OEM2-SE接收用戶模板發(fā)送數(shù)據(jù)包括:PROFIBUS輸入數(shù)據(jù)profibus_input、請(qǐng)求數(shù)據(jù)命令req_com、一個(gè)字節(jié)校驗(yàn)和。報(bào)文長(zhǎng)度≤202個(gè)字節(jié)。
在數(shù)據(jù)交換狀態(tài)下,PB-OEM2-SD向用戶模板發(fā)送數(shù)據(jù)報(bào)文包括:PROFIBUS輸出數(shù)據(jù)profibus_output、用戶參數(shù)化標(biāo)記(user_prm_ok)、用戶參數(shù)(user_prm)和一個(gè)字節(jié)的報(bào)文校驗(yàn)和。報(bào)文長(zhǎng)度≤202個(gè)字節(jié)。
用戶模板發(fā)送數(shù)據(jù)報(bào)文如表6所示。若:req_com=00H,表示用戶模板請(qǐng)求讀取PROFIBUS輸出數(shù)據(jù),接口板將回答“輸出數(shù)據(jù)報(bào)文A”,如表7所示。req_com=01H表示用戶模板請(qǐng)求讀取更新的用戶參數(shù)數(shù)據(jù),接口板將回答“輸出數(shù)據(jù)報(bào)文B”,如表8所示。
位置檢測(cè)器每30ms檢測(cè)到一次機(jī)車位置,然后將位置數(shù)據(jù)發(fā)送給PB-OEM2-SE,發(fā)送報(bào)文共12個(gè)字節(jié),由于不需要更新的用戶參數(shù)數(shù)據(jù),所以第1字節(jié)是請(qǐng)求數(shù)據(jù)命令00H,2-11字節(jié)是位置數(shù)據(jù),第12字節(jié)是校驗(yàn)和。
位置檢測(cè)器接收的報(bào)文見(jiàn)表9,第2行00,表示不更改原來(lái)設(shè)定的值,為FFH表示按照本報(bào)文指定的方式進(jìn)行位置檢測(cè)和顯示。
5 GSD文件設(shè)計(jì)
每一個(gè)PROFIBUS站點(diǎn)設(shè)備都要有一個(gè)GSD文件即“設(shè)備描述文件”,用來(lái)描述該P(yáng)ROFIBS-DP設(shè)備的各種性能參數(shù)的文本文件(類似Windw os的設(shè)備驅(qū)動(dòng)),當(dāng)用PROFIBS組態(tài)工具實(shí)現(xiàn)系統(tǒng)組態(tài)時(shí),需根據(jù)與設(shè)備對(duì)應(yīng)的GSD文件將其設(shè)備集成到總線系統(tǒng)中。
GSD文件包含了設(shè)備所有定義參數(shù),包括:支持的波特率、支持的信息長(zhǎng)度、輸入/輸出數(shù)據(jù)數(shù)量、診斷數(shù)據(jù)的含義、可選模塊種類等。GSD文件可以分為3個(gè)部分:1)一般規(guī)范,這部分包括生產(chǎn)廠商和設(shè)備的名稱、硬件和軟件的版本狀況、支持的波特率、可能的監(jiān)視時(shí)間間隔以及總線插頭的信號(hào)分配;2)與DP主站有關(guān)的規(guī)范,這部分包括只適用于DP主站的各項(xiàng)參數(shù)(如連接從站的最多臺(tái)數(shù)或上裝和下裝能力),這一部分對(duì)從站沒(méi)有規(guī)定;3)與DP從站有關(guān)的規(guī)范,這部分包括與從站有關(guān)的一切規(guī)范(如輸入/輸出通道的數(shù)量和類型、中斷測(cè)試的規(guī)范以及輸入/輸出數(shù)據(jù)的一致性信息)。
GSD文件是文本類文件,可用西門子GSD文件編輯器GSDedit或其他文本編輯器編輯。
PB-OEM2-SE產(chǎn)品已經(jīng)在國(guó)際PROFIBS組織PI備案,取得PI授予ID號(hào):06FA和GSD文件名:DS_06FA.GSD。所以用戶產(chǎn)品的GSD文件可以在PB-OEM2-SE的GSD文件基礎(chǔ)上,在用戶公司名、產(chǎn)品型號(hào)、系列號(hào)等處置換成用戶產(chǎn)品信息,即可成為用戶的GSD文件,這并木復(fù)雜。
需要注意的是,設(shè)備初始化報(bào)文中的定義的ID號(hào)必須和GSD文件中的ID號(hào)一致。
6 結(jié)束語(yǔ)
PROFIBUS-DP現(xiàn)場(chǎng)總線應(yīng)用越來(lái)越廣泛。采用PB-OEM2-SE接口模板設(shè)計(jì)的具有PROFIBUS-DP接口的移動(dòng)機(jī)車位置檢測(cè)器已經(jīng)在自動(dòng)化系統(tǒng)中實(shí)際應(yīng)用,穩(wěn)定可靠。這種方案,系統(tǒng)具有很好的靈活性、通用性,以及開(kāi)發(fā)周期短、開(kāi)發(fā)成本低等優(yōu)點(diǎn),值得推廣應(yīng)用。