主题
1.2 第一个逻辑程序
这一节用内置示例「温度控制(通风扇)」完整走一遍:打开示例 → 看懂程序 → 下发到设备 → 验证效果。全程不需要写一行代码。
1.2.1 载入示例
在设备详情页点 「逻辑编程」 打开编辑器。
点工具栏 「加载示例…」,选择 「温度控制(通风扇)」。画布上会出现一个拼好的程序:
- 一颗 「应用逻辑主循环」 方块(每 200 毫秒执行一轮)
- 里面一个 「如果…否则」 判断:
- 如果 D100(温度)大于 30 → 把 D200 赋值为 1(开风扇)
- 否则 把 D200 赋值为「D100 < 20」的比较结果(低于 20 度才关风扇)
想换成自己的地址:点方块上的「D」「100」等字段,直接改成实际寄存器(例如温度接在 D0、风扇接在 Y0,就改成 D0 和 Y0)。
三种内置示例
| 示例 | 逻辑 | 适合 |
|---|---|---|
| 温度控制(通风扇) | D100 > 30 开风扇 D200;< 20 关 | 风机盘管、机柜散热 |
| 电机启停控制 | M0 启动按钮 且 M1 无故障 → D300 运行;M1 故障 → D301 报警 | 电机启停 + 故障报警 |
| 液位控制(水泵) | D400 < 30 开泵 D500;> 80 关泵(带回差防抖) | 水箱补水 / 排水 |
1.2.2 生成并下发
点工具栏 「生成 JSON」。右侧面板会列出校验结果——有问题的条目点一下就能定位到画布上出问题的方块,改好再点一次。
点 「下发设备」,弹出的确认框会告诉您:程序只写入设备上的逻辑程序文件,不会改动梯形图和 main.lua 用户脚本;写入成功后设备会自动重启,让程序立即生效。
确认后等待提示「已写入设备…设备重启中」即下发成功。底部日志栏有红色文字时表示失败,按提示修改后重试。
1.2.3 验证效果
设备重启完成后,程序就一直在设备里自动运行了。验证方法(以温度控制为例):
- 给温度对应的寄存器一个值:在上位机的寄存器操作里把 D100 写成 35(模拟温度超过 30 度)。
- 等一个扫描周期(示例是 200 毫秒),读 D200,应该变成 1(风扇开)。
- 再把 D100 写成 25(在 20~30 之间的回差区间),读 D200 —— 应该保持 1 不变(回差防止风扇在临界点反复启停)。
- 把 D100 写成 15(低于 20 度),读 D200 应该变成 0(风扇关)。
三条都符合,程序就在正常工作了。接下来可以:
1.2.4 动手练:自己搭一个 2 秒周期闪烁灯
学完内置示例,下面从零搭建一个最简单但完整的程序:让输出 Y0 每 2 秒翻转一次(1 秒亮、1 秒灭),即一个闪烁灯。本练习会用到三种最常用的块:赋值、比较、条件判断。
目标
- 扫描周期:200 毫秒(主循环默认值)
- 输出:Y0(八进制地址 0)
- 效果:Y0 每 2 秒翻转一次(1 秒亮、1 秒灭)
逻辑原理
用一个寄存器 D100 做计数器:
- 每扫描一轮,D100 加 1(200 毫秒一轮,10 轮 = 2 秒)
- 当 D100 ≥ 5 时,Y0 输出 1(后 1 秒亮);否则 Y0 = 0(前 1 秒灭)
- 当 D100 ≥ 10 时,把 D100 归零,重新开始计数
这样就形成了 2 秒一个周期的方波。
搭建步骤
打开逻辑编程编辑器(设备详情页 → 逻辑编程)。画布上会自动有一个「应用逻辑主循环」块(每 200 毫秒扫描一轮)。如果没有,从左侧「程序」分类拖一个出来。
拖第一个「赋值」块(程序分类),配置:
- 左侧寄存器选 D,地址填 100
- 右侧接一个「算术」块(计算分类),运算符选 +(加)
- 算术块的 A 端接「取变量」块(数据分类),选 D、地址 100
- 算术块的 B 端接「数字常量」块(数据分类),值填 1
这一条的意思是:
D100 = D100 + 1(每轮加 1)。拖第二个「赋值」块,配置:
- 左侧寄存器选 Y,地址填 0
- 右侧接一个「比较」块(逻辑分类),运算符选 ≥(大于等于)
- 比较块的 A 端接「取变量」块,选 D、地址 100
- 比较块的 B 端接「数字常量」块,值填 5
这一条的意思是:
Y0 = (D100 ≥ 5)。拖一个「如果…否则」块(程序分类),配置:
- 条件端接一个「比较」块,运算符选 ≥,A 端接取变量 D100,B 端接常量 10
- 在「则」里面拖一个「赋值」块:左侧 D100,右侧接常量 0
这一条的意思是:如果 D100 ≥ 10,就把 D100 归零。
把这三个语句块(两个赋值 + 一个如果)按顺序拖进「应用逻辑主循环」的内部,从上到下排列。
搭好后画布应该是这样的:

生成并下发
点工具栏「生成 JSON」。右侧面板显示「校验通过」,并列出程序内容(3 行命令:两个 assign、一个 if)。

点「下发设备」,确认后等待「已写入设备…设备重启中」。

验证效果
设备重启后,程序就在设备里自动运行了。验证方法:
- 在上位机的「寄存器操作」里,连续读 Y0(Y 区,地址 0,位模式)。
- 每隔约 1 秒读一次,应该看到 Y0 在 0 和 1 之间交替变化:
0 → 1 → 0 → 1…… - 同时读 D100,应该看到它在 0~9 之间递增,到 10 就归零。
如果 Y0 稳定翻转、D100 正常计数,程序就跑通了。
改改看
- 想让闪烁更快:把主循环的扫描周期改小(如 100 毫秒),或把比较阈值从 5 改成 2(400 毫秒亮、400 毫秒灭)。
- 想控制其他输出:把第二个赋值块的 Y0 改成 Y1、Y2……
- 想做呼吸灯(渐变):需要用模拟量输出(PWM),这是进阶内容,可以先掌握这个基础版本。
学完这个练习,您已经掌握了逻辑编程最核心的三件事:用寄存器做状态、用比较做判断、用条件做分支。接下来可以继续看 2.3 逻辑类功能块(定时器、沿触发)和 2.4 计算类功能块(线性变换、限值)。