文档:补全 IO(050) 全文与 main-init 核对,记录 IO 索引错位等 4 个新问题
- 050:1~19 有效分支、6/7 缺号、20~24 制丸2 预留已注释、末尾写 LW-310~313 - 发现 IO切换上料(9→158)、IO切换清洗(15→168) 索引与窗口错位;制丸(1→151) 正确 - LW-310~313 与旧文档 X1Y1 的 LW-300~311 重叠 - main-init 未变:127/18/127/18 + RW-61=1
This commit is contained in:
+115
-8
@@ -37,7 +37,7 @@
|
|||||||
| 047 | `温度监控` | P(1s) | 读 16 个 REAL(`HMI_EM02.Temperature_PV`)→ `LW-200` | 已补录(6.2) |
|
| 047 | `温度监控` | P(1s) | 读 16 个 REAL(`HMI_EM02.Temperature_PV`)→ `LW-200` | 已补录(6.2) |
|
||||||
| 048 | `屏蔽通讯异常提示` | P(100ms) | 周期置 ON `LB-11960~11967`(设备 1~8 的 “Device No Response”) | 已补录(6.2) |
|
| 048 | `屏蔽通讯异常提示` | P(100ms) | 周期置 ON `LB-11960~11967`(设备 1~8 的 “Device No Response”) | 已补录(6.2) |
|
||||||
| 049 | `出条温度监控` | P(1s) | 读 10 个 REAL(`HIKMICRO_Temp_R`)→ `LW-240` | 已补录(6.2) |
|
| 049 | `出条温度监控` | P(1s) | 读 10 个 REAL(`HIKMICRO_Temp_R`)→ `LW-240` | 已补录(6.2) |
|
||||||
| 050 | `IO` | P(100ms) | 按 `LW-300` 索引读 `PLC.Tags.Table.Local_*` | ⚠ 已补 1~6 组,7 以后待补 |
|
| 050 | `IO` | P(100ms) | 按 `LW-300` 索引读 `PLC.Tags.Table.Local_*`(1~19) | ✅ 已补全(20~24 注释) |
|
||||||
|
|
||||||
### 6.0.1 与旧文档的差异(已确认)
|
### 6.0.1 与旧文档的差异(已确认)
|
||||||
|
|
||||||
@@ -57,9 +57,9 @@
|
|||||||
| 046(上料参数) | ✅ 已补录,但**窗口 210 与「清洗-点动」重名,存疑** |
|
| 046(上料参数) | ✅ 已补录,但**窗口 210 与「清洗-点动」重名,存疑** |
|
||||||
| 047/049(温度) | ✅ 已补录,但 **float 拷贝长度与注释不符**(见 6.2.1) |
|
| 047/049(温度) | ✅ 已补录,但 **float 拷贝长度与注释不符**(见 6.2.1) |
|
||||||
| 048(屏蔽通讯) | ✅ 已补录:100 ms 周期压 8 个位 |
|
| 048(屏蔽通讯) | ✅ 已补录:100 ms 周期压 8 个位 |
|
||||||
| 050(IO) | ⚠ **只补到第 6 组**,7 以后的分支待补 |
|
| 050(IO) | ✅ 已补全:1~19 有效,20~24 为制丸2 预留(注释) |
|
||||||
| 013(macro_13) | ✅ 空宏,可删 |
|
| 013(macro_13) | ✅ 空宏,可删 |
|
||||||
| 000(main-init) | ⚠ 待核对:窗口扩到 282 后 `LW-70~73` 位图值是否仍为 127/18/127/18 |
|
| 000(main-init) | ✅ 已核对:仍为 `127/18/127/18` + `RW-61=1`,未变;说明 130~282 新页不走 X/Y 导航 |
|
||||||
## 6.1 宏正文(逐行注释)
|
## 6.1 宏正文(逐行注释)
|
||||||
|
|
||||||
> 命名:导航 = `btn-*`、登录 = `main-init`/`btn-login-index`/`logout`、管理员登录 = `admin-open`/`admin-login`/`admin-close`、用户管理 = `user-open` + `usr-*`(你的工程删除类为 `usr-delete*`)、关于窗 = `about-open`/`about-close`、时间 = `open-time`/`set-time`/`close-time`、弹窗 = `close-msg`/`close-nopage`。
|
> 命名:导航 = `btn-*`、登录 = `main-init`/`btn-login-index`/`logout`、管理员登录 = `admin-open`/`admin-login`/`admin-close`、用户管理 = `user-open` + `usr-*`(你的工程删除类为 `usr-delete*`)、关于窗 = `about-open`/`about-close`、时间 = `open-time`/`set-time`/`close-time`、弹窗 = `close-msg`/`close-nopage`。
|
||||||
@@ -1232,7 +1232,9 @@ end macro_command
|
|||||||
```
|
```
|
||||||
> 含义:每 100 ms 把**设备 1~8** 的 "Device No Response" 弹窗全部压回屏蔽。要恢复提示必须改这支宏。周期可放宽到 1 s,没必要 100 ms。
|
> 含义:每 100 ms 把**设备 1~8** 的 "Device No Response" 弹窗全部压回屏蔽。要恢复提示必须改这支宏。周期可放宽到 1 s,没必要 100 ms。
|
||||||
|
|
||||||
**`IO`(ID 050,周期 1×100ms = 100 ms)——正文待补后半段**
|
**`IO`(ID 050,周期 1×100ms = 100 ms)**
|
||||||
|
|
||||||
|
按 `LW-300` 的索引读对应 IO 组到四个字节,并写 `LW-310~313` 供画面调试显示。
|
||||||
|
|
||||||
```
|
```
|
||||||
macro_command main()
|
macro_command main()
|
||||||
@@ -1243,18 +1245,119 @@ macro_command main()
|
|||||||
byteB = 0
|
byteB = 0
|
||||||
byteC = 0
|
byteC = 0
|
||||||
byteD = 0
|
byteD = 0
|
||||||
GetData (bTrigger, "Local HMI", LW, 300, 1) // IO 组索引(由 042/044/045 写入)
|
GetData (bTrigger, "Local HMI", LW, 300, 1) // IO 组索引(042/044/045 写入)
|
||||||
if bTrigger==1 then // 制丸 DI1-2
|
|
||||||
|
if bTrigger==1 then // 制丸 DI01-02 → 窗口 151
|
||||||
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DI01A", 1)
|
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DI01A", 1)
|
||||||
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DI01B", 1)
|
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DI01B", 1)
|
||||||
GetData (byteC, "制丸1", "PLC.Tags.Table.Local_DI02A", 1)
|
GetData (byteC, "制丸1", "PLC.Tags.Table.Local_DI02A", 1)
|
||||||
GetData (byteD, "制丸1", "PLC.Tags.Table.Local_DI02B", 1)
|
GetData (byteD, "制丸1", "PLC.Tags.Table.Local_DI02B", 1)
|
||||||
end if
|
end if
|
||||||
...(2=DI3-4、3=DI5-6、4=DO1-2、5=DO3-4、6=上料 DI1-2 …)
|
if bTrigger==2 then // 制丸 DI03-04 → 152
|
||||||
|
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DI03A", 1)
|
||||||
|
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DI03B", 1)
|
||||||
|
GetData (byteC, "制丸1", "PLC.Tags.Table.Local_DI04A", 1)
|
||||||
|
GetData (byteD, "制丸1", "PLC.Tags.Table.Local_DI04B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==3 then // 制丸 DI05 → 153
|
||||||
|
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DI05A", 1)
|
||||||
|
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DI05B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==4 then // 制丸 DO01-02 → 154
|
||||||
|
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DO01A", 1)
|
||||||
|
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DO01B", 1)
|
||||||
|
GetData (byteC, "制丸1", "PLC.Tags.Table.Local_DO02A", 1)
|
||||||
|
GetData (byteD, "制丸1", "PLC.Tags.Table.Local_DO02B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==5 then // 制丸 DO03-04 → 155
|
||||||
|
GetData (byteA, "制丸1", "PLC.Tags.Table.Local_DO03A", 1)
|
||||||
|
GetData (byteB, "制丸1", "PLC.Tags.Table.Local_DO03B", 1)
|
||||||
|
GetData (byteC, "制丸1", "PLC.Tags.Table.Local_DO04A", 1)
|
||||||
|
GetData (byteD, "制丸1", "PLC.Tags.Table.Local_DO04B", 1)
|
||||||
|
end if
|
||||||
|
// 6、7 未使用(跳过)
|
||||||
|
if bTrigger==8 then // 上料 DI01-02 → 158
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI01A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI01B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DI02A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DI02B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==9 then // 上料 DI03-04 → 159
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI03A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI03B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DI04A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DI04B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==10 then // 上料 DI05-06 → 160
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI05A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI05B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DI06A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DI06B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==11 then // 上料 DI07 + Remote DI21 → 161
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI07A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI07B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Remote_DI21A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Remote_DI21B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==12 then // 上料 DO01-02 → 162
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DO01A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DO01B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DO02A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DO02B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==13 then // 上料 DO03-04 → 163
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DO03A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DO03B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DO04A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DO04B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==14 then // 上料 DO05-06 → 164
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DO05A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DO05B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DO06A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DO06B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==15 then // 清洗 DI11-12 → 166
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI11A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI11B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DI12A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DI12B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==16 then // 清洗 DI13-14 → 167
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DI13A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DI13B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DI14A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DI14B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==17 then // 清洗 DO11-12 → 168
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DO11A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DO11B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DO12A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DO12B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==18 then // 清洗 DO13-14 → 169
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Local_DO13A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Local_DO13B", 1)
|
||||||
|
GetData (byteC, "上料清洗", "PLC.Tags.Table.Local_DO14A", 1)
|
||||||
|
GetData (byteD, "上料清洗", "PLC.Tags.Table.Local_DO14B", 1)
|
||||||
|
end if
|
||||||
|
if bTrigger==19 then // Remote DO21
|
||||||
|
GetData (byteA, "上料清洗", "PLC.Tags.Table.Remote_DO21A", 1)
|
||||||
|
GetData (byteB, "上料清洗", "PLC.Tags.Table.Remote_DO21B", 1)
|
||||||
|
end if
|
||||||
|
// 20~24 为制丸2 预留,现被注释掉
|
||||||
|
|
||||||
|
// ===== 调试监控输出:画面加 LW-310~313 数值元件查看 =====
|
||||||
|
SetData(byteA, "Local HMI", LW, 310, 1)
|
||||||
|
SetData(byteB, "Local HMI", LW, 311, 1)
|
||||||
|
SetData(byteC, "Local HMI", LW, 312, 1)
|
||||||
|
SetData(byteD, "Local HMI", LW, 313, 1)
|
||||||
end macro_command
|
end macro_command
|
||||||
```
|
```
|
||||||
> 已看到 1~6 组;**6 之后的分支待补**。注意它读的是 `PLC.Tags.Table.Local_*` 这一族符号(不是 `HMI_EM02` DB)。
|
|
||||||
|
|
||||||
|
> `bTrigger` 6、7 **缺号未用**;`20~24` 是「制丸2」的预留分支,已注释。
|
||||||
|
> 索引 ↔ 窗口对照:1~5 → 151~155;8~14 → 158~164;15~18 → 166~169;19 → Remote DO21。
|
||||||
### 6.2.1 补录时发现的问题
|
### 6.2.1 补录时发现的问题
|
||||||
|
|
||||||
| # | 问题 | 影响 |
|
| # | 问题 | 影响 |
|
||||||
@@ -1264,3 +1367,7 @@ end macro_command
|
|||||||
| 3 | 047/049 的 float 拷贝长度与注释不符 | 显示可能只更新一半点位 |
|
| 3 | 047/049 的 float 拷贝长度与注释不符 | 显示可能只更新一半点位 |
|
||||||
| 4 | 048 周期 100 ms 写 8 个位 | 无谓负载,建议 1 s |
|
| 4 | 048 周期 100 ms 写 8 个位 | 无谓负载,建议 1 s |
|
||||||
| 5 | 050 周期 100 ms 读 4×N 个符号 | IO 页不看时也在刷,建议改成按页面触发 |
|
| 5 | 050 周期 100 ms 读 4×N 个符号 | IO 页不看时也在刷,建议改成按页面触发 |
|
||||||
|
| 6 | **`IO切换上料` 索引 9 却跳窗口 158**(158 是 DI1-2,索引 9 读 DI3-4) | 该页显示的是上一组 IO,值对不上标题 |
|
||||||
|
| 7 | **`IO切换清洗` 索引 15 却跳窗口 168**(15=DI11-12,168=DO11-12) | 同上,错 2 组 |
|
||||||
|
| 8 | `050` 末尾写 `LW-310~313` 调试值,与旧文档 X1Y1 的 `LW-300~311` 节点状态重叠 | `LW-300` 区已被 IO 占用,X1Y1 地址需重新确认 |
|
||||||
|
| 9 | `bTrigger` 6、7 缺号;20~24 是制丸2 预留(已注释) | 索引不连续,日后加页容易再次错位 |
|
||||||
|
|||||||
Reference in New Issue
Block a user