完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用IVI和SCPI命令,我设法执行一个quided Cal并将其保存到* .cal文件中。
我的下一步是在后续会话中加载并应用此cal文件。 我已设法加载文件,我可以在Manage Cal Sets窗口中看到校准集:AgNA_SystemWrite(IFA_NetworkAn,“MMEM:LOAD:CORR'calFileName'”); 但是当我执行:AgNA_ApplyCalibration(IFA_NetworkAn); 我收到一条错误消息,指出需要进行更多校准。 我显然在这里错过了一步。 有帮助吗? 以上来自于谷歌翻译 以下为原文 Using IVI and SCPI commands, I have managed to perform a quided Cal and save it into a *.cal file. My next step is to load in and apply this cal file on subsequent sessions. I have managed to load the file and I can see the cal sets in the Manage Cal Sets window: AgNA_SystemWrite (IFA_NetworkAn, "MMEM:LOAD:CORR 'calFileName'"); but when I execute: AgNA_ApplyCalibration(IFA_NetworkAn); I get an error stating that more calibration is needed. I am obviously missing a step here. Any help? |
|
相关推荐
8个回答
|
|
出于好奇,只是保存一个.csa文件然后再回忆它会不会容易得多?
当然,这将记住cal和仪器的状态。 虽然有.cal文件的用途(这可能是其中之一),但它更复杂。 当您尝试加载.cal文件时,仪器是否处于与创建时相同的状态? 以上来自于谷歌翻译 以下为原文 Just out of curiosity, wouldn't it be much easier to just save a .csa file and then recall it? Of course, this will recall the cal along with the state of the instrument. While there are uses for a .cal file (and this may be one of them), it is more complicated. When you try to load the .cal file, is the instrument in the same state as when it was created? |
|
|
|
胡bbs2 发表于 2018-11-7 07:22 感谢您对.csa文件的建议。 我执行的代码设置通道和测量然后执行cal然后保存它。 SW的后续运行运行相同的代码以设置通道和测量,然后在决定执行新的校准之前检查现有的校准。 所以,是的,仪器设置方式相同。 我想知道我错过了什么,只是为了了解发生了什么。 如果重新应用cal的过程很麻烦,我最终可能最终会使用.csa文件。 艾伦 以上来自于谷歌翻译 以下为原文 Thanks for the suggestion regarding the .csa file. The code I have executing sets up the channels and measurements then does a cal and then saves it. A subsequent run of the SW runs the same code to set up the channels and measurements then check for an existing cal before deciding to do a new cal. So, yes the instrument is set up the same way. I would like to know what I am missing more so just to understand what is going on. I may end up using the .csa file in the end if the process of re-applying a cal is to cumbersome. Alan |
|
|
|
mingfawolf 发表于 2018-11-7 07:35 如果这看起来很复杂,我很抱歉。 你在IVI驱动程序中原生支持你所描述的内容,你不应该使用.cal文件,因为它们用于不同的目的。 “ApplyCalibration”命令仅在采集校准期间使用。 这是计算错误术语,创建calregister并将其应用于通道的最后一步。 CalRegister定义:calregister是一个与通道号绑定的未命名calset。 下次校准通道时,将清除并重新创建该通道的calregister。 要在以后应用校准集而不执行校准,您必须首先知道校准集的名称。 使用IAgNAChannel.CalSetName属性在校准后查询校准名称。 所有校准集都自动保留(存储)在系统上。 因此,您可以使用IAgNAChannel.CalSetName属性稍后将calset应用于未修正的通道。 您无需在系统上保存任何新文件。 您可能需要一个命名的calset。 一旦命名了calset,它就会永久存在(直到你删除它)。 要创建命名calset,可以将calregister复制到命名calset中。 首先从IAgNAChannel.CalSetName中获取calregister的“名称”,然后使用IAgNACalsets.Copy复制它。 或者您可以使用IAgNAGuidedCalibration对象上的“保存”命令。 (而不是ApplyCalibration)。 它们都做同样的事情,除了Save()命令允许你命名calset,而ApplyCalibration只使用calregister。 然后,您可以使用IAgNAChannel.CalSsetName属性将其应用于未校准的通道。 那么,什么是.cal文件? .cal文件将一组calset存储到一个文件中,以便稍后可以将它们导回到系统中。 这几乎是不必要的,因为无论如何,calsets永远存在并且什么是.csa文件? .csa文件存储所有内容..刺激和校准集。 在.csa文件周围编写代码非常方便。 最大的问题是.csa文件是一个不透明的数据文件...所以你没有很好的方法来理解加载这个文件时会发生什么。 编写代码以设置所有激励状态更加稳健,然后应用校准。 您应该能够通过使用上述技术来实现这一目标。编辑:johanericsson于2015年2月23日下午10:39 以上来自于谷歌翻译 以下为原文 I'm sorry if this seems complicated. What you are describing is supported natively in the IVI driver, and you shouldn't be using .cal files, as they are for a different purpose. The "ApplyCalibration" command is only used during the acquisition of the calibration. It is the last step that computes the error terms, creates a calregister, and applies it to the channel. CalRegister definition: A calregister is an unnamed calset that is tied to a channel number. The next time you calibrate the channel, that channel's calregister is cleared and recreated. To later apply a calset without performing a calibration, you must first know the name of your calset. Use the IAgNAChannel.CalSetName property to query the calset name after the calibration. All the calsets are automatically persisted (stored) on the system. So, you can apply the calset later to an uncorrected channel by using the IAgNAChannel.CalSetName property. There is no need for you to save any new files on the system. You may want a named calset. Once the calset is named, then it will persist forever (until you delete it). To create a named calset, you can copy the calregister into a named calset. First grab the "name" of the calregister from the IAgNAChannel.CalSetName and then copy it by using the IAgNACalsets.Copy. Or you could use the "Save" command on the IAgNAGuidedCalibration object. (instead of the ApplyCalibration). They both do the same thing, except the Save() command will let you name the calset, whereas the ApplyCalibration just uses a calregister. You can then apply it to your uncalibrated channel by using the IAgNAChannel.CalSsetName property. So, what is a .cal file? A .cal file stores a collection of calsets into a file, so that they can be imported later back into the system. This is almost never necessary, because the calsets persist forever anyway And what is a .csa file? A .csa file stores everything.. the stimulus and the calsets. It can be very convenient to write code around a .csa file. The big problem is that the .csa file is an opaque data file... so you don't have a great way of understanding what happens when this file is loaded. It is more robust to write your code to setup all the stimulus state, and then apply the calibration. You should be able to accomplish that by using the techniques above. Edited by: johanericsson on Feb 23, 2015 10:39 PM |
|
|
|
60user56 发表于 2018-11-7 07:54 谢谢。 这有很大帮助。 跟进关于给定校准集的年龄的问题:我试图将文件保存到磁盘的原因之一是使我能够回读保存日期以检查校准集的年龄。 我无法通过IVI或SCPI找到方法来获取存储在仪器上的校准集的保存日期。 有人能指出我正确的方向来获取这些信息吗? 再次感谢。 以上来自于谷歌翻译 以下为原文 Thanks. That helps a lot. Follow up question regarding the age of a given cal set: One of the reasons I was trying to save to a file to disk was to enable me to read back the save date to check for the age of the cal set. I could not find a method via IVI or SCPI to get the save date for a cal set stored on the instrument. Could someone point me in the right direction for this information?. Thanks again. |
|
|
|
这些SCPI命令会给你日期/时间:CSET:DATE? “MyCalsetName”CSET:TIME? “MyCalsetName”只是好奇,你校准了多少个频道? 我可以组合一个示例代码来跟踪校准名称,并向您展示如何恢复它们。 以上来自于谷歌翻译 以下为原文 These SCPI commands will give you the date/time: CSET:DATE? "MyCalsetName" CSET:TIME? "MyCalsetName" Just curious, how many channels are you calibrating? I can put together an example code that keeps track of the calset names and shows you how to restore them. |
|
|
|
60user56 发表于 2018-11-7 08:32 谢谢。 我们在各种频段上运行多项测量,测试RF接收器在自动测试中的输入选择性。我们将创建大约六个通道,每个频率范围一个。 有两个独立的输出端口,因此我们认为每个通道都有两个校准集,并在需要时为相应的输出端口选择校准集。 以上来自于谷歌翻译 以下为原文 Thanks. We are running a number of measurements across a variety of frequency bands testing the input selectivity of of an RF Reciever in an automated test.. We will create approximately six channels, one for each frequency range. There are two separate output ports so we thought we would have two cal sets for each channel and select the cal set for the appropriate output port when needed. |
|
|
|
mingfawolf 发表于 2018-11-7 08:51 此示例校准仪器中的两个通道。 在校准结束时,我使用“保存”命令。 此命令采用字符串参数,该参数指定校准集名称的前缀。 这是因为校准向导将为每个通道生成不同的唯一校准集。 该校准集将具有该通道的特定频率的误差项。 生成的Calsets的名称具有以下格式:“_ STD_XXX” - 其中XXX表示通道编号的3位数表示。 然后,我可以预设仪器并重新创建通道。 重新创建通道后,我使用Channel.Calset属性打开calset。 //在Channel1上设置S12,在Channel2上设置S22.Channels.DeleteAll(); driver.Channels.AddMeasurement(“标准”,“S12”,1,1); //在Ch1和window 1 driver.Channels.AddMeasurement(“Standard”,“S22”,2,2)中定义S12测量; //在Ch2和窗口2中定义S12测量//设置指向GuidedCalibration的方便指针IAgNAGuidedCalibration pGuidedCal = driver.GuidedCalibration; int [] Channels = {1,2}; pGuidedCal.SetChannels(ref频道); int [] Ports = {1,2}; pGuidedCal.SetPorts(1,ref Ports); //设置用于通道1的端口pGuidedCal.SetPorts(2,ref Ports); //设置用于通道2的端口pGuidedCal.SetPortConnector(1,“APC 3.5 female”); //设置端口1的端口连接器pGuidedCal.SetPortConnector(2,“APC 3.5 female”); //设置端口2的端口连接器pGuidedCal.SetCalKit(1,“85052D”); //为端口1设置校准套件pGuidedCal.SetCalKit(2,“85052D”); //为端口1设置校准套件pGuidedCal.Advanced.IFBandWidth = 1000; //设置校准的IFBand宽度pGuidedCal.Advanced.SetParameter(“Include Power Calibration”,“false”); //禁用功率校准pGuidedCal.Reset(); pGuidedCal.GenerateSteps(); IAgNACalibrationStep pCalStep = null; for(int StepNbr = 1; StepNbr {pCalStep = pGuidedCal.GetStep(StepNbr); Console.WriteLine(“请{0}并在准备好时按Enter键”,pCalStep.Description); Console.ReadLine(); pCalStep.Acquire (StepNbr); while(pCalStep.IsCompleted == false);} pGuidedCal.Save(“MyCal”); driver.System.Preset(); driver.Channels.DeleteAll(); driver.Channels.AddMeasurement(“Standard”, “S12”,1,1); //在Ch1和窗口1驱动器中定义S12测量.Channels.AddMeasurement(“标准”,“S22”,2,2); //在Ch2和窗口2驱动器中定义S12测量。 Channels.Find(1).CalSetName =“MyCal_STD_001”; driver.Channels.Find(2).CalSetName =“MyCal_STD_002”; 以上来自于谷歌翻译 以下为原文 This example calibrates both of the channels in the instrument. At the end of the cal, I use the "Save" command. This command takes a string argument that specifies the Prefix for the calset names. That's because the calibration wizard will generate a different unique calset for each channel. That calset will have the error terms for the specific frequencies of the channel. The name of the Calsets generated have this format: "_STD_XXX" - where XXX refers to a 3 digit representation of the channel number. Then, I can preset the instrument and recreate the channels. After recreating the channels, I use the Channel.Calset property to turn on the calset. // Setup S12 on Channel1 and S22 on Channel2 driver.Channels.DeleteAll(); driver.Channels.AddMeasurement("Standard", "S12", 1, 1); // Define S12 measurement in Ch1 and window 1 driver.Channels.AddMeasurement("Standard", "S22", 2, 2); // Define S12 measurement in Ch2 and window 2 // Setup convenient pointers to GuidedCalibration IAgNAGuidedCalibration pGuidedCal = driver.GuidedCalibration; int[] Channels = { 1 ,2}; pGuidedCal.SetChannels(ref Channels); int[] Ports = { 1, 2 }; pGuidedCal.SetPorts(1, ref Ports); // Set the ports used for Channel 1 pGuidedCal.SetPorts(2, ref Ports); // Set the ports used for Channel 2 pGuidedCal.SetPortConnector(1, "APC 3.5 female"); // Set the port connector for port 1 pGuidedCal.SetPortConnector(2, "APC 3.5 female"); // Set the port connector for port 2 pGuidedCal.SetCalKit(1, "85052D"); // Set the Cal kit for port 1 pGuidedCal.SetCalKit(2, "85052D"); // Set the Cal kit for port 1 pGuidedCal.Advanced.IFBandWidth = 1000; //Set the IFBand width for the calibration pGuidedCal.Advanced.SetParameter("Include Power Calibration", "false"); //disable the power calibration pGuidedCal.Reset(); pGuidedCal.GenerateSteps(); IAgNACalibrationStep pCalStep = null; for (int StepNbr = 1; StepNbr <= pGuidedCal.StepCount;StepNbr++ ) { pCalStep = pGuidedCal.GetStep(StepNbr); Console.WriteLine("Please {0} and hit enter when you are ready",pCalStep.Description); Console.ReadLine(); pCalStep.Acquire(StepNbr); while (pCalStep.IsCompleted == false) ; } pGuidedCal.Save("MyCal"); driver.System.Preset(); driver.Channels.DeleteAll(); driver.Channels.AddMeasurement("Standard", "S12", 1, 1); // Define S12 measurement in Ch1 and window 1 driver.Channels.AddMeasurement("Standard", "S22", 2, 2); // Define S12 measurement in Ch2 and window 2 driver.Channels.Find(1).CalSetName = "MyCal_STD_001"; driver.Channels.Find(2).CalSetName = "MyCal_STD_002"; |
|
|
|
此外,如果您不想硬编码甚至生成校准集名称 - 那么您可以要求PXI VNA为您提供校准生成的校准名称列表。 这仅作为SCPI命令提供:“SYST:CAL:ALL:CSET:CATalog?” (IVI驱动程序正在进行一种我们调用的校准:“Cal All”。因此,基础SCPI命令在cal all块中:“SYST:CAL:ALL”) 以上来自于谷歌翻译 以下为原文 Also, if you don't want to hard code or even generate the calset names - then you can ask the PXI VNA to give you the list of calset names generated by the calibration. This is only available as a SCPI command however: "SYST:CAL:ALL:CSET:CATalog?" (The IVI driver is doing a type of calibration we call: "Cal All". So, the underlying SCPI commands are in the cal all block: "SYST:CAL:ALL") |
|
|
|
只有小组成员才能发言,加入小组>>
1203 浏览 0 评论
2340 浏览 1 评论
2142 浏览 1 评论
2013 浏览 5 评论
2892 浏览 3 评论
941浏览 1评论
关于Keysight x1149 Boundary Scan Analyzer
687浏览 0评论
N5230C用“CALC:MARK:BWID?”获取Bwid,Cent,Q,Loss失败,请问大佬们怎么解决呀
789浏览 0评论
1203浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 04:35 , Processed in 1.256186 second(s), Total 63, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号