Gli strumenti, area per area

Che cosa fa ogni strumento che un agente può chiamare, raggruppato per l'interruttore di capacità che lo annuncia, e gli strumenti della guida che non ne richiedono nessuno.

Visualizza come Markdown

I nomi degli strumenti sono identificatori stabili in snake_case. Gli errori sono strutturati e utilizzabili: una chiamata fallita restituisce che cosa è andato storto più un suggerimento che nomina lo strumento o il passo che lo risolve, così un agente si corregge da solo invece di tirare a indovinare. Il server istruisce ogni agente a leggere la guida con help_search e help_read prima di rispondere a una domanda sul funzionamento dell'applicazione e, quando l'area Backup (gestione) è attiva, a creare un backup della configurazione prima di modificarla. Quale di questi elenchi un agente veda davvero è che cosa apre ogni area, più gli strumenti della guida, che non richiedono alcuna area.

Guida

I due strumenti della guida leggono questa documentazione così come l'installazione la porta con sé: gli stessi articoli che apre il pannello della guida, scritti per la versione installata sulla stazione. Arrivano con l'endpoint ogni volta che l'interruttore generale è attivo, qualunque cosa dicano gli interruttori delle aree, perché il testo è la documentazione pubblica e non mostra nulla della stazione. Entrambi continuano a funzionare mentre il runtime è fermo.

Strumento Che cosa fa
help_search Trova gli articoli in base alle parole di una domanda e restituisce di ciascuno lo slug, il titolo, il riepilogo e le sezioni toccate da quelle parole, dal risultato migliore in giù (10 per impostazione predefinita, fino a 50). Maiuscole e accenti vengono ignorati. Senza una query elenca tutti gli articoli.
help_read Legge un intero articolo in base al suo slug come testo semplice: il titolo, il riepilogo, l'elenco delle sezioni e il corpo, con ogni sezione su una riga di intestazione e le tabelle con una riga della tabella per riga di testo, più gli slug degli articoli a cui rimanda.

Entrambi leggono per impostazione predefinita la lingua dell'interfaccia della stazione, così le pagine, i pulsanti e i campi che una risposta nomina sono quelli sullo schermo. Ciascuno accetta un culture che nomina un'altra lingua presente nella guida installata; una lingua che non c'è viene rifiutata con l'elenco di quelle presenti, e nessun'altra lingua risponde al suo posto. Un'installazione la cui guida manca o non si può leggere risponde a ogni chiamata con il motivo invece che con gli articoli.

Connector: lettura

