文獻標識碼: A
文章編號: 0258-7998(2011)08-131-04
為了適應(yīng)不同自動化系統(tǒng)的應(yīng)用需求,,出現(xiàn)了擁有不同技術(shù)特點的現(xiàn)場總線[1]。每種現(xiàn)場總線都以一個或幾個大型跨國公司為背景拓展其應(yīng)用領(lǐng)域,,多種總線在一個應(yīng)用領(lǐng)域中協(xié)調(diào)共存,,不同的總線設(shè)備為用戶提供了產(chǎn)品選擇多樣性的同時,也給用戶帶來了設(shè)備兼容性問題,,傳統(tǒng)的單一現(xiàn)場總線儀表已經(jīng)不能靈活地適用于自動化系統(tǒng),。因此,針對多種總線共存的客觀事實,探討如何使智能儀表適應(yīng)不同現(xiàn)場總線系統(tǒng)有著重要的現(xiàn)實意義,。
1 系統(tǒng)結(jié)構(gòu)及功能
本文系統(tǒng)以STC12C5612AD作為智能儀表的主CPU(內(nèi)部燒寫有MODBUS通信協(xié)議),設(shè)置一個由主CPU所在板引出的引腳為GND,、VDD、TXD,、RXD,、INT1,、AGND、VCC的公共通信接口,,可以連接485,、PROFIBUS、CAN三種通信板中的一種通信電路實現(xiàn)通信,。其中CAN,、PROFIBUS通信電路分別有獨立的CPU(AT89C51CC03[2]和P89V51RD2,分別燒寫了DEVICENET和PROFIBUS-DP協(xié)議),,與主CPU構(gòu)成雙CPU結(jié)構(gòu),。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件主要包括:RS-485,、CAN和PROFIBUS通信接口電路,。其中,RS-485通信電路包括光耦和485驅(qū)動電路;CAN接口電路由如圖2所示的CAN控制電路和如圖3所示的CAN驅(qū)動電路組成,。PROFIBUS-DP接口電路由CPU(P89V51RD2),、通信協(xié)議控制芯片SPC3[3]、高速光耦HCPL0601和RS-485總線驅(qū)動電路組成,如圖4所示,。CAN接口電路與PROFIBUS接口電路相似,,由于篇幅所限,本文以PROFIBUS接口電路為例進行說明,。
由圖4可知,,PROFIBUS-DP接口電路的CPU(P89V51RD2)負責(zé)控制SPC3實現(xiàn)PROFIBUS-DP總線數(shù)據(jù)的轉(zhuǎn)換與共享。SPC3已集成了PROFIBUS-DP物理層的數(shù)據(jù)收發(fā)功能,可獨立處理PROFIBUS-DP協(xié)議,;DP通信服務(wù)存取點由SPC3自動建立,,各種報文信息呈現(xiàn)在用戶面前是不同BUF的內(nèi)部數(shù)據(jù),用戶可以通過總線接口單元來訪問這些內(nèi)部數(shù)據(jù),。SPC3選擇工作在Intel模式下(XINT/MOT接低電平,,MODE接高電平, J2引入2路+5 V隔離電源J3用作編程口。P89V51RD2通過P0,、P2口與SPC3的總線單元連接來讀寫SPC3的1.5 KB RAM[4],,P0口作為數(shù)據(jù)總線和低8位地址總線復(fù)用口,P2口作為高8位地址總線,。由于SPC3內(nèi)部集成了鎖存器,所以P89V51RD2的P0口AD0~AD7與SPC3的DB0~DB7直接相連,。P89V51RD2的讀寫控制信號WR、RD和ALE信號分別與SPC3的XWR,、XRD和ALE相連,,CPU通過P1.0對SPC3進行復(fù)位,并且通過外部中斷引腳P3.2接入SPC3的中斷信號X/INT。撥碼開關(guān)電路用于設(shè)置DP從站波特率,。外接TL7705實現(xiàn)看門狗功能,。由于SPC3僅集成了物理層的數(shù)據(jù)傳輸功能,,不具備RS-485的驅(qū)動接口,因此擴充了RS-485驅(qū)動電路,。另外為避免總線引入干擾,,在SPC3與RS-485總線驅(qū)動電路之間采用10 Mb/s高速光耦HCPL0601進行光電隔離。
3 系統(tǒng)軟件設(shè)計
3.1 RS-485通信軟件的設(shè)計
RS-485通信由主CPU控制,,不需外接單獨的CPU,,采用中斷方式通信。PC機作為上位機,,與儀表采用問答方式通信,,總線上的設(shè)備在時序上需嚴格配合,必須遵從以下原則:(1)復(fù)位時,,從機都應(yīng)該處于接收狀態(tài),;(2)控制端、DE的信號有效脈寬應(yīng)該大于發(fā)送或接收一幀信號的寬度,,接收/發(fā)送數(shù)據(jù)也要考慮延時,;(3)總線上所連接設(shè)備的發(fā)送控制信號在時序上要完全隔開。RS-485串行通信程序流程如圖5所示,。RS-485串行通信采用MODBUS消息幀RTU模式,整個消息幀必須作為一連續(xù)的流傳輸,。如果在幀完成之前有超過1.5個字符時間的停頓時間,則接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域,。同樣地,,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,則接收設(shè)備將認為它是前一消息的延續(xù),。
3.2 CAN總線軟件設(shè)計
CAN總線軟件的任務(wù)是實現(xiàn)CAN總線[5]與RS-485總線間的通信,,完成兩者的協(xié)議轉(zhuǎn)換。主要包括節(jié)點初始化程序,、報文發(fā)送程序,、報文接收程序以及CAN總線出錯處理程序等。在初始化CAN內(nèi)部寄存器時,,要注意保證各節(jié)點的位速率一致,而且接發(fā)雙方必須同步,。為提高通信的實時性,,報文的接收和發(fā)送采用定時中斷接收方式。編寫初始化程序應(yīng)注意:先清除所有通道和其對應(yīng)的狀態(tài)寄存器,;根據(jù)外部時鐘和需要的CAN比特率初始化位定時器,;根據(jù)收發(fā)要求定義通道的ID和過濾器寄存器;初始化對應(yīng)通道的收發(fā)標志和數(shù)據(jù)的字節(jié),;在CAN中斷接收程序中還要注意接收到數(shù)據(jù)后重新初始化,,并設(shè)置使能接收通道,,以便接收下次中斷數(shù)據(jù)。同樣,,在定時中斷發(fā)送例程中,,把數(shù)據(jù)放入發(fā)送緩沖區(qū)后要置發(fā)送標志,并重新初始化定時器,。CAN通信流程如圖6所示,。
3.3 PROFIBUS-DP從站軟件設(shè)計
采用PROFIBUS-DP通信的智能儀表通常作為PROFIBUS-DP總線的從站設(shè)備,其軟件程序包括通信主程序,、SPC3初始化和中斷處理,, 其主程序流程圖如圖7所示。PROFIBUS-DP通信控制器SPC3集成了PROFIBUS-DP協(xié)議,。P89V51RD2微處理器需要對SPC3進行合理的配置,、初始化及報文處理。微處理器除了要完成串口端的定時/計數(shù)器工作方式,、波特率,、中斷方式設(shè)置等自身初始化任務(wù)外,還要對SPC3進行開中斷,、從站識別地址,、片內(nèi)方式寄存器、診斷緩沖區(qū),、參數(shù)緩沖區(qū),、配置緩沖區(qū)、地址緩沖區(qū),、初始長度等初始化設(shè)置,。中斷處理程序用來處理SPC3發(fā)生的各種事件(如新的參數(shù)報文事件、全局控制命令報文事件,、新的地址設(shè)置報文事件,、新的組態(tài)報文事件等)。
本文設(shè)計的三種通信程序都是在Keil-Uvision3仿真軟件環(huán)境下進行C51編寫,、編譯和調(diào)試,;GSD文件是在西門子GSD文件編輯器(GSD Editor)[6] 環(huán)境下進行編寫和編譯。
4 測試結(jié)果
4.1 MODBUS通信測試
使用STC-ISP.exe燒寫程序軟件將MODBUS通信程序以冷啟動方式寫入主芯片STC12C5612AD,。單臺儀表可以通過“ComMonitor”串口調(diào)試軟件按照標準RTU信息幀格式測試,。
4.2 CAN通信測試
使用Atmel-Flip2.4.6燒寫程序軟件,將CAN通信程序以冷啟動方式寫入主芯片T89C51CC03,。使用周立功公司的PCI-9810主站卡插在PC機PCI插槽上作為主節(jié)點,,通信調(diào)試軟件使用ZLGCANTest-PCI9810。
4.3 PROFIBUS通信測試
將智能儀表作為從站并設(shè)置地址為3,實現(xiàn)與主站PC(地址1)的通信,。由于PROFIBUS-DP在底層物理層上采用RS-485協(xié)議,,因此可以通過串口調(diào)試助手軟件SComAssistant V2.1模擬DP系統(tǒng)工作過程,對總線數(shù)據(jù)進行偵聽,。
4.4 通信測試結(jié)果
智能儀表分別配置的MODBUS,、PROFIBUS和CANBUS三種通信試驗板均能夠接收上位機主節(jié)點發(fā)送的命令,同時發(fā)送響應(yīng)信息至上位機,,實現(xiàn)主從站數(shù)據(jù)交換,,且收發(fā)數(shù)據(jù)正確,測試結(jié)果表明本設(shè)計方案可行,。
本文介紹的帶有多現(xiàn)場總線接口的智能儀表,,使智能儀表具備了MODBUS、PROFIBUS和CANBUS三種獨立的現(xiàn)場總線通信功能,。通信板采用統(tǒng)一標準接口的集成化模塊結(jié)構(gòu)設(shè)計,,使得智能儀表更換通信板更加便捷、高效,,避免了智能儀表的二次開發(fā),。為解決控制系統(tǒng)多種總線并存環(huán)境下的信息交換提供了一種解決方案,具有一定的應(yīng)用價值,。
參考文獻
[1] 陽憲惠. 現(xiàn)場總線技術(shù)及其應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2008.
[2] ATMELL. Enhanced 8-bit MCU with CAN controller and flash memory AT89C51CC03 datasheet[S]. 2007.
[3] Germany, Siemens AG. Siemens AG,,SIMATIC NET SPC3 PROFIBUS controller user description[S]. 2000.
[4] 孫鶴旭, 梁濤, 云利軍. Profibus 現(xiàn)場總線控制系統(tǒng)的設(shè)計與開發(fā)[M]. 北京:國防工業(yè)出版社,2007.
[5] BOSCH Inc. CAN 2.0 specification part A&B. 1991.
[6] 羅紅福,,胡斌,,鐘存福,等. PROFIBUS-DP 現(xiàn)場總線工程應(yīng)用實例解析[M]. 北京: 中國電力出版社, 2008.