AIVeRa - KI-Agent und Sprachsteuerung
Installation | Einschalten | Voraussetzungen in Windows | Sprachsteuerung | Whisper | Wie man spricht | Unbekannte Befehle - KI-Agent | Eigene Befehle | Schwellen, Signal und Protokoll | KI-Assistent (MCP-Server) | Wie es funktioniert und wohin die Daten gehen | Editor-API | Fenster KI-Agent (Editor) | Command API

VeRa ist der KI-Agent von DrAmaT Robot Studio. Er arbeitet auf drei Arten: per Sprache ("Vera" und ein Befehl), als KI-Assistent (Claude Code, Claude Desktop oder ein anderer MCP-Client steuert den Editor und den Robot Cell Simulator mit den Werkzeugen von VeRa) und aus Skripten (Befehls-APIs des Editors und des Simulators). Alles läuft auf diesem Computer; die APIs sind lokale Pipes, die nur der Benutzer nutzen kann, der DReS gestartet hat.

Installation

VeRa ist optional und im Installationsprogramm nicht ausgewählt. Auf der Seite Choose Components, Gruppe AI agent VeRa (optional):

Ohne diese Komponenten wird der Ordner AIAgent nicht installiert und nichts von VeRa läuft. Das Installationsprogramm schreibt die Auswahl in AIAgent\first_run.ini; DReS übernimmt sie beim ersten Start (nur Einstellungen, die vorher nicht gesetzt waren) und benennt die Datei in first_run.applied um. Später lässt sich alles in Settings > Configure > AI Agent ändern.

Einschalten

Alles ist standardmäßig aus. Settings > Configure > AI Agent (Editor): Command API of the editor (Skripte, KI-Assistent), Voice control VeRa (Mikrofon), die Sprache der Befehle und der Antworten, die Pfade der Skripte und auf der Registerkarte VeRa voice control das Kontrollkästchen Pass commands VeRa does not know to the AI Agent window (standardmäßig an, siehe Unbekannte Befehle). Extras > Einstellungen > KI-Agent (Robot Cell Simulator): die Befehls-API des Simulators. Die große Taste VeRa (Mikrofon) rechts am Ende der Symbolleiste startet und beendet das Zuhören; sie ist grün, solange VeRa zuhört.

Settings > Configure > AI Agent, Registerkarte VeRa voice control (lokale Pfade verdeckt; das Fenster ist auf Englisch abgebildet, eine deutsche Oberfläche gibt es nicht)

Die Seite Settings > Configure > AI Agent hat vier Registerkarten: AI Agent window (Verbindung der Chatfenster des Editors und des Robot Cell Simulators zum Modell, Wissensdateien), VeRa voice control, Command API (siehe Editor-API) und VeRa AI agent (MCP server) (siehe KI-Assistent). Auf der Registerkarte AI Agent window wählen Sie den Anbieter (Anthropic-API-Schlüssel, OpenAI-kompatible API wie VW LLMaaS, Azure OpenAI oder ein lokales Ollama, oder Claude Code mit Ihrem claude.ai-Konto), das Modell, die Grenzen und den anonymen Modus und sehen die Liste der Wissensdateien des Agenten mit ihren Versionen - beschrieben in Fenster KI-Agent (Editor) > Einstellungen.

Settings > Configure > AI Agent, Registerkarte AI Agent window: Anbieter, Modell, Grenzen und Wissensdateien (lokale Pfade verdeckt)

Voraussetzungen in Windows

  1. Mikrofon für Desktop-Apps - Windows-Einstellungen > Datenschutz > Mikrofon: "Apps Zugriff auf das Mikrofon erlauben" und "Desktop-Apps den Zugriff auf das Mikrofon erlauben" eingeschaltet (meist schon an). Jedes Mikrofon geht: eingebaut, Headset oder Webcam; Windows nutzt das Standard-Aufnahmegerät (Soundeinstellungen > Eingabe).
  2. Spracherkennung der Sprache der Befehle - wird mit der Sprache installiert, Windows-Einstellungen > Zeit und Sprache > Sprache: English (United States) für englische Befehle und/oder Deutsch (Deutschland) für deutsche Befehle, jeweils mit der Option Spracherkennung (unter Sprachoptionen > Sprache). Nach dem Hinzufügen den Download fertigstellen lassen (Windows Update) und den Computer neu starten. VeRa hört gleichzeitig in jeder installierten der beiden Sprachen.
  3. Stimmen für die Antworten (optional) - die Sprachausgabe-Stimmen derselben Sprachpakete (z. B. Hedda für Deutsch, Zira für Englisch, Paulina für Polnisch); VeRa nimmt eine weibliche Stimme der Sprache, ohne eine antwortet sie auf Englisch.
  4. In DReS - Settings > Configure > AI Agent: Voice control VeRa einschalten, dann die Mikrofontaste rechts am Ende der Symbolleiste.

Nicht nötig: Online-Spracherkennung von Windows, Internetverbindung oder ein Konto - die Erkennung läuft vollständig auf dem Computer. Für den KI-Assistenten (MCP-Server) zusätzlich Python 3 (python.org, keine weiteren Pakete) und ein MCP-Client wie Claude Code.

Wenn VeRa nicht reagiert: in AIAgent\vera_voice.log nachsehen - dort steht, was VeRa gehört hat (mit Sicherheit), was sie nicht verstanden hat und Fehler, z. B. no speech recognizer for English or German installed in Windows (Punkt 2 fehlt). Zuerst den Namen sagen ("Vera, ..."), deutlich und in einem Zug; eine graue Mikrofontaste bedeutet, dass VeRa nicht zuhört (anklicken). Die Schwellen stehen in vera_commands.json.

Sprachsteuerung

Die Spracherkennung von Windows arbeitet offline. Englische Befehle brauchen nichts weiter; deutsche Befehle brauchen das deutsche Sprachpaket (Windows-Einstellungen > Zeit und Sprache > Spracherkennung). Windows muss das Mikrofon für Desktop-Apps erlauben (Windows-Einstellungen > Datenschutz > Mikrofon). VeRa antwortet per Sprache auf Polnisch, Deutsch oder Englisch. Die Befehle stehen in AIAgent\vera_commands.json - Sätze auf Englisch und Deutsch, der Befehl des Editors und die Antwort; eigene hinzufügen und das Zuhören neu starten. Was nicht in der Datei steht, geht an das Fenster KI-Agent (wenn eingeschaltet).

Whisper (Spracherkennung offline)

Whisper (Open Source, whisper.cpp, MIT-Lizenz) schreibt den gesprochenen Befehl als Text - es versteht Akzente viel besser als die Spracherkennung von Windows, die den Klang nur mit den festen Sätzen vergleicht (z. B. wurde "activate last project" als "last line" gehört). Es läuft auf diesem Computer: ein kleiner Server AIAgent\whisper\whisper-server.exe hört nur auf 127.0.0.1 (Port 8178), wird mit dem Zuhören von VeRa gestartet und beendet; keine Internetverbindung, kein Konto. Ablauf: Windows findet weiterhin den Namen "Vera" und schneidet das Gesagte aus; Whisper schreibt es (etwa 0,5 s auf einem Laptop-Prozessor) und VeRa sucht den Satz aus vera_commands.json, der dem Text am nächsten ist - kleine Abweichungen ("activate the last project", "files" / "file") sind erlaubt, Befehle zum Schließen, Neuladen oder Wiederherstellen brauchen die genauen Wörter. Whisper wird für englische Befehle genutzt; deutsche Befehle behalten die Erkennung von Windows.

