public static void LinkToApi(this IDigitalInput input, BasicTriList trilist, uint joinStart, string joinMapKey)
        {
            IDigitalInputJoinMap joinMap = new IDigitalInputJoinMap();

            var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);

            if (!string.IsNullOrEmpty(joinMapSerialized))
            {
                joinMap = JsonConvert.DeserializeObject <IDigitalInputJoinMap>(joinMapSerialized);
            }

            joinMap.OffsetJoinNumbers(joinStart);

            try
            {
                Debug.Console(1, input as Device, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));

                // Link feedback for input state
                input.InputStateFeedback.LinkInputSig(trilist.BooleanInput[joinMap.InputState]);
            }
            catch (Exception e)
            {
                Debug.Console(1, input as Device, "Unable to link device '{0}'.  Input is null", (input as Device).Key);
                Debug.Console(1, input as Device, "Error: {0}", e);
                return;
            }
        }
            private void tmrUpdate_Tick(object sender, EventArgs e)
            {
                if (HSTMachine.Workcell.HSTSettings.Install.OperationMode != OperationMode.Simulation)
                {
                    if (_a3200 != null)
                    {
                        _filelock.EnterWriteLock();
                        try
                        {
                            fn = _directory + "\\" + "IOSTATE" + "_" + DateTime.Now.ToString("dd-MM-yyyy") + ".txt";

                            using (StreamWriter outputFile = new StreamWriter(fn, true))
                            {
                                switch ((int)_ioMode)
                                {
                                case 0:    //input
                                    IDigitalInput digitalInput = HSTMachine.Workcell._ioManifest.GetDigitalInput(_bit + (_card * 8));;
                                    bool          outputInput  = _a3200.GetState(digitalInput) == DigitalIOState.On ? true : false;
                                    if (outputInput != _iostate)
                                    {
                                        {
                                            _iostate = outputInput;
                                            outputFile.WriteLine(String.Format("{0}, Input Digital,{1}, {2}", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:ffff"), _IOname, outputInput.ToString()));
                                        }
                                    }
                                    break;

                                case 1:    //output
                                    IDigitalOutput digitalOutput = HSTMachine.Workcell._ioManifest.GetDigitalOutput(_bit + (_card * 8));;
                                    bool           outputOutput  = _a3200.GetState(digitalOutput) == DigitalIOState.On ? true : false;
                                    if (outputOutput != _iostate)
                                    {
                                        _iostate = outputOutput;
                                    }
                                    break;

                                case 2:    //analog input
                                    string outputAnalog = _a3200.GetRawValue(_iAnalogInput).ToString();
                                    if (!_analogValue.Equals(outputAnalog))
                                    {
                                        _analogValue = outputAnalog;
                                    }
                                    break;

                                default:

                                    break;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                        finally
                        {
                            _filelock.ExitWriteLock();
                        }
                    }
                }
            }
Beispiel #3
0
        public DigitalInputControlViewModel(IDigitalInput digitalInput)
        {
            digitalInput.OnDigitalInputChanged += DigitalInput_OnDigitalInputChanged;
            Name = digitalInput.UniqueIdentifyer.IdentifierString;
            IndicatorBackground = new SolidColorBrush(Colors.Transparent);

            digitalInput.RaiseAllObjectEvents();
        }
Beispiel #4
0
        void RemoveInput(IDigitalInput input)
        {
            var tempInput = Inputs.FirstOrDefault(i => i.Equals(input));

            if (tempInput != null)
            {
                tempInput.InputStateFeedback.OutputChange -= InputStateFeedback_OutputChange;
            }

            Inputs.Remove(input);
        }
        public void RegisterDigitalInput(IDigitalInput digIn, int registrationID, string name)
        {
            if (digIn == null)
            {
                throw new Exception(string.Format("The digital input '{0}' is invalid(null)!", name));
            }

            if (digitalInputMap.Contains(registrationID))
            {
                throw new Exception("The IO is already registered!");
            }

            digIn.Name = name;
            digitalInputMap.Add(registrationID, digIn);
        }
Beispiel #6
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";
            }
        }
Beispiel #7
0
        public void AddIO(IDigitalInput digIn, string label)
        {
            SetType(IOType.Digital);
            Led newLED = new Led();

            switch (digIn.State)            //newLED.State = digIn.State;
            {
            case    DigitalIOState.On:      newLED.State = true; break;

            case    DigitalIOState.Off: newLED.State = false; break;

            default:                                        newLED.State = false; break;
            }
            newLED.DisplayAsButton = false;
            newLED.Text            = label;
            this.ioObjList.Add(digIn);
            this.Controls.Add(newLED);
        }
            //Input
            public void AssignAxis(A3200HC a3200, int card, int bit)
            {
                _a3200  = a3200;
                _card   = card;
                _bit    = bit;
                _ioMode = IOMode.Input;
                IDigitalInput digitalInput = HSTMachine.Workcell._ioManifest.GetDigitalInput(_bit + (_card * 8));

                if (_a3200 != null)
                {
                    try
                    {
                        _iostate = _a3200.GetState(digitalInput) == DigitalIOState.On ? true : false;
                    }
                    catch (Exception ex)
                    { }
                }
            }
        // Constructors ------------------------------------------------------------
        public MonitorController(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            _workcell         = workcell;
            _ioManifest       = (HSTIOManifest)workcell.IOManifest;
            _safetyController = new OmronSafetyController(workcell, "SafetyController", "SafetyController");

            if (HSTMachine.Workcell.HSTSettings.Install.OperationMode != OperationMode.Simulation)
            {
                _diGroundMasterOk       = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Ground_Master);
                _inputEndEffectorZAxis  = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Z1);
                _outputEndEffectorZAxis = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Z3);
                _testProbeZAxis         = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Z2);

                _precisorNestXAxis      = _ioManifest.GetAxis((int)HSTIOManifest.Axes.X);
                _precisorNestYAxis      = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Y);
                _precisorNestThetaAxis  = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Theta);
                _axesCommandPositionMap = new Hashtable();
            }
        }
