LAD 编辑器
Darra IDE 的梯形图编辑器提供完整的图形化编辑能力,支持从元件拖放到梯级编排的全程可视化操作。
编辑器界面布局
┌─────────────────────────────────────────────────────┐
│ 工具箱 编辑区 属性面板 │
│ ┌───────┐ ┌─────────────────────────────┐ ┌──────┐ │
│ │触点 │ │ 梯级 1 │ │变量 │ │
│ │ ├── │ │ ┌─┤ ├──┤ ├──( )──┐ │ │ 名称 │ │
│ │ ├/├ │ │ └────────────────┘ │ │ 类型 │ │
│ │线圈 │ │ 梯级 2 │ │ 注释 │ │
│ │ ( ) │ │ ┌─┤ ├──┤ TON ─┤ ├──( )┐ │ │ │ │
│ │ (S) │ │ └──────────────────────┘ │ │ │ │
│ │定时器 │ │ 梯级 3 │ │ │ │
│ │ TON │ │ ┌─┤ ├──┬──┤ ├──(S)┐ │ │ │ │
│ │ TOF │ │ │ │ │ │ │ │ │
│ │计数器 │ │ │ └──┤ ├──(R)│ │ │ │ │
│ │ CTU │ │ └────────────────┘ │ │ │ │
│ │ CTD │ │ │ │ │ │
│ │比较 │ │ [状态栏: 编译通过 | 在线] │ │ │ │
│ └───────┘ └─────────────────────────────┘ └──────┘ │
└─────────────────────────────────────────────────────┘
三个主要区域
| 区域 | 功能 | 说明 |
|---|---|---|
| 工具箱(左侧) | 元件列表 | 触点、线圈、定时器、计数器等,拖入编辑区 |
| 编辑区(中央) | 梯级编辑 | 图形化编排梯级,支持缩放和平移 |
| 属性面板(右侧) | 参数配置 | 选中元件后显示并编辑属性 |
工具箱分组
工具箱按西门子规则固定分组顺序:
基础元件
├── 常开触点
├── 常闭触点
├── 标准线圈
├── 置位线圈
├── 复位线圈
├── 取反线圈
├── 上升沿检测
├── 下降沿检测
定时器
├── TON (接通延时)
├── TOF (断开延时)
├── TP (脉冲)
计数器
├── CTU (递增)
├── CTD (递减)
├── CTUD (双向)
比较器
├── EQ / NE / GT / GE / LT / LE
数学运算
├── ADD / SUB / MUL / DIV / MOD
├── ABS / SQRT / SQR / NEG
移动与转换
├── MOVE
├── 类型转换 (INT_TO_REAL 等)
跳转
├── JMP / LBL / RET
功能块
├── 项目内 FB/FC 列表
├── 库 FB 列表
添加与删除元件
添加元件
- 从工具箱拖放:从左侧工具箱拖拽元件到梯级的指定位置
- 右键菜单插入:在梯级上右键 → 插入元件 → 选择类型
- 快捷键:选中位置后按快捷键添加(见下方快捷键表)
步骤:
1. 在编辑区点击梯级中希望插入元件的连线位置
(出现蓝色高亮插入点)
2. 双击工具箱中的元件,或拖拽到高亮位置
3. 元件自动嵌入梯级并完成连线
删除元件
- 选中元件(单击),按
Delete键 - 右键元件 → 删除
- 删除后前后元件自动连线
连线操作
自动连线
- 元件拖入梯级后,编辑器自动完成前后连线
- 拖动元件到新位置,连线自动重绘
手动连线
- 将鼠标移到元件端口,出现连线光标
- 按住鼠标左键拖出连线
- 在目标端口释放完成连线
┌─ 元件 A ─┐ ┌─ 元件 B ─┐
──┤ ├──────┤ ├──
└──────────┘ └──────────┘
↑ 鼠标从端口拖出 ↑ 释放到端口
连线删除
- 选中连线(单击连线中部)→
Delete - 右键连线 → 删除
分支与并联
插入并联分支
- 选中需要分叉的元件或连线
- 点击工具栏的"分支"按钮,或右键 → 插入分支
- 分支自动分为上下两路
插入前: 插入后:
bCond1 bOut bCond1 bOut
──┤ ├───────( )── ──┤ ├──┬────────( )──
│
└──┤ ├── bCond2
嵌套分支
支持多级嵌套,最大深度由编辑器自动管理(通常不超过 8 层):
bEnable bKey bSafetyOK bRun
──┤ ├────┬──┤ ├──────────────────┤ ├──────────────( )──
│
│ bOverride bAdmin
└──┤ ├───────┤ ├──
删除分支
- 选中分支点(并联交汇点)
- 右键 → 删除分支
- 分支合并为单路
插入行与列
插入行(梯级)
| 操作 | 说明 |
|---|---|
点击梯级号区域的 + | 在当前梯级下方插入新梯级 |
| 右键梯级号 → 在上方插入 | 在当前梯级上方插入空梯级 |
| 右键梯级号 → 在下方插入 | 在当前梯级下方插入空梯级 |
插入列(元件位置)
| 操作 | 说明 |
|---|---|
| 右键元件 → 向左插入 | 在选中元件左侧插入空位 |
| 右键元件 → 向右插入 | 在选中元件右侧插入空位 |
快捷键 Ctrl+I | 在光标位置插入空位 |
删除行/列
- 删除梯级:右键梯级号 → 删除梯级
- 删除空列:选中空位 →
Delete,自动合并
撤销与重做
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 撤销 | Ctrl+Z | 回退上一步编辑操作 |
| 重做 | Ctrl+Y 或 Ctrl+Shift+Z | 恢复被撤销的操作 |
- 支持多级撤销(默认 50 步)
- 撤销历史在保存项目后仍然保留
- 切换在线/离线状态时清除撤销历史
快捷键参考
编辑快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+Z | 撤销 |
Ctrl+Y | 重做 |
Ctrl+C | 复制选中元件 |
Ctrl+V | 粘贴 |
Ctrl+X | 剪切 |
Delete | 删除选中元件/连线 |
Ctrl+A | 全选当前梯级 |
Ctrl+I | 插入空列 |
Ctrl+D | 复制梯级(整级复制) |
F2 | 重命名选中变量 |
Enter | 编辑选中元件属性 |
导航快捷键
| 快捷键 | 功能 |
|---|---|
↑ / ↓ | 上/下一个梯级 |
← / → | 梯级内左/右移动焦点 |
Tab | 下一个元件 |
Shift+Tab | 上一个元件 |
Home | 跳转到第一个梯级 |
End | 跳转到最后一个梯级 |
PageUp / PageDown | 上/翻一页 |
Ctrl+↑ / Ctrl+↓ | 梯级上移/下移 |
Ctrl+G | 跳转到指定梯级号 |
+ / - | 缩放编辑区 |
视图快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+0 | 重置缩放为 100% |
Ctrl+Wheel | 缩放编辑区 |
Space+拖拽 | 平移编辑区(手形工具) |
Ctrl+Shift+L | 切换 LAD/SCL 视图 |
Ctrl+Shift+F | 搜索元件或变量 |
梯级注释
每个梯级可以添加注释:
- 右键梯级号 → 编辑注释
- 在弹出框中输入注释文本(支持中文)
- 注释显示在梯级上方,灰色斜体
// 急停回路 — 任何急停按钮断开即停主继电器
bES1 bES2 bES3 bMainRelay
──┤/├──────┤/├──────┤/├────────────────( )──
// 风机启动 — 手动或自动模式均可启动
bManualFan bFanRun
──┤ ├──────────────────────( )──
bAutoFan
──┤ ├──
变量绑定
双击元件打开变量绑定对话框:
- 直接输入:在元件上直接键入变量名
- 从项目树拖放:从左侧项目树的变量列表拖拽到元件
- 下拉选择:双击元件,从变量下拉列表中选择
- 新建变量:输入不存在的变量名 → 自动创建新变量
变量绑定提示
- 编辑器自动提示已存在的变量名(智能补全)
- 变量类型不匹配时显示红色波浪线警告
- 未绑定的变量显示为
???标记
编译与错误提示
- 编辑器实时检查语法错误,梯级左侧显示错误标记
- 编译错误在输出面板列出,双击错误跳转到对应元件
- 常见编译错误:
- 变量未声明 → 红色标记
- 类型不匹配 → 黄色警告
- 线圈短接 → 编译报错
- 分支未闭合 → 语法错误
右键菜单
| 菜单项 | 功能 |
|---|---|
| 编辑 | 打开属性编辑对话框 |
| 删除 | 删除选中元件 |
| 复制 | 复制选中元件 |
| 粘贴 | 粘贴到光标位置 |
| 插入分支 | 在选中点插入并联分支 |
| 插入空列 | 右侧插入空位 |
| 插入梯级(上方) | 上方插入新梯级 |
| 插入梯级(下方) | 下方插入新梯级 |
| 切换类型 | 切换触点类型(常开↔常闭) |
| 切换线圈类型 | 切换线圈类型(标准/S/R) |
| 编辑注释 | 添加/编辑梯级注释 |
| 转换为 SCL | 将当前梯级转换为 SCL 代码片段 |