---
# System prepended metadata

title: BS H成型機規格擴充需求(V2)
tags: [BS]

---

BS H成型機規格擴充需求(V2)
===

###### tags: `BS`

[TOC]

### 需求
- 1.範圍 H成形機22台 PROCESS管理
    - 1.1 成型機 H1-H7 Hitachi PLC
    - 1.2 成型機 H8-H22 Mitsubishi PLC


- 2.需求說明
    - .44台PLC PROCESS管理

    - 2.1 日立PLC成型機 7 台 H01-H07 (1ST&2ND)

        - a.Hitachi PLC 14台
    
        - b.PROCESS.01~30 (DATA No.60個) 如附件

    - 2.2 三菱 PLC 成形機 H08-H22 (1ST&2ND)

        - a.Mitsubishi PLC 30台 >>H18~H22 預留

        - b.PROCESS.01~29 (DATA No.200個) 如附件

- 3.功能需求
    - 3.1 每台成型機PROCESS 1ST&2ND 電腦可以各建立100個
    
    - 3.2 PROCESS 可以指定寫入PLC 指定位置 分別管理
    
    - 3.3 每個PROCESS(1)可以管理(2)匯出(3)時間紀錄(4)設有權限管理
    
    - 3.4 電腦裡的PROCESS項目名稱可以修改複製貼上

---
### 軟體功能

#### 自動功能
- 自動同步 Process 至 PLC 
    - HMI 修改 PLC Process ID
    - APP 自動同步剩餘 Process Data 至 PLC
- 自動備份 Process 回 APP
    - 監測 (控制點/修改時間)
    - 自動讀取 Process 並進行備份
#### 手動功能
- 管理 Process
    - 匯入
        - 從外部檔案輸入資料
    - 匯出
        - 將系統的 Process 資料匯出
    - 編輯
        - 檢視 Process 資料，並編輯
    - 發行
        - Process 的版本控制

