SalvatoreDC
Level-2
- Beiträge
- 7
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Zusammen, ich habe ein Netzwerk für jeden Schieber und diese Netzwerk sieht so aus:
Schieber1

Schieber2

und so weiter, ich würde gerne eine For loop in scl änlich wie diese AWL funktion schreiben die quasi anstatt ein netzwerk pro Schieber, alles in einzige SCL netzwerk macht, beziehungsweise durch Array and For Schleife. Gibt es irgendwo tutorial oder kann mir jemanden das besser erklären?
Ich habe zu eine KI diese frage gestellt und kam diese Pseudo-Source-Code raus
Schieber1

Schieber2

und so weiter, ich würde gerne eine For loop in scl änlich wie diese AWL funktion schreiben die quasi anstatt ein netzwerk pro Schieber, alles in einzige SCL netzwerk macht, beziehungsweise durch Array and For Schleife. Gibt es irgendwo tutorial oder kann mir jemanden das besser erklären?
Ich habe zu eine KI diese frage gestellt und kam diese Pseudo-Source-Code raus
C++:
// Variablendeklarationen
// Eingangsarray (Schieber-Eingänge)
// Annahme: Die Eingänge sind in einem Byte-Array gespeichert
// Z.B. IB0, IB1, IB2... IB13
// Datentyp und Adresse ggf. anpassen
BYTE Schieber_Inputs[14] AT %IB0;
// Ausgangsarray (Schieber-Ausgänge)
// Annahme: Die Ausgänge sind in einem Byte-Array gespeichert
// Z.B. QB0, QB1, QB2... QB13
// Datentyp und Adresse ggf. anpassen
BYTE Schieber_Outputs[14] AT %QB0;
// Temporäre Variable für den Schleifenindex
INT i;
// Start des Codeblocks
BEGIN
// FOR-Schleife zur Iteration durch alle Schieber
FOR i := 0 TO 13 DO
// Logik für jeden Schieber
// Entspricht deinem AWL-Code
// Lade den Eingang des aktuellen Schiebers
// Entspricht L #IB_Schieber1_16
// In AWL hättest du #IB_Schieber2_16, #IB_Schieber3_16 usw.
// Hier verwenden wir den Index 'i', um auf das richtige Array-Element zuzugreifen
IF Schieber_Inputs[i] = 16#01 THEN // Entspricht L BYTE#16#01 und AW sb1 und JZ
// Wenn der Eingang 1 ist, setze den Ausgang auf 1
// Entspricht L #0_Schieber1_16 und L BYTE#16#01 und OW und T
Schieber_Outputs[i] := 16#01;
ELSE
// Andernfalls setze den Ausgang auf FE
// Entspricht sb1: L #O_Schieber1_16 und L BYTE#16#FE und AW und T
Schieber_Outputs[i] := 16#FE;
END_IF;
END_FOR;
END_FUNCTION_BLOCK