Hallo
Objektorientiert geht in S7 leider nicht. FB's oder FC's sind keine Objekte. Eher Module mit oder ohne Gedächtnis. In
Codesys wurde was versucht aber nicht wirklich. Bei B&R kann man mit C programmieren, aber Objektorientiert ist es auch nicht. Bei Simotion mit ST sowieso nicht. Obwohl zum Teil von dem großen S was anderes behauptet wird.
Ich finde Beckhoff hat den richtigen weg mit der Integration ins Visual Studio eingeschlagen. Wir haben vor, uns das demnächst genauer anzuschauen.
Bei S7 machen wir bei uns immer so, dass wir eine gemeinsame Datenbasis erstellen, auf die verschiedene Funktionen zugreifen.
Ein Beispiel für ein FU:
Man erstellt ein UDT mit allen Daten die benötigt werden, auf die mehrere Funktionen zugreifen. An jede Funktion wird das UDT als Parameter übergeben. Funktionen werden nach und nach erstellt. Was man so gerade braucht. Nach einer Weile hat man ganz viele, für fast alle Aufgaben.
FU_PB_Recive
FU_GET_F
FU_SET_F
FU_SET_Mmin
FU_SET_Umin
FU_SET_Param
FU_RUN
FU_GET_STATUS
FU_GET_ERROR
Usw.
Wenn man jetzt gaaaaaaaaaaaanz weit rausholt, dann ist das ein möchte gerne Objekt. UDT mit Feldern(nur public
) und die Funktionen als Instanzfunktionen die auf die Felder zugreifen. Wichtig ist, dass man auf die Daten nur mit den Funktionen zugreift(Saubere Schnittstelle halten.)
Wir haben letztes Jahr eine Anlage zum Teil mit C# programmiert. So konnte ich mir die Zukunft vorstellen
Leider mit TIA Portal hat man uns von Programmieren zum Klickern degradiert. Mindestens ich sehe das so!
PS.
Wir Bauen Maschinen für uns selbst deshalb müssen wir uns mit „fremden“ Vorgaben nicht herumplagen.