儘管支援顯示格式,但5.6.4之前的MySQL版本不支援以毫秒分辨率事件儲存時間格式的資料。 這是一個已知的問題。
MySQL版本5.6.4之後,允許儲存和顯示毫秒分辨率的日期/時間資料。 對於V5.6.4之後的MySQL版本,格式為%H:%i:%S.%f。
Expression Trigger允許使用者設定條件來進行啟動或停止紀錄資料。例如,使用者可以在Server中設定Boolean/Discrete Tag,這個Tag必須處於On/True的狀態才會觸發使用者所設定之條件並執行操作。一旦切換至Off/False狀態時,因為不會觸發條件所以並不會執行任何操作。使用者可以定義Tag的數值讓該數值大於或是等於條件數值,以便觸發條件執行資料紀錄。一旦所定義的數值低於條件數值,將會停止紀錄資料。不論是Interval或是Data Change都會在達成觸發條件時開始記錄資料。例如,如果將Static Interval設定為1分鐘,當達成觸發條件並且執行紀錄資料時,就會從達成條件的那一刻開始計算時間。因此,達成觸發條件之後的一分鐘將會開始紀錄資料。Data Change的時間計算也是同樣,達成觸發條件才會開始紀錄資料。以下新的觸發功能可以運用於Expression Triggers中:
• 當滿足觸發條件時記錄一次:當滿足觸發條件時,這個功能會記錄所有當前Log Group 中Item的值。在KEPServerEXV5.5和舊版本的Server中這個功能的名稱為start Snapshot。
• 當滿足觸發條件而停止資料紀錄:這個功能是當滿足觸發條件後停止資料運作,並記錄當前Log Group 中Item的值。在KEPServerEXV5.5和舊版本的Server中這個功能的名稱為stop Snapshot。
注意:KEPServerEX V5.5和早期版本Server需要在Snapshot的條件裡選擇Static Interval 或是Data Change方法。KEPServerEX V5.6則是使用者只需選擇snapshot條件(而不用選擇Static Interval和Data Change方法)。
MySQL資料表已滿時收到的錯誤消息是“DataLogger Runtime Unable to query recordset on Log Group 'Local MySQL' (Reason: 'The table 'YourTable' is full').”。
發生這種情況時,DataLogger _Error Tag將被設定為1,表示日誌群組處於錯誤狀態。
MS Access將日期和時間內部儲存為雙精度浮點數(xxxx.yyyy)。 在午夜,yyyy為零,Access UI不顯示; 然而,使用午夜日期和時間的時間比較SQL算法將正常工作,因為實際上沒有資料丟失。
當MS Access資料庫已滿時,DataLogger的_Error標記將被設定為1,表示日誌群組處於錯誤狀態。
事件日誌將顯示“DataLogger Runtime Unable to query recordset on Log Group 'Access' (Reason: 'Invalid argument.')”。
MS-SQL將TIMESTAMP內部解釋為用於處理圖像訊息的二進制檔案。 它與OPC時間戳記、日期或時間訊息無關。 應始終使用SQL_DATE或SQL_DATETIME來記錄OPC時間戳記訊息。
注1:DataLogger可以產生資料表。 DataLogger設定建議一組與正在連接的資料庫兼容的欄位名稱和SQL資料類型。 使用者可以自由地覆蓋這些設定。
注2:DataLogger執行時將檢測在MS-SQL上建立SQL_TIMESTAMP欄位的請求。 然後它將回報事件日誌警告,並替換SQL_DATETIME的欄位類型。
當Server從MS SQL中取得以下錯誤之一時,DataLogger _Error標記將被設定為1,表示日誌群組處於錯誤狀態。
不行,DataLogger不能用於在Excel中自動建立資料表。
使用者可以使用DataLogger和MS Access Link Tables將資料記錄到現有的Microsoft(MS)Excel活頁簿中。有關詳細訊息,請參閱以下說明。
選擇資料庫
使用Office 2003和更早版本加入連接表
注意:表格成功連接到活頁簿,將出現一個消息框。
使用Office 2007和更新加入連接表
注意:表格成功連接到活頁簿,將出現一個消息框。
加入新的存取DSN
注意:無論是以交互式還是系統服務模式執行,系統DSN都可用於Server 。
* Excel工作表應具有唯一命名的欄位標頭,因為它們將用於連接表中的檔案名。 DataLogger將使用字段名稱來 關聯/映射Server 專案參數。
注意1:有關詳細訊息,請參閱DataLogger產品手冊。
注意2:DataLogger將打開專用資料表,因此表不能直接查看。
DataLogger的執行緒模型可以根據使用者的需要進行定制。 它將每個DSN解釋為佇列以建立新的日誌記錄執行緒。
例如:LogGroup01使用名為“MySQL_ONE”的DSN,並且LogGroup02使用名為“MySQL_TWO”的DSN,則即使MySQL_ONE和MySQL_TWO都指向同一資料庫,DataLogger也將產生兩個不同的日誌記錄。 如果LogGroup01和LogGroup02都使用MySQL_ONE,則它們將處理資料相等。
這種可擴展性允許使用者同時記錄數萬個點:在測試中,Kepware建立了兩個日誌群組,每個組記錄到指向同一MySQL資料庫的不同DSN。 他們每秒記錄大約50,000列。
當記錄時,資料將附加到目標資料來源。 這將導致資料來源隨著時間的推移而增長,最終將消耗使用硬盤上可用的所有空間。 專案數量及其記錄速率將決定資料來源的增長速度和速度。
例如,在測試中,Kepware使用寬表格格式建立了一個專案,每10毫秒記錄1000個專案,它會在3天內消耗5 GB的磁碟空間。 有關優化日誌記錄操作的更多訊息,請參閱DataLogger提示和技巧。
從KEPServerEX 5.14版開始,DataLogger支援儲存轉發,可防止SQL Server不可用時資料丟失或資料庫無法足夠快速地處理請求時發生資料丟失。 發生這些情況時,日誌群組將在連接丟失期間捕獲的資料記錄到磁碟。 一旦連接恢復,磁碟上的資料將被讀取,寫入ODBC資料來源並刪除。
注意:DataLogger在KEPServerEX 5.13及更早版本中沒有此功能。
有限制。 對於適用於Microsoft Access的XP及更高版本的限制,請參考下表。
元件 最大尺寸
表名 64字節
列/字段名稱 64字節
每表 255列
注意:不幸的是,建立表格時,不會檢測到欄位名和字元數的問題; 名稱將被直接截斷。 當DataLogger專案進入 Runtime時,錯誤將作為查詢失敗返回。 錯誤“Unable to query recordset on Log Group 'KT' (Reason: 'sp_cursor: The value of the parameter 'value' is invalid')”將被返回。 要解決此錯誤,請重新建立表格並編輯自動產生的欄位名稱。 然後,將Server Tag map到新欄位。
DataLogger中基於例外觸發器的條件沒有大於、等於或小於的條件。有關如何設定當Tag的值大於或等於5時觸發日誌群組條件的範例,請參閱以下說明。
使用此設定,當Tag的值大於或等於5時,日誌群組將進入觸發狀態,日誌記錄將開始。當Tag的值小於5時,日誌群組將不再被觸發,記錄將停止。
有限制。 根據Oracle的限制,請參考下表。
元件 |
最大長度 |
欄位名稱 |
30 Bytes |
表格名 |
30 Bytes |
從DataLogger動態建立表格時,默認設定將使用完整的專案名稱為寬格式表格建立欄位。 段落將被下劃線取代。 例如,專案“Channel1.Device1.Tag1”會改為“Channel1_Device1_Tag1_value”,總共有27個字元。
不幸的是,建立表格時,不會檢查到欄位名和字元數的問題。 當DataLogger專案進入Runtime時,錯誤將作為查詢失敗傳回。將傳回錯誤“Unable to query recordset on Log Group 'KT' (Reason: 'sp_cursor: The value of the parameter 'value' is invalid')”。
要解決此錯誤,請重新建立表格並編輯自動產生的欄位名稱。 然後,將 Server Tag map到新欄位。
Absolute Trigger 可以讓使用者明確的定義日期以及時間,當Trigger滿足使用者所定義之條件時就可以運作。當Trigger處於執行狀態時,資料可以透過靜態間隔(Static Interval)或是資料交換(Data Change)紀錄資料。當Trigger開始運作時,不論是靜態間隔和資料交換都會開始紀錄資料。例如,如果靜態間隔被設定為1分鐘,在這1分鐘之內Trigger都會處於運作的狀態下。因此,第一筆紀錄的內容會是開始後1分鐘內的資料。資料交換也是如此,在觸發Trigger後開始紀錄資料。以下為可以用於Absolute Trigger中新的Trigger功能:
• 當Trigger因滿足條件開始運作時,開始紀錄資料(Log once when trigger start condition is met):此功能為當Trigger運作時,會記錄Log Group中所有項目的當前數值。在KEPServerEX V5.5和較舊的版本,這個功能名稱為Start Snapshot。
• 當Trigger因滿足條件停止運作時,開始紀錄資料(Log once when trigger stop condition is met):此功能為當Trigger停止運作時,會記錄Log Group中所有項目的當前數值。在KEPServerEX V5.5和較舊的版本,這個功能名稱為Stop Snapshot。
注意:KEPServerEX V5.5以及較舊版本會要求靜態間隔或資料交換必須選擇snapshot的條件。KEPServerEX V5.6只允許使用者選擇一個snapshot條件(不包含靜態間隔和資料交換)。
要存取在Linux / Unix電腦上執行的MySQL資料庫,使用者必須先設定資料庫以允許遠端PC存取。 詳細訊息請參閱以下說明:
mysql> GRANT ALL ON *.* TO 'Username'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.14 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.16 sec)
mysql> \q\
Bye
注意:這將允許ODBC DSN設定MySQL資料庫。
有可能會出現此錯誤的幾個原因: