Keyence IV3 - Automatische Programmumschaltung

C_wie_Cäsar

Level-2
Beiträge
31
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe ein Problem mit dem AI Kamera von Keyence. Mein Aufbau ist folgender.

SteuerungSiemens 1518F
TIA VersionV 15.1
KameraKeyence IV3 (https://www.keyence.de/products/vision/vision-sensor/iv3/)
Angebunden über:Profinet

Es funktioniert eigentlich alles recht gut. Ich habe die Kamera mit der GSD-Datei in der Hardwarekonfiguration angelegt, habe mir mit der Anleitung UDT's erstellt und lese die Prozesswerte in die jeweilige Datenstruktur ein. Alles soweit in Ordnung. Ich kann ein Bild von der SPS triggern, ich bekomme die Auswertung (io/ng) und auch die Statistik lässt sich über den Prozesswert einlesen. Nur die Programmumschaltung funktioniert nicht. Ich habe mich sowohl an die Anleitung gehalten als auch am Beispielprogramm orientiert. Leider funktioniert die Umschaltung nicht. Der Grundgedanke von mir war relativ simpel:2022-08-27 09_11_51-Präsentation1 - PowerPoint.png
Wenn "Prg. Wechsel Anfordern" kommt, schreibe ich die Nummer 5 in den Ausgang für "neue Programmnummer" und stoße mit Q0.2 den Wechsel solange an, bis mir die Kamera den Eingang I0.2 bringt. Der Programmwechsel funktioniert auch, aber immer nur auf Prg. Nr.: 0. Da er zwar wechselt aber nicht auf die gewünschte Nummer, bin ich mir nicht sicher ob er ein fehlerhafte Nr. bekommt (und in der Fehlerroutine immer auf Nr. 0 umschaltet) oder ob der Wert zur falschen Zeit kommt und beim umschalten die Variable wieder 0 ist (und er deswegen auf Prg. Nr. 0 wechselt)

Deswegen hab ich folgende Dinge schon ausprobiert:

1. "Prg. Wechsel Anfordern" als Flanke realisiert
2. Zuerst die Programm Nummer geschickt und dann nach ein paar Sekunden den Ausgang Q0.2 angestoßen
3. Q0.2. als Flanke realisiert.
4. Die Programm Nummer dauerhaft geschrieben und dann Q0.2 angestoßen (einmal als Flanke, einmal dauerhaft und einmal wie im Bild mit Rücksetze)
5. Von mir angelegte Datenstruktur als Prozesswerte geschickt
6. Direkt die Ausgänge angesteuert
7. Die Prg. Nummer als WORD, UINT und INT geschickt

Jedoch waren alle Maßnahmen ohne Erfolg. Deswegen hoffe ich, dass jemand von euch mit den Kameras schon Erfahrung hat und vll. einen Kniff kennt. Fall nicht, werde ich mich am Montag wohl an den Support wenden müssen.

Grüße, Cäsar
 

Anhänge

  • 2022-08-27 09_11_51-Präsentation1 - PowerPoint.png
    2022-08-27 09_11_51-Präsentation1 - PowerPoint.png
    13,4 KB · Aufrufe: 9
Was mir jetzt spontan einfallen würde ist, dass deine Kamera evtl. High und Low Byte dreht, und da laut Handbuch die Gültigkeit bei Programm Nr. 127 endet, könnte das noch dazu führen, dass die Nummer als ungültig gilt. Hast du mal versucht den Wert zu drehen?

Sonst sieht das mit dem Set/Reset Ablauf ja aus wie der Serviervorschlag vom Hersteller.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kurz als Hinweise, es gibt die Einstellung "Byte-Wechsel" in der Kamera. Dort ist aber nur von Text die Rede (Zu einem der OCR erkannte Text und zum anderen der Dateiname zum speichern der Bilder) und deswegen habe ich den auf "Deaktiviert" gelassen. Dürfte aber meiner Meinung nach keine Rolle spielen.

Hast du mal versucht den Wert zu drehen?
Du meinst praktisch anstatt den Wert 1 den Wert 128 zu übergeben?
0000 0001 => 1000 0000
1 => 128

Sonst sieht das mit dem Set/Reset Ablauf ja aus wie der Serviervorschlag vom Hersteller.
Ja ziemlich. Nur die Flanken Merker die im Herstellerprogramm mit einer Selbsthaltung vom Senden Befehl verodert sind habe ich weggelassen.
 
Du meinst praktisch anstatt den Wert 1 den Wert 128 zu übergeben?
0000 0001 => 1000 0000
1 => 128
eigentlich 0000 0001 -> 1 0000 0000 aber ja, das würd ich versuchen
Du hast dazu doch bestimmt ne Diagnosesoftware wo du erkennst was die Kamera eingangsseitig liest, oder? Dann würdest es ja gleich sehen

Ja ziemlich. Nur die Flanken Merker die im Herstellerprogramm mit einer Selbsthaltung vom Senden Befehl verodert sind habe ich weggelassen.
aber der Output ist ja der selbe, dass der Programmwechseltrigger ansteht bis Rückmeldung fertig vom Gerät.
 
Du hast dazu doch bestimmt ne Diagnosesoftware wo du erkennst was die Kamera eingangsseitig liest, oder? Dann würdest es ja gleich sehen
Leider nicht. Ich habe versucht aus dem IV3 Software irgendwelche Informationen raus zu ziehen aber da sieht man leider nur die Hardware-E/A Schnittstelle.
 
Bis dato hatte ich nur IV1 / IV2 angesteuert. Die Adressierung von den Eingängen/Ausgängen passt. Bisher habe ich immer die Programmnummer auf die Schnittstelle geschrieben und mit Verzögerung die Umschaltung gestartet.
Das Programm ist der Kamera ist aber angelegt?
 
Hallo Zusammen,
auch wenn sich mir noch nicht exakt erschließt warum, funktioniert es nun.
Folgenden Aufbau hatte ich:

2022-08-31 21_06_54-Window.png

So funktionierte es nicht. Auch nicht, wenn ich anstatt der Variablen aus der UDT die direkten Ausgänge verwendet habe. Wenn ich aber die Ausgänge mit einer Forcetabelle gesteuert habe, gings problemlos. Daraufhin habe ich mein Programm dahingehend verändert:

2022-08-31 21_14_49-Window.png

Ich stoße also den Wechsel erst dann an (außerhalb des Keyence_IV3_FB) wenn die Prozesswerte an die HW-Kennung bereits geschrieben wurde. Damit klappt es jetzt nun tadellos.

Wie eingangs erwähnt, bin ich mir nicht ganz sicher warum es nun funktioniert. Ich gehe davon aus, dass das zyklische Schreiben der Ausgänge meinen Wert irgendwie überspielt hat. Ich konnte nämlich beim Beobachten des Ausgangs auch nicht die aktuelle Nummer erkennen (beim Steuern über die Forcetabelle aber schon).

Hoffe es hilft irgendjemanden einmal weiter. Falls mir jemand erklären kann warum das zyklische Schreiben der Prozesswerte das Problem war, wäre ich zudem sehr froh :)

