跳到主要内容

LAD 调试

Darra IDE 提供多种梯形图调试手段,包括在线监视、强制写入、断点调试和趋势分析。调试时 LAD 编辑器的图形化特性使能流状态一目了然。

在线监视

连接运行时

在调试前,IDE 必须连接到 PLC 运行时 (Runtime):

  1. 确保 PLC Service 正在运行
  2. 在 IDE 工具栏点击"在线"按钮(或按 F5
  3. 状态栏变为绿色,显示 [在线]

导通着色

连接在线后,LAD 编辑器自动进入监视模式,每个元件根据实时变量值着色:

  在线状态:
bSensor1 bSensor2 bOutput
──┤[ ]├───────┤[ ]├────────────( )──
绿色 绿色 绿色导通

bSensor1 bSensor2 bOutput
──┤[ ]├───────┤[/]├────────────( )──
绿色 灰色断开 灰色断开
颜色状态含义
绿色实心导通触点条件满足 / 线圈通电
灰色空心断开触点条件不满足 / 线圈未通电
黄色背景强制变量值被 Force 覆盖(非实际值)
红色错误变量缺失 / 通讯中断 / 编译错误

值悬浮显示

将鼠标悬停在任意元件上,显示当前值:

  鼠标悬停:
bSensor1 ──┤[ ]├──

┌────┴────┐
│ bSensor1 │
│ TRUE │
│ I0.0 │
└─────────┘

定时器/计数器监视

定时器和计数器在在线模式下实时显示内部状态:

  ┌─ TON ───────┐
│ IN Q │── FALSE (未完成)
│ PT ET │
│ T#5s T#3.2s
└─────────────┘
↑ PT = 5s, ET = 3.2s, 正在计时中

强制写入 (Force)

强制功能允许工程师在在线状态下覆盖变量的实际值,用于测试特定逻辑路径。

强制单个变量

  1. 右键元件 → 强制 → 强制值
  2. 在对话框中输入要强制为 TRUE 或 FALSE
  3. 变量值立即变为强制值(黄色高亮)
  强制前:                   强制后:
bSensor1 bOutput bSensor1 bOutput
──┤[ ]├──────(/)── ──┤[ ]├──────(/)──
灰色断开 黄色强制(TRUE)
bOutput = FALSE

强制对话框

右键梯级空白区域 → 强制 → 打开强制对话框:

┌─────────────────────────────────────┐
│ 强制编辑 [X] │
├─────────────────────────────────────┤
│ 变量名 当前值 强制值 状态 │
│ ───────────────────────────────── │
│ bSensor1 FALSE TRUE 强制 │
│ bSensor2 TRUE FALSE 强制 │
│ bMotorRun FALSE -- 正常 │
│ rTemperature 45.2 80.0 强制 │
│ │
│ [+ 添加] [清除全部] │
│ │
│ [应用] [关闭] │
└─────────────────────────────────────┘

强制安全须知

强制使用规范
  • 强制仅用于测试和调试,生产环境禁止使用
  • 强制值会覆盖物理输入/输出,可能导致意外动作
  • 切换离线/在线状态时,所有强制值自动清除
  • 强制前确认不会造成设备危险
  • 强制变量在状态栏显示 [强制激活] 提示
  • 建议在强制对话框中添加注释说明强制理由

清除强制

方式说明
强制对话框 → 清除全部清除所有强制变量
右键单个变量 → 清除强制清除单个变量强制
断开在线连接自动清除所有强制
重新下载项目自动清除所有强制

断点调试

LAD 编辑器支持在梯级级别设置断点,用于调试复杂的逻辑问题。

设置断点

  1. 点击梯级号左侧的灰色区域,出现红色圆点
  2. 或右键梯级号 → 断点 → 插入断点
  3. 断点激活后,该梯级执行前暂停
  ●  ┌────────────────────────────────┐
│ │ bStart bStop bMotorRun │
│ │──┤ ├──────┤/├─────(S)── │
│ └────────────────────────────────┘
↑ 红色圆点 = 断点已设置

断点状态

图标状态说明
(红色实心)已启用执行到该梯级时暂停
(灰色空心)已禁用断点存在但被跳过
(黄色箭头)已命中当前停在该断点位置

调试控制

断点命中时,IDE 显示调试工具栏:

按钮快捷键功能
▶ 继续F5继续执行到下一个断点
⏭ 单步F10执行当前梯级,停在下一梯级
⏭ 步入F11进入功能块内部调试
⏭ 步出Shift+F11退出当前功能块
■ 停止Shift+F5停止调试

变量查看

断点命中时,将鼠标悬停在变量上查看当前值,或在"监视"面板中查看变量列表。

断点条件

右键断点 → 条件,设置条件断点:

断点条件: bMotorRun = TRUE AND rCurrent > 10.0
仅在条件满足时中断,减少不必要的暂停。

趋势图

趋势图功能记录变量随时间的变化曲线,用于分析时序问题。

添加趋势变量

  1. 在在线模式下,选中要监视的变量
  2. 右键 → 添加到趋势图
  3. 或打开趋势面板,点击 + 添加变量

趋势图界面

┌─────────────────────────────────────────┐
│ 趋势图 [设置] │
├─────────────────────────────────────────┤
│ rTemperature │
│ 85 ┤╱╲ ╱╲ │
│ 80 ┤ ╲ ╱ ╲ ╱╲ │
│ 75 ┤ ╲ ╱ ╲ ╱ ╲ │
│ 70 ┤ ╲╱ ╲╱ ╲╲ │
│ 65 ┤ ╲ │
│ └───┬───┬───┬───┬───┬───┬─── │
│ 14:00 14:01 14:02 14:03 │
│ │
│ bMotorRun ──────────── (ON/OFF) │
│ rTemperature ─────────── (范围: 0-100) │
│ bAlarm ────────────── (ON/OFF) │
├─────────────────────────────────────────┤
│ 暂停 │ 清除 │ 导出 CSV │ 设置 │
└─────────────────────────────────────────┘

趋势图设置

设置项说明
采样周期100ms / 500ms / 1s / 5s
时间窗口30s / 1min / 5min / 15min / 1h
触发模式正常 / 上升沿触发 / 下降沿触发
Y 轴范围自动 / 手动设置
显示网格是/否

导出趋势数据

点击"导出 CSV"按钮,将趋势数据保存为 CSV 文件,可用 Excel 或其它分析工具打开。

调试工作流

典型调试流程

  1. 连接在线:按 F5 连接到 PLC Runtime
  2. 观察着色:查看 LAD 导通着色,定位断点位置
  3. 悬停取值:鼠标悬停查看变量实时值
  4. 强制测试:用强制功能模拟输入条件
  5. 设置断点:在可疑梯级设置断点单步执行
  6. 趋势分析:添加关键变量到趋势图观察变化
  7. 修改代码:发现问题后离线修改 → 重新下载 → 再次验证

常见调试场景

场景方法
线圈不通顺着梯级看哪个触点是灰色
定时器不计时监视 IN 脚是否为 TRUE
计数器不准检查 CU 是否收到上升沿
输出意外保持检查是否有 S 线圈未对应 R
变量值不对强制覆盖测试,排除输入源问题
逻辑顺序错误设置断点逐级执行,观察执行顺序
时序问题趋势图同时查看多个变量

诊断日志

LAD 调试过程中的诊断日志输出到 %AppData%/DarraPLC/logs/ 目录:

日志文件内容
ide_lad_*.logLAD 编辑器操作日志
ide_online_*.log在线通讯日志
runtime_debug_*.logPLC 运行时调试日志

相关文档