Fliesskommazahlen mit MODBUS

Wambo

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich stelle von einem tumben LCD-Bedienterminal auf ein MODBUS-Terminal um (siehe auch hier.)
Das Bedienterminal war bisher einfach ein doofer Client, der die vom Master (Steuerung) bereitgestellten ASCII-Zeichen einfach nur darstellte. Jetzt, über MODBUS, läuft das genau anders herum, das Bedienterminal ist MASTER, die Steuerung das Device als SLAVE.
Für normale Zahlenwerte und Texte funktioniert das auch, aber ich stosse jetzt auf ein Problem mit Parametern, die bisher 12-stellig mit 10 Nachkommastellen angezeigt und eingegeben werden können. Das sind vor allem Umrechnungsfaktoren der Encoder usw. die so genau dargestellt werden müssen. In der C-basierten Steuerung sind dafür normale double-Werte (8 Bytes) vorgesehen.

Damit stosse ich jetzt aber die MODBUS-Grenze, das hier für einen Fliesskommawert nur ein DWORD (4 Bytes) vorgesehen sind.

Wie komme ich jetzt wieder an meine 10 dezimalen Nachkommastellen? Mit 4 Bytes für Mantisse und Exponent klappt das nämlich nicht.

Ich dachte schon an eine ASCII-Repräsentation, wie ja auf dem doofen bisherigen Terminal auch, die einfach angezeigt wird.

Was meint ihr?
 
Hallo Wambo,

Ich frage mich ob das Eingabe-Gerät einen 64 Bit Double Wert verarbeiten kann ?

Falls ja, kannst du das in der Kommunikationstabelle des Modbus (falls du so was hast) oder in sonstiger Kommunikations-Konfiguration eventuell tricksen. D.h z.B. 2 x 32 Bit aneinandergereiht übertragen und in der SPS als Double betrachten ?

Für mich hört sich das mit Ascii nicht schlecht an, falls du auf der SPS Ascii-to-Int mit der notwendigen Genauigkeit ausführen kannst.

bg
bb
 
Zuviel Werbung?
-> Hier kostenlos registrieren
trenn doch nachkommastellen ab und pack se in einen seperat, also ganzzahl abziehen dann rest mit 10^10 multiplizieren dann beide übertragen, dann dort den umgekehrten weg nachkomma durch 10^10 teilen und ganzzahl wieder hinzuaddieren
 
Einige Touchpanel können das

Einige Touchpanel können das übrigens von Haus aus. Kinco HMI können in der Programmiersoftware EV5000 auch Modbus Registerbereiche bestehend aus 4 Words an Eingabefelder anhängen. Die Anzahl der Nachkommastellen in der Eingabe bestimmt ihr in der Konfiguration selbst.

Format im HMI ist in dem Fall Double (64 Bit), nicht Float (32 Bit).

Siehe Screenshots anbei, zeigt Adresslänge als 4 Words rot markiert ... einmal in der Modbus-Anbindung (in diesem Fall Modbus TCP, RTU funktioniert auch) und einmal in der Definition der Zahlenformate

Steffen
 

Anhänge

  • Kinco Screenshot.jpg
    Kinco Screenshot.jpg
    119 KB · Aufrufe: 14
  • Kinco Screenshot 2.jpg
    Kinco Screenshot 2.jpg
    134,6 KB · Aufrufe: 16
Zuletzt bearbeitet:
Zurück
Oben