Keyence IV3 - Automatische Programmumschaltung

Zuviel Werbung?
-> Hier kostenlos registrieren
Siehe Hilfe zum DPRW_DAT, du sollst dich entscheiden, entweder dem Prozessabbild zuordnen oder mit DPRW_DAT arbeiten, nicht Beides gleichzeitig.
Zumindest muss man wissen was man tut.
Bei schnellen Datenaustausch kann sowas schon Sinn machen.
 
Peripheriezugriffe erfolgen „sofort“ und nicht erst am Anfang des nächsten OB1-Zugriffs.
Das ist mir auch klar. Aber welchen Einfluss hat das? Zykluszeit? Ich lese ja in einem Baustein für ein Feldgerät nur einmal ein, arbeite mit den Daten, schreibe die Ausgänge einmal und das wars. Ob die Ein/Ausgänge am Anfang des OB1 verarbeitet werden oder mittendrinn macht in einem ewigen Loop ja keinen Unterschied (wenn alles nur einmal geschrieben/gelesen wird)
 
Du kannst mit Peripheriezugriffen mehrmals in einem Zyklus lesen und schreiben.
Beispiel: Du legst Daten an und später im Zyklus setzt du das Übernahme-Signa.
 
so wie ich die Beschreibung am Anfang verstanden habe, werden Signale für die Programmumschaltung auf die Ausgänge geschrieben, wobei die da erst mal noch nicht bei der Kamera landen sondern erst "vorgemerkt" sind für das setzen. Später im Programm kommt er dann mit dem UDT, schreibt per DPWR_DAT direkt auf die Kamera (und überbügelt damit gleichzeitig die zuvor mühsam gesetzten Ausgänge). Am Ende des OB1 werden dann die bereits überbügelten Ausgänge nochmals auf die Kamera geschrieben, bei der Kamera kommt nur der Inhalt des UDT an.
 
So um etwas Licht ins Dunkel zu bringen. Hier meine UDT
1662493480036.png

über diese Netzwerke lese ich die Prozesswerte ein (Beispielhaft für einen Slot):
1662493497071.png

über diese Netzwerk schreibe ich die Daten raus:
1662493521264.png

und dazwischen setzte ich die von mir gewünschten Ausgänge wie z.B. beim Bild Trigger:
1662493534920.png

Bei der Bild Anforderung klappt das einwandfrei. Im Prinzip also:
1. Prozesswerte einlesen
2. Ausgänge entsprechend vorbereiten
3. Ausgänge in Prozesswerte schreiben
 
Integer Wert mit einem Move Befehl in die ZU_Kamera UDT (Programm-Nummer) und zusätzlich Trigger für Programm Umschaltung auch wiederum in die ZU_Kamera UDT.

Da dann aber beim Beobachten der Ausgänge der Wert für die Programm-Nummer immer NULL war, erscheint mir dein Ansatz, dass die Prozesswerte in einem SPS Zyklus mehrmals geschrieben werden, schlüssig. Somit funktionieren die Funktionen bei denen nur eine positive Flanke notwendig sind problemlos aber Werte die dauerhaft geschrieben werden müssen eben nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mehrere Schritte versucht. Anfangs war die Umschaltung im FB (natürlich bevor per DPWR_DAT die Daten geschickt werden) über die UDT realisiert. Danach habe ich versucht die Daten direkt auf die Ausgänge zu schreiben. Allerdings im FB. Was natürlich nachträglich betrachtet dämlich war, da im nächsten Schritt mit dem DPWR_DAT Baustein die Ausgänge wieder überbügelt wurden. Nun schreibe ich die Daten direkt an die Ausgänge außerhalb des FBs (also im zyklischen Ablauf danach) und es funktioniert. Nach meiner Meinung können es eigentlich nur zwei Sachen sein:
1 - UDT fehlerhaft und ich schreibe die Daten an die falsche Stelle
2 - Die Prozesswerte werden nach meinem aktivem Schreibvorgang nochmal geschrieben.

Die UDT habe ich aber mehrmals kontrolliert und die dürfte passen.
 
Also sind die 3 Netzwerke oben nur die halbe Wahrheit? Du schreibst nach dem FB direkt auf den Ausgang? Also wirklich auf ADxy? Wenn du du nicht nur so geheimnisvolle Teilauschnitte zeigen würdest, hätten wir die Lösung schon….
 
Zurück
Oben