コード例 #1
0
        private void TransportFinished(CommunicationPoint commPoint, IATCCaseLoadType caseLoad)
        {
            if (AlwaysArrival || caseLoad.Location == caseLoad.Destination)
            {
                caseLoad.Location = commPoint.Name;
                casePLC.SendTransportFinishedTelegram(caseLoad);

                if (LoadWait)
                {
                    caseLoad.LoadWaitingForWCS = true;
                    caseLoad.Stop();
                }
            }
        }
コード例 #2
0
        //TODO: For the loads that are stopping on the case conveyor at these communication points it
        //has to be placed in the correct position otherwise its can be an issue (I have found that placing
        //them in exactly the correct place compaired to a accumulation sensor is a good position as all atction point are triggered
        private void TransportRequest(CommunicationPoint commPoint, IATCCaseLoadType caseLoad)
        {
            if (AlwaysArrival || caseLoad.Location == caseLoad.Destination || string.IsNullOrEmpty(caseLoad.Destination))
            {
                caseLoad.Location = commPoint.Name;
                //caseLoad.MTS = commPoint.ControllerName;
                casePLC.SendTransportRequestTelegram(caseLoad);

                if (LoadWait)
                {
                    //[BG] Not happy with this, if this is used then it needs to be understood what the issues are with it
                    //(Like stopping on a belt is bad and you need to put the Comm Point in the right place on accumulation conveyor)
                    caseLoad.LoadWaitingForWCS = true;
                    caseLoad.Stop();
                }
            }
        }
コード例 #3
0
        bool divertArrival(Load load)
        {
            IATCCaseLoadType atcLoad = load as IATCCaseLoadType;

            if (LoadDestination && mergeDivertConveyor.Name == atcLoad.Destination && !atcLoad.LoadWaitingForWCS)
            {
                atcLoad.Stop();
                atcLoad.LoadWaitingForWCS = true;
                atcLoad.Location          = mergeDivertConveyor.Name;
                casePLC.SendTransportFinishedTelegram(atcLoad);
                return(true);
                //Send a message to WMS and wait for the routing
            }

            List <Direction> validRoutes = new List <Direction>();

            Case_Load caseload = load as Case_Load;

            if (atcLoad.Destination != null && mergeDivertConveyor.LeftMode == Modes.Divert && LeftRoutes != null && LeftRoutes.Contains(atcLoad.Destination))
            {
                validRoutes.Add(Direction.Left);
            }

            if (atcLoad.Destination != null && mergeDivertConveyor.RightMode == Modes.Divert && RightRoutes != null && RightRoutes.Contains(atcLoad.Destination))
            {
                validRoutes.Add(Direction.Right);
            }

            if (atcLoad.Destination != null && mergeDivertConveyor.StraightMode == Modes.Divert && StraightRoutes != null && StraightRoutes.Contains(atcLoad.Destination))
            {
                validRoutes.Add(Direction.Straight);
            }

            //Check if the load has the priority bit set
            bool priority = false;

            if (atcLoad.Destination != null && PriorityRoutes != null && PriorityRoutes.Contains(atcLoad.Destination))
            {
                priority = true;
            }

            mergeDivertConveyor.RouteLoad(load, validRoutes, priority);
            return(true); //returns true if handled by this controller
        }
コード例 #4
0
        private void TransportRequestOrFinished(CommunicationPoint commPoint, IATCCaseLoadType caseLoad)
        {
            if (caseLoad.Location == caseLoad.Destination)
            {
                //Send TransportFinishedTelegram
                caseLoad.Location = commPoint.Name;
                casePLC.SendTransportFinishedTelegram(caseLoad);
            }
            else
            {
                //Send TransportRequestTelegram
                caseLoad.Location = commPoint.Name;
                casePLC.SendTransportRequestTelegram(caseLoad);
            }

            if (LoadWait)
            {
                caseLoad.LoadWaitingForWCS = true;
                caseLoad.Stop();
            }
        }