Strumento Che cosa fa
connector_browse Elenca l'albero che la pagina Connector disegna, con lo stato di salute in tempo reale: ogni driver aggiunto alla stazione, anche uno senza nulla sotto, e un driver che contiene un dispositivo, una linea seriale o un broker è sempre aggiunto; per Modbus RTU driver, linea seriale, dispositivo, tag; per MQTT driver, broker (con lo stato della sua sessione), dispositivo, tag; per ogni altro driver driver, dispositivo, tag con accanto la cartella di ciascun dispositivo. Generic serial and TCP elenca le sue linee seriali come Modbus RTU e i suoi dispositivi di rete come qualsiasi altro driver, con il trasporto di ciascun dispositivo. SCPI instruments elenca allo stesso modo le sue linee seriali e gli altri suoi dispositivi. Un dispositivo File porta la sua cartella, il suo nome di file, come legge (un solo file o una cartella di arrivo) e il suo formato. Un dispositivo Database porta il suo tipo di database (databaseKind). Ogni dispositivo porta error, l'unica frase che la sua pagina mostra, nella lingua della stazione: una frase che rimanda alla sua linea seriale o al suo broker quando l'errore è di quel livello, altrimenti l'errore del dispositivo stesso (non si connette, la connessione è rifiutata, il driver avverte), altrimenti il riepilogo dei suoi tag la cui lettura è rifiutata, e il motivo di ciascun tag è il readFailure di tag_read. Vale null quando il dispositivo non ne ha nessuno; la frase che tag_read dà per un tag il cui dispositivo non è connesso porta qui. Rivela gli alias dei tag (Driver.Folders….Device.Tag) che usano tag_read, tag_write e le espressioni di Logic. Gli alias sono nulli mentre il Connector è fermo.
tag_read Legge i valori in tempo reale di un tag tramite l'alias: valueRaw, il valore del dispositivo stesso prima di qualsiasi fase, value, il valore ingegneristico dopo tutte le fasi della catena di conversione, quella di Decimali compresa (un Double che il dispositivo riporta come 2,718281828459 si legge 2,72 con Decimali a 2), la qualità, le due marche temporali e substitution, che dice se il valore è un sostituto configurato invece di ciò che il dispositivo ha riportato: None (una misura, oppure nessun valore), NaNReplaced (la lettura era NaN e il numero dichiarato ne ha preso il posto), LastGoodHeld (la lettura non è riuscita e l'ultima lettura arrivata resta mantenuta, con il suo valore grezzo e le sue marche temporali) oppure ReadFailureReplaced (la lettura non è riuscita e viene presentato il numero dichiarato). Un sostituto conta come valore, quindi la qualità resta buona a meno che non scatti un guasto sui limiti, ma non è mai una misura. communicating dice se il dispositivo risponde ancora: falso quando l'ultima lettura non è riuscita o non è stato ancora letto nulla. Una lettura rimasta senza una nuova oltre l'intervallo di interrogazione del tag, più un piccolo margine, conta come una lettura non riuscita: il valore, la qualità e substitution rispondono come per quella (nessun valore e qualità cattiva come impostazione predefinita, la lettura mantenuta o il numero dichiarato dove il tag lo chiede), communicating è falso e le marche temporali datano l'ultima lettura arrivata. Un valore fuori dai limiti del tag non è un guasto di connessione: la qualità diventa cattiva mentre communicating resta vero. readFailure dice perché una lettura non è arrivata, nell'unica frase che il pannello del tag mostra, nella lingua della stazione: il motivo che il dispositivo o il driver ha dato quando la lettura del tag stesso è stata rifiutata, oppure una frase che rimanda al dispositivo del tag quando questo non è connesso. Vale null finché il tag legge, e quando una lettura che non è arrivata non ha ancora un motivo registrato.
modbus_server_status Riferisce sul server Modbus della stazione stessa: se è acceso (enabled), la sua port, il suo status (Off, Listening, PortInUse, Failed con le parole del sistema in failure, o RuntimeStopped), i client connessi adesso (al massimo maximumClients alla volta) e ogni riga della mappa dei registri: la sua registerClass, il register contato da 0 e il lastRegister, il suo tipo e la sua disposizione, il suo access (ReadOnly o ReadAndWrite), la sua sorgente (un tag o una variabile, per indirizzo e id) e ciò che un client vi legge adesso, value e good, oppure il gap (NoSource, SourceRemoved, NoGoodValue, NotRepresentable) per cui un client riceve l'eccezione 04. Continua a funzionare mentre il runtime è fermo.
station_broker_status Riporta il broker MQTT della stazione stessa, quello su cui pubblicano i dispositivi, mai uno dei broker che la stazione legge: se è acceso (enabled), la sua port, il suo status (Off, Listening, PortInUse, Failed con le parole del sistema in failure, oppure RuntimeStopped), la sua authentication (Anonymous o UsernamePassword, con username e hasPassword, mai la password), i dispositivi connessi ora (al massimo maximumClients alla volta) e thisStationEntry, il broker Questa stazione del driver MQTT attraverso cui la stazione lo legge. Continua a funzionare con il runtime fermo.
mqtt_publish_list Elenca ciò che la stazione pubblica su ogni broker MQTT che legge, la scheda Pubblicare di ciascuno: il publishTopicPrefix del broker e se pubblica, e ogni riga con la sua sorgente (per indirizzo, removed quando la sorgente è stata eliminata), il suo topic e il suo messaggio (value o alarm), con i due messaggi descritti in payloads. Continua a funzionare mentre il runtime è fermo. Una riga il cui access è ReadAndWrite accetta valori sul suo writeTopic (il suo topic seguito da /set), scritti nella sua sorgente e annotati nel diario tecnico come MQTT <nome del broker>; payloads.write dice che cosa accetta quel topic. Ogni broker dice il suo publishFormat; un broker in Sparkplug B aggiunge sparkplug (il suo gruppo, l'ID del nodo edge della stazione e i suoi dispositivi), ognuna delle sue righe dice il dispositivo e la metrica con cui viene pubblicata, e payloads.sparkplug dice come esce lo Sparkplug B (Pubblicazione in Sparkplug B).
remote_access_devices Riferisce chi apre i sinottici della stazione dalla rete: i browser collegati da un altro computer o tablet in questo momento (indirizzo, browser e sistema, pagina, utente, da quando, e il dispositivo configurato che ciascuno è) e i dispositivi configurati con il modo in cui ciascuno si apre (sinottico iniziale, blocco, come chi accede, i minuti dopo i quali torna indietro, sola visualizzazione, e perché si apre diversamente quando il suo utente fisso o il suo sinottico iniziale è cambiato). Non porta mai una chiave né il suo hash. Continua a funzionare mentre il runtime è fermo.
server_status Riferisce lo stato di salute del server OPC UA integrato: se è acceso (enabled), se è in esecuzione, il suo tempo di attività, l'URL dell'endpoint e le sessioni client collegate, e la dimensione dello spazio degli indirizzi configurato; available dice se il runtime del Connector legge, cosa che fa anche mentre il server è spento o fermo, e serverError perché l'ultimo avvio del server non è riuscito. list è ciò che il server serve, e tutto ciò che serve: una riga per tag, variabile di Logic, allarme o comando del dispositivo, ciascuna con il suo access e il node con cui si configura un client; finché è vuoto, servesNothing è vero.

Connector: configurazione

Strumento Che cosa fa
driver_capabilities Elenca ogni driver che l'applicazione può servire con i campi di connessione che un dispositivo richiede, il modello di indirizzamento dei tag (indirizzo a testo libero e/o campi tipizzati), il supporto al rilevamento e i suoi parametri, gli intervalli di temporizzazione e i tipi di valore supportati, con defaultPort, la porta su cui viene chiamato un dispositivo che non ne indica nessuna. added dice se il driver è aggiunto alla stazione, che è ciò che lo disegna nell'albero del Connector; creare un dispositivo, una linea seriale o un broker con device_upsert, serial_line_upsert o mqtt_broker_upsert aggiunge il suo driver. AVEVA PI e HTTP chiamano la porta del trasporto che il dispositivo usa, quindi danno anche defaultPortByTransport: 443 in HTTPS, il loro trasporto predefinito, e 80 in chiaro. Generic serial and TCP aggiunge genericSerialTcp: i suoi trasporti, come si scrivono i byte, come finiscono i messaggi, i checksum, le modalità, i filtri e le estrazioni dei tag, come si leggono e si scrivono i valori, e due esempi completi. Omron aggiunge omron: i suoi due protocolli con i campi del dispositivo, le forme di indirizzo e i tipi di dato di ciascuno, i trasporti e gli intervalli FINS, le scritture e il rilevamento. SCPI instruments aggiunge scpi: i suoi trasporti, se questo computer ha VISA (visa.installed), i terminatori, le conferme di scrittura, i comandi di preparazione, come si scrivono interrogazioni e comandi di scrittura e come si leggono le risposte, il rilevamento e due esempi completi. NI-DAQmx aggiunge niDaqmx: per ogni misura, un canale di esempio, l'unità, i suoi campi e i tipi di dato e gli accessi che consente. Un driver i cui dispositivi hanno bisogno di qualcosa che il prodotto non può distribuire aggiunge prerequisite (Fluke NetDAQ: il runtime di Visual C++ 2005; OPC DA: gli OPC Core Components, OpcEnum e proxy e stub di OPC DA; NI-DAQmx: il NI-DAQmx di National Instruments; SCPI: un VISA a 64 bit, NI-VISA o la Keysight IO Libraries Suite, solo per i suoi dispositivi VISA, con entrambe le pagine; Database: un driver ODBC a 64 bit o un'origine dati per un dispositivo ODBC, giudicato dispositivo per dispositivo (perDevice true), così installed resta null e l'errore del dispositivo stesso dice cosa manca): se questo computer ce l'ha (installed, per un driver aggiunto alla stazione), la pagina ufficiale di download, il file, come installarlo, l'inciampo noto e che cosa succede dopo. SNMP aggiunge snmp: le sue versioni e le credenziali che ognuna prende, i livelli di sicurezza e i protocolli SNMPv3, i tipi per genere di valore, ogni oggetto standard che il driver conosce per nome con il suo OID, come si comportano letture e scritture, il rilevamento e due esempi completi. File aggiunge file: il percorso semplice, la cartella e il confinamento in essa, le forme del nome del file, un solo file o una cartella di arrivo, i formati con la loro grammatica di indirizzo, cosa legge un tag e i suoi tipi, le impostazioni di testo, come si comportano letture e scritture, il rilevamento e tre esempi completi. Database aggiunge database: ogni database con i suoi campi e la sua porta propria, la crittografia, i due modi in cui un tag legge e i due in cui scrive, la regola per cui un valore entra in un'istruzione solo come @value o @now, i tempi di attesa, il consiglio sull'utente del database, il rilevamento e quattro esempi completi. È la mappa che un agente legge prima di device_upsert o tag_upsert.
serial_line_list Elenca ogni linea seriale salvata, comprese quelle disabilitate e vuote, con il suo id stabile e il suo driver; una linea Modbus RTU anche con la sua modalità e i valori di temporizzazione configurati, automatici ed effettivi.
serial_line_upsert Crea una linea seriale o ne aggiorna una tramite l'id stabile. driver nomina il driver a cui appartiene, ModbusRtu (il predefinito), GenericSerialTcp, Scpi o Omron, fissato alla creazione; una linea del driver generico, del driver SCPI o del driver Omron rifiuta mode, responseTimeoutMs e minimumTransactionIntervalMs. Nome e stato di abilitazione cambiano in qualsiasi momento; anche l'intervallo minimo tra le transazioni cambia mentre la linea è abilitata; porta seriale, velocità in baud, formato seriale, modalità di trasmissione e timeout di risposta cambiano solo mentre la linea salvata è disabilitata.
serial_line_delete Elimina una linea tramite l'id stabile. Una linea che contiene ancora dispositivi viene rifiutata, a meno che la chiamata non autorizzi esplicitamente l'eliminazione di ogni dispositivo e tag figlio.
mqtt_broker_list Elenca ogni broker MQTT salvato, compresi quelli disabilitati e vuoti, con l'id stabile, dove risponde, il trasporto, il nome utente, l'ID client, il keep-alive, il prefisso dei topic e il numero di dispositivi. Dice se è salvata una password e non la restituisce mai. Mostra anche il formato della pubblicazione (publishFormat) e il gruppo Sparkplug B (sparkplugGroupId).
mqtt_broker_upsert Crea un broker MQTT o ne aggiorna uno tramite l'id stabile: nome, stato di abilitazione, host (un indirizzo mqtt:// o mqtts:// intero viene scomposto), porta, TLS, nome utente, password, ID client, keep-alive e il prefisso sotto cui la sua scheda Pubblicare propone i topic (publishTopicPrefix, una stringa vuota torna al predefinito). Cambiano solo i parametri forniti; un broker si abilita solo con un host, e un ID client usato da un altro broker viene rifiutato. Una modifica salvata della connessione ricollega la sessione che condividono tutti i dispositivi del broker. publishFormat (Json o SparkplugB) sceglie come esce la scheda Pubblicare, e sparkplugGroupId il gruppo Sparkplug B del nodo edge della stazione (una stringa vuota torna a GanterLab; un gruppo con /, + o # viene rifiutato).
mqtt_broker_delete Elimina un broker tramite l'id stabile. Un broker che contiene ancora dispositivi viene rifiutato, a meno che la chiamata non autorizzi esplicitamente l'eliminazione di ogni dispositivo e tag figlio.
mqtt_publish_upsert Crea una riga della scheda Pubblicare di un broker (brokerId e source: un tag, Connector. e il suo alias, una variabile, Variables. e il suo percorso, o un allarme, Alarms. e il suo percorso) o ne modifica una per id. topic è facoltativo: se manca, la riga prende quello proposto dal nome della sorgente sotto il prefisso del broker, e una stringa vuota lo riprende. Un broker pubblica una sorgente una volta e un topic una volta; un topic non contiene + né # e non inizia con $. Una riga non cambia mai broker. access è ReadOnly, il predefinito, oppure ReadAndWrite, che accettano solo un tag con accesso in scrittura su un driver che scrive o una variabile di memoria: la stazione scrive allora ciò che viene pubblicato sul topic della riga seguito da /set (Scrittura di ritorno). Il topic di una riga non può essere il topic di un'altra seguito da /set. Su un broker in Sparkplug B la riga viene pubblicata come metrica (row.sparkplug), e ReadAndWrite accetta i valori che le inviano i comandi Sparkplug B.
mqtt_publish_delete Elimina una riga di una scheda Pubblicare per id. La stazione smette di pubblicarla; il tag, la variabile o l'allarme non viene toccato.
device_upsert Crea o aggiorna un dispositivo per driver più nome (il driver è immutabile dopo la creazione). Cambiano solo i parametri forniti; i campi di connessione dipendono dal driver; spostare un dispositivo in una cartella riscrive ogni riferimento ai suoi vecchi indirizzi di tag. Un dispositivo di Generic serial and TCP accetta transport e i campi delle sue schede Messaggi e Somma di controllo, e serialLineId solo per una linea del suo stesso driver; un dispositivo su una linea rifiuta host, porta e cartella. Un dispositivo Omron accetta omronProtocol (Fins o NjNx) e, su FINS, i campi fins* della sua scheda FINS; un dispositivo letto per nome di tag rifiuta una porta. Un dispositivo SCPI accetta transport (Tcp, Visa, o SerialLine con il serialLineId di una linea del suo stesso driver), visaResource, terminator, responseTimeoutMs, writeCheck e setupCommands. Un dispositivo NI-DAQmx accetta daqmxDevice, il nome che NI MAX gli dà. Un dispositivo SNMP accetta snmpVersion, snmpCommunity (SNMPv1, SNMPv2c), username, password, snmpSecurityLevel, snmpAuthProtocol, snmpPrivacyProtocol e snmpPrivacyPassword (SNMPv3), responseTimeoutMs e snmpRetries; restituisce se ogni segreto è impostato, mai il segreto. Un dispositivo File accetta fileFolder, fileName, fileMode (SingleFile o Inbox), fileFormat, fileEncoding, fileSeparator, fileDecimal, fileHeaderRow e fileWrites, con fileHeaderText e fileLineEnd quando la scrittura è attiva; restituisce file.fileStatus, il file che legge il driver in funzione e ciò che ne ha letto. Un dispositivo Database accetta databaseKind, e per un server host, port e databaseName (su SQL Server anche databaseInstance, databaseWindowsSignIn e databaseEncryption), databaseFile per SQLite oppure databaseOdbc per ODBC, con username e password; restituisce database, l'indirizzo e se il dispositivo attende ancora il suo utente, mai la password. Una porta fuori dall'intervallo da 0 a 65535 viene rifiutata; 0 indica la porta che usa il driver. La modifica viene riconciliata subito nel server in esecuzione.
device_delete Elimina un dispositivo e tutti i suoi tag; riconciliato subito nel server in esecuzione.
tag_upsert Crea o aggiorna un tag su un dispositivo. L'indirizzamento dipende dal driver (indirizzo a testo libero e/o campi tipizzati; per Generic serial and TCP la modalità di lettura, la richiesta, il filtro, l'estrazione e i campi di scrittura; per SCPI instruments l'interrogazione come address, valueField e writeTemplate; per NI-DAQmx il canale fisico come address e i campi daqmx* della sua misura; per SNMP l'OID come address, in numeri o con il nome standard; per File la colonna o il percorso come address, fileSource, fileRow e i suoi campi, fileWriteMode e fileLineTemplate, un valore di testo libero con i campi value* del driver generico, e un tag nuovo che nasce in sola lettura; per Database la colonna del valore come address, databaseSource, databaseTable, databaseRow e i suoi campi oppure databaseQuery, e quando il tag scrive databaseWriteMode e databaseCommand, con un tag nuovo che nasce anch'esso in sola lettura); la risposta riporta l'indirizzo di bus assemblato e l'alias per tag_read. Comprende le fasi della lettura non valida: l'azione su NaN per i tag numerici, e la presentazione dell'errore di lettura per ogni tag che la stazione legge, dove solo Replace è limitato ai tag numerici e booleani. Un Replace già salvato che il nuovo tipo del tag non accetta viene salvato come il predefinito: l'azione su NaN diventa PassThrough quando il tipo non è più numerico, e la presentazione dell'errore di lettura diventa ShowError quando il tipo è String, DateTime, Guid o ByteString.
tag_delete Elimina un tag; riconciliato subito.
server_start Accende il server OPC UA integrato e lo avvia, come fa Abilita sulla sua riga: serve il suo elenco, e resta acceso attraverso i riavvii fino a server_stop. Non fa nulla quando è già in esecuzione; quando il Connector stesso non è in esecuzione, viene avviato prima, materializzando la configurazione attuale.
server_stop Spegne il server e lo ferma in modo ordinato, come fa Disabilita: i client OPC UA vengono scollegati e non si pubblica nulla finché server_start non lo riaccende. Il Connector continua a leggere, e le letture dei tag, Logic e le registrazioni continuano.
server_restart Ferma e poi avvia solo il server, mentre è acceso; il Connector legge per tutto il tempo. Un server spento viene rifiutato, perché è server_start ad accenderlo. Le modifiche a dispositivi e tag si applicano con connector_refresh.
server_list_upsert Crea una riga dell'elenco del server OPC UA, o ne aggiorna una per id. source nomina un tag (Connector. e il suo alias), una variabile (Variables. e il suo percorso), un allarme (Alarms. e il suo percorso) o un comando del dispositivo (l'indirizzo del dispositivo, un punto, il nome del comando e ()); una sorgente compare una sola volta nell'elenco. access è ReadOnly, il predefinito di ogni nuova riga, oppure ReadAndWrite, che solo un tag con accesso in scrittura o una variabile di memoria accettano; la scrittura di un client passa allora per l'imbuto di scrittura di Logic ed è registrata nel diario tecnico con la sessione del client. La risposta riporta la riga con il suo node.
server_list_delete Elimina una riga dell'elenco per id. Un client non trova più il suo nodo; la sorgente che serviva non viene toccata.
modbus_server_configure Accende o spegne il server Modbus (enabled) o lo sposta su un'altra port, da 1 a 65535, come fa la sua pagina. La porta del server web, dell'accesso agente o del server OPC UA, e una porta tenuta da un altro programma, vengono rifiutate; Windows Firewall non viene mai modificato. Acceso, lascia a qualsiasi macchina che raggiunge la porta leggere ciò che la mappa serve. Risponde con l'intero server, come modbus_server_status.
station_broker_configure Accende o spegne il broker MQTT della stazione stessa (enabled), lo sposta su un'altra port e cambia la sua authentication, il username e la password, come fa la sua pagina, in quest'ordine: porta, autenticazione, poi acceso o spento. La porta del server web, dell'accesso agente, del server OPC UA o del server Modbus, e una porta che un altro programma occupa, vengono rifiutate; il Firewall di Windows non viene mai modificato. Acceso, aggiunge al driver MQTT il broker Questa stazione. Risponde con l'intero broker, come station_broker_status.
modbus_map_upsert Crea una riga della mappa dei registri del server Modbus, o ne aggiorna una per id. source nomina un tag per indirizzo (Connector. e il suo alias, come lo elenca connector_browse) una variabile (Variables. e il suo percorso) o un allarme (Alarms. e il suo percorso, sempre ReadOnly, che serve lo stato indicato da alarmValue: Active, Acked o State); registerClass (HoldingRegister per impostazione predefinita), register (base 0), type (Float per impostazione predefinita, Boolean in una coil o in un ingresso discreto), length per un String, mostSignificantByte e mostSignificantWord prendono i campi e le regole di un tag Modbus. access è ReadOnly, il predefinito di ogni nuova riga, oppure ReadAndWrite, che solo un holding register o una coil accettano, da una sorgente che accetta scritture (un tag con accesso in scrittura, una variabile di memoria). Una nuova riga ha bisogno del suo register e della sua source; una riga che la mappa rifiuta riceve come risposta il motivo e un suggerimento.
modbus_map_delete Elimina una riga della mappa dei registri per id. Un client che legge i suoi registri riceve l'eccezione 02 da quel momento; il tag o la variabile che serviva non viene toccato.
remote_access_device_update Modifica il nome di un dispositivo configurato, il suo sinottico iniziale (una dashboard per id o per nome, o vuoto per toglierlo, il che lo sblocca anche), il blocco, i minuti senza tocchi (0 per mai) e la sola visualizzazione, come fa la sua riga nella pagina Accesso remoto. Come chi accede il dispositivo non si cambia qui: serve una persona con Gestire gli utenti locali. Un dispositivo si configura e si dimentica sullo schermo della stazione, mai con uno strumento. Risponde con il dispositivo come lo elenca remote_access_devices.