Modell: empfohlen ist ggml-medium.bin (mehrsprachig, etwa 1,5 GB) - es erkennt deutsche Wörter in den Befehlen (z. B. Folge) und Zahlen viel besser als ggml-base.en.bin (nur Englisch, etwa 148 MB). Es ist langsamer: etwa 4 s pro Befehl mit 6 Prozessor-Threads statt etwa 0,4 s. Einstellen in vera_commands.json: "whisper": {"model": "whisper/models/ggml-medium.bin"}. Die Modelldatei kann in AIAgent\whisper\models liegen; eine Ordnerverknüpfung (Junction) auf ein anderes Laufwerk ist in Ordnung. Download: Datei ggml-medium.bin von huggingface.co/ggerganov/whisper.cpp (ein fertiges Download-Paket auf dramat.eu ist geplant).

Auswahl: Settings > Configure > AI Agent > VeRa voice control > Speech recognition: Automatic (Whisper, wenn installiert, sonst Windows - Standard), Windows speech recognition oder Whisper. Unter der Auswahl zeigt DReS, ob Whisper installiert ist. Die Änderung gilt, wenn das Zuhören neu gestartet wird (Taste VeRa zweimal).

Manuelle Installation (wenn DReS ohne die Komponente installiert wurde oder der Download fehlschlug): https://dramat.eu/download/whisper.zip nach <Installation>\AIAgent\whisper entpacken - oder aus den offiziellen Quellen whisper-bin-x64.zip (Release von github.com/ggml-org/whisper.cpp) und das Modell ggml-base.en.bin (huggingface.co/ggerganov/whisper.cpp, etwa 148 MB) herunterladen; whisper-server.exe und alle *.dll aus dem Zip sowie das Modell nach <Installation>\AIAgent\whisper kopieren.

Einstellungen in vera_commands.json, Teil "whisper": enabled, exe und model (relativ zur Datei oder absolut - ein größeres Modell, z. B. ggml-small.en.bin, ist genauer, aber langsamer), port, threads (Prozessor-Threads), audioCtx (512 = bis etwa 10 s Sprache, schneller), prompt (Wörter, die Whisper erwarten soll), maxDistance (wie stark der Text von einem Satz abweichen darf, 0.34 = etwa ein Drittel der Wörter). In vera_voice.log steht bei jedem Befehl, was Whisper geschrieben hat und welcher Satz genommen wurde (Whisper: ..., -> ...).

Wie man spricht

Zwei Arten: in einem Satz - "Vera, check syntax" - oder in zwei Schritten - "Vera" sagen, die Mikrofontaste beginnt zu blinken (orange / grün), dann innerhalb von 8 Sekunden den Befehl ohne den Namen. Ohne den Namen am Anfang reagiert VeRa nicht, damit Gespräche im Raum nicht als Befehle gelten. VeRa hört gleichzeitig Englisch und Deutsch (jede Sprache, wenn ihre Spracherkennung in Windows installiert ist) und antwortet in der Sprache des Befehls; in den Einstellungen können Befehle und Antworten auch auf eine Sprache festgelegt werden (Antworten auch Polnisch).

