KEPServerEX 的 Options 為加購項目,提供使用者更豐富的附加功能
Program ID為“Kepware.SNMPOPCServer.1”。
注意:iSNMP Server是已經下架的KEPServerEX V4產品。 KEPServerEX V5格式中沒有此版本。
儘管支援顯示格式,但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資料庫。
有可能會出現此錯誤的幾個原因:
Devices可以在同一個Channel裡面進行媒體階層的Redundancy;然而,當透過不相同的通訊協定或是路徑時,則須使用獨立的Channels。
不,不是所有的Driver都有支援媒體層的冗餘(MLR)。目前只有支援主要Driver和不需要第三方介面卡或是文件檔案的Driver。在2015年6月23日之前,以下這些Driver都沒有被支援:
• Advanced Simulator
• Allen-Bradley ControlLogix Unsolicited
• Allen-Bradley Data Highway Plus
• Allen-Bradley Unsolicited Ethernet
• Custom Interface
• Dataforth isoLynx
• DDE Client
• Hilscher Universal
• Memory-Based
• Mettler Toledo
• Modbus Plus
• Modbus Unsolicited Serial
• Modbus Ethernet (Slave/Unsolicited Modes)*
• ODBC Client
• OPC DA Client
• OPC XML-DA Client
• SattBus Serial
• Siemens TCP/IP Unsolicited Ethernet
• Simulator
• Sixnet UDR
• User-Configurable (U-CON)
• WITS Level 0 Passive
• Yaskawa Memobus Plus
*有支援Modbus的Ethernet Master
以JSON陣列格式來發布資料,且可以藉由微調JSON格式讓程式變得更加靈活。
REST Client端支援POST或是PUT的第三方REST伺服器的命令語法。
REST伺服器支援以GET為基礎的命令語法和關聯性標籤,利用GET或是POST命令語法來讀取標籤,使用POST命令語法寫入標籤。且這些文件紀錄都會保存在REST伺服器的頁面上。
每一次的發布都會抓取所有資料產生的事件,並且將資料存入JSON陣列,發送至終端。
每一項JSON陣列的「物件最大值」 都會發布訊息給其他的JSON陣列,表示該JSON陣列內的物件已經達到臨界點,其目的是避免JSON內的資料被第三方的應用程式覆蓋過去。
全部的訊息皆會以固定的時間間隔發布,採用連續且不間斷的方式發送訊息,而不是一次將大量的訊息發送出去。
IoT Gateway插件支援使用MQTT和Rest Client的自定義簽名憑證。而這些使用 Microsoft Windows,電腦位準,信任憑證儲存機制會持續去追蹤其他的憑證。藉由使用憑證儲存,讓憑證管理獲得系統認證。為了匯出憑證,請依照下列的方式進行操作。
注意:更多完整的操作指令請參考產品手冊和線上的幫助文件。
操作步驟:
1. 開啟Start選單,選擇 All Programs。
2. 選擇Accessories之後右鍵點選 Command Prompt 和從選單中選擇Run as Administrator。
3. 在命令提示字元視窗,藉由使令將位置切換至憑證所在位置。
4. 輸入指令: certutil -addstore "Root" ⁢CertificateName>,的副檔名名稱為.cer或是.crt。
5. 按下Enter執行命令。
6. 當出現這段訊息時即表示已經完成輸入作業: CertUtil: -addstore command completed successfully。
Windows控制步驟:
1. 從開始選單中,選擇 All Programs。
2. 選取Accessories| Run。
3. 在執行視窗裡面,輸入”mmc”並按下OK。
4. 在Windows 控制視窗裡,選擇File | Add/Remove Snap-in…。
5. 選擇左方的Certificates並且按下Add。
6. 選擇 Computer account 和選取Next>。
7. 選擇Local Computer並且按下Finish。
8. 返回Add or Remove Snap-ins視窗,並按下OK。
9. 驗證授權(本機電腦)編列在 Console視窗。
10. 展開Certificates清單,之後再展開Trusted Root Certification Authorities。
11. 選取 Certificates和驗證清單裡所有的Root憑證顯示。
12. 找到要讓MQTT和Rest Client導入的憑證。
13. 右鍵點選憑證和選取All Tasks | Import…。
14. 在憑證輸入的導引中,在初始頁面裡點選Next。
15. 選取Browse... 找到並且選擇要導入的憑證後按下Next>。
16. 選擇Place all Certificates in the following store並除儲存Trusted Root Certification Authorities後按下Next>。
17. 在最後的步驟導引,按下Finish。
18. 出現訊息視窗且顯示import was successful後按下OK。
19. 關閉Console視窗。
可以!
可以設定Mosquitto MQTT Broker去接收KEPServerEX IoT Gateway的訊息
KEPServerEX IoT Gateway的插件並沒有包含MQTT的 Broker。而第三方的Broker,像是Mosquitto,可以透過IoT Gateway 的插件來接收IoT Gateway的訊息。依據下方的步驟在Microsoft Windows電腦上安裝Mosquitto或請供應商提供相關的說明文件。
提示:Mosquitto Broker可以被安裝在電腦上並且運行在KEPServerEX和IoT Gateway的插件。
前置作業:Mosquitto可以透過其他第三方的封包來安裝。在安裝Mosquitto之前必須先安裝以下這些套件:
• Microsoft Visual C++ 2010 Redistributables
o 連結: http://www.microsoft.com/en-us/download/details.aspx?id=5555
o 安裝 vcredist_x86.exe
• OpenSSL
o 連結: http://slproweb.com/products/Win32OpenSSL.html
o 安裝 "Win32 OpenSSL ⁢version>",
o 使用預設的設定安裝。
o 要求 DLLs: libeay32.dll ssleay32.dll
• pthreads
o 連結: ftp://sourceware.org/pub/pthreads-win32
o 不須安裝 pthreads-w32-⁢version>-release.zip
o 要求DLLs: pthreadVC2.dll
安裝
:1.安裝 Mosquitto.
o 連結 http://mosquitto.org/download/
o 安裝 Windows Binary mosquitto-⁢version>-install-win32.exe (Native build, Windows Vista 或是更高版本)
2.從OpenSSL中複製下列的檔案, C:\OpenSSL-Win32, to the Mosquitto root folder, C:\Program Files (x86)\mosquitto:
o ssleay32.dll
o libeay32.dll
3.將以下文件從pthreads zip複製到Mosquito根目錄資料夾, C:\Program Files (x86)\mosquitto:
o pthreads-w32-⁢version>-release.zip\Pre-built.2\dll\x86\pthreadVC2.dll
執行 Mosquitto:
1. 為了執行broker,開啟命令提示字元 Start | All Programs | Accessories | Command Prompt.
2. 在命令提示字元裡面,將路徑選到Mosquitto的資料夾路徑, 例如 C:\Program Files (x86)\mosquitto.
3. 藉由指令來運行Mosquitto: "net start mosquitto".
4. 確認訊息: The Mosquitto Broker service was started successfully.
連接到 Mosquitto Broker:
1. 依照以下操作指示進行操作:KEPServerEX IoT Gateway插件 可以幫助系統安裝MQTT。
2. 在MQTT中 the URL 是 tcp://⁢IP of the broker machine>:1883.
3. 設定主題 (使用者設定).
4. 設定系統可以辨別的發布速率,像是1000ms。
5. 向代理增加Tag。該Tag應該在步驟4的時候至少需要更動一次,或是設置”event scan”。
6. 新增Tag後,確認KEPServerEX 設置介面中的Event Log訊息: "MQTT agent ⁢agent> is connected to broker 'tcp://⁢IP of the broker machine>:1883'"
驗證資料:
1. 開啟命令提示字元 Start | All Programs | Accessories | Command Prompt.
2. 在命令提示字元裡面,將路徑選到Mosquitto的資料夾路徑, 例如 C:\Program Files (x86)\mosquitto.
3. S藉由指令來運行Mosquitto: "mosquitto_sub.exe -t #" where "–t #" instructs the mosquitto_sub program to display data published to all topics on the Mosquito broker.
4. 驗證IoT Gateway插件是否有在命令提示字元中將資料發布在Mosquitto Broker上。
EFM Exporter Plug-In 確認每一個Event Log紀錄的回傳,且更新在畫面的儀表板。當儀表板接收這段確認訊息,儀表板將會清除來自Log File的事件訊息。因此,之後顯示在儀表板的Event Log紀錄將會被更新,當紀錄顯示在儀表板程式介面時Event Log也會被清空。
上傳EFM資料所需的時間將各不相同。 影響上傳速度的幾個因素如下:
KEPServerEX V4.300.449.0在沒有Advanced Tags套件之前,是無法在伺服器中進行數學運算。Advanced Tags可以讓使用者進行平均值、最小值和最大值計算以及進階計算和自定義調整,但目前一些Tag只提供讀取。
Advanced Tag套件適用於所有版本的KEPServerEX。