文/王一村
本次項目使用的是西門子PLC 400系統(tǒng),對塑料生產(chǎn)過程中的粒料除塵單元進(jìn)行實時的控制和監(jiān)測,由于除塵線較多且每條除塵線裝置和設(shè)備基本相同,除塵過程控制基本一致。如果采用傳統(tǒng)的梯形圖進(jìn)行編程則程序步驟冗長且需定義的符號較多,調(diào)試過程中容易出錯且后期維護(hù)需花費(fèi)較多的時間,于是此次我們采用PLC尋址方式中的地址寄存器尋址方式,對不同除塵線中的相同裝置進(jìn)行實際的操作和狀態(tài)的監(jiān)測。
PLC采用的是西門子412冗余CPU,進(jìn)行數(shù)據(jù)的存儲,處理,計算;兩個本地ET200M控制站,分別裝有數(shù)字量,模擬量模塊,對現(xiàn)場儀表信號進(jìn)行轉(zhuǎn)換及采集。CPU和控制站通過PROFIBUS-DP方式進(jìn)行冗余通訊。編程應(yīng)用的是西門子STEP7 V5.5標(biāo)準(zhǔn)組態(tài)軟件。現(xiàn)場設(shè)備包括下料倉的模擬量調(diào)節(jié)閥和變頻電機(jī)等。
在PLC系統(tǒng)當(dāng)中分為很多個地址區(qū)域,在程序中可以根據(jù)對應(yīng)的地址直接讀取存儲的數(shù)據(jù),表1中列出了部分地址。
2.1.1 直接尋址
直接尋址包括絕對地址和符號地址兩種類型。在PLC程序當(dāng)中我們可以直接使用輸入(輸出)信號,位存儲器,數(shù)據(jù)塊等地址。在程序中直接調(diào)用這些存儲區(qū)域的絕對地址是可以的,但是容易出錯并且不太直觀,如果我們給每個地址都命名一個符號(類似于起名字),這樣程序看起來易讀易懂。
(1)絕對地址:絕對地址是由存儲器位置和一個地址標(biāo)識符組成。例如:I0.1,Q1.1,DB2.DBB0等。
(2)符號尋址:給每一個絕對地址自定義一個符號(助記符)使編程過程明了且容易查找。在STEP7當(dāng)中如果準(zhǔn)備用符號訪問結(jié)構(gòu),數(shù)組,數(shù)據(jù)塊,邏輯塊等,則必須給這些絕對地址分配一個自定義的符號名。
2.1.2 間接尋址
間接尋址分為寄存器間接尋址和存儲器間接尋址,間接尋址的指針分為16位指針和32位指針,其中32位指針又分為交叉區(qū)域?qū)ぶ泛蛢?nèi)部區(qū)域?qū)ぶ?,以下我們會主要介紹寄存器間接尋址。
(1)存儲器間接尋址。16位指針間接尋址:16位指針主要是用于PLC中的計數(shù)器,定時器和數(shù)據(jù)塊的尋址,它的數(shù)值范圍是0至65535,它表示計數(shù)器,定時器,數(shù)據(jù)塊的號。16位指針間接尋址的格式如下:區(qū)域標(biāo)識符[16位地址指針]。
32位指針間接尋址:32位地址指針主要用于輸入,輸出,存儲器,局部數(shù)據(jù)位,數(shù)據(jù)塊等存儲器中位,字節(jié),字和雙字的尋址,32位的地址指針可以使用一個雙字表示,第0位至第2位作為尋址操作的位地址,第3位至第18位作為尋址操作的字節(jié)地址,第19位至第31位沒有定義。存儲器32指針只能用作內(nèi)部區(qū)域?qū)ぶ?,尋址的格式如下:地址存儲器?biāo)識符[32位地址指針]。
(2)寄存器間接尋址。通過CPU的地址寄存器AR1和AR2尋址方式稱為寄存器間接尋址,分為內(nèi)部區(qū)域間接尋址和交叉區(qū)域?qū)ぶ贰<拇嫫鏖g接尋址方式的語句格式如下:
指令,地址標(biāo)識符,地址寄存器標(biāo)識符,偏移量
寄存器間接尋址只能使用32位指針,我們使用的內(nèi)部區(qū)域寄存器尋址其中第0位~第2位作為尋址操作的位地址,第3位~第18位作為尋址操作的字節(jié)地址,第19位~第31位無定義,格式如圖1。
間接尋址表示為:存儲器標(biāo)識符[ARx,地址偏移量]
此次我們要對儲料倉的左右兩個下料調(diào)節(jié)閥進(jìn)行控制,每個調(diào)節(jié)閥都對應(yīng)著關(guān)閉,正常和快速三種調(diào)節(jié)模式,關(guān)閉對應(yīng)開度0%,正常對應(yīng)開度80%,快速對應(yīng)開度100%。我們的塑料等級分為1到10級,每一級都對應(yīng)著三種不同的調(diào)節(jié)模式,如果是使用梯形圖的功能塊來進(jìn)行賦值,那么我們一條除塵線將要用到60個功能塊,程序的編程過程和可讀性將大大降低,因此,我們此次我們結(jié)合項目實際功能要求結(jié)合以表2進(jìn)行了編程。
如表2我們10個塑料等級對應(yīng)10行,每行有6個數(shù)據(jù)選項,因此在程序中首先建立6個源寄存器地址用來存放每一列的數(shù)據(jù),6個目標(biāo)寄存器地址用來在程序中使用,分別如下:
圖1
表1
表2
這里“L”是裝入指令,“T”是傳送指令,也就是將源寄存器地址傳送到目標(biāo)寄存器地址。Nm,AR1和AR2程序如下:
這部分程序?qū)?yīng)的公式為:LAR1=(#Nm-1)*24+#Base_Addr_Src
這里“Nm”是指所選物料等級也就是哪一行(共十行),將得到的地址放到AR1當(dāng)中?!癝LW3”是當(dāng)把一個整形數(shù)轉(zhuǎn)化為字節(jié)指針常數(shù)時,左移三位。
這里將最終的地址放到AR2當(dāng)中。
如果在沒有選擇物料等級時,則程序會選擇跳出。
本文是以實際項目為依據(jù),在查閱眾多技術(shù)文檔和參考資料之后,并在滿足現(xiàn)場除塵裝置工藝的實際需求為前提下,在面對PLC程序中需要進(jìn)行大批量相同功能編程,且具有一定規(guī)律的前提下,可以利用PLC 400 CPU自帶的地址寄存器AR1和AR2尋址的方式進(jìn)行編程,這樣不僅可以很大程度上的簡化編程的過程,而且在后期的程序變更和維護(hù)上也大大節(jié)省了時間,該程序在實際運(yùn)行當(dāng)中穩(wěn)定可靠。