Look Up Table auf Steuerung Laden

manseluk

Level-1
Beiträge
112
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

Ich würde gerne mehere Lookup Tables auf meine Steuerung laden. Pro Table benötige ich für meine Anwendung 2^20 Werte. Gibt es eine Möglichkeit, wie ich diese möglichst einfach auf meine Steuerung laden kann? Am besten in einem Array. Alternativ könnte ich die Werte auch der Initialisierung berechnen, braucht aber dann einiges an Ressourcen (5* 2^20 Werte). Ich arbeite derzeit mit TwinCat2

Liebe Grüsse
Lukas
 
Ich würde evtl. versuchen das ganze über eine Datenbankanbindung zu realisieren. Oder brauchst du einen schnellen Zugriff auf die Werte? Ich weiß garnicht wie gut TwinCAT bzw. die Steuerungen mit 5- 20 MB (je nachdem was für ein Datentyp) an Daten klarkommen.
 
Der Speicher ist kein Problem. Ich muss pro 1ms Zyklus 100 Werte aus den 2^20 Werten in ein Array abspeichern können. Auf einem uC habe ich schon ähnliches realisiert und die Werte in einem header-file abgespeichert. Gibt es etwas ähnliches auch für eine SPS?
 
Du könntest die Tabelle in den Daten eines FB ablegen den du mit einem externen Editor erstellst und als .exp abspeicherst, und das Array dort mit den Initialwerten versehen.
Code:
FUNCTION_BLOCK LookUpTable
VAR_INPUT
	index : DINT;
END_VAR
VAR_OUTPUT
	value : REAL;
END_VAR
VAR
	data : ARRAY[0..5242880] OF REAL :=
        1.0, 2.0, 3.0, 4.0  (* und so weiter *)
        ;
END_VAR
Ist nur die Frage ob sich der PLC-Editor daran nicht verschluckt wenn du diese Datei importierst. Mal angenommen du hast Real-Zahlen mit 10 Zeichen pro Ziffer, wird die Datei schnell über 100 MByte groß.
Garantiert stürzt der Editor aber ab, wenn du den FB instantiert hast und dann das data-Array der Instanz online aufklappen willst ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Daten kann man ja auch zum Programmstart aus einer Datei oder wie schon gesagt aus einer Datenbank laden.
Ich persönlich würde ein kleines C# Programm schreiben das sich die Daten aus einer Datei holt (gern auch binärcodiert um die Dateigröße klein zu halten) und die dann via ADS ins SPS-Programm schiebt.
Ein externes C# Programm desshalb, weil Dateioperationen da viel einfacher umzusetzen sind als direkt im SPS Programm (was aber auch gehen würde, die FBs dafür liefert Beckhoff ja gleich mit)
 
Zurück
Oben