4. 过程对象与CFC/SFC编程

在PCS 7中,CFC(Continuous Function Chart,连续功能图)和SFC(Sequential Function Chart,顺序功能图)是两种互补的编程语言。CFC负责连续调节与联锁逻辑,SFC负责按步骤推进的顺序控制。理解两者的分工,是创建简单控制回路的前提。

一、CFC与SFC的分工

CFC基于功能块图,每个功能块有输入、输出和内部参数,块与块之间用信号线连接。它适合表达模拟量处理、PID调节、设备联锁等连续执行的任务。SFC则把控制过程拆成若干步(Step)和转换条件(Transition),只有当前步激活且转换条件满足时,才进入下一步。它适合表达启停顺序、阀门开关序列、批次投运等离散过程。

一个典型的简单控制回路往往同时用到两者:CFC实现液位PID调节,SFC实现该回路的投运与停车顺序。两者通过共享的CFC块输出或SFC步标志位交换信息。

简单液位控制回路:CFC调节 + SFC顺序投运 CFC 连续功能图(连续执行) 液位变送器 LT-101 量程转换 0~100% PID 调节块 PID_LIC101 输出限幅 0~100% 调节阀 FV-101 高液位联锁 LSHH-101 联锁关阀 PID 示例参数 SP = 60% PV = LT-101 Kp = 1.8 Ti = 25 s Td = 0 s 输出限幅 0~100%,反作用(液位升高→开阀) 采样周期 OB35 = 100 ms SFC 顺序功能图(顺序执行) S1 初始步:阀关、PID手动 S2 开阀、PID投自动 S3 液位稳定在SP附近 S4 停车:PID手动、阀关 T1: 启动按钮 T2: |PV-SP|<5% T3: 停车按钮 SFC→CFC 自动/手动 CFC→SFC PV/报警

二、创建CFC控制回路

在SIMATIC Manager中打开CFC编辑器,从主数据库中拖入所需功能块。以液位控制为例,典型信号链为:LT-101模拟量输入→量程转换块→PID控制块→输出限幅→FV-101模拟量输出。每个块需要设置参数,例如PID块的SP(设定值)设为60%,Kp=1.8,Ti=25 s,Td=0 s,作用方向为反作用(液位升高时开阀)。采样周期应与OB35中断周期一致,示例中设为100 ms。

块与块之间的连接通过拖拽输出引脚到输入引脚完成。连接完成后,CFC会自动生成对应的CFC运行组,并编译下载到CPU。需要注意:模拟量输入块要设置正确的量程上下限,输出块要设置限幅范围,否则PID输出可能超出阀门可接受范围。

三、创建SFC顺序控制

SFC编辑器以步和转换条件为基本元素。示例顺序为:S1初始步(阀关、PID手动)→T1启动按钮→S2开阀、PID投自动→T2液位稳定(|PV-SP|<5%)→S3稳定运行→T3停车按钮→S4停车(PID手动、阀关)。每个步可以关联CFC中的块参数,例如在S2中把PID的自动/手动位写为自动,在S4中写回手动。

转换条件可以是布尔变量、比较表达式或CFC块输出。T2使用比较块判断液位偏差,只有偏差小于5%时才允许进入S3。SFC支持单步、连续和步进模式,调试时可先用手动步进观察每一步的动作是否正确。

四、联锁与安全

高液位联锁LSHH-101独立于SFC顺序,直接作用于FV-101的关阀回路。在CFC中,联锁信号通过OR块或选择块叠加到输出上,确保无论SFC处于哪一步,只要联锁触发,阀门立即关闭。联锁逻辑应放在独立的CFC运行组中,并设置较高的执行优先级。

调试建议:先单独测试CFC回路,确认PID输出随PV变化方向正确;再测试SFC步进,确认每一步动作和转换条件;最后联调联锁,模拟LSHH-101触发,观察阀门是否立即关闭。

五、编译下载与在线观察

CFC和SFC都需要编译生成OB块,下载到CPU后通过在线/离线比较确认版本一致。在CFC在线模式下可以观察每个块的输入输出值,在SFC在线模式下可以看到当前激活步和转换条件状态。若PID输出不变化,先检查采样周期是否与OB35匹配,再检查PV是否正常更新。

检查项示例值判断依据
PID采样周期100 ms与OB35一致
SP设定值60%与工艺要求一致
输出限幅0~100%不超出阀门行程
联锁响应立即关阀LSHH-101触发后FV-101关

完成以上步骤后,一个包含CFC连续调节和SFC顺序投运的简单控制回路即可运行。实际工程中还需根据工艺要求调整PID参数、增加报警和趋势记录,但基本编程方法一致。