<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > PC作為ProfibusDP單主站的實現(xiàn)

          PC作為ProfibusDP單主站的實現(xiàn)

          ——
          作者: 時間:2006-05-25 來源: 收藏
          摘 要:主要介紹Profibus現(xiàn)場總線的基本特性和通信協(xié)議,討論了以PC作為ProfibusDP單主站實現(xiàn)的可行性,并給出了C語言實現(xiàn)的程序。
            關(guān)鍵詞:Profibus;單主站;PC機(jī);通信
            
            一、Profibus概述
             Profibus是由SIEMENS公司推出的一種開放式現(xiàn)場總線標(biāo)準(zhǔn),1989年成為德國標(biāo)準(zhǔn)DIN19245,1996年成為歐洲標(biāo)準(zhǔn)EN50170,1999年12月被接受為國際標(biāo)準(zhǔn)IEC61158的一部分。Profibus是目前歐洲乃至全球應(yīng)用最廣泛的總線系統(tǒng),他速度快成本低,幾乎所有的PLC產(chǎn)品和極多的自動化外設(shè)產(chǎn)品都提供Profibus接口。
             Profibus根據(jù)不同的應(yīng)用場合提供3個兼容版本:ProfibusDP,ProfibusFMS和ProfibusPA。
             ProfibusDP適用于現(xiàn)場級分布式自動化外設(shè)之間的高速數(shù)據(jù)傳輸(DP的含義為分散的外圍設(shè)備)。他的體系結(jié)構(gòu)包括ISO/OSI參考模型第1,2層以及用戶接口,傳輸技術(shù)使用RS485(稱為H2),這種結(jié)構(gòu)能保證通信的實時性和系統(tǒng)實現(xiàn)的低成本。在用戶接口中使用了定義用戶和系統(tǒng)使用的應(yīng)用功能和描述現(xiàn)場設(shè)備行為的行規(guī)。
             ProfibusFMS(Fieldbus Message Specification)是現(xiàn)場級和單元級通信的通用解決方案,主要解決單元級主站之間(PLC和PC)的互相通信,因此高級功能比快速性系統(tǒng)反應(yīng)時間更重要。FMS使用了ISO/OSI參考模型第1,2,7層,第1,2層與ProfibusDP兼容,第7層包括了應(yīng)用協(xié)議并向用戶提供了廣泛的通信服務(wù)功能。
             ProfibusPA是在ProfibusDP的基礎(chǔ)上通過優(yōu)化、擴(kuò)展而來,主要用于化工等對安全性要求高的場合,通信采用擴(kuò)展的ProfibusDP協(xié)議。傳輸技術(shù)改用IEC11582(稱為H1),可確保本質(zhì)安全性并使現(xiàn)場設(shè)備通過總線供電,通過分段耦合器,能方便地和ProfibusDP,ProfibusFMS相連。
            
            二、Profibus通信協(xié)議
             Profibus通信協(xié)議通過ISO/OSI參考模型第2層實現(xiàn),在Profibus中第2層稱為FDL(Fieldbus Data Link)。
             Profibus總線上的設(shè)備包括2類:主站和從站。主站在一個限定時間 (令牌持有時間TokenHoldTime) 內(nèi)對總線有控制權(quán),這時主站可以向從站發(fā)送數(shù)據(jù)或請求從站的數(shù)據(jù)。從站對總線沒有控制權(quán),只是響應(yīng)一個主站的請求或確認(rèn)主站發(fā)送的數(shù)據(jù)。因此Profibus通信協(xié)議包括主站之間的令牌傳遞協(xié)議和主、 從站之間的主從協(xié)議。
             令牌傳遞協(xié)議確保每個主站有足夠的時間履行他的通信任務(wù),令牌在所有主站中循環(huán)一周的最長時間是一定的。主從協(xié)議保證主站在令牌持有時間內(nèi)與從站的通信。
            
            三、ProfibusDP單主站系統(tǒng)
             ProfibusDP允許構(gòu)成單主站或多主站系統(tǒng)。多主站配置中,主站與各自從站構(gòu)成相互獨立的子系統(tǒng),涉及令牌的傳遞。而作為現(xiàn)場級總線系統(tǒng),很多情況下是以PLC作為調(diào)節(jié)器和主站構(gòu)成的單主站系統(tǒng),這個系統(tǒng)如果不是封閉的(不與外界交換數(shù)據(jù)而獨立運(yùn)行),有可能通過ProfibusFMS或別的現(xiàn)場總線連接到車間單元級等更大規(guī)模的網(wǎng)絡(luò),除此之外極有可能是PLC通過串行RS232與上位PC機(jī)(監(jiān)控層)通信,如圖1所示。
            
            

             在大多數(shù)溫度控制、配料等系統(tǒng)中,傳感器的采樣速率一般>10 ms,從站數(shù)目較少,總線數(shù)據(jù)傳輸速度≤500 kb/s,完全可以用PC取代PLC作為調(diào)節(jié)器和主站,PC與ProfibusDP之間使用低成本的RS232/RS485轉(zhuǎn)換器連接,以節(jié)省昂貴的PLC,如圖2所示。在軟件上,由于單主站系統(tǒng)不涉及令牌傳遞,可容易地在PC上編寫兼容ProfibusDP協(xié)議的單主站程序。
            


            四、軟件實現(xiàn)
            1、ProfibusDP單主站協(xié)議
            主站讀命令: $①①R②13
            從站回應(yīng)數(shù)據(jù)格式:=③③③13
            主站寫命令: $①①W②③③③13
            從站確認(rèn)格式: 6
            13是回車鍵的ASCII碼,6是ACK的ASCII碼,$,R,W分別代表相應(yīng)ASCII碼,①①是代表地址的2個ASCII碼,②是代表變量號的一個ASCII碼,③③③是代表數(shù)據(jù)的3個ASCII碼。
            RS232只使用了TXD,RXD和GROUND三根信號線。每幀8個數(shù)據(jù)位,偶校驗,1個結(jié)束位。數(shù)據(jù)傳輸速率9600 b/s。
            2、作為下位機(jī)查詢、設(shè)置各從站
            程序框圖如圖3所示
            

           

           

           


          3、作為調(diào)節(jié)器控制一個從站PID輸出
            該部分程序框圖如圖4所示,具體程序略。
            


            作為過程監(jiān)控層,也可使用循環(huán)輪詢各從站,PID程序僅作為對其中一個從站的處理。軟件當(dāng)然也可使用Simatic WinCC組態(tài)、VC++6.0等編寫圖形界面PC應(yīng)用程序,達(dá)到監(jiān)控和控制雙重功能。
            五、結(jié)束語
            程序在圖2系統(tǒng)中的PC上運(yùn)行通過,與使用ASIC協(xié)議芯片的ProfibusDP從站能很好通信,PID輸出程序在皮帶秤配料控制中達(dá)到了和PLC一樣的精度,驗證了在某些ProfibusDP單主站系統(tǒng)中以PC完成PLC功能的可行性。

           
           
           
           
           
           


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();