Archestra Intouch Text box zeigt keinen Analogwert ab 1e+7

Dresden_sa

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

Ich benutze eine Text box als Analogwertausgabe und möchte einen REAL Wert einer S7-300 ausgeben.
Ausgegeben wird eine Variable, welche als float definiert ist.
Ob die Ausgabe als Dezimalzahl oder im wissenschaftlichem Format ist ist erstmal egal.
Grundsätzlich funktioniert die Ausgabe für Werte kleiner 10 Mio.
Ab 10 Mio wird leider nur 0.0 ausgegeben. Im einblendbaren Keypad wird bei der Änderung aber der richtige Wert (z.B. 1e007 angezeigt)

Benutze ich die Text box als Stringausgabe und gebe den Wert aus, funktioniert es auch über 10 Mio.
Deklariere ich die Variable in der Archestra als Integer oder Double (Es wird dann wohl eine Art typecasting zwischen IDE und S7-SPS durchgeführt) funktioniert die Ausgabe als Analogwertausgabe auch korrekt.

Warum wird der float-Wert ab 10 Mio nicht mehr korrekt angezeigt?

Archestra IDE 2014 R2 Patch01
Intouch V11.1

Gruß Robert
 
Hallo Robert,

wie lang hast hast du dein EA Feld Deklariert ? Und welchen Opc Server Nutzt du? Bzw die Maxwerte müssen beim Real 2 mal im Variabelen Fenster eingegeben werden. Und hast du die Syntax im Fenster unten dem Datentypen weiter Open richtig zugeordnet? Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort.

OPC Server: Toolbox OPC Power Server 5.19 ("TOP Server")

Meinst Du mit "Syntax im Fenster unten" die Einstellung "Text Format" (Siehe Bild Animationsfeld.PNG)?

Wo soll die 2te Eingabe der Maxwerte genau sein "Value Limits" sieht nur jeweil eine Eignabe für Min/Max vor?


Zu den Bildern:
Animationsfeld.PNG​
gezeigt wird die Projektierung der Text Box mit der Option "User Input"​
Attribut.PNG​
zu sehen ist die Deklaration der Variable als Data type "Float"​
Ausgabe.PNG​
Das Ergebnis in der Intouch-Runtime bei Eingaben ab 10.000.000. Zu sehen ist immer 0.0000 beim Klick öffnet sich das Keypad mit den korrekten Werten z.B. 1e7

Wie gesagt, Eingabe funktioniert.


Animationsfeld.PNGAttribut.PNGAusgabe.PNG
 
Mit Intouch V11 kenne ich mich nicht aus, habe aber ein paar Anmerkungen.

- Kann es sein, daß Intouch REAL/Float-Zahlen ab 10.000.000 gar nicht in der Dezimal-Schreibweise sondern nur in der Exponential-Schreibweise anzeigen kann, weil eine REAL-Zahl gar nicht mehr als 7 Dezimalziffern enthalten kann? Und wieviele Nachkommastellen soll Dein Textfeld ausgeben?
- Kann es sein, daß man bei den Value Limits Minimum und Maximum Zahlen mit Dezimalkomma eingeben sollte?
- Betriebsstundenzähler macht man nicht in REAL/Float sondern in DINT, weil REAL-Zähler irgendwann ab ca 16777000 = 1.6777e+007 stehenbleiben wenn man 1.0 addiert. Wenn Du Deine Zähler in DINT machst, dann umgehst Du das Anzeige/Eingabeproblem.

Harald
 
Hallo Harald,

Das Ausgabeformat der REAL-Werte ist dynamisch. Ich habe einen Screen shot fom format style angefügt. Die alternative Formatierung in wissenschaftlicher Exponentioalschreibweise erzeugt den selben Effekt (bis 9.999.999 habe ich 9.99e+006 ab Wert 1e+7 steht nur noch "0.00e+000" in der Textbox)

Die Angabe von Dezimalstellen bringt keine augenscheinliche Änderung, aber auch keine Fehlermeldung.

Danke für die Info mit dem Hinweis für den Betriebsstundenzähler. Diese Diskussion hatten wir auch schon mit dem Auftraggeber er berharrt aber auf seinem REAL-Format, d.h. wir haben darauf keinen Einfluss. Da ohehin in diesem Wert ganze Stunden gespeichert werden sind 16,7 Mio Stunden hoffentlich ausreichend.

Format Style.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kurzes feed back:

Nach Nachfrage an einen zertifizierten Wonderware System Integrator gibt es anscheinend keine "saubere" Lösung.
Es gibt wohl einen Zusammenhang mit der Vermutung von PN/DP, das eine REAL-Zahl gar nicht mehr als 7 Dezimalziffern enthalten kann. (Wobei mich wundert, dass die Anzeige im wiss. Format dann den selben Effekt aufweist)
Als Behelf wird jetzt die REAL-Zahl[SPS] im HMI als DOUBLE[HMI] deklariert. Es findet dann fachsprachlich (Wonderware) ein "coecing" zwischen SPS und HMI statt, was in meinem Verständnis einer Art type cast entspricht. Die Anzeige funktioniert dann erwartungsgemäß. Nachteile konnten (noch) nicht festgestellt werden. Für unseren Anwendungsfall, also ganze Zahlen bis 16,7 Mio erwarte ich da auch keine Probleme. Grenzwertig wird es eher dann, wenn die genaueren DOUBLE-Werte[64 bit, double precision] nicht mehr exakt auf die REAL-Werte[32 bit, single precision] abgebildet werden können.
 
Zurück
Oben