安装与配置
Q: KVPAC IDE 支持哪些操作系统? A: 当前支持 macOS 12+(Intel 和 Apple Silicon),Windows 版本正在开发中。
Q: 如何更新 KVPAC IDE? A: 在 IDE 中点击 帮助 → 检查更新,或从内部仓库下载最新版本。
Q: 安装后无法启动 IDE,提示应用已损坏? A: 请检查以下项目:
- 确认安装包来自官方渠道,未被篡改
- macOS 安全设置:进入 系统设置 → 隐私与安全性,确认已允许从 App Store 和被认可的开发者运行
- 重新下载安装包并覆盖安装
Q: 许可证激活失败,提示"无效的许可证密钥"? A: 可能原因:
- 许可证密钥已过期 - 联系管理员续期
- 密钥输入错误 - 检查大小写和分隔符
- 网络连接问题 - 确保 IDE 可以访问许可证服务器
Q: 如何迁移 KVPAC IDE 到另一台电脑? A: 1. 在原电脑上导出工程(文件 → 导出) 2. 在新电脑上安装 KVPAC IDE 3. 激活许可证(如需) 4. 导入工程(文件 → 导入) 5. 将原工作区目录复制到新电脑的相同位置
工程管理
Q: 如何从旧版本迁移工程到新版本? A: KVPAC IDE 保持向后兼容性。直接在新版本中打开旧工程即可,IDE 会自动转换工程格式。建议在迁移前备份原工程。
Q: 工程文件丢失,能否从编译产物恢复源码? A: 不可以。编译产物(.bin 文件)是二进制机器码,不包含原始源码。请务必做好源码版本管理,建议使用 Git 等版本控制工具。
Q: 多个开发者如何协作同一个工程? A: KVPAC 工程使用标准文本文件(.st、.fb、.conf),天然支持 Git 等版本控制系统。推荐协作流程:
- 使用 Git 管理工程源码
- 每人使用独立分支开发
- 通过 Pull Request 合并代码
- 使用
kvpac-maker build进行 CI 编译验证
编译
Q: 编译失败,提示"未找到变量"? A: 检查变量是否已声明,并确认变量名拼写正确。ST 语言区分大小写。
Q: 如何查看详细的编译日志? A: 在底部面板选择 输出 标签,在输出源下拉菜单中选择 编译。
Q: 编译通过但运行时行为异常? A: 可能原因:
- 变量未初始化 - ST 语言要求显式初始化,建议在 VAR 块中设置初始值
- 任务周期配置不当 - 检查 Fast/Main/Slow Task 的周期设置
- 优化级别过高 - 降低
kvpac.config.json中的 optimization 级别 - IO 映射错误 - 确认物理地址与程序变量对应关系
Q: 编译时报"内存不足"? A: 检查以下项目:
- 数组大小是否过大 - 使用较小的数组或动态分配
- 功能块实例数量 - 减少不必要的实例化
- 字符串长度 - 检查 STRING 变量的长度定义
- 目标平台内存配置 - 确认 Flash/RAM 足够
调试
Q: 无法连接到 RTE? A: 检查以下项目:
- RTE 是否已启动
- 网络连接是否正常
- 端口号是否匹配(默认 2020)
- 防火墙是否阻止连接
Q: 断点无法命中? A: 可能原因:
- 代码已被优化 - 尝试降低优化级别
- 断点设置在不可执行行(如注释、空行)
- 程序未运行(点击运行按钮)
- 断点所在 POU 当前未被调用
Q: 调试时变量值不更新? A: 1. 确认调试会话处于暂停状态(运行中变量会持续变化) 2. 点击监视面板的刷新按钮 3. 尝试重新添加监视变量 4. 检查变量作用域 - 局部变量仅在对应 POU 执行时有效
Q: 条件断点如何设置?
A: 右键断点 → 编辑条件,输入条件表达式(如 counter > 100)。条件支持变量比较和布尔表达式。
运行时
Q: 程序运行一段时间后停止? A: 可能原因:
- 看门狗超时 - 检查任务周期配置,确保任务能在周期内完成
- 内存溢出 - 检查变量内存使用,减少动态分配
- 异常未处理 - 添加异常处理逻辑
- 堆栈溢出 - 增加
stack_size配置
Q: IO 无响应? A: 检查:
- IO 配置是否正确(
io-config.json) - 物理接线是否牢固
- IO 地址映射是否匹配
- 信号类型(BOOL/INT/REAL)是否一致
- 使用调试模式读取 IO 寄存器值验证
Q: 如何在不同目标平台间迁移?
A: 1. 在 kvpac.config.json 中修改 target 字段
2. 检查目标平台 SDK 是否已安装
3. 重新编译工程
4. 注意:IO 地址映射可能因平台不同而变化,需调整 io-config.json
Q: RTE 支持热加载(运行中更新程序)吗? A: 支持。可以在 RTE 运行状态下下载新程序:
- 编译通过后点击 下载 按钮
- RTE 会平滑切换到新程序
- 程序运行状态会在切换时重置
通信与网络
Q: IDE 与 RTE 连接突然断开? A: 可能原因:
- 网络不稳定 - 检查网线/WiFi 连接
- RTE 重启 - 检查目标设备状态
- 连接超时 - WebSocket 默认超时时间为 30 秒
- IP 地址变化 - 建议使用静态 IP
Q: Modbus 通信不通怎么办? A: 排查步骤:
- 确认 Modbus 在配置中已启用(
modbus_enabled: true) - 检查端口号(默认 Modbus TCP: 502)
- 验证从站地址和功能码
- 使用 Modbus 调试工具(如 ModScan)测试连通性
- 查看 RTE 日志中的通信错误信息
Q: CANopen 网络中有多个设备,地址如何配置? A: 每个 CANopen 设备必须有唯一的节点 ID(1-127)。在设备配置中设置节点 ID,确保网络中无重复。波特率必须所有设备一致(125k-1M bps)。
错误处理
Q: 运行时出现"硬错误"(Hard Fault)如何处理? A: 硬错误通常由以下原因引起:
- 除零错误 - 检查除法运算中的除数
- 空指针访问 - 检查指针/引用类型的变量
- 数组越界 - 检查数组索引是否在合法范围内
- 栈溢出 - 增加 stack_size 配置 建议:启用调试信息重新编译,使用单步调试定位错误位置。
Q: 如何获取 RTE 的运行时日志?
A: 1. 在 IDE 输出面板中查看 RTE 日志
2. 通过调试命令 read_log 获取 RTE 内部日志
3. 目标设备的串口输出(STM32 平台)
Q: 工程文件编码错误导致编译异常? A: KVPAC IDE 默认使用 UTF-8 编码。如果遇到编码问题:
- 在 IDE 右下角检查文件编码
- 通过 文件 → 另存为 选择 UTF-8 编码保存
- 确保所有源文件统一使用 UTF-8 编码