Пример #1
0
 void ReleaseTimer_OnElapsed(Experior.Core.Timer sender)
 {
     ReleaseTimer.Reset();
     if ((this.NextRouteStatus.Available == RouteStatuses.Available) && (LineReleasePhotocell.PhotocellStatus == PhotocellState.Blocked || LineReleasePhotocell.PhotocellStatus == PhotocellState.LoadBlocked))
     {
         this.RouteAvailable = RouteStatuses.Available;
         StartReleaseTimer();
     }
 }
Пример #2
0
        public Controller()
            : base("Qubiqa.PGGantry")
        {
            var tcar1 = Experior.Core.Assemblies.Assembly.Items["Transfer car 1"] as TransferCar;

            if (tcar1 != null)
            {
                transferCarController1 = new TransferCarController(tcar1);
            }

            var tcar2 = Experior.Core.Assemblies.Assembly.Items["Transfer car 2"] as TransferCar;

            if (tcar2 != null)
            {
                transferCarController2 = new TransferCarController(tcar2);
            }

            Experior.Catalog.Logistic.Track.DiverterMerger InFeed1DMUnit = Experior.Core.Assemblies.Assembly.Items["InFeed1-DMUnit"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            InFeed1DMUnit.OnEnter += InFeed1DMUnit_OnEnter;

            Experior.Catalog.Logistic.Track.DiverterMerger InFeed2DMUnit = Experior.Core.Assemblies.Assembly.Items["InFeed2-DMUnit"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            InFeed2DMUnit.OnEnter += InFeed2DMUnit_OnEnter;

            Experior.Catalog.Logistic.Track.DiverterMerger OutFeedDMUnit = Experior.Core.Assemblies.Assembly.Items["OutFeed-DMUnit"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            OutFeedDMUnit.OnEnter += OutFeedDMUnit_OnEnter;

            //Experior.Catalog.Logistic.Track.DiverterMerger SP11 = Experior.Core.Assemblies.Assembly.Items["SP11"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            //SP11.OnEnter += SP_OnEnter;
            //Experior.Catalog.Logistic.Track.DiverterMerger SP12 = Experior.Core.Assemblies.Assembly.Items["SP12"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            //SP12.OnEnter += SP_OnEnter;
            //Experior.Catalog.Logistic.Track.DiverterMerger SP21 = Experior.Core.Assemblies.Assembly.Items["SP21"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            //SP21.OnEnter += SP_OnEnter;
            //Experior.Catalog.Logistic.Track.DiverterMerger SP22 = Experior.Core.Assemblies.Assembly.Items["SP22"] as Experior.Catalog.Logistic.Track.DiverterMerger;
            //SP22.OnEnter += SP_OnEnter;

            //ActionPoint.Get("SP11").OnEnter += new ActionPoint.EnterEvent((ActionPoint sender, Load load) => { load.MoveTo("PLA1SPL12"); load.Release(); });
            //ActionPoint.Get("SP12").OnEnter += new ActionPoint.EnterEvent((ActionPoint sender, Load load) => { load.MoveTo("PLA1SPL22"); load.Release(); });
            //ActionPoint.Get("SP21").OnEnter += new ActionPoint.EnterEvent((ActionPoint sender, Load load) => { load.MoveTo("PLA2SPL12"); load.Release(); });
            //ActionPoint.Get("SP22").OnEnter += new ActionPoint.EnterEvent((ActionPoint sender, Load load) => { load.MoveTo("PLA2SPL22"); load.Release(); });

            //Stores the arrived pallet in Aisle 1
            ActionPoint.Items["TCar1-InFeed"].OnEnter += TCar1InFeed_AP_OnEnter;
            //Stores the arrived pallet Aisle 2
            ActionPoint.Items["TCar2-InFeed"].OnEnter += TCar2InFeed_AP_OnEnter;
            //Returns pallet to the inventory and updates its status
            ActionPoint.Items["OutFeed"].OnEnter += OutFeed_AP_OnEnter;


            RefreshCycle            = new Core.Timer(5.0f);
            RefreshCycle.AutoReset  = true;
            RefreshCycle.OnElapsed += RefreshCycle_OnElapsed;

            rndFeed = new Random();

            Reset();
        }
Пример #3
0
 private void Process_OnElaspsed(Experior.Core.Timer timer)
 {
     delayTimer.OnElapsed -= Process_OnElaspsed;
     if (currentOperation == Operation.ChangeStatusToAvailable)
     {
         ThisRouteStatus.Available = RouteStatuses.Available;
     }
     if (currentOperation == Operation.PreviousLoadArrived)
     {
         ReleasePreviousLoad();
     }
     if (currentOperation == Operation.PhotocellBlocked)
     {
         StackLoads();
         if (NextRouteStatus.Available == RouteStatuses.Available)
         {
             ThisRouteStatus.Available = RouteStatuses.Request;
             loadActive = false;
             ReleasePreviousLoad();
         }
     }
     if (currentOperation == Operation.PhotocellClear)
     {
         ThisRouteStatus.Available = RouteStatuses.Request;
         loadActive = false;
         ReleasePreviousLoad();
     }
     if (currentOperation == Operation.NextRouteStatusChanged)
     {
         if (NextRouteStatus.Available == RouteStatuses.Available || NextRouteStatus.Available == RouteStatuses.Request)
         {
             Motor = MotorStatus.Running;
             ThisRouteStatus.Available = RouteStatuses.Request;
             loadActive = false;
             ReleasePreviousLoad();
         }
     }
 }
Пример #4
0
 void LowerLift_OnElapsed(Experior.Core.Timer sender)
 {
     delayTimer.OnElapsed -= LowerLift_OnElapsed;
     LowerLift();
 }