該文檔閱讀對象為數采施工工程師,需要具備一定的數采協議知識,了解PLC、OPC UA、OPC DA、modbus等通信協議概念。
術語
點位:指PLC、DCS等自動化系統中I/O數字量或A/D模擬量。一個自動化系統由幾千到幾萬個點位組成,為了方便施工配置,這些點位通過excel點表來整理匯總。
點表:泛指記錄點位配置信息的excel表格,包含模板表、設備表、點位表。
模板表:技術屬性模板excel表的簡稱,又稱設備模板表,記錄一批設備共用的配置信息,如點位在OT地址空間中的相對偏移地址。
設備表:設備配置excel表的簡稱,記錄設備相關的配置,如設備鏈接地址,設備在OT地址空間中的全局偏移地址,設備全局偏移地址 + 點位相對偏移地址 = 點位在OT地址空間中的絕對地址。
點位表:模板表和設備表通過工具可以自動生成點位表,同時也支持手工編輯整理點位表,點位表記錄了每個IT屬性的信息、OT點位的信息、以及兩者之間的映射關系,即IT屬性 = OT點位 + 公式映射。
IT:Information Technology,本文中特指信息化軟件系統相關的技術。
OT:Operational technology,本文中特指自動化系統相關的技術。
產品功能
邊緣數采一體機功能如下
采集,支持主流DCS、PLC通信協議,如OPC UA、MODBUS等,通過excel點表完成大批量點位導入,支持設備模板,便于數采配置、應用開發、以及數據分析。同時提供SDK方便私有協議定制開發。
存儲,包括點位時序數據存儲,告警記錄存儲。點位時序數據存儲支持按點精細化配置,默認存儲周期一年。告警記錄默認存儲一年。
可視,提供基于web的組態編輯界面,做圖標、圖紙開發、數據綁定,發布的圖紙可以通過瀏覽器訪問,以及被三方應用集成。
告警,支持配置告警模板,配合excel點表做批量配置。
轉發,支持自定義轉發規則,按設備過濾、去重轉發。支持對接阿里云IoT平臺、以及kafka轉發其他平臺。
openAPI,提供MQTT實時訂閱和HTTP按需查詢2種接口,其中MQTT訂閱支持共享訂閱、全量訂閱、按設備訂閱、按點訂閱。
主備,支持雙機主備,提高系統可靠性。工程配置支持一鍵同步,實時數據自動同步。
監控,支持端到端流量監控,覆蓋采集、加工、存儲、轉發各個環節的實時流量。支持數據流轉時延檢測、存儲監控檢測、系統檢測、硬件檢測等。
采集
本章節包括以下內容
點表配置
驅動視圖
設備視圖
設備模板
模板管理
OPC UA導入屬性
資源部署
驅動視圖
整體展示結構為:驅動-連接-設備-點位。
左側為驅動-連接列表,驅動即數采協議包,如下圖所示,左側驅動列表包括bacnet、device_simulator、iec61850、modbus,驅動下可以通過導入點表添加多條連接,如下圖所示modbus驅動下有CON57、CON58等連接。
左側窗口選中驅動,可以查看各條連接狀態、連接/斷連時間,數采點個數、屬性點個數和進度,點擊詳情,可以查看連接配置。
數采點,指從PLC或DCS中直接采集到的原始變量,原始變量經過bit拆分、json提取得到屬性點。如一個DWORD數采點拆分得到多個屬性點。 進度條,驅動、連接、設備都有各自維度的屬性點進度統計。
進度=100%,代表從連接建立開始,下面所有的屬性點都正常上報過。
進度<100%,代表截止目前有屬性點未上報過,需要排查連接配置、設備配置、數采地址配置、加工公式配置是否正確。 左側窗口選中驅動下的某條連接,可以在右側窗口看到該連接下的設備列表、各設備接入進度,點擊詳情可以查看設備配置。雙擊某一行或點擊查看屬性點可以進入設備下的屬性點列表。
屬性點列表,可以看到某個設備下各屬性點實時值、質量碼、時間戳,其中質量碼0代表正常,0xC0(192)代表連接已斷開(此時展示的實時值為系統緩存值),有寫權限的屬性點位會有寫入按鈕。 屬性點有3個狀態,如下
異常:代表截止目前該屬性點未上報過。
正常:代表截止目前該屬性點上報過。
待部署:代表后臺配置變更后,未點擊部署,即驅動未加載新的配置。
雙擊某一行或點擊查看詳情可以進入屬性點詳情頁面。
屬性點詳情,基礎信息包括驅動-連接-設備-數采點-公式轉換-屬性點狀態,便于異常問題定位。
驅動異常,需要檢查驅動是否正常運行。
連接異常,需要檢查連接的IP、Port等配置是否正確。
設備異常,需要檢查設備配置是否異常。
數采點異常,需要檢查數采地址配置是否正確。
轉換異常,需要檢查加工公式拼寫是否正確。
數采點,指從PLC或DCS中直接采集到的原始變量,原始變量經過bit拆分、json提取得到屬性點。如一個DWORD數采點拆分得到多個屬性點。數采點和屬性點都有唯一的標識符ID。
歷史數據,支持表格、圖表2種展示方式。表格方式更準確,圖表方式適合看趨勢。圖表展示時,會根據時間范圍做間隔采樣,即降采樣,采樣方法為在固定的時間間隔內抽取數據,有數據則展示,無數據不展示(未采取平均值、最大值、最小值等補值手段)。
設備視圖
支持按連接編碼、模板名稱或編碼、設備名稱或編碼、設備數采狀態、屬性名稱或編碼組合搜索,模糊搜索。其中模板名稱或編碼、設備名稱或編碼是必選,其他可選。
模板管理
相同的設備配置可以復用一套模板,參考下文的模板表excel說明。 模板搜索:支持按模板名稱、模板編碼搜索,模糊搜索。更新時間:模板表有修改,重新導入后,更新時間會變化。更新時間支持時間排序。
單個模板有2種視圖,屬性視圖和采集視圖。屬性視圖中屬性按照屬性組名稱歸類。
下圖為OPC UA協議的采集視圖(通過OPC UA掃描導入)。
excel點表介紹
什么是模板表(全稱為技術屬性模板表)
什么是設備表(全稱為設備配置表)
什么是點位表(用于離散點位管理)
以一個例子來展開說明3張表的差異,假設工廠中通過PLC接入了 10個電機、1個機械臂,且10個電機在PLC協議地址空間中是對稱的,則可以創建1張電機模板表,1張電機設備表,1張機械臂設備表,1張機械臂設備點位表。如果PLC連接協議一樣,變頻器設備表和機械臂設備表也可以合2為1。
模板表詳細說明
電機的模板表(技術屬性模板表)如下(以OPC DA協議為例):
藍色列代表IT信息(屬性編碼、屬性名稱、存儲類型、單位、取值范圍等),*代表必選,其他字段選填。
綠色列代表OT信息(數采地址、數采加工公式)。 灰色列代表分隔符,沒有實際意義。
提示:模板表的綠色列字段跟具體的協議強相關,如OPC DA的綠色列有ItemID、ValueType、IsWritable列,MODBUS的綠色列有寄存器偏移地址,OPC UA的綠色列有nodeid偏移地址等等。
整個表格傳遞的信息是IT屬性 = 數據轉換公式Expression + OT點。
表頭包含如下信息
模板編碼 AssetTypeCode,模板的唯一標識符,用于三方應用開發對接使用。
模板名稱 AssetTypeName,模板名稱,用于控制臺搜索和展示。
基礎類型,默認為Device。
提示:模板表支持添加多張excel sheet頁,每張sheet頁代表一張新的模板。
每列字段含義如下
屬性編碼 AttributeCode,用于組態界面、三方應用開發對接的標識符,要求在
模板內唯一
;屬性編碼只支持字母、數字、下劃線和點,且不超過64個字符。
屬性名稱 AttributeName,用于控制臺展示和搜索,
不要求唯一
;屬性名稱只支持字母、數字、下劃線和點,且不超過64個字符。
存儲類型,包括Bool、Int、Double、Enum、Text、Time。
告警事件模板,用于配置屬性變化是否觸發告警,此處填寫對應的告警模板id,見告警模板章節。
數據轉換公式,OT點位經過公式轉換變為IT屬性點,當前支持的公式有
bit(N),其中N取值范圍為[0, 31],代表取第N個bit
json_number(PATH),其中PATH為json文本中的路徑,如'/state/switch',包含引號,代表取json文本某
數字量
成員
json_string(PATH),其中PATH為json文本中的路徑,如'/state/name',包含引號,代表取json文本某
文本
成員
bit(json_number(PATH)),代表2個公式嵌套使用
OT地址,根據數采協議不同OT地址和參數有所差異,如MODBUS協議的綠色列有寄存器偏移地址,OPC UA的綠色列有nodeid偏移地址,OPC DA的綠色列有ItemID、ValueType、IsWritable列,具體含義請參考對應的協議表格說明。
設備表詳細說明
設備配置表,包含10臺電機的鏈接信息,樣例如下
藍色列代表IT信息,如設備名稱、模板編碼。
綠色列代表OT信息,如數采連接地址、數采采樣頻率等,具體請參考對應的協議接入說明。 灰色列作為分隔符列,沒有實際含義。 資產模板編碼列代表設備引用了哪個模板,可以為空,為空代表設備的點位配置由點位表記錄。
設備配置表可以添加多個設備,多個PLC,多套DCS的連接。
點位表詳細說明
點位表主要用于散點設備的接入,散點設備指設備點位地址無規律、無法使用模板表,此時可以使用設備表 + 點位表完成數采實施。點位表和模板表的差異點,在于OT地址列是完整的。
前面的例子中,點位表的樣例如下:
MODBUS點位接入流程
該章節包含以下內容
MODBUS的excel模板表配置說明
MODBUS的excel設備表配置說明
MODBUS的excel點位表配置說明
如何接入模板設備
如何接入散點設備
異常點位排查方法
模板表配置說明
表格下載:控制臺->采集->模板管理->導入模板->驅動名稱選中"modbus"->點擊下載。
綠色列代表驅動配置:
寄存器地址
驅動程序采用MODBUS尋址,功能碼+寄存器地址(0~65535),其他尋址模式需要進行轉化。
數據類型
指從設備中讀取的數據格式,同時驅動程序通過相應的數據類型來告知讀取一個、兩個、四個或八個寄存器或者可能的布爾值;
1)BOOL(布爾型)
2)INT16(16位有符號整型)
3)UINT16(16位無符號整型)
4)INT32(32位有符號整型)
5)UINT32(32位無符號整型)
6)INT64(64位有符號整型)
7)UINT64(64位無符號整型)
8)DOUBLE(雙精度浮點型)
9)FLOAT(單精度浮點型)
讀功能碼
1)0x01(讀線圈寄存器)
2)0x02(讀離散輸入寄存器)
3)0x03(讀保持寄存器)
4)0x04(讀輸入寄存器)
寫功能碼
1)0x05(寫單個線圈寄存器)
2)0x06(寫單個保持寄存器)
3)0x0F(寫多個線圈寄存器)
4)0x10(寫多個保持寄存器)
批量操作
是否允許驅動程序將其和與其相鄰的點位進行合并讀取。
交換字節順序
是否交換保持/輸入寄存器內的字節順序。
交換寄存器順序
是否交換多個保持/輸入寄存器之間的順序。
縮放因子
縮放原始數據,目前支持“線性”縮放.
設備表配置說明
綠色列代表跟數采相關的配置。 連接配置:
IP地址
MODBUS-TCP通訊的服務器的以太網IP地址。
端口
MODBUS-TCP通訊默認端口為502。
設備配置:
設備ID
設備在MODBUS-TCP通訊的服務器上的從站地址。
輪詢周期
點位讀取周期,單位ms。
輪詢超時
點位讀取超時,單位ms。
同模板表。
操作路徑:模板管理->導入模板->選擇對應的數采驅動->上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
操作路徑:點表配置->驅動視圖->選擇對應驅動->導入點表->設備表->上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
點擊部署,讓以上點表配置生效,該過程需要幾分鐘。
提示:啟用主備配置后,會多一個主備部署的按鈕,主備部署可以讓點表配置、告警配置等工程配置信息同步一份到另一臺主機。建議定期做主備配置同步,以免兩臺機器配置不一致,造成使用上的混亂。
常見問題FAQ
OPC UA點位接入流程
該章節展示了如何通過OPC UA掃描工具自動生成設備模板,批量接入點位,以及異常點位排查。OPC UA點位接入流程分成四個部分,具體如下:
創建模板表
導入設備表
部署資源
異常點位排查
1)創建和導入模板表和設備表
方式一:通過Excel表格配置
a) 模板表配置說明
字段名稱 | 字段格式 | 字段說明 |
點位編碼 PointCode | 例如:idxxxx | 用戶自定義點位全局id,內容無限制,長度不超過64個字符。 選填,默認為空,由一體機默認生成。 |
設備點位路徑 VariableName | 例如:ns=2;s=Motor1.State | 采集點在OPC UA服務器中設備NodeId的偏移地址 或點位NodeId 如果設備NodeId為空,則必須填寫完整點位NodeId, 否則選填。 |
采樣間隔 SamplingInterval | 例如:500,代表500ms | 采樣間隔,單位:毫秒 選填,默認500毫秒 |
b) 設備表配置說明
字段名稱 | 字段格式 | 字段說明 |
服務器地址(Url) | opc.tcp://127.0.0.1:4840 | OPC UA服務器URL,格式:opc.tcp://ip:port 必填 |
安全策略(SecurityPolicy) | 空 None Sign SignAndEncrypt | 是否加密, 選填,默認為空 |
安全模式(SecurityMode) | 空 None Basic128Rsa15 Basic256 Basic256Sha256 | 加密方式, 選填,默認為空 |
公鑰文件(PublicKeyPath) | 空 或 .pem 或 .der格式文件 | 公鑰文件在一體機上絕對路徑, 選填,默認為空 |
私鑰文件(PrivateKeyPath) | 空 或 .pem 或 .der格式文件 | 私鑰文件在一體機上絕對路徑, 選填,默認為空 |
用戶名(UserName) | 空 或 字符串 | 登錄用戶名, 選填,默認為空 |
密碼(Password) | 空 或 字符串 | 登錄用戶密碼 選填,默認為空 |
連接超時時間(ConnectionTimeout) | 60 | 連接超時時間,單位:秒, 選填,默認60秒鐘 |
空閑超時時間(IdleSessionTimeout) | 20 | 會話空閑超時時間,單位:毫秒, 選填,默認20分鐘 |
通道更新時間(RenewalInternal) | 60 | 通道更新時間,單位:毫秒, 選填,默認60分鐘 |
會話?;铋g隔(KeepaliveInterval) | 5 | 會話保活間隔,單位:秒, 選填,默認5秒鐘 |
會話?;畛瑫r次數(KeepaliveTimeoutCount) | 3 | 會話保活超時次數,單位:次 選填,默認3次 |
會話重連間隔(ReconnectInterval) | 5 | 會話重連間隔,單位:秒, 選填,默認5秒鐘 |
數據推送間隔(RequestedPublishingInterval) | 500 | 數據推送間隔,單位:毫秒, 選填,默認500毫秒 |
訂閱超時計數(RequestedLifetimeCount) | 600 | 訂閱超時計數,單位:次, 選填,默認600次 |
訂閱超時計數(RequestedMaxKeepAliveCount) | 60 | 訂閱保活計數,單位:次, 選填,默認60次 |
數據推送最大點位個數(MaxNotificationsPerPublishl) | 10000 | 數據推送最大點位數,單位:個, 選填,默認10000個 |
訂閱優先級(Priority) | 0 | 訂閱優先級,0-255, 選填,默認0 |
最大讀取點位個數(MaxNodesPerRead) | 100 | 最大讀取點位個數,單位:個, 選填,默認100個 |
最大寫入點位個數(MaxNodesPerWrite) | 10 | 最大寫入點位個數,單位:個, 選填,默認10個 |
讀超時時間(WriteTiemout) | 5 | 寫求超時時間,單位:毫秒, 選填,默認5秒鐘 |
全量上報間隔(FullReportInternal) | 5 | 全量上報間隔,單位:秒, 選填,默認5分鐘,0表示禁用 |
c) 點位表配置說明
字段名稱 | 字段格式 | 字段說明 |
點位編碼 (PointCode) | 例如:idxxx | 用戶自定義點位全局id,內容無限制,長度不超過64個字符。默認為空,由一體機默認生成。 |
設備點位路徑 (VariableName) | 例如:ns=2;s=Motor1.State | 采集點在OPC UA服務器中設備NodeId的偏移地址 或點位NodeId |
采樣間隔 (SamplingInterval) | 例如:500,代表500ms | 采樣間隔,單位:毫秒,默認500毫秒 |
d) 導入模板表
模板表內容見 模板表配置說明
操作路徑:采集 -> 模板管理 -> 導入模板 -> opcua驅動 -> 模板表 -> 上傳文件。
提示:
選中文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
2) 導入設備表
設備表內容見 設備表配置說明。
操作路徑:數采 -> 點表配置 -> 驅動視圖 -> opcua驅動 -> 導入點表 -> 設備配置表 -> 上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
3)導入點位表
點位表內容見 點位表配置說明。
操作路徑:數采 -> 點表配置 -> 驅動視圖 -> opcua驅動 -> 導入點表 -> 點位配置表 -> 上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
OPC DA點位接入流程
OPC DA常用于散點設備的接入,散點設備的接入使用設備表 + 點位表。
1)模板表配置說明
字段名稱 | 字段格式 | 字段說明 |
點位編碼 | 字符串 | 點位編碼ID, 選填 |
OPC點位地址 | 字符串 | 點位在OPC服務器的ItemId值, 必填 |
數據類型 | Boolean/Int8/Int16/Int32/Int64/UInt8/UInt16/UInt32/UInt64/Float/Double/String | 點位在OPC服務器的ItemId對應值的類型, 必填 |
可寫 | FALSE/TRUE | 點位在OPC服務器的ItemId對應值是否支持寫, 必填 |
2)設備表配置說明
字段名稱 | 字段格式 | 字段說明 |
OPC代理IP | IP地址 | OPC代理所在主機IP,必須為物理網卡配置IP, 必填 |
OPC代理Port | 整數 | OPC代理Port, 必填 |
OPC服務器地址 | IP地址 | OPC服務軟件所在主機地址, 必填 |
OPC服務應用注冊ID | 字符串 | OPC服務在Windows系統注冊的ID, 必填 |
采樣間隔 | 整數 | 采樣周期,單位:秒 選填,默認5秒鐘 |
3)點位表配置說明
字段名稱 | 字段格式 | 字段說明 |
點位編碼 | 字符串 | 點位編碼ID, 選填 |
OPC點位地址 | 字符串 | 點位在OPC服務器的ItemId值, 必填 |
數據類型 | Boolean/Int8/Int16/Int32/Int64/UInt8/UInt16/UInt32/UInt64/Float/Double/String | 點位在OPC服務器的ItemId對應值的類型, 必填 |
可寫 | FALSE/TRUE | 點位在OPC服務器的ItemId對應值是否支持寫, 必填 |
4)導入模板表
操作路徑:數采 -> 模板管理 -> 導入模板 -> 選擇opcda驅動 ->上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
5)導入設備表
操作路徑:數采 -> 點表配置 -> 驅動視圖 -> 選擇opcda驅動 -> 導入點表 -> 設備配置表 ->上傳文件。
提示:
支持同時導入多個文件。
選中每個文件可以看到報錯提示。
文件較大時,前臺會提示導入超時,但后臺仍會繼續導入。
前臺取消導入時,后臺仍會繼續導入。
6)資源部署
點擊部署,讓以上點表配置生效,該過程需要幾分鐘。
提示:啟用主備配置后,會多一個主備部署的按鈕,主備部署可以讓點表配置、告警配置等工程配置信息同步一份到另一臺主機。建議定期做主備配置同步,以免兩臺機器配置不一致,造成使用上的混亂。
三色燈異常診斷
連接狀態
連接狀態包含連接、異常。
綠色
:代表該連接下有數采點上報過(至少有一個數采點上報過)。
紅色
:代表驅動上報了斷連事件,或未有任何數采點上報。
屬性點三色燈
針對異常的點位,數采一體機提供診斷功能,用來快速排查問題。
各階段異常的原因:
驅動
:驅動程序運行異常,可以查看/linkedge/run/logger/fc-base/下驅動日志
連接
:無法連接到該設備,請檢查設備連接配置信息。
設備
:無法采集該設備上的任何點位數據,檢查設備配置信息。
數采點
:無法采集該點位數據,檢查數采協議點位地址配置信息。
轉換
:無法對采集到的原始數據進行公式轉換,檢查點位格式和公式是否匹配。
屬性點
:無法查詢到該屬性點信息。
狀態燈是根據點位上報情況推導出來的,不強依賴驅動上報的連接狀態、設備狀態虛擬點位。
Q. 和驅動上報的虛擬點位之間的關系?
連接成功、設備上線的虛擬點位上報不會影響狀態燈。
連接斷開的虛擬點位上報,會重置該連接及其下的設備、點位的狀態,變紅。
設備下線的虛擬點位上報,會重置該設備及其下的點位的狀態,變紅。
Q. 和部署之間的關系?
部署會重連修改過的連接,會重置該連接及其下的設備、點位的狀態,導致相關狀態都變紅。
Q. 和點位質量碼之間的關系?
點位質量碼為零,認為該點位正常,顯示綠色。
點位質量碼為非零,認為該點位異常,顯示紅色。
告警
告警模板
典型場景:大量I/O數字量需要批量配置告警信息
操作路徑:告警模板 -> 新建模板 -> 填寫模板信息 -> 在excel模板表或點位表填寫告警模板編碼
步驟一:創建告警模板
告警標題
支持多語言。
告警級別、告警分類、告警類型
支持自定義配置,
告警內容
支持變量引用。
步驟二:操作路徑1:采集->模板管理->選擇對應的模板->查看->屬性視圖->選擇屬性->編輯->選擇告警模板->保存,然后部署。
操作路徑2:在excel點表(模板表或點位表)中填充告警模板編碼,并在控制臺重新導入excel模板表,然后部署。
步驟3:資源部署 -> 本機部署
步驟4:查看告警事件
未解除:指進行中的告警(告警條件被觸發,且當前仍滿足觸發條件)已解除:指已消除的告警(告警條件曾被觸發,當前觸發條件不滿足)
告警確認:運維人員通過手動確認告警,來保障整個自動化系統的正常運行。 告警搜索:支持通過時間窗口、設備資產編碼來搜索過濾告警。
常見問題
Q. 新建或修改告警模板后是否需要部署?
不需要部署,保存即生效。
Q. 如何配置或恢復兩臺機器之間的告警數據同步?
一、清理原有數據庫
1、docker stop postgres12
2、docker rm postgres12
3、rm -rf /datafactory_data/postgres
二、下載新的pg安裝文件:
wget http://xxx/postgres12_install_file.tar.gz
三、重新走一遍雙機postgres的安裝流程
sudo mkdir -p /datafactory_data/postgres/
sudo ./install_PG.sh /datafactory_data/postgres/
sudo ./config_PG_step1.sh
# 在LE1上執行
sudo ./config_PG_step2.sh ${LE2_IP} 5432
# 在LE2上執行
sudo ./config_PG_step2.sh ${LE1_IP} 5432
可視
詳見組態編輯器使用手冊。
轉發
一體機支持多種數據轉發方式
轉發上云,阿里云IoT
轉發到三方Kafka平臺
通過MQTT openAPI訂閱數據,自定義轉發到其他平臺
阿里云IoT
一體機內部和阿里云IoT平臺有2條通道,一條為管控通道,一條為數據通道。
管控通道:對應一個管控通道三元組,管控通道用于云端下發各種參數配置。 數據通道:對應N個數據通道三元組,數據通道用于一體機上報數據。由于上云數據通常較大,物聯網平臺單條連接流量上限約1MB/s,可以在一體機上配置起N條鏈接,N條鏈接對應N個三元組。配置方法見后續說明。數據通道對應物聯網平臺的虛擬網方案(子設備數據可以選擇任意一條通道上云),同時配合物聯網連接型實例,一體機做了數據聚合、壓縮優化。因此配置時重點關注以下幾點
根據上云流量,預估上云數據通道數,創建對應N個三元組。
根據物聯網平臺實例類型,在邊緣一體機上配置連接型實例、普通實例。
配置步驟如下
控制通道配置
登錄數字工廠平臺。操作路徑:數據采集->邊緣實例->新建邊緣實例->復制 DeviceName、ProductKey、DeviceSecret,注意主備的邊緣實例會有2套三元組。
在物模型映射,查看數字工廠對應的物聯網平臺LP(Link Platform)對應的接入地址。
將上一步驟復制的ProductKey、DeviceName、deviceSecret以及物聯網平臺接入地址和端口號信息填充到對應的邊緣一體機中。
提示: 1. 域名后面需要拼接端口,端口固定為1883。如:iot-xxxxoktpaa.mqtt.iothub.aliyuncs.com:1883。 2. 物聯網平臺需要區分連接型實例和普通實例!兩者在一體機中的配置不同,前者需要開啟數據壓縮選項,支持更大并發,后者不支持壓縮。
對接物聯網平臺:使能開關,在開關打開后數采一體機開始嘗試和阿里云物聯網平臺進行連接。
ProductKey:產品名稱,在阿里云物聯網平臺上進行產品創建時生成。
DeviceName:設備名稱,在阿里云物聯網平臺上進行設備創建時生成。
deviceSecret:設備密鑰,阿里云物聯網平臺上進行設備創建時生成。
物聯網平臺接入地址:阿里云物聯網平臺接入地址,對應實例的連接地址。
設備過濾規則:對應上元數據轉發的OT數據的過濾規則,參考下文中的過濾規則集說明。
數據通道配置
操作路徑:登錄物聯網平臺,選擇對應的企業實例,任意一個創建產品和設備,保存設備三元組。
配置數據通道三元組
和控制通道不同,阿里云Iot數據通道配置通過現場施工時進行后臺修改配置文件完成,對應配置文件路徑如下:
vim /linkedge/gateway/build/config/data_cloudproxy/data_proxy_client.json
配置文件中包含數據上云的N個三元組信息,需要上云的數據流量事先進行規劃。
下文以3對三元組為例,進行配置說明。
{
"identityInform":[
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_111",
"DeviceSecret": "xxxxxx"
},
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_222",
"DeviceSecret": "xxxxxxx"
},
{
"ProductKey": "g4kneyYU5SY",
"DeviceName": "IndustryDeviceAsset230_333",
"DeviceSecret": "xxxxxxxxx"
}]
}
注意:此處的三元組和邊緣實例中的三元組不同!配置重復會導致連接互踢!!!
配置物聯網平臺類型(普通實例還是連接型實例)
vim /linkedge/gateway/build/config/data_cloudproxy/data_cloudproxy.json
{
"TingChangGoNum" : 5,
"CompressGoNum" : 5, //控制是否需要壓縮數據,修改為0代表不壓縮--對應普通物聯網平臺實例。
"EdgeMqttClientNum" : 5,
"CloudMqttClientNum" :3,
"EdgeMqttChannelBuffers" : 80000,
"VirtualBufferChannelBuffers" : 4000,
"CompressBufferChannelBuffers" : 4000,
"BufferMaxPropertyNum" : 100,
"BufferMaxDeviceNum" : 20,
"BufferSendCount" : 5,
"BufferMaxCacheArrayNum": 200,
"NetworkKey": "qwertyuiopasdfghjklzxcvbnm0123456789qwertyuiopasdfghjklzxcvbnm12",
"Kafka_Client_Num": 2,
"mqtt_received_message_buffer_len": 200000,
"merge_size": 100,
"mergers_num": 10,
"alarm_send_buffer_len": 1000,
"alarm_rcv_buffer_len": 10000
}
配置文件修改后,重啟LE,
重啟服務
systemctl restart LinkIoTEdge.service
查看服務運行狀態
/linkedge/gateway/build/script/iot_gateway_status.sh
數字工廠->邊緣實例->數據下發等待部署完成后,可以在一體機配置文件中看到以下變化。
vim /linkedge/run/cloud_db_resource_bak/thing_asset_relation_resource/thing_asset_device_relation_file
文件內容為資產設備到物模型的映射配置
{"assetCode":"xx","assetTypeCode":"XX","deviceName":"xx","deviceSecret":"xx","productKey":"xx"}
{"assetCode":"xx","assetTypeCode":"XX","deviceName":"xx","deviceSecret":"xx","productKey":"xx"}
vim /linkedge/run/cloud_db_resource_bak/thing_asset_relation_resource/thing_asset_property_relation_file
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
{"assetTypeCode":"xx","attributeCode":"xx","productKey":"xx","propertyId":"xx"}
數據通道連接成功打印如下
SubDeviceJoinNet start, DeviceName:xxx,netId:xxx
提示:若看不到netId的打印,說明連接的物聯網平臺為普通實例!需要修改配置!
常見問題
Q. 修改管控通道后系統連接丟失
控制面三元組和物聯網接入地址是數采一體機的關鍵環境變量信息,需要系統重啟才能全局生效。在修改相關信息保存后觸發系統的重啟生效流程。
Q. 修改數據通道三元組信息未生效
轉發面三元組信息是在系統啟動后進行讀取和連接創建的,后臺修改對應三元組,在軟件重啟前無法實時生效,需要進行軟件重啟。
消息隊列kafka
作為南向接入設備,數采一體機在支持采集的設備數據上行轉發到公有云場景的同時,也存在支持將采集的設備數據轉發到三方數據中臺的場景。消息隊列kafka功能提供了的數采一體連接三方數據中臺kafka_server的相關配置能力,當進行對應連接信息的錄入后,數采一體機能夠實現和三方數據中臺kafka_server的遠程連接和南向工業數據采集后的轉發能力。
工作原理
數采一體機連接三方數據中臺kafka_server進行上行數據轉發的工作原理類似于kafka的標準生產者(producer)的流程,主要包括:
數采一體機作為kafka_client和指定的kafka_server建立連接,對應kafka_server的連接信息來自界面配置,主要包括:broker連接地址、sasl鑒權信息(用戶名/密碼)、cert證書(安全連接)等。
數據一體機作為數據的生產者(producer)向kafka_broker的指定topic轉發數據,當前主要支持設備數據和告警數據的數據轉發,需要在界面指定broker映射的不同topic。
配置說明
對于消息隊列kafka的轉發配置,在數采一體機上提供了可視化界面,對應側邊欄:數據轉發--->kafka轉發。
點擊編輯
kafka轉發的配置信息默認只讀,需要點擊“編輯”按鈕進行編輯操作。
輸入kafka轉發的配置信息
是否開啟:kafka轉發的使能開關,在開關打開后數采一體機開始嘗試和三方數據中臺的kafka_broker進行連接。
broker地址:三方數據中臺的broker地址,支持通過“;”符號連接多個,地址組成包括:ip地址(域名) + port端口號。
設備數據Topic:三方數據中臺作為kafka_broker提供的設備上報屬性數據的topic,需要在kafka_broker側進行規劃和配置。
告警數據Topic:三方數據中臺作為kafka_broker提供的上報告警數據的topic,需要在kafka_broker側進行規劃和配置。
啟用SASL鑒權:連接kafka_broker鑒權開關,在kafka_broker連接需要開啟時打開。
SASL鑒權信息:對應kafka_broker連接時輸入正確的鑒權信息,包括用戶名/密碼。
kafka證書:對應kafka_broker需要證書認證時進行上傳,默認支持一個證書,后面上傳會覆蓋前面上傳的證書。
設備過濾規則:對應kafka轉發的OT數據的過濾規則,參考下文中的過濾規則集說明。
點擊保存,配置生效。
常見問題
Q. kafka_broker多個地址的錄入
本地控制臺支持多個kafka_broker地址的輸入,在kafka_broker在集群模式下需要多地址錄入的場景下,可以在本地控制臺上通過“;”進行不同地址間的隔離。
過濾規則集
考慮作為生產制造過程中產生的OT數據并非都是北向設備需要的,因此需要在數采一體機設備數據上云轉發前實現報文按照一定維度的過濾,以此提升帶寬利用率。數據一體機當前提供了按照設備維度的上報屬性數據的過濾能力,并支持為重復數據設置過濾時間窗,以滿足提高上行數據有效性的訴求。
工作原理
數采一體機的過濾規則主要支持三種類型:
全量同步:
默認不進行過濾,上報所有設備的屬性。
只同步選中:
白名單方式進行過濾,只上報規則中選中設備的屬性。
不同步選中:
黑名單方式進行過濾,只上報在沒有在規則中設備的屬性。
數據一體機的過濾規則集支持創建多個,用戶可以根據需求創建多條不同類型和指定多個設備的過濾規則。但過濾規則的生效需要通過和對應的上云連接進行綁定,為了防止規則間的沖突,一個上云連接只支持綁定一條規則,當前支持的綁定模式包括mqtt(阿里云物聯網平臺)和kafka(三方數據中臺)。
過濾規則除了支持按照設備維度進行屬性過濾外,還支持設備屬性在時間維度上的時間窗過濾,通過時間窗設置:對于在周期時間內(從收到報文開始進行技術)屬性值相同的設備屬性上報認為是重復數據,在上報前進行過濾處理。
配置說明
對于過濾規則集的添加、編輯和刪除,數采一體機提供了可視化界面,對應側邊欄:數據轉發--->過濾規則集
新建規則
通過過濾規則集界面上“新建規則”按鈕創建規則,輸入規則編碼、規則類型、去重間隔(去重時間窗)、選中設備等信息創建過濾規則。其中規則類型分為三種,全量同步規則不需要選設備。
修改/刪除規則
在規則創建后,可以通過過濾規則集界面中選中規則進行編輯和刪除操作,控制臺還提供了批量刪除功能方便刪除的批量操作。
使用規則
在規則創建后,通過在上云鏈路對應界面中進行綁定生效。當前支持mqtt(阿里云物聯網平臺)和kafka(三方數據中臺)兩種上云方式,分別對應數據轉發菜單中“阿里云IoT”和“kafka轉發”配置中的“設備過濾規則”的選項配置。
常見問題
Q. 配置過濾規則集并綁定到kafka轉發后,告警轉發沒有進行過濾生效
過濾規則當前只對設備屬性數據進行過濾,對告警數據不進行過濾,過濾規則對于告警的轉發無效。
Q. 修改綁定到kafka轉發或者阿里云IoT的過濾規則,發現存在設置的時間窗內相同屬性值的設備屬性重復上報
過濾規則支持熱加載,在用戶修改已綁定到上元轉發的規則立即生效。但在規則生效后對已有設備屬性的時間窗信息會重新加載,已有時間窗內的數據會被重置。
Q. 界面配置了多條過濾規則(白名單)方式,但無法進行多個規則綁定到同一條轉發鏈路
數據轉發設置多條過濾規則意味著計算的冗余和性能的下降,當前轉發鏈路只支持綁定一條設備過濾規則,需要將相同維度過濾放到一條過濾規則中。
系統
主備配置
工作原理
資產一體機使用VRRP協議來實現兩臺主機之間的狀態同步、主機選舉;備機上的數采驅動、規則告警、數據轉發服務處于熱備狀態。
配置說明
是否開啟:控制是否啟用主備功能。
本機地址:填寫本機的局域網IP地址,和對端主機處于同一網絡。
對端地址:規則同“本機地址”,填寫互為主備的另一臺網關/服務器。
配置密鑰:同控制臺的賬戶/密碼,用于訪問主/備機服務的。
主備調試:調試開關,關閉后意味著本機禁止參與主備搶占,此時對端會進入主機狀態(mater)。
狀態:當前主備工作狀態,一共4個狀態:主機、備機、異常、禁用。
主備策略:支持兩種策略。
自主協商,兩臺服務器協商隨機產生主機(推薦配置)。
XX 優先,指定一臺服務器 XX 具有更高的優先級,只要 XX 正常,就一定為主。
提示:“XX 優先”模式下,XX發生異常會切換為備機(backup),異常消失后會再切換為主機(master)。
浮動虛擬IP:主備服務器器統一對外提供服務的IP,該IP會跟隨著主機;配置主備功能后,建議后續使用該IP來訪問控制臺,以及MQTT和HTTP openAPI。
常見問題
Q. 兩節點同時為“主機”
檢查現場網絡拓撲,兩節點網絡是否能互通;
檢查防火墻和Selinux;
查看防火墻
sudo systemctl status firewalld.service
關閉防火墻
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
關閉Selinux
vi /etc/sysconfig/selinux ## 修改 SELINUX=disabled
setenforce 0
getenforce
檢查keepalived組件是否沖突;
查看系統keepalived
sudo systemctl status keepalived
關閉系統keepalived
sudo systemctl stop keepalived
sudo systemctl disable keepalived
Q. 某節點顯示為“異?!?/b>
登入備機的控制臺,查看備機的主備運行日志,可以看到異常原因;
Q. 如何通過命令行查詢主備狀態
ssh登錄對應的主機,執行以下命令
curl -v -X POST http://127.XX.XX.XX/api/v1/ha/status/get
正常情況下會返回
備機:{"value":"backup"}
主機:{"value":"master"}
系統監控
一體機自帶系統運行指標監控,對關鍵數據指標進行采集,進行可視化展示,并且可以配置規則,推送告警事件。
操作路徑:系統監控 -> 搜索并輸入"overview" -> 打開系統監控overview畫面
Overview監控大盤
Overview看板展示了系統運行的核心指標,運維工程師需要重點關注Overview看板。
圖表指標說明
圖表名稱 | 指標名稱 | 說明 |
點位數據計算監控 | in | 代表數采驅動上報的原始數采點流量。 |
out | 代表經過bit拆分、json字段拆分后,得到的屬性點流量。 | |
drop | 代表內部隊列丟包情況,非0代表異常。 | |
TSDB代理 | in | 代表內部隊列入口流量,寫請求會先緩存在內部隊列,然后批量寫時序數據庫。 |
in_drop | 代表內部隊列滿后的丟包情況。非0代表異常。 | |
out | 代表內部隊列出口流量。 | |
out_drop | 代表內部隊列出口寫時序數據庫的錯誤流量。非0代表異常。 | |
點位和資產轉換監控 | in | 代表內部隊列入口流量。 |
in_drop | 代表內部隊列滿后的丟包情況。非0代表異常。 | |
out | 代表內部隊列出口流量。 | |
out+mismatch | 代表內部隊列出口流量 + 轉換mismatch的流量。 | |
out_drop | 代表內部隊列出口流量丟包情況。非0代表異常。 | |
mqtt分發監測 | infrom=clientId | 代表某個mqtt clientId在mqtt broker上發送的數據流量。 |
outto=clientId | 代表mqtt broker發給某個clientId的流量。 | |
infrom_client_drop | 代表所有客戶端發給mqtt broker的入口流量丟包情況。非0代表異常。 | |
outto_client_drop | 代表mqtt broker發給client的丟包流量。非0代表異常。 | |
數據流轉延時 | 內部有個模擬驅動會定時發送1個ping包,覆蓋系統整個鏈路,包括數采驅動接入、加工(bit拆分)、存儲、融合、MQTT分發,同時有個mqtt客戶端會訂閱這個ping包,計算系統整體延時,延時=mqtt客戶端接收到數據時的時間戳-數據報文里自帶的時間戳,最終形成該圖表;超時則指指標記為0。指標跌0代表系統異常。 | |
數據存儲健康檢測 | 復用數據流轉延時的ping包,間隔500ms輪詢該ping包是否落庫,輪詢超時則指標跌0。指標跌0代表系統異常。 | |
Netping | 本地其他主機的ping包延遲(默認為127.0.0.1) | |
異常日志 | xxx | xxx模塊的異常日志輸出速率 |
數據流轉延時計算流程,見下圖。
告警
如上圖所示,紅色圖標表示告警產生,綠色圖標表示告警恢復
磁盤
Panel名稱 | 時間線 | 時間線說明 |
磁盤使用率 | device=xxx | xxx磁盤分區的使用率 |
inode使用率 | device=xxx | xxx磁盤分區的使用率 |
文件句柄數 | total | 所有進程打開的文件句柄總數 |
name=xxx | xxx進程打開的文件句柄總數 |
異常日志
可以查看系統各模塊產生異常日志的速率,當模塊異常日志輸出異常時,進入的邊緣一體機后臺/linkedge/run/logger目錄下查看模塊的異常日志。
NetPing
此監控項用于通過ping的方式判斷本機與對端IP的網絡質量。
橫坐標代表時間,縱坐標代表ping的環回延遲
系統默認ping的為本地lo
需要增加對端IP按如下步驟操作,下面添加了x.x.x.x和y.y.y.y兩個ip
cd /linkedge/gateway/build/bin/
./tool_config -s system_metric_netprobe_list '["x.x.x.x","y.y.y.y"]'
sudo killall -9 edge_metric