景志峰 劉寧雁

摘 要
主要介紹西門子S7-400PLC 硬件系統中,利用 Step 7編程軟件進行對PLC硬件系統進行時間設定的方法,以及用編程軟件讀取系統時間的方法。通過這種方法的運用,成功地運用于武鋼集團昆鋼第三煉鋼廠能耗累計、產量統計等工作。
【關鍵詞】PLC Step7 數據類型 系統時間
西門子公司自控系統在武鋼集團昆鋼第三煉鋼廠中應用非常廣泛,例如4#轉爐、3#LF精煉爐等過程系統。西門子S7-400PLC系統具有可靠性高、抗干擾能力強、適用性強等特點,而且軟件易學易用,接口容易,編程語言接近原來的繼電器電路,因此能完全滿足煉鋼廠的生產和發展需求。
煉鋼廠4#轉爐系統,采用的是西門子400系統硬件。應用西門子公司的Step7 V5.5 SP1 編程軟件,Wincc6.0 SP2的上位監控軟件,整個系統由轉爐傾動系統、氧槍升降系統、散裝料下料體統、底吹系統等幾個主要環節組成。本文主要介紹在S7-400PLC系統中,如何對CPU的系統時間進行設定,如何同步計算機時間,如何運用系統功能塊完成系統時間的讀取。系統時間如何具體運用于煉鋼廠4#轉爐能源消耗統計工作中。
1 PLC時間的設定
打開Step7 V5.5 SP1 編程軟件,讓編程軟件處于線監控狀態,然后就可以在Step7 V5.5 SP1軟件中進行CPU內部時鐘進行的設定。其方法如下:
(1)首先打開Step7 V5.5 管理器,然后打開需要設定系統時間的項目。
(2)選中需要設定系統時間的CPU模塊。然后選擇Step7 V5.5 項目管理器工具欄中的PLC菜單。
(3) 在PLC菜單的下拉菜單中,選中的診斷/設置選項,在彈出的選項中選擇設定時刻選項,然后就會彈出設定時間的對話框。
(4) 在設定時間的對話框中,有兩個時間表示。其中PG/PC 時間選項表示的是計算機主機上的時間,也就是編程器或者上位機HMI中的時間。Modle time表示的是系統硬件內的時間,這個時間一般會默認為出廠設置時間。
(5)從設定時間的對話框中,我們看到,PG/PC 時間和Modle time時間一般情況下是不一致的。這個就需要把它們同步了,畢竟調整PLC硬件內的時間相比于調整上位機的時間要困難的多。在設定時間的對話框中,勾選“Take from PG/PC”選項,然后應用,就能夠把計算機時鐘與硬件內時鐘同步。到此,硬件內時鐘設定完畢了,如果在程序運用中讀取的時間不準確,只需要調整計算機時間就可以了,而無需進入到Step7 V5.5 編程軟件中,調整非常方便。另外,只要保證PLC不要掉電或者掉電的時候保證PLC的后備電池起作用,那么系統時間就能保持和計算機時間的一致。
2 PLC時間的讀取
PLC硬件系統時間的讀取方法主要是采用西門子編程軟件自帶的系統功能塊SFC1(readsystemclock)來實現的。SFC1系統功能塊的作用就是讀取當前PLC的硬件系統時間,時間的數據類型----DATE_AND_TIME(簡稱DT)。DT時間這種數據類型是西門子PLC中比較特殊的一種數據類型,它長度為64bit,共包含8個字節,分別是Byte0-Byte7,對應年、月、日、時、分、秒、毫秒、星期, 但每個字節內的數據類型是BCD格式的。
在程序中DT數據類型是無法直接使用的,只有根據DT數據類型的存儲情況把相應的字節讀取出來,才可以在系統程序中使用。讀取系統時間程序如圖2所示。讀取系統時間也可以使用到Step7中的IEC標準功能比如FC6、FC7、FC8從DT格式中提取出來,但這些都需要在調用相關的功能塊,需要分配相關的存儲空間,對于不太熟悉這些功能塊的編程人員運用起來相對麻煩很多。在此介紹的如圖2的提取時間方法既簡單又實用,還容易掌握,非常適合廣大編程人員。
圖1中,第一段程序的作用是運用SFC1系統功能塊讀取當前PLC中的系統時間,把讀取到的數據類型為DATE_AND_TIME(簡稱DT)的時間數據,存儲到以DB1.DBX0.0地址開頭的8個字節的寄存器中。這8個字節寄存器中就存儲了DT數據中的年、月、日、時、分、秒、毫秒、星期等內容。第二段程序就是運用MOVE指令功能,抓取我們需要用到時、分、秒的時間數據。把存儲在以DB1.DBX0.0地址開頭的8個字節中的時間數據,賦值給 DB10的相應數據區。
采用MOVE功能所抓取出來的時間格式是用BCD碼表示的,因此還需要采用BCD_I功能把BCD格式轉換成可直接用于比較的整形數據格式才行。整形數據格式可以在程序中直接比較使用。相對于起始位置0,第3,4,5 字節分別為小時、分鐘和秒,這里就需要把DB1.DBB3、DB1.DBB4,DB1.DBB5,這3個寄存器內的數據分配到數據塊DB10中的DB10.DBW4、DB10.DBW8,DB10.DBW12寄存器中。為什么不直接運用DB1.DBX0.0開頭的寄存器內容呢?因為,我們讀取的系統時間變化率比較快,直接采用這個區域內的內容的話,容易引起誤差,而且會加大CPU的負擔,因此需要把數據賦值到其它存儲區域。這里需要注意有一個字節寄存器分配到字寄存器中的問題,需要用到高低字節的概念。
3 應用情況
S7-400PLC系統一般在上電后,系統時間默認是從 1999年1月1日開始計時,這個是西門子公司出廠設備的時候就確定的時間,有些因為產品批次的不同,這個系統默認時間稍微有點不太一樣。但總的來說,這個時間對于我們編程或者運用來說沒有多大的意義而且非常的不方便。比如,在系統出故障的情況下,我們需要調取CPU的診斷緩沖區來的確定故障發生時間,以便進一步查明故障,但因為系統時間和當地時間對應不起來,根本無法判斷什么時候出的故障,往往還需要根據默認時間去推算出故障的時間,既費時又不準確。因此,通過本文介紹的方法,需要讓系統時間和計算機時間同步。
另外,在程序控制中如果需要用到系統時間來完成一些控制要求的時候,也可以通過本文介紹的方法來讀取PLC系統時間。把抓取出來的系統時間數據,在程序中通過比較指令來設置時間觸發點,以便于在設定好的具體時間點觸發相應的程序控制從而完成任務。在武鋼集團昆鋼第三煉鋼廠4#轉爐的能源消耗統計工作中,就成功的運用了PLC系統時間。在設定的具體時間點來實現自動班累計和日累計能源消耗統計工作的。之前,4#轉爐的班累計和日累計能源消耗的統計工作是讓操作人員在規定的時間點,在上位機或者操作站上用手動按鈕清零的方式來完成的。這種操作存在人的不穩定因素,非常容易造成班累計和日累計能源消耗統計不準確,人為誤差嚴重,而且實際運行下來的結果也幾乎沒有準確過。為此,采用讀取PLC系統時間的方法,然后運用比較時令來設定準確的時間點,每當系統時鐘為0:05:00時,就觸發一個標志位。運用這個標志位來自動完成日累計、班累計清零工作。這樣不但減少了操作人員的勞動量,也提高了能源消耗統計的準確性,為4#轉爐的穩定生產打下良好的基礎。
作者單位
1.昆明工業職業技術學院 云南省安寧市 650302
2.武昆集團安寧公司煉鋼廠 云南省安寧市 650302