BT-Basic函数之首字母R
文章目录
- BT-Basic函数之首字母R
-
- randomize
- rcall
- remote
- rename
- report
- report clear
- report fault syndrome
- report is
- report level is
- report out
- report using
- re‑save
- re‑store
- return
- revision$
- rexit
- rinit
- rli$
- rnd
- rotate
- rpmc
- rps
- run
randomize
以下是这段英文的中文翻译:
randomize语句用于重新计算随机数生成器rnd语句的种子。
语法
randomize
randomize <数字表达式>
参数
<数字表达式>
用于重新计算随机数生成器种子的值。如果省略,则生成器会自行选择值。
示例
randomize 6.23497
R=R*pi \ randomize R
rcall
rcall语句允许您指定测量服务器上的入口点(通常是子程序的名称)。它还允许您传递信息(参数)到入口点并从入口点传回信息。
rinit语句有一个调试选项,可以将Keysight VEE仪器服务器启动到其调试模式。如果调试处于启用状态,rcall会打开一个窗口,其中包含被调用的语句,使用Keysight VEE调试工具进行调试。当您完成语句的调试后,关闭窗口以继续运行BT-Basic或模拟程序。(调试选项适用于Keysight VEE 3.2版本及更高版本。)
语法
rcall <entry point>
rcall <entry point>(<parameters>)
rcall <entry point>(<parameters>); service <server name>
<entry point> is a <label>
<parameters> can be: <parameter>
<parameter>, <parameter>
<parameter>, <parameter>, . . . <parameter>
<parameter> can be: <numeric expression>
<string expression>
<numeric variable id>(*)
<server name> is a:
<string expression> (when "rcall" is used in BT-Basic)
<string constant> (when "rcall" is used in ANALOG)
<字符串表达式>(当在BT-Basic中使用“rcall”时)
<字符串常量>(当在ANALOG中使用“rcall”时)
参数:
<入口点>测量服务器中的一个入口点的名称。这通常是测量服务器上执行的Keysight VEE子程序的名称。
<参数>一个或多个参数,用逗号分隔,传递给在测量服务器上执行的服务。
<服务器名>包含测量服务器唯一名称的字符串表达式。如果未指定值,<服务器名>默认为最后引用的服务器;即当前正在使用的测量服务器。
示例
rcall VOLTMETER ("SETUP", Reading)
! 调用当前使用中的测量服务器上的名为"VOLTMETER"的子程序。
! 传递两个参数,一个是字符串,一个是数字。
rcall FREQ_CNTR ("READING", A(*))
! 调用当前使用中的测量服务器上的名为"FREQ_CNTR"的子程序。
! 传递两个参数,其中一个是数字数组的名称。
rcall FREQ_CNTR (X, Z); service "vee"
! 调用名为"vee"的测量服务器上的名为"FREQ_CNTR"的子程序。
! 向子程序传递两个参数。
一般信息
在使用rcall调用测量服务器上的入口点之前,必须执行rinit语句以初始化该服务器。
和通过引用传递,通过值传递。在通过值传递数据时,调用的子程序不能更改BT-Basic环境中的数据。调用的子程序可以在通过引用传递数据时更改BT-Basic环境中的数据。
rcall语句可以在BT-Basic和Keysight VEE之间传递的数据类型包括:
• 字符串
• 实数
• 单维字符串数组
• 单维实数数组
remote
remote语句向GPIB接口发送远程消息,将接口线路REN(Remote ENable)设置为0。这允许连接到总线的设备被远程操作;例如,在测试程序的控制下。
如果总线已被寻址,REN被设置为0,但设备不会切换到远程操作,直到它们被寻址。
如果被寻址的设备是当前侦听器,该语句将REN设置为0,设备切换到远程。如果设备不是当前侦听器,该语句设置REN,然后寻址设备进行侦听。设备随即切换到远程。
语法
remote <GPIB>
remote <GPIB device>33
<GPIB> 和 <GPIB device> 是 @<名称>
<名称> 是一个 <标签>
参数
<GPIB>
总线的地址,将接口线路REN(Remote ENable)设置为0,但对个别设备没有影响。
<GPIB device>
所选GPIB设备的地址。将REN设置为0,并且如果设备尚未是侦听器,则将其寻址为侦听。设备随后切换到远程。
eg:
快捷方法:
assign @DVM to "/dev/dmm"
remote "/dev/dmm" ! 将DVM切换到远程操作
remote @DVM ! 在总线上,设置REN为0
assign @Auto to "/dev/hpib1" | remote @Auto
绝对路径方法:
Bus$ = btgetenv$("AgilentICT_ROOT")
assign @DVM to Bus$&"/dev/dmm"
remote Bus$&"/dev/dmm" ! 将DVM切换到远程操作
remote @DVM ! 在总线上,设置REN为0
assign @Auto to Bus$&"/dev/hpib1" | remote @Auto
一般信息
这些示例假设dev文件hpib1包含SICL接口名称hpib7。
rename
rename语句允许测试开发者重命名现有的文件或目录。只能更改名称;文件或目录的内容不会更改。
新名称在包含旧名称的目录中不得造成任何冲突。换句话说,新名称在该目录中不能已经存在。
语法
rename to
rename to ,
<old name> and <new name> are <file id>'s
<error variable> is a <numeric variable>
<file id> is a <string expression>
参数
<旧名称>
要更改的现有标识符。
<新名称>
用于替换现有标识符的新标识符。
<错误变量>
错误变量的标识符。
示例
rename “infile” to “outfile” ! 假设当前目录。
! 如果你已msi到 "/test/costs",这两个语句是等效的:
rename “/test/costs/proposed” to “/test/costs/projected”
rename “/test/costs/proposed” to “projected”
rename “a/b/c/d” to “k/b/c/d” ! 重命名目录。“k/b/c” 必须存在并且
! 你必须有写权限。
Old$ = “Test/List” \ New$ = “Test/Results”
rename Old$ to New$ , Err_Var
一般信息
rename语句用于更改文件的名称。使用link语句可以添加新名称并保留旧名称。
report
report语句以自由字段格式将数据输出到通过report is语句指定的报告打印机。
report语句允许测试开发者将某个设备或文件指定为报告打印机,并将选定的测试故障数据发送到该打印机。所有其他与测试故障数据无直接关系的程序输出数据和消息,则可以发送到正常的默认打印机。
report语句的操作类似于print语句的操作,但有以下区别:
- report写入报告打印机,而print写入默认打印机。
- report is关闭报告打印机,以便后续的report语句被忽略,而printer is关闭当前默认打印机,但指定用户的工作站为新的默认打印机;即,后续的print语句不会被忽略。
报告打印机上显示的数据也由report level is语句决定。
语法
report
report <print list>
<print list> can be:
<item>
<item><delimiter><item>
<item><delimiter><item><delimiter> . . . <item>
<item> can be:
<numeric expression>
<string expression>
<tab statement>
[If <expression> is an array, use <array id>(*)]
<delimiter> can be:
, (comma)
; (semicolon)
参数
<打印列表>
以自由字段格式输出的数据项列表。如果数据项的分隔符是逗号,则在标准字段中输出;如果是分号,则在紧凑字段中输出。如果列表不包含任何项,则仅输出行尾(EOL),即输出一个空行。
要输出完整的数据数组,请使用<数组id>(*)。
如果<项目>是tab语句,打印位置将移动到指定列,接下来的字段从该列开始。如果指定的列位于当前打印位置的左侧,则输出行尾(EOL),接下来的字段在下一行的指定列开始。
在tab语句之后,逗号和分号用作分隔符没有区别。在这种情况下,两者都不影响格式。
示例
report is “/dev/rpr02” ! 选择工作站#2上的报告打印机
report “Failed‑‑Resistor R62 Measured”; Res(A); “ohms”
一般信息
要进行数据的图像格式化,请参阅report using语句。
在使用多板状态(board number is语句)和缓冲报告(buffered reporting on/off语句)来测试多板面板时,report语句将数据发送到当前板的报告缓冲区。
report clear
如果启用了缓冲报告,report clear语句将丢弃当前板的报告缓冲区中的内容。一旦报告缓冲区被清除,下一次失败的测试将向缓冲区发送一个新的报告头。
如果未启用缓冲报告,report clear语句之后的下一次失败测试将向报告设备(打印机或文件)发送一个新的报告头。
语法
report clear
参数
(无)
示例
如果启用了缓冲报告:
report clear ! 清除报告缓冲区。下一次失败的测试将向报告缓冲区发送一个新的报告头。
如果未启用缓冲报告:
report clear ! 此时无事发生,但下一次失败的测试将向报告设备发送一个新的报告头。
一般信息
(无)
report fault syndrome
以下是这段英文的中文翻译:
这些信息的目的是帮助您在多次运行间歇性测试时查找不一致之处。
当启用报告故障综合征时,执行find start node语句时将报告以下消息(注意,向量编号指的是用户向量而非机器向量):
测试失败在向量,<失败的测试通道>
测试失败在向量 206, 21118, 21162
活动故障综合征:
测试失败向量<活动故障综合征的向量编号>,<失败的测试通道>
活动故障综合征:
测试失败向量 161, 21137, 21118, 21162
故障字典综合征:
<failing vector number>:<Mentor Graphics格式的综合征>
故障字典综合征:
161:----X XX-XX
206:----- f-X-f
当启用报告故障综合征时,每次执行test node语句时将报告以下类型的消息:
节点通过
节点通过
节点 失败向量
节点"high1" 失败向量 9
测试通过
测试通过
测试失败向量,<失败的测试通道>
测试失败向量 3, 21606, 21607
测试失败CRC,<失败的brc>
测试失败CRC, 10968, 15387
如果您使用故障字典进行诊断,报告故障综合征开启语句会打印维修报告的主要故障综合征部分。此部分显示了用于多向量分析的初始故障综合征的向量编号和失败节点。此部分如下所示:
主要故障综合征:
测试失败向量
失败的输出节点:
<失败节点>
<失败节点>
.
.
.
主要故障综合征:
测试失败向量 18
失败的输出节点:
OUT1
OUT4
语法
report fault syndrome off
report fault syndrome on
参数
(无)
示例
report fault syndrome on
report is
以下是这段英文的中文翻译:
report is语句更改默认报告打印机,即通过report语句发送故障数据和消息的文件、设备或窗口。在登录时,默认是report is *;即报告输出被丢弃。
report is会独占地打开报告打印机;也就是说,没有其他人可以访问该报告打印机。一旦默认值建立,它将保持有效,直到被另一个report is语句更改,或用户注销。report is语句是全局的,这意味着它可以在任何环境中执行(从键盘、主程序、子程序等),并且将在所有其他环境中生效。
当执行report is时,它会在打开新打印机前关闭现有的报告打印机。如果报告打印机是不存在的文件,它会自动创建。但是,如果指定了new且文件已存在,则会发生错误。如果打开不成功,则活动窗口(屏幕)成为新的报告设备。
参数决定报告打印机的打开方式。这些参数可以省略并使用默认值;参见下面的参数部分。
语法
report is <报告列表>
report is <报告列表>;<访问>
report is *
report is <报告列表>,<错误变量>
report is <报告列表>,<错误变量>;<访问>
report is *,<错误变量>
<错误变量>是一个<数字变量>
<报告列表>可以是:
<文件id>
window
<文件id>,window
window,<文件id>
<访问>可以是:
<a/n/o>
<a/n/o>,<e/s>
<a/n/o>,<e/s>,echo
<a/n/o>,echo
<e/s>
<e/s>,echo
echo
<a/n/o>可以是:
append
new
over
<e/s>可以是:
exclusive
shared
<访问>参数不必按显示的顺序排列。可以按任意顺序进行排列;参见下面的示例。
参数
<报告列表>
包含新默认报告打印机标识符的列表。旧的打印机关闭,然后打开新的打印机。如果新打印机无法打开,<报告列表>默认为屏幕。
<报告列表>中的所有标识符共享一组<访问>参数。<报告列表>可以包含语法部分所示组合中的以下标识符。
<错误变量>
错误变量的标识符。
<访问>
决定新报告打印机的打开方式。
• <文件id>– 数据发送到指定文件。
• window– 打开一个新窗口,数据会显示在该窗口中。
• *– 星号关闭默认报告打印机并丢弃报告输出(某些情况下除外;参见下面的一般信息),后续的报告语句将被忽略。这是登录时的默认设置。
<a/n/o>
决定数据的写入方式。如果新的报告打印机是一个文件,且文件不存在,则创建文件。<a/n/o>可以是:
• append– 将新数据添加到文件、设备或窗口中任何现有数据的末尾。如果不存在从头开始写入。
• new– 创建一个新文件、设备或窗口并从头开始写入。如果新的报告打印机是已存在的文件,将发生错误。
• over– 从头开始写入并销毁任何现有数据。
如果未指定以上任何一项,<a/n/o>默认为over。
<e/s>
决定报告打印机是用于独占还是共享使用。如果未指定,默认为共享。
echo
输出同时发送到报告打印机和工作站屏幕(如果屏幕是默认打印机,则仅发送到屏幕)。如果未指定此参数,则不启用回显。
示例
report is “/scopes/test_data”;exclusive, over
T$ = “/scopes/test_data”
report is T$ ! 与上述相同,使用默认设置
report is “/dev/rpr1”, Err1; echo, append, exclusive
! 带错误变量的语句
report is window, “temp_file”, Error; echo
! 数据被发送到新窗口和文件中。
! 数据同时回显到屏幕,且语句中包含错误变量。
testhead is 2 ! 关闭现有的报告打印机并打开"/dev/rpr2"
report is * ! 关闭报告打印机(除非启用了缓冲报告)。
一般信息
在使用缓冲报告(buffered reporting on/off语句)时,report is *不会丢弃报告输出。相反,报告数据被发送到报告缓冲区。
在使用多板状态(board number is语句)和缓冲报告来测试多板面板时,report is *将报告数据发送到当前板的报告缓冲区。
report level is
report level is语句告诉BT-Basic如何处理本应定向到报告设备的故障消息。
语法
report level is <option>
<option> 可以是:
none
report
log
all
参数
<option>决定故障消息的处理方式:
- none – 丢弃故障消息。
- report – 故障消息仅发送到报告设备。这是默认设置。
- log – 故障消息变为日志数据,并附加到日志缓冲区。
- all – 故障消息发送到日志缓冲区和报告设备。
示例
report level is none ! 故障消息被丢弃。
report level is report ! 故障消息发送到报告设备。
report level is log ! 故障消息发送到日志缓冲区。
report level is all ! 故障消息发送到日志缓冲区
! 和报告设备。
report out
report out
语句将报告缓冲区的当前内容发送到设备或文件。
报告缓冲区的内容发送到默认报告设备(由report is
语句建立),除非report out
指定了另一个设备或文件。
此语句仅在启用缓冲报告时适用。
语法
report out
report out,<error variable>
report out <file id>
report out <file id>,<error variable>
report out <file id>,<error variable>;<access>
report out <file id>;<access>
<error variable> is a <numeric variable>
<file id> is a <string expression>
<access> can be:
<a/n/o>
<e/s>
<a/n/o>,<e/s>
<e/s>,<a/n/o>
<a/n/o> can be:
append
new
over
<e/s> can be:
exclusive
shared
参数
<file id>报告数据要发送到的文件或设备的标识符。文件将被打开、写入,然后关闭。如果未指定文件,报告数据将发送到当前默认报告设备。
<a/n/o>确定数据的写入方式:
- append – 向现有文件添加数据;
- over – 替换现有文件中的数据;
- new – 创建新文件;如果文件已存在,则发生错误。
如果省略,此参数默认为over。
<e/s>确定文件是为独占使用还是共享使用而打开。如果省略,默认为独占。文件应仅在一个用户写入,其他用户读取的情况下共享打开。如果多个用户写入文件,结果可能无法预测。
<error vairable>错误变量的标识符。
示例
report is "report_file"; append ! 打开默认报告设备(在此情况下为文件)
. . .
report out ! 输出添加到默认报告设备的任何现有数据中。
! 如果在板测试中之前出现了"board number is"语句以指定多板面板,
! 则输出为当前板的报告缓冲区内容。
report out "/dev/report" & th$, Err1 ! 包含错误变量
与buffered reporting on/off
语句一起使用此语句来输出数据。
report using
以下是这段英文的中文翻译:
report using语句使用图像格式将数据输出到由report is语句指定的报告打印机。除了使用图像格式化,report using与report语句相同。
要打印的数据包含在语句的<打印列表>中。用于格式化数据的规格通过语句的<图像数据>参数引用。此参数可以直接包含格式化规格,或者它可以引用包含格式的图像语句。
report using语句的操作与print using语句的操作相同。
请参阅print using语句的描述以获取详细信息。
两个操作区别在于:
- report using写入报告打印机,而print using写入默认打印机。
- report is *关闭报告打印机,以便后续的report using语句被忽略,而printer is *关闭当前默认打印机,但指定用户的工作站为新默认;即,后续的print using语句不会被忽略。
语法
report using <image data>
report using <image data>;<print list>
<image data> can be:
<image id>
<image specifications>
<image id> is a <label>
<image specifications> is a <string expression>
<print list> can be:
<expression>
<expression>,<expression>
<expression>,<expression>, . . . <expression>
<expression> can be numeric or string
[If <expression> is an array, use <array id>(*)]
参数
<image id>包含用于格式化打印列表的规格的图像语句的标识符。
<image specifications>用于格式化打印列表的规格列表。请参阅图像语句的描述以获取这些规格的完整描述。
<print list>要输出的数据项列表。这些将由<图像数据>参数引用的规格格式化。如果列表为空,则图像规格将确定输出。
要输出完整的数据数组,请使用<数组ID>(*)。
示例
report is "/dev/rpr02" ! 选择报告打印机
report using FAIL; "Failed Resistor‑‑measured", Res6 ,"ohms"
FAIL: image 25a, 2x, 6d, x, 4a ! 打印 Failed Resistor‑‑measured 1470 ohms
在使用多板状态(board number is语句)和缓冲报告(buffered reporting on/off语句)来测试多板面板时,report using语句将数据发送到当前板的报告缓冲区。
re‑save
翻译:
重新保存(re-save)语句将当前工作区中的行存储到一个现有文件中。工作区保持不变。执行此语句时,文件必须已存在;除了此要求外,重新保存与保存(save)语句相同。
如果未指定模式,则将工作区的当前模式记录在文件中。如果指定了模式,则该模式必须与工作区的当前模式相同,或者是文本模式。如果指定了文本模式,则无论工作区的当前模式如何,该模式都会记录在文件中。重新保存后,文件将具有刚记录的模式,无论其原始模式或内容如何。
请注意,用户的经验级别可能会影响某些类型文件的重新保存。例如,您需要专业级别的经验来重新保存模式为线网表(wirelist)的文件。
系统管理员须知:经验级别设置在每个用户的 .hp3070 环境文件中。
语法:
re-save
re-save <file id>
re-save <file id>,<parameters>
re-save,<parameters>
re-save <mode>
re-save <mode> <file id>
re-save <mode> <file id>,<parameters>
re-save <mode>,<parameters>
其中:
<file id>
是一个<字符串表达式>
<mode>
可以是:- 模拟(analog)
- 基本(basic)
- 配置(configuration)
- 数字(digital)
- 引脚(pins)
- 保护(safeguard)
- 短路(shorts)
- 状态(states)
- 测试顺序(testorder)
- 文本(text)
- 线网表(wirelist)
<parameters>
可以是:<first line>
<first line>,<last line>
<first line>,<last line>,<error variable>
<first line>,,<error variable>
,<last line>
,<last line>,<error variable>
,,<error variable>
其中:
<first line>
是一个 <数字常量><last line>
是一个 <数字常量><error variable>
是一个 <数字变量>
如果省略了中间参数,且包含后续参数,则语法要求使用逗号。
参数说明:
<file id>
:要保存行的文件的标识符。该文件必须存在,并且不能表示设备。如果省略该标识符,则默认为之前通过 get 或 load 读取的文件,前提是该文件仍然打开。<mode>
:要记录在文件中的模式。<first line>
:指定要保存到文件的第一行的行号的正整数。该行必须存在于工作区中。如果省略此参数,则默认为工作区中的第一行。<last line>
:指定要保存到文件的最后一行的行号的正整数。随后的工作区中的行将被忽略。如果省略此参数,则默认为工作区中的最后一行。如果指定的<last line>
超出了工作区的最后一行,则假定为已存在的最后一行。<last line>
必须等于或大于要保存的第一行的行号。<error variable>
:错误变量的标识符。
示例:
"/market/ts/my‑file" ! 将文件带入工作区
.....
re‑save ! 将工作区保存到文件中;替换当前文件内容
msi "/production/test/a3564b"
re‑save "report1", 25 ! 保存第25行到工作区结束的内容
re‑save "report2", 62,136 ! 保存第62行到第136行的内容
re‑save "report3",,, Alpha ! 保存完整工作区;指定错误变量
! - 注意“占位”的逗号
re‑save text "newfle",5,18,Err
如果在重新保存操作过程中系统关闭或宕机,则工作区的内容和文件的原始内容都将丢失。因此,定期备份文件是一个良好的习惯。
重新保存(re-save)和重新存储(re-store)语句是相同的。
re‑store
翻译:
重新存储(re-store)语句将当前工作区中的行存储到一个现有文件中。工作区保持不变。执行此语句时,文件必须已存在;除了此要求外,重新存储与存储(store)语句相同。
如果未指定模式,则将工作区的当前模式记录在文件中。如果指定了模式,则该模式必须与工作区的当前模式相同,或者是文本模式。如果指定了文本模式,则无论工作区的当前模式如何,该模式都会记录在文件中。重新存储后,文件将具有刚记录的模式,无论其原始模式或内容如何。
请注意,用户的经验级别可能会影响某些类型文件的重新保存。例如,您需要专业级别的经验来重新保存模式为线网表(wirelist)的文件。
系统管理员须知:经验级别设置在每个用户的 .hp3070 环境文件中。
语法:
re-store
re-store <file id>
re-store <file id>,<parameters>
re-store,<parameters>
re-store <mode>
re-store <mode> <file id>
re-store <mode> <file id>,<parameters>
re-store <mode>,<parameters>
其中:
<file id>
是一个<字符串表达式>
<mode>
可以是:- 模拟(analog)
- 基本(basic)
- 配置(configuration)
- 数字(digital)
- 引脚(pins)
- 保护(safeguard)
- 短路(shorts)
- 状态(states)
- 测试顺序(testorder)
- 文本(text)
- 线网表(wirelist)
<parameters>
可以是:<first line>
<first line>,<last line>
<first line>,<last line>,<error variable>
<first line>,,<error variable>
,<last line>
,<last line>, <error variable>
,,<error variable>
其中:
<first line>
是一个 <数字常量><last line>
是一个 <数字常量><error variable>
是一个 <数字变量>
如果省略了中间参数,且包含后续参数,则语法要求使用逗号。
参数说明:
<file id>
:要存储行的文件的标识符。该文件必须存在,并且不能表示设备。如果省略该标识符,则默认为之前通过 get 或 load 读取的文件,前提是该文件仍然打开。<mode>
:要记录在文件中的模式。<first line>
:指定要存储到文件的第一行的行号的正整数。该行必须存在于工作区中。如果省略此参数,则默认为工作区中的第一行。<last line>
:指定要存储到文件的最后一行的行号的正整数。随后的工作区中的行将被忽略。如果省略此参数,则默认为工作区中的最后一行。如果指定的<last line>
超出了工作区的最后一行,则假定为已存在的最后一行。<last line>
必须等于或大于要存储的第一行的行号。<error variable>
:错误变量的标识符。
示例:
get "/market/ts/my‑file" ! 将文件带入工作区
.....
re‑store ! 将工作区存储到文件中;替换当前文件内容
msi "/production/test/a3564b"
re‑store "report1", 25 ! 存储第25行到工作区结束的内容
re‑store "report2", 62,136 ! 存储从第62行到第136行的内容
re‑store "report3",,, Alpha ! 存储完整工作区;指定错误变量
! - 注意“占位”的逗号
re‑store text "newfile",5,18,Err
一般信息:
如果在重新存储操作过程中系统关闭或宕机,则工作区的内容和文件的原始内容都将丢失。因此,定期备份文件是一个良好的习惯。
重新存储(re-store)和重新保存(re-save)语句是相同的。
return
翻译:
return 语句用于退出用户定义的语句并将其最终值返回到调用环境中。语句中可以有任何数量的 return 语句,但至少必须有一个。
语法:
return <expression>
参数:
<expression>
:从语句中返回的值。必须与语句的类型相同,可以是数值型或字符串型。
示例:
! 主程序
. . .
A = fnTrig( ‑3.14159*2 )
print A
. . .
end
def fnTrig (X)
print "Results of Trig Function:"
if X < 0 then
return sin(X)
else
return cos(X)
end if
fnend
revision$
返回测试系统的软件版本信息。
rexit
翻译:
rexit 语句用于终止测量服务器。由于退出 BT-Basic 会终止 BT-Basic 与测量服务器之间的连接,因此通常不需要使用此语句。当执行 rexit 语句时,它会立即终止 Keysight VEE,而不会等待当前的用户语句(如果有的话)完成。
语法:
rexit
rexit <server name>
rexit <server name>; abort
rexit; abort
其中 <server name>
是一个 <字符串表达式>
。
参数:
<server name>
:包含测量服务器唯一名称的字符串表达式。如果未指定值,<server name>
默认为最后引用的服务器;即当前正在使用的测量服务器。
abort:该参数不为语句添加任何功能。它的目的是提醒程序员,Keysight VEE 是无条件终止的。
示例:
rexit ! 终止正在使用的测量服务器。
rexit "vee" ! 终止特定名为 "vee" 的测量服务器。
rexit; abort ! 与 "rexit" 相同。
一般信息:
如果确实需要使用 rexit 语句,通常会与用于测量服务器的其他编程语句按以下顺序出现:
用 “rinit” 初始化测量服务器。
. . . . .
使用 “rcall” 语句在测量服务器上执行子程序。
. . . . .
用 “rexit” 终止在 “rinit” 语句中指定的服务。
因此,通常不需要为 rexit 语句提供被终止的 <server name>
。
一个 <字符串表达式>
,如 <server name>
,是按值传递的。被调用的子程序在数据按值传递时不能更改 BT-Basic 环境中的数据。
rinit
翻译:
rinit 语句用于初始化测量服务器。通常在每次加载和运行测试计划时只执行一次;即,仅在 nrun = 1 时执行。
调试选项用于以调试模式启动 Keysight VEE 仪器服务器。当您随后对 Keysight VEE 语句进行 rcall 调用时,它会打开一个调试窗口,其中包含该语句以使用 Keysight VEE 的调试工具进行调试。完成调试后,关闭窗口以继续运行 BT-Basic 或模拟程序。当您指定调试模式时,请使用一个超时时间,该时间长于对任何一个语句进行调试的预期时间。若发生超时,不会影响您完成语句的调试,但会停止测试计划。(调试选项适用于 Keysight VEE 版本 3.2 及更高版本。)
语法:
rinit <server name>
rinit <server name>; <service>
rinit <server name>; <service>, <options>
其中 <server name>
是一个 <字符串表达式>
<service>
可以是:
- program
<file id>
- servicetype
<service name>
- program
<file id>
, servicetype<service name>
<file id>
和 <service name>
是 <字符串表达式>
<options>
可以是:
- hostname
<字符串表达式>
- debug
- timeout
<seconds>
- hostname
<字符串表达式>
, debug - hostname
<字符串表达式>
, timeout<seconds>
- hostname
<字符串表达式>
, debug, timeout<seconds>
<seconds>
是一个 <数字表达式>
参数:
<server name>
包含测量服务器唯一名称的字符串表达式。
<file id>
包含将由 rcall 语句执行的程序或语句的文件标识符。
<service name>
调用服务器的软件名称。对于 Keysight VEE,名称为 (vee)。如果省略 <servicetype>
参数,则默认为 vee。
host name
在网络系统中用于指定测量服务器运行的系统名称。
timeout
测量服务器调用在超时错误发生之前等待的秒数。指定 timeout 的值会影响测量服务器的初始化——即,如果初始化时间过长,rinit 语句本身可能会超时——以及出现在 rcall 语句中的任何后续调用。如果未指定值,超时时间默认为 30 秒。
如果使用调试选项,请指定一个时间比调试任何一个仪器服务器语句所需最长时间还要长的超时时间。
示例:
! 从测试计划调用 VEE。
rinit "vee";
program btgetenv$("AgilentICT_ROOT") & "/boards/myboard/workfile.vee", servicetype "vee"
! 调用 VEE,并设置在测量服务器未在 80 秒内响应时发生的超时。服务类型默认为 "vee"。
rinit "vee";
program btgetenv$("AgilentICT_ROOT") & "/boards/myboard/workfile.vee", timeout 80
! 在调试模式下调用 VEE;此处,超时时间设置为四分钟(240 秒)
rinit "vee";
program btgetenv$("AgilentICT_ROOT") & "/boards/myboard/workfile.vee", debug, timeout 240
基本信息:
只有当可以同时运行多个测量服务器时,每个 <server name>
必须是唯一的。因为电路板测试系统通常不同时使用多个测量服务器,您可以为 <server name>
使用任意选择的名称;如果愿意,所有的电路板测试甚至可以使用相同的名称。为了保持一致性,我们通常使用 vee 作为测量服务器的名称。
字符串表达式,如 <server name>
和 <file id>
,是按值传递的。当数据按值传递时,被调用的子程序无法更改 BT-Basic 环境中的数据。
rli$
翻译:
rli$ 函数返回一个字符串,该字符串等于最近一次使用 report level is 语句设置的报告级别。
注意,执行此函数不会更改报告级别设置,仅返回一个等于当前报告级别设置的字符串。
eg:
rli$ ! 返回一个包含以下内容的字符串: "none"
! "report"
! "log"
! "all"
rnd
rnd 语句生成一个小于 1 大于 0 的(伪)随机数。该语句从一个种子生成每个新值。当系统工作区被清除时,第一个种子被建立;随后的每个种子基于之前生成的随机值。
该语句是伪随机的,因为每次运行程序时生成的数字序列是可重复的。然而,程序员可以通过执行 randomize 语句来更改当前种子,从而改变序列。
eg:
print rnd ! 打印 .904836095164
print 2*rnd ! 打印 .535865461135
! 根据种子,不同的值可能会被获得
rotate
rotate 语句返回一个十进制整数值,该值对应于语句第一个参数的二进制表示的循环移位结果。旋转的数量和方向由语句的第二个参数决定。
假设值是以二进制补码表示的,可以进行 16 位或 32 位操作。默认操作为 16 位,使用 option bit 语句可以更改为 32 位操作。
可以处理以下范围内的值:
16 位操作:-2^15 <= 值 <= 2^15 - 1(2^15 = 32768)
32 位操作:-2^31 <= 值 <= 2^31 - 1(2^31 = 2147483648)
语法:
rotate ( <value> , <rotate> )
其中 <value>
和 <rotate>
是 <数字表达式>
参数:
<value>
要进行二进制表示旋转的十进制整数值。
<rotate>
指定旋转的方向和要旋转的位数。
方向:
- 正值 = 向右旋转
- 负值 = 向左旋转
数量:
- a.) 绝对值四舍五入为最接近的整数;
- b.) 整数除以 16(或 32);余数为旋转的数量:
-(16 位)rotate = |integer| mod 16
-(32 位)rotate = |integer| mod 32
eg:
print rotate(‑1,10) ! 打印 ‑1
print rotate(‑1,1) ! 打印 ‑1
print rotate(‑1,‑3) ! 打印 ‑1
print rotate (3400,0) ! 打印 3400
print rotate ( bti("111"),‑2) ! 打印 28
print rotate ( bti("111"),‑18) ! 打印 28
rpmc
rpmc 语句读取电源监控电路(PMC)通道上的故障标志,并将值返回到指定的变量中。此语句最好在测试语句之间使用,以检查故障,如下面的示例所示。
语法:
rpmc <channel>, <flag>
其中 <channel>
是一个 <整数>
<flag>
是一个 <变量名>
参数:
<channel>
通道号,从1到12。(参见 spmc 描述中的表 S-4。)
<flag>
用于存储故障标志值的变量:
- 1 – 表示电源故障
- 0 – 无故障
示例:
test "digital/u1"
rpmc 2, V_Flag ! 读取 PMC 通道 2 的故障标志并存储在变量 V_Flag 中
test "digital/u2"
rps
rps 语句返回所选被测设备(DUT)电源的当前电流和电压值。在执行 rps 之前,必须已经执行了 powered 和 cps 语句。
语法:
rps <ps_number>, <voltage>, <current>
rps <ps_number>, <voltage>, <current>, <error variable>
其中:
<ps_number>
是一个从 1 到 32 的整数<voltage>
是一个<数值变量>
<current>
是一个<数值变量>
<error variable>
是一个<数值变量>
参数:
<ps_number>
用于识别要读取的电源的整数(1 到 32)。
<voltage>
DUT 电源输出电压的值(V)。
<current>
DUT 电源输出电流的值(A)。
<error variable>
错误变量。
示例:
faon
powered
cps
sps 1,5,500m
sps 2,12,800m
rps 1,V_1,C_1 ! V_1 = 5 C_1 = 350m
rps 2,V_2,C_2 ! V_2 = 12 C_2 = 550m
run
翻译:
run 语句用于初始化并运行当前在系统工作区内的 BT-Basic 程序。当程序被初始化时,先前为变量保留的任何工作区都会被释放供一般使用。然后程序从头开始运行。
eg:
run ! 初始化并运行当前在系统工作区内的程序
load "test2" ! 清除工作区,从文件 "test2" 加载程序
run ! 初始化并运行该程序
基本信息:
如果连续运行程序,随后运行的速度会比第一次运行更快。在第一次运行时,系统会收集有关程序的信息——如标签的位置,子程序的位置等等。由于系统知道获取信息的位置,随后的程序运行速度更快,不需要像第一次运行那样搜索。
每次通过 load 或 get 语句将程序引入工作区,或每次编辑工作区中的程序时,都会进行一次新的首次运行。
学习过程无法由用户控制。该过程是完全自动的,对用户来说是不可见的,唯一区别的外在表现是随后的运行速度比第一次运行更快。可以使用 nrun 语句来确定程序自最后一次加载或编辑后是否已运行。
run 语句不可编程。