private const int nReleaseCarrierTime = 1200; //ms

        // Constructors ------------------------------------------------------------
        public OutputTurnStationController(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            this._workcell      = workcell;
            this._ioManifest    = (HSTIOManifest)HSTMachine.Workcell.IOManifest;
            outputTurnSectionIO = new TurnSectionIO();


            ///// Input Turn Station/////////////

            //digital input
            outputTurnSectionIO.exitClearSensor = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_Turn_Station_Exit_Clear);
            outputTurnSectionIO.inPosition      = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_Turn_Station_In_Position);
            outputTurnSectionIO.At90DegSensor   = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_Turn_Station_At_90_Deg);
            outputTurnSectionIO.At0DegSensor    = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_Turn_Station_At_0_Deg);

            //digital output
            outputTurnSectionIO.turnTo90Deg  = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Turn_Station_Turn_To_90_Deg);
            outputTurnSectionIO.turnTo0Deg   = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Turn_Station_Turn_To_0_Deg);
            outputTurnSectionIO.inhibitRelay = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Turn_Station_Inhibit);

            _doOutputTurnTableTurnTo0Deg  = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Turn_Station_Turn_To_0_Deg);
            _doOutputTurnTableTurnTo90Deg = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Turn_Station_Turn_To_90_Deg);

            _doOutputStopper = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_Stopper);

            TurnSection TS = new TurnSection(outputTurnSectionIO);

            outputTurnSection            = TS as Seagate.AAS.Parsel.Device.ITurnSection;
            outputTurnSection.Simulation = (workcell.HSTSettings.Install.OperationMode == OperationMode.Simulation);
            outputTurnSection.Name       = "OutputTurnSection";
        }
Ejemplo n.º 2
0
        // Constructors & Finalizers -------------------------------------------
        public RunTestScriptProcess(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            this.ioManifest   = (HSTIOManifest)workcell.IOManifest;
            _isNonIdleProcess = true;

            // initialize HSM delegates
            stateMonitoring = new QState(this.Monitoring);
        }
Ejemplo n.º 3
0
        // Constructors & Finalizers -------------------------------------------
        public MonitorProcess(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            this.ioManifest   = (HSTIOManifest)workcell.IOManifest;
            _isNonIdleProcess = true;
            _stateTimer       = new QTimer(this);

            conveyorCongestionTimer = new System.Timers.Timer(1000);
            conveyorCongestionTimer.Stop();

            // initialize HSM delegates
            stateMonitoring = new QState(this.Monitoring);
        }
Ejemplo n.º 4
0
        public ControllerHST(HSTWorkcell workcell, string controllerID, string controllerName)
        {
            _workcell   = workcell;
            _ioManifest = (HSTIOManifest)workcell.IOManifest;

            _controllerID   = controllerID;
            _controllerName = controllerName;

            _controllerErrorList = new Dictionary <int, string>();
            AddControllerError();

            // Generate a text file contains errors of this controller.
            OutputControllerErrorListToTextFile();
        }
Ejemplo n.º 5
0
        // Constructors ------------------------------------------------------------
        public OutputClampRotateController(HSTWorkcell workcell, string controllerID, string controllerName)
            : base(workcell, controllerID, controllerName)
        {
            _workcell        = workcell;
            this._ioManifest = (HSTIOManifest)workcell.IOManifest;

            _doOutputStationClampDeploy =
                _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_CS_Deploy);
            _doOutputStationClampRotate =
                _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_CS_Rotate);

            _diOutputStationClampForward =
                _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_CS_Deploy);
            _diOutputStationClampBackward =
                _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_CS_Retract);
            _diOutputStationClampRotateCwOpen =
                _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_CS_Lock);
            _diOutputStationClampRotateCcwClose =
                _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_CS_Unlock);

            _diOutputStationClampOpenDetect = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_Carrier_Clamp_Sensor);

            if (HSTMachine.Workcell.HSTSettings.Install.OperationMode != OperationMode.Simulation)
            {
                //3. Clamp
                LinearActuator ClampActuator = new LinearActuator(_doOutputStationClampDeploy,
                                                                  _diOutputStationClampForward, _diOutputStationClampBackward, DigitalIOState.On);
                _clamp      = ClampActuator as ILinearActuator;
                _clamp.Name = "Zone 5 clamp actuator";
                _clamp.ExtendedDirectionName  = "Forward";
                _clamp.ExtendedStateName      = "Forward";
                _clamp.RetractedDirectionName = "Backward";
                _clamp.RetractedStateName     = "Backward";

                //4. ClampRotary
                LinearActuator ClampRotaryActuator = new LinearActuator(_doOutputStationClampRotate,
                                                                        _diOutputStationClampRotateCcwClose, _diOutputStationClampRotateCwOpen, DigitalIOState.On);
                _clampRotary      = ClampRotaryActuator as ILinearActuator;
                _clampRotary.Name = "Zone 5 clamp rotary actuator";
                _clampRotary.ExtendedDirectionName  = "Cw Open";
                _clampRotary.ExtendedStateName      = "Cw Open";
                _clampRotary.RetractedDirectionName = "Ccw Close";
                _clampRotary.RetractedStateName     = "Ccw Close";
            }
        }
