Übung 3.5
Strukturierte Programmierung nach IEC 61131
Für den unten skizzierten Rührkesselreaktor werden Zu- und Ablauf halbautomatisch gesteuert. Das heißt der Bediener aktiviert Pumpen und Ventile manuell über die Faceplates der Anzeige- und Bedienoberfläche, die Abschaltung erfolgt jedoch automatisch durch Verriegelung.
Dabei gelten folgende Regeln:
- Wenn der Stand die Obergrenze LS2 erreicht, sind alle Zulaufventile zu schließen; erreicht der Füllstand die Untergrenze LS1, so sind alle Ablaufventile zu schließen.
- Zu- und Ablaufventile sind gegenseitig zu verriegeln.
- Eine Pumpe darf nie trocken laufen, aber auch nie gegen ein geschlossenes Ventil pumpen.
- Fällt die Temperatur unter einen Grenzwert TS1 oder überschreitet sie den Grenzwert TS2, so sollen Kaltwasserzulauf (KW) bzw. Warmwasserzulauf (WW) gestoppt werden.
- Steigt der Druck über den Grenzwert PS1, sollen alle Ventile und Pumpen ausgeschaltet werden.
- a) Führen Sie eine Softwarestrukturierung durch! Welche Programme und Funktionsbausteine sind zu erstellen?
- b) Entwickeln Sie die benötigten Funktionsbausteine in der Programmiersprache FUP!
- c) Ermitteln Sie die Verriegelungen und kontinuierlichen Schaltungen für eine Cause-and-Effect-Matrix!
- d) Ermitteln Sie auf Basis der Funktionsbausteine aus b) und gemäß der Cause-and-Effect-Matrix aus c) die Programme für die Ventile und Motoren!
- e) Implementieren und testen Sie die Programme in CoDeSys!
Lösung:
- a, b) Das Projekt U3_5_Riegel.project enthält folgende Programme und Funktionsbausteine
Programme: | Funktionsbausteine | glob. Variable: |
LS2 | TYP_BIN | L2 |
LS1 | TYP_BIN | L1 |
TS2 | TYP_BIN | T2 |
TS1 | TYP_BIN | T1 |
PS1 | TYP_BIN | P1 |
NS1 | TYP_IDF1 | N1 |
NS2 | TYP_IDF1 | N2 |
NS3 | TYP_IDF1 | N3 |
NS5 | TYP_IDF1 | N4 |
NS5 | TYP_IDF1 | N5 |
YS1 | TYP_IDF1 | Y1 |
YS2 | TYP_IDF1 | Y2 |
YS3 | TYP_IDF1 | Y3 |
YS4 | TYP_IDF1 | Y4 |
YS5 | TYP_IDF1 | Y5 |
YS6 | TYP_IDF1 | Y6 |
c) Folgende Verriegelungen sind notwendig
- Y1.LOCK = L2.SO V P1.SO V Y2.OUT V Y6.OUT
- Y2.LOCK = L2.SO V P1.SO V Y1.OUT V Y6.OUT
- Y3.LOCK = L1.SO V T2.SO V P1.SO V Y4.OUT
- Y4.LOCK = L1.SO V T1.SO V P1.SO V Y3.OUT
- Y5.LOCK = P1.SO
- Y6.LOCK = L1.SO V P1.SO V Y1.OUT V Y2.OUT
- N1.LOCK = L1.SO V P1.SO
- N2.LOCK = P1.SO V Y1.OUT'
- N3.LOCK = P1.SO V Y2.OUT'
- N4.LOCK = P1.SO V Y5.OUT' V Y3.OUT' & Y4.OUT'
- N5.LOCK = P1.SO V Y6.OUT'
Speicherprogrammierbare Steuerungen für die Fabrik- und Prozessautomation
4. Auflage erschienen im Hanser Verlag, 2015