コード例 #1
0
ファイル: DeltaMotionMgr.cs プロジェクト: sanmengxishui/162
        public int WaitAxisStop(ushort nodeid)
        {
            if (CardNo.Count == 0)
            {
                return((int)DM_ErrorList.NoCardFound);
            }

            ushort MC_done = 0;
            short  rc;

            rc = CPCI_DMC.CS_DMC_01_motion_done(CardNo[0], nodeid, 0, ref MC_done);
            DateTime st_time = DateTime.Now;
            TimeSpan time_span;

            while (MC_done != 0)
            {
                time_span = DateTime.Now - st_time;
                if (time_span.TotalMilliseconds > MotionTimeoutMS)
                {
                    return((int)DM_ErrorList.MotionTimeout);
                }

                Application.DoEvents();
                Thread.Sleep(10);
                CPCI_DMC.CS_DMC_01_motion_done(CardNo[0], nodeid, 0, ref MC_done);
            }
            return((int)DM_ErrorList.NoError);
        }
コード例 #2
0
ファイル: MotionManager.cs プロジェクト: sanmengxishui/162
        public void VWaitAxisGohome(ushort CardNo, ushort nodeid)
        {
            ushort MC_done   = 0;
            uint   MC_status = 0;
            short  rc;
            uint   status1 = 0, status2 = 0, status3 = 0, status4 = 0;

            CPCI_DMC.CS_DMC_01_motion_done(CardNo, nodeid, 0, ref MC_done);

            rc      = CPCI_DMC.CS_DMC_01_motion_status(CardNo, nodeid, 0, ref MC_status);
            status1 = ((MC_status >> 1) & 0X0001);
            status2 = ((MC_status >> 2) & 0X0001);
            status3 = ((MC_status >> 10) & 0X0001);
            status4 = ((MC_status >> 12) & 0X0001);
            while ((status1 != 1) || (status2 != 1) || (status3 != 1) || (status4 != 1) || (MC_done != 0))
            {
                Application.DoEvents();
                Thread.Sleep(10);
                CPCI_DMC.CS_DMC_01_motion_status(CardNo, nodeid, 0, ref MC_status);
                status1 = ((MC_status >> 1) & 0X0001);
                status2 = ((MC_status >> 2) & 0X0001);
                status3 = ((MC_status >> 10) & 0X0001);
                status4 = ((MC_status >> 12) & 0X0001);
                CPCI_DMC.CS_DMC_01_motion_done(CardNo, nodeid, 0, ref MC_done);
            }
        }
コード例 #3
0
ファイル: MotionManager.cs プロジェクト: sanmengxishui/162
        public void VWaitAxisStop(ushort CardNo, ushort nodeid)
        {
            ushort MC_done = 0;
            short  rc;

            rc = CPCI_DMC.CS_DMC_01_motion_done(CardNo, nodeid, 0, ref MC_done);
            while (MC_done != 0)
            {
                Application.DoEvents();
                Thread.Sleep(10);
                CPCI_DMC.CS_DMC_01_motion_done(CardNo, nodeid, 0, ref MC_done);
            }
        }
コード例 #4
0
ファイル: DeltaMotionMgr.cs プロジェクト: sanmengxishui/162
        public int WaitHomeDone(ushort nodeid)
        {
            if (CardNo.Count == 0)
            {
                return((int)DM_ErrorList.NoCardFound);
            }
            ushort MC_done   = 0;
            uint   MC_status = 0;
            short  rc;
            uint   status1 = 0, status2 = 0, status3 = 0, status4 = 0;

            CPCI_DMC.CS_DMC_01_motion_done(CardNo[0], nodeid, 0, ref MC_done);

            rc      = CPCI_DMC.CS_DMC_01_motion_status(CardNo[0], nodeid, 0, ref MC_status);
            status1 = ((MC_status >> 1) & 0X0001);
            status2 = ((MC_status >> 2) & 0X0001);
            status3 = ((MC_status >> 10) & 0X0001);
            status4 = ((MC_status >> 12) & 0X0001);
            DateTime st_time = DateTime.Now;
            TimeSpan time_span;

            while ((status1 != 1) || (status2 != 1) || (status3 != 1) || (status4 != 1) || (MC_done != 0))
            {
                time_span = DateTime.Now - st_time;
                if (time_span.TotalMilliseconds > HomingTimeoutMS)
                {
                    return((int)DM_ErrorList.HomingTimeout);
                }

                Application.DoEvents();
                Thread.Sleep(10);
                CPCI_DMC.CS_DMC_01_motion_status(CardNo[0], nodeid, 0, ref MC_status);
                status1 = ((MC_status >> 1) & 0X0001);
                status2 = ((MC_status >> 2) & 0X0001);
                status3 = ((MC_status >> 10) & 0X0001);
                status4 = ((MC_status >> 12) & 0X0001);
                CPCI_DMC.CS_DMC_01_motion_done(CardNo[0], nodeid, 0, ref MC_done);
            }
            return((int)DM_ErrorList.NoError);
        }