示例#1
0
 private void ConfirmSkipPassToNextMachine(FASequence actor, TimeSpan time)
 {
     if (SkipPassToNextMachine)
         actor.NextStep("ClearIsAvailable");
     else
         actor.NextStep();
 }
        public FAPamtekBarcodeScannerPart(FASequenceManager aSequenceManager)
        {
            CheckReadyStatus = new FASequence(aSequenceManager);

            CheckReadyStatus.AddItem(delegate(object sender) { ReadReadyStatus(); });
            CheckReadyStatus.AddItem(ConfirmReadyStatus);
        }
 public void ConfirmTime(FASequence actor, TimeSpan time)
 {
     if (Time.Time < time)
     {
         if (MethodOfEndTime != null)
         {
             if (MethodOfEndTime())
                 actor.NextStep();
             else
                 actor.NextStep("Retry");
         }
         else
             actor.NextStep();
     }
     else
     {
         if (MethodOfDuringTime != null)
         {
             if (MethodOfDuringTime())
                 actor.NextStep();
             else
                 actor.NextStep("Retry");
         }
     }
 }
 private void ConfirmSkipPassToNextMachine(FASequence actor, TimeSpan time)
 {
     if (SkipPassToNextMachine)
         actor.NextStep("AfterUnloading");
     else
         actor.NextStep();
 }
        private void ConfirmTrayIndex(FASequence actor, TimeSpan time)
        {
            bool isRFTray, isFirstTray, isLastTray, isHaveAEmptyPocket;
            int needEmptyTrayCount;
            string errMsg;

            var result = UtilityClass.SetTrayProcessFlag(ProductInfo, out isRFTray, out isFirstTray, out isLastTray, out needEmptyTrayCount, out isHaveAEmptyPocket, out errMsg);

            if (result == false)
            {
                RaiseAlarm(actor, AlarmLotInfoNotCorrect);
            }
            else
            {
                if (isRFTray || needEmptyTrayCount > 0 || isHaveAEmptyPocket) // Robot이 집어간다.
                {
                    SkipPassToNextMachine = true;
                    actor.NextStep();
                }
                else
                {
                    SkipPassToNextMachine = false;
                    actor.NextTerminate();
                }
            }
        }
 private void ConfirmStackTerminated(FASequence actor, TimeSpan time)
 {
     if (IsStackTerminated() == true)
         actor.NextStep();
     else
         actor.NextStep("ClearIsAvailable");
 }
示例#7
0
        public override void RegisterSequence(FALibrary.Sequence.FASequenceManager aSequenceManager)
        {
            base.RegisterSequence(aSequenceManager);

            Initialize = new FASequence(aSequenceManager);
            TransferBox = new FASequence(aSequenceManager);
            ReleaseLabel = new FASequence(aSequenceManager);
        }
        //------------------------------------------------------------------------
        public MainEquipment()
        {
            SWInfo = Forms.Main.WindowVersionInfo.Version;
            InitialStackerSequence = new FASequence(SubSequenceManager);
            InitialStackerExceptSequence = new FASequence(SubSequenceManager);

            OnStatusChanged += StatusChangedEventHandler;
            CreateSuspendConditionList();
        }
        public override void RegisterSequence(FALibrary.Sequence.FASequenceManager aSequenceManager)
        {
            Initialize = new FASequence(aSequenceManager);
            MoveToStackerPos = new FASequence(aSequenceManager);
            MoveToStackerPos.Name = "TrayUnloader.MoveToStackerPos";

            PushToStacker = new FASequence(aSequenceManager);
            PushToStacker.Name = "TrayUnloader.PushToStacker";
        }
示例#10
0
 private void ConfirmTerminatedPreUnloading(FASequence actor, TimeSpan time)
 {
     if (PreUnloading.IsStartable())
     {
         if (NextModule == null)
             actor.NextStep();
         else if (NextModule.PreLoading.IsStartable())
             actor.NextStep();
     }
 }
