<s>虹科_nz KPA_n Automation_nx softPLC_nx</s>
<s>虹科_nz KPA_n Automation_nx softPLC_nx 是_v 为_p Linux_nx 、_w Xenomai_nx 、_w INtime_nx 、_w Windows_nx 等_u 实时_n 操作_vn 系统_n 开发_v PLC_nx 的_u 编程_vn 环境_n ，_w 十分_m 适合_v 需要_v 使用_v IEC61131-3_nx 和_c PLCopen_nx 标准_n 的_u 控制_vn 技术_n 和_c 进行_v PLC_nx 编程_vn 的_u 用户_n 。_w</s><s>本_r 篇_Ng 文章_n 将_d 介绍_v 如何_r 在_p 虹科_nz KPA_n Automation_nx softPLC_nx 中_f 通过_p 编写_v 自动化_vn 脚本_n 来_v 实现_v 强大_a 的_u 应用_vn 程序_n 。_w</s>
<s>创建_v 新_a 向导_n 以_p 构建_v 新_a 项目_n 的_u 框架_n</s>
<s>创建_v 自动化_v 或_c 导入_v I/O_nx 配置_n 的_u 向导_n</s>
<s>自动_d 生成_v 有关_vn 项目_n 项_q 的_u 文档_n</s>
<s>任何_r 导入_v /_w 导出_v 程序_n</s>
<s>为此_d ，_w 不_d 需要_v 额外_b 的_u 工具_n ，_w 也_d 不_d 需要_v 了解_v 例如_v VB_nx 或_c C_nx ++_n 等_u 编程_n 或_c 脚本_n 语言_n ，_w 只_d 需_v 使用_v Workbench_nx 即_d 可_v 开发_v 、_w 测试_v 和_c 运行_v 您_r 的_u 脚本_n 。_w</s><s>该_r 脚本_n 是_v 使用_v IEC_nx 语言_n （_w 通常_d 是_v 结构化_vn 文本_n ）_w 编写_v 的_u 。_w</s>
<s>工作台_n 可以_v 自动_d 创建_v 或_c 更改_v 您_r 的_u IEC_nx 61131-3_nx 项目_n 。_w</s><s>通过_p 使用_v ST_nx 语言_n 编写_v 自动化_vn 脚本_n ，_w 可以_v 实现_v 许多_m 强大_a 的_u 应用_vn 程序_n 。_w</s><s>下面_f 将_d 介绍_v 项目_n 自动化_vn 工具_n 的_u 原理_n 。_w</s>
<s>#_q 01_m</s>
<s>原理_n</s>
<s>项目_n 自动化_vn 脚本_n 是_v 用_p IEC_nx 语言_n 编写_v 的_u 程序_n 。_w</s><s>结构_vn 化_vn 文本_n 通常_d 用作_v 脚本_n 的_u 编程_n 语言_n ，_w 因为_c 它_r 最_d 适合_v 自动化_vn 功能_n 。_w</s><s>该_r 脚本_n 作为_v 一_m 个_q 项目_n 开发_vn ，_w 链接_v 到_v 一_m 个_q 名为_v AUTOMATION_nx 的_u 专用_vn 库_n 。_w</s>
<s>图_n 1_m 项目_n 自动化_vn 工具_n 的_u 原理_n</s>
<s>当_p Workbench_nx 用于_v 开发_v 项目_n 自动化_vn 脚本_n 时_Ng ，_w “_w 模拟_vn ”_w 和_c “_w 在线_vn ”_w 命令_n 被_p 用于_v 执行_vn 脚本_n 的_u “_w 执行_vn 脚本_n ”_w 命令_n 代替_v 。_w</s><s>与_p 其他_r IEC_nx 项目_n 不同_a ，_w 脚本_n 的_u 程序_n 只_d 执行_v 一_m 次_q ，_w 并且_c 不_d 会_v 从_p 一_m 个_q 循环_vn 到_p 另_r 一_m 个_q 循环_vn 重复_vn 。_w</s><s>脚本_n 既_c 可_v 用于_v 生成_v 新_a 项目_n 的_u 框架_n ，_w 也_d 可_v 用于_v 更改_v /_w 完成_v 现有_vn 项目_n 。_w</s><s>因此_c ，_w AUTOMATION_nx 库_n 不仅_c 包含_v 用于_v 构建_v 项目_n 的_u 函数_n ，_w 还_d 包含_v 用于_v 枚举_v 和_c 更改_v 项目_n 现有_vn 项_Ng 的_u 函数_n 。_w</s>
<s>#_q 02_m</s>
<s>创建_v 一_m 个_q 新_a 的_u 项目_n 自动化_vn 脚本_n</s>
<s>要_v 创建_v 新_a 的_u 项目_n 自动化_vn 脚本_n ，_w 请_v 从_p 菜单_n 中_f 运行_v 文件_n /_w 新建_vn 项目_n 命令_n ，_w 然后_c 在_p 项目_n 创建_vn 对话_vn 框中_s 选择_v 自动化_vn 脚本_n 选项_n 。_w</s>
<s>图_n 2_m 自动化_vn 脚本_n 选择_vn</s>
<s>然后_c 按照_p 说明_n 进行_v 操作_vn 。_w</s><s>您_r 必须_d 指定_v 脚本_n 的_u 使用_vn 方式_n ：_w</s>
<s>从_p 头_d 开始_v 生成_v 一_m 个_q 新_a 项目_n</s>
<s>修改_v 现有_vn 项目_n</s>
<s>修改_v 项目_n 或_c 创建_v 项目_n （_w 如果_c 尚_d 不_d 存在_v ）_w</s>
<s>在_p 创建_v 脚本_n 时_Ng ，_w 您_r 已经_d 可以_v 定义_v 一些_m 参数_n ，_w 以便_d 在_p 脚本_n 启动_v 时_Ng 由_p 用户_n 输入_v 。_w</s><s>系统_n 会_v 自动_d 创建_v ：_w</s>
<s>脚本_n 项目_n 中_f 将_d 成为_v 参数_n 的_u 一些_m 全局_n 变量_n 。_w</s>
<s>变量_n 分组_vn 参数_n 列_v 表_n 。_w</s>
<s>接下来_l ，_w 将_d 提示_v 用户_n 输入_v 参数_n 的_u 几_m 行_q ST_nx 代码_n 。_w</s><s>该_r 脚本_n 是_v 使用_v 以下_f 工作区_n 生成_v 的_u 。_w</s>
<s>图_n 3_m 默认_v 的_u 项目_n 工作区_n</s>
<s>#_q 03_m</s>
<s>开发_v 并_c 测试_v 脚本_n</s>
<s>一_m 个_q 自动化_vn 脚本_n 的_u 开发_vn 与_p 任何_r 使用_v 工作台_n 的_u 项目_n 一样_a ，_w 但_c 有_v 一些_m 特殊_a 的_u 限制_vn 。_w</s><s>最_d 大_a 的_u 区别_n 是_v ，_w 脚本_n 是_v 一_m 个_q 只_d 执行_v 一_m 次_q 的_u 程序_n （_w 一般_ad 用_p ST_nx 语言_n 编写_v ）_w ，_w 不_d 会_v 在_p 各_r 个_q 周期_n 重复_v 。_w</s><s>主程序_n 就_d 是_v 自动化_vn 脚本_n 。_w</s><s>您_r 可以_v 自由_a 地_u 创建_v 子程序_n 和_c UDFB_nx 来_v 被_p 这个_r 程序_n 调用_v ，_w 但_c 建议_v 只_d 保留_v 一_m 个_q 脚本_n 的_u 最_d 高级_a 程序_n （_w 主_Ag 程序_n ）_w 。_w</s>
<s>脚本_n 项目_n 指_v 的_u 是_v 一_m 个_q 名为_v AUTOMATION_nx 的_u 特殊库_n ，_w 它_r 包含_v 了_u 开发_v 脚本_n 的_u 所有_b 必要_a 功能_n 。_w</s>
<s>图_n 4_m AUTOMATION_nx 库_n 的_u 内容_n</s>
<s>在_p 开发_v 脚本_n 项目_n 时_Ng ，_w 项目_n 菜单_n 的_u “_w 模拟_vn ”_w 和_c “_w 在线_vn ”_w 命令_n 被_p “_w 执行_v 脚本_n ”_w 命令_n 所_u 取代_v 。_w</s><s>此_r 命令_n 可以_v 运行_v 您_r 的_u 脚本_n 以_v 进行_v 测试_vn ，_w 并_c 打开_v 以下_f 对话_vn 框_Ng ：_w</s>
<s>图_n 5_m 自动化_vn 脚本_n 运行_vn 示例_n</s>
<s>在_p 上面_f 的_u 对话框_n 中_f 输入_v 目标_n 项目_n 的_u 名称_n （_w 要_v 创建_v 或_c 更改_v ）_w ，_w 然后_c 按_v Go_nx !_w 。_w</s><s>任何_r 跟踪_v 消息_n 或_c 错误_a 报告_n 都_d 会_v 显示_v 在_p 下面_f 的_u 列表_n 中_f 。_w</s>
<s>#_q 04_m</s>
<s>将_p 脚本_n 注册_v 为_v “_w 新_a 项目_n ”_w 向导_n</s>
<s>如果_c 您_r 的_u 脚本_n 旨_Vg 在_p 为_p 新_a 项目_n 创建_v 框架_n ，_w 您_r 可以_v 注册_v 它_r ，_w 以便_d 工作台_n 在_p 其_r 标准_n 的_u 新_a 项目_n 程序_n 中_f 调用_v 它_r 。_w</s><s>为此_d ，_w 您_r 只_d 需_v 复制_v 已_d 安装_v 好_a KPAAsoftPLCStudio_nx 应用_vn 程序_n 数据_n 的_u 脚本_n 文件夹_n ，_w 它_r 位于_v AUTOMATION_nx \_w SCRIPTS_nx \_w 文件夹_n 下_f 。_w</s><s>然后_c 您_r 的_u 脚本_n 将_d 可_v 用_v 于_p 从_p 工作台_n 创建_v 新_a 项目_n 。_w</s>
<s>#_q 05_m</s>
<s>从_p 其他_r 应用_vn 程序_n 运行_v 脚本_n</s>
<s>命令_n 行_Ng</s>
<s>可以_v 使用_v 随_p Workbench_nz 安装_v 的_u K5Script.exe_nx 实用_vn 程序_n 直接_ad 从_p Windows_nx 控制台_n 或_c 从_p ._nx BAT_nx 文件_n 执行_v 脚本_n 。_w</s><s>语句_n ：_w K5Script.exe <script> <target_project_nx >_w</s>
<s>对象_n ：_w</s>
<s><_w script_nx >_w ：_w 包含_v 脚本_n 的_u 文件夹_n 的_u 名称_n 。_w</s><s>如果_c 未_d 指定_v 路径_n 名_Ng ，_w 则_c 在_p AUTOMATION_nx \_w SCRIPTS_nx \_w 下_f 搜索_v 脚本_n 文件夹_n 。_w</s>
<s><_w target_nx __w project_nx >_w ：_w 要_v 由_p 脚本_n 创建_v 或_c 修改_v 的_u 目标_n 项目_n 的_u 完全_ad 限定_v 路径_n 名_Ng 。_w</s>
<s>从_p C_nx /_w C_nx ++_w 应用_vn 程序_n</s>
<s>您_r 的_u “_w C_nx /_w C_nx ++_w ”_w 应用_vn 程序_n 可以_v 链接_v 到_v 安装_v 的_u Workbench_nx 所在_n 的_u K5NETAS.DLL_nx ，_w 并_c 使用_v 以下_f 导出_vn 函数_n 运行_vn 脚本_n ：_w</s>
<s>从_p C_nx 语言_n ：_w</s>
<s>LPCSTR_nx declspec_nx (_w dllimport_nx )_w K5NETAS_RunScript_nx (_w</s>
<s>LPCSTR_nx szScript_nx ,_w LPCSTR_nx szDest_nx</s>
<s>)_w ;_w</s>
<s>从_p C_nx ++_w 语言_n ：_w</s>
<s>extern_nx "_w C_nx "_w LPCSTR_nx declspec_nx (_w dllimport_nx )_w K5NETAS_RunScript_nx (_w</s>
<s>LPCSTR_nx szScript_nx ,_w LPCSTR_nx szDest_nx</s>
<s>)_w ;_w</s>
<s>对象_n ：_w</s>
<s>szScript_nx ：_w 包含_v 脚本_n 的_u 文件夹_n 的_u 名称_n 。_w</s><s>如果_c 未_d 指定_v 路径_n 名_Ng ，_w 则_c 需要_v 在_p 安装_v Workbench_nx 的_u “_w AUTOMATION_nx \_w SCRIPTS_nx \_w ”_w 文件夹_n 下_f 搜索_v 脚本_n 文件夹_n 。_w</s>
<s>szDest_nx :_w 脚本_n 要_v 创建_v 或_c 修改_v 的_u 目标_n 项目_n 的_u 全_a 限定_vn 路径_n 名_Ng Return_nx</s>
<s>价值_n ：_w</s>
<s>该_r 函数_n 返回_v 一_m 个_q 指向_v 包含_v 报告_n 的_u 字符串_n 的_u 指针_n 。_w</s>
<s>在_p 实际_a 操作_vn 过程_n 中_f ，_w 虹科_nz 技术_n 工程师_n 整理_v 了_u 部分_m 功能_n 的_u 参考_vn 示例_n ，_w 包括_v project_nx level_nx services_nx 、_w delaring_nx objects_nx 、_w generating_nx documents_nx 等_u ，_w 若_c 您_r 在_p 开发_vn 过程_n 中_f 需要_v 帮助_v 或_c 想要_v 了解_v 更_d 多_a 关于_p 虹科_nz Automation_nx softPLC_nx 的_u 相关_vn 信息_n ，_w 欢迎_v 随时_d 通过_p info@hkaco.com_nx 联系_v 虹科_nz 。_w</s>
<s>若_c 想_v 了解_v 更_d 多_a 信息_n</s>
<s>欢迎_v 联系_v 虹科_nz 工业_n 控制_vn 团队_n ！_w</s>
<s>▎_w 往期_t 回顾_vn</s>
