系统总览
Qixin Automation Platform 是一个面向工业现场的 AI-first 低代码平台。一个 app 由以下核心模块组成:
核心模块
| 模块 | 文件 | 做什么 | 谁常用 |
|---|---|---|---|
| Page | .qxpage | 现场操作界面:按钮、表格、3D、图表、上传等 | 操作员看结果,实施人员做界面 |
| Component | .qxcomponent | page 内可复用的卡片/列表项模板 | 实施人员 |
| Graph | .qxgraph | 自动化流程编排:对象调用、条件、等待、调试 | 实施人员、调试人员 |
| Object | objects.json | 设备和业务的语义模型:控制器、轴、IO、业务对象 | 实施人员、设备工程师 |
| Script | .cs | app-local C# 扩展:自定义对象、方法、数据结构 | 工程人员、AI |
| Query | queries.json | 外部系统集成合同:MES、ERP、HTTP API | 实施人员 |
| Variable | variables.json | 运行期变量和持久化值 | 实施人员 |
| Recipe | recipes.json | 工艺参数和配方 | 客户管理员 |
| Resource | assets/ | 图片、模型、上传文件 | 实施人员 |
| i18n | i18n.json | 运行页多语言文案 | 实施人员 |
| User | users.json | app 用户和角色 | 客户管理员 |
模块之间怎么协作
Page 负责界面,不负责业务逻辑
Page 把操作员看到的内容画出来,把按钮点击等事件交给 page method 处理。page method 通过以下方式访问平台能力:
QX.objects.<name>— 调用设备对象方法QX.queries.<name>.run()— 执行外部系统查询QX.variables.<name>— 读写应用变量QX.globals.<name>— 读写页面共享数据QX.resources— 读取文件资源QX.actions— 导航、弹窗等界面动作QX.i18n.get("key")— 读取多语言文案
不该做的:在 page method 里直接拼设备地址、写 PLC 协议、长时间轮询。
Graph 负责编排流程
Graph 把多个对象方法、查询、变量、条件组合成自动化步骤。它适合表达:
- 设备启动/停止/复位/换型流程
- 多个对象方法之间的顺序和条件判断
- 查询外部系统后再决定下一步
- 带断点调试的复杂逻辑
Graph 本身不画界面。它可以被 page 调用,也可以绑定到对象方法上随对象生命周期运行。
Object 负责设备语义
对象把设备能力封装成语义 API。例如 PulsarAxis.Home() 而不是 写寄存器地址 0x6040。page 和 Graph 只调用对象方法,不直接操作底层地址。
Script 负责扩展能力
当标准库没有你需要的对象类型时,通过 C# 自定义代码扩展。script 编译后进入 app 的 callable catalog,page、Graph 和 AI 都可以使用。
Query 负责外部集成
查询是与外部系统(MES、ERP、数据库)的连接合同。page 和 Graph 都调用同一份 query,不在各处写临时请求。
AI 的位置
AI 贯穿所有模块。实施人员用自然语言描述需求,AI 读取当前 app 上下文,帮助设计 page、编排 Graph、生成 query、编写 script。每一步结果仍需人工通过可视化界面复核。
推荐流程:先让 AI 看 → 再让 AI 改 → 人工复核 → 构建测试。
详细使用方式见 AI 主导工作流。
设计原则
- app 是独立交付单元:可运行、可备份、可版本管理。
- object 封装设备语义:page 和 Graph 只调对象方法,不直接写底层地址。
- page 面向操作员:语言和控件应让现场人员能理解。
- Graph 面向流程:可断点、可调试、可追踪。
- query 集中维护集成合同:不重复写临时请求。
- script 扩展没有内置的能力。
- AI 加速但不能替代人工审核。