黎建軍
摘要:PLC不但能進行邏輯運算,還能進行數(shù)據(jù)處理,一個運行良好的中大型程序,它的數(shù)據(jù)處理一定做得近乎完美。近年來,大家把對后者的重視程度逐步提高到了一個新的高度。要更好的掌握好S7-1200PLC的編程技術,難度最大的還是在程序中的數(shù)據(jù)處理部分,對數(shù)據(jù)的存儲形式的理解則是提高工程技術人員駕馭程序能力的基礎,值得大家深入研究。
關鍵詞:存儲位;系統(tǒng)數(shù)據(jù)塊;函數(shù);函數(shù)塊;全局數(shù)據(jù)塊
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1007-9416(2018)09-0067-01
在眾多的PLC中,西門子S7-1200PLC的數(shù)據(jù)存儲是非常有特色的,而且也是大家學習的一個難點。一個脈沖檢測指令,為什么要加上一個存儲位;為什么函數(shù)的數(shù)據(jù)要保存在輸入輸出接口外的存儲介質中;為什么PLC系統(tǒng)中要加入各種數(shù)據(jù)塊…本文重點與大家一起來研究它的數(shù)據(jù)存儲特點。
1 存儲位
在位邏輯指令中,一個觸點指令中會帶有多個操作數(shù),這種情況在其它的PLC中是不常見的,如果沒有理解它們的用法,它往往會讓編程人員在使用中無所適從,或出現(xiàn)各種各樣的錯誤。最為典型的指令有掃描操作數(shù)的信號上升沿與掃描操作數(shù)的信號下降沿指令,它們都帶有兩個操作數(shù)。
P指令有兩個操作數(shù),上方的為OPERAND,表示一個BOOL型的操作數(shù),指令需要掃描的就是這個操作數(shù),執(zhí)行該指令時,要讀取它在本周期的狀態(tài);而下方的操作數(shù)是一個INOUT型的布爾量,它就是一個存儲位,它是可讀可寫的,由系統(tǒng)寫入上方操作數(shù)的上一掃描周期的狀態(tài),執(zhí)行指令時,可讀取它的狀態(tài)。如果上方的操作數(shù)的狀態(tài)為1,而下方的操作數(shù)為0,則說明了檢測到了上升沿,那么該觸點的檢測指令會接通一個程序周期。這個程序周期時長就是從執(zhí)行該指令時起,到下一個掃描周期再執(zhí)行這條件指令前的這段時間,它與掃描周期有明顯的區(qū)別。我們可以通過圖1來理解。
如果在當前周期檢測到了上升沿,那么這個觸點的接通時間會延長到下一掃描周期執(zhí)行該指令前的這段時間。這種做法的好處是能捕捉到最小周期的上升沿,而且不會丟失上升沿。當然這個存儲位的操作數(shù)不要與程序中的其它操作數(shù)沖突,否則會影響到上一掃描周期操作數(shù)狀態(tài)的存儲,而形成誤判。
位邏輯指令中的其它有關上升沿與下降沿的檢測的指令,均會有一個存儲位用來保存操作數(shù)上一掃描周期的狀態(tài),在分析程序時,必須按掃描周期與程序周期去理解輸出脈沖作用的時長,才不會出現(xiàn)編程時的錯誤。
位存儲位,通常所使用的為M存儲區(qū)的位點,它是一個可讀可寫的存儲位,同時也是一個全局型的變量。唯一的缺點就是這個存儲位不能被其它的程序段中的數(shù)據(jù)所改寫,那樣的話,將會造成對沿的誤判,因此在使用M存儲區(qū)時,千萬不要出現(xiàn)地址的重疊。
存儲位是指令中常用到的一類數(shù)據(jù)保存的方法,還有一類指令,它是利用數(shù)據(jù)塊來進行數(shù)據(jù)保存的。
2 系統(tǒng)數(shù)據(jù)塊
使用系統(tǒng)數(shù)據(jù)塊保存數(shù)據(jù)的最有代表的指令就數(shù)定時器與計數(shù)器指令。當引用這些指令時,就會自動的在系統(tǒng)的內(nèi)部產(chǎn)生一個數(shù)據(jù)塊,有的還會有一個功能塊跟著一起自動形成。這里我們以一個5S的接通延時型的循環(huán)定時器來加以說明。
當在程序段中增加一個TON指令時,會出現(xiàn)一個IEC_TIMER類型的數(shù)據(jù)塊建立的請求,點確定后,就會在程序資源中產(chǎn)生一個系統(tǒng)數(shù)據(jù)塊。
打開系統(tǒng)數(shù)據(jù)塊,它里面的數(shù)據(jù)TON指令的參數(shù)相同。TON指令的數(shù)據(jù)將會保存在自己的數(shù)據(jù)塊中。所有的參數(shù)均為Static類型,即靜態(tài)變量。PT為定時設定值,ET為定時器的當前值,IN為定時器的輸入,當IN為1時,定時器使能,Q為定時器的輸出,當定時值達到了設定值,驅動外部所接的輸出點。一般來說,所有的局部變量在使用時是由系統(tǒng)自動分配內(nèi)存的,它要求變量先賦值,后使用,否則變量的值將為一個不確定的數(shù)據(jù)。為了保證數(shù)據(jù)的連續(xù)性,系統(tǒng)分配變量地址一定要固定,這樣的變量稱靜態(tài)變量。數(shù)據(jù)塊中的數(shù)據(jù)可以直接引用,這樣可以減少全局變量使用的機率。
3 函數(shù)與函數(shù)塊
就函數(shù)而言,它的接口類型有Input、Output、Inout、Temp幾種。Input屬于輸入型的數(shù)據(jù),只可讀;Output,屬于輸出型的數(shù)據(jù),程序中只能改寫它;Temp是臨時變量,只能保存中間結果。它們均不能保存數(shù)據(jù),因為數(shù)據(jù)保存的最終目標是能讀出它的數(shù)值,輸出型與輸入型的數(shù)據(jù)顯然是不能滿足要求的,就Temp而言雖然它有可讀可寫的特點,但這個變量的地址是系統(tǒng)臨時分配的,不可能保證數(shù)據(jù)的連續(xù)性和正確性。到此四種接口類型中只有一個Inout類型了,它是輸入輸出型的,可讀也可寫,可以滿足數(shù)據(jù)的保存。因此函數(shù)中牽涉到數(shù)據(jù)的保存,就只能用Inout類型了。
4 數(shù)據(jù)塊
S7-1200PLC數(shù)據(jù)塊中的數(shù)據(jù)可以說是包羅萬象,在變量表內(nèi)不能定義的數(shù)據(jù),在數(shù)據(jù)塊中則變得輕而易舉。數(shù)據(jù)塊是PLC與外部設備進行數(shù)據(jù)交換的橋梁,也是大型數(shù)據(jù)存儲的場所。全局數(shù)據(jù)塊,任何程序均能與之關聯(lián),功能十分強大,也是S7-1200PLC存儲數(shù)據(jù)最大的區(qū)域。
至此,大家了解到了西門子S7-1200PLC對數(shù)據(jù)的獨特存儲方式:存儲位存儲、系統(tǒng)塊存儲、輸入輸出接口存儲、背景數(shù)據(jù)塊存儲及全局數(shù)據(jù)塊存儲。它們既有區(qū)別也有聯(lián)系,但共同的特點是都能保存相關的數(shù)據(jù)。
參考文獻
[1]馮博,徐淑華.SIMATIC S7-1200可編程控制器技術特點[J].科技信息,2010,(23):120-121.
[2]黃俊玲.西門子S7-1200 PLC程序設計方法研究[J].工業(yè)控制計算機,2016,(10):142-143.