[Gitmind](https://gitmind.com/app/doc/d0ab9845063f25c60b7fd9647cb3dfab)

- ## Auto
    - 監控
        - 監控 PLC 暫存器資料
            - 同步控制點
            - Process 改變時間
            - Process ID
    - 寫入
        - 自動同步 Process Data 至 PLC
            - 讀取 Process ID 更改
            - 查詢 Process 資料庫
            - 寫入資料到 PLC
    - 備份
        - 透過同步控制點
            - 觸發備份
        - 透過監控時間
            - 自動備份

- ## Manual
    - 檔案
        - 編輯
        - 存檔
        - 匯入
        - 匯出
    - 監控
        - 機台備用 Process 檢視
            - 讀取成型機備用 Process
        - 讀取 PLC Process 備份

            - csv
            - 選定檔案匯入
    - 寫入
        - 寫入 Process 至 PLC
        - 指定
            - 機台
            - ProcessId
            - 寫入位置
    - 歷史查詢
        - 發行紀錄
        - 寫入紀錄

---

### 系統架構圖

```graphviz
digraph hierarchy {

                nodesep=1.0 // increases the separation between nodes
                
                node [color=blue,shape=box] //All nodes will this shape and colour
                edge [color=black, dir=both] //All the lines look like this

Application->{XMLServer Database ProcessFiles}
XMLServer->{SyncDevice}
SyncDevice->{H01 H22}

               
}

```

---

- ### Process 自動循序圖
    - #### 自動同步 Process
    ```sequence
    Note Right of Application: 自動模式
    Application->PLC: 讀取 Process ID
    PLC->Application: 回傳 Process ID
    Note left of PLC: 判斷 Process ID 改變
    Application->Database: 讀取 Process
    Note left of Database: 讀取新版 Process
    Database->Application: 回傳 Process 資料
    Application->PLC: 寫入 Process 資料
    Note left of PLC: 更新該 Process 資料
    ```
    
    
    
    - #### 自動備份 Process
        - 自動備份控制點
        ```sequence
        Note Right of Application: 自動模式
        Application->PLC: 讀取控制點 on
        PLC->Application: 回傳控制點狀態
        Note right of Application: 控制點 on
        Application->PLC: 讀取 Process
        Application->Database: 寫入 Process 資料
        Note left of Database: 更新該 Process 資料
        ```
        
        - 計算修改時間
        ```sequence
        Note Right of Application: 自動模式
        Application->PLC: 讀取 Process ID
        PLC->Application: 回傳 Process ID
        Note left of PLC: 判斷 Process ID 改變
        Note right of Application: 開始倒數 1hr
        Note right of Application: 時間到
        Note right of Application: 判斷資料無再改變
        Application->PLC: 讀取 Process
        Application->暫存 Process: 寫入 Process 資料
        Note left of 暫存 Process: 更新該 Process 資料
        ```


---

- ### Process 手動循序圖


    - #### 編輯 Process 並發行

    ```sequence
    Application->Database: 讀取 Process
    Note left of Database: Read Files
    Database->Application: Editing Contents
    Note left of 暫存Process: 編輯 Process 檔案
    Application->暫存Process: Save
    Note left of 暫存Process: 儲存 Process 檔案
    Application->Database: Release
    Note left of Database: 產生新版 Process
    ```

    ----
    
    - #### 匯入 Process 並發行

    ```sequence
    Application->檔案: 讀取檔案
    Note right of Application: Read Files
    Application->暫存Process: Editing Contents
    Note left of 暫存Process: 編輯檔案
    Application->暫存Process: Save
    Note left of 暫存Process: 儲存檔案
    Application->Database: Release
    Note left of Database: 發行版本 Process
    ```

    ----

    - #### Process 匯出
    ```sequence
    Application->Database: 查詢機台 Process
    Note left of Database: Read Process
    Database->Application: 回傳 Process
    Note left of Database: 最新的 Process
    Application->ProcessFile: Export Process
    Note left of ProcessFile: 匯出 Process 檔案
    ```

    ---


    - #### Process 寫入 & 驗證

    ```sequence
    Application->XMLServer: 讀取現行 Process
    Note left of XMLServer: Read Files 並備份
    Application->XMLServer: 確認機台狀態
    Note left of XMLServer: 手動或停機
    Application->XMLServer: 寫入 Process 資料
    Note left of XMLServer: 等待 10 秒
    SyncDevice->XMLServer: SyncData
    Note right of XMLServer : 產生新版 Process
    SyncDevice->H01_H22: SyncData
    Note right of SyncDevice : 將資料同步到產線
    SyncDevice->H01_H22: SyncData
    Note right of SyncDevice : 讀取寫入的資料
    SyncDevice->XMLServer: SyncData
    Note right of XMLServer : 更新產線 Process File
    XMLServer->Application: 讀取 Process 資料
    Note left of XMLServer: 判斷是否寫入正確
    ```

---

#### Process 發行歷史查詢
```sequence
Application->Database: Read Release History Log
Note left of Database: 讀取發行歷史
Database->Application: Return Release History Log
Note left of Database: 回傳發行歷史
Application->Application: Process Display
Note right of Application: Process 內容


```

----

#### 機台下載歷史查詢
```sequence
Application->Database: Read Download History Log
Note left of Database: 讀取下載歷史
Database->Application: Return Download History Log
Note left of Database: 回傳下載歷史
Application->Application: 點選P rocess
Note right of Application: 顯示 Process 內容


```


---

#### Process Rollback


```flow
st=>start: 開始
e=>end: 結束
op5=>operation: 備份機台 Process
op6=>operation: Alarm
op=>operation: 寫入新 Process
op2=>operation: 等待 10 秒
op3=>operation: 讀取機台 Process
op4=>operation: 寫回備份 Process
op7=>operation: 顯示寫入成功
cond=>condition: 寫入是否正確?
cond2=>condition: Alarm & Rollback?

st->op5->op->op2->op3->cond
cond(yes)->op7->e
cond(no)->cond2
cond2(yes)->op4->e
cond2(no)->e

```


---




- 手動
    - 管理 Process
        - 透過軟體
            - 編輯
            - 存檔
            - 匯出
    - 匯入
        - 由檔案匯入
    - 寫入
        - 指定
            - 機台
            - ProcessId
            - 寫入位置
    - 備份
        - 讀取指定機台 Process 資料
- 自動
    - 監控
        - ProcessId
            - 確認是否有改變
        - 監控 Process 資料改變的時間
        - 同步控制點
    - 寫入
        - 確認 ProcessId 改變
            - 查詢 Process Data
                - 寫入 Process Data
    - 備份
        - 確認 同步控制點
            - 啟動備份機制
        - 確認 超過編輯時間
            - 資料無繼續改變
                - 備份


