Real zahl umwandeln in Decimal zahl mit 4 stellen!!

PhSch105

Level-1
Beiträge
44
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen

bin echt am verzweifeln...

hab eine s7et200s und ein Beijer HMI Display

Mein Problemm

ich will eigendlich nur meinen Scalierten real wert auf dem display in decimal anzeigen lassen>
Z.b.Scale=5,558543 > MD200 > HMI Display (int16, int32, Float) > 5,55

nur zeigt der mir alles an nur nicht das was ich will!!
Da kommt z.b. bei einem scalierten wert von 7.998887 das raus 19192415425,00

Am display kann ich nur auswählen zwischen ganzal, decimal, hex... und kann dann das komma setzen.

hat mir vileicht jemand einen Tip?
 
Nimm im Display "Float" und skalier erstmal nix. Dann dürfte dein Wert als Realzahl angezeigt werden
 
Also
Ich benutz TIA V11
Hab eine S7 ET 200 S
Und Ein IX T10A von Bejer
Verbunden über Profinet

Was das display macht weis ich nicht
weil alle anderen zahlen/werte kommen eigendlich richtig an (nur halt als ganzzahl z.b. 8 oder 88..)
nur irgend ein problem gibts mit dem komma

Weis auch nicht obs das da am display bringt wen ich im sag er sol das komma an zweiter stelle oder so machen
weil normalerweise sag doch die sps vo das komma ist!

gibts eine möglichkeit die real zahl so zu wandeln das man sie in ein anderes format bekommt mit komma?

Weil ich brauch nur 0.00-10.00
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt kein anderes Format ausser Real mit Komma.
Aber du könntest den Realwert laden mit 100 multiplizieren und dann in Integer wandeln.

Also
L #wert // als 32Bit Real/Float
L 1.000000e+002
*R
RND
T #neuerwert // als 32Bit Ganzzahl

Im Display dann neuerwert laden als 32Bit Integer und Komma zwei stellen nach links schieben.

mfg René
 
das wird nicht viel bringen dann steht nacher bei scaliertem wert 7.998888 > RND > 8 > *R = 800

ist auch so habs grad ausprobiert...

also irgend was stinkt da gewaltig so was pobliges und ich bekomms nicht hin

hab auch schon mehrmals den MD gewechselt
 
Die Reihenfolge hast du jetzt falsch beschrieben aber 800 wäre ja auch korrekt darum nehme ich an die Operationen hast du in der richtigen Reihenfolge durchgeführt.

oder willst du 799 anzeigen? dann wäre RND- die Operation der Wahl
Dir sind die regeln des Rundens bekannt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
?
Die regeln des rundens ... was gibts dann den für regeln, wen man rundet rundet man!

ja hab ich falsch beschrieben!

hab grad nochmal getestet und jetzt zeigt er mir zumindest mal den wert an also bei 7.55555 hab ich nacher 750
nur wen ich am display das komma setzen will macht er das nicht.

wie bekomm ich jetzt in die 750 das komma rein (7,50)?
 
Zuletzt bearbeitet:
Die regeln des rundens ... was gibts dann den für regeln, wen man rundet rundet man!

Man rundet nicht einfach man entscheidet auch wie gerundet werden soll.
Zur nächstgelegenen Zahl? Das macht RND
Zur Tieferen Zahl? Das macht RND-
Oder doch lieber zur höheren? Das macht dann RND+

Da bei deiner Zahl 799.8888 die 8 weggestrichen wurde war die nächste Zahl eben 800.

Wie das Dezimalzeichen verschoben wird kann ich dir aber nicht sagen. Kenne das Display eben nicht.

Wie kommst du jetzt von 7.55555 auf 750? Da musst du ja erst multiplizieren, dann ABrunden nach INT und nochmal multiplizieren

mfG René
 
Zuletzt bearbeitet:
danke für den kleinen lergang...

Ich hab das bei mir jetzt so drinnen:

L MD220 (scallierter wert 7.998855)
L 100.0
*R
RND-
T MD230 (gehender wert Display 799)

Am display kann ich auswählen zwischen Ganzzahl und Decimalzahl, bei decimal kann ich ein komma einbinden.
wen ich das so setzt das es nach der sieben steht (7,99) zeigt er mir nacher aber immer noch 799 an.

aber egal das sollte reichen, mach einfach ne andere einheit draus.
obwohl es schöner wäre mit komma ;)

Nochmals Danke an alle
 
Hallo,
könntest Du vielleicht ein Screenshot von der Eingabemaske einfügen, wo Du die Kommastelle eintragen kannst? Ein Bild sagt mehr als tausend Worte.

Rafikus
 
oman also die lösung ist=

man speichert den scallierten wert nicht im MD sondern diereckt im DB und stellt den wert auf Float
dann wird der wert im Display auch mit komma angezeigt....

>>

Scallierung (5.555555) > DB43.DBD0 (real) >Display > Floate > Decimal und komma an 2 stelle und auf 4 stellen begrenzen > Anzeige= 5.55


Trotz dem noch mal danke an alle
 
Zuletzt bearbeitet:
ne befriedigend ist das sicher nicht aber wäre schön wen du es mir vileicht erklären könntest

für mich muss der wert grad nur stimmen weil die anderen process fasen davon abhängen und ich e schon so gut wie keine zeit mehr hab

Bin e nur froh das es so weit schon alles läuft,
ich hatte 2007 eine schulung auf die s7300 und Step7 5.4
seit dem wahr ich so gut wie nicht mehr in der Programmierung unterwegs und jetzt schmeist mich mein chef ins kalte wasser
mit der begründung das ich vor 5 jahren eine schulung hatte und ich ja alles können müsste ....
 
Zurück
Oben