Connector: comando

Strumento Che cosa fa
connector_refresh Riconcilia in modo incrementale il server in esecuzione con i dispositivi configurati (aggiunge, rimuove, ricrea) senza un riavvio completo; è il modo più leggero per applicare le modifiche.
device_discover Esegue la scansione di rilevamento dei dispositivi di un driver e restituisce i candidati con i loro tag, senza salvare nulla. Partecipano solo i driver il cui protocollo supporta una vera scansione; i candidati già esistenti sono segnalati come tali. Una scansione SNMP percorre o target con snmpCommunity, o snmpDevice, un dispositivo configurato, che è il modo di scansionare un agente SNMPv3. Una scansione File legge fileDevice, un dispositivo configurato, oppure fileFolder, fileName, fileMode e fileFormat scritti per la scansione. Una scansione Database legge databaseDevice, un dispositivo configurato, e facoltativamente databaseTables, un nome di tabella o un modello con *. Un target che la scheda Ambito della scansione del driver rifiuterebbe, o nessuno dove la scansione ne chiede uno, viene rifiutato con quello che deve essere. Una scansione Database, File o SNMP fermata al suo limite di valori, tabelle o oggetti lo dice in cut, con ciò che occorre passare per vedere il resto; una lista completa non ha cut.

Logic: lettura

