文档:记录 net-apply 工程实际版——设备4/5 的 IP 与重连位疑似写反

- 上料 IP 写入 LW-9605(设备5)+LB-10071,制丸 IP 写入 LW-9600(设备4)+LB-10070,与注释/5.8 规划相反
- 按 lwaddr.csv 列出系统定义,给出 A(代码写反)/B(设备分配写反) 两种可能与 30 秒判断法
- 指出缺 IP=0 保护、DELAY(1000) 卡 1 秒
- 10.1 补一条线索:设备连到对方 PLC 时读到不存在 DB 也会整片不显示
This commit is contained in:
2026-10-27 11:44:48 +08:00
parent 6ed0324047
commit 200027fd02
2 changed files with 33 additions and 0 deletions
+30
View File
@@ -1081,6 +1081,36 @@ end macro_command // 宏结束
> **IP 为 0 不覆盖(10-27 修订)**:`RW-40~51` 首段为 0(新屏未填、PC 模拟器空值)时跳过写入与重连。否则开机/在线模拟会把设备 IP 刷成 `0.0.0.0` 并主动重连 → 通讯必失败,绑 PLC 地址的元件整片不显示(详见 `开发主文件.md` 10.1)。
#### ⚠ 工程实际版(10-27 摘录)与上文的差异 —— 设备 4/5 疑似写反
工程里 `net-apply` 的实际代码是:
```
GetData(v[0], RW, 40, 4) → SetData(v[0], LW, 9605, 4) + SetData(on, LB, 10071, 1) // 注释写「上料 PLC(设备4)」
GetData(v[0], RW, 44/48, 4)→ SetData(v[0], LW, 9600, 4) + SetData(on, LB, 10070, 1) // 注释写「制丸 PLC(设备5)」
```
按 `lwaddr.csv` 的系统定义:
| 系统寄存器 | 含义 |
| --- | --- |
| `LW-9600`~`9603` | **设备 4** 的 IP0~IP3 |
| `LW-9605`~`9608` | **设备 5** 的 IP0~IP3 |
| `LB-10070` | 在线改 IP 后**重连设备 4** |
| `LB-10071` | 在线改 IP 后**重连设备 5** |
| `LB-10100` / `LB-10400` | 与**设备 4** / **设备 5** 的通讯状态 |
即:**上料 IP 被写进了设备 5,制丸 IP 被写进了设备 4**,与注释和本文件 5.8 的规划正好相反。
两种可能,必须按现场确认(30 秒即可):
| 可能 | 判断方法 | 结论 |
| --- | --- | --- |
| **A. 代码写反了** | EB「系统参数 → 设备列表」里设备 4 = 上料 PLC、设备 5 = 制丸 PLC(与文档一致) | 每次开机把两台 PLC 的 IP **互换**并重连;S7 能连上但读到的是**另一台 PLC 的 DB**,读到不存在的块就整片不显示 —— 与 201 的症状高度吻合 |
| **B. 设备分配写反了** | 设备列表里设备 4 实际是制丸、设备 5 是上料 | 宏是对的;要改的是 `地址表.md` 5.8、`开发主文件.md` 9.x 装机流程和 100 号窗 `LB-10100`/`LB-10400` 的标签 |
**另两处与上文不同**:① 没有 `v[0]==0` 的 IP 保护(新屏/模拟会把 IP 写成 `0.0.0.0`);② 末尾 `DELAY(1000)` 会让开机界面卡 1 秒。
**`line-ab-switch`**(13 号窗「A/B 切换」按钮;仅本机角色=1 生效)
```
macro_command main() // 宏入口:点 A/B 线切换按钮