8112hg,这是何种问题? 点击:686 | 回复:1



laodaox

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 0回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2002年7月18日
发表于:2002-11-20 09:59:00
楼主
用8112HG采样交流信号,我电压表测的数值为980mv ,进入a/d 板也是这个数值.但是我读到的数字信号只有730mv. 交流 信号的输入我使用差分,将低端和a/d板的地线联接.我用同样的通道测直流是可以的,几乎没有误差.我不知道对交流信号的误差来自哪儿??还是自己有操作错误?? count=0; //// double tempbuff[20]; double dacvolt=0; if( W_8112_Initial( CARD_1 ,0x220 ) != ERR_NoError ) { printf( "ACL-8112 Initialization Error !!\n" ); exit(0); } W_8112_AD_Set_Channel(1); /* Setup ch.1 */ W_8112_AD_Set_Range(AD_B_5_V); /* input range */ W_8112_AD_Input_Mode(DIFFERENTIAL); /* W_8112_AD_Set_Mode(A8112_AD_MODE_1); /*Software Trig, Software Polling */ //////1通道 dacvolt=ReadAcDate(); m_ACTxet1.Format("%f",dacvolt); UpdateData(false);///显示数据 } 读去交流信号值" double CACDIGLOG::ReadAcDate() { int buff[502],i; int upcount=0,downcount=0; int ad_data,err,max=0; double acvolt; int maxmark=0;////最大点的坐标 int temp; long sumation=0; Sleep(400); for(i=0;i<=501;i++) { if( (err=W_8112_AD_Aquire( &ad_data )) != ERR_NoError) { AfxMessageBox("error!",MB_OK); return 0 ; } buff[i]=ad_data; } for(temp=0;temp<=500;temp++) { if(buff[temp]>=max) { max=buff[temp]; maxmark=temp; } } sumation=(buff[maxmark-1]+buff[maxmark]+buff[maxmark+1])/3; acvolt=(((double)10*sumation/(double)4095)-5)/1.4142135; return acvolt; }



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-11-20 09:59:00
1楼
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    交流 信号的输入我使用差分,将低端和a/d板的地线联接. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 差动输入信号的地不应该和A/D的地相连,而应该和当前通道的地连在一起. 另外建议你可以将AD的量程设小一点.

热门招聘
相关主题

官方公众号

智造工程师