主题
3.2 常见问题
3.2.1 数量与范围限制速查
| 项目 | 限制 |
|---|---|
| 应用逻辑主循环 | 每个程序 1 个(必须) |
| 主循环扫描周期 | 10~60000 毫秒,默认 200 毫秒 |
| 定时循环 | 最多 3 个,周期最快 1 秒 |
| 显示主循环 | 每个程序 1 个;块面上没有任何参数,屏的刷新固定 1 秒、不可设 |
| 显示页数 | 主页 + 子页合计最多 20 页,每页 4 行 |
| 累计时间块 | 最多 6 个 |
| 定时器时间设置 | 0.1~86400 秒 |
| PI 输出 | 0~100 |
| 寄存器地址 | 按软元件走:D 0~7999(D8000 起是系统区)、DD 与 DF 0~7998(各占两格)、M 0~7679、X / Y / L 0~377(八进制编号)、T 0~511、C 0~255;逐项见 取寄存器 |
| 有状态块(脉冲触发 / 定时器 / 启停 / PI / 累计时间) | 每个实例要有唯一标识,重复时校验会报错 |
超出限制时不用记数字——点「生成 JSON」后右侧「问题」列表会直接给出中文提示(如「定时循环最多 3 个」)。
3.2.2 报错与提示怎么看
- 校验问题(生成 JSON 时):显示在右侧「问题」列表,橙色条目,点击会定位并高亮画布上有问题的方块。
- 运行报错(下发后):显示在编辑器底部日志栏,红色文字带时间戳;报错内容全部是中文,例如:
- 「JSON 格式错误:存在非法字符」——通常是手改 JSON 引入了中文标点或多余逗号,回到画布重新生成
- 「内部错误:数据结构不完整」——方块之间的连线缺失,检查断开的孔位
- 「程序嵌套太深」——条件判断套得太多层,拆成几段平铺的逻辑
- 「通信失败:设备无响应或网络不通」——检查设备是否在线、网络是否可达
- 单轮执行出错只影响那一轮,设备下一轮继续运行,不会死机。
3.2.3 常见排错
最常见的「下发了但没反应」,按下面的条目从上往下排查:
设备详情页没有「逻辑编程」按钮 设备不在支持范围,或上位机工具、设备固件版本过旧 —— 支持的型号与所需固件版本见 1.1 打开逻辑编程编辑器。
块拖不进画布 / 孔位接不上 形态不对就接不上,这时不报错,只是吸不住。每颗块的形态写在 2.0 功能块速查总表 的「形态」列,一共三类:
- 值块(左边有凹孔、右边带输出口,如「取寄存器」「常量」「四则运算」)—— 只能插进别的块凹孔里要值的那个位置,不能串在执行链上。
- 命令块(上下有拼接口,如「赋值」)—— 接进主循环 / 定时循环那块灰色区域里,上下拼接口对齐时松手。
- 容器块 / 分支容器(自带「内放」区域,如「应用逻辑主循环」「定时循环」「条件判断」)—— 它自己也要接进上层循环的灰色区域,再把命令块放入其内部。
下发了程序但寄存器没变化
- 确认设备重启完成(下发成功会自动重启)。
- 用寄存器操作确认输出寄存器确实没变(而不是组态显示问题)。
- 检查条件接的是对的寄存器:输入信号有没有先经过线性变换?X/Y 地址是八进制,画布里填 10 实际是八进制 10(十进制 8)。
- 检查扫描周期是否设得过长(比如填了 60000,一分钟才动一次)。
和梯形图程序互相覆盖数据 逻辑程序和梯形图写同一个寄存器会互相覆盖。约定好:每个寄存器只有一方负责写。
重新下发后定时器 / 启停状态丢了 这是设计行为:重新下发 = 状态复位,与重新上电一致。见 3.1 下发与设备端运行 末尾的「修改与状态复位」。
PI 输出一直在 0 或 100 不动 检查使能是否为真、正比例方向是否选反(制冷选正作用、加热选反作用)、输入是否真的接到了换算后的测量值。
「从设备读」提示找不到程序 设备上还没有下发过逻辑程序。先在画布上生成并下发一次。
3.2.4 能不能做 XXX
| 想做的事 | 现在的做法 |
|---|---|
| 读从站设备(电表 / 传感器)数据参与控制 | 用 DTU 配置式编程 采集绑定到 D 寄存器,再「取通信变量 Dn」(取通信变量) |
| 判断从站掉线 | 「从站通信状态 Dn」块(从站通信状态) |
| 复杂的字符串处理、加密、MQTT 上云等 | 逻辑编程不擅长这些,用 Lua 脚本做,两边可同时运行(Lua 编程) |
| 替换整台 FX 系列 PLC 的梯形图程序 | 梯形图更合适(PLC 编程),逻辑编程与其并存 |