Strumento Che cosa fa
logic_browse Sfoglia lo spazio degli indirizzi di Logic a partire dalla radice, lo stesso albero a punti che legge ogni espressione: System, Server, Connector, Variables, Alarms, Process e Assets. Le cartelle create dall'operatore sono livelli reali dell'indirizzo; i punti figli portano il valore in tempo reale e la qualità, e un punto di tag del Connector porta anche substitution e communicating, come li riporta logic_read.
logic_read Legge un punto tramite il suo indirizzo a punti (per esempio Variables.Setpoint) e restituisce il valore in tempo reale e la qualità. Un punto di tag del Connector porta anche substitution e communicating, come li riporta tag_read, ed è ciò che distingue un sostituto, o la lettura di un dispositivo che ha smesso di rispondere, da una misura in tempo reale; gli altri punti non portano né l'uno né l'altro. Una lettura rimasta muta vi si legge come una lettura non riuscita.

Logic: configurazione

Gli upsert sono parziali (i parametri omessi mantengono il loro valore) e ogni bozza fusa supera la stessa convalida che applicano gli editor di Logic; una bozza non valida viene respinta e nulla resta applicato a metà.

Strumento Che cosa fa
variable_upsert Crea o aggiorna una variabile: Expression (una singola espressione JavaScript di sola lettura sullo spazio degli indirizzi) o Memory (un valore scrivibile, facoltativamente ritentivo). Il nome è la chiave e, ripulito, l'indirizzo; il parametro della cartella la archivia, riscrivendo ogni riferimento al vecchio indirizzo.
variable_delete Elimina una variabile per percorso, compreso il suo valore ritenuto. I canali collegati a essa perdono la sorgente.
action_upsert Crea o aggiorna un'azione: un blocco di istruzioni JavaScript con esattamente due verbi di scrittura, l'assegnazione a una variabile Memory e la scrittura del tag ingegneristico. Convalidata staticamente, mai eseguita al salvataggio.
action_delete Elimina un'azione per nome. Gli attivatori collegati a essa restano inattivi.
trigger_upsert Crea o aggiorna un attivatore a intervallo: ogni intervalMs (minimo 100) l'azione collegata scatta sulla corsia delle azioni; un battito durante un'esecuzione ancora in corso viene saltato. Il collegamento all'azione è debole e avviene per nome.
trigger_delete Elimina un attivatore; l'azione collegata resta intatta.
alarm_upsert Crea o aggiorna un allarme: un'espressione di condizione booleana, la priorità (Critical/High/Medium/Low), i ritardi di attivazione e di rientro, se è richiesta la tacitazione e lo stile di segnalazione. Salvare una condizione o una temporizzazione modificata azzera la macchina a stati in esecuzione.
alarm_delete Elimina un allarme per percorso; una segnalazione attiva viene prima azzerata.
logic_folder_upsert Crea, rinomina o riarchivia una cartella di organizzazione di una sezione (Variables, Alarms, Actions, Triggers; al massimo tre livelli). Per Variables e Alarms il percorso della cartella fa parte dell'indirizzo, quindi rinomine e spostamenti riscrivono ogni espressione, script, condizione e collegamento di dashboard sottostante.
logic_folder_delete Elimina una cartella. Nulla di ciò che conteneva viene distrutto: elementi e sottocartelle risalgono di un livello e i riferimenti vengono riscritti; una collisione di nomi nella destinazione fa rifiutare l'eliminazione.

