• <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

    <table id="fficu"></table>

    <sup id="fficu"></sup>
    <output id="fficu"></output>
    1. ACS880-07C
      關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
      橫河電機-23年10月11日
      2024
      工業(yè)智能邊緣計算2024年會(huì )
      2024中國自動(dòng)化產(chǎn)業(yè)年會(huì )
      2023年工業(yè)安全大會(huì )
      OICT公益講堂
      當前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

      案例頻道

      PLC和PC實(shí)時(shí)通信方法的研究
      • 企業(yè):控制網(wǎng)     領(lǐng)域:PLC /PAC/PCC/RTU     行業(yè):電梯    
      • 點(diǎn)擊數:2174     發(fā)布時(shí)間:2004-02-08 14:22:00
      • 分享到:

      高淑敏,費玉華

      1  概述
          在工業(yè)控制系統中,PLC作為一種穩定可靠的控制器已經(jīng)得到了廣泛的應用。但是由于中小型PLC的人機接口功能不很完善,不能提供給用戶(hù)一個(gè)友好的交互界面,因此妨礙了對現場(chǎng)運行過(guò)程的跟蹤與監控。
      PLC實(shí)際工作中,通常人們采用4種裝置為PLC配置人機界面:編程終端、顯示終端、工作站及個(gè)人計算機。編程終端主要用于編程與調試,其監控功能相對較弱。顯示終端的功能比較單一,主要用作現場(chǎng)顯示。工作站系統很受用戶(hù)歡迎,它功能全面、使用簡(jiǎn)單,但由于要配置高級組態(tài)軟件,因而價(jià)格比較昂貴。個(gè)人計算機可配備多種高級語(yǔ)言,提供優(yōu)良的軟件平臺,開(kāi)發(fā)各種應用系統,特別是動(dòng)態(tài)畫(huà)面顯示等,與PLC相結合組成一套PC-PLC監控管理系統,能夠充分發(fā)揮它們各自的優(yōu)點(diǎn)。但是在該系統中,關(guān)鍵的問(wèn)題就是通信,用戶(hù)對此須做較多的開(kāi)發(fā)工作。
          本文詳細闡述了PC與PLC互連通信的一般方法,并以西門(mén)子公司的S7-200 PLC為對象,以實(shí)際四層電梯模型監控系統為例,介紹了利用大家都熟悉的編程語(yǔ)言Visual Basic 和Step7,實(shí)現PLC與上位計算機實(shí)時(shí)通信的通信過(guò)程。
      2  通信方式
          面對眾多生產(chǎn)廠(chǎng)家的各種類(lèi)型PLC,它們各有優(yōu)缺點(diǎn),能夠滿(mǎn)足用戶(hù)的各種需求,但在形態(tài)、組成、功    能、編程等方面各不相同,沒(méi)有一個(gè)統一的標準,各廠(chǎng)家制訂的通信協(xié)議也千差萬(wàn)別。目前,人們主要采用以下三種方式實(shí)現PLC與PC的互聯(lián)通信:
      (1)  通過(guò)使用PLC開(kāi)發(fā)商提供的系統協(xié)議和網(wǎng)絡(luò )適配器,來(lái)實(shí)現PLC與PC機的互聯(lián)通信。但是由于其通信協(xié)議是不公開(kāi)的,因此互聯(lián)通信必須使用PLC開(kāi)發(fā)商提供的上位機組態(tài)軟件,并采用支持相應協(xié)議的外設??梢哉f(shuō)這種方式是PLC開(kāi)發(fā)商為自己的產(chǎn)品量身定作的,因此難以滿(mǎn)足不同用戶(hù)的需求。
      (2)  使用目前通用的上位機組態(tài)軟件,如組態(tài)王、InTouch、WinCC、力控等,來(lái)實(shí)現PLC與PC機的互連通信。組態(tài)軟件以其功能強大、界面友好、開(kāi)發(fā)簡(jiǎn)潔等優(yōu)點(diǎn)目前在PC監控領(lǐng)域已經(jīng)得到了廣泛的應用,但是一般價(jià)格比較昂貴。組態(tài)軟件本身并不具備直接訪(fǎng)問(wèn)PLC寄存器或其它智能儀表的能力,必須借助I/O驅動(dòng)程序來(lái)實(shí)現。也就是說(shuō),I/O驅動(dòng)程序是組態(tài)軟件與PLC或其它智能儀表等設備交互信息的橋梁,負責從設備采集實(shí)時(shí)數據并將操作命令下達給設備,它的可靠性將直接影響組態(tài)軟件的性能。但是在大多數情況下,I/O驅動(dòng)程序是與設備相關(guān)的,即針對某種PLC的驅動(dòng)程序不能驅動(dòng)其它種類(lèi)的PLC,因此組態(tài)軟件的靈活性也受到了一定的限制。
      (3)  利用PLC廠(chǎng)商所提供的標準通信端口和由用戶(hù)自定義的自由口通信方式來(lái)實(shí)現PLC與PC機的互連通信。這種方式由用戶(hù)定義通信協(xié)議,不需要增加投資,靈活性好,特別適合于小規模的控制系統。
      通過(guò)上述分析不難得出,掌握如何利用PLC廠(chǎng)商提供的標準通信端口和自由口通信方式以及大家所熟悉的編程語(yǔ)言來(lái)實(shí)現PC與PLC之間的實(shí)時(shí)通信是非常必要的。
      3  S7-200 PLC通信方式及原理
          S7-200 PLC內部集成的PPI接口為用戶(hù)提供了強大的通信功能,可在多種模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通信方式最具有特色,通信協(xié)議可完全由梯形圖程序控制,通過(guò)它可以實(shí)現PLC與任何具有通信能力的設備進(jìn)行互連,因而在本系統中選用自由口通信方式。
          目前PLC與PC機的鏈接通信有兩種方式,一種是PC機始終處于主導地位,數據的傳送都由PC機定時(shí)發(fā)出命令,另外一種是PLC始終具有優(yōu)先權。在本電梯模型監控系統中所有的控制信號均為開(kāi)關(guān)量信號,考慮到上位PC機僅實(shí)時(shí)顯示電梯的運行狀態(tài),不需向PLC發(fā)送控制指令,采用第二種通信方式。利用PLC循環(huán)掃描的特點(diǎn),設備狀態(tài)一旦改變,PLC立即檢測到,并將反映系統狀態(tài)變化的數據存入指定的數據緩沖區,通過(guò)XMT發(fā)送指令,將數據通過(guò)COM口發(fā)至上位機。每個(gè)系統的狀態(tài)對應于數據緩沖區中的一個(gè)指定字節,所存儲數據均為16進(jìn)制數據,為保證通信過(guò)程的可靠性,上位機對所接受到的數據進(jìn)行首尾字符校驗,如果校驗成功,則說(shuō)明接收到的首末字節之間的數據是正確的,從而進(jìn)行處理,否則,放棄這批數據,要求對方重發(fā)。
      4  應用實(shí)例與程序設計
      (1)  系統構成
          S7-200 PLC內部集成的PPI接口物理特性為RS485,而上位機的標準串口為RS232,為了實(shí)現兩者的通信必須進(jìn)行協(xié)議轉換,西門(mén)子公司提供的PC/PPI電纜帶有RS232/RS485電平轉換器,因此再不增加任何硬件的情況下,可以方便的實(shí)現二者的互聯(lián)和協(xié)議轉換。
      作為控制器的S7-200 PLC利用電梯模型自帶的電源線(xiàn)實(shí)現與四層電梯模型的互連,該電梯模型為教學(xué)試驗裝置,具備一般電梯的基本功能。硬件連接如圖1所示。 

      圖1  硬件連接示意圖

      (2)  PLC部分編程
      ①  自由端口的初始化
          在自由口通信模式下,通過(guò)設置特殊存儲器SMB30(端口0),來(lái)為自由端口通信選擇波特率、奇偶校驗和數據位。這些設定必須與PC機設定值相一致。其格式如下:
      SMB30  
      pp為奇偶校驗選擇,d為數據位選擇,bbb為波特率選擇。
        00為無(wú)校驗,0為每個(gè)字符8位,000為38 400
      baud,001為19 200baud;
        01為偶校驗,1為每個(gè)字符7位,010為9 600 baud,011為4 800baud;
        10為無(wú)校驗,100為2 400baud,101為1 200baud;
        11為奇校驗,110為600baud,111為300baud;
      mm為協(xié)議選擇:00為PPI協(xié)議,01為自由口協(xié)議,10為PPI/主站模式,11默認為PPI/從站模式。
      ②  S7-200PLC實(shí)時(shí)向上位PC機傳送數據 

      圖2  下位機程序流程圖

          在對電梯模型控制中,所有的控制信號均為開(kāi)關(guān)量,基于這一特點(diǎn),系統狀態(tài)的改變即為這些開(kāi)關(guān)量信號狀態(tài)的改變,因此可通過(guò)跟蹤這些開(kāi)關(guān)量信號的上升沿信號、下降沿信號的到來(lái),做為系統狀態(tài)改變的依據。據此在本系統中,通過(guò)對同一個(gè)開(kāi)關(guān)量信號的上升沿、下降沿分別定義不同的16進(jìn)制數的方式,來(lái)代表信號的產(chǎn)生與結束,當檢測到這些信號產(chǎn)生時(shí),便將這些數據存入指定的數據緩沖區中的字節中,并通過(guò)COM口發(fā)至上位PC機,同時(shí)產(chǎn)生發(fā)送完成中斷,PLC延遲等待接收來(lái)自上位機的應答信號,通過(guò)分析存儲在接收字符緩沖器SMB2中的數據,判斷是否需要重新發(fā)送。下位機程序如圖2所示。
      (3)  上位機部分編程
          基于VB處理監控界面圖形、數據報表及通信的方便快捷,本課題上位機的編程環(huán)境采用VB來(lái)實(shí)現。VB不僅提供了MSCOMM串行通信控件,而且也為這個(gè)控件提供了標準的事件處理函數,并通過(guò)設置它的一些屬性對通信接口進(jìn)行初始化,從而很容易的實(shí)現了串行通信的問(wèn)題。
      下面介紹一下有關(guān)此控件的屬性:
          Commport,設置通信連接端口。程序必須指定要使用的串行端口的號碼,Windows使用所設置的通信端口與外界進(jìn)行通信。
          Settings,設置初始化參數。其格式為“BBBB,P,D,S”,其中BBBB為連接速度,P為奇偶校驗方式,D為數據位數,S為停止位數。默認值是“9 600,n,8,1”。
          PortOpen,設置通信連接端口的狀態(tài)。使用串行端口之前必須先將要使用的串行端口打開(kāi)。
          Input,返回并刪除接收緩沖區中的數據流。
          InputLen,設置從串行端口讀入的字符串長(cháng)度。
          Rthreshold,設置引發(fā)接收事件的字符數。
          InputMode,設置接收數據數據形式。
          OnComm事件,用來(lái)處理所有與通信相關(guān)的事件。使用事件程序的好處是不需要一直讓程序處于檢測的狀態(tài)下,只要事先將程序代碼寫(xiě)好,一有事件發(fā)生,就會(huì )直接執行相對應的程序代碼??梢?jiàn)這種事件驅動(dòng)的方式也為實(shí)現實(shí)時(shí)通信提供了必要的條件。上位機程序如圖3所示。
      PC機根據接收到的信息很容易的實(shí)現對每個(gè)開(kāi)關(guān)量的狀態(tài)進(jìn)行識別,從而控制監控界面的實(shí)時(shí)顯示。 

      圖3  上位機程序流程圖

      5  結語(yǔ)
          以上是基于S7-200PLC自由口通信方式實(shí)現與上位機PC實(shí)時(shí)通信的一個(gè)簡(jiǎn)單應用。經(jīng)驗證,該方法簡(jiǎn)單、實(shí)時(shí)性好,可靠性高,對于邏輯控制系統,是能夠實(shí)現對被控對象實(shí)時(shí)監控簡(jiǎn)單易行的方法。

      參考文獻
      [1]  馬國華. 監控組態(tài)軟件及其應用[M]. 清華大學(xué)出版社.
      [2]  李志宏, 杜鵑, 張平, 等. 基于VB的PLC和上位機通信的實(shí)現方法[J]. 基礎自動(dòng)化, 2002,2.
      [3]  SIMATIC S7-200可編程控制器[M]. 系統手冊, 2000,11.
      [4]  范逸之, 等. 利用Visual Basic實(shí)現串并行通信技術(shù)[M]. 清華大學(xué)出版社.

      熱點(diǎn)新聞

      推薦產(chǎn)品

      x
      • 在線(xiàn)反饋
      1.我有以下需求:



      2.詳細的需求:
      姓名:
      單位:
      電話(huà):
      郵件:
      欧美精品欧美人与动人物牲交_日韩乱码人妻无码中文_国产私拍大尺度在线视频_亚洲男人综合久久综合天

    2. <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

      <table id="fficu"></table>

      <sup id="fficu"></sup>
      <output id="fficu"></output>