TIA Tipps zur "besseren" Programmgestaltung für Anfänger

ansgar96

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

ich weiß nicht ob ich mich hier schon mal vorgestellt habe, aber kurz zu mir: Mein Name ist Ansgar, bin 18 Jahre alt und komme aus Mönchengladbach. Ich mache momentan ein Duales Studium als Elektrotechniker für Automatisierungstechnik.

Da wird in unserem Ausbildungsbetrieb die Programmierung der S7 nur oberflächlich gemacht haben, und ich mich auch hobbymäßig mit Elektronik und Elektrotechnik beschäftige, habe ich mir selbst eine S7 315-2DP gekauft.

Ich habe mir für den Anfang als Projekt eine einfach Fußgängerampel ausgesucht, mit Tag/Nachtprogramm. Das ganze soll dann im laufe der Zeit zu einer größeren Kreuzung mit Vorzugsschaltung, Links/Rechtsabbieger und per Analogwert vorgebbaren Rotzeiten werden.

Nun ja, ich habe jetzt ein Programm geschrieben, welches eine einfache Fußgängerampel mit Tag/Nachtbetrieb darstellt. Funktioniert auch alles so wie es soll, aber ich würde gerne mal hören was ihr anders machen würdet und warum.

Ich hänge mal das ganze Projekt aus TIA V13 hier als .zip an, wäre super wenn da jemand drüber guckt und mir Tipps gibt :)

Freundliche Grüße
Ansgar

Anhang anzeigen Ampel.zip
 
  • Im deinem FC verwendest Du die temporären Schrittvariablen (teilweise) zuerst lesend (z.B. NW3, #"Schritt 6")
    Der Zustand von Temp-Variablen ist nicht definiert. Meist steht zwar 0 drinn, aber darauf darf man sich nicht verlassen.
    Bei Temp-Variablen muss er erste Zugriff immer schreibend erfolgen.
    Alternativ mach einen FB draus und verwende statische Variablen.
  • Wenn Du statt "Schritt x" "x_Warten_auf_Rot" verwendest kann man dein Prog. leichter nachvollziehen.


Und hier noch zwei Hinweise, wenn Du dich mal als Fortgeschrittener fühlst:
  • Wenn Du statt den SIMATIC Timern (T1, T2, etc) TON und TOF verwendet, kannst Du universell verwendbare Bausteine schreiben, die keine festen Ressourcen verwenden.
  • Die Verwendung von Merken ist bei der S7-300 ok .
    Bei S7-1200 und S7-1500 sollte das aber möglichst vermieden werden, weil es diese CPUs ausbremst. Außerdem sind es auch feste Ressourcen.
    Also möglichst nicht verwenden (oder nur vorrübergehend zum Testen während der Entwicklung/Inbetriebnahme)
    Am besten speicherst Du die Werte eines FB in dessen DB ab.

Aber lass dich blos nicht von meinen Anmerkungen entmutigen!
 
Zurück
Oben