-> Hier kostenlos registrieren
Hallo zusammen
Ich habe folgendes Problem. Ich lese mit einer S7-400 via Remote IO(IM155 ST) ein PAC3200 über Modbus RTU aus.
Die Werte werden in einem FB im STAT Bereich in einen Array abgefüllt.
Nun ergeben jeweils 2 Register einen float Wert. Ich habe das Ganze mit Schieben des ersten Registers probiert. Ich bekomme zwar einen Wert heraus, zum Beispiel bei der Frequenz von 50.0, ändert sich dieser aber z.B. auf 49.98, gibt mit die Funktion 49.75 aus. Etwas dazwischen gibt es nicht.
Funktion:
L #IN_WORD_1
T #TMP_1_Real
L #TMP_1_Real
SLD 16
T #TMP_2_Real
L #IN_WORD_2
T #TMP_3_Real
L #TMP_2_Real
L #TMP_3_Real
+R
T #OUT_Real
Habt ihr einen Lösungsansatz, damit ich den Wert genauer bekomme?
Da ich das ganze in einem FB erstelle, ist ein Laden/Transferieren absolut, leider nicht gewünscht. (Wenn ich es zu Testzwecken mache, um die Zahl zu kontrollieren, dann funktionert es schon mit Laden/Transferieren).
Danke für eure Hilfe
Grüsse
onename
Ich habe folgendes Problem. Ich lese mit einer S7-400 via Remote IO(IM155 ST) ein PAC3200 über Modbus RTU aus.
Die Werte werden in einem FB im STAT Bereich in einen Array abgefüllt.
Nun ergeben jeweils 2 Register einen float Wert. Ich habe das Ganze mit Schieben des ersten Registers probiert. Ich bekomme zwar einen Wert heraus, zum Beispiel bei der Frequenz von 50.0, ändert sich dieser aber z.B. auf 49.98, gibt mit die Funktion 49.75 aus. Etwas dazwischen gibt es nicht.
Funktion:
L #IN_WORD_1
T #TMP_1_Real
L #TMP_1_Real
SLD 16
T #TMP_2_Real
L #IN_WORD_2
T #TMP_3_Real
L #TMP_2_Real
L #TMP_3_Real
+R
T #OUT_Real
Habt ihr einen Lösungsansatz, damit ich den Wert genauer bekomme?
Da ich das ganze in einem FB erstelle, ist ein Laden/Transferieren absolut, leider nicht gewünscht. (Wenn ich es zu Testzwecken mache, um die Zahl zu kontrollieren, dann funktionert es schon mit Laden/Transferieren).
Danke für eure Hilfe
Grüsse
onename