# ERR

Una celda que visualiza #ERR indica que la celda no pudo ejecutar correctamente la función que contiene y esto se debe generalmente a que se ha entrado algún parámetro no válido. Una estado de #ERR puede producirse por varias razones, algunas durante el funcionamiento normal de la aplicación de visión y otras a causa de errores en la propia lógica de la hoja de cálculo. A continuación se señalas algunos casos de #ERR comunes.

1. Errores matemáticos básicos: Celda A4 = A3 / A2. Si el valor de la celda A2 es igual a 0, la función de la celda A4 generará un error por división por cero.
2. Errores gráficos en la región: La región se ha desplazado hacia fuera de la imagen. Si se utiliza una herramienta PatternMatch (CoincidenciaConPatrón) para localizar una característica en la imagen y, a continuación, se utilizan los datos resultantes para fijar la ubicación para otra herramienta de Vision Tools, puede ocurrir que la región a tratar por la otra herramienta sufra un desplazamiento y tenga por ello una parte de la región fuera de los límites de la imagen. Cuando sucede esto, la herramienta de Vision Tools informará de un #ERR en lugar de devolver una estructura de resultados válida.
3. Fallo en las funciones "Get": Vision Tools no proporciona resultados cuando se utiliza una función GetX junto con una herramienta DetectBlobs y pueden darse circunstancias en las que la herramienta DetectBlobs no localiza el número esperado de manchas. Si esto sucede, la función GetX informará de un #ERR en el caso de que no se haya podido localizar la mancha deseada en la imagen.

## Resolución de #ERR en celdas

La mayoría de los casos de #ERR devuelven una cadena de error. Para ver si hay una cadena de error, pase simplemente el ratón por encima de la celda que contiene el #ERR para visualizar la cadena de error que pudiera haber. Además, si aparece un signo de exclamación rojo en la Hoja de propiedades, pase el ratón por encima de él para que se visualice la cadena de error. Las cadenas de error pueden obtenerse también mediante programación, para lo que hay que utilizar la funciónGetErrorString. Todas las cadenas de error tienen un código de diagnóstico asociado a ellas y este código es el que devuelve la función GetErrorCode.

## ¿Cómo puede uno anular o invalidar #ERR para evitar que se propague el error?

Supongamos que se quiere calcular la suma de las áreas de las múltiples manchas que encuentre una herramienta DetectBlobs. La función GetArea se utiliza para obtener el área de las distintas manchas contenidas en una estructura de Blobs. Si no se ha encontrado ninguna mancha, la función GetArea fallará en su cometido, pero esto puede ser un escenario válido en una determinada aplicación.

Celda | Función | Descripción
A1 | DetectBlobs([Parámetros]) | Detecta las manchas y devuelve una estructura de Blobs
B1 | GetArea(A1,0) | Devuelve el área de la mancha 0
B2 | GetArea(A1,1) | Devuelve el área de la mancha 1
B3 | GetArea(A1,2) | Devuelve el área de la mancha 2
B4 | Suma(B1:B3) | Calcula la suma de las áreas de las manchas
Si la herramienta DetectBlobs no localiza por lo menos 3 manchas, entonces la fórmula Suma(B1:B3) dará #ERR porque por lo menos una de las celdas a la que se hace referencia en la suma ha dado también #ERR. Para invalidar esta situación de error, se puede utilizar la función ErrFree (SinError) del conjunto de herramientas de Lookup.
B4 | Suma(ErrFree(B1:B3)) | Calcula la suma de las áreas de las manchas.

Nota: Cuando se utiliza la función ErrFree , los valores de entrada procedentes de celdas que hayan dado #ERR serán convertidos cada uno en un valor igual a 0. Por consiguiente, en el caso considerado, la función Suma sumará los 0 de las celdas que han dado #ERR en lugar de notificar a su vez un error.