CallHeTempi
Level-2
- Beiträge
- 88
- Reaktionspunkte
- 6
-> Hier kostenlos registrieren
Guten Morgen zusammen,
ich bin recht neu in der SCL Programmierung und habe bisher (alles noch auf "Student-Niveau") am meisten Java-Code geschrieben und kenne mich da was die Struktur in Objektorientiertem Programmen angeht ein wenig aus.
Jetzt hab ich hier in den letzten Tagen schon einiges gelernt. Vor allem, das sog. "IF..THEN.. Orgien" nicht besonders vorteilhaft sind.
Daher wollte ich euch hier mal meinen Code posten und um euer Feedback bitten. Vor allem bezüglich Struktur und Übersichtlichkeit.
Ich habe den Code, wie ich es in Java mache in abschnitte "Void" bzw. [FB1..2..3] aufgeteilt und es ist vorgesehen, das diese FB´s dann später natürlich in den Main kommen.
Sicherheitsfunktionen [FB3]
Variabelfunktionen [FB5]
ZählTimerfunktionen [FB4]
Förderbandsteuerung [FB2]
Das ist bisher nur ein Zwischenergebnis. Normalerweise würde ich, wie in [FB3] keinen extra FB öffnen um nur eine Zeile reinzuschreiben aber es werden noch mehrere Funktionen integriert.
Vielen Dank im Voraus
ich bin recht neu in der SCL Programmierung und habe bisher (alles noch auf "Student-Niveau") am meisten Java-Code geschrieben und kenne mich da was die Struktur in Objektorientiertem Programmen angeht ein wenig aus.
Jetzt hab ich hier in den letzten Tagen schon einiges gelernt. Vor allem, das sog. "IF..THEN.. Orgien" nicht besonders vorteilhaft sind.

Daher wollte ich euch hier mal meinen Code posten und um euer Feedback bitten. Vor allem bezüglich Struktur und Übersichtlichkeit.
Ich habe den Code, wie ich es in Java mache in abschnitte "Void" bzw. [FB1..2..3] aufgeteilt und es ist vorgesehen, das diese FB´s dann später natürlich in den Main kommen.
Sicherheitsfunktionen [FB3]
Code:
"Variabeln".NotHalt := NOT #LichtschrankeNotAus;
Variabelfunktionen [FB5]
Code:
"Variabeln".AblageVoll := #Sensor_6 AND "Variabeln".RoterZähler = 3;
"Variabeln".AblageLeer := "Variabeln".RoterZähler = 6;
ZählTimerfunktionen [FB4]
Code:
"IEC_Timer_0_DB_4".TON(IN := "Variabeln".AblageVoll,
PT := #Timer,
Q => #Einschaltverzögerung);
"IEC_Counter_0_DB_1".CTU(CU:=#Do21,
R:=#ResetRoterZähler,
PV:=1,
CV=>"Variabeln".RoterZähler);
#ResetRoterZähler := "Variabeln".RoterZähler = 6;
Förderbandsteuerung [FB2]
Code:
// Void Zufuhrsteuerung
#DcMotorZufuhr := "Variabeln".NotHalt AND NOT #KapazitiverSensorCJB_18GM_E2;
"Variabeln".Magnetisch := #InduktiverSensorZufuhr;
#Din_27 := "Variabeln".Magnetisch;
#Din_26 := NOT "Variabeln".Magnetisch AND #KapazitiverSensorCJB_18GM_E2;
// Void Ablagesteuerung
#DcMotorZurück := (#EinschalVerzögerung OR #DcMotorZurück) AND NOT #ReflexionslichttasterOBT200_18GM60_E5;
#DcMotorVor := ("Variabeln".AblageLeer OR #DcMotorVor) AND NOT #NäherungssensorLTK_1120_303;
Das ist bisher nur ein Zwischenergebnis. Normalerweise würde ich, wie in [FB3] keinen extra FB öffnen um nur eine Zeile reinzuschreiben aber es werden noch mehrere Funktionen integriert.
Vielen Dank im Voraus