博途GRAPH顺序控制的步与转换条件
在西门子博途(TIA Portal)编程环境中,GRAPH 是一种专门用于顺序控制的功能块编程语言。它将复杂的顺序逻辑拆解为“步”和“转换条件”两个核心元素,让程序结构一目了然。掌握这两个概念,是熟练运用 GRAPH 进行顺序控制开发的基础。
什么是 GRAPH 顺序控制
GRAPH 属于功能块图(FBD)家族的一员,核心思想是将一个完整的生产流程划分为若干个离散的“步”,每一步对应一个具体的生产动作或设备状态。步与步之间通过“转换条件”连接,只有满足转换条件,当前步才会切换到下一步。
与传统梯形图(LAD)或功能块图(FBD)相比,GRAPH 的优势在于:
- 可视化程度高:整个顺序流程以流程图形式呈现,逻辑关系一眼可见
- 调试方便:程序运行时可直观看到当前停留在哪一步
- 维护简单:修改或扩展流程只需调整步和转换条件,无需重构整个程序
GRAPH 特别适合包装机械、灌装生产线、传送带分拣等需要明确顺序逻辑的自动化设备。
步(Step)的深度解析
步的基本概念
步是 GRAPH 中的最小逻辑单元,代表工艺流程中的一个稳定状态。在一个完整的顺序链中,任何时刻有且仅有一个步处于激活状态(除非使用并行分支)。
每一个步包含两类动作:
| 动作类型 | 作用 | 触发时机 |
|---|---|---|
| 步激活时执行(N) | 当步被激活时立即执行一次 | 进入步的瞬间 |
| 步激活期间执行(S) | 只要步保持激活状态,每周期都执行 | 步激活的整个时间段 |
步的配置方法
在博途中创建 GRAPH 功能块后,按以下步骤添加和配置步:
-
创建新步:在 GRAPH 编辑器的流程编辑区域,点击 工具栏中的“插入步”图标,或在空白区域双击生成新步
-
命名步:选中 新建的步,在属性窗口的“常规”选项卡中 输入步名称(如
Step1_MotorOn),建议使用有意义的命名规则:Step序号_动作描述 -
编写步的动作:双击 步下方的动作框,选择 动作类型后编写 对应的程序代码
动作类型详解
GRAPH 为每个步提供了四种动作类型,分别对应不同的执行时机:
1. N(None)动作 - 步激活时执行一次
N S1 // 当Step1激活时,将S1置位为1
2. S(Set)动作 - 步激活期间持续置位
S Q0.0 // 只要当前步激活,Q0.0保持为1
3. R(Reset)动作 - 步激活期间持续复位
R M10.0 // 只要当前步激活,M10.0保持为0
4. D(Delayed)动作 - 延迟后执行
D T1 // 步激活5秒后(具体时间可配置),执行后续动作
步的配置示例:
步名称: Step2_ConveyorRun
动作:
N "ConveyorMotor" // 启动传送带电机
S "StatusRun" // 保持运行状态标志
转换条件(Transition)的深度解析
转换条件的基本概念
转换条件是连接相邻两步的“桥梁”,决定了步与步之间的切换逻辑。每个转换条件本质上是一个布尔表达式,当表达式结果为“TRUE”时,当前步才会转换到下一步。
转换条件可以包含:
- 输入信号:来自传感器、按钮的状态
- 定时器:时间延迟判断
- 计数器:计数到达判断
- 中间变量:程序中的标志位
- 运算结果:逻辑运算的输出
转换条件的配置方法
-
插入转换条件:点击 两个步之间的连线,在弹出的对话框中 选择“转换条件”
-
编写条件表达式:在转换条件的编辑区域,使用 LAD 或 FBD 方式编写 布尔条件
-
添加多个条件:如果需要多个条件组合判断,使用 AND(与)、OR(或)逻辑运算
转换条件的典型写法:
// 传感器检测到物料到位
"Ix_SensorDetect" AND NOT "Ix_SensorBypass"
// 计时5秒后
"T_5s".ET >= T#5s
// 计数达到10个
"Cnt_Package" >= 10
步与转换条件的连接方式
单序列
最基础的连接方式,步按线性顺序排列:
编程实现:
步1 (Step1_Init)
N M0.0 // 初始化标志
转换条件1 (T1)
I0.0 = 1 // 物料到位传感器
步2 (Step2_Process)
N Q0.0 // 启动加工动作
转换条件2 (T2)
I0.1 = 1 // 加工完成信号
选择序列
根据不同条件选择不同的执行分支:
并行序列
多个分支同时执行,待所有分支都完成后才进入下一步:
实现并行序列时,需要在转换条件中使用 & 运算符表示“与”关系:
转换条件1: I0.0 = 1
--> 激活 并行分支A 和 并行分支B
转换条件A: I0.1 = 1
转换条件B: I0.2 = 1
--> 只有当 两个条件都为TRUE 时,才进入步3
实战:完整的 GRAPH 程序示例
以一个简单的物料分拣系统为例,演示步与转换条件的完整配置。
工艺流程
- 系统启动,初始化设备
- 检测物料是否到位
- 物料到位后,启动传送带
- 物料到达分拣位置,根据类型分拣
- 分拣完成,等待下一个循环
程序配置
============================================
步与转换条件配置清单
============================================
步1: Step_Idle (待机状态)
动作:
R Q0.0 // 停止传送带
R Q0.1 // 停止分拣气缸
说明: 系统初始待机状态
转换条件1: T1_Start
条件: I0.0 AND M0.0 // 启动按钮与准备就绪
说明: 按下启动键且系统就绪
步2: Step_Check (检测物料)
动作:
S M1.0 // 标记检测中
说明: 检测物料是否到达到位传感器
转换条件2: T2_MaterialPresent
条件: I0.1 = 1 // 物料到位传感器检测到物料
说明: 物料已到达检测点
步3: Step_ConveyorRun (传送带运行)
动作:
S Q0.0 // 启动传送带电机
说明: 物料到位,启动传送带
转换条件3: T3_ReachSort
条件: I0.2 = 1 // 分拣位置传感器
说明: 物料到达分拣位置
步4: Step_Sort (执行分拣)
动作:
S Q0.1 // 伸出分拣气缸
D T1 // 延迟2秒后执行下一步
说明: 执行分拣动作
转换条件4: T4_SortComplete
条件: T1.ET >= T#2s // 定时器计时完成
说明: 分拣动作完成
步5: Step_Reset (复位)
动作:
R Q0.0
R Q0.1
R M1.0
说明: 复位所有输出,准备下一个循环
转换条件5: T5_NextCycle
条件: NOT I0.1 // 物料已离开
说明: 物料离开后自动进入下一个循环
关键配置参数
| 参数名称 | 值/类型 | 说明 |
|---|---|---|
| 初始化步 | Step_Idle | 系统上电后默认激活的步 |
| 错误监控 | TRUE | 启用错误监控功能 |
| 手动模式 | FALSE | 默认自动模式 |
| 确认错误 | FALSE | 不需要手动确认错误 |
常见问题与解决方法
问题一:转换条件满足但不跳转
原因分析:转换条件虽然为 TRUE,但可能存在以下问题:
- 前置步的动作中包含了保持输出的操作,导致设备状态未释放
- 定时器或计数器的初值未正确复位
解决方法:
- 检查 步动作中是否有
S(置位)操作未在后续步中用R(复位)清除 - 确认 定时器在转换条件中使用前已正确复位
- 添加 监控变量,观察转换条件的实际状态变化
问题二:并行分支无法同步汇合
原因分析:并行分支完成后,汇合处的转换条件未正确配置
解决方法:
- 确保 汇合处的转换条件使用
&运算符连接多个条件 - 验证 每个并行分支都有独立的完成条件
- 检查 是否存在某个分支因条件永远不满足而无法完成
问题三:步动作执行时机错误
原因分析:混淆了 N 动作和 S 动作的执行时机
解决方法:
- 需要在步激活瞬间执行一次的操作,使用
N动作(如启动脉冲) - 需要在步激活期间持续执行的操作,使用
S动作(如保持电机运行)
总结
博途 GRAPH 顺序控制的核心就是“步”和“转换条件”两个概念。步代表一个稳定的状态,转换条件决定状态之间的切换逻辑。掌握步的四类动作(N、S、R、D)和转换条件的三种连接方式(单序列、选择序列、并行序列),就能应对大多数顺序控制项目的需求。实际编程中,建议先在纸上绘制流程图,明确步和转换条件的关系,再在博途中逐一实现,可有效避免逻辑错误。

暂无评论,快来抢沙发吧!