Jump to content

Ablauf nach Bedingung beenden


---
 Share

Recommended Posts

Guten Morgen,

ich hab für all unsere Taster ein automatisches Kalibrierprogramm geschrieben. Funktioniert auch alles soweit.
Wenn alle Taster kalibriert wurden, wird noch Sigma und Radius auf einem Protokoll ausgegeben. Sollte irgendein Wert nicht passen, wird der jeweilige Taster nochmals kalibriert.
Jetzt hatten wir den Fall, dass beim Referenztaster das Sigma schon nicht gepasst hat. Jetzt würde ich gerne nach dem Kalibrieren des Referenztasters eine Abfrage machen ob der Wert passt oder nicht. Sollte er nicht passen soll das Programm gleich abgebrochen werden und nicht alle Taster noch kalibriert werden.
PCM hab ich leider nicht. Ich hab das jetzt so gelöst, dass ich bei dem Kalibrieren eine Bedingung reinsetze wo eben genau diese Abfrage gemacht wird. Es funktioniert auch. Nur würde ich gerne noch eine Text oder so ausgeben wo man sieht warum das Programm abgebrochen wurde. Ist das irgendwie möglich? Hier ist noch ein Screenshot von der Bedingung.
1694_b2b891dd23b749855c0ef42431c91971.jpg
LG
Mathias
Link to comment
Share on other sites

Mit einer einzelnen Bedingung wird das wohl nicht klappen, da du ja nur die Alternative hast, entweder das CNC sofort abzubrechen, oder hinter dem Element weiterzumachen (das nur wenn es keine Nachbedingung ist).
Deswegen musst du ein bisschen basteln, um das mit mehreren Bedingungen hinzukriegen.
Du könntest z.B. ein Textelement mit dem Hinweis direkt nach dem Referenztaster einfügen und die Std-Abweichung dort abfragen (Vorbedingung!). Wenn sie zu groß ist, wird das Textelement ausgegeben, andernfalls wird es übersprungen. Also hier dann den Haken bei CNC-Abbruch rausnehmen.
Dann müsstest du noch eine weitere Bedingung auf die erste Tasterkalibrierung nach dem Textelement legen (wieder Vorbedingung) und dort die Std-Abweichung nochmal abfragen. Wenn sie zu groß ist, dann CNC-Abbruch.
Ist ein bisschen durch die Brust ins Knie geschossen, aber was besseres fällt mir ohne PCM nicht ein.
Und bitte dran denken, daß ein Textelement nicht mit PiWeb funktioniert...
Link to comment
Share on other sites

Guten Morgen Norbert,

an diese Möglichkeit hab ich selbst schon gedacht. Aber ich muss ehrlich sagen, ich bin auf keine Lösung gekommen. Die Idee mit der Bedingung im zweiten Taster werd ich ausprobieren. Auf das wäre ich nicht gekommen. An die Textelemente usw. hab ich auch schon gedacht. Aber ich bin nie auf eine funktionierende Lösung gekommen 🙂
Danke für den Tipp 🙂
Link to comment
Share on other sites

Ich wollte gestern auch schon eine Lösung mit einer einzelnen, aber genau andersrum formulierten Bedingung posten, bis ich dann gesehen habe, dass die gar nicht funktioniert 😃
Der Haken ist halt wirklich, dass man als alternative Aktion nur den CNC-Abbruch hat. Das macht vieles unmöglich. Falls ich zwischendurch etwas Zeit habe, schaue ich mal, ob ich eine funktionierende Lösung hinkriege.
Link to comment
Share on other sites

Hallo,

