发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] FIFO的局限性?
756 FIFO
分享
我在N5224A上使用Opt 118一直在玩FIFO和FASTCW命令。从读取帮助文件来看,似乎我无法使用FIFO进行频率扫描。
Golfnut似乎认为有快速扫描选项,但我不知道他是如何得出这个结论的。
如果我退出并接受FASTCW测量,并且每个外部触发器测量一个频率,则结果不如恒星。
我做了一个实验,我能达到的最快触发率约为30赫兹。
任何更快,数据都不会出现在FIFO计数中。
这听起来是对的吗?
另外,我可以在此模式下获得更正的S21(或S12)数据吗?
老实说,30赫兹对我来说有点慢。
我需要以大约200万个天线方向测量数据。
30 Hz转换为大约19小时来测量一个频率。
所以我有效地将我的设备捆绑了一整天。
对我来说绝对最低限度是测量2个频段中的3个频率。
所以现在我要长达6天。
我的下一个实验是看看我能做多快的CALC:DATA?
命令。
也许这可能比30赫兹更快。
虽然我不知道如何知道何时准确地获取数据和测量时间。
粗暴的黑客是轮询状态寄存器。
一旦我得到第一个数据就绪信号,我就会启动一个计时器。
如果我在已知的时间内没有获得足够的数据准备,那么我就知道我已经放弃了一个触发器。

以上来自于谷歌翻译


     以下为原文

  I've been playing with the FIFO and FASTCW commands on my N5224A with Opt 118. From reading the help file, it doesn't appear that I can do a frequency sweep with the FIFO. Golfnut seems to think there is a fast sweep option, but I don't know how he arrives at this conclusion.

If I back off and settle for a FASTCW measurement, and measure one frequency per external trigger, the results are less than stellar. I did an experiment and the fastest trigger rate I could achieve was about 30 Hz. Any faster, and the data doesn't show up in the FIFO count. Does this sound about right? Also, can I get corrected S21 (or S12) data in this mode?

Honestly, 30 Hz is a little slow for me. I need to measure data at roughly 2 million antenna orientations. 30 Hz translates to about 19 hours to measure one frequency. So I'm effectively tying up my equipment for a full day per frequency. And an absolute bare minimum for me is to measure 3 frequencies in 2 bands. So now I'm up to 6 days.  

My next experiment is to see how fast I can do CALC:DATA? commands. Maybe that can be quicker than 30 Hz. Though I'm not sure how to know when to grab the data and measure timing accurately. A crude hack is to poll status registers. Once I get the first data ready signal, I'll start a timer. If I don't get enough data readies in a known amount of time, then I'll know I've dropped a trigger.  
0
2018-12-13 16:57:00   评论 分享淘帖 邀请回答
29个回答
当然你可以选择118进行频率扫描。从http://na.tm.agilent.com/pna/apps/applications.html下载更新的速度测试程序并试一试。
您可以设置可能影响速度的各种设置,然后将FIFO的测量速度与非FIFO进行比较。
您还可以选择在任何结果中包含数据传输时间。
如果您需要任何指导,也可以使用此VB6程序的源代码。
您可以在PNA或外部计算机上运行此COM程序。
我不相信FIFO允许更正数据......这通常在外部计算机中完成。
FIFO仅用于最大测量速度。
您会发现最大的时间接收器是扫描或改变频率,因此您希望在任何测量环路设置中尽可能减少这种情况。
当然,使用30Hz IFBW将锁定每点至少3.4ms的测量时间,因此您可能需要重新考虑该值。
出于好奇,你为什么需要30Hz的IFBW?
这将通过使用FIFO淹没任何显着的速度增益。
最后,我想我有一个可以与外部触发器一起使用的速度测试程序版本。
我必须调查一下,看看它是否是客户准备好的。
它不会发布在任何地方,所以你必须要求它。

以上来自于谷歌翻译


     以下为原文

  Sure you can do Frequency sweeps with opt 118.  Download the newer Speed Test program from http://na.tm.agilent.com/pna/apps/applications.html and try it out.  You can set various settings that may affect speed and then compare the measurement speeds of FIFO to non-FIFO.  You can also choose to include the data transfer times in any results. The source code for this VB6 program is also available if you need any guidance.  You can run this COM program on the PNA or on an external computer.

I do not believe that FIFO allows for corrected data...this is typically done in an external computer.  FIFO is designed for maximum measurement speed only.  You will find that the biggest time sink is sweeping or changing frequencies, so you want to minimize this as much as possible in any measurement loop setup.  Of course, using a 30Hz IFBW will lock in a measurement time of at least 3.4ms per point, so you may want to rethink this value.

Just out of curiosity, why do you need 30Hz IFBW?   This will swamp out any significant speed gains by using FIFO.

Finally, I think I have a version of the speed test program that can be used with external trigger.  I would have to look into this to see if it is customer-ready.  It is not posted anywhere, so you would have to request it.
2018-12-13 17:08:24 评论

举报

胡bbs2 发表于 2018-12-13 07:50
当然你可以选择118进行频率扫描。从http://na.tm.agilent.com/pna/apps/applications.html下载更新的速度测试程序并试一试。
您可以设置可能影响速度的各种设置,然后将FIFO的测量速度与非FIFO进行比较。
您还可以选择在任何结果中包含数据传输时间。

