Sei sulla pagina 1di 2

FUNCTION_BLOCK BLINK (*Flash module*)

VAR_INPUT
TI : TIME; (*Specified turn-on time*)
TA : TIME; (*Specified turn-off time*)
END_VAR
VAR_OUTPUT
QB : BOOL; (*Flash signal*)
END_VAR
VAR
TIMER1 : TON; (*First timer*)
TIMER2 : TON; (*Second timer*)
END_VAR
(*Implement the statement body here*)
END_FUNCTION_BLOCK
(*Main routine*)
VAR
I_IMS7_Start AT %IX0.0 : BOOL; (*Start button*)
I_IMS7_INIT AT %IX0.1 : BOOL; (*Sequence initialization*)
I_IMS7_ACK AT %IX0.2 : BOOL; (*Acknowledgement button*)
I_IMS7_IL AT %IX500.0 : BOOL; (*Left limit*)
I_IMS7_IR AT %IX500.1 : BOOL; (*Right limit*)
I_IMS7_B1 AT %IX500.2 : BOOL; (*Workpiece carrier arriving*)
I_IMS7_B2 AT %IX501.0 : BOOL; (*Workpiece carrier in position*)
I_IMS7_B4 AT %IX501.2 : BOOL; (*Axis at right*)
I_IMS7_B5 AT %IX501.3 : BOOL; (*Axis at centre*)
I_IMS7_B6 AT %IX501.4 : BOOL; (*Axis at left*)
I_IMS7_B7 AT %IX501.5 : BOOL; (*Lifting cylinder at top*)
I_IMS7_B8 AT %IX501.6 : BOOL; (*Lifting cylinder at bottom*)
I_IMS7_B9 AT %IX501.7 : BOOL; (*Vacuum monitoring*)
I_IMS7_EMSTOP AT %IX500.3 : BOOL; (*Emergency-stop*)
I_IMS7_EXAM AT %IX500.5 : BOOL; (*Specification of test results*)
Q_IMS7_QR AT %QX550.0 : BOOL; (*Belt advance*)
Q_IMS7_QS AT %QX550.2 : BOOL; (*Creep mode*)
Q_IMS7_M1 AT %QX551.0 : BOOL; (*Lower stop cylinder*)
Q_IMS7_M2 AT %QX551.1 : BOOL; (*Axis rightward*)
Q_IMS7_M3 AT %QX551.2 : BOOL; (*Axis leftward*)
Q_IMS7_M4 AT %QX551.3 : BOOL; (*Lower lifting cylinder*)
Q_IMS7_M5 AT %QX551.4 : BOOL; (*Vacuum generation*)
Q_IMS7_P1 AT %QX551.5 : BOOL; (*Signal lamp P1*)
M_IMS7_STEP1 : RS; (*Instance
step 1*)
M_IMS7_STEP2 : RS; (*Instance step 2*)
M_IMS7_STEP3 : RS; (*Instance step 3*)
M_IMS7_STEP4 : RS; (*Instance step 4*)
M_IMS7_STEP5 : RS; (*Instance step 5*)
M_IMS7_STEP6 : RS; (*Instance step 6*)
M_IMS7_STEP7 : RS; (*Instance step 7*)
M_IMS7_STEP8 : RS; (*Instance step 8*)
M_IMS7_STEP9 : RS; (*Instance step 9*)
M_IMS7_STEP10 : RS; (*Instance step 10*)
M_IMS7_STEP11 : RS; (*Instance step 11*)
M_IMS7_EMSTOP : RS; (*Instance emergency-stop flip-flop*)
T_IMS7_STEP3 : TON; (*Instance step 3 waiting time*)
M_IMS7_M5 : RS; (*Instance flip-flop for output M5*)
IMS7_BLINK : BLINK; (*Instance
flash module*)
M_IMS7_BLINK : RS; (*Instance
flash flag*)
END_VAR

(*Realization of the step sequence*)


