西門子變頻器控制模塊
西門子變頻器控制模塊
西門子變頻器控制模塊
系統(tǒng)功能 SFC1 和SFC0分別用于讀取和設置 CPU 的系統(tǒng)時鐘。系統(tǒng)時鐘存儲在數據類型為DATE_AND_TIME的變量里。通過指針訪問系統(tǒng)時鐘的單個組成元素。
說明
可以使用系統(tǒng)功能 SFC1 (READ_CLK)和SFC0 (SET_CLK)分別讀取和設置 CPU 的系統(tǒng)時鐘。系統(tǒng)時鐘存儲在數據類型為“DATE_AND_TIME”的變量里。數據類型DATE_AND_TIME所包含的關于年、月、日、時等信息是以 BCD 碼的格式存儲在 8 個字節(jié)里。該數據類型顯示的范圍是:
- DT#1990-1-1-0:0:0.0 到 DT#2089-12-31-23:59:59.999
下表給出了實例表示 2014 年1月 2 日,星期四,3點 5 分 11.854 秒對應數據類型DATE_AND_TIME的每個字節(jié)所包含的內容。
通過指針訪問數據類型DATE_AND_TIME的單個變量。這種讀取和設定系統(tǒng)時鐘的步驟下面以樣例說明,樣例在OB1中用了4個網絡段的程序。*毫秒大值999的BCD碼需要占用12位。因此,毫秒值占用字節(jié)6以及字節(jié)7的高4位。字節(jié)7的剩下低4位用于表示星期。
用SFC1 (READ_CLK)讀取系統(tǒng)時鐘的說明
1. 調用系統(tǒng)功能SFC1 (READ_CLK)讀取系統(tǒng)時鐘(圖1)。
輸出參數“CDT”用于接收CPU的當前系統(tǒng)時鐘。用數據數據類型為DATE_AND_TIME的臨時變量(此處為"readDateAndTime")連接參數“CDT”。
圖.1
2. 用指令"LAR1 P##readDateAndTime"(指針)將臨時變量"readDateAndTime"的地址裝載到地址寄存器AR1中(圖2)。接著,通過間接裝載指令訪問變量"readDateAndTime"的單個字節(jié)/字,并通過提供的操作數顯示出來。
3. 例如,訪問字節(jié)3(小時)并通過操作數”Read”.Hour(此處為DB1.DBB3)輸出:
LB[AR1, P#3.0]
T "Read".Hour
4. 用于毫秒和星期的字節(jié)6和7存在重疊,因此必須先訪問字6獲取毫秒并右移4位(SRW4)再輸出。為了輸出星期,需要用B#16#F屏蔽字節(jié)7來獲得字節(jié)7的低4位。
圖.2
用SFC0 (SET_CLK)設定系統(tǒng)時鐘的說明
1. 定義一個數據類型為DATE_AND_TIME的臨時變量,比如"writeDateAndTime",并用指令"LAR1 P##writeDateAndTime"把這個變量的地址裝載到地址寄存器AR1中"(圖3)。通過間接尋址把數據裝載并傳送到用于存儲年、月、日、時等的單個字節(jié)。
2. 例如,傳送用于設置小時的”Write”.Hour(此處為DB2.DBB3)到臨時變量"writeDateAndTime"的字節(jié)3(小時):
L "Write".Hour
T B[AR1, P#3.0]
3. 用于毫秒和星期的字節(jié)6和7存在重疊,因此在傳送毫秒的設置值之前需要把操作數(此處為"Write".Millisecond,,DB2.DBW6)左移4位(SLW4)。
4. 無需設置星期,因為它可以由設置的日期推導得出。
圖.3
5. 調用系統(tǒng)功能SFC0 (SET_CLK)用于設置系統(tǒng)時鐘并把臨時變量"writeDateAndTime"賦給輸入參數”PDT”(圖4)。重要的是SFC0只調用一次,否則系統(tǒng)時鐘在每個周期都被設定并將因此停留在設定的時間。
6. 例子中(圖4),檢測操作數"Write".setCLK(此處為DB2.DBX8.0)的上升沿。當有上升沿時,調用SFC0并以臨時變量"writeDateAndTime"中給定的值設定系統(tǒng)時鐘。
下一篇:西門子變頻器G120功率單元