-> Hier kostenlos registrieren
Hallo,
ich komme bei einem Problem mit Step7 V5.3 nicht weiter und hoffe, dass Ihr mir helfen könnt. Ich programmiere in SCL.
Mein Ziel ist es, einen FB zu erstellen, der Rechenoperationen mit Werten aus einem DB ausführen kann und die Ergebnisse in temporären Variablen bzw. einem neuen DB speichert.
Das einfache Kopieren eines DB-Inhalts in einen anderen DB ist mir bereits gelungen, dazu habe ich
verwendet.
Nach dem gleichen Schema würde ich jetzt gerne eine Berechnung einbinden, beispielsweise das Runden von Werten. Anschließend möchte ich mich gerne an einer Interpolation versuchen, die dem Matlab Befehl interp2 entsprechen soll.
Mein erster Ansatz lautet
Dieser Code soll Bestandteil der Deklaration eines FB's sein, welcher nachher DB's als Input Werte erhält, die an den angegebenen Stellen REAL- Werte beinhalten.
Leider wird mir die Fehlermeldung über Unzulässige Operandentypen ausgegeben, da beim Übersetzen offensichtlich nicht erkannt wird, dass hinterher ein REAL Wert an der Stelle stehen soll/wird.
Habe bereits probiert, temporäre Variablen als Ergebnis der Rechenoperation anzugeben, das Problem scheint aber da zu liegen, wo Quell_DB.DB[6]*100 gerechnet werden soll.
Hat jemand eine Idee, wie das Problem zu lösen ist?
Gruß,
Yannik
ich komme bei einem Problem mit Step7 V5.3 nicht weiter und hoffe, dass Ihr mir helfen könnt. Ich programmiere in SCL.
Mein Ziel ist es, einen FB zu erstellen, der Rechenoperationen mit Werten aus einem DB ausführen kann und die Ergebnisse in temporären Variablen bzw. einem neuen DB speichert.
Das einfache Kopieren eines DB-Inhalts in einen anderen DB ist mir bereits gelungen, dazu habe ich
Code:
Ziel_DB.DB[i] := Quell_DB.DB[i]
Nach dem gleichen Schema würde ich jetzt gerne eine Berechnung einbinden, beispielsweise das Runden von Werten. Anschließend möchte ich mich gerne an einer Interpolation versuchen, die dem Matlab Befehl interp2 entsprechen soll.
Mein erster Ansatz lautet
Code:
VAR_INPUT
Quell_DB : BLOCK_DB;
Ziel_DB : BLOCK_DB;
END_VAR
Ziel_DB.DB[2] := (Quell_DB.DB[6]*100)/100;
Leider wird mir die Fehlermeldung über Unzulässige Operandentypen ausgegeben, da beim Übersetzen offensichtlich nicht erkannt wird, dass hinterher ein REAL Wert an der Stelle stehen soll/wird.
Habe bereits probiert, temporäre Variablen als Ergebnis der Rechenoperation anzugeben, das Problem scheint aber da zu liegen, wo Quell_DB.DB[6]*100 gerechnet werden soll.
Hat jemand eine Idee, wie das Problem zu lösen ist?
Gruß,
Yannik