Sonstiges Ausgänge lesen

meikelneit

Level-2
Beiträge
172
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Tag,

ich würde gerne mal allgemein eine Frage geklärt haben. Wieso genau empfiehlt es sich, Ausgänge nicht lesend zu verwenden. Ich habe das so gelernt und mache das auch nie, aber ich weiß im Grunde garnicht wieso. Bei Siemens zumindestens ist es ja so, dass das Prozessabbild im Grunde auch nur ein Speicherbereich ist. Gibt es prinzipiell Gründe das nicht zu machen, abgesehen von "unsauberem" Programmierstil?

MfG
Meikelneit
 
Ein Grund, der mir einfällt wäre, daß die Ausgänge ja an mehreren Stellen im Programm geschrieben werden könnten (zB setzen und rücksetzen), und das Lesen je nach Stelle (wenn unsauber ausgeführt) ein anderes bzw. falsches Ergebnis liefert während die tatsächlichen Ausgänge am Ende des Zyklus korrekt geschrieben werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja "unsauberer Programmierstil" wär ja schon ein triftiger Grund ;)

Grundsätzlich sollte man Ausgänge nur einmal Schreiben und Eingänge nur einmal Lesen, wenn ein Ausgang oder Eingang mal umgeändert werden muss, weil sich im Schaltschrank was ändert, oder nen Ausgang defekt wäre, muss man es nur an einer stelle im Programm ändern. Vor allem bei großen anlagen ein Thema..
 
"Eingänge nur einmal Lesen" halte ich aber für Diskussion fähig...
Wenn das Argument nur Arbeit/Probleme beim verschieben ist: Dafür gibt es "umverdrahten", Referenz, Quelle mit Suchen/Ersetzen, .....
Für ganz allgemeines wie "Steuerung ein", Automatikmodus, etc. : Ja, da macht das Sinn die sofort auf Merker/DBXs zu legen (Ergibt sich aber auch fast immer sowieso)
Wenn das aber eine Lichtschranke ist: schon praktisch wenn Referenz sofort alle Verwundungen anzeigt und nicht erst wieder ein Zwischenbit dabei ist ....
 
Nachdem sich mein Standard weiter entwickelt hat, kann ich sagen das ich Hardware I/Os nur einmal lese oder schreibe. Auch eine Lichttaster hat einen FB. Die schnittstelle sieht immer gleich aus (Ctrl, State,Params). Der FB hat dann diverse Funktionen. Qdirect, Qdelayed als Statusangaben, oder CheckTrue und CheckFalse als An- & Abwesenheits Prüfungen und er generiert über FB_Alarms und eine Textliste immer seine eigenen Fehlermeldungen. Aber I/Os haben alle nur eine Referenz.

Als Update zum Thema.
 
Das Schreiben der Ein- / Ausgänge einmalig irgendwo im Programm hilft auch ein weiterer Folge bei der Fehlersuche. Zustände die man für die weitere Bearbeitung braucht werden meist Statisch oder via Merker realisiert.

Ein Lesen der Ausgänge wird meist genutzt um Funktionen im Programm zu testen (Einschaltreihenfolge,...). Beim fertigen Programm sollte dann jedoch mit Rückmeldungen gearbeitet werden (Schützrückmeldung, FU - läuft, Drehzahlwächter, ...).
 
Zurück
Oben