ERR

显示#ERR 的单元格表示该单元格无法正确执行其函数,通常是由于输入参数无效。#ERR 条件可能因多种原因而发生,有些是由于视觉应用程序的正常运行,有些是由于电子表格逻辑本身的错误。下面列出了一些常见的#ERR。

  1. 基本数学错误:单元格 A4 = A3/A2。如果单元格 A2 的值等于 0,则单元格 A4 中的函数将生成被零除的错误。
  2. 区域图形错误:区域移出图像。如果您使用 PatternMatch 工具来定位图像中的某些对象,然后使用结果数据来固定其他视觉工具的位置,则视觉工具的区域可能会移动到一个位置,从而导致该区域的一部分超出图像范围。发生这种情况时,视觉工具将报告#ERR,而不是返回有效的视觉工具结果结构。
  3. “获取”函数失败:如果将 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,而不是报告错误。