seehma
Level-2
- Beiträge
- 112
- Reaktionspunkte
- 31
-> Hier kostenlos registrieren
Hallo Leute,
Ich programmiere recht viel mit Codesys Umgebungen und hier ist die Synchronität (zumindest bei Ethercat) zwischen Ablaufsteuerung und Ein/Ausgangsdaten ziemlich klar. Zu Beginn des Programms werden alle Eingänge gelesen, dann läuft das Programm ab und das Ausgangsabbild wird geschrieben. Alternativ kann man auch das Schreiben des Ausgangsabbilds an den Anfang setzen, falls das Ablaufprogramm länger dauert und speziell im Motion Bereich Antriebsregler zicken anfangen.
So, ich hab mich jetzt ein wenig mit Siemens S7 und Profibus beschäftigt und mir ist da eines nicht ganz klar. Prinzipiell ist das mit dem Ablauf 1.) Eingangsabbild lesen 2.) Ablaufprogramm abarbeiten 3.) Ausgangsabbild schreiben bei DP-V0 (zyklischer Betrieb) recht klar und ähnlich ab wie bei der Codesys Variante. Aber der Profibus Master läuft ja nicht synchron mit der Steuerung mit oder? Denn dieser hat ja separat die Poll Listenbearbeitung und legt hier in einer Art shared Memory die aktuell gelesenen Daten für den Zyklus des Ablaufprogramms ab.
Dh. aber auch wenn mein Programm im OB1 recht kurz ist und mein Feldbus recht lang, kann es passieren, dass mein Programm öfters durchläuft als ich frische I/O Daten bekomme. Liege ich da richtig? Nochmals anders beschrieben: die zyklische Ablaufsteuerungsabarbeitung und die zyklische Kommunikation der Profibus Masters sind nicht synchronisiert und somit kann ich nie sichergehen, dass zu Beginn meines Steuerungsprogramms ich frische I/O Daten hab, oder?
Gibt es irgendeine Möglichkeit die beiden zu synchronisieren, sagen wir so wie bei Ethercat und der Codesys Runtime, sodass ich zu beginn meiner Ablaufsteuerung immer frische Eingangsdaten hab und am Ende die aktualisierten Ausgangsdaten schreibe? Vielleicht gibt es eine Möglichkeit dies im Quellcode zu machen über ToggleBit oder ähnlich?
Irgendwo hab ich auch noch von den Anwender-Schnittstellen DP-Send und DP-Recv (Bausteinen) gelesen. Könnt ihr mir sagen wozu die gut sind? Muss ich die jeweils ausführen um mit frischen Daten zu arbeiten?
Vielleicht hat auch einer einen Link zu einem Video oder einer guten Doku, ich konnte leider (auch mit Dr. Google) nix so richtig fundiertes finden.
Das Thema ist prinzipiell als Frage für die S7 gedacht, da aber das TIA Portal recht ähnlich läuft, wird das denk ich wohl ähnlich sein oder? Prinzipiell würde mich auch, falls die beiden Varianten nicht ähnlich sind, die Unterschiede auch interessieren...
Vielen Dank schon mal
Sg
M.
Edit: Ich hoffe jeder versteht meine Frage, da ich aus der synchronen-Echtzeitwelt komme kann ich mir einfach nicht vorstellen wie das Zusammenspiel SPS-Programm und I/O-Daten bei den Siemens SPSen funktioniert. Falls es zu kompliziert geschrieben ist oder so, bitte um Feedback...
Ich programmiere recht viel mit Codesys Umgebungen und hier ist die Synchronität (zumindest bei Ethercat) zwischen Ablaufsteuerung und Ein/Ausgangsdaten ziemlich klar. Zu Beginn des Programms werden alle Eingänge gelesen, dann läuft das Programm ab und das Ausgangsabbild wird geschrieben. Alternativ kann man auch das Schreiben des Ausgangsabbilds an den Anfang setzen, falls das Ablaufprogramm länger dauert und speziell im Motion Bereich Antriebsregler zicken anfangen.
So, ich hab mich jetzt ein wenig mit Siemens S7 und Profibus beschäftigt und mir ist da eines nicht ganz klar. Prinzipiell ist das mit dem Ablauf 1.) Eingangsabbild lesen 2.) Ablaufprogramm abarbeiten 3.) Ausgangsabbild schreiben bei DP-V0 (zyklischer Betrieb) recht klar und ähnlich ab wie bei der Codesys Variante. Aber der Profibus Master läuft ja nicht synchron mit der Steuerung mit oder? Denn dieser hat ja separat die Poll Listenbearbeitung und legt hier in einer Art shared Memory die aktuell gelesenen Daten für den Zyklus des Ablaufprogramms ab.
Dh. aber auch wenn mein Programm im OB1 recht kurz ist und mein Feldbus recht lang, kann es passieren, dass mein Programm öfters durchläuft als ich frische I/O Daten bekomme. Liege ich da richtig? Nochmals anders beschrieben: die zyklische Ablaufsteuerungsabarbeitung und die zyklische Kommunikation der Profibus Masters sind nicht synchronisiert und somit kann ich nie sichergehen, dass zu Beginn meines Steuerungsprogramms ich frische I/O Daten hab, oder?
Gibt es irgendeine Möglichkeit die beiden zu synchronisieren, sagen wir so wie bei Ethercat und der Codesys Runtime, sodass ich zu beginn meiner Ablaufsteuerung immer frische Eingangsdaten hab und am Ende die aktualisierten Ausgangsdaten schreibe? Vielleicht gibt es eine Möglichkeit dies im Quellcode zu machen über ToggleBit oder ähnlich?
Irgendwo hab ich auch noch von den Anwender-Schnittstellen DP-Send und DP-Recv (Bausteinen) gelesen. Könnt ihr mir sagen wozu die gut sind? Muss ich die jeweils ausführen um mit frischen Daten zu arbeiten?
Vielleicht hat auch einer einen Link zu einem Video oder einer guten Doku, ich konnte leider (auch mit Dr. Google) nix so richtig fundiertes finden.
Das Thema ist prinzipiell als Frage für die S7 gedacht, da aber das TIA Portal recht ähnlich läuft, wird das denk ich wohl ähnlich sein oder? Prinzipiell würde mich auch, falls die beiden Varianten nicht ähnlich sind, die Unterschiede auch interessieren...
Vielen Dank schon mal
Sg
M.
Edit: Ich hoffe jeder versteht meine Frage, da ich aus der synchronen-Echtzeitwelt komme kann ich mir einfach nicht vorstellen wie das Zusammenspiel SPS-Programm und I/O-Daten bei den Siemens SPSen funktioniert. Falls es zu kompliziert geschrieben ist oder so, bitte um Feedback...
Zuletzt bearbeitet: