MCOSMOS Zeichenfolge-Kodierung — @-Schlüsselwörter für Messprogramme — CSL Industrielle Messtechnik
Zum Inhalt springen
+41 55 511 50 85 Projekt anfragen →
Wissen · Messtechnik

Zeichenfolge-Kodierung in MCOSMOS: das @-Werkzeug der parametrischen Programmierung

Messtechnik Christian Schärer · 10. August 2026

Warum unsere Teileprogramme mit Text arbeiten

Ein Messprogramm, das nur ein einziges Teil kennt, ist schnell geschrieben. Interessant wird es bei Serien, Varianten und Wiederholmessungen: Dann sollen Protokollnamen, Elementnamen und Nominalwerte zur Laufzeit entstehen, nicht beim Programmieren. In GEOPAK gibt es dafür einen unscheinbaren Hebel: das @-Zeichen. Überall, wo die Software Text erwartet — in Dateinamen, Elementnamen, der Formelberechnung, Textausgaben oder Dialogvorschlägen — ersetzt sie @-Schlüsselwörter durch den aktuellen Wert.

Eine Eigenheit muss man dabei verinnerlichen: Die Textanalyse läuft vor der eigentlichen Berechnung. Steht in der Formelberechnung Var1 = @StrLen(Text)+1, wird zuerst der Text ersetzt (Var1 = 4+1) und erst danach gerechnet (Var1 = 5). Wer diese Reihenfolge im Kopf hat, versteht auch verschachtelte Ausdrücke auf den ersten Blick.

Die Bausteine, mit denen wir arbeiten

Variablen und Formeln

  • @(VarName) — Wert einer numerischen Variablen einsetzen
  • @[TxtVarName] — Inhalt einer Textvariablen einsetzen
  • @Formula(x) — rechnet wie die Formelberechnung, direkt im Text
  • @ResVarExist("...") / @StrVarExist("...") — prüfen, ob eine Variable existiert (1 oder 0)

Zeichenketten zerlegen und umbauen

  • @StrLen, @StrPos — Länge und Suchposition
  • @StrLeft, @StrRight, @SubStr — Teile herausschneiden
  • @StrChg / @StrChgAll — erste bzw. alle Fundstellen ersetzen
  • @StrGetStr("42.1;18.03;7.5", ";", "2") — liefert das zweite Feld einer getrennten Liste (hier: 18.03); @StrGetNum macht dasselbe für Zahlen — das Arbeitspferd, wenn Nominalwerte aus einer CSV-Datei kommen
  • @StrCmp / @StrICmp — Vergleich mit und ohne Beachtung der Grossschreibung
  • @FileExist("Pfad") — 1, wenn die Datei existiert

Programm-Informationen und Zähler

  • @PartProgName, @Partname, @Revision, @Operator — fürs Protokoll und für Dateinamen
  • @RC (Wiederholungszähler), @LC (Schleifenzähler), @NoOfLC, @LoadedVars — die Zähler der Schleifentechnik
  • @ElementName[CR, 5] — Name des fünften Kreises; funktioniert für alle Elementtypen (PT, LN, CR, PL, CY …)
  • @Time, @Date, @TimeCode — Zeitstempel; Pfad-Schlüsselwörter wie @PartPath oder @CosmosTempPath ersparen fest verdrahtete Verzeichnisse

Formatierung: die Zahlen hinter dem Doppelpunkt

Hinter jedem Schlüsselwort steuern bis zu drei Angaben das Format. Bei Zahlen: :Gesamtlänge:Dezimalstellen:z — negative Gesamtlänge heisst linksbündig, z erzeugt führende Nullen. Bei Textvariablen: :Gesamtlänge:Anzahl Zeichen:Startposition. So schneiden wir Spalten aus Festformat-Dateien: @[Zeile]:0:10:11 liefert die Zeichen 11 bis 20.

Fünf Handgriffe aus der Programmierpraxis

1. Textvariablen sichtbar machen. Beim Entwickeln lassen wir einen Kommentar-Dialog offen — dort sind die aktuellen Werte der Textvariablen jederzeit sichtbar, und Fehler in verschachtelten Ausdrücken fallen sofort auf. Der Befehl «Textvariablen definieren» zeigt zudem die komplette Liste aller Kodierungen.

2. Elementnamen zählen sich selbst hoch. Kr@Formula(CR.MaxNo+1):3:0:z erzeugt Kr001, Kr002, Kr003 … — CR.MaxNo liefert die höchste vergebene Kreisnummer, die Formatierung sorgt für drei Stellen mit führenden Nullen. Niemand vergibt mehr von Hand Namen.

3. Protokolle überschreiben sich nicht. @PartProgName liefert den Vorschlag für den Dateinamen, @Date oder @TimeCode machen ihn eindeutig — jede Wiederholmessung bekommt ihre eigene Ausgabedatei.

4. Die Serie steuert sich über eine CSV-Datei. Nominalwerte lädt das Programm mit «Textvariablen laden», @LoadedVars begrenzt die Schleife, @[Zeile@Formula(@LC-1):0] greift auf die aktuelle Zeile zu und @StrGetNum trennt die Felder heraus. Neue Positionen heisst dann: Datei anpassen, Programm unverändert lassen.

5. Erst prüfen, dann zugreifen. @FileExist vor dem Einlesen und @StrVarExist vor dem Verwenden einer Variablen ersparen Abbrüche im Wiederholbetrieb — gerade wenn das Programm später unbeaufsichtigt läuft.

Warum das für Ihre Messprogramme zählt

Diese Technik macht aus einem einmaligen Teileprogramm eine wiederverwendbare Vorlage: Variablen statt fester Werte, Dialoge statt Handarbeit, externe Steuerdateien statt Programmkopien. Bei der Messprogrammerstellung für Mitutoyo MCOSMOS gehört die Zeichenfolge-Kodierung deshalb zum Standard — von automatisch nummerierten Elementen bis zur Serienmessung, die ihre Nominalwerte aus einer CSV-Datei zieht. Wie wir Messprogramme generell aufbauen und einfahren, steht auf der Übersichtsseite.

Weiterlesen
Messtechnik Messprogramme einkaufen oder selbst erstellen? Beitrag lesen → Messtechnik Tastereinmessung: die Messung vor der Messung Beitrag lesen →
Christian Schärer
Inhaber und Geschäftsleiter · Normenausschuss Swissmem NK1
Veröffentlicht 10. August 2026