Jump to content

Nachkommastellen verändern


---
 Share

Recommended Posts

Wofür genau brauchst du das?

Wenn es dir darum geht das Arbeitsprotokoll während der Messung mit 5, das eigentliche Protokoll aber mit 3 Nachkommastellen darzustellen kannst du unter Arbeitsumgebung => Sprache folgendes einstellen:
581_df5bce69ec6279a5236dae36547bdf8c.png
Link to comment
Share on other sites

1828_456af3b1f68bdf9e42fec0fecd5b3605.png
mM ist es besser im Prüfplane die Ausgabe nicht dem Zufalls zu überlassen, sondern eine exakte Festlegung vorzunehmen.
Kostet zwar ein wenig Zeit, funktioniert aber immer, egal was in den Grundeinstellungen fest gelegt ist.
Link to comment
Share on other sites

  • 8 months later...
Hallo zusammen,

Bei mir ist die Frage auch gerade aktuell wegen PCM und darum schreibe mal wieder in dieses Topic

ich habe das Messprotokoll auf 3 Kommastellen eingestellt, die Bedieneroberfläche auf 4.

hole ich mir nun Messwerte mit PCM in eine Variabel und schaue mir die Variabel über die "Berechnen-Lupe" an sind die Werte in der Variabel mit 3 Nachkommastellen. Lasse ich sie mir per Display anzeigen hat sie aber 16 Stellen.
beim übergeben der Variable in ein txt-File hat die dort auch 3 Nachkommastellen.

kann man das irgendwie auch auf 4 oder mehr Kommastellen einstellen?
Link to comment
Share on other sites

Hallo
die in CALYPSO eingestellten Nachkommastellen werden nicht konsequent verwendet.

display(OffsetBalligkeit) liefert -0.0027105220105526d, d.h. interne Anzahl der Nachkommastellen mit "d" für decimal am Ende 😮

OffsetBalligkeit = getActual().actual
display("Offset-Balligkeit = ",strElement(1,"d",text(round(OffsetBalligkeit,6))))

Formatierung
1. runden auf gewünschte Nachkommastellen mit "round"
2. Umwandeln Zahl => Text mit "text"
3. Entfernen des "d" am Ende über "strElement(1,"d", …) => Offset-Balligkeit = -0.002711 😃

Viel Erfolg
Link to comment
Share on other sites

Oder:
theDouble=-0.0027105220105526d
formatL(theDouble,0,5)
Da scheint es dir egal zu sein, ob es ein Wert oder eine Zeichenfolge ist. "formatL" wird ein erstellen "StringWithDigits"
Link to comment
Share on other sites

Hallo,

Vielen Dank für die schnelle Antwort.

Ok. mein Parameter wird über Display korrekt angezeigt mit 6 Nachkommastellen
[img]https://s19.directupload.net/images/200327/8mxns6ui.png[/img]

Mit der Berechnen-Lupe zeigt es die "OffsetBalligkeit" ja wie gewohnt mit 3 Nachkommastellen an. und werden auch so in eine Txt geschrieben welche ich wegschicke.
[img]https://s19.directupload.net/images/200327/wg3fe4ek.png[/img]

Kann der Code mit dem Round auch mit dem getactual().actual kombiniert werden? Daran scheitere ich nämlich gerade.
Oder kann dieses Informationfenster egal was gemacht wird nur 3 Nachkommastellen anzeigen?
Link to comment
Share on other sites

Please sign in to view this quote.

Hey Danke dir Eric,

Das hat jetzt gleich funktioniert bei mir. Wert wird auch mit 5 Nachkommastellen weggeschrieben.
Link to comment
Share on other sites

Ich melde mich nochmal,

Ich habe jetzt zwar die 4 Nachkommastellen. aber mit einem "String with digits" können nun keine Berechnungen durchgeführt werden. wie zum Beispiel:

Wert11a=getActual("Abstand 21.95 12Uhr").actual
if (Wert11a<21.85) or (Wert11a>22.05)
Wert11a=21.95
display("Abstand 21.95 12Uhr nicht plausibel, Für Mittelwert wird Nennmass übergeben.")
endif

hier habe ich mir geholfen indem ich die Berechnung auch in "String with digits" umgewandelt habe.

Bei Einigen Merkmalen muss ich aber die Abweichung weitergeben. (gleiches Werkzeug aber unterschiedliches Mass)
und Wenn der Wert 0 übergeben wird wird die Berechnung der Werkzeugkorrektur an der Fertigungsmaschine übersprungen.
Also brauch ich einen Wert, da wir kleine Toleranzen bis ±0.002 haben möchte ich die Abweichung auch mit 4 Kommastellen rechnen.
Da stehe ich jetzt an da es mit "String with digits" kein Absolut mehr berechnen kann.

Wert7a=formatL((getActual("-Schnitt 2Uhr").x),0,4))
if (Wert7a<formatL(18.9)) or (Wert7a>formatL(19.10))
Wert7a=0.0001
display("Abstand 19.00 2Uhr nicht plausibel, Für Mittelwert wird keine Abweichung übergeben.")
endif
Abweichung1=abs(19.00-Wert7a)

habt ihr hier auch einen Lösungsansatz?

Gruss Fabian
Link to comment
Share on other sites

