TestStand工业自动化测试管理(典藏版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.2.2 参量(Parameters)

序列可以调用其他序列作为子序列,通过参量可以将数据从调用方序列传递给子序列。参量的作用范围比局部变量大一些,它类似于文本编程中函数的形参,每个序列都可以定义自己的参量。对于序列本身的步骤而言,参量的使用访问和局部变量是没有差别的。参量的创建和局部变量类似,同样在变量窗格中,选择在Parameters容器下方添加。参量是有方向性的,即调用方序列将数据通过参量传递给子序列。

【练习5-1】使用局部变量和参量

在本练习中,将要创建局部变量和参量,使用局部变量在同一个序列的步骤之间传递数据,使用参量从调用方序列给子序列传递数据。

(1)打开序列编辑器,新建序列文件并将其保存为<Exercise>\Chapter 5\Locals and Parameters.seq。

(2)在变量窗格中新建两个数值型局部变量Locals.a和Locals.Temp,其初始值为0。

(3)在序列窗格中选择主序列,然后添加一个表达式步骤,在表达式中输入“Locals.a=2”。

(4)再添加一个表达式步骤,在表达式中输入“Locals.Temp=Locals.a+2”。

(5)在序列窗格中新建序列,并命名为“SubSequence”。选中SubSequence,然后在变量窗格Parameters容器下新建一个数值型参量frequency(初始值为0)。

(6)回到主序列,添加调用序列步骤,在步骤设置窗格“模块”页面中,勾选“Use Current File”选项,然后在序列下拉列表中选择“SubSequence”,这时会在参量一栏自动列举出SubSequence中所有的参量。在“Value”栏输入“Locals.Temp”,注意“How Passed”中数据的传递方式是“by reference”。配置完成后,调用序列步骤的设置如图5-3所示。现在主序列应该如图5-4所示。

图5-3 步骤设置窗格(模块页面)

图5-4 主序列

(7)在序列窗格中选择“SubSequence”,然后在步骤列表窗格中添加一个消息对话框步骤,在消息表达式中输入“"The value of parameter frequency is"+Str(Parameters.frequency)”。

(8)在消息对话框步骤之后添加一个表达式步骤,在表达式中输入“Parameters.frequency+=2”。SubSequence序列现在应该如图5-5所示。

图5-5 SubSequence序列

(9)切换回主序列,在序列调用步骤后添加一个消息对话框步骤,在消息表达式中输入“"Modified frequency value is"+Str(Locals.Temp)”。

(10)保存序列,通过菜单命令“ExecuteRun MainSequence”执行序列。观察前后两次消息对话框弹出的结果。

在执行SubSequence序列的消息对话框时,显示参量frequency的结果为4;接着在执行主序列的消息对话框时,显示结果为6,这其中有哪些数据的传递?在主序列中有两个局部变量(a和Temp),主序列中的任意步骤都可以访问它们,在表达式步骤中分别对a和Temp进行了赋值,很容易得知Temp的值为4。在序列调用步骤中,采用传递的方式,把Locals.Temp的地址传递给了Parameters.frequency,对任何一方值的修改都会同时更新这两个变量。所以在SubSequence中,消息对话框显示的值应该为4;随后,Parameters.frequency的值加2,这样frequency的值变为6;最后序列执行到主序列的消息对话框时,显示Locals.Temp的值也就变为6。

在范例资源的第5章练习中,例程<Exercises>\Chapter 5\Locals and Parameters-solution.seq完成的是上面的练习,读者可以通过菜单命令“ExecuteRun MainSequence”运行该范例并观察结果。