安装与配置

Q: KVPAC IDE 支持哪些操作系统? A: 当前支持 macOS 12+(Intel 和 Apple Silicon),Windows 版本正在开发中。

Q: 如何更新 KVPAC IDE? A: 在 IDE 中点击 帮助 → 检查更新,或从内部仓库下载最新版本。

Q: 安装后无法启动 IDE,提示应用已损坏? A: 请检查以下项目:

  1. 确认安装包来自官方渠道,未被篡改
  2. macOS 安全设置:进入 系统设置 → 隐私与安全性,确认已允许从 App Store 和被认可的开发者运行
  3. 重新下载安装包并覆盖安装

Q: 许可证激活失败,提示"无效的许可证密钥"? A: 可能原因:

  1. 许可证密钥已过期 - 联系管理员续期
  2. 密钥输入错误 - 检查大小写和分隔符
  3. 网络连接问题 - 确保 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 等版本控制系统。推荐协作流程:

  1. 使用 Git 管理工程源码
  2. 每人使用独立分支开发
  3. 通过 Pull Request 合并代码
  4. 使用 kvpac-maker build 进行 CI 编译验证

编译

Q: 编译失败,提示"未找到变量"? A: 检查变量是否已声明,并确认变量名拼写正确。ST 语言区分大小写。

Q: 如何查看详细的编译日志? A: 在底部面板选择 输出 标签,在输出源下拉菜单中选择 编译

Q: 编译通过但运行时行为异常? A: 可能原因:

  1. 变量未初始化 - ST 语言要求显式初始化,建议在 VAR 块中设置初始值
  2. 任务周期配置不当 - 检查 Fast/Main/Slow Task 的周期设置
  3. 优化级别过高 - 降低 kvpac.config.json 中的 optimization 级别
  4. IO 映射错误 - 确认物理地址与程序变量对应关系

Q: 编译时报"内存不足"? A: 检查以下项目:

  1. 数组大小是否过大 - 使用较小的数组或动态分配
  2. 功能块实例数量 - 减少不必要的实例化
  3. 字符串长度 - 检查 STRING 变量的长度定义
  4. 目标平台内存配置 - 确认 Flash/RAM 足够

调试

Q: 无法连接到 RTE? A: 检查以下项目:

  1. RTE 是否已启动
  2. 网络连接是否正常
  3. 端口号是否匹配(默认 2020)
  4. 防火墙是否阻止连接

Q: 断点无法命中? A: 可能原因:

  1. 代码已被优化 - 尝试降低优化级别
  2. 断点设置在不可执行行(如注释、空行)
  3. 程序未运行(点击运行按钮)
  4. 断点所在 POU 当前未被调用

Q: 调试时变量值不更新? A: 1. 确认调试会话处于暂停状态(运行中变量会持续变化) 2. 点击监视面板的刷新按钮 3. 尝试重新添加监视变量 4. 检查变量作用域 - 局部变量仅在对应 POU 执行时有效

Q: 条件断点如何设置? A: 右键断点 → 编辑条件,输入条件表达式(如 counter > 100)。条件支持变量比较和布尔表达式。

运行时

Q: 程序运行一段时间后停止? A: 可能原因:

  1. 看门狗超时 - 检查任务周期配置,确保任务能在周期内完成
  2. 内存溢出 - 检查变量内存使用,减少动态分配
  3. 异常未处理 - 添加异常处理逻辑
  4. 堆栈溢出 - 增加 stack_size 配置

Q: IO 无响应? A: 检查:

  1. IO 配置是否正确(io-config.json
  2. 物理接线是否牢固
  3. IO 地址映射是否匹配
  4. 信号类型(BOOL/INT/REAL)是否一致
  5. 使用调试模式读取 IO 寄存器值验证

Q: 如何在不同目标平台间迁移? A: 1. 在 kvpac.config.json 中修改 target 字段 2. 检查目标平台 SDK 是否已安装 3. 重新编译工程 4. 注意:IO 地址映射可能因平台不同而变化,需调整 io-config.json

Q: RTE 支持热加载(运行中更新程序)吗? A: 支持。可以在 RTE 运行状态下下载新程序:

  1. 编译通过后点击 下载 按钮
  2. RTE 会平滑切换到新程序
  3. 程序运行状态会在切换时重置

通信与网络

Q: IDE 与 RTE 连接突然断开? A: 可能原因:

  1. 网络不稳定 - 检查网线/WiFi 连接
  2. RTE 重启 - 检查目标设备状态
  3. 连接超时 - WebSocket 默认超时时间为 30 秒
  4. IP 地址变化 - 建议使用静态 IP

Q: Modbus 通信不通怎么办? A: 排查步骤:

  1. 确认 Modbus 在配置中已启用(modbus_enabled: true
  2. 检查端口号(默认 Modbus TCP: 502)
  3. 验证从站地址和功能码
  4. 使用 Modbus 调试工具(如 ModScan)测试连通性
  5. 查看 RTE 日志中的通信错误信息

Q: CANopen 网络中有多个设备,地址如何配置? A: 每个 CANopen 设备必须有唯一的节点 ID(1-127)。在设备配置中设置节点 ID,确保网络中无重复。波特率必须所有设备一致(125k-1M bps)。

错误处理

Q: 运行时出现"硬错误"(Hard Fault)如何处理? A: 硬错误通常由以下原因引起:

  1. 除零错误 - 检查除法运算中的除数
  2. 空指针访问 - 检查指针/引用类型的变量
  3. 数组越界 - 检查数组索引是否在合法范围内
  4. 栈溢出 - 增加 stack_size 配置 建议:启用调试信息重新编译,使用单步调试定位错误位置。

Q: 如何获取 RTE 的运行时日志? A: 1. 在 IDE 输出面板中查看 RTE 日志 2. 通过调试命令 read_log 获取 RTE 内部日志 3. 目标设备的串口输出(STM32 平台)

Q: 工程文件编码错误导致编译异常? A: KVPAC IDE 默认使用 UTF-8 编码。如果遇到编码问题:

  1. 在 IDE 右下角检查文件编码
  2. 通过 文件 → 另存为 选择 UTF-8 编码保存
  3. 确保所有源文件统一使用 UTF-8 编码