EnglischDeutschBefehl des EditorsAntwort
Vera, save, Vera, save fileVera, speichern, Vera, Datei speichern{"cmd": "save"}Gespeichert.
Vera, save allVera, alles speichern{"cmd": "save_all"}Alles gespeichert.
Vera, close, Vera, close file, Vera, close the file, Vera, close this file, Vera, close current file, Vera, close the current file, Vera, close active file, Vera, close the active fileVera, schließen, Vera, Datei schließen, Vera, diese Datei schließen, Vera, aktive Datei schließen{"cmd": "close"}Geschlossen.
Vera, close all files, Vera, close all the files, Vera, close all windowsVera, alle Dateien schließen, Vera, alles schließen, Vera, alle schließen{"cmd": "close_all"}Alle geschlossen.
Vera, restore last session, Vera, restore the last session, Vera, open last sessionVera, letzte Sitzung wiederherstellen{"cmd": "restore_session", "what": "all"}Letzte Sitzung wird wiederhergestellt.
Vera, restore robots from last session, Vera, restore robots from the last session, Vera, restore robot projects from last session, Vera, restore robot projects from the last sessionVera, Roboter aus der letzten Sitzung wiederherstellen{"cmd": "restore_session", "what": "robots"}Roboter der letzten Sitzung werden wiederhergestellt.
Vera, restore files from last session, Vera, restore files from the last session, Vera, restore the files from the last sessionVera, Dateien aus der letzten Sitzung wiederherstellen{"cmd": "restore_session", "what": "files"}Dateien der letzten Sitzung werden wiederhergestellt.
Vera, reload, Vera, reload fileVera, neu laden, Vera, Datei neu laden{"cmd": "reload"}Neu geladen.
Vera, check syntaxVera, Syntax prüfen{"cmd": "check_syntax"}
Vera, next window, Vera, next fileVera, nächstes Fenster, Vera, nächste Datei{"cmd": "window_next"}
Vera, previous window, Vera, previous fileVera, vorheriges Fenster, Vera, vorherige Datei{"cmd": "window_previous"}
Vera, first file, Vera, first windowVera, erste Datei, Vera, erstes Fenster{"cmd": "window_first"}
Vera, last file, Vera, last windowVera, letzte Datei, Vera, letztes Fenster{"cmd": "window_last"}
Vera, undoVera, rückgängig{"cmd": "undo"}
Vera, redoVera, wiederholen{"cmd": "redo"}
Vera, start simulator, Vera, open simulatorVera, Simulator starten, Vera, Simulator öffnen{"cmd": "run_plugin", "name": "Robot Cell Simulator"}Ich starte den Simulator.
Vera, next robot, Vera, next robot active, Vera, activate next robot, Vera, set next robot active, Vera, next project, Vera, next robot project, Vera, set next robot project active, Vera, next robot project active, Vera, activate next robot project, Vera, activate next project, Vera, set next project active, Vera, next project active, Vera, activate the next project, Vera, activate the next robotVera, nächster Roboter, Vera, nächstes Projekt, Vera, nächsten Roboter aktivieren, Vera, nächstes Roboterprojekt, Vera, nächstes Roboterprojekt aktivieren{"cmd": "project_next"}
Vera, previous robot, Vera, previous robot active, Vera, activate previous robot, Vera, set previous robot active, Vera, previous project, Vera, previous robot project, Vera, set previous robot project active, Vera, previous robot project active, Vera, activate previous robot project, Vera, activate previous project, Vera, set previous project active, Vera, previous project active, Vera, activate the previous project, Vera, activate the previous robotVera, vorheriger Roboter, Vera, vorheriges Projekt, Vera, vorherigen Roboter aktivieren, Vera, vorheriges Roboterprojekt, Vera, vorheriges Roboterprojekt aktivieren{"cmd": "project_previous"}
Vera, close robot project, Vera, close robot, Vera, close active robot project, Vera, close the robot project, Vera, close projectVera, Roboterprojekt schließen, Vera, Roboter schließen, Vera, aktives Projekt schließen, Vera, Projekt schließen{"cmd": "close_project"}Projekt geschlossen.
Vera, next line, Vera, go to next line, Vera, move to next line, Vera, go to the next line, Vera, move to the next lineVera, zur nächsten Zeile, Vera, nächste Zeile{"cmd": "goto", "target": "line", "direction": "next"}Zeile {0}.
Vera, previous line, Vera, go to previous line, Vera, move to previous line, Vera, go to the previous line, Vera, move to the previous lineVera, zur vorherigen Zeile, Vera, vorherige Zeile{"cmd": "goto", "target": "line", "direction": "previous"}Zeile {0}.
Vera, first line, Vera, go to first line, Vera, go to the first line, Vera, move to first line, Vera, move to the first lineVera, zur ersten Zeile, Vera, erste Zeile{"cmd": "goto", "target": "line", "direction": "first"}Zeile {0}.
Vera, last line, Vera, go to last line, Vera, go to the last line, Vera, move to last line, Vera, move to the last lineVera, zur letzten Zeile, Vera, letzte Zeile{"cmd": "goto", "target": "line", "direction": "last"}Zeile {0}.
Vera, next fold, Vera, go to next fold, Vera, move to next fold, Vera, go to the next fold, Vera, move to the next foldVera, zum nächsten Fold, Vera, nächster Fold{"cmd": "goto", "target": "fold", "direction": "next"}Zeile {0}.
Vera, previous fold, Vera, go to previous fold, Vera, move to previous fold, Vera, go to the previous fold, Vera, move to the previous foldVera, zum vorherigen Fold, Vera, vorheriger Fold{"cmd": "goto", "target": "fold", "direction": "previous"}Zeile {0}.
Vera, first fold, Vera, go to first fold, Vera, go to the first fold, Vera, move to first fold, Vera, move to the first foldVera, zum ersten Fold, Vera, erster Fold{"cmd": "goto", "target": "fold", "direction": "first"}Zeile {0}.
Vera, last fold, Vera, go to last fold, Vera, go to the last fold, Vera, move to last fold, Vera, move to the last foldVera, zum letzten Fold, Vera, letzter Fold{"cmd": "goto", "target": "fold", "direction": "last"}Zeile {0}.
Vera, next tech, Vera, go to next tech, Vera, move to next tech, Vera, go to the next tech, Vera, move to the next techVera, zum nächsten Tech, Vera, nächster Tech{"cmd": "goto", "target": "tech", "direction": "next"}Zeile {0}.
Vera, previous tech, Vera, go to previous tech, Vera, move to previous tech, Vera, go to the previous tech, Vera, move to the previous techVera, zum vorherigen Tech, Vera, vorheriger Tech{"cmd": "goto", "target": "tech", "direction": "previous"}Zeile {0}.
Vera, first tech, Vera, go to first tech, Vera, go to the first tech, Vera, move to first tech, Vera, move to the first techVera, zum ersten Tech, Vera, erster Tech{"cmd": "goto", "target": "tech", "direction": "first"}Zeile {0}.
Vera, last tech, Vera, go to last tech, Vera, go to the last tech, Vera, move to last tech, Vera, move to the last techVera, zum letzten Tech, Vera, letzter Tech{"cmd": "goto", "target": "tech", "direction": "last"}Zeile {0}.
Vera, next point, Vera, go to next point, Vera, move to next point, Vera, go to the next point, Vera, move to the next pointVera, zum nächsten Punkt, Vera, nächster Punkt{"cmd": "goto", "target": "point", "direction": "next"}Zeile {0}.
Vera, previous point, Vera, go to previous point, Vera, move to previous point, Vera, go to the previous point, Vera, move to the previous pointVera, zum vorherigen Punkt, Vera, vorheriger Punkt{"cmd": "goto", "target": "point", "direction": "previous"}Zeile {0}.
Vera, first point, Vera, go to first point, Vera, go to the first point, Vera, move to first point, Vera, move to the first pointVera, zum ersten Punkt, Vera, erster Punkt{"cmd": "goto", "target": "point", "direction": "first"}Zeile {0}.
Vera, last point, Vera, go to last point, Vera, go to the last point, Vera, move to last point, Vera, move to the last pointVera, zum letzten Punkt, Vera, letzter Punkt{"cmd": "goto", "target": "point", "direction": "last"}Zeile {0}.
Vera, next up call, Vera, go to next up call, Vera, move to next up call, Vera, next up, Vera, go to next up, Vera, move to next up, Vera, go to the next up call, Vera, move to the next up call, Vera, go to the next up, Vera, move to the next up, Vera, next U P call, Vera, go to next U P call, Vera, move to next U P call, Vera, go to the next U P call, Vera, move to the next U P call, Vera, next U P, Vera, go to next U P, Vera, move to next U P, Vera, go to the next U P, Vera, move to the next U P, Vera, next subprogram call, Vera, go to next subprogram call, Vera, move to next subprogram call, Vera, go to the next subprogram call, Vera, move to the next subprogram call, Vera, next subprogram, Vera, go to next subprogram, Vera, move to next subprogram, Vera, go to the next subprogram, Vera, move to the next subprogramVera, zum nächsten UP Aufruf, Vera, nächster UP Aufruf{"cmd": "goto", "target": "up", "direction": "next"}Zeile {0}.
Vera, previous up call, Vera, go to previous up call, Vera, move to previous up call, Vera, previous up, Vera, go to previous up, Vera, move to previous up, Vera, go to the previous up call, Vera, move to the previous up call, Vera, go to the previous up, Vera, move to the previous up, Vera, previous U P call, Vera, go to previous U P call, Vera, move to previous U P call, Vera, go to the previous U P call, Vera, move to the previous U P call, Vera, previous U P, Vera, go to previous U P, Vera, move to previous U P, Vera, go to the previous U P, Vera, move to the previous U P, Vera, previous subprogram call, Vera, go to previous subprogram call, Vera, move to previous subprogram call, Vera, go to the previous subprogram call, Vera, move to the previous subprogram call, Vera, previous subprogram, Vera, go to previous subprogram, Vera, move to previous subprogram, Vera, go to the previous subprogram, Vera, move to the previous subprogramVera, zum vorherigen UP Aufruf, Vera, vorheriger UP Aufruf{"cmd": "goto", "target": "up", "direction": "previous"}Zeile {0}.
Vera, first up call, Vera, go to first up call, Vera, go to the first up call, Vera, move to first up call, Vera, move to the first up call, Vera, first up, Vera, go to first up, Vera, go to the first up, Vera, move to first up, Vera, move to the first up, Vera, first U P call, Vera, go to first U P call, Vera, move to first U P call, Vera, go to the first U P call, Vera, move to the first U P call, Vera, first U P, Vera, go to first U P, Vera, move to first U P, Vera, go to the first U P, Vera, move to the first U P, Vera, first subprogram call, Vera, go to first subprogram call, Vera, move to first subprogram call, Vera, go to the first subprogram call, Vera, move to the first subprogram call, Vera, first subprogram, Vera, go to first subprogram, Vera, move to first subprogram, Vera, go to the first subprogram, Vera, move to the first subprogramVera, zum ersten UP Aufruf, Vera, erster UP Aufruf{"cmd": "goto", "target": "up", "direction": "first"}Zeile {0}.
Vera, last up call, Vera, go to last up call, Vera, go to the last up call, Vera, move to last up call, Vera, move to the last up call, Vera, last up, Vera, go to last up, Vera, go to the last up, Vera, move to last up, Vera, move to the last up, Vera, last U P call, Vera, go to last U P call, Vera, move to last U P call, Vera, go to the last U P call, Vera, move to the last U P call, Vera, last U P, Vera, go to last U P, Vera, move to last U P, Vera, go to the last U P, Vera, move to the last U P, Vera, last subprogram call, Vera, go to last subprogram call, Vera, move to last subprogram call, Vera, go to the last subprogram call, Vera, move to the last subprogram call, Vera, last subprogram, Vera, go to last subprogram, Vera, move to last subprogram, Vera, go to the last subprogram, Vera, move to the last subprogramVera, zum letzten UP Aufruf, Vera, letzter UP Aufruf{"cmd": "goto", "target": "up", "direction": "last"}Zeile {0}.
Vera, close window, Vera, close the window, Vera, close warnings window, Vera, close dialog, Vera, close the dialogVera, Fenster schließen, Vera, Dialog schließen, Vera, Meldungsfenster schließen{"cmd": "close_dialog"}Fenster geschlossen.
Vera, close program, Vera, close editor, Vera, exit program, Vera, exit editor, Vera, close the program, Vera, close the editorVera, Programm beenden, Vera, Programm schließen, Vera, Editor schließen, Vera, Editor beenden{"cmd": "ui_click", "action": "File > Exit"}Auf Wiedersehen.
Vera, stop listening, Vera, goodbyeVera, nicht mehr zuhören, Vera, auf WiedersehenstopAuf Wiederhören.
Vera, set active project / active project / activate robot threeVera, aktives Projekt / aktiviere Roboter drei{"cmd":"set_active_project"}Aktives Projekt: {0}.
Vera, first / second ... ninth / last robot (also: activate second robot, set fifth robot active)Vera, erster / zweiter ... letzter Roboter (auch: zweiten Roboter aktivieren)robot by its position in the project treeAktives Projekt: {0}.
Vera, next robot / previous robot (also: next robot active, activate next robot)Vera, nächster / vorheriger Roboternext / previous robot projectAktives Projekt: {0}.
Vera, first / second ... ninth / last file (also: second file active, activate fifth file)Vera, erste / zweite ... letzte Datei (auch: zweite Datei aktivieren)open document by its position (Window menu)Aktive Datei: {0}.