Logic: comando

Tutti questi passano dallo stesso unico punto di scrittura della logica su cui passano le pagine e vengono registrati con origine MCP. Una scrittura lascia la logica per la coda di consegna propria del dispositivo, e chi ha chiamato lo strumento è chi aspetta la risposta, perciò ciò che torna indietro dice che cosa ne è stato del valore e non soltanto che è partito.

Strumento Che cosa fa
variable_write Scrive un valore in una variabile Memory (convertito al suo tipo di uscita, ritenuto se la variabile è ritentiva). Le variabili Expression sono calcolate e rifiutano le scritture.
tag_write Scrive un valore ingegneristico su un tag scrivibile: percorre all'indietro la catena di conversione del tag, viene convertito al tipo del dispositivo e scritto sull'apparecchiatura. La risposta porta ciò che il tag presenta una volta passata la scrittura: il valore, la qualità, substitution e communicating, come li riporta tag_read, così un dispositivo che ha accettato la scrittura ma ha smesso di rispondere alle letture non si confonde con uno che risponde ancora. I tag di sola lettura e i driver di sola lettura vengono rifiutati con il motivo.
action_run Esegue un'azione sulla corsia delle azioni e ne restituisce l'esito e la durata. Un'azione disabilitata fallisce senza essere eseguita.
alarm_ack Tacita un allarme, la risposta dell'operatore; non fa nulla quando non c'è niente in attesa.
alarm_ack_all Tacita ogni allarme che lo attende, in un solo elemento della coda della logica e con ogni transizione registrata.

