Hallo Chris,
hier ein Beispiel, wie man bis zu 32 Datensätze (Sollwerte) in einer Tabelle anlegen und abrufen kann.
Die Tabellenzeile wird mit einem 4-Bit binären Wahlschalter (0-15) ausgewählt.
Bit3 Bit2 Bit1 Bit0 Schalterpos.
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
...
1 1 1 1 15
Diese 4 Bits werden auf die M1 bis M4 (Merker, Bits) geschrieben, die sich in MB1 befinden. Damit stehen die verschiedenen Schalterpositionen als dezimale Zahl in MB1 (Merker-Byte=8 Bit). Die M5-M8 sind jetzt nicht verwendbar.
Im Baustein RE01 sind in der Tabelle die Drehzahlsätze für deine Antriebe zeilenweise angelegt.
Wählt man nun mittels MB1 (ein Wert von 0-15) eine Tabellenzeile an, werden die 8 Werte (D1 bis D8) (wir benötigen ja nur 3) dieser Zeile ausgewählt.
Eine steigende Flanke am Bausteineingang RE01T_ bewirkt, dass die betreffenden Werte auf die Ausgänge geladen werden. Ist dann noch der Enable-Eingang des Bausteins (RE01EN) aktiv, stehen die Tabellenwerte an den Bausteinausgängen D1-D8 an.
Da du sicher Frequenzen in die Tabelle eintragen möchtest, müssen diese Werte noch in Spannungen 0 bis 10 V umgerechnet werden.
Das passiert in den LS-Bausteinen für jeden Sollwert separat.
Ein einfacher Dreisatz:
f 0 bis 50 Hz = 0 bis 4095 Inc. = 0 bis 10 V -> Werden 2047 Inc. am Analogausgang ausgegeben, entspricht das ca. 5 V = 25 Hz.
Die Freigabe der Sollwerte erfolgt über den I5. Erst dann stehen die Sollwerte an den Analogausgängen an.
Für den I5 kannst du natürlich das Freigabesignals deines Programms verwenden.
Die neuen Werte werden immer erst nach einer steigenden Flanke an RE01T_ übernommen. - Antriebe zuerst ausschalten, dann Drehzahlen wählen, dann wieder einschalten.
Die permanent angezeigte Textanzeige (D01) zeigt dir alle Informationen zu der Schalterstellung, den aktiven Bits und den Werten (Inc. und Frequenz), die an die beiden Analogausgangsgruppen ausgegeben werden.
Denke bitte dran, die Sollwerte in der Tabelle zu korrigieren. Ich habe da Dummy-Werte hinterlegt.
Grüße
Konni