[Ch...] Posted June 18, 2019 Share Posted June 18, 2019 Gibt es einen PCM-Befehl damit ich die Nachkommastellen bei Programmbeginn auf 5 und beim Ende auf 3 setzen kann? Link to comment Share on other sites More sharing options...
[Da...] Posted June 26, 2019 Share Posted June 26, 2019 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: Link to comment Share on other sites More sharing options...
[Kl...] Posted July 1, 2019 Share Posted July 1, 2019 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 More sharing options...
[Fa...] Posted March 26, 2020 Share Posted March 26, 2020 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 More sharing options...
[Kl...] Posted March 26, 2020 Share Posted March 26, 2020 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 More sharing options...
[Er...] Posted March 27, 2020 Share Posted March 27, 2020 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 More sharing options...
[Fa...] Posted March 27, 2020 Share Posted March 27, 2020 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 More sharing options...
[Fa...] Posted March 27, 2020 Share Posted March 27, 2020 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 More sharing options...
[Kl...] Posted March 27, 2020 Share Posted March 27, 2020 Hello, the sequence …,0,n) is smart and know now I like such short Code. Thanks Eric Link to comment Share on other sites More sharing options...
[Fa...] Posted March 30, 2020 Share Posted March 30, 2020 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 More sharing options...
[Kl...] Posted March 30, 2020 Share Posted March 30, 2020 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 More sharing options...
[Fa...] Posted March 30, 2020 Share Posted March 30, 2020 Es ist eine SPF Datei. für eine Siemenssteuerung. Diese erstelle ich ganz einfach mit "addToFile" und .SPF Link to comment Share on other sites More sharing options...
[Er...] Posted March 30, 2020 Share Posted March 30, 2020 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 More sharing options...
[Re...] Posted March 30, 2020 Share Posted March 30, 2020 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 More sharing options...
[Fa...] Posted March 31, 2020 Share Posted March 31, 2020 Please sign in to view this quote. Was bedeuted das .asFloat? Was ist das für eine Funktion? Habe das noch nie gesehen. Link to comment Share on other sites More sharing options...
[Er...] Posted March 31, 2020 Share Posted March 31, 2020 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 More sharing options...
[Da...] Posted May 4, 2020 Share Posted May 4, 2020 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 More sharing options...
[Co...] Posted January 27, 2021 Share Posted January 27, 2021 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 . 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? Im Voraus vielen Dank ! Link to comment Share on other sites More sharing options...
[Er...] Posted January 27, 2021 Share Posted January 27, 2021 Das antwort ist schon da. Hier ist ein andere alternative: a=-10.772443312947d round(a,3).asNumeralString Link to comment Share on other sites More sharing options...
[Co...] Posted January 28, 2021 Share Posted January 28, 2021 Eric, vielen, vielen Dank für so schnelle Antwort! Leider, 0.0 ist immer in txt. Datei. Ich melde mich heute Abend mit neue PrtScn 🫣 Link to comment Share on other sites More sharing options...
[Kl...] Posted January 28, 2021 Share Posted January 28, 2021 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 More sharing options...
[Co...] Posted January 28, 2021 Share Posted January 28, 2021 First thanks Klaus , thanks Eric! Ich bin verzweifelt. Hier ist prt sc von meinem Test Skript: Dann Resultate: 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 More sharing options...
[Er...] Posted January 28, 2021 Share Posted January 28, 2021 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 More sharing options...
[Co...] Posted January 28, 2021 Share Posted January 28, 2021 Eric noch einmal Danke. Sehr nett von dir! Ich teste script morgen. Dir wünsch ich schöne Abend Link to comment Share on other sites More sharing options...
[Co...] Posted January 29, 2021 Share Posted January 29, 2021 Perfekt! 🙂 Eric DANKE DANKE! Tack så många gånger! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in