西門子CPU224XP模塊6ES7214-2BD23-0xB8 |
Clock_Integer 指令庫及其使用
使用 S7-200 的 READ_RTC(讀取實時時鐘)和 SET_RTC(設(shè)置實時時鐘)指令時, 讀取和設(shè)置的數(shù)據(jù)格式都是 BCD 碼的。如果覺得不便計算、處理,可使用 Clock Integer 指令庫。
Clock_Integer 指令庫用于將 BCD 碼格式的 S7-200 日期、時間轉(zhuǎn)換為十進(jìn)制整數(shù)格式,以及將十進(jìn)制整數(shù)格式的日期、時間值設(shè)定為 S7-200 時鐘。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負(fù)任何責(zé)任。使用該軟件的風(fēng)險*由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯誤糾正和支持,用戶不必為此西門子與服務(wù)部門。
要使用 Clock_Integer 指令庫,須遵循下列步驟:
- 取得 Clock_Integer 指令庫文件,并添加到編程軟件 STEP 7-Micro/WIN 中;
- 按照要求編寫用戶程序調(diào)用 Clock_Integer 指令庫。
添加 Clock_Integer 指令庫
Clock_Integer 指令庫
點擊上面的鏈接下載 Clock_Integer 指令庫到本地計算機(jī)硬盤,建議保存在 Micro/WIN 安裝目錄的 Lib 文件夾中。以下是一個完整路徑的例子:
C:Program FilesSiemensSTEP 7-Micro/WIN V4.0Lib
然后將指令庫庫手動添加到 Micro/WIN 軟件中。
參見添加指令庫。
成功添加指令庫后,用戶可以在STEP7 Micro/win的指令樹中找到‘Clock_Integer (v1.0)'
圖1.Clock_Integer 庫
Clock_Integer 指令庫編程應(yīng)用 - 讀取系統(tǒng)時鐘
1、調(diào)用 READ_RTC_I,讀取 PLC 時鐘 ,并將其轉(zhuǎn)換為十進(jìn)制整數(shù)格式 :
圖 2. READ_RTC_I
表 1. READ_RTC_I參數(shù)
參數(shù) | 數(shù)據(jù)類型 | 注釋 |
---|---|---|
EN | BOOL | 信號為‘1’時激活庫指令 |
Address | DWORD | 起始偏移地址,轉(zhuǎn)換為十進(jìn)制格式的 PLC 時鐘被保存在以此地址為起始地址的 8 個字節(jié)中 |
2、分配庫存儲區(qū):
調(diào)用指令 READ_RTC_I 或 SET_RTC_I 后,必須定義 8 位(一個字節(jié))的 V 存儲區(qū)為庫存儲區(qū)。
參考:分配庫指令數(shù)據(jù)區(qū)
表2. 8 字節(jié)時間緩沖區(qū)的格式
Address | 年 |
---|---|
Address+1 | 月 |
Address+2 | 日 |
Address+3 | 小時 |
Address+4 | 分鐘 |
Address+5 | 秒 |
Address+6 | 保留 |
Address+7 | 星期(1) |
(1) 1 = 星期天;7 = 星期日;0 = 禁止星期
如圖 2 所示,當(dāng) V50.0 為 ‘1’ 時,轉(zhuǎn)換后的實時時鐘被存儲在 VB10 至 VB17 中。
在狀態(tài)表中用戶可以看到:
圖3.狀態(tài)表
可以看出,此時的 PLC 時鐘為: 2006 年 4 月 6 日,23 時 48 分 1 秒,星期四。
注意:此指令庫讀取的整數(shù)格式時鐘數(shù)據(jù)以連續(xù)字節(jié)的形式保存,而后續(xù)的整數(shù)運(yùn)算需要一個字(兩個字節(jié))長度的數(shù)據(jù)。編程時要注意這一點。
Clock_Integer 指令庫編程應(yīng)用 - 設(shè)置系統(tǒng)時鐘
1、調(diào)用 SET_RTC_I,將以十進(jìn)制整數(shù)格式存儲的日期時間設(shè)定為 PLC 時鐘
圖4.SET_RTC_I
參數(shù) | 數(shù)據(jù)類型 | 注釋 |
---|---|---|
EN | BOOL | 信號為‘1’時激活庫指令 |
Address | DWORD | 起始偏移地址,以此地址為起始地址的 8 個字節(jié)中,應(yīng)已經(jīng)存儲著用戶時間數(shù)據(jù) |
表 3. SET_RTC_I 參數(shù)
8 字節(jié)時間緩沖區(qū)的格式同表 2。
2、分配庫存儲區(qū):
調(diào)用指令 READ_RTC_I 或 SET_RTC_I 后,必須定義 8 位(一個字節(jié))的 V 存儲區(qū)為庫存儲區(qū)。
參考:分配庫指令數(shù)據(jù)區(qū)
Clock_Integer 指令庫應(yīng)用例程
Clock_Integer 指令庫例子程序
注意:該例程必須使用 Micro/WIN V4.0 SP3 或以上版本軟件打開。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負(fù)任何責(zé)任。使用該軟件的風(fēng)險*由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯誤糾正和支持,用戶不必為此西門子與服務(wù)部門。
注意:
- CPU221、CPU222 沒有內(nèi)置的實時時鐘,需要外插“時鐘/電池卡”才能獲得此功能。
- 只有 STEP7 Micro/Win V3.2+SP4 和 V4.0 版本才支持使用該指令庫。
- 在使用 ‘SET_RTC_I’ 設(shè)定 PLC 時鐘時,被設(shè)定的時間必須有實際意義,否則設(shè)定操作不能成功完成。例如: 不能將月份設(shè)為 13,或者將分鐘設(shè)為 61 等。
- Address 端必須輸入地址指針,如:&VB10,&VB20;或者為雙字地址,如:VD100,MD10,AC0等,在該地址中存有地址。
西門子CPU224XP模塊6ES7214-2BD23-0xB8 |