iaiops — 工業資料擷取 + 智慧故障排除
一個受治理的 MCP 伺服器,公開 66 個工具,涵蓋 8 種工業協定,並包含跨協定智慧層。每個工具都透過 iaiops 治理框架(稽核 / 預算 / 風險等級 / 復原)執行。唯讀優先。 6 個寫入工具受到變更管理(MOC)限制:risk=HIGH,預設 dry_run=True,CLI 需要雙重確認,並會擷取變更前的值以支援復原。未經授權,請勿對生產控制系統進行寫入操作。 需透過預覽 / 模擬或模擬器驗證 — 並針對實際設備進行確認。從 protocols_supported 開始查看已設定的內容,並使用 <protocol> doctor 測試連結。
何時路由至此
任務提及:OPC-UA / opc.tcp、Modbus、Siemens S7 / S7-1200/1500、Mitsubishi / MELSEC、MTConnect / CNC 工具機監控、MQTT / Sparkplug B / 統一命名空間、Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP、EtherCAT / CoE / SDO / PDO / SOEM、OEE / 停機時間、OT 資產盤點、「無資料 / 標籤過時」診斷、警報洪水 / ISA-18.2。
各協定工具
OPC-UA(唯讀)— opc.tcp 端點
opcua_server_info— 狀態、建置資訊、命名空間陣列opcua_browse— 從節點 ID 瀏覽節點樹(有限深度)opcua_read_node— 值 + 資料類型 + 來源時間戳記 + 狀態碼opcua_read_many— 批次讀取節點 ID(有限數量)opcua_subscribe_sample— 有限取樣,然後返回(永不迴圈)opcua_read_alarms— 盡力呈現作用中警報/條件opcua_read_history— 歷史存取(HDA):在 [開始,結束] 時間範圍內的原始歷史資料health_summary— 根據警告/警報閾值分類節點 IDanomaly_scan— 對節點取樣,標記統計離群值
Modbus-TCP(此處唯讀)
modbus_read_holding(FC03)、modbus_read_input(FC04)、modbus_read_coils(FC01)、modbus_read_discrete(FC02)— 附解碼提示modbus_health_summary— 根據閾值分類暫存器
Siemens S7comm(pyS7;S7-300/400/1200/1500)
s7_cpu_info— CPU 身分 + 運行/停止s7_read_area— 從 S7 記憶體區域讀取 N 個指定類型的項目s7_read_db— 從資料區塊讀取 N 個項目s7_read_many— 批次讀取原始 pyS7 位址字串s7_write_db— [寫入][高風險][MOC] 寫入一個值到 DB(預設關閉)
Mitsubishi MC(pymcprotocol 3E;Q/L/iQ)
mc_cpu_status— MELSEC CPU 類型/代碼mc_read_words/mc_read_bits— 從頭裝置批次讀取字/位元裝置mc_read_many— 在一個請求中隨機讀取分散的字 + 雙字mc_write_words— [寫入][高風險][MOC] 寫入字(預設關閉)
MTConnect(唯讀;所有 CNC 工具機)
mtconnect_probe— 裝置模型(裝置 → 元件 → 資料項目)mtconnect_current— 每個資料項目的最新值(機器快照)mtconnect_sample— 有限的近期觀測值串流mtconnect_assets— 刀具、夾具、程式mtconnect_oee_snapshot— 可用性、執行、模式、程式(OEE 輸入)
MQTT / Sparkplug B / UNS(paho-mqtt;完整 Tahu protobuf 解碼)
mqtt_read_topic— 純 MQTT 有限訊息收集sparkplug_decode_payload— 將一個原始 Sparkplug B 酬載解碼為度量sparkplug_subscribe_sample— 有限取樣,含完整解碼 + 生日/死亡/序號sparkplug_node_list— 邊緣節點/裝置 + 線上狀態 + 主機 STATEuns_browse— 在篩選條件下瀏覽即時主題樹(UNS)(有限)mqtt_publish— [寫入][高風險][MOC] 發佈/命令到主題(預設關閉)
Allen-Bradley EtherNet/IP(pycomm3;ControlLogix/CompactLogix)
eip_controller_info— 控制器身分(證明 CIP 連結)eip_list_tags— 探索控制器標籤列表(名稱/類型/結構)eip_read_tag— 讀取一個標籤(或陣列元素)及其類型eip_read_many— 批次讀取(自動多封包)eip_write_tag— [寫入][高風險][MOC] 寫入一個標籤值(預設關閉)
EtherCAT(pysoem/SOEM;Linux + root/CAP_NET_RAW + 專用網卡 + 真實從站)
選擇性額外安裝 pip install iaiops[ethercat];無軟體模擬器(僅限硬體,macOS 不支援)。若缺少 pysoem/權限/網卡/匯流排,工具會降級為顯示教學錯誤。
ethercat_master_state— 主站/工作計數器狀態 + 預期與實際從站數量ethercat_slaves— 匯流排掃描:列舉從站(ID/供應商/產品/修訂版/位址/AL 狀態)ethercat_slave_info— 單一從站:SM/FMMU 設定 + 物件字典摘要ethercat_read_sdo— CoE SDO 上傳(非循環信箱讀取 OD 條目)ethercat_read_pdo— 單一從站輸入程序資料映像的循環快照ethercat_write_sdo— [寫入][高風險][MOC] CoE SDO 下載(預設關閉)ethercat_set_state— [寫入][高風險][MOC] AL 狀態轉換(可啟動/停止運動;預設關閉)
跨協定智慧
診斷 — skills 傘狀分類:故障排除
diagnose_dataflow— 在端點的可達躍點中定位「無資料」中斷點historian_health— 在時間序列上進行壞標籤/平線/間隙偵測alarm_bad_actors— ISA-18.2 警報洪水分析(頻率 vs <6/12/30,帕累托違規者,顫動,持續狀態)於事件清單上tag_health— 根據壞品質/平線/範圍/異常對標籤違規者進行排名
分析
oee_compute— OEE = 可用性 × 效能 × 品質downtime_events— 偵測運行→停止轉換,分類停機原因oee_multidim— 依機器 × 零件 × 班別彙總 OEEasset_inventory— 主動指紋識別端點(供應商/型號/韌體/協定)至資產登錄檔(主動發現,非被動 SPAN/分流)monitor_changes— 在一個有限時間範圍內僅擷取測點的數值變更
元 / 路線圖
protocols_supported— 能力圖(協定、狀態、工具、連線參數)- 路線圖:EtherCAT EoE/FoE/SoE 信箱協定;EtherNet/IP PLC-5 / SLC(PCCC)、Micro800;被動資產發現;OPC-UA 憑證安全性。
設定
iaiops init(互動式精靈,每個協定皆有提示)會寫入 ~/.iaiops/config.yaml;憑證會存入加密儲存庫(~/.iaiops/secrets.enc,主密碼透過 IAIOPS_MASTER_PASSWORD 環境變數設定)。執行 iaiops doctor 以探測每個設定的端點。完整的各協定參考、連線參數、模擬器測試指南及 MCP JSON 範例皆在 README 中。
安全
唯讀優先。6 個寫入工具(s7_write_db、mc_write_words、mqtt_publish、eip_write_tag、ethercat_write_sdo、ethercat_set_state)預設為 dry_run=True,需要 CLI 雙重確認,並會從擷取的變更前值/狀態記錄復原描述。EtherCAT 狀態變更可能啟動或停止機器運動。未經授權,請勿將其指向生產控制系統。沒有工具會回傳機密。