Jump to content

PCM-cncBreak()


---
 Share

Recommended Posts

Hallo zusammen,

ich habe eine Frage zu PCM.
Seht selbst im Anhang. Wenn ich den script in einem Prüfplan "laufen" lasse, dann funktioniert er Ablauf.

Der cncBreak() wird ausgeführt, der Prüfplan wird abgebrochen, das KMG bleibt stehen - Ampel auf "rot".
Eine Schwachstelle bleibt allerdings.
Noch sind die restlichen Eingaben folgend dem script im Anhang, bei stehendem KMG - wie gesagt roter Ampel erforderlich.
Gibt es eine Möglichkeit den script so zu gestalten, das der cncBreak() ausgeführt wird, weitere Eingaben aber nicht mehr folgen ?
Mit anderern Worten der Prüfplan sollte auch softwareseitig sauber zu Ende geführt werden.

PCM.txt

Link to comment
Share on other sites

Du meinst, das Script wird noch abgearbeitet, obwohl die Ampel schon auf Rot steht? Ich habe das noch nie ausprobiert, aber das wäre ja ein bl*des Verhalten. 😮 Rein interessehalber: Wo steht das Script? In einem Parameterfenster (ganzer Prüfplan?) oder in einer externen Datei?

Mir fällt dazu auf Anhieb nur ein, cncBreak() ganz zu vermeiden. Du könntest stattdessen z.B. repeat....until verwenden und die Eingabe so lange wiederholen lassen, bis der Bediener es richtig eingegeben hat.

Also z.B.:
repeat

inquireParameterList("C32d2","Messen mit Winkel 6 Grad","C33d2","Messen mit Winkel 7 Grad")

until ((C33d2==1) OR (C32d2==1)) AND ((C33d2 + C32d2)<2)
Die Bedingung nach dem "until" fasst deine ersten beiden IF-Konstruktionen zusammen (hoffe ich habe es richtig umgeschrieben). Ich habe zur Sicherheit alles geklammert, es geht aber bestimmt auch mit weniger Klammern.
Auf diese Art wird die Eingabe so lange wiederholt, bis die Eingabe korrekt ist. Ein Abbruch ist dann eigentlich nicht nötig. Die restlichen IFs musst du dann natürlich auf eine ähnliche Art umschreiben.
Link to comment
Share on other sites

Hallo Winfried,

ich verwende für meine sehr komplexen PCM-Abläufe ausschließlich externe PCM-Dateien, soweit möglich.
Wenn das Programm voezeitig abgebrochen werden soll, verwende ich den Befehl endInspection("NO_DATA_OUTPUT",1), deas beendet den Prüfplan regulär, ohne weitere Aktionen (siehe Beispiel).

Gruß
Jens

AutoNachmessungen.txt

Link to comment
Share on other sites

 Share

×
×
  • Create New...