Skip to content

Fisherfu/Indus4.0

Repository files navigation

🏭 Agentic MES - 智慧製造執行系統數據分析平台

Python Streamlit License

一個基於 Streamlit 的製造執行系統(MES)數據分析平台,支援多廠區製程監控、KPIV 分析、重工率追蹤和互動式視覺化。

Project Banner


📋 目錄


🎯 專案簡介

Agentic MES 是一個現代化的製造數據分析平台,旨在幫助製造業實現數據驅動的製程管理與品質控制。透過直觀的 Web 介面,使用者可以:

  • 🏭 多廠區管理 - 支援不同廠區的獨立數據監控
  • 📊 即時數據分析 - KPIV(關鍵製程輸入變數)即時追蹤
  • 🔧 品質管理 - 重工率、良率、雙胞率分析
  • 📈 視覺化報表 - 互動式圖表與趨勢分析
  • 🤖 智慧洞察 - 相關係數分析與異常值檢測

🏗️ 系統架構

graph TB
    subgraph "使用者介面層"
        A[Portal 入口網站] --> B[Factory A 儀表板]
        A --> C[Factory B 儀表板]
        A --> D[Factory C 儀表板]
    end
    
    subgraph "應用邏輯層"
        B --> E[Data Fetcher 資料擷取模組]
        C --> E
        D --> E
        E --> F[數據預處理]
        F --> G[特徵工程]
    end
    
    subgraph "數據層"
        E --> H[(SQL Server<br/>MES Database)]
        E --> I[Config<br/>配置檔案]
    end
    
    subgraph "監控與日誌"
        B -.-> J[Monitor<br/>效能監控]
        C -.-> J
        D -.-> J
        A -.-> K[User Tracking<br/>使用者追蹤]
    end
    
    style A fill:#FF6B6B
    style E fill:#4ECDC4
    style H fill:#95E1D3
    style J fill:#F7DC6F
Loading

資料流向說明

  1. 使用者選擇 - 在入口網站選擇廠區與產品線
  2. Session 管理 - Streamlit Session State 儲存使用者選擇
  3. 數據查詢 - Data Fetcher 根據選擇動態生成 SQL 查詢
  4. 資料處理 - 自動清理、轉換、特徵工程
  5. 視覺化呈現 - Plotly 互動式圖表展示

✨ 功能特色

1. 🚪 入口網站 (Portal)

  • 廠區與產品線選擇
  • 使用者操作追蹤(可選)
  • Session State 管理

2. 📊 KPIV 分析儀表板

  • 數據概覽 - 描述統計與基本資訊
  • 電流趨勢 - 時間序列分析與箱形圖
  • 關鍵 KPIV - pH值、溫度、流量、轉速監控
  • 相關係數 - 變數間關聯性熱力圖
  • 自訂分析 - 2D/3D 散點圖與趨勢線

3. 🔧 重工率分析

  • 每日重工率趨勢
  • 雙胞率分析
  • 機台/料號交叉篩選
  • 工單級別追蹤

4. 📈 進階功能

  • 智慧數值校正(自動檢測異常範圍)
  • 時間聚合(1分鐘~4小時彈性調整)
  • 多維度篩選(機台、料號、工單、重工狀態)
  • 動態機台配置

🛠️ 技術棧

類別 技術
前端框架 Streamlit 1.28+
數據處理 Pandas 2.0+, NumPy 1.24+
視覺化 Plotly 5.17+
資料庫 SQL Server (ODBC Driver 17)
語言 Python 3.8+
配置管理 python-dotenv

🚀 快速開始

前置需求

  • Python 3.8 或更高版本
  • SQL Server(或相容資料庫)
  • ODBC Driver 17 for SQL Server

