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_l|!0…jüoÜJà6âQ1|SmSystem.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_lþ|!0…jüoZKß{µL|1…Õlš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}
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#30S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw†     SendCommand(Command := CommandType.Media ,Value := 'Boat Roll');   xD IF puzzleTimer.iProcess = 25 THENy†     SendCommand(Command := CommandType.Hint ,Value := 'Please connect the controller to the motor. Carfully with the powersupply.');   z       {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#30S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw†     SendCommand(Command := CommandType.Media ,Value := 'Boat Roll');   xD IF puzzleTimer.iProcess = 25 THENy†     SendCommand(Command := CommandType.Hint ,Value := 'Please connect the controller to the motor. Carfully with the powersupply.');   z       {8 CASE Client.ActualStep OF    |
5
       0:   },       CASE Client.Mode OF~P            Mode.Mode1: // Updown diffrent speed2             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 OF~P            Mode.Mode1: // Updown diffrent speed2             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 := TRUE;‘6        Client.ActualStep := 10;’
7
       10:“B        IF LinearStatus.Stopping THEN;”H             StopLinear.Execute := FALSE;            •:             Client.ActualStep := 20;   –
7
       10:“B        IF LinearStatus.Stopping THEN;”H             StopLinear.Execute := FALSE;            •:             Client.ActualStep := 20;   –
