
在实际的工业组态项目中CIMPro 的“开发态”和“发布态”承担着完全不同的职责。开发态负责搭画面、配数据源、写脚本而发布态是给值班人员、运维人员直接使用的运行环境。这里的 AI 助手并不是网页上的聊天插件而是在发布态运行画面中嵌入一个智能交互入口让操作人员通过自然语言查询实时数据、调用控制指令、定位告警甚至生成运行报表。本文会围绕 CIMPro 发布态中 AI 助手的使用展开从功能定位、接入方式、配置步骤、运行验证到常见故障排查整理出一条可复现的落地路径。在开始之前先说明适用范围。CIMPro 作为组态软件不同版本在菜单名称、配置项数量和发布方式上会有差异。下面给出的是通用配置思路和工程实践建议具体落地时要先确认自己使用的 CIMPro 版本、AI 助手组件版本以及发布服务器是否具备访问模型服务的网络条件。如果你手里的版本界面略有不同重点参考配置链路和排查思路而不是机械对照菜单名。1. 先理解发布态 AI 助手的定位和运行链路1.1 发布态与开发态在职责上完全不同开发态是一个工程编辑环境面向组态工程师。你要在这里完成变量建模、画面绘制、脚本编写、报警配置和数据源绑定。开发态能验证逻辑但并不是最终用户每天面对的界面。发布态是把开发态工程编译、打包、部署到运行环境后的产物。发布态强调稳定、实时、低延迟用户通常是车间操作员、调度值班员或巡检人员他们没有时间打开脚本编辑器去查一个变量为什么没有值。AI 助手要解决的正是发布态里“数据找起来慢、操作入口深、知识依赖人”的问题。它把原来需要切换到变量列表、历史报表、报警页面、设备操作面板才能完成的动作压缩成一句自然语言指令。1.2 AI 助手在发布态中的典型使用场景实时数据查询操作员输入“查询 3 号反应釜当前温度”AI 助手解析出设备对象和变量名回传实时值。历史数据统计输入“统计今天 A 线产量”AI 助手请求历史库对时间段聚合后返回结果。设备控制输入“开启 2 号泵”AI 助手先校验权限再调用控制指令下发。告警定位输入“当前有哪些未复归的报警”AI 助手检索报警表并按优先级返回。操作指引输入“空压机启动前需要检查什么”AI 助手基于知识库返回标准操作流程。报表生成输入“生成昨天白班的生产报表”AI 助手拉取数据并导出文件或推送到指定位置。这些场景的共同点是用户在运行画面中保持当前业务上下文不用切换系统不用记忆变量名也不用翻操作手册。AI 助手在这条链路里的角色是一个“对话式接口”背后连接的是变量服务、历史数据服务、报警服务和指令下发服务。1.3 不能把 AI 助手做成一个不受控的浏览器聊天框工业控制系统对操作权限、操作记录和异常兜底有严格要求。发布态里的 AI 助手不能简单粗暴地接一个大模型接口然后让模型自由发挥。生产环境里AI 的边界必须被限制数据查询只能读取有权限的数据域。控制指令必须二次确认并记录操作人、操作时间、指令内容和执行结果。无法确认的意图不能执行必须返回“无法识别请描述更明确”的兜底话术。模型回复需要经过意图识别、参数抽取、权限校验、执行引擎四个环节而不是直接拼接到数据库或控制系统。所以理解 AI 助手的运行链路比单纯知道“在哪里输入对话”更重要。一条典型的查询链路是操作员输入自然语言 - AI 助手解析意图和参数 - 权限校验 - 访问变量/历史/报警服务 - 组织结果 - 模型生成自然语言回复 - 展示到发布态界面。2. 发布态 AI 助手的组成模块和接入方式2.1 最小组成单元在一个可用的发布态 AI 助手方案中至少包含以下几个模块交互界面发布态画面中的对话框、气泡窗口或侧边栏。意图解析把自然语言转换成结构化指令这一步通常由大模型完成。指令执行器根据结构化指令调用 CIMPro 的变量服务、报警服务、控制接口。模型服务提供自然语言理解和生成能力可以是本地部署也可以是远程 API。权限和审计模块校验用户身份、操作权限记录操作日志。知识库保存设备说明、操作规程、常见问答等非实时数据。这几部分可以全部内置在发布态运行程序中也可以拆分成独立服务。实际项目里建议拆分成独立服务因为模型加载、热更新和并发请求会对运行环境产生明显负载和组态画面进程放在一起会影响画面刷新率。2.2 本地模型服务与远程 API 两种接入方式对比发布态 AI 助手在接入模型时有两条完全不同的路线本地部署模型或者调用大模型 API 服务。两者没有绝对优劣看项目约束。接入方式数据安全部署成本响应速度离线能力适合场景本地模型例如 Ollama 加载开源模型数据不出内网安全性高需要 GPU 服务器或较高配置主机取决于硬件参数量大的模型响应偏慢支持离线运行数据敏感、无外网条件的工业现场远程 API数据会经过外部服务需要脱敏和审计无需 GPU按调用量计费网络延迟决定整体较快不支持离线对数据安全要求可控、有固定外网出口的场景混合方式视具体架构而定本地做基础问答远程做复杂推理可做路由分流可配置降级对连续性要求高的场景如果项目要求 AI 助手能独立运行在车间内网优先考虑本地模型。参数规模不宜盲目追求大7B 到 14B 级别的模型在意图识别和参数抽取上已经能满足大部分工业指令关键是提示词和工具调用要约束清楚。2.3 在架构上预留“控制权限”这道闸门AI 助手不是绕过 CIMPro 原有权限体系的新通道而是原有权限体系的一个新入口。用户通过 AI 助手发出控制指令时执行链路必须复用 CIMPro 自身的用户认证、角色权限和操作审计机制。推荐做法是AI 助手解析出结构化指令后不自接执行而是把指令发给一个指令网关由网关查询当前登录用户是否具备对应设备/操作类型的权限通过后才下发到变量或设备驱动。这样即使模型解析出错权限层也能拦住越权操作。3. 环境准备模型服务、发布环境和网络检查3.1 开发态基础准备在配置 AI 助手之前先保证 CIMPro 工程本身能在开发态正常编辑和运行。重点确认以下几点CIMPro 版本及授权状态AI 助手组件是否在授权范围内。工程中已经建好变量、画面、报警和数据源否则 AI 助手没有可查询的数据对象。开发态能正常切换到模拟运行或试运行状态变量读写正常。发布目标机器服务器或工控机的操作系统版本、分辨率和运行库满足要求。不要在 AI 助手没有数据源的情况下先做对话界面那样只能验证“模型通不通”验证不了“业务通不通”。3.2 准备本地模型服务以 Ollama 加载本地开源模型为例先在模型服务器上安装 Ollama然后拉取一个适合中文指令解析的模型。下面的命令是通用示例实际模型名称和版本以模型仓库为准。ollama pull qwen2.5:7b ollama run qwen2.5:7b先运行一次确认模型能正常对话再关闭交互窗口让模型服务作为后台服务持续运行。检查服务是否在监听默认端口curl http://127.0.0.1:11434/api/tags正常返回 JSON 列表说明本地模型服务已经就绪。如果返回连接失败先检查 Ollama 服务进程是否启动Windows 下可以通过任务管理器查看 ollama 进程Linux 下可以通过 systemctl 或 ps 检查。CIMPro 发布服务器要访问这个模型服务需要保证两个 IP 之间网络互通。可以先用浏览器或 curl 从发布服务器访问模型服务地址排除防火墙问题。curl http://192.168.1.100:11434/api/tags3.3 准备远程 API 服务如果选择远程 API 接入要提前准备好访问地址、API Key、模型名称和最大上下文长度。这里不推荐在代码和配置里直接写死密钥发布态工程应该使用配置文件或环境变量注入。示例的环境变量配置方式如下ai: provider: api api_key: ${AI_API_KEY} base_url: ${AI_BASE_URL} model: gpt-4o-mini temperature: 0.2 max_tokens: 1024 timeout_seconds: 30注意把${AI_API_KEY}这类占位符替换成实际环境变量或者放在专门配置文件里由发布脚本统一分发。不要提交到代码仓库。3.4 发布前网络与端口检查清单在发布态接入模型服务之前先按下面的清单检查一遍发布服务器和模型服务器之间的网络是否互通。发布服务器是否具备访问模型服务的端口默认 Ollama 为 11434。如果使用远程 API外网出口是否稳定超时时间是否合理。发布服务器防火墙是否阻止了回调或 WebSocket 连接。CIMPro 工程配置的模型地址是否使用了可解析的主机名或固定 IP。这一套检查做完后续配置 AI 助手时出现的“无响应”问题会少很多。4. 在 CIMPro 开发态配置 AI 助手并绑定到发布场景4.1 配置模型服务连接在 CIMPro 开发态中找到 AI 助手配置入口通常会有“模型服务”、“模型配置”或“AI 服务”之类的设置页。配置项主要包括配置项说明建议值服务地址模型服务的 URL本地模型填http://127.0.0.1:11434或局域网 IP按实际服务器填写模型名称调用的模型标识例如qwen2.5:7b与模型服务中拉取的名称一致超时时间请求模型的最长等待时间本地模型 30~60 秒远程 API 10~30 秒最大 token 数模型回复的最大长度512 或 1024不要过大Prompt 前缀系统提示词用于约束模型角色和回答格式见下文示例温度采样随机性0.1~0.3避免自由发挥这里要特别注意模型名称要和模型服务端实际名称完全一致。Ollama 里qwen2.5:7b和qwen2.5:14b是不同模型写错一个字母都会导致请求失败。4.2 设计系统提示词AI 助手能否在工业场景下给出稳定回答很大程度上取决于系统提示词。提示词不是越复杂越好而是要把“角色、任务、工具范围、拒绝规则”说清楚。下面是一个可用作起点的提示词示例实际使用时要根据你的设备和变量命名规则调整。你是 CIMPro 发布态运行画面中的 AI 助手服务对象是车间操作人员和值班员。 你的任务是把用户的中文指令转换成结构化操作然后根据执行结果生成简洁回复。 你可以读取实时变量、查询历史数据、检索报警并在具备权限时下发控制指令。 你只能查询和操作当前工程中存在的变量和设备不要猜测或编造变量名。 如果用户指令不明确请回复需要补充的信息。 如果用户指令超出权限范围请拒绝执行并说明原因。 回答要求简洁、准确、不要输出与问题无关的内容。这类提示词能有效减少模型编造变量名、擅自执行控制指令的问题。在发布态场景里宁可让模型多问一次也不能让它猜一个不存在的变量名。4.3 绑定变量、数据点和控制权限AI 助手要理解“查询温度”“开启水泵”这类指令必须把自然语言中出现的名称映射到 CIMPro 工程中的实际数据对象。具体做法是在 AI 助手的对象映射表里维护一批“业务名称 - 变量名”的对应关系。示例映射表内容业务名称用户常用说法变量名数据类型是否允许控制1号反应釜温度Reactor1_TempFloat否2号反应釜温度Reactor2_TempFloat否1号循环泵开关Pump1_SwitchBool是2号循环泵开关Pump2_SwitchBool是A线瞬时产量LineA_RateFloat否映射表越完整AI 助手的准确率越高。可以在开发态里批量导入映射关系或者在对象较多时通过配置文件统一维护。控制权限要单独配置。即使模型识别出“开启 1 号循环泵”发布态执行前依然要检查当前 Windows 用户或 CIMPro 登录用户是否具备该设备的控制权限。这里的权限判断建议放在 CIMPro 的指令执行层而不是只靠提示词约束。4.4 在发布画面中放置 AI 助手交互入口配置好模型和映射表之后需要在画面编辑器中把 AI 助手组件拖入发布场景。常见做法有在主画面右下角放置浮动对话按钮点击后展开侧边对话面板。在独立页面放置全屏对话工作台适合报表生成和知识问答。在报警页嵌入快捷指令输入框支持“处理当前报警”等操作。组件放置完成后要设置交互面板的初始状态、位图和输入框宽度。发布态画面通常是全屏运行AI 助手面板不能遮挡关键数据区域最好支持拖动和最小化。画面保存后建议先在开发态进行试运行。试运行的目的是验证 AI 助手能弹出、能连接模型服务但真正的发布态效果要以正式发布后的运行验证为准。5. 发布运行与验证5.1 执行发布操作CIMPro 工程发布通常分为本地发布和远程发布。本地发布是把运行所需的文件输出到指定目录远程发布则是把工程部署到目标服务器。发布时要注意发布前关闭正在使用 AI 助手配置的编辑器页面避免文件被占用。确认目标机器的运行环境已经安装 CIMPro 运行环境或具备自包含运行条件。如果模型服务在独立服务器上发布配置里的模型服务地址必须能在目标机器上访问。发布完成后在目标机器上启动运行程序确认画面正常加载变量正常刷新AI 助手组件没有报错。常见错误是开发态模型服务地址填写127.0.0.1发布到远程机器后依然用127.0.0.1导致运行态找不到模型服务。开发态和发布态的网络拓扑不同模型地址必须写成目标机器可访问的地址。5.2 运行态验证从简单查询到控制指令在发布态里对 AI 助手做验证建议按下面的顺序执行每步通过后再进入下一步。第一步验证模型连通性。在 AI 助手输入框输入“你好”或“你能做什么”正常返回说明模型服务链路通畅。第二步验证实时数据查询。输入“查询 1 号反应釜温度”检查返回的数值是否和变量面板或现场仪表一致。这一步要重点看模型是否把“1号反应釜温度”映射到Reactor1_Temp如果映射错误返回的要么是空值要么是错误设备的数据。第三步验证历史数据统计。输入“统计今天 A 线的平均产量”检查时间段、聚合方式和数值口径是否正确。第四步验证告警查询。输入“当前有哪些未复归报警”检查是否只返回当前活动告警而不是把历史告警全部倒出来。第五步验证控制权限。用没有控制权限的账号输入“开启 1 号循环泵”系统应该返回无权限提示并记录一条被拒绝的审计日志。再用有权限的账号操作系统应弹出二次确认确认后执行并返回执行结果。第六步验证兜底能力。输入“今天天气怎么样”这类与业务无关的问题AI 助手应返回业务范围内的拒绝话术而不是真的去查天气。5.3 用日志确认执行结果发布态 AI 助手的排查不能只靠“对话好不好用”来判断一定要看日志。建议在运行目录下开启 AI 助手日志记录以下内容用户输入原文。模型解析出的意图、参数和置信度。权限校验结果。数据查询结果或指令执行结果。模型生成回复的耗时。异常堆栈和超时信息。日志关键字示例[AI] user input: 查询 1 号反应釜温度 [AI] intent: query_realtime [AI] params: {device: 1号反应釜, variable: Reactor1_Temp} [AI] permission: allow [AI] data: {value: 36.5, unit: ℃} [AI] response: 1号反应釜当前温度为 36.5℃如果模型解析出的变量名是Reactor1_Temp_副本而不是Reactor1_Temp日志会直接暴露问题问题大多出在映射表或提示词没有约束好命名规范。6. 常见问题排查从现象倒推原因6.1 AI 助手对话框打不开或无响应现象点击对话框按钮没有反应或者输入内容后一直转圈。可能原因按顺序排查组件绑定的事件没有触发先确认发布态运行日志中有没有点击事件记录。模型服务地址在网络中不可达用 curl 从发布机器测试。模型服务没有正常启动Ollama 服务未运行或模型未加载。配置的模型名称不存在模型服务返回模型未找到。超时时间设置过短模型生成回复需要的时间超过了配置时间。检查方式# 在发布机器上测试模型服务是否可访问 curl http://模型服务器IP:11434/api/tags # 测试模型是否能正常生成回复 curl http://模型服务器IP:11434/api/generate -d {model: qwen2.5:7b, prompt: 你好, stream: false}如果 curl 正常但 AI 助手无响应说明问题在 CIMPro 工程配置或网络权限上而不是模型服务本身。6.2 模型能回复但查询数据不准确现象对话流畅但查询返回的温度、产量等数据和实际不符或者干脆返回空值。可能原因映射表里业务名称和变量名没有对应关系。用户口语化描述和映射表里的业务名称差异太大比如用户说“反应釜温度”映射表里写的是“反应炉温度”。模型把数值单位或聚合方式理解错误比如把“平均”理解成“最大值”。变量本身没有实时值需要先确认开发态数据源是否正常。处理建议扩充映射表 Synonym 字段把常见同义词加进去。在提示词里明确要求“只能使用映射表中存在的变量不得编造变量名”。对实时查询和统计查询分别设计提示词模板避免模型混用聚合算子。6.3 控制指令被拒绝或执行失败现象用户有权限但 AI 助手返回“无权限”或执行后设备没有动作。排查路径先看 AI 助手日志中权限校验段的记录区分是权限不足还是参数解析错误。确认当前 CIMPro 登录用户属于哪个角色角色是否绑定了对应设备的控制权限。确认变量名映射正确开关量类型匹配不能把 Bool 类型的开关写成数值类型。确认执行结果反馈设备没有动作时区分是指令没有下发还是驱动执行失败。这种场景下最容易出问题的是“提示词允诺权限、权限层不放行”两者必须一致。简单做法是在提示词里写“所有控制指令最终由系统权限决定”避免模型擅自答复“已执行”。6.4 发布态比开发态响应慢现象开发态试运行 AI 助手响应快发布到现场机器后明显变慢。可能原因现场机器和模型服务器之间网络带宽低、延迟高。现场机器硬件性能低于开发机AI 助手程序占用了主控画面资源。多人同时使用同一个模型服务推理请求排队。模型参数量过大在无 GPU 的服务器上生成速度慢。解决方向从模型侧改用更小参数量的模型或者开启流式输出让用户先看到部分内容。把模型服务部署到与发布服务器同网段的高性能机器上。AI 助手进程优先级降低避免挤占画面刷新资源。6.5 问题现象与处理建议汇总表问题现象常见原因检查方式处理建议对话框打不开组件事件未生效或运行环境报错查看发布日志、组件事件配置重新绑定事件确认组件版本输入后一直转圈模型服务不可达或超时curl 测试模型地址检查超时配置修正地址、放宽超时、检查防火墙回复内容与业务无关提示词缺少角色和范围约束检查系统提示词加入任务边界和拒绝规则查询数据为空变量映射缺失或变量名错误查看 AI 日志中的 params补齐映射表、修正变量名统计口径不对聚合方式理解错误对比日志中的聚合参数拆分查询模板、约束参数格式控制被拒绝权限角色未绑定或参数类型错误查看权限校验日志配置角色权限、修正数据类型发布态响应慢网络延迟或模型推理慢抓包/性能测试换小模型、开流式输出、同网段部署7. 生产环境部署与最佳实践7.1 生产环境不能照搬开发环境的 AI 配置开发态验证通过的 AI 助手配置进入生产环境前还需要补充一套工程化保障。首先是配置外置化。模型服务地址、API Key、模型名称、超时时间、提示词版本都不能硬编码在画面工程里。建议放到独立的配置文件或配置中心由发布脚本按环境注入。其次是日志和监控。AI 助手需要记录每一次请求的关键信息包括用户、时间、意图、参数、返回结果、耗时、错误码。监控项至少包括模型服务成功率、平均响应时间、超时次数、权限拒绝次数。这些指标能帮助快速定位是模型问题、网络问题还是权限配置问题。然后是安全边界。凡是 AI 助手发起的控制操作都必须满足三重条件当前用户已登录、当前角色包含设备控制权限、操作指令经过二次确认。三缺一都不执行。7.2 提示词和映射表的版本管理AI 助手的提示词和映射表应该纳入版本管理不能只在开发态界面里反复修改。建议把提示词和映射表以 JSON 或 YAML 文件维护发布时随工程一起分发。示例映射表配置{ version: 1.2, variables: [ { business_name: 1号反应釜温度, synonyms: [反应釜温度, 1号釜温], variable_name: Reactor1_Temp, data_type: Float, control: false }, { business_name: 1号循环泵开关, synonyms: [循环泵, 1号泵], variable_name: Pump1_Switch, data_type: Bool, control: true } ] }这样每次修改都有 Diff可以追溯是谁在什么时间改了什么映射也方便在不同产线工程之间复用。7.3 发布前检查清单下面是发布态 AI 助手上线前建议执行的检查清单可以直接打印使用模型服务地址从发布机器可用 curl 访问已验证连通。模型名称与服务端拉取名称一致已验证可生成回复。系统提示词已包含角色、任务边界、拒绝规则。映射表覆盖常用设备和变量控制类变量已明确标记。开发态试运行已验证查询、统计、报警、控制、兜底五类场景。控制权限已按角色绑定无权限账号测试通过。操作日志开启AI 请求日志关键字完整。发布机器时间和模型服务器时间同步日志时间可对齐。模型超时时间已根据现场网络和硬件条件调整。已制定模型服务不可用时的降级方案例如隐藏 AI 助手入口或返回明确提示。7.4 下一步可以扩展的方向AI 助手在发布态里跑通之后可以向几个方向继续完善。一是接入多模型路由。简单问题走本地小模型复杂推理走远程大模型既控制成本又保证离线可用。二是把知识库做得更完整。把设备手册、操作规程、工艺参数说明文档接入向量库让 AI 助手不仅能查实时数据还能回答“这台泵的维护周期是多久”这类知识型问题。三是增加主动告警解读。当报警发生时AI 助手可以自动将当前 MES、DCS、PLC 和组态软件数据汇总生成一条“发生了什么、影响范围、建议动作”的解读文本推送给值班人员。四是把 AI 助手的操作记录和审计系统对接。工业场景要求每一个控制指令都可追溯AI 助手作为新入口不能脱离审计体系的覆盖范围。回到最开始的核心判断CIMPro 发布态的 AI 助手本质是把大模型的理解能力嫁接到组态运行画面的数据服务和权限体系上。模型负责把自然语言翻译成结构化指令CIMPro 负责执行和校验两边职责分开系统才安全。对新手来说最有价值的练习不是先调模型参数而是先把一张包含业务名称、变量名、控制权限的映射表做完整。这张表越准确AI 助手的业务效果越好。