Hallo,
ich habe zum Typ VARIANT auch noch eine Frage.
Ich möchte gerne wissen, wie ich den Pointer vom MB_Master auf mein Instanzarray "MB_Daten[0]" zeigen lassen kann und
wie ich dann die Daten wieder ausgeben kann.
Im Grund will einen FB, der die Werte über den MB_Master ausliest, diese Zwischenspeichert, konvertiert und dann über einen PTR in einen anderen DB schreibt.
Es soll am FB aber nur der DB der bereinigten Daten angegeben werden, also nicht der DATA_PTR vom MB_Master.
Die Daten die ausgegeben werden sollen stehen im Array "Daten[]".
Im FB habe ich unter anderem folgende Variablen angelegt:
Static-->
......
modbusFB MB_MASTER
MB_Daten Array[0..50] of UInt
Daten Array[0..50] of Real
Code:
IF (#State = 1) AND (#ModbusFB.DONE = true) THEN
[COLOR=#ff0000]#Daten[0][/COLOR] := ((INT_TO_REAL(#MB_Daten[0])) / 10);
[COLOR=#ff0000] #Daten[1][/COLOR] := ((INT_TO_REAL(#MB_Daten[1])) / 10);
#ModbusFB.REQ := false;
#State := 2;
END_IF;
IF (#State = 0) AND (#ModbusFB.DONE = true) THEN
#ModbusFB.MODE := 0;
[COLOR=#ff0000] #ModbusFB.DATA_PTR := #MB_Daten[0]; <-------- [/COLOR]
#ModbusFB.DATA_ADDR := 40001;
#ModbusFB.DATA_LEN := 21;
#ModbusFB.REQ := true;
#State := 1;
END_IF;
Ich hoffe ich konnte das einigermaßen verständlich ausdrücken :smile:
Gruß Spawnsen