你知道-ON_OFF的使用吗?

描述

WINCC面板的关闭/打开SV及KV柜Q1主空开的控制原理

---------------------------------------------------------

FB100中使用:

R_TRIG_Anfo_Off_Halt (CLK:="DB_ARG".On_Off.Anfo_Off_Halt);  

R_TRIG_Cancel         (CLK:="DB_ARG".On_Off.Cancel);  

R_TRIG_Anfo_Off       (CLK:="DB_ARG".On_Off.Anfo_Off);    

If (R_TRIG_SK90_ZutrittAnfo.Q Or R_TRIG_K90_ZutrittAnfo.Q)  

And Not xHM_K90_ZutrittAnfo And ST_BA.K90_AnfoSG = WORD#0

OR MASTER_DIAG_STAT_REG_PF Or R_TRIG_Anfo_Off_Halt.Q Then  

xHM_K90_ZutrittAnfo      := True;     请求进入  

R_TRIG_SK90_ZutrittAnfo.Q:= False;    

End_If;  请求进入

If (R_TRIG_SK6_TE.Q And xHM_K6_TE) Or (ST_BA.K6_TE And Not ST_BA.K40) Or "DB_ARG".On_Off.Quitt Or R_TRIG_Cancel.Q Then 当ON_OFF的送点ON功能激活时

xHM_K6_TE    := False;                   结束K6进程停止

End_If; 停止

If (R_TRIG_SK90_ZutrittAnfo.Q Or F_TRIG_K90_ZutrittAnfo.Q Or "DB_ARG".On_Off.Quitt Or R_TRIG_Cancel.Q) And xHM_K90_ZutrittAnfo And Not MASTER_DIAG_STAT_REG_PF Then

xHM_K90_ZutrittAnfo := False;            

End_If;

If  (R_TRIG_SK6_TE.Q  Or R_TRIG_Anfo_Off.Q)  And Not xHM_K6_TE  Then

xHM_K6_TE        := True;      

R_TRIG_SK6_TE.Q    := False;      

End_If;

---------------------------------------------------------

FB142系统赋值

xON   := SVQxK AND (KVQxK OR Cfg.X1);           SV及KV柜Q1空开在接通状态

xOFF  := NOT SVQxK AND (NOT KVQxK OR Cfg.X1); SV及KV柜Q1空开在关闭状态    

Cfg.X1:控制带不带KV柜,不带为1 带为0