habe meine Idee hierzu noch nicht testen können, aber es müsste in etwa so funktionieren:
  • als erstes die Einmessung des Referenztasters ohne Nachbedingung
  • Dann ein Resultatselement mit der Vorbedingung getProbe("1","CZReferenztaster").stdProbeDev > 0.001 (evtl. mit Kommentar das die Einmessung des Referenztasters wiederholt werden muss
  • Alle anderen Einmessungen und Resultatselemente in eine Gruppe zusammenfassen und die Vorbedingung verwenden ausser das Ja und Nein vertauscht sind
852_a044cccf38ba1bebf59c39193477d1a9.jpg
852_dc5764f8376697849dc356c46a413c22.jpg
852_f80223e1de3bc548810107bbd8a5ef52.jpg
Dann sollte im Fall das der Wert > 0.001 am Protokoll nur das Ergebnis des Referenztasters (mit Kommentar) zu sehen sein, wenn nicht werden alle anderen Taster eingemessen und die Ergebnisse sind am Protokoll zu sehen.

Hoffe das funktioniert so.

MfG Florian
Link to comment
Share on other sites

Danke,

ich wollte es gerade testen und bin drauf gekommen, dass es nochmal eine Spur komplizierter wird. Die Taster sind nämlich schon mit einer Bedingung versehen, da ich ganz am Anfang eine Abfrage mache welche Taster kalibriert werden sollen. Ist ein simples Eingabefeld mit 1 oder 0. Bei 1 wird der Taster kalibriert und bei 0 wird er ausgelassen.
Ich denke, dass das dann ohne PCM an die Grenzen stößt oder?? Hier muss ich mich wohl entscheiden ob ich die Abfrage will welcher Taster kalibriert werden soll, oder eben ob das Programm sofort abbricht wenn der Referenztaster nicht ausreichend genug kalibriert wurde.
Aus meiner Erfahrung her werde ich mich wohl für die Abfrage welcher Taster kalibriert werden soll entscheiden. Da wir schon einige Taster haben und das ganze Programm schon eine Zeit braucht. Wenn ich jetzt nur einen Taster kalibrieren will ist mir das so denk ich lieber. Und im Normalfall wenn die Kalibrierkugel davor mit einem Microfasertuch geputzt wird, hatten wir noch nie das Problem, dass der Referenztaster nicht passt. Das Putzen hat auch diesmal das Problem gelöst gehabt.
Aber wenn du trotzdem eine Lösung hast, wäre ich dir natürlich sehr dankbar und würde diese auch implementieren 🙂

LG
Mathias
Link to comment
Share on other sites

Hallo Florian,

ich hab deinen Tipp erst jetzt gelesen.
Ich hab das mal auf die schnelle auf meiner Offline Station programmiert und mal kurz durchlaufen lassen.
Es dürfte funktionieren 🙂

Danke für den Tipp

LG
Mathias
Link to comment
Share on other sites

Please sign in to view this quote.

Und ist eine sehr gute Idee, die Bedingung auf eine Gruppe zu legen! Damit löst sich auch dein zweites Problem.
Wenn ich mich nicht irre, müsste man auf diese Art sogar komplex verschachtelte Bedingungsketten realisieren können, indem man für jede Schachtelebene eine Gruppe erzeugt und die Zusatzbedingung(en) dort unterbringt.
Ich habe es zwar bequem mit PCM, aber diesen Trick muss ich mir trotzdem merken 🙂
Link to comment
Share on other sites

  • 1 month later...
Guten Morgen,

das Programm läuft sehr gut. Wir haben auch noch einen Linescann der mit einer anderen Kalibrierkugel kalibriert werden muss.
Bis dato hab ich beide Kalibrierkugeln fix aufgespannt gehabt. Jetzt muss ich aber leider aus Platzgründen eine demontieren.
Hier jetzt zu meiner Frage. Ich würde gerne bevor die Kalibrierkugel für den Linescann eingemessen wird, eine Stoppanweisung einbauen damit die zweite Kugel auf den RSH-214 montiert werden kann. Ich hab es leider nicht selbst geschafft. Ich weiß, dass es wenn man einen Punkt misst, in der Strategie geht, eine solche Stopp Anweisung einzubauen. Aber wie mach ich das beim Element "Tastsystem kalibrieren" ???

MfG
Mathias
Link to comment
Share on other sites

Hallo Mathias,
wir benutzen dafür ein Textelement, und bei Komentar gibst du dann die Formel message( "Bitte die Kalibrierkugel" wechseln") ein, dann kommt ein Fenster mit der besagten Meldung und du kannst die Kalibrierkugel wechseln und dann Ok klicken und dein Programm läuft weiter.

Gruß Jörg
Link to comment
Share on other sites

Hallo Jörg,

danke für den Tipp. An das hatte ich auch schon gedacht und auch probiert. Aber anscheinend mach ich da was falsch. Weil bei mir kommt die Meldung nicht. Es wird lediglich das Textelement am Protokoll ausgegeben. Muss ich da sonst noch was einstellen, dass dieser Kommentar aufpoppt??

MfG
Mathias
Link to comment
Share on other sites

Please sign in to view this quote.

Nein. Und das wird auch mein problem sein. Wie mach ich das bei einem Textelement??
Link to comment
Share on other sites

Hallo Mathias,
du gehst in den Kommentar des Text Feldes, rechte Maustaste Formel und dann gibst du das ein was ich geschrieben hatte.
Bei uns funktioniert das so.
Es muss so wie Norbert sagte das Feld Gelb sein danach. Es steht dann eine " 0 " drin in dem Gelben Fenster.

Gruß Jörg
Link to comment
Share on other sites

Please sign in to view this quote.

Hallo Jörg,
jetzt funktioniert es. Danke. Mein Problem war, dass ich das "message" nicht in die Formel geschrieben hatte.
Hab as bis dato nicht gekannt, dass man ein Text bzw. Kommentarfeld mit deiner Formel belegen kann.
Danke für die Hilfe

mfG
Mathias
Link to comment
Share on other sites

 Share

×
×
  • Create New...