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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 盲點(diǎn) [簡(jiǎn)明漢英詞典]

          盲點(diǎn) [簡(jiǎn)明漢英詞典]

          ——
          作者: 時(shí)間:2006-06-14 來(lái)源: 收藏
           MODBUS 是采取一問(wèn)一答的協(xié)議, 如果物理層 ( 硬件層 ) 使用 RS-232 或是 RS-422 因?yàn)槭?“接收” 與 “發(fā)送” 分離, 因此一般不會(huì)發(fā)生傳送遺失問(wèn)題; 但如使用 RS-485 時(shí), 因?yàn)槭?“接收” 與 “發(fā)送” 同在一條傳輸線上, 因此容易造成資料遺失.
            造成資料遺失的問(wèn)題取決主因是 [ Master發(fā)送最后一筆資料后哪時(shí)釋放發(fā)送權(quán) ] 問(wèn)題 ? 根據(jù)標(biāo)準(zhǔn) MODBUS 規(guī)則是等待 四個(gè) 傳輸字符當(dāng)間格. 舉例來(lái)說(shuō) 在 9600,E,8,1 傳輸率上則必須間格 ( 1.1416ms * 4 ) 既一般說(shuō)的 4ms 空閑時(shí)間.
            但; 實(shí)際上有一問(wèn)題; 如果產(chǎn)品定義只是 MODBUS I/O 這 [空閑問(wèn)題] 可能可以接受, 因?yàn)?CPU 可以有很充分時(shí)間等待; 若產(chǎn)品是 人機(jī)或是PLC 這4ms可能就會(huì)有問(wèn)題, 當(dāng)然解決方式可以使用雙CPU來(lái)解決, 既是用一顆CPU專(zhuān)門(mén)處理傳輸問(wèn)題. 因此許多人機(jī)與 PLC 都是以最后一個(gè)字符傳輸完畢來(lái)區(qū)隔; 事實(shí)證明這種傳輸方式也是有效. 但要讓整體傳輸能縮短空閑時(shí)間其實(shí)可以在接收MODBUS碼五個(gè)以內(nèi) ( 依句柄不同 ) 既能得知總共會(huì)接收多少個(gè)碼; 因此既可縮短或幾乎不需要 空閑時(shí)間 .
            但不管是雙CPU或是單CPU來(lái)處理 MODBUS 協(xié)議處理, 想要減低傳送時(shí)間耗損, 我們必須在解析MODBUS協(xié)議的工作上充分利用其傳輸特性. 并避開(kāi) ”盲點(diǎn)” .
            如下照片, 我們可以用以解說(shuō) “盲點(diǎn)” 誤區(qū)
            
            1. “1”是Slave1回復(fù)Master, 在發(fā)送最后一筆資料立即Master 既馬上回復(fù).
            
            2.是 Master 傳送完畢, 被呼叫到的 Slave2 回復(fù)狀況, 這回復(fù)是Slave2 故意延遲一個(gè)傳送字符時(shí)間.
            
            這是已經(jīng)避開(kāi)誤區(qū)的做法, 但避開(kāi)誤區(qū)的理論則為如下 :
            
            1.主機(jī) ( 上位機(jī) 如 PC / HMI / PLC ) 有許多傳輸部分處理都是引用高階內(nèi)核去寫(xiě), 常見(jiàn)使用 “C語(yǔ)言” 開(kāi)發(fā). 在這我先聲明不是批評(píng) “C語(yǔ)言 “, 但因?yàn)橐话闵衔粰C(jī)很復(fù)雜, 如果沒(méi)有一些功力很難用原生匯編語(yǔ)言來(lái)寫(xiě). 因此 使用者很難自行完全掌握目前工作時(shí)序.
            
            2.上位機(jī)處理 “傳送 / 接收 “ 都是用 “中斷” 來(lái)處理, 也就是對(duì)上位機(jī)來(lái)說(shuō) 由其 “傳送 / 接收 “ 應(yīng)件完成的 中斷來(lái)引發(fā)進(jìn)一步數(shù)據(jù)處理.
            
            3.由第 ”2” 狀況我們可以得知照片 Slave1 回送后 Master 可以馬上發(fā)送理由. 因?yàn)閷?duì) Master 而言它確實(shí)是完整接收完資料, 其短暫的延時(shí)則為其數(shù)據(jù)處理時(shí)間.
            
            4.由第 ”2” 狀況我們可以得知照片 Master 送完后 Slave2 必須延時(shí)一個(gè)字符時(shí)間發(fā)送理由. 因?yàn)閷?duì) Master而言它確實(shí)是完整發(fā)送完資料, 對(duì)Slave2而言它確實(shí)是完整接收完資料, 但如果Slave2馬上將RS485 硬件切入發(fā)送模式并開(kāi)始發(fā)送, 對(duì) Master 而言其發(fā)送剛結(jié)束也正準(zhǔn)備離開(kāi) “串移中斷程序” 此時(shí)Master并沒(méi)放開(kāi) RS-485 硬件發(fā)送模式, 這時(shí)將會(huì)引發(fā) “總線沖突” 此沖突會(huì)導(dǎo)致 主機(jī) 接收硬件第一時(shí)序第一個(gè)位無(wú)預(yù)期錯(cuò)誤. 但糟糕的是這會(huì)引發(fā)主機(jī) “接收硬件” 開(kāi)始工作, 而導(dǎo)致錯(cuò)誤.
            
            5.由上 “4” Slave2為了要避開(kāi)沖突. Slave2 在接收完 Master 后也靜空一個(gè) “傳送字符時(shí)間” 在將 RS-485 由接收轉(zhuǎn)為發(fā)送.



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();