机器人编程:VASS标准-FC641顺序块条件控制
2023-04-14 来源:机器人及PLC自动化应用
该块根据输入变量 "VerAuto" 和 "VerHand"(具体视已经选择的模式(手动或自动))生成输出"VerGes"。在自动模式中,如果存在同步错误,输出"VerGes" 将被阻塞。
收到来自"SK_Verwaltung" 的同步请求后,先将全部步设置成 FALSE ,再设置其转换条件已被满足的步。
转换条件由联锁条件“自动”(Automatic) 和输入 "FrgTrans"的转换条件组成。
顺序错误将会禁用顺序检索。在自动模式中时,若存在同步错误,也会禁用输出 "VerGes"。
如果在同步中发现了多个步,将对第一个步进行同步。此时输出可以适用于多个步的某条错误消息。
输入 "Cfg" 用于设置特殊功能:
- "Cfg Bit 00" 用于将某个步定义成等待步,也就是说, "Halt" 或 "Freigabe" [enable] 立即访问反馈。
- "Cfg Bit 01" 用于定义在内部不允许“停止”(Halt) 的某个步,也就是说,顺序在满足某个转换条件的情况下收到访问请求或停机请求后也不停止执行。
示教步时间
顺序执行期间,通过设置 "M10.7 ach_me_SK" 标志可以写入步时间;在在线状态期间,可以通过参数"SNO_Time" 读出步时间。
步时间 "+10 s" 将被组态成步监控时间 (TUeS) 。
对于处于循环时间期间的顺序,应为其计算该时间。
-FC641 顺序块控制-
-Cfg.X1选择什么时候发出K90- Schritt.T上一步的激活的时间
-Schritt.X上一步的激活状态 =1处于激活转台,=0没有激活
IF NOT Cfg.X1 AND Schritt.X THEN 1.下一步的条件满足时发出FR_K90
IF TransBed OR (NOT TransBed AND xHM_Zeit_abgelaufen) THEN
-当该步条件满足-或者该步条件不满足和上一步执行时间超过10S时间正常-
ST_BA.K90_SK := ST_BA.K90_SK;
xHM_K90Frg:= True; -发出允许请求进入-
ELSE
ST_BA.K90_SK := False;
xHM_K90Frg:= False;
END_IF;
END_IF;
IF Cfg.X1 AND Schritt.X THEN 2.下一步的条件没有满足时发出FR_K90
IF TransBed OR (NOT TransBed AND NOT xHM_Zeit_abgelaufen) THEN
ST_BA.K90_SK := False;
xHM_K90Frg:= False;
ELSIF NOT TransBed AND xHM_Zeit_abgelaufen THEN
-条件不满足时-上一步执行时间超过10S时间正常-
ST_BA.K90_SK := ST_BA.K90_SK;
xHM_K90Frg:= True; -发出允许请求进入-
END_IF;
END_IF;
IF Teach_Time_SK AND Schritt.S0 AND TransBed THEN
Schritt.S0上一步离开-本步的条件满足-Teach_Time_SK:M10.7-
SNO_Time :=Schritt.T ; 上一步的激活时间
END_IF;
tHM_SUe:= SNO_Time * 13 / 10 当前步时间的换算
IF TUe_S = T#0s THEN 如果外部设置的等待时间是0s
IF (Schritt.T > tHM_SUe)AND (tHM_SUe > T#0s) THEN 比较上一步的T条件时间
xHM_Zeit_abgelaufen := True ;激活允许请求
ELSE
xHM_Zeit_abgelaufen := False ; 关闭允许请求
END_IF;
ELSE -TUe_S=10S如果外部设置的等待时间不是0s
IF Schritt.T > TUe_S THEN比较上一步的T条件时间大于设置间
xHM_Zeit_abgelaufen := True ;激活允许请求
ELSE
xHM_Zeit_abgelaufen := False ;关闭允许请求
END_IF;
END_IF;
IF (MOP_HALT = True) OR (xHM_K90Frg ANDST_BA.K90_AnfoZutritt) THEN
-请求进入与允许请求进入都有时-
MOP_HALT:= True; 激活控制步停止
END_IF;
IF (MOP_HALT = True) AND NOT (xHM_K90Frg ANDST_BA.K90_AnfoZutritt) AND Schritt.X THEN
-停止步后-取消请求进入-上一步还在激活就会取消停止-
MOP_HALT:= False;
END_IF;
通过对K90_SK的控制,使顺序块如果在跳步时,或顺序块条件不满足时不能有允许进入条件
注 : Si.T 步 i的当前或上次的激活时间
Si.X 显示步 i是否被激活
Si.U 步 i的没有干扰的总的激活的时间
Transi.TT 显示转换条件 i是否满足
HALT_SQ MOP.HALT "Stop seqencer" 停止程序顺序并且重新激活
编辑:黄飞