Diario: lettura

Strumento Che cosa fa
logs_read Legge il flusso di diario in tempo reale di tutto il programma (lo stesso della console di Eventi), filtrato per gravità minima (Debug/Information/Warning/Error, predefinito Information), area (App/Server/Connector/Logic/Process/Dashboard/Agent/Licensing), componente e una sottostringa di contesto; restituisce le corrispondenze più recenti (predefinito 100, al massimo 500). Le azioni degli agenti sono registrate nell'area Agent.
event_history_read Legge la cronologia persistente degli eventi di esercizio, che sopravvive ai riavvii: transizioni di allarme, di occorrenza e di interblocco. Filtra per tipo (Alarm/Occurrence/Interlock), un periodo UTC inclusivo e un livello (priorità dell'allarme, gravità dell'occorrenza o transizione dell'interblocco); dalla più recente, predefinito 100, al massimo 500. Rigorosamente di sola lettura: nulla può cancellare o eliminare le voci del diario.

Process: lettura

Strumento Che cosa fa
process_models Elenca per intero i modelli di Process: canali, gruppi condivisi, unità con il cablaggio risolto e lo stato di esecuzione, procedure, pannelli, ricette, valutazioni, occorrenze, più la libreria globale dei modelli di rapporto. È la mappa che un agente legge prima di avviare qualcosa.
process_runs Elenca le prove, dalla più recente: id, nome, stato, esito, che cosa è stato eseguito, chi l'ha avviata (Station/User/Automation/Agent), tempi e avanzamento dei cicli. Può essere ristretto alle prove attive, filtrato per una parte del nome o di qualsiasi valore dei metadati (un numero di serie, un lotto) e limitato nel numero (predefinito 50).
process_run Legge per id il registro congelato completo di una prova: istantanea, metadati, criteri giudicati con il numero di campioni, episodi ed eventi di occorrenza, scritture di ricetta come eseguite, commenti, e gli artefatti congelati di rapporto ed etichetta con i loro tentativi di stampa. Facoltativamente calcola il numero di righe del datalog e l'intervallo di tempo.
process_samples Legge i campioni che una prova ha registrato, mentre registra o dopo la fine. Un tratto di al massimo 500 campioni arriva così come è stato registrato: un punto per campione, con un valore per canale. Uno più lungo arriva riassunto: la sua durata è divisa in 500 intervalli uguali e ogni intervallo porta il minimo, il massimo e la media di ogni canale, così un picco sopravvive nel massimo. La risposta dice quale dei due casi è e, se riassunta, quanto dura ogni intervallo e quanti campioni raccoglie. fromUtc e toUtc restringono il tratto, e uno abbastanza stretto torna così come è stato registrato; channels legge solo i canali che nomina.
unit_status Riferisce lo stato in tempo reale di un'unità: se è in prova (con la prova attiva) e il valore ingegneristico attuale dietro ogni canale, letto senza registrare.

Process: configurazione

Strumento Che cosa fa
process_view_configure Configura esattamente un pannello di un modello: l'icona disegnata accanto e se il pannello compare nella pagina View. Nient'altro dell'aggregato di Process è scrivibile via MCP; il resto si modifica nella pagina Process.

Process: comando

Le prove avviate, concluse o commentate da un agente registrano Agente come autore, mai l'operatore che per caso è collegato al banco di prova.

Strumento Che cosa fa
process_snapshot Cattura una riga di datalog su un'unità fuori da una procedura. Ogni chiamata crea una nuova prova Instant, già conclusa, negli Storici, senza valutazione (esito None).
process_evaluate Cattura una riga di datalog e la giudica con una valutazione; crea una prova Instant conclusa e ne restituisce l'esito.
process_recipe_apply Applica una volta una ricetta Instant a un'unità attraverso l'unico punto di scrittura di Process e i blocchi sulle sorgenti. Comanda l'apparecchiatura; non crea alcuna prova (le scritture vengono registrate). Le ricette Temporal sono rifiutate.
process_start Avvia la prova di una procedura su un'unità, con un oggetto JSON per i campi di metadati che la procedura chiede. Ogni valore passato viene registrato, oppure non parte nulla: un campo che la procedura non chiede, un valore per un campo sequenziale (l'applicazione lo compone all'avvio) o un campo nominato due volte fanno rifiutare l'avvio, come metadati obbligatori mancanti o non validi, un'unità già in prova o un conflitto di blocco su un canale condiviso. Restituisce l'id della nuova prova.
process_stop Ferma una prova in corso: blocco di finalizzazione, istantanea congelata nello storico, esito calcolato.
process_hold Sospende il profilo temporale di una prova all'ultimo setpoint; il datalog continua a registrare.
process_resume Riprende il profilo temporale di una prova sospesa.
process_abort Interrompe una prova da Running o Held: la finalizzazione viene eseguita, l'istantanea viene scritta, lo stato diventa Aborted e l'esito NOK.
process_comment Aggiunge un commento con marca temporale nel file di una prova: una nota nella cronologia mentre è attiva, una nota successiva quando è finita.
process_report Genera (o rigenera) il rapporto PDF di una prova conclusa e ne restituisce il percorso del file. Un modello di documento nominato dalla libreria globale prevale su quello configurato nella procedura; senza né l'uno né l'altro vale il layout predefinito con tutte le sezioni. Rifiutato mentre la prova è attiva.
process_run_delete Elimina definitivamente una prova registrata: il puntatore nell'indice dello storico e il file di database della singola prova. Rifiutato mentre è attiva; la configurazione resta intatta.

Dashboard: configurazione

I nomi di ruolo che questi strumenti leggono e restituiscono sono in inglese su ogni stazione: Not signed in, Viewer, Operator, Maintainer e Developer, qualunque parola l'operatore legga sullo schermo. Admin non si può elencare: vede sempre tutte le dashboard. Un ruolo rinominato dall'amministratore porta il nome che ha scritto lui.

Strumento Che cosa fa
dashboard_list Elenca le dashboard (oppure, nominando un modello, i sinottici di quel modello): dimensione della griglia, cartella, icona, contrassegno di avvio, visibilità per ruolo e ogni componente con la sua posizione, il suo livello e il JSON delle proprietà, più ogni rete di tratti salvata. Restituisce anche il catalogo dei tipi di componente con la dimensione predefinita e l'insieme di proprietà predefinito di ciascun tipo.
dashboard_upsert Crea o aggiorna una dashboard per nome: dimensione della griglia (una riduzione che lascerebbe orfano un componente viene respinta), cartella e icona nella colonna Visualizzazione della pagina View, contrassegno di avvio, visibilità della barra di stato a schermo intero e visibilità per ruolo. Nominare un modello indirizza invece i sinottici di quel modello. Le pagine di dashboard aperte riflettono subito la modifica.
dashboard_delete Elimina una dashboard e i suoi componenti per nome; nominare un modello elimina invece il sinottico di quel modello.
component_upsert Aggiunge un componente per tipo (collocato nella prima cella libera con la dimensione predefinita del tipo, salvo indicazione diversa) oppure ne aggiorna uno per id. La collocazione deve stare dentro la griglia; la sovrapposizione è ammessa e il livello z decide l'ordine di disegno; il JSON delle proprietà è l'insieme tipizzato di quel tipo. Nominare un modello indirizza invece i sinottici di quel modello, così un sinottico creato là si può impaginare qui.
component_delete Rimuove un componente per id; nominare un modello indirizza invece i sinottici di quel modello.
connection_upsert Collega due morsetti di un simbolo con una rete di tratti tipizzata, risolvendo tipo, ruolo e direzione dal catalogo dei simboli esattamente come fa l'editor dell'area di disegno. Le estremità che si risolvono in tipi diversi falliscono, a meno che non sia esplicitamente ammesso un tratto indefinito; un ancoraggio che porta già un tratto viene respinto. Nominare un modello indirizza invece i sinottici di quel modello.
connection_delete Rimuove una rete di tratti per id e revisione attesa, così un'eliminazione basata su dati vecchi viene respinta invece di cancellare una modifica più recente; nominare un modello indirizza invece i sinottici di quel modello.

Interfaccia: automazione

Questi strumenti pilotano la finestra reale dell'applicazione; esistono perché un agente possa verificare l'interfaccia che vede l'operatore, non una sua simulazione. Le interazioni vengono inviate alla shell in esecuzione, quindi la condotta prevista è far seguire a ogni gesto un ui_screenshot e osservarne l'effetto, e le corrispondenze ambigue tornano come elenchi di candidati invece che come un clic indovinato.

Strumento Che cosa fa
ui_state Riferisce lo stato della shell: pagina attiva, pagine disponibili, tema, dimensione e visibilità della finestra, e l'indirizzo di loopback su cui questa istanza serve la propria interfaccia. È la chiamata di orientamento che precede tutto il resto.
ui_navigate Attiva una pagina della shell tramite il suo nome stabile, che è in inglese su ogni stazione: View, Process, Logic, Connector, Users, Validation, Events, Agent, Settings, Account. Viene accettata anche l'etichetta che la barra di navigazione mostra nella lingua della stazione.
ui_screenshot Cattura la finestra così come appare sullo schermo in un file PNG e ne restituisce il percorso assoluto; se la finestra è nascosta nell'area di notifica la ripristina prima. Può catturare una singola zona nominata dello schermo (un'area data-doc-region univoca e visibile) invece dell'intera finestra, e una zona mancante, nascosta o ambigua fallisce elencando le zone visibili invece di ripiegare in silenzio sulla cattura completa.
ui_scroll Fa scorrere la zona di scorrimento principale della pagina attiva all'inizio, alla fine o di un numero di schermate, restituendo gli scostamenti così che una pagina lunga si possa percorrere tutta.
ui_set_theme Applica il tema della stazione (System, Light o Dark): quello con cui disegna la finestra della stazione e che segue ogni browser che non ha scelto il proprio; un browser che ha scelto il proprio lo mantiene. Viene salvato esattamente come una scelta fatta con i tasti del tema nella finestra della stazione, quindi un agente ben educato ripristina il valore originale quando ha finito.
ui_resize Ridimensiona la finestra ripristinata in unità indipendenti dal dispositivo, limitata al minimo della finestra; utile per verificare le impaginazioni strette.
ui_click Fa clic sul pulsante, collegamento, casella di spunta o interruttore visibile il cui testo corrisponde; caselle di spunta e interruttori si trovano tramite l'etichetta del campo e il risultato riferisce lo stato raggiunto. L'ambiguità restituisce i candidati invece di sceglierne uno.
ui_set_text Scrive un valore in una casella di testo identificata dall'etichetta del suo campo, confermando il collegamento come farebbe la digitazione.
ui_select Seleziona un elemento tramite il testo visibile: un percorso separato da barre percorre un albero, espandendolo lungo la strada; un solo segmento corrisponde anche a elementi di elenco, schede, voci di casella combinata e righe di griglia nella pagina attuale.