感谢Speed Test的提示。
我会检查一下。
为了清楚起见,我的外部触发速度是30 Hz,而不是IFBW。
这对我来说似乎很慢。
但我可能做错了什么。
我连接一个信号发生器并触发一个(例如)10个脉冲。
做一些FIFO快速CW采集。
然后检查SYST:FIFO:DATA:COUNT?
查看保存了多少数据。
30 Hz的触发率是我能做的最快的。
关于频率扫描,我不明白它应该如何工作。
我想在CW模式下,你以一个频率停放并获取数据。
我该怎么做呢?

以上来自于谷歌翻译


     以下为原文

  Thanks for the tip on Speed Test. I'll check that out. 

Just to be clear, my external triggering speed is 30 Hz, not the IFBW. This seems slow to me. But I could be doing something wrong. I hook up a signal generator and trigger a burst of (for example) 10 pulses. Do some FIFO Fast CW acquisition. Then check the SYST:FIFO:DATA:COUNT? to see how much data was saved. 30 Hz trigger rate is the fastest I can do.

Regarding frequency sweep, I don't understand how that is supposed to work. I thought in CW mode, you park at one frequency and take data. How would I make it sweep?
2018-12-13 17:20:28 评论

举报


显然我误解了你关于30赫兹的帖子......对不起。
现在,我会尝试使用speedtest程序而不使用外部触发器。
这将使您对最终设置中可以达到的最快速度有所了解。
确保一切设置正确有一些技巧。
速度测试程序应该为您完成所有这些。
您只需选择*开始/停止频率*,*点数*和* IFBW *。
将Loops值设置为使整个测试至少需要5秒钟才能完成的值;
因为VB6中的定时器只有大约17ms的分辨率,所以需要更精确的定时。
或者,如果您可以提供您的刺激数据(这些项目以粗体显示),我们可以在此处运行它并获得实际结果。

以上来自于谷歌翻译


     以下为原文

  Obviously I misinterpreted your post regarding the 30 Hz...sorry.

For now, I would try the speedtest program without using external trigger.  This will give you a good idea of the fastest speed you can expect in your final setup.  
 
There are some tricks in making sure everything is set up properly.  The speedtest program should do all of that for you.  You just need to select the *Start/Stop freqs*, *Number of points*, and *IFBW*.   Set the Loops value to something that will make the entire test take at least 5 seconds to complete; this is needed for more accurate timing because the timer in VB6 only has about 17ms of resolution.

Alternately, if you can provide your stimulus data (those items in bold), we can run it here and get you an actual result.
2018-12-13 17:38:48 评论

举报


好。
我跑了速度测试。
这就是我得到的。
频率范围:20GHz至22 GHz IFBW:100 kHz否Fifo FIFO numpoints周期时间[msec] rate [Hz]周期时间[msec] rate [Hz] 201 32.97 30.33 6.12 163.4 11 31.88 31.36 2.6 384因此净FIFO率为163
或384赫兹比我得到的(30赫兹)更多的外部触发。
事实上,我的FIFO速率接近无FIFO速率。
这是否意味着外部触发有明显的限制?
我仍然很困惑频率扫描如何在FIFO模式下工作。
我发誓我试图省略SENS:SWE:TYPE CW SENS:SWE:TYPE:FACW命令效果不佳。
你能解释一下如何配置FIFO频率扫描吗?
或者,Speed Test软件的源代码是否可用?

以上来自于谷歌翻译


     以下为原文

  OK. I ran the speed test. Here's what I got.

Freq range: 20GHz to 22 GHz
IFBW: 100 kHz

                           no Fifo                                                          FIFO
numpoints    cycle time [msec]    rate [Hz]      cycle time [msec]    rate [Hz]
  201                  32.97                     30.33                6.12                   163.4
    11                   31.88                    31.36                2.6                      384


So the net FIFO rate of 163 or 384 Hz is way more than what I'm getting (30 Hz) with external triggering. In fact, my FIFO rate is darn close to the no FIFO rate. Does this imply that external triggering has significant limits?

I'm still very confused how a frequency sweep works in FIFO mode. I could swear I tried to leave out the 
    SENS:SWE:TYPE CW
    SENS:SWE:TYPE:FACW  
commands with poor results. Could you explain how a FIFO frequency sweep is supposed to be configured? Alternately, is the source code for the Speed Test software available?
2018-12-13 17:54:51 评论

举报

你必须有一些奇怪的东西。
我们有很多天线测试客户使用外部触发和快速CW模式。
在宽带宽中,您每秒可以获得400,000点。
所以你必须有一些非常奇怪的条件才能看到只有30赫兹。
其他几个因素:如果您测量的频率低于250MHz,IF会自动降低以保持恒定的本底噪声,但您可以将其关闭并使用正常的IF BW。
快速扫描模式适用于扫描天线(通常是旋转),我们获得整个扫描。
如果你处于逐步扫描状态,每个点将有大约50-100个usec用于改变频率,因此你被限制在每秒大约10,000点(这将是每个频率点的触发器)。
更常见的是处于扫描扫描模式并获取整个数据扫描;
我希望你可以在几毫秒内通过宽扫描收集整个扫描(比如说1000点),这样你就可以连续移动你的天线,从扫描数据中取出,扫描每个位置的整个扫描。
我们甚至进行反向扫描,因此当您向后摆动天线时,您也可以获取数据,并且扫描动态将与前向摆动天线相同(三角形位置的相同增量频率)。
您可以联系当地的AE获取更具体的帮助。
或者发布您的设置的CSA文件。
哦,我假设你正在使用主触发器,而不是辅助触发器(主触发响应是立即的,辅助触发器可能有几微秒的延迟)