示例#11
0
 private void ConfirmNextModuleLoadingAble(FASequence actor, TimeSpan time)
 {
     if (NextModule == null)
         actor.NextStep("ProductDataCopyToNextMachine");
     else if (NextModule.IsAvailable == true)
     {
         NextModule.IsAvailable = false;
         actor.NextStep();
     }
 }
        public FAPrintronix5000TRPart(FASequenceManager aSequenceManager)
        {
            CheckStatus = new FASequence(aSequenceManager);

            CheckStatus.Steps.Add("Start", new StepInfo());
            CheckStatus.OnStart += EventHandlerOnCheckStatus;

            CheckStatus.Steps["Start"].StepIndex = CheckStatus.AddItem(GetStatus);
            CheckStatus.AddItem(ConfirmStatus);
        }
 public void Start(FASequence actor, TimeSpan time)
 {
     if (StartCondition == null)
     {
         Start();
         actor.NextStep();
     }
     else if (StartCondition() == true)
     {
         Start();
         actor.NextStep();
     }
 }
        //------------------------------------------------------------------------
        public MainEquipment()
        {
            SWInfo = Forms.Main.WindowVersionInfo.Version;
            InitialStackerSequence = new FASequence(SubSequenceManager);
            InitialStackerExceptSequence = new FASequence(SubSequenceManager);

            TimeDoorLockTimeout = new FATime(FATimeType.second, 3);
            _ioSwitchingTimer.Tick += OnIOSwitchingTick;
            _ioSwitchingTimer.Interval = new TimeSpan(0, 0, 0, 0, IO_SWITCHING_INTERVAL);
            _ioSwitchingTimer.Start();

            OnStatusChanged += StatusChangedEventHandler;
        }
        public MainEquipment()
        {
            SWInfo = Forms.Main.WindowVersionInfo.Version;
            OnStatusChanged += EventHandlerStatusChanged;

            OnStatusChanged += StatusChangedEventHandler;

            _ioSwitchingTimer.Tick += OnIOSwitchingTick;
            _ioSwitchingTimer.Interval = new TimeSpan(0, 0, 0, 0, IO_SWITCHING_INTERVAL);
            _ioSwitchingTimer.Start();

            LargeBoxAutoLoadingSequence = new FASequence(SubSequenceManager);
        }
        public MainEquipment()
        {
            SWInfo = Forms.Main.WindowVersionInfo.Version;

            LoadingConveyorUnitByPassStackerUpDownCylinder.Down.Sequence.Atomic = true;
            LoadingConveyorUnitByPassStackerUpDownCylinder.Up.Sequence.Atomic = true;

            OnStatusChanged += EventHandlerStatusChanged;

            _ioSwitchingTimer.Tick += OnIOSwitchingTick;
            _ioSwitchingTimer.Interval = new TimeSpan(0, 0, 0, 0, IO_SWITCHING_INTERVAL);
            _ioSwitchingTimer.Start();

            LargeBoxAutoLoadingSequence = new FASequence(SubSequenceManager);
        }
        public StandardEquipment()
        {
            _operationSequence = new FASequence(MainSequenceManager);
            _startSequence = new FASequence(MainSequenceManager);
            _stopSequence = new FASequence(MainSequenceManager);
            _initialSequence = new FASequence(MainSequenceManager);
            _jamClearSequence = new FASequence(MainSequenceManager);
            AlarmStopSequence = new FASequence(MainSequenceManager);
            SuspendSequence = new FASequence(MainSequenceManager);
            ResumeSequence = new FASequence(MainSequenceManager);
            PreStartSequence = new FASequence(MainSequenceManager);

            IOList = new FAPartMemoryBaseIOList();
            CreatePart();
            CreateModule();

            SetOperationList();

            _ioSwitchingTimer.Tick += OnIOSwitchingTick;
            _ioSwitchingTimer.Interval = new TimeSpan(0, 0, 0, 0, IO_SWITCHING_INTERVAL);
            _ioSwitchingTimer.Start();

            OnSoundClearButtonClick +=
                delegate
                {
                    if (SoundClear == false)
                    {
                        SignalTowerBuzzer.DoTurnOff(this);
                        SignalPhoneMelodie1.DoTurnOff(this);
                        SignalPhoneMelodie2.DoTurnOff(this);
                        SignalPhoneMelodie3.DoTurnOff(this);
                        SignalPhoneMelodie4.DoTurnOff(this);
                    }

                    SoundClear = !SoundClear;
                };

            DispatcherTimer allwaysTimer = new DispatcherTimer();
            allwaysTimer.Interval = new TimeSpan(0, 0, 0);
            allwaysTimer.Tick +=
                delegate
                {
                    SoundClearButtonPushStatus = SoundClearButtonSignal.IsOn;
                    System.Threading.Thread.Sleep(1);
                };
            allwaysTimer.Start();
        }
