跳到主要内容

Graph 自动化

Graph 是自动化流程的可视化编排工具。类比:它相当于 PLC 的 SFC(顺序功能图)或梯形图,但以设备对象为基本单元。不需要写寄存器地址,通过连接节点来组织设备动作。

什么场景用 Graph

场景举例
设备启停流程初始化 → 回零 → 自检 → 待机
工艺步骤编排下降 → 保压 → 泄压 → 上升
条件跳转合格走正常流程,NG 走排料流程
外部系统交互查 MES 工单 → 调配方 → 启动作业 → 报结果
需要断点调试的逻辑暂停在某个步骤,观察变量值,再继续

简单的连续动作(比如一个按钮触发一个设备方法)直接在画面动作中完成,不需要 Graph。Graph 用于多步骤的、有条件的、可调试的流程。

打开与编辑

在文件区打开 .qxgraph 文件,中间区域显示流程画布。

截图占位:Graph 画布界面

左上角的 method 列表可以快速跳转到入口节点。

节点类型

Method 节点

外部调用入口。一个 Graph 可以有多个 method 节点,分别对应不同的启动路径。

Function 节点

调用设备对象的方法。从对象树上把设备拖到画布即可生成。属性面板中选择具体的调用方法(如 回零()绝对定位())。

Query 节点

调用 app 级的查询(如 MES 工单查询)。

Script 节点

调用标准库流程节点。

常用脚本节点功能
Wait Until等待条件满足。反复检查 Condition 布尔输入,满足时走 Success,超时后走 Timeout
GetVariable / SetVariable读写变量
If / Switch条件分支

Subgraph 节点

调用同一个设备对象的其他 Graph method。

连线

连线分两种:

类型端口形态含义
控制流三角 pin表示执行顺序,"这一步做完再做下一步"
数据流圆形 pin表示值传递,"这一步的输出是下一步的输入"

悬停端口可以看到端口类型和说明。连接时编辑器会检查类型是否匹配。

截图占位:端口连接示意图

变量

Graph 可以定义内部变量,也可以读写 app 级变量。

变量种类来源用途
Graph 局部变量在 Graph 属性中定义流程内部使用的临时值
App 变量variables.json跨画面和流程共享的值

变量默认值与覆盖

Graph 变量的 value 是默认值。如果勾选 Inspector 可编辑

  • 绑定该 Graph 的设备对象会在属性面板显示这个变量。
  • 可以为不同的对象实例设置不同的覆盖值。
  • 覆盖值只影响该实例,不改变 Graph 默认值。

典型用法:同一个 Graph 绑定了两台相同设备,但两台的 Z 轴速度不一样。在 Graph 中定义变量 速度,勾选 Inspector 可编辑,然后在两台设备的属性面板分别设置。

等待与超时

现场最常见的需求:执行一个动作后,等待某个条件满足再继续。

示例:等待气缸到位

  1. 执行动作:气缸.伸出()
  2. 添加 Wait Until 节点:
    • Condition 输入:绑定 气缸.前限位 信号
    • Check 分支:不需要额外动作
    • Success → 继续下一步
    • Timeout → 走报警处理或重试

Wait Until 的超时参数在属性面板设置。

调试

调试时可以用到以下功能:

功能操作效果
设置断点点击节点左侧边距运行到该节点暂停
暂停Navbar 点击 Pause暂停当前执行
继续Navbar 点击 Continue从暂停点继续
查看变量暂停时查看调试面板当前变量值、对象状态
单步执行暂停后逐步执行每次执行一个节点

暂停时画布上当前节点高亮。继续或停止后高亮清除。

截图占位:断点和调试状态

常见问题

问题原因处理
节点缺少输入必需的值端口没连线补齐连线或设置默认值
端口类型不匹配数字输出连到了字符串输入检查节点定义
对象引用失效设备对象已被删除或改名重新选择目标设备
修改后不生效没保存或没重新构建先保存 Graph,再在 Navbar 点 Build
运行时找不到方法自定义代码编译失败或未构建检查构建状态,修复编译错误后重建

构建与运行

修改 Graph 后需要构建 app project 才能进入运行状态。详见构建流程

编写原则

  • 一个 Graph method 做一件事(启动、停止、复位),不要把所有逻辑堆在一起。
  • 把稳定能力封在设备对象方法里(如 轴.回零()),Graph 只负责编排调用顺序和条件。
  • 等待条件用 Wait Until 节点,不要在代码中写轮询循环。
  • 外部 IO 和延时类操作由对象的异步方法封装,Graph 按正常端口调用即可。