Jump to content

CnC Ablauf, Programmierberer Stop


---
 Share

Recommended Posts

Hallo,

ich habe eigentlich eine ziemlich Simple Aufgabe, komme allerdings einfach nicht zur Lösung, vielleicht kann mir hier jemand helfen.

Folgendes Problem:

Ich habe einen Programmierten Stop im ersten Messelement eingefügt.
Mein erstes Messelement ist für die Bestimmung des Basissystems.
Auf meinem Basissystem liegt eine Schleife mit max. 3x fahren.
Folgerichtig führt Calypso den Programmierten Stop (+Text & warten) bei jeder Schleife aus.

Das möchte ich natürlich nicht, da die Abfrage nur beim Starten des Messprogrammes kommen soll.

Calypso soll nach der ersten Schleife den Prog. Stop nicht mehr ausführen, da die Handlung vom Mitarbeiter ja schon erledigt ist.

Meine Idee wäre eine Bedingung mit Formel ähnlich "if basesystem(). Step1 then endif"

Die Formel geht natürlich nicht, soll aber zeigen "wohin" ich möchte. "Step1" ist eine eine eigenkreation. 🙂 🤣


PCM ist leider nicht vorhanden, vielleicht geht es ja trotzdem.

Oder gibt es eine bessere Lösung als den Prog. Stop im ersten Messelement einzufügen damit die "Zwangsbestätigung vor dem Programm Start erscheint?

Grüße
Eric
Link to comment
Share on other sites

Eine Bedingung auf dem Strategieelement müsste funktionieren.
Füge eine Formel in das gelbe Feld ein und schreib dort:
LOOP1 > 1
Das prüft, ob der Schleifenzähler der Ausrichtung schon größer als 1 ist und überspringt dann den Stop. Die Ja / Nein-Verzweigung musst du natürlich durch Klicken ggf. richtig einstellen.

Übrigens: Falls du im Programm mehrere Schleifen oder auch Teilungen hast, kann es je nach Aufbau des Programms sein, daß Schleifen/Teilungen verschachtelt ablaufen. In dem Fall müsstest du dann eine andere Schleifenvariable (LOOP2, LOOP3....) abfragen. Meist ist das nicht der Fall, aber man sollte daran auch mal denken, falls es einfach nicht funktionieren will.
Link to comment
Share on other sites

Alternativ könntest du ein Startsystem mit allen Messelementen des Basissystems bilden.
Für das Basissystem nimmst du eine Kopie des ersten Messelementes aus dem Startsystem aber ohne Stop.
Sollte funktionieren.
Link to comment
Share on other sites

Please sign in to view this quote.


Ich habe jetzt alle LOOP1 Varianten versucht die mir eingefallen sind. "ja / nein" im Wechsel, mal mit ">" und mal mit "<"
Allerdings führt keine Formel zu meinem Wunsch Erfolg.

Ich bekomme allerdings KEIN Haken in das Feld (bei der Bedingung). Calypso möchte ihn nicht aktivieren
Brauche ich doch PCM ? 🙁



Ich habe nochmal ein Screenshot gemacht

https://ibb.co/xfVjNqk


Bei diesem Test Programm, habe ich nur eine Schleife (auf dem BS System) daher sollte mich nur LOOP1 interessieren, aber danke für den Hinweis.
Link to comment
Share on other sites

Ich sehe gerade, die Schleifenindex-Definition steht beim Basissystem standardmäßig auf ' < > '. Das entspricht LOOP3 und nicht LOOP1. Sorry dafür, aber ich frage diesen Schleifenzähler praktisch nie ab, drum ist mir das nicht aufgefallen.

Ändere also bitte entweder die abgefragte Variable auf LOOP3 oder stelle den Schleifenindex auf ' ( ) '

Es gilt:
' ( ) ' --> Runde Klammern --> LOOP1
' [ ] ' --> Eckige Klammern --> LOOP2
' < > ' --> Spitze Klammern --> LOOP3
' { } ' --> Geschwungene Klammern --> LOOP4

Mit PCM kann man sowas halt einfach debuggen, indem man sich in die Eingangsparameter display(LOOPx) schreibt. Da hat es bei mir zuerst auch nicht hochgezählt. 🤠
Link to comment
Share on other sites

Vielen Dank Norbert, es passt perfekt und macht es wie gewünscht !

Loop3 war die Lösung!


Natürlich, habe ich ein Folgeproblem mit der Funktion. 🤣

Bei uns misst die Laufkontrolle über die Palettendaten (Autorun) zb.: 4 oder 8 Teile gleichzeitig.
Mehr Berechtigung außer Öffnen und Starten sind nicht geplant.
Calypso Kopiert/Spiegelt dort ja einen Prüfplan auf 4 / 8 oder Palettenplätze und misst diese selbstständig in der Reihenfolge durch.

Folgerichtig möchte Calypso auch bei jedem Palettenplatz die Bestätigung des Programmierten Stops.

Wie kann ich das Lösen? Die Abfrage möchte ich nur bei ersten Programmstart, da Beispielsweise nach der richtigen Auflageplatte geschaut werden soll.

Oder ist der Programmierte Stop dafür die falsche Wahl?

Eric
Link to comment
Share on other sites

Für die Palettenplätze gibt es abfragbare Protokollkopf-Parameter, aber ich weiß nicht, ob die ohne PCM in Formelfeldern von Bedingungen problemlos funktionieren.

Die Abfragen sind:
Nummer des aktuell gemessenen Palettenplatzes :    getRecordHead("palletlocationnumber")
Nummer des ersten Palettenplatzes:                 getRecordHead("firstpalletlocationnumber")
Nummer des letzten Palettenplatzes:                getRecordHead("lastpalletlocationnumber")
Die Bedingungen müsste man dann halt wahrscheinlich zusätzlich mit AND, OR etc. formulieren, aber auch da weiß ich nicht, ob das ohne PCM möglich ist.
Link to comment
Share on other sites

 Share

×
×
  • Create New...