FB50 MAIN P03 : Loading module |
|
|
|
Netzwerk 1: P03 Initialisation IF "M01 Init" OR NOT "M00 OB1 FirstCycle" THEN "M03 MW58" := #STEP_BITS := 0; IF "M03 Init" THEN "M03 MD50" := "M03 MD54" := 0; "M03 RunHomPos" := TRUE; "DatOfMod".P03.CrntModule := 103; END_IF; END_IF; |
|
|
|
Netzwerk 2: P03 SET execute home position IF "M03 RunHomPos" AND #SET.SET.S.S0 THEN #SET.SET.S.steps := TRUE; END_IF;
IF NOT "M03 RunHomPos" OR "HMI KEY".SYS.GLB.F8_Stop OR "HMI KEY".P03.GLB.F8_Stop THEN #SET.SET.S.steps := "M03 RunHomPos" := FALSE; END_IF;
#SET.SET.S.steph := "M03 FLT ModuStp"; // CALL SET #SET(ACT_STEP => #SET.STEP_NO); |
|
|
|
Netzwerk 3: P03 SEQ1 start, stop, hold #SEQ1.SEQ1.S.steph := NOT "M03 Enabled"; #SEQ1.SEQ1.S.steps := NOT "M03 RunHomPos" AND "M03 SEQ1 Start"; // CALL SEQ1 #SEQ1(ACT_STEP => #SEQ1.STEP_NO); |
|
|
|
Netzwerk 4: P03 Faults monitoring // CALL FLT #FLT(FLT_MODULE := "M03 FLT ModuStp"); |
|
|
|
Netzwerk 5: P03 Module RFID ID read head #ID_RD_HEAD_01(POWER:="A03 3A1 PWR", READ_BYTE:="E03 3A1 RFID Byte", SKIP:="A03 3A1 SKIP", ERROR:="M03 3A1 ERROR", DONE:="M03 3A1 ID Read DONE"); // Assign work-piece carrier ID "DatOfMod".P03.WPC_IDnr := BCD16_TO_INT(IN := #ID_RD_HEAD_01.BCD_WPC_NR); |
|
|
|
Netzwerk 6: P03 SEQ1_Start IF "M00 TrnsSysRun Imp" AND "M00 AutoCmpltMa run" THEN #STEP.SEQ1_Start := TRUE; RETURN; ELSIF #STEP.SEQ1_Start THEN IF NOT "M03 RunHomPos" AND NOT "M03 SEQ1 Active" THEN "M03 SEQ1 Start" := TRUE; ELSIF "M03 SEQ1 Active" THEN #STEP_BITS := 0; #STEP.SEQ1_Running := TRUE; END_IF; END_IF; |
|
|
|
Netzwerk 7: P03 SEQ1_Running IF #STEP.SEQ1_Running THEN IF "M03 SEQ1 Done" THEN "M03 SEQ1 Start" := FALSE; #STEP_BITS := 0; #STEP.SEQ1_Done := TRUE; RETURN; END_IF; END_IF; |
|
|
|
Netzwerk 8: P03 SEQ1_Done IF #STEP.SEQ1_Done THEN "M03 SEQ1 Done" := FALSE; #STEP_BITS := 0; #STEP.SEQ1_Write := TRUE; // Save actual data "DatOfMod".P03.STS.RunTimeCntr_seq1 := #MaDa.RunTimeCntr_seq1; "DatOfMod".P03.STS.WPC_ok := "M03 SEQ1 DoWP1" AND "M03 SEQ1 WP1 DnOK"; "DatOfMod".P03.STS.CrntWP_ok := "M03 SEQ1 WP1 DnOK"; "DatOfMod".P03.TrgtModule := 104; // If necessary, changing drive direction to module 103 IF NOT "DatOfMod".P03.STS.CrntWP_ok THEN "DatOfMod".P03.TrgtModule := 103; END_IF; "DatOfPLC".P03 := "DatOfMod".P03; END_IF; |
|
|
|
Netzwerk 9: P03 SEQ1_Write IF #STEP.SEQ1_Write THEN "M03 SEQ1 WP1 DnOK" := "M03 SEQ1 DoWP1" := FALSE; "M03 TCP/IP Wrt start" := TRUE;
IF "M03 TCP/IP Wrt done" THEN "M03 TCP/IP Wrt start" := "M03 TCP/IP Wrt done" := FALSE; #STEP_BITS := 0; RETURN; END_IF; END_IF; |
|
|
|
Netzwerk 10: P07 Assembling Run-Time IF #STEP.SEQ1_Running THEN IF "M00 Imp 10Hz" AND "M03 Enabled" THEN #MaDa.RunTimeCntr_seq1 := #MaDa.RunTimeCntr_seq1 + 1; END_IF; ELSE #MaDa.RunTimeCntr_seq1 := 0; IF NOT "M03 Active" AND ("M00 ManuCmpltMa run" AND "HMI KEY".P03.GLB.F19_GoToStep OR "M00 AutoCmpltMa run") THEN #STEP.SEQ1_Start := TRUE; END_IF; END_IF; |
|
|
|
Netzwerk 11: P07 SEQ1 active "M03 Active" :=#STEP.SEQ1_Start AND "M03 SEQ1 Active" OR #STEP.SEQ1_Running OR #STEP.SEQ1_Done OR #STEP.SEQ1_Write; |
|
|
|
Netzwerk 12: P03 Assign tower light signal IF "M03 FLT ModuStp" THEN "M03 FLT ModuStp SR" := true; END_IF;
IF "M03 FLT ModuStp SR" AND NOT "M03 FLT ModuStp ACK" THEN IF "M03 FLT ModuStp SR" AND "M00 ACK Imp" THEN "M03 FLT ModuStp ACK" := true; END_IF; ELSIF NOT "M03 FLT ModuStp" AND "M03 FLT ModuStp ACK" THEN "M03 FLT ModuStp SR" := "M03 FLT ModuStp ACK" := FALSE; END_IF; // Faults lamp #tmp_RedSig_lamp := "M03 FLT ModuStp SR" AND NOT "M03 FLT ModuStp ACK" AND "Clock_1.0Hz" OR "M03 FLT ModuStp SR" AND "M03 FLT ModuStp ACK"; // Ready to start lamp #tmp_GrnSig_lamp := NOT "M03 FLT ModuStp SR" AND NOT "M00 AutoCmpltMa run" AND "M03 HomPos"; |
|
|
|
|