From 200027fd0263e1a7d15a0c37826a85a5370e81e3 Mon Sep 17 00:00:00 2001 From: liuyu65 Date: Tue, 27 Oct 2026 11:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9A=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=20net-apply=20=E5=B7=A5=E7=A8=8B=E5=AE=9E=E9=99=85=E7=89=88?= =?UTF-8?q?=E2=80=94=E2=80=94=E8=AE=BE=E5=A4=874/5=20=E7=9A=84=20IP=20?= =?UTF-8?q?=E4=B8=8E=E9=87=8D=E8=BF=9E=E4=BD=8D=E7=96=91=E4=BC=BC=E5=86=99?= =?UTF-8?q?=E5=8F=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 上料 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 也会整片不显示 --- 设计文档/宏指令.md | 30 ++++++++++++++++++++++++++++++ 设计文档/开发主文件.md | 3 +++ 2 files changed, 33 insertions(+) diff --git a/设计文档/宏指令.md b/设计文档/宏指令.md index d46ed47..769d260 100644 --- a/设计文档/宏指令.md +++ b/设计文档/宏指令.md @@ -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 线切换按钮 diff --git a/设计文档/开发主文件.md b/设计文档/开发主文件.md index 5844dbf..6c70fa0 100644 --- a/设计文档/开发主文件.md +++ b/设计文档/开发主文件.md @@ -464,6 +464,9 @@ XD 画板:`A_start`、`B_PID`、`C_运行1~3`、`D_点动1/2`、`E_配方1~3` > > 现场真屏断通讯时这些元件同样不显示,属正常行为——先查通讯,不要改画面。但**必须补一条显式提示**(见下),否则操作员看到整片空白会误以为程序坏了或按钮丢了。 +**新增线索(10-27)**:工程里 `net-apply` 的实际代码把**上料 IP 写进 `LW-9605`(设备5)**、**制丸 IP 写进 `LW-9600`(设备4)**,与注释和 5.8 的规划相反(系统定义见 `lwaddr.csv`:`LW-9600`=设备4、`LW-9605`=设备5、`LB-10070`/`LB-10071` 分别重连设备4/5)。 +若设备列表里设备4确实是上料 PLC,则两台设备会**连到对方的 PLC**——S7 能连上,但读到对方不存在的 DB 时,元件同样**整片不显示**,与 201 的现象吻合。判断方法与两种修法见 `宏指令.md` 的 `net-apply` 段。 + **通讯中断时的界面提示(待做)** 当前 `LB-11963`/`LB-11964` 把系统 "Device No Response" 弹窗关掉了,通讯一断就是"静默空白"。建议在 100 号公共窗加常驻状态:读 `LB-10100`/`LB-10400`(或 `LW-9403`/`LW-9404`),断线时在页面顶部显示红条「PLC 通讯中断,按钮不可用」,或把右上角网络图标改为红/灰。