Exemple #1
0
        private enuHWStatus LogError(long _lngErrCode)
        {
            if (_lngErrCode > 4099)
            {
                _lngErrCode -= 4100;
            }
            if (_lngErrCode != 0)
            {
                mPosStatus = enuPositionerStatus.Error;
                if (ErrorList.ContainsKey(_lngErrCode))
                {
                    log.Add(ErrorList[_lngErrCode], "ERROR");
                }
                return(enuHWStatus.Error);
            }
            else
            {
                mPosStatus = enuPositionerStatus.Ready;
                return(enuHWStatus.Ready);
            }

            //            TCHAR InputString[255];
            //            TCHAR TranslatedString[255];
            //            // Konvertiere ASCII-Zeichenkette nach UNICODE
            //            wcscpy_s(InputString, CString(pcData, lMaxLen));
            //            LS.TranslateErrMsg(InputString, TranslatedString, 255);
            //… // Verarbeite TranslatedString
        }
Exemple #2
0
        public enuPositionerStatus ValidateAxisSpeed(enuAxes _axis, ref double _speed)
        {
            if (mPosStatus == enuPositionerStatus.Ready)
            {
                switch (_axis)
                {
                case enuAxes.XAxis:
                    if (_speed > Settings.X.MaxSpeed)
                    {
                        _speed = Settings.X.MaxSpeed;
                    }
                    if (_speed <= 0)
                    {
                        _speed = Settings.X.FailSafeSpeed;
                    }
                    break;

                case enuAxes.YAxis:
                    if (_speed > Settings.Y.MaxSpeed)
                    {
                        _speed = Settings.Y.MaxSpeed;
                    }
                    if (_speed <= 0)
                    {
                        _speed = Settings.Y.FailSafeSpeed;
                    }
                    break;

                case enuAxes.ZAxis:
                    if (_speed > Settings.Z.MaxSpeed)
                    {
                        _speed = Settings.Z.MaxSpeed;
                    }
                    if (_speed <= 0)
                    {
                        _speed = Settings.Z.FailSafeSpeed;
                    }
                    break;

                case enuAxes.AAxis:
                    if (_speed > Settings.A.MaxSpeed)
                    {
                        _speed = Settings.A.MaxSpeed;
                    }
                    if (_speed <= 0)
                    {
                        _speed = Settings.A.FailSafeSpeed;
                    }
                    break;

                default:
                    mPosStatus = enuPositionerStatus.Error;
                    break;
                }
            }
            return(mPosStatus);
        }
Exemple #3
0
        public enuPositionerStatus GetAxisSpeed(enuAxes _axis, ref double _speed)
        {
            double X = 0, Y = 0, Z = 0, A = 0;

            _speed = 0;
            if (mPosStatus == enuPositionerStatus.Ready)
            {
                HWStatus = LogError(Positioner.GetVel(ref X, ref Y, ref Z, ref A));
            }
            if (mPosStatus == enuPositionerStatus.Ready) // mPosStatus was modified by HWStatus already
            {
                switch (_axis)
                {
                case enuAxes.XAxis:
                    _speed = X;
                    break;

                case enuAxes.YAxis:
                    _speed = Y;
                    break;

                case enuAxes.ZAxis:
                    _speed = Z;
                    break;

                case enuAxes.AAxis:
                    _speed = A;
                    break;

                default:
                    mPosStatus = enuPositionerStatus.Error;
                    break;
                }
            }
            return(mPosStatus);
        }
Exemple #4
0
        public enuPositionerStatus GetAxisStatus(enuAxes _axis)
        {
            string strStatus = new String('\0', 256);
            enuPositionerStatus axisState = enuPositionerStatus.Error;

            switch (strStatus.Substring(AxisIndex(_axis), 1))
            {
            case "M":
                // Achse ist in Bewegung (Motion)
                axisState = enuPositionerStatus.Busy;
                break;

            case "-":
                axisState = enuPositionerStatus.NotInitialized;
                break;

            case "@":
                axisState = enuPositionerStatus.Ready;
                break;

            case "S":
                // Achse steht in Endschalter
                axisState = enuPositionerStatus.Error;
                break;

            case "F":
                axisState = enuPositionerStatus.Error;
                break;

            default:
                axisState = enuPositionerStatus.Error;
                break;
            }

            return(axisState);

            /*
             *  int intSwitches = 0;
             *  ErrCheck(Positioner.GetSwitches(ref intSwitches));
             *
             *  if (intSwitches > 0)
             *  {
             *      return enuPositionerStatus.Error;
             *      //todo: log
             *  }
             *
             *  if ((intSwitches | 1024) == 1024)
             *  {
             *      ErrCheck(Positioner.RMeasureEx(4));
             *  }
             *  else if ((intSwitches | 512) == 512)
             *  {
             *      ErrCheck(Positioner.RMeasureEx(2));
             *  }
             *  else if ((intSwitches | 256) == 256)
             *  {
             *      ErrCheck(Positioner.RMeasureEx(1));
             *  }
             *  else if ((intSwitches | 4) == 4)
             *  {
             *      ErrCheck(Positioner.CalibrateEx(4));
             *  }
             *  else if ((intSwitches | 2) == 2)
             *  {
             *      ErrCheck(Positioner.CalibrateEx(2));
             *  }
             *  else if ((intSwitches | 1) == 1)
             *  {
             *      ErrCheck(Positioner.CalibrateEx(1));
             *  }
             *  //todo: objLogger.LogEvent(Me, "The stage was moved across the end-switch, stored positions are now invalid!", LL_Warning)
             *
             *  // return mStatus; //todo:
             * }
             */
        }