Grüße, Cäsar
 
Kannst/darfst du deinen Code posten? Das sieht eher nach einem Problem im SPS-Programm aus als im VisionSensor. Vor allem der Teil wie die Ausgänge geschrieben werden ist interessant
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst/darfst du deinen Code posten? Das sieht eher nach einem Problem im SPS-Programm aus als im VisionSensor. Vor allem der Teil wie die Ausgänge geschrieben werden ist interessant
Es ist relativ simpel. Ich schreibe am Ende meines "Keyence_IV3_FB"-Bausteins das UDT (welches nach Anleitung angelegt wurde) mit einem DPWR_DAT-Baustein in die Hardwareadresse der Keyence Kamera. Eben über diesen Weg steuere ich auch den Trigger für das Kamerabild an und das funktioniert.
 
Es ist relativ simpel. Ich schreibe am Ende meines "Keyence_IV3_FB"-Bausteins das UDT (welches nach Anleitung angelegt wurde) mit einem DPWR_DAT-Baustein in die Hardwareadresse der Keyence Kamera. Eben über diesen Weg steuere ich auch den Trigger für das Kamerabild an und das funktioniert.
Ich finds toll dass es funktioniert, würde aber gerne wissen was der Fehler ist. Dieses Verhalten habe ich noch nie erlebt und mache eigentlich alles ohne DPRD_DAT seit TIA… Kannst du den Code samt Bausteinaufruf posten oder per PN schicken?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sehe ich das richtig, dass der Programmwechsel nicht auf den UDT geschrieben wird? In dem Fall wird er natürlich wieder mit dem Inhalt des UDT überschrieben und durch die geänderte Programmreihenfolge passiert das jetzt nicht mehr. Wenn du per DPWR_DAT schreibst hast du aber das Ding aus dem Prozessabbild herausgenommen?
 
Sehe ich das richtig, dass der Programmwechsel nicht auf den UDT geschrieben wird? In dem Fall wird er natürlich wieder mit dem Inhalt des UDT überschrieben und durch die geänderte Programmreihenfolge passiert das jetzt nicht mehr. Wenn du per DPWR_DAT schreibst hast du aber das Ding aus dem Prozessabbild herausgenommen?
Bei der 1500er gibts kein einstellbares Prozessabbild. War in Wahrheit auch bei der 300er egal ob SFC14/15 aus dem PAE/PAA liest/schreibt. Ich hatte nie Probleme.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Man kann sehr wohl bei dem iDevice in der Hardwarekonfiguration einstellen, ob es automatisch aktualisiert werden soll (=OB1) oder mit irgend etwas anderem (OBxxx) oder gar nicht!
Ok. Das kann gut sein, hab ich noch nie verwendet. Aber warum sollte man dann nicht DPRD_DAT verwenden dürfen?
 
Bei der 1500er gibts kein einstellbares Prozessabbild. War in Wahrheit auch bei der 300er egal ob SFC14/15 aus dem PAE/PAA liest/schreibt. Ich hatte nie Probleme.
Die 1500 im Prinzip auch einstellbare Prozessabbilder und zwar recht feingranulare.
Das Schreiben über SFC macht bei 300er durchaus einen Unterschied.
Es ist ein direkter Peripheriezugriff.
 
Zurück
Oben