Beispiel #10
0
        // Constructors ------------------------------------------------------------
        public OutputEEController(HSTWorkcell workcell, string processID, string processName)
            : base(workcell, processID, processName)
        {
            this._workcell   = workcell;
            this._ioManifest = (HSTIOManifest)workcell.IOManifest;

            _axesProfile = workcell.SetupConfig.AxesProfile;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Acceleration > outputEEMaxAcce)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Acceleration = outputEEMaxAcce;
            }
            _axesProfile.OutputEEZ.Acceleration = HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Acceleration;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Deceleration > outputEEMaxDece)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Deceleration = outputEEMaxDece;
            }
            _axesProfile.OutputEEZ.Deceleration = HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Deceleration;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Velocity > outputEEMaxVel)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Velocity = outputEEMaxVel;
            }
            _axesProfile.OutputEEZ.Velocity = HSTMachine.Workcell.SetupSettings.MoveProfile.OutputEEZ.Velocity;


            _teachPointRecipe = workcell.TeachPointRecipe;

            _diOutputEndEffectorPnpPresent1 = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_EE_VS1);
            _diOutputEndEffectorPnpPresent2 = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Output_EE_VS2);

            _doOutputEndEffectorPnpVacuumOn = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_EE_VCH);
            _doOutputEndEffectorPnpPurgeOn  = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Output_EE_PCH);

            _OutputEndEffectorZAxis = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Z3);

            OutputEEPrecisorVacuumProcessTimeStopWatch = new Stopwatch();
            Machine.HSTMachine.Workcell.CalibrationSettings.OnSettingsChanged += VisionSettingsChanged;
            Machine.HSTMachine.Workcell.SetupSettings.OnSettingsChanged       += AutomationConfigChanged;
        }
Beispiel #11
0
        private void DigitalInput_OnDigitalInputChanged(IDigitalInput digitalInput, driver.commons.OnOffValue value)
        {
            switch (value)
            {
            case OnOffValue.On:
                IndicatorBackground.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => IndicatorBackground = new SolidColorBrush(Colors.Red));
                break;

            case OnOffValue.Off:
                IndicatorBackground.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => IndicatorBackground = new SolidColorBrush(Colors.Gray));
                break;

            case OnOffValue.Unknown:
                IndicatorBackground.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => IndicatorBackground = new SolidColorBrush(Colors.Transparent));
                break;

            default:
                IndicatorBackground.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => IndicatorBackground = new SolidColorBrush(Colors.Transparent));
                break;
            }
        }
        private void tmrUpdate_Tick(object sender, EventArgs e)
        {
            if (this.Visible == false)
            {
                tmrUpdate.Enabled = false;
                return;
            }

            if (_a3200 != null)
            {
                try
                {
                    _di            = HSTMachine.Workcell._ioManifest.GetDigitalInput(_card == 0 ? _bit : (_card - 1) * 8 + NumberOfIOForXAxis + _bit);
                    ledInput.State = HSTMachine.Workcell._a3200HC.GetState(_di) == DigitalIOState.On ? true : false;
                }
                catch (Exception ex)
                {
                    //DisplayError("Status update error: " + ex.Message);
                }
            }
        }
        // Constructors ------------------------------------------------------------
        public InputEEController(HSTWorkcell workcell, string controllerID, string controllerName)
            : base(workcell, controllerID, controllerName)
        {
            this._ioManifest = (HSTIOManifest)workcell.IOManifest;

            _axesProfile = workcell.SetupConfig.AxesProfile;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Acceleration > inputEEMaxAcce)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Acceleration = inputEEMaxAcce;
            }
            _axesProfile.InputEEZ.Acceleration = HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Acceleration;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Deceleration > inputEEMaxDece)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Deceleration = inputEEMaxDece;
            }
            _axesProfile.InputEEZ.Deceleration = HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Deceleration;

            if (HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Velocity > inputEEMaxVel)
            {
                HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Velocity = inputEEMaxVel;
            }
            _axesProfile.InputEEZ.Velocity = HSTMachine.Workcell.SetupSettings.MoveProfile.InputEEZ.Velocity;

            _teachPointRecipe = workcell.TeachPointRecipe;

            _diInputEndEffectorPnpPresent1 = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_EE_VS1);
            _diInputEndEffectorPnpPresent2 = _ioManifest.GetDigitalInput((int)HSTIOManifest.DigitalInputs.Input_EE_VS2);

            _doInputEndEffectorPnpVacuumOn = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_EE_VCH);
            _doInputEndEffectorPnpPurgeOn  = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_EE_PCH);

            _doInputEndEffectorFlattener = _ioManifest.GetDigitalOutput((int)HSTIOManifest.DigitalOutputs.Input_EE_Flattener);

            _InputEndEffectorZAxis = _ioManifest.GetAxis((int)HSTIOManifest.Axes.Z1);

            Machine.HSTMachine.Workcell.CalibrationSettings.OnSettingsChanged += VisionSettingsChanged;
            Machine.HSTMachine.Workcell.SetupSettings.OnSettingsChanged       += AutomationConfigChanged;
        }
Beispiel #14
0
 public DigitalInputControl(IDigitalInput digitalInput)
 {
     ViewModel = new DigitalInputControlViewModel(digitalInput);
     InitializeComponent();
 }
