Echtzeit mit S7-300 ????

Integer

Well-known member
Beiträge
73
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ausgangslage:
Es gibt immer wieder Situationen, wo das Echtzeit-Steuern mit einer S7-300 CPU an die Grenzen stösst.
Ein Standart Programm auf einer neuen 300-C CPU schaft Zykluszeiten von ca. 10 bis 30ms. Für schnelle Signale und Rektionen ist dies jedoch vielfach zu lang.

Frage:
Was für Tricks gibt es, um Echtzeit-Steuerung (ca. 1ms) eines Steuerteils zu erreichen?
Wie könnte folgendes Beispiel gelöst werden?
Beispiel:
Mittels optischem Sensor (SPS-Eingang) einen Antrieb Starten (SPS-Ausgang). Wichtig, die Zeit vom Erscheinen des Eingangssignals bis zum Ausgangssignal für Starten des Antriebs soll kleiner 1ms sein.

Lösungsansätze:
Das schnelle erfassen des Eingangssignals kann über einen schnellen on-board Eingang der CPU erfolgen und auch den Alarm OB40 aufrufen, doch wie setze ich den Ausgang sofort auf true, ohne den Normalzyklus abzuwarten?
Ein weiterer Lösungsansatz, speziell für komplexere Echtzeit Aufgaben währe die Baugruppe FM352-5, welche eine fixe Zykluszeit von 1us hat und über sehr schnelle Ein / Ausgänge verfügt, doch kostet die Lösung zusätzlich ca. 1400 Euro.

Kennt Ihr weitere Lösungsansätze? :?:

Für Inputs bin ich Euch dankbar [/b]
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Versuche mal, den Ausgang mttels
L AW x
T PAW x
anzusprechen.
Habe nicht im Kopf, ob dann sofort auf den Ausgang geschrieben wird oder auch erst zwischen den programmzyklen. Ansonsten gibt es meiner Erinnerung nach eine SFC oder SFB, um sofort Ausgänge zu aktualisieren. (Hilfe zu STEP7)
Ansonsten kannst Du vielleicht diese eine Verknüpfung ausserhalb der SPS in Hardware realiesieren.
 

Ulrich Klakow

Member
Beiträge
18
Punkte Reaktionen
0
Geht nicht oder kaum

Das was du willst geht mit einer S7 nicht.

Die Zeit vom einlesen einer Zeit bis zur Ausgabe einer Zeit setzt sich
aus folgenden Zeiten zusammen:
1) Eingangsverzögerung der Baugruppe selbst
2) Einlesen des Eingangs (Rückwandbuszeiten usw.)
3) Bearbeiten im Programm
4) Ausgabe des Eingangs an die I/O-Baugruppe
5) Ausgangsverzögerung

Neben dem Problem schnell genug an die Signale heranzukommen,
must du auch beachten das selbst bei Alarm-OB's (Interrupt)
eine Zeit vergeht bis der OB überhaupt bearbeitet wird.
Weiterhin kannst du die Kommunikationlast nicht auf 0% (MPI-Bus)
bringen sonst kommst du nicht mehr an die CPU heran.
Was vielleicht geht, ist eine schnelle S7-CPU in integierten I/O's nahezu
nur mit der Funktion der Echtzeitanwendung zu betrauen und die anderen
aufgaben von einer anderen CPU vornehmen zu lassen. Ob das Funktioniert kannst du überprüfen indem du mittels SFC64 die Systemtick's (nur bei CPU's mit 1ms-Einheiten) in jedem Zyklus auslist
und immer schaust ob zwischen den Zyken mehr als 1ms vergangen ist.
Sonst kannst du nur ein Digital-Oszi an einen deiner Ausgänge hängen und ein jedem Zyklus ein Ausgangsbit invertierst.

Ich schätze wenn ich das zu machen hätte würden die Untersuchungen ob das wirklich sicher geht mindestens eine Woche dauern.

Gruß, Ulrich Klakow
 
Oben