Frage zu ARRAY

HansWurst01

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

Ich hätte da eine Frage zu ARRAYS. Und zwar möchte ich eine Positive Flanke auf Set eines RS-Glied setzen. Der sog. R_TRIG und das RS verhalten sich aber im ARRAY anders als gedacht. Beim RS im ARRAY sind alle Ausgänge 0 bis 15 auf TRUE, dabei müsste aber nur ein Ausgang auf TRUE gesetzt sein?

Das ist jetzt eine Variante zum Test, das Problem dabei wie oben beschrieben

FOR i := 0 TO 15 DO
IF S1 AND S2 THEN A1 := 1;
ELSE A1 := 0;
END_IF
END_FOR

FOR i2 := 0 TO 15 DO
RT(CLK:=A1[i2] , Q=>A2[i2] );
END_FOR

FOR i3 := 0 TO 15 DO
RS1(SET:=A2[i3] , RESET1:=Sres , Q1=>A3[i3] );
END_FOR
 
Zuletzt bearbeitet:
Hallo,

zum Verständnis du hast ein Eingangs- und ein Ausgangs Array á 16 Elemente und möchtest diese als R_Trig auswerten, oder?

Du hast aber nur einen einzelnen R_Trig bzw. RS-Block genutzt oder? Darin liegt dann auch dein Problem, dein R_Trig hat in einem Zyklus auch nur einen Zustand - Deine For-Schleife wird innerhalb dieses Zyklus komplett durchlaufen und schreibt dir immer den selben Wert in alle Array-Elemente.

Also müsstest du wahlweise auch ein Array an R_Trig etc anlegen oder dir selbst eine Logik zur Auswertung innerhalb der Schleife bauen.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmal Danke für die Antwort:

Also müsste ich ein ARRAY [0..15] OF R_TRIG; anlegen. Das verstehe ich noch, aber mit der FOR Schleife habe so meine Probleme. Über ein Bsp. mit FOR wäre ich dankbar?
 
Mal noch ein Hinweis (falls das da oben das komplette Programm sein sollte, und nicht nur ein aus verschiedenen Programmteilen zusammengestückelter Auszug):

Die FOR-Schleifen oben kann man zusammenlegen, also statt
Code:
FOR ...
  Anweisung1;
END_FOR

FOR ...
  Anweisung2;
END_FOR

FOR ...
  Anweisung3;
END_FOR
einfach
Code:
FOR ...
  Anweisung1;
  Anweisung2;
  Anweisung3;
END_FOR
 
Zurück
Oben