我使用TestStand 2014 SP1和LabVIEW 2014 SP1作为测试适配器,使用BatchModel.seq测试最多两个UUT( using )。测试序列一直运行良好,直到最近
RunState.TestSockets.MyIndex
变量返回了一个"-1“,并导致我的数组索引选择和动态报告路径生成出错(严重的运行时错误)。我在ReportOptions中有一个表达式,用于在运行时使用RunState.TestSockets.MyIndex值创建报表路径。
我是TestStand的新手,我不是使用批处理模型的专家,但据我的理解,如果我只测试1 UUT,RunState.TestSockets.MyIndex = 0,则。如果我测试2个UUT,RunState.TestSockets.MyIndex = 1 (因此我可以在my数组中使用"0“或"1”的索引,例如testInfo0,1 0,1或uutInfo0,1 0,1,blah,blah。
但是,如果RunState.TestSockets.MyIndex = -1,testInfo-1或uutInfo-1将无效,并返回一个步骤执行错误,从而使测试基本上崩溃。
同样,这个RunState.TestSockets.MyIndex = -1状态只是最近的。我的TestStand“模型选项”是为4测试套接字设置的(我认为是默认的)。在ModelOptions.seq中,它用表达式覆盖默认值:
Parameters.ModelOptions.NumTestSockets = 2
我没有将任何内容更改为TestStand的batchmodel.seq,因为这是受编辑限制的。所以我不知道这个"RunState.TestSockets.MyIndex = -1“是从哪里来的。
谢谢你,奥尔德林
发布于 2022-06-13 07:36:38
RunState.TestSockets.MyIndex的值取决于执行回调。对于每个测试套接字执行的回调,它的值为0或更高。对于只执行一次的ProcessSetup、ProcessClenup、PreBatch、PostBatch -回调,这是因为代码实际上不是针对套接字运行的,而是通常为所有套接字同时运行的。但对于PreUUT、PostUUT、MainSequence,则该变量将根据测试套接字拥有适当的值。因为对于每个测试套接字,这些回调都是并行执行的。这也意味着,例如,如果您在SequenceFilePostResultListEntry中有一些代码,并且该代码依赖于SequenceFilePostResultListEntry值,那么您需要回忆调用它的回调函数。因为,每个步骤都要调用RunState.TestSockets.MyIndex,所以在ProcessSetup执行过程中,ProcessSetup变量将有-1值,但是在MainSequence执行过程中,它将有套接字索引值。
https://stackoverflow.com/questions/72597894
复制相似问题