Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj [r31] .. [r32]  Maximize  Restore

Switch to unified view

a/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj b/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj
1
Gx_lo}!0…jüoKFÙàÆ1¨*û¬System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
1
Gx_lM~!0jüoüK}”&þ)2(Ñ#1System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
2
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN N UM            (    sName := 'Normal Operation', ì                    dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô                    dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö                    dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \                   eInitialState := PACK_ML.State.Aborted,2                     xActive := TRUE);  xInit := TRUE; END_IF4IF Client.bReadyToPLC THEN:   CASE Client.iCommandToPLC OF" 0 :    //Handshake   1 :    //Lock       IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN       0       //First Lock Function!         ;"–     ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN    #2       //Second Lock Function$
2
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN N UM            (    sName := 'Normal Operation', ì                    dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô                    dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö                    dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \                   eInitialState := PACK_ML.State.Aborted,2                     xActive := TRUE);  xInit := TRUE; END_IF4IF Client.bReadyToPLC THEN:   CASE Client.iCommandToPLC OF" 0 :    //Handshake   1 :    //Lock       IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN       0       //First Lock Function!         ;"–     ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN    #2       //Second Lock Function$
3
          ; %    END_IF& 2 :    //Key'   3 :    //IO( 4 :    //Media)   5 :    //Hint* 6 :    //State +p    IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN      ,&       StateComplete();-x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN      .       Start();/v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN    0       Stop();1x      ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN      2       Reset();3x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN      4       Abort();5x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN      6       Clear();7v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN    8       Hold();9z      ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN    :       Unhold(); ;|    ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN      <       Suspend();=€       ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN      >       UnSuspend();?    @ END_CASEA6 Client.iCommandToPLC := 0;B8 Client.sCommandToPLC := '';C:   Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F   ;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete : J.PACK_ML.State.Execute :Kˆ    // Work out the angle FROM the x horizontal winding anti-clockwise L(   //in screen space. M   // Nr   // The value returned from the following should be 315. O // <pre>P* // x,y -------------Q //     |  1,1R   //     |    \S   //     |     \T" //     |     2,2U // </pre>V W’  // NOTE: Remember that most math has the Y axis as positive above the X.X”    // However, for screens we have Y as positive below. For this reason, Yz    // the Y values are inverted to get the expected results.ZT    //final double deltaY = (p1.y - p2.y);[T    //final double deltaX = (p2.x - p1.x);\    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); ]j    //return (result < 0) ? (360d + result) : result;^d   actualPositionLinear1 :=  AI_DistanceRight - 244;_b   actualPositionLinear2 :=  AI_DistanceLeft - 244;`& deltaY := 250 - 0;ar deltaX := actualPositionLinear1 - actualPositionLinear2;bV angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);c\ targetPositionBoat := angle * 180 / 3.1415;    d@ IF targetPositionBoat <= 0 THENe4      targetPositionBoat := 0;fJ ELSIF targetPositionBoat >= 360 THENg8    targetPositionBoat := 360;h END_IFiD BoatAngle :=  targetPositionBoat;jB   IF Client.ActualStep >= 300 THENkN    AO_AnalogRefrence := AI_DistanceLeft;l
3
          ; %    END_IF& 2 :    //Key'   3 :    //IO( 4 :    //Media)   5 :    //Hint* 6 :    //State +p    IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN      ,&       StateComplete();-x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN      .       Start();/v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN    0       Stop();1x      ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN      2       Reset();3x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN      4       Abort();5x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN      6       Clear();7v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN    8       Hold();9z      ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN    :       Unhold(); ;|    ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN      <       Suspend();=€       ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN      >       UnSuspend();?    @ END_CASEA6 Client.iCommandToPLC := 0;B8 Client.sCommandToPLC := '';C:   Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F   ;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete : J.PACK_ML.State.Execute :Kˆ    // Work out the angle FROM the x horizontal winding anti-clockwise L(   //in screen space. M   // Nr   // The value returned from the following should be 315. O // <pre>P* // x,y -------------Q //     |  1,1R   //     |    \S   //     |     \T" //     |     2,2U // </pre>V W’  // NOTE: Remember that most math has the Y axis as positive above the X.X”    // However, for screens we have Y as positive below. For this reason, Yz    // the Y values are inverted to get the expected results.ZT    //final double deltaY = (p1.y - p2.y);[T    //final double deltaX = (p2.x - p1.x);\    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); ]j    //return (result < 0) ? (360d + result) : result;^d   actualPositionLinear1 :=  AI_DistanceRight - 244;_b   actualPositionLinear2 :=  AI_DistanceLeft - 244;`& deltaY := 250 - 0;ar deltaX := actualPositionLinear1 - actualPositionLinear2;bV angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);c\ targetPositionBoat := angle * 180 / 3.1415;    d@ IF targetPositionBoat <= 0 THENe4      targetPositionBoat := 0;fJ ELSIF targetPositionBoat >= 360 THENg8    targetPositionBoat := 360;h END_IFiD BoatAngle :=  targetPositionBoat;jB   IF Client.ActualStep >= 300 THENkN    AO_AnalogRefrence := AI_DistanceLeft;l
4
    ELSEm4    AO_AnalogRefrence := 0; n4 IF CMMT_ST.AxisError THENo      Abort();pX IF BoatAngle >= 85 AND BoatAngle <= 95 THENq"      Steady := TRUE;r$      Steady := FALSE;s´    AO_Spare2 := REAL_TO_WORD(817 -((TIME_TO_REAL(SteadyTimer.ET)/TIME_TO_REAL(T#25S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw‚     SendCommand(Command := CommandType.Media ,Value := 'Ballast');   xB IF Client.Mode = Mode.Mode1 THENyF    IF puzzleTimer.iProcess = 50 THENzê        SendCommand(Command := CommandType.Hint ,Value := 'Use the terminal to control the right axis to ballast tank.'); {       |8 CASE Client.ActualStep OF    }
4
    ELSEm4    AO_AnalogRefrence := 0; n4 IF CMMT_ST.AxisError THENo      Abort();pX IF BoatAngle >= 85 AND BoatAngle <= 95 THENq"      Steady := TRUE;r$      Steady := FALSE;s´    AO_Spare2 := REAL_TO_WORD(817 -((TIME_TO_REAL(SteadyTimer.ET)/TIME_TO_REAL(T#25S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw‚     SendCommand(Command := CommandType.Media ,Value := 'Ballast');   xB IF Client.Mode = Mode.Mode1 THENyF    IF puzzleTimer.iProcess = 50 THENzê        SendCommand(Command := CommandType.Hint ,Value := 'Use the terminal to control the right axis to ballast tank.'); {       |8 CASE Client.ActualStep OF    }
5
       0:   ~,       CASE Client.Mode OFP            Mode.Mode1: // Updown diffrent speed€2                CASE Client.Level OF,                   Level.Beginner: ‚4                      speed := 100;                ƒ2                   Level.Placeholder1:„(                    speed := 200;…2                 Level.Intermediate:†(                    speed := 300;‡2                 Level.Placeholder2:ˆ(                    speed := 400;‰*                 Level.Advanced:Š(                    speed := 500;‹              END_CASEŒ<                Client.ActualStep := 100;:           Mode.Mode2: // Location    Ž                END_CASE      <                Client.ActualStep := 200;<           Mode.Mode3: // Analog             ‘H                Client.ActualStep := 300;            ’                   “          END_CASE      ”       //10:•<     //   IF CMMT_ST.AxisError THEN–<     //      Client.ActualStep := 11;—       //   ELSE˜D       //      Client.ActualStep := 20;            ™       //   END_IF         š       //11:›*     //   CMMT_ST.Reset();œ@       //   Client.ActualStep := 10;                //20: ž@       //   IF NOT CMMT_ST.Enabled THENŸB     //      Client.ActualStep := 21;          D       //      Client.ActualStep := 30;            ¡       //   END_IF¢       //21:£J     //   enable := CMMT_ST.EnableDrive();¤&       //   IF enable THEN¥<       //      Client.ActualStep := 20;¦<       //      Client.ActualStep := 10;§       //30: ¨H       //   IF NOT CMMT_ST.HomingValid THEN©<     //      Client.ActualStep := 31;ªD       //      Client.ActualStep := 40;            «       //31:¬v     //   home := CMMT_ST.Home(Position := 0,HomingMethod := 0);­*       //   IF home THEN            ®h       //      Client.ActualStep := Client.ActualStep := 32; ¯       //32:°H     //   IF CMMT_ST.HomingValid THEN          ±>       //      Client.ActualStep := 40;   ²       //   END_IF      ³
5
       0:   ~,       CASE Client.Mode OFP            Mode.Mode1: // Updown diffrent speed€2                CASE Client.Level OF,                   Level.Beginner: ‚4                      speed := 100;                ƒ2                   Level.Placeholder1:„(                    speed := 200;…2                 Level.Intermediate:†(                    speed := 300;‡2                 Level.Placeholder2:ˆ(                    speed := 400;‰*                 Level.Advanced:Š(                    speed := 500;‹              END_CASEŒ<                Client.ActualStep := 100;:           Mode.Mode2: // Location    Ž                END_CASE      <                Client.ActualStep := 200;<           Mode.Mode3: // Analog             ‘H                Client.ActualStep := 300;            ’                   “          END_CASE      ”       //10:•<     //   IF CMMT_ST.AxisError THEN–<     //      Client.ActualStep := 11;—       //   ELSE˜D       //      Client.ActualStep := 20;            ™       //   END_IF         š       //11:›*     //   CMMT_ST.Reset();œ@       //   Client.ActualStep := 10;                //20: ž@       //   IF NOT CMMT_ST.Enabled THENŸB     //      Client.ActualStep := 21;          D       //      Client.ActualStep := 30;            ¡       //   END_IF¢       //21:£J     //   enable := CMMT_ST.EnableDrive();¤&       //   IF enable THEN¥<       //      Client.ActualStep := 20;¦<       //      Client.ActualStep := 10;§       //30: ¨H       //   IF NOT CMMT_ST.HomingValid THEN©<     //      Client.ActualStep := 31;ªD       //      Client.ActualStep := 40;            «       //31:¬v     //   home := CMMT_ST.Home(Position := 0,HomingMethod := 0);­*       //   IF home THEN            ®h       //      Client.ActualStep := Client.ActualStep := 32; ¯       //32:°H     //   IF CMMT_ST.HomingValid THEN          ±>       //      Client.ActualStep := 40;   ²       //   END_IF      ³
6
                ´       //40:µH     //   Client.ActualStep := tempStep;   ¶       100:·d          bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,           Velocity:= speed, ¹0             Acceleration:= 500, º0             Deceleration:= 500, »"             Jerk:= 1000, ¼X           BufferMode:= MC_BUFFER_MODE.mcBuffered, ½              ErrorID=> , ¾(             ErrorString=> );¿           IF bMove THENÀ^           Client.ActualStep := Client.ActualStep + 1;Á        END_IFÂ       101:Ã@          IF CMMT_ST.TargetReached THENÄ        END_IF         Å       102:Æd          bMove := CMMT_ST.MoveAbsolute(Position:= 400 , Ç     103:È:             Client.ActualStep := 100;É        END_IF      Ê       200:Ër          CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÌ             1:ÍF                Client.ActualStep := 210;             Î             2:Ï>                Client.ActualStep := 220; Ð             3:Ñ>                Client.ActualStep := 230; Ò             4:Ó>                Client.ActualStep := 240; Ô          END_CASEÕ"       210: // Point 1Öd        bMove := CMMT_ST.MoveAbsolute(Position:= 100 , ×0        DO_Balance_1 := TRUE;Ø     211:Ù:             Client.ActualStep := 200;Ú4           DO_Balance_1 := FALSE;Û          END_IF   Ü"       220: // Point 2Ýd        bMove := CMMT_ST.MoveAbsolute(Position:= 200 , Þ0        DO_Balance_2 := TRUE;ß     221:à4             DO_Balance_2 := FALSE;á"       230: // Point 3âd        bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ã0        DO_Balance_3 := TRUE;ä     231:å4             DO_Balance_3 := FALSE;æ&       240: // Point 4    ç2             DO_Balance_4 := TRUE;è     241:éB       300: // Move to random locationê       bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ë`             Client.ActualStep := Client.ActualStep + 10;ì       310:í:             Client.ActualStep := 300;î  END_CASE   ï2PACK_ML.State.Resetting :ð*   CMMT_ST.ResetHalt();ñ&    StateComplete();      ò0PACK_ML.State.Starting :ó<       IF NOT CMMT_ST.Enabled THENô@           Client.ActualStep := 100;       õ          ELSEö@             Client.ActualStep := 10;            ÷       10: øD          IF NOT CMMT_ST.HomingValid THENù:           Client.ActualStep := 110;úB           Client.ActualStep := 300;          ûF          enable := CMMT_ST.EnableDrive();ü"          IF enable THENý6             Client.ActualStep := 0;þ           Abort();ÿ       110:€r          home := CMMT_ST.Home(Position := 0,HomingMethod := 0);&          IF home THEN            ‚b             Client.ActualStep := Client.ActualStep + 10;   ƒ       120:„D          IF CMMT_ST.HomingValid THEN          …:             Client.ActualStep := 10;   †       300:‡(          StateComplete();   ˆ4PACK_ML.State.Completing :‰$ Steady :=  False;Š$  StateComplete();   ‹0PACK_ML.State.Aborting :Œ0 CMMT_ST.DisableDrive();"  StateComplete();Ž.PACK_ML.State.Stopping:4   CASE Client.ActualStep OF     0:‘<          StopLinear.Execute := TRUE;’6        Client.ActualStep := 10;“
6
                ´       //40:µH     //   Client.ActualStep := tempStep;   ¶       100:·d          bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,           Velocity:= speed, ¹0             Acceleration:= 500, º0             Deceleration:= 500, »"             Jerk:= 1000, ¼X           BufferMode:= MC_BUFFER_MODE.mcBuffered, ½              ErrorID=> , ¾(             ErrorString=> );¿           IF bMove THENÀ^           Client.ActualStep := Client.ActualStep + 1;Á        END_IFÂ       101:Ã@          IF CMMT_ST.TargetReached THENÄ        END_IF         Å       102:Æd          bMove := CMMT_ST.MoveAbsolute(Position:= 400 , Ç     103:È:             Client.ActualStep := 100;É        END_IF      Ê       200:Ër          CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÌ             1:ÍF                Client.ActualStep := 210;             Î             2:Ï>                Client.ActualStep := 220; Ð             3:Ñ>                Client.ActualStep := 230; Ò             4:Ó>                Client.ActualStep := 240; Ô          END_CASEÕ"       210: // Point 1Öd        bMove := CMMT_ST.MoveAbsolute(Position:= 100 , ×0        DO_Balance_1 := TRUE;Ø     211:Ù:             Client.ActualStep := 200;Ú4           DO_Balance_1 := FALSE;Û          END_IF   Ü"       220: // Point 2Ýd        bMove := CMMT_ST.MoveAbsolute(Position:= 200 , Þ0        DO_Balance_2 := TRUE;ß     221:à4             DO_Balance_2 := FALSE;á"       230: // Point 3âd        bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ã0        DO_Balance_3 := TRUE;ä     231:å4             DO_Balance_3 := FALSE;æ&       240: // Point 4    ç2             DO_Balance_4 := TRUE;è     241:éB       300: // Move to random locationê       bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ë`             Client.ActualStep := Client.ActualStep + 10;ì       310:í:             Client.ActualStep := 300;î  END_CASE   ï2PACK_ML.State.Resetting :ð*   CMMT_ST.ResetHalt();ñ&    StateComplete();      ò0PACK_ML.State.Starting :ó<       IF NOT CMMT_ST.Enabled THENô@           Client.ActualStep := 100;       õ          ELSEö@             Client.ActualStep := 10;            ÷       10: øD          IF NOT CMMT_ST.HomingValid THENù:           Client.ActualStep := 110;úB           Client.ActualStep := 300;          ûF          enable := CMMT_ST.EnableDrive();ü"          IF enable THENý6             Client.ActualStep := 0;þ           Abort();ÿ       110:€r          home := CMMT_ST.Home(Position := 0,HomingMethod := 0);&          IF home THEN            ‚b             Client.ActualStep := Client.ActualStep + 10;   ƒ       120:„D          IF CMMT_ST.HomingValid THEN          …:             Client.ActualStep := 10;   †       300:‡(          StateComplete();   ˆ4PACK_ML.State.Completing :‰$ Steady :=  False;Š$  StateComplete();   ‹0PACK_ML.State.Aborting :Œ0 CMMT_ST.DisableDrive();"  StateComplete();Ž.PACK_ML.State.Stopping:4   CASE Client.ActualStep OF     0:‘>          StopLinear.Execute := FALSE;’6          Client.ActualStep := 10;“
7
       10:”B        IF LinearStatus.Stopping THEN;H             StopLinear.Execute := FALSE;            :             Client.ActualStep := 20;   
7
       10:”<        StopLinear.Execute := TRUE;•6        Client.ActualStep := 20;–
8
       20:—6        IF StopLinear.Done THEN;˜H             StopLinear.Execute := FALSE;            :             Client.ActualStep := 30;   š
8
       20:˜.PACK_ML.State.Clearing:™8       IF CMMT_ST.AxisError THENš&        CMMT_ST.Reset();›:          Client.ActualStep := 0;       œEND_CASELClient.ActualState := UM.CurrentState;ž>messageQueue(Client := Client);ŸfIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN (    // Emergency Abort.¡  Abort();   ¢END_IF £HAntiJitter(IN:=NOT Steady,PT:=T#1S);¤^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );¥äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);¦PClient.Progress := puzzleTimer.iProcess;§HIF puzzleTimer.iProcess >= 100 THEN  ¨    //Stop();©J// couple axis to functionblocks hereª^LinearStatus (Axis := CMMT_ST, Enable := TRUE);«:StopLinear (Axis := CMMT_ST);¬Interface­L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}®VFUNCTION_BLOCK BalastTankPuzzleStateMachine¯VAR_IN_OUT°.   Client : PuzzleClient;±END_VAR²VAR³0  UM   : PACK_ML.UnitMode; ´j    xInit          : BOOL := FALSE; // Flag for initializationµ8  puzzleTimer    : PuzzleTimer;P   moveAbsolute  : MC_MoveAbsolute_Festo;·<    StopLinear     : MC_Stop_Festo;¸H    LinearStatus   : MC_ReadStatus_Festo;¹*    //tempStep : INT;º$   enable        : BOOL;»   home        : BOOL;¼"  bMove          : BOOL;½  speed          :INT;¾<  actualPositionLinear1 : REAL;¿<  actualPositionLinear2 : REAL;À6  actualPositionBoat : REAL;Á    deltaY : REAL;    deltaX : REAL;à    angle : REAL;Ä6  targetPositionBoat : REAL;Å~    //GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Æx    //GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ç0  Steady : BOOL := FALSE;È(  SteadyTimer : TON ;É&  AntiJitter : TON ;Ê    bl : BLINK;Ë  ii: INT;Ì:    messageQueue : MessageQueue;Í"UniqueIdGeneratorÎ206POULevelÐL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÑStandardÒ ChildObjectGuidsÓ8System.Collections.ArrayListÔ,AddAttributeSubsequentÕboolÐÐ-ÐÐ E
9
       30:›.PACK_ML.State.Clearing:œ8       IF CMMT_ST.AxisError THEN&        CMMT_ST.Reset();ž:          Client.ActualStep := 0;       ŸEND_CASE LClient.ActualState := UM.CurrentState;¡>messageQueue(Client := Client);¢fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN£(    // Emergency Abort.¤  Abort();   ¥END_IF ¦HAntiJitter(IN:=NOT Steady,PT:=T#1S);§^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );¨äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);©PClient.Progress := puzzleTimer.iProcess;ªHIF puzzleTimer.iProcess >= 100 THEN  «    //Stop();¬J// couple axis to functionblocks here­^LinearStatus (Axis := CMMT_ST, Enable := TRUE);®:StopLinear (Axis := CMMT_ST);¯Interface°L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}±VFUNCTION_BLOCK BalastTankPuzzleStateMachine²VAR_IN_OUT³.   Client : PuzzleClient;´END_VARµVAR0  UM   : PACK_ML.UnitMode; ·j    xInit          : BOOL := FALSE; // Flag for initialization¸8  puzzleTimer    : PuzzleTimer;¹P   moveAbsolute  : MC_MoveAbsolute_Festo;º<    StopLinear     : MC_Stop_Festo;»H    LinearStatus   : MC_ReadStatus_Festo;¼*    //tempStep : INT;½$   enable        : BOOL;¾   home        : BOOL;¿"  bMove          : BOOL;À  speed          :INT;Á<  actualPositionLinear1 : REAL;Â<  actualPositionLinear2 : REAL;Ã6  actualPositionBoat : REAL;Ä    deltaY : REAL;Å    deltaX : REAL;Æ    angle : REAL;Ç6  targetPositionBoat : REAL;È~    //GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Éx    //GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ê0  Steady : BOOL := FALSE;Ë(  SteadyTimer : TON ;Ì&  AntiJitter : TON ;Í    bl : BLINK;Î  ii: INT;Ï:    messageQueue : MessageQueue;Ð"UniqueIdGeneratorÑ206POULevelÓL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÔStandardÕ ChildObjectGuidsÖ8System.Collections.ArrayList×,AddAttributeSubsequentØboolÐÐ-ÐÐ E
9
ÖÐÐ
­AÚÐ-ÐÐ
­BÚÐ-ÐÐ
­CÚÐ-ÐÐ
­DÚÐ-ÐÐ
­EÚÐ-ÐÐ
­FÚÐ-ÐÐ
­GÚÐ-ÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­KÚÐ-ÐÐ
­LÚÐ-ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-ÐÐ
­SÚÐ- ÐÐ
­TÚÐ-!ÐÐ
­UÚÐ-"ÐÐ
­VÚÐ-#ÐÐ
­WÚÐ-$ÐÐ
­XÚÐ-%ÐÐ
­YÚÐ-&ÐÐ
­ZÚÐ-'ÐÐ
­[ÚÐ-(ÐÐ
­\ÚÐ-)ÐÐ
­]ÚÐ-*ÐÐ
­^ÚÐ-+ÐÐ
­_ÚÐ-,ÐÐ
­`ÚÐ--ÐÐ
­aÚÐ-.ÐÐ
­bÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
10
ÚÐÐ
­AÚÐ-ÐÐ
­BÚÐ-ÐÐ
­CÚÐ-ÐÐ
­DÚÐ-ÐÐ
­EÚÐ-ÐÐ
­FÚÐ-ÐÐ
­GÚÐ-ÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­KÚÐ-ÐÐ
­LÚÐ-ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-ÐÐ
­SÚÐ- ÐÐ
­TÚÐ-!ÐÐ
­UÚÐ-"ÐÐ
­VÚÐ-#ÐÐ
­WÚÐ-$ÐÐ
­XÚÐ-%ÐÐ
­YÚÐ-&ÐÐ
­ZÚÐ-'ÐÐ
­[ÚÐ-(ÐÐ
­\ÚÐ-)ÐÐ
­]ÚÐ-*ÐÐ
­^ÚÐ-+ÐÐ
­_ÚÐ-,ÐÐ
­`ÚÐ--ÐÐ
­aÚÐ-.ÐÐ
­bÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
10
ÚÐ-xÐÐ
­
ÚÐ-yÐÐ
­ÚÐ-zÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-hÐÐ
­¹ÚÐ-ÐÐ
­¯ÚÐ-{ÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-|ÐÐ
­¸ÚÐ-}ÐÐ
­UÚÐ-~ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-€ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-‚ÐÐ
­¾ÚÐ-ƒÐÐ
­¿ÚÐ-„ÐÐ
­ÀÚÐ-…ÐÐ
­ÁÚÐ-†ÐÐ
­ÂÚÐ-‡ÐÐ
­ÃÚÐ-ˆÐÐ
­ÄÚÐ-‰ÐÐ
­ÅÚÐ-ŠÐÐ
­ÆÚÐ-‹ÐÐ
­ÇÚÐ-ŒÐÐ
­ÉÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-ŽÐÐ
­ÊÚÐ-ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-‘ÐÐ
­ÍÚÐ-’ÐÐ
­ÎÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-”ÐÐ
­XÚÐ-•ÐÐ
­ZÚÐ-–ÐÐ
­[ÚÐ-—ÐÐ
­\ÚÐ-˜ÐÐ
­]ÚÐ-™ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-šÐÐ
­`ÚÐ-›ÐÐ
­aÚÐ-œÐÐ
­’ÚÐ-ÐÐ
­dÚÐ-žÐÐ
­eÚÐ-ŸÐÐ
­fÚÐ-—ÐÐ
­gÚÐ- ÐÐ
­hÚÐ-¡ÐÐ
­‚ÚÐ-{ÐÐ
­…ÚÐ-¢ÐÐ
­†ÚÐ-£ÐÐ
­‡ÚÐ-¤ÐÐ
­ˆÚÐ-¥ÐÐ
­‰ÚÐ-—ÐÐ
­‹ÚÐ-¦ÐÐ
­ƒÚÐ-¡ÐÐ
­„ÚÐ-{ÐÐ
­iÚÐ-§ÐÐ
­jÚÐ-¨ÐÐ
­kÚÐ-©ÐÐ
­lÚÐ-—ÐÐ
­mÚÐ-ªÐÐ
­nÚÐ-™ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-«ÐÐ
­xÚÐ-¬ÐÐ
­yÚÐ-­ÐÐ
­zÚÐ-®ÐÐ
­{ÚÐ-¡ÐÐ
­|ÚÐ-¯ÐÐ
­}ÚÐ-°ÐÐ
­~ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­€ÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­bÚÐ-µÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-¶ÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-·ÐÐ
­ÒÚÐ-¸ÐÐ
­ÓÚÐ-¹ÐÐ
­ÔÚÐ-ºÐÐ
­ÕÚÐ-»ÐÐ
­ÖÚÐ-¼ÐÐ
­×ÚÐ-½ÐÐ
­ØÚÐ-¾ÐÐ
­ÙÚÐ-¿ÐÐ
­ÚÚÐ-ÀÐÐ
­ÛÚÐ-ÁÐÐ
­ÜÚÐ-ÂÐÐ
­ÝÚÐ-ÃÐÐ
­ÞÚÐ-ÀÐÐ
­ßÚÐ-ÄÐÐ
­àÚÐ-ÅÐÐ
­áÚÐ-ÆÐÐ
­âÚÐ-¸ÐÐ
­ãÚÐ-¹ÐÐ
­äÚÐ-ºÐÐ
­åÚÐ-»ÐÐ
­æÚÐ-¼ÐÐ
­çÚÐ-½ÐÐ
­èÚÐ-¾ÐÐ
­éÚÐ-¿ÐÐ
­êÚÐ-ÀÐÐ
­ëÚÐ-ÁÐÐ
­ìÚÐ-ÇÐÐ
­íÚÐ-ÃÐÐ
­îÚÐ-ÈÐÐ
­ïÚÐ-ÉÐÐ
­ðÚÐ-ÊÐÐ
­ÊÚÐ-ËÐÐ
­AÚÐ-ÌÐÐ
­GÚÐ-ÍÐÐ
­CÚÐ-ÎÐÐ
­HÚÐ-ÏÐÐ
­DÚÐ-ÐÐÐ
­IÚÐ-ÑÐÐ
­EÚÐ-ÒÐÐ
­JÚÐ-ÓÐÐ
­BÚÐ-ÔÐÐ
­ËÚÐ-{ÐÐ
­ÍÚÐ-ÕÐÐ
­ÓÚÐ-ÖÐÐ
­ÔÚÐ-¸ÐÐ
­ÕÚÐ-¹ÐÐ
­ÖÚÐ-ºÐÐ
­×ÚÐ-»ÐÐ
­ØÚÐ-¼ÐÐ
­ÙÚÐ-½ÐÐ
­ÚÚÐ-¾ÐÐ
­ÚÐ-×ÐÐ
­ÛÚÐ-¿ÐÐ
­ÜÚÐ-ÀÐÐ
­ÒÚÐ-ÁÐÐ
­ÝÚÐ-ØÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÙÐÐ
­ÚÐ-ÚÐÐ
­ÞÚÐ-ÛÐÐ
­ÏÚÐ-ÜÐÐ
­âÚÐ-ÝÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­ÚÐ-ÞÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÁÐÐ
­íÚÐ-ßÐÐ
­îÚÐ-ÃÐÐ
­ÚÐ-àÐÐ
­ïÚÐ-ÙÐÐ
­áÚÐ-ÛÐÐ
­ðÚÐ-áÐÐ
­ÚÐ-âÐÐ
­ñÚÐ-¸ÐÐ
­òÚÐ-¹ÐÐ
­óÚÐ-ºÐÐ
­ôÚÐ-»ÐÐ
­õÚÐ-¼ÐÐ
­öÚÐ-½ÐÐ
­÷ÚÐ-¾ÐÐ
­ÚÐ-ãÐÐ
­øÚÐ-¿ÐÐ
­ùÚÐ-ÀÐÐ
­úÚÐ-ÁÐÐ
­ûÚÐ-äÐÐ
­üÚÐ-ÃÐÐ
­ ÚÐ-åÐÐ
­ýÚÐ-ÙÐÐ
­ÐÚÐ-ÛÐÐ
­þÚÐ-æÐÐ
­
ÚÐ-ÆÐÐ
­ÿÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÚÐ-¾ÐÐ
­!ÚÐ-çÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-ÁÐÐ
­   ÚÐ-èÐÐ
­
11
ÚÐ-xÐÐ
­
ÚÐ-yÐÐ
­ÚÐ-zÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-hÐÐ
­¹ÚÐ-ÐÐ
­¯ÚÐ-{ÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-|ÐÐ
­¸ÚÐ-}ÐÐ
­UÚÐ-~ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-€ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-‚ÐÐ
­¾ÚÐ-ƒÐÐ
­¿ÚÐ-„ÐÐ
­ÀÚÐ-…ÐÐ
­ÁÚÐ-†ÐÐ
­ÂÚÐ-‡ÐÐ
­ÃÚÐ-ˆÐÐ
­ÄÚÐ-‰ÐÐ
­ÅÚÐ-ŠÐÐ
­ÆÚÐ-‹ÐÐ
­ÇÚÐ-ŒÐÐ
­ÉÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-ŽÐÐ
­ÊÚÐ-ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-‘ÐÐ
­ÍÚÐ-’ÐÐ
­ÎÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-”ÐÐ
­XÚÐ-•ÐÐ
­ZÚÐ-–ÐÐ
­[ÚÐ-—ÐÐ
­\ÚÐ-˜ÐÐ
­]ÚÐ-™ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-šÐÐ
­`ÚÐ-›ÐÐ
­aÚÐ-œÐÐ
­’ÚÐ-ÐÐ
­dÚÐ-žÐÐ
­eÚÐ-ŸÐÐ
­fÚÐ-—ÐÐ
­gÚÐ- ÐÐ
­hÚÐ-¡ÐÐ
­‚ÚÐ-{ÐÐ
­…ÚÐ-¢ÐÐ
­†ÚÐ-£ÐÐ
­‡ÚÐ-¤ÐÐ
­ˆÚÐ-¥ÐÐ
­‰ÚÐ-—ÐÐ
­‹ÚÐ-¦ÐÐ
­ƒÚÐ-¡ÐÐ
­„ÚÐ-{ÐÐ
­iÚÐ-§ÐÐ
­jÚÐ-¨ÐÐ
­kÚÐ-©ÐÐ
­lÚÐ-—ÐÐ
­mÚÐ-ªÐÐ
­nÚÐ-™ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-«ÐÐ
­xÚÐ-¬ÐÐ
­yÚÐ-­ÐÐ
­zÚÐ-®ÐÐ
­{ÚÐ-¡ÐÐ
­|ÚÐ-¯ÐÐ
­}ÚÐ-°ÐÐ
­~ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­€ÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­bÚÐ-µÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-¶ÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-·ÐÐ
­ÒÚÐ-¸ÐÐ
­ÓÚÐ-¹ÐÐ
­ÔÚÐ-ºÐÐ
­ÕÚÐ-»ÐÐ
­ÖÚÐ-¼ÐÐ
­×ÚÐ-½ÐÐ
­ØÚÐ-¾ÐÐ
­ÙÚÐ-¿ÐÐ
­ÚÚÐ-ÀÐÐ
­ÛÚÐ-ÁÐÐ
­ÜÚÐ-ÂÐÐ
­ÝÚÐ-ÃÐÐ
­ÞÚÐ-ÀÐÐ
­ßÚÐ-ÄÐÐ
­àÚÐ-ÅÐÐ
­áÚÐ-ÆÐÐ
­âÚÐ-¸ÐÐ
­ãÚÐ-¹ÐÐ
­äÚÐ-ºÐÐ
­åÚÐ-»ÐÐ
­æÚÐ-¼ÐÐ
­çÚÐ-½ÐÐ
­èÚÐ-¾ÐÐ
­éÚÐ-¿ÐÐ
­êÚÐ-ÀÐÐ
­ëÚÐ-ÁÐÐ
­ìÚÐ-ÇÐÐ
­íÚÐ-ÃÐÐ
­îÚÐ-ÈÐÐ
­ïÚÐ-ÉÐÐ
­ðÚÐ-ÊÐÐ
­ÊÚÐ-ËÐÐ
­AÚÐ-ÌÐÐ
­GÚÐ-ÍÐÐ
­CÚÐ-ÎÐÐ
­HÚÐ-ÏÐÐ
­DÚÐ-ÐÐÐ
­IÚÐ-ÑÐÐ
­EÚÐ-ÒÐÐ
­JÚÐ-ÓÐÐ
­BÚÐ-ÔÐÐ
­ËÚÐ-{ÐÐ
­ÍÚÐ-ÕÐÐ
­ÓÚÐ-ÖÐÐ
­ÔÚÐ-¸ÐÐ
­ÕÚÐ-¹ÐÐ
­ÖÚÐ-ºÐÐ
­×ÚÐ-»ÐÐ
­ØÚÐ-¼ÐÐ
­ÙÚÐ-½ÐÐ
­ÚÚÐ-¾ÐÐ
­ÚÐ-×ÐÐ
­ÛÚÐ-¿ÐÐ
­ÜÚÐ-ÀÐÐ
­ÒÚÐ-ÁÐÐ
­ÝÚÐ-ØÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÙÐÐ
­ÚÐ-ÚÐÐ
­ÞÚÐ-ÛÐÐ
­ÏÚÐ-ÜÐÐ
­âÚÐ-ÝÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­ÚÐ-ÞÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÁÐÐ
­íÚÐ-ßÐÐ
­îÚÐ-ÃÐÐ
­ÚÐ-àÐÐ
­ïÚÐ-ÙÐÐ
­áÚÐ-ÛÐÐ
­ðÚÐ-áÐÐ
­ÚÐ-âÐÐ
­ñÚÐ-¸ÐÐ
­òÚÐ-¹ÐÐ
­óÚÐ-ºÐÐ
­ôÚÐ-»ÐÐ
­õÚÐ-¼ÐÐ
­öÚÐ-½ÐÐ
­÷ÚÐ-¾ÐÐ
­ÚÐ-ãÐÐ
­øÚÐ-¿ÐÐ
­ùÚÐ-ÀÐÐ
­úÚÐ-ÁÐÐ
­ûÚÐ-äÐÐ
­üÚÐ-ÃÐÐ
­ ÚÐ-åÐÐ
­ýÚÐ-ÙÐÐ
­ÐÚÐ-ÛÐÐ
­þÚÐ-æÐÐ
­
ÚÐ-ÆÐÐ
­ÿÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÚÐ-¾ÐÐ
­!ÚÐ-çÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-ÁÐÐ
­   ÚÐ-èÐÐ
­
11
ÚÐ-ÃÐÐ
­"ÚÐ-çÐÐ
­ÚÐ-ÙÐÐ
­ñÚÐ-ÛÐÐ
­,ÚÐ-éÐÐ
­-ÚÐ-êÐÐ
­.ÚÐ-¸ÐÐ
­/ÚÐ-¹ÐÐ
­0ÚÐ-ºÐÐ
­1ÚÐ-»ÐÐ
­2ÚÐ-¼ÐÐ
­3ÚÐ-½ÐÐ
­4ÚÐ-¾ÐÐ
­6ÚÐ-¿ÐÐ
­7ÚÐ-ëÐÐ
­8ÚÐ-ÁÐÐ
­9ÚÐ-ìÐÐ
­:ÚÐ-ÃÐÐ
­;ÚÐ-íÐÐ
­òÚÐ-ÛÐÐ
­ôÚÐ-îÐÐ
­õÚÐ-ÐÐ
­öÚÐ-ïÐÐ
­ùÚÐ-ðÐÐ
­ûÚÐ-ñÐÐ
­üÚÐ-òÐÐ
­ýÚÐ-|ÐÐ
­þÚÐ-}ÐÐ
­ÿÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-÷ÐÐ
­ÚÐ-øÐÐ
­
12
ÚÐ-ÃÐÐ
­"ÚÐ-çÐÐ
­ÚÐ-ÙÐÐ
­ñÚÐ-ÛÐÐ
­,ÚÐ-éÐÐ
­-ÚÐ-êÐÐ
­.ÚÐ-¸ÐÐ
­/ÚÐ-¹ÐÐ
­0ÚÐ-ºÐÐ
­1ÚÐ-»ÐÐ
­2ÚÐ-¼ÐÐ
­3ÚÐ-½ÐÐ
­4ÚÐ-¾ÐÐ
­6ÚÐ-¿ÐÐ
­7ÚÐ-ëÐÐ
­8ÚÐ-ÁÐÐ
­9ÚÐ-ìÐÐ
­:ÚÐ-ÃÐÐ
­;ÚÐ-íÐÐ
­òÚÐ-ÛÐÐ
­ôÚÐ-îÐÐ
­õÚÐ-ÐÐ
­öÚÐ-ïÐÐ
­ùÚÐ-ðÐÐ
­ûÚÐ-ñÐÐ
­üÚÐ-òÐÐ
­ýÚÐ-|ÐÐ
­þÚÐ-}ÐÐ
­ÿÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-÷ÐÐ
­ÚÐ-øÐÐ
­
12
ÚÐ-ùÐÐ
­ÚÐ-õÐÐ
­ÚÐ-úÐÐ
­
ÚÐ-ÛÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-õÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-ÉÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-†ÐÐ
­1ÚÐ-‡ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-ˆÐÐ
­4ÚÐ-‰ÐÐ
­5ÚÐ-ŠÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-‹ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ŒÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ŽÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­BÚÐ-‘ÐÐ
­CÚÐ-’ÐÐ
­DÚÐ-“ÐÐ
­EÚÐ-”ÐÐ
­FÚÐ-•ÐÐ
­HÚÐ-–ÐÐ
­IÚÐ-ÄÐÐ
­JÚÐ-—ÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-˜ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-™ÐÐ
­UÚÐ-ÈÐÐ
­VÚÐ-õÐÐ
­WÚÐ-úÐÐ
­XÚÐ-ÄÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-šÐÐ
­\ÚÐ-›ÐÐ
­`ÚÐ-†ÐÐ
­aÚÐ-‡ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-œÐÐ
­dÚÐ-ÐÐ
­ÚÐ-ÐÐ
­   ÚÐ-ÐÐ
­eÚÐ-žÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-ŸÐÐ
­§ÚÐ- ÐÐ
­¨ÚÐ-¡ÐÐ
­jÚÐ-¢ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-£ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-¤ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-¥ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-¦ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-§ÐÐ
­qÚÐ-¨ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-©ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-ªÐÐ
­wÚÐ-«¬­Ð  E
13
ÚÐ-ùÐÐ
­ÚÐ-õÐÐ
­ÚÐ-úÐÐ
­
ÚÐ-ÛÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-õÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-ÉÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-†ÐÐ
­1ÚÐ-‡ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-ˆÐÐ
­4ÚÐ-‰ÐÐ
­5ÚÐ-ŠÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-‹ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ŒÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ŽÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­BÚÐ-‘ÐÐ
­CÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­ÚÐ-•ÐÐ
­DÚÐ-–ÐÐ
­ÚÐ-{ÐÐ
­EÚÐ-—ÐÐ
­FÚÐ-˜ÐÐ
­HÚÐ-™ÐÐ
­IÚÐ-ÄÐÐ
­JÚÐ-šÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-›ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-œÐÐ
­UÚÐ-ÈÐÐ
­VÚÐ-õÐÐ
­WÚÐ-úÐÐ
­XÚÐ-ÄÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-ÐÐ
­\ÚÐ-žÐÐ
­`ÚÐ-†ÐÐ
­aÚÐ-‡ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-ŸÐÐ
­dÚÐ-ÐÐ
­ÚÐ- ÐÐ
­   ÚÐ-ÐÐ
­eÚÐ-¡ÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-¢ÐÐ
­§ÚÐ-£ÐÐ
­¨ÚÐ-¤ÐÐ
­jÚÐ-¥ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-¦ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-§ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-¨ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-©ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ªÐÐ
­qÚÐ-«ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-¬ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-­ÐÐ
­wÚÐ-®¯°Ð  E
13
-ÐÐ
­†ÚÐ-®ÐÐ
­‡ÚÐ-¯ÐÐ
­ˆÚÐ-°ÐÐ
­‰ÚÐ-±ÐÐ
­ŠÚÐ-²ÐÐ
­‹ÚÐ-³ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-´ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-µÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-ÐÐ
­”ÚÐ-·ÐÐ
­–ÚÐ-¸ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¹ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-ºÐÐ
­™ÚÐ-»ÐÐ
­šÚÐ-¼ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-½ÐÐ
­ÚÐ-ÐÐ
­žÚÐ-¾ÐÐ
­ŸÚÐ-¿ÐÐ
­ ÚÐ-ÀÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÁÐÐ
­£ÚÐ-ÂÐÐ
­¤ÚÐ-ÃÐÐ
­¦ÚÐ-ÄÐÐ
­*ÚÐ-ÅÐÐ
­@ÚÐ-ÆÐÐ
­§ÚÐ-ÇÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ÈÐÐ
­ ÚÐ-ÉÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÊÐÐ
­©ÚÐ-ËÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÌÐÐ
­«ÚÐ-±ÐÐ
­ÚÐ-ÐÍ-ÎÏÐ-ÑÒÓÐÔÕ
14
-ÐÐ
­†ÚÐ-±ÐÐ
­‡ÚÐ-²ÐÐ
­ˆÚÐ-³ÐÐ
­‰ÚÐ-´ÐÐ
­ŠÚÐ-µÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-·ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-¸ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-¹ÐÐ
­”ÚÐ-ºÐÐ
­–ÚÐ-»ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¼ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-½ÐÐ
­™ÚÐ-¾ÐÐ
­šÚÐ-¿ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÀÐÐ
­ÚÐ-ÐÐ
­žÚÐ-ÁÐÐ
­ŸÚÐ-ÂÐÐ
­ ÚÐ-ÃÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÄÐÐ
­£ÚÐ-ÅÐÐ
­¤ÚÐ-ÆÐÐ
­¦ÚÐ-ÇÐÐ
­*ÚÐ-ÈÐÐ
­@ÚÐ-ÉÐÐ
­§ÚÐ-ÊÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ËÐÐ
­ ÚÐ-ÌÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÍÐÐ
­©ÚÐ-ÎÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÏÐÐ
­«ÚÐ-´ÐÐ
­ÚÐ-ÐÐ-ÑÒÓ-ÔÕÖÐ×Ø