Die Werkzeuge, Bereich für Bereich

Was jedes Werkzeug tut, das ein Agent aufrufen kann, gruppiert nach dem Berechtigungsschalter, der es anbietet.

Als Markdown ansehen

Namen von Werkzeugen sind stabile Bezeichner in snake_case. Fehler sind strukturiert und verwertbar: Ein fehlgeschlagener Aufruf liefert zurück, was schiefging, dazu einen Hinweis, der das Werkzeug oder den Schritt nennt, der es behebt, sodass ein Agent sich selbst korrigiert, statt zu raten. Ist der Bereich Sicherungen (Verwalten) ein, weist der Server die Agenten außerdem an, vor Änderungen an der Konfiguration eine Sicherung anzulegen. Welche dieser Listen ein Agent tatsächlich sieht, steht in Was jeder Bereich öffnet.

Connector: Lesen

Werkzeug Wirkung
connector_browse Listet den konfigurierten Baum mit dem aktuellen Zustand auf: Modbus RTU als Treiber, serielle Leitung, Gerät, Tag; jeden anderen Treiber als Treiber, Gerät, Tag, mit dem Ordner jedes Geräts daneben. Zeigt die Alias-Namen der Tags (Driver.Folders….Device.Tag), die tag_read, tag_write und die Ausdrücke von Logic verwenden. Solange der eingebettete Server gestoppt ist, sind die Aliasse null.
tag_read Liest die aktuellen Werte eines Tags über seinen Alias: den Rohwert auf Geräteebene, den technischen Wert nach der Wertkette, die Qualität und beide Zeitstempel.

Connector: Konfigurieren

Werkzeug Wirkung
driver_capabilities Listet jeden Treiber auf, den die Anwendung bedienen kann, mit den Verbindungsfeldern, die ein Gerät braucht, dem Adressierungsmodell der Tags (Freitextadresse und/oder typisierte Felder), der Unterstützung und den Parametern der Gerätesuche, den Zeitbereichen und den unterstützten Werttypen. Die Karte, die ein Agent vor device_upsert oder tag_upsert liest.
serial_line_list Listet jede gespeicherte serielle Leitung für Modbus RTU auf, auch deaktivierte und leere, mit ihrer stabilen ID und den eingestellten, den automatischen und den wirksamen Zeitwerten.
serial_line_upsert Erzeugt eine Modbus RTU-Leitung oder ändert eine über ihre stabile ID. Name und Aktivierung lassen sich jederzeit ändern, das minimale Transaktionsintervall auch im aktivierten Zustand; serieller Anschluss, Baudrate, serielles Format und Antwort-Zeitlimit nur, solange die gespeicherte Leitung deaktiviert ist.
serial_line_delete Löscht eine Leitung über ihre stabile ID. Eine Leitung, die noch Geräte enthält, wird abgelehnt, sofern der Aufruf nicht ausdrücklich erlaubt, jedes untergeordnete Gerät und jeden Tag mit zu löschen.
device_upsert Erzeugt oder ändert ein Gerät über Treiber und Name (der Treiber ist nach dem Anlegen unveränderlich). Nur übergebene Parameter ändern sich; die Verbindungsfelder hängen vom Treiber ab; ein Gerät in einen Ordner zu verschieben schreibt jeden Verweis auf seine alten Tag-Adressen um. Die Änderung wird sofort in den laufenden Server übernommen.
device_delete Löscht ein Gerät und alle seine Tags; wird sofort in den laufenden Server übernommen.
tag_upsert Erzeugt oder ändert einen Tag an einem Gerät. Die Adressierung hängt vom Treiber ab (Freitextadresse und/oder typisierte Felder); die Antwort gibt die zusammengesetzte Busadresse und den Alias für tag_read zurück. Enthält für numerische Tags die Stufen für ungültige Messwerte (NaN-Aktion und Darstellung bei Lesefehler).
tag_delete Löscht einen Tag; wird sofort übernommen.

Logic: Lesen

