ypc
|
7d68713f4c
|
feat(plc): PLC逻辑配置完整功能实现
前端 plc_config.js:
- NODE_INFO 输入/输出限制修正 (AND/OR ≤10, NOT ≤1, 62P/62D/沿 ≤1, SR/RS ≤2)
- delayMs 独立字段,不再编码到 id 高位
- SR/RS 双引脚标注 (S 黄色/R 红色),各引脚只能接一条线
- Comb id 解析与生成 (<Comb id="N">)
- Gate R/S 属性生成 (S="Comb#N"/"Input#N" 格式)
- 延时门新增/双击编辑自定义 modal
- 新节点自动空位放置
- XML 链级 Inputs 自动输出 (RS/SR 直接 Input 连接)
- 解析补全: 链级 Gate 读 R/S/delayMs,dstPin 修复
- RS/SR R/S 属性→Input#N 链接自动创建
后端 plc.cpp:
- LogicNode 新增 delay_ms, rs_s_src[32], rs_r_src[32]
- LogicLink 新增 dst_pin 字段
- parse_xml_comb: 读 delayMs→delay_ms, R/S→链接+dst_pin
- execute_62p/62d 改用 node->delay_ms
- collect_input_signals 按 dst_pin 填入
- has_comb 路径 R/S 属性→Input 链接创建
配置文件 Reclose_logic.xml 更新为完整示例
|
2026-07-08 13:22:50 +08:00 |
ypc
|
6bdd467998
|
feat(plc): PLC配置文件格式从JSON/TXT迁移到XML
- 将 Reclose_logic 配置文件格式从 JSON/TXT 统一改为 XML
- 适配 plc.cpp 中的 XML 配置解析逻辑
- 更新 plc_config.js 前端 JS 以支持 XML 格式配置
- 更新 packed_fs.c Web 资源打包
- 更新问题处理文档
|
2026-07-07 09:34:16 +08:00 |
ypc
|
e6f4de251f
|
refactor: Reclose_logic.json 完善坐标 + 移除saddr
每个节点(信号/门)均携带 x,y 坐标,信号对象保持 no 标识
|
2026-07-06 17:52:25 +08:00 |
ypc
|
2ed51a5caa
|
refactor: Reclose_logic.json 精简 — 去除 desc/rule 字段
信号对象仅保留 no + saddr,门对象仅保留 type + id + from/gates_in/to
|
2026-07-06 17:32:40 +08:00 |
ypc
|
7b40f4aecf
|
feat: 新增 Reclose_logic.json — 分层可视化配置文件
基于 Reclose_logic.txt 自动生成,将扁平节点/连线格式转换为
直观可读的分层 JSON:
- 顶层: 3 条独立逻辑链 (OR / NOT / 组合逻辑)
- 每链: 输入信号 → 门电路(递归嵌套) → 输出信号
- 门电路: title/type/id/rule/from(直连信号)/gates_in(上游门)/to(输出)
- 附带信号名称、描述 (来自 datacenter_out.xml)
|
2026-07-06 17:07:25 +08:00 |
ypc
|
12dcec0f31
|
feat: PLC逻辑配置页面 + 配置文件去重修复 + 前端WebSocket修复
【PLC逻辑配置页面】(new: plc_config.js, 1947行)
- 三Tab页: 信号列表 / 逻辑图查看器 / 新建配置编辑器
- Canvas渲染: 节点渐变+阴影+左侧色条+引脚圈+贝塞尔连线+发光效果
- 查看器: 使用文件中保存的x/y坐标(与编辑器布局一致),首次命中链路匹配
- 编辑器: 左击选中连线高亮(橙色)+右键/Delete删除,双击节点修改,拖拽布局
- 支持11种逻辑元件: 输入/输出/与门/或门/非门/62p延时/62d延时/上升/下降沿/SR/RS触发器
【配置文件去重修复】
- Reclose_logic.txt: 消除两个AND#0重复ID,修复为AND#0 + AND#3
- generateAndSaveConfig: 保存前自动检测并修正重复 type+id
- initEditor: 加载时消除已有重复ID + 更新editNextGateIdx防止后续冲突
- 保存格式扩展: node支持inPins(第5字段),link支持dstPin(第4字段)
【前端WebSocket修复】
- plc_config.js语法错误(缺少闭合})导致PlcConfigPage未定义
- App.init()在WsClient.connect()之前崩溃显示已断开
【后端】
- ws_method.cpp: curd:add 后立即推送信号列表
- dc_cfg_check.cpp: 数据中心配置检查
- plc.cpp: PLC模块配置路径更新
- myDatacenter.h: 新增接口声明
【文档+样式】
- PLC配置文件解析与生成.md: 模块分析文档
- style.css: PLC配置页面样式(Canvas/表格/图例/Modal)
- datacenter_out.xml: Out信号注册数据
|
2026-07-06 14:56:04 +08:00 |
ypc
|
b176d957df
|
feat: 集成 PLC 就地自动化逻辑模块 + SIGILL 编译修复
## PLC 模块 (libplc)
- 新增 libplc 模块: 解析 Reclose_logic.txt 逻辑图,支持与/或/非/延时/SR等多种节点类型
- PLC_Logic() 配置文件路径改为 func_get_process_self_dir 动态拼接
- app_modules.h 注册 APP_MODULE(PLC, plc, ...)
- system makefile 增加 libplc 子目录
- RTU makefile 链接 -lplc
## SIGILL 编译修复
- linux.mk: ARM 编译加 -mno-outline-atomics -fno-threadsafe-statics,禁用 LSE 原子指令
- RTU makefile: STATIC_FLAGS 去掉 -static-libstdc++,避免工具链预编译 libstdc++ 中的 LSE 指令触发 RK3568 SIGILL
## 配置
- app_config.json 新增 app_plc 条目(默认 enable: false)
- PLC/Reclose_logic.txt 逻辑配置文件占位
|
2026-07-01 15:56:12 +08:00 |