创建第一个项目
本节手把手带您走通从启动 IDE 到保存第一个工程的全流程。我们将新建一个 "DemoLine01" 解决方案, 往里添加一台 PLC 设备, 配置 IP 和扫描周期, 最后保存。
目标
- 会启动 IDE 并读懂首页
- 能新建解决方案并添加第一台 PLC
- 会配置 IP / 扫描周期 / 运行模式
- 会保存与打开工程
前置条件
- 已按 环境准备 完成安装
- Darra PLC Service 在后台运行 (任务管理器 → 服务, 状态 = 正在运行)
启动 IDE
- 双击桌面 Darra PLC IDE 图标, 或从 开始菜单 → Darra → PLC IDE 启动
- 首次启动时 IDE 会自检:
- .NET 8 Desktop Runtime
- VC++ 2022
- 实时内核驱动
- OpenGL 4.5 (3D 仿真)
- 授权状态
- 自检通过后进入 欢迎页
TODO
IDE 启动时会自动探测 Darra PLC Service 是否在运行; 若未运行则自动启动。Service 是 IDE 与内核驱动之间的中间层, 负责程序下载、在线监视、Runtime 通讯, IDE 全生命周期都依赖它。
认识欢迎页
欢迎页左侧是四个入口, 右侧是最近工程列表:
| 入口 | 说明 |
|---|---|
| 新建解决方案 | 从空白或模板创建工程 |
| 打开解决方案 | 打开已有的 .darrasln 文件 |
| 导入示例 | 从官方示例库克隆 (LED 闪烁 / 机器人码垛 / Modbus 等) |
| 连接远程 Runtime | 不新建工程, 直接在线查看远程 PLC |
新建解决方案
- 点击 新建解决方案
- 在弹出的 新建工程 向导中填写:
| 字段 | 示例值 | 说明 |
|---|---|---|
| 解决方案名称 | DemoLine01 | 不允许含空格, 建议英文 + 数字 |
| 保存路径 | D:\DarraProjects\DemoLine01 | 建议独立磁盘, 避免 C 盘 |
| 项目类型 | PLC + Robot + HMI | 勾选后资源管理器会多出对应子树 |
| 运行模式 | 仿真 (Simulation) | 开发阶段选仿真, 现场再切 EtherCAT RT |
| 扫描周期 | 4 ms | 可选 1 / 2 / 4 / 8 ms, 初学选 4 ms |
| 语言版本 | IEC 61131-3 Ed.3 | 默认即可 |
- 点击 创建

TODO
扫描周期越短, CPU 占用越高。不做机器人运动时 4 ms 足够; 做运动控制 (插补) 建议 1 ms; 大型逻辑 (IO 多于 1024 点) 可放宽到 8 ms。 周期可在解决方案属性里随时调整, 不会影响已写好的代码。
解决方案资源树
创建成功后, 左侧 解决方案资源管理器 显示以下结构:

DemoLine01/
├── 设备/
│ └── PLC_1/ 默认添加的第一台 PLC
│ ├── 程序/ SCL / LD / CFC 程序
│ │ └── Main 主程序
│ ├── 变量/ 全局变量 / IO 映射
│ │ ├── GlobalVars 全局变量表
│ │ └── IO_Mapping IO 映射表
│ ├── 数据类型/ UDT / ENUM / ALIAS
│ ├── 功能块/ FB
│ ├── 函数/ FC
│ └── IO 配置/ EtherCAT / Modbus / OPC-UA
├── 机器人/ (仅 Robot 项目) 机器人清单
├── HMI/ (仅 HMI 项目) 页面树
├── 配方/ 配方管理
├── 报警/ 报警组与文本
├── 日志/ 运行日志与归档
└── 解决方案.darrasln 工程入口文件
配置 PLC_1 的基本参数
- 在 设备 节点下双击 PLC_1, 打开设备属性页
- 在 基本信息 选项卡设置:
| 参数 | 示例值 | 说明 |
|---|---|---|
| 设备名 | PLC_1 | 多台设备时建议改为 PLC_Line01 等业务名 |
| IP 地址 | 192.168.1.100 | Runtime 工控机 IP; 本机仿真填 127.0.0.1 |
| 端口 | 18821 | DarraLink 主通道固定端口, 不在 UI 中配置 |
| 扫描周期 | 4 ms | 与向导一致 |
| 运行模式 | 仿真 (Simulation) | 或 EtherCAT RT (需硬件) |
| 看门狗超时 | 200 ms | 周期超时后自动停 PLC |
| 启动策略 | 上电自启动 | 生产机必选 |
- 切换到 通讯 选项卡, 选择 调试网卡:
- 若仅仿真, 选
本地回环 (Loopback)即可 - 若连接真实 Runtime, 选择目标机对应网卡 (两张 NIC 场景下选 NIC 0 调试口)
- 若仅仿真, 选
- 点击右下角 应用
TODO
配置调度优先级 (可选)
对实时性有要求的工程, 进入 高级 → 调度 选项卡:
| 参数 | 推荐 | 说明 |
|---|---|---|
| CPU 亲和核心 | Core #3 | 绑定到隔离核, 避免调度抖动 |
| 实时优先级 | 15 | 范围 1~31, 越大越优先 |
| 内存锁定 | 启用 | 禁止页换出 |
| 隔离核独占 | 启用 | 其他进程不得使用该核 |
这里选择的 "CPU 亲和核心" 必须是在 Service 启动时通过 IOCTL_DARRT_ISOLATE_CORE 隔离出来的核,
否则会报 "核心未隔离, 无法绑定"。隔离核清单在 Service 配置 service.json → IsolatedCores 里定义。
保存工程
使用 Ctrl+S 或菜单 文件 → 保存 保存工程。
- 单击保存: 仅保存当前打开的对象
- Ctrl+Shift+S 保存全部: 保存解决方案下所有对象
- 工程为多个文件 + JSON 清单的组合, 支持 Git 版本管理
IDE 默认 不开启 自动保存, 请养成 Ctrl+S 习惯。可在 工具 → 选项 → 编辑器 里开启自动保存 (10/30/60 秒三档)。
打开已有工程
- 菜单 文件 → 打开解决方案, 选择
.darrasln文件 - 或从欢迎页的 最近工程 列表直接双击
- 快捷键 Ctrl+O
IDE 会自动还原上一次的窗口布局 (停靠面板 / 打开的文档), 布局持久化在
%AppData%\DarraPLC\_last_layout.xml。
常见问题
向导卡死在"创建中..."
症状: 点击"创建"后进度条不动。
排查: 检查目标路径是否有写权限; 若目标在网络盘上, 先改到本地盘。
IP 地址冲突
症状: 应用后弹窗 "IP 已被占用"。
排查:
arp -a | findstr 192.168.1.100
如返回非本机 MAC, 说明该 IP 已分配给别的设备。
扫描周期灰色不可改
症状: 设备属性中扫描周期下拉不可点。
排查: 工程已处于"运行中"状态, 需先在线下线停止运行再改。
下一步
- 第一个 PLC 程序 — 写电机启停程序
- 第一个机器人程序 — 添加六轴臂并示教
- 第一个 HMI 工程 — 做一个简单操作面板
- 部署到运行时 — 下载并在线监视