Mit diesem Beispiel kann man sehr gut den Sinn der strukturierten Progammierung erklären.
Ohne Kapselung der Logik müßte man jeden Motor einzeln programmieren.
Mit Kapselung (Programm im FC1) kann der FC1 einfach mehrfach im OB1 aufgerufen werden.
Beschreibung der Aufgabe:
Es soll das Programm für einen Stern-Dreieck-Motor geschrieben werden.
Es sind insgesamt 4 Motoren.
Das Programm soll in einer FC (FC1) realisiert werden.
Im OB1 soll dann der FC1 vier Mal aufgerufen werden.
Hinweise:
Die Zeitverzögerung soll mit einem Timer realisiert werden.
Wichtig ist dabei dass der Timer ebenfalls als IN-Parameter der FC übergeben wird.
Ein Timer für alle Motoren würde nicht funktionieren.
Symboltabelle
Code: Alles auswählen
//Eingänge
M1Ein E 0.0 BOOL
M1Aus E 0.1 BOOL
M2Ein E 0.2 BOOL
M2Aus E 0.3 BOOL
M3Ein E 0.4 BOOL
M3Aus E 0.5 BOOL
M4Ein E 0.6 BOOL
M4Aus E 0.7 BOOL
//Ausgänge
M1Netz A 0.0 BOOL
M1Stern A 0.1 BOOL
M1Dreieck A 0.2 BOOL
M2Netz A 0.3 BOOL
M2Stern A 0.4 BOOL
M2Dreieck A 0.5 BOOL
M3Netz A 0.6 BOOL
M3Stern A 0.7 BOOL
M3Dreieck A 1.0 BOOL
M4Netz A 1.1 BOOL
M4Stern A 1.2 BOOL
M4Dreieck A 1.3 BOOL
//Timer
VerzögerungM1 T 1 TIMER
VerzögerungM2 T 2 TIMER
VerzögerungM3 T 3 TIMER
VerzögerungM4 T 4 TIMER
Der FC1 hat folgende Parameter:
Ein (IN, BOOL)
Aus (IN, BOOL)
Verz (IN, TIMER)
Netz (IN_OUT, BOOL)
Stern (IN_OUT, BOOL)
Dreieck (IN_OUT, BOOL)
"Ein" und "Aus" werden nur gelesen, deshalb können diese als Eingangs-Parameter definiert werden.
Die anderen Parameter werden gelesen und beschrieben (deshalb als IN-OUT Parameter)