安裝步驟

  1. Clone 專案

    git clone https://github.com/yourusername/Agentic_MES.git
    cd Agentic_MES
  2. 建立虛擬環境

    python -m venv venv
    source venv/bin/activate  # Windows: venv\Scripts\activate
  3. 安裝相依套件

    pip install -r requirements.txt
  4. 配置環境變數

    # 複製範例檔案
    cp .env.example .env
    cp config.py.example config.py
    cp monitor.py.example monitor.py
    
    # 編輯 .env 填入您的資料庫連線資訊
    nano .env
  5. 調整配置檔案

    • 編輯 config.py,根據您的機台和產品線進行配置
    • 確認 MACHINE_CONFIGS 中的參數符合資料庫欄位
  6. 執行應用程式

    streamlit run portal.py
  7. 瀏覽器開啟

    • 預設位址:http://localhost:8501

⚙️ 配置說明

環境變數 (.env)

# 資料庫連線
DB_SERVER=your_database_server
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

# 功能開關
ENABLE_USER_TRACKING=false  # 是否啟用使用者追蹤

機台配置 (config.py)

MACHINE_CONFIGS = {
    'Machine_A': {
        'product': 'Product_1',  # 產品線
        'cols': [                # KPIV 參數列表
            'Sn_pH', 'Cu_pH', 'Ni_pH',
            'Temperature_Tank1', ...
        ],
        'current_groups': {      # 電流群組
            'Sn槽電流': ['Current_Sn_1', 'Current_Sn_2'],
            ...
        }
    }
}

廠區配置 (portal.py)

factories = {
    "Factory_A": ["Product_1", "Product_2"],
    "Factory_B": ["Product_3", "Product_4"],
    ...
}

📖 使用指南

基本流程

  1. 選擇廠區與產品線

    • 在 Portal 頁面點擊對應的產品線按鈕
  2. 進入儀表板

    • 點擊左側導航列對應的廠區頁面
  3. 設定查詢參數

    • 選擇時間範圍
    • 選擇時間聚合顆粒度(1分鐘~4小時)
    • 選擇目標機台
  4. 執行查詢

    • 點擊「執行查詢 (KPIV)」按鈕
    • 系統會自動從資料庫獲取數據並進行預處理
  5. 數據分析

    • 切換不同 Tab 查看各類分析
    • 使用篩選器進行深入分析

進階功能

自訂變數分析(3D 模式)

  1. 選擇 Tab: "自訂變數分析"
  2. 勾選「啟用 3D 模式」
  3. 選擇 X、Y、Z 軸變數
  4. 選擇顏色依據(時間漸層/其他變數)
  5. 可旋轉 3D 圖表進行探索

重工率篩選

  1. 選擇 Tab: "重工/雙胞率分析"
  2. 點擊「載入/更新分析數據」
  3. 使用多選框篩選:
    • 機台別名
    • 料號類別
    • 工單編號
  4. 查看每日趨勢與箱形圖

📁 專案結構

Agentic_MES/
├── portal.py                 # 入口網站主程式
├── data_fetcher.py           # 資料擷取模組
├── config.py.example         # 配置檔案範本
├── monitor.py.example        # 效能監控模組範本
├── .env.example              # 環境變數範本
├── .gitignore                # Git 忽略規則
├── requirements.txt          # Python 相依套件
├── README.md                 # 專案說明文件
├── ARCHITECTURE.md           # 架構詳細說明
└── pages/                    # Streamlit 多頁面應用
    ├── factory_A.py          # Factory A 儀表板
    └── factory_B.py          # Factory B 儀表板

📜 授權

本專案採用 MIT 授權 - 詳見 LICENSE 檔案


📞 聯絡方式

如有任何問題或建議,歡迎透過以下方式聯繫:


🙏 致謝

感謝所有為本專案做出貢獻的開發者!

  • Streamlit 團隊提供優秀的框架
  • Plotly 團隊提供強大的視覺化工具
  • 所有開源社群的支持

Made with ❤️ for Smart Manufacturing

⭐ 如果這個專案對您有幫助,請給個 Star!

About

A PoC for Indus4.0 Real-time(time-series) Data Analytics and Prediction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors