-> Hier kostenlos registrieren
Guten Abend,
wir entwickeln im Moment einen Standard für unsere Rundläuferanlagen. Diese bestehen immer aus dem Rundläufer selbst und einer differierenden Zahl an Zuführungen. Der Rundläufer ist physikalisch Abhängig vom Zustand der Zuführungen.
Die Zuführungen selbst bestehen aus Förderbändern etc.
unser Standard ist aufgedröselt bis zur kleinsten Komponente z.b ein 2 spuliges Ventil mit 2 Endlagen ist ein FB. In diesem FB werden dann die Ansteuerungen der Spulen, Laufzeitüberwachung, Status, etc bearbeitet.
In einem global DB gibt es für jede Komponente 3 Strukturen welche über udts definiert sind, "Status, Meldungen, Störungen" z.b für die Visu.
Desweiteren gibt es einen Betriebsarten DB welcher auch über eine Udt definiert ist.
Für die Zuführung gibt es ebenfalls einen Global dB, auch über eine udt definiert.
Für eine Zuführung habe ich dann einen FB geschrieben welcher die einzelnen Komponenten aufruft z.b. Förderband1, Zylinder, Förderband2 etc.
Diesem Zuführungs FB übergebe ich dann 4 Any Pointer als in-Out. Einen auf den Komponenten DB für Förderband1, einen für Zylinder, einen für die Betriebsarten und einen für den Zuführungsstatus. Im Zuführungs FB kopiere ich die Any Pointer auf Lokaldaten ( temporäre any Pointer) und übergebe diese dann an den jeweiligen Komponenten fb (z.b. Förderband1) welcher als Instanz im Zuführungs fb angelegt ist. Dasselbe dann für alle Komponenten und Betriebsarten sowie den Zuführungsstatus!
Ich hoffe das ist für euch einigermaßen verständlich
gar nicht so einfach zu erklären.
Meine Frage ist nun ob das Zerlegen der any Pointer auf Lokaldaten und Übergabe an die Instanz fbs und das weitere Zerlegen in diesen, meine Zykluszeit belastet? Mit PLCSIM hatte ich bei nur einem Zuführungs FB schon ca 15ms Zykluszeit....aber kann man das auf reale CPUs übertragen?
Und würdet ihr an der Gesamtstruktur etwas ändern oder findet ihr das gelungen gelöst?
Eure Meinung ist sehr interessant für mich!
Grüße Pico
wir entwickeln im Moment einen Standard für unsere Rundläuferanlagen. Diese bestehen immer aus dem Rundläufer selbst und einer differierenden Zahl an Zuführungen. Der Rundläufer ist physikalisch Abhängig vom Zustand der Zuführungen.
Die Zuführungen selbst bestehen aus Förderbändern etc.
unser Standard ist aufgedröselt bis zur kleinsten Komponente z.b ein 2 spuliges Ventil mit 2 Endlagen ist ein FB. In diesem FB werden dann die Ansteuerungen der Spulen, Laufzeitüberwachung, Status, etc bearbeitet.
In einem global DB gibt es für jede Komponente 3 Strukturen welche über udts definiert sind, "Status, Meldungen, Störungen" z.b für die Visu.
Desweiteren gibt es einen Betriebsarten DB welcher auch über eine Udt definiert ist.
Für die Zuführung gibt es ebenfalls einen Global dB, auch über eine udt definiert.
Für eine Zuführung habe ich dann einen FB geschrieben welcher die einzelnen Komponenten aufruft z.b. Förderband1, Zylinder, Förderband2 etc.
Diesem Zuführungs FB übergebe ich dann 4 Any Pointer als in-Out. Einen auf den Komponenten DB für Förderband1, einen für Zylinder, einen für die Betriebsarten und einen für den Zuführungsstatus. Im Zuführungs FB kopiere ich die Any Pointer auf Lokaldaten ( temporäre any Pointer) und übergebe diese dann an den jeweiligen Komponenten fb (z.b. Förderband1) welcher als Instanz im Zuführungs fb angelegt ist. Dasselbe dann für alle Komponenten und Betriebsarten sowie den Zuführungsstatus!
Ich hoffe das ist für euch einigermaßen verständlich

Meine Frage ist nun ob das Zerlegen der any Pointer auf Lokaldaten und Übergabe an die Instanz fbs und das weitere Zerlegen in diesen, meine Zykluszeit belastet? Mit PLCSIM hatte ich bei nur einem Zuführungs FB schon ca 15ms Zykluszeit....aber kann man das auf reale CPUs übertragen?
Und würdet ihr an der Gesamtstruktur etwas ändern oder findet ihr das gelungen gelöst?
Eure Meinung ist sehr interessant für mich!

Grüße Pico
Zuletzt bearbeitet: