3. 产线对象与工艺分解

虚拟调试的第一步不是打开仿真软件,而是把真实产线"翻译"成可被PLC程序驱动的对象模型。如果对象划分错了,后面无论信号映射多精确、仿真多流畅,调试出来的程序都无法直接下装到现场。本节以一条典型的"上料—输送—分拣—装配—包装—下料"六工位产线为例,说明如何把机械动作拆解为可编程的工位对象,并梳理节拍、互锁、安全与故障四类约束。

一、把产线切成"可编程工位"

工位划分的原则是:一个工位对应一组由同一段PLC逻辑协调、共享同一套安全边界的执行机构。划分过粗,逻辑耦合难以复用;划分过细,信号数量爆炸且节拍难以对齐。以示例产线为例,可划分为六个工位对象:

  • ST10 上料工位:料仓、推料气缸、上料到位检测。核心动作是"推料—到位确认—退回"。
  • ST20 输送工位:变频输送带、入口/出口光电、编码器。核心是"启停、速度给定、位置跟踪"。
  • ST30 分拣工位:视觉/颜色传感器、分流气缸或摆臂、剔除料道。核心是"识别—判定—分流"。
  • ST40 装配工位:伺服压装、定位夹具、力/位移监控。核心是"夹紧—压装—保压—松开"。
  • ST50 包装工位:折盒、放料、封口、贴标。核心是"多轴顺序动作"。
  • ST60 下料工位:码垛或输出皮带、满料检测。核心是"计数—输出—复位"。

每个工位对象在程序中应具备统一接口:Enable(使能)、Ready(就绪)、Busy(运行中)、Done(完成)、Fault(故障)、Reset(复位)。这样上位调度只需按顺序调用,而不必关心工位内部细节。

二、动作拆解:从机械运动到状态机

以ST40装配工位为例,其动作可拆为五个状态:Idle → Clamp → Press → Hold → Release。每个状态对应明确的进入条件、执行输出和退出条件。例如压装阶段,伺服轴以位置模式下行,同时监控压装力;当位移到达设定值(示例:12.0 mm)或力达到阈值(示例:800 N)时进入保压,保压时间示例取0.5 s。这种"状态+条件"的拆解方式,正是虚拟调试中建立仿真模型的基础。

输送工位则不同,它更接近连续过程而非离散状态。通常用"速度给定+位置跟踪"描述:PLC输出0~10 V或总线速度字,编码器反馈脉冲用于计算工件位置。示例中输送带线速度取0.3 m/s,编码器分辨率1000 ppr,则每毫米对应脉冲数约为3.33,工件从入口到分拣点的距离若为900 mm,对应约3000个脉冲。这个换算关系必须在虚拟调试前确认,否则分拣触发时刻会整体偏移。

三、节拍:产线的"心跳"

节拍(Cycle Time)是虚拟调试中最关键的参数之一。整线节拍由最慢工位决定,示例产线各工位节拍如下表(均为教学示例值,非实测):

工位主要动作示例节拍
ST10 上料推料+到位+退回2.0 s
ST20 输送900 mm 输送3.0 s
ST30 分拣识别+分流1.5 s
ST40 装配夹紧+压装+保压4.5 s
ST50 包装折盒+放料+封口3.5 s
ST60 下料计数+输出1.5 s

可见ST40是瓶颈工位,整线节拍约4.5 s。虚拟调试时,仿真模型必须能复现这个节拍,否则无法验证程序在高节拍下的互锁响应是否及时。

四、互锁、安全与故障场景

互锁分为三类:工艺互锁(如ST40未夹紧则禁止压装)、位置互锁(如ST30分流气缸未到位则输送带不得启动)、安全互锁(如安全门打开则所有运动轴进入STO)。安全信号必须独立于普通逻辑,在虚拟调试中通常用安全PLC或安全仿真模块单独建模。

故障场景梳理的目标是让程序在异常时"可预测地停"。常见场景包括:工件卡滞导致光电长时间不变化、气缸动作超时、伺服过载、安全门误触发、急停按下。每个场景都应定义检测条件、响应动作和恢复方式。例如"气缸动作超时"可定义为:输出置位后2 s内未收到到位信号,则置Fault并停止本工位,等待人工复位。

建议在虚拟调试前,为每个工位建立一张"故障场景表",至少包含:故障名称、检测信号、判定条件、响应动作、恢复方式。这张表是后续编写故障处理逻辑和测试用例的直接依据。
典型产线工位对象与工艺流 ST10 上料 推料/到位/退回 ST20 输送 启停/速度/跟踪 ST30 分拣 识别/判定/分流 ST40 装配 夹紧/压装/保压 ST50 包装 折盒/放料/封口 ST60 下料 计数/输出/复位 节拍对比(示例值) ST10 2.0 s ST20 3.0 s ST30 1.5 s ST40 4.5 s ← 瓶颈 ST50 3.5 s ST60 1.5 s 互锁 / 安全 / 故障场景 工艺互锁:ST40未夹紧 → 禁止压装 位置互锁:ST30气缸未到位 → 输送带禁启 安全互锁:安全门开 → 运动轴STO 故障:气缸超时2s未到位 → Fault停机 人工复位后重新使能

五、从对象到可执行的调试清单

完成上述分解后,虚拟调试的输入就清晰了:每个工位的状态机、节拍参数、互锁条件、故障判定。建议在开始仿真前,先输出一份"工位对象定义表",字段包括:工位编号、执行机构、输入信号、输出信号、状态列表、节拍、互锁条件、故障场景。这份表既是PLC程序的编写依据,也是仿真模型的搭建依据,更是后续测试用例的来源。

需要强调的是,节拍、力值、位移等参数在虚拟调试阶段应明确标注为"示例值"或"设计目标值",待现场实测后再修正。虚拟调试的价值在于提前验证逻辑正确性和互锁完整性,而不是替代现场标定。把对象拆清楚、把约束写明白,后续的仿真与联调才有意义。