3. PCS 7项目结构与CFC/SFC编程基础

在PCS 7中,项目结构不是简单的文件夹分类,而是与自动化系统的实际硬件层级、控制逻辑组织方式直接对应的工程骨架。理解项目层级、工厂层级以及CFC/SFC两类编程语言在开停车逻辑中的分工,是后续联调与故障排查的基础。

项目层级与工厂层级:从工程视图到工厂视图

PCS 7项目在SIMATIC Manager中呈现为树形结构,顶层是项目(Project),其下通常包含两个关键视图:组件视图(Component View)和工厂视图(Plant View)。组件视图面向硬件与网络,展示AS站、OS站、网络、远程I/O等实际设备;工厂视图面向工艺过程,按车间、装置、单元、设备逐层组织,最终映射到CFC/SFC程序中的控制模块。

工厂层级的典型划分是:工厂(Plant)→ 装置(Unit)→ 设备(Equipment)→ 控制模块(CM)。例如某化工装置中,一个反应釜单元下可挂搅拌电机、进料阀、温度变送器等设备,每个设备对应一个CFC中的功能块实例或SFC顺序。工厂层级的意义在于:它让程序结构与工艺对象一一对应,当操作员在OS画面上点击某个设备时,后台能快速定位到对应的CFC块和SFC步序,这对开停车过程中的逐台设备确认至关重要。

需要特别注意的是,工厂层级中的“设备”并不等于物理设备本身,而是该设备在自动化系统中的控制逻辑容器。一个物理泵可能对应一个CFC中的电机控制块,也可能对应一个包含启停逻辑、联锁、报警的复合控制模块。层级划分的粒度由工程实际决定,但原则是:开停车时需要独立操作或独立判断状态的工艺对象,应作为独立的控制模块存在。

CFC连续功能图:连续控制与联锁逻辑的载体

CFC(Continuous Function Chart)是PCS 7中用于连续控制、模拟量处理、联锁逻辑和回路控制的主要编程语言。它采用图形化功能块连接方式,每个功能块有明确的输入/输出引脚,通过连线定义信号流向。CFC的执行是周期性的,每个扫描周期按块顺序执行,因此适合处理连续变化的模拟量、PID回路、设备启停保持逻辑以及安全联锁。

在开停车逻辑中,CFC承担的角色是“状态保持与条件判断”。例如,一个进料泵的启动条件可能包括:上游储罐液位高于低限、下游阀门已打开、无联锁停车信号。这些条件在CFC中通过比较块、逻辑块和RS触发器组合实现。当条件满足时,CFC输出启动指令;当条件消失时,CFC根据逻辑决定是保持运行还是触发停车。

以一个典型的电机控制块为例,其CFC内部通常包含以下关键引脚和逻辑:

  • Start:启动输入,来自SFC步序或操作员手动指令;
  • Stop:停止输入,优先级高于启动;
  • Interlock:联锁停车输入,直接复位输出;
  • Run_FB:运行反馈,来自接触器辅助触点或电流检测;
  • Output:输出到现场执行机构。

在CFC中,联锁逻辑通常采用“常闭”设计原则:即联锁条件正常时信号为1,联锁触发时信号变为0,通过AND逻辑与启动指令串联。这样一旦联锁信号丢失,输出立即复位,无需额外判断。这种设计在停车逻辑中尤为重要,因为停车过程往往要求快速、可靠地切断输出。

SFC顺序功能图:开停车步序的调度器

SFC(Sequential Function Chart)是PCS 7中用于顺序控制的编程语言,其核心是步(Step)与转换(Transition)的交替结构。每一步代表一个稳定的工艺状态,转换条件满足时从当前步进入下一步。SFC特别适合开停车这种具有明确阶段划分、需要按顺序执行并等待条件确认的过程。

在开车逻辑中,SFC通常按以下方式组织:初始步等待启动指令,转换条件满足后进入“准备”步,检查公用工程和联锁条件;然后进入“启动设备”步,按顺序启动润滑泵、冷却风机、主电机;每一步都设置转换条件,例如“润滑泵运行反馈为1且油压大于0.15MPa”才允许进入下一步。这种逐步确认的方式避免了设备在条件不满足时强行启动。

