跳到主要内容

代码编辑器

中央编辑区支持多标签页,根据打开的节点类型自动选择对应编辑器:

节点使用的编辑器
SCL 程序块结构化控制语言编辑器(关键字高亮、智能补全)
LAD 程序块梯形图编辑器(拖拽触点/线圈)
CFC 程序块连续功能图编辑器(拖拽框/针脚连线)
数据块表格编辑器
HMI 页面HMI 设计器(拖拽控件)
监控表监控表格

截图: SCL 代码编辑器

多标签页

  • 打开多个文件:双击多个节点,每个打开为一个标签
  • 切换标签:点标签头 / Ctrl+Tab
  • 关闭标签:点标签 × / Ctrl+W
  • 分屏:拖动标签头到编辑区边缘,实现左右/上下分屏

常用快捷键

操作快捷键
保存当前Ctrl+S
保存全部Ctrl+Shift+S
搜索Ctrl+F
替换Ctrl+H
全局搜索Ctrl+Shift+F
撤销 / 重做Ctrl+Z / Ctrl+Y
跳到变量定义F12
查找所有引用Shift+F12
注释切换Ctrl+/
代码格式化Ctrl+K → Ctrl+D

智能补全

  • 输入变量名前几个字母时,自动弹出候选
  • 输入 . 后自动显示成员变量/方法
  • 输入函数名 + ( 自动显示参数提示
  • Ctrl+空格 手动呼出补全

代码保护

对于敏感程序块,可通过右键 → 设置代码保护,设置密码后其他人无法查看源码(仅能调用)。

语法高亮

SCL 编辑器按类别着色, 默认配色和 VS Code Dark+ 接近:

类别示例颜色
关键字IF / FOR / VAR / END_IF蓝色粗体
内置类型BOOL / INT / REAL / DT绿色
数字100 / 3.14 / 16#FF橙色
字符串'Hello' / "World"红色
注释(* ... *) / // ...灰色斜体
地址%MW100 / %IX0.0紫色
函数调用TON(...) / MC_MoveAbsolute(...)黄色
用户变量MyVar默认色

深色主题、浅色主题、蓝色主题各有一套配色, 设置 → 外观 → 编辑器颜色 可以自定义每一类的颜色。

自动补全

IDE 在输入时自动弹出候选:

触发时机候选内容
输入 3 个字符同名变量、函数、类型
输入 .结构体成员、FB 实例成员
输入 (函数参数提示
输入 %地址补全 (Q/I/M + 宽度)
Ctrl+空格手动呼出, 列出全部候选

候选列表右侧显示文档工具提示, 包含:

  • 完整签名 (返回值 / 参数 / 参数类型)
  • 注释 (来自变量表或程序块头注释)
  • 出处 (当前项目 / 引用库 / 标准库)
  • 快速示例代码片段

TabEnter 接受候选, Esc 取消, 方向键选择。

代码折叠

大块代码可以折叠起来, 减少视觉噪音:

折叠类型触发
VAR ... END_VAR 声明段自动识别
IF ... END_IF自动识别
FOR / WHILE 循环自动识别
CASE 分支自动识别
注释块多行注释合并
自定义 #region(*#region 名称*) ... (*#endregion*) 手工划分

左侧行号栏出现 - / + 按钮, 点击折叠/展开。Ctrl+K → Ctrl+0 全部折叠, Ctrl+K → Ctrl+J 全部展开。

书签

操作快捷键
切换当前行书签Ctrl+K → Ctrl+K
下一书签Ctrl+K → Ctrl+N
上一书签Ctrl+K → Ctrl+P
清除所有书签Ctrl+K → Ctrl+L

书签列表在"书签"面板 (视图 → 面板 → 书签) 里集中查看, 双击跳转。书签会随项目一起保存。

多光标编辑

与现代编辑器一致:

  • Alt + 点击: 在点击位置添加一个光标
  • Ctrl + Alt + ↑/↓: 在上下相邻行添加光标
  • Ctrl + D: 选中光标处的词, 继续按 Ctrl+D 添加下一个相同词为新的光标
  • Shift + Alt + 矩形拖拽: 矩形块选择, 在矩形每一行末尾放一个光标

适合对列对齐的变量名/地址做批量修改。

搜索与替换

当前文件

  • Ctrl+F: 打开查找条, 输入文本, Enter 跳下一个, Shift+Enter 跳上一个
  • Ctrl+H: 切换到替换模式
  • 勾选: 区分大小写 / 全字匹配 / 正则表达式

全局搜索

  • Ctrl+Shift+F: 打开全局搜索面板
  • 支持过滤: 按文件类型 (SCL / LAD / XML), 按项目/库, 按节点类型
  • 搜索结果按文件分组, 双击跳转, 右键 → 全部替换

地址搜索

输入 %MW100 这样的 IEC 地址, 能同时:

  • 在变量表中查到该地址对应的符号
  • 在所有程序中列出使用该地址的位置
  • 高亮冲突 (如果多个符号映射到同一地址)

跳转导航

操作快捷键目标
跳到定义F12变量/函数/类型的声明处
查找所有引用Shift+F12所有用到该符号的位置
查看实现Ctrl+F12FB 或 Interface 的实现
回退上一位置Alt+←最近一次跳转起点
前进Alt+→与上一条配对
转到行Ctrl+G输入行号
快速打开Ctrl+P按名称模糊打开程序块
符号跳转Ctrl+T按名称跳到类型/函数/FB

重构

  • 重命名: F2 重命名变量 / 函数 / 类型, 自动更新所有引用
  • 提取方法: 选中代码段 → 右键 → 提取为 FC/FB
  • 内联变量: 对只使用一次的临时变量, 右键 → 内联展开
  • 整理命名空间: 自动排序 VAR 段, 合并重复声明

批量替换

场景: 批量把 MW100 改为 MW200, 或把 OldMotor 改为 NewMotor

  1. Ctrl+Shift+F 打开全局搜索
  2. 输入旧名, 勾选 "全字匹配"
  3. 切换到"替换"模式, 输入新名
  4. 查看预览列表, 取消不该改的
  5. 点"全部替换"
重构优先于文本替换

对于有结构的变量名 (如 FB 实例成员), 用 重命名 (F2) 比 Ctrl+H 更安全。F2 基于语义, 不会误伤字符串里同名的内容。

语言间互转

部分程序块支持多种语言视图互转:

源语言目标语言限制
LADCFC无损
CFCLAD无损
LADSCL单向, 可逆性有限
SCLLAD不支持 (SCL 语法太灵活)

右键程序块 → 打开为... → 选目标语言。新视图独立保存, 两个视图共享同一变量表。

截图: LAD 梯形图编辑器

性能提示

  • 单个程序块建议 < 1000 行, 超过拆分为多个 FC
  • 大项目 (>10 万行) 启动慢时, 关闭 "加载时预编译" 选项
  • 在线模式下高频刷新的监视表如果卡顿, 降低刷新频率或减少监视项

排错

症状处理
打字延迟卡顿关闭实时错误检查 (设置 → 编辑器 → 实时诊断)
补全候选不出现Ctrl+空格 手动触发; 检查语言服务是否启动
F12 跳不过去确认项目已至少编译过一次 (未编译时无符号表)
粘贴时排版错乱使用 Ctrl+Shift+V 粘贴为纯文本, 再格式化
中文注释乱码检查文件编码; 设置 → 编辑器 → 默认编码 改为 UTF-8