一、時間指令簡介
01時鍾指令的認識
西門子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。
需要注意的是讀取出來的值和需要設定的值均需要進行數據格式的轉換才行。
02時鍾指令存儲(chu) 區格式說明
所有日期和時間值必須采用BCD格式(BCD碼通俗的說法是用16進製的形式來表示2進製數)分配(例如,16#12 代表2012年)。00至99的BCD值範圍可分配範圍為(wei) 2000至2099的年份;時間緩衝(chong) 區如圖2所示。
時鍾指令的管腳T就是緩衝(chong) 區的起始字節地址,可以由用戶自由設置(在CPU允許的V存儲(chu) 區範圍內(nei) )。如果設置T為(wei) VB10,那麽(me) 讀取時鍾後,“年”的信息就會(hui) 保存在VB10中,“月”保存在VB11中。
03時鍾庫指令的認識
除了時鍾指令之外,西門子官方還提供了與(yu) 時鍾指令功能類似的時鍾庫指令;時鍾庫指令中的T管腳需要以指針的格式進行填寫(xie) ,所填寫(xie) 的是緩衝(chong) 區的起始字節地址。由於(yu) S7-200時鍾指令的數據格式是BCD碼,使用該庫指令可以直接讀取S7-200CPU時鍾並以整數格式輸出所讀取的值。必須定義(yi) 8個(ge) 字節的V 存儲(chu) 區為(wei) 庫存儲(chu) 區。
圖2:時鍾庫指令(上麵為(wei) 讀取時鍾庫指令,下側(ce) 為(wei) 設置時鍾庫指令)
二、時鍾指令應用
接下來我們(men) 通過一個(ge) 簡單的應用示例來充分理解時鍾庫指令;要求如下:
1、風機可設定每周5天、每周7天工作製。還可以設定每周一、三、五或二、四、六工作製2、同時每天可進行最多2段開關(guan) 風機運行時間設置,可供運維人員設定。3、具備手動功能(不在任何工作模式下可以手動測試)
功能實現
根據控製要求,我們(men) 首先需要讀取係統時鍾進行與(yu) 設定時間進行比較,其次還需要在HMI上麵設置不同時段的啟停時間;另外還需要設定不同的工作模式,便於(yu) 操作員選擇不同的工作模式;
為(wei) 了使各時段的啟停時間更精準,可以把時分秒換算成秒的單位進行與(yu) 係統時間比較。當係統時間≥設置的啟動時間,同時係統時間≤設置的停止時間時,就可以輸出風機運行。
程序一共有三部分,分別是工作模式設定子程序、時間換算子程序、調用時鍾庫指令;接著在主程序中分別調用子程序。
由於(yu) 篇幅原因,以下僅(jin) 展示部分程序。
圖4:部分程序截圖
三、總結
通過本示例的分享,相信大家已經掌握了其基本的使用。下麵為(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)調用時鍾庫指令後需要分配8個(ge) 字節進行庫存儲(chu) 區運算。且不能與(yu) 程序中其他字節地址重疊。