SICAR 标准功能块 FB3352 (MODE)工作模式功能块
一、MODE功能块功能
MODE 功能块在整个系统中起着核心的模式管理与控制作用,它通过对多种输入信号的处理和逻辑判断,实现了系统运行模式的切换、状态监测、安全保护以及模式状态的准确反馈等功能,下面进行详细描述:
1. 模式选择与切换
- 自动与手动模式切换:功能块依据
SetAutoModeSelPB
(自动模式选择)和Ext_ManualModeSelPB
(手动模式选择)信号来确定系统的运行模式。借助上升沿检测与SR
触发器,实现自动和手动模式的可靠切换,并且保证两种模式互斥,即同一时间只能处于一种模式。例如,当按下#Mode.Hmi_PB.Auto
(HMI 自动模式按钮)且自动模式未激活时,会触发自动模式;按下#Mode.Hmi_PB.Manual
(HMI 手动模式按钮)且自动模式已激活时,则切换到手动模式。 - 全局与局部模式关联:通过
GlobalMode
和Mode
输出信号,将全局模式和具体模式信息反馈给系统其他部分,使整个系统能够协调工作。
2. 启动与复位控制
- 启动逻辑:当外部启动按钮
#Ext_StartPB
导通时,驱动#Mode.StartPB
。在自动模式下,#Mode.StartPB
导通会启动延时定时器#TON_Start
(预设时间 3s),当定时器输出Q
与一系列条件(如外部自动模式选择、未选手动模式、自动模式标志位、所有机器人处于自动模式、无高级报警、硬件正常、通讯正常)都满足时,驱动#Mode.AutoModeRun
(自动模式运行信号),并通过自锁保持运行状态。 - 复位逻辑:整合
#Mode.Hmi_PB.Rest
(HMI 复位按钮)和#Ext_ResetPB
(外部复位按钮)的信号,当任一按钮按下时,驱动#Mode.RsetPB
(模式复位信号)和#GlobalMode.RsetPB
(全局模式复位信号)。同时,当#Mode.Hmi_PB.Rest
导通时,启动延时定时器#TON_Reset
(预设时间 0.5s),定时器输出Q
导通后复位#Mode.Hmi_PB.Rest
,避免复位信号持续有效。
3. 状态监测与保护
- 硬件与通讯状态监测:通过
HardwareOK
(硬件正常)和BusOK
(通讯正常)信号,分别驱动#Mode.*Hardware OK*
和#Mode.BusOK
,实时监测硬件和通讯状态。只有当硬件和通讯都正常时,系统才可能进入正常运行模式。 - 安全状态监测:当
SafetyOK
(安全状态信号)不导通时,驱动#Mode.HighAlarm
(高级报警信号)。在手动模式运行条件判断中,若有高级报警(#Mode.HighAlarm
导通),则阻止手动模式运行,保障系统安全。
4. 模式状态细化与稳定处理
- 工件位置状态监测:针对
#A_Side_InMulStation
(A 面在上件位检测信号)和#B_Side_InMulStation
(B 面在上件位检测信号),分别触发断电延时定时器#TIMER[0]
和#TIMER[1]
(预设时间 100ms),定时器输出Q
驱动#Mode.A_Side_InMulStation
和#Mode.B_Side_InMulStation
,避免因信号抖动导致误判,提升系统对工件位置检测的可靠性。 - 屏蔽与空循环模式控制:通过复位指令对
#Mode.Bypass
(屏蔽状态)和#Mode.DryRun
(工位空循环模式)进行复位操作,确保系统屏蔽功能处于初始关闭状态,且不处于测试性的空循环状态,保障系统按正常模式运行。
5. 报警管理
- 报警类别输出:将不同类型的报警模式(
#Mode.AlarmA
-#Mode.AlarmD
)集中映射到对应的报警输出(#Alarm."1"
-#Alarm."4"
),便于统一管理和识别报警类别。 - 报警状态重置:通过复位指令依次对
#Mode.AlarmA
、#Mode.AlarmB
、#Mode.AlarmC
、#Mode.AlarmD
进行复位,清除所有报警模式的当前状态,为后续报警检测做准备。
MODE 功能块通过对多种输入信号的综合处理和逻辑判断,实现了系统运行模式的灵活切换、状态的准确监测与反馈以及安全保护等功能,确保整个系统能够稳定、可靠地运行。
mode功能块外观:
二、功能块引脚描述
2.1 内部输入引脚
2.2 内部输入输出引脚
2.3 内部静态变量
2.4 功能块输入输出引脚
引脚名称 | 输入 / 输出 | 引脚描述 |
---|---|---|
Set_StartPB | 输入 | 连接 “Global.Key_Start”,接收全局启动按钮信号,用于触发系统启动相关逻辑 |
Set_ResetPB | 输入 | 连接 “Global.Key_Reset”,接收全局复位按钮信号,用于系统复位操作 |
AutoNoBypass | 输入 | 连接 “Global.Key_AutoNoBypass”,表示无旁路自动模式的设置输入 |
SetAutoModeSelPB | 输入 | 连接 “Global.Key_AutoModeSel”,用于设置自动模式选择信号 |
Ext_ManualModeSelPB | 输入 | 外部手动模式选择按钮输入,触发手动模式逻辑 |
HardwareOK | 输入 | 硬件状态正常信号输入,表明系统硬件无故障 |
BusOK | 输入 | 总线通讯正常信号输入,表明通讯链路正常 |
SafetyOK | 输入 | 安全状态信号输入,反映系统安全条件是否满足(如无急停、防护门关闭等) |
A_Side_InMulStation | 输入 | A 面在上件位的检测信号输入 |
B_Side_InMulStation | 输入 | B 面在上件位的检测信号输入 |
AllRobot_AutoMode | 输入 | 所有机器人处于自动模式的状态信号输入 |
AllStation_AutoPB | 输入 | 所有工位自动模式按钮的信号输入 |
AllStation_ManualPB | 输入 | 所有工位手动模式按钮的信号输入 |
GlobalMode | 输入输出 | 输出全局模式信号,综合各输入条件定义系统整体运行模式 |
Mode | 输入输出 | 输出具体模式信号,细化系统当前所处的运行模式(如自动、手动等) |
三、功能块内部程序
3.1、1-3#程序段
3.1.1、1截图
3.1.2 程序解释
程序段 1:启动按钮
- 逻辑:当外部启动按钮触点
#Ext_StartPB
导通时,驱动#Mode.StartPB
。 - 作用:将外部启动信号映射到模式控制信号,为系统启动相关逻辑提供触发条件。
程序段 2:硬件正常、通讯正常
- 逻辑:
- 第一行:若硬件正常信号
#HardwareOK
导通,驱动#Mode.*Hardware OK*
(硬件正常标识位)。 - 第二行:若总线通讯正常信号
#BusOK
导通,驱动#Mode.BusOK
(通讯正常标识位)。
- 第一行:若硬件正常信号
- 作用:通过硬件和通讯状态信号更新模式标识位,用于系统状态监控及后续逻辑判断。
程序段 3:复位
- 逻辑:当
#Mode.Hmi_PB.Rest
导通时,启动延时定时器#TON_Reset
(预设时间PT = 0.5s
);定时器输出Q
导通后,复位#Mode.Hmi_PB.Rest
。 - 作用:避免
#Mode.Hmi_PB.Rest
信号持续有效,通过延时自动复位,确保复位操作短时触发。
3.2、4-5#程序段
3.2.1截图
3.2.2 程序解释
程序段 4:复位按钮
- 逻辑:
#Mode.Hmi_PB.Rest
(HMI 复位按钮)与#Ext_ResetPB
(外部复位按钮)并联(“或” 逻辑),任一导通时:- 驱动
#Mode.RsetPB
(模式复位信号)。 - 置位
#GlobalMode.RsetPB
(全局模式复位信号)。
- 驱动
- 作用:整合 HMI 和外部复位信号,统一触发系统复位,保证复位操作的便捷性与冗余性。
程序段 5:模式选择
- 逻辑:
#Mode.Hmi_PB.Auto
触发上升沿检测(P_TRIG
),若#Mode.Auto_Mode
未激活(常闭触点导通),驱动#ClickOn
。#Mode.Hmi_PB.Manual
触发上升沿检测(P_TRIG
),若#Mode.Auto_Mode
激活(常开触点导通),驱动#ClickOff
。- 通过
SR
(置位优先)触发器,#ClickOn
置位#Mode.Auto_Mode
,#ClickOff
或#Ext_ManualModeSelectPB
复位#Mode.Auto_Mode
。 #Mode.Auto_Mode
的常闭触点驱动#Mode.Manual_Mode
,实现自动与手动模式互斥。
- 作用:通过上升沿检测与触发器,实现自动 / 手动模式的可靠切换与状态保持,确保每次操作仅触发一次模式切换。
3.3、6-9#程序段
3.3.1 程序截图
3.3.2 程序解释
程序段 6,7:手动模式
- 逻辑:
- 两个并联支路:
#Ext_ManualModeSelectPB
+#Mode.HighAlarm
常闭(无高级报警) +#Mode.Manual_Mode
。#Mode.Manual_Mode
自锁。
- 驱动
#Mode.ManualModeRun
(手动模式运行信号)。
- 两个并联支路:
- 作用:在无高级报警时,通过外部按钮或模式自锁启动手动模式运行,确保安全条件下手动操作的执行。
程序段 8:高级报警
- 逻辑:当
#SafetyOK
不导通(安全异常)时,驱动#Mode.HighAlarm
(高级报警信号)。 - 作用:检测到安全异常时激活高级报警,该信号在程序段 6 中作为条件,若有高级报警则阻止手动模式运行,保障系统安全。
程序段 9:所有机器人在自动模式
- 逻辑:当触点
#AllRobot_AutoMode
(所有机器人处于自动模式的信号)导通时,驱动#Mode.Sp031
。 - 作用:用于标识所有机器人已处于自动模式,为后续程序段(如自动模式运行条件判断)提供关键状态信号。
3.4、10-13#程序段
3.4.1 程序截图
3.4.2程序解释
程序段 10:自动模式运行
- 逻辑:
#Mode.StartPB
导通时,启动延时定时器#TON_Start
(预设时间PT = 3s
)。- 定时器输出
Q
与以下条件串联:#Ext_AutoModeSelectPB
(外部自动模式选择按钮,导通表示选择自动模式)。#Ext_ManualModeSelectPB
的常闭触点(未选择手动模式)。#Mode.Auto_Mode
(自动模式标志位,导通表示激活自动模式)。#AllRobot_AutoMode
(所有机器人处于自动模式)。#Mode.HighAlarm
的常闭触点(无高级报警)。#Mode."Hardware OK*"
(硬件正常)。#Mode.BusOK
(通讯正常)。
- 满足上述所有条件时,驱动
#Mode.AutoModeRun
(自动模式运行信号),且通过下方#Mode.AutoModeRun
的触点实现自锁,保持运行状态。
- 作用:确保在启动信号有效、延时到位、模式选择正确、机器人状态正常、无报警且硬件通讯均正常的情况下,激活并保持自动模式运行,保障系统按自动流程可靠工作。
程序段 11:A 面在上件位
- 逻辑:
- 第一行:当
#A_Side_InMulStation
(A 面在上件位检测信号)导通时,触发断电延时定时器#TIMER[0]
(预设时间PT = 100ms
),定时器输出Q
驱动#Mode.A_Side_InMulStation
。 - 第二行:当
#B_Side_InMulStation
(B 面在上件位检测信号)导通时,触发断电延时定时器#TIMER[1]
(预设时间PT = 100ms
),定时器输出Q
驱动#Mode.B_Side_InMulStation
。
- 第一行:当
- 作用:通过断电延时定时器对 A 面、B 面在上件位的信号进行处理,确保信号稳定后再更新对应的模式状态(
#Mode.A_Side_InMulStation
、#Mode.B_Side_InMulStation
),避免因信号抖动导致误判,提升系统检测的可靠性。
程序段 12:重置屏蔽状态
- 逻辑:通过复位指令
{R}
对#Mode.Bypass
进行复位操作。 - 作用:清除
#Mode.Bypass
(屏蔽状态)的激活状态,确保系统屏蔽功能处于初始关闭状态,避免异常屏蔽影响系统运行。
程序段 13:工位空循环模式不启用
- 逻辑:利用复位指令
{R}
复位#Mode.DryRun
。 - 作用:关闭工位空循环模式(
#Mode.DryRun
),确保系统处于正常运行模式,而非测试性的空循环状态,保障功能的正确执行。
这四个程序段从系统运行模式、检测可靠性以及初始状态等多个方面进行控制和优化,以保证整个系统能够高效、稳定且准确地运行。
3.5、14-15#程序段
3.5.1 程序截图
3.5.2 程序解释
程序段 13:报警类别集中输出
- 逻辑:
#Mode.AlarmA
导通时,驱动#Alarm."1"
。#Mode.AlarmB
导通时,驱动#Alarm."2"
。#Mode.AlarmC
导通时,驱动#Alarm."3"
。#Mode.AlarmD
导通时,驱动#Alarm."4"
。
- 作用:将不同类型的报警模式(
#Mode.AlarmA
-#Mode.AlarmD
)集中映射到对应的报警输出(#Alarm."1"
-#Alarm."4"
),便于统一管理和识别报警类别,提升系统报警处理的清晰度与效率。
程序段 14:报警轮询重置
- 逻辑:通过复位指令
{R}
依次对#Mode.AlarmA
、#Mode.AlarmB
、#Mode.AlarmC
、#Mode.AlarmD
进行复位。 - 作用:清除所有报警模式的当前状态,为后续报警检测做准备,避免历史报警信号干扰新报警的判断,确保报警系统的准确性和可靠性。
这两个程序段分别针对系统的报警输出及报警状态进行管理,通过复位操作和信号映射,保障系统状态的清晰、模式的正确切换以及报警处理的高效可靠。