Ejemplo n.º 1
0
        public int  Initialize()
        {
            //(uint)mSystemIndex = 0;

            Stop(X_CP_AXIS);
            Stop(Y_CP_AXIS);
            Stop(Z_CP_AXIS);

            for (int k = 0; k < 10; k++)
            {
                try
                {
                    CCoarseController.SA_ReleaseSystems();
                    Thread.Sleep(5 * k + 5);
                    mResult = CCoarseController.SA_InitSystems(CCoarseController.SA_SYNCHRONOUS_COMMUNICATION);                  // init systems
                    if (mResult == CCoarseController.SA_OK)
                    {
                        break;
                    }
                    Thread.Sleep(5);
                }
                catch (Exception ex)
                {
                    MY_DEBUG("Nanopositioner rescure error!");
                }
            }
            if (mResult != CCoarseController.SA_OK)
            {
                MY_DEBUG("Nanopositioner initial error!");
                return(1);
            }

            CCoarseController.SA_SetAccumulateRelativePositions_S((uint)mSystemIndex, Z_CP_AXIS, CCoarseController.SA_NO_ACCUMULATE_RELATIVE_POSITIONS);
            Stop(X_CP_AXIS);
            Stop(Y_CP_AXIS);
            Stop(Z_CP_AXIS);

            mOpenLoopFrequency = 300;

            SetSpeedCloseLoop(X_CP_AXIS, 0);
            SetSpeedCloseLoop(Y_CP_AXIS, 0);
            SetSpeedCloseLoop(Z_CP_AXIS, 0);
            SetSensorModeDisable();

            SetChannelVoltage(X_CP_AXIS, 0);
            SetChannelVoltage(Y_CP_AXIS, 0);
            SetChannelVoltage(Z_CP_AXIS, 0);
            return(0);
        }