M_IMS7_STEP1(S:=I_IMS7_IL AND I_IMS7_INIT, R1:=M_IMS7_STEP2.Q1 OR I_I
MS7_EMSTOP);
M_IMS7_STEP2(S:=I_IMS7_IL AND I_IMS7_B4 AND I_IMS7_B7 AND I_IMS7_Star
t AND M_IMS7_STEP1.Q1, R1:=I_IMS7_B2 OR I_IMS7_EMSTOP);
M_IMS7_STEP3(S:=M_IMS7_STEP2.Q1 and I_IMS7_B1, R1:=M_IMS7_STEP4.Q1 OR
I_IMS7_EMSTOP);
M_IMS7_STEP4(S:=I_IMS7_B2 AND M_IMS7_STEP3.Q1 AND T_IMS7_STEP3.Q,R1:=
M_IMS7_STEP5.Q1 OR I_IMS7_EMSTOP);
M_IMS7_STEP5(S:=I_IMS7_B5 AND M_IMS7_STEP4.Q1, R1:=M_IMS7_STEP6.Q1 OR
I_IMS7_EMSTOP);
M_IMS7_STEP6(S:=I_IMS7_B8 AND I_IMS7_B9 AND M_IMS7_STEP5.Q1, R1:=M_IM
S7_STEP7.Q1 OR M_IMS7_STEP8.Q1 or I_IMS7_EMSTOP);
M_IMS7_STEP7(S:=I_IMS7_B7 AND I_IMS7_EXAM AND M_IMS7_STEP6.Q1, R1:=M_
IMS7_STEP9.Q1 OR I_IMS7_EMSTOP);
M_IMS7_STEP8(S:=I_IMS7_B7 AND NOT I_IMS7_EXAM AND M_IMS7_STEP6.Q1, R1
:=M_IMS7_STEP9.Q1 OR I_IMS7_EMSTOP);
M_IMS7_STEP9(S:=(M_IMS7_STEP7.Q1 AND I_IMS7_B6) OR (M_IMS7_STEP8.Q1 A
ND I_IMS7_B4), R1:=M_IMS7_STEP10.Q1 OR I_IMS7_EMSTOP);
M_IMS7_STEP10(S:=I_IMS7_B8 AND M_IMS7_STEP9.Q1, R1:=M_IMS7_STEP1.q1 o
r I_IMS7_b4 OR I_IMS7_EMSTOP);
M_IMS7_STEP11(s:=I_IMS7_B8 AND M_IMS7_STEP9.Q1, R1:=M_IMS7_STEP1.q1 o
r I_IMS7_ir OR I_IMS7_EMSTOP);
T_IMS7_STEP3(IN:=M_IMS7_STEP3.Q1, PT:=T#1000MS);
M_IMS7_M5(S:=M_IMS7_STEP5.Q1, R1:=M_IMS7_STEP10.Q1);
IMS7_BLINK(TI:=T#1S, TA:=T#2S);
M_IMS7_BLINK(S:=M_IMS7_STEP2.Q1, R1:=M_IMS7_STEP1.Q1);
(*Realization of the command output*)
Q_IMS7_QR:=M_IMS7_STEP2.Q1 OR M_IMS7_STEP3.Q1 OR M_IMS7_STEP11.Q1;
Q_IMS7_QS:=M_IMS7_STEP2.Q1 OR M_IMS7_STEP3.Q1;
Q_IMS7_M1:=M_IMS7_STEP3.Q1 OR M_IMS7_STEP2.Q1;
Q_IMS7_M2:=M_IMS7_STEP1.Q1 OR M_IMS7_STEP5.Q1 OR M_IMS7_STEP6.Q1 OR M
_IMS7_STEP8.Q1 OR M_IMS7_STEP9.Q1 OR M_IMS7_STEP10.Q1;
Q_IMS7_M3:=M_IMS7_STEP4.Q1 OR M_IMS7_STEP5.Q1 OR M_IMS7_STEP6.Q1 OR M
_IMS7_STEP7.Q1 OR M_IMS7_STEP9.Q1;
Q_IMS7_M4:=M_IMS7_STEP5.Q1 OR M_IMS7_STEP9.Q1;
Q_IMS7_M5:=M_IMS7_M5.Q1;
Q_IMS7_P1:=IMS7_BLINK.QB AND M_IMS7_BLINK.Q1;

Potrebbero piacerti anche