以上来自于谷歌翻译


     以下为原文

  You must have something set odd.  We have lots and lots of antenna test customers that use external triggering and fast CW mode. In wide bandwidths, you can acquire 400,000 points per second.  So you must have some very odd conditions to see only 30 Hz.

A couple of other factors: if you are measuring at frequencies below 250MHz, the IF is automatically reduced to maintain constant noise floor, but you can turn this off and use normal IF BW.

The fast sweep mode is intended for a scanning antenna (typically rotating ) and we acquire whole sweeps.  If you are in stepped sweep you will have approximately 50-100 usec per point to change frequency, thus you are limited to about 10,000 points per second (this would be for a trigger per freq point).  More common is to be in swept sweep mode and acquire an entire sweep of data; I would expect you can collect a whole sweep (say 1000 points) in a few milliseconds on a wide sweep, so you can move your antenna continously, fifo out the sweep data, trigger a whole sweep for each position.  We even have reverse sweeping so when you swing the antenna back you can acquire data as well, and the sweep dynamic will be the same as the forward swinging antenna (same delta freq for delta position).

You might contact your local AE for more specific help.

Or post a CSA file of your setup. 

Oh, and I assume you are using the main trigger in, not the aux trigger(main trigger response is immediate, aux trigger might have a few micro-second's latency)
2018-12-13 18:05:23 评论

举报


Dr_joel,我刚看到你的帖子。
我并不反对我必须有一些奇怪的东西。
我的目标是在20 GHz以上进行测量。
至少那是速度很重要的地方。
我的最终目标是快速记录S21数据。
我想使用外部触发来触发频率扫描(可能是11点左右)。
对天线的每个位置进行一次频率扫描。
如果我用FIFO实现这一点,那么我会等到我完成旋转天线并在最后读完所有内容。
似乎FIFO不存储校正数据,因此我在事后纠正数据时会有额外的麻烦。
我不知道它是否重要,但我正在尝试使用VBScript宏来完成所有这些工作。
让我清理一下我的脚本,看看我是否可以在这里发布。
我认为这不是那种幻想,但我必须遗漏一些东西。
在我的测试脚本中,我每300毫秒轮询网络分析仪以获得FIFO计数。
我已将睡眠时间增加到2000毫秒,但它没有效果。

以上来自于谷歌翻译


     以下为原文

  Dr_joel,

I just saw your post. I don't disagree that I must have something set odd. My goal is to make measurements at 20+ GHz. At least that's where speed is important.

My ultimate goal would be to record S21 data rapidly. I'd like to use external triggering to trigger a frequency sweep (maybe 11 points or so). One frequency sweep for every position of the antenna. If I accomplish this with FIFO, then I'd wait until I finish spinning my antenna and read it all back at the end.

It seems that FIFO doesn't store corrected data, so I have the added hassle of correcting the data after the fact. 

I don't know if it matters, but I'm trying to do all of this with a VBScript macro. Let me clean up my script a little and see if I can post it here. I don't think it's all that fancy, but I must be missing something. In my test script I poll the network analyzer every 300 msec to get the FIFO count. I've increased this Sleep time to 2000 msec but it has no effect.
2018-12-13 18:18:40 评论

举报


这是我脚本的主体。
写入和读取功能直接用于帮助文件中的FIFO示例。
设置的方式,我认为每次触发时都应该存储一个实点和虚点。
在硬件方面,我有一个函数发生器连接到主触发器。
它设置为突发模式。
我一直在增加频率,直到FIFO:DATA:COUNT?
变得低于预期。
写“TRIG:SOUR EXT”写“TRIG:TYPE EDGE”写“SYST:FIFO:DATA:CLEAR”写“CONT:SIGN BNC1,TIEPOSITIVE”写“SYST:FIFO ON”写“SENS:SWE:TYPE CW”WScript
.Sleep(200)'=================================='快速CW点的总数量达到
TRIGGER numfacwpts = 1'=================================='采取numsweeps = 10写的SWEEPS总数
“SENS:SWE:TYPE:FACW”&
numfacwpts * 2 WScript.Sleep(200)init = now()'此时我们希望能够在收到外部触发时开始将数据加载到fifo'。
set win = app.ActiveNAWindow endcount = numfacwpts * 2 * numsweeps lastcount = 0 TimeoutSec = 5 TimedOut = False lasttime = now do Write“SYST:FIFO:DATA:COUNT?”
fifocount = CLng(Trim(Read()))win.title =“FIFO正在进行。我们是”&
100 * fifocount / endcount&
“百分比完成”'如果标题更新,我们可以用'百分比完成Wscript.Sleep(300)替换此代码如果fifocount = lastcount那么如果DateDiff(“s”,lasttime,now)> TimeoutSec然后TimedOut = True Else'do
没有结束如果否等lastcount = fifocount lasttime =现在结束如果循环直到(fifocount> = endcount)或(TimedOut = True)完成= now()写“SYST:FIFO OFF”win.title =“”'将标题设置为无消息
=“经过的时间是”&
DateDiff(“s”,init,finished)&
Chr(13)&
Chr(10)msg = msg&
“FIFO计数是”&
fifocount&
Chr(13)&
Chr(10)msg = msg&
“sweeppoints是”&
sweeppoints&
Chr(13)&
Chr(10)msg = msg&
“应该是”&
fifocount / 2 / sweeppoints&
“扫荡”&
Chr(13)&
Chr(10)如果TimedOut = True那么msg = msg&
“这次试运行超时”&
Chr(13)&
Chr(10)结束如果MsgBox消息

以上来自于谷歌翻译


     以下为原文

  Here's the main body of my script. The Write and Read functions are used directly from the FIFO example in the help file. The way this is set up, I think it's supposed to store one real and imaginary point every time it's triggered. 

On the hardware side, I have a function generator hooked up to the main trigger. It's set for burst mode. I keep increasing the frequency until the FIFO:DATA:COUNT? becomes lower than expected.

Write "TRIG:SOUR EXT"
Write "TRIG:TYPE EDGE"

Write "SYST:FIFO:DATA:CLEAR"
Write "CONT:SIGN BNC1,TIEPOSITIVE"
Write "SYST:FIFO ON"
Write "SENS:SWE:TYPE CW"

WScript.Sleep(200)

'==================================
'  TOTAL NUMBER OF Fast CW points TO TAKE PER TRIGGER
numfacwpts = 1

'==================================
'  TOTAL NUMBER OF SWEEPS TO TAKE
numsweeps = 10

Write "SENS:SWE:TYPE:FACW " & numfacwpts*2

WScript.Sleep(200)

init = now()
'at this point we expect to be able to start loading data into the fifo
' whenever an external trigger is received.

set win = app.ActiveNAWindow  

endcount = numfacwpts*2*numsweeps
lastcount = 0
TimeoutSec = 5
TimedOut = False
lasttime = now

Do
  Write "SYST:FIFO:DATA:COUNT?"
  fifocount = CLng(Trim(Read()))
  
  win.title = "FIFO is going. We are " & 100*fifocount/endcount & " percent complete"
  'if title is updated, we can replace this code with 
  'percentage complete
  Wscript.Sleep(300)

  If fifocount = lastcount Then
    If DateDiff("s", lasttime, now) > TimeoutSec Then 
      TimedOut = True
    Else 
      ' do nothing
    End If
  Else
    lastcount = fifocount
    lasttime = Now
  End If
  
Loop Until (fifocount >= endcount) or (TimedOut = True)

finished = now()

Write "SYST:FIFO OFF"

win.title = "" 'set title to nothing
msg = "Elapsed time was " & DateDiff("s", init, finished) & Chr(13) & Chr(10) 
msg = msg & "FIFO Count was " & fifocount & Chr(13) & Chr(10) 
msg = msg & "sweeppoints was " & sweeppoints & Chr(13) & Chr(10) 
msg = msg & "which should be  " & fifocount/2/sweeppoints & " sweeps" & Chr(13) & Chr(10) 

If TimedOut = True Then
  msg = msg & "this test run was timed out" & Chr(13) & Chr(10) 
End If

MsgBox msg
2018-12-13 18:37:03 评论

举报

c88348535 发表于 2018-12-13 09:00
Dr_joel,我刚看到你的帖子。
我并不反对我必须有一些奇怪的东西。
我的目标是在20 GHz以上进行测量。

我只是做了一个非常简单的基准测试,扫描20-22 GHZ,100 kHz;
11点:每秒175次扫描101次点击:每秒100次扫描。
这些是频率扫描(不是CW)所以如果我们可以将这些数据输入到fifo中,你将获得相当不错的速率。
只是为了更好地理解:什么发送触发器,它来自定位器,当天线扫过?
有多少职位?
在CW模式下,每个触发器只有1次扫描(11点,我认为它具有所有相同的数据)?
那么你的想法是为每个频率重复天线扫描吗?
外部触发器的周期(或时钟)是多少?
它比PNA快吗?
如果每个触发器获得1次测量,那么外部触发器是否限制数据采集率?
至少在扫描模式下,您可以获得每次触发的完全扫描,这意味着只需将天线摆动一次。
我相信 - 你可以在扫描模式下使用fifo,但我不认为你可以处于快速CW(两种不同的模式);
我已经通过电子邮件发送了这个发明家,所以也许他会回应(但与我不同,他有生命,所以很可能在这个周末与家人一起度过)。
我会尝试一些测试,但你可能不会在星期一之前回来......我只使用了直接ADC采集模式中的fifo(你可以用ADC样本做有趣的事情)所以需要在扫描模式下进行更多的研究
命令。
最糟糕的情况是,为每个位置设置一个通道,触发每个通道的扫描,在完成天线扫描时全部读取它们(蛮力,但是,你知道......)

以上来自于谷歌翻译


     以下为原文

  I just did a very simple benchmark for sweeping 20-22 GHZ, 100 kHz;

11 points: 175 sweeps per second
101 poitns: 100 sweeps per second.   These were frequency sweeps (not CW) so if we can feed this data into the fifo you would get a pretty good rate.

Just to understand better: what sends the trigger, is it coming from the positioner, as the antenna sweeps?  How many positions are there?

In CW mode, are you getting just 1 sweep (of 11 points, which I presume have all the same data) per trigger?  And then is your idea to repeat the antenna sweep for each frequency?

What is the period (or clock) of the external trigger?  Is it faster than the PNA?  If you are getting 1 measurement per trigger, then doesn't the external trigger limit the data acquistion rate? 

At least in sweep mode, you could get a full sweep per trigger, which means swinging the antenna only once.

I -believe- you can use fifo in sweep mode, but I don't think you can be in fast CW (two different modes); I've emailed the fifo inventor, so maybe he'll respond (but unlike me, he has a life and so is likely spending it with his family this weekend).  I'll try some tests but you may not here back until Monday...

I've only used the fifo in the direct ADC acquistion mode (you can do interesting things with ADC samples) so more research needed in sweep mode for the right commands.

Worst case, setup a channel for each position, trigger sweeps for each channel, read them all when the antenna sweep is done (brute force, but then, you know...)
2018-12-13 18:50:27 评论

举报

脑洞大赛9 发表于 2018-12-13 09:32
我只是做了一个非常简单的基准测试,扫描20-22 GHZ,100 kHz;
11点:每秒175次扫描101次点击:每秒100次扫描。
这些是频率扫描(不是CW)所以如果我们可以将这些数据输入到fifo中,你将获得相当不错的速率。

> 11点:每秒175次扫描> 101次点击:每秒100次扫描。
这些是频率扫描(不是CW)所以如果我们可以将这些数据输入到fifo中,你将得到相当不错的速率。
同意。
如果我能达到这些费率,我会很高兴。
我不知道我之前是否说过,但我使用的是N5224A。
>只是为了更好地理解:什么发送触发器,它来自定位器,当>天线扫描?
有多少职位?
定位器硬件正在发送触发器。
我们实际上正在进行近场扫描。
定位器是x-y扫描仪。
当扫描仪沿着一行移动时,我们将使用编码器生成硬件触发器。
粗略地说,我们考虑的是1500乘1500点的网格,相当于2.25 M点。
除非我们能找到优化速度的方法,否则在开始之前我们已经死了。
>外部触发器的周期(或时钟)是多少?
在现实生活中,外部触发的周期取决于电机的速度。
我们将调整电机速度,直到我们得到PNA可以处理的东西。
对于基准测试,我一直在突发模式下使用方波发生器。
我编程(例如)10次循环爆发。
我的脚本只要求PNA每个触发器存储1个实/虚对。
所以在10个周期结束时,我希望FIFO:DATA:COUNT为(10个周期)(每个周期2个数字)= 20如果我的脚本结束时COUNT小于20,那么我知道方波
发电机速度太快了。
我只是继续启动频率旋钮并运行脚本,直到PNA无法跟上。
现在这个限制是30赫兹,这是你的基准测试和我自己的速度测试测试的低。
>至少在扫描模式下,您可以获得每次触发的全扫描,这意味着只需将>天线摆动一次。
是的,如果我理解正确的话,这将是我的目标。
我想为每个x-y点获得一个S21 vs freq曲线。
然后我可以在一次x-y扫描中收集我需要的所有数据。
然而,如果出于某种原因我只能通过一个频率运行来获得快速的速度,那么我愿意让电机快速进行N x-y扫描,其中N是感兴趣的频率数。
目前,我有两个问题:1。我无法获得与你使用我的VBScript宏2达到的速度相同的速度。我对如何在fifo模式下进行频率扫描有点不清楚,因为所有
可用示例的示例是FastCW模式。

以上来自于谷歌翻译


     以下为原文

  > 11 points: 175 sweeps per second
> 101 poitns: 100 sweeps per second. These were frequency sweeps (not CW) so if we can feed
>  this data into the fifo you would get a pretty good rate.

Agreed. I'd be pleased if I could achieve these rates. I don't know if I said it before, but I'm using an N5224A. 

> Just to understand better: what sends the trigger, is it coming from the positioner, as the
> antenna sweeps? How many positions are there?

The positioner hardware is sending the trigger. We're actually doing a near field scan. The positioner is an x-y scanner. As the scanner moves along a row, we'll use the encoders to generate hardware triggers. Roughly speaking, we're thinking of a 1500 by 1500 point grid, which corresponds to 2.25 M points. Unless we can figure out ways to optimize speed, we're dead before we start.

> What is the period (or clock) of the external trigger?

In real life the period of the external trigger will depend on the speed of the motor. We'll adjust motor speed until we get something that the PNA can handle. For benchmarking, I've been using a square wave generator in burst mode. I program it (for example) for 10 cycle bursts. My script only asks the PNA to store 1 real/imaginary pair per trigger. So by the end of 10 cycles, I expect the FIFO:DATA:COUNT to be 
  (10 cycles)(2 numbers per cycle) = 20
If the COUNT is less than 20 at the end of my script, then I know the square wave generator is going too fast. I just keep on cranking the frequency knob and running the script until the PNA can't keep up anymore. Right now that limit is 30 Hz, which is low by your benchmarking and my own tests with Speed Test. 

> At least in sweep mode, you could get a full sweep per trigger, which means swinging the
> antenna only once.

Yes, that would be my goal, if I understand you correctly. I'd like to get one S21 vs freq trace for every x-y point. Then I can gather all of the data I need in one x-y scan. 

However, if for some reason I can get blistering speeds by operating only at one frequency, then I'm open to the idea of making the motors go fast and doing N x-y scans, where N is the number of frequencies of interest.

At the moment, I have two problems:
  1. I can't get the same speeds that you and Speed Test achieve with my VBScript macro
  2. I'm a little unclear on how to do a frequency sweep in fifo mode, as all of the available
      examples are in FastCW mode.
2018-12-13 19:00:00 评论

举报

c88348535 发表于 2018-12-13 09:42
> 11点:每秒175次扫描> 101次点击:每秒100次扫描。
这些是频率扫描(不是CW)所以如果我们可以将这些数据输入到fifo中,你将得到相当不错的速率。
同意。

我很高兴Joel加入了这个......我不得不休息一天。
正如我之前所说,有一些技巧可以获得尽可能快的扫描,而FIFO固件中一个模糊的速度相关错误也无济于事。
速度测试程序可以解决这个问题,因此可以解释一些问题。
出于这个原因,我们想知道您正在使用的固件版本,如果您可以将其升级到最新版本(在我验证错误已修复之后)。

以上来自于谷歌翻译


     以下为原文

  I'm glad Joel joined in on this...I had to take the day off.

As I said earlier, there are some tricks to obtaining the fastest possible sweeps, and an obscure speed related bug in the FIFO firmware did not help either. The speedtest program works around this bug, so that may explain some things.  For this reason we would like to know the firmware revision you are using and if you are okay with upgrading it to the latest (after I verify the bug has been fixed.)
2018-12-13 19:14:59 评论

举报

c88348535 发表于 2018-12-13 09:42
> 11点:每秒175次扫描> 101次点击:每秒100次扫描。
这些是频率扫描(不是CW)所以如果我们可以将这些数据输入到fifo中,你将得到相当不错的速率。
同意。

> {quote:title = bfris写道:} {quote}>定位器硬件正在发送触发器。
我们实际上正在进行近场扫描。
定位器是x-y扫描仪。
当扫描仪沿着一行移动时,我们将使用编码器生成硬件触发器。
粗略地说,我们考虑的是1500乘1500点的网格,相当于2.25 M点。
除非我们能找到优化速度的方法,否则在开始之前我们已经死了。
得到它了。
这是经典扫描,我们已经完成了很多这些系统。
>>>外部触发器的周期(或时钟)是多少?
>>在现实生活中,外部触发的周期取决于电机的速度。
我们将调整电机速度,直到我们得到PNA可以处理的东西。
对于基准测试,我一直在突发模式下使用方波发生器。
我编程(例如)10次循环爆发。
我的脚本只要求PNA每个触发器存储1个实/虚对。
所以在10个周期结束时,我希望FIFO:DATA:COUNT>(10个周期)(每个周期2个数字)= 20>如果我的脚本结束时COUNT小于20,那么我知道
方波发生器过快。
我只是继续启动频率旋钮并运行脚本,直到PNA无法跟上。
现在这个限制是30赫兹,这是你的基准测试和我自己的速度测试测试的低。
>我将不得不尝试这一点,但是方式将偏离2倍(因为PNA在方波的1/2期间处于空闲状态)。
通常,数据采集时间实际上是同步的。
所以在这种模式下,在100 kHz IF,数据acq。
时间大约是10usec。
所以30个使用周期应该是充足的...当然你可以将IF BW打开到600 kHz或更宽。
如果你不能在CW每秒至少获得10000点,我会感到惊讶。
>但是,如果由于某种原因我只能通过一个频率运行来获得快速的速度,那么我愿意让电机快速进行N x-y扫描,其中N是感兴趣的频率数。
这是快速CW的正常模式。
如果你能忍受噪音,你可以获得每秒400,000点的费率。
我将仔细检查是否在ext触发中支持,但我认为它是。
其他一些问题:由于方波发生器的限制,你可能会遇到硬件触发问题而你没有得到一个干净的PNA触发器(确保你设置为ttl级别)。
所以可能是极限是方波不是更高速率的干净方波。

以上来自于谷歌翻译


     以下为原文

  > {quote:title=bfris wrote:}{quote}
> The positioner hardware is sending the trigger. We're actually doing a near field scan. The positioner is an x-y scanner. As the scanner moves along a row, we'll use the encoders to generate hardware triggers. Roughly speaking, we're thinking of a 1500 by 1500 point grid, which corresponds to 2.25 M points. Unless we can figure out ways to optimize speed, we're dead before we start.
Got it.  This is the classic scanning, we've done lots of these systems.

> > What is the period (or clock) of the external trigger?

> In real life the period of the external trigger will depend on the speed of the motor. We'll adjust motor speed until we get something that the PNA can handle. For benchmarking, I've been using a square wave generator in burst mode. I program it (for example) for 10 cycle bursts. My script only asks the PNA to store 1 real/imaginary pair per trigger. So by the end of 10 cycles, I expect the FIFO:DATA:COUNT to be 
>   (10 cycles)(2 numbers per cycle) = 20
> If the COUNT is less than 20 at the end of my script, then I know the square wave generator is going too fast. I just keep on cranking the frequency knob and running the script until the PNA can't keep up anymore. Right now that limit is 30 Hz, which is low by your benchmarking and my own tests with Speed Test. 
>
I'll have to try this out, but a squre way will be off by a factor of 2 (since the PNA is idleing during 1/2 the square wave).  Normally, the data acquistion time is really syncrhonous.  So in this mode, at 100 kHz IF, the data acq. time is about 10usec.   So 30 usecond period should be plenty..  and of course you can open up the IF BW to 600 kHz or wider. I would be suprised if you can't get at least 10000 points per second in CW. 
> However, if for some reason I can get blistering speeds by operating only at one frequency, then I'm open to the idea of making the motors go fast and doing N x-y scans, where N is the number of frequencies of interest.
This is the normal mode for fast CW.  If you can stand the noise, you can get rates of 400,000 points per second.  I will double check if this is supported in ext triggering, but I presume it is.

Some other issues: you might have hard-ware triggering issues where you're not getting a clean trigger to the PNA due to limitations of the square-wave generator (make sure you are set for a ttl level).  So it might be that the limitain is the square wave isn't a clean square wave at higher rates.
2018-12-13 19:21:11 评论

举报

> {quote:title = bfris写道:} {quote}>。
我需要以大约200万个天线方向测量数据。
对不起,我在第一个问题中错过了这个。
你是否以电子方式改变方向?
如果是这样(接下来会有很多问题):你可以多快切换方向?
什么控制变化?
(来自PC的命令,FPGA吐出的位等等?)你是否与PNA握手?
发送一个triggern,然后在发送另一个之前等待响应?
我已经设置了TR脉冲系统的测试,我们在大约2分钟内完成80,000次触发测量。
按照这个速度,你在大约30分钟内得到200万分,但我们受到100 usec的脉冲周期的限制。
这也使用触发测量,FPGA运行该节目。
触发延迟和测量准备最多只有几微秒。

以上来自于谷歌翻译


     以下为原文

  > {quote:title=bfris wrote:}{quote}
> . I need to measure data at roughly 2 million antenna orientations. 

sorry, I missed this in your first question.  Do you change orientations electronically?  If so (lots of questions follow):
     How fast can you switch the orientations?  
     What controls the changes? (commands from a PC, FPGA spitting out bits, etc?)
     Do you handshake with the PNA? Send a triggern and then wait for a response before sending another?

I've setup testing for TR pulsed systems, where we run off 80,000 triggered measurements in about 2 minutes.  At that rate you'd get 2 million points in about 30 minutes, but we were limited by the pulse period of 100 usec. This also used triggered measurements, with an FPGA running the show.  The trigger latency and measure ready is just few microseconds at most.
2018-12-13 19:33:33 评论

举报

我意识到你可能没有使用COM,但这就是速度测试所使用的。
目前,为了解决一些小错误,它使用了SCPI和COM的组合。
我相信这些错误现在已经修复了......我将在星期一从我们的FIFO专家那里得知。
你+可以+在VBS中使用COM。
无论如何,这就是FIFO代码的编写方式。
请记住,涉及的一些开销未显示。
首先,设置您的开始/停止频率,IFBW,点数等。然后,对于每个循环或天线位置:设置fifo = na.fifo'这只需要在前面完成一次fifo.State = True scpi
.Parse(“SENS:SWE:GRO:COUNT”& Trim(txtLoops.Text))'这是循环次数'截止到2013年5月,我们必须使用SCPI命令触发组#才能正常工作

opc = scpi.Parse(“SENS:SWE:MODE GRO; * OPC?”)fifoArray = fifo.DataInCompactForm(fifoCount)'在这个例子中,为每个循环读取数据,但是可以在完成所有循环后完成。
fifo.State = False正如我所说,我确实有一个speedtest版本可以(有点)使用外部触发器。
您可以通过电子邮件与我联系:john_vallelunga -at- agilent.com。
我将在早上与Joel和我们的FIFO专家讨论这个问题。

以上来自于谷歌翻译


     以下为原文

  I realize you may not be using COM, but that is what the speedtest is using.  For now, to work around some minor bugs, it uses a combination of SCPI and COM.  I believe those bugs have now been fixed...I will find out from our FIFO expert on Monday.   You +can+ use COM in VBS.

In any case, this is how the FIFO code is written.  Keep in mind, there is some overhead involved that is not shown.
First, set up your  start/stop frequencies, IFBW,  # of points, etc.
Then, for each loop, or antenna position:

     Set fifo = na.fifo             ' This just needs to be done once up front
      fifo.State = True
      scpi.Parse ("SENS:SWE:GRO:COUNT " & Trim(txtLoops.Text))    ' This is the number of loops
      ' As of 5/2013, we must use SCPI command to trigger # of groups for this to work properly!
      opc = scpi.Parse("SENS:SWE:MODE GRO;*OPC?")
      fifoArray = fifo.DataInCompactForm(fifoCount)     ' In this example, data is read for each loop, but it can be done after ALL loops are completed.      
      fifo.State = False

As I said, I do have a version of speedtest that can (sort of) work with external trigger.  
You can contact me via email:  john_vallelunga -at- agilent.com.

I will  discuss this with Joel and our FIFO expert in the morning.
2018-12-13 19:46:44 评论

举报


我不知道你的天线定位器有多快,但通常它们比移动PNA频率慢,所以在内环上做频率可能是最好的。
鉴于此,jvall的代码应该可以解决问题。
附件是我的vbs测试代码,几乎相同,但有外部触发。
对于具有201个频率点的设置,我可以以大约150 Hz的频率触发每个频率扫描。对于11个频率点,我可以以大约380 Hz的频率触发。
如果需要,可以连接示波器,查看触发器和PNA的MeasTrigReady连接器。
通过观察准备好的线路,您可以提高触发器输入速度,直到我们开始丢失触发器,然后稍微退回。
尼尔斯詹森

以上来自于谷歌翻译


     以下为原文

  I don't know how fast your antenna positioner can go, but often they are slower then moving the PNA frequency, so doing frequency on the inner loop is probably best.

Given that, jvall's code should do the trick. Attached is my vbs test code, which is pretty much the same, but with external triggering.

For your setup with 201 frequency points, I can trigger each frequency sweep at about 150 Hz,
For 11 frequency points, I can trigger at about 380 Hz.

If you want, you can hook up a scope, and look at your trigger in, and the PNA's MeasTrigReady connector. By watching the ready line, you can crank up the trigger input speed until we start missing triggers, and then back off a little. 

Niels Jensen

附件

2018-12-13 20:00:39 评论

举报


看起来我的文件上传被阻止了。
这又是,但我将扩展名更改为txt。
但它是一个vbs文件,你可以把它放在你的盒子上并运行,如果你想。

以上来自于谷歌翻译


     以下为原文

  Looks like my file upload was blocked. Here it is again, but I changed the extension to txt. But it is a vbs file you can put on your box and run if you want to.

附件

2018-12-13 20:08:12 评论

举报


jvall,nielsj和Dr_joel:谢谢你的所有想法。
我将尝试使用nielsj的代码,看看是否有帮助。
我还将查看MeasTrigReady输出以查看是否存在任何意外问题。
我很难相信一批工厂的Agilent / HP siggen无法在30 Hz以上产生干净的方波。
到目前为止,我还没有尝试控制NumberOfGroups。
文档表明存在2M的限制。
我想要高达2.25M,所以我可能不得不考虑在一行结束时而不是在整个x-y扫描结束时读回数据。
关于固件,我刚刚升级到A.09.90.02,但我注意到A.09.90.05今天似乎已经上升了。
那么也许我必须再次升级?
我将调查COM与SPCI的事情。
如果能得到我需要的结果,我真的不在乎语言的纯洁性。
虽然坚持一个或另一个会更加清洁。



以上来自于谷歌翻译


     以下为原文

  jvall, nielsj, and Dr_joel:  thank you for all of your ideas. I'm going to try nielsj's code and see if that helps. I'm also going to look that the MeasTrigReady output to see if there are any unexpected issues there. It's hard for me to believe that a run of the mill Agilent/HP siggen cannot give a clean square wave at above 30 Hz. 

So far, I have NOT been trying to control NumberOfGroups. The documentation indicates that there is a limit of 2M. I'm thinking of having up to 2.25M, so I may have to think about reading back data at the end of a row instead of at the end of the entire x-y scan.

Regarding firmware, I just upgraded to A.09.90.02, but I noticed that A.09.90.05 seems to be up today. So maybe I'll have to upgrade again?

I'll investigate the COM vs SPCI thing. I don't really care about purity of language if I can get the results I need. Though it would be a lot cleaner  to stick with one or the other . . .
2018-12-13 20:14:29 评论

举报


要获得最快的速度,您必须使用组功能以及fifo。
这可能就是为什么你看到较慢的利率。
关闭组后,PNA需要更长时间才能为触发做好准备。
我们有一大堆开销,包括不确定的Windows内容,纠正和显示数据等等......当fifo打开,你使用组时,我们进入“快速组”模式。
在帮助系统索引中查找快速组。
此模式下无校正或显示。
你是对的,我们有2M点限制。
我将看看为什么我们有这个限制。
副手我不知道。
如果适合您,您可能必须逐行进行。
让我知道增加群数限制的重要性。

以上来自于谷歌翻译


     以下为原文

  To get the fastest speed, you will have to use the groups feature, along with the fifo.
That may be why you are seeing slower rates. With groups off, it takes PNA longer to get ready for the trigger. We have a bunch of overhead involved, including uncertain Windows stuff, correcting and displaying the data, etc...
When the fifo is on, and you use groups, we go into "fast groups" mode. Look up fast groups in the Help system index.

There is no correction or display in this mode.

You are right, we have a 2M point limit. I will take a look and see why we have that limit. Offhand I don't know. You might have to do row by row, if that works for you. 

Let me know how important increasing the group count limit is.
2018-12-13 20:29:33 评论

举报


成功!
随着群组开启,我可以达到380 Hz的外部触发率。
甜!
此外,数据看起来相同。
这适用于10人一组。对于较大的团体来说,这可能不那么美观。
但仍然非常鼓舞人心。
在这种模式下,FIFO的一个奇怪特性是计数是FastCW模式的一半。
当您要求提供数据时,您会得到两倍的数据。
换句话说,FastCW模式似乎同时计算实部和虚部,但在扫描模式下,只计算实/虚对。
而且,似乎确实,直到A.09.90.02,只有用于在组中设置触发的SCPI命令才有效。
COM很有趣。
我将不得不做更多的时序测试,看看在每一行的末尾回读数据会有多长时间。
或者,我可以研究将网格尺寸从1500x1500(2.25M网格点)减小到1400x1400(1.96M网格点)的后果。

以上来自于谷歌翻译


     以下为原文

  Success! 

With groups on, I can achieve 380 Hz external trigger rate. Sweet! Further, the data looks the same. This is for groups of 10. It could be less pretty for larger groups. But still very encouraging. 

One strange feature about FIFO in this mode is that the count is half of what you get for FastCW mode. And when you ask for the data back you get twice the data you ask for. Put a different way, FastCW mode seems to count both the real and imaginary part, but in sweep mode only the real/imaginary pair is counted.

Also, it seems to be true that as late as A.09.90.02, only the SCPI command for setting up triggering in groups works. COM acts funny. 

I'll have to do some more timing tests to see how time consuming it will be to read back data at the end of each row. Alternatively, I can investigate what the consequence of reducing my grid size from 1500x1500 (2.25M grid points) to 1400x1400 (1.96M grid points).
2018-12-13 20:39:03 评论

举报


或者,你可以把螺丝钉给niels并让他改变常数!
(我看到了源代码......真的,硬编码常量,这是90年代的什么?)

以上来自于谷歌翻译


     以下为原文

  or, you can put the screws to niels and have him change the constant!  (I saw the source code...really, hard coded constants, what is this the 90's?)
2018-12-13 20:58:27 评论

举报

只有小组成员才能发言,加入小组>>

12下一页

62个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表