public int Init() { short rc; short existcard = 0; try { rc = CPCI_DMC.CS_DMC_01_open(ref existcard); if (existcard <= 0) { MessageBox.Show("No DMC-NET card can be found!"); return((int)DM_ErrorList.NoCardFound); } else { CardNo.Clear(); ushort i, card_no = 0, DeviceInfo = 0;; uint[] SlaveTable = new uint[4]; for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_get_CardNo_seq(i, ref card_no); CardNo.Add(card_no); rc = CPCI_DMC.CS_DMC_01_pci_initial(card_no); if (rc != 0) { return((int)DM_ErrorList.BootFail); } rc = CPCI_DMC.CS_DMC_01_initial_bus(card_no); if (rc != 0) { return((int)DM_ErrorList.CardInitFail); } for (i = 0; i < 4; i++) { SlaveTable[i] = 0; } rc = CPCI_DMC.CS_DMC_01_start_ring(card_no, 0); rc = CPCI_DMC.CS_DMC_01_get_device_table(card_no, ref DeviceInfo); rc = CPCI_DMC.CS_DMC_01_get_node_table(card_no, ref SlaveTable[0]); if (SlaveTable[0] == 0) { return((int)DM_ErrorList.SlaveIsEmpty); } } } } catch (Exception e) { return((int)DM_ErrorList.CardInitFail); } return((int)DM_ErrorList.NoError); }
public void OpenCard() { LogOutput("開啟軸卡中"); ushort i, card_no = 0; btnstop.Enabled = false; btnNmove.Enabled = false; btnPmove.Enabled = false; for (i = 0; i < 4; i++) { SlaveTable[i] = 0; } txtSlaveNum.Text = "0"; CmbCardNo.Items.Clear(); cmbNodeID.Items.Clear(); rc = CPCI_DMC.CS_DMC_01_open(ref existcard); if (existcard <= 0) { LogOutput("未發現軸卡"); //MessageBox.Show("No DMC-NET card can be found!"); } else { for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_get_CardNo_seq(i, ref card_no); gCardNoList[i] = card_no; CmbCardNo.Items.Insert(i, card_no); } CmbCardNo.SelectedIndex = 0; gCardNo = gCardNoList[0]; for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_pci_initial(gCardNoList[i]); if (rc != 0) { LogOutput("無法啟動軸卡"); MessageBox.Show("Can't boot PCI_DMC Master Card!"); } rc = CPCI_DMC.CS_DMC_01_initial_bus(gCardNoList[i]); if (rc != 0) { LogOutput("軸卡初始化失敗"); MessageBox.Show("Initial Failed!"); } else { rc = CPCI_DMC.CS_DMC_01_start_ring(gCardNo, 0); //Start communication rc = CPCI_DMC.CS_DMC_01_get_device_table(gCardNo, ref DeviceInfo); //Get Slave Node ID rc = CPCI_DMC.CS_DMC_01_get_node_table(gCardNo, ref SlaveTable[0]); LogOutput("成功與軸卡連線"); } } } }
private void btninitial_Click(object sender, EventArgs e) { ushort i, running = 0, card_no = 0; btnralm.Enabled = false; btnstop.Enabled = false; btnreset.Enabled = false; btnNmove.Enabled = false; btnPmove.Enabled = false; chksvon.Enabled = false; for (i = 0; i < 4; i++) { SlaveTable[i] = 0; } btnFindSlave.Enabled = false; txtSlaveNum.Text = "0"; CmbCardNo.Items.Clear(); cmbNodeID.Items.Clear(); rc = CPCI_DMC.CS_DMC_01_open(ref existcard); if (existcard <= 0) { MessageBox.Show("No DMC-NET card can be found!"); } else { for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_get_CardNo_seq(i, ref card_no); gCardNoList[i] = card_no; CmbCardNo.Items.Insert(i, card_no); } btnFindSlave.Enabled = true; //2011.08.05 CmbCardNo.SelectedIndex = 0; gCardNo = gCardNoList[0]; for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_pci_initial(gCardNoList[i]); if (rc != 0) { MessageBox.Show("Can't boot PCI_DMC Master Card!"); } rc = CPCI_DMC.CS_DMC_01_initial_bus(gCardNoList[i]); if (rc != 0) { MessageBox.Show("Initial Failed!"); } else { rc = CPCI_DMC.CS_DMC_01_start_ring(gCardNo, 0); //Start communication rc = CPCI_DMC.CS_DMC_01_get_device_table(gCardNo, ref DeviceInfo); //Get Slave Node ID rc = CPCI_DMC.CS_DMC_01_get_node_table(gCardNo, ref SlaveTable[0]); } } } }
public int OpenCard() //打开控制卡并初始化 { ushort i, card_no = 0, cardnum = 0, DeviceInfo = 0; ushort lMask = 0x1; ushort gNodeNum = 0; uint DeviceType = 0, IdentityObject = 0; try { rc = CPCI_DMC.CS_DMC_01_open(ref existcard); if (existcard <= 0) { // throw new Exception("没有找到运动控制卡!" + e.Message); SendMsgToDisplayWarning("No DMC-NET card can be found!"); MessageBox.Show("No DMC-NET card can be found!"); return(-1); } else { for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_get_CardNo_seq(i, ref card_no); gCardNoList[i] = card_no; } gCardNo = gCardNoList[0]; for (i = 0; i < existcard; i++) { rc = CPCI_DMC.CS_DMC_01_pci_initial(gCardNoList[i]); if (rc != 0) { // throw new Exception("运动控制卡无法进行初始化!" + e.Message); SendMsgToDisplayWarning("Can't boot PCI_DMC Master Card!"); return(-1); } else { rc = CPCI_DMC.CS_DMC_01_initial_bus(gCardNoList[i]); if (rc != 0) { SendMsgToDisplayWarning("The PCI_DMC Initial Failed!"); return(-1); } else { for (i = 0; i < 4; i++) { SlaveTable[i] = 0; } rc = CPCI_DMC.CS_DMC_01_start_ring(gCardNo, 0); //Start communication rc = CPCI_DMC.CS_DMC_01_get_device_table(gCardNo, ref DeviceInfo); //Get Slave Node ID rc = CPCI_DMC.CS_DMC_01_get_node_table(gCardNo, ref SlaveTable[0]); if (SlaveTable[0] == 0) { SendMsgToDisplayWarning("The node table is empty!"); } else { for (i = 0; i < 32; i++) { NodeID[i] = 0; if ((SlaveTable[0] & lMask) != 0) { NodeID[gNodeNum] = (ushort)(i + 1); rc = CPCI_DMC.CS_DMC_01_get_devicetype(gCardNo, NodeID[i], 0, ref DeviceType, ref IdentityObject); gNodeNum++; } lMask <<= 1; } } } } } if (existcard != 0) { gCardNo = gCardNoList[0]; } } } catch (Exception e) { // throw (new Exception("运动控制卡打开失败或者初始化失败!")); SendMsgToDisplayWarning("PCI_DMC Master Card failed OR PCI_DMC Initial Failed!"); return(-1); } return(gCardNo); }