S7-200SMART實時時鐘(上)
一、實時時鐘概述
S7-200 SMART的硬件實時時鐘可以提供年、月、日、時、分、秒的日期/時間數據。CPU CR40/CR60 等緊湊型CPU沒有內置的實時時鐘,其他標準型CPU支持內置的實時時鐘,CPU斷電狀態下可保持7天;時鐘精度是± 120 秒 / 月;SMART CPU 靠內置超級電容為實時時鐘提供電源緩沖,保持時間為典型值7天,小值6天
因為 緊湊型CPU 無內置超級電容,所以實時時鐘無電源緩沖,所以我們使用READ_RTC 和 SET_RTC 指令設置日期/時間數據,但是當 CPU CR40/CR60 斷電并再次上電時,這些日期/時間數據也會丟失,上電后日期時間數據會被初始化為2000年1月1日。
為了提高運算效率,應當避免每個程序周期都讀取實時時鐘。實際上可讀取的小時間單位是1秒,可每秒讀取一次(使用SM0.5上升沿觸發讀取指令)。
使用程序讀取的實時時鐘數據為BCD格式,可在狀態表中使用十六進制格式查看。
二、實時時鐘指令概述
時鐘指令有讀取及設置實時時鐘和擴展實時時鐘兩部分
READ_RTC讀取實時時鐘指令從 CPU 讀取當前時間和日期,并將其裝載到從字節地址 T 開始的 8 字節時間緩沖區中。
SET_RTC設置實時時鐘指令通過由 T 分配的 8 字節時間緩沖區數據將新的時間和日期寫入到 CPU
READ_RTCX 讀取擴展實時時鐘指令從 PLC 中讀取當前時間、日期和夏令時組態,并將其裝載到從 T 所分配地址開始的 19 字節緩沖區中。
SET_RTCX設置實時時鐘指令使用字節地址 T 分配的 19 字節時間緩沖區數據將新的時間、日期和夏令時組態寫入到 PLC 中。
Read_RTC(讀時鐘)和Set_RTC(設置時鐘)指令靠數據緩沖區在程序與硬件芯片間交換數據,它們的緩沖區格式相同。
三、實時時鐘緩沖數據格式
八字節數據緩沖格式如下圖所示
T 就是緩沖區的起始字節地址,我們可自由設置(在CPU允許的V存儲區范圍內)。如果設置T為VB100,那么讀取時鐘后,“年”的信息就會保存在VB100中,“月”保存在VB101中。所有的日期時間均采用BCD碼格式分配(比例16#15表示2015年)BCD碼00-99值可分配范圍為2000年至2099年
BCD碼:通俗簡單的說就是用16進制數來表示十進制數就稱為BCD碼
擴展實時時鐘19字節緩沖區格式
四、各型號CPU實時時鐘精度
CPU在長時間斷電后會對這些值進行初始化;初始化后的具體時間為2000年1月1日00:00:00星期六
五、用 Micro/WIN SMART 設置時鐘
通過編程軟件 Micro/WIN SMART 設置 CPU 的時鐘,必須先建立編程通信連接。在 Micro/WIN SMART 菜單中選擇“PLC “- >”設置實時時鐘”,打開“PLC 時鐘操作”對話框
a.設置日期:選擇需要修改的數據字段,直接輸入數字,或者使用輸入框右側的上下按鈕調整
b.設置時間:選擇需要修改的數據字段,直接輸入數字,或者使用輸入框右側的上下按鈕調整
c.讀取 PC 時鐘:按此按鈕可以讀取安裝 Micro/WIN SMART的 PC 機的本機時間
d.讀取 PLC 時鐘:按此按鈕讀取 PLC 內部的實時時鐘數據
e.根據需要選擇夏時制調整選項
f.按“設置”按鈕,將上面的時鐘日期數據寫入 PLC
六、讀寫的時鐘數據如何在十進制(整數)和BCD數據之間轉換?
要計算時間需要將BCD格式的時鐘數據與十進制的數據之間的轉換,使用相應的轉換指令就可以實現。
具體轉換指令在本平臺回復:clock 即可下載 Clock_Integer 指令庫
要使用 Clock_Integer 指令庫,須遵循以下步驟:
取得 Clock_Integer 指令庫文件,并添加到編程軟件 STEP 7-Micro/WIN SMART中;按照要求編寫程序調用 Clock_Integer 指令庫。