BT-Basic函数之首字母T

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 语句可以通过 printoutputreport 语句调用,这些语句都使用自由格式输出数据。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 语句可用于测试计划中,以在测试被 haltpause 语句停止后继续进行模拟或数字测试。测试将从其停止的点继续。

对于由于停止的数字测试,如果正在实施保护措施(参见 safeguard <type> 语句),继续测试前将执行正常的冷却延迟。

如果测试因错误或测试超时而停止,则无法继续。已经完成的测试以及尚未开始的测试不能继续。

test monitor

此功能仅在 BT-Basic 窗口中有效。

测试监视模式限制用户仅执行少量面向测试的操作。它无法访问测试开发人员使用的全功能范围。

当测试监视生效且程序未运行时,以下按键是激活的:

软键 — 软键定义更改为:

  • f1(start)— 开始执行测试计划。
  • f8(exit)— 退出 BT-Basic 并返回到 Login: 提示符。

操作员小键盘(如果存在)— 所有键。

当测试监视生效且程序正在运行时,程序按正常方式运行。它还允许通过工作站键盘的 enterinputquestion 语句进行正常的数据输入。然而,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 – 语句执行后,结果保留在屏幕上以供检查。

<经验级别>

设置用户收到的错误消息的长度(详细程度),也可用于限制用户使用系统功能的子集。可接受的值:standardadvancedexpert

<备份级别>

决定系统在修改文件前是否存储未更改文件的副本(备份),以及备份的存储方式。可接受的值为:

  • 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 %
10010 %20 %15 %2.05 %25 %
100-20 %0 %-10 %2.0-30 %10 %
以下基于以数值表示的测试限值(此处为电阻值)。
-504k8k6k0.55k7k
1004k8k6k2.02k10k
10040k48k44k2.036k52k

测试计划示例

如果您想将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$

拓扑设备数据$函数返回有关指定设备的信息项。这些信息来自电路板文件,并以字符串表达式的形式返回。

通过项目编号请求信息。项目编号包括:

  1. 设备是否需要测试?返回值可能是:未定义、否或是。
  2. 设备条目是否经过交叉检查?返回值可能是:未定义、否或是。
  3. 设备是否可替代?返回值可能是:未定义、否或是。
  4. 设备的部件编号是什么?
  5. 来自电路板功能文件的故障信息是什么?如果没有故障信息,返回字符串为空。
  6. 指定设备的测试路径。
  7. 设备类型是什么?返回值可能是:未定义、电感器、电容器、跳线、连接器、库设备、二极管、电位器、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$函数返回有关指定节点的信息项。这些信息以字符串表达式的形式返回。

您可以通过项目编号请求信息。项目编号包括:

  1. 节点条目是否经过交叉检查?返回值可能是:未定义、否或是。
  2. 来自电路板文件的故障信息是什么?如果没有故障信息,返回字符串将为空。
  3. 未使用。
  4. 电源类型是什么?返回值可能是:未定义、派生、接地、固定、可变。
  5. 电源编号是什么?
  6. 电源的电压设置是多少?
  7. 电源的电流设置是多少?
  8. 节点的系列名称和逻辑电平是什么?返回值可以是系列名称,后跟: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-9 趣味游戏

题目解析 在某个学校的趣味游戏活动中&#xff0c;N 名同学站成一排&#xff0c;他们的年龄恰好是 1 到 N &#xff0c;需要注意的是他们并不是按照年龄的大小排列的&#xff0c;而是随机排列的。 游戏的规则是请同学们快速计算出&#xff0c;如果在这 N 名同学的小组中&…

Hugging Face模型微调训练(基于BERT的中文评价情感分析)

文章目录 学习视频地址项目地址数据集的下载模型微调的基本概念与流程加载数据集数据集格式数据集信息 制作Dataset数据集字段数据集信息 vocab字典操作词汇表文本转换 下游任务模型设计模型训练与保存数据加载优化器训练循环 最终效果评估与测试模型加载和测试 学习视频地址 …

【蓝桥杯】十五届省赛B组c++

目录 前言 握手问题 分析 排列组合写法 枚举 小球反弹 分析 代码 好数 分析 代码 R 格式 分析 代码 宝石组合 分析 代码 数字接龙 分析 代码 拔河 分析 代码 总结 前言 主播这两天做了一套蓝桥杯的省赛题目&#xff08;切实感受到了自己有多菜&#x…

必刷算法100题之计算右侧小于当前元素的个数

题目链接 315. 计算右侧小于当前元素的 个数 - 力扣&#xff08;LeetCode&#xff09; 题目解析 计算数组里面所有元素右侧比它小的数的个数, 并且组成一个数组,进行返回 算法原理 归并解法(分治) 当前元素的后面, 有多少个比我小(降序) 我们要找到第一比左边小的元素, 这…

Hyperlane框架:下一代高性能Rust Web框架 [特殊字符]

Hyperlane框架&#xff1a;下一代高性能Rust Web框架 &#x1f680; 引言 &#x1f44b; 在当今快速发展的Web开发领域&#xff0c;性能和开发效率的平衡变得越来越重要。Hyperlane作为一个新兴的Rust Web框架&#xff0c;完美地解决了这个问题。本文将带您深入了解Hyperlane…

图像处理:使用Numpy和OpenCV实现傅里叶和逆傅里叶变换

