文/王一村
本次項目使用的是西門子PLC 400系統,對塑料生產過程中的粒料除塵單元進行實時的控制和監測,由于除塵線較多且每條除塵線裝置和設備基本相同,除塵過程控制基本一致。如果采用傳統的梯形圖進行編程則程序步驟冗長且需定義的符號較多,調試過程中容易出錯且后期維護需花費較多的時間,于是此次我們采用PLC尋址方式中的地址寄存器尋址方式,對不同除塵線中的相同裝置進行實際的操作和狀態的監測。
PLC采用的是西門子412冗余CPU,進行數據的存儲,處理,計算;兩個本地ET200M控制站,分別裝有數字量,模擬量模塊,對現場儀表信號進行轉換及采集。CPU和控制站通過PROFIBUS-DP方式進行冗余通訊。編程應用的是西門子STEP7 V5.5標準組態軟件。現場設備包括下料倉的模擬量調節閥和變頻電機等。
在PLC系統當中分為很多個地址區域,在程序中可以根據對應的地址直接讀取存儲的數據,表1中列出了部分地址。
2.1.1 直接尋址
直接尋址包括絕對地址和符號地址兩種類型。在PLC程序當中我們可以直接使用輸入(輸出)信號,位存儲器,數據塊等地址。在程序中直接調用這些存儲區域的絕對地址是可以的,但是容易出錯并且不太直觀,如果我們給每個地址都命名一個符號(類似于起名字),這樣程序看起來易讀易懂。
(1)絕對地址:絕對地址是由存儲器位置和一個地址標識符組成。例如:I0.1,Q1.1,DB2.DBB0等。
(2)符號尋址:給每一個絕對地址自定義一個符號(助記符)使編程過程明了且容易查找。在STEP7當中如果準備用符號訪問結構,數組,數據塊,邏輯塊等,則必須給這些絕對地址分配一個自定義的符號名。
2.1.2 間接尋址
間接尋址分為寄存器間接尋址和存儲器間接尋址,間接尋址的指針分為16位指針和32位指針,其中32位指針又分為交叉區域尋址和內部區域尋址,以下我們會主要介紹寄存器間接尋址。
(1)存儲器間接尋址。16位指針間接尋址:16位指針主要是用于PLC中的計數器,定時器和數據塊的尋址,它的數值范圍是0至65535,它表示計數器,定時器,數據塊的號。16位指針間接尋址的格式如下:區域標識符[16位地址指針]。
32位指針間接尋址:32位地址指針主要用于輸入,輸出,存儲器,局部數據位,數據塊等存儲器中位,字節,字和雙字的尋址,32位的地址指針可以使用一個雙字表示,第0位至第2位作為尋址操作的位地址,第3位至第18位作為尋址操作的字節地址,第19位至第31位沒有定義。存儲器32指針只能用作內部區域尋址,尋址的格式如下:地址存儲器標識符[32位地址指針]。
(2)寄存器間接尋址。通過CPU的地址寄存器AR1和AR2尋址方式稱為寄存器間接尋址,分為內部區域間接尋址和交叉區域尋址。寄存器間接尋址方式的語句格式如下:
指令,地址標識符,地址寄存器標識符,偏移量
寄存器間接尋址只能使用32位指針,我們使用的內部區域寄存器尋址其中第0位~第2位作為尋址操作的位地址,第3位~第18位作為尋址操作的字節地址,第19位~第31位無定義,格式如圖1。
間接尋址表示為:存儲器標識符[ARx,地址偏移量]
此次我們要對儲料倉的左右兩個下料調節閥進行控制,每個調節閥都對應著關閉,正常和快速三種調節模式,關閉對應開度0%,正常對應開度80%,快速對應開度100%。我們的塑料等級分為1到10級,每一級都對應著三種不同的調節模式,如果是使用梯形圖的功能塊來進行賦值,那么我們一條除塵線將要用到60個功能塊,程序的編程過程和可讀性將大大降低,因此,我們此次我們結合項目實際功能要求結合以表2進行了編程。
如表2我們10個塑料等級對應10行,每行有6個數據選項,因此在程序中首先建立6個源寄存器地址用來存放每一列的數據,6個目標寄存器地址用來在程序中使用,分別如下:

圖1


表1

表2
這里“L”是裝入指令,“T”是傳送指令,也就是將源寄存器地址傳送到目標寄存器地址。Nm,AR1和AR2程序如下:

這部分程序對應的公式為:LAR1=(#Nm-1)*24+#Base_Addr_Src
這里“Nm”是指所選物料等級也就是哪一行(共十行),將得到的地址放到AR1當中。“SLW3”是當把一個整形數轉化為字節指針常數時,左移三位。

這里將最終的地址放到AR2當中。

如果在沒有選擇物料等級時,則程序會選擇跳出。
本文是以實際項目為依據,在查閱眾多技術文檔和參考資料之后,并在滿足現場除塵裝置工藝的實際需求為前提下,在面對PLC程序中需要進行大批量相同功能編程,且具有一定規律的前提下,可以利用PLC 400 CPU自帶的地址寄存器AR1和AR2尋址的方式進行編程,這樣不僅可以很大程度上的簡化編程的過程,而且在后期的程序變更和維護上也大大節省了時間,該程序在實際運行當中穩定可靠。