public static int ReadAPEIOCardOutputBit(int cardNo, int cardOutputBit)//读扩展IO卡输出点 { uint doValue = 0; bool outputStatus; int result; DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, cardNo, ref doValue); outputStatus = (doValue & (1 << cardOutputBit)) != 0; result = outputStatus ? 1 : 0;//返回当前点位电平状态,0或1 return(result); }
public static int ReadAPEIOCardInputBit(int cardNo, int cardInputBit)//读扩展IO卡输入点 { uint diValue = 0; bool inputBitStatus; int result; DAQ_I32.DAQ_Mul_GDI_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, cardNo, ref diValue); inputBitStatus = (diValue & (1 << cardInputBit)) != 0; result = inputBitStatus ? 1 : 0;//返回当前点位电平状态,0或1 return(result); }
public static void WriteAPEIOCardOutputBit(int cardNo, int cardDoBit, int status)//扩展IO卡输出点Set or Reset { uint doCurrentValue = 0; uint doValue = 0; DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, cardNo, ref doCurrentValue); if (status == 1)//Set { doValue = (uint)(doCurrentValue | (uint)(1 << cardDoBit)); } else if (status == 0)//Reset { doValue = (uint)(doCurrentValue & (4294967295 - (1 << cardDoBit))); } DAQ_I32.DAQ_Mul_GDO_Set(DAQ_I32.DAQ_TYPE.DAQ_D3232, cardNo, doValue); }
public static void APEIOCardInitial() //初始化IO扩展卡 { int rtn = -1; uint[] cardIOID = new UInt32[3];//卡号为0 rtn = DAQ_I32.DAQ_Mul_Sys_Initial(cardIOID); aPECardIOID = 4; if (rtn != 0) { MessageBox.Show("没有找到IO卡,请检测后重试!"); } else { //DAQ_I32.DAQ_GDO_Cfg(cardIOID, 0xFFFFFF);//DO正逻辑 DAQ_I32.DAQ_Mul_GDO_Cfg(DAQ_I32.DAQ_TYPE.DAQ_D3232, 0, 0x0); //DO负逻辑 //DAQ_I32.DAQ_GDI_Cfg(cardIOID, 0xFFFFFF);//DI正逻辑 DAQ_I32.DAQ_Mul_GDI_Cfg(DAQ_I32.DAQ_TYPE.DAQ_D3232, 0, 0); //DI负逻辑 } }
public static void WriteIOCard7432OutputBit(ushort cardID, ushort cardDoBit, ushort status) { if (CAMiClsVariable.strIOCard == "7432") { DASK.DO_WriteLine((ushort)CAMiClsVariable.cardRegId, 0, cardDoBit, status); } else { uint doCurrentValue = 0; uint doValue = 0; DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, (int)cardID, ref doCurrentValue); if (status == 1)//Set { doValue = (uint)(doCurrentValue | (uint)(1 << cardDoBit)); } else if (status == 0)//Reset { doValue = (uint)(doCurrentValue & (4294967295 - (1 << cardDoBit))); } DAQ_I32.DAQ_Mul_GDO_Set(DAQ_I32.DAQ_TYPE.DAQ_D3232, (int)cardID, doValue); } }
public static int ReadIOCard7432OutputBit(ushort cardID, int cardOutputBit)//读扩展IO卡输出点 { if (CAMiClsVariable.strIOCard == "7432") { uint doValue = 0; bool outputBitStatus;; int result; DASK.DO_ReadPort((ushort)CAMiClsVariable.cardRegId, 0, out doValue); outputBitStatus = (doValue & (1 << cardOutputBit)) != 0; result = outputBitStatus ? 1 : 0; return(result); } else//APE IO卡 { uint doValue = 0; bool outputStatus; int result; DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, (int)cardID, ref doValue); outputStatus = (doValue & (1 << cardOutputBit)) != 0; result = outputStatus ? 1 : 0;//返回当前点位电平状态,0或1 return(result); } }
public static void APEIOCardClose()//释放IO卡 { DAQ_I32.DAQ_Sys_Terminate(); }