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
- 備份
- 確認 同步控制點
- 啟動備份機制
- 確認 超過編輯時間
- 資料無繼續改變
- 備份