一、時鍾指令概述
(1)時鍾指令的認識
西門子S7-200SMART時鍾指令分為(wei) 設置時鍾和讀取時鍾兩(liang) 類,通過設置時鍾指令可對CPU的係統時鍾進行修改而通過讀取時鍾指令可讀取CPU的係統時鍾,時鍾指令分為(wei) 讀取和設置時鍾指令與(yu) 讀取和設置擴展時鍾指令,如圖1所示。
圖1:時鍾指令(左側(ce) 為(wei) 讀取時鍾指令,右側(ce) 為(wei) 設置時鍾指令)
①讀取時鍾指令:當指令EN端條件滿足時讀取實時時鍾指令從(cong) CPU 讀取當前時間和日期,並將其裝載到從(cong) 字節地址T 開始的 8字節時間緩衝(chong) 區中。
②設置時鍾指令:設置實時時鍾指令通過由T 分配的 8字節時間緩衝(chong) 區數據將新的時間和日期寫(xie) 入到CPU。
需要注意的是讀取出來的值和需要設定的值均需要進行數據格式的轉換才行。
200SMART裏的時間日期都是用16#表示的,用READ_RTC讀過來的時間日期占用8個(ge) 字節,按順序是年、月、日、時、分、秒、_、星期。其中第七個(ge) 字節是空的,始終為(wei) 0。例如你將用READ_RTC指令讀過來的數值存放在以VB100開始的8個(ge) 字節中,那麽(me) VB100表示的就是年,VB101表示的是月,以此類推。
設置實時時鍾指令:SET_RTC,裏的時間日期都是用16#表示的,時間日期占用8個(ge) 字節,按順序是年、月、日、時、分、秒、_、星期。
(2)時鍾指令存儲(chu) 區格式說明
所有日期和時間值必須采用BCD格式(BCD碼通俗的說法是用16進製的形式來表示2進製數)分配(例如,16#12 代表2012年)。00至99的BCD值範圍可分配範圍為(wei) 2000至2099的年份;時間緩衝(chong) 區如圖2所示。
圖2
時鍾指令的管腳T就是緩衝(chong) 區的起始字節地址,可以由用戶自由設置(在CPU允許的V存儲(chu) 區範圍內(nei) )。如果設置T為(wei) VB10,那麽(me) 讀取時鍾後,“年”的信息就會(hui) 保存在VB10中,“月”保存在VB11中。
二、時鍾指令應用
接下來我們(men) 通過一個(ge) 簡單的應用示例來充分理解時鍾指令;要求讀取CPU實時時間顯示在上位機上,同時還可以在上位機上設定CPU時間。讀取時間如圖3所示。
圖3:READ_RTC時鍾指令讀取
調用時鍾讀取指令並以係統時鍾SM0.5觸發,由於(yu) 讀取出來的均是BCD碼,因此需要通過轉換指令進行轉換過後才是最終的日期時間。
另外還需要進行時間的設定,由於(yu) 我們(men) 需要在上位機上進行時間的設定,考慮到設定的數據格式依然是BCD碼,但是上位機上通常使用的是十進製數,因此我們(men) 同樣需要進行轉換之後,再使用其設定地址的低字節進行傳(chuan) 送至各個(ge) 字節地址中,如圖4所示。
圖4:SET_RTC設定時鍾
三、結語
通過本示例的分享,相信大家已經掌握了其基本的使用。下麵為(wei) 大家分享關(guan) 於(yu) 時鍾指令的幾點需要注意的:
(1)進行時鍾的設定時,隻需要導通一個(ge) 周期即可把設定值寫(xie) 入。不能一直導通EN端,否則讀取時鍾指令的時間將會(hui) 有錯誤。
(2)調用時鍾指令時需要在EN位中使用SM0.5係統時鍾進行調用。
(3)時鍾指令需要使用連續的8個(ge) 字節作為(wei) 時間緩衝(chong) 區的存儲(chu) ,其中緩衝(chong) 區中的第6個(ge) 字節為(wei) 保留,並且這連續的8個(ge) 字節不能和其他存儲(chu) 區重複使用。
(4)除了通過令設定時鍾之外,還可以通過編程軟件Micro/WIN SMART 設置CPU 的時鍾,必須先建立編程通信連接。在Micro/WIN SMART 菜單中選擇“PLC“→”設置實時時鍾”,打開“PLC時鍾操作”對話框進行設定。
(5)S7-200SMART CPU靠內(nei) 置超級電容為(wei) 實時時鍾提供電源緩衝(chong) ,保持時間為(wei) 典型值7天,最小值6天。緩衝(chong) 電源放電完畢後,再次上電後時鍾將停止在缺省值,並不開始走動,所以如果設備停電時間超過一周時,需要添加電池信號板,電池板的時鍾保持時間約為(wei) 1年。