palzhj 发表于 2011-8-21 23:46:47

泰克DMM4050编程、使用心得

泰克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      DigitsSetting         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 讨论。

palzhj 发表于 2011-8-22 08:05:54

http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_669876O43HQO.png
软件截图 (原文件名:DMM4050.png)

20061002838 发表于 2013-9-1 00:30:09

正好需要,感谢LZ
页: [1]
查看完整版本: 泰克DMM4050编程、使用心得