BASIC語(yǔ)言在PLC控制系統中的應用
1 引言
本文引用地址:http://dyxdggzs.com/article/201610/306698.htmbasic語(yǔ)言是微機系統中廣泛應用的一種高級編程語(yǔ)言,它的指令接近思維邏輯的表達,與自然語(yǔ)言有相通之處,易學(xué)易懂,同時(shí)它包涵豐富的算法函數,能十分方便地進(jìn)行各種數據處理,因而深受廣大編程愛(ài)好者喜愛(ài)。plc是計算機科學(xué)在工業(yè)控制領(lǐng)域內的一個(gè)重要分支,它一般采用梯形圖、語(yǔ)句表作為其編程語(yǔ)言,由于梯形圖形似電氣原理圖,直觀(guān)易懂,易為電氣工程師所接受,為plc的推廣應用起到了極大的推動(dòng)作用。plc從誕生至今,幾十年來(lái),應用領(lǐng)域不斷擴大,現在,通訊問(wèn)題已成為plc應用中的一個(gè)重要課題之一。
本文以ge fanucplc系列pcm智能通訊模塊在某泵站控制系統中的應用為例進(jìn)行探討,介紹了basic語(yǔ)言在解決plc與現場(chǎng)儀表或其它外部智能設備之間數據通訊問(wèn)題時(shí)能起到的作用,為廣大同行提供又一種串行通訊解決方案。
2 系統簡(jiǎn)述
本系統采用ge fanuc 90-30系列plc model351,一塊智能通訊模塊cmm311,一塊可編程智能通訊模塊pcm311,及開(kāi)關(guān)量輸入、輸出模塊,模擬量輸入模塊若干。
通訊模塊cmm311有兩個(gè)通訊口,分別負責與上位機組態(tài)軟件及現場(chǎng)digital觸摸屏進(jìn)行通訊。
可編程通訊模塊pcm311為通訊協(xié)處理機,內有固化的megabasic語(yǔ)言解釋程序,能執行通過(guò)外部編程終端存儲進(jìn)來(lái)的basic程序。該模塊有兩個(gè)通訊端口,一個(gè)端口為編程口,ge公司logicmaster編程軟件包中有專(zhuān)用于pcm模塊編程的軟件,用它可通過(guò)該編程口登錄pcm模塊,將計算機中文本形式的basic代碼文件存入模塊的存儲器中;另一個(gè)端口為專(zhuān)用外部通訊口,在basic程序中可打開(kāi)此端口與外部智能設備進(jìn)行通訊。在特殊時(shí)候,編程口也可被basic程序打開(kāi),作與外部設備通訊用,但這樣使用在調試時(shí)稍有不便。
系統布置要求敘述如下:
plc cpu負責開(kāi)關(guān)量、模擬量的采集、運算,實(shí)施直接的控制功能;通訊模塊cmm311通過(guò)兩個(gè)通訊口分別連接上位機及觸摸屏,實(shí)現人機界面與plc的數據通訊;pcm模塊的com2與westinghouse(西屋儀表)mint ii網(wǎng)絡(luò )轉換器相連,負責通過(guò)mint ii網(wǎng)絡(luò )轉換器與現場(chǎng)三個(gè)種類(lèi)的12臺westinghouse儀表通訊,采集電流、電壓、功率等各種物理量的實(shí)時(shí)數據,同時(shí),com1在調試完畢后用來(lái)與現場(chǎng)一臺三菱fx2n plc通訊,實(shí)現從ge plc系統到fx2n系統的數據通路,方案圖如圖1所示。
2.1 minit ii轉換器通訊協(xié)議簡(jiǎn)介