Unbekannte Befehle → KI-Agent

Hört VeRa ihren Namen, ist der Rest aber keiner ihrer Sprachbefehle, gibt sie nicht auf: der von Whisper geschriebene Text geht als Nachricht an das Fenster KI-Agent des Editors (wie {"cmd":"ai_chat"}), das Fenster öffnet sich und VeRa sagt "Ich habe es an den KI-Agenten weitergegeben" (Englisch "I passed it to the AI agent", Polnisch "Przekazałam to agentowi AI"). Der KI-Agent plant die Schritte und antwortet im Chat. Beispiele:

Einstellung: Settings > Configure > AI Agent, Registerkarte VeRa voice control, Kontrollkästchen Pass commands VeRa does not know to the AI Agent window (needs the license 'API / CLI') - standardmäßig an (INI-Schlüssel AI_Agent_Voice_Forward; für das Skript: vera_voice.ps1 -ForwardUnknown on|off). Ist es aus, sagt VeRa, dass sie den Befehl nicht kennt. Ohne die Lizenz API / CLI kann der KI-Agent nicht antworten. Für lange, freie Sätze liefert das mehrsprachige Whisper-Modell ggml-medium.bin den besten Text.

Eigene Befehle

Die Befehle sind nicht fest im Programm: sie stehen in AIAgent\vera_commands.json (Textdatei, mit dem Editor bearbeiten und die VeRa-Taste zweimal klicken, um das Zuhören neu zu starten). Jeder Befehl hat die Sätze ("say", Englisch und Deutsch, nur Wörter - keine Ziffern), den Befehl des Editors ("cmd") und die gesprochene Antwort ("reply", Polnisch, Deutsch, Englisch). Jeder Befehl der Editor-API ist möglich, auch jede Menüaktion über ihren Pfad, z. B. {"cmd":"ui_click","action":"Tools > Compare files"} oder {"cmd":"ui_click","action":"File > Reload all files"} - die Liste aller Pfade: Menüaktionen für eigene Befehle (etwa 620 Aktionen aller Menüs; aktuelle Liste auch über {"cmd":"ui_actions"}). Beispiel:
{ "say": { "en": ["compare files"], "de": ["Dateien vergleichen"] }, "cmd": { "cmd": "ui_click", "action": "Tools > Compare files" }, "reply": { "pl": "Porównuję.", "de": "Ich vergleiche.", "en": "Comparing." } }

Schwellen, Signal und Protokoll

In vera_commands.json: minConfidence (Standard 0.5) - wie sicher die Spracherkennung sein muss, um einen Befehl auszuführen; wakeConfidence (0.4) - dasselbe für "Vera" allein (ein kurzes Wort, Windows ist dabei weniger sicher); niedrigere Werte reagieren leichter, aber auch auf falsche Wörter. awakeSignal nach "Vera" allein: none (nur Blinken, Standard), beep oder voice ("Ja?"). Alles, was VeRa gehört, ausgeführt oder nicht verstanden hat, steht in AIAgent\vera_voice.log (in %TEMP%, wenn das Installationsverzeichnis schreibgeschützt ist).

KI-Assistent (MCP-Server)

Ohne externen KI-Assistenten: der Robot Cell Simulator hat einen eigenen Chat mit einem KI-Agenten, das Fenster KI-Agent (Registerkarte neben den Meldungen; Verbindung zum Modell in den Einstellungen des Simulators, Lizenz API / CLI). Mit dem Anbieter Claude Code - Ihr claude.ai-Konto nutzt dieses Fenster ebenfalls VeRa: der Simulator startet Claude Code mit diesem MCP-Server, und Claude Code steuert den Simulator mit den Werkzeugen rcs und status (siehe Einrichtung Schritt für Schritt, Weg B).

AIAgent\vera_mcp.py (Python 3, keine weiteren Pakete) ist ein MCP-Server. Einmal in Claude Code registrieren: claude mcp add vera -- python "<Installation>\AIAgent\vera_mcp.py" (derselbe Befehl steht in den Einstellungen mit einer Kopiertaste). Dann dem Assistenten sagen, was zu tun ist, z. B. "VeRa, öffne UP48 von Roboter R03 und prüfe die Syntax" oder "VeRa, simuliere Variante C3 Folge 81 zehnmal und vergleiche sie mit dem Original". Werkzeuge: Lizenz: der KI-Assistent (MCP-Server) und jedes andere Programm oder Skript, das DReS oder den Robot Cell Simulator über die Befehls-APIs steuert, brauchen die Zusatzlizenz API / CLI (Steuerung durch andere Programme, Skripte und KI-Agenten); ohne sie gehen nur lesende Befehle (Status, offene Dokumente, Fenster) und die Einstellungen der Befehls-APIs sind gesperrt. Die Sprachsteuerung arbeitet ohne diese Lizenz.