Wert11a = 21.80 //getActual("Abstand 21.95 12Uhr").actual
if (Wert11a < 21.85) or (Wert11a > 22.05)
Wert11a = 21.95
display("Abstand 21.95 12Uhr nicht plausibel, Für Mittelwert wird Nennmass übergeben.")
endif

hier habe ich mir geholfen indem ich die Berechnung auch in "String with digits" umgewandelt habe.

Bei Einigen Merkmalen muss ich aber die Abweichung weitergeben. (gleiches Werkzeug aber unterschiedliches Mass)
und Wenn der Wert 0 übergeben wird wird die Berechnung der Werkzeugkorrektur an der Fertigungsmaschine übersprungen.
Also brauch ich einen Wert, da wir kleine Toleranzen bis ±0.002 haben möchte ich die Abweichung auch mit 4 Kommastellen rechnen.
Da stehe ich jetzt an da es mit "String with digits" kein Absolut mehr berechnen kann.

Wert7a = 0.15 // formatL((getActual("-Schnitt 2Uhr").x),0,4))
Abweichung1 = 19.00 - Wert7a
if (Abweichung1 < 18.9) or (Abweichung1 > 19.10)
Wert7a = 0.0001
display("Abstand 19.00 2Uhr nicht plausibel, Für Mittelwert wird keine Abweichung übergeben.")
endif

habt ihr hier auch einen Lösungsansatz?

Antwort
Das 2-te IF funktioniert nur mit numerischen Werten.
Leider sehe ich hier nur die display-Ausgabe. Welchen Wert und wie wird er an die Fertigungsmaschine übergeben?
Link to comment
Share on other sites

Es spielt keine Rolle, wie Sie im Beispiel sehen. Calypso berechnet intern mit mehr Dezimalstellen.

In Ihrem Fall kommt es darauf an, wie viele Dezimalstellen Sie angeben.
aValue=0.000990
bValue=0.000012
formatL(aValue,0,3).asFloat+format(bValue,0,2).asFloat
Link to comment
Share on other sites

Hallo,

wenn man den erzeugten String wieder als Zahl wandelt müsste es doch gehen mit der Berechnung.
Wichtig ist das beim rausschreiben der Daten immer die Nachkommastellen von Calypso genommen werden.
Diese also im Prüfplan auf 4 oder 5 einstellen.

clearParameter()
// Anzahl Nachkommastellen im PrüfplanEditor auf 5 setzen
Wert7a = formatL(18.9054123,0,5) // formatieren auf String mit 5 Nachkommastellen
Wert7aN = val(Wert7a) // umwandeln des erzeugten Strings in Zahl | mit der kann auch gerechnet werden
display(Wert7a,cr(),Wert7aN) // Anzeige
addToFile("test.txt",Wert7a,cr(),(Wert7aN)) //Schreiben auf File
Link to comment
Share on other sites

Es wird in einen Float-Wert konvertiert. Man sollte bedenken, dass Float-Werte normalerweise nur eine begrenzte Genauigkeit haben, aber in diesem Fall ist das kein Grund zur Sorge.
Link to comment
Share on other sites

  • 1 month later...

Please sign in to view this quote.

I also caught myself saying "Thank you, Eric" at the computer screen. I know 🙂 rough monday.
Link to comment
Share on other sites

  • 8 months later...
Hallo Zusammen

Ich bin relativ neu im Messtechnik und im Script schreiben auch. Diese Forum ist sehr hilfreich. Viele Profis sind hier. Ich habe folgendes Problem. Ich muss einfache txt. Datei mit resultat erstellen. Ich habe viele Formel ausprobiert. Bei Kontrolle zeigt es richtig .

3940_768424e8ab1476e602ce5b0529207763.png

Aber im Datei selber (.txt) zeigt mir immer 0.0 am Schluss ( "d" am schluss war auch thema aber mit formel ist weg). Ich kriege 0.0 am schluss einfach nicht weg 🫣 . Hat jemand Idee wie ich das weg bekomme?
3940_cab06765f6877c4b81489079a3d6e72c.png

Im Voraus vielen Dank !
Link to comment
Share on other sites

Hello Colin,

the formating looks well.

Please post the command you use to write the line inside the text file.

.VALUE_C= |-10.7220.0|
-----------------------------???
Could be possible that this is the reason?

Klaus
Link to comment
Share on other sites

First thanks Klaus , thanks Eric!

Ich bin verzweifelt. Hier ist prt sc von meinem Test Skript:

3940_b9937934ffd333bb95036ede5d89da29.png

Dann Resultate:

3940_355a4ad768e91a559b20aadb95f21cfa.png


Ich benutze Calypso version 5.8. Wenn ich direkt kontroliere zeigt mir richtig an. Aber i txt. datei zeigt immer "0.0" am ende 😭
Link to comment
Share on other sites

Almost there..
Value1=123.1231231231d
Value2=432.35252525d
addToFile("c:\temp\123123.txt",".Test1=|"+Value1,+"|"+cr (),".Test2=|"+Value2,+"|") //Take care of your + and commas.
addToFile("c:\temp\123123.txt",".Test1=|"+round(Value1,3).asNumeralString+"|"+cr()+".Test2=|"+round(Value2,3).asNumeralString+"|") //Correct output..
Link to comment
Share on other sites

 Share

×
×
  • Create New...