Werkzeug Wirkung
logic_browse Durchsucht den verwurzelten Adressraum von Logic, denselben Punktbaum, den jeder Ausdruck liest: System, Server, Connector, Variables, Alarms, Process und Assets. Ordner des Bedieners sind echte Adressebenen; untergeordnete Punkte enthalten ihren aktuellen Wert und ihre Qualität.
logic_read Liest einen Punkt über seine Punktadresse (zum Beispiel Variables.Setpoint) und liefert den aktuellen Wert und die Qualität.

Logic: Konfigurieren

Ein Upsert ist teilweise (weggelassene Parameter behalten ihren Wert), und jeder zusammengeführte Entwurf durchläuft dieselbe Prüfung wie in den Editoren von Logic; ein ungültiger Entwurf wird abgelehnt, und nichts bleibt halb angewendet.

Werkzeug Wirkung
variable_upsert Erzeugt oder ändert eine Variable: Expression (ein einzelner, nur lesender JavaScript-Ausdruck über dem Adressraum) oder Memory (ein schreibbarer, wahlweise remanenter Wert). Der Name ist der Schlüssel und, bereinigt, die Adresse; der Parameter für den Ordner legt sie ab und schreibt dabei jeden Verweis auf die alte Adresse um.
variable_delete Löscht eine Variable über ihren Pfad, samt ihres remanent gehaltenen Werts. Kanäle, die daran gebunden sind, verlieren ihre Quelle.
action_upsert Erzeugt oder ändert eine Aktion: ein JavaScript-Anweisungsblock mit genau zwei Schreibbefehlen, der Zuweisung an eine Variable vom Typ Memory und dem Schreiben auf einen technischen Tag-Wert. Statisch geprüft, beim Speichern nie ausgeführt.
action_delete Löscht eine Aktion über ihren Namen. Auslöser, die daran gebunden sind, laufen leer.
trigger_upsert Erzeugt oder ändert einen Auslöser mit festem Intervall: Alle intervalMs (mindestens 100) läuft die gebundene Aktion in der Warteschlange der Logik; ein Takt während einer noch laufenden Ausführung wird übersprungen. Die Bindung an die Aktion ist lose und erfolgt über den Namen.
trigger_delete Löscht einen Auslöser; die gebundene Aktion bleibt unberührt.
alarm_upsert Erzeugt oder ändert einen Alarm: einen Bedingungsausdruck vom Typ Bool, die Priorität (Critical/High/Medium/Low), die Verzögerungen beim Kommen und Gehen, ob eine Quittierung nötig ist, und die Art der Meldung. Das Speichern einer geänderten Bedingung oder Zeit setzt den laufenden Zustandsautomaten zurück.
alarm_delete Löscht einen Alarm über seinen Pfad; eine aktive Meldung wird zuvor gelöscht.
logic_folder_upsert Erzeugt, benennt um oder verschiebt einen Ordner zur Gliederung eines Abschnitts (Variables, Alarms, Actions, Triggers; höchstens drei Ebenen). Bei Variables und Alarms gehört der Ordnerpfad zur Adresse, deshalb schreiben Umbenennen und Verschieben jeden Ausdruck, jedes Skript, jede Bedingung und jede Verknüpfung im Dashboard darunter um.
logic_folder_delete Löscht einen Ordner. Nichts, was er enthielt, geht verloren: Einträge und Unterordner rücken eine Ebene nach oben, und Verweise werden umgeschrieben; ein Namenskonflikt am Ziel verhindert das Löschen.

Logic: Bedienen

Alle diese Werkzeuge laufen über die eine Warteschlange der Logik und werden mit dem Ursprung MCP protokolliert.

Werkzeug Wirkung
variable_write Schreibt einen Wert in eine Variable vom Typ Memory (auf ihren Ausgabetyp gewandelt, bei Remanenz gespeichert). Variablen vom Typ Expression werden berechnet und lehnen Schreibzugriffe ab.
tag_write Schreibt einen technischen Wert auf einen schreibbaren Tag: rückwärts durch die Wertkette des Tags geführt, auf den Typ des Geräts gewandelt, auf das Gerät geschrieben. Schreibgeschützte Tags und schreibgeschützte Treiber werden mit der Begründung abgelehnt.
action_run Führt eine Aktion in der Warteschlange der Logik aus und liefert ihr Ergebnis und ihre Dauer. Eine deaktivierte Aktion schlägt fehl, ohne zu laufen.
alarm_ack Quittiert einen Alarm, die Antwort des Bedieners; ohne Wirkung, wenn nichts ansteht.
alarm_ack_all Quittiert jeden Alarm, der auf eine Quittierung wartet, als einen Eintrag in der Warteschlange der Logik, wobei jeder Übergang protokolliert wird.