Registerkarte VeRa AI agent (MCP server): der Befehl zur Registrierung von VeRa in Claude Code, die Taste kopiert ihn
WerkzeugWas es macht
statusZustand des Editors und des Simulators: APIs erreichbar, Lizenzen bereit, aktive Datei, offener Dialog, RCS lädt / läuft.
editorBeliebiger Befehl der Editor-API (DReS_API), z. B. {"cmd":"plugins"}, {"cmd":"documents"}, {"cmd":"ui_actions"}, {"cmd":"ui_click","action":"File > Save all"}, {"cmd":"ui_list"}, {"cmd":"settings_get","filter":"..."} - siehe Editor-API.
rcsBeliebiger Befehl der API des Robot Cell Simulator (DReS_RCS_API): load, set, run, fast_run, stop, report, run_data, zones, check_interlocks, ui_windows, ui_list, ui_actions, ui_get, ui_set, ui_click, ui_view, ui_view_set, ui_context, ui_close, ui_key, ui_file, ui_shot, settings_get, settings_set. wait_idle = true wartet, bis Laden / Simulation beendet ist. Siehe rcs_api und rcs_api_reference.
open_fileÖffnet ein Roboterprogramm oder eine beliebige Textdatei im Editor (optional an einer Zeile).
saveSpeichert das aktive Dokument oder die angegebene offene Datei.
save_allSpeichert alle geänderten Dokumente.
close_fileSchließt das aktive Dokument oder die angegebene offene Datei. Eine nicht geänderte Datei schließt sofort. Eine geänderte Datei: ohne action fragt der Editor den Benutzer (Speichern / Verwerfen / Abbrechen); der Assistent fragt zuerst den Benutzer und übergibt action = save (speichern und schließen), discard (Änderungen verwerfen und schließen) oder cancel (offen lassen).
close_allSchließt alle Dokumente. Nicht geänderte schließen sofort; bei geänderten fragt der Editor den Benutzer, außer bei action = save / discard / cancel (cancel lässt die geänderten offen).
reloadLädt das aktive Dokument (oder die angegebene Datei) neu von der Festplatte.
documentsOffene Dokumente des Editors (Datei, geändert, aktiv).
projectsRoboterprojekte im Projektbaum (Name, Steuerungstyp, Konfigurationsdatei, aktiv).
set_active_projectSetzt das aktive Roboterprojekt (Name oder ein Teil davon, z. B. 'R03' oder '0001R03').
close_projectSchließt ein Roboterprojekt wie 'Close robot' im Projektbaum: seine offenen Dateien (bei einer geänderten Datei fragt der Editor Speichern / Verwerfen / Abbrechen) und den Roboter im Baum. Ohne Namen: das aktive Projekt.
restore_sessionStellt die letzte Sitzung des Editors wieder her (die zuletzt gespeicherte): what = all (Roboterprojekte und Dateien, Standard), robots (nur die Roboterprojekte) oder files (nur die offenen Dateien). Bereits offene Dateien und Roboter bleiben offen.
gotoBewegt den Cursor im aktiven Dokument (oder in der angegebenen offenen Datei) und gibt Zeile und Text zurück. target: line, first_line, last_line, point (Bewegung), fold (Hauptfold), tech (TECH-Befehl), up (UP- / Unterprogrammaufruf); direction: next oder previous (vom Cursor), first oder last (im Dokument). Zugeklappte Folds um das Ziel werden aufgeklappt.
check_syntaxPrüft die Syntax des aktiven Dokuments (oder der angegebenen offenen Datei) und gibt die Meldungen zurück.
menuListet die Menüaktionen des Editors (Pfad wie 'File > Save all'), optional gefiltert.
menu_clickLöst eine Menüaktion des Editors über ihren Pfad aus, z. B. 'File > Save all' oder 'Window > Close all'. Ein Dialog, den sie öffnet, ist mit editor {"cmd":"ui_windows"} zu sehen und wird mit ui_set / ui_click beantwortet.
start_rcsSchaltet die API des Robot Cell Simulator ein und öffnet ihn (wartet, bis er antwortet).
rcs_studySimulationsstudie im RCS: lädt eine Simulationsdatei, optional Folge 125 nach HOME, startet eine Folge (Zyklen, Geschwindigkeit, SPS) und gibt die Laufdaten zurück (Stationstakt, Roboter, Wartezeiten). Optional eine Berichtsdatei.

Warten: das Werkzeug rcs mit "wait_idle": true (und timeout_s) wartet, bis der Simulator frei ist: kein Laden, keine Vorbereitung, keine Simulation, keine offene Aktion im Fenster – und jetzt auch, bis ein laufender Robustheitstest beendet ist.

Schlüssel der Sitzung: wenn DReS den Prozess selbst startet (das Fenster KI-Agent des Simulators mit Claude Code, die Sprachsteuerung), gibt es ihm den Schlüssel der Sitzung in der Umgebungsvariablen DRES_API_TOKEN. vera_mcp.py fügt diesen Schlüssel jedem Befehl an den Editor oder den Simulator hinzu.

Wie es funktioniert und wohin die Daten gehen

Die Sprachsteuerung läuft vollständig auf diesem Computer: die Spracherkennung von Windows (offline) erkennt nur die Sätze aus vera_commands.json, das Skript schickt den Befehl über eine lokale Pipe an den Editor. Nichts geht ins Internet, kein KI-Konto ist nötig. KI-Assistent (MCP): Sie schreiben (oder diktieren) dem Assistenten, z. B. Claude Code mit Ihrem Konto; das Sprachmodell seines Anbieters entscheidet, welche Werkzeuge von VeRa benutzt werden, vera_mcp.py führt sie auf diesem Computer aus und gibt die Ergebnisse (z. B. Dateinamen, Programmzeilen, Ergebnisse einer Simulation) an den Assistenten zurück - diese Ergebnisse sind Teil des Gesprächs und werden vom Anbieter nach den Bedingungen Ihres Kontos verarbeitet. Sprachsteuerung und KI-Assistent sind unabhängig; beide arbeiten nur, solange ihre APIs in den Einstellungen eingeschaltet sind. Die Sprachsteuerung ist Teil von DReS und arbeitet ohne die Zusatzlizenz API / CLI: DReS startet sie selbst und gibt ihr einen Schlüssel der Sitzung, den kein anderes Programm kennt.

Editor-API

Befehle von \\.\pipe\DReS_API (AIAgent\dres_api.ps1) zusätzlich zu denen in Befehls-API. Änderungen, die einen Dialog öffnen können, antworten mit queued; ein Dialog ist mit ui_windows zu sehen. Befehle außer den lesenden brauchen die Zusatzlizenz API / CLI (die Sprachsteuerung arbeitet ohne sie).

