Anzahl der Ein- /Ausgänge eines FB, FC
Tatsächlich ist Deine Motivation, die Anzahl der E/A eines Bausteins niedrig zu halten nicht nur eine Frage der persönlichen Ästhetik. Denn prinzipiell schreibt man ein SPS Programm nicht für sich selbst, sondern für Andere.
- Für diejenigen, die die gesteuerte Maschine oder Anlage in Betrieb nehmen sollen,
- Für diejenigen, die über das Programm den Grund finden wollen, warum die Maschine /Anlage nichtmehr tut was sie tun sollte,
- Für diejenigen, die nach Jahren eine Funktionsanpassung machen sollen.
- Schließlich für diejenigen, die einmal das Programm auf die nächste Steuerungsgeneration portieren sollen.
Um einen zügigen Onlinetest von weniger geübten SPS Anwendern zu ermöglichen, sollte der FB oder FC im KOP oder FUP darstellbar sein.
Die Größe des FB oder FC sollte auf einen Bildschirm passen ohne hinauf und hinunter zu rollen. So kann man den kompletten Baustein online beobachten.
Die Anzahl der Variablen, die zugleich online beobachtet werden können ist beschränkt. So kann es bei Bausteinen mit sehr vielen E/A passieren, dass Variable nichtmehr angezeigt werden, wenn man am Baustein entlang nach unten rollt.
Leider kann ich jetzt nicht sagen, wo bei einer S7 die Grenze liegt.
Oft wird viel zu viel in einem Baustein versteckt. Manche Funktionen werden transparenter, wenn man vor den Bausteineingang KOP oder FUP Elemete schaltet um der Nachwelt die logischen Verriegelungen z.B. für eine Freigabe zu zeigen.
Des Weiteren sollte alles, was einmal angepasst werden könnte aus dem Baustein heraus vor den Baustein verlegt werden. Denn als Programmierer sieht man es gerne, wenn innerhalb eines einmal geschaffenen FBs oder FCs nichts mehr geändert wird.
Ein goldener Weg ist die Übergabe von Datenbausteinen oder Teilstrukturen eines DB mit Zeigern oder Pointer an eine Funktion. So kann man mit wenig Variablen (Ein - Aus - Automatik - Hand - Elementnummer) eine große Anzahl von Stellern steuern.
Meine Bitte lautet nur, dass ALLE Variablen von außen erkennbar sein sollten.
Zum Beispiel DB-Nummer und Elementnummer per Bausteineingang übergeben und auch die Übergabesymbole lesbar gestalten. Wenn dann die Nachwelt am Baustein entdeckt, dass z.B. ein Ventil-DB aufgerufen wird, so kann man dort nachsehen und in der hoffentlich sauberen Kommentierung entdecken, dass es da noch Entprellungen, Stör- und Quittierungsmerker gibt, eine Timeout Funktion ..etc. ohne dass diese über die Baustein E/A gezogen worden sind.
BFlat