Server: Lesen

Werkzeug Wirkung
server_status Meldet den Zustand des eingebetteten OPC UA-Servers: Betriebszustand, Laufzeit, URL des Endpunkts, verbundene Client-Sitzungen und die Größe des konfigurierten Adressraums.

Server: Bedienen

Werkzeug Wirkung
server_start Startet den eingebetteten OPC UA-Server und baut die aktuelle Konfiguration auf. Ohne Wirkung, wenn er bereits läuft.
server_stop Stoppt den Server geordnet. Die Kommunikation mit den Geräten, das Lesen der Tags und der laufende Adressraum von Logic ruhen, bis er wieder startet.
server_restart Stoppen und wieder starten, wobei die Konfiguration neu aufgebaut wird; das vollständige Neuladen nach einer Reihe von Änderungen.
connector_refresh Gleicht den laufenden Server schrittweise mit den konfigurierten Geräten ab (hinzufügen, entfernen, neu anlegen), ohne vollständigen Neustart; der leichtere Weg, Änderungen anzuwenden.
device_discover Führt den Suchlauf der Gerätesuche eines Treibers aus und liefert Kandidaten mit ihren Tags zurück, ohne etwas zu speichern. Nur Treiber, deren Protokoll einen echten Suchlauf unterstützt, nehmen teil; bereits vorhandene Kandidaten werden als solche gekennzeichnet.

Logs: Lesen

Werkzeug Wirkung
logs_read Liest den programmweiten Live-Strom des Journals (denselben, den die Konsole von Ereignisse zeigt), gefiltert nach Mindeststufe (Debug/Information/Warning/Error, Standard Information), Bereich (App/Server/Connector/Logic/Process/Dashboard/Agent/Licensing), Komponente und einer Teilzeichenfolge aus dem Kontext; liefert die neuesten Treffer (Standard 100, höchstens 500). Handlungen eines Agenten werden im Bereich Agent protokolliert.
event_history_read Liest die dauerhafte Zeitleiste der Betriebsereignisse, die Neustarts übersteht: Übergänge von Alarmen, von Ereigniseinträgen und von Verriegelungen. Filtern nach Art (Alarm/Occurrence/Interlock), einem einschließenden UTC-Zeitraum und einer Stufe (Priorität des Alarms, Schwere des Ereigniseintrags oder Übergang der Verriegelung); neueste zuerst, Standard 100, höchstens 500. Streng nur lesend: Einträge des Journals lassen sich weder leeren noch löschen.

Process: Lesen

Werkzeug Wirkung
process_models Listet die Modelle von Process vollständig auf: Kanäle, gemeinsame Gruppen, Einheiten mit aufgelöster Verdrahtung und Betriebszustand, Abläufe, Bereiche, Rezepte, Bewertungen, Ereigniseinträge sowie die globale Bibliothek der Berichtsvorlagen. Die Karte, die ein Agent liest, bevor er etwas startet.
process_runs Listet Läufe auf, die jüngsten zuerst: ID, Name, Zustand, Prüfergebnis, was gelaufen ist, wer ihn gestartet hat (Station/User/Automation/Agent), Zeiten und Fortschritt im Zyklus. Lässt sich auf aktive Läufe einschränken und in der Anzahl begrenzen (Standard 50).
process_run Liest die vollständige, eingefrorene Aufzeichnung eines Laufs über seine ID: Momentaufnahme, Metadaten, bewertete Kriterien mit Anzahl der Stichproben, Episoden und Ereignisse von Ereigniseinträgen, tatsächlich ausgeführte Schreibzugriffe des Rezepts, Kommentare sowie die eingefrorenen Dateien von Bericht und Etikett mit ihren Druckversuchen. Berechnet auf Wunsch die Zeilenzahl und den Zeitbereich des Datalogs.
unit_status Meldet den aktuellen Zustand einer Einheit: ob sie läuft (mit dem aktiven Lauf) und den aktuellen technischen Wert hinter jedem Kanal, gelesen ohne aufzuzeichnen.