Ejemplo n.º 6
0
        public MotionControlPanel()
        {
            InitializeComponent();

            _userAccess              = HSTMachine.Workcell.HSTSettings.getUserAccessSettings();
            _userAccess.UserChanged += new EventHandler(UserChanged);

            this._ioManifest = (HSTIOManifest)HSTMachine.Workcell.IOManifest;//temp test

            int startLocation = 6;

            panelSingleAxis          = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();
            panelSingleAxis.Location = new System.Drawing.Point(startLocation, 6);
            panelSingleAxis.Name     = "panelSingleAxis0";
            panelSingleAxis.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis.TabIndex = 0;
            this.Controls.Add(panelSingleAxis);
            panelSingleAxis.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0));

            panelSingleAxis1          = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();
            panelSingleAxis1.Location = new System.Drawing.Point(startLocation + 295, 6);
            panelSingleAxis1.Name     = "panelSingleAxis1";
            panelSingleAxis1.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis1.TabIndex = 0;
            this.Controls.Add(panelSingleAxis1);
            panelSingleAxis1.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1));

            panelSingleAxis2          = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();
            panelSingleAxis2.Location = new System.Drawing.Point(startLocation + (295 * 2), 6);
            panelSingleAxis2.Name     = "panelSingleAxis2";
            panelSingleAxis2.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis2.TabIndex = 0;
            this.Controls.Add(panelSingleAxis2);
            panelSingleAxis2.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2));

            // second row
            PanelSingleAxis panelSingleAxis3 = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();

            panelSingleAxis3.Location = new System.Drawing.Point(startLocation, 6 + 360);
            panelSingleAxis3.Name     = "panelSingleAxis3";
            panelSingleAxis3.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis3.TabIndex = 0;
            this.Controls.Add(panelSingleAxis3);
            panelSingleAxis3.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3));

            PanelSingleAxis panelSingleAxis4 = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();

            panelSingleAxis4.Location = new System.Drawing.Point(startLocation + 295, 6 + 360);
            panelSingleAxis4.Name     = "panelSingleAxis3";
            panelSingleAxis4.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis4.TabIndex = 0;
            this.Controls.Add(panelSingleAxis4);
            panelSingleAxis4.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4));

            PanelSingleAxis panelSingleAxis5 = new Seagate.AAS.Parsel.Hw.Aerotech.A3200.PanelSingleAxis();

            panelSingleAxis5.Location = new System.Drawing.Point(startLocation + (295 * 2), 6 + 360);
            panelSingleAxis5.Name     = "panelSingleAxis3";
            panelSingleAxis5.Size     = new System.Drawing.Size(290, 360);
            panelSingleAxis5.TabIndex = 0;
            this.Controls.Add(panelSingleAxis5);
            panelSingleAxis5.AssignAxis(HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5));

            labelInstructionandInformation.Text = "The command referring to motion controller command.\nFor Example ENABLE X , DISABLE X, MOVEABS X5 10 and MOVEINC X5 10.\nExample: MOVEABS <Axis> <Position> <Speed>\n<Axis>: Axis Name (X,Y,Z)\n<Position> Absolute postion to move to (-100, 100)\n<Speed> The speed at which to move an axis (50, 100, 200)";
            EnableDisableTernimal();
        }
