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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > PLC實現多臺控制器遠程撥號通訊

          PLC實現多臺控制器遠程撥號通訊

          作者: 時間:2011-06-27 來源:網絡 收藏

          1. 引言

          本文引用地址:http://www.ex-cimer.com/article/161909.htm

          在很多場合,我們需要對距離很遠的進行監(jiān)測。當距離在幾千米的情況下,我們可以使用有線連接,比如采用Profibus-DP總線連接。但當距離有幾百千米,甚至更遠的情況下,采用上述連接方式的花費將會是驚人的,所以多采用廉價的電話通信進行數據傳輸。

            2 .方案比較

            通常情況下,每臺通過一臺Modem和一條電話線連接到PC。PC與每臺之間占用一條通信線路,所以每次只能與一臺控制器進行數據通信。該方案監(jiān)控系統(tǒng)如圖1。

            

            圖1 控制器與PC通信方案一

            在該方案下,每個控制器占用一個電話號碼資源、一條電話線路和一臺Modem。遠程PC通過電話線與每個控制器分別連接,當需要與某個控制器進行數據通信時,通過連接該控制器,進行數據通信。在這種情況下,如果有多個控制器需要與遠程PC通信,將會占用多條電話線路。遠程PC不可能同時與控制器進行數據通信,只能依次輪詢每個控制器,不僅Modem每次建立連接會耗費大量的時間,而且浪費大量的通信費用。

            針對以上方案存在的弊端,本文提出一種新的方案,只采用1條電話線路和一臺Modem,即可遠程PC與所有的控制器進行數據通信。

            該方案監(jiān)控系統(tǒng)如圖2:

            

            圖2 控制器與遠程PC通信方案二

            現場的控制器作為Modbus從站(可能是RS232接口的,也可能是RS485接口的,若是RS232接口,可以通過一個很便宜的轉換設備將RS232轉換成RS485),將所有的控制器掛接到485總線上,Modbus主站采用和利時公司HOLLiAS LM系列的40點CPU模塊LM3108。LM3108的RS485口掛接到485總線上,LM3108通過RS485口采用Modbus協(xié)議將各個控制器內需要讀取的數據分別讀取上來,存儲在對應的地址中。

            LM3108的RS232接口與Modem連接,Modem通過電話線與遠程PC連接。當建立連接后,遠程PC與LM3108之間撥號連通以后同樣采用Modbus協(xié)議,此時遠程PC作為Modbus主站,LM3108的RS232口作為Modbus從站,遠程PC只需要取得中相對應的地址中的數據即可。

            PLC與遠程PC建立連接可以采用兩種方式:

            1)PLC主動呼叫遠程PC,可以在PLC中設定時間,或者設定某個觸發(fā)條件,當條件滿足時主動呼叫遠程PC建立連接,進行通信。

            2)遠程PC主動呼叫PLC,遠程監(jiān)控人員根據需要撥號,以采集各控制器的數據。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();