Process: Konfigurieren

Werkzeug Wirkung
process_view_configure Konfiguriert genau einen Bereich eines Modells: das Icon daneben und ob er auf der Seite View steht. Sonst ist nichts am Aggregat von Process über MCP beschreibbar; der Rest wird auf der Seite Process bearbeitet.

Process: Bedienen

Läufe, die ein Agent startet, beendet oder kommentiert, tragen Agent als handelnde Instanz ein, nie den Bediener, der gerade am Prüfstand angemeldet ist.

Werkzeug Wirkung
process_snapshot Nimmt eine Datalog-Zeile an einer Einheit außerhalb eines Ablaufs auf. Jeder Aufruf erzeugt in Historien einen neuen, bereits abgeschlossenen Lauf der Art Direkt ohne Bewertung (Prüfergebnis None).
process_evaluate Nimmt eine Datalog-Zeile auf und beurteilt sie mit einer Bewertung; erzeugt einen abgeschlossenen Lauf der Art Direkt und liefert dessen Prüfergebnis.
process_recipe_apply Wendet ein Rezept der Art Direkt einmal auf eine Einheit an, über den Schreibkanal und die Quellsperren von Process. Steuert die Anlage an; erzeugt keinen Lauf (die Schreibzugriffe werden protokolliert). Rezepte der Art Zeitgeführt werden abgelehnt.
process_start Startet den Lauf eines Ablaufs auf einer Einheit, mit einem JSON-Objekt für die Metadatenfelder des Ablaufs. Fehlende oder ungültige Pflichtangaben, eine bereits laufende Einheit oder ein Sperrkonflikt an einem gemeinsam genutzten Kanal verhindern den Start. Liefert die ID des neuen Laufs.
process_stop Stoppt einen laufenden Lauf: Abschlussblock, eingefrorene Momentaufnahme für die Historie, berechnetes Prüfergebnis.
process_hold Hält das zeitliche Profil eines Laufs beim letzten Sollwert an; das Datalog zeichnet weiter auf.
process_resume Setzt das zeitliche Profil eines angehaltenen Laufs fort.
process_abort Bricht einen Lauf aus Running oder Held ab: der Abschluss läuft, die Momentaufnahme wird geschrieben, der Zustand wird Aborted und das Prüfergebnis NOK.
process_comment Fügt der Datei eines Laufs einen Kommentar mit Zeitstempel hinzu: während des Laufs eine Notiz in der Zeitleiste, danach eine Notiz nach dem Lauf.
process_report Erzeugt den PDF-Bericht eines abgeschlossenen Laufs oder erzeugt ihn neu und liefert seinen Dateipfad. Eine benannte Vorlage aus der globalen Bibliothek hat Vorrang vor der im Ablauf eingestellten; ohne beides gilt das Standardlayout mit allen Abschnitten. Wird abgelehnt, solange der Lauf aktiv ist.
process_run_delete Löscht einen aufgezeichneten Lauf endgültig: seinen Verweis im Index der Historie und die Datenbankdatei des Laufs. Wird abgelehnt, solange er aktiv ist; die Konfiguration bleibt unberührt.

Dashboard: Konfigurieren