8
       20:—.PACK_ML.State.Clearing:˜8       IF CMMT_ST.AxisError THEN™&        CMMT_ST.Reset();š:          Client.ActualStep := 0;       ›END_CASEœLClient.ActualState := UM.CurrentState;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#30S );£ä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;Ê"UniqueIdGeneratorË205POULevelÍL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÎStandardÏ ChildObjectGuidsÐ8System.Collections.ArrayListÑ,AddAttributeSubsequentÒboolÐÐ-ÐÐ E
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#30S );¤ä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Í205POULevelÏ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ÐÐ
­·ÚÐ-xÐÐ
­¸ÚÐ-yÐÐ
­¹ÚÐ-hÐÐ
­¯ÚÐ-zÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-{ÐÐ
­¸ÚÐ-|ÐÐ
­UÚÐ-}ÐÐ
­ºÚÐ-~ÐÐ
­»ÚÐ-ÐÐ
­¼ÚÐ-€ÐÐ
­½ÚÐ-ÐÐ
­¾ÚÐ-‚ÐÐ
­¿ÚÐ-ƒÐÐ
­ÀÚÐ-„ÐÐ
­ÁÚÐ-…ÐÐ
­ÂÚÐ-†ÐÐ
­ÃÚÐ-‡ÐÐ
­ÄÚÐ-ˆÐÐ
­ÅÚÐ-‰ÐÐ
­ÆÚÐ-ŠÐÐ
­ÇÚÐ-‹ÐÐ
­ÉÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ÐÐ
­ÊÚÐ-ŽÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-ÐÐ
­ÍÚÐ-‘ÐÐ
­ÎÚÐ-’ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-“ÐÐ
­XÚÐ-”ÐÐ
­ZÚÐ-•ÐÐ
­[ÚÐ-–ÐÐ
­\ÚÐ-—ÐÐ
­]ÚÐ-˜ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-™ÐÐ
­`ÚÐ-šÐÐ
­aÚÐ-›ÐÐ
­’ÚÐ-œÐÐ
­dÚÐ-ÐÐ
­eÚÐ-žÐÐ
­fÚÐ-–ÐÐ
­gÚÐ-ŸÐÐ
­hÚÐ- ÐÐ
­‚ÚÐ-zÐÐ
­…ÚÐ-¡ÐÐ
­†ÚÐ-¢ÐÐ
­‡ÚÐ-£ÐÐ
­ˆÚÐ-¤ÐÐ
­‰ÚÐ-–ÐÐ
­‹ÚÐ-¥ÐÐ
­ƒÚÐ- ÐÐ
­„ÚÐ-zÐÐ
­iÚÐ-¦ÐÐ
­jÚÐ-§ÐÐ
­kÚÐ-¨ÐÐ
­lÚÐ-–ÐÐ
­mÚÐ-©ÐÐ
­nÚÐ-˜ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-ªÐÐ
­xÚÐ-«ÐÐ
­yÚÐ-¬ÐÐ
­zÚÐ-­ÐÐ
­{ÚÐ- ÐÐ
­|ÚÐ-®ÐÐ
­}ÚÐ-¯ÐÐ
­~ÚÐ-°ÐÐ
­ÚÐ-±ÐÐ
­€ÚÐ-²ÐÐ
­ÚÐ-³ÐÐ
­bÚÐ-´ÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-µÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-¶ÐÐ
­ÒÚÐ-·ÐÐ
­ÓÚÐ-¸ÐÐ
­ÔÚÐ-¹ÐÐ
­ÕÚÐ-ºÐÐ
­ÖÚÐ-»ÐÐ
­×ÚÐ-¼ÐÐ
­ØÚÐ-½ÐÐ
­ÙÚÐ-¾ÐÐ
­ÚÚÐ-¿ÐÐ
­ÛÚÐ-ÀÐÐ
­ÜÚÐ-ÁÐÐ
­ÝÚÐ-ÂÐÐ
­ÞÚÐ-¿ÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÄÐÐ
­áÚÐ-ÅÐÐ
­âÚÐ-·ÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÆÐÐ
­íÚÐ-ÂÐÐ
­îÚÐ-ÇÐÐ
­ïÚÐ-ÈÐÐ
­ðÚÐ-ÉÐÐ
­ÊÚÐ-ÊÐÐ
­AÚÐ-ËÐÐ
­GÚÐ-ÌÐÐ
­CÚÐ-ÍÐÐ
­HÚÐ-ÎÐÐ
­DÚÐ-ÏÐÐ
­IÚÐ-ÐÐÐ
­EÚÐ-ÑÐÐ
­JÚÐ-ÒÐÐ
­BÚÐ-ÓÐÐ
­ËÚÐ-zÐÐ
­ÍÚÐ-ÔÐÐ
­ÓÚÐ-ÕÐÐ
­ÔÚÐ-·ÐÐ
­ÕÚÐ-¸ÐÐ
­ÖÚÐ-¹ÐÐ
­×ÚÐ-ºÐÐ
­ØÚÐ-»ÐÐ
­ÙÚÐ-¼ÐÐ
­ÚÚÐ-½ÐÐ
­ÚÐ-ÖÐÐ
­ÛÚÐ-¾ÐÐ
­ÜÚÐ-¿ÐÐ
­ÒÚÐ-ÀÐÐ
­ÝÚÐ-×ÐÐ
­ßÚÐ-ÂÐÐ
­àÚÐ-ØÐÐ
­ÚÐ-ÙÐÐ
­ÞÚÐ-ÚÐÐ
­ÏÚÐ-ÛÐÐ
­âÚÐ-ÜÐÐ
­ãÚÐ-·ÐÐ
­äÚÐ-¸ÐÐ
­åÚÐ-¹ÐÐ
­æÚÐ-ºÐÐ
­çÚÐ-»ÐÐ
­èÚÐ-¼ÐÐ
­éÚÐ-½ÐÐ
­ÚÐ-ÝÐÐ
­êÚÐ-¾ÐÐ
­ëÚÐ-¿ÐÐ
­ìÚÐ-ÀÐÐ
­íÚÐ-ÞÐÐ
­îÚÐ-ÂÐÐ
­ÚÐ-ßÐÐ
­ïÚÐ-ØÐÐ
­áÚÐ-ÚÐÐ
­ðÚÐ-àÐÐ
­ÚÐ-áÐÐ
­ñÚÐ-·ÐÐ
­òÚÐ-¸ÐÐ
­óÚÐ-¹ÐÐ
­ôÚÐ-ºÐÐ
­õÚÐ-»ÐÐ
­öÚÐ-¼ÐÐ
­÷ÚÐ-½ÐÐ
­ÚÐ-âÐÐ
­øÚÐ-¾ÐÐ
­ùÚÐ-¿ÐÐ
­úÚÐ-ÀÐÐ
­ûÚÐ-ãÐÐ
­üÚÐ-ÂÐÐ
­ ÚÐ-äÐÐ
­ýÚÐ-ØÐÐ
­ÐÚÐ-ÚÐÐ
­þÚÐ-åÐÐ
­
ÚÐ-ÅÐÐ
­ÿÚÐ-·ÐÐ
­ÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­!ÚÐ-æÐÐ
­ÚÐ-¾ÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­   ÚÐ-çÐÐ
­
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ÐÐ
­·ÚÐ-xÐÐ
­¸ÚÐ-yÐÐ
­¹ÚÐ-hÐÐ
­¯ÚÐ-zÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-{ÐÐ
­¸ÚÐ-|ÐÐ
­UÚÐ-}ÐÐ
­ºÚÐ-~ÐÐ
­»ÚÐ-ÐÐ
­¼ÚÐ-€ÐÐ
­½ÚÐ-ÐÐ
­¾ÚÐ-‚ÐÐ
­¿ÚÐ-ƒÐÐ
­ÀÚÐ-„ÐÐ
­ÁÚÐ-…ÐÐ
­ÂÚÐ-†ÐÐ
­ÃÚÐ-‡ÐÐ
­ÄÚÐ-ˆÐÐ
­ÅÚÐ-‰ÐÐ
­ÆÚÐ-ŠÐÐ
­ÇÚÐ-‹ÐÐ
­ÉÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ÐÐ
­ÊÚÐ-ŽÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-ÐÐ
­ÍÚÐ-‘ÐÐ
­ÎÚÐ-’ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-“ÐÐ
­XÚÐ-”ÐÐ
­ZÚÐ-•ÐÐ
­[ÚÐ-–ÐÐ
­\ÚÐ-—ÐÐ
­]ÚÐ-˜ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-™ÐÐ
­`ÚÐ-šÐÐ
­aÚÐ-›ÐÐ
­’ÚÐ-œÐÐ
­dÚÐ-ÐÐ
­eÚÐ-žÐÐ
­fÚÐ-–ÐÐ
­gÚÐ-ŸÐÐ
­hÚÐ- ÐÐ
­‚ÚÐ-zÐÐ
­…ÚÐ-¡ÐÐ
­†ÚÐ-¢ÐÐ
­‡ÚÐ-£ÐÐ
­ˆÚÐ-¤ÐÐ
­‰ÚÐ-–ÐÐ
­‹ÚÐ-¥ÐÐ
­ƒÚÐ- ÐÐ
­„ÚÐ-zÐÐ
­iÚÐ-¦ÐÐ
­jÚÐ-§ÐÐ
­kÚÐ-¨ÐÐ
­lÚÐ-–ÐÐ
­mÚÐ-©ÐÐ
­nÚÐ-˜ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-ªÐÐ
­xÚÐ-«ÐÐ
­yÚÐ-¬ÐÐ
­zÚÐ-­ÐÐ
­{ÚÐ- ÐÐ
­|ÚÐ-®ÐÐ
­}ÚÐ-¯ÐÐ
­~ÚÐ-°ÐÐ
­ÚÐ-±ÐÐ
­€ÚÐ-²ÐÐ
­ÚÐ-³ÐÐ
­bÚÐ-´ÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-µÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-¶ÐÐ
­ÒÚÐ-·ÐÐ
­ÓÚÐ-¸ÐÐ
­ÔÚÐ-¹ÐÐ
­ÕÚÐ-ºÐÐ
­ÖÚÐ-»ÐÐ
­×ÚÐ-¼ÐÐ
­ØÚÐ-½ÐÐ
­ÙÚÐ-¾ÐÐ
­ÚÚÐ-¿ÐÐ
­ÛÚÐ-ÀÐÐ
­ÜÚÐ-ÁÐÐ
­ÝÚÐ-ÂÐÐ
­ÞÚÐ-¿ÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÄÐÐ
­áÚÐ-ÅÐÐ
­âÚÐ-·ÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÆÐÐ
­íÚÐ-ÂÐÐ
­îÚÐ-ÇÐÐ
­ïÚÐ-ÈÐÐ
­ðÚÐ-ÉÐÐ
­ÊÚÐ-ÊÐÐ
­AÚÐ-ËÐÐ
­GÚÐ-ÌÐÐ
­CÚÐ-ÍÐÐ
­HÚÐ-ÎÐÐ
­DÚÐ-ÏÐÐ
­IÚÐ-ÐÐÐ
­EÚÐ-ÑÐÐ
­JÚÐ-ÒÐÐ
­BÚÐ-ÓÐÐ
­ËÚÐ-zÐÐ
­ÍÚÐ-ÔÐÐ
­ÓÚÐ-ÕÐÐ
­ÔÚÐ-·ÐÐ
­ÕÚÐ-¸ÐÐ
­ÖÚÐ-¹ÐÐ
­×ÚÐ-ºÐÐ
­ØÚÐ-»ÐÐ
­ÙÚÐ-¼ÐÐ
­ÚÚÐ-½ÐÐ
­ÚÐ-ÖÐÐ
­ÛÚÐ-¾ÐÐ
­ÜÚÐ-¿ÐÐ
­ÒÚÐ-ÀÐÐ
­ÝÚÐ-×ÐÐ
­ßÚÐ-ÂÐÐ
­àÚÐ-ØÐÐ
­ÚÐ-ÙÐÐ
­ÞÚÐ-ÚÐÐ
­ÏÚÐ-ÛÐÐ
­âÚÐ-ÜÐÐ
­ãÚÐ-·ÐÐ
­äÚÐ-¸ÐÐ
­åÚÐ-¹ÐÐ
­æÚÐ-ºÐÐ
­çÚÐ-»ÐÐ
­èÚÐ-¼ÐÐ
­éÚÐ-½ÐÐ
­ÚÐ-ÝÐÐ
­êÚÐ-¾ÐÐ
­ëÚÐ-¿ÐÐ
­ìÚÐ-ÀÐÐ
­íÚÐ-ÞÐÐ
­îÚÐ-ÂÐÐ
­ÚÐ-ßÐÐ
­ïÚÐ-ØÐÐ
­áÚÐ-ÚÐÐ
­ðÚÐ-àÐÐ
­ÚÐ-áÐÐ
­ñÚÐ-·ÐÐ
­òÚÐ-¸ÐÐ
­óÚÐ-¹ÐÐ
­ôÚÐ-ºÐÐ
­õÚÐ-»ÐÐ
­öÚÐ-¼ÐÐ
­÷ÚÐ-½ÐÐ
­ÚÐ-âÐÐ
­øÚÐ-¾ÐÐ
­ùÚÐ-¿ÐÐ
­úÚÐ-ÀÐÐ
­ûÚÐ-ãÐÐ
­üÚÐ-ÂÐÐ
­ ÚÐ-äÐÐ
­ýÚÐ-ØÐÐ
­ÐÚÐ-ÚÐÐ
­þÚÐ-åÐÐ
­
ÚÐ-ÅÐÐ
­ÿÚÐ-·ÐÐ
­ÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­!ÚÐ-æÐÐ
­ÚÐ-¾ÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­   ÚÐ-çÐÐ
­
10
ÚÐ-ÂÐÐ
­"ÚÐ-æÐÐ
­ÚÐ-ØÐÐ
­ñÚÐ-ÚÐÐ
­,ÚÐ-èÐÐ
­-ÚÐ-éÐÐ
­.ÚÐ-·ÐÐ
­/ÚÐ-¸ÐÐ
­0ÚÐ-¹ÐÐ
­1ÚÐ-ºÐÐ
­2ÚÐ-»ÐÐ
­3ÚÐ-¼ÐÐ
­4ÚÐ-½ÐÐ
­6ÚÐ-¾ÐÐ
­7ÚÐ-êÐÐ
­8ÚÐ-ÀÐÐ
­9ÚÐ-ëÐÐ
­:ÚÐ-ÂÐÐ
­;ÚÐ-ìÐÐ
­òÚÐ-ÚÐÐ
­ôÚÐ-íÐÐ
­õÚÐ-ÐÐ
­öÚÐ-îÐÐ
­ùÚÐ-ïÐÐ
­ûÚÐ-ðÐÐ
­üÚÐ-ñÐÐ
­ýÚÐ-{ÐÐ
­þÚÐ-|ÐÐ
­ÿÚÐ-òÐÐ
­ÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-öÐÐ
­ÚÐ-÷ÐÐ
­
10
ÚÐ-ÂÐÐ
­"ÚÐ-æÐÐ
­ÚÐ-ØÐÐ
­ñÚÐ-ÚÐÐ
­,ÚÐ-èÐÐ
­-ÚÐ-éÐÐ
­.ÚÐ-·ÐÐ
­/ÚÐ-¸ÐÐ
­0ÚÐ-¹ÐÐ
­1ÚÐ-ºÐÐ
­2ÚÐ-»ÐÐ
­3ÚÐ-¼ÐÐ
­4ÚÐ-½ÐÐ
­6ÚÐ-¾ÐÐ
­7ÚÐ-êÐÐ
­8ÚÐ-ÀÐÐ
­9ÚÐ-ëÐÐ
­:ÚÐ-ÂÐÐ
­;ÚÐ-ìÐÐ
­òÚÐ-ÚÐÐ
­ôÚÐ-íÐÐ
­õÚÐ-ÐÐ
­öÚÐ-îÐÐ
­ùÚÐ-ïÐÐ
­ûÚÐ-ðÐÐ
­üÚÐ-ñÐÐ
­ýÚÐ-{ÐÐ
­þÚÐ-|ÐÐ
­ÿÚÐ-òÐÐ
­ÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-öÐÐ
­ÚÐ-÷ÐÐ
­
11
ÚÐ-øÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-ùÐÐ
­
ÚÐ-ÚÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-µÐÐ
­ÚÐ-úÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-ÈÐÐ
­/ÚÐ-²ÐÐ
­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
11
ÚÐ-øÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-ùÐÐ
­
ÚÐ-ÚÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-µÐÐ
­ÚÐ-úÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-ÈÐÐ
­/ÚÐ-²ÐÐ
­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
12
+ÐÐ
­†ÚÐ-¬ÐÐ
­‡ÚÐ-­ÐÐ
­ˆÚÐ-®ÐÐ
­‰ÚÐ-¯ÐÐ
­ŠÚÐ-°ÐÐ
­‹ÚÐ-±ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-²ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-³ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-´ÐÐ
­”ÚÐ-µÐÐ
­–ÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-·ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-¸ÐÐ
­™ÚÐ-¹ÐÐ
­šÚÐ-ºÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-»ÐÐ
­ÚÐ-ÐÐ
­žÚÐ-¼ÐÐ
­ŸÚÐ-½ÐÐ
­ ÚÐ-¾ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-¿ÐÐ
­£ÚÐ-ÀÐÐ
­¤ÚÐ-ÁÐÐ
­¦ÚÐ-ÂÐÐ
­*ÚÐ-ÃÐÐ
­@ÚÐ-ÄÐÐ
­§ÚÐ-ÅÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ÆÐÐ
­ ÚÐ-ÇÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÈÐÐ
­©ÚÐ-ÉÐÐ
­«ÚÐ-¯ÐÐ
­ÚÐ-ÐÊ-ËÌÍ-ÎÏÐÐÑÒ
12
-ÐÐ
­†ÚÐ-­ÐÐ
­‡ÚÐ-®ÐÐ
­ˆÚÐ-¯ÐÐ
­‰ÚÐ-°ÐÐ
­ŠÚÐ-±ÐÐ
­‹ÚÐ-²ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-³ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-´ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-µÐÐ
­”ÚÐ-ÐÐ
­–ÚÐ-·ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¸ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-¹ÐÐ
­™ÚÐ-ºÐÐ
­šÚÐ-»ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-¼ÐÐ
­ÚÐ-ÐÐ
­žÚÐ-½ÐÐ
­ŸÚÐ-¾ÐÐ
­ ÚÐ-¿ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÀÐÐ
­£ÚÐ-ÁÐÐ
­¤ÚÐ-ÂÐÐ
­¦ÚÐ-ÃÐÐ
­*ÚÐ-ÄÐÐ
­@ÚÐ-ÅÐÐ
­§ÚÐ-ÆÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ÇÐÐ
­ ÚÐ-ÈÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÉÐÐ
­©ÚÐ-ÊÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ËÐÐ
­«ÚÐ-°ÐÐ
­ÚÐ-ÐÌ-ÍÎÏ-ÐÑÒÐÓÔ