FB50 MAIN P03 : Loading module

[hit  <- on your browser to return]

 

 

 

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";

 

 

 

[hit  <- on your browser to return]