[Ho...] Posted October 30, 2020 Share Posted October 30, 2020 Guten Morgen, ich stehe derzeit vor folgendem Problem(chen). Ich versuche gerade eine Dezimalzahl aus dem Protokollkopf zu fischen und diese per Resultatselement ins Protokoll zu befördern. Dazu habe ich bisher die Formel "getRecordHead("u_field_Name").asNumber" verwendet und mit einer ganzen Zahl (Eingabe per Integer) funktioniert das auch prima. Nun wird allerdings eine Dezimalzahl abgefragt und ich stehe auf dem Schlauch, weil die Dezimalstellen nicht übertragen werden. Naja, asNumber bezieht sich eventuell auch auf eine ganze Zahl und daher habe ich mal asFloat zufällig probiert, aber das funktioniert leider auch nicht. Leider finde ich keinerlei Info zu weiteren Zugriffs-Atrributen (wie z.B. *.asFloat). Gibt es hierzu irgendwo eine Auflistung? In der PCM-Dokumentation habe ich nichts dergleichen gefunden. Weiterhin würde ich gerne das Eingabefeld entsprechend in der "userfields.ini" formatieren und dort auch nur zwei Dezimalstellen zulassen. Dazu finde ich jedoch nur die Option "type=F", also Fließkommazahlen ohne Begrenzung der Dezimalstellen. Gibt es hier eventuell undokumentierte Optionen? Hintergrund der ganzen Geschichte: Wir möchten anteilige Gewichte per DFQ-Datei mit ins CAQ-System bringen, um unseren Prozess besser steuern zu können. Dazu werden vor der Messung auf dem KMG zwei Gewichtswerte in Gramm ermittelt, die dann mit zwei Dezimalstellen eingepflegt werden sollen. Ich wünsche euch ein schönes Wochenende und bleibt gesund! Gruß Holger Link to comment Share on other sites More sharing options...
[Fl...] Posted October 30, 2020 Share Posted October 30, 2020 Hallo, hab das jetzt mal bei mir ausprobiert und eine Protokollkopfvariable mit einer Zahl beschrieben und sie dann in einem Resultatselement ausgegeben, funktioniert bei mir. Wie wird diese Zahl eingegeben? Wird vielleicht ein "," statt "." als Komma eingegeben? Zum runden direkt im Eingabefeld, Du könntest auch bei der Ausgabe im Resultatselement die Funktion round(Zahl,Anzahl Nachkommastellen) verwenden und sie dann auf 2 Nachkommastellen runden. MfG Florian Link to comment Share on other sites More sharing options...
[Ho...] Posted November 2, 2020 Author Share Posted November 2, 2020 Hallo Florian, danke für Dein Feedback! Genau, Punkt statt Komma ist der entscheidende Hinweis. Sobald in den Eingabe-Parametern das Gewicht mit Dezimalpunkt eingegeben wird, werden auch die Dezimalstellen übertragen. Echt lustig, denn wenn die Protokollkopfvariable als Fließkommazahl deklariert, dann wird automatisch der Punkt durch ein Komma ersetzt, wenn man das Fenster der Eingabe-Parameter ein weiteres Mal öffnet. Allerdings werden unsere Fertigungsprüfer seltsam schauen, wenn sie das Gewicht mit Punkt eingeben sollen. Das wird wohl eher nicht gut gehen. Wenn man die Protokollkopfvariable wenigstens entsprechend formatieren könnte, damit bei falscher Eingabe eine Fehlermeldung erscheint. Gruß Holger Link to comment Share on other sites More sharing options...
[Fl...] Posted November 3, 2020 Share Posted November 3, 2020 Wenn Du den Datentyp "Ohne" auswählst müsste es eigentlich ein Text sein der eingegeben wird dann kannst Du mit einer Schleife das Komma durch einen Punkt ersetzen. Ungefähr so: setRecordHead("u_field_Name","23,80") //Hier beschreibe ich die Protokollkopfvariable weil ich die nicht habe Gewicht = getRecordHead("u_field_Name") GewLen = len(Gewicht) GewichtNeu = "" for i = 1 to GewLen Zeichen = mid(Gewicht,i,1) if Zeichen == "," then Zeichen = "." endif GewichtNeu = GewichtNeu + Zeichen next i message("Vorher: " + Gewicht + cr() + "Nachher: " + GewichtNeu) setRecordHead("u_field_Name",GewichtNeu) Vielleicht gibt es auch eine Möglichkeit ein Zeichen direkt zu ersetzen, die kenn ich aber nicht. 😃 MfG Florian Link to comment Share on other sites More sharing options...
[Ho...] Posted November 3, 2020 Author Share Posted November 3, 2020 Hallo Florian, Du bist mein persönlicher Held, denn das klappt nun einfach hervorragend. Vielen Dank! Falls es noch jemanden interessiert: Den Code habe ich einfach in die Parameter der Prüfmerkmale in den Eingangseinstellung eingefügt und entsprechend geändert (Beschreibung der Protokollkopfvariable und die Nachricht gelöscht, sowie den Namen der Protokollkopfvariable geändert) Den Datentyp habe ich übrigens weiterhin als Fließkommazahl formatiert und damit sind dann schon ein Teil der möglichen Fehleingaben eliminiert. Den geänderten Prüfplan habe ich heute gleich auf der entsprechenden Maschine eingerichtet und es läuft dort auch ohne PCM-Option in der Autorun-Oberfläche. Zur Zeit arbeiten wir aber auch noch mit Calypso 6.6.28, denn ich bin mir nicht sicher, ob es mit der aktuellen Calypso Version noch möglich ist, wenn kein PCM verfügbar ist. Gruß Holger 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