Beispiel #15
0
        void AddInput(IDigitalInput input)
        {
            Inputs.Add(input);

            input.InputStateFeedback.OutputChange += InputStateFeedback_OutputChange;
        }
        public IOControlPanel()
        {
            InitializeComponent();

            ///////////////////////////////////////////////////////////////////////////////////////
            //Digital Input Session : Start
            ///////////////////////////////////////////////////////////////////////////////////////
            //X axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(0);
            panelDigitalInputElectronicsOutput1.ledInput.Text = "X-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputElectronicsOutput1.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(1);
            panelDigitalInputElectronicsOutput2.ledInput.Text = "X-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputElectronicsOutput2.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(2);
            panelDigitalInputElectronicsOutput3.ledInput.Text = "X-I3 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputElectronicsOutput3.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 2);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(3);
            panelDigitalInputElectronicsOutput4.ledInput.Text = "X-I4 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputElectronicsOutput4.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 3);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(4);
            panelDigitalInputOutputTurnStationExitClear.ledInput.Text = "X-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputTurnStationExitClear.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(5);
            panelDigitalInputOutputTurnStationAt90Deg.ledInput.Text = "X-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputTurnStationAt90Deg.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(6);
            panelDigitalInputOutputTurnStationAt0Deg.ledInput.Text = "X-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputTurnStationAt0Deg.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(7);
            panelDigitalInputInputConveyorPositionOn.ledInput.Text = "X-I8 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputConveyorPositionOn.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 7);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(8);
            panelDigitalInputGroundMaster.ledInput.Text = "X-I9 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputGroundMaster.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 8);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(9);
            panelDigitalInputVentilationFan1.ledInput.Text = "X-I10 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputVentilationFan1.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 9);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(10);
            panelDigitalInputVentilationFan2.ledInput.Text = "X-I11 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputVentilationFan2.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 10);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(11);
            panelDigitalInputVentilationFan3.ledInput.Text = "X-I12 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputVentilationFan3.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 11);

            //X-I12 to X-I24 is spare (not used)
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(20);
            panelDigitalInputCarrierClampInput.ledInput.Text = "X-I20 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputCarrierClampInput.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 20);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(21);
            panelDigitalInputCarrierClampOutput.ledInput.Text = "X-I21 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputCarrierClampOutput.AssignAxis(HSTMachine.Workcell._a3200HC, 0, 21);


            //Y axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(24);
            panelDigitalInputBISPositionOn.ledInput.Text = "Y-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputBISPositionOn.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(25);
            panelDigitalInputBOSPositionOn.ledInput.Text = "Y-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputBOSPositionOn.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(26);
            panelDigitalInputBBZPositionOn.ledInput.Text = "Y-I3 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputBBZPositionOn.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 2);

            //Y-I4 is spare

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(28);
            panelDigitalInputInputTurnStationAt90Deg.ledInput.Text = "Y-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputTurnStationAt90Deg.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(29);
            panelDigitalInputInputTurnStationAt0Deg.ledInput.Text = "Y-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputTurnStationAt0Deg.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(30);
            panelDigitalInputInputTurnStationInPosition.ledInput.Text = "Y-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputTurnStationInPosition.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(31);
            panelDigitalInputOutputTurnStationInPosition.ledInput.Text = "Y-I8 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputTurnStationInPosition.AssignAxis(HSTMachine.Workcell._a3200HC, 1, 7);

            //Theta axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(32);
            panelDigitalInputInputStopperUp.ledInput.Text = "Theta-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputStopperUp.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(33);
            panelDigitalInputInputStopperDown.ledInput.Text = "Theta-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputStopperDown.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(34);
            panelDigitalInputInputLifterUp.ledInput.Text = "Theta-I3 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputLifterUp.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 2);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(35);
            panelDigitalInputInputLifterDown.ledInput.Text = "Theta-I4 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputLifterDown.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 3);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(36);
            panelDigitalInputOutputStopperUp.ledInput.Text = "Theta-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputStopperUp.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(37);
            panelDigitalInputOutputStopperDown.ledInput.Text = "Theta-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputStopperDown.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(38);
            panelDigitalInputOutputLifterUp.ledInput.Text = "Theta-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputLifterUp.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(39);
            panelDigitalInputOutputLifterDown.ledInput.Text = "Theta-I8 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputLifterDown.AssignAxis(HSTMachine.Workcell._a3200HC, 2, 7);

            //Z1 axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(40);
            panelDigitalInputInputCSDeploy.ledInput.Text = "Z1-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputCSDeploy.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(41);
            panelDigitalInputInputCSRetract.ledInput.Text = "Z1-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputCSRetract.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(42);
            panelDigitalInputInputCSLock.ledInput.Text = "Z1-I3 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputCSLock.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 2);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(43);
            panelDigitalInputInputCSUnlock.ledInput.Text = "Z1-I4 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputCSUnlock.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 3);


            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(44);
            panelDigitalInputOutputCSDeploy.ledInput.Text = "Z1-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputCSDeploy.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(45);
            panelDigitalInputOutputCSRetract.ledInput.Text = "Z1-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputCSRetract.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(46);
            panelDigitalInputOutputCSLock.ledInput.Text = "Z1-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputCSLock.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(47);
            panelDigitalInputOutputCSUnlock.ledInput.Text = "Z1-I8 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputCSUnlock.AssignAxis(HSTMachine.Workcell._a3200HC, 3, 7);

            //Z2 axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(48);
            panelDigitalInputPNVS1.ledInput.Text = "Z2-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS1.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(49);
            panelDigitalInputPNVS2.ledInput.Text = "Z2-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS2.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(50);
            panelDigitalInputPNVS3.ledInput.Text = "Z2-I3 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS3.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 2);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(51);
            panelDigitalInputPNVS4.ledInput.Text = "Z2-I4 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS4.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 3);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(52);
            panelDigitalInputPNVS5.ledInput.Text = "Z2-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS5.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(53);
            panelDigitalInputPNVS6.ledInput.Text = "Z2-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS6.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(54);
            panelDigitalInputPNVS7.ledInput.Text = "Z2-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputPNVS7.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(55);
            panelDigitalInputEMOSenseInput.ledInput.Text = "Z2-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputEMOSenseInput.AssignAxis(HSTMachine.Workcell._a3200HC, 4, 7);

            //Z3 axis-input bank
            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(56);
            panelDigitalInputInputEEVS1.ledInput.Text = "Z3-I1 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputEEVS1.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 0);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(57);
            panelDigitalInputInputEEVS2.ledInput.Text = "Z3-I2 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputEEVS2.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 1);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(60);
            panelDigitalInputOutputEEVS1.ledInput.Text = "Z3-I5 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputEEVS1.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 4);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(61);
            panelDigitalInputOutputEEVS2.ledInput.Text = "Z3-I6 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputEEVS2.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 5);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(62);
            panelDigitalInputInputLifterCarrierSense.ledInput.Text = "Z3-I7 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputInputLifterCarrierSense.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 6);

            _di = HSTMachine.Workcell._ioManifest.GetDigitalInput(63);
            panelDigitalInputOutputLifterCarrierSense.ledInput.Text = "Z3-I8 - " + _di.ToString().Replace("_", " ");
            panelDigitalInputOutputLifterCarrierSense.AssignAxis(HSTMachine.Workcell._a3200HC, 5, 7);

            ///////////////////////////////////////////////////////////////////////////////////////
            //Digital Input Session : End
            ///////////////////////////////////////////////////////////////////////////////////////

            ///////////////////////////////////////////////////////////////////////////////////////
            //Analog Input Session : Start
            ///////////////////////////////////////////////////////////////////////////////////////
            _ai = HSTMachine.Workcell._ioManifest.GetAnalogInput(1);
            panelAnalogInputFRLSwitch.labelAnalogInputName.Text = _ai.ToString().Replace("_", " ");
            panelAnalogInputFRLSwitch.AssignAxis(HSTMachine.Workcell._a3200HC, _ai);

            //panelAnalogInput2.AssignAxis(HSTMachine.Workcell._a3200HC, _ai);
            ///////////////////////////////////////////////////////////////////////////////////////
            //Analog Input Session : End
            ///////////////////////////////////////////////////////////////////////////////////////


            ///////////////////////////////////////////////////////////////////////////////////////
            //Output Session : Start
            ///////////////////////////////////////////////////////////////////////////////////////
            //X axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(0);
            panelDigitalOutputInputEEVCH.ledOutput.Text = "X-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputEEVCH.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(1);
            panelDigitalOutputInputEEPCH.ledOutput.Text = "X-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputEEPCH.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(2);
            panelDigitalOutputOutputEEVCH.ledOutput.Text = "X-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputEEVCH.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(3);
            panelDigitalOutputOutputEEPCH.ledOutput.Text = "X-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputEEPCH.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 3);

            //X-O5 to X-O8 is spare (not used)

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(8);
            panelDigitalOutputOutputCSDeploy.ledOutput.Text = "X-O9 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputCSDeploy.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 8);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(9);
            panelDigitalOutputOutputCSRotate.ledOutput.Text = "X-O10 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputCSRotate.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 9);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(10);
            panelDigitalOutputInputEEFlattener.ledOutput.Text = "X-O11 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputEEFlattener.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 10);

            //X-O11 not used anymore (was for Input EE flattener)

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(11);
            panelDigitalOutputInputConveyorInhibit.ledOutput.Text = "X-O12 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputConveyorInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 11);

            //X-O13 to X-O16 is spare (not used)

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(16);
            panelDigitalOutputDCServicingLight.ledOutput.Text = "X-O17 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputDCServicingLight.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 16);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(17);
            panelDigitalOutputCamera1.ledOutput.Text = "X-O18 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputCamera1.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 17);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(18);
            panelDigitalOutputCamera3.ledOutput.Text = "X-O19 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputCamera3.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 18);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(19);
            panelDigitalOutputCamera2.ledOutput.Text = "X-O20 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputCamera2.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 19);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(20);
            panelDigitalOutputElectronicInput1.ledOutput.Text = "X-O21 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputElectronicInput1.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 20);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(21);
            panelDigitalOutputElectronicInput2.ledOutput.Text = "X-O22 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputElectronicInput2.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 21);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(22);
            panelDigitalOutputElectronicInput3.ledOutput.Text = "X-O23 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputElectronicInput3.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 22);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(23);
            panelDigitalOutputElectronicInput4.ledOutput.Text = "X-O24 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputElectronicInput4.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)0), 0, 23);

            //Y axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(24);
            panelDigitalOutputCISInhibit.ledOutput.Text = "Y-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputCISInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(25);
            panelDigitalOutputCOSInhibit.ledOutput.Text = "Y-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputCOSInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(26);
            panelDigitalOutputInputTurnStationInhibit.ledOutput.Text = "Y-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputTurnStationInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(27);
            panelDigitalOutputInputTurnStationTurnTo90Deg.ledOutput.Text = "Y-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputTurnStationTurnTo90Deg.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 3);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(28);
            panelDigitalOutputInputTurnStationTurnTo0Deg.ledOutput.Text = "Y-O5 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputTurnStationTurnTo0Deg.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 4);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(29);
            panelDigitalOutputOutputTurnStationInhibit.ledOutput.Text = "Y-O6 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputTurnStationInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 5);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(30);
            panelDigitalOutputOutputTurnStationTurnTo90Deg.ledOutput.Text = "Y-O7 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputTurnStationTurnTo90Deg.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 6);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(31);
            panelDigitalOutputOutputTurnStationTurnTo0Deg.ledOutput.Text = "Y-O8 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputTurnStationTurnTo0Deg.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)1), 1, 7);

            //Theta axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(32);
            panelDigitalOutputInputStopper.ledOutput.Text = "Theta-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputStopper.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(33);
            panelDigitalOutputInputLifterUp.ledOutput.Text = "Theta-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputLifterUp.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(34);
            panelDigitalOutputInputLifterDown.ledOutput.Text = "Theta-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputLifterDown.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(35);
            panelDigitalOutputOutputStopper.ledOutput.Text = "Theta-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputStopper.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 3);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(36);
            panelDigitalOutputOutputLifterUp.ledOutput.Text = "Theta-O5 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputLifterUp.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 4);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(37);
            panelDigitalOutputOutputLifterDown.ledOutput.Text = "Theta-O6 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputOutputLifterDown.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 5);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(38);
            panelDigitalOutputInputCSDeploy.ledOutput.Text = "Theta-O7 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputCSDeploy.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 6);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(39);
            panelDigitalOutputInputCSRotate.ledOutput.Text = "Theta-O8 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputInputCSRotate.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)2), 2, 7);

            //Z1 axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(40);
            panelDigitalOutputPNVTS1.ledOutput.Text = "Z1-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS1.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(41);
            panelDigitalOutputPNVTS2.ledOutput.Text = "Z1-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS2.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(42);
            panelDigitalOutputPNVTS3.ledOutput.Text = "Z1-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS3.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(43);
            panelDigitalOutputPNVTS4.ledOutput.Text = "Z1-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS4.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 3);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(44);
            panelDigitalOutputPNVTS5.ledOutput.Text = "Z1-O5 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS5.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 4);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(45);
            panelDigitalOutputPNVTS6.ledOutput.Text = "Z1-O6 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS6.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 5);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(46);
            panelDigitalOutputPNVTS7.ledOutput.Text = "Z1-O7 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVTS7.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 6);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(47);
            panelDigitalOutputSoftStartUp.ledOutput.Text = "Z1-O8 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputSoftStartUp.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)3), 3, 7);

            //Z2 axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(48);
            panelDigitalOutputPNVCH1.ledOutput.Text = "Z2-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH1.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(49);
            panelDigitalOutputPNPCH1.ledOutput.Text = "Z2-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH1.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(50);
            panelDigitalOutputPNVCH2.ledOutput.Text = "Z2-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH2.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(51);
            panelDigitalOutputPNPCH2.ledOutput.Text = "Z2-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH2.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 3);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(52);
            panelDigitalOutputPNVCH3.ledOutput.Text = "Z2-O5 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH3.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 4);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(53);
            panelDigitalOutputPNPCH3.ledOutput.Text = "Z2-O6 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH3.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 5);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(54);
            panelDigitalOutputPNVCH4.ledOutput.Text = "Z2-O7 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH4.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 6);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(55);
            panelDigitalOutputPNPCH4.ledOutput.Text = "Z2-O8 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH4.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)4), 4, 7);

            //Z3 axis-output bank
            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(56);
            panelDigitalOutputPNVCH5.ledOutput.Text = "Z3-O1 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH5.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 0);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(57);
            panelDigitalOutputPNPCH5.ledOutput.Text = "Z3-O2 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH5.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 1);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(58);
            panelDigitalOutputPNVCH6.ledOutput.Text = "Z3-O3 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH6.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 2);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(59);
            panelDigitalOutputPNPCH6.ledOutput.Text = "Z3-O4 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH6.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 3);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(60);
            panelDigitalOutputPNVCH7.ledOutput.Text = "Z3-O5 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNVCH7.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 4);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(61);
            panelDigitalOutputPNPCH7.ledOutput.Text = "Z3-O6 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputPNPCH7.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 5);

            _do = HSTMachine.Workcell._ioManifest.GetDigitalOutput(62);
            panelDigitalOutputBBZInhibit.ledOutput.Text = "Z3-O7 - " + _do.ToString().Replace("_", " ");
            panelDigitalOutputBBZInhibit.AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, 6);
        }
        public void GetIOState()
        {
            //Input IO
            for (int icard = 0; icard < 5; icard++)  //card 1 to card 5
            {
                for (int ibit = 0; ibit < 8; ibit++) //each card got 8 bits
                {
                    _di  = HSTMachine.Workcell._ioManifest.GetDigitalInput(ibit + (icard * 8));
                    text = "B" + (icard + 1).ToString() + "I" + (ibit + 1).ToString() + " - " + _di.ToString().Replace("_", " ");

                    if (_di.Name.Contains("NOT USED"))//don't display for those not used/spare
                    {
                        text = "B" + (icard + 1).ToString() + "I" + (ibit + 1).ToString() + " - " + "NOT USED";
                    }

                    _InputState[icard, ibit].IOName = text;
                    _InputState[icard, ibit].AssignAxis(HSTMachine.Workcell._a3200HC, icard, ibit);
                }
            }

            //card 6 have 20 input, but still display in 8 input per set
            int iloop = 0;

            for (int icard = 5; icard < 8; icard++, iloop++) //current only have 8 set
            {
                for (int ibit = 0; ibit < 8; ibit++)         //each card got 8 bits
                {
                    if (icard == 7 && ibit > 3)              //we have only 60 input, skip for 61 to 64
                    {
                        continue;
                    }

                    _di  = HSTMachine.Workcell._ioManifest.GetDigitalInput(ibit + (icard * 8));
                    text = "B6I" + (ibit + 1 + (8 * iloop)).ToString() + " - " + _di.ToString().Replace("_", " ");

                    if (_di.Name.Contains("NOT USED"))//don't display for those not used/spare
                    {
                        text = "B6I" + String.Format("{0}", ibit + 1 + (8 * iloop)) + " - " + "NOT USED";
                    }

                    _InputState[icard, ibit].IOName = text;
                    _InputState[icard, ibit].AssignAxis(HSTMachine.Workcell._a3200HC, 5, ibit + (8 * iloop));
                }
            }

            _ai  = HSTMachine.Workcell._ioManifest.GetAnalogInput(0);
            text = _ai.ToString().Replace("_", " ");
            _AnalogueState[0, 0].IOName = text;
            _AnalogueState[0, 0].AssignAxis(HSTMachine.Workcell._a3200HC, _ai);

            _ai  = HSTMachine.Workcell._ioManifest.GetAnalogInput(1);
            text = _ai.ToString().Replace("_", " ");

            _AnalogueState[0, 1].IOName = text;
            _AnalogueState[0, 1].AssignAxis(HSTMachine.Workcell._a3200HC, _ai);

            ///////////////////////////////////////////////////////////////////////////////////////
            //Analog Input Session : End
            ///////////////////////////////////////////////////////////////////////////////////////


            ///////////////////////////////////////////////////////////////////////////////////////
            //Output Session : Start
            ///////////////////////////////////////////////////////////////////////////////////////

            //have 8 set to display, 3 column and 3 row (1 place for spare)
            for (int icard = 0; icard < 5; icard++)
            {
                for (int ibit = 0; ibit < 8; ibit++)//each card got 8 bits
                {
                    _do  = HSTMachine.Workcell._ioManifest.GetDigitalOutput(ibit + (icard * 8));
                    text = "B" + (icard + 1).ToString() + "O" + (ibit + 1).ToString() + " - " + _do.ToString().Replace("_", " ");

                    if (_do.Name.Contains("NOT USED"))//don't display for those not used/spare
                    {
                        //continue;
                        text = "B" + (icard + 1).ToString() + "O" + (ibit + 1).ToString() + " - " + "NOT USED";
                    }

                    _OutputState[icard, ibit].IOName = text;
                    _OutputState[icard, ibit].AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)icard), icard, ibit);
                }
            }



            //card 6 have 20 output, but still display in 8 output per set
            iloop = 0;
            for (int icard = 5; icard < 8; icard++, iloop++) //current only have 8 set
            {
                for (int ibit = 0; ibit < 8; ibit++)         //each card got 8 bits
                {
                    if (icard == 7 && ibit > 3)              //we have only 60 input, skip for 61 to 64
                    {
                        continue;
                    }

                    _do  = HSTMachine.Workcell._ioManifest.GetDigitalOutput(ibit + (icard * 8));
                    text = "B6O" + (ibit + 1 + (8 * iloop)).ToString() + " - " + _do.ToString().Replace("_", " ");

                    if (_do.Name.Contains("NOT USED"))//don't display for those not used/spare
                    {
                        //continue;
                        text = "B6O" + String.Format("{0}", ibit + 1 + (8 * iloop)) + " - " + "NOT USED";
                    }

                    _OutputState[icard, ibit].IOName = text;
                    _OutputState[icard, ibit].AssignAxis(HSTMachine.Workcell._a3200HC, HSTMachine.Workcell._a3200HC.IOStore.GetAxis((uint)5), 5, ibit + (8 * iloop));
                }
            }
            ///////////////////////////////////////////////////////////////////////////////////////
            //Output Session : End
            ///////////////////////////////////////////////////////////////////////////////////////
        }
Beispiel #18
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";
        }
 private void RaiseOnDigitalInputChanged(IDigitalInput digitalinput, OnOffValue value) => Task.Run(() => OnDigitalInputChanged?.Invoke(digitalinput, value));