BT-Basic函数之首字母F
BT-Basic函数之首字母F
文章目录
- BT-Basic函数之首字母F
- fabon
- fail device
- faon/faoff
- find library
- find pins
- find testjet probes
- find vtep probes
- first pass yield
- fixture lock/unlock
- fixture tooling
- fn
fabon
fabon
函数控制 A 和 B 真空系统。如果之前没有任何真空系统被打开,fabon 函数会同时打开两个真空系统。如果真空 A 或者真空 B 已经被打开,fabon 函数会打开另一个真空泵(这样两个真空泵会同时打开)。此函数对双阶段夹具非常有用。
任意一个四种关闭真空泵的语句(faoff、fboff、fcoff、fdoff)都会关闭当前打开的所有真空泵;它们不会打开之前连接的 GP 继电器。
eg:
faon ! 打开真空泵 A。
fabon ! 打开真空泵 B (真空泵 A 仍保持打开状态)。
fboff ! 关闭真空泵 A 和 B。
fail device
fail device
函数将 Dutfailed
和 Boardfailed
变量设置为 1(真)。
如果您正在测试一个包含多个电路板的面板,fail device
函数仅适用于由 board number is
函数定义的当前电路板。
fail device
函数在首次执行时会导致打印电路板故障标题(日期、时间和故障信息)。然而,随后的执行和故障不会再次打印标题,直到发生 wait-for-start
或程序终止。此外,如果先前的测试函数检测到故障并导致标题打印(除非期间有 wait-for-start
或程序终止),则不会再次打印标题。
pass device
函数将 Dutfailed
变量设置为 0(假)。clear failures
函数将 Dutfailed
和 Boardfailed
两个变量重置为 0(假)。boardfailed
和 dutfailed
语句返回这些变量的当前值。更多信息请参见这些语句的语法描述。
eg:
fail device
boardfailed ! 返回 "1"。
faon/faoff
faon
函数打开真空系统 A。faoff
函数关闭当前打开的任何真空系统;它不会打开之前连接的 GP
继电器。
在测试头中有四个真空系统——A、B、C 和 D。这些真空系统由外部端口继电器控制。外部端口继电器通过系统配置文件中的真空语句映射到真空系统。测试头配置功能在其报告中包括了真空与继电器映射的描述。
您可以在测试计划中使用vacuum well
函数来指定真空井到 fxon 语句的映射。
系统在打开或关闭真空之前会关闭和断开 DUT 电源。
请在使用此语句之前执行一个powered
或unpowered
语句。
相同的语法还有:fbon/fboff
,fcon/fcoff
,fdon/fdoff
;
它们的区别只是对应的真空口不一样。
语法:
faon
faon <delay>
faoff
faoff <delay>
faoff <delay>, <error variable>
faoff, <error variable>
- `<delay>` 是一个数字表达式
- `<error variable>` 是一个数值变量
<delay>数字表达式,指定在执行函数后继续之前等待的时间(单位:秒)。
– 范围是 0 到 327.00 秒。
– faon 的默认值是 1.5 秒。
– faoff 的默认值是 0 秒。
eg:
faon 2 ! 打开真空系统 A 并等待 2 秒后再继续。
faoff ! 关闭所有真空系统。
如果自动调整(autoadjust)被打开,并且自上次自动调整以来已经过了 1000 小时的 CPU 时间,或温度变化了正负五摄氏度,则在 faoff 期间会执行自动调整。
find library
返回位于目录 $AgilentICT_ROOT/library
下的库测试的描述信息,该目录包含标准设备库。描述信息会显示在屏幕上。
可选参数允许您通过设备功能、库名称或显示与编写该测试的设备相关的引脚分配来选择性地查询库测试。
语法:
find library <search string> [at <path>]
find library <search string> [at <path>]; function
find library <search string> [at <path>]; library
find library <search string> [at <path>]; pins
- `<search string>` 是一个字符串表达式
- `[at <path>]` 是一个可选的字符串,用于指定默认路径之外的搜索路径。
- `<search string>`用于检索库测试信息的搜索条件。<search string> 指定库测试的名称,或者如果指定了可选的功能关键字,则指定设备在设备库中可能存在的测试功能。
如果您不确定某个库测试的名称,或者希望使用单个find library函数搜索多个库测试,可以在 `<search string>` 中包含一个或多个星号作为实际字符的替代。每个星号(有时被称为通配符或元字符)代表一个或多个有效字符。
- at `<path>` 可选字符串,用于指定默认路径之外的搜索路径。这可以是本地控制器、工作站或可用网络连接上的任何有效路径。
- function 可选关键字,允许您按功能搜索特定的库设备。
- library 可选关键字,允许您按名称搜索唯一的库。列出任何作为该库设备别名的部件编号。
- pins 可选关键字,显示库设备的引脚分配。
eg:
find library "74c151"
搜索特定的库测试。如果找到匹配项,屏幕上可能显示以下内容:
part number: 74c151
library: $AgilentICT_ROOT/library/cmos/74c151
function: multiplexer totem 1-line_of_8-line
safeguard: 74c_cmos
find library "74*"
搜索名称以“74”开头的所有库测试;例如,“74ls102”、“74154”。
find library "74*74"
搜索名称以“74”开头并以“74”结尾的所有库测试;例如,“74l74”、“74s74”、“74ls74”等。
find library "*8-to-1*"; function
搜索功能描述中包含“8-to-1”的所有库测试。如果找到匹配项,屏幕上可能显示以下内容:
library: $AgilentICT_ROOT/library/ttl/74ls356
function: 8-to-1 data_sel/mpxr/transp-reg o-c
part numbers: 54ls354
54ls355
74ls354
74ls355
find library "7474"; pins
搜索特定的测试。如果找到匹配项,屏幕上可能显示以下内容:
part number: 7474
library: $AgilentICT_ROOT/library/ttl/7474
function flip_flop, d_positive_edge, dual
safeguard: standard_ttl
pin assignments:
assign VCC to pins 14
assign GND to pins 7
assign E1_CLK to pins 3
. . .
(更多引脚分配)
. . .
assign E2_Q_BAR to pins 8
find library "74151"; library
搜索特定的库名称并列出所有别名。如果找到匹配项,屏幕上可能显示以下内容:
library: $AgilentICT_ROOT/library/ttl/74151
function: multiplexer totem 1-line_of_8-line
part numbers: 54ac151
. . . more part numbers . . .
93151
find pins
使用 find pins 函数和引导探针找到夹具探针或受测电路板上的夹具布线连接。
要使用 find pins 功能,键入 find pins 函数,在按下启动软键(f1)或踩下脚踏开关的同时,用引导探针触摸夹具探针或受测电路板上的某个点。系统会在屏幕上列出与该点的所有连接。列出的信息包括:设备.引脚 (device.pins)、BRC、节点名称和测量的电阻。
您可以使用软键(f6)指示 find pins 功能如何列出到数字接地 BRC 的连接。显示所有数字接地会导致 find pins 列出每个到数字接地 BRC 的连接。显示一个数字接地会导致 find pins 只列出一个接地连接。按下软键 f6 会在这两种定义之间切换。
在找到一个点的连接后,系统会要求您探测另一个点。这将持续进行,直到您按下停止软键(f8)。
请注意,find pins 功能会自动执行一个无电功能,以准备系统执行 find pins 功能。
find pins 功能需要 board.o
和 wirelist.o
文件。因此,您必须在电路板目录中并执行加载电路板功能,然后再执行 find pins 函数。
find testjet probes
使用 find testjet probes 函数和引导探针来识别 TestJet 探针。这在验证或调试测试夹具时非常有用。
使用引导探针触摸您想要识别的 TestJet 探针的传感器,并执行 find testjet probes 函数。系统可能需要几秒钟来识别 TestJet 探针。当系统发出哔声以通知您找到探针后,按下启动软键或踩下脚踏开关,指示系统在屏幕上显示地址和探针编号;如果打开了自动启动(通过软键 (f7) 设置),则无需按启动软键或踩下脚踏开关。
find vtep probes
使用 find vtep probes 函数和引导探针来识别 VTEP 探针。这在验证或调试测试夹具时非常有用。
使用引导探针触摸您想要识别的 VTEP 探针的传感器,并执行 find vtep probes 函数。系统可能需要几秒钟来识别 VTEP 探针。当系统发出哔声以通知您找到探针后,按下启动软键或踩下脚踏开关,指示系统在屏幕上显示地址和探针编号;如果启用了自动启动(通过软键 (f7) 设置),则无需按启动软键或踩下脚踏开关。
first pass yield
一次合格率函数指定用于更新操作员界面中第一次通过率信息的计数器。FPY 数据也会记录在位于测试电路板的电路板目录中的文件 FirstPassYield\first_pass_yield.txt 中。
语法
first pass yield <status>, <tested>
<status> 可以是 0 或 1
<tested> 可以是 0 或 1
<status>
电路板通过或失败的数量。
0 – 失败
1 – 通过
<tested>
测试的电路板数量。
0 – 未测试
1 – 已测试
eg:
first pass yield 0, 1 ! 一次合格率失败,已测试
first pass yield 1, 1 ! 一次合格率通过,已测试
first pass yield 0, 0 ! 清除一次合格率数据
fixture lock/unlock
将治具锁到机台上。
fixture tooling
fixture tooling
执行夹具生成软件的夹具工具过程。夹具工具过程会编写夹具布线和建筑指令。
使用夹具工具功能,您可以指示夹具工具生成简要报告。您还可以指示夹具工具通过仅部分钻孔来最小化额外的钻孔和插座孔。
您可以使用增量模式中的夹具工具将更改整合到受测电路板中。
语法:
fixture tooling
fixture tooling <option list 1>
fixture tooling; <option list 2>
fixture tooling <option list 1>; <option list 2>
- `<option list 1>` 可以是: `<directory name>`
`<directory name>, <error variable>`
`<error variable>`
`<directory name>` 是一个字符串表达式
`<error variable>` 是一个数值变量
- `<option list 2>` 可以是: `<item>`
`<item>, <item>`
`<item>, <item>, . . . , <item>`
`<item>` 可以是: `terse`
`minimize`
`cartesian`
`<window>`
`<wait>`
`<experience level>`
`<backup level>`
- `<window>` 可以是: `window`
`nowindow`
- `<wait>` 可以是: `wait`
`nowait`
`failwait`
- `<experience level>` 可以是: `standard`
`advanced`
`expert`
- `<backup level>` 可以是: `numbered`
`unnumbered`
`nobackup`
- `<option list 1>`
可以是目录路径名或错误变量,或两者兼有。
- `<option list 2>`
一系列可选参数,用于确定函数的工作方式。选项如下表 F-3 所示。
可选参数
选项 | 描述 |
---|---|
terse | 指示夹具工具生成没有标题和空白的报告。 |
minimize | 指示夹具工具为额外的资源分配仅部分钻孔,而不是已钻孔和插座孔。 |
cartesian | 指示夹具工具输出在垂直Y轴和水平X轴上的X-Y数据。如果没有指定cartesian,X-Y数据为垂直X轴和水平Y轴。 |
<window> | 指定在执行函数时是否自动打开新窗口。值可以是:window (打开一个新窗口),nowindow (禁止打开新窗口)。 |
<wait> | 指定命令的执行方式。值可以是:failwait (执行函数,如果发生故障,结果保持在屏幕上以供检查)、nowait (执行函数,不暂停以供检查结果)、wait (执行函数,结果保持在屏幕上以供检查)。 |
<experience level> | 设置用户接收的错误消息的长度(详细程度),也可以用来限制用户使用系统的全部功能。允许的值为:standard 、advanced 和 expert 。 |
<backup level> | 确定编译器在修改文件之前是否存储文件的未修改副本(备份)以及如何存储备份。允许的值为:nobackup (不做文件备份)、numbered (最多做九个备份,每个备份顺序编号为 .#~,如 file.1~。编号为一的文件是最新的备份。当超过九个备份时,最旧的文件会被丢弃,其余文件重新编号)、unnumbered (做一个备份,备份文件名以波浪号 (~) 附加;例如,file~。) |
eg:
fixture tooling "/boards/cpu_board",E !"/boards/cpu_board" 是电路板目录。E 是错误变量。
fixture tooling; unnumbered !在当前目录上运行夹具工具,并对修改的任何文件做一个备份。
在测试开发过程中,此函数会自动运行。
fn
fn
调用并启动一个用户定义的函数,同时也可以传递参数(数据)给它。当执行 fn
函数时,当前的系统活动会被暂停,直到函数中的语句执行完毕。当函数终止时,它返回一个值(数字或字符串)给调用该函数的表达式(即,它的操作与系统中的任何标准函数类似);随后,系统活动恢复。
在调用函数时,可以选择性地将参数列表(数据)作为函数的参数传递给它。每个传递的参数按照在列表中出现的顺序,依次分配给函数的形式参数列表中的名称。每个传递的参数必须与分配给它的形式参数匹配(即,数字或字符串,字符串的适当长度,简单或数组等)。
如果没有参数传递给函数,那么它必须操作本地参数或全局参数(参见 global 函数)。
语法
fn<function id>
fn<function id>(<parameter>)
fn<function id>(<parameter>, <parameter>)
fn<function id>(<parameter>, <parameter>, ...<parameter>)
- `<function id>` 可以是: `<label>`
`<label>$`
- `<parameter>` 可以是: `<numeric expression>`
`<string expression>`
`<array id>(*)`
`@<name>`
- `<name>` 是一个 `<label>`
- `<function id>`
被调用的函数的名称。如果 id 带有一个美元符号($),则表示这是一个字符串函数;否则,这是一个数字函数。调用时,函数必须在工作区中。
- `<parameter>`
要传递给函数的实际参数。参数可以是函数要操作的数据源,也可以是函数要发送结果的目标。参数可以同时具备两者的属性。每个传递的参数必须与分配给它的形式参数类型相同。传递的参数数量必须与形式参数的数量相同。函数最多可以有 31 个形式参数。
参数可以是数字或字符串;它可以是一个值,一个变量 ID,或一个 `@<name>`。变量可以是简单变量、数组元素、数组或子字符串。`@<name>` 代表一个文件或设备。子字符串不能是目标。
函数可以更改作为参数传递给它的任何变量、文件或设备的内容;返回函数后更改生效。然而,如果参数是子字符串,那么无论在函数执行期间做了什么更改,该子字符串在返回后依然保持其原始内容。
eg:
! 包含函数调用的主程序:
dim Sales(1:10), Board_Name$(1:3), Components(1:3)
. . .
input X | print 3 * fnSinesquared(X) / 4
. . .
for I = 1 to 10 | input Sales(I) | next I
print fnSum(@Printer, Sales(*), 10)
. . .
for I = 1 to 3 | input Board_Name$(I), Components(I) | next I
print "Board with largest number of components is:"
print fnLargest$(Board_Name$(*), Components(*))
end
! 接下来的函数定义:
def fnSinesquared(V) | return sin(V)^2 | fnend
def fnSum(@Dev, Any_array(*), Size)
for P = 1 to Size
output @Dev; Any_array(P) ! 打印每个值
Total = Total + Any_array(P)
next P
return Total
fnend
def fnLargest$(N$(*), A(*))
if A(1) > A(2) then
Q = A(1) | W$ = N$(1) !
else | Q = A(2) | W$ = N$(2) ! 函数选择三个不同值中的最大值
end if !
if A(3) > Q then
return N$(3)
else | return W$
end if
fnend