文章目录 1、什么是傅里叶变换及其基础理论 1.1 傅里叶变换 1.2 基础理论 2. Numpy 实现傅里叶和逆傅里叶变换 2.1 Numpy 实现傅里叶变换 2.2 实现逆傅里叶变换 2.3 高通滤波示例 3. OpenCV 实现傅里叶变换和逆傅里叶变换及低通滤波示例 3.1 OpenCV 实现傅里叶变换 3.2 实现逆傅…

OpenEuler/CentOS一键部署OpenGauss数据库教程(脚本+视频)

&#x1f4cc;OpenEuler/CentOS一键安装OpenGauss数据库教程 为什么需要OpenGauss一键安装脚本&#xff1f; 手动部署OpenGauss数据库时&#xff0c;环境适配、依赖冲突等问题常让开发者头疼。尤其对新人而言&#xff0c;官方文档的配置步骤可能耗时数小时甚至引发未知报错。 …

如何解决 Hive 在创建 MySQL 表时出现乱码???的问题

1.问题描述 我们启动Hive建立一个学生students表格 使用desc students;查看表格结构时 发现有出现乱码的情况 2.解决方案 打开Hive安装机器上面的MySQL 切换到Hive数据库 执行以下命令修改字段注释字符集 mysql -u root -p123456;use hive;alter table COLUMNS_V2 modify col…

自定义组件触发饿了么表单校验

饿了么的表单控件&#xff0c;如果存在自定义组件更改了值&#xff0c;例如在el-from中存在原生input组件很有可能没法触发表单校验&#xff0c;下拉框或者弹框组件仍然是报红边框。 这是因为饿了么的输入框或者下拉框更改值的时候会自动触发表单校验&#xff0c;但是封装过后的…

架构思维:查询分离 - 表数据量大查询缓慢的优化方案

文章目录 Pre引言案例何谓查询分离&#xff1f;何种场景下使用查询分离&#xff1f;查询分离实现思路1. 如何触发查询分离&#xff1f;方式一&#xff1a; 修改业务代码&#xff1a;在写入常规数据后&#xff0c;同步建立查询数据。方式二&#xff1a;修改业务代码&#xff1a;…

Linux开发工具——make/makefile

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲Linux开发工具——make/makefile&#xff1a; &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;Linux &#x1f380;CSDN主页 愚润求学 &#x1f304;其他专栏&#xff1a;C学习笔记&#xf…

python加载训练好的模型并进行叶片实例分割预测

要基于“GMT: Guided Mask Transformer for Leaf Instance Segmentation”进行代码复现&#xff0c;可按照以下步骤利用Python实现&#xff1a; 环境配置 克隆仓库&#xff1a;在终端中使用git clone https://github.com/vios-s/gmt-leaf-ins-seg.git命令&#xff0c;将项目代…

AI平台初步规划实现和想法

要实现一个类似Coze的工作流搭建引擎&#xff0c;可以结合SmartEngine作为后端工作流引擎&#xff0c;ReactFlow作为前端流程图渲染工具&#xff0c;以及Ant Design作为UI组件库。以下是实现的步骤和关键点&#xff1a; ### 1. 后端工作流引擎&#xff08;SmartEngine&#xf…

Pycharm 启动时候一直扫描索引/更新索引 Update index/Scanning files to index

多个项目共用一个虚拟环境&#xff0c;有助于加快PyCharm 启动吗 chatgpt 4o认为很有帮助&#xff0c;gemini 2.5pro认为没鸟用&#xff0c;我更认可gemini的观点。不知道他们谁在一本正经胡说八道。 -------- 打开pycharm的时候&#xff0c;下方的进度条一直显示在扫描文件…

dify新版本1.1.3的一些问题

本人使用window版本上构建dify&#xff0c;采用docker方法启动 1、拉取镜像问题 windows上更改拉取镜像仓库地址 优化加速参考&#xff1a;青春不留白/Docker-hub 如果还是拉取比较慢的话&#xff0c;建议科学上网解决。 2、启动问题 发生报错Dify:failed to init dify plu…

4.2-3 fiddler抓取手机接口

安卓&#xff1a; 长按手机连接的WiFi&#xff0c;点击修改网络 把代理改成手动&#xff0c;服务器主机选择自己电脑的IP地址&#xff0c;端口号为8888&#xff08;在dos窗口输入ipconfig查询IP地址&#xff0c;为ipv4&#xff09; 打开手机浏览器&#xff0c;输入http://自己…

Spring Boot中自定义注解的创建与使用

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 1、握手问题-&#xff08;解析&#xff09;-简单组合问题&#xff08;别人叫她 鸽巢定理&#xff09;&#x1f607;&#xff0c;感觉叫高级了…

HTML应用指南:利用POST请求获取三大运营商5G基站位置信息(一)

在当前信息技术迅猛发展的背景下,第五代移动通信(5G)技术作为新一代的无线通信标准,正逐步成为推动社会进步和产业升级的关键驱动力。三大电信运营商(中国移动、中国联通、中国电信)在全国范围内的5G基站部署,不仅极大地提升了网络性能,也为智能城市、物联网、自动驾驶…

C++学习之线程

目录 1.进程和线程的概念 2.线程内核三级映射 3.线程优缺点 4.创建线程和获取线程ID的函数 5.创建子线程 6.循环创建N个子线程 7.子线程传参地址错误演示分析 8.主、子线程共享全局变量、堆空间 9.线程退出 10.pthread join回收线程退出值 11.pthread_cancel 12.杀死…