今天這篇文章,我們來介紹下如何使用TwinCAT3內部的函數來獲取系統時間。
打開TwinCAT3(以下簡稱TC3)并新建項目,在項目樹的“PLC”中添加標準PLC,命名為“CPU1”。默認情況下,“References(引用)”中會添加標準庫“Tc2_Standard”、“Tc2_System”和“Tc3_Module”,如下圖所示:
Tc2_System庫中也有時間相關的函數,比如F_GetSystemTime,它返回一個時間戳。雖然它可也可以轉換成年-月-日的形式,但是本文暫時不介紹該函數,我們使用另外一個庫中的函數。
為了獲取系統時間,我們添加一個庫文件。在“References(引用)”右鍵單擊,選擇“Add libaray(添加庫)”,在彈出對話框的頂部搜索框中輸入“tc2_u”進行搜索,找到“Tc2_Utilites”,單擊“OK”按鈕將其添加到“References(引用)”中,如下圖所示:
在Main中聲明函數getSystemTime(TC3中所有函數/函數塊都必須先聲明才能使用)
getSystemTime:NT_GetTime;
如下圖所示:
這里的“NT_GetTime”是“Tc2_Utilites”庫中的函數,它用來獲取Windows系統的時間,并存儲到一個TIMESTRUCT結構體變量中。由于TC3是基于Windows的自動化技術,因此使用該函數獲取控制器中Windows操作系統的時間。
在主程序代碼區按F2可調出輸入助手(Input assitant)。單擊“Instance Calls”可看到之前聲明的函數getSystemTime,如下圖所示:
單擊“OK”按鈕會自動添加該函數,如下圖所示:
各參數的定義如下:
NETID:輸入數據,字符串類型,表示TC3控制器的AmsNetID。如果是在本地運行,該參數可為空;
START:輸入數據,布爾類型,上升沿信號啟動函數執行;
TMOUT:輸入數據,TIME類型,讀取超時的時間設置值;
BUSY:輸出數據,布爾類型,1=正在讀取;
ERR:輸出數據,布爾類型,1=讀取時間發生錯誤。0=無錯誤;
TIMESTR:輸出數據,時間結構體(TIMESTRUCT),存放讀取到的時間信息;
時間結構體(TIMESTRUCT)的定義如下:
TYPETIMESTRUCT STRUCT wYear:WORD; wMonth:WORD; wDayOfWeek:WORD; wDay:WORD; wHour:WORD; wMinute:WORD; wSecond:WORD; wMilliseconds:WORD; END_STRUCT END_TYPE
結構體中各變量的數據類型均為字(word),其中:
wYear:年份,取值范圍:1970 ~ 2106;
wMonth:月份,取值范圍:1 ~ 12;
wDayOfWeek:一周的第幾天,取值范圍: 0 ~ 6 (周日 = 0);
wDay: 日份,取值范圍:1 ~ 31;
wHour:小時,取值范圍:0 ~ 23;
wMinute:分鐘,取值范圍:0 ~ 59;
wSecond:秒,取值范圍:0 ~ 59;
wMilliseconds:微秒,取值范圍:0 ~ 999;
主程序編寫代碼如下:
編譯程序,并下載登錄,查看系統時間,如下圖所示:
好了,關于倍福PLC獲取系統時間的方法就先介紹到這里。
審核編輯:劉清
-
控制器
+關注
關注
112文章
16346瀏覽量
177899 -
plc
+關注
關注
5010文章
13283瀏覽量
463182 -
函數
+關注
關注
3文章
4329瀏覽量
62583 -
TwinCAT3
+關注
關注
1文章
9瀏覽量
10786
原文標題:倍福PLC學習:獲取系統時間
文章出處:【微信號:方正智芯,微信公眾號:方正智芯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論