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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Modbus RTU通訊協(xié)議在流漿箱控制系統(tǒng)中的應(yīng)用

          Modbus RTU通訊協(xié)議在流漿箱控制系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2012-07-02 來源:網(wǎng)絡(luò) 收藏

          4 上位機(jī)與PLC通訊的具體實(shí)現(xiàn)

            作為主機(jī)的上位機(jī)通過通信協(xié)議可以訪問從機(jī)ABB AC31 50系列PLC里所有類型的輸入、輸出、內(nèi)部及常量數(shù)據(jù)。但是為使上位機(jī)更高效地讀取PLC中的數(shù)據(jù),需要將要讀取的數(shù)據(jù)合理安排,這里我們將上位機(jī)需要訪問的所有輸入、輸出、內(nèi)部字或位數(shù)據(jù)經(jīng)轉(zhuǎn)換都在PLC中以一定順序按地址連續(xù)地存放在內(nèi)部字存儲(chǔ)區(qū)中,以便上位機(jī)每次只用一條讀請(qǐng)求命令讀取此塊內(nèi)部字存儲(chǔ)區(qū),即可獲取所需的全部PLC數(shù)據(jù)。這樣可以顯著的提高通訊效率,同時(shí)簡化上位機(jī)程序。我們將讀請(qǐng)求命令存在 QueryData數(shù)組中,如下:
            Dim QueryData(1 to 8)As Byte
            QueryData(1) = (H1) ‘PLC地址為1
            QueryData(2) = (H3) ‘功能碼為3,讀取n個(gè)數(shù)據(jù)
            QueryData(3) = (H2E) ‘?dāng)?shù)據(jù)地址為2E60
            QueryData(4) = (H60)
            QueryData(5) = (H0) ‘?dāng)?shù)據(jù)個(gè)數(shù)為81個(gè)
            QueryData(6) = (H51)
            QueryData(7) = (H8D) ‘校驗(yàn)碼
            QueryData(8) = (H0)

            將QueryData數(shù)組通過MSComm控件發(fā)送給PLC,這樣PLC就會(huì)將其所需的全部數(shù)據(jù)(從PLC地址2E60開始到2EB0結(jié)束的81個(gè)地址連續(xù)的數(shù)據(jù))一次返回給上位機(jī)。

            由于協(xié)議采用主從應(yīng)答方式,即上位機(jī)程序中需要定時(shí)或循環(huán)發(fā)送讀取PLC數(shù)據(jù)的讀寫請(qǐng)求命令,而PLC對(duì)收到的每一條請(qǐng)求命令按協(xié)議規(guī)則進(jìn)行回應(yīng)。如此一應(yīng)一答循環(huán)往復(fù)實(shí)現(xiàn)數(shù)據(jù)采集和控制命令的發(fā)送。同時(shí)為了避免讀寫沖突,要控制每兩條請(qǐng)求命令發(fā)送的時(shí)間間隔。下面這段程序簡單的說明了讀、寫命令發(fā)送是如何控制的:
            While (1)
            DoEvents
            If bNeedToWriteNewData Then
            ‘寫命令
            MSComm1.Output =SetData
            TimeDelay (100) ‘延時(shí)100毫秒
            ReceiveData = MSComm1.Input
            bNeedSendNewData = False
            Else
            ‘讀命令
            MSComm1.Output = QueryData
            TimeDelay (100) ‘延時(shí)100毫秒
            ReceiveData = MSComm1.Input
            buf = ReceiveData
            ‘處理、轉(zhuǎn)換
            Call PrecessPLCData(buf)
            End If
            Wend

            實(shí)際應(yīng)用中采用定時(shí)讀寫的方式,流程如圖2所示。上位機(jī)將處理、轉(zhuǎn)換過的數(shù)據(jù)存入數(shù)據(jù)庫,并以動(dòng)態(tài)趨勢和歷史趨勢的形式顯示出來,同時(shí)提供報(bào)警指示。所有關(guān)鍵參數(shù)都要獲得相應(yīng)權(quán)限后方可從上位機(jī)寫入PLC。

            上位機(jī)使用Windows2000操作系統(tǒng),監(jiān)控程序用VB6.0編寫,這樣可以保證上位機(jī)穩(wěn)定的運(yùn)行,監(jiān)控程序通過串口從 ABB AC31 PLC可獲得各現(xiàn)場過程值和參數(shù),也可隨時(shí)根據(jù)工藝要求對(duì)PLC中的參數(shù)進(jìn)行更改設(shè)置,從而對(duì)生產(chǎn)過程實(shí)施有效控制,在更改車速時(shí),系統(tǒng)會(huì)自動(dòng)更改總壓設(shè)定值,使?jié){網(wǎng)速比滿足條件。同時(shí)對(duì)各種可能出現(xiàn)的故障給出了在線幫助和排查方法,極大的方便了操作工的使用和維護(hù)。

          5 總結(jié)

            本控制系統(tǒng)在某紙廠五萬噸生產(chǎn)線中已成功使用,現(xiàn)場運(yùn)行穩(wěn)定,壓力、液位曲線非常平穩(wěn),控制效果和通訊速度方面令人滿意,已順利通過驗(yàn)收,也為抄造高品質(zhì)的紙張?zhí)峁┝擞辛Φ谋U?。Modbus通訊協(xié)議以其格式簡單、編程容易、傳輸距離遠(yuǎn)、通訊可靠、通訊速率高、設(shè)備間連接成本低等優(yōu)點(diǎn)使得它將能得到更廣泛的應(yīng)用。


          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();