Werkzeug Wirkung
dashboard_list Listet Dashboards auf (oder, wenn ein Modell genannt wird, dessen Bilder): Rastergröße, Ordner, Icon, Kennzeichen für den Start, Sichtbarkeit je Rolle und jede Komponente mit ihrer Position, ihrer Ebene und ihrem Eigenschaften-JSON, dazu jedes gespeicherte Verbindungsnetz. Liefert außerdem den Katalog der Komponentenarten mit der Standardgröße und den Standardeigenschaften jeder Art.
dashboard_upsert Erzeugt oder ändert ein Dashboard über seinen Namen: Rastergröße (eine Verkleinerung, die eine Komponente heimatlos machen würde, wird abgelehnt), Ordner und Icon in der Visualisierungsliste, Kennzeichen für den Start, Sichtbarkeit der Statusleiste im Vollbild und Sichtbarkeit je Rolle. Wird ein Modell genannt, spricht der Aufruf stattdessen die Bilder dieses Modells an. Geöffnete Dashboard-Seiten übernehmen die Änderung sofort.
dashboard_delete Löscht ein Dashboard und seine Komponenten über den Namen; wird ein Modell genannt, wird stattdessen dessen Bild gelöscht.
component_upsert Fügt eine Komponente einer Art hinzu (ohne andere Angabe in der ersten freien Zelle mit der Standardgröße dieser Art platziert) oder ändert eine über ihre ID. Die Platzierung muss innerhalb des Rasters liegen; Überlappen ist erlaubt, wobei die z-Ebene die Zeichenreihenfolge bestimmt; das Eigenschaften-JSON ist der typisierte Satz dieser Art. Wird ein Modell genannt, spricht der Aufruf stattdessen die Bilder dieses Modells an, sodass ein dort angelegtes Bild hier eingerichtet werden kann.
component_delete Entfernt eine Komponente über ihre ID; wird ein Modell genannt, spricht der Aufruf stattdessen die Bilder dieses Modells an.
connection_upsert Verbindet zwei Anschlusspunkte von Symbolen mit einem typisierten Verbindungsnetz und löst Typ, Rolle und Richtung genau so aus dem Symbolkatalog auf wie der Editor der Zeichenfläche. Enden, die zu verschiedenen Typen aufgelöst werden, schlagen fehl, sofern eine unbestimmte Verbindung nicht ausdrücklich erlaubt ist; ein Ankerpunkt, der bereits eine Verbindung trägt, wird abgelehnt. Wird ein Modell genannt, spricht der Aufruf stattdessen die Bilder dieses Modells an.
connection_delete Entfernt ein Verbindungsnetz über ID und erwartete Revision, sodass ein veralteter Löschbefehl abgelehnt wird, statt eine neuere Änderung zu überschreiben; wird ein Modell genannt, spricht der Aufruf stattdessen die Bilder dieses Modells an.

Oberfläche: Automatisieren

Diese Werkzeuge bedienen das echte Anwendungsfenster; es gibt sie, damit ein Agent die Oberfläche prüfen kann, die der Bediener sieht, und keine Nachbildung davon. Die Eingaben gehen an die laufende Oberfläche, deshalb ist es vorgesehen, auf jede Geste ein ui_screenshot folgen zu lassen und die Wirkung anzusehen; mehrdeutige Treffer kommen als Liste von Kandidaten zurück statt als geratener Klick.

Werkzeug Wirkung
ui_state Meldet den Zustand der Oberfläche: aktive Seite, verfügbare Seiten, Design, Fenstergröße und Sichtbarkeit sowie die Loopback-Adresse, unter der diese Instanz ihre Oberfläche ausliefert. Der Aufruf zur Orientierung vor allem anderen.
ui_navigate Aktiviert eine Seite der Oberfläche über ihren stabilen Namen, der auf jeder Station englisch ist: View, Process, Logic, Connector, Users, Validation, Events, Agent, Settings, Account. Die Beschriftung, die die Navigationsleiste in der Sprache der Station zeigt, wird ebenfalls angenommen.
ui_screenshot Nimmt das Fenster so auf, wie es auf dem Bildschirm steht, speichert es als PNG-Datei und liefert deren absoluten Pfad; ist das Fenster in den Infobereich ausgeblendet, wird es zuvor wiederhergestellt. Kann statt des ganzen Fensters einen benannten Bildbereich aufnehmen (einen eindeutigen, sichtbaren Bereich mit data-doc-region); ein fehlender, verdeckter oder mehrdeutiger Bereich schlägt fehl und listet die sichtbaren Bereiche auf, statt stillschweigend das ganze Fenster aufzunehmen.
ui_scroll Rollt den Hauptbereich der aktiven Seite an den Anfang, an das Ende oder um ganze Sichtfenster und liefert die Offsets zurück, sodass eine lange Seite abgefahren werden kann.
ui_set_theme Wendet das Design an (System, Light oder Dark). Es wird genauso dauerhaft gespeichert wie über das Menü für das Design in der Titelleiste, ein wohlerzogener Agent stellt den ursprünglichen Wert danach also wieder her.
ui_resize Ändert die Größe des wiederhergestellten Fensters in geräteunabhängigen Einheiten, begrenzt auf die Mindestgröße des Fensters; nützlich, um enge Layouts zu prüfen.
ui_click Klickt die sichtbare Schaltfläche, den Link, das Kontrollkästchen oder den Schalter, dessen Text passt; Kontrollkästchen und Schalter werden über ihre Feldbeschriftung gefunden, und das Ergebnis meldet den erreichten Zustand. Bei Mehrdeutigkeit kommen die Kandidaten zurück, statt dass einer geraten wird.
ui_set_text Schreibt einen Wert in ein Textfeld, das über seine Feldbeschriftung gefunden wird, und übernimmt die Bindung so, wie es das Tippen täte.
ui_select Wählt einen Eintrag über seinen sichtbaren Text: Ein durch Schrägstriche getrennter Pfad läuft durch einen Baum und klappt ihn dabei auf; ein einzelnes Segment trifft auch Einträge in Listen, Registerkarten und Auswahlfeldern sowie Zeilen einer Tabelle auf der aktuellen Seite.