Das Fenster KI-Agent des Editors (Tools > Show / hide AI Agent chat, Alt+4) benutzt diese Befehle ebenfalls: ein Chat mit einem KI-Modell, das für Sie im Editor arbeitet (Werkzeug editor_command); seine direkten Befehle (/documents, /projects …) führen diese Befehle ohne Modell aus.

Registerkarte Command API: die Befehls-API des Editors für den KI-Agenten und Skripte, Zustand listening
BefehlParameterWas er macht
documentsoffene Dokumente (Datei, geändert, aktiv)
activatefilemacht ein offenes Dokument aktiv
savefilespeichert das aktive oder das angegebene Dokument
save_allspeichert alle geänderten Dokumente
closefile, saveschließt ein Dokument; ein geändertes nur mit save=true
close_allsaveschließt alle Dokumente; geänderte nur mit save=true
reloadfile, forcelädt neu von der Festplatte; ein geändertes nur mit force=true
projectsRoboterprojekte des Projektbaums (Name, Konfiguration, Typ, aktiv)
set_active_projectnamesetzt das aktive Roboterprojekt (Name oder sein Ende, z. B. R03)
open_projectconfigöffnet ein Roboterprojekt aus seiner Konfigurationsdatei wie File > Open robot project (VKRC / KRC $config.dat, Fanuc system.va, ABB system.xml, Yaskawa SYSTEM.SYS); das Projekt erscheint im Projektbaum und wird aktiv; Antwort queued
check_syntaxfileprüft die Syntax (Ergebnis in der Konsole)
window_next / window_previous / window_first / window_lastnächstes / vorheriges / erstes / letztes Dokumentfenster
undo / redoRückgängig / Wiederholen im aktiven Dokument
gotofile, target, directionbewegt den Cursor im aktiven (oder im angegebenen offenen) Dokument und gibt Zeile und Text zurück; target = line | fold | point | tech | up, direction = next | previous | first | last
techaction, file, scope, projects, maxFiles, fileMask, openFiles, command, line, where, fields, full, summaryOnly, csv, set, dryRun, useSelectedVwUserlistet (action=list) oder ändert (action=set) die Parameter von Technologiebefehlen in den offenen Programmen oder in allen Programmen der Roboterprojekte (scope=projects), list auch in eine CSV-Datei: VKRC-TECH-Folds und SERVOZANGE-Folds, Fanuc CALL VW_USER(...); die Änderung bleibt im Editor (nicht gespeichert)
searchpattern, scope, projects, files, path, fileMask, ignoreCase, where, fields, max, maxFiles, context, text, csvsucht mit einem regulären Ausdruck in den Dateien der Roboterprojekte auf der Festplatte (nichts wird geöffnet); benannte Gruppen sind die Werte: Treffer, Zusammenfassung der Werte mit ihrer Anzahl, Treffer je Projekt / Datei, optional eine CSV-Datei
robot_dataprojects, sections, allDaten der Roboter aus ihrer Konfiguration – was die Registerkarten Robot info, Profinet und CTB data zeigen (Name, Modell, Seriennummer, Software, VW User, IP, Werkzeuge, Basen, Lasten, Profinet, Kalibrierung, Achsgrenzen), auch für inaktive Projekte
pointsfile, table, path, motions, acc, ranges, process, maxRows; scope, projects, files, fileMask, maxFiles, checks, selectPunkte eines Programms als Tabelle (X Y Z A B C S T, Werkzeug, Basis ...), Länge der TCP-Bahn, Bewegungszeit, Längen zwischen Punkten, Prozesslänge (Kleber); für viele Programme die Prüfungen samePoints und callStart, von DReS berechnet
ai_chatshow, message, stop, newChat, anonymous, lastdas Fenster KI-Agent des Editors: zeigen (true) / ausblenden (false), Nachricht senden (auch die Antwort yes | anon | no auf die Frage vor den ersten echten Daten), Agent anhalten, neuer Chat, anonymer Modus, last = Anzahl der letzten Einträge; Antwort visible, busy, anonymous, consentPending, transcript
ui_windows, ui_list, ui_actions, ui_get, ui_set, ui_click, ui_close, ui_key, ui_view, ui_view_set, ui_context, ui_shotjede Menüaktion (File, Edit, Window, Tools ...), jeder Dialog, Kontextmenü des Datei- / Projektbaums und des Editors - wie im Simulator (UI-Befehle). ui_set mit scroll statt value blättert ein Textfeld oder eine Liste (auch ein schreibgeschütztes, z. B. das Gespräch im Fenster KI-Agent): "top", "bottom", eine Zahl 0..1 (Position) oder "find:Text" (die erste Stelle des Textes oben in der Ansicht), z. B. {"cmd":"ui_set","id":12,"scroll":"find:Programs that fail"} (id aus ui_list); Antwort queued

tech – Parameter von Technologiebefehlen

Liest und ändert die Parameter von Technologiebefehlen in den offenen Dokumenten ohne Dialog – wie die Plugins VKRC Tech Updater / Fanuc Tech Updater. Es wirkt auf VKRC-Programme Folge, UP und Makro (TECH-Folds %VUSER und SERVOZANGE-Folds %VSERVOGUN) und auf Fanuc-Programme (CALL VW_USER(...)). Erfordert die Lizenz API / CLI.

ParameterBedeutung
actionlist (Standard) – die Befehle und ihre Parameter; set – Parameter ändern
fileein offenes Dokument; ohne file alle offenen Dokumente
scopefile (die angegebene Datei oder, bei leerem file, das aktive Dokument), open (alle offenen Dokumente) oder projects (die Programme der Roboterprojekte, siehe unten); Standard open ohne file, file mit ihm
projectsbei scope projects: nur Roboterprojekte, deren Name einen dieser Texte enthält, z. B. ["R05","R06"]; ohne Angabe alle VKRC- und Fanuc-Projekte des Projektbaums
maxFilesbei scope projects: höchstens diese Anzahl Dateien (Standard 300)
csvnur mit action list: schreibt die gefundenen Befehle in diese CSV-Datei, z. B. "D:/x/servozange.csv"
fileMasknur diese Programme (scope projects und open), z. B. ["up*"], ["folge*"], ["makro*"] oder ["folge81*"]
openFileslist mit scope projects: true – liest die Dateien über den Editor (die Dateien werden geöffnet) statt von der Festplatte (Standard false)
fieldsnur diese Parameter, z. B. ["Programmnummer","Punktnummer","FahrzeugTyp","Offset"]
fulltrue – die ausführliche Antwort von list (siehe unten); Standard false – kompakte Antwort
summaryOnlytrue – nur die summary und eine Anzahl je Dokument; false – immer die Liste der Befehle; ohne Angabe: nur die Zusammenfassung, wenn mehr als 400 Befehle gefunden werden
commandnur dieser Befehl: Gruppe.Untergruppe des TECH-Befehls (z. B. TECH1.EZ/SP/KE, ein Komma gilt als Punkt), SERVOZANGE.Schweissen oder SERVOZANGE (alle SERVOZANGE-Folds)
linenur der Befehl in dieser Zeile
wherenur Befehle, deren aktuelle Werte diese Bedingungen erfüllen: "6" (gleich), ">0", ">=2", "<5", "<=5", "!=6"; z. B. {"P1":"5"}, {"FahrzeugTyp":"6"} oder {"Offset":">0"}
setneue Werte: {"<Name oder P#>":"<Wert>"}
dryRuntrue – zeigt nur, was sich ändern würde, nichts wird geändert
useSelectedVwUsertrue – eine Datei außerhalb aller Roboterprojekte wird mit dem in der Symbolleiste gewählten VW User geändert (Standard false)

