Jump to content

Undokumentierte PCM Funktionen


---
 Share

Recommended Posts

Hallo zusammen,

laut der PCM-Dokumentation kann auf Listenelemente nicht zugegriffen werden. Dies scheint nicht ganz richtig zu sein. Ein begrenzter Zugriff scheint möglich zu sein.

Nachdem eine Liste z.B. mit folgendem Befehl erstellt wurde, ...

EineListe = list("Element 1", "Element 2", "Element 3", "Element 4")

... kann mit EineListe.first das Erste und mit EineListe.last das letzte Element ausgelesen werden.

Zudem kann mit...

EineListe.removeFirst

EineListe.removeLast

... das erste beziehungsweise das letzte Element entfernt werden. Somit kann man mit einer Schleife in welcher man z.B. das erste Element ausliest und es dann entfernt, die komplette Liste durchgehen.

.first und .last funktioniert sogar bei normalen String Variablen. Es wird dann das Erste beziehungsweise das letzte Zeichen der Zeichenkette ausgegeben. Nur das entfernen Selbiger funktioniert nicht.


Jetzt frage ich mich, ob es vielleicht noch zahlreiche weitere undokumentierte Funktionen in PCM gibt? Kennt ihr vielleicht noch weitere Funktionen? Und warum steht sowas nicht in der Anleitung / Referenz?
Link to comment
Share on other sites

Es kann sein, daß die undokumentierten Funktionen für irgendwelche internen Aufgaben oder als Hilfsfunktion für Tests geschrieben wurden und nicht auf fehlerfreiheit getestet wurden, da eben keine offiziellen Features.

Ein Beispiel für eine interne Spezialfunktion findet man auf den O-Inspect Maschinen: Dort gibt es einen Prüfplan, der den Versatz zwischen Kamera und taktilem Taster misst und die ermittelten Werte dann dauerhaft abspeichert, so daß dann künftig der Versatz in allen Prüfplänen automatisch verrechnet wird. Das Speichern der Werte wird mit einem speziellen PCM-Befehl gemacht (Name weiss ich gerade nicht).

Falls jemand eine Funktion findet, mit der man Messelemente, Prüfmerkmale und ähnliches auflisten lassen kann, bekommt er/sie von mir den Nobelpreis 😉 Das wäre nämlich die eine Funktion, die zum Schreiben prüfplanunabhängiger flexibler PCM-Funktionen noch notwendig wäre.
Link to comment
Share on other sites

Eine sehr nützliche Abfrage, die ich gerade entdeckt habe:

getActual("XYZ").numberOfPoints

Gibt die tatsächliche Anzahl von Istpunkten eines Messelements aus. Derselbe Wert, der im Fenster des Messelements rechts unten unter Anz.Pkt. steht, also die Punktezahl nach allen Ausreisser- und sonstigen Filterungen.

Ich finde das unendlich nützlich für die Auswertung von gescannten Punktemengen in einer Schleife, denn beim Scannen bekommt man ja fast nie genau die eingestellte Puunktezahl raus. Sind es weniger, dann brechen solche Auswertungen oft mit einem Fehler ab.
Link to comment
Share on other sites

Eine Abfrage-Option für die Funktion getActual(), die sich tief in der Onlinehilfe versteckt:

getActual("NAME").inTolerance

Gibt aus, ob das angegebene Prüfmerkmal toleranzhaltig ist (true/false).

Aber Vorsicht: In Version 5.8 hängt sich bei mir Calypso auf, wenn ich die Funktion in der Parameter-Sektion (Option PCM) eines Prüfmerkmals verwende.
Bei mir funktioniert sie nur in einer Formel in einem Eingabefeld einwandfrei.
Link to comment
Share on other sites

Hallo

Hier noch eine Idee wie man sich eine dynamische Auswahlliste basteln kann, so habe ich es geschafft die Listen in der userfield.ini in PCM verfügbar zu machen:

selectionlist="inquireList("+chr(34)+"Bitte auswählen:"+chr(34)
selectionlist=selectionlist+chr(44)+chr(34)+"Test1"+chr(34)
selectionlist=selectionlist+chr(44)+chr(34)+"Test2"+chr(34)
selectionlist=selectionlist+chr(44)+chr(34)+"Test3"+chr(34)
selectionlist=selectionlist+")"
selection=getParameterNamed(selectionlist)
Link to comment
Share on other sites

  • 7 months later...
Hallo,
zum Thema Liste habe ich noch Infos.

EineListe = list("eins","zwei","drei")
for A = 1 to 3
ZweiteListe[A] = EineListe.first
EineListe.removeFirst
next A

so lassen sich die Werte "eins", "zwei", "drei" mit ZweiteListe[1], ZweiteListe[2], ZweiteListe[3] wiedergeben
Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...
 Share

×
×
  • Create New...