Sicherungen: Verwalten

Werkzeug Wirkung
backup_create Erzeugt im laufenden Betrieb eine Momentaufnahme der Konfigurationsdatenbank im Ordner der Sicherungen, mit einer optionalen Notiz. Aufgezeichnete Läufe liegen außerhalb der Konfiguration und werden von Sicherung und Wiederherstellung nie berührt.
backup_list Listet die Sicherungen der Konfiguration auf (Dateiname, Zeitpunkt der Erstellung, Größe, Notiz) sowie eine bereits eingeplante Wiederherstellung.

Es gibt bewusst kein Werkzeug zum Löschen von Sicherungen: Die Aufbewahrung liegt allein beim Bediener, auf der Seite Sicherungen.

Sicherungen: Wiederherstellen

Werkzeug Wirkung
backup_restore Plant ein, dass eine Sicherung die aktuelle Konfiguration beim nächsten Start der Anwendung ersetzt. In der laufenden Anwendung ändert sich nichts, und das Werkzeug startet sie nie neu; von der Konfiguration, die ersetzt wird, wird zuvor automatisch eine Momentaufnahme angelegt, und der Bediener kann die eingeplante Wiederherstellung bis zum Neustart in den Einstellungen abbrechen. Wird abgelehnt, solange eine Aufzeichnung läuft.

Einstellungen: Verwalten

Werkzeug Wirkung
settings_read Liest die Einstellungen der Station für Anzeige und Verhalten: Formate für Datum, Uhrzeit und Zahlen, Nachkommastellen, Design sowie die Kennzeichen für Schließen in den Infobereich und für Absturzberichte.
localization_set Ändert die Einstellungen für die Anzeige (teilweise: weggelassene Parameter bleiben). Nur die Anzeige: Speicherung, Ein- und Ausgabe der Treiber und Aufzeichnungen verwenden immer das invariante Format.
asset_list Listet die eigenen Assets auf (Bilder, Icons, Farben), mit IDs, Werten und Pfaden.
asset_import Importiert eine PNG- oder JPG-Datei von einem lokalen Pfad in die Asset-Bibliothek der Anwendung und liefert die ID des neuen Assets. Die Bytes werden kopiert, die Quelldatei darf danach also verschoben werden.
symbol_validate Prüft übergebenen Symbolinhalt (reines SVG oder ein Paket der Version 2), ohne etwas zu speichern: ein Trockenlauf genau desselben Imports, der Fehler, Warnungen der Bereinigung und eine Zusammenfassung des Erkannten liefert. Die Beschreibung des Werkzeugs enthält den vollständigen Vertrag für portable Symbole.
symbol_import Importiert übergebenen Symbolinhalt als neues eigenes Symbol-Asset und liefert dessen ID und den Verweis user:<guid>. Erzeugt immer ein neues Asset; ein bereits vergebener Name erhält automatisch einen Zusatz.