Beckhoff ADS
Collegare i PLC Beckhoff TwinCAT su ADS/AMS - la rotta AMS, la porta del runtime, i percorsi di simbolo e le lunghezze di lettura.
Il driver Beckhoff ADS parla con i PLC Beckhoff TwinCAT su ADS, il protocollo di automazione di TwinCAT trasportato su rotte AMS. I valori si indirizzano con il loro percorso di simbolo nel programma del PLC, quindi quello che scrivi è quello che il progetto TwinCAT dichiara. Aggiungi un dispositivo sotto il driver Beckhoff ADS nel Connector; il pannello mostra solo i campi che questo protocollo usa.
Connessione
| Campo | Significato | Predefinito |
|---|---|---|
| Indirizzo host | L'indirizzo IP del PLC. Il suo AMS Net Id si ricava da questo indirizzo come {ip}.1.1. Se AMS Net Id del PLC non lo indica, l'AMS Net Id del PLC è questo indirizzo seguito da .1.1; un nome viene prima risolto nel suo indirizzo IPv4. |
vuoto |
| Porta | La porta AMS del runtime di destinazione: 851 è il primo runtime PLC di TwinCAT 3, e i runtime TwinCAT 3 successivi contano da lì in su (852, 853, …). Un campo vuoto mostra 851 in grigio e si usa quel runtime; un dispositivo salvato con 0 si legge allo stesso modo. | 851 |
| IP locale (AMS) | L'indirizzo IP proprio di questa stazione, da cui si ricava il suo AMS Net Id come {ip}.1.1. Deve corrispondere alla rotta AMS configurata sul PLC. Un campo vuoto usa l'indirizzo di questa stazione sulla rete che raggiunge il PLC, che mostra in grigio; un valore inserito nel campo viene usato al suo posto. |
vuoto |
| AMS Net Id del PLC | L'AMS Net Id proprio del PLC, per un PLC il cui id non è il suo indirizzo IP seguito da .1.1: sei numeri da 0 a 255 separati da punti, come lo mostra TwinCAT XAE in SYSTEM > Routes, scheda NetId Management, Target NetId. Un campo vuoto usa l'indirizzo IPv4 dell'host seguito da .1.1, che mostra in grigio. Un valore che non è un AMS Net Id lascia il dispositivo disconnesso e dice cosa scrivere. |
vuoto |
| Intervallo di interrogazione (ms) | Il periodo di lettura valido per tutto il dispositivo, per i tag che non lo ridefiniscono. | 1.000 |
L'intestazione del dispositivo mostra l'endpoint composto, per esempio
ads://192.168.0.1:192.168.0.50:851 (IP locale, IP del PLC, porta AMS). Ogni tag può
impostare il proprio Intervallo di interrogazione (ms); un valore di tag pari a 0
ricade sull'intervallo del dispositivo.
ADS risponde solo alle stazioni per cui il PLC ha una rotta AMS: Preparare il PLC dice quale rotta aggiungere e dove.
Preparare il PLC
Un PLC TwinCAT risponde in ADS solo a una stazione per cui il suo router AMS ha una rotta. Senza la rotta, il router accetta la connessione sulla porta TCP 48898 e poi la chiude o non risponde mai, quindi la connessione fallisce anche se il percorso di rete è a posto. Aggiungi una volta sul PLC una rotta statica per questa stazione:
| Campo della finestra Add Route di TwinCAT | Valore |
|---|---|
| Nome: Route Name (Target) | Un nome qualsiasi; l'avviso propone il nome del computer di questa stazione. |
| Net id: AmsNetId | L'indirizzo di questa stazione seguito da .1.1, uguale a quello che il driver ricava da IP locale (AMS). |
| Trasporto: Transport Type | Il trasporto TCP_IP |
| Indirizzo: Address Info | L'indirizzo di questa stazione, con IP Address selezionato. |
| Tipo di rotta: Target Route e Remote Route | Static e None |
In TwinCAT XAE, scegli il PLC come sistema di destinazione e apri SYSTEM > Routes, scheda Static Routes, poi Add. Sul desktop del PLC stesso, l'icona TwinCAT nell'area di notifica apre lo stesso elenco con Router > Edit Routes.
L'indirizzo è quello di questa stazione sulla rete che raggiunge il PLC. Un computer con più schede di rete ha un indirizzo su ciascuna, e la rotta vale solo per quello che nomina. Finché IP locale (AMS) è vuoto, il driver usa l'indirizzo della scheda da cui Windows raggiunge il PLC, che il campo mostra in grigio: è l'indirizzo che la rotta nomina. Un valore inserito nel campo viene usato al suo posto, e la rotta deve nominare quello.
Quando il router del PLC respinge la stazione per mancanza della rotta, la pagina del dispositivo lo dice in un avviso che prende il posto dell'errore del driver: la rotta pronta da aggiungere (il suo nome, l'AMS Net Id di questa stazione, il suo indirizzo e il trasporto, ciascuno con un pulsante per copiarlo) e dove TwinCAT la aggiunge. L'avviso scompare da solo appena il PLC risponde, e il registro e l'agente leggono la stessa rotta. Una porta che rifiuta la connessione o resta muta viene detta per quello che è, non come una rotta mancante.
La stazione indirizza il PLC con il suo AMS Net Id, e il router del PLC risponde solo per il proprio: un PLC il cui AMS Net Id non è quello che la stazione usa non risponde mai nemmeno lui, il che sembra esattamente una rotta mancante. Quando il PLC ha già la rotta e continua a non rispondere, controlla il suo AMS Net Id in TwinCAT XAE in SYSTEM > Routes, scheda NetId Management, Target NetId, e inseriscilo in AMS Net Id del PLC; l'avviso nomina quello che la stazione usa.
Indirizzamento
Un tag Beckhoff viene indirizzato da due campi nella scheda Sorgente del tag:
| Campo | Significato | Valori accettati | Predefinito |
|---|---|---|---|
| Simbolo | Il percorso di simbolo della variabile nel programma del PLC. Obbligatorio. | testo libero, per esempio MAIN.fValue |
vuoto |
| Lunghezza di lettura (byte, vuoto = automatico) | Quanti byte trasferire a ogni lettura. Vuoto dimensiona la lettura in base al tipo di dato. | da 1 in su, oppure vuoto | vuoto |
Il percorso di simbolo è esattamente quello che TwinCAT mostra: le variabili di
programma come MAIN.fValue, gli elenchi di variabili globali come GVL.MachineSpeed
oppure GVL_Settings.rSetpoint. Il driver risolve il simbolo per nome sul PLC e ne
legge i byte grezzi. Le lunghezze di lettura automatiche sono:
| Tipo di dato | Lunghezza di lettura automatica |
|---|---|
| Boolean | 1 byte |
| Int32 | 4 byte |
| Float | 4 byte |
| String | 16 byte |
Per una String più lunga di 16 caratteri, imposta la Lunghezza di lettura in modo
da coprire la dimensione dichiarata (una STRING(80) di TwinCAT ha bisogno di 80 byte
di testo). La riga in sola lettura Indirizzo di origine (bus) della scheda Sorgente
mostra l'indirizzo composto mentre modifichi.
Una lettura che il PLC rifiuta, come quella di un simbolo che non ha o che non lascia
leggere, lascia il tag senza valore, e il motivo del tag nomina il codice di errore ADS
e il suo significato, per esempio ADS error 0x710 (no symbol by that name). La
connessione resta aperta e gli altri tag continuano a leggere; il motivo se ne va con la
prossima lettura a cui il PLC risponde.
Tipi di dato
Il selettore Tipo di dato offre i quattro tipi che il driver sa trasportare:
| Tipo di dato | Corrispondente sul PLC | Note |
|---|---|---|
| Boolean | BOOL | 1 byte, diverso da zero significa true |
| Int32 | DINT | little-endian, come il PLC |
| Float | REAL | little-endian, come il PLC |
| String | STRING | il testo fino al primo NUL del buffer di lettura |
L'ordine dei byte è il little-endian proprio del PLC e viene gestito automaticamente; non c'è alcuna opzione sull'ordine dei byte. La lettura di una String decodifica il buffer restituito fino al primo terminatore NUL, così il riempimento dietro una stringa corta non finisce mai nel valore. Le altre larghezze di TwinCAT (INT, LREAL, WORD, …) non vengono offerte: esponi una variabile del genere nel programma del PLC come uno dei quattro tipi qui sopra per leggerla qui.
Scritture
I tag il cui Accesso è Lettura e scrittura oppure Sola scrittura si possono scrivere. Una scrittura risolve lo stesso simbolo e scrive i byte del valore: 1 byte per Boolean, 4 byte per Int32 e Float. La scrittura di una String depone tutta la Lunghezza di lettura del tag: davanti i byte UTF-8 del testo, dietro degli zeri, così un testo più corto scritto sopra uno più lungo sostituisce l'intero valore e del vecchio non sopravvive nulla. Un testo che non sta nella lunghezza dichiarata viene rifiutato con la lunghezza nominata nel diario, mai tagliato a misura. Un tag nuovo nasce Sola lettura.
Una scrittura che il PLC rifiuta, come quella su un simbolo che non lascia scrivere,
torna rifiutata con il codice di errore ADS e il suo significato, per esempio
ADS error 0x704 (the symbol may not be written), e la connessione resta aperta.
Rilevamento
In questo driver ADS non ha un rilevamento a diffusione, quindi il Connector non mostra alcun pulsante Rileva. Aggiungi il dispositivo e i suoi simboli a mano.
Buono a sapersi
- La rotta AMS è il motivo abituale per cui una prima connessione fallisce: l'AMS Net
Id della rotta sul PLC deve essere esattamente l'IP della stazione più
.1.1, e la pagina del dispositivo dà l'intera rotta da aggiungere. - Il driver chiede al PLC un handle per ogni simbolo una volta per connessione e
restituisce gli handle quando la connessione si chiude. Dopo un download sul PLC, un
handle che il PLC non accetta più viene sostituito alla lettura successiva, così il tag
continua a leggere con il nuovo programma; un simbolo che il download ha rinominato o
rimosso lascia il suo tag senza valore, con
ADS error 0x710 (no symbol by that name), finché i nomi non tornano a corrispondere. - Un PLC irraggiungibile non costa nulla all'avvio: il dispositivo continua a ritentare in secondo piano e i suoi tag leggono cattiva qualità finché la connessione non si stabilisce.