这是一个用于SICK microScan3 安全激光扫描仪的西门子TIA Portal SCL功能块,由西门子、大众、奥迪联合开发,
主要功能是:
- 监控扫描仪的监控案例(监控场)编号比较安全/非安全切断路径通道状态驱动HMI颜色动画显示输出故障报警信号
三、程序逻辑详解
第1步:案例编号及状态判断
#xistFallNr := (#ST_PLS_microScan3.CurrentMonitorCaseNo = #FallNr);#xistSafetyaktiv := #ST_PLS_microScan3.RunModeactive;#xWarn := #ST_PLS_microScan3.ContaminationWarning;
-
- 判断扫描仪当前激活的监控案例是否与参数
FallNr
-
- 一致读取扫描仪运行模式和污染警告状态
第2步:8路切断路径通道比较(核心逻辑)
以**切断路径1(X0位)**为例(其余X1~X7完全相同结构):
Maske.X0 = 1(该路径启用)├─ SafeCutOffPaths.X0 ≠ Maske.X0(安全通道异常)│ ├─ xistSafeKanal = FALSE│ ├─ FreigabeK[1] = FALSE(暂时锁定)│ └─ NonsafeCutOffPaths.X0 ≠ Maske.X0(非安全通道也异常)│ ├─ TRUE → xistnonSafeKanal = FALSE(人在区域内)│ └─ FALSE → FreigabeK[1] = #FreigabeK(非安全通道正常,可释放)└─ SafeCutOffPaths.X0 = Maske.X0(安全通道正常)└─ FreigabeK[1] = #FreigabeK(正常释放)
逻辑含义总结:
| 安全通道 | 非安全通道 | 含义 |
|---|---|---|
| 正常 | 正常 | 人在区域外,完全正常 |
| 异常 | 正常 | 人在预警区(非安全区),但未进入安全区 |
| 异常 | 异常 | 人进入安全保护区域 |
第3步:污染警告与准备好逻辑
#TOF_Bereit(IN := (#xistSafeKanal AND (NOT #xWarn OR #K40K)) OR NOT #xistSafeKanal,PT := T#1500ms);#xF_Bereit := NOT #TOF_Bereit.Q;
-
- 关断延时定时器:当安全通道正常且无污染警告时,延时1500ms后才确认"准备好"
xF_Bereit = TRUE
-
- 表示
尚未准备好
第4步:指示灯驱动(PF_Frg)
xPF_Frg_DL(常亮) = 无警告 AND 已就绪 AND 已释放xPF_Frg_BL(慢闪) = 无警告 AND 已就绪 AND 未释放xPF_Frg_BS(快闪) = 有污染警告 OR 未就绪
指示灯最终输出结合 DB_ARG.STEU_EIN(控制使能)、闪烁时钟位和灯测信号。
第5步:HMI颜色动画
| 条件 | 颜色代码 | 含义 |
|---|---|---|
| 案例不匹配,无应用错误 | 16#0(灰色) | 该案例未激活 |
| 案例不匹配,有应用错误 | 16#04(红色) | 应用层错误 |
| K40K + 污染警告/错误 | 16#0E(浅蓝闪烁) | 扫描仪受污染 |
| 未释放 + 两通道均异常 | 16#06(黄色) | 人在保护区内 |
| 未释放 + 两通道均正常 | 16#0B(绿色闪烁) | 人在区域外但未释放 |
| 已释放 + 仅安全通道异常 | 16#03(蓝色) | 人在预警区,已释放 |
| 未释放 + 仅安全通道异常 | 16#0C(蓝色闪烁) | 人在预警区,未释放 |
| 已释放 + 两通道均正常 | 16#02(绿色) | 区域空闲,正常释放 |
第6步:故障监控与链式故障
#"001" := #xF_Bereit AND #xistFallNr; // 未准备好(当前案例激活时)#"002" := NOT #FreigabeK AND #xistFallNr AND #Cfg.%X1; // 未释放报警(需配置位使能)#"003" := #FreigabeK AND NOT #xistSafeKanal AND #xistFallNr; // 反馈回路异常#Stoe := #"002" OR #"003"; // 本块汇总故障#VkStoe_Out := #Stoe OR #VkStoe_In; // 向下游传递链式故障
四、整体逻辑流程图
上电/每周期│├─[1] 读取扫描仪状态(案例号、运行模式、污染)│├─[2] 按Maske遍历8路切断路径│ ├─ 比较Safe通道 → xistSafeKanal│ └─ 比较NonSafe通道 → xistnonSafeKanal│├─[3] 延时确认准备好状态(TOF 1500ms)│├─[4] 输出释放信号 Freigabe := Frg│├─[5] 驱动指示灯 PF_Frg│├─[6] 更新HMI颜色动画│└─[7] 生成故障位 → 链式传递VkStoe_Out
五、关键设计特点
双通道冗余监控:同时比较Safe和NonSafe两个独立通道,符合安全功能冗余要求
链式故障传递:VkStoe_In → VkStoe_Out 支持多块串联的故障汇总
可配置报警:通过 Cfg.X1 控制"未释放"报警是否上报,灵活适配不同工位需求
HMI状态可视化:8种颜色状态覆盖所有运行场景,便于现场快速判断
167
