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