Backup: gestione

Strumento Che cosa fa
backup_create Crea un'istantanea a caldo del database di configurazione nella cartella dei backup, con una nota facoltativa. Le prove registrate vivono fuori dalla configurazione e non vengono mai toccate dal backup né dal ripristino.
backup_list Elenca i backup della configurazione (nome del file, data di creazione, dimensione, nota) più l'eventuale ripristino già programmato.

Non esiste deliberatamente alcuno strumento di eliminazione dei backup: la conservazione è solo dell'operatore, nella pagina Backup.

Backup: ripristino

Strumento Che cosa fa
backup_restore Programma un backup perché sostituisca la configurazione attuale al prossimo avvio dell'applicazione. Nulla cambia nell'applicazione in esecuzione e lo strumento non la riavvia mai; la configurazione che sta per essere sostituita viene prima salvata automaticamente in un'istantanea, e l'operatore può annullare il ripristino in attesa dalle Impostazioni fino al riavvio. Rifiutato mentre una registrazione è attiva.

Impostazioni: gestione

Strumento Che cosa fa
settings_read Legge le preferenze di visualizzazione e di ciclo di vita della stazione: formati di data, ora e numero, cifre decimali, tema, contrassegni di chiusura nell'area di notifica e di rapporto di errore.
localization_set Aggiorna le preferenze di visualizzazione (parziale: i parametri omessi restano). Solo visualizzazione: archiviazione, ingressi e uscite dei driver e registrazioni usano sempre il formato invariante.
asset_list Elenca le risorse dell'utente (immagini, icone, colori) con id, valori e percorsi.
asset_import Importa un PNG/JPG dal percorso di un file locale nella libreria di risorse dell'applicazione e restituisce l'id della nuova risorsa. I byte vengono copiati, quindi il file di origine può essere spostato in seguito.
symbol_validate Convalida il contenuto di un simbolo passato per intero (SVG grezzo o pacchetto v2) senza salvare nulla: è una prova a vuoto dell'importazione vera, e restituisce errori, avvisi del depuratore e un riepilogo di ciò che è stato riconosciuto. La descrizione dello strumento porta il contratto completo del simbolo portabile.
symbol_import Importa il contenuto di un simbolo passato per intero come nuova risorsa simbolo dell'utente e ne restituisce l'id e il riferimento user:<guid>. Crea sempre una nuova risorsa; un nome in collisione riceve un suffisso automatico.

