技術頻道

      BASIC語言在PLC控制系統中的應用

        1 引言

        basic語言是微機系統中廣泛應用的一種高級編程語言,它的指令接近思維邏輯的表達,與自然語言有相通之處,易學易懂,同時它包涵豐富的算法函數,能十分方便地進行各種數據處理,因而深受廣大編程愛好者喜愛。plc是計算機科學在工業控制領域內的一個重要分支,它一般采用梯形圖、語句表作為其編程語言,由于梯形圖形似電氣原理圖,直觀易懂,易為電氣工程師所接受,為plc的推廣應用起到了極大的推動作用。plc從誕生至今,幾十年來,應用領域不斷擴大,現在,通訊問題已成為plc應用中的一個重要課題之一。

        本文以ge fanuc plc系列pcm智能通訊模塊在某泵站控制系統中的應用為例進行探討,介紹了basic語言在解決plc與現場儀表或其它外部智能設備之間數據通訊問題時能起到的作用,為廣大同行提供又一種串行通訊解決方案。

        2 系統簡述

        本系統采用ge fanuc 90-30系列plc model351,一塊智能通訊模塊cmm311,一塊可編程智能通訊模塊pcm311,及開關量輸入、輸出模塊,模擬量輸入模塊若干。

        通訊模塊cmm311有兩個通訊口,分別負責與上位機組態軟件及現場digital觸摸屏進行通訊。

        可編程通訊模塊pcm311為通訊協處理機,內有固化的megabasic語言解釋程序,能執行通過外部編程終端存儲進來的basic程序。該模塊有兩個通訊端口,一個端口為編程口,ge公司logicmaster編程軟件包中有專用于pcm模塊編程的軟件,用它可通過該編程口登錄pcm模塊,將計算機中文本形式的basic代碼文件存入模塊的存儲器中;另一個端口為專用外部通訊口,在basic程序中可打開此端口與外部智能設備進行通訊。在特殊時候,編程口也可被basic程序打開,作與外部設備通訊用,但這樣使用在調試時稍有不便。

        系統布置要求敘述如下:

        plc cpu負責開關量、模擬量的采集、運算,實施直接的控制功能;通訊模塊cmm311通過兩個通訊口分別連接上位機及觸摸屏,實現人機界面與plc的數據通訊;pcm模塊的com2與westinghouse(西屋儀表)mint ii網絡轉換器相連,負責通過mint ii網絡轉換器與現場三個種類的12臺westinghouse儀表通訊,采集電流、電壓、功率等各種物理量的實時數據,同時,com1在調試完畢后用來與現場一臺三菱fx2n plc通訊,實現從ge plc系統到fx2n系統的數據通路,方案圖如圖1所示。

        2.1 minit ii轉換器通訊協議簡介

        在這個方案中,minit ii與下位設備的硬件連接為雙絞線,minit ii及下位各設備都并入雙絞線組成的westinghouse incom網絡,在該網絡中各通訊主體使用二進制通訊方式,數據幀均由33位二進制數構成,minit ii充當主站(master)角色,對下位各設備發起通訊,進行輪詢。

        pcm311模塊與minit ii轉換器進行的是ascii碼通訊方式,而minit ii轉換器與下位dt3000、mp3000、iq200各系列設備的通訊方式為二進制碼通訊,實際上minit ii所起到的作用是將pcm模塊發出的ascii碼指令幀轉譯為二進制碼指令幀,當然,在通訊過程中,我們只需關心ascii碼通訊幀的格式,minit ii會自動將其轉為二進制格式后發到incom網絡中去。

        minit ii模塊的25針rs232串行口接收的ascii碼幀由10個ascii碼字符組成,分為控制指令幀、數據指令幀兩類,大致形式如下:

        控制指令:

        (stx)(c/d)(inst)(comm)(scomm)(address)(sumcheck)

        數據指令:

        (stx)(c/d)(data)(sumcheck)

        stx:第2號ascii碼,占一位

        c/d:控制指令時為1,數據指令時為0,占一位

        inst、comm、scomm:由這三個數字指定需要返回的參數,各占一位

        address:指定指令的發送對象,是一個三位數的十六制數,占三位

        sumcheck:和校驗碼,占二位

        data:返回的數據信息,占六位

        minit ii串行通訊參數在其面板上通過開關來選定。

        2.2 fx2n plc通訊協議簡介

        fx2n是三菱品牌plc在小系統控制應用中使用較多的一種經濟型plc,外部設備通過232bd、485bd等插件或485adp等模塊可與其建立ascii碼串行通訊,讀取plc內部寄存器的值。其協議格式如下:

        (1) 讀寄存器

        *外設:(enq)(站號)(pc號)(命令字符)(等待時間)(頭元件)(元件數)(和校驗)

        *plc:(stx)(站號)(pc號)(返回數據)(etx)(和校驗)

        *外設:(ack)(站號)(pc號)

        (2) 寫寄存器

        *外設:(enq)(站號)(pc號)(命令字符)(等待時間)(頭元件)(元件數)(寫出數據)(和校驗)

        *plc:(stx)(站號)(pc號)

        *enq、stx、ack、etx:為相應的ascii碼

        *站號:plc的站地址,為兩位十六進制數(00-0fh),由plc的d8121寄存器指定

        *pc號:用于a系列melsecnet網絡中的plc,對fx2n均為ffh

        *命令字符:分為位讀(br)、位寫(bw)、字讀(wr)、字寫(ww)

        *等待時間:以10ms為單位,以十六進制數表示,占一個字符(0-f)

        *頭元件:為要讀、寫的開始元件號,如m0001、d0000等。

        *元件數:為要讀、寫的元件個數。

        *返回數據、寫出數據:為從plc返回的寄存器值或要寫到plc的數據值

        由于fx2n與中央控制柜距離較遠,故本系統中采用fx2n與485bd插件,pcm311模塊經232/485轉換器與485bd相連,轉換器與485bd之間采用兩對雙絞線相連,全雙工方式通訊,plc串行通訊參數在d8120中設定。

        2.3 megabasic的語法簡介

        (1) 串口操作:pcm模塊共有二個串口,它們均可在megabasic程序中被打開,與外部進行通訊,以下為常用的串口操作函數。

        *串口的打開:open ,

        如open #8,“com1”

        *串口的關閉:close

        如close #8

        *串口通訊參數的設定:ioctl ,

        (2) ioctl_string格式為:

        baud(波特率),parity(校驗),databits(數據位),stopbits(停止位),flowctl(流控制方式),physical(物理協議如232/485/422),duplexmode(通訊模式,半雙工/全雙工)

        如ioctl #8,“19200,n,8,1,n,232”

        (3) 從串口讀取數據:inchr$(,,,,)

        如restr=inchr$(ch%,10,“”,0,timeout%)

        (4) 向串口發送數據:print,

        如print #8,“hello world”

        (5) megabasic程序對plc寄存器的訪問:

        對于pcm模塊所在的plc系統中的寄存器如%i,%q,%r,%m等,basic程序中并不可直接引用,而需通過使用特定的功能指令來訪問它們。

        a)訪問plc寄存器之前,先要使用syslink指令。

        syslink,,[type]

        local_name:basic程序內部定義的變量

        cpu_symbol:plc的寄存器名,外加雙引號(如“%r500”)

        type:關聯數據的類型,如bool,byte,int16,uint,dint等

        b) 讀、寫plc寄存器

        sysread

        syswrite

        在syslink指令執行后,即可使用上面兩個指令分別讀、寫basic變量所關聯的plc寄存器。

        2.4 系統編程過程簡介

        根據minit ii通訊協議及megabasic語言的基本語法,在文本編輯器(如記事本)中寫好大致的程序,特別是對返回數據的解析編寫專門的函數來進行處理,以得到浮點數形式的電壓、電流、功率等數據,其中重點要注意好對返回錯誤幀時的處理,還有采集不同數據時的協議上的差別,這一部分程序寫好后,利用pcm模塊的com1通過logicmaster軟件導入pcm模塊,用com1監視運行,用com2通訊,進行聯機調試,根據調試情況加以修正完善,得到最終版本。

        類似上述步驟,根據fx2n的通訊協議,寫好與fx2n通訊的程序,用com1監視運行,用com2通訊,經調試修正,得到最終版本。

        將兩個版本的程序合并,并將與fx2n通訊的端口改為com1,去掉程序中用于監視運行的輸出語句(print),再重新導入pcm模塊中,一個滿足系統要求的完整的通訊程序就這樣就寫成了。

        3 結束語

        用類似本系統中的pcm模塊完成通訊任務,筆者認為其相對利用plc梯形圖程序進行通訊優點很明顯。首先由于其使用的是與微機系統中的basic語言語法相同的高級語言,易學易懂,處理復雜的數據運算時得心應手,在復雜的有大量通訊任務的系統中有很重大的推廣價值;再者在系統調試時也有明顯優勢,一個端口正在通訊時,一個端口實時監視程序的運行情況,并可以自然語言的形式輸出實時的調試信息,plc程序就不會有這么好的效果,那么結果是這種系統的開發周期必然大為縮短。

        plc系統中采用basic語言的協處理器,筆者認為這是plc應用中一個新的發展,對簡化編程,減輕工控系統開發者的開發壓力可起到較大的作用,據了解,很多plc廠商都有類似功能的模塊生產,如三菱公司就推出了ad51h高速智能通信組件,使用ad51h basic語言,支持四個通信口,具備384k內存,大大提高了plc系統數據通信與收集方面的靈活性。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 中文字幕AV一区二区三区| 亚洲一区二区女搞男| 亚洲一区二区三区乱码A| 久久无码人妻一区二区三区午夜 | 黑人大战亚洲人精品一区| 国产日本亚洲一区二区三区| 成人影片一区免费观看| 视频在线一区二区| av一区二区三区人妻少妇| 国产91久久精品一区二区| 无码人妻精品一区二区三区久久| 国产精品亚洲不卡一区二区三区| 国产视频福利一区| 国产色欲AV一区二区三区| 精品国产亚洲第一区二区三区| 亚洲日本久久一区二区va| 91精品一区二区综合在线| 久久精品免费一区二区| 91久久精品国产免费一区| 久久精品国产第一区二区三区 | 久久精品黄AA片一区二区三区| 国产午夜福利精品一区二区三区| 中文字幕久久亚洲一区| 久久无码一区二区三区少妇| 久久久久人妻一区精品| 国产在线无码一区二区三区视频| 亚洲av一综合av一区| 亚洲国产精品一区二区久久| 少妇无码一区二区三区| 伊人久久精品无码麻豆一区| 冲田杏梨AV一区二区三区| 高清无码一区二区在线观看吞精 | 中文字幕亚洲综合精品一区| 亚洲福利秒拍一区二区| 成人免费一区二区无码视频| 国产成人一区二区三区高清| 538国产精品一区二区在线| 亚洲老妈激情一区二区三区| 日本免费一区二区三区四区五六区 | 爆乳熟妇一区二区三区霸乳 | 麻豆AV无码精品一区二区|