Step 7 Ausgänge

blurry333

Level-1
Beiträge
88
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann mir mal einer nochmal erklären warum man einen Ausgang nicht 2 mal im Programm zuweisen darf.

z.B.

A1.0 = 1
A1.0 = 0

Das ist doch glaub ich nicht verlaubt oder
 
Weil die letzte Zuweisung gewinnt!

Am Anfang des Zyklusses der PLC wird dieser Staus der letzten Zuweisung (also Status Ax.y) an des PAA übertragen.
(Früher wurde das PAA am Ende geschrieben, ändert aber nichts am Prinzip)

Ist gleich wie wenn man Merker mehrfach zuweist!
Ggf. S/R überlegen ...

Ps. dürfen darf man Ausgänge Mehrfach zuweisen, frage ist nur ob es so Sinnvoll ist oder nicht ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Dürfen tut man schon, aber wie oben schon geschrieben es gewinnt der letzte!

Das kann (muss nicht unbedingt, aber meist) zu unübersichtlichen Programmen führen.

Für Spezialfälle wenn es um "jede µs" geht muss man das sogar hin und wider machen (dann schreibt man meist direkt auf den Ausgang (also PAW, . . .)

Wenn man was öfter im Programm beschreiben will dann besser Toggeln (Set und Reset). Muss man aber auch gut überlegen damit dann das Prog noch übersichtlich bleibt.
 
Wo kann man eigentlich die Zykluszeit der SPS einstellen ? Das ist doch frei wählbar oder. Normal sind glaub ich 50ms oder ?
 
Die Zykluszeit ergibt sich aus der Größe/Anzahl der Anweisungen und Speicherbelegung!
Die Siemens hat normal keine feste Zykluszeit wie manch andere Steuerungen, außer du baust noch ne entsprechende Schleife ein :p!

In der HW-Konfiguration kann man die Überwachungszeit einstellen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Zykluszeit ergibt sich aus der Größe/Anzahl der Anweisungen und Speicherbelegung!
Die Siemens hat normal keine feste Zykluszeit wie manch andere Steuerungen, außer du baust noch ne entsprechende Schleife ein :p!

In der HW-Konfiguration kann man die Überwachungszeit einstellen ...

Zeile1: U E1.0
Zeile2: U E1.1
Zeile3: = A1.0

Wie lange wäre die Zykluszeit für dieses Programm *gg* . Ist ernst gemeint.
Heisst das wenn er Zeile 3 abgearbeitet hat, dann beginnt der nächste Zyklus?
 
Zeile1: U E1.0
Zeile2: U E1.1
Zeile3: = A1.0

Wie lange wäre die Zykluszeit für dieses Programm *gg* . Ist ernst gemeint.
Heisst das wenn er Zeile 3 abgearbeitet hat, dann beginnt der nächste Zyklus?

Also der Ablauf ist im Prinzip folgender (ich beachte mal Neustart usw. nicht):

PAA schreiben
OB abarbeiten
PAE einlesen

Daher kommt neben der Zeit für den Code auch noch die Bearbeitung für lesen und schreiben der PAs.
Die Abarbeitungszeit für die ANweisungen kann man aus dem jeweiligen Steuerungshandbuch (Operationsliste) entnehmen, d.h. ist auch CPU abhängig.

Bei einer 315 CPU kostet zB eine U bzw. O Verknüpfung je 0,05µs und die Zuweisung mit = 0,08µs Zeit ...
 
Ich zitiere mal :
Ausgangssignale dürfen im Programm nicht mehrmals „geschrieben“ werden, weil zuvorberechneteWerte im PAA durch nachfolgende Werte überschrieben werden. Die gefürchteten„Mehrfachzuweisungen“ führen immer zu Programmfehlern!

Scheinbar darf man einen Ausgang doch nicht 2 mal schreiben ???

A1.0 = 1
A1.0 = 0

Wäre nicht mal erlaubt ?


Und dann hab ich gerade noch gelesen, wenn die Zyklusüberwachungszeit überschritten wird geht die SPS automatisch in Stop . Was soll das denn ?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Begründung, weswegen du den Ausgang nicht doppelt beschreiben sollst hast du doch selbst gerade gepostet.

Wennd er Watchdog anspricht (Zykluszeitüberwachung) geht die CPU in Stopp, das ist völlig korrekt. Eine reine Vorsichtsmaßnahme. Wenn das Programm fehler verursacht, könnte es ja sein, das ungewollte (evtl sogar gefähliche) Zustände auftreten.

EDIT:
Wikipedia schrieb:
Im Speziellen werden Watchdogs in von Mikrocontrollern gesteuerten elektrischen Geräten eingesetzt, um einem Komplettausfall des Gerätes durch Softwareversagen zuvorzukommen. Verhindert wird der Reset eines automatischen Mikrocomputersystems, indem die Software in regelmäßigen Abständen dem Watchdog mitteilt, dass sie noch ordnungsgemäß arbeitet.
 
Scheinbar darf man einen Ausgang doch nicht 2 mal schreiben ???

A1.0 = 1
A1.0 = 0

Wäre nicht mal erlaubt ?

Dürfen darf man schon, doch die erste Zuweisung bewirkt nicht wirklich was außer Verwirrung (*) weil ja erst in der "Systemecke" außerhalb des OB1 der zuletzt zugewiesene Zustand des Prozessabbilds (A1.0) auf die Peripherie (PAW = Ausgangsbaugruppe) geschrieben wird.

(*) Wenn eine HMI den A1.0 beobachtet und anzeigt, dann wird die Anzeige für den Ausgang flackern, weil das HMI manchmal auch den Zustand zwischen den Zuweisungen abfragt.


Und dann hab ich gerade noch gelesen, wenn die Zyklusüberwachungszeit überschritten wird geht die SPS automatisch in Stop . Was soll das denn ?
Das ist eine Schutzfunktion, die verhindern soll, daß die Anlage unkontrollierbar läuft.
Weil z.B. Programmierer nun mal nicht perfekt sind und gerne Softwarefehler einbauen oder auch (äußerst selten) die SPS einen Fehler haben kann.

Solange das Anwenderprogramm abgearbeitet wird (also der OB1 und davon aufgerufene Bausteine), werden keine Eingänge abgefragt und keine Ausgänge geschaltet - z.B. ein Drücken einer STOP-Taste in dieser Zeit wird nicht erkannt und bewirkt nichts. Erst wenn der OB1 seinen Durchlauf beendet hat, kommt das System in die "Systemecke" wo die Peripherie-Ausgänge geschrieben werden und Peripherie-Eingänge gelesen werden. Damit die SPS kurze Ereignisse mitbekommt, muß sie in kürzeren Abständen die Eingänge abfragen, d.h. die Zykluszeit darf nicht länger dauern als das Ereignis. Üblicherweise ist eine Zykluszeit-Überwachung von max 150 ms eingestellt, wenn das Programm innerhalb dieser Zeit nicht in der Systemecke war, dann wird das Programm zwangsgestoppt und die Ausgänge abgeschaltet, um das System in einen ungefährlichen Zustand zu bringen.

Harald
 
Zurück
Oben