|
泰克DMM4050编程、使用心得
细节参考《DMM4040 and DMM4050 Digital Multimeter Programmer Manual》
简单的采集步骤如上文档“Optimizing System Speed for I/O Operation”(第6页)所述,
#######################################################################
*cls # This clears all error prior to initiating readings
conf:volt:dc 0.1 # Set the DC range to manual and 100 mV.
volt:dc:nplc 0.02 # Set the NPLC to faster reading rate 4 1/2 digits.
zero:auto 0 # Turn Autozero off.
trig:sour imm # Set immediate trigger.
trig:del 0 # Set trigger delay to zero.
trig:coun 1 # Set trigger count to one or specify a larger number.
disp off # Turn display off. This may slightly improve reading rate.
syst:rem # Put the DMM4050 in remote. Only needed for RS-232 or Ethernet
#(required for READ? or MEAS?)
samp:coun 100 # Set the sample count from 1 to 5000.
INIT
*OPC? # "*OPC?" returns 1 indicating that the measurements have been
#taken and are ready to be transferred to the computer using the
#FETCH? command.
FETCH?
########################################################################
简单分析下:
1、DMM4050的命令不区分大小写。
2、plc 0.02的含义:在进行直流电压、直流电流和电阻的测量可以选择如下组合:
Function Digits Setting Integration Time Measurements per Second
60 Hz (50 Hz)
DC Volts, 6.5 100 NPLC 1.67 (2) s 0.6 (0.5)
DC Current, 6.5 10 NPLC 167 (200) ms 6 (5)
and 5.5 1 NPLC 16.7 (20) ms 60 (50)
Resistance 5.5 0.2 NPLC 3.3 ms 270
4.5 0.02 NPLC 500 us 995
PLC指power line cycle,国内即50Hz交流电的周期。采样精度越高,前端采样率会越低,如选择10 NPLC,即采样精度6位半,前端200ms采样一次。若需要高采样率,则选择0.02 NPLC,每秒得到995个4.5位精度的采样点。
3、zero:auto 使能它会使数据率降低。
4、trigger delay 是指触发到来后延时一段时间才开始采集。
5、trigger count和sample count:循环进行trigger count次 “等待触发、触发后连续采集sample count个样点”的动作。由于缓冲区容量所限,trigger count乘以sample count必须小于等于5000,否则INIT后会立即停止采集。
6、READ?和MEAS?只会进行一次采集,MEAS?相当于conf加READ?。若要进行连续采集必须用INIT加FETCH?
7、万用表收到INIT指令,循环进行trigger count次 “等待触发、触发后连续采集sample count个样点”的动作后将数据送入缓冲区,若在此过程中收到*OPC? 指令,万用表会在全部采集结束后返回1。这时PC程序即可发送FETCH?将所有数据点收集下来,数据点以"\r\n"表征结束。若在全部采集还未结束就发送FETCH?指令,万用表会将缓冲区里的采集数据发送出来,有多少,发多少。若再次发送FETCH?指令,万用表又会将缓冲区里的采集数据重头再发送出来。所以只有INIT指令能够刷新缓冲区,连续采集时只能INIT、*OPC?、FETCH?、INIT、*OPC?、FETCH?……的循环,但是在FETCH?到下一次INIT之间万用表是停止采集的,这就带来了死时间。如上配置(除samp:coun 5000),万用表采集5.025s(5000/995)后停止,再花大约2秒传输数据,收到下一个INIT后再花约20ms配置进入触发采集。
不知道泰克为什么不把缓冲区做成乒乓的,在采集的同时传输上一次的数据,以消除死时间。软肋啊。
8、如果在FETCH?后没把数据接收完就关闭telnet连接,有可能会造成万用表的telnet功能无法再次连接,甚至死机(只能断电重启)。Bug啊,貌似泰克在这里没有看门狗重启万用表的功能。
附:DMM4050 telnet方式采集的labview程序。DMM4050的网络接口不支持自动TX/RX极性变换,使用时注意网线的连接方式。
DMM4050 telnet方式采集的labview2009程序ourdev_669844E89RBF.rar(文件大小:224K) (原文件名:DMM4050 VI.rar)
欢迎访问我的博客http://blog.sina.com.cn/palzhj 讨论。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|