S7 - Wie programmiert ihr?

HarryH

Level-1
Beiträge
142
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Wir sind eine Maschinenbaufirma die automatische Abfüllmaschinen für Schüttgüter und Flüssigkeiten mit dazugehöriger Förder-/Palettiertechnik baut. Nun hatte ich mit meinen Kollegen die Disskussion über die "richtige" Programmierweise mit S7. Dabei geht es um zwei schon im Ansatz sehr unterschiedliche "Programmierstile". Ich nenne sie mal "Klassisch" und "Modern", obwohl die Begriffe keine Wertung über den Programmierstil sein soll:

1. "Klassisch"
- hauptsächlich globale Operanden (DB, M)
- kaum parametrierte FC's/FB's

Vorteile:
- Gut nachvollziehbare "Signalwege" (--> Gehe zur Verwendungsstelle)
- Leicht nachvollziebar für Außenstehende, welche die Software nicht erstellt haben (z.B. Servicepersonal firmenintern und beim Kunden)

Nachteile:
- Aufwändig zu erweitern, wenn z.B. selber Maschinenteil nochmal dazu kommt. --> Umkopieren aller Merker, DB's, etc. --> Fehlerquelle




2. "Modern"
- objektorientiert -> Funktionalitäten werden so in FB's gekapselt das sie leicht austauschbar sind -> alle Daten werden über die Bausteinschnittstelle übergeben (E, A, DB, UDT, FB).
- so gut wie keine globalen Operanden -> nur Daten aus der Schnittstelle (IN, OUT, STAT)
- bis 4 Ebenen verschachtelte FB's

Vorteile:
- Gute Standardisierung möglich
- Leicht zu erweitern

Nachteile:
- Schwer nachzuvollziehende "Signalwege" (--> Gehe zur Verwendungsstelle ist garnicht möglich)
- Für Außenstehende schwer nachzuvollziehen (z.B. Servicepersonal)
- Erhöhter Zykluszeit


Wie schreibt ihr eigendlich eure Programme? Eher "Klassisch" oder "Modern" (um mal in dieser Begrifflichkeit zu bleiben)? Freue mich über regen Austausch.

Gruß HarryH
 
Hallo,

i.d.R. programmieren wir so wie es gefordert wird. Bei größeren Projekten wird man da oft in sehr enge Korsetts aus lauter fertigen Bausteinen geschnürt, da stellt sich diese Frage gar nicht erst.
Können wir selbst entscheiden, ergibt das meistens einen Mix aus den beiden Stilen. D.h. für wiederholende Funktionen werden fertige Bausteine geschrieben, gerne auch mit Multiinstanzen, allerdings in einer überschaubaren Verschachtelungstiefe. Schrittketten vornehmlich mit S7-Graph, ansonsten hauptsächlich klassisches KOP/FUP.

Gruß Andy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube deine Frage lässt sich gar nicht pauschal beantworten.
Wir versuchen irgendwo einen Mittelweg zu finden.
Merker verwenden wir nur noch für Betriebsarten. Und diese sind weitest gehend festgelegt.
Klassische Zeiten gibt es kaum mehr.
Schrittketten werden in S7-Graph ausgeführt.

Die E/A auf Parameter zu führen hat sich bei uns nicht bewährt.
Du kannst nicht einfach über Querverweis nach Parametern suchen.
Wir gehen - wenn notwendig - einen anderen Weg:
E/A werden stationsweise auf Datenbit umgelegt.
Damit funktioniert "Gehe zu Verwendungsstelle" und unsere Instandhalter sind zufrieden.
Du kannst ja sogar im Kommentar zum DBX die Adresse des Eingangs oder des Ausganges hinschreiben.
Auch Schnittstellen zwischen den Stationen führen wir meist über diese DB.

Gruß
Dieter
 
Zurück
Oben