Parameternamen stammen aus den Definitionen des VW User – dieselben Namen wie im Dialog des Befehls (z. B. Fzg-Typ, Techaufruf); P1, P2 … (oder nur die Nummer) gehen ebenfalls. Groß-/Kleinschreibung, Leerzeichen und Zeichen wie - oder _ werden ignoriert, ein eindeutiger Namensanfang genügt. SERVOZANGE-Parameter: Programmnummer, Punktnummer, FahrzeugTyp (auch Fz-Typ), Offset, TeachIn (Auto / Manual), Ausgleich (AUS / SCHWACH / MITTEL / STARK / INDIVIDUELL), Kraft, Blechdicke, …, Bedingung; Strom, Doppelhub und Messen lassen sich nur im Dialog des Folds ändern. Werte aus einer Liste (Enum) können als Nummer oder als Text angegeben werden.

Antwort von list (kompakt, Standard) – je Dokument mit Treffern: file, project, vwUser, projectVwUser, errors und commands [{line, command, params}], dabei ist params ein Objekt der benutzten Parameter, z. B. {"Programmnummer":"99","FahrzeugTyp":"6"} (P# bei einem Parameter ohne Namen; unbenutzte Parameter, der Text der Zeile und die Listen der erlaubten Werte entfallen; Dokumente ohne Treffer entfallen). Mit full: true das ausführliche Format: params [{P, name, value, values (erlaubte Werte einer Liste, "n=Text"), used: false bei einem Parameter, den dieser Befehl nicht benutzt}] und text. Das Antwortfeld summary nennt jeden benutzten Wert jedes Parameters mit seiner Anzahl, z. B. {"SERVOZANGE.Schweissen FahrzeugTyp": {"6": 52, "7": 46}} (höchstens 100 Werte je Parameter). Bei mehr als 400 Befehlen kommen nur die Zusammenfassung und eine Anzahl je Dokument zurück (summaryOnly erzwingt das oder schaltet es ab). Antwort von set – je Dokument changes [{line, command, old, new, error, unchanged}], insgesamt found, changed und eine note.

scope projects: alle Folge-, UP- und Makro-Dateien der VKRC- und Fanuc-Roboterprojekte des Projektbaums werden auf der Festplatte durchsucht (VKRC folge*.src, up*.src, makro*.src unter KRC\R1, Fanuc folge*.ls, up*.ls, makro*.ls; fileMask grenzt das ein). list liest die Dateien von der Festplatte und öffnet sie nicht – line ist die Zeile in der Datei auf der Festplatte; mit openFiles: true werden sie über den Editor gelesen (geöffnet). set öffnet die Dateien mit passenden Befehlen (SERVOZANGE – %VSERVOGUN, TECH – %VUSER, Fanuc – VW_USER(), weil die Änderung im Editor erfolgt; sie bleiben offen, das Antwortfeld opened listet die vom Befehl geöffneten Dateien.

CSV-Export (csv, nur mit list): eine Zeile je Befehl, Spalten Project;File;Line;Command, eine Spalte je Parametername (P# bei einem Parameter ohne Namen) und Text; Trennzeichen ;, UTF-8 mit BOM (öffnet sich in Excel). Antwortfelder csv (Pfad der Datei) und csvRows (Anzahl der Zeilen).

VW User: die Definitionen der VKRC-TECH-Befehle kommen vom in der Symbolleiste gewählten VW User (Kombinationsfeld Select vw user); er wird beim Aktivieren eines Roboterprojekts automatisch gesetzt.

Die Änderung bleibt im Editor: das Dokument ist geändert, aber nicht gespeichert – save / save_all auf Wunsch. Rückgängig (Undo) funktioniert für diese Änderungen nicht (die Folds tragen Blockdaten). Beim Speichern wird der KRL-Code neu erzeugt (z. B. VW_SGB_SPOT_ADV/MAIN(...,FahrzeugTyp,...)); das Speichern eines VKRC-Programms normalisiert sein Format.

Beispiele:

{"cmd":"tech","action":"list","command":"SERVOZANGE"}
{"cmd":"tech","action":"list","file":"D:/x/KRC/R01/Program/folge81.src","command":"TECH1.EZ/SP/KE"}
{"cmd":"tech","action":"set","command":"SERVOZANGE.Schweissen","set":{"FahrzeugTyp":"2"},"dryRun":true}
{"cmd":"tech","action":"set","command":"SERVOZANGE.Schweissen","where":{"FahrzeugTyp":"6"},"set":{"FahrzeugTyp":"2"}}
{"cmd":"tech","action":"set","file":"D:/x/KRC/R01/Program/folge81.src","line":120,"set":{"P1":"5"}}
{"cmd":"tech","action":"list","scope":"projects","command":"SERVOZANGE","csv":"D:/x/servozange.csv"}
{"cmd":"tech","action":"list","scope":"projects","command":"SERVOZANGE","fields":["Programmnummer","Punktnummer","FahrzeugTyp","Offset"],"fileMask":["up*"],"where":{"Offset":">0"}}
{"cmd":"tech","action":"set","scope":"projects","projects":["R01","R02"],"command":"SERVOZANGE.Schweissen","set":{"FahrzeugTyp":"2"},"dryRun":true}

search – regulärer Ausdruck in den Dateien der Roboterprojekte

Sucht Zeile für Zeile mit einem regulären Ausdruck in den Dateien der Roboterprojekte auf der Festplatte – nichts wird im Editor geöffnet, nichts wird geändert. Unabhängig vom Plugin Robot Data Spy. Wird vom Agenten RobotDataSpy benutzt. Erfordert die Lizenz API / CLI.

ParameterBedeutung
patternregulärer Ausdruck je Zeile (Pflicht); benannte Gruppen (?<name>...) sind die Werte, die in groups und summary zurückkommen
scopeprojects (Standard) – die Dateien der Roboterprojekte des Projektbaums; files – die Dateien oder Ordner in files (Standard, wenn files angegeben ist); open – die offenen Dokumente
projectsnur Roboterprojekte, deren Name einen dieser Texte enthält, z. B. ["R01"]; ohne Angabe alle Projekte
filesbei scope files: Pfade von Dateien oder Ordnern (Ordner mit Unterordnern)
pathUnterordner jedes Roboterprojekts, z. B. "KRC/R1/System"
fileMaskz. B. ["folge*.src","up*.src"], ["$config.dat"]; Standard VKRC / KRC *.src, *.dat, *.sub, Fanuc *.ls, *.va, ABB *.mod, *.modx, *.sys, *.prg, *.cfg, Yaskawa *.jbi, *.dat, *.prm
ignoreCaseStandard true
whereBedingungen auf den Gruppen: "6", ">0", ">=2", "<5", "<=5", "!=6", "~Text" (enthält), z. B. {"tool":">0"}
fieldsnur diese Gruppen in der Antwort
maxaufgelistete Treffer (Standard 200, höchstens 5000); found zählt alle
maxFileshöchstens diese Anzahl Dateien (Standard 5000)
contextZeilen vor und nach einem Treffer (0 bis 5, Standard 0)
texttrue – der Text der Zeile auch dann, wenn das Muster Gruppen hat (um das Muster zu prüfen)
csvschreibt alle Treffer in diese CSV-Datei: Spalten Project;File;Line, eine Spalte je Gruppe und Text

Antwort: filesSearched, filesWithHits, found, hits [{project, file (relativ zum Roboterprojekt), line, groups, text, context}], summary (jeder Wert jeder Gruppe mit seiner Anzahl, höchstens 100 Werte je Gruppe), perProject, perFile (bis 100 Dateien), note, wenn nicht alle Treffer aufgelistet sind, filesLimit, csv und csvRows.

Beispiele:

{"cmd":"search","pattern":"BAS\\s*\\(#TOOL,\\s*(?<tool>\\d+)","fileMask":["folge*.src","up*.src"],"where":{"tool":">0"}}
{"cmd":"search","pattern":"&PARAM TPVW_VERSION\\s*=\\s*(?<v>[\\d.]+)","projects":["R01"],"csv":"D:/x/tpvw.csv"}

robot_data – Daten aus der Roboterkonfiguration

Die Daten der Roboter aus ihrer Konfiguration – was die Registerkarten Robot info, Profinet und CTB data zeigen. Das aktive Projekt liefert die geladene Konfiguration; ein anderes Projekt wird ohne Dialoge von der Festplatte gelesen (der Zustand des Editors bleibt gleich). VKRC, KRC, Fanuc, ABB, Yaskawa. Erfordert die Lizenz API / CLI.

ParameterBedeutung
projectsRoboterprojekte, deren Name einen dieser Texte enthält, z. B. ["R01"]; ["*"] alle; ohne Angabe das aktive Projekt
sectionsinfo (Name, Modell, Seriennummer, Software, VW User, Trafo, IP / Netzmaske / Gateway, WorkVisual- und KUKA.Load-Projekt), tools, bases, loads, profinet (Geräte, Kamera-IPs), cal (Kalibrierung / Justage), softend (Achsgrenzen), all; Standard info, tools, bases, loads
alltrue – auch Werkzeuge / Basen / Lasten ohne Daten (Standard false: nur die definierten)

Antwort: robots [{project, config, active, type (VKRC, KRC, Fanuc, ABB, Yaskawa), info, tools, bases, loads, profinet, cal, softEnd, error}], note, wenn kein Projekt passt. VKRC / KRC: Werkzeuge, Basen und Lasten mit no, name, x, y, z, a, b, c; Fanuc: UT / UF (x, y, z, w, p, r), Lasten je Werkzeug; ABB: tooldata / wobjdata (Quaternionen); Yaskawa: Werkzeuge, User Frames, Lasten.

Beispiele:

{"cmd":"robot_data","projects":["*"],"sections":["info"]}
{"cmd":"robot_data","projects":["R01"],"sections":["tools","bases","loads"]}

points – Punkttabelle und TCP-Bahn eines Programms

Die Punkte eines Programms als Tabelle (wie der Export der Punkttabelle) und die TCP-Bahn (die Werkzeuge Path (TCP) der Punkttabellen). Eine im Editor offene Datei wird aus dem Editor gelesen (auch ungespeicherte Änderungen), sonst von der Festplatte in einem verborgenen Editor (sie wird nicht geöffnet). VKRC, KRC, Fanuc, ABB, Yaskawa. Erfordert die Lizenz API / CLI.

ParameterBedeutung
filedas Programm (.src, .ls, .mod, .jbi); ohne Angabe das aktive Dokument
tabletrue (Standard) – columns und rows: Point, Motion, X, Y, Z, A, B, C, S, T, E1.., Tool, Base, VB, VE (VKRC)
maxRowshöchstens diese Anzahl Zeilen (Standard 500)
pathtrue (Standard) – die TCP-Bahn in path
accBeschleunigung für die Bewegungszeit in mm/s² (Standard 2000)
rangesLängen zwischen Punkten, z. B. [["P5","P12"]]
processLänge des Prozesses (Kleber, MAG, Laser): {"on":"<Regex der Zeile, die ihn einschaltet>","off":"<Regex aus>"}
motionstrue – jede Bewegung mit Segment, Geschwindigkeit, Überschleifen und Schaltpunkten (motionList)

Antwort: file, open, type, columns, rows, pointCount, rowsNote, notes und path {motions, lengthMM (TCP-Bahn mit Überschleifen), lengthExactMM (Geometrie), timeCpS (CP-Bewegungen mit Beschleunigung), timePlannedS (mit PTP und Achsdaten), ranges, process {ranges, lengthMM}, motionList, notComputed, configNote, error}.

Viele Programme und Prüfungen (mit checks, scope projects oder files): die Punkttabellen aller gewählten Programme, die Abstände berechnet DReS.

ParameterBedeutung
scope, projects, filesprojects – die Programme der Roboterprojekte (Filter projects: ein Teil des Projektnamens; "*" oder "all" = alle Roboterprojekte – ebenso bei tech, search und robot_data), oder die Liste files
fileMaskStandard ["folge*","up*"]; ohne Endung wird die Endung der Steuerung ergänzt
maxFileshöchstens diese Anzahl Dateien (Standard 300)
checks.samePointsPunktpaare, deren Abstand in jedem Programm geprüft wird: "1" (erster), "2", "last", "-2" oder ein Name "P5", z. B. [["1","2"],["1","last"]]
checks.callStarttrue – jeder Aufruf eines UP / MAKRO im Programm: der Punkt des Aufrufs gegen den ersten Punkt des aufgerufenen Programms (dasselbe Roboterprojekt)
checks.tolerancein mm (Standard 2); verschiedene Basen mit demselben Werkzeug werden in Weltkoordinaten verglichen (Basen aus $config.dat), verschiedene Werkzeuge sind nicht vergleichbar
checks.onlyFailedtrue (Standard) – nur die Programme, die die Bedingung verletzen
selectdiese Punkte jedes Programms, z. B. ["1","last"] (selected)

Antwort: filesChecked, toleranceMM, samePoints {checked, failed}, callStart {checked, failed}, files [{project, file, points, checks [{check, a, b, distMM, ok, world | frames}], calls [{program, atPoint, line, firstPoint, distMM, ok, world | frames, error}], selected, error}]. Etwa 2 s je Programm.

Beispiele:

{"cmd":"points","file":"D:/x/KRC/R01/Program/up42.src","table":true,"path":true,"ranges":[["P5","P12"]]}
{"cmd":"points","file":"D:/x/KRC/R01/Program/up12.src","table":false,"process":{"on":"A1544.*EIN","off":"A1544.*AUS"}}
{"cmd":"points","scope":"projects","projects":["R01"],"fileMask":["folge*"],"checks":{"samePoints":[["1","2"],["1","last"]],"callStart":true,"tolerance":2}}