✨ feat(*): 重构PCB放行流程并接入双扫码校验
- 将流程改为 OMRON FINS + TCP 双扫码 + SFTP 文件校验 - 新增文件校验与扫码结果汇总实现,补充对应单测 - 同步更新流程设计文档、配置和系统设置页面文案
This commit is contained in:
149
docs/正式的工作流程
Normal file
149
docs/正式的工作流程
Normal file
@@ -0,0 +1,149 @@
|
||||
# OMRON 目检放行软件通信流程(FINS + TCP扫码枪)
|
||||
|
||||
## 1. 系统通信结构
|
||||
|
||||
```text
|
||||
PLC <--FINS--> C# 上位机 <--TCP--> 扫码枪1
|
||||
<--TCP--> 扫码枪2
|
||||
```
|
||||
|
||||
* PLC 与上位机:
|
||||
|
||||
* 通信协议:OMRON FINS
|
||||
* 上位机读取 PLC 点位
|
||||
* 上位机写入 PLC 点位
|
||||
|
||||
* 上位机与扫码枪:
|
||||
|
||||
* 通信协议:TCP Socket
|
||||
* 发送触发命令:`T`
|
||||
* 接收扫码结果字符串
|
||||
|
||||
---
|
||||
|
||||
# 2. PLC 通信点位定义
|
||||
|
||||
## 2.1 PLC -> 上位机(上位机读取)
|
||||
|
||||
| 地址 | 名称 | 类型 | 说明 |
|
||||
| ----- | ------------- | ---- | --------------- |
|
||||
| D1001 | PcbArrived | Bool | PCB已到位,请求上位机处理 |
|
||||
| D1002 | PlcReset | Bool | PLC请求上位机清状态/复位 |
|
||||
| D1003 | PlcAckRelease | Bool | PLC已接收到放行信号(可选) |
|
||||
|
||||
预留:
|
||||
|
||||
| 地址范围 | 说明 |
|
||||
| ------------- | ---------------- |
|
||||
| D1004 ~ D1010 | PLC -> 上位机扩展信号预留 |
|
||||
|
||||
---
|
||||
|
||||
## 2.2 上位机 -> PLC(上位机写入)
|
||||
|
||||
| 地址 | 名称 | 类型 | 说明 |
|
||||
| ----- | ------------- | ---- | ------------ |
|
||||
| D1051 | PcBusy | Bool | 上位机正在处理当前PCB |
|
||||
| D1052 | ReleasePermit | Bool | 放行脉冲信号 |
|
||||
|
||||
---
|
||||
|
||||
## 2.3 结果寄存器(上位机写入)
|
||||
|
||||
| 地址 | 名称 | 类型 | 说明 |
|
||||
| ----- | ---------- | --- | -------- |
|
||||
| D1100 | ResultCode | Int | 本次最终结果代码 |
|
||||
|
||||
### ResultCode 定义
|
||||
|
||||
| 数值 | 含义 |
|
||||
| -- | ---- |
|
||||
| 0 | Idle |
|
||||
| 1 | 处理中 |
|
||||
| 10 | 正常放行 |
|
||||
| 20 | NG放行 |
|
||||
| 90 | 系统故障 |
|
||||
|
||||
---
|
||||
|
||||
# 3. TCP 扫码枪通信
|
||||
|
||||
## 3.1 扫码枪1
|
||||
|
||||
### 发送
|
||||
|
||||
```text
|
||||
T
|
||||
```
|
||||
|
||||
### 接收
|
||||
|
||||
```text
|
||||
二维码/条码字符串
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3.2 扫码枪2
|
||||
|
||||
### 发送
|
||||
|
||||
```text
|
||||
T
|
||||
```
|
||||
|
||||
### 接收
|
||||
|
||||
```text
|
||||
二维码/条码字符串
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 4. 工序流程图
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
|
||||
A[PLC写入 D1001=PcbArrived=1]
|
||||
--> B[C#上位机通过FINS读取到位信号]
|
||||
|
||||
B --> C[上位机写入 D1051=PcBusy=1]
|
||||
B --> D[上位机写入 D1100=1 处理中]
|
||||
|
||||
D --> E[TCP发送 T 到扫码枪1]
|
||||
D --> F[TCP发送 T 到扫码枪2]
|
||||
|
||||
E --> G[扫码枪1返回扫码结果]
|
||||
F --> H[扫码枪2返回扫码结果]
|
||||
|
||||
G --> I[上位机汇总扫码结果]
|
||||
H --> I
|
||||
|
||||
I --> J{扫码结果判定}
|
||||
|
||||
J -->|成功| K[写入 D1100=10 正常放行]
|
||||
J -->|失败| L[写入 D1100=20 NG放行]
|
||||
J -->|异常| M[写入 D1100=90 系统故障]
|
||||
|
||||
K --> N[写入 D1052=ReleasePermit=1]
|
||||
L --> N
|
||||
|
||||
N --> O[PLC收到放行信号]
|
||||
|
||||
O --> P{是否启用确认信号}
|
||||
|
||||
P -->|启用| Q[PLC写入 D1003=PlcAckRelease=1]
|
||||
P -->|不启用| R[进入复位流程]
|
||||
|
||||
Q --> R
|
||||
|
||||
R --> S[PLC写入 D1002=PlcReset=1]
|
||||
|
||||
S --> T[上位机执行复位]
|
||||
|
||||
T --> U[写入 D1051=0]
|
||||
U --> V[写入 D1052=0]
|
||||
V --> W[写入 D1100=0 Idle]
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user