示例#18
0
        public StandardEquipment()
        {
            _operationSequence = new FASequence(MainSequenceManager);
            _startSequence = new FASequence(MainSequenceManager);
            _stopSequence = new FASequence(MainSequenceManager);
            _initialSequence = new FASequence(MainSequenceManager);
            _jamClearSequence = new FASequence(MainSequenceManager);
            AlarmStopSequence = new FASequence(MainSequenceManager);

            IOList = new FAPartMemoryBaseIOList();
            CreatePart();
            CreateModule();

            SetOperationList();

            _ioSwitchingTimer.Tick += OnIOSwitchingTick;
            _ioSwitchingTimer.Interval = new TimeSpan(0, 0, 0, 0, IO_SWITCHING_INTERVAL);
            _ioSwitchingTimer.Start();
        }
        public void ConfirmTerminated(FASequence actor, TimeSpan time)
        {
            if (Sequences == null)
            {
                TerminateResult();
                actor.NextStep();
            }
            else
            {
                foreach (var seq in Sequences)
                {
                    if (seq.IsStartable() == false)
                        return;
                }

                if (TerminateResult != null)
                    TerminateResult();

                actor.NextStep();
            }
        }
示例#20
0
 public override void RegisterSequence(FASequenceManager aSequenceManager)
 {
     Initialize = new FASequence(aSequenceManager);
     MoveStandby = new FASequence(aSequenceManager);
     Loading = new FASequence(aSequenceManager);
     BandingOneStep = new FASequence(aSequenceManager);
     Banding = new FASequence(aSequenceManager);
     Unloading = new FASequence(aSequenceManager);
     UnloadingConveyor = new FASequence(aSequenceManager);
     BandingAndUnloading = new FASequence(aSequenceManager);
 }
示例#21
0
 private void IsTimeout(FASequence actor, TimeSpan time)
 {
     if (time > Timeout)
     {
         actor.SetAlarm();
     }
 }
示例#22
0
        public void ExecuteForSequence(FASequence actor, TimeSpan time)
        {
            if (IsInterlock() == true)                            
                return;            

            ActionMethod(actor);
            actor.NextStep();
        }
示例#23
0
 public void CreateSequence(FASequenceManager aSequenceManager)
 {
     Object thisLock = new Object();
     lock (thisLock)
     {
         if (_sequence == null)
         {
             _sequence = new FASequence(aSequenceManager);
         }
     }
 }
示例#24
0
        public void RegisterSequence()
        {
            PropertyInfo[] propList = this.GetType().GetProperties();
            foreach (PropertyInfo info in propList)
            {
                if (info.PropertyType != typeof(FASequence)) continue;

                FASequence sequence = new FASequence(SequenceManager);

                sequence.Name = info.Name;
                info.SetValue(this, sequence, null);
            }
        }
 public override void RegisterSequence(FASequenceManager aSequenceManager)
 {
     Loop = new FASequence(aSequenceManager);
     EmptyBoxLoop = new FASequence(aSequenceManager);
     MoveBoxToBandingPos = new FASequence(aSequenceManager);
     Banding = new FASequence(aSequenceManager);
     InletAndBandingAndOut = new FASequence(aSequenceManager);
     EjectToLineConveyor = new FASequence(aSequenceManager);
     Initialize = new FASequence(aSequenceManager);
 }
        private void LoadJob(FASequence actor, TimeSpan time)
        {
            var equip = Equipment as VT5070.SubEquipment;
            var partID = CurrentWork.ProductInfo.PRODUCT_NAME;
            string msg = "";
            var job = equip.JobManagerInstance.GetJob(partID, out msg);

            if (job == null)
            {
                RaiseAlarm(actor, AlarmJobLoadFail, "Job is null\n" + msg);
            }
            else
            {
                try
                {
                    SetJobInfo(job);
                    actor.NextStep();
                }
                catch (Exception e)
                {
                    RaiseAlarm(actor, AlarmJobLoadFail, e.ToString());
                }
            }
        }
        public override void RegisterSequence(FASequenceManager aSequenceManager)
        {
            Loop = new FASequence(aSequenceManager);
            MovePickPos = new FASequence(aSequenceManager);
            MoveStandbyPos = new FASequence(aSequenceManager);
            ReleaseLabel = new FASequence(aSequenceManager);
            AttachSamsungLabel = new FASequence(aSequenceManager);
            AttachSpecialLabel = new FASequence(aSequenceManager);
            Initialize = new FASequence(aSequenceManager);
            LabelCheckOnPicker = new FASequence(aSequenceManager);
            PrinterUnitDown = new FASequence(aSequenceManager);
            StandbyAttachSamsungLabel = new FASequence(aSequenceManager);

            ScanSamsungLabel = new FASequence(aSequenceManager);
            ScanSpecialLabel = new FASequence(aSequenceManager);
        }
