<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>