[He...] Posted September 22, 2020 Share Posted September 22, 2020 Hallo Community! Ich habe 20 Einzelabstände ( Messwerte ), aus denen ich mit einem Resultatselement das Maximum ermittle. Jetzt dürfen aber 3 der Abstände ( Messwerte ) die maximale Toleranz überschreiten. Somit möchte ich den 4. größten Messwert aus den 20 Messwerten ermitteln. PCM steht zur Verfügung. Hat jemand von euch eine Idee wie ich die Aufgabe lösen kann. Vielen Dank schon mal. Link to comment Share on other sites More sharing options...
[An...] Posted September 22, 2020 Share Posted September 22, 2020 Anbei ein kleines Excel-Programm (VBA).Contribution_22_09_2020_1.xlsm Link to comment Share on other sites More sharing options...
[He...] Posted September 23, 2020 Author Share Posted September 23, 2020 Hallo Andreas! Super Variante. Wie bekomme ich diese Exceldatei bzw. das Makro in meinen Prüfplan? Der Ablauf sollte automatisch ablaufen. Gruß und Danke! Helmut Schuh Link to comment Share on other sites More sharing options...
[An...] Posted September 23, 2020 Share Posted September 23, 2020 Wahrscheinlich garnicht. Wollte hier nur die "Grundidee" demonstrieren. Von PCM habe ich keine Ahnung. Aber vielleicht lässt sich das "Eins-zu-Eins" abschreiben? Link to comment Share on other sites More sharing options...
[Re...] Posted September 23, 2020 Share Posted September 23, 2020 Hallo Helmut, die Datein mit <addToFile> in eine Datei schreiben.(In meinem Fall testX.txt auf C:\\temp) Diese kann dann mit folgendem Befehl ausgelesen werden: mynumber = readListFile("C:\\temp\testX.txt").asSortedCollection mynumbermax = mynumber.last // Letzter Wert ist der Max Wert display("Max.Wert = ",mynumbermax) mynumbermax4 = getTechnologySegment(mynumber,17) // Wert Nummer 17 = 4. größter Wert) display("4.größter Wert = ",mynumbermax4) Grüße Reiner Link to comment Share on other sites More sharing options...
[He...] Posted September 24, 2020 Author Share Posted September 24, 2020 Hallo Reiner! Vielen Dank für deine Hilfe!!!!! 😃 😃 😃 😃 Wir haben es heute getestet und es hat den gewünschten Erfolg gebracht. Gruß Helmut Link to comment Share on other sites More sharing options...
[Mi...] Posted September 25, 2020 Share Posted September 25, 2020 Habe gerade auch mal mit der Idee von Reiner gespielt, allerdings treffe ich auf Komplikationen, siehe Bild. Die Zahl 10.1 wird nicht korrekt sortiert, dementsprechend stimmen die Ergebnisse nicht. Das hat nichts mit Punkt und Komma zu tun, das habe ich schon versucht, indem ich die Punkt durch Komma in der *.txt ersetzt habe. Irgendwie erschliesst sich mir die Logik von Calypso an der Stelle nicht. Link to comment Share on other sites More sharing options...
[Er...] Posted September 25, 2020 Share Posted September 25, 2020 Ja, Reiner hat wahrscheinlich vergessen, das readListFile() string objekte zurückgibt. Und zeichenfolgen werden nicht so sortiert, wie sie es von dezimalzahlen erwarten. Hier ist eine ineffiziente lösung, die jedoch das problem beleuchtet. aListObjectContainingStrings=readListFile("c:\...\file.txt") for i = 1 to aListObjectContainingStrings.size if i == 1 aNumericalBuild=getParameterNamed(aListObjectContainingStrings,i).asDouble else aNumericalBuild=aNumericalBuild+", "+getParameterNamed(aListObjectContainingStrings,i).asDouble endif next i your4thHighestValue=compute("getParameterNamed(list("+aNumericalBuild+").sort,list("+aNumericalBuild+").size-4)") In Ihrem fall sehe ich jedoch keinen grund, in eine externe datei z lesen / schraiben. for i = 1 to 10 if i == 1 aNumericalBuild=getActual("Durchmesser_Kreis"+i).actual else aNumericalBuild=aNumericalBuild+", "+getActual("Durchmesser_Kreis"+i).actual endif compute("getParameterNamed(list("+aNumericalBuild+").sort,list("+aNumericalBuild+").size-4)") Ich habe einen vorschlag in "My Voice", der dieses "problem" mit einer einfachen Lösung angeht. https://portal.zeiss.com/my-voice/product/066cc67a-e50f-470f-9884-a3ec3253c37c/request/7769f237-fb02-4948-b5d5-42724ae58ed4 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