停车逻辑则相反,通常采用“逆序停车”或“分组停车”策略。SFC从运行步进入“停止进料”步,等待进料阀关闭反馈;然后进入“停止搅拌”步,等待电机停运反馈;最后进入“停止公用工程”步。每一步的转换条件都包含实际反馈信号,确保前一步动作确实完成后再执行下一步。

CFC与SFC的配合关系可以概括为:SFC负责“什么时候做什么”,CFC负责“具体怎么做以及是否允许做”。SFC发出启动指令给CFC中的控制块,CFC根据联锁和反馈条件执行并返回状态;SFC等待该状态满足转换条件后进入下一步。这种分工使得开停车逻辑既具有顺序性,又具有安全性和灵活性。

PCS 7 项目层级与 CFC/SFC 在开停车中的协作关系 工厂层级(Plant View) 工厂 Plant 装置 Unit(反应单元) 设备 Equipment(进料泵) 控制模块 CM(电机块) CFC 功能块实例 SFC 顺序控制 CFC 连续功能图 启动条件 AND / OR 联锁判断 Interlock RS 触发器 / 电机控制块 Start / Stop / Run_FB 输出到执行机构 Output → 接触器 / 阀门 反馈信号采集 Run_FB / 故障 / 报警 SFC 顺序功能图 初始步:等待启动 步1:准备检查 步2:启动润滑泵 步3:启动主电机 步4:运行监控 停车步序(逆序) T1: 启动指令=1 T2: 公用工程OK T3: 油压>0.15MPa T4: 运行反馈=1 启动指令 状态反馈 SFC 负责步序调度与转换判断;CFC 负责联锁、保持与输出执行

开停车逻辑中的实际配合示例

以某反应釜开车为例,SFC步序与CFC的配合过程如下:SFC处于“步2:启动润滑泵”时,向CFC中的润滑泵控制块发出Start=1信号;CFC检查联锁条件(油温正常、无停车信号),若满足则输出启动指令,并等待Run_FB=1;当Run_FB=1且油压变送器信号大于0.15MPa时,SFC的转换条件T3满足,进入“步3:启动主电机”。若在步2中油压始终不满足,SFC停留在步2并触发超时报警,操作员可检查润滑泵或油路。

停车时,SFC从“步4:运行监控”接收到停车指令,进入“停止进料”步,向CFC中的进料阀控制块发出Close指令;CFC执行关闭动作并返回阀位反馈;SFC等待阀位反馈为“关到位”后,进入“停止搅拌”步,向搅拌电机控制块发出Stop指令。整个停车过程按逆序逐步执行,每一步都确认前一步完成,避免设备在物料未切断时突然停搅拌导致沉积。

工程提示:在CFC中编写联锁逻辑时,建议将联锁条件集中放在一个独立的CFC图表中,并标注每个条件的来源和旁路权限。SFC的转换条件应尽量引用CFC中已经处理好的状态位,而不是直接引用原始模拟量,这样可以避免SFC中重复判断逻辑,也便于联调时逐点确认。

项目结构与编程的对应关系

在SIMATIC Manager中,工厂视图的层级直接决定了CFC/SFC程序的存放位置。通常每个“设备”层级下创建一个CFC图表,用于该设备的连续控制逻辑;每个“单元”层级下创建一个SFC图表,用于该单元的开停车步序调度。这种组织方式使得程序结构与工艺结构一致,联调时可以按单元逐个下装和测试,而不必一次性激活整个项目。

需要强调的是,CFC和SFC并不是互斥的。一个完整的开停车逻辑往往同时包含两者:SFC负责顺序调度,CFC负责每个设备的具体控制、联锁和状态保持。理解这一点,才能在后续的联调中快速定位问题——如果步序不往下走,先检查SFC的转换条件;如果设备不动作,再检查CFC中的联锁和输出。