Ejemplo n.º 7
0
        // Constructors ------------------------------------------------------------
        public InputStationController(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            _workcell        = workcell;
            this._ioManifest = (HSTIOManifest)workcell.IOManifest;

            _rfidController                      = new ReadWriteRFIDController(workcell, "RfidInput", "RfidInput", ReadWriteRFIDController.ReaderType.Fola, RFHead.Head1);
            _rfHead                              = Seagate.AAS.Parsel.Device.RFID.RFHead.Head1;
            _seaveyorInputStationZoneIO          = new SeaveyorZoneIO();
            _seaveyorInputStationZoneIO.inhibit  = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.CIS_Inhibit);
            _seaveyorBufferStationZoneIO         = new SeaveyorZoneIO();
            _seaveyorBufferStationZoneIO.inhibit = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.BBZ_Inhibit);


            //Seaveyor
            SeaveyorZone _seaveyorZone = new SeaveyorZone(_seaveyorInputStationZoneIO);

            _seaveyorInputStation            = _seaveyorZone as ISeaveyorZone;
            _seaveyorInputStation.Simulation = (HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.Simulation);
            _seaveyorInputStation.Name       = "Input Station Zone";

            SeaveyorZone _seaveyorBufferZone = new SeaveyorZone(_seaveyorBufferStationZoneIO);

            _seaveyorBufferStation            = _seaveyorBufferZone as ISeaveyorZone;
            _seaveyorBufferStation.Simulation = (HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.Simulation);
            _seaveyorBufferStation.Name       = "Buffer Station Zone";


            //digital input
            _diInputStationInPosition          = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.BIS_Position_On);
            _diBufferStationInPosition         = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.BBZ_Position_On);
            _diInputStationStopperUp           = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_Stopper_Up);
            _diInputStationStopperDown         = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_Stopper_Down);
            _diInputStationLifterUp            = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_Lifter_Up);
            _diInputStationLifterDown          = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_Lifter_Down);
            _diInputStationClampForward        = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_CS_Deploy);
            _diInputStationClampBackward       = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_CS_Retract);
            _diInputStationClampRotateCwOpen   = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_CS_Unlock);
            _diInputStationClampRotateCcwClose = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_CS_Lock);
            _diInputCarrierClampOpen           = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_Carrier_Clamp_Sensor);

            //Digital Output
            _doInputStationStopperExtendUp   = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_Stopper);
            _doInputStationLifterExtendUp    = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_Lifter_Up);
            _doInputStationLifterRetractDown = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_Lifter_Down);
            _doInputStationClampDeploy       = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_CS_Deploy);
            _doInputStationClampRotate       = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_CS_Rotate);


            //1. Stopper
            LinearActuator StopperActuator = new LinearActuator(_doInputStationStopperExtendUp, _diInputStationStopperUp, _diInputStationStopperDown, DigitalIOState.On);

            _stopper      = StopperActuator as ILinearActuator;
            _stopper.Name = "Zone 5 stopper actuator";
            _stopper.ExtendedDirectionName  = "Up";
            _stopper.ExtendedStateName      = "Up";
            _stopper.RetractedDirectionName = "Down";
            _stopper.RetractedStateName     = "Down";


            //2. Lifter
            LinearActuator lifterActuator = new LinearActuator(_doInputStationLifterExtendUp, _doInputStationLifterRetractDown, _diInputStationLifterUp, _diInputStationLifterDown);

            _lifter      = lifterActuator as ILinearActuator;
            _lifter.Name = "Zone 5 lifter actuator";
            _lifter.ExtendedDirectionName  = "Up";
            _lifter.ExtendedStateName      = "Up";
            _lifter.RetractedDirectionName = "Down";
            _lifter.RetractedStateName     = "Down";

            //3. Clamp
            LinearActuator ClampActuator = new LinearActuator(_doInputStationClampDeploy, _diInputStationClampForward, _diInputStationClampBackward, DigitalIOState.On);

            _clamp      = ClampActuator as ILinearActuator;
            _clamp.Name = "Zone 5 clamp actuator";
            _clamp.ExtendedDirectionName  = "Forward";
            _clamp.ExtendedStateName      = "Forward";
            _clamp.RetractedDirectionName = "Backward";
            _clamp.RetractedStateName     = "Backward";

            //4. ClampRotary
            LinearActuator ClampRotaryActuator = new LinearActuator(_doInputStationClampRotate, _diInputStationClampRotateCwOpen, _diInputStationClampRotateCcwClose, DigitalIOState.On);

            _clampRotary      = ClampRotaryActuator as ILinearActuator;
            _clampRotary.Name = "Zone 5 clamp rotary actuator";
            _clampRotary.ExtendedDirectionName  = "Cw Open";
            _clampRotary.ExtendedStateName      = "Cw Open";
            _clampRotary.RetractedDirectionName = "Ccw Close";
            _clampRotary.RetractedStateName     = "Ccw Close";
        }