xS_LS := (bVisutasten = Byte#2);   控制关闭/打开按钮。

R_Trig_S_LS(CLK := xS_LS);  触发激活脉冲。

WINCC面板控制关闭:

IF FrgAnw AND R_Trig_S_LS.Q THEN      按钮点了                                        

IF xOFF AND NOT TP_MAZ.Q THEN      空开已经关闭了,而且间隔时间已经满足              

IF NOT xOff_aktiv AND NOT xON_aktiv THEN  没有处于激活开电或关电

iSKette := 10;    去开电步骤

ELSE

iSKette := 0;

END_IF;

ELSIF xON THEN

IF NOT xOff_aktiv AND NOT xON_aktiv THEN

iSKette := 110;   去关电步骤

END_IF;

ELSE    

xF_MAZ := True;     空开状态不对故障

END_IF;

END_IF;

TP_MAZ(IN := On_Off.Qx_Off, PT := T#2m) 断开点后的间隔时间2m

打开ON

CASE iSKette OF    

10 :    (*Start*)    

xAnwOff         := False;

xAnwOn          := True;     选择打开模式

xOn_aktiv       := True;       启动被激活

iSKette         := 20;

20 :    (*Kraftspeicher laden*)

TON_Timer.PT    := T#2s;     激活延迟2s

xTimer          := True;    

SVKx            := True;     SVK1先保持打开          

IF TON_Timer.Q THEN         时间满足后

xTimer          := False;      

SVKx            := False;  SVK1被关闭  

xQx_On          := True;   ON状态被激活        

iSKette         := 30;  

END_IF;

30 :    (*Verzoegerung Einschalten*)

IF xOn THEN            检测NOVS,KV柜Q1开关启动状态                

xQx_On          := False;  

TON_Timer.PT    := Tver_On;  延迟启动时间开始  

xTimer          := True;  

IF TON_Timer.Q THEN      时间到达  

xTimer          := False;

iSKette         := 40;

END_IF;

END_IF;  

40 :    (*Quitt Zutrittsanforderung, Halt bei Taktende*)

xQuitt          := True;       复位  

xQuitt_5s       := True;        

TON_Timer.PT    := T#5s;    延迟5s

xTimer          := True;

iSKette         := 50;

50 :    (*Quitt 5s Rueckfuehrkreis und Depassivierung*)

xQuitt          := False ;

IF TON_Timer.Q THEN          时间到达后    

xTimer          := False;

xQuitt_5s       := False;

xQuitt_Usr      := True;

xSteuEin        := True;   启动点激活

iSKette         := 60;

END_IF;

60 :    (*Quitt Usermeldungen*)

xQuitt_Usr      := False;

xOn_aktiv       := False;         返回初始化

iSKette         := 0;

END_CASE;

关闭SVK1继电器

CASE iSKette OF                    

110:    (*Start*)

xAnwOn          := False;

xAnwOff         := True;      选择打开模式      

xOff_aktiv      := True;        关闭被激活  

xF_AnlBerOff   := False;          

iSKette := 120;

120:    (*Verzoegerung Ausschalten*)

TON_Timer.PT    := Tver_Off;     延迟时间激活

xTimer          := True;

xErrorOffClear  := False;  

IF ((TON_Timer.PT - TON_Timer.ET ) < T#10s) THEN  剩余10S停止关闭请求  

xAnfo_Off_Halt  := True;                   发出请求关闭停止

END_IF;

IF TON_Timer.Q AND On_Off.Anl_Bereit_Off THEN  延时到达关闭准备满足  

xTimer          := False;

xAnfo_Off_1     := True;            前往下一步

iSKette         := 140;

ELSIF TON_S_LS_Off.Q THEN                                                    

xTimer          := False;

xAnfo_Off_1     := True;

iSKette         := 135;

ELSIF TON_Timer.Q AND NOT On_Off.Anl_Bereit_Off THEN 时间到达,结束

关闭报错    

xTimer          := False;

xAnfo_Off_1     := True;              

xF_AnlBerOff   := True;             发出关闭准备错误

iSKette         := 130;

END_IF;

///////////////////////////////////////////////////////

TON_S_LS_Off.Q 的解析:

TON_S_LS_Off(IN := (xS_LS OR Sxx_Off) AND xOff_aktiv, PT := T#4s)

xS_LS:  xS_LS := (bVisutasten = Byte#2) wincc按钮一直按住

Sxx_Off: 模块外部输入管脚,指按钮。

按钮信号一直被按住要超过4s

///////////////////////////////////////////////////////

On_Off.Anl_Bereit_Off  的解析:

On_Off.Anl_Off           := xAnl_Off

On_Off.Anfo_Off          := xON AND xAnwOff

FB200 机器人块

_ST_ROB.E30_Anfo_Abschalt := ON_OFF.Anl_Off;

IF NOT AnwORob AND ON_OFF.Anfo_Off THEN

IF NOT _ST_ROB.A30_Abschaltung_erlaubt THEN  机器人没有发出机器人停止

ON_OFF.Anl_Bereit_Off := False;             选择OFF准备将被关闭

IF ON_OFF.Anfo_Off_1 THEN        

xF_AAE := True;

END_IF;

END_IF;

END_IF;

机器人控制ON_OFF能否被实施完成

130:    (*nicht Bereit Ausschalten 1s Cancel ausgeben*) 结束关闭指令

xAnfo_Off_1     := False;          

xAnwOn          := xON;          

xAnwOff         := xOFF;        

TON_Timer.PT    := t#1s;                

xTimer          := True;                

xCancel         := True;          

IF TON_Timer.Q THEN          

xTimer          := False;    

xCancel         := False;  

iSKette         := 0;        

END_IF;

135:    (*Ausschalten ohne Bereit 5s Warnung ausgeben*) 等待去第150步

xAnfo_Off_1     := False;

TON_Timer.PT    := t#5s;    

xTimer          := True;

xOff_Visu       := True;

IF TON_Timer.Q THEN

xTimer          := False;

xOff_Visu       := False;

iSKette         := 150;

END_IF;

140:    (*Anlage Bereit zum Ausschalten 30s Anl_Off ausgeben*)    

xAnfo_Off_1     := False;

TON_Timer.PT    := t#30s;    

xTimer          := True;

xAnl_Off        := True;   请求OFF发出

IF TON_Timer.Q THEN

xTimer          := False;

xAnl_Off        := False;

iSKette         := 150;

END_IF;

150:    (*Leistungsschalter, Medien, Licht usw. Aus*)发出控制的VSK1为1

xSteuEin        := False;

xQx_Off         := True;  

SVKx            := True;   VSK1为1

iSKette         := 160;

160:    (*Leistungsschalter Aus*)

xQx_Off         := False;  返回0步

iSKette         := 0;

END_CASE;

On_Off.Cancel

FB100

R_TRIG_Cancel         (CLK:="DB_ARG".On_Off.Cancel);

If (R_TRIG_SK90_ZutrittAnfo.Q Or F_TRIG_K90_ZutrittAnfo.Q Or "DB_ARG".On_Off.Quitt Or R_TRIG_Cancel.Q) And xHM_K90_ZutrittAnfo

And Not MASTER_DIAG_STAT_REG_PF Then

xHM_K90_ZutrittAnfo := False;

End_If;

If (R_TRIG_SK6_TE.Q And xHM_K6_TE) Or (ST_BA.K6_TE And Not ST_BA.K40) Or "DB_ARG".On_Off.Quitt Or R_TRIG_Cancel.Q Then

xHM_K6_TE    := False;

End_If;

关闭请求进入K90和K6进程停止

----------------------------------------------------------------

On_Off.Anfo_Off          := xON AND xAnwOff;

On_Off.Anfo_Off_1        := xON AND xAnfo_Off_1;

On_Off.Anfo_Off_Halt     := On_Off.Anfo_Off AND xAnfo_Off_Halt;请求停止

/////////////////////////////////////////////////////

FB100

R_TRIG_Anfo_Off_Halt  (CLK:="DB_ARG".On_Off.Anfo_Off_Halt);

If (R_TRIG_SK90_ZutrittAnfo.Q Or R_TRIG_K90_ZutrittAnfo.Q)

And Not xHM_K90_ZutrittAnfo And ST_BA.K90_AnfoSG = WORD#0

OR MASTER_DIAG_STAT_REG_PF Or R_TRIG_Anfo_Off_Halt.Q Then

xHM_K90_ZutrittAnfo      := True;

R_TRIG_SK90_ZutrittAnfo.Q:= False;

End_If;

请求停止发出后FB100请求进入安全门发出

/////////////////////////////////////////////////////

On_Off.Qx_On             := xQx_On;

On_Off.Qx_Off            := xQx_Off;        

On_Off.Quitt            := xQuitt;        

On_Off.Quitt_5s          := xQuitt_5s;        

On_Off.Quitt_USR         := xQuitt_USR;        

On_Off.STEUEIN           := xON AND xSteuEin;

On_Off.On_aktiv          := xOn_aktiv AND NOT On_Off.STEUEIN;

On_Off.Anl_Bereit_Off    := On_Off.Anfo_Off;

On_Off.Anl_Off           := xAnl_Off;

FB100中

R_TRIG_Anfo_Off       (CLK:="DB_ARG".On_Off.Anfo_Off); 关闭请求

If (R_TRIG_SK90_ZutrittAnfo.Q Or R_TRIG_K90_ZutrittAnfo.Q)

And Not xHM_K90_ZutrittAnfo And ST_BA.K90_AnfoSG = WORD#0

OR MASTER_DIAG_STAT_REG_PF Or R_TRIG_Anfo_Off_Halt.Q Then

xHM_K90_ZutrittAnfo      := True;

R_TRIG_SK90_ZutrittAnfo.Q:= False;

End_If;

请求关闭,FB100 的K90发出

On_Off.FS_Frg_Auto       := F_Trig_Hupe.Q AND Mit;

On_Off.FS_LSP_Ein        := (R_Trig_FS.Q OR R_Trig_LSP.Q) AND Mit;

On_Off.ErrorOffClear     := NOT xF_AnlBerOff AND NOT On_Off.Anfo_Off AND NOT On_Off.Anfo_Off_1 OR Cfg.X0;

On_Off.Cancel           := xCancel;

xON   := SVQxK AND (KVQxK OR Cfg.X1);  SV和KV柜的反馈/ 打开继电器

xAnwOff:选择关闭继电器

IF ((TON_Timer.PT - TON_Timer.ET ) < T#10s) THEN  

xAnfo_Off_Halt  := True;

END_IF;

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分