Problem und Voraussetzungen
Eine Aufnahmeschleife kann korrekte Bilder liefern und trotzdem Puffer verlieren oder alte Bilder wiederverwenden. Prüfen Sie Lebensdauer und Geräteereignisse im tatsächlichen SDK. Der Anhang ist herstellerneutraler Pseudocode, keine ausführbareDeyi-Schnittstelle.
Versuch vorbereiten
Angenommen sind 2000 × 1500 Mono8: 3 MB je Bild, 8 Rohpuffer benötigen 24 MB ohne Kopien und Metadaten. Legen Sie Gerätekennung und eine neue Aufnahmegeneration nach Wiederverbindung fest.
Lesen Sie Aufnahme- und Lebensdauerdokumentation des SDK. Klären Sie Pufferallokation, Ergebnisbesitz, Rückgabe an den Treiber und Gültigkeit gehaltener Referenzen. Prüfen Sie Entfernungsmeldung und Callbackthread. Zustandswechsel und Abschaltung gehören außerhalb des Callbacks, wenn Blockieren dort verboten ist. Identifizieren Sie das Gerät stabil dokumentiert, nicht als erstes Enumerationsergebnis. Speichern Sie Größe, Format, Payload, Trigger und Transport als freigegebenen Satz. Die Konzeptnamen unten versprechen keine Deyi-SDK-Schnittstelle.
Vorgehen
- Konfigurieren Sie Bildgröße und Format vor der Puffervergabe anhand der gemeldeten Nutzdatenmenge.
- Warten Sie begrenzt und trennen Sie fehlenden Trigger, Übertragungsfehler und Geräteverlust.
- Kopieren oder halten Sie Bilder nach dokumentierten Besitzregeln, bevor das Ergebnis freigegeben wird.
- Stoppen Sie bei Verlust Verarbeitung, geben Sie Puffer zurück und verwerfen Sie alte Ergebnisse.
- Verbinden Sie nur das erwartete Gerät, prüfen Sie Einstellungen erneut und starten Sie eine neue Generation.
VENDOR-NEUTRAL PSEUDOCODE — conceptual operations, not SDK API names
connect(expected_device_identity)
verify_configuration_and_payload()
generation = new_generation()
while connected:
result = none
owned_image = none
try:
result = acquire_with_deadline()
if result.is_valid:
owned_image = copy_or_retain_under_documented_rules(result)
process(owned_image, generation)
else:
record_acquisition_fault(result, generation)
finally:
release_owned_image_if_present(owned_image)
release_grab_result_if_present(result)
on_coordinator_receives_device_removed:
invalidate_current_generation()
stop_and_join_workers()
return_all_buffers()
discard_old_generation_results()
reconnect_expected_device_and_verify_configuration()
generation = new_generation()Holen Sie mit endlicher Frist ab und prüfen Sie vor Payloadzugriff. Timeout ohne Trigger unterscheidet sich von Übertragungsfehler oder Entfernung. Verknüpfen Sie Generation und Bild- oder Ereigniskennung vor Übergabe. Kopieren Sie in eigenen Speicher oder halten Sie Besitz dokumentiert. Geben Sie Ressourcen auch bei Verarbeitungsfehlern frei. Begrenzen Sie die Queue und legen Sie Überlaufbehandlung fest. Unbegrenztes Wachstum ist keine Rückstaustrategie, und das letzte Bild ersetzt kein fehlendes neues Bild.
Beispielhaftes Prüfprotokoll
Rechen- und Prüfannahmen, keine gemessenen Deyi-Ergebnisse. Ersetzen Sie diese Werte durch Ihre eigenen freigegebenen Prüfprotokolle.
| Protokollfeld | Angenommener Wert |
|---|---|
| Warteschlangenkapazität | 8 |
| Unkomprimierte Bilddaten | 3 MB |
| Speicherkapazität | 24 MB |
| Stichprobenumfang | 1000 |
Verlangsamen Sie den Verbraucher gezielt bei unveränderter Aufnahmefrequenz. Protokollieren Sie Aufnahmegeneration, Bildkennung, Warteschlangentiefe, aktive Puffer und Timeoutgrund. Die 24 MB enthalten keine Bildkopien; zurückgehaltene Referenzen benötigen eine vom SDK erlaubte Lebensdauer. Der finally-Block zeigt die Freigabe auch bei Verarbeitungsfehlern. Speisen Sie nach dem Wiederverbinden ein verspätetes Ergebnis der alten Generation ein und prüfen Sie, dass es nicht zur aktuellen Prüfung wird.
Stoppen Sie nach Entfernung neue Arbeit dieser Generation und koordinieren Sie Workerende vor Freigabe noch benutzter Ressourcen. Beenden Sie offene Operationen SDK-konform, geben Sie Puffer zurück und verwerfen Sie alte Ergebnisse. Verbinden Sie das erwartete Gerät und prüfen Sie Einstellungen statt Defaults anzunehmen. Lesen Sie Payload vor neuer Allokation zurück. Neue Generation entsteht nach Bereitschaft. Verspätete Callbacks und alte Queueergebnisse werden per Generation verworfen, auch bei ähnlicher Bildnummer. Rohpufferrechnung ist nur Teil des Speicherbedarfs; Kopien, Queue und Algorithmus müssen gemessen werden.
Zwei Ansichten des Ablaufs
Stabile Kameraaufnahme: Puffer, Zeitüberschreitung und Wiederverbindung — 1
Der Bildbesitz geht an die Verarbeitung und endet erst nach deren Zugriff.
- Aufnehmen
- Halten oder kopieren
- Verarbeiten
- Freigeben
Stabile Kameraaufnahme: Puffer, Zeitüberschreitung und Wiederverbindung — 2
Zeitüberschreitung, Geräteverlust und Abschaltung benötigen verschiedene Übergänge.
- Zeitüberschreitung
- Geräteverlust
- Abschaltung
Fehlersuche
- Wachsende Speichernutzung deutet auf nicht freigegebene Ergebnisse oder unbegrenzte Warteschlangen.
- Beschädigte Bilder können aus Zugriff nach Pufferrückgabe entstehen.
- Alte Bilder nach Wiederverbindung erfordern Warteschlangen- und Generationsprüfung.
Abnahme und Übergabe
Prüfen Sie 1000 angenommene Bilder sowie Verlust, Wiederherstellung und Herunterfahren. Speicher muss begrenzt sein; alte Generationen dürfen nicht erscheinen. Wiederholen Sie mit langsamem Verbraucher; 24 MB ist kein Gesamtspeicherbudget.
Legen Sie die Abnahmegrenzen vor dem Versuch fest und bewahren Sie die Originaldaten auf. Die Beispiele belegen keine Eigenschaften eines angebotenen Modells.
Prüfen Sie laufende Aufnahme, Unterbrechung und langsamen Verbraucher. Protokollieren Sie Puffer, Queuetiefe, Prozessspeicher, Generationen und Schlussgründe. Entfernen und stellen Sie das Gerät kontrolliert wieder her und stoppen Sie während offener Aufnahme. Abschaltung muss enden, Worker dürfen freigegebenen Speicher nicht berühren und alte Bilder nicht neu erscheinen. Erzeugen Sie Verarbeitungsfehler für finally. Prüfen Sie Identität und Konfiguration vor Freigabe. 1000 Bilder zeigen Funktion, nicht langfristige Leckfreiheit. Übergeben Sie SDK-Version, Besitzregeln, Queue, Wiederverbindung und Fehlerdaten; echten Vendorcode separat dokumentationskonform prüfen.
Quellen und technische Referenzen
Die Quellen erläutern Methoden und Grenzen dieser Anleitung. Beispielprüfungen dienen der Orientierung; die Produktionsabnahme benötigt Belege aus Ihren eigenen Mustern.
- Programming with pylon CBaslerGeprüft
- pylon .NET SamplesBaslerGeprüft
Komponenten- und Auswahlreferenzen
- Smart Camera vs. PC-basiertes Bildverarbeitungssystem
- GigE vs. USB3 Industriekamera
- Bildverarbeitungssysteme
- machine vision software · Englische Referenz
- EAN-13: Abnahme an der Linie
- EAN-13: Decodierung und Datenregeln
- Sichtbare Füllstandsabläufe abnehmen und integrieren
- KI-gestützter Ablauf für einen sichtbaren Füllstandsindikator
- Prüfprotokolle, Bilder und Teilekennungen verknüpfen
- OCR-Etiketten: Abnahme und SPS-Vertrag
- OCR-Etiketten: nativer Ablauf und exakter Vergleich
- Offene Verpackungsvollständigkeit abnehmen
- KI-Ablauf für Vollständigkeit offener Verpackungen
- SPS–Vision-Handschlag mit eindeutigen Zuständen
- Siegel- und Raupenbild: Linienabnahme
- Siegel- und Raupenbild: Workflowregeln
- SKU-Farbsortierung: Abnahme und unbekannt
- SKU-Farbsortierung: Farb- und Produktregeln
- Oberflächenfehler: Abnahme und Linienausgang
- Oberflächenfehler: begrenzte KI-Bewertung
- Latenz vom Trigger bis zur SPS-Entscheidung unter Last prüfen
- Vollständige Vision-Rezepte versionieren und zurücksetzen