示例#28
0
        protected override void ActionAfterStop(FASequence actor, TimeSpan time)
        {
            if (XCloseInformReceived == true)
            {
                try
                {
                    if (XCloseInform != null)
                    {
                        if (XCloseInform.Result == true)
                        {
                            if (TrayScanModule.ProductInfo.ECInfo.ReceiveLotClose.LotID
                                == XCloseInform.LotID)
                            {
                                var alarm = Utility.AlarmUtility.GetAlarm(TrayScanModule.AlarmReceivedXCloseInform,
                                    "RECEIVED X CLOSE INFORM " + XCloseInform.LotID);
                                Manager.WarningMessageManager.Instance.Show(
                                    "X CLOSE INFORM", alarm.AlarmName);
                                InitializeOk = false;
                            }
                        }
                    }
                }
                catch
                {
                    actor.NextStep();
                }
            }

            XCloseInformReceived = false;
            actor.NextStep();
        }
示例#29
0
        public override void RegisterSequence()
        {
            TrayScanModule.RegisterSequence(SubSequenceManager);
            TrayLoaderModule1.RegisterSequence(SubSequenceManager);
            TrayLoaderModule2.RegisterSequence(SubSequenceManager);
            TrayUnloaderModule.RegisterSequence(SubSequenceManager);
            TransferModule.RegisterSequence(SubSequenceManager);
            SSDPickerModule1.RegisterSequence(SubSequenceManager);
            SSDPickerModule2.RegisterSequence(SubSequenceManager);
            SSDFeederModule1.RegisterSequence(SubSequenceManager);
            SSDFeederModule2.RegisterSequence(SubSequenceManager);

            FirstFeederControlModule.RegisterSequence(FirstLineSubSequenceManager);
            FirstBoxFeederModule.RegisterSequence(FirstLineSubSequenceManager);
            FirstBoxStackerModule1.RegisterSequence(FirstLineSubSequenceManager);
            FirstBoxStackerModule2.RegisterSequence(FirstLineSubSequenceManager);
            FirstBoxStackerModule3.RegisterSequence(FirstLineSubSequenceManager);
            FirstBoxStackerModule4.RegisterSequence(FirstLineSubSequenceManager);

            SecondFeederControlModule.RegisterSequence(SecondLineSubSequenceManager);
            SecondBoxFeederModule.RegisterSequence(SecondLineSubSequenceManager);
            SecondBoxStackerModule1.RegisterSequence(SecondLineSubSequenceManager);
            SecondBoxStackerModule2.RegisterSequence(SecondLineSubSequenceManager);
            SecondBoxStackerModule3.RegisterSequence(SecondLineSubSequenceManager);
            SecondBoxStackerModule4.RegisterSequence(SecondLineSubSequenceManager);

            FirstLineRunSequence = new FASequence(FirstLineSubSequenceManager);
            SecondLineRunSequence = new FASequence(SecondLineSubSequenceManager);
            AreaSensorWarningSequence = new FASequence(SubSequenceManager);
        }
        private void ConfirmStatus(FASequence actor, TimeSpan time)
        {
            if (StatusOnlineError == false &&
                StatusBufferOverflow == false &&
                StatusHeadOpenError == false &&
                StatusPaperOutError == false &&
                StatusRibbonOut == false)
            {
                actor.NextStep();
            }
            else if (TimeStatusCheckTimeout.Time < time)
            {
                if (RetryInfoStatusCheck.IncreaseCount())
                {
                    actor.NextStep("Start");
                }
                else
                {
                    if (StatusOnlineError)
                    {
                        FAAlarmManager.Instance.RaiseAlarm(actor, AlarmLabelPrinterOnlineError);
                    }
                    else if (StatusBufferOverflow)
                    {
                        FAAlarmManager.Instance.RaiseAlarm(actor, AlarmLabelPrinterBufferOverflowError);
                    }
                    else if (StatusHeadOpenError)
                    {
                        FAAlarmManager.Instance.RaiseAlarm(actor, AlarmLabelPrinterHeadOpenError);
                    }
                    else if (StatusPaperOutError)
                    {
                        FAAlarmManager.Instance.RaiseAlarm(actor, AlarmLabelPrinterPaperOutError);
                    }
                    else if (StatusRibbonOut)
                    {
                        FAAlarmManager.Instance.RaiseAlarm(actor, AlarmLabelPrinterRibbonOutError);
                    }

                    actor.NextStep("Start");
                }
            }
        }