Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Motion status
            int    cmd = 0, pos = 0;
            short  spd = 0;
            ushort i, MC_done = 0;
            uint   MC_status = 0, err = 0;

            gnodeid = ushort.Parse(cmbNodeID.Text);

            if (chktimer.Checked)
            {
                //Status
                rc = CPCI_DMC.CS_DMC_01_get_command(gCardNo, gnodeid, 0, ref cmd);             //Command
                if (rc == 0)
                {
                    txtcommand.Text = cmd.ToString();
                }
                rc = CPCI_DMC.CS_DMC_01_get_position(gCardNo, gnodeid, 0, ref pos);            //Feedback
                if (rc == 0)
                {
                    txtfeedback.Text = pos.ToString();
                }
                rc = CPCI_DMC.CS_DMC_01_get_rpm(gCardNo, gnodeid, 0, ref spd);       //Speed
                if (rc == 0)
                {
                    txtspeed.Text = spd.ToString();
                }
                rc = CPCI_DMC.CS_DMC_01_motion_status(gCardNo, gnodeid, 0, ref MC_status);         //Motion done
                if (rc == 0)
                {
                    txtmotion.Text = "&H" + Convert.ToString(MC_status, 16);
                }
                rc = CPCI_DMC.CS_DMC_01_get_alm_code(gCardNo, gnodeid, 0, ref err);
                if (rc == 0)
                {
                    txtERR.Text = err.ToString();
                }
            }
        }