Segnalazioni: stesura

Strumento Che cosa fa
report_draft Apre il modulo di segnalazione nella finestra della stazione, già compilato con ciò che l'agente ha scritto: kind (DriverRequest, Bug o Suggestion), summary (una riga di 120 caratteri al massimo; una più lunga viene rifiutata, non troncata) e details (facoltativo). Come il pulsante Segnala della barra del titolo, cattura prima la finestra e offre la schermata con la segnalazione, spuntata. Risponde subito che il modulo è aperto e che nulla è stato inviato.

Lo strumento non invia mai. La persona alla stazione legge la segnalazione, la corregge se vuole e preme Invia; l'esito compare nella barra di stato della stazione e non torna all'agente. Finché quest'area è attiva, il server chiede a ogni agente di proporre una segnalazione quando la persona ha bisogno di un driver che Ganter Lab non ha, quando una chiamata non riesce in un modo che sembra un difetto del programma, o quando la persona chiede un miglioramento, e le descrizioni di driver_capabilities, device_upsert e device_discover dicono lo stesso.

Rifiuta con un reason, e allora non apre e non cattura nulla:

reason Quando
not_permitted Il ruolo con l'accesso effettuato alla stazione non ha Inviare segnalazioni a Ganter.
no_station_window La stazione non ha una finestra propria in cui aprire il modulo: un host che serve le sue pagine solo ai browser.
no_credential La sessione non può inviare: il profilo dimostrativo, con o senza accesso, o un accesso all'account Ganter della stazione che non conserva credenziali.
form_busy Il modulo di segnalazione è aperto alla stazione, oppure una segnalazione è in fase di cattura o di invio.
draft_in_progress Il modulo contiene una segnalazione che una persona sta scrivendo. Una bozza precedente dell'agente che nessuno ha modificato viene invece sostituita.

Una stazione che non ha effettuato l'accesso a un account Ganter non viene rifiutata: il modulo si apre e dice che la segnalazione parte senza account, quindi Ganter non può rispondere.

Come ogni strumento che modifica qualcosa, risponde Runtime stopped mentre il runtime è fermo.