public double GetPos(ushort NodeID) { if (CardNo.Count == 0) { return(0.0); } int pos = 0; double codepos = 0.0; if (!GetPara(NodeID).IsServoMotor) { CPCI_DMC.CS_DMC_01_get_command(CardNo[0], NodeID, 0, ref pos); } else { CPCI_DMC.CS_DMC_01_get_position(CardNo[0], NodeID, 0, ref pos); } codepos = (double)pos / GetPara(NodeID).MotorScale; return(codepos); }
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(); } } }
public void working() { int Amount = Convert.ToInt32(txtAmount.Text); for (int i = 0; i < Amount; i++) { //ktrRpm1.Clear(); //ktrRpm2.Clear(); //ktrTorque1.Clear(); //ktrTorque2.Clear(); //motorRpm1.Clear(); //motorRpm2.Clear(); //motorTorque1.Clear(); //motorTorque2.Clear(); chart1.Series[0].Points.Clear(); chart2.Series[0].Points.Clear(); chart3.Series[0].Points.Clear(); chart4.Series[0].Points.Clear(); chart5.Series[0].Points.Clear(); chart6.Series[0].Points.Clear(); chart7.Series[0].Points.Clear(); chart8.Series[0].Points.Clear(); bool boolGo = true; newturn = true; rc = CPCI_DMC.CS_DMC_01_get_command(gCardNo, node2, 0, ref cmd1); rc = CPCI_DMC.CS_DMC_01_start_tr_move(gCardNo, node2, 0, (int)(OneCirclePluse * TransmissionRate), 0, Convert.ToInt32(2133.3333 * -Int16.Parse(txtRpm1.Text)), 0.1, 0.1); while (true) { showMotorState(); saveMotorData(); showChart(); limitSend("000000000006" + "010204000001"); limitX0Listen(); limitSend("000000000006" + "010204010001"); limitX1Listen(); label30.Text = X0Message; if (X1Message == "01-02-01-01" & boolGo) { rc = CPCI_DMC.CS_DMC_01_set_velocity_mode(gCardNo, node1, 0, 0.1, 0.1); rc = CPCI_DMC.CS_DMC_01_set_velocity(gCardNo, node1, 0, Int32.Parse(txtRpm2.Text)); } else if (X1Message == "01-02-01-00") { rc = CPCI_DMC.CS_DMC_01_set_velocity_mode(gCardNo, node1, 0, 0.1, 0.1); rc = CPCI_DMC.CS_DMC_01_set_velocity(gCardNo, node1, 0, 0); boolGo = false; } else if (X1Message == "01-02-01-01" & !boolGo & X0Message != "01-02-01-00") { rc = CPCI_DMC.CS_DMC_01_set_velocity_mode(gCardNo, node1, 0, 0.1, 0.1); rc = CPCI_DMC.CS_DMC_01_set_velocity(gCardNo, node1, 0, -Int32.Parse(txtRpm2.Text)); } else if (X0Message == "01-02-01-00" & !boolGo) { KtrBoolClear = true; label29.Text = "in"; showMotorState(); rc = CPCI_DMC.CS_DMC_01_set_velocity_mode(gCardNo, node1, 0, 0.1, 0.1); rc = CPCI_DMC.CS_DMC_01_set_velocity(gCardNo, node1, 0, 0); Thread.Sleep(500); CPCI_DMC.CS_DMC_01_set_position(gCardNo, node1, 0, 0); CPCI_DMC.CS_DMC_01_set_command(gCardNo, node1, 0, 0); //CPCI_DMC.CS_DMC_01_set_position(gCardNo, node2, 0, 0); //CPCI_DMC.CS_DMC_01_set_command(gCardNo, node2, 0, 0); break; } } } }