---
# System prepended metadata

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

---

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

###### 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項目名稱可以修改複製貼上

---

# 以下為舊資料
---

### 程式功能
- 帳號管理
    - CRUD 人員
- 機台狀態
    - 通訊狀態
    - 機台狀態
    - 現行 Process 顯示
- Process 管理
    - PC 統一 Process 管理
        - 新增
        - 修改
        - 刪除
        - 查詢
        - Release 版本
            - 發行後進資料庫
        - 寫入紀錄
            - 機台編號
            - Process 版本
        - PLC 種類管體
            - Process 選擇用
    - PLC Process 管理
        - Read
            - XMLServer 取得
    - Process 發行管理
        - Process 編號
            - 機台種類 000
            - 1st&2nd 0
            - Process 編號 000
            - version 00
        - 寫入前差異比較
            - 檔案比對
            - 資料庫比對
        - 歷史變更差異比較
            - 檔案內容比對
        - 寫入確認
- 同步程式
    - 同步 Process 區塊
        - 20000 Register
    - 寫入 Process 區塊
        - 20000 Register Check
- 資料庫管理
    - 人員
    - Process Release 備份
    - Process 
- 資料庫查詢
    - Process Release Log
        - Process Id
        - Machine Id
        - Process Version
        - User
        - Release Date
    - Process Download Log
        - Process Id
        - Machine Id
        - Process Version
        - User
        - Download Date

- Process 檔案管理

---

### Process Encoding
- Process 編號
    - 機台種類 000
    - 1st&2nd 0
    - Process 編號 000
    - version 00

---

### 系統架構圖

```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->{SyncPLC SyncDevice}
SyncDevice->{H01 H07}
SyncPLC->{H08 H22}
               
}

```

---

### 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 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->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
Application->XMLServer: 讀取 Process 資料
Note left of XMLServer: 判斷是否寫入正確
```

---

#### 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->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

```
