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); } }
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); }
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(); } } }