在這個(gè)方案中,minit ii與下位設備的硬件連接為雙絞線(xiàn),minit ii及下位各設備都并入雙絞線(xiàn)組成的westinghouse incom網(wǎng)絡(luò ),在該網(wǎng)絡(luò )中各通訊主體使用二進(jìn)制通訊方式,數據幀均由33位二進(jìn)制數構成,minit ii充當主站(master)角色,對下位各設備發(fā)起通訊,進(jìn)行輪詢(xún)。
pcm311模塊與minit ii轉換器進(jìn)行的是ascii碼通訊方式,而minit ii轉換器與下位dt3000、mp3000、iq200各系列設備的通訊方式為二進(jìn)制碼通訊,實(shí)際上minit ii所起到的作用是將pcm模塊發(fā)出的ascii碼指令幀轉譯為二進(jìn)制碼指令幀,當然,在通訊過(guò)程中,我們只需關(guān)心ascii碼通訊幀的格式,minit ii會(huì )自動(dòng)將其轉為二進(jìn)制格式后發(fā)到incom網(wǎng)絡(luò )中去。
minit ii模塊的25針rs232串行口接收的ascii碼幀由10個(gè)ascii碼字符組成,分為控制指令幀、數據指令幀兩類(lèi),大致形式如下:
控制指令:
(stx)(c/d)(inst)(comm)(scomm)(address)(sumcheck)
數據指令:
(stx)(c/d)(data)(sumcheck)
stx:第2號ascii碼,占一位
c/d:控制指令時(shí)為1,數據指令時(shí)為0,占一位
inst、comm、scomm:由這三個(gè)數字指定需要返回的參數,各占一位
address:指定指令的發(fā)送對象,是一個(gè)三位數的十六制數,占三位
sumcheck:和校驗碼,占二位
data:返回的數據信息,占六位
minit ii串行通訊參數在其面板上通過(guò)開(kāi)關(guān)來(lái)選定。
2.2 fx2n plc通訊協(xié)議簡(jiǎn)介
fx2n是三菱品牌plc在小系統控制應用中使用較多的一種經(jīng)濟型plc,外部設備通過(guò)232bd、485bd等插件或485adp等模塊可與其建立ascii碼串行通訊,讀取plc內部寄存器的值。其協(xié)議格式如下:
(1) 讀寄存器
*外設:(enq)(站號)(pc號)(命令字符)(等待時(shí)間)(頭元件)(元件數)(和校驗)
*plc:(stx)(站號)(pc號)(返回數據)(etx)(和校驗)
*外設:(ack)(站號)(pc號)
(2) 寫(xiě)寄存器
*外設:(enq)(站號)(pc號)(命令字符)(等待時(shí)間)(頭元件)(元件數)(寫(xiě)出數據)(和校驗)
*plc:(stx)(站號)(pc號)
*enq、stx、ack、etx:為相應的ascii碼
*站號:plc的站地址,為兩位十六進(jìn)制數(00-0fh),由plc的d8121寄存器指定
*pc號:用于a系列melsecnet網(wǎng)絡(luò )中的plc,對fx2n均為ffh
*命令字符:分為位讀(br)、位寫(xiě)(bw)、字讀(wr)、字寫(xiě)(ww)
*等待時(shí)間:以10ms為單位,以十六進(jìn)制數表示,占一個(gè)字符(0-f)
*頭元件:為要讀、寫(xiě)的開(kāi)始元件號,如m0001、d0000等。
*元件數:為要讀、寫(xiě)的元件個(gè)數。
*返回數據、寫(xiě)出數據:為從plc返回的寄存器值或要寫(xiě)到plc的數據值
由于fx2n與中央控制柜距離較遠,故本系統中采用fx2n與485bd插件,pcm311模塊經(jīng)232/485轉換器與485bd相連,轉換器與485bd之間采用兩對雙絞線(xiàn)相連,全雙工方式通訊,plc串行通訊參數在d8120中設定。
2.3 megabasic的語(yǔ)法簡(jiǎn)介
(1) 串口操作:pcm模塊共有二個(gè)串口,它們均可在megabasic程序中被打開(kāi),與外部進(jìn)行通訊,以下為常用的串口操作函數。
*串口的打開(kāi):open ,
如open #8,“com1”
*串口的關(guān)閉:close
如close #8
*串口通訊參數的設定:ioctl ,
(2) ioctl_string格式為:
baud(波特率),parity(校驗),databits(數據位),stopbits(停止位),flowctl(流控制方式),physical(物理協(xié)議如232/485/422),duplexmode(通訊模式,半雙工/全雙工)如ioctl #8,“19200,n,8,1,n,232”
(3) 從串口讀取數據:inchr$(,,,,)
如restr=inchr$(ch%,10,“”,0,timeout%)
(4) 向串口發(fā)送數據:print,
如print #8,“hello world”
(5) megabasic程序對plc寄存器的訪(fǎng)問(wèn):
對于pcm模塊所在的plc系統中的寄存器如%i,%q,%r,%m等,basic程序中并不可直接引用,而需通過(guò)使用特定的功能指令來(lái)訪(fǎng)問(wèn)它們。
a)訪(fǎng)問(wèn)plc寄存器之前,先要使用syslink指令。
syslink,,[type]
local_name:basic程序內部定義的變量
cpu_symbol:plc的寄存器名,外加雙引號(如“%r500”)
type:關(guān)聯(lián)數據的類(lèi)型,如bool,byte,int16,uint,dint等
b) 讀、寫(xiě)plc寄存器
sysread
syswrite
在syslink指令執行后,即可使用上面兩個(gè)指令分別讀、寫(xiě)basic變量所關(guān)聯(lián)的plc寄存器。
2.4 系統編程過(guò)程簡(jiǎn)介
根據minit ii通訊協(xié)議及megabasic語(yǔ)言的基本語(yǔ)法,在文本編輯器(如記事本)中寫(xiě)好大致的程序,特別是對返回數據的解析編寫(xiě)專(zhuān)門(mén)的函數來(lái)進(jìn)行處理,以得到浮點(diǎn)數形式的電壓、電流、功率等數據,其中重點(diǎn)要注意好對返回錯誤幀時(shí)的處理,還有采集不同數據時(shí)的協(xié)議上的差別,這一部分程序寫(xiě)好后,利用pcm模塊的com1通過(guò)logicmaster軟件導入pcm模塊,用com1監視運行,用com2通訊,進(jìn)行聯(lián)機調試,根據調試情況加以修正完善,得到最終版本。
類(lèi)似上述步驟,根據fx2n的通訊協(xié)議,寫(xiě)好與fx2n通訊的程序,用com1監視運行,用com2通訊,經(jīng)調試修正,得到最終版本。
將兩個(gè)版本的程序合并,并將與fx2n通訊的端口改為com1,去掉程序中用于監視運行的輸出語(yǔ)句(print),再重新導入pcm模塊中,一個(gè)滿(mǎn)足系統要求的完整的通訊程序就這樣就寫(xiě)成了。
3 結束語(yǔ)
用類(lèi)似本系統中的pcm模塊完成通訊任務(wù),筆者認為其相對利用plc梯形圖程序進(jìn)行通訊優(yōu)點(diǎn)很明顯。首先由于其使用的是與微機系統中的basic語(yǔ)言語(yǔ)法相同的高級語(yǔ)言,易學(xué)易懂,處理復雜的數據運算時(shí)得心應手,在復雜的有大量通訊任務(wù)的系統中有很重大的推廣價(jià)值;再者在系統調試時(shí)也有明顯優(yōu)勢,一個(gè)端口正在通訊時(shí),一個(gè)端口實(shí)時(shí)監視程序的運行情況,并可以自然語(yǔ)言的形式輸出實(shí)時(shí)的調試信息,plc程序就不會(huì )有這么好的效果,那么結果是這種系統的開(kāi)發(fā)周期必然大為縮短。
plc系統中采用basic語(yǔ)言的協(xié)處理器,筆者認為這是plc應用中一個(gè)新的發(fā)展,對簡(jiǎn)化編程,減輕工控系統開(kāi)發(fā)者的開(kāi)發(fā)壓力可起到較大的作用,據了解,很多plc廠(chǎng)商都有類(lèi)似功能的模塊生產(chǎn),如三菱公司就推出了ad51h高速智能通信組件,使用ad51h basic語(yǔ)言,支持四個(gè)通信口,具備384k內存,大大提高了plc系統數據通信與收集方面的靈活性。
評論