ERR
显示#ERR 的单元格表示该单元格无法正确执行其函数,通常是由于输入参数无效。#ERR 条件可能因多种原因而发生,有些是由于视觉应用程序的正常运行,有些是由于电子表格逻辑本身的错误。下面列出了一些常见的#ERR。
- 基本数学错误:单元格 A4 = A3/A2。如果单元格 A2 的值等于 0,则单元格 A4 中的函数将生成被零除的错误。
- 区域图形错误:区域移出图像。如果您使用 PatternMatch 工具来定位图像中的某些对象,然后使用结果数据来固定其他视觉工具的位置,则视觉工具的区域可能会移动到一个位置,从而导致该区域的一部分超出图像范围。发生这种情况时,视觉工具将报告#ERR,而不是返回有效的视觉工具结果结构。
- “获取”函数失败:如果将 GetX 函数与 DetectBlobs 工具结合使用,Vision Tool 不会产生结果,在某些情况下 DetectBlobs 工具可能无法找到预期的斑点数量。如果发生这种情况,GetX 函数将在图像中找不到所需的斑点时报告 #ERR。
#ERR 单元格故障排除
大多数 #ERR 条件返回错误字符串。要查看是否提供了错误字符串,只需将鼠标悬停在包含#ERR 的单元格上即可显示错误字符串。此外,如果属性表中出现红色感叹号,将鼠标悬停在其上会显示错误字符串。可以使用 GetErrorString 函数以编程方式返回错误字符串。每个错误字符串都有一个关联的诊断代码,该代码使用 GetErrorCode 函数返回。
如何覆盖 #ERR 以防止错误传播?
考虑这样一种情况:您可能想要计算 DetectBlobs 工具找到的多个斑点的区域总和。您使用 GetArea 函数从斑点结构中检索单个斑点的区域。如果未找到斑点,则 GetArea 函数将失败,但这可能是您的应用程序中的有效方案。
单元格 |
函数 |
说明 |
A1 |
DetectBlobs([参数]) |
检测斑点并返回斑点结构 |
B1 |
GetArea(A1,0) |
返回斑点 0 的面积 |
B2 |
GetArea(A1,1) |
返回斑点 1 的面积 |
B3 |
GetArea(A1,2) |
返回斑点 2 的面积 |
B4 |
Sum(B1:B3) |
计算斑点区域的总和 |
如果 DetectBlobs 工具无法找到至少 3 个斑点,则公式 Sum(B1:B3) 将报告 #ERR,因为该公式引用的至少一个单元格也会报告 #ERR。要覆盖此错误条件,您可以使用 ErrFree 查找 函数。 |
||
B4 |
Sum(ErrFree(B1:B3)) |
计算斑点区域的总和。 |
注意: 使用 ErrFree 函数时,来自其他报告 #ERR 的单元格的输入值将转换为值 0;在这种情况下,Sum 函数将为任何输入#ERR 单元格添加 0,而不是报告错误。