FEHLER
Eine Zelle, die #ERR anzeigt, gibt an, dass sie ihre Funktion nicht korrekt ausführen konnte. In der Regel ist dies auf einen ungültigen Eingabeparameter zurückzuführen. Ein #ERR-Zustand kann aus unterschiedlichen Gründen auftreten. Einige Fehler sind auf den normalen Betrieb der Anwendung zurückzuführen, und andere entstehen durch Fehler in der Arbeitsblattlogik selbst. Einige häufige #ERR-Ereignisse sind unten aufgeführt.
- Grundlegende mathematische Fehler: Zelle A4 = A3 / A2. Wenn der Wert von Zelle A2 gleich 0 ist, generiert die Funktion in Zelle A4 einen Division-durch-Null-Fehler.
- Bereichsgrafikfehler: Bereich verschiebt sich aus dem Bild. Wenn Sie ein PatternMatch-Werkzeug für die Suche im Bild verwenden und anschließend mithilfe der Ergebnisdaten die Position anderer Vision-Werkzeuge festlegen, ist es möglich, dass der Bereich eines Vision-Tools an eine Position verschoben wird, bei der ein Teil des Bereichs außerhalb der Bildgrenzen liegt. Wenn dieser Fall eintritt, gibt das Vision-Werkzeug #ERR zurück, anstatt eine gültige Ergebnisstruktur für das Vision-Werkzeug zurückzugeben.
- Fehler der "Get"-Funktionen: Das Vision-Werkzeug liefert keine Ergebnisse, wenn Sie eine GetX-Funktion in Verbindung mit einem DetectBlobs-Werkzeug verwenden. Es können Bedingungen vorliegen, unter denen das DetectBlobs-Werkzeug die erwartete Anzahl der Blobs nicht finden kann. In diesem Fall gibt die GetX-Funktion den Wert #ERR zurück, wenn der gewünschte Blob nicht im Bild gefunden werden konnte.
Fehlerbehebung bei #ERR-Zellen
Die meisten #ERR-Zustände geben eine Fehlerzeichenkette zurück. Um zu sehen, ob eine Fehlerzeichenkette angegeben wird, bewegen Sie den Mauszeiger über die Zelle, die #ERR enthält, um die Fehlerzeichenkette anzuzeigen. Auch wenn im Eigenschaftsblatt ein rotes Ausrufezeichen angezeigt wird, bewegen Sie den Mauszeiger darüber, um die Fehlerzeichenfolge anzuzeigen. Fehlerzeichenfolgen können mithilfe derGetErrorString-Funktion programmgesteuert zurückgegeben werden. Für jede Fehlerzeichenkette gibt es einen entsprechenden Diagnosecode, der mithilfe der GetErrorCode-Funktion zurückgegeben wird.
Wie kann man #ERR überschreiben, um die Fehlerweitergabe zu verhindern?
Angenommen, die Summe der Bereiche, die von einem DetectBlobs-Werkzeug gefunden wurden, soll für mehrere Blobs berechnet werden. Sie verwenden die GetArea-Funktion, um die Fläche der einzelnen Blobs aus der Blob-Struktur zu beziehen. Wenn ein Blob nicht gefunden wird, schlägt die GetArea-Funktion fehl, was jedoch ein gültiges Szenario in Ihrer Anwendung sein kann.
Zelle |
Funktion |
Beschreibung |
A1 |
DetectBlobs([Parameter]) |
Erkennt Blobs und gibt eine Blobs-Struktur zurück |
B1 |
GetArea(A1,0) |
Gibt den Bereich von Blob 0 zurück |
B2 |
GetArea(A1,1) |
Gibt den Bereich von Blob 1 zurück |
B3 |
GetArea(A1,2) |
Gibt den Bereich von Blob 2 zurück |
B4 |
Sum(B1:B3) |
Berechnet die Summe der Blob-Bereiche |
Wenn das DetectBlobs-Tool nicht mindestens 3 Blobs finden kann, gibt die Formel Sum(B1:B3) #ERR zurück, da mindestens eine Zelle, auf die diese Formel verweist, ebenfalls #ERR zurückgibt. Um diese Fehlerbedingung zu umgehen, können Sie die ErrFree Lookup-Funktion verwenden. |
||
B4 |
Sum(ErrFree(B1:B3)) |
Berechnet die Summe der Blob-Bereiche. |