# Connector

> La pagina Connector: la colonna Comunicazione, il suo albero con la cartella Driver (i driver aggiunti alla stazione, con le loro linee, broker, cartelle, dispositivi e tag) e la cartella Server (il server OPC UA, il server Modbus e il broker MQTT), il menu Nuovo… che percorre quell'albero, le due identità che ogni tag porta, e i permessi e i blocchi che governano la modifica.

Il Connector è il luogo dove un dispositivo di campo diventa dati che il resto dell'applicazione può leggere. È la pagina della barra di navigazione chiamata Connector, e si apre per qualunque ruolo che abbia **Visualizzare Connector**. La pagina accosta la colonna **Comunicazione** a sinistra, un albero di tutto ciò con cui il Connector parla, a un pannello di dettaglio a destra che modifica sul posto il nodo selezionato; come dice la descrizione della pagina stessa, « Selezionare un nodo per modificarlo sul posto. Le modifiche si salvano da sole. »

## La colonna Comunicazione {#the-communication-column}

La colonna è intitolata Comunicazione e contiene, dall'alto in basso: una casella di ricerca con quattro pillole di stato, l'albero, e un piede con i comandi della colonna. L'albero ha al primo livello due cartelle dello stesso tipo, la cartella **Driver** e la cartella **Server**, entrambe aperte quando la pagina si apre.

### La cartella Driver {#the-drivers-folder}

La prima cartella contiene i driver aggiunti alla stazione, elencati in piano e in ordine alfabetico, con o senza qualcosa sotto. La riga della cartella legge **Driver**, poi quanti dispositivi hanno i driver sotto di essa (« 3 dispositivi »), poi un punto di stato di salute che riassume quei driver. Selezionarla apre il catalogo di tutti i driver di questa stazione, prima quelli aggiunti, sotto Su questa stazione, e poi gli altri raggruppati in base alle apparecchiature che raggiungono, dove un driver viene aggiunto e rimosso; i due comandi sono descritti in [L'elenco dei driver e la pagina di un driver](connector-drivers).

| Situazione | Che cosa sta sotto Driver |
| --- | --- |
| Una stazione nuova | Nessun driver. La colonna si apre con la cartella Driver selezionata, così il catalogo è la prima cosa sullo schermo. |
| Una stazione aggiornata da una versione precedente | I driver che usava già: ogni driver che contiene un dispositivo, una linea seriale, un broker o una cartella. |
| Un driver aggiunto (**Aggiungi driver** sulla sua riga del catalogo, oppure Nuovo… > **Aggiungi driver**) | Il driver, senza nulla sotto, evidenziato nel catalogo sotto Su questa stazione (la cartella Driver resta sullo schermo): la sua riga legge « 0 dispositivi » (« 0 linee · 0 dispositivi » per Modbus RTU, « 0 broker MQTT · 0 dispositivi » per MQTT). |
| Eliminato l'ultimo dispositivo, l'ultima linea seriale, l'ultimo broker o l'ultima cartella di un driver | Il driver resta, di nuovo a « 0 dispositivi ». |
| Un driver rimosso (**Rimuovi driver** sulla sua riga del catalogo, sulla sua barra o nel suo menu del clic destro) | Niente: il driver esce dall'albero e la sua riga del catalogo torna nella sua categoria. Rimuovere non elimina nulla, perciò viene rifiutato finché il driver contiene un dispositivo, una linea seriale, un broker o una cartella, e un driver che ne contiene uno è sempre aggiunto. |
| Un driver che questo pacchetto non porta, nominato da un dispositivo salvato | Il driver e i suoi dispositivi, finché ne esiste uno. |

### La cartella Server {#the-servers-folder}

La seconda cartella contiene ciò che la stazione apre sulla rete, a cui altri sistemi e dispositivi si collegano: il **Server OPC UA**, che pubblica i dispositivi e i loro tag per i client OPC UA, il **Server Modbus**, da cui PLC, HMI e sistemi di building automation leggono i tag e le variabili di Logic della stazione, e il **Broker MQTT**, che riceve i messaggi che pubblicano i dispositivi della rete. Le tre righe ci sono sempre, in quest'ordine. L'accesso remoto, che apre le dashboard proprie della stazione in un browser su un altro dispositivo, non è qui: ha una pagina propria nella barra di navigazione, [Accesso remoto](remote-access). Nessuna è un driver né ha figli; ciascuna mostra il proprio stato (« Spento » su ogni nuova stazione) accanto a un punto, verde finché è in ascolto e rosso quando è accesa ma non viene raggiunta, e nessuno dei punti entra nella cartella Driver né nella barra di stato. Selezionarne una apre il suo pannello; tutte e tre sono descritte in [Server](connector-servers). La riga della cartella stessa non porta né conteggio né punto, e selezionarla non apre alcun pannello, solo la frase « Selezionare un server per vederne lo stato e le impostazioni. »

### La ricerca e le pillole di stato {#search-and-the-state-chips}

| Comando | Che cosa fa |
| --- | --- |
| Casella di ricerca (« Cerca driver, linee, dispositivi, tag ») | Restringe l'albero alle righe il cui nome contiene il testo, senza distinguere maiuscole e minuscole. Una corrispondenza su un driver, una linea seriale, un broker o una cartella conserva tutto quello che sta sotto, e così una corrispondenza sul nome di una delle due cartelle del primo livello: « Driver » conserva ogni driver aggiunto, « Server » tutte e tre le sue righe. Una linea seriale corrisponde anche sui suoi parametri fisici (porta, baud, formato, timeout), un broker sul suo indirizzo e un server sul suo nome. I rami che corrispondono si aprono mentre scrivi. |
| **Tutti** | Nessuna restrizione di stato. |
| **In ordine** | Dispositivi, linee e broker abilitati e Connessi, o su cui non c'è ancora nulla da giudicare, compreso un dispositivo il cui host non è ancora inserito, insieme ai suoi tag abilitati; tag abilitati che in questo momento leggono una misura entro i propri limiti; un server acceso che non ha fallito l'avvio. |
| **Problemi** | Dispositivi, linee e broker abilitati ma Non connessi o Parzialmente connessi; tag abilitati che non hanno valore (salvo se lo stato di salute del dispositivo li lascia fuori perché il loro primo valore da quando il dispositivo si è connesso non è ancora arrivato), che hanno un valore di sostituzione, un valore fuori dai propri limiti o una lettura rimasta muta, su un dispositivo che la stazione sta leggendo; un server acceso che non è riuscito ad avviarsi (il server Modbus anche quando un altro programma occupa la sua porta). |
| **Spenti** | Dispositivi, linee, broker e tag disabilitati, e tutti i tag di un dispositivo disabilitato. Un dispositivo sotto una linea seriale o un broker disabilitati conta come spento, e i suoi tag con lui. Un server spento conta come spento. |

Una pillola e il testo di ricerca si combinano. Il nodo selezionato resta sempre visibile, così il pannello non modifica mai una riga che non riesci a vedere. Un driver senza nulla sotto o con solo una cartella vuota, e la cartella Driver finché non contiene alcun driver, compaiono solo sotto Tutti, oppure quando la ricerca corrisponde al loro nome.

### L'albero {#the-tree}

Le forme, decise per driver:

- Ogni driver tranne Modbus RTU e MQTT: **Driver > Cartella (fino a due livelli) > Dispositivo > Tag**. Prima le cartelle, in ordine di nome, poi i dispositivi archiviati al livello del driver stesso.
- Modbus RTU: **Driver > Linea > Dispositivo > Tag**. I dispositivi pendono dalla linea fisica che condividono e non prendono cartelle.
- Generic serial and TCP: le due insieme. Prima le sue linee seriali, ciascuna come **Driver > Linea > Dispositivo > Tag**, poi le sue cartelle e i suoi dispositivi di rete, come sotto qualsiasi altro driver.
- SCPI instruments: lo stesso, prima le sue linee seriali, poi le sue cartelle e i dispositivi raggiunti via TCP o tramite VISA.
- Omron: lo stesso, prima le sue linee seriali, poi le sue cartelle e i PLC raggiunti via rete.
- MQTT: **Driver > Broker > Dispositivo > Tag**. I dispositivi pendono dal broker di cui condividono la connessione e non prendono cartelle.

Sotto la cartella Driver i driver sono elencati in piano, in ordine alfabetico, senza gruppi per categoria. Anche i tag di un dispositivo sono elencati per nome, maiuscole o no, nell'albero e dentro ogni gruppo di tipo della griglia dei tag del dispositivo; un tag aggiunto o rinominato prende subito il suo posto. Un driver sta nell'albero dal momento in cui viene aggiunto finché non viene rimosso, qualunque cosa abbia sotto. Ogni riga riassume quello che sta sotto:

| Riga | Mostra |
| --- | --- |
| Driver | Nome, « 3 dispositivi » (Modbus RTU, e Generic serial and TCP, SCPI instruments o Omron appena ha una linea: « 1 linea · 2 dispositivi »; MQTT: « 1 broker MQTT · 2 dispositivi »), punto di stato di salute. |
| Linea seriale | Nome, un segno di errore quando la porta ha fallito, testo di stato e conteggio dei dispositivi (« Connessa · 2 dispositivi »), punto di stato di salute. |
| Broker | Nome, un segno di errore quando il broker non è raggiungibile, testo di stato e conteggio dei dispositivi (« Connesso · 2 dispositivi »), punto di stato di salute. Vedi [MQTT](driver-mqtt#broker-states). |
| Cartella | Nome, « 2 dispositivi » oppure « vuoto », punto di stato di salute riassunto da ogni dispositivo dentro, sottocartelle comprese. |
| Dispositivo | Nome, un segno di errore che porta l'ultimo errore nel suo suggerimento, poi « 4 tag configurati », oppure « In attesa dell'approvazione del certificato », oppure « Indirizzo host non ancora inserito » (« Dispositivo NI-DAQmx non ancora inserito » su un dispositivo NI-DAQmx, « Cartella non ancora inserita » su un dispositivo File, « Server non ancora inserito » su un dispositivo Database, « DevEUI non ancora inserito » o « EUI della stazione non ancora inserito » su un dispositivo LoRaWAN), oppure « Driver non incluso in questo pacchetto. », poi il punto di stato di salute. |
| Tag | Un glifo per il tipo di dato (numerico, booleano, data, testo), il nome, un segno di errore quando l'ultima lettura è fallita, e un punto in tempo reale: ambra quando il valore è una sostituzione, quando la fase Limiti ha sollevato un guasto oppure quando la lettura è rimasta muta, verde mentre il tag ha un valore, grigio altrimenti, e grigio, qualunque cosa abbia mostrato per ultima, su un tag che la stazione non legge: uno disabilitato, o uno il cui dispositivo è disabilitato, sta sotto una linea disabilitata o non ha ancora un host inserito. |

I colori dei punti e i testi sono spiegati in [Abilitazione e stato di salute](connector-health). Il clic destro su una riga la seleziona e apre un menu che rispecchia la barra dei comandi per quel nodo; una riga su cui il ruolo non può fare nulla non apre alcun menu. Il divisore tra la colonna e il pannello si trascina per ridimensionare.

### Il piede: Nuovo…, Espandi tutto, Comprimi tutto {#the-footer-new-expand-all-collapse-all}

| Comando | Che cosa fa | Grigio quando (situazione) | Non disegnato quando (ruolo) |
| --- | --- | --- | --- |
| **Nuovo…** | Apre il menu della colonna, lo stesso qualunque sia la riga selezionata: **Aggiungi driver**, poi una voce per ogni driver aggiunto, che percorre l'albero fino al **Nuovo tag** di un dispositivo (vedere [Il menu Nuovo…](#the-new-menu)). | Una prova tiene la stazione o il runtime è fermo (il suggerimento porta il motivo), oppure è in corso una scansione di rilevamento o un'associazione Matter (« Terminare la scansione o l'associazione in corso prima di aggiungere qualcosa. »). | Senza Configurare Connector. |
| **Espandi tutto** / **Comprimi tutto** | Apre o chiude ogni ramo, le due cartelle del primo livello e i gruppi di driver compresi. Comprimi tutto lascia la colonna alle sue due cartelle, Driver e Server. | Mai: la cartella Server ha sempre le sue tre righe da aprire. | Mai. |

### Il menu Nuovo… {#the-new-menu}

Il menu legge l'albero, mai la selezione. Si apre con **Aggiungi driver** e poi, dopo un separatore, una voce per ogni driver aggiunto, nell'ordine dell'albero. La voce di un driver elenca prima quello che si può creare sotto il driver e poi, dopo un separatore, le righe proprie del driver, ognuna a sua volta un sottomenu di quello che accetta e di quello che contiene, fino a un dispositivo e al suo **Nuovo tag**. Nessuna voce nomina dove finisce: lo dice il percorso che ha portato fin lì.

| Voce | Che cosa elenca | Che cosa fanno le sue voci |
| --- | --- | --- |
| **Aggiungi driver** | I driver che questo pacchetto porta e che non sono ancora aggiunti, per nome, sotto il nome della loro categoria nell'ordine del catalogo Driver. | Aggiunge il driver come Aggiungi driver nel catalogo: la schermata va alla cartella Driver, il cui catalogo evidenzia la riga del driver, con il driver sotto la cartella nell'albero. Quando tutti i driver sono aggiunti, la voce resta, grigia: « Tutti i driver di questa stazione sono già aggiunti. » |
| Un driver | In quest'ordine, quello che il driver accetta: **Nuovo dispositivo** (ogni driver i cui dispositivi stanno direttamente sotto di esso, quindi non Modbus RTU, MQTT né Matter), **Nuova linea seriale** (Modbus RTU, Generic serial and TCP, SCPI instruments, Omron), **Nuovo broker** (MQTT), **Associa dispositivo** (Matter) e **Nuova cartella** (ogni driver i cui dispositivi accettano cartelle, quindi non Modbus RTU né MQTT); poi le sue linee seriali, i broker, le cartelle e i dispositivi, come li disegna l'albero. | Ognuna fa quello che fa lo stesso comando sulla pagina del driver. Associa dispositivo apre il modulo di associazione sulla pagina di Matter, e resta grigia con « Aggiungere prima la rete in cui il dispositivo deve entrare. » finché nessuna rete della scheda Reti è utilizzabile. |
| Una linea seriale o un broker | **Nuovo dispositivo**, poi i suoi dispositivi. | Crea un dispositivo su quella linea o su quel broker. |
| Una cartella | **Nuovo dispositivo** (sotto Matter apre il modulo di associazione, e il dispositivo associato viene archiviato in quella cartella) e **Nuova sottocartella** (solo su una cartella del primo livello), poi le sue sottocartelle e i suoi dispositivi. | Crea il dispositivo, o la sottocartella, dentro quella cartella. |
| Un dispositivo | **Nuovo tag**. | Aggiunge un tag al dispositivo, come il suo Aggiungi tag: la schermata va alla pagina del dispositivo, con il tag evidenziato nella sua griglia dei tag. |

Nessuna creazione apre ciò che ha creato: la schermata va alla pagina del suo genitore (la cartella Driver, il driver, la linea, il broker, la cartella o il dispositivo), l'albero seleziona quel genitore e lo espande, e la nuova riga è evidenziata nella tabella del genitore e portata in vista. L'evidenziazione resta finché non scegli altro; **Apri** sulla riga, o la sua riga nell'albero, apre l'elemento. Sotto un driver che questo pacchetto non porta, ogni voce tranne Nuovo tag resta grigia con « Driver non incluso in questo pacchetto. » Il menu non crea server, perché la cartella Server contiene le tre righe che la stazione ha, e non elenca tag. Ogni nome sta su una riga e un elenco lungo scorre. Un sottomenu resta aperto mentre il puntatore attraversa altre righe per raggiungerlo: si chiude, o lascia il posto a un altro, solo quando il puntatore si è fermato per circa un terzo di secondo altrove, e un clic cambia subito. Spostare in una cartella un dispositivo che esiste già è un comando del dispositivo, descritto in [Cartelle dei dispositivi](connector-folders).

## Il pannello di dettaglio {#the-detail-panel}

Senza nulla di selezionato il pannello legge « Selezionare nell'albero un driver, una linea seriale, un dispositivo o un tag per esaminarlo e modificarlo. Le modifiche vengono salvate automaticamente. » La cartella Driver apre il catalogo, la cartella Server legge « Selezionare un server per vederne lo stato e le impostazioni. », e ogni altro nodo apre il pannello documentato nella sua pagina qui sotto.

Le modifiche si salvano da sole: un campo di testo o di numero si salva quando lo lasci (o quando premi Invio), un interruttore o una casella di spunta quando lo commuti, un elenco a discesa quando scegli. Modifiche rapide su uno stesso dispositivo si fondono in un solo salvataggio circa mezzo secondo dopo l'ultima. Un salvataggio che la stazione rifiuta viene riportato indietro a quello che il database conserva e il motivo arriva nel registro delle azioni in fondo alla finestra; una modifica che lascerebbe il dispositivo inutilizzabile (un nome vuoto) non viene salvata, e il pannello dice che cosa manca. Mentre la pagina è aperta, i valori nell'albero e nei pannelli si aggiornano una volta al secondo.

## Chiave di bus e indirizzo: le due identità di un tag {#wire-key-and-address-the-two-identities-of-a-tag}

Ogni tag porta due nomi, e la differenza decide quanto costa una modifica.

La **chiave di bus** è `<Driver>.<Device>:<Tag>`, per esempio `ModbusTcp.Furnace:Temperature`. È quello che il Connector interroga e il server OPC UA integrato pubblica, quello a cui si collega un canale di Process, e il nome che vedono i client OPC UA esterni. La parte del dispositivo è il tipo di driver più il nome del dispositivo con ogni carattere che non sia una lettera o una cifra sostituito da un carattere di sottolineatura. La chiave di bus ignora le cartelle: archiviare un dispositivo altrove non cambia nulla sul bus.

L'**indirizzo** è `Connector.<Driver>.<Folders…>.<Device>.<Tag>`, per esempio `Connector.Simulated.Air.CompressedAir.HeaderPressure`. È il percorso che l'albero mostra, con ogni segmento ripulito allo stesso modo (una cifra iniziale riceve un carattere di sottolineatura davanti), ed è quello che scrivono le espressioni di Logic, gli script, le condizioni di allarme e i collegamenti delle dashboard. Rinominare un dispositivo o un tag, archiviare un dispositivo in una cartella, e rinominare o rimuovere una cartella sono tutti cambi di indirizzo, e l'applicazione riscrive ogni consumatore del vecchio indirizzo nella stessa operazione; i campi del nome anticipano quanti riferimenti seguiranno prima della conferma. Lo [spazio degli indirizzi di Logic](logic-address-space) legge gli stessi indirizzi.

I nomi dei dispositivi devono essere univoci solo dentro il loro driver, senza distinguere maiuscole e minuscole: un dispositivo Modbus TCP e un dispositivo OPC UA possono chiamarsi entrambi `Furnace`, perché le loro identità sul bus sono `ModbusTcp.Furnace` e `OpcUa.Furnace`. Due dispositivi abilitati sotto uno stesso driver i cui nomi si riducono allo stesso segmento tecnico (`Line A` e `Line-A`) si scontrano, ed entrambi vengono tenuti fuori dall'interrogazione invece che vincere uno solo; le loro righe non leggono alcun valore finché uno dei due non viene rinominato o disabilitato. L'identità tecnica di un dispositivo è limitata a 128 caratteri. Sotto uno stesso driver, nemmeno una cartella e un dispositivo allo stesso livello possono ridursi allo stesso segmento, perché un indirizzo non può essere insieme un ramo da espandere e un punto da leggere.

Non esiste un'importazione o un'esportazione a parte dell'albero del Connector: la configurazione viaggia con i [backup](settings-backups) dell'applicazione.

## Confini della progettazione {#engineering-boundaries}

Il Connector non smette mai di essere una superficie di lettura viva, ma la sua configurazione viene rifiutata in due situazioni, e la pagina dice quale:

- **Una prova di Process tiene la stazione.** Un avviso intitolato « Blocco di progettazione attivo » spiega che è attiva un'operazione su un'unità e che la configurazione resta in sola lettura finché tutte le unità non hanno finito, mentre i comandi della prova e le altre azioni dell'operatore restano disponibili. Ogni verbo che modifica resta disegnato e grigio con il motivo « La configurazione è bloccata mentre un'unità è in esecuzione. »
- **Il runtime è fermo.** Un avviso intitolato « Runtime fermo » dice che l'acquisizione, la Logic e la registrazione sono in pausa e che ogni modifica viene rifiutata finché il runtime non viene riavviato, con la configurazione e le prove registrate intatte. Gli stessi verbi diventano grigi con il motivo « Runtime fermo », e i valori dell'albero diventano vuoti perché la comunicazione si ferma.

Leggere, cercare, selezionare, le azioni di riga Apri e **Copia valore** su un tag restano disponibili in entrambe le situazioni.

## Permessi {#permissions}

Tre permessi del Connector, elencati per intero in [Permessi](users-permissions), decidono che cosa la pagina disegna:

| Permesso | Che cosa apre |
| --- | --- |
| **Visualizzare Connector** | La pagina, l'albero, ogni pannello in sola lettura. Gli editor restano inerti con una nota in cima: « Per modificare il Connector serve il permesso “Configurare Connector”. » I verbi che il ruolo non potrà mai usare non vengono disegnati affatto: Nuovo…, Aggiungi driver e Rimuovi driver, Aggiungi e Associa, Abilita e Disabilita, Riconnetti, Copia dispositivo, il gruppo Elimina, i gruppi di azioni di riga oltre ad Apri, Aggiungi tag, Rileva tag, le spunte della modifica di massa, il campo di scrittura e la sostituzione dei riferimenti. Aggiorna, Apri e Copia valore restano. |
| **Tarare i tag** | Tutto quello che dà Visualizzare, più la fase Taratura di un tag: la sua casella di spunta, i suoi due campi e la sua procedura guidata a due punti. Nient'altro diventa modificabile; vedi [Taratura](connector-calibration). |
| **Configurare Connector** | Tutta la pagina: aggiungere e rimuovere driver, creare, cambiare, abilitare, disabilitare ed eliminare linee seriali, broker, cartelle, dispositivi e tag, il rilevamento, l'associazione, le scritture, la sostituzione dei riferimenti, il server OPC UA con la sua configurazione e il suo accesso dei client, il server Modbus con la sua mappa dei registri, e il broker MQTT con la sua autenticazione. |

Ogni comando rilegge il permesso quando viene eseguito, così un verbo disegnato per un ruolo che nel frattempo è cambiato viene rifiutato con lo stesso messaggio invece che eseguito.

## In quest'area {#in-this-area}

| Pagina | Che cosa tratta |
| --- | --- |
| [L'elenco dei driver e la pagina di un driver](connector-drivers) | Il catalogo di tutti i driver della stazione nella cartella Driver, la pagina di un driver con la sua tabella di dispositivi e i suoi verbi, e lo stato « Driver non incluso in questo pacchetto ». |
| [Server](connector-servers) | Il server OPC UA, il server Modbus e il broker MQTT: accendere e spegnere ciascuno, la configurazione e l'accesso dei client del server OPC UA, la porta, i client e la mappa dei registri del server Modbus, e la porta, i client e l'autenticazione del broker MQTT. |
| [Linee seriali](connector-lines) | La linea seriale di Modbus RTU, del driver Generic serial and TCP, del driver SCPI instruments e del driver Omron: i suoi parametri fisici, la temporizzazione, gli stati, la scansione delle unità e i dispositivi archiviati sotto di essa. |
| [Cartelle dei dispositivi](connector-folders) | Creare, rinominare, rimuovere e spostare dispositivi tra cartelle, e come una cartella compone l'indirizzo. |
| [Dispositivi](connector-devices) | La pagina del dispositivo: intestazione e verbi, le schede Dispositivo e Connessione per driver, credenziali e certificati, la griglia dei tag con la modifica di massa, le copie e le collisioni. |
| [Tag](connector-tags) | La pagina del tag scheda per scheda: Generale, Sorgente per driver, Conversione, Valore in tempo reale e Usato da. |
| [La catena di conversione](connector-value-pipeline) | La conversione tipizzata da una lettura grezza al valore ingegneristico, e che cosa mostra una lettura mancante. |
| [Taratura](connector-calibration) | La fase Taratura, la procedura guidata a due punti passo per passo, e che cosa consente da solo il permesso Tarare i tag. |
| [Rilevamento](connector-discovery) | Lasciare che un driver cerchi dispositivi o punti, esaminare i candidati, aggiungerli, e associare un dispositivo Matter. |
| [Abilitazione e stato di salute](connector-health) | Che cosa partecipa all'acquisizione a ogni livello, i punti, le pillole, la barra di stato, Ultimo errore, Riconnetti e Aggiorna. |

I driver stessi, una pagina per protocollo con i suoi campi di connessione, l'indirizzamento, i tipi, il rilevamento e il comportamento in scrittura, sono raggruppati sotto [Driver](drivers).
