1. 简介与操作
简介
以下范例介绍如何将资料取样同步到 MS SQL 的时间戳记(timestamp),透过SQL
查询功能从Unix时间转换为一般日期时间。其中资料取样同步到MS SQL 的表格
会自动建立,SQL查询转换为日期时间的表格则需手动建立。
操作
1. 执行连线模拟。
2. 按下 Sync to database,将资料取样的资料同步至 MS SQL资料库。
维纶通触摸屏Unix 时间转换
3. 按下 Unix Time,显示资料取样历史记录的时间戳记。
4. 按下 Unix to Date,執行轉換時間的指令。
5. 按下 Date Time,顯示轉換後的日期時間。
2. 設定程序
步驟 1. 在MS SQL 資料庫裡,建立一個Database,命名為converttime。
维纶通触摸屏Unix 时间转换
步驟 2. 在EasyBuilder Pro,資料/歷史頁籤下選擇[資料庫伺服器]。
設定各項選項。
维纶通触摸屏Unix 时间转换
维纶通触摸屏Unix 时间转换
步驟 3. 在視窗頁面上建立兩個數值物件。LW-0顯示資料庫伺服器的連線狀態,
LW-1顯示資料庫伺服器的錯誤碼。
步驟 4. 在資料/歷史的頁籤下選擇[資料取樣]。新增一筆資料取樣。
勾選[歷史記錄],將[檔案名稱]命名為history。
接著啟用[同步至資料庫],再設定[控制位址]。
维纶通触摸屏Unix 时间转换
步驟 5. 在頁面上建立一個多狀態設定物件,寫入常數設為 2。
步驟 6. 執行連線模擬,按下多狀態設定物件,將資料取樣的歷史記錄同步至資料庫。
此時在 MS SQL 資料庫下會自動建立資料取樣的表格。
维纶通触摸屏Unix 时间转换
步驟 7. 在MS SQL資料庫下新增一個表格,
表格裡建立一個欄位,命名為time,資料格式為 nchar,長度為 20。
表格命名為 Datetime。
维纶通触摸屏Unix 时间转换
维纶通触摸屏Unix 时间转换
步驟 8. 在EasyBuilder Pro,資料/歷史頁籤下選擇[SQL查詢]。
勾選右上角的進階模式。
维纶通触摸屏Unix 时间转换
步驟 9. 在命令頁籤下設定控制位址。
步驟 10. 新增第一個 SQL指令,在SQL 查詢下填入 INSERT INTO datetime([time])
select dateadd(s, [time@timestamp], '1/1/1970') from [converttime].[dbo]. [hostname_history_data]
此行指令會將資料取樣歷史資料所在表格 hostname_history_data 下的欄位time@timestamp,
轉換成日期時間後,寫入表格 datetime 的欄位time 裡。
converttime 為資料庫名稱。
维纶通触摸屏Unix 时间转换
步驟 11. 新增第二個 SQL指令,在SQL 查詢下填入select time from datetime,
來讀取日期時間的資料。time 為欄位名稱,datetime為表格名稱。
维纶通触摸屏Unix 时间转换
在輸出頁籤新增一個地址 LW-300,資料類型為字串,長度為 20。
维纶通触摸屏Unix 时间转换
步驟 12. 新增第三個 SQL指令,在SQL 查詢下填入Select time@timestamp
from dbo.hostname_history_data,來讀取資料取樣的 Unix time時間。
其中 time@timestamp 為欄位名稱,
dbo.hostname_history_data 為表格名稱。
维纶通触摸屏Unix 时间转换
步驟 13. 在頁面上建立[SQL查詢檢視]物件。
步驟 14. 對照[SQL 查詢]的命令頁籤下,分別對[控制位址]LW-100 建立三個多狀態設定物件。
多狀態設定物件設定寫入常數 1時,即是執行[命令ID]1的轉換命令。
寫入常數2即是執行[命令ID]2的讀取命令。
以此類推。
步驟 15. 建立一個 ASCII物件,[命令ID]為2的輸出地址LW-300,字串長度為20,顯示命令結果。
步驟 16. 建立一個數值物件 LW-102顯示 SQL查詢狀態。建立一個 ASCII物件LW-104顯示SQL查詢錯誤訊息。
3. 位址設定
此範例所使用之物件位址皆列於下表,請依實際需要調整。
维纶通触摸屏Unix 时间转换
维纶通触摸屏Unix 时间转换
|