BT-Basic函数之首字母T
文章目录
- BT-Basic函数之首字母T
- tab
- test
- test cont
- test monitor
- test on boards
- test scanworks
- test shorts
- testhead cleanup
- testhead configuration
- testhead is
- testhead power on/off
- testhead status
- testjet print level is
- testorder
- testplan generation
- th$
- time$
- timeout
- tolerance margin
- topology device count
- topology device data$
- topology device pin count
- topology device pin data$
- topology get device pins
- topology get devices
- topology get internal devices
- topology get node connections
- topology get nodes
- topology get parent devices
- topology internal device count
- topology node connection count
- topology node count
- topology node data$
- topology parent device count
- translate faults
- trigger
- triml$
- trimr$
tab
tab
语句可以通过 print
、output
和 report
语句调用,这些语句都使用自由格式输出数据。tab
语句可以包含在这些语句要输出的数据项列表中。该语句使下一个数据项的字段从语句参数指定的列开始,而不是紧接在前一个字段之后。
如果语句指定的列在当前打印位置的左侧,则下一个字段从指定列开始,但在新行上——即,发生换行。当前打印位置为前一个字段右侧的下一列。如果尚未输出任何数据,或如果输出了 EOL(行结束),则当前位置在当前行的第一列。如果指定的列号大于 80,则会发生一个或多个换行。
语法
tab (<column>)
是一个 <数值表达式>
参数
下一个字段的第一个字符所在的列。列从左到右编号为 1 到 80。为了确定列号,该数值表达式的值将四舍五入为整数,然后取模 80,即取整数值除以 80 后的余数。
为了确定换行次数,将表达式的值除以 80,并取结果的整数部分。
表达式的值必须为正。
示例
print " NAME", tab(25), "ID", tab(3), "===="; tab(25), "=="! 打印输出 NAME ID
! ==== ==
! ‑‑‑‑‑‑‑1 到 24‑‑‑‑‑‑‑>‑‑‑25 到 44‑‑‑‑print "Line 1:", tab(165), "Line 3:"!! 打印输出 Line 1:! Line 3:tab (18) ! 这三个 tab 语句均指定为第 18 列;
tab (177.7) ! 第二个和第三个语句还会导致两个换行
tab (178.2)
test
翻译:
test
语句执行包含在引用的源文件中的测试。该语句根据文件中的数据类型确定测试的类型。可执行的测试类型包括:
- 引脚(CHEK-POINT):请参阅生产释放。
- 短路:请参阅模拟测试中的短路和开路测试。
- 模拟在线电路:请参阅模拟测试中的模拟在线电路测试。
- 模拟功能:请参阅模拟测试中的模拟功能和混合测试。
- 数字(在线电路和功能):请参阅数字测试中的数字理论和测试。
- 混合(模拟和数字):请参阅模拟测试中的模拟功能和混合测试。
- TestJet:请参阅 TestJet 和 VTEP v2.0 驱动!
- VTEP(无矢量测试 EP):请参阅 TestJet 和 VTEP v2.0 驱动!
执行时,测试将清除内存中的任何现有测试,并将新测试的目标代码(.o 文件)加载到内存中。然后执行测试。如果测试在执行时开启了学习模式,将仅学习测试数据,测试既不会通过也不会失败。测试完成后,测试保持在内存中,并将控制权返回给 BT-Basic。
执行测试时,必须将适当的板数据加载到内存中(请参阅 load board
语句)。
test
语句可以选择性地将参数传递给执行的测试(这些参数即语法中的 <test parameters>
)。参数由数值变量列表组成——简单变量和数组可以包含在列表中。传入的参数从左到右依次分配给形式参数,按被执行测试中列出的形式参数顺序排列。传递给测试的变量数量必须正确,并且每个传递的变量必须与分配给它的形式变量类型相同(简单变量、数组变量等)。
对于单一(非混合)测试,模拟和数字测试类型关键字是可选的。您可以使用这些关键字为测试文档化。然而,软件会忽略它们(即错误的关键字不会引发错误)。
当参数被传递给混合测试时,软件同样会忽略可选的数字和模拟关键字以及分隔参数组的分号。然而,我们强烈建议您使用它们,特别是对于混合测试,以便为调试目的提供测试文档。
当执行混合测试时,test
语句会尝试按照列出的顺序将参数分配给混合测试的每个部分。由于它忽略了分号和测试类型关键字,test
语句首先查看测试的数字部分,然后查看测试的模拟部分——始终按照这个顺序。如果混合测试中未包括两部分之一,或者不需要传递参数,test
语句会转到测试的下一部分。
不论您是否在 <test parameters>
中使用测试类型关键字,都必须将正确数量的参数传递给混合测试。每个传递的参数必须与分配给它的形式参数类型相同。
记住,测试类型关键字的目的是让您能够正确记录您的测试。如果您在 <test parameters>
中错误地定位了任何它们,仍不会发生错误。
不要在被测板上有任何电压源(例如电池)的情况下执行引脚、短路、TestJet、VTEP 或模拟在线电路测试——系统将短路而可能损坏被测电路板和测试系统。
语法
test <test identifier> test <test identifier>; <test parameters>test shortstest shorts <test identifier>
可以是:
和 是字符串表达式。
可以是:
- digital
- analog
- digital ; analog
- digital
- analog
可以是:
- ,
- ,, …
是一个 <数值变量>
参数
要执行的测试的标识符。除了混合测试之外,这总是包含测试源代码的文件的 ID。对于混合测试,需要该测试的 ;然后执行该目录中的 test.o 文件中的目标代码。
该标识符通常由从板测试目录的文件(或目录)路径组成(参见下面的示例)。
传递给要执行的测试的一个或多个变量。
示例
test "<test identifier>"test "pins"test "shorts"test "alt_shorts"test shorts ! 使用板目录下的 "shorts.o" 文件test shorts "alt_shorts"test "analog/C128"! 下一行语句等价于:test "analog/R7"; Flag, Measured_valuetest "analog/R7"; analog Flag, Measured_valuetest "testjet"test "vtep"test "digital/u19"test "u64"; A, C(*)test "functional/rom_24/test"test "mixed/adc1" ! 使用目录 idtest "mixed/adc1"; V1, V2! 下一行语句等价于:test "mixed/A_to_D"; A, B(*), C, D, X1, X2, X3test "mixed/A_to_D"; digital A, B(*); analog C, D
test cont
test cont
语句可用于测试计划中,以在测试被 halt
或 pause
语句停止后继续进行模拟或数字测试。测试将从其停止的点继续。
对于由于停止的数字测试,如果正在实施保护措施(参见 safeguard <type>
语句),继续测试前将执行正常的冷却延迟。
如果测试因错误或测试超时而停止,则无法继续。已经完成的测试以及尚未开始的测试不能继续。
test monitor
此功能仅在 BT-Basic 窗口中有效。
测试监视模式限制用户仅执行少量面向测试的操作。它无法访问测试开发人员使用的全功能范围。
当测试监视生效且程序未运行时,以下按键是激活的:
软键 — 软键定义更改为:
- f1(start)— 开始执行测试计划。
- f8(exit)— 退出 BT-Basic 并返回到 Login: 提示符。
操作员小键盘(如果存在)— 所有键。
当测试监视生效且程序正在运行时,程序按正常方式运行。它还允许通过工作站键盘的 enter
、input
和 question
语句进行正常的数据输入。然而,Break 键的功能略有变化为:
Break(在键盘上)— 如果按下,则停止程序。一旦程序停止,您有两个选择:
- 按软键 f1(start)开始执行程序。
- 按软键 f8(exit)退出 BT-Basic。
测试监视模式可以通过 program monitor
语句取消,这将恢复正常操作并将软键定义恢复为正常。
test on boards
test on boards
语句对所有在指定板状态数组中状态为非零的电路板执行指定测试。
板状态数组是由测试计划创建的一维数值数组。面板上的每种板类型都有一个板状态数组。
语法
test <test id> on boards <array id>
<test id>
是一个 <字符串表达式><array id>
是一个 <标签>
参数
一个标识要执行的测试的字符串表达式。这是测试的未扩展名称。
标识数组的标签。
示例
dim BoardSet_Boards_1_to_5 (1:5)
dim BoardSet_Boards_6_to_9 (6:9)! 设置板集 1 到 5 位。1 到 5 为 "1"
! 设置板集 6 到 9 位。6 到 9 为 "1"test "u10" on boards BoardSet_Boards_1_to_5(*) ! 对1到5号板测试 U10。
test "u10" on boards BoardSet_Boards_6_to_9(*) ! 对6到9号板测试 U10。
test scanworks
test scanworks
语句与 test (BT-Basic)
语句相同,只是用 <report limit>
列表替换了 <test parameters>
列表。
test scanworks <test identifier> on boards <array id>
语句对所有在指定板状态数组中状态为非零的电路板执行指定测试。
板状态数组是由测试计划创建的一维数值数组。面板上的每种板类型都有一个板状态数组。
语法
test scanworks <test identifier>
test scanworks <test identifier>; reportlimit <report limit>
test scanworks <test identifier> on boards <array id>
test scanworks <test identifier> on boards <array id>; reportlimit <report limit>
参数
标识要执行的测试的字符串表达式。这是测试的扩展名称。
标识数组的字符串。
一个数值表达式,用于限制在测试失败的报告中显示的项目数目。
示例
dim BoardSet_Boards_1_to_5 (1:5)
dim BoardSet_Boards_6_to_9 (6:9)
! 设置板集 1 到 5 位。1 到 5 为 "1"
! 设置板集 6 到 9 位。6 到 9 为 "1"test scanworks "project.design.SVF1" on boards BoardSet_Boards_6_to_9(*)
test scanworks "project.design.ScanPath Verify1"
test scanworks "project.design.Interconnect1"; reportlimit 5
此语句只能用于 ScanWorks 软件选项。
test shorts
test shorts 语句是 test (BT-Basic) 语句的一种变体.
testhead cleanup
testhead cleanup
语句向测试头发出重置命令,以打开所有数字和模拟继电器。此命令应该在调用任何 ScanWorks 命令之前执行。如果在没有连接测试头或测试头不在加载模式下执行此命令,则不会执行任何操作。
语法
testhead cleanuptesthead cleanup, <error variables>
eg:
testhead cleanup
testhead cleanup, Err ! 错误返回到名为 Err 的变量
testhead configuration
testhead configuration
语句打印机台的硬件和真空孔的映射列表到打印设备。
eg:
! 列出测试头的硬件配置printer is "/dev/rp1" ! 定义打印设备。
testhead configuration ! 打印机台配置。
testhead is
testhead is 1
语句允许您从系统中的任何工作站访问和控制测试站硬件。
testhead is *
语句释放对测试头的控制。
当执行 testhead is 1
时,如果当前有已打开的测试头,则将其关闭。引用的测试头将被独占性地打开;如果它已打开,则会出现运行时错误。该语句是全局性的,因此可以从终端、主程序或子程序中执行,并且对所有环境生效。此外,该语句将持续生效,直到执行另一个 testhead is
语句或您退出系统(exit
语句)。
testhead is 1
语句执行以下操作:
- 如果测试头上当前锁定了夹具,则检查夹具启动是否有效。
- 读取板配置文件(config)并验证需要测试电路板的硬件是否列出。
- 将 DUT 电源设为 0 伏。
- 关闭真空并重置真空井默认值。
- 打开辅助继电器。
- 启用操作员脚踏开关并显示操作员小键盘。
- 设置系统变量和语句,包括:
- safeguard all
- 将 boardfailed 和 dutfailed 设为 false (0)
- 关闭 save failures
- 确认所有失败
- 关闭 learn
- 开启 autoadjust
- 对于不包括板处理器的 Mux 系统,开启 autoadjust
- 对于包括板处理器的 Mux 系统,关闭 autoadjust
- 如果存在但未启动的板处理器(仅限 Mux 系统),发出 handler recover 语句。
- 建立到 ScanWorks 软件和相关硬件的连接。
- 打开对象检查;请参阅对象检查语句的语法描述。
语法
testhead is <number>
testhead is <number>, <error variable>
testhead is *
testhead is *, <error variable>
<number>
是一个 <数值表达式><error variable>
是一个 <数字变量>
参数
<number>
所选测试头的编号。这是一个正整数,唯一合法的值是 1。
*释放对测试头的控制。
示例
testhead is 1 ! 访问测试头 1 ("/dev/th1")
testhead is * ! 释放测试头 1
当 testhead power on
语句打开测试头的电源时,它也会执行一个 testhead is 1
语句。
testhead power on/off
testhead power
语句用于打开或关闭测试头的电源。请注意,测试头电源关闭后,夹具锁仍将保持激活状态。要在测试头电源关闭的情况下释放夹具,请按下红色紧急停止开关。
testhead power on
语句还会执行一个 testhead is 1
语句。
语法
testhead power ontesthead power off
testhead status
翻译:
testhead status
语句返回最多七个测试头状态参数的值。这些值将返回到在 testhead status
关键字后列出的变量中。可以返回的参数包括有关自调节状态、测试头上次启动后的时间、模块温度、用于存储测试对象的可用内存、以及夹具是否锁定等信息。
<variable list>
可以包含一到七个变量。变量在 <variable list>
中的位置决定了哪个参数值返回给该变量。
要指示 testhead status
语句跳过任何参数,必须在 <variable list>
中适当的位置包含逗号(,)。参见示例部分。
语法
testhead status <variable list>
variable list
可以是:
<variable 1>
<variable 1>, <variable 2>
<variable 1>, <variable 2>, ... <variable 7>
<variables 1 through 7>
是数字变量。
参数
<variable 1>
通过返回一个非零值来指定是否需要运行自调节。返回值是一个三位的二进制值。各位表示:
- 最低有效位(LSB) - 如果至少一个模块的温度与校准温度的差值大于五摄氏度,则为1。
- 中心位(CENTER) - 如果CPU时间累积超过1000小时,则为1。
- 最高有效位(MSB) - 如果自测试头上次启动以来自调节失败,则为1。
<variable 2>
指示自上次成功自调节以来的时间(以秒为单位)。
<variable 3>
指示自测试头上次启动以来的时间(以秒为单位)。
<variable 4>
检查配置文件中列出的每个模块的校准温度与实际温度之间的差异。返回摄氏温度差异中最大的值。
<variable 5>
指示温度最高的模块的温度(以摄氏度为单位)。
<variable 6>
指定可用于存储测试对象的可用内存字节数,位于内存最少的模块中。
<variable 7>
如果测试夹具未锁定,则为0。若测试夹具锁定,则为非零。
示例
! 该语句列出了所有七个参数的变量。testhead status Ad, At, Bt, Td, Tm, By, Lk! 该语句列出了第一和第二个参数的变量。testhead status Ad, At! 该语句列出了第二和第四个参数的变量。testhead status , At, , Td
一般信息
testhead status
语句必须在 testhead is 1
语句之后执行。
testjet print level is
翻译:
testjet print level is
语句指示系统将 TestJet 测量结果的报告发送到当前 printer is
设备。报告包括:
- 设备标识
- 引脚号
- 测量值
- 通过/失败状态
- 上限和下限
如果没有执行 testjet print level is
语句,则不会生成任何 TestJet 测量信息。
语法
testjet print level is <status>
<status>
可以是:
- all
- none
参数
指定要发送到 printer is
设备的信息。
- all – 所有 TestJet 测量的结果。
- none – 无信息。
示例
testjet print level is all ! 打开报告testjet print level is none ! 关闭报告sub TestJet ! 使用 TestJet 子程序生成报告printer is "measurements" ! 存入名为 "measurements" 的文件中testjet print level is alltest "testjet"testjet print level is noneprinter is *subend
testorder
测试顺序(testorder)语句会清除当前工作区中的所有内容,并将工作站设置为测试顺序模式。在此模式下,所有输入屏幕工作区的语句都会进行语法检查,以确保它们是有效的测试顺序语句。
从任何其他模式将现有的测试顺序文件加载到工作区会自动将模式设置为测试顺序。
语法
testordertestorder; <选项><选项>可以是: windownowindow
参数
<选项>
可以是 window 或 nowindow。
-
window 会在测试顺序模式下打开一个新窗口。
-
nowindow 阻止打开新窗口(如果您的测试系统配置为在指定模式更改时自动打开新窗口)。
示例
text ! 设置为"text"模式;所有语法检查都关闭。testorder ! 设置为"testorder"模式。testorder;window ! 打开一个新窗口并设置为"testorder"模式。
常规信息
测试顺序语句不可编程。
testplan generation
测试计划生成语句调用测试计划生成器,该生成器会编写您的测试计划。测试计划生成器使用测试顺序(testorder)文件,并将一个测试主文件(testmain)合并到测试计划中。
如果您希望使用自定义的测试主文件,请将其复制到您的 ipg 目录下的 ipg/testmain。测试计划生成器会首先在您的 ipg 目录中搜索测试主文件,如果找不到,则会使用来自 $AgilentICT_ROOT/standard 的标准测试主文件。
语法
testplan generationtestplan generation <option list 1>testplan generation; <option list 2>testplan generation <option list 1>; <option list 2><option list 1> can be: <directory name><directory name>, <error variable><error variable><directory name> is a <string expression><error variable> is a <numeric variable><option list 2> can be: <item><item>, <item><item>, <item>, . . . , <item><item> can be: <window><wait><experience level><backup level><window> can be: windownowindow<wait> can be: waitnowaitfailwait<experience level> can be: standardadvancedexpert<backup level> can be: numberedunnumberednobackup
参数
<选项列表 1>
可以是目录路径名、错误变量或两者兼备。
<选项列表 2>
一个可选参数列表,用于确定语句的工作方式。选项描述如下。
<窗口>
指定执行语句时是否自动打开新窗口。可接受的值为:
window
– 打开一个新窗口。nowindow
– 阻止打开新窗口。
<等待>
指定命令的执行方式。可接受的值为:
failwait
– 语句执行后,如果发生故障,结果仍保留在屏幕上以供检查。nowait
– 语句执行后不暂停,以供检查结果。wait
– 语句执行后,结果保留在屏幕上以供检查。
<经验级别>
设置用户收到的错误消息的长度(详细程度),也可用于限制用户使用系统功能的子集。可接受的值:standard
、advanced
和 expert
。
<备份级别>
决定系统在修改文件前是否存储未更改文件的副本(备份),以及备份的存储方式。可接受的值为:
nobackup
– 不进行文件备份。numbered
– 创建最多九个备份,每个备份按顺序编号并以.#~
结尾,例如file.1~
。编号一为最新备份。当备份超过九个时,最旧的文件被丢弃,其余文件重新编号。unnumbered
– 创建单一备份。备份文件名附加一个波浪号(~),例如file~
。
示例
testplan generation "/boards/cpu_board",E ! "/boards/cpu_board" 是电路板目录。! E 是错误变量。testplan generation; unnumbered! 在当前目录上运行测试计划生成器,并! 对任何被修改的文件进行单一备份。
th$
th$
函数用于确定测试头当前是否可以用于测试。如果测试头当前可用,该函数返回值为1;如果测试头不可用,则返回值为/。
time$
返回一个包含当前日期和时间的26个字符的字符串。
print time$
print len(time$)
运行结果
Thu Jan 16, 2025 8:56 am
26
timeout
timeout
语句用于为指定设备设置超时时间(该设备必须通过assign to
语句与@<name>
关联)。请注意,这不会影响数字测试的超时时间。
此语句的作用是设置从系统控制器接收到指令后,外设设备响应的最长时间限制。例如,考虑以下情况:
-
系统控制器指示ASRU卡进行测量并通过
measure
语句返回结果。 -
由于在关联的检测器语句中包含了一个可选的等待参数,测量时间长于当前为ASRU卡的GPIB总线指定的超时值。
在上述情况下,会发生GPIB超时错误。可以通过将超时增加到一个足够大的值来允许测量完成,从而解决此问题。
一旦为设备或总线设置了超时值,该超时将继续有效,直到为该总线或设备执行另一个timeout
语句为止。超时与注销无关。
语法
timeout @<name>,<seconds>
<name>
是一个标签<seconds>
是一个数值表达式
参数
@<name>
使用assign to
语句与设备文件标识符关联的标签。@<name>
可以与/dev
目录中的任何设备关联。
当为GPIB总线或GPIB设备设置超时时,该超时对该总线及该总线上所有设备有效。
<seconds>
超时的秒数,范围必须在0.01秒到2000秒之间。
示例
快捷方法:
assign @Auto to "/dev/hpib1"timeout @Auto, 1 ! 设置1秒超时Time = 150m | timeout @Auto, Time
绝对路径方法:
Bus$ = btgetenv$("AgilentICT_ROOT")assign @Auto to Bus$&"/dev/hpib1"timeout @Auto, 1 ! 设置1秒超时Time = 150m | timeout @Auto, Time
常规信息
当设备或总线被安装到/dev
目录时,默认超时会自动设置。表T-1列出了受timeout
语句影响的/dev
目录中所有设备和总线的默认超时值。
表T-1
默认超时
设备类型
默认超时值
-
测试头
4秒
-
所有其他类型
5秒
这些示例假定设备文件hpib1
包含SICL接口名称hpib7
。
tolerance margin
使用容差边界
语句可以更改模拟电路内测试的测试限值。此语句通过指定的测试限值窗口百分比来增加或减少测试限值。限值的更改是基于原始测试限值窗口的算术平均值进行的。
修改后的测试限值会一直有效,直到执行run
语句、用户注销系统,或者执行另一个容差边界
语句为止。后续容差边界
语句的新测试限值是由原始测试限值计算得出。
语法
tolerance margin <值>
<值>
是一个数值常量
参数
<值>
一个数值常量,指定容差的调整幅度。有效的容差边界范围是-100%到300%。如果未指定值,则使用默认值0,测试限值不变。
示例
图示示例:
下图展示了将容差边界设置为-50%、100%和0%的图形效果。
低限 平均值 高限原始测试限值 |______________|______________|容差边界 -50 |_______|_______|容差边界 100 |____________________________|____________________________|容差边界 0 |______________|______________|
公式:
要计算指定容差边界的新测试限值,请使用以下公式。
LOW = NOMINAL LOW_VALUEHIGH = NOMINAL HIGH_VALUESCALE = (TOLERANCE_MARGIN / 100) + 1NEW_LOW = MEAN - abs (LOW - MEAN) * SCALE注意:abs 为绝对值NEW_HIGH = MEAN + abs (HIGH - MEAN) * SCALE
表T-2展示了使用上述公式,根据第一列所示的指定容差边界计算新的低限和高限的结果。
表T-2
容差边界 | 低限 | 高限 | 平均值 | 缩放比例 | 新低限 | 新高限 |
---|---|---|---|---|---|---|
以下基于以百分比表示的测试限值。 | ||||||
-50 | -10 % | 20 % | 5 % | 0.5 | -2.5 % | 12.5 % |
100 | 10 % | 20 % | 15 % | 2.0 | 5 % | 25 % |
100 | -20 % | 0 % | -10 % | 2.0 | -30 % | 10 % |
以下基于以数值表示的测试限值(此处为电阻值)。 | ||||||
-50 | 4k | 8k | 6k | 0.5 | 5k | 7k |
100 | 4k | 8k | 6k | 2.0 | 2k | 10k |
100 | 40k | 48k | 44k | 2.0 | 36k | 52k |
测试计划示例
如果您想将R34的名义容差从±10%改为±15%,那么容差边界增加50%,并在测试计划片段中将容差边界设置为50。
测试计划示例:
Testplan:tolerance margin 50test "analog/R34"Test Block:clear connect s to "R34-1"; a to "R34-1"; i to "R34-2"; b to "R34-2"resistor 2k, 10, 10, sa, sb, en, ed
请注意,执行容差边界语句实际上并不会更改编程的容差,而是更改后续所有电路内测试的测试限值。
topology device count
拓扑设备计数函数返回电路板文件中的设备数量。您可以获取所有设备的数量或某一特定类型设备的数量。
语法
topology device count (<类型>)
<类型>
是一个数值表达式
参数
<类型>
一个表示设备类型的数值表达式。<类型>的可取值包括:
• 0 – All devices
• 1 – Undefined devices
• 2 – Capacitors
• 3 – Connectors
• 4 – Diodes
• 5 – FETs
• 6 – Functional devices
• 7 – Fuses
• 8 – Inductors
• 9 – Jumpers
• 10 – Library devices
• 11 – Potentiometers
• 12 – Resistors
• 13 – Switches
• 14 – Transistors
• 15 – Zeners
示例
Devs = topology device count (0) ! 将 "Devs" 设置为所有设备的总数。print topology device count (2) ! 打印电容器的数量。
常规信息
要使用任何拓扑访问函数,必须先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,请执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology device data$
拓扑设备数据$函数返回有关指定设备的信息项。这些信息来自电路板文件,并以字符串表达式的形式返回。
通过项目编号请求信息。项目编号包括:
- 设备是否需要测试?返回值可能是:未定义、否或是。
- 设备条目是否经过交叉检查?返回值可能是:未定义、否或是。
- 设备是否可替代?返回值可能是:未定义、否或是。
- 设备的部件编号是什么?
- 来自电路板功能文件的故障信息是什么?如果没有故障信息,返回字符串为空。
- 指定设备的测试路径。
- 设备类型是什么?返回值可能是:未定义、电感器、电容器、跳线、连接器、库设备、二极管、电位器、FET、电阻器、功能设备、开关、保险丝、晶体管、齐纳二极管。
21到59的其他项目描述设备的特定技术规格和测试条件。
语法
topology device data$ (<设备标识符>, <项目>)
<设备标识符>
是一个字符串表达式,表示设备的名称。<项目>
是一个数值表达式,表示要返回的信息项,项目编号在上方描述。
示例
topology device data$ ("U100", 57) ! U100的上游禁用是否打开?Tested$ = topology device data$ ("R1", 1) ! R1是否经过测试?Value = val(topology device data$ ("C2", 21)) ! C2的值是多少?topology device data$ ("U12", 4) ! U12的部件编号是什么?
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动将当前内存中的任何文件清除。
topology device pin count
拓扑设备引脚计数函数返回指定设备的引脚数量。
语法
topology device pin count (<设备名称>)
<设备名称>
是一个字符串表达式
参数
<设备名称>
例如U100这样的设备参考标识符。
示例
print topology device pin count ("U100")! 打印U100上的引脚数量。
常规信息
要使用任何拓扑访问函数,必须先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,请执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology device pin data$
拓扑设备引脚数据$函数返回有关指定设备引脚的信息项。这些信息以字符串表达式的形式返回。
您可以获取:
- 引脚用途
- 引脚是否是关键引脚
- 引脚连接的节点名称
- 引脚的系列名称
语法
topology device pin data$ (<设备名称>, <引脚名称>, <项目>)
<设备名称>
是一个字符串表达式<引脚名称>
是一个字符串表达式<项目>
是一个数值表达式
参数
<设备名称>
设备的参考标识符,例如U100。
<引脚名称>
设备引脚的编号。
<项目>
表示要返回的信息项的编号(1到4)。项目包括:
- 1 – 引脚用途。可能值为:未定义、未连接、输入、输出、双向、电源、非数字
- 2 – 引脚是否为关键引脚。可能值为:未定义、是、否
- 3 – 引脚连接的节点名称。
- 4 – 引脚的系列。
示例
! 告诉你U100的引脚10是关键引脚、非关键引脚还是未定义。Tested$ = topology device pin data$ ("U100", "10", 2)
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,请执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get device pins
拓扑获取设备引脚函数用于将指定设备上的引脚名称填充到一个数组中。您也可以获取每个引脚上的节点名称。
语法
topology get device pins <device id>, <pins array>topology get device pins <device id>, <pins array>, <err var>topology get device pins <device id>, <pins array>, <nodes array>topology get device pins <device id>, <pins array>, <nodes array>, <err var><device id> is a <string expression><pins array> is a <string array><nodes array> is a <string array>
<设备ID>
是一个字符串表达式<引脚数组>
是一个字符串数组<节点数组>
是一个字符串数组
参数
<设备ID>
设备的参考标识符,例如U100。
<引脚数组>
用于放置设备引脚名称的数组名称。
<节点数组>
用于放置节点名称的数组名称。
示例
dim Pins$(1:100)[8] ! 定义一个数组。
topology get device pins "U100", Pins$(*) ! 将U100的引脚名称放入Pins$数组。
dim Pins$(1:100)[8] ! 定义一个数组。
dim Nodes$(1:100)[48] ! 定义一个数组。
topology get device pins "U100", Pins$(*), Nodes$(*) ! 将U100的引脚名称放入Pins$数组并将相应的节点名称放入Nodes$数组。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,请执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get devices
标题:从电路板文件中获取设备名称
拓扑get devices
函数用电路板文件中的设备名称填充一个字符串数组。您可以获取所有设备的名称,或者特定类型设备的名称。
语法
topology get devices <类型>, <数组ID>topology get devices <类型>, <数组ID>, <错误变量>
<类型>
是一个数值表达式<数组ID>
是一个字符串数组
参数
<类型>
表示设备类型的数值表达式。<类型>的可取值包括:
• 0 – All devices
• 1 – Undefined devices
• 2 – Capacitors
• 3 – Connectors
• 4 – Diodes
• 5 – FETs
• 6 – Functional devices
• 7 – Fuses
• 8 – Inductors
• 9 – Jumpers
• 10 – Library devices
• 11 – Potentiometers
• 12 – Resistors
• 13 – Switches
• 14 – Transistors
• 15 – Zeners
<数组ID>
数组的名称。
示例
dim Devices$(1:100)[48] ! 定义一个数组。
topology get devices 0, Devices$(*) ! 将所有设备的名称放入Devices数组。
dim Devices$(1:100)[48] ! 定义一个数组。
topology get devices 2, Devices$(*) ! 将所有电容器的名称放入Devices数组。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。要将电路板对象文件board.o
加载到内存中,请执行load board
语句。要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get internal devices
拓扑get internal devices
语句用于将电路板文件中的内部设备名称填充到一个字符串数组中。
语法
topology get internal devices <device id>, <array id>topology get internal devices <device id>, <array id>, <error variable>`<device ID>`设备的参考标识符,例如U100。
`<array ID>`数组的名称。
示例
dim Devices$(1:100)[48] ! 定义一个数组。
topology get internal devices "U100", Devices$(*) ! 将U100的所有内部设备名称放入数组中。
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get node connections
拓扑get node connections
语句用于将所有连接到指定节点的设备名称填充到一个字符串数组中,并将连接到指定节点的设备引脚名称填充到另一个数组中。
您必须首先定义两个数组:一个用于存储设备名称,一个用于存储引脚名称。设备名称数组的长度至少为48个字符,引脚名称数组的长度至少为8个字符。
两个数组中的信息是并行的。设备数组的第一个元素与引脚数组的第一个元素配对。每个连接到指定节点的引脚,设备都会在设备数组中列出一次。
语法
topology get node connections <节点ID>, <设备数组>, <引脚数组>topology get node connections <节点ID>, <设备数组>, <引脚数组>, <错误变量>
<节点ID>
是一个字符串表达式<设备数组>
是一个字符串数组<引脚数组>
是一个字符串数组
参数
<节点ID>
节点的名称。
<设备数组>
用于放置设备名称的数组名称。
<引脚数组>
用于放置引脚名称的数组名称。
示例
! 将连接到节点"U100-1"的设备名称放入名为Devices$的数组中,! 并将设备引脚名称放入另一个名为Pins$的数组中。dim Devices$(1:100)[48] ! 为设备名称定义一个数组。dim Pins$(1:100)[8] ! 为引脚名称定义一个数组。topology get node connections "U100-1", Devices$(*), Pins$(*)
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get nodes
拓扑get nodes
语句用于将所有节点的名称填充到一个数组中。
语法
topology get nodes <数组>
topology get nodes <数组>, <错误变量>
<数组>
是一个字符串数组
参数
<数组>
用于存放节点名称的数组。
示例
dim Nodes$(1:100)[48] ! 定义一个数组。topology get nodes Nodes$(*) ! 将所有节点的名称放入Nodes$数组中。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology get parent devices
拓扑get parent devices
语句用于将电路板文件中父设备的名称填充到一个字符串数组中。
语法
topology get parent devices <设备ID>, <数组ID>topology get parent devices <设备ID>, <数组ID>, <错误变量>
<设备ID>
是一个字符串表达式<数组ID>
是一个字符串数组
参数
<设备ID>
设备的参考标识符,例如r1。
<数组ID>
数组的名称。
示例
dim Devices$(1:100)[48] ! 定义一个数组。topology get parent devices "r1", Devices$(*)! 将r1的所有父设备名称放入数组中。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology internal device count
拓扑internal device count
语句返回电路板文件中的内部设备数量。
语法
topology internal device count
示例
print topology internal device count ! 打印内部设备的数量。
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology node connection count
拓扑node connection count
语句返回连接到指定节点的连接数量。
语法
topology node connection count (<节点名称>)
<节点名称>
是一个字符串表达式
参数
<节点名称>
节点的名称。
示例
topology node connection count ("U100-1")! 告诉您连接到节点 "U100-1" 的连接数量。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology node count
拓扑node count
语句返回电路板文件中所有节点的数量。
语法
topology node count
参数
(无)
示例
topology node count ! 返回所有节点的总数。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology node data$
拓扑node data$
函数返回有关指定节点的信息项。这些信息以字符串表达式的形式返回。
您可以通过项目编号请求信息。项目编号包括:
- 节点条目是否经过交叉检查?返回值可能是:未定义、否或是。
- 来自电路板文件的故障信息是什么?如果没有故障信息,返回字符串将为空。
- 未使用。
- 电源类型是什么?返回值可能是:未定义、派生、接地、固定、可变。
- 电源编号是什么?
- 电源的电压设置是多少?
- 电源的电流设置是多少?
- 节点的系列名称和逻辑电平是什么?返回值可以是系列名称,后跟:0、1或X。
语法
topology node data$ (<节点名称>, <项目>)
<节点名称>
是一个字符串表达式<项目>
是一个数值表达式
参数
<节点名称>
节点的名称。
<项目>
表示要返回的信息项的编号(1到8)。项目已在上方描述。
示例
FamilyAndLevel$ = topology node data$ ("U100-1", 8)! 获取节点的系列名称和逻辑电平
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
topology parent device count
拓扑parent device count
语句返回电路板文件中父设备的数量。
语法
topology parent device count
参数
(无)
示例
topology parent device count ! 返回父设备的数量。
常规信息
要使用任何拓扑访问函数,您必须首先将电路板文件加载到内存中。
要将电路板对象文件board.o
加载到内存中,请执行load board
语句。
要从内存中移除电路板文件,请使用scratch board
语句。
load board
语句会自动清除当前内存中的任何文件。
translate faults
translate faults
语句用于将由Mentor Graphics的QuickFault模拟器在设计系统上创建的故障字典文件转换为故障对象文件。此故障对象文件可由Keysight ICT系统使用。
执行此语句时,您的当前工作目录应包含故障配置文件。如果不包含,则必须指定包含该文件的目录路径名。
window
选项会使翻译器打开另一个BT-Basic窗口,在该窗口中运行翻译。如果未指定此选项,翻译器将在您输入命令的BT-Basic窗口中运行。
语法
translate faultstranslate faults <目录ID>translate faults; <选项>translate faults <目录ID>; <选项>
<目录ID>
是一个字符串表达式<选项>
可以是:window
参数
<目录ID>
包含故障配置文件fault.config
的目录。
示例
translate faults "../fault_data"translate faults; window
trigger
trigger
语句将组执行触发消息(GET)发送到GPIB接口。触发消息使一个或一组设备启动某些设备相关的活动,例如,计数器开始计数。
如果总线整体被寻址(),则所有当前设置为监听的设备都会响应。如果语句寻址的是一个特定的设备()且该设备不是监听者,该设备会被设置为监听,然后再响应。如果当前监听者被寻址,则所有当前监听者会响应,就像总线被寻址一样。
语法
trigger <GPIB>trigger <GPIB device>
-
<GPIB>
和<GPIB device>
可以是:-
<file id>
-
@<name>
-
<file id>
是一个字符串表达式 -
<name>
是一个标签
-
参数
<GPIB>
总线的地址。
<GPIB device>
所选GPIB设备的地址。
示例
快捷方法:
trigger "/dev/hpib1" ! 发送GET到总线,所有当前监听者响应assign @Auto_DVM to "/dev/dmm"trigger @Auto_DVM
绝对路径方法:
Bus$ = btgetenv$("AgilentICT_ROOT")trigger Bus$&"/dev/hpib1" ! 发送GET到总线,所有当前监听者响应assign @Auto_DVM to Bus$&"/dev/dmm"trigger @Auto_DVM
常规信息
这些示例假设设备文件hpib1包含SICL接口名称hpib7。
triml$
删掉字符串左边的空格。
A$=" ABCDE "
B$=triml$(A$)
print B$
print len(A$)
print len(B$)
运行结果
ABCDE 1510
trimr$
删掉字符串右边的空格。
A$=" ABCDE "
B$=trimr$(A$)
print B$
print len(A$)
print len(B$)
运行结果
ABCDE1510