Schneider Electric EcoStruxure™ Control Expert - Comunicazione, Libreria dei blocchi funzione Guida utente
Reklamë
Reklamë
EcoStruxure
™
Control Expert
comunicazione
Libreria dei blocchi funzione
Traduzione delle istruzioni originali
05/2022
33003682.24
www.se.com
Informazioni di carattere legale
Il marchio Schneider Electric e qualsiasi altro marchio registrato di Schneider Electric SE e delle sue consociate citati nella presente guida sono di proprietà di Schneider Electric SE o delle sue consociate. Tutti gli altri marchi possono essere marchi registrati dei rispettivi proprietari. La presente guida e il relativo contenuto sono protetti dalle leggi vigenti sul copyright e vengono forniti esclusivamente a titolo informativo. Si fa divieto di riprodurre o trasmettere la presente guida o parte di essa, in qualsiasi formato e con qualsiasi metodo
(elettronico, meccanico, fotocopia, registrazione, o in altro modo), per qualsiasi scopo, senza previa autorizzazione scritta di Schneider Electric.
Schneider Electric non concede alcun diritto o licenza per uso commerciale della guida e del relativo contenuto, a eccezione di una licenza personale e non esclusiva per consultarli
"così come sono".
I prodotti e le apparecchiature di Schneider Electric devono essere installati, utilizzati, posti in assistenza e in manutenzione esclusivamente da personale qualificato.
Considerato che le normative, le specifiche e i progetti possono variare di volta in volta, le informazioni contenute nella presente guida possono essere soggette a modifica senza alcun preavviso.
Nella misura in cui sia consentito dalla legge vigente, Schneider Electric e le sue consociate non si assumono alcuna responsabilità od obbligo per eventuali errori od omissioni nel contenuto informativo del presente materiale, o per le conseguenze risultanti dall'uso delle informazioni ivi contenute.
Facendo parte di un gruppo di aziende responsabili e inclusive, stiamo aggiornando i contenuti della nostra comunicazione che potrebbero contenere una terminologia non inclusiva. Tuttavia, fino a quando il processo non sarà completato, potrebbero ancora essere presenti termini standard di business che alcuni dei nostri clienti potrebbero ritenere inappropriati.
comunicazione
Sommario
Informazioni generali
..............................................................................................19
Disponibilità dei blocchi sulle varie piattaforme hardware.....................................30
Struttura e gestione delle funzioni di comunicazione............................................34
Gestione delle funzioni di comunicazione......................................................34
Struttura delle funzioni di comunicazione ......................................................38
Parametri di gestione: report delle comunicazioni e delle operazioni ...............42
Parametri di gestione: lunghezza e timeout ...................................................45
Informazioni generali sulle funzioni di comunicazione Premium e Atrium...............46
Regole per l'uso delle funzioni di comunicazione dei PLC Premium e
Funzioni di comunicazione sui PLC Atrium e Premium...................................47
Informazioni generali sulle funzioni di comunicazione Quantum ...........................51
Regole per l'uso delle funzioni di comunicazione dei PLC Quantum ................52
Funzioni di comunicazione sui PLC Quantum ...............................................54
Informazioni generali sulle funzioni di comunicazione M340.................................57
Funzioni di comunicazione sulle CPU M340..................................................57
Informazioni generali sulle funzioni di comunicazione M580.................................58
Regole per l'uso delle funzioni di comunicazione delle CPU M580 ..................59
33003682.24
3
comunicazione
Funzioni di comunicazione sulle CPU M580..................................................61
Informazioni generali sulle funzioni di comunicazione Momentum ........................63
Funzioni di comunicazione sui PLC Momentum ............................................63
Informazioni generali sulle funzioni client OPC UA ..............................................63
Definizione del blocco UA PLCopen .............................................................64
Comportamento generale degli ingressi e delle uscite comuni ........................67
Consumo di memoria dell'applicazione .........................................................69
Estesi
Esempio di annullamento di uno scambio ...........................................................93
CLOSE_TCP_CNX: Chiusura delle connessioni TCP ...............................................95
Esempio di come utilizzare una rete Fipway...................................................... 120
Esempio di attivazione/disattivazione dei servizi HTTP o FTP/TFTP................... 122
4 33003682.24
comunicazione
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo ................................ 126
EthPort_Control_MX: attivazione o disattivazione del protocollo .............................. 131
EthPort_Control_MX : disattivazione o attivazione di un protocollo ...................... 131
EXCH_QX: Scambio dati tra applicazioni sul bus EIO ............................................. 134
Esempio di lettura di stringhe di caratteri tramite una rete Fipway ....................... 151
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO ............................ 154
33003682.24
5
comunicazione
Attivazione / Disattivazione dei servizi HTTP o FTP/TFTP ................................. 194
Esempio di come inviare/ricevere una stringa di caratteri ................................... 217
OUT_IN_MBUS: Funzione di comunicazione Modbus............................................. 220
Presentazione generale del blocco di comunicazione OUT_IN_MBUS ................. 220
Descrizione del blocco di comunicazione OUT_IN_MBUS ................................... 224
Il parametro MasterDataArea ................................................................. 231
Implementazione del blocco di comunicazione OUT_IN_MBUS ........................... 233
Configurazione del collegamento seriale..................................................... 233
Procedura da seguire per la programmazione ............................................. 237
Esempio di utilizzazione del blocco di comunicazione OUT_IN_MBUS ................. 240
Struttura della programmazione ................................................................. 241
6 33003682.24
comunicazione
Esempio di invio di stringhe di caratteri tramite una rete Fipway ......................... 254
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO .................................... 257
Esempio di come ricevere un telegramma ........................................................ 265
Configurazione della funzione elementare READ_DDT ..................................... 270
READ_GDATA: Lettura dei dati globali Modbus Plus............................................... 275
33003682.24
7
comunicazione
Esempio di lettura di parole tramite il collegamento seriale dei processori
Esempio di come inviare una richiesta UNI-TE.................................................. 340
Modifica dei parametri IP tramite SEND_REQ (esempio)................................... 342
Esempio di come inviare un telegramma .......................................................... 348
WRITE_GDATA: Scrittura di Dati globali Modbus Plus............................................. 369
WRITE_REG_QX: Registro scrittura sul bus EIO.................................................... 380
8 33003682.24
comunicazione
WRITE_SDO: scrittura oggetto dati di servizio .................................................. 392
Esempio di come scrivere parole su una rete .................................................... 406
Esempio di scrittura di parole tramite il collegamento seriale dei PLC Modicon
Descrizione dettagliata dei parametri.......................................................... 439
Funzioni di comunicazione XXMIT ............................................................. 449
Funzioni del modem XXMIT....................................................................... 456
Regole di programmazione XXMIT............................................................. 478
Limiti dei parametri di interrogazione e risposta Modbus .............................. 480
33003682.24
9
comunicazione
Configurazione XXMIT mediante modem remoti compatibili Hayes
Esempio di applicazione Hayes:................................................................. 485
Client OPC UA
10 33003682.24
comunicazione
Appendici
Tabella dei codici di errore per la Libreria di comunicazione ............................... 549
Codici di errore degli EFB con parametro STATUS ............................................ 551
Dettagli dei codici di errore di STATO 11ss, 12ss, 13ss e 1mss........................... 555
Dettagli dei codici errore di STATO da 31ss a 37ss............................................ 558
Dettagli dei Codici di errore EFB TCP/IP Ethernet 5mss .................................... 566
Dettagli dei codici di errore EFB Modbus Plus 6mss .......................................... 570
Codici di errore specifici Quantum EFB SY/MAX ............................................... 570
Glossario
Indice
33003682.24
11
Informazioni di sicurezza
comunicazione
Informazioni importanti
Leggere attentamente queste istruzioni e osservare l'apparecchiatura per familiarizzare con i suoi componenti prima di procedere ad attività di installazione, uso, assistenza o manutenzione. I seguenti messaggi speciali possono comparire in diverse parti della documentazione oppure sull'apparecchiatura per segnalare rischi o per richiamare l'attenzione su informazioni che chiariscono o semplificano una procedura.
L'aggiunta di questo simbolo a un'etichetta di “Pericolo” o “Avvertimento” indica che esiste un potenziale pericolo da shock elettrico che può causare lesioni personali se non vengono rispettate le istruzioni.
Questo simbolo indica un possibile pericolo. È utilizzato per segnalare all'utente potenziali rischi di lesioni personali. Rispettare i messaggi di sicurezza evidenziati da questo simbolo per evitare da lesioni o rischi all'incolumità personale.
!
PERICOLO
PERICOLO indica una situazione di potenziale rischio che, se non evitata, può provocare morte o gravi infortuni.
!
AVVERTIMENTO
AVVERTIMENTO indica una situazione di potenziale rischio che, se non evitata, può provocare morte o gravi infortuni.
!
ATTENZIONE
ATTENZIONE indica una situazione di potenziale rischio che, se non evitata, può provocare ferite minori o leggere.
AVVISO
Un AVVISO è utilizzato per affrontare delle prassi non connesse all'incolumità personale.
33003682.24
13
comunicazione
Nota
Manutenzione, riparazione, installazione e uso delle apparecchiature elettriche si devono affidare solo a personale qualificato. Schneider Electric non si assume alcuna responsabilità per qualsiasi conseguenza derivante dall'uso di questo materiale.
Il personale qualificato è in possesso di capacità e conoscenze specifiche sulla costruzione, il funzionamento e l'installazione di apparecchiature elettriche ed è addestrato sui criteri di sicurezza da rispettare per poter riconoscere ed evitare le condizioni a rischio.
Prima di iniziare
Non utilizzare questo prodotto su macchinari privi di sorveglianza attiva del punto di funzionamento. La mancanza di un sistema di sorveglianza attivo sul punto di funzionamento può presentare gravi rischi per l'incolumità dell'operatore macchina.
AVVERTIMENTO
APPARECCHIATURA NON PROTETTA
• Non utilizzare questo software e la relativa apparecchiatura di automazione su macchinari privi di protezione per le zone pericolose.
• Non avvicinarsi ai macchinari durante il funzionamento.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Questa apparecchiatura di automazione con il relativo software permette di controllare processi industriali di vario tipo. Il tipo o il modello di apparecchiatura di automazione adatto per ogni applicazione varia in funzione di una serie di fattori, quali la funzione di controllo richiesta, il grado di protezione necessario, i metodi di produzione, eventuali condizioni particolari, la regolamentazione in vigore, ecc. Per alcune applicazioni può essere necessario utilizzare più di un processore, ad esempio nel caso in cui occorra garantire la ridondanza dell'esecuzione del programma.
Solo l'utente, il costruttore della macchina o l'integratore del sistema sono a conoscenza delle condizioni e dei fattori che entrano in gioco durante l'installazione, la configurazione, il funzionamento e la manutenzione della macchina e possono quindi determinare l'apparecchiatura di automazione e i relativi interblocchi e sistemi di sicurezza appropriati.
La scelta dell'apparecchiatura di controllo e di automazione e del relativo software per un'applicazione particolare deve essere effettuata dall'utente nel rispetto degli standard locali e nazionali e della regolamentazione vigente. Per informazioni in merito, vedere anche la guida National Safety Council's Accident Prevention Manual (che indica gli standard di riferimento per gli Stati Uniti d'America).
14 33003682.24
comunicazione
Per alcune applicazioni, ad esempio per le macchine confezionatrici, è necessario prevedere misure di protezione aggiuntive, come un sistema di sorveglianza attivo sul punto di funzionamento. Questa precauzione è necessaria quando le mani e altre parti del corpo dell'operatore possono raggiungere aree con ingranaggi in movimento o altre zone pericolose, con conseguente pericolo di infortuni gravi. I prodotti software da soli non possono proteggere l'operatore dagli infortuni. Per questo motivo, il software non può in alcun modo costituire un'alternativa al sistema di sorveglianza sul punto di funzionamento.
Accertarsi che siano stati installati i sistemi di sicurezza e gli asservimenti elettrici/meccanici opportuni per la protezione delle zone pericolose e verificare il loro corretto funzionamento prima di mettere in funzione l'apparecchiatura. Tutti i dispositivi di blocco e di sicurezza relativi alla sorveglianza del punto di funzionamento devono essere coordinati con l'apparecchiatura di automazione e la programmazione software.
NOTA: Il coordinamento dei dispositivi di sicurezza e degli asservimenti meccanici/ elettrici per la protezione delle zone pericolose non rientra nelle funzioni della libreria dei blocchi funzione, del manuale utente o di altre implementazioni indicate in questa documentazione.
Avviamento e verifica
Prima di utilizzare regolarmente l'apparecchiatura elettrica di controllo e automazione dopo l'installazione, l'impianto deve essere sottoposto ad un test di avviamento da parte di personale qualificato per verificare il corretto funzionamento dell'apparecchiatura. È importante programmare e organizzare questo tipo di controllo, dedicando ad esso il tempo necessario per eseguire un test completo e soddisfacente.
AVVERTIMENTO
RISCHI RELATIVI AL FUNZIONAMENTO DELL'APPARECCHIATURA
• Verificare che tutte le procedure di installazione e di configurazione siano state completate.
• Prima di effettuare test sul funzionamento, rimuovere tutti i blocchi o altri mezzi di fissaggio dei dispositivi utilizzati per il trasporto.
• Rimuovere gli attrezzi, i misuratori e i depositi dall'apparecchiatura.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Eseguire tutti i test di avviamento raccomandati sulla documentazione dell'apparecchiatura.
Conservare con cura la documentazione dell'apparecchiatura per riferimenti futuri.
Il software deve essere testato sia in ambiente simulato che in ambiente di funzionamento reale..
33003682.24
15
comunicazione
Verificare che il sistema completamente montato e configurato sia esente da cortocircuiti e punti a massa, ad eccezione dei punti di messa a terra previsti dalle normative locali (ad esempio, in conformità al National Electrical Code per gli USA). Nel caso in cui sia necessario effettuare un test sull'alta tensione, seguire le raccomandazioni contenute nella documentazione dell'apparecchiatura al fine di evitare danni accidentali all'apparecchiatura stessa.
Prima di mettere sotto tensione l'apparecchiatura:
• Rimuovere gli attrezzi, i misuratori e i depositi dall'apparecchiatura.
• Chiudere lo sportello del cabinet dell'apparecchiatura.
• Rimuovere tutte le messa a terra temporanee dalle linee di alimentazione in arrivo.
• Eseguire tutti i test di avviamento raccomandati dal costruttore.
Funzionamento e regolazioni
Le seguenti note relative alle precauzioni da adottare fanno riferimento alle norme NEMA
Standards Publication ICS 7.1-1995 (fa testo la versione inglese):
• Indipendentemente dalla qualità e della precisione del progetto nonché della costruzione dell'apparecchiatura o del tipo e della qualità dei componenti scelti, possono sussistere dei rischi se l'apparecchiatura non viene utilizzata correttamente.
• Eventuali regolazioni involontarie possono provocare il funzionamento non soddisfacente o non sicuro dell'apparecchiatura. Per effettuare le regolazioni funzionali, attenersi sempre alle istruzioni contenute nel manuale fornito dal costruttore. Il personale incaricato di queste regolazioni deve avere esperienza con le istruzioni fornite dal costruttore delle apparecchiature e con i macchinari utilizzati con l'apparecchiatura elettrica.
• L'operatore deve avere accesso solo alle regolazioni relative al funzionamento delle apparecchiature. L'accesso agli altri organi di controllo deve essere riservato, al fine di impedire modifiche non autorizzate ai valori che definiscono le caratteristiche di funzionamento delle apparecchiature.
16 33003682.24
Informazioni sul manuale
comunicazione
Ambito del documento
Questo documento descrive le funzioni e i blocchi funzione della libreria di comunicazione.
Nota di validità
La presente documentazione è valida per EcoStruxure TM Control Expert versione 15.2
.
Documenti correlati
Titolo della documentazione
EcoStruxure ™ Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento
Numero di riferimento
35006144 (Inglese), 35006145 (Francese), 35006146
(Tedesco), 35013361 (Italiano), 35006147
(Spagnolo), 35013362 (Cinese)
EcoStruxure funzionamento
EcoStruxure
Servizi e architetture di comunicazione, Manuale di riferimento
™
™
Control Expert, Modalità di
Control Expert, Bit e parole di sistema,
Manuale di riferimento
33003101 (Inglese), 33003102 (Francese), 33003103
(Tedesco), 33003104 (Spagnolo), 33003696
(Italiano), 33003697 (Cinese)
EIO0000002135 (Inglese), EIO0000002136
(Francese), EIO0000002137 (Tedesco),
EIO0000002138 (Italiano), EIO0000002139
(Spagnolo), EIO0000002140 (Cinese)
35010500 (Inglese), 35010501 (Francese), 35006176
(Tedesco), 35013966 (Italiano), 35006177
(Spagnolo), 35012196 (Cinese)
31003525 (inglese) Modicon Modbus Plus Network, Planning and
Installation Guide
Premium e Atrium con EcoStruxure ™ Control Expert,
Collegamento seriale asincrono, Manuale dell'utente
Premium e Atrium che utilizzano EcoStruxure ™ Control
Expert, Moduli di rete Ethernet, Manuale dell'utente
Driver di comunicazione, Manuale d'installazione
EcoStruxure ™ Control Expert, Gestione I/O, Libreria dei blocchi funzione
35006178 (Inglese), 35006179 (Francese), 35006180
(Tedesco), 35013959 (Italiano), 35006181
(Spagnolo), 35013960 (Cinese)
35006192 (Inglese), 35006193 (Francese), 35006194
(Tedesco), 31007214 (Italiano), 35006195
(Spagnolo), 31007102 (Cinese)
35006152 (Inglese), 35006153 (Francese), 35006154
(Tedesco), 35013950 (Italiano), 35006155
(Spagnolo), 35012192 (Cinese)
33002531 (Inglese), 33002532 (Francese), 33002533
(Tedesco), 33003684 (Italiano), 33002534
(Spagnolo), 33003685 (Cinese)
33003682.24
17
comunicazione
Titolo della documentazione
EcoStruxure
EcoStruxure
™
™
Control Expert, System, Block Library
Control Expert, Obsolete, Block Library
EcoStruxure ™ Control Expert, UnityLL984, Libreria dei blocchi
Quantum EIO, Moduli di I/O remoti, Guida di installazione e configurazione
Quantum using EcoStruxure ™ Control Expert, 140
NOC 771 00 EtherNet/IP Communication Module,
User Manual
Quantum using EcoStruxure ™ Control Expert, TCP/IP
Configuration, User Manual
Numero di riferimento
33002539 (Inglese), 33002540 (Francese), 33002541
(Tedesco), 33003688 (Italiano), 33002542
(Spagnolo), 33003689 (Cinese)
33002543 (Inglese), 33002544 (Francese), 33002545
(Tedesco), 33003690 (Italiano), 33002546
(Spagnolo), 33003691 (Cinese)
EIO0000000550 (Inglese), EIO0000000807
(Francese), EIO0000000808 (Tedesco),
EIO0000000809 (Italiano), EIO0000000810
(Spagnolo), EIO0000000811 (Cinese)
S1A48978 (Inglese), S1A48981 (Francese),
S1A48982 (Tedesco), S1A48983 (Italiano), S1A48984
(Spagnolo), S1A48985 (Cinese)
31008209 (Inglese), 31008210 (Francese)
Quantum con EcoStruxure
Modicon M580 BMENOC0301/11, Modulo di comunicazione Ethernet, Guida di installazione e configurazione
Modicon M580, Hardware, Manuale di riferimento
Modicon M580, Moduli RIO, Guida di installazione e configurazione
™ Control Expert, Ethernet,
Moduli di rete, Manuale dell'utente
33002467 (Inglese), 33002468 (Francese), 33002469
(Tedesco), 31008078 (Italiano), 33002470
(Spagnolo), 31007110 (Cinese)
33002479 (Inglese), 33002480 (Francese), 33002481
(Tedesco), 31007213 (Italiano), 33002482
(Spagnolo), 31007112 (Cinese)
HRB62665 (Inglese), HRB65311 (Francese),
HRB65313 (Tedesco), HRB65314 (Italiano),
HRB65315 (Spagnolo), HRB65316 (Cinese)
EIO0000001578 (Inglese), EIO0000001579
(Francese), EIO0000001580 (Tedesco),
EIO0000001582 (Italiano), EIO0000001581
(Spagnolo), EIO0000001583 (Cinese)
EIO0000001584 (Inglese), EIO0000001585
(Francese), EIO0000001586 (Tedesco),
EIO0000001587 (Spagnolo), EIO0000001588
(Italiano), EIO0000001589 (Cinese),
You can download these technical publications, the present document and other technical information from our website www.se.com/en/download/ .
18 33003682.24
comunicazione
Informazioni generali
Contenuto della sezione
Tipi di blocco e relative applicazioni ...........................................20
Disponibilità dei blocchi sulle varie piattaforme hardware ............30
Funzionamento degli EF di comunicazione ................................34
Panoramica
Questa sezione contiene informazioni generali sulla libreria di comunicazione.
NOTA: Per una descrizione dettagliata degli oggetti di sistema (%S e %SW), consultare
EcoStruxure ™ Control Expert, Bit e parole di sistema, Manuale di riferimento .
33003682.24
19
comunicazione
Tipi di blocco e relative applicazioni
Tipi di blocco e relative applicazioni
Contenuto del capitolo
Tipi di blocco ...........................................................................20
Struttura FFB...........................................................................22
EN ed ENO .............................................................................26
Panoramica
Questo capitolo descrive i diversi tipi di blocco e le relative applicazioni.
Tipi di blocco
Tipi di blocco
In Control Expert vengono usati diversi tipi di blocco. Il termine generale per i tipi di blocco è
FFB.
Sono disponibili i seguenti tipi di blocco:
• Funzione elementare (EF)
• Blocco funzione elementare (EFB)
• Blocco funzione derivato (DFB)
• Procedura
NOTA: I blocchi funzione di movimento (Motion) non sono disponibili sulla piattaforma
Quantum.
Funzione elementare
Le funzioni elementari (EF) non dispongono di stati interni e hanno solo un'uscita. Se i valori di ingresso sono identici, il valore di uscita è uguale per le esecuzioni della funzione. La somma di due valori, ad esempio, dà lo stesso risultato ad ogni esecuzione.
Una funzione elementare viene rappresentata nei linguaggi grafici (FBD e LD) come un frame di blocco con ingressi e un'uscita. Gli ingressi sono rappresentati a sinistra e le uscite a destra della struttura del blocco. Il nome della funzione, ovvero il tipo di funzione, compare al centro della struttura del blocco.
20 33003682.24
Tipi di blocco e relative applicazioni
comunicazione
È possibile aumentare il numero di ingresso con alcune funzioni elementari.
NOTA: Unity Pro è il nome precedente di Control Expert per la versione 13.1 o precedente.
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA
Per le versioni Unity Pro V4.0, e versioni precedenti, non usare i collegamenti per le connessioni delle uscite dei blocchi funzione, quando l'applicazione si basa sui dati di uscita persistenti di un EF.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
NOTA: Con Unity Pro V4.0 e versioni precedenti, la disattivazione di un EF (EN=0) provoca l'azzeramento dei link collegati ai relativi I/O. Per trasferire lo stato del segnale, non utilizzare un collegamento. È necessario connettere una variabile all'uscita della funzione elementare e utilizzare tale variabile per connettere l'ingresso dell'elemento.
Con Unity Pro V4.1 e versioni precedenti è possibile mantenere i collegamenti di uscita anche se un EF viene disattivato con l'opzione Mantenere collegamenti in uscita sull'EF disattivato (EN=0) tramite il menu Strumenti > Programma > Linguaggi >
Comune .
Blocco funzione elementare
I blocchi funzione elementari (EFB) dispongono di uno stato interno. Se gli ingressi hanno gli stessi valori, il valore sulle uscite può essere diverso durante le singole esecuzioni. Ad esempio, con un contatore, il valore sull'uscita viene incrementato.
Un blocco funzione elementare viene rappresentato nei linguaggi grafici (FBD e LD) come un frame di blocco con ingressi e uscite. Gli ingressi sono rappresentati a sinistra e le uscite a destra della struttura del blocco. Il nome del blocco funzione, ovvero il tipo di blocco funzione, compare al centro della struttura del blocco. Il nome dell’istanza viene visualizzato sopra la struttura.
Blocco funzione derivato
I blocchi funzione derivati (DFB) hanno le stesse proprietà dei blocchi funzione elementari.
Questi vengono creati dall’utente nei linguaggi di programmazione FBD, LD, IL e/o ST.
33003682.24
21
comunicazione
Tipi di blocco e relative applicazioni
Procedura
Le procedure sono funzioni con parecchie uscite. Non mostrano stati interni.
La sola differenza rispetto alle funzioni elementari è il fatto che le procedure possono avere più di un'uscita e che supportano variabili del tipo di dati VAR_IN_OUT .
Le procedure non restituiscono un valore.
Le procedure sono un'integrazione a IEC 61131-3 e devono essere abilitate in modo esplicito.
Non esiste una differenza visiva tra procedure e funzioni elementari.
NOTA: Unity Pro è il nome precedente di Control Expert per la versione 13.1 o precedente.
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA
Per le versioni Unity Pro V4.0, e versioni precedenti, non usare i collegamenti per le connessioni delle uscite dei blocchi funzione, quando l'applicazione si basa sui dati di uscita persistenti di un EF.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
NOTA: Con Unity Pro V4.0 e versioni precedenti, la disattivazione di un EF (EN=0) provoca l'azzeramento dei link collegati ai relativi I/O. Per trasferire lo stato del segnale, non utilizzare un collegamento. È necessario connettere una variabile all'uscita della funzione elementare e utilizzare tale variabile per connettere l'ingresso dell'elemento.
Con Unity Pro V4.1 e versioni precedenti è possibile mantenere i collegamenti di uscita anche se un EF viene disattivato con l'opzione Mantenere collegamenti in uscita sull'EF disattivato (EN=0) tramite il menu Strumenti > Programma > Linguaggi >
Comune .
Struttura FFB
Struttura
Ogni FFB si compone di un’operazione (nome dell’FFB) che richiede degli operandi per il funzionamento (parametri formali e attuali) e un nome d’istanza per i blocchi funzione elementari/derivati.
22 33003682.24
Tipi di blocco e relative applicazioni
Chiamata di un blocco funzione nel linguaggio di programmazione FBD: comunicazione
ATTENZIONE
COMPORTAMENTO IMPREVISTO DELL'APPLICAZIONE
Non richiamare più volte la stessa istanza del blocco nell'ambito di un ciclo PLC
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Chiamata formale di un blocco funzione nel linguaggio di programmazione ST:
33003682.24
23
comunicazione
Tipi di blocco e relative applicazioni
Procedura
L’operazione stabilisce quale funzione debba essere eseguita con l’FFB; ad esempio registro di scorrimento, operazioni di conversione.
Operando
L’operando specifica la modalità di esecuzione dell’operazione. Con FFB, si tratta di parametri formali ed effettivi.
Parametri formali/effettivi
Ingressi e uscite sono necessari per trasferire valori a o da un FFB che sono denominati parametri formali.
Gli oggetti sono collegati a parametri formali; tali oggetti contengono gli stati correnti del processo e sono denominati parametri effettivi.
Durante il riunione del programma, i valori del processo vengono trasferiti all’FFB tramite i parametri effettivi, quindi messi nuovamente al termine dell’elaborazione.
Il tipo di dati dei parametri effettivi deve corrispondere al tipo di dati dell'ingresso/uscita
(parametri formali). Le sole eccezioni sono ingressi/uscite generici il cui tipo di dati è determinato dal parametro effettivo. Se tutti i parametri effettivi sono composti di letterali, viene selezionato un tipo dati adatto per il blocco funzione.
Chiamata FFB in IL/ST
Nei linguaggi di testo IL e ST, gli FFB possono essere richiamati in maniera formale e informale. Per dettagli, consultare il capitolo chapter Linguaggio di programmazione (vedi
EcoStruxure ™ Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento).
Esempio di chiamata formale della funzione: out:=LIMIT (MN:=0, IN:=var1, MX:=5);
Esempio di chiamata informale della funzione: out:=LIMIT (0, var1, 5);
NOTA: L'uso di EN e ENO è possibile solo per le chiamate formali.
24 33003682.24
Tipi di blocco e relative applicazioni
Variabile
VAR_IN_OUT
comunicazione
Gli FFB vengono spesso usati per leggere una variabile in un ingresso (variabili d’ingresso), per lavoro e per emettere i valori modificati della stessa variabile (variabili di uscita).
Questo speciale tipo di variabile d’ingresso/uscita viene definita anche variabile VAR_IN_
OUT .
Le variabili d’ingresso e d’uscita sono collegate nei linguaggi grafici (FBD e LD) tramite una linea che mostra la loro correlazione.
Blocco funzione con variabile VAR_IN_OUT in FBD:
Blocco funzione con variabile VAR_IN_OUT in ST:
MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT,
OUT1=>Output1, OUT2=>Output2);
Se gli FFB vengono usati con le variabili VAR_IN_OUT devono essere considerati i seguenti punti:
• Gli ingressi VAR_IN_OUT devono essere assegnati a una variabile.
• Non è possibile assegnare valori letterali o costanti agli ingressi/uscite VAR_IN_OUT .
Ai linguaggi grafici (FBD e LD) si applicano le seguenti limitazioni aggiuntive:
• Se si usano collegamenti grafici, le uscite VAR_IN_OUT possono essere collegate solo agli ingressi VAR_IN_OUT .
• A un ingresso/uscita VAR_IN_OUT è possibile collegare un solo collegamento grafico.
• All’ingresso VAR_IN_OUT e all’uscita VAR_IN_OUT è possibile collegare diverse variabili/componenti di variabile. In questo caso, il valore delle variabili/componenti di variabile sull’ingresso viene copiato per le variabili/componente di variabile dell’uscita.
• Sugli ingressi/uscite VAR_IN_OUT non è possibile usare negazioni.
• Per le uscite VAR_IN_OUT non è possibile una combinazione di collegamenti grafici e variabile/indirizzo.
33003682.24
25
comunicazione
EN ed ENO
Tipi di blocco e relative applicazioni
Descrizione
Per gli FFB è possibile configurare un ingresso EN e un'uscita ENO .
Se il valore di EN è uguale a "0", se viene richiamato l'FFB, gli algoritmi definiti in base all'FFB non vengono eseguiti ed ENO viene impostato a "0".
Se il valore di EN è uguale a "1" quando viene richiamato l'FFB, gli algoritmi definiti dall'FFB vengono eseguiti. Dopo la corretta esecuzione di questi algoritmi, il valore di ENO viene impostato a "1". Se si rilevano alcune condizioni d'errore durante l'esecuzione di questi algoritmi, ENO viene impostato a "0".
Se al pin EN non viene assegnato un valore, quando si richiama l'FFB, viene eseguito l'algoritmo definito tramite l'FFB (stessa condizione di quando EN è uguale a "1"). Vedere
Mantieni i collegamenti di uscita sull'EF disattivato (vedere ™ EcoStruxure Control Expert,
Modalità operative).
Se gli algoritmi vengono eseguiti correttamente, il valore di ENO è impostato a "1", altrimenti
ENO è impostato a "0".
Se ENO viene impostato a "0" (perché EN =0 o è stato rilevata una condizione d'errore durante l'esecuzione o l'esecuzione non riuscita di un algoritmo):
26 33003682.24
Tipi di blocco e relative applicazioni
comunicazione
• Blocchi funzione
◦ Gestione di EN/ENO con blocchi funzione che hanno (solo) un collegamento come parametro di uscita:
Se EN da FunctionBlock_1 è impostato a "0", il collegamento d'uscita OUT da
FunctionBlock_1 conserva lo stato che aveva al momento dell'ultima esecuzione corretta del ciclo.
◦ Gestione di EN/ENO con blocchi funzione che hanno una variabile e un collegamento come parametri d'uscita:
Se EN da FunctionBlock_1 è impostato a "0", il collegamento d'uscita OUT da
FunctionBlock_1 conserva lo stato che aveva al momento dell'ultima esecuzione corretta del ciclo. La variabile OUT1 sullo stesso pin conserva lo stato precedente oppure può essere modificata esternamente senza influenzare il collegamento. La variabile e il collegamento vengono salvati indipendentemente l'uno dall'altro.
33003682.24
27
comunicazione
Tipi di blocco e relative applicazioni
• Funzioni/procedure
NOTA: Unity Pro è il nome precedente di Control Expert per la versione 13.1 o precedente.
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPARECCHIATURA
Per le versioni Unity Pro V4.0, e versioni precedenti, non usare i collegamenti per le connessioni delle uscite dei blocchi funzione, quando l'applicazione si basa sui dati di uscita persistenti di un EF.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
NOTA: Con Unity Pro V4.0 e versioni precedenti, la disattivazione di un EF (EN=0) provoca l'azzeramento dei link collegati ai relativi I/O. Per trasferire lo stato del segnale, non utilizzare un collegamento. È necessario connettere una variabile all'uscita della funzione elementare e utilizzare tale variabile per connettere l'ingresso dell'elemento. Con Unity Pro V4.1 e versioni precedenti è possibile mantenere i collegamenti di uscita anche se un EF viene disattivato con l'opzione
Mantenere collegamenti in uscita sull'EF disattivato (EN=0) tramite il menu
Strumenti > Programma > Linguaggi > Comune .
Come specificato in IEC61131-3, le uscite dalle funzioni disattivate (ingresso EN impostato a "0") non sono definite (lo stesso vale per le procedure).
Di seguito viene fornita una spiegazione degli stati di uscita in questo caso particolare:
◦ Gestione di EN/ENO con funzioni/procedure che hanno (solo) un collegamento come parametro d'uscita:
Se EN da Funzione/Procedura_1 è impostato a "0", anche la connessione di uscita OUT da Funzione/Procedura_1 viene impostata a "0".
◦ Gestione di EN/ENO con blocchi funzione che hanno una variabile e un collegamento come parametri d'uscita:
28 33003682.24
Tipi di blocco e relative applicazioni
comunicazione
Se EN da Funzione/Procedura_1 è impostato a "0", anche la connessione di uscita OUT da Funzione/Procedura_1 viene impostata a "0". La variabile OUT1 sullo stesso pin conserva lo stato precedente oppure può essere modificata esternamente senza influenzare il collegamento. La variabile e il collegamento vengono salvati indipendentemente l'uno dall'altro.
Il comportamento di uscita degli FFB non dipende dal fatto che gli FFB vengano richiamati senza EN / ENO o con EN =1.
Chiamata FFB condizionale/non condizionale
Le chiamate "non condizionali" o "condizionali" sono possibili con ogni FFB. La condizione viene realizzata collegando preventivamente l'ingresso EN .
• EN collegato chiamate condizionali (l'FFB viene elaborato solo se EN = 1)
• EN visibile, nascosto e contrassegnato come TRUE oppure visibile e non occupato chiamate non condizionali (FFB viene elaborato indipendentemente da EN)
NOTA: Per i blocchi funzione disattivati (EN=0) con una funzione dell'ora interna (ad es.
DELAY), il conteggio del tempo non si arresta, questo perché è calcolato con l'aiuto di un orologio di sistema ed è quindi indipendente dal ciclo di programma e dal rilascio del blocco.
ATTENZIONE
APPARECCHIATURA APPLICAZIONE NON PREVISTA
Non disattivare i blocchi funzione che dispongono di una funzione interna dell'ora durante il loro funzionamento.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Nota per IL e ST
L'uso di EN ed ENO è possibile solo nei linguaggi di testo per una chiamata FFB formale, ad es.
MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2);
L'assegnazione delle variabili a ENO deve essere eseguita con l'operatore => .
Con una chiamata informale, non è possibile usare EN ed ENO .
33003682.24
29
comunicazione
Disponibilità dei blocchi sulle varie piattaforme hardware
Disponibilità dei blocchi sulle varie piattaforme hardware
Contenuto del capitolo
Disponibilità dei blocchi sulle varie piattaforme hardware ............30
Panoramica
Non tutti i blocchi sono disponibili su tutte le piattaforme hardware. I blocchi disponibili sulla propria piattaforma hardware si possono trovare nelle tabelle seguenti.
Disponibilità dei blocchi sulle varie piattaforme hardware
Introduzione
Non tutti i blocchi funzione sono disponibili su ogni piattaforma hardware. La disponibilità dei blocchi per tipo di piattaforma hardware è contenuta nella seguente tabella.
NOTA: Le funzioni, le procedure e i blocchi funzione di questa libreria non sono definiti nella norma IEC 61131–3.
NOTA: L'uso delle funzioni di comunicazione in un task FAST non è consigliato. Per evitare malfunzionamenti, la soluzione migliore è usarle in un task MAST.
Estesa
Disponibilità dei blocchi:
Nome del blocco
Tipo di blocco
EF
EF
EF
Procedura
-
+
Premium
-
+
Quantum
-
+ (1)
-
-
-
-
M340
+
+
+
-
M580
+
+
-
-
Momentum
-
-
30 33003682.24
Disponibilità dei blocchi sulle varie piattaforme hardware
comunicazione
Nome del blocco
EthPort_Control_MX, pagina 131
Tipo di blocco
Procedura
EFB
EFB
Procedura
EFB
EF
Procedura
EFB
Procedura
Procedura
EF
Procedura
EFB
EFB
EFB
Procedura
Procedura
EFB
EFB
EFB
Procedura
DFB
EFB
Procedura
Procedura
Procedura
Procedura
Procedura
EFB
-
-
-
-
-
+
+
+
+
-
+
+
-
+
+
+
-
-
-
+
-
-
+
Premium Quantum
-
-
+
+
-
+
+
-
-
-
+
-
-
-
+
M340
+
M580 Momentum
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+ (1)
-
-
+ (1)
-
-
+
+ (1)
-
-
-
-
-
-
-
+ (1)
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
+
-
-
+
+
+
-
-
+
-
-
-
+
-
-
-
-
-
-
+
-
+ (4)
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ (2)
-
-
-
-
-
33003682.24
31
comunicazione
Disponibilità dei blocchi sulle varie piattaforme hardware
Nome del blocco
UA_ConnectionGetStatus, pagina 510
UA_MonitoredItemAddList, pagina 530
MonitoredItemOperateList, pagina 533
UA_MonitoredItemRmvList, pagina 537
UA_NamespaceGetIndexList, pagina 515
UA_NodeGetHandleList, pagina 517
UA_NodeReleaseHandleList, pagina 520
UA_SubscriptionCreate, pagina 526
UA_SubscriptionDelete, pagina 528
UA_SubscriptionProcessed, pagina 535
Tipo di blocco
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
EFB
Procedura
Procedura
Procedura
EFB
EFB
EFB
Procedura
EFB
-
-
Premium
-
-
-
Quantum
+
-
-
M340
-
+
+
M580
-
-
-
Momentum
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ (1)
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
32 33003682.24
Disponibilità dei blocchi sulle varie piattaforme hardware
comunicazione
Nome del blocco Tipo di blocco
EFB
Premium
-
Quantum
+
M340
-
M580
-
Momentum
+ (3)
+ Sì
No
(1) Questi EFB possono essere utilizzati solo per i seguenti moduli di comunicazione Quantum: 140 CRP 312 00, 140
NOC 780 00, 140 NOC 781 00. Se sono utilizzati con altri moduli di comunicazione, rimangono nello stato attivo finché non viene impostato il parametro Abort .
(2) Codici operativi supportati: 1 = Scrittura dati, 2 = Lettura dati, 23 = Lettura / Scrittura dati.
(3) Momentum supporta la stessa implementazione di Quantum.
NOTA: l'implementazione supportata presenta un'enumerazione bit diversa da Concept/ProWORX.
(4) Codici operativi supportati: 1 = Scrittura dati, 2 = Lettura dati, 14 = Messaggio esplicito CIP, 15 = Invio richiesta
Modbus, 23 = Lettura / Scrittura dati.
33003682.24
33
comunicazione
Funzionamento degli EF di comunicazione
Funzionamento degli EF di comunicazione
Contenuto del capitolo
Struttura e gestione delle funzioni di comunicazione ...................34
Informazioni generali sulle funzioni di comunicazione
Premium e Atrium ....................................................................46
Informazioni generali sulle funzioni di comunicazione
Quantum .................................................................................51
Informazioni generali sulle funzioni di comunicazione
M340 ......................................................................................57
Informazioni generali sulle funzioni di comunicazione
M580 ......................................................................................58
Informazioni generali sulle funzioni di comunicazione
Momentum ..............................................................................63
Informazioni generali sulle funzioni client OPC UA......................63
Argomento del capitolo
Questo capitolo descrive il funzionamento e la gestione delle funzioni di comunicazione.
Struttura e gestione delle funzioni di comunicazione
Panoramica
Questa sezione descrive la gestione dei due tipi principali di funzioni di comunicazione.
Fornisce inoltre informazioni generali sulla struttura delle funzioni di comunicazione.
Gestione delle funzioni di comunicazione
In breve
34
Le funzioni di comunicazione consentono a un dispositivo di comunicare con un altro dispositivo.
Alcune funzioni sono comuni a vari tipi di canali di comunicazione, mentre altre sono specifiche a un singolo canale di comunicazione.
33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Le funzioni di comunicazione sono elaborate in modo sincrono al task di applicazione utilizzato per attivarle (tranne SEND_TLG e RCV_TLG ). Una funzione di comunicazione è asincrona quando viene eseguita durante uno o più cicli dopo il ciclo nel quale è stato attivato.
Sulla stessa porta di comunicazione possono essere programmati diversi blocchi funzione di comunicazione. Se viene superato il numero massimo di blocchi di comunicazione su una porta, i blocchi in eccesso non sono gestiti finché viene rilasciato un percorso di transazione. Quando si liberano le risorse del percorso di transazione, il blocco successivo sulla stessa porta diventa attivo e utilizza il percorso rilasciato.
Questa sezione descrive la gestione delle funzioni di comunicazione in funzione del tipo:
• Funzioni EF e di tipo procedura
• Funzioni di tipo EFB
NOTA: Collocando un EF di comunicazione nel task FAST non si aumenta la velocità di elaborazione dell'EF, né la velocità di esecuzione della comunicazione. Tutte le comunicazioni, inclusa l'emissione fisica dei messaggi su tutti i collegamenti di comunicazione, avvengono alla fine del task MAST, anche se l'EF di comunicazione viene elaborato nel task FAST.
Funzioni di comunicazione EF e di tipo procedura
Le funzioni di comunicazione EF e di tipo procedura sono gestite nel seguente modo:
33003682.24
35
comunicazione
Avvio di una comunicazione:
Monitoraggio di una comunicazione:
Avvio di una nuova comunicazione:
Funzionamento degli EF di comunicazione
La funzione è richiamata all'interno del task. Richiamando la funzione si avvia la comunicazione se l'ingresso EN è impostato a 1.
Il sistema operativo della CPU gestisce la comunicazione in modo autonomo. Viene elaborata in modo asincrono al task di applicazione che ha attivato la funzione. Non
è necessario eseguire la funzione una volta che è stata attivata. L'utente gestisce il processo di comunicazione attraverso i parametri di gestione aggiornati dal sistema operativo.
Mentre la comunicazione è in corso, il parametro
è impostato a 1. Una volta che la comunicazione è completata (con o senza errori rilevati), il parametro bit di attività è impostato a 0. Dato che il completamento della comunicazione può richiedere più cicli del task, il test del parametro bit di attività consente di sapere quando la comunicazione è terminata.
Per una comunicazione che richiede più cicli del task per essere completata: per eseguire la funzione una volta, reimpostare l'ingresso EN a 0 dopo aver avviato la funzione di comunicazione e prima del ciclo di task successivo. Per mantenere un'attività di comunicazione continua, lasciare l'ingresso EN impostato a 1.
Possono verificarsi due situazioni:
• La funzione viene richiamata una volta quando è necessaria una comunicazione (attivazione del fronte): chiamare la funzione con l'ingresso
EN impostato a 1 per avviare la comunicazione e azzerare EN (0) prima del ciclo di task successivo.
• La funzione viene richiamata ciclicamente in un task: se il parametro bit di attività è impostato a 0 (la comunicazione precedente è terminata, testata dalla funzione stessa quando viene richiamata) il processo interno della funzione avvia una nuova comunicazione. Questa situazione provoca una comunicazione continua.
Per evitare di avviare una comunicazione nel ciclo di task successivo, reimpostare l'ingresso EN a 0.
Funzioni di comunicazione di tipo EFB
Le funzioni di comunicazione di tipo EFB sono gestite nel seguente modo:
36 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Avvio di una comunicazione:
Monitoraggio di una comunicazione:
Avvio di una nuova comunicazione:
La funzione viene richiamata all'interno del task, ma dipende dallo stato dell'ingresso ENABLE . Per avviare la comunicazione, gli ingressi ENABLE e EN devono essere impostati a 1 quando viene richiamata la funzione.
La funzione viene elaborata durante il task. Se la comunicazione richiede diversi cicli del task per essere completata, la funzione deve essere chiamata e attivata nel task ad ogni ciclo.
Mentre la comunicazione è in corso, l'uscita ACTIVE è impostata a 1. Una volta che la comunicazione è completata (con o senza errore rilevato), l'uscita ACTIVE è impostata a 0.
Per una comunicazione che richiede più cicli del task per essere completata:
• Una volta che la funzione di comunicazione è stata avviata, gli ingressi
ENABLE e EN devono essere impostati a 1 durante il processo di comunicazione in corso. Il valore di uscita ACTIVE può essere usato come condizione per gestire l'ingresso ENABLE della funzione. Un esempio è fornito nella sezione
M580 - Descrizione delle funzioni di comunicazione, pagina 60
.
• Se l'ingresso ENABLE o EN è impostato a 0 durante un task, l'attività della funzione è disattivata e viene bloccata. L'attività della funzione riprende in un ciclo successivo se gli ingressi ENABLE e EN sono impostati a 1.
La funzione è chiamata ciclicamente in un task per scopi di monitoraggio.
Quando viene chiamata la funzione, l'attività è testata dalla funzione stessa. Se la funzione non è attiva (la comunicazione precedente è terminata), gli ingressi
ENABLE e EN devono essere impostati a 1 per avviare una nuova comunicazione.
Per avviare la funzione di comunicazione solo una volta, l'ingresso ENABLE deve essere impostato a 0 quando l'uscita ACTIVE è a 0.
La seguente figura mostra nei dettagli il ruolo e il funzionamento dei parametri ENABLE ,
ACTIVE , DONE (o SUCCESS ) e ERROR :
1 DONE = 1 se nessun errore rilevato, DONE = 0 se errore rilevato
2 ERROR = 0 se nessun errore rilevato, ERROR = 1 se errore rilevato
33003682.24
37
comunicazione
Funzionamento degli EF di comunicazione
Il parametro ENABLE è scritto dall'applicazione. I parametri ACTIVE , DONE e ERROR sono letti dall'applicazione.
Struttura delle funzioni di comunicazione
In breve
Una funzione di comunicazione utilizza:
• un parametro di indirizzo
• parametri specifici di un'operazione di comunicazione
• parametri di gestione
Sintassi
La sintassi di una funzione di comunicazione è la seguente:
Funzione (indirizzo di destinazione, parametri specifici, parametri di gestione)
La tabella seguente descrive le diverse entità che costituiscono una funzione:
Entità
Funzione
Indirizzo di destinazione
Parametri specifici
Parametri di gestione
Descrizione
Corrisponde al tipo di funzione di comunicazione.
Indica l'indirizzo della destinazione dello scambio.
Dipendono dal tipo della funzione di comunicazione. Per ciascuna funzione di comunicazione ne viene fornita una descrizione.
I parametri di gestione sono comuni a tutte le funzioni di comunicazione asincrone. Sono costituiti da:
• un parametro che fornisce i dati sull'attività della funzione
• un parametro che specifica il numero di scambio che identifica la transazione in corso
• un parametro contenente il rapporto di scambio (rapporto comunicazione e rapporto operazione)
• un parametro di timeout utilizzabile per verificare l'eventuale assenza di risposta
• un parametro di lunghezza utilizzabile per archiviare il numero di byte da inviare o il numero di byte ricevuti
38 33003682.24
Funzionamento degli EF di comunicazione
Indirizzo di destinazione comunicazione
In breve
Questo parametro indica l'indirizzo del dispositivo di destinazione (vedi Servizi e architetture di comunicazione, Manuale di riferimento) dello scambio e può essere individuato:
• utilizzando parole interne (%MW) o costanti interne (%KW)
• scrivendolo direttamente come valore immediato
Per semplificare la fase di preparazione dello scambio, la funzione ADDR (solo o versione successiva) converte un valore immediato di tipo indirizzo (stringa di caratteri) in una tabella composta da sei parole interne (%MW).Control Expert M
Esempio
%MWi:6:=ADDR(’{2.4}SYS’);
Struttura dei parametri di gestione
Presentazione
I parametri di gestione sono raggruppati sotto forma di un array di quattro interi. I valori contenuti in questo array possono essere utilizzati per gestire le funzioni di comunicazione.
NOTA: Nella documentazione tecnica, questi parametri di gestione sono inoltre denominati tabella o report di gestione.
NOTA: Le prime due parole vengono gestite dal sistema. La responsabilità della gestione delle ultime due parole spetta all'utente.
NOTA: Per i sistemi M580 Hot Standby, apportare le seguenti modifiche ai parametri di gestione nell' Editor Dati :
• Deselezionare l'attributo Exchange On STBY per ciascuno dei quattro parametri di gestione.
• Inizializzare il parametro Lunghezza ogni volta che si richiama la funzione.
• Impostare il parametro Timeout in base alla propria applicazione:
◦ Se la funzione di comunicazione viene inviata alla CPU, il valore tipico di timeout
è 500 ms.
◦ Se la funzione di comunicazione viene inviata a un modulo NOC, il valore tipico di timeout è 2 s.
33003682.24
39
comunicazione
Funzionamento degli EF di comunicazione
Struttura
Nella seguente tabella viene descritta la struttura dei dati nella tabella di gestione delle comunicazioni:
Byte più significativo Byte meno significativo
Dati gestiti dal sistema
Ordine della parola
1 Numero di scambio
2
Bit di attività, pagina 40 : rango 0
Bit di annullamento, pagina 40
: rango 1
Bit di riconoscimento immediato, pagina
Rapporto di comunicazione, pagina 42
Dati gestiti dall'utente
3
4
Rapporto operazione, pagina 43
Bit di attività
Questo bit indica lo stato di esecuzione della funzione di comunicazione.
È impostato a 1 all'avvio e viene reimpostato a 0 al termine dell'esecuzione.
Si tratta del primo bit del primo elemento della tabella.
Dichiarazione : se la tabella di gestione è stata dichiarata nel seguente modo:
Tab_Gest ARRAY [1..4] OF INT , il bit di attività è il bit con la notazione Tab_Gest[1].0
.
NOTA: La notazione utilizzata in precedenza richiede la configurazione delle proprietà del progetto in modo da autorizzare l'estrazione dei bit sui tipi di intero. Diversamente, non sarà possibile accedere a Tab_Gest[1].0
.
Bit di annullamento
Per annullare la funzione di comunicazione (solo per PLC Modicon M340 e Modicon M580) impostare questo bit a 1 e riavviare EF. Questo è un altro modo di utilizzare la funzione
EF.
Dichiarazione : se la tabella di gestione è stata dichiarata nel seguente modo:
Tab_Gest ARRAY [1..4] OF INT , il bit di annullamento è il bit con la notazione Tab_Gest
[1].1
.
40 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Esempio di programmazione in ST: annullamento di una funzione READ_VAR
IF (%MW40.0) THEN
SET(%MW40.1);
READ_VAR(ADDM(’0.0.0.6’), ’%MW’, 100, 10, %MW40:4, %MW10:10);
END_IF;
%MW40 è il parametro GEST (tabella di gestione).
%MW40.0
corrisponde al bit di attività della funzione READ_VAR ed è impostato a 1 quando la funzione di comunicazione è attiva. Se questo bit è impostato a 1, il programma imposta il bit %MW40.1
, il bit di annullamento della funzione, a 1. Questo interrompe la comunicazione della funzione READ_VAR .
NOTA: Quando si utilizza il bit di annullamento della funzione di comunicazione contenuto nella parola di gestione scambio ( %MW40 in questo esempio), per poter attivare l'annullamento dello scambio deve essere richiamata la funzione ( READ_VAR in questo esempio).
NOTA: Quando si utilizza il bit di annullamento della funzione di comunicazione, è possibile annullare una comunicazione da una tabella di animazione. Ciò può avvenire semplicemente impostando il bit di annullamento della funzione a 1 ( %MW40.1
in questo esempio) e riavviando quindi la funzione di comunicazione.
Bit di riconoscimento immediato
Utilizzato solo per la funzione
EF, questo bit forza l'esecuzione immediata di EF. Questa caratteristica è utile quando si lavora con i moduli NOM sulle derivazioni remote (la connessione è automaticamente chiusa dal modulo CRP se non perviene una risposta dal modulo CRA nello spazio di due minuti). La funzione INPUT_
CHAR può in realtà rimanere sempre attiva nel modulo NOM in attesa dei caratteri provenienti dalla connessione seriale. Quando questa caratteristica è attivata, il modulo
NOM risponde immediatamente alla richiesta del carattere in ingresso anche se non sono presenti dei caratteri (naturalmente con la lunghezza dei caratteri impostata a 0).
Dichiarazione : se la tabella di gestione è stata dichiarata nel seguente modo:
Tab_Gest ARRAY [1..4] OF INT , il bit di riconoscimento immediato è il bit con la notazione Tab_Gest[1].2
.
Numero di scambio
Quando viene inviata una funzione di comunicazione, il sistema le assegna automaticamente un numero, che consente di identificare lo scambio.
Tale numero può essere utilizzato quando necessario per arrestare lo scambio in corso
(mediante la funzione
).
33003682.24
41
comunicazione
Funzionamento degli EF di comunicazione
Parametri di gestione: report delle comunicazioni e delle operazioni
In breve
I rapporti delle comunicazioni e delle operazioni fanno parte dei parametri di gestione.
NOTA: Si raccomanda di testare sempre i report delle funzioni di comunicazione alla fine dell'esecuzione e prima dell'attivazione successiva. All'avvio a freddo, tutti i parametri di gestione delle funzioni di comunicazione devono essere testati e impostati a 0.
Report di comunicazione
16#02
16#03
16#04
16#05
16#06
16#07
16#08
16#09
16#0A
16#0B
Il report è comune a tutte le funzioni. È significativo quando il valore del bit di attività passa da 1 a 0
I report con un valore compreso tra 16#01 e 16#FE riguardano gli errori rilevati dal processore che ha eseguito la funzione.
I valori diversi di questo report sono indicati nella tabella seguente:
Valore
16#00
16#01
16#0C
Report comunicazioni (byte meno significativo)
Scambio corretto
Interruzione scambio al timeout
NOTA: Valore OK restituito quando Modicon M340 CPU invia una richiesta MODBUS
BROADCAST .
Stop scambio su richiesta dell'utente ( ANNULLA )
Formato indirizzo errato
Indirizzo destinazione non corretto
Formato parametri di gestione errato
Parametri specifici errati
Problema durante l'invio alla destinazione.
Riservato
Dimensioni buffer di ricezione insufficienti
Dimensioni buffer di invio insufficienti
Nessuna risorsa di sistema: il numero di EF di comunicazione supera il numero massimo che può essere gestito dal processore.
Numero di scambio errato
42 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Valore
16#0D
16#0E
16#0F
16#10
16#11
16#12
16#13
16#FF
Report comunicazioni (byte meno significativo)
Nessun telegramma ricevuto
Lunghezza errata
Servizio del telegramma non configurato
Modulo di rete mancante
Richiesta mancante
Server dell'applicazione già attivo
Numero transazione UNI-TE V2 errato
Messaggio rifiutato
NOTA: Valore OK restituito quando un TSX SCP ••• o un TSX SCY ••• invia una richiesta
MODBUS BROADCAST .
NOTA: La funzione può rilevare un errore di parametro prima di attivare lo scambio. In questo caso il bit di attività resta a 0 e il report viene inizializzato con i valori corrispondenti all'errore.
NOTA: Il valore 16#FF è restituito per indicare uno scambio corretto con la funzione
WRITE_VAR in una richiesta di trasmissione Modbus. Questo valore di segnalazione è implementato in TSX SCY 21601 da V2.8 IE46, in TSX SCY 11601 da V1.2 IE11 e in
TSX SCP 111/114 da V3.2 IR25.
Report delle operazioni
Questo byte di report è specifico per ogni funzione ed indica il risultato dell'operazione sull'applicazione remota.
È significativo solo se il report delle comunicazioni ha i seguenti valori:
• 16#00 (scambio corretto),
• 16#FF (messaggio rifiutato).
Se il valore del report comunicazioni è 16#00, il report operazioni avrà i seguenti valori:
Valore
16#00
16#01
16#02
16#03
Report operazioni (Byte più significativo)
Risultato positivo
Richiesta non elaborata
Risposta scorretta
Riservato
NOTA: per Premium, questo report segnala le dimensioni errate del buffer di ricezione (il buffer di ricezione è troppo piccolo per contenere la risposta).
33003682.24
43
comunicazione
Funzionamento degli EF di comunicazione
Valore
Codice richiesta +
16#30
16#FB
16#FD
16#FE
Report operazioni (Byte più significativo)
Su risposta positiva per determinate richieste
Su risposta a una richiesta minore
Errore operativo
Su risposta positiva per alcune richieste
16#0C
16#0D
16#0F
16#11
16#12
16#14
16#15
Valore
16#01
16#02
16#03
16#04
16#05
16#06
16#07
16#08
16#0B
Questo elenco non è esaustivo e dipende dalla funzione di comunicazione utilizzata. Vedere la funzione di comunicazione corrispondente per i valori specifici:
• Report operazioni quando si usa SEND_REQ per scambiare una
richiesta UNI-TE, pagina 332 .
• Report operazioni quando si usa SEND_REQ per scambiare una richiesta Modbus (vedi
Premium e Atrium con EcoStruxure ™ Control Expert, Collegamento seriale asincrono,
Manuale dell'utente).
Se il valore del report comunicazioni è 16#FF , il report operazioni avrà i seguenti valori:
Report operazioni (Byte più significativo)
Nessuna risorsa per il processore
Nessuna risorsa di linea
Nessun dispositivo o dispositivo senza risorse (*)
Guasto di linea
Errore di lunghezza
Canale di comunicazione in errore
Errore di indirizzamento
Errore applicazione
Nessuna risorsa di sistema: il numero di EF di comunicazione supera il numero massimo che può essere gestito dal processore.
Funzione di comunicazione non attiva
Destinatario assente
Problema di instradamento o canale non configurato
Formato indirizzo non gestito
Nessuna risorsa di destinazione
Collegamento non operativo (esempio: Ethernet TCP/IP)
Nessuna risorsa sul canale locale
44 33003682.24
Funzionamento degli EF di comunicazione
Valore
16#16
16#17
16#18
16#21
16#30
Report operazioni (Byte più significativo)
Accesso non autorizzato (esempio: Ethernet TCP/IP)
Configurazione di rete incoerente (esempio: Ethernet TCP/IP)
Collegamento temporaneamente indisponibile
Server applicazione in arresto
Errore di trasmissione
Legenda:
(*) Codice gestito solo dalle schede PCMCIA: TSX FPP20 e TSX FPP10 comunicazione
Parametri di gestione: lunghezza e timeout
In breve
L'utente è responsabile di questi due parametri.
Lunghezza
Il parametro di lunghezza è utilizzato sia per specificare il numero di caratteri (in byte) da inviare durante la trasmissione, sia per memorizzare il numero di caratteri (in byte) ricevuti successivamente alla ricezione di un messaggio.
Prima di avviare determinate funzioni di comunicazione ( SEND_REQ , DATA_EXCH , PRINT_
CHAR , SEND_TLG ), è obbligatorio per alcune di queste, e consigliabile per altre, aggiornare il parametro di lunghezza.
NOTA: Con la funzione PRINT_CHAR , ad esempio, se un'altra funzione dell'applicazione sta utilizzando la stessa tabella di report in cui il numero di byte da inviare è diverso da quello dalla funzione precedente, è necessario inizializzare il parametro della lunghezza con il nuovo numero di byte da trasmettere. Diversamente, viene mantenuto lo stesso numero di byte inviati dalla funzione precedente.
Timeout
Il timeout determina il tempo massimo di attesa per la risposta. La base tempo per questo parametro è 100 ms (il valore 0 corrisponde a un'attesa infinita).
33003682.24
45
comunicazione
Funzionamento degli EF di comunicazione
Una volta trascorso il timeout, lo scambio termina con un rapporto di errore. Inoltre, il sistema non accetta risposte dopo la fine del timeout.
Esempio
NOTA:
• Il timeout viene valutato ogni secondo.
• Il valore del timeout di una funzione di comunicazione deve essere sufficiente a garantire che sia ricevuta la risposta alla domanda posta (ad esempio, uso di un modem esterno su un collegamento basato su protocollo).
• Il timeout di applicazione della comunicazione Modbus master impostato nelle funzioni di comunicazione deve essere superiore al timeout della schermata di configurazione moltiplicato per il numero di tentativi (timeout hardware).
• Il timeout degli EF di comunicazione (quali WRITE_VAR o READ_VAR ) deve essere superiore al timeout del dispositivo di comunicazione master (ritardo di risposta).
Informazioni generali sulle funzioni di comunicazione Premium e Atrium
Argomento della sezione
Questa sezione descrive il funzionamento e la gestione delle funzioni di comunicazione per i
PLC Premium e Atrium.
46 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Regole per l'uso delle funzioni di comunicazione dei PLC
Premium e Atrium
In breve
Le funzioni di comunicazione utilizzate con i PLC Premium e Atrium presentano caratteristiche esclusive che le distinguono dalle altre funzioni della libreria. Questa documentazione è conforme alla documentazione quadro della libreria delle funzioni, ma contiene anche ulteriori informazioni relative alle particolarità dell'applicazione specifica per la comunicazione.
Variabili localizzate
Tutte le funzioni di comunicazione che non richiedono una programmazione nel PLC del server (READ_VAR, WRITE_VAR, ecc.) consentono l'accesso alle variabili localizzate dei
PLC remoti. Le variabili non localizzate non sono accessibili.
NOTA: per eseguire i trasferimenti tra PLC della variabili non localizzate, è necessario utilizzare la funzione DATA_EXCH. Un'altra soluzione consiste nell'effettuare copie locali nelle aree delle variabili localizzate.
Eccetto il primo esempio delle funzione WRITE_VAR Control Expert (solo M e versioni superiore), tutti gli altri esempi utilizzano le variabili a indirizzamento diretto (vedi
EcoStruxure ™ Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) (uso di indirizzi, variabili localizzate).
Linguaggio di programmazione
Il linguaggio di programmazione più conciso per la creazione di applicazioni di comunicazione è il linguaggio Testo strutturato (ST, Structured Text). Tutti gli esempi, eccetto quello della funzione
, sono pertanto scritti in ST.
Funzioni di comunicazione sui PLC Atrium e Premium
In breve
Queste funzioni consentono la comunicazione tra dispositivi. Alcune funzioni sono comuni a vari tipi di canali di comunicazione, altre sono invece specifiche di un singolo canale di comunicazione.
33003682.24
47
comunicazione
Funzionamento degli EF di comunicazione
NOTA: Le funzioni di comunicazione sono elaborate in modo asincrono rispetto al task di applicazione utilizzato per attivarle. Le uniche eccezioni sono costituite dalle funzioni di invio/ricezione telegrammi e di interruzione del funzionamento, che vengono eseguite in modo assolutamente sincrono all'esecuzione del task di attivazione.
Funzioni di comunicazione asincrone
Una funzione di comunicazione è asincrona quando viene eseguita per uno o più cicli successivi al ciclo che l'ha attivata.
La seguente tabella fornisce una panoramica delle funzioni di comunicazione con esecuzione asincrona:
Funzione
DATA_EXCH
ETH_PORT_
CTRL
INPUT_BYTE
INPUT_CHAR
OUT_IN_CHAR
OUT_IN_MBUS
PRINT_CHAR
READ_ASYN
READ_GDATA
READ_VAR
SEND_REQ
UNITE_
SERVER
WRITE_ASYN
WRITE_GDATA
WRITE_VAR
Ruolo
Ricezione di invio/richiesta di dati.
Attivazione o disattivazione di un protocollo.
Lettura di un array di byte.
Lettura di una stringa di caratteri.
Invio di una stringa di caratteri e attesa di una risposta.
Emulazione di una comunicazione master Modbus da un collegamento seriale configurato in modalità caratteri.
Scrittura di una stringa di caratteri.
Lettura di 1 Kbyte di messaggistica.
Lettura di dati comuni Modbus Plus.
Lettura degli oggetti di linguaggio standard: parole e bit interni, parole e bit di sistema, timer, monostabili, tamburi, registri e contatori.
Invio richieste UNI-TE.
Elaborazione immediata delle richieste READ_VAR e WRITE_VAR su Modbus (server immediato).
Scrittura di 1 Kbyte di messaggistica.
Scrittura di dati comuni Modbus Plus.
Scrittura di oggetti di linguaggio standard: parole e bit interni, parole e bit di sistema.
48
NOTA: Si raccomanda che l'attivazione delle funzioni asincrone avvenga sul fronte e non in funzione dello stato, per evitare di saturare i buffer di comunicazione con l'invio di richieste multiple. Per lo stesso motivo si raccomanda anche di gestire il
e le
durante l'esecuzione di ogni funzione di comunicazione.
33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Funzioni di comunicazione sincrone
Una funzione di comunicazione si dice sincrona quando viene eseguita interamente durante il task PLC che l'ha attivata.
La seguente tabella fornisce una panoramica delle funzioni di comunicazione con esecuzione sincrona:
Funzione
CANCEL
RCV_TLG
SEND_TLG
Ruolo
Arresto di uno scambio in corso.
Ricezione di un telegramma.
Invio di un telegramma.
Funzioni di comunicazione utility
Queste funzioni sono eseguite in modo sincrono. Una funzione di comunicazione si dice sincrona quando viene eseguita interamente durante il task PLC che l'ha attivata.
La seguente tabella fornisce una panoramica della funzione di comunicazione utility:
Funzione
ADDR
Ruolo
Conversione di una stringa di caratteri in un indirizzo (tabella di 6 interi) che può essere sfruttato direttamente dalla funzione di comunicazione.
Funzione server
In breve
La funzione server può essere utilizzata per rispondere alle richieste provenienti da dispositivi client.
I processori TSX 57 35• e PCX 57 35• forniscono due server richieste:
• un server principale (consigliato per richieste inferiori a 256 byte)
• un server ausiliario (consigliato per richieste fino a 1024 byte).
Questi due server possono essere attivati contemporaneamente.
33003682.24
49
comunicazione
Funzionamento degli EF di comunicazione
Illustrazione
Lo schema seguente mostra le richieste inviate ai server nel ciclo del PLC:
Server principale
Questo server corrisponde alla porta 0 (server UNI-TE). Viene attivato all'avvio del ciclo
MAST del PLC.
Il tempo di risposta del PLC client dipende dalla durata del ciclo del PLC server. Può essere utilizzato per elaborare fino a 4 richieste simultanee per ciclo di PLC.
Sono supportate tutte le richieste UNI-TE. La dimensione della richiesta deve essere inferiore a 256 byte.
Questa entità può essere indirizzata all'indirizzo topologico SYS o {network.station}
SYS .
50 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Server ausiliario
Questo server corrisponde alla porta 7 (server asincrono). Viene attivato solo per task periodici al termine del ciclo del PLC, dopo che il task MAST è stato elaborato durante l'attesa dell'avvio del ciclo successivo.
L'avvio del ciclo successivo, di priorità più elevata, può interrompere una richiesta in corso.
L'accesso a questo server è perciò riservato alle applicazioni che non richiedono coerenza nei dati di lettura/scrittura.
Il tempo di risposta dell'applicazione dipende essenzialmente dalla durata del ciclo del PLC.
La dimensione della richiesta può arrivare fino a 1024 byte. Non vi si può accedere da una funzione di comunicazione; il server elabora richieste READ/WRITE di oggetti (bit o parola), ecc.
Informazioni generali sulle funzioni di comunicazione Quantum
Panoramica
Questa sezione descrive il funzionamento e la gestione delle funzioni di comunicazione per i
PLC Quantum.
33003682.24
51
comunicazione
Funzionamento degli EF di comunicazione
Regole per l'uso delle funzioni di comunicazione dei PLC
Quantum
Modalità di funzionamento dei parametri Enable, Active, Done ed
Error
I parametri ENABLE , ACTIVE , DONE (o SUCCESS ) e ERROR funzionano nel modo seguente:
(1) DONE = 1 se nessun errore, DONE = 0 se errore
(2) ERROR = 0 se nessun errore, ERROR = 1 se errore
Il parametro ENABLE è scritto dall'applicazione.
I parametri ACTIVE , DONE ed ERROR sono letti dall'applicazione.
Per avviare la funzione di comunicazione solo una volta, è necessario reimpostare il segnale ENABLE a 0 dopo che il parametro ACTIVE è impostato a 0. Se il parametro
ENABLE viene mantenuto a 1 dopo che il parametro ACTIVE è impostato a 0, la funzione di comunicazione viene nuovamente avviata e il parametro ACTIVE verrà impostato a 1 al ciclo successivo.
Comunicazione con le derivazioni remote Ethernet
Quando si usa una funzione di comunicazione xxx_QX per eseguire scambi di comunicazione con derivazioni Ethernet, si raccomanda di testare lo stato della comunicazione della derivazione Ethernet prima di avviare la funzione di comunicazione.
Una funzione di comunicazione indirizzata a una derivazione difettosa può richiedere oltre 2 minuti prima di terminare con uno stato di errore dovuto al timeout della transazione (perché il nodo remoto non ha risposto entro il ritardo di timeout).
52 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
NOTA: L'esecuzione delle funzioni di comunicazione possono risultare rallentate se tutte le porte di comunicazione sono già utilizzate dalle funzioni di comunicazione.
Informazioni sullo stato della comunicazione:
• %SW172 a %SW173 (vedi EcoStruxure ™ Control Expert, Bit e parole di sistema,
Manuale di riferimento). Stato di errore di comunicazione rilevato nella derivazione
Ethernet RIO. Un bit in queste parole di stato viene impostato a 0 quando il corrispondente collegamento tra il PLC e la derivazione non funziona correttamente.
• DROP_COM_HEALTH (vedi Quantum EIO, Moduli di I/O remoti, Guida di installazione e configurazione). Campo nella struttura DDT associato a una derivazione.
Esempio d'uso dei parametri in FBD
Il seguente esempio mostra un diagramma FBD implementato per ricevere continuamente le informazioni di stato del canale 0 di:
• un modulo Modicon X80 situato nel rack 0, slot 8 dell'istanza della derivazione num. 2 all'indirizzo IP: 192.168.100.32
• tramite un modulo di testa di I/O 140 CRP 312 00 nello slot 4 del rack locale Quantum
Descrizione della sequenza di comunicazione
33003682.24
53
comunicazione
Funzionamento degli EF di comunicazione
Passo
1
2
3
Azione e risultato
Se il blocco READ_STS_QX_Instance non è attivo, viene avviato se lo stato di comunicazione della derivazione è impostato a 1.
READ_STS_QX_Instance viene richiamato ad ogni scansione finché l'operazione è terminata con:
• successo ( DONE è impostato a 1)
• un errore ( ERROR è impostato a 1)
Se l'operazione viene conclusa con:
• successo, la parola di stato del modulo Modicon X80 può essere utilizzata nella variabile collegata al parametro del blocco STS .
• un errore, il codice di errore può essere letto nel parametro STATUS .
Se il collegamento di comunicazione con la derivazione viene interrotto, DROP_COM_HEALTH passa a 0 e l'operazione correntemente attiva viene interrotta ( STATUS = 16#1001).
NOTA: Se il parametro ABORT non è attivato, il blocco rimane attivo fino alla scadenza del ritardo di timeout della transazione e alla conclusione della comunicazione con un errore
( STATUS = 16#5303).
Funzioni di comunicazione sui PLC Quantum
Blocchi di comunicazione e percorsi di transazione
I blocchi funzione di comunicazione utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione. Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
Funzione di comunicazione disponibile sulle CPU di fascia bassa
Ruoli delle funzioni di comunicazione:
54 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Funzione
CREAD_REG
CWRITE_REG
MBP_MSTR
READ_REG
WRITE_REG
(1)
(1)
Ruolo
Lettura continua di un'area del registro da uno slave indirizzato tramite Modbus Plus,
TCP/IP-Ethernet o SY/MAX-Ethernet
Scrittura continua di un'area del registro in uno slave indirizzato tramite Modbus Plus,
TCP/IP-Ethernet o SY/MAX-Ethernet
Esecuzione di varie operazioni di comunicazione di rete su Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Lettura di un'area di registro da uno slave indirizzato tramite Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Scrittura di un'area di registro in uno slave indirizzato tramite Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Messaggi Modbus dal PLC master e stringhe di ingresso/uscita ASCII.
XXMIT
(1) Le funzioni di comunicazione READ_REG e WRITE_REG vengono avviate alla comparsa di un fronte sull'ingresso REG . La comunicazione viene avviata quando REG è impostato a 1; quindi REG deve essere resettato (0) e impostato nuovamente a 1 per riavviare la comunicazione.
Funzione di comunicazione disponibile sulle CPU di fascia alta
Ruoli delle funzioni di comunicazione:
Funzione
CREAD_REG
CWRITE_REG
EXCH_QX
GET_TS_EVT_Q (2)
INPUT_CHAR_QX
MBP_MSTR
PRINT_CHAR_QX
READ_REG (1)
READ_REG_QX
READ_STS_QX (*)
Ruolo
Lettura continua di un'area del registro da uno slave indirizzato tramite Modbus Plus,
TCP/IP-Ethernet o SY/MAX-Ethernet
Scrittura continua di un'area del registro in uno slave indirizzato tramite Modbus Plus,
TCP/IP-Ethernet o SY/MAX-Ethernet
Esecuzione di trasferimenti dati tramite un bus EIO verso e da slave Modbus collegati ad un rack Modicon X80
Recupero dei dati orodatati in un modulo Modicon BMX ERT 1604T o BMX CRA ••••• in una derivazione EIO.
Ricezione di una stringa di caratteri da un modulo di comunicazione seriale Modicon
X80 tramite un bus EIO
Esecuzione di varie operazioni di comunicazione di rete su Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Invio di una stringa di caratteri di max. 1000 byte da un master Modbus Modicon X80 tramite un bus EIO
Lettura di un'area di registro da uno slave indirizzato tramite Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Lettura di registri in uno slave Modbus collegato a un master Modbus Modicon X80 tramite un bus EIO
Lettura delle parole di stato di un modulo di I/O Ethernet Modicon X80 mediante esecuzione di uno scambio esplicito con la memoria del processore
33003682.24
55
comunicazione
Funzionamento degli EF di comunicazione
Funzione
WRITE_CMD_QX
WRITE_REG (1)
WRITE_REG_QX
(*)
Ruolo
Invio di un comando a un modulo di I/O Ethernet Modicon X80 con una parola di comando mediante esecuzione di uno scambio esplicito
Scrittura di un'area di registro in uno slave indirizzato tramite Modbus Plus, TCP/IP-
Ethernet o SY/MAX-Ethernet
Scrittura di registri in uno slave Modbus collegato a un master Modbus Modicon X80 tramite un bus EIO
Messaggi Modbus dal PLC master e stringhe di ingresso/uscita ASCII.
XXMIT
*: READ_STS_QX e WRITE_CMD_QX fanno parte della libreria di gestione degli I/O (famiglia Scambi espliciti)
(vedi EcoStruxure ™ Control Expert, Gestione I/O, Libreria dei blocchi funzione)
1: le funzioni di comunicazione READ_REG e WRITE_REG vengono avviate alla comparsa di un fronte sull'ingresso REG . La comunicazione viene avviata quando REG è impostato a 1; quindi REG deve essere resettato (0) e impostato nuovamente a 1 per riavviare la comunicazione.
2: GET_TS_EVT_Q fa parte della libreria di sistema (famiglia SysClock (vedi EcoStruxure ™ Control Expert, sistema, Libreria dei blocchi funzione)).
Funzioni Utility
Queste funzioni sono comuni alle CPU di fascia bassa e di fascia alta e sono funzioni sincrone. Una funzione è definita sincrona quando viene completata nel task della CPU che l'ha attivata.
Ruoli delle funzioni di comunicazione:
Funzione
ADDMX
ModbusP_ADDR
SYMAX_IP_ADDR
TCP_IP_ADDR
Ruolo
Conversione di una stringa di caratteri (rispettando la sintassi degli indirizzi di dispositivi di Control Expert) in un array di interi per gestire i moduli di collegamento seriale Modicon X80 in una derivazione di I/O Ethernet
Conversione di un indirizzo Modbus Plus in un indirizzo che può essere usato direttamente dalle funzioni di comunicazione
Conversione di un indirizzo SYMAX/IP in un indirizzo che può essere utilizzato direttamente dalle funzioni di comunicazione
Conversione di un indirizzo TCP/IP in un indirizzo che può essere utilizzato direttamente dalle funzioni di comunicazione
56 33003682.24
Funzionamento degli EF di comunicazione
Informazioni generali sulle funzioni di comunicazione M340
comunicazione
Panoramica
Questa sezione descrive il funzionamento e la gestione delle funzioni di comunicazione delle CPU M340 .
Funzioni di comunicazione sulle CPU M340
Regole per l'uso delle funzioni di comunicazione sulle CPU M340
Le CPU M340 utilizzano
funzioni di comunicazione EF e di tipo procedura, pagina 35 .
Funzioni di comunicazione pre-esistenti disponibili sulle CPU
M340
Ruolo delle funzioni di comunicazione precedenti:
Nome
DATA_EXCH
INPUT_BYTE
INPUT_CHAR
PRINT_CHAR
READ_VAR
SEND_EMAIL
WRITE_VAR
Ruolo
Trasmissione o ricezione dei dati.
Ricezione di un array di byte su un collegamento in modalità caratteri di un modulo BMX
NOM inserito in un rack locale o collegato a un canale di comunicazione integrato nella CPU.
Ricezione di una stringa di caratteri su un collegamento in modalità caratteri di un modulo
BMX NOM inserito in un rack locale o collegato a un canale di comunicazione integrato nella
CPU.
Invio di una stringa di caratteri su un collegamento in modalità caratteri di un modulo BMX
NOM inserito in un rack locale o collegato a un canale di comunicazione integrato nella CPU.
Lettura del valore di uno o più oggetti di linguaggio tramite un modulo di comunicazione inserito in un rack locale o collegato a un canale di comunicazione integrato nella CPU.
Invio di un messaggio e-mail su una porta Ethernet di un modulo di comunicazione inserito in un rack locale.
Scrittura del valore di uno o più oggetti di linguaggio tramite un modulo di comunicazione inserito in un rack locale o collegato a un canale di comunicazione integrato nella CPU.
33003682.24
57
comunicazione
Funzionamento degli EF di comunicazione
Altre funzioni di comunicazione disponibili sulle CPU M340
Ruolo delle altre funzioni di comunicazione:
Nome
ETH_PORT_CTRL
Ruolo
Attivazione o disattivazione di un protocollo.
GET_TS_EVT_M (1) Recupero dei dati orodatati in un modulo Modicon BMX ERT 1604T inserito in un rack locale.
1: GET_TS_EVT_M fa parte della libreria di sistema (famiglia SysClock (vedi EcoStruxure ™ Control Expert, sistema, Libreria dei blocchi funzione)).
Funzioni di utility disponibili nelle CPU M340
Queste funzioni sono eseguite in modo sincrono. Una funzione è detta sincrona quando viene eseguita interamente durante il task CPU che l'ha attivata.
Ruolo delle funzioni di utility:
Nome
ADDM
CANCEL
Ruolo
Conversione di una stringa di caratteri in un indirizzo che può essere utilizzato direttamente dalle funzioni di comunicazione read_var , write_var , data_exch e print_char .
Interruzione di una funzione di comunicazione asincrona in corso.
NOTA: Un altro modo di annullare una funzione di comunicazione asincrona in corso è utilizzare il
bit di annullamento, pagina 40
dei parametri di gestione.
Informazioni generali sulle funzioni di comunicazione M580
Panoramica
Questa sezione descrive il funzionamento e la gestione delle funzioni di comunicazione delle CPU M580 .
58 33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Regole per l'uso delle funzioni di comunicazione delle
CPU M580
Panoramica
Le CPU M580 utilizzano entrambi i tipi di funzioni di comunicazione:
• EF e funzioni di tipo procedura
• Funzioni di tipo EFB
Per una descrizione generale della gestione delle funzioni di comunicazione in base al tipo, vedere
Gestione delle funzioni di comunicazione, pagina 36
.
Comunicazione con le derivazioni remote Ethernet
Se una funzione di comunicazione ***_MX viene utilizzata per eseguire scambi di comunicazione con derivazioni Ethernet, si raccomanda di testare lo stato della comunicazione della derivazione Ethernet prima di avviare la funzione di comunicazione.
Il completamento di una funzione di comunicazione indirizzata a una derivazione guasta può impiegare fino a 2 minuti e concludersi con uno stato di errore dovuto al ritardo del timeout transazione (il partner remoto non ha risposta entro il ritardo di timeout).
NOTA: L'esecuzione di altre funzioni di comunicazione può risultare rallentata se tutte le porte di comunicazione sono già utilizzate dalle funzioni di comunicazione. Informazioni di stato sono disponibili nel campo DROP_COM_HEALTH (vedi Modicon M580, Moduli
RIO, Guida di installazione e configurazione) del DDT dispositivo associato alla derivazione.
33003682.24
59
comunicazione
Funzionamento degli EF di comunicazione
Esempio d'uso dei parametri in FBD
Lo schema seguente in FBD illustra come ottenere le informazioni di stato del canale 1 di un modulo BMX NOM 0200 ubicato nel rack 0, slot 3 del numero di istanza derivazione 3 (il DDT associato potrebbe essere ad esempio: MOD_COM_3 o se si tiene il nome predefinito EIO2_d3_ r0_s3_NOM0200_3) all'indirizzo IP 192.168.10.84.
60 read_sts_en_3 deve essere impostato a 1.
Quando il blocco READ_STS_MX_3 non è attivo, viene avviato se la variabile read_sts_ enable_3 è impostata a 1 dall'utente e lo stato di comunicazione della derivazione è corretto. Ogni scansione successiva finché l'operazione viene conclusa correttamente
( DONE impostato a 1) o con errore rilevato ( ERROR impostato a 1).
Se l'operazione si conclude correttamente, le parole di stato del modulo possono essere sfruttate nelle variabili collegate al parametro STS del blocco. Se il collegamento di comunicazione con la derivazione è interrotto, MOD_COM_3.DROP_COM_HEALTH
passa a 0 e l'operazione correntemente attiva viene interrotta con il codice di errore 1001 hex. Se il pin ABORT non è collegato, il blocco viene eseguito finché scade il timeout transazione (15 s per le funzioni ***_MX) e termina con un errore con il codice di stato 3401 hex.
33003682.24
Funzionamento degli EF di comunicazione
Funzioni di comunicazione sulle CPU M580 comunicazione
Funzioni di comunicazione preesistenti disponibili sulle CPU
M580
Ruolo delle funzioni di comunicazione precedenti:
Nome
DATA_EXCH
INPUT_BYTE
INPUT_CHAR
PRINT_CHAR
READ_VAR
SEND_EMAIL
WRITE_VAR
Ruolo
Conclusione di qualsiasi richiesta (Modbus, Umas …) a qualsiasi slave Modbus tramite un modulo di comunicazione inserito in un rack locale o in una derivazione
EIO.
Ricezione di un array di byte su un collegamento in modalità caratteri BMX NOM inserito in un rack locale o una derivazione EIO.
Ricezione di una stringa di caratteri su un collegamento in modalità caratteri di un modulo BMX NOM in un rack locale o in una derivazione EIO.
Invio di una stringa di caratteri su un collegamento in modalità caratteri di un modulo BMX NOM inserito in un rack locale o una derivazione EIO.
Lettura del valore di uno o più oggetti di linguaggio tramite un modulo di comunicazione inserito in un rack locale o una derivazione EIO.
Invio di un messaggio e-mail attraverso la porta Ethernet di un modulo di comunicazione inserito in un rack locale (i moduli Ethernet non possono essere collegati in una derivazione EIO).
Scrittura del valore di uno o più oggetti di linguaggio tramite un modulo di comunicazione inserito in un rack locale o una derivazione EIO.
Altre funzioni di comunicazione disponibili sulle CPU M580
Altro ruolo delle funzioni di comunicazione:
Nome
ETH_PORT_CTRL
EthPort_Control_MX
GET_TS_EVT_M (1)
READ_PARAM_MX
READ_STS_MX (2)
(2) (3)
Ruolo
Attivazione o disattivazione di un protocollo.
Attivazione o disattivazione dei servizi Ethernet configurati.
Recupero dei dati orodatati in un modulo Modicon BMX ERT 1604T o BMX CRA
••••• inserito in un rack locale o in una derivazione EIO.
Lettura delle parole dei parametri di un modulo di I/O Modicon X80 inserito in un rack locale mediante esecuzione di uno scambio esplicito.
Lettura delle parole di stato di un modulo di I/O Modicon X80 inserito in un rack locale o in una derivazione EIO mediante esecuzione di uno scambio esplicito.
RESTORE_PARAM_MX (2)
(3)
Ripristino delle parole dei parametri di un modulo di I/O Modicon X80 inserito in un rack locale mediante esecuzione di uno scambio esplicito.
33003682.24
61
comunicazione
Funzionamento degli EF di comunicazione
Nome
SAVE_PARAM_MX
WRITE_CMD_MX
(2) (3)
(2)
WRITE_PARAM_MX (2) (3)
Ruolo
Salvataggio delle parole dei parametri di un modulo di I/O Modicon X80 inserito in un rack locale mediante esecuzione di uno scambio esplicito.
Invio di un comando a un modulo di I/O Modicon X80 inserito in un rack locale o in una derivazione EIO mediante esecuzione di uno scambio esplicito.
Scrittura delle parole dei parametri di un modulo di I/O Modicon X80 inserito in un rack locale mediante esecuzione di uno scambio esplicito.
1: GET_TS_EVT_M fa parte della libreria di sistema (famiglia SysClock (vedi EcoStruxure ™ Control Expert, sistema, Libreria dei blocchi funzione)).
2: READ_STS_MX , WRITE_CMD_MX , READ_PARAM_MX , WRITE_PARAM_MX , SAVE_PARAM_MX e
RESTORE_PARAM_MX fanno parte della libreria di gestione degli I/O (famiglia Scambi espliciti (vedi
EcoStruxure ™ Control Expert, Gestione I/O, Libreria dei blocchi funzione)).
3: READ_PARAM_MX , WRITE_PARAM_MX , SAVE_PARAM_MX e RESTORE_PARAM_MX possono solo essere usati con i moduli di I/O inseriti in un rack locale. Se viene eseguito un invio a un modulo su una derivazione EIO, viene restituito il codice di errore 16#2007 (Campo di rete non autorizzato sullo slave).
Funzioni di utility disponibili nelle CPU M580
Queste funzioni sono eseguite in modo sincrono. Una funzione è detta sincrona quando viene eseguita interamente durante il task CPU che l'ha attivata.
Ruolo delle funzioni di utility:
Nome
ADDM
ADDMX
CANCEL
Ruolo
Conversione di una stringa di caratteri in un indirizzo che può essere usato direttamente dalle funzioni di comunicazione.
Conversione di una stringa di caratteri che rispetta la sintassi degli indirizzi di Control Expert in un array di interi.
Interrompere una funzione di comunicazione asincrona in corso.
NOTA: Un altro modo di annullare una funzione di comunicazione asincrona in corso è utilizzare il
bit di annullamento, pagina 40
dei parametri di gestione.
NOTA:
• Per indirizzare un modulo su una derivazione EIO, la stringa di indirizzo da utilizzare con ADDMX deve essere 0.0.3 {xx.xx.xx.xx} (3: il canale 3 della CPU corrisponde alla porta integrata Ethernet della CPU, xx.xx.xx.xx corrisponde all'indirizzo IP della derivazione).
• Per indirizzare un modulo in un rack locale con funzioni ***_MX, la stringa di indirizzo deve essere 0.0.10 (indirizzo del server principale della CPU).
62 33003682.24
Funzionamento degli EF di comunicazione
Informazioni generali sulle funzioni di comunicazione Momentum
comunicazione
Panoramica
Questa sezione descrive il funzionamento e la gestione delle funzioni di comunicazione delle CPU Momentum .
Funzioni di comunicazione sui PLC Momentum
Regole per l'uso delle funzioni di comunicazione di tipo EFB o
DFB sui PLC Momentum
I PLC Momentum utilizzano le funzioni di comunicazione di tipo EFB. Per maggiori dettagli sulla gestione di queste funzioni di comunicazione, vedere la sezione
Gestione delle funzioni di comunicazione, pagina 34 .
Funzioni di comunicazione disponibili sui PLC Momentum
Ruoli della funzione di comunicazione:
Funzione
MBP_MSTR
XMIT
XXMIT
Ruolo
Esecuzione di varie operazioni di comunicazione di rete su Modbus Plus, TCP/IP-
Ethernet.
Messaggi Modbus dal PLC master e stringhe di ingresso/uscita ASCII.
Messaggi Modbus dal PLC master e stringhe di ingresso/uscita ASCII.
Informazioni generali sulle funzioni client OPC UA
Panoramica
Questo capitolo presenta le informazioni per le funzioni client OPC UA.
33003682.24
63
comunicazione
Funzionamento degli EF di comunicazione
Definizione del blocco UA PLCopen
I blocchi PLCopen sono definiti per supportare la comunicazione client UA in un programma
IEC1131-3. UA_Connect crea una connessione di trasporto per una sessione OPC UA. UA_
Connect deve essere eseguito una volta per ogni connessione. UA_
NamespaceGetIndexList viene eseguito una volta per ogni spazio dei nomi. Il NodeHdl per un nodo specifico viene recuperato una volta. UA_ReadList e UA_WriteList possono essere eseguiti quanto necessario nell'applicazione e consentito dal sistema (dato il tempo di risposta globale del server OPC UA). Al termine della comunicazione, l'handle del nodo non
è più richiesto e viene rilasciato tramite UA_NodeReleaseHandleList per tutti gli handle pertinenti. L'handle di connessione viene rilasciato tramite UA_Disconnect.
64
Un elenco viene gestito come array del tipo di base correlato (ad esempio UANodeID o
UANodeAdditionalInfo). Inoltre, una lunghezza specificata contiene il numero di elementi nell'array. Anche se è possibile collegare più array al blocco funzione (ad esempio, variabili e handle del nodo nel caso di UA_ReadList) esiste una sola lunghezza perché tutti gli array hanno lo stesso numero di elementi da elaborare.
UA_NodeGetHandleList restituisce un array UANodeHdl. Questa chiamata non verifica che l'UANodeID specificato sia valido.
UANodeID viene verificato solo per determinare se è strutturalmente corretto (ad esempio, non è uno dei valori menzionati di UAIdentifierType). Se non è corretto, viene rilevato un errore e viene restituito l'elemento di errore corrispondente (NodeErrorIDs). L'array di uscita di UA_NodeGetHandleList può essere utilizzato invariato per le successive chiamate ai blocchi funzione UA_ReadList, UA_WriteList, ma l'implementazione di controllo controlla l'elemento di errore corrispondente (NodeErrorIDs). Se viene rilevato un errore generale, nessuna uscita verrà modificata dall'implementazione sottostante.
33003682.24
Funzionamento degli EF di comunicazione
comunicazione
Modalità monitoraggio UA
La modalità di monitoraggio consente di leggere i valori delle variabili del server. Sostituisce il metodo di raggruppamento chiamando periodicamente il metodo UA_ReadList.
I seguenti blocchi funzione consentono di creare sottoscrizioni e aggiungere elementi monitorati a questa sottoscrizione.
• Creazione di una sottoscrizione: Per creare una sottoscrizione, è necessario un handle di connessione valido. L'handle di connessione viene acquisito una sola volta tramite UA_Connect. UA_SubscriptionCreate crea una sottoscrizione e deve essere chiamata per ogni sottoscrizione necessaria. L'oggetto SubscriptionHdl applicabile viene restituito al completamento dell'esecuzione del blocco funzione UA_
SubscriptionCreate.
• Monitoraggio di un elemento: Per monitorare un elemento, è necessario un NodeHdl per tale nodo specifico. Di conseguenza, devono essere chiamati i UA_
SubscriptionCreate e UA_NodeGetHandleList applicabili prima di chiamare il relativo
UA_MonitoredItemAddList.
• Aggiunta di elementi: UA_MonitoredItemAddList consente di aggiungere elementi a una sottoscrizione identificata da SubscriptionHdl. Gli elementi da monitorare sono assegnati a questo FB sotto forma di NodeHdl.
• Chiusura della sottoscrizione: Al termine della comunicazione, ricordarsi di eliminare la sottoscrizione. Rilasciare NodeHdl prima di disconnettersi. Se non si chiama UA_
SubscriptionDelete, la sottoscrizione continuerà a funzionare anche se viene chiamato
UA_NodeReleaseHandleList.
33003682.24
65
comunicazione
Funzionamento degli EF di comunicazione
Modalità di monitoraggio
Le modalità di monitoraggio invertono l'interazione di comunicazione: il programma di controllo avvia la comunicazione, ma questo provoca il push dei valori dal server OPC UA al programma di controllo.
Come illustrato nello schema precedente, è necessario configurare sottoscrizioni ed elementi monitorati.
Esistono due modalità per recuperare i valori più correnti nel programma di controllo:
• Sincronizzazione controller:
Utilizzo del blocco funzione UA_MonitoredItemAddList con UAMonitoringSyncMode
(UAMS_ControllerSync): i valori aggiornati vengono recuperati al termine della chiamata UA_MonitoredItemOperateList. Ciò significa che la logica del programma di controllo determina quando vengono aggiornati i valori. Se questo blocco non viene chiamato, non verrà fornito alcun aggiornamento al programma di controllo.
La gestione degli elementi e delle sottoscrizioni monitorati attualmente specificata si basa sul collegamento di un nodo UA (identificato da NodeHdl) a una variabile del PLC
(definita nel programma PLC). Chiamando il blocco funzione UA_
MonitoredItemOperateList, i valori forniti dal server UA vengono trasferiti nelle variabili
PLC.
• Sincronizzazione firmware:
Il firmware aggiorna internamente i valori nella memoria del controller.
Dopo aver aggiunto gli elementi monitorati, il programma Control può chiamare UA_
SubscriptionProcessed per sapere se sono stati modificati dei valori. Tuttavia, il programma Control potrebbe non avere alcun controllo su quando vengono distribuiti gli aggiornamenti nella memoria del programma Control. Nella sincronizzazione firmware, l'aggiornamento viene eseguito all'inizio del task MAST.
Sono disponibili entrambe le modalità di monitoraggio: sincronizzazione controller e sincronizzazione firmware.
In generale, un valore QueueSize maggiore della dimensione dell'array della variabile del
PLC restituisce un errore rilevato visualizzato nei corrispondenti NodeErrorID in UA_
MonitoredItemAddList immediatamente dopo il ripristino della chiamata. Un overflow (valori persi) viene segnalato nei corrispondenti NodeQualityID e i valori minimi persi vengono segnalati nel corrispondente MinLostValueCount.
In generale, un valore QueueSize maggiore della dimensione dell'array della variabile del
PLC restituisce un errore rilevato visualizzato nei corrispondenti NodeErrorID in UA_
MonitoredItemAddList immediatamente dopo il ripristino della chiamata. Un overflow (valori persi) viene segnalato nei corrispondenti NodeQualityID e i valori minimi persi vengono segnalati nel corrispondente MinLostValueCount.
Il parametro QueueSize definito nella struttura UAMonitoringParameter può essere utilizzato per indicare la modalità di monitoraggio: Con la configurazione di QueueSize > 1
66 33003682.24
Funzionamento degli EF di comunicazione
comunicazione per evitare di perdere le modifiche ai dati, l'utente ha anche la responsabilità di recuperare i valori uno alla volta.
QueueSize viene quindi utilizzato per determinare la modalità di funzionamento nel modo seguente:
QueueSize > 0 con una coda di esempio di tale dimensione. Se '0', viene applicato
QueueSize '1'. Ciò significa che per un elemento monitorato, a livello locale e a livello del server, è possibile memorizzare altrettante modifiche ai dati di QueueSize. Se l'intervallo di pubblicazione è troppo grande, il server rimuove le modifiche apportate ai dati. Il client ignora le modifiche ai dati se il ciclo UA_MonitoredItemOperateList non è sufficiente. Il criterio meno recente è implicito.
QueueSize massimo supportato: 3.
Comportamento generale degli ingressi e delle uscite comuni
Questa sezione descrive il comportamento degli ingressi e delle uscite del blocco funzione
OPC UA.
Comportamento dei blocchi funzione con l'ingresso Execute
Il fronte di salita dell'ingresso Execute avvia l'esecuzione del blocco funzione. Il blocco funzione continua ad essere eseguito e l'uscita Busy è impostata a TRUE. Ulteriori fronti di salita sull'ingresso Execute vengono ignorati durante l'esecuzione del blocco funzione.
Al termine dell'esecuzione, le uscite Done o Error rimangono TRUE finché l'ingresso
Execute è impostato su FALSE. Se l'ingresso viene reimpostato prima che sia terminata l'esecuzione, le uscite Done o Error vengono impostate su TRUE per un ciclo.
33003682.24
67
comunicazione
Funzionamento degli EF di comunicazione
Comportamento del timeout
68
Ogni blocco ha un pin TimeOut che può essere parametrizzato. Questo è il tempo massimo di attesa per una risposta al server.
Quando viene generato TimeOut, il pin ERROR viene impostato a 1 e viene generato un errore specifico sul pin ErrorID E_TIMEOUT.
Per alcuni blocchi, ad esempio UA_ReadList, questo pin può essere utilizzato periodicamente per raggruppare il valore della variabile; oppure, ad esempio UA_WriteList, per scrivere ripetutamente un valore.
Inoltre, nel blocco di connessione all'interno di UASessionConnectInfo, esistono ulteriori parametri TimeOut:
• VendorSpecificParameter.OPCUARequestTimeOut: timeout di tutte le richieste OPCUA inviate tramite la connessione corrente; se 0 internamente il valore predefinito è 30s.
• SessionTimeout: definisce per quanto tempo la sessione durerà in assenza di connessione.
Vedere l'oggetto
UASessionConnectInfo, pagina 539
per ulteriori informazioni su
VendorSpecificParameter.OPCUARequestTimeOut e SessionTimeout.
Il timeout blocco non può essere utilizzato per tentare di ripetere immediatamente l'azione se viene attivato TimeOut. In questo caso, è possibile che la connessione al server sia stata persa (connessione via cavo interrotta e tempo di riparazione in corso, oppure il server è occupato da una generazione di modifiche sul PLC dietro un server BMENUA0100).
È necessario stimare l'ora di attività del server o l'ora di riparazione della rete e armonizzare di conseguenza i blocchi TimeOut e OPCUARequestTimeOut. Questi parametri possono essere configurati con lo stesso valore.
33003682.24
Funzionamento degli EF di comunicazione
Routing
Il client OPC UA può accedere al server UA solo dalla porta esterna del modulo
BMENUA0100 o dalle porte Ethernet integrate delle CPU.
comunicazione
Consumo di memoria dell'applicazione
I blocchi funzione OPC UA richiedono la creazione di strutture di variabili di grandi dimensioni. Molte di queste strutture possono essere impostate come costanti nell'Editor dati e utilizzate per configurare i blocchi.
L'uso di attributi costanti individua queste variabili nella memoria dell'applicazione e non nella memoria dati. L'area di memoria dell'applicazione è molto più grande dell'area di memoria dati.
L'esempio seguente presenta le strutture di array che è possibile creare per i tipi di dati derivati OPC UA utilizzati di frequente. Ogni array è costituito da:
• Nome struttura
• Dimensioni (in byte)
• È costante (BOOL che indica se l'elemento è una costante)
• Numero di istanze (il numero di istanze per questo elemento, in base alle esigenze dell'applicazione)
• Dimensione totale dei dati (quantità di memoria dati necessaria, se non vengono utilizzate costanti)
• Dimensioni totali dell'applicazione (quantità di memoria dell'applicazione richiesta, se le costanti non vengono utilizzate)
Questo esempio presuppone che siano necessarie 64 connessioni server e 128 nodi per ogni connessione (ovvero il numero di istanze UANodeID). Per descrivere 128 (4*32)
NodeID da leggere nel server UA indirizzato sono necessarie quattro (4) istanze di questo tipo.
Nome struttura
AUAMonitoredvariables
UASessionConnectInfo
AUANodeAdditionalInfo
AUANodeID
AUAMonitoringParameter
Dimensioni
È costante
(vedere
NOTA)
Numero di istanze
25100
1836
4016
8320
4016 x x x x
64
64
64
256
64
Dimensioni totali dati
0
0
1 606 400
0
0
Dimensioni totali dell'applicazione
0
117 504
257 024
2 129 920
257 024
33003682.24
69
comunicazione
Nome struttura Dimensioni
È costante
(vedere
NOTA)
Numero di istanze
Totale x
NOTA: X = una costante; vuoto = non una costante
Funzionamento degli EF di comunicazione
Dimensioni totali dati
1 606 400
Dimensioni totali dell'applicazione
2 761 472
70 33003682.24
comunicazione
Estesi
Contenuto della sezione
ADDM: Conversione degli indirizzi ............................................73
ADDMX: Conversione indirizzo .................................................80
ADDR: conversione di indirizzi ..................................................88
CANCEL: interruzione di uno scambio in corso ..........................91
CLOSE_TCP_CNX: Chiusura delle connessioni TCP .................95
CREAD_REG: Lettura continua dei registri ...............................99
CWRITE_REG: Scrittura continua dei registri........................... 106
DATA_EXCH: scambio di dati tra applicazioni .......................... 113
EXCH_QX: Scambio dati tra applicazioni sul bus EIO ............... 134
INPUT_BYTE: ricezione di stringhe di caratteri......................... 139
INPUT_CHAR: ricezione di stringhe di caratteri........................ 144
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus
EIO ....................................................................................... 154
MBP_MSTR: Modbus Plus Master .......................................... 159
ModbusP_ADDR: Indirizzo Modbus Plus ................................. 207
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri.............. 212
OUT_IN_MBUS: Funzione di comunicazione Modbus .............. 220
PRINT_CHAR: Invio di stringhe di caratteri .............................. 248
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus
EIO ....................................................................................... 257
RCV_TLG: Ricezione di telegrammi ........................................ 262
READ_ASYN: Lettura dei dati in modo asincrono ..................... 267
READ_DDT: lettura di DDT ..................................................... 270
READ_GDATA: Lettura dei dati globali Modbus Plus ................ 275
READ_REG: Lettura registro .................................................. 278
READ_REG_QX: Registro lettura sul bus EIO ......................... 286
READ_REMOTE: lettura di variabili remote ............................. 290
READ_SDO: lettura oggetto dati di servizio.............................. 298
READ_VAR: Lettura di variabili ............................................... 303
SEND_EMAIL: invio di messaggi e-mail .................................. 324
SEND_REQ: Invio di richieste................................................. 328
SEND_TLG: Invio di telegrammi ............................................. 345
SYMAX_IP_ADDR: Indirizzo IP SY/MAX ................................. 350
TCP_IP_ADDR: Indirizzo TCP/IP ............................................ 354
UNITE_SERVER: Server immediato ....................................... 359
WRITE_ASYN: Scrittura asincrona dei dati .............................. 364
WRITE_GDATA: Scrittura di Dati globali Modbus Plus .............. 369
WRITE_REG: Scrittura registro............................................... 372
33003682.24
71
comunicazione
WRITE_REG_QX: Registro scrittura sul bus EIO ..................... 380
WRITE_REMOTE: scrittura di variabili remote ......................... 384
WRITE_SDO: scrittura oggetto dati di servizio ......................... 392
WRITE_VAR: Scrittura di variabili............................................ 397
XMIT: Transmit ...................................................................... 412
XXMIT: Trasmissione ............................................................. 433
Panoramica
Questa sezione descrive le funzioni elementari e i blocchi funzione elementari della famiglia
Estesi .
72 33003682.24
ADDM: Conversione degli indirizzi
ADDM: Conversione degli indirizzi
comunicazione
Contenuto del capitolo
Descrizione .............................................................................73
Argomento del capitolo
Questo capitolo descrive la funzione di conversione degli indirizzi ADDM .
Descrizione
Descrizione della funzione
La funzione ADDM è utilizzata per convertire una stringa di caratteri in un indirizzo che possa essere utilizzato direttamente dalle seguenti funzioni di comunicazione: READ_VAR , WRITE_
VAR , INPUT_CHAR , PRINT_CHAR , DATA_EXCH , SEND_EMAIL .
È possibile configurare anche i parametri supplementari EN ed ENO .
Rappresentazione FBD
33003682.24
73
comunicazione
Rappresentazione LD
ADDM: Conversione degli indirizzi
Rappresentazione IL
LD Addr_String
ADDM
ST Addr_Array
Rappresentazione ST
Addr_Array := ADDM(Addr_String);
Descrizione dei parametri d'ingresso
La tabella seguente descrive il parametro di ingresso:
Parametro
IN
Tipo
Stringa di caratteri
Commento
Indirizzo del dispositivo sul bus o sulla rete.
L'ingresso è il concatenamento di tre elementi max. che possono assumere diversi valori.
Ogni elemento è opzionale:
74 33003682.24
ADDM: Conversione degli indirizzi
comunicazione
Porta di uscita usata localmente per raggiungere l'apparecchiatura di destinazione:
• r.m.c
• Netlink
NOTA: nel primo caso, il numero di canale c è opzionale
Apparecchiatura di destinazione
• {hostAddr}
• node
• {hostAddr}node
Servizio da realizzare nell'apparecchiatura di destinazione:
• SYS
• MBS
• SMTP
• TCP.MBS
• CON.CIP
• UNC.CIP
Definizioni:
• Netlink : nome della rete impostato nel campo Collegamento di rete del canale
Ethernet
• hostAddr : indirizzo IP dell'host che si vuole raggiungere.
• r : numero di rack del canale di comunicazione
• m : posizione del modulo del canale di comunicazione
• c : numero del canale di comunicazione
• node : nodo Modbus o CANopen dietro al gateway (gateway identificato con hostAddr )
• SYS : per l'indirizzamento del server di sistema
• MBS : per l'indirizzamento del server di sistema Modbus (come SYS )
• SMTP : per l'indirizzamento del server SMTP
• TCP.MBS
: per l'indirizzamento del server TCP Modbus
• CON.CIP
: per l'indirizzamento di un'apparecchiatura collegata via Ethernet/IP
• UNC.CIP
: per l'indirizzamento di un'apparecchiatura non collegata via Ethernet/IP
NOTA: Per la CPU Modicon M580, per configurare la comunicazione attraverso la porta
Ethernet della CPU, r =0, m =0 e c =3.
Elenco di diversi casi applicativi:
Sintassi indirizzo
’{hostAddr}’
’{hostAddr}SYS’
’{hostAddr}TCP.MBS’
’Netlink{hostAddr}’
’Netlink{hostAddr}SYS’
’Netlink{hostAddr}TCP.MBS’
Commento
Per accedere all' hostAddr attraverso il più vicino Netlink configurato dalla CPU.
Esempio: ADDM(’{192.168.2.3}TCP.MBS’) .
Per accedere a hostAddr tramite la rete Ethernet Netlink Control
Expert definita nel browser di progetto Comunicazione > Reti .
Esempio: ADDM(’Ethernet_1{192.168.2.3}SYS’) .
33003682.24
75
comunicazione
ADDM: Conversione degli indirizzi
Sintassi indirizzo
’Netlink{hostAddr}node’
’r.m.c{hostAddr}’
’r.m.c{hostAddr}SYS’
’r.m.c{hostAddr}TCP.MBS’
’r.m.c{hostAddr}node’
Commento per accedere al nodo dietro il gateway ’Netlink{hostAddr}’ , si può utilizzare un ID server del Modbus TCP o uno slave Modbus seriale gestito dal gateway.
Esempio: ADDM(’Ethernet_1{192.168.2.3}255’) .
Per accedere a
Esempio: hostAddr del modulo Ethernet.
in funzione del rack, del modulo e del canale
ADDM(’0.0.3{192.168.2.3}’) .
’r.m.c{hostAddr}CON.CIP’
’r.m.c{hostAddr}UNC.CIP’
’r.m.c’
’r.m.c.SYS’
’r.m.c.e’
’r.m.c.e.MBS’
Caso specifico per una CPU M340 con CANopen integrato: ’0.0.2.
e’ per accedere al nodo dietro il gateway ’r.m.c{hostAddr}’ , si può utilizzare un ID server del Modbus TCP o uno slave Modbus seriale gestito dal gateway.
Esempio: ADDM(’0.0.3{192.168.2.3}255’) .
Per accedere a un'apparecchiatura attraverso una rete Ethernet/IP, si utilizza il suffisso CON.CIP
se l'apparecchiatura è collegata (viene sempre stabilito un collegamento con la stessa) e il suffisso UCN.CIP
se non è collegata.
Esempio 1: ADDM(’0.0.3{192.168.20.34}CON.CIP’) per una CPU
Modicon M580 Ethernet.
Esempio 2: ADDM(’0.4.0{192.168.20.34}CON.CIP’) per un
Modicon M340 con un modulo BMX NOC nello slot 4 del rack 0.
Per accedere al sistema di canali di un canale Modbus o per inviare dati attraverso un collegamento in modalità carattere.
NOTA: c = 0 o 1.
Esempio: ADDM(’1.5.0.SYS’) .
Per accedere al server di apparecchiatura slave seriale Modbus.
NOTA: c = 0 o 1, e = da 1 a 247.
Esempio: ADDM(’1.5.1.54.MBS’) .
Per accedere a un server slave CANopen e .
NOTA: e =da 1 a 127.
Esempio: ADDM(’10.0.2.67’) .
76 33003682.24
ADDM: Conversione degli indirizzi
Esempi con Modicon M340: comunicazione
Nel seguente esempio, il terzo elemento della sintassi non è utilizzato:
Dispositivo da indirizzare
Dispositivo #4 su collegamento CANopen
Stampante ASCII su collegamento seriale CPU
Dispositivo il cui indirizzo è 192.168.100.10 su un collegamento NOE Ethernet
Dispositivo Modbus #4 dietro il gateway Ethernet il cui indirizzo è 192.168.100.18 sul collegamento NOE Ethernet
Sintassi ADDM
ADDM('0.0.2.4')
ADDM('0.0.0')
ADDM('0.3.0{192.168.100.10}')
ADDM('Ethernet_1{192.168.100.10}')
ADDM('0.3.0{192.168.100.18}4')
ADDM('Ethernet_1{192.168.100.18}
4')
Per ulteriori informazioni, fare riferimento alla panoramica Indirizzamento dei PLC M340
(vedi Servizi e architetture di comunicazione, Manuale di riferimento) del manuale utente delle architetture di comunicazione.
33003682.24
77
comunicazione
ADDM: Conversione degli indirizzi
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPLICAZIONE
Non utilizzare parametri di indirizzo errati. Ad esempio, non impostare un parametro di indirizzo che non corrisponda all'apparecchiatura di destinazione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Descrizione del parametro di uscita
La tabella seguente descrive il parametro di uscita:
Parametro
OUT
Tipo
ADDM_TYPE
Array di 8 interi
Commento
Array che rappresenta l'indirizzo di un dispositivo. Questo parametro può essere usato come un parametro d'ingresso per diverse funzioni di comunicazione.
Il blocco ADDM analizza la sintassi della stringa di indirizzamento (parametro IN) e pone il risultato in un array composto da 8 valori interi singoli che definiscono l'indirizzo di destinazione. L'indirizzo di destinazione può essere fornito dal parametro OUT della funzione ADDM o direttamente da un array di 8 oggetti INT. Tuttavia, si raccomanda di utilizzare la funzione ADDM per indirizzare un EF di comunicazione.
La struttura dell'indirizzo di destinazione è il seguente:
Campo
Type
ClientID
Rack
Slot
Channel
ProtId
AddrLen
Byte
Byte
Byte
Byte
Dimensioni
Byte
Byte
Byte
Valore
Riservato.
Riservato.
Numero di slot del rack.
Numero di slot del modulo.
Numero di canale.
Riservato. 0 per Modbus.
Questo byte può avere i seguenti valori:
• valore 0 se il modulo o il server del canale è indirizzato (non viene utilizzato né UnitID né AddrExt )
• valore 1 se è specificato il numero del dispositivo
• il valore >1 se è utilizzato anche AddrExt
78 33003682.24
ADDM: Conversione degli indirizzi
comunicazione
Campo
UnitId
AddrExt
Dimensioni
Byte
4 valori interi
Valore
Numero dispositivo, ad esempio dispositivo Modbus.
Riservato. Utilizzato per decodificare le informazioni aggiuntive sull'indirizzo per gli indirizzi TCP/IP.
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
Non modificare i parametri riservati.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
33003682.24
79
comunicazione
ADDMX: Conversione indirizzo
Contenuto del capitolo
Descrizione .............................................................................80
Argomento del capitolo
Questo capitolo descrive la stringa ADDMX che punta all'array della funzione di conversione di indirizzi formati da numeri interi.
Descrizione
Descrizione della funzione
La funzione ADDMX Control Expert permette di convertire una stringa di caratteri che rispetta la sintassi degli indirizzi dei dispositivi in un array di interi per gestire i moduli con collegamento seriale (e)X80 in una derivazione di I/O Ethernet.
La funzione ADDMX può essere utilizzata direttamente tramite le seguenti funzioni di comunicazione con una CPU Modicon M340 locale o un modulo remoto M340 in un sistema
Quantum:
• READ_STS_QX
• WRITE_CMD_QX
• EXCH_QX
• READ_REG_QX
• WRITE_REG_QX
• PRINT_CHAR_QX
La funzione ADDMX può essere utilizzata direttamente dalle seguenti funzioni di comunicazione in un sistema M580:
• READ_STS_MX
• WRITE_CMD_MX
• READ_PARAM_MX
• RESTORE_PARAM_MX
• SAVE_PARAM_MX
80 33003682.24
• WRITE_PARAM_MX
• INPUT_CHAR
• PRINT_CHAR
• READ_VAR
• WRITE_VAR
• INPUT_BYTE
• DATA_EXCH
• SEND_EMAIL
È possibile inoltre configurare i parametri supplementari EN ed ENO .
Rappresentazione FBD comunicazione
Rappresentazione LD
Rappresentazione IL
ADDMX (
IN := InputADDMX
)
33003682.24
81
comunicazione
ST OutputADDMX
Rappresentazione ST
OutputADDMX := ADDMX (IN := InputADDMX);
Descrizione dei parametri
La tabella seguente descrive il parametro di ingresso:
Parametro
IN
Tipo
Stringa di caratteri
Commento
Stringa che soddisfa la sintassi degli indirizzi dei dispositiviControl
Expert contenente il percorso dal modulo CPU al modulo della derivazione EIO e il percorso all'interno del modulo di derivazione
EIO per raggiungere il modulo di destinazione. Ogni percorso è separato dai caratteri \\ all'interno della stringa.
Per indirizzare un modulo BMX CRA 312 •0 o BME CRA 312 •0 direttamente con il proprio indirizzo IP, il parametro IN assume uno dei 2 seguenti formati:
• 'r0.s0.ch0.{ip.ip.ip.ip}'
• 'r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS'
Per indirizzare un server o uno slave Modbus con il protocollo Modbus (vedi Servizi e architetture di comunicazione, Manuale di riferimento), il parametro IN assume uno dei seguenti 2 formati:
• 'r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS\\r1.s1.ch1.d'
• ‘r0.s0.ch0.{ip.ip.ip.ip}TCP.MBS\\r1.s1.ch1.d.MBS'
Descrizione dettagliata del contenuto della sintassi della stringa con sintassi degli indirizzi dei dispositivi Control Expert:
Campo r0.s0.ch0
{ip.ip.ip.ip}
TCP.MBS
Valore
L'indirizzo topologico del modulo Quantum CRP o Quantum NOE o della porta Ethernet
M580 che invierà la richiesta TCP/Modbus (rack, slot e numero di canale).
NOTA: In un rack Quantum: r0 = 1 e ch0 = 1.
NOTA: Per un M580: per configurare una comunicazione attraverso la porta Ethernet
CPU, impostare il numero di canale a 3 (0.0.3).
Modulo BMX CRA 312 00 o BMX CRA 312 10 con indirizzo ip.ip.ip.ip (protocollo TCP porta
502, protocollo IP predefinito e porta).
Opzionale, usato per indirizzare un server Modbus
82 33003682.24
Campo
\\ r1.s1.ch1.d
MBS comunicazione
Valore
Separatore
Rack del modulo server Modbus, slot, canale e numero di slave Modbus
A seconda della modalità di indirizzamento, i parametri possono essere utilizzati in parte come descritto: r1.s1
Modalità di indirizzamento server modulo: indirizzamento topologico del server del modulo in un rack con un modulo BMX CRA 312 10.
NOTA: Numero del primo rack Modicon M340 = 0 (r0 = 0).
r1.s1.ch1
Modalità di indirizzamento del server canale: indirizzo del server canale nel rack.
NOTA: Numero del primo canale Modicon M340 = 0 (ch1 = 0).
r1.s1.ch1.d
Modalità di indirizzamento slave Modbus: indirizzo dello slave Modbus n° d, che utilizza il canale ch1 Modbus Master da un modulo NOM situato in un rack con un modulo BMX CRA 312 10.
Optional. Per indirizzare un server Modbus se il modulo NOM non è un master Modbus.
33003682.24
83
comunicazione
Esempi di derivazione Quantum:
84
Dispositivo da indirizzare
Server modulo della derivazione num. 5 CRA
Sintassi ADDMX
ADDMX('1.4.1{192.168.100.31}SYS
Server modulo di BMX NOM nella derivazione num. 5 ADDMX('1.4.1{192.168.100.31}\\0.3')
Dispositivo Modbus num. 15 sul collegamento seriale di BMX NOM nella derivazione num. 5
ADDMX('1.4.1{192.168.100.31}\\0.3.1.15')
33003682.24
Esempi di derivazione M580: comunicazione
Dispositivo da indirizzare
Server modulo della derivazione num. 5 CRA
Sintassi ADDMX
ADDMX('0.0.3{192.168.100.31}SYS
Server modulo di BMX NOM nella derivazione num. 5 ADDMX('0.0.3{192.168.100.31}\\0.1')
Dispositivo Modbus num. 15 sul collegamento seriale di BMX NOM nella derivazione num. 5
ADDMX('0.0.3{192.168.100.31}\\0.1.1.15')
La tabella seguente descrive il parametro di uscita:
33003682.24
85
comunicazione
86
Parametro
OUT
Tipo
ANY_ARRAY_
INT
Commento
Array contenente almeno 2 array ADDM_TYPE . Ogni array ADDM_TYPE rappresenta l'indirizzo di un dispositivo (maggiori dettagli forniti di seguito).
Questo parametro può essere usato come un parametro d'ingresso per diverse funzioni di comunicazione.
Il blocco ADDMX analizza la sintassi della stringa di indirizzamento (parametro IN ) e colloca il risultato in un array di array che definisce l'indirizzo di destinazione. L'indirizzo di destinazione può essere fornito dal parametro OUT della funzione ADDMX o direttamente da un array di array (n x 8 oggetti INT). Tuttavia, si raccomanda fortemente di utilizzare la funzione ADDMX per indirizzare un EF di comunicazione.
Descrizione dettagliata dell'array ADDM_TYPE :
Campo
Type
ClientID
Rack
Slot
Channel
ProtId
AddrLen
UnitId
AddrExt
Dimensioni
1 byte
1 byte
1 byte
1 byte
1 byte
1 byte
Valore
1 byte
1 byte
Array[7] riservato (2)
0 se non specificato numero rack del modulo numero slot del modulo numero del canale all'interno del modulo
Questo byte può avere i seguenti valori:
• 0: protocollo Modbus
• 2: protocollo utente
• 3: SMTP
Questo byte può avere i seguenti valori:
• 0: nessun campo opzionale
• 1: contenuto indirizzo Modbus
• >1: contenuto dell'indirizzo Ethernet (è utilizzato AddrExt)
Opzionale: indirizzo del dispositivo o UNIT-ID
Opzionale: estensione dell'indirizzo di destinazione Ethernet
AVVERTIMENTO
FUNZIONAMENTO ANOMALO DELL'APPLICAZIONE
Non modificare i parametri riservati.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
33003682.24
comunicazione
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPLICAZIONE
Non utilizzare parametri di indirizzo errati. Ad esempio, non impostare un parametro di indirizzo che non corrisponda all'apparecchiatura di destinazione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
33003682.24
87
comunicazione
ADDR: conversione di indirizzi
ADDR: conversione di indirizzi
Contenuto del capitolo
Descrizione .............................................................................88
Argomento del capitolo
Questo capitolo descrive la funzione di conversione degli indirizzi ADDR .
Descrizione
Descrizione della funzione
La funzione ADDR viene utilizzata per convertire una stringa di caratteri in un indirizzo che possa essere utilizzato direttamente dalle funzioni di comunicazione.
È possibile configurare anche i parametri EN ed ENO .
Rappresentazione FBD
Rappresentazione:
88 33003682.24
ADDR: conversione di indirizzi
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
LD Addr_String
ADDR
ST Addr_Array
Rappresentazione ST
Rappresentazione:
Addr_Array := ADDR(Addr_String);
Descrizione dei parametri
Nella tabella seguente sono descritti i parametri d'ingresso:
Parametro
IN
Tipo
STRING
Commento
Variabile di tipo stringa di caratteri rappresentante l'indirizzo del dispositivo su un bus o una rete.
Esempi : ‘{5.6}SYS’, ‘{1.2}0.4.5.2’
Nella tabella seguente vengono descritti i parametri d’uscita:
33003682.24
89
comunicazione
ADDR: conversione di indirizzi
Parametro
OUT
Tipo
ADDR_TYPE oppure
ARRAY[0..5] OF INT
Commento
Allineamento di 6 numeri interi che rappresentano l'indirizzo
Addr_String .
Addr_Array può essere utilizzato direttamente come primo parametro d'ingresso degli EF di comunicazione.
ATTENZIONE
FUNZIONAMENTO ANOMALO DELL'APPLICAZIONE
Non utilizzare parametri di indirizzo sbagliati. Ad esempio, non inviare un parametro d'indirizzo che non corrisponde all'apparecchiatura di destinazione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
90 33003682.24
CANCEL: interruzione di uno scambio in corso
comunicazione
CANCEL: interruzione di uno scambio in corso
Contenuto del capitolo
Descrizione .............................................................................91
Esempio di annullamento di uno scambio ..................................93
Argomento del capitolo
Questo capitolo descrive la funzione CANCEL .
Descrizione
Descrizione della funzione
La funzione CANCEL consente di interrompere una funzione di comunicazione asincrona in corso. Il numero di scambio assegnato a ogni comunicazione può essere usato per identificare la funzione che deve essere interrotta.
Il tempo che intercorre tra la richiesta della funzione CANCEL e l'azione CANCEL dipende dal numero di funzioni di comunicazione in corso. L'uso di una funzione CANCEL significa che per tutti i canali e gli EF:
• Le funzioni di comunicazione asincrona in corso sono annullate.
• I frame dedicati bufferizzati in precedenza con la funzione CANCEL possono essere inviati.
NOTA: In Modalità caratteri, le funzioni elementari assegnate INPUT_CHAR , INPUT_
BYTE e/o OUT_IN_CHAR in corso vengono annullate e il canale del collegamento seriale asincrono associato viene sbloccato se è in attesa dei criteri di terminazione.
NOTA: L'esecuzione di questa funzione è sincrona con l'esecuzione del programma del
PLC (la funzione di comunicazione viene interrotta nel ciclo del PLC durante il quale era eseguita la funzione CANCEL ).
È possibile configurare i parametri aggiuntivi EN ed ENO .
33003682.24
91
comunicazione
CANCEL: interruzione di uno scambio in corso
NOTA: L'annullamento di uno scambio agisce a livello dell'applicazione, ma non a livello della porta di comunicazione fisica. Dopo che una funzione di comunicazione è stata avviata, lo scambio viene gestito a livello della porta di comunicazione.
L'annullamento di una funzione di comunicazione a livello dell'applicazione significa che il bit di Attività viene azzerato, nel Report viene scritto il valore 2 e viene emesso il numero di scambio. Se infine a livello della porta viene ricevuta una risposta alla richiesta dello scambio, questa non può più essere presa in considerazione a livello dell'applicazione.
Allo stesso modo, l'evento di Timeout della funzione di comunicazione non interrompe i tentativi di comunicazione con il modulo. Questo può accadere quando la rete è lenta e/ o di bassa qualità e provoca continue ritrasmissioni. In situazioni simili, occorre assicurare coerenza tra il Timeout a livello EF e i Timeout dei protocolli configurati a livello del modulo.
Rappresentazione FBD
Rappresentazione:
Rappresentazione Ladder
Rappresentazione:
Rappresentazione IL
Rappresentazione:
92 33003682.24
CANCEL: interruzione di uno scambio in corso
LD Exchange_Num
CANCEL
Rapporto ST comunicazione
Rappresentazione ST
Rappresentazione:
CANCEL(Exchange_Num, Report);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
NUM
Tipo
INT
Commento
Questo parametro specifica il numero dello scambio la cui esecuzione deve essere interrotta.
La tabella seguente descrive i parametri d'uscita:
Parametro
CR
Tipo
INT
Commento
A questo rapporto di operazione viene assegnato uno dei due valori seguenti:
• 16#00: operazione corretta. La comunicazione viene interrotta, il bit di attività della funzione interrotta viene azzerato e al rapporto viene assegnato il valore 2.
• 16#0C: numero di scambio non valido.
Esempio di annullamento di uno scambio
In breve
Questo esempio descrive l'annullamento di uno scambio eseguito con la funzione OUT_IN_
CHAR .
Quando lo scambio viene avviato, gli viene assegnato un numero univoco. Questo numero resta valido fino alla fine dello scambio.
La funzione CANCEL utilizza questo numero per interrompere lo scambio cui è assegnata.
33003682.24
93
comunicazione
CANCEL: interruzione di uno scambio in corso
Programmazione della funzione
OUT_IN_CHAR
Programmazione in ST:
IF RE(%I0.3.8) AND NOT %MW170.0 THEN
(* inizializzazione dei dati da inviare *)
%MW173 := 10;
(* funzione di comunicazione *)
OUT_IN_CHAR(ADDR(‘{20.5}0.0.0.SYS’),1,Str_Out,Str_In,%MW170:4);
END_IF;
Programmazione della funzione
CANCEL
Programmazione in ST:
%MW180 := SHRZ_INT(%MW170,8);
IF RE(%I0.3.9) THEN
CANCEL(%MW180,%MW185);
END_IF;
La funzione CANCEL comprende due parametri:
• sull'ingresso: il numero dello scambio da annullare
• sull'uscita: il report
È necessario inizializzare il primo parametro con il numero dello scambio da annullare.
Questo numero è contenuto nel byte più significativo della prima parola della tabella di gestione. Nel nostro esempio è il byte più significativo di %MW170 . Prima di inviare la funzione CANCEL è necessario generare uno scorrimento di 8 bit in modo da ripristinare gli otto bit più significativi di %MW170 .
Parametri della richiesta:
Parametri
%MW180
%MW185
Descrizione
Il bit meno significativo contiene il numero dello scambio da annullare.
NOTA : il byte più significativo deve essere zero.
Rapporto di funzione.
94 33003682.24
CLOSE_TCP_CNX: Chiusura delle connessioni TCP
CLOSE_TCP_CNX: Chiusura delle connessioni TCP
comunicazione
Contenuto del capitolo
Descrizione .............................................................................95
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione CLOSE_TCP_CNX .
Descrizione
Descrizione funzionale
Utilizzare il blocco funzione elementare CLOSE_TCP_CNX per chiudere le connessioni
TPC aperte.
NOTA:
• Con un modulo di comunicazione BMX NOE 01•0 nel rack locale:
◦ Il blocco funzione CLOSE_TCP_CNX è compatibile solo con firmware successivo a V3.20.
◦ Se il modulo utilizza firmware uguale o precedente a V3.20, compare un codice errore 16#3104, per indicare che il firmware del modulo non è aggiornato e non
è compatibile con il blocco funzione CLOSE_TCP_CNX.
• Il blocco funzione CLOSE_TCP_CNX non è compatibile con i processori BMX P34
•0•0• M340.
33003682.24
95
comunicazione
CLOSE_TCP_CNX: Chiusura delle connessioni TCP
Rappresentazione EFB
Questo è il blocco funzione elementare CLOSE_TCP_CNX:
Descrizione dei parametri
Le seguenti tabelle descrivono i parametri nel blocco funzione elementare CLOSE_TCP_
CNX.
Parametri di ingresso:
Parametro
ADR
TCPIP
Tipo di dati
ANY_ARRAY_
INT
STRING
Descrizione
Questo array contiene l'indirizzo dell'entità di destinazione dello scambio come risultato della funzione ADDM. Indica il modulo e il canale che gestiscono la connessione. Ad esempio, ADDM(0.3.0) rappresenta il canale
0 del modulo nello slot 3 del rack 0.
Questa stringa identifica la connessione TCP/IP chiusa in questo formato: ip1.ip2.ip3.ip4:port , dove port identifica la porta nella destinazione remota. (Non corrisponde alla porta locale utilizzata per la connessione). Se vengono aperte più connessioni con lo stesso IP:port remoto, tutte le connessioni vengono chiuse. Se port non è specificato, viene utilizzata la porta Modbus 502. NB: le connessioni aperte dal componente Modbus IO scanner non vengono influenzate e non possono essere chiuse dall'utente.
Parametri di ingresso/uscita:
96 33003682.24
CLOSE_TCP_CNX: Chiusura delle connessioni TCP
comunicazione
Parametro
GEST
Tipo di dati
ARRAY [0..3]
OF INT
Descrizione
Tabella di gestione scambio costituita dalle parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e composta da due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC e
Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e composta da due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms
• Parola di rango 4: una parola (gestita dal sistema da eliminare) che definisce la lunghezza dello scambio (per maggiori informazioni vedere la descrizione della
struttura dei parametri di gestione, pagina 39 .)
NOTA: Per CLOSE_TCP_CNX, il parametro di lunghezza nel rango 4 non viene specificato dall'utente. Immediatamente dopo l'esecuzione della logica, il bit di attività viene impostato a 0 e alla lunghezza viene assegnato il valore 2 (corrispondente alla lunghezza del valore CNX_STATUS restituito) se non viene rilevato nessun errore per la parola di rango 2. Altrimenti, il valore di lunghezza viene impostato a un codice di stato aggiuntivo nel caso di report operazioni 16#01 (richiesta non elaborata) o 16#02
(risposta errata). I codici di stato in questo campo corrispondono a una sottocategoria di possibili codici di parametri STATUS per gli
EFB di comunicazione con il parametro STATUS. I valori possibili per CLOSE_TCP_CNX includono 0x30ss, 0x31ss, 0x4001, e
0x4002. Vedere le descrizioni relative ai
codici di errore rilevati per il parametro STATUS, pagina 551
.
Parametri di uscita:
Parametro
CNX_STATUS
Tipo di dati word
Descrizione
Questa parola fornisce uno stato dettagliato del servizio dopo che esegue:
• 16#0000: Connessione TCP chiusa regolarmente.
• 16#0001: La connessione TCP non è valida (parametri IP/porta non validi).
• 16#0002: La connessione TCP non esiste o è già stata chiusa.
• 16#FFFF: Il servizio non è stato eseguito. Vedere il codice di stato indicato nella parola di report della tabella di gestione (GEST[1]).
33003682.24
97
comunicazione
CLOSE_TCP_CNX: Chiusura delle connessioni TCP
Utilizzo dell'EFB
Usare il blocco funzione elementare CLOSE_TCP_CNX:
Passo
1
2
3
4
5
Azione
Impostare l'indirizzo del canale di comunicazione che gestisce la connessione in ADR. (Usare il blocco ADDM per specificare questo indirizzo in un formato stringa esplicito.)
Specificare la connessione da chiudere nel parametro TCPIP.
Richiamare la funzione per avviare la comunicazione (con il pin di ingresso EN impostato a 1, se configurato).
Monitorare il bit di attività (nel parametro GEST) fino al completamento della comunicazione (il bit di attività è impostato a 0 dal sistema). Eseguire la funzione solo una volta per mantenere i valori di stato. La funzione non viene chiamata se il bit di attività è impostato a 0 (impostando il pin EN a
0, ad esempio).
Verificare la parola CNX_STATUS. Se CNX_STATUS = 16#FFFF, verificare il parametro di report in GEST[1].
98 33003682.24
CREAD_REG: Lettura continua dei registri
comunicazione
CREAD_REG: Lettura continua dei registri
Contenuto del capitolo
Descrizione .............................................................................99
Tipi di dati derivati .................................................................. 102
Modalità di funzione ............................................................... 104
Descrizione dei parametri ....................................................... 104
Introduzione
Questo capitolo descrive il blocco CREAD_REG .
Descrizione
Descrizione della funzione
Questo blocco funzione legge un'area di registri in modo continuo. Legge i dati da un nodo indirizzato tramite Modbus Plus, TCP/IP Ethernet o SY/MAX Ethernet.
È possibile configurare EN ed ENO come parametri supplementari.
I blocchi funzione CREAD_REG , CWRITE_REG , READ_REG , WRITE_REG e MBP_MSTR utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione.
Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
33003682.24
99
comunicazione
CREAD_REG: Lettura continua dei registri
NOTA: Quando si programma una funzione CREAD_REG , è necessario conoscere le procedure di instradamento usate dalla rete. Le strutture dei percorsi di instradamento
Modbus Plus sono descritte in dettaglio nel manuale Architetture di comunicazione (vedi
Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete
Modbus Plus - Guida alla pianificazione e all'installazione (codice riferimento
31003525) . Se è implementato l'instradamento Ethernet (vedi Quantum con
EcoStruxure ™ Control Expert, Configurazione di TCP/IP, Manuale dell'utente) TCP/IP o
SY/MAX, devono essere utilizzati i prodotti di instradamento Ethernet IP standard.
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
Rappresentazione in FBD
Rappresentazione:
Rappresentazione in LD
Rappresentazione:
100 33003682.24
CREAD_REG: Lettura continua dei registri
comunicazione
Rappresentazione in IL
Rappresentazione:
CAL CREAD_REG_Instance (SLAVEREG:=OffsetAddress,
=NumberOfRegisters, ADDRFLD:=DataStructure,
NO_REG:
REG_READ=
>RegisterToRead, STATUS=>ErrorCode)
Rappresentazione in ST
Rappresentazione:
CREAD_REG_Instance (SLAVEREG:=OffsetAddress,
=NumberOfRegisters, ADDRFLD:=DataStructure,
>RegisterToRead, STATUS=>ErrorCode) ;
NO_REG:
REG_READ=
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
SLAVEREG
Tipo di dati
DINT
NO_REG
ADDRFLD
INT
WordArr5
Descrizione
Indirizzo offset del primo registro %MW nello slave da cui leggere.
Numero di indirizzi da leggere dallo slave.
Struttura dati che descrive l'indirizzo Modbus Plus, l'indirizzo
TCP/IP o l'indirizzo SY/MAX IP.
Descrizione dei parametri d'uscita:
Parametro
REG_READ
Tipo di dati
ANY
STATUS WORD
Descrizione
Dati da leggere
Affinché il file sia leggibile, è necessario dichiarare una struttura dati come variabile allocata.
Se si verifica un errore durante l'esecuzione della funzione, un
permane su quest'uscita per un ciclo.
33003682.24
101
comunicazione
CREAD_REG: Lettura continua dei registri
Errore di runtime
Tabella dei codici di errore per la Libreria di comunicazione, pagina 549
Tipi di dati derivati
Tipo di dati derivati
WordArr5
in Modbus Plus
Descrizione degli elementi:
Elemento
WordArr5[1]
Tipo di dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo:
Il registro d'instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno di cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte del percorso d'instradamento diverso da zero è il nodo di destinazione.
Byte più significativo:
Indirizzo del nodo di origine.
• posizione slot del modulo quando si utilizza la porta
Modbus Plus sul modulo NOM
• impostato a 0 quando si utilizza la porta Modbus Plus sulla CPU (indipendentemente dallo slot CPU)
Registro d'instradamento 2
Registro d'instradamento 3
Registro d'instradamento 4
Registro d'instradamento 5
Descrizione degli elementi per
WordArr5
con Ethernet
TCP/IP
Descrizione degli elementi per WordArr5 con Ethernet TCP/IP
102 33003682.24
CREAD_REG: Lettura continua dei registri
Elemento
WordArr5[1]
Tipo di dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD comunicazione
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo: slot del modulo NOE
Byte 4 (MSB) dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit.
Byte 2 dell'indirizzo IP di destinazione a 32 bit.
Byte 1 (LSB) dell'indirizzo IP di destinazione a 32 bit
Descrizione degli elementi per
WordArr5
con Ethernet
SY/MAX
Descrizione degli elementi per WordArr5 con Ethernet SY/MAX
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo di dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo: slot del modulo NOE
Numero derivazione di destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Nessun significato
Nessun significato
33003682.24
103
comunicazione
Modalità di funzione
CREAD_REG: Lettura continua dei registri
Modalità di funzione del blocco
CREAD_REG
Anche se è possibile programmare una grande quantità di blocchi di funzione CREAD_REG , solo quattro operazioni di lettura possono essere attive contemporaneamente. In questo caso è irrilevante se sono il risultato di questo blocco funzione o di altri (ad es.
MBP_MSTR ,
MSTR , READ_REG ). Tutti i blocchi di funzione utilizzano un percorso di transazione e richiedono più cicli per completare un processo.
NOTA: una comunicazione TCP/IP tra un PLC Quantum (NOE 211 00) e un PLC
Momentum (tutte le CPU TCP/IP e tutti i moduli I/O TCP/IP) è possibile esclusivamente solo quando un processo di lettura o di scrittura è eseguito in ciascun ciclo. Se sono inviati più processi per ciascun ciclo PLC, la comunicazione si arresta senza generare un messaggio di errore nel registro di stato del blocco di funzione.
Tutte le informazioni di instradamento sono contenute nella struttura dati WordArr5 dell'ingresso ADDRFLD . Il tipo di blocco funzione assegnato a questo ingresso è definito dalla rete utilizzata.
Utilizzare:
• Modbus Plus per il blocco funzione ModbusP_ADDR
• Ethernet TCP/IP per il blocco funzione TCP_IP_ADDR
• Ethernet SY/MAX per il blocco funzione SYMAX_IP_ADDR
NOTA: la struttura dati WordArr5 può essere utilizzata anche con le costanti.
NOTA: Questo blocco funzione carica notevolmente la rete; è perciò necessario monitorare attentamente il carico di rete. Se il carico di rete è eccessivo, la logica del programma va riorganizzata in modo da operare con il blocco funzione READ_REG , una variante di questo blocco funzione che non opera in modo continuo ma in base al controllo comandi.
Descrizione dei parametri
SLAVEREG
Inizio dell'area nello slave indirizzato dal quale vengono lette le origini dati. L'area di origine risiede sempre nell'area del registro %MW.
104 33003682.24
CREAD_REG: Lettura continua dei registri
comunicazione
NOTA: Per gli slave per un PLC nonControl Expert:
L'area di origine risiede sempre nell'area dei registri 4x.
SLAVEREG prevede il riferimento dell'offset entro l'area 4x. Il "4" iniziale deve essere omesso (ad es. 59
(contenuto delle variabili o valore del letterale) = 40059).
Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
NO_REG
Numero di indirizzi da leggere dallo slave indirizzato (1 - 100).
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
REG_READ
Un ARRAY delle stesse dimensioni della trasmissione richiesta deve essere concordato (≥
NO_REG ) per questo parametro. Il nome di questo array è definito come parametro. Se l'array definito è troppo piccolo, viene trasmessa solo la quantità di dati presente nell'array.
Il parametro deve essere definito come variabile localizzata.
STATUS
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
33003682.24
105
comunicazione
CWRITE_REG: Scrittura continua dei registri
CWRITE_REG: Scrittura continua dei registri
Contenuto del capitolo
Descrizione ........................................................................... 106
Tipi di dati derivati .................................................................. 109
Modalità di funzione ............................................................... 111
Descrizione dei parametri ....................................................... 111
Introduzione
Questo capitolo descrive il blocco CWRITE_REG .
Descrizione
Descrizione della funzione
Il blocco funzione scrive continuamente nell'area dei registri. Trasferisce i dati dal PLC tramite Modbus Plus, TCP/IP Ethernet o SY/MAX Ethernet a uno slave indirizzato.
È possibile configurare EN ed ENO come parametri supplementari.
I blocchi funzione CREAD_REG , CWRITE_REG , READ_REG , WRITE_REG e MBP_MSTR utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione.
Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
106 33003682.24
CWRITE_REG: Scrittura continua dei registri
comunicazione
NOTA: Per programmare una funzione CWRITE_REG occorre avere familiarità con le procedure di instradamento della rete. Le strutture dei percorsi di transazione Modbus
Plus sono descritte nei dettagli nel manuale Architetture di comunicazione (vedi Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete Modbus
Plus, Guida alla pianificazione e all'installazione (codice di riferimento 31003525) . Se è implementato l'instradamento Ethernet (vedi Quantum con EcoStruxure ™ Control Expert,
Configurazione di TCP/IP, Manuale dell'utente) TCP/IP o SY/MAX, devono essere utilizzati i prodotti di instradamento Ethernet IP standard.
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
Rappresentazione in FBD
Rappresentazione:
Rappresentazione in LD
Rappresentazione:
33003682.24
107
comunicazione
CWRITE_REG: Scrittura continua dei registri
Rappresentazione in IL
Rappresentazione:
CAL CWRITE_REG_Instance (SLAVEREG:=OffsetAddress,
=NumberOfRegisters, REG_WRIT:=SourceDataArea,
NO_REG:
ADDRFLD:
=DataStructure, STATUS=>ErrorCode)
Rappresentazione in ST
Rappresentazione:
CWRITE_REG_Instance ( SLAVEREG:=OffsetAddress,
=NumberOfRegisters, REG_WRIT:=SourceDataArea,
=DataStructure, STATUS=>ErrorCode) ;
NO_REG:
ADDRFLD:
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
SLAVEREG
Tipo di dati
DINT
NO_REG
REG_WRIT
ADDRFLD
INT
ANY
WordArr5
Descrizione
Indirizzo offset del primo registro %MW dello slave in cui scrivere.
Numero di indirizzi da scrivere dallo slave.
Dati di origine
(Una struttura dati deve essere dichiarata come una variabile localizzata per il file di origine).
Struttura dati che trasferisce l'indirizzo Modbus Plus, l'indirizzo
TCI/IP o l'indirizzo SY/MAX-IP.
Descrizione dei parametri d'uscita:
Parametro
STATUS
Tipo di dati
WORD
Descrizione
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
108 33003682.24
CWRITE_REG: Scrittura continua dei registri
Errore di runtime
Tabella dei codici di errore per la Libreria di comunicazione, pagina 549
comunicazione
Tipi di dati derivati
Descrizione degli elementi per
WordArr5
in Modbus Plus
Descrizione degli elementi per WordArr5 in Modbus Plus:
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo:
Il registro d'instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno di cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte del percorso d'instradamento diverso da zero è il nodo di destinazione.
Byte più significativo:
Indirizzo del nodo di origine.
• posizione slot del modulo quando si utilizza la porta
Modbus Plus sul modulo NOM.
• impostato a 0 quando si utilizza la porta Modbus Plus sulla CPU (indipendentemente dallo slot CPU).
Registro d'instradamento 2
Registro d'instradamento 3
Registro d'instradamento 4
Registro d'instradamento 5
Descrizione degli elementi per
WordArr5
con Ethernet
TCP/IP
Descrizione degli elementi per WordArr5 con Ethernet TCP/IP
33003682.24
109
comunicazione
Elemento
WordArr5[1]
Tipo dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD
CWRITE_REG: Scrittura continua dei registri
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo:
Slot del modulo NOE
Byte 4 (MSB) dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit.
Byte 2 dell'indirizzo IP di destinazione a 32 bit.
Byte 1 (LSB) dell'indirizzo IP di destinazione a 32 bit
Descrizione degli elementi per
WordArr5
con Ethernet
SY/MAX
Descrizione degli elementi per WordArr5 con Ethernet SY/MAX
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo: slot del modulo NOE
Numero derivazione di destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Nessun significato
Nessun significato
110 33003682.24
CWRITE_REG: Scrittura continua dei registri
Modalità di funzione
comunicazione
Modalità di funzione del blocco
CWRITE_REG
Anche se è possibile programmare una grande quantità di blocchi di funzione CWRITE_REG , solo quattro operazioni di scrittura possono essere attive contemporaneamente. In questo caso è irrilevante se sono il risultato di questo blocco funzione o di altri (ad es.
MBP_MSTR ,
MSTR , WRITE_REG ). Tutti i blocchi di funzione utilizzano un percorso di transazione e richiedono più cicli per completare un processo.
Se più blocchi di funzione CWRITE_REG sono utilizzati in un'applicazione, devono almeno differire nei valori dei loro parametri NO_REG o REG_WRIT .
NOTA: una comunicazione TCP/IP tra un PLC Quantum (NOE 211 00) e un PLC
Momentum (tutte le CPU TCP/IP e tutti i moduli I/O TCP/IP) è possibile esclusivamente solo quando un processo di lettura o di scrittura è eseguito in ciascun ciclo. Se sono inviati più processi per ciascun ciclo PLC, la comunicazione si arresta senza generare un messaggio di errore nel registro di stato del blocco di funzione.
Tutte le informazioni di instradamento sono contenute nella struttura dati WordArr5 dell'ingresso ADDRFLD . Il tipo di blocco funzione assegnato a questo ingresso è definito dalla rete utilizzata.
Utilizzare:
• Modbus Plus per il blocco funzione ModbusP_ADDR
• Ethernet TCP/IP per il blocco funzione TCP_IP_ADDR
• Ethernet SY/MAX per il blocco funzione SYMAX_IP_ADDR
NOTA: la struttura dati WordArr5 può essere utilizzata anche con le costanti.
NOTA: Questo blocco funzione carica notevolmente la rete; è perciò necessario monitorare attentamente il carico di rete. Se il carico di rete è eccessivo, la logica del programma va riorganizzata in modo da operare con il blocco funzione WRITE_REG , una variante di questo blocco funzione che non opera in modo continuo ma in base al controllo comandi.
Descrizione dei parametri
SLAVEREG
Inizio dell'area nello slave indirizzato nella quale vengono scritti i dati di origine. L'area di origine risiede sempre nell'area d'indirizzo %MW.
33003682.24
111
comunicazione
CWRITE_REG: Scrittura continua dei registri
NOTA: Per gli slave per un PLC nonControl Expert:
L'area di destinazione risiede sempre nell'area dei registri 4x.
SLAVEREG prevede l'indirizzo di destinazione come un offset entro l'area 4x. Il "4" iniziale deve essere omesso (ad es. 59 (contenuto delle variabili o valore del letterale) = 40059).
Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
NO_REG
Numero di registri da scrivere nel processore slave (1 - 100). Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
STATUS
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
REG_WRIT
Un ARRAY delle stesse dimensioni della trasmissione richiesta deve essere concordato (≥
NO_REG ) per questo parametro. Il nome di questo array è definito come parametro. Se l'array definito è troppo piccolo, viene trasmessa solo la quantità di dati presente nell'array.
Il parametro deve essere definito come variabile localizzata.
112 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
DATA_EXCH: scambio di dati tra applicazioni
Contenuto del capitolo
Descrizione ........................................................................... 113
Schermata di immissione assistita........................................... 118
Esempio di come utilizzare una rete Fipway ............................. 120
Esempio di attivazione/disattivazione dei servizi HTTP o FTP/
TFTP .................................................................................... 122
Argomento del capitolo
Questo capitolo descrive la funzione DATA_EXCH .
Descrizione
Descrizione della funzione
La funzione DATA_EXCH è utilizzata per eseguire i trasferimenti dati da un dispositivo ad un altro con le M340 M580, CPU e Premium:
• trasmissione dati
• ricezione dati
• trasmissione dati, quindi ricezione
NOTA:
Il tipo di richiesta che può essere inviato dipende dal tipo di CPU:
• Nelle CPU Modicon M340 e M580, questa funzione può essere utilizzata per inviare le richieste Modbus a un altro dispositivo. Il protocollo applicazione Modbus è descritto nel sito web http://www.modbus.org
.
• Nelle CPU Premium, questa funzione può essere utilizzata per inviare le richieste UNI-
TE a un altro dispositivo. A questo scopo, è necessario accertarsi che i dati inviati costituiscano l'intero frame richiesto dal protocollo utilizzato.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
33003682.24
113
comunicazione
Rappresentazione FBD
Rappresentazione:
DATA_EXCH: scambio di dati tra applicazioni
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
LD Address
DATA_EXCH Action, Data_to_Send, Management_Param,
Received_Data
114 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
Rappresentazione ST
Rappresentazione:
DATA_EXCH(Address, Action, Data_to_Send, Management_Param,
Received_Data); comunicazione
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
TYP
EMIS
Tipo
ARRAY [0.. 5] OF
INT per Premium
ARRAY [0..7] OF
INT per Modicon
M340 e M580
INT
ARRAY [n..m] OF
INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Se il parametro Azione
è di tipo invio/ricezione, gli indirizzi broadcast non sono ammessi.
Per le CPU Premium:
• Usare la funzione
Per le CPU Modicon M340:
• Usare la funzione
• L'entità di destinazione dello scambio è un array di 8 parole. %
MWx:8.
%MWx:8: Inizializzato dal blocco di conversione ADDM .
%MW0:8:=ADDM(‘0.3.0.0’)
Per le CPU Modicon M580:
• Indirizzo dell'entità di destinazione dell'operazione di scambio, risultato della funzione
Tipo di azione da eseguire.
Per le CPU Premium, i valori possibili sono:
• 1: trasmissione seguita da attesa ricezione (quest'azione non è possibile nello slave Uni-Telway)
• 2: solo trasmissione
• 3: modalità ricezione
Per le CPU Modicon M340 e M580 CPU, il valore possibile è:
• 1: trasmissione seguita da attesa ricezione
Tabella di valori interi da inviare al dispositivo di destinazione della richiesta.
NOTA: Verificare che esista una lunghezza minima per un elemento, anche se non ci sono dati da inviare (codice 3 per azione, ad esempio).
NOTA: Verificare che la lunghezza dei dati da inviare (in byte) sia assegnata alla quarta parola della tabella di gestione prima di avviare la funzione, in modo che quest'ultima venga eseguita correttamente.
33003682.24
115
comunicazione
DATA_EXCH: scambio di dati tra applicazioni
La tabella seguente descrive i parametri ingresso/uscita:
Parametro
GEST
Tipo
ARRAY [0..3] OF
INT
Commento
Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC
Modicon M340 e M580. Questo è un altro modo per annullare la funzione di comunicazione rispetto all'uso dell'EF
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39 .
La tabella seguente descrive i parametri d'uscita:
Parametro
RECP
Tipo
ARRAY [n..m] OF
INT
Commento
Tabella di interi contenente i dati ricevuti durante la modalità di ricezione o un'azione di invio/ricezione. La dimensione dei dati ricevuti (in byte) viene scritta automaticamente dal sistema nella
quarta parola della tabella di gestione, pagina 45
NOTA: Anche se l'azione è solo di trasmissione, verificare che esista una tabella RECP con una dimensione minima di 1.
Servizi Modicon M340
116
Nei PLC Modicon M340, l'utente può decodificare un protocollo privato e libero per inviare qualsiasi richiesta Modbus. Offre la possibilità ai supporti Modbus di inviare o di ricevere una stringa di byte libera.
L'EF DATA_EXCH è utilizzabile su tutte le porte di comunicazione ad eccezione della porta
CANopen. Le limitazioni per la lunghezza di SendBuffer sono indicate nelle caratteristiche della porta di destinazione:
La seguente tabella descrive la lunghezza per tutte le porte di comunicazione:
33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
Porta
Ethernet (NOE o porta integrata)
Modbus
Lunghezza
1 Kb
256 byte
La lunghezza del messaggio da inviare o ricevere è indicata nella
quarta parola della tabella di gestione, pagina 45 .
Il blocco di conversione ADDM consente di indicare la destinazione della richiesta.
Vedere la funzione
.
NOTA: Specificare la parola chiave TCP.MBS quando si utilizza l'EF DATA_EXCH per i comandi Modbus su Ethernet.
Tutte le altre entità Ethernet non sono supportate. L'EF DATA_EXCH non gestisce direttamente una connessione su TCP.
Per i protocolli utente aperti su Modbus è accettata la seguente sintassi:
• rack.module
- server modulo
• rack.module.channel.device.MBS
- protocollo Modbus
• rack.module.channel.device
- protocollo utente
Esempio di servizio Modicon M340
Obiettivo: scrittura in un singolo registro %MW100, Lunghezza := 5
(* REQUEST WRITE SINGLE REGISTER %MW100 Length := 5 *)
(* Data_to_send = Modbus request encoding *)
(* Byte 1 = Register Address Hi = 0 ; Byte 0 = Function code = 06 *)
Data_to_Send[0] := 6;
(* Byte 3 = Register Value Hi ; Byte 2 = Register Address Lo = 100 *)
Data_to_Send[1] := (RegisterValue & 16#FF00) + 100;
(* Byte 5 = unused; Byte 4 = Register Value Lo)
Data_to_Send[2] := RegisterValue & 16#FF;
IF ((Management_Param[ACTIVITY] & 1) = 0 ) THEN
Management_Param[LENGTH] := 5; (* LENGTH RQ WRITE *)
33003682.24
117
comunicazione
DATA_EXCH: scambio di dati tra applicazioni
DATA_EXCH (ADDM('0.0.0.1'), 1, Data_To_Send, Management_Param, Received_
Data);
END_IF;
NOTA: Il bus MODBUS è in formato BIG-ENDIAN e le parole P-UNIT sono in formato
LITTLE-ENDIAN. Per alcune query è necessario eseguire una conversione.
È possibile utilizzare l'istruzione ROL:
Value_read := ROL(Received_Data[1], 8); (* CONVERT BIG/LITTLE ENDIAN *)
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per il Modicon M340.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
Illustrazione
Di seguito viene mostrata una schermata di immissione assistita della funzione:
Indirizzo
Per i PLC Premium, i tipi di oggetti possibili sono:
118 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
• ADDR(STRING)
• ARRAY [0..5] OF INT
NOTA: Se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo diventa grigio.
Modalità
Scelte possibili:
• 1 : scambio
• 2: trasmissione
• 3: ricezione
NOTA: se si usa il campo di immissione invece del menu, è possibile immettere una variabile del tipo INT , localizzata o meno.
Dati da inviare
La variabile per la trasmissione è un array di interi. Questo array può essere localizzato o meno.
Dati da ricevere
La zona ricezione è un array di interi, che può essere localizzato o meno. La dimensione di questo array dipende dal numero di oggetti da ricevere.
Rapporto
Il rapporto è un array di 4 interi, che può essere localizzato o meno.
NOTA: Evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto, poiché in questo caso la funzione di lettura delle variabili potrebbe non essere attiva.
33003682.24
119
comunicazione
DATA_EXCH: scambio di dati tra applicazioni
Esempio di come utilizzare una rete Fipway
In breve
Si supponga di voler mettere in comunicazione due stazioni PLC su una rete Fipway. La stazione 1 deve inviare i dati (20 byte che si trovano in %MW70:10 ) alla stazione 2, la quale li riceve in una tabella situata in %MW80:10 . Ciascun PLC ha una tabella di gestione che inizia con l'indirizzo %MW90 .
Per la stazione 1, la parola %MW93 deve contenere la lunghezza dei dati da inviare, o 20 (10 parole da inviare).
Per la stazione 2, la parola %MW93 è impostata a 0 prima dello scambio, al fine di visualizzare il numero di caratteri ricevuti al termine dello scambio stesso.
La funzione DATA_EXCH richiede che entrambi i PLC siano programmati, uno per inviare e l'altro per ricevere.
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway:
Trasmissione programmata nella stazione 1
Programmazione in ST:
IF RE(%I0.3.2) AND NOT %MW90.0 THEN
(* inizializzazione dei dati da inviare *)
%MW93:= 20;
(* funzione di comunicazione *)
DATA_EXCH(ADDR('{20.2}APP'),2,%MW70:10,%MW90:4,%MW80:1);
120 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
END_IF;
Parametri della richiesta:
Parametri
ADDR('{20.2}APP')
2
%MW70:10
%MW90:4
%MW80:1
Descrizione
• 20 : rete
• 2 : stazione
• APP: applicazione della stazione 2
Tipo di comunicazione: trasmissione
Dati da inviare
Tabella di gestione
Zona ricezione per le risposte. Qui non vi sono dati da ricevere, ma una parola deve comunque essere riservata (obbligatorio).
Ricezione programmata nella stazione 2
IF RE(%I0.3.4) AND NOT %MW90.0 THEN
(* inizializzazione dei dati da ricevere *)
%MW93:= 0;
(* funzione di comunicazione *)
DATA_EXCH(ADDR('{20.1}APP'),3,%MW70:1,%MW90:4,%MW80:10);
END_IF;
Parametri della richiesta:
Parametri
ADDR('{20.1}APP')
3
%MW70:1
%MW90:4
%MW80:10
Descrizione
• 20 : rete
• 1 : stazione
• APP: applicazione della stazione 1
Tipo di comunicazione: ricezione
Dati da inviare. Non ve ne sono, ma almeno una parola deve essere riservata.
Tabella di gestione
Zona ricezione: 10 parole sono fornite dalla stazione 1.
33003682.24
121
comunicazione
DATA_EXCH: scambio di dati tra applicazioni
Esempio di attivazione/disattivazione dei servizi
HTTP o FTP/TFTP
Descrizione
Un'operazione di Attivazione/disattivazione servizi HTTP o FTP/TFTP modifica lo stato attivato dei servizi HTTP o FTP/TFTP del modulo.
Implementazione di rete
Un'operazione di attivazione/disattivazione servizi HTTP o FTP/TFTP può essere eseguita sulle reti TCP/IP Ethernet.
Implementazione del blocco DATA_EXCH
Un blocco
può essere utilizzato per modificare lo stato del servizio FTP/TFTP o del servizio HTTP mentre l'applicazione è in esecuzione. Il blocco
DATA_EXCH non può modificare lo stato dei servizi HTTP o FTP/TFTP se il servizio è stato disattivato con uno degli strumenti di configurazione.
NOTA: Si consiglia tuttavia di utilizzare l'EFB
anziché la funzione DATA_EXCH per gestire la sicurezza su M340 e M580.
NOTA: I servizi Ethernet della porta integrata di M580 non possono essere modificati tramite il blocco DATA_EXCH. Per questo scopo, utilizzare il blocco
Configurazione della variabile Indirizzo
La variabile Indirizzo identifica l'indirizzo locale del modulo per il quale verranno attivati o disattivati i servizi FTP/TFTP e HTTP
122 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
Variabile
Indirizzo
Tipo
ARRAY [0..5] di INT per Premium
ARRAY [0..7] di INT per M340
Descrizione
Indirizzo dell'entità di destinazione dello scambio. Se il parametro Azione è di tipo invio/ricezione, gli indirizzi broadcast non sono ammessi.
Per Premium:
• Usare la funzione ADDR .
• Esempio: ADDR( '0.4.0.SYS' )
Per M340:
• Usare la funzione ADDM .
• L'entità di destinazione dello scambio è un array di 8 parole.
• Esempio: ADDM( '0.4.0' )
NOTA: In ciascun esempio, l'indirizzo è:
• rack = 0
• slot = 4
• canale = 0
Configurazione della variabile Azione
La variabile Azione identifica il tipo di funzione per il blocco funzione DATA_EXCH:
Variabile
Azione
Tipo
INT
Descrizione
1 = Transazione seguita da attesa ricezione
Valore (hex)
16#0001
Configurazione della variabile Data_to_Send
La variabile Data_to_Send è un ARRAY [0..3] di INT e include i seguenti elementi:
Variabile
Data_to_Send[0]
Data_to_Send[1]
Descrizione
• Byte più significativo = 16#00
• Byte meno significativo = codice richiesta (16#5A)
• Byte più significativo = 16#01
• Byte meno significativo = codice subrichiesta (16#6E)
Valore (hex)
16#005A
16#016E
33003682.24
123
comunicazione
Variabile
Data_to_Send[2]
Data_to_Send[3]
DATA_EXCH: scambio di dati tra applicazioni
Descrizione
• Byte meno significativo = comando servizio Ethernet
(16#xx) su M340/M580. 16#00 su Premium
• Byte più significativo = comando servizio Ethernet (16#xx) su Premium. 16#00 su M340/M580
I valori del comando di servizio Ethernet possono essere:
• 16#00 - Nessuna modifica
• 16#01 - Attiva solo FTP
• 16#02 - Disattiva solo FTP
• 16#10 - Attiva solo HTTP
• 16#20 - Disattiva solo HTTP
• 16#11 - Attiva FTP; Attiva HTTP
• 16#12 - Attiva HTTP; Disattiva FTP
• 16#21 - Disattiva HTTP; Attiva FTP
• 16#22 - Disattiva FTP; Disattiva HTTP
• Byte più significativo = Riservato (16#00)
• Byte meno significativo = Riservato (16#00)
Valore (hex)
16#00xx su
M340/M580
16#xx00 su
Premium
16#0000
Configurazione della variabile Management_Param
La variabile Management_Param è un ARRAY [0..3] di INT e include i seguenti elementi:
Variabile
Management_Param[0]
Management_Param[1]
Management_Param[2]
Management_Param[3]
Descrizione
• Byte più significativo = numero di scambio, indicato dal sistema
• Byte meno significativo = bit di attività, indicato dal sistema
• Byte più significativo =
rapporto operazione, pagina 43
, indicato dal sistema
• Byte meno significativo =
rapporto di comunicazione, pagina 42 , indicato dal sistema
Il valore di timeout può essere impostato a qualsiasi valore.
Dato che la base di timeout è 100 ms, in questo esempio il timeout è impostato a 10 secondi.
• Byte più significativo = Lunghezza (16#00)
• Byte meno significativo = Lunghezza (16#08)
NOTA: La Lunghezza deve essere impostata a un valore di 8 byte.
Valore (hex)
-
-
16#0064
16#0008
124 33003682.24
DATA_EXCH: scambio di dati tra applicazioni
comunicazione
Visualizzazione della risposta
Usare una tabella di animazione Control Expert di per visualizzare la risposta. La risposta è contenuta nella variabile Received_Data, che è un ARRAY [0..3] di INT:
Variabile
Esempio di risposta corretta:
Received_Data[0]
Valore (hex)
Received_Data[1]
Received_Data[2]
16#005A (M340 Modbus)
16#008A (Premium UNITE)
16#xxFE (operazione riuscita)
16#00yy
NOTA: La parola creata con 16#yyxx ha lo stesso significato dell'uscita
dell'EFB
16#0000 Received_Data[3]
Esempio di risposta non corretta:
Received_Data[0]
Received_Data[1]
Received_Data[2]
16#005A (M340 Modbus)
16#008A (Premium UNITE)
16#xxFD (Detected error)
16#00xx 1
1
Received_Data[3] 16#0000
1. Il codice di errore rilevato viene visualizzato nel formato FD xx xx, dove xx xx può essere:
• 50 86 : Occupato: quando la richiesta avviene entro 2 secondi dalla richiesta precedente, indipendentemente dal fatto che la richiesta precedente sia stata corretta o sia stato rilevato un errore.
• 40 01 : Stesso stato: quando la richiesta viene richiamata per modificare lo stato di HTTP e di FTP/TFTP allo stato corrente.
• 20 04 : Dati non validi: quando i dati della richiesta non sono nella forma specificata dal tipo di richiesta.
• 50 69 Control Expert: Disattivato: quando FTP/TFTP o HTTP è già disattivato da e la richiesta cerca di modificare lo stato del servizio disattivato.
NOTA: In caso di più errori rilevati, l'ordine di priorità nel display è Disattivato, Dati non validi, Stesso stato,
Occupato.
33003682.24
125
comunicazione
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
Contenuto del capitolo
Argomento del capitolo
Questo capitolo descrive la funzione ETH_PORT_CTRL .
ETH_PORT_CTRL : Esecuzione di un comando di sicurezza in un'applicazione
Descrizione della funzione
Usare il blocco funzione ETH_PORT_CTRL per controllare i protocolli FTP TFTP, HTTP e
DHCP / BOOTP quando vengono attivati nella schermata (vedi Modicon M580,
BMENOC0301/0311 Ethernet Modulo di comunicazione, Guida di installazione e configurazione) Sicurezza di Control Expert. Per impostazione predefinita questi protocolli sono disattivati. Per motivi di sicurezza informatica (per facilitare la protezione dei dati contro le richieste di modifica in modalità monitoraggio), mappare gli ingressi sulle variabili e sulle variabili non allocate in cui la proprietà HMI è disattivata (la variabile non è presente nel dizionario dati).
È possibile configurare anche i parametri aggiuntivi EN ed ENO .
126 33003682.24
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
CAL ETH_PORT_CTRL_Instance (ENABLE := EnableSecurityChange, ABORT :=
AbortSecurityChange, ADDR := ModuleAddress, ETH_SCE := ServiceToChange,
DONE => BlockExecutionDone, ACTIVE => BlockExecutionInProgress, ERROR
=> BlockExecutionError, STATUS => BlockErrorStatus, ETH_SCE_STATUS =>
ChangeServiceStatus)
Rappresentazione ST
ETH_PORT_CTRL_Instance (ENABLE := EnableSecurityChange, ABORT :=
AbortSecurityChange, ADDR := ModuleAddress, ETH_SCE := ServiceToChange,
DONE => BlockExecutionDone, ACTIVE => BlockExecutionInProgress, ERROR
33003682.24
127
comunicazione
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
=> BlockExecutionError, STATUS => BlockErrorStatus, ETH_SCE_STATUS =>
ChangeServiceStatus);
Descrizione dei parametri
Questa tabella descrive i parametri di ingresso:
Parametro
ENABLE
ABORT
ADDR
Tipo
BOOL
BOOL
ANY_ARRAY_
INT
Commento
Impostato a 1 per attivare l'operazione.
Impostato a 1 per interrompere l'operazione attiva corrente.
Questo array contiene l'indirizzo dell'entità per la quale si vuole modificare lo stato di sicurezza, che è il risultato della
o
ADDMX o ADDM, pagina 73 . Ad esempio:
• ADDM(‘0.0.10’) per una M580 CPU
• ADDM(‘0.3.0’) per un modulo BMENOC0301/11 inserito nello 3 del rack principale
ETH_SCE WORD Per ogni protocollo, usare questi valori binari per controllare il protocollo:
• 00: il protocollo è invariato.
• 01: attiva il protocollo.
• 10: disattiva il protocollo.
• 11: riservato
NOTA: Il valore 11 segnala un errore rilevato in ETH_SCE_
STATUS.
Questi bit sono utilizzati per i vari protocolli:
• 0, 1: FTP
• 2, 3: TFTP (disponibile solo per Modicon M580)
• 4, 5: HTTP
• 6, 7: DHCP / BOOTP
• 8...15: riservato (valore = 0)
(1) Per configurare l'indirizzo di un modulo nel rack locale, scrivere 0.0.10 (indirizzo del server principale CPU).
Questa tabella descrive i parametri di uscita:
Parametro
DONE
ACTIVE
ERROR
Tipo
BOOL
BOOL
BOOL
Commento
Indicazione di operazione completata. Impostato a 1 quando l'esecuzione dell'operazione si è conclusa correttamente.
Indicazione di operazione in corso. Impostato a 1 quando l'esecuzione dell'operazione è in corso.
Impostato a 1 se viene rilevato un errore dal blocco funzione.
128 33003682.24
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
Parametro
STATUS
ETH_SCE_
STATUS
Tipo
WORD
WORD comunicazione
Commento
Codice che fornisce l'
identificazione dell'errore rilevato, pagina 551 .
Per ogni protocollo, questi valori contengono la risposta a qualsiasi tentativo di attivare o disattivare i protocolli FTP, TFTP, HTTP o DHCP / BOOTP:
• 0: comando eseguito
• 1: comando non eseguito
I motivi che impediscono l'esecuzione del comando possono essere:
• Il servizio di comunicazione è stato disattivato dalla configurazione.
• Il servizio di comunicazione è già nello stato richiesto dal comando
( Attivato o Disattivato ).
• Il servizio di comunicazione (x) non è supportato dal modulo o non esiste.
I seguenti bit sono utilizzati per i vari protocolli:
• 0: FTP
• 1: TFTP
• 2: HTTP
• 3: DHCP / BOOTP
• 4 ... 15: riservato (valore = 0)
Tipo di esecuzione
Sincrona :
Quando viene utilizzato con i seguenti moduli CPU M580, il blocco funzione ETH_PORT_
CTRL viene eseguito in modo sincrono . Di conseguenza, l'uscita DONE si attiva non appena l'ingresso ENABLE viene impostato su ON . In questo caso, l'uscita ACTIVE rimane
OFF .
• BMEP581020
• BMEP582020
• BMEP582040
• BMEP583020
• BMEP583040
• BMEP584020
• BMEP584040
• BMEP585040
• BMEP586040
• BMEH582040 *
• BMEH584040 *
33003682.24
129
comunicazione
ETH_PORT_CTRL: attivazione o disattivazione di u protocollo
• BMEH586040 *
* Nelle CPU BMEH58•040 Hot Standby, verificare che il blocco funzione ETH_PORT_
CTRL venga eseguito in modo uguale sia sulla CPU principale che su quella standby.
Asincrona :
Quando viene utilizzato con i seguenti moduli, il blocco funzione ETH_PORT_CTRL viene eseguito in modo asincrono e potrebbero essere necessari diversi cicli prima che l'uscita
DONE si attivi . Per questo motivo, l'uscita ACTIVE viene impostata su ON fino al completamento del blocco funzione ETH_PORT_CTRL.
• Moduli M340 :
◦ BMXNOC0401
◦ BMXNOE0100
◦ BMXNOE0110
• Moduli M580 :
◦ BMENOC0301/11
Come usare l'EFB ETH_PORT_CTRL
Usare l'EFB ETH_PORT_CTRL :
Passo Azione
1 Impostare i bit dei servizi da attivare in ETH_SCE .
Impostare l'ingresso ENABLE per attivare l'EFB.
2
3
4
L’ingresso ENABLE deve essere un OR tra un comando impulsi e l’uscita ACTIVE dell’EFB.
Controllare il valore dell'uscita STATUS :
• STATUS <>0: si è verificato un problema di comunicazione.
• STATUS = 0: controllare ETH_SCE_STATUS . I servizi per cui sono stati impostati i bit non sono stati modificati adeguatamente.
130 33003682.24
EthPort_Control_MX: attivazione o disattivazione del protocollo
EthPort_Control_MX: attivazione o disattivazione del protocollo
comunicazione
Contenuto del capitolo
Argomento del capitolo
Questo capitolo descrive la funzione EthPort_Control_MX .
EthPort_Control_MX : disattivazione o attivazione di un protocollo
Descrizione della funzione
La funzione EthPort_Control_MX è utilizzata, in una versione Unity Pro V8.0
per una CPU
Modicon M580 Ethernet integrata, per disattivare o attivare i seguenti protocolli:
• FTP
• TFTP
• HTTP
Attivare il protocollo nella configurazione prima di utilizzare la funzione EthPort_Control_MX per disattivare o riattivare il protocollo.
Se un protocollo non è attivato nella configurazione, la funzione EthPort_Control_MX non applica alcuna modifica e viene segnalato un errore.
È possibile configurare anche i parametri supplementari EN ed ENO .
33003682.24
131
comunicazione
Rappresentazione FBD
Rappresentazione:
EthPort_Control_MX: attivazione o disattivazione del protocollo
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
EthPort_Control_MX (ENABLE:=EnableControl, ADR:=EntityToControl,
ETHERNET_SERVICE:=ServicesControl)
ST ControlStatus
Rappresentazione ST
Rappresentazione:
ControlStatus:=EthPort_Control_MX (ENABLE:=EnableControl, ADR:
=EntityToControl, ETHERNET_SERVICE:=ServicesControl);
132 33003682.24
EthPort_Control_MX: attivazione o disattivazione del protocollo
Descrizione dei parametri comunicazione
La tabella seguente descrive i parametri di ingresso:
Parametro
ENABLE
ADR
ETHERNET_
SERVICE
Tipo Descrizione
BOOL Attiva o disattiva l'EF.
ANY_ARRAY_INT Array contenente l'indirizzo dell'entità di destinazione dell'operazione di scrittura, risultato della funzione
o
NOTA: EthPort_Control_MX è utilizzata solo per le CPU
Modicon M580 con versione Unity Pro V8.0
; utilizzare ADDM
('0.0.0') per attivare/disattivare i servizi del protocollo CPU.
WORD Struttura della parola:
• bit 0-1: FTP
• bit 2-3: TFTP
• bit 4-5: HTTP
• bit 6-15: riservato
Significato delle combinazioni di bit per ogni protocollo:
• 00: nessuna modifica nello stato servizio
• 01: attiva il protocollo
• 10: disattiva il protocollo
• 11: riservato
La tabella seguente descrive il parametro di uscita:
Parametro
STATUS
Tipo
INT
Descrizione
Stato restituito dal sistema:
• 3: formato indirizzo errato
• -1: parametri non validi
• 0: riuscito
33003682.24
133
comunicazione
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
Contenuto del capitolo
Descrizione ........................................................................... 134
Presentazione
Questo capitolo descrive la funzione EXCH_QX .
Descrizione
Descrizione della funzione
La funzione EXCH_QX permette di eseguire trasferimenti di dati (Modbus) da e verso slave
Modbus collegati a un modulo di comunicazione seriale Modicon X80 (BMX NOM) all’interno di in una derivazione EIO.
NOTA: Il protocollo di applicazione Modbus è descritto nel sito Web http://www.modbus.
org.
È possibile configurare i parametri aggiuntivi EN ed ENO .
I blocchi funzione di comunicazione utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione. Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
134 33003682.24
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
Rappresentazione FBD
Rappresentazione: comunicazione
Rappresentazione LD
Rappresentazione:
33003682.24
135
comunicazione
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
Rappresentazione IL
Rappresentazione:
CAL EXCH_QX_Instance (ENABLE:=ExchQxEnable, ABORT:=ExchQxAbort, ADDR:
=ModuleAddress, SEND_BYTE:=NbBytesToSend, SEND_BUFFER:
=ExchQxDataSource, DONE=>ExchQxSuccessfull, ACTIVE=>ExchQxActive,
ERROR=>ExchQxFaulty, STATUS=>ErrorCode, REC_BYTE=>NbBytesReceived,
REC_BUFFER=>ReceivedBuffer)
Rappresentazione ST
Rappresentazione:
EXCH_QX_Instance (ENABLE:=ExchQxEnable, ABORT:=ExchQxAbort, ADDR:
=ModuleAddress, SEND_BYTE:=NbBytesToSend, SEND_BUFFER:
=ExchQxDataSource, DONE=>ExchQxSuccessfull, ACTIVE=>ExchQxActive,
ERROR=>ExchQxFaulty, STATUS=>ErrorCode, REC_BYTE=>NbBytesReceived,
REC_BUFFER=>ReceivedBuffer)
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ENABLE
ABORT
ADDR
SEND_BYTE
SEND_BUFFER
Tipo
BOOL
BOOL
ANY_ARRAY_INT
WORD
ANY_ARRAY_BYTE
Commento
Impostato a 1 per eseguire i trasferimenti di dati.
Impostato a 1 per interrompere l'operazione corrente.
Array contenente l'indirizzo slave Modbus, risultato della funzione
.
Numero di byte da inviare.
Campo dati di origine. È necessario dichiarare una struttura dati come variabile allocata per il file di origine.
136
La tabella seguente descrive i parametri d'uscita:
Parametro
DONE
ACTIVE
Tipo
BOOL
BOOL
Commento
Impostato a 1 quando l'esecuzione della funzione è terminata correttamente.
Impostato a 1 quando l'esecuzione della funzione è in corso.
33003682.24
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
Parametro
ERROR
STATUS
REC_BYTE
REC_BUFFER comunicazione
Tipo
BOOL
WORD
WORD
ANY_ARRAY_BYTE
Commento
Impostato a 1 se viene rilevato un errore dal blocco funzione.
Fornisce il
se il blocco funzione rileva un errore.
Numero di byte che devono essere ricevuti dallo slave
Modbus.
Dati ricevuti
Per poter leggere il file è necessario dichiarare una struttura dati come variabile allocata.
Esempio ST
(* Example: we want to read the %MW1000 on slave number 5 (a M340 PLC for instance) wired to channel 0 of the NOM in slot 2 of which IP address is
192.168.10.17, the Quantum CRP is in slot 5 for instance.
First of all you should declare in the data editor the following variables: data_to_send as an ARRAY [0..4] OF BYTE (or more if you want to send more bytes) bytes_to_send as a WORD slave_addres as a STRING[40] received_data as an ARRAY [0..3] OF BYTE (or more if you need) enable_sending as a BOOL and you should create an instance of EXCH_QX EFB named for instance EXCH_
QX_6 *)
(* initialize the data to send *) data_to_send[0]:=16#03; (* Modbus function code read Holding register *) data_to_send[1]:=16#03; (* MSB of the first register address *)
33003682.24
137
comunicazione
EXCH_QX: Scambio dati tra applicazioni sul bus EIO
data_to_send[2]:=16#E8; (* LSB of the first register address, 16#03E8 =
1000*) data_to_send[3]:=16#00; (* MSB of the quantity of registers to read *) data_to_send[4]:=16#01; (* LSB of the quantity of registers to read *)
(* initialize the number of byte to send *) bytes_to_send:=5;
(* initialize the address of the slave *) slave_address:='1.5.1{192.168.10.17}\\0.2.0.5';
(* CRP slot 5, Drop address 192.168.10.17, NOM in slot 2 of main drop rack.
*)
EXCH_QX_6 (ENABLE := enable_sending,
ADDR := addmx(slave_address),
SEND_BYTE := bytes_to_send,
SEND_BUFFER := data_to_send,
REC_BUFFER => received_data);
(* to start the EFB EXCH_QX_6 set enable_sending, then received_data[0] will contain the function code sent (3) received_data[1] will contain the number of bytes received (2) received_data[2] and received_data[3] will contain the value of %MW1000 from the slave number 5*)
138 33003682.24
INPUT_BYTE: ricezione di stringhe di caratteri
INPUT_BYTE: ricezione di stringhe di caratteri
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 139
Argomento del capitolo
Questo capitolo descrive la procedura INPUT_BYTE .
NOTA: La funzione equivale, in generale, a INPUT_CHAR tranne per il fatto che utilizza
ARRAY OF BYTE invece di STRING per il parametro RECP .
Questo consente di leggere all'interno di un DFB valori numerici che non potrebbero essere letti con INPUT_CHAR .
Descrizione
Descrizione della funzione
La funzione INPUT_BYTE è utilizzata per inviare un array di richiesta di lettura byte a un modulo di comunicazione in modalità carattere. Il messaggio ricevuto è memorizzato in un array di byte.
NOTA: in generale, INPUT_BYTE ha la stessa funzione di INPUT_CHAR ma consente di trasmettere una tabella di byte anziché una stringa come parametro di uscita. È quindi possibile leggere un valore di byte 0 (NULL) in un flusso di byte in arrivo da una porta seriale.
Per i PLC Premium, questa funzione permette di ricevere fino a 4 Kbyte (120 byte per la porta terminale).
Per le ModiconM340 M580CPU e , questa funzione consente di ricevere fino a 1024 byte.
Sono disponibili due possibilità esclusive:
• Lettura di un numero di byte: nessuna condizione deve essere configurata.
• Lettura di un messaggio: va configurata una condizione di arresto nella schermata di configurazione.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
33003682.24
139
comunicazione
Rappresentazione FBD
Rappresentazione:
INPUT_BYTE: ricezione di stringhe di caratteri
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
LD Address
INPUT_BYTE Raz, Buffer_Length, Management_Param, Received_Data
140 33003682.24
INPUT_BYTE: ricezione di stringhe di caratteri
comunicazione
Rappresentazione ST
Rappresentazione:
INPUT_BYTE(Address, Raz, Buffer_Length, Management_Param, Received_
Data);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
RAZ
NB
Tipo
ARRAY [0..5] OF
INT per Premium
ARRAY [0..7] OF
INT per Modicon
M340 e M580
INT
INT
Commento
Per PLC Premium:
• L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
• Sono possibili solo gli indirizzi che terminano in SYS
(esempio: porta terminale del processore 0.0.0.SYS
).
Per PLC Modicon M340:
• L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
• La sintassi dell'indirizzo è di tipo ADDM . Il nodo è un campo opzionale che può essere SYS o vuoto (ad esempio ADDM
("0.0.0.SYS") corrisponde a ADDM("0.0.0") .
Per M580CPU Modicon :
• Indirizzo dell'entità di destinazione dell'operazione di ingresso, risultato della funzione
.
Reimpostazione. Questo parametro viene utilizzato per reimpostare la memoria di ricezione dell'accoppiatore.
• valore = 0: nessun reset della memoria
• valore = 1: reset della memoria
NOTA : per le comunicazioni della porta terminale dei PLC
Premium, il valore deve essere 1.
NOTA : nelle CPU Modicon M340 e M580, l'EF INPUT_BYTE può essere programmato con o senza questo parametro.
Lunghezza del buffer o numero di byte da ricevere.
• Valore = 0: lettura del messaggio appena è disponibile sul canale. In questo caso, nella schermata di configurazione occorre specificare una condizione di arresto.
• Valore maggiore di 0: specifica il numero di byte da leggere.
NOTA : per le comunicazioni sulla porta terminale dei PLC
Premium, 0 è l'unico valore ammesso. In questo caso, il carattere predefinito di fine messaggio è un ritorno a capo (CR).
La tabella seguente descrive i parametri ingresso/uscita:
33003682.24
141
comunicazione
INPUT_BYTE: ricezione di stringhe di caratteri
Parametro
GEST
Tipo
ARRAY [0..3]
OF INT
Commento
Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39
.
La tabella seguente descrive i parametri d'uscita:
Parametro
RECP
Tipo
ARRAY OF BYTE
Commento byte ricevuti. Viene memorizzato in un array BYTE .
NOTA: La dimensione dei dati ricevuti (in byte) viene scritta automaticamente dal sistema nella quarta parola della tabella di gestione.
Regole di programmazione
Quando più funzioni INPUT_BYTE sono avviate contemporaneamente, il parametro RAZ deve essere impostato a 0 (memoria di ricezione del modulo non reimpostata).
È possibile richiedere di reimpostare la memoria del modulo per il messaggio successivo in modo da evitare la ricezione di dati obsoleti.
Quando il parametro RAZ è impostato a 1, è necessario avviare la funzione INPUT_BYTE prima dell'invio dei dati.
Sui PLC Premium, sono necessari più cicli del PLC per ricevere una stringa di più di 240 byte (la stringa è frammentata). Per questo motivo è importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione. Il sistema riceve la stringa in modo coerente tramite più frammenti.
142 33003682.24
INPUT_BYTE: ricezione di stringhe di caratteri
comunicazione
Sulle M340 Modicon M580CPU e , è sufficiente un ciclo della CPU per ricevere una stringa di byte di lunghezza massima di 1024 byte. È importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione.
La porta seriale del PLC Modicon M340 è full duplex, quindi è possibile inviare una funzione
PRINT_CHAR anche quando è stata inviata ed è ancora in attesa una funzione INPUT_
BYTE .
33003682.24
143
comunicazione
INPUT_CHAR: ricezione di stringhe di caratteri
INPUT_CHAR: ricezione di stringhe di caratteri
Contenuto del capitolo
Descrizione ........................................................................... 144
Schermata di immissione assistita........................................... 149
Esempio di lettura di stringhe di caratteri tramite una rete
Fipway .................................................................................. 151
Argomento del capitolo
Questo capitolo descrive la funzione INPUT_CHAR .
Descrizione
Descrizione della funzione
La funzione INPUT_CHAR è utilizzata per inviare una richiesta di lettura di stringa di caratteri a un modulo di comunicazione per modalità caratteri (attesa di ricezione di stringhe di caratteri). Il messaggio ricevuto è memorizzato in una stringa di caratteri.
Per i PLC Premium, questa funzione permette di ricevere fino a 4 Kbyte (120 byte per la porta terminale).
Per le CPU Modicon M340 e M580, questa funzione permette di ricevere fino a 1024 byte.
Sono disponibili due possibilità esclusive:
• Lettura di un numero di caratteri: nessuna condizione deve essere configurata.
• Lettura di un messaggio: va configurata una condizione di arresto nella schermata di configurazione.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
144 33003682.24
INPUT_CHAR: ricezione di stringhe di caratteri
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
LD Address
INPUT_CHAR Raz, String_Length, Management_Param, Received_Data
33003682.24
145
comunicazione
INPUT_CHAR: ricezione di stringhe di caratteri
Rappresentazione ST
Rappresentazione:
INPUT_CHAR(Address, Raz, String_Length, Management_Param, Received_
Data);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
RAZ
NB
Tipo
ARRAY [0..5]
OF INT for
Premium
ARRAY [0..7]
OF INT for
Modicon M340 and M580
INT
INT
Commento
Per PLC Premium:
• L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
• Sono possibili solo gli indirizzi che terminano in SYS
(esempio: 0.0.0.SYS
porta terminale del processore).
Per PLC Modicon M340:
• L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
• La sintassi dell'indirizzo è del tipo ADDM (‘r.m.c.node’). Il nodo è un campo opzionale che può essere SYS o vuoto
(ad es. ADDM(‘0.0.0.SYS’) corrisponde a ADDM(‘0.0.0’).
Per CPU Modicon M580:
• Indirizzo dell'entità di destinazione dell'operazione di ingresso, risultato della funzione
Reimpostazione. Questo parametro viene utilizzato per reimpostare la memoria di ricezione dell'accoppiatore.
• valore = 0: nessun reset della memoria
• valore = 1: reset della memoria
NOTA : per le comunicazioni della porta terminale dei PLC
Premium, il valore deve essere 1.
NOTA : nelle CPU Modicon M340 e M580, l'EF INPUT_CHAR può essere programmato con o senza questo parametro.
Lunghezza della stringa di caratteri o numero dei caratteri da ricevere.
• Valore = 0: lettura del messaggio appena è disponibile sul canale. In questo caso, nella schermata di configurazione occorre specificare una condizione di arresto.
• Valore maggiore di 0: specifica il numero di caratteri da leggere.
NOTA : per le comunicazioni sulla porta terminale dei PLC
Premium, 0 è l'unico valore ammesso. In questo caso, il carattere predefinito di fine messaggio è un ritorno a capo (CR).
146 33003682.24
INPUT_CHAR: ricezione di stringhe di caratteri
comunicazione
La tabella seguente descrive i parametri ingresso/uscita:
Parametro
GEST
Tipo
ARRAY [0..3]
OF INT
Commento
Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0), bit di annullamento (rango 1) e bit di riconoscimento immediato (rango 2)
NOTA: Il bit di annullamento è disponibile solo per i PLC Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39 .
La tabella seguente descrive i parametri d'uscita:
Parametro
RCP
Tipo
STRING
Commento
Stringa ricevuta. Questa viene memorizzata in una stringa di caratteri.
NOTA: La dimensione dei dati ricevuti (in byte) viene scritto automaticamente dal sistema nella quarta parola della tabella di gestione.
regole di programmazione
Quando più funzioni INPUT_CHAR sono avviate contemporaneamente, il parametro RAZ deve essere impostato a 0 (memoria di ricezione del modulo non reimpostata).
È possibile richiedere di reimpostare la memoria del modulo per il messaggio successivo in modo da evitare la ricezione di dati obsoleti.
Quando il parametro RAZ è impostato a 1, è necessario avviare la funzione INPUT_CHAR prima dell'invio dei dati.
33003682.24
147
comunicazione
INPUT_CHAR: ricezione di stringhe di caratteri
148
Sui PLC Premium, sono necessari più cicli del PLC per ricevere una stringa di caratteri di più di 240 byte (la stringa è frammentata). Per questo motivo è importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione. Il sistema riceve la stringa in modo coerente tramite più frammenti.
Sulle CPU Modicon M340 e M580 è sufficiente un ciclo della CPU per ricevere una stringa di caratteri di lunghezza massima di 1024 byte. È importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione.
La porta seriale del PLC Modicon M340 è full duplex, quindi è possibile inviare una funzione
PRINT_CHAR anche quando è stata inviata ed è ancora in attesa una funzione INPUT_
CHAR .
È possibile avviare la funzione INPUT_CHAR prima di inviare i caratteri di terminazione al
PLC.
Se si utilizzano i caratteri di terminazione e se in un buffer ne sono presenti numerosi e il buffer stesso non è stato azzerato, ogni funzione INPUT_CHAR riceve la stringa iniziale del buffer finché non raggiunge il primo dei caratteri di terminazione e poi il buffer viene rimosso dai caratteri di lettura.
Lo stesso avviene per la lettura di un numero di caratteri.
Se i caratteri di fine sono configurati, potrebbe essere possibile usare il numero della funzione di caratteri.
NOTA: gestione RTS/CTS: nella comunicazione in Modalità caratteri, quando si utilizza l'EF INPUT_CHAR , i caratteri ricevuti sul collegamento seriale vengono memorizzati in un buffer ad anello. La dimensione di questo buffer è 1024. Quando il buffer è pieno, gli altri caratteri vanno persi. Per evitare ciò è possibile selezionare la gestione RTS/CTS.
In questo caso, quando il buffer ad anello è quasi pieno, la CPU azzera il segnale RTS per interrompere l'invio dei caratteri.
Se viene inviata una stringa di più di 1000 caratteri (ad esempio 1013), l'RTS consente di ricevere solo i primi 1000, mentre la funzione INPUT_CHAR attenderà indefinitamente il carattere di terminazione (se non è stato definito un timeout con la funzione).
AVVERTIMENTO
PERDITA DI DATI
Verificare che l'apparecchiatura remota non invii stringhe di più di 1000 caratteri
(compresi i caratteri finali) quando si utilizza la gestione RTS/CTS.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
NOTA: Se si desidera inviare una stringa di più di 1000 caratteri (ad esempio 1013), occorre inviare la stringa due volte, la prima volta per inviare i primi 1000 caratteri e la seconda volta per i restanti 13 caratteri.
33003682.24
INPUT_CHAR: ricezione di stringhe di caratteri
Schermata di immissione assistita
comunicazione
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per il Modicon M340.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
Illustrazione
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetto possibili sono:
• ADDR(STRING)
• ARRAY [0..5] OF INT
NOTA: Se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo diventa grigio.
33003682.24
149
comunicazione
INPUT_CHAR: ricezione di stringhe di caratteri
Azzera memoria modulo
Scelte possibili del tipo INT:
• Sì
• No
NOTA: Selezionando i pulsanti Sì/No viene immediatamente visualizzato il valore 1 o 0.
Tipo di lettura
I due pulsanti di selezione selezionano la modalità operativa e questa scelta deve essere effettuata conformemente alla configurazione del canale utilizzato.
Numero di caratteri
È possibile immettere un intero, sotto forma di variabile o di valore immediato.
Stringa da ricevere
La zona ricezione è una variabile del tipo STRING.
La dimensione di questa variabile è una funzione del numero di caratteri da ricevere. La variabile deve essere dichiarata prima di venire utilizzata in questa schermata.
Rapporto
Il rapporto è un array di 4 interi.
NOTA: Evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto, poiché in questo caso la funzione di lettura delle variabili potrebbe non essere attiva.
150 33003682.24
INPUT_CHAR: ricezione di stringhe di caratteri
comunicazione
Esempio di lettura di stringhe di caratteri tramite una rete Fipway
In breve
Da una stazione con l'indirizzo 1 su una rete Fipway 20, si desidera leggere una stringa di caratteri inviata da un terminale video (schermo e tastiera) collegato alla porta TER del PLC con un indirizzo di rete 20, stazione 5.
Questa stringa di caratteri è memorizzata nella variabile Str_1 , mentre la tabella di gestione della funzione di comunicazione è %MW110:4 .
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
Programmazione
Programmazione in ST:
IF RE(%I0.3.6) AND NOT %MW110.0 THEN
INPUT_CHAR(ADDR('{20.5}0.0.SYS'), 1, 0, %MW110:4, Str_1);
END_IF;
Parametri della richiesta:
33003682.24
151
comunicazione
Parametri
ADDR('{20.5}0.0.0.SYS')
1
0
%MW110:4
Str_1
INPUT_CHAR: ricezione di stringhe di caratteri
Descrizione
• {20.5}: rete 20, stazione 5
• 0 : rack
• 0 : modulo
• 0 : canale 0
• SYS: indirizzo di sistema (porta terminale)
Azzera
Lettura dell'intera stringa di caratteri
Tabella di gestione
Variabile del tipo STRING che deve ricevere il messaggio
Esempio di lettura di stringhe di caratteri tramite il collegamento seriale dei processori Modicon M340
In breve
L'esempio fornito descrive la lettura di una stringa di caratteri inviata da un terminale di immissione/visualizzazione dati collegato a una porta seriale del processore Modicon M340.
Questa stringa di caratteri è memorizzata nella variabile Str mentre la tabella di gestione della funzione di comunicazione è situata in gestion .
152 33003682.24
INPUT_CHAR: ricezione di stringhe di caratteri
comunicazione
Illustrazione
Un PLC Modicon M340 è collegato a un terminale di immissione/visualizzazione dati
TM8501:
Programmazione
Programmazione in ST:
IF (%M15) THEN
INPUT_CHAR(ADDM('0.0.0'), 1, 0, gestion, Str);
END_IF;
Parametri della richiesta:
Parametri
ADDM('0.0.0')
1
0 gestion
Str
Descrizione
• 0 : rack
• 0 : modulo
• 0 : canale 0
• SYS: indirizzo di sistema (opzionale sui PLC Modicon M340)
Azzera
Lettura dell'intera stringa di caratteri
Tabella di gestione
Variabile del tipo STRING che deve ricevere il messaggio
33003682.24
153
comunicazione
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
Contenuto del capitolo
Descrizione ........................................................................... 154
Presentazione
Questo capitolo descrive la funzione INPUT_CHAR_QX .
Descrizione
Descrizione della funzione
154
La funzione INPUT_CHAR_QX permette di ricevere una stringa di caratteri da un dispositivo seriale collegato a un modulo di comunicazione seriale Modicon X80 (BMX NOM) situato in una derivazione EIO.
Il messaggio ricevuto è memorizzato in una stringa di caratteri.
È possibile configurare i parametri aggiuntivi EN ed ENO .
NOTA: La funzione INPUT_CHAR_QX può essere utilizzata con un modulo Modicon
M340 BMX NOM 0200 con versione firmware SV: 1.4 o successiva. Con una versione firmware precedente, viene riportato un errore ( STATUS = 16#3301).
I blocchi funzione di comunicazione utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione. Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
33003682.24
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
Rappresentazione FBD
Rappresentazione: comunicazione
Rappresentazione LD
Rappresentazione:
33003682.24
155
comunicazione
Rappresentazione IL
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
Rappresentazione:
CAL INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT:
=InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer,
INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE=
>InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN=
>NbCharReceived, REC_BUF=>ReceivedBuffer)
Rappresentazione ST
Rappresentazione:
INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT:
=InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer,
INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE=
>InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN=
>NbCharReceived, REC_BUF=>ReceivedBuffer)
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ENABLE
ABORT
ADDR
RESET_BUF
INPUT_LEN
Tipo
BOOL
BOOL
ANY_ARRAY_INT
BOOL
INT
Commento
Impostato a 1 per ricevere una stringa di caratteri.
Impostato a 1 per interrompere l'operazione corrente.
Array contenente l'indirizzo di destinazione del modulo
Modicon M340, risultato della funzione
.
Questo parametro è utilizzato per reimpostare la memoria di ricezione:
• 0: nessun reset della memoria
• 1: reset della memoria
Numero di caratteri da ricevere:
• 0: lettura del messaggio appena è disponibile sul canale. In questo caso è necessario specificare una condizione di STOP nella schermata di configurazione.
• >0: numero di caratteri da leggere.
156 33003682.24
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
comunicazione
La tabella seguente descrive i parametri d'uscita:
Parametro
DONE
ACTIVE
ERROR
STATUS
REC_LEN
REC_BUF
Tipo
BOOL
BOOL
BOOL
WORD
INT
ANY
Commento
Impostato a 1 quando l'esecuzione della funzione è terminata correttamente.
Impostato a 1 quando l'esecuzione della funzione è in corso.
Impostato a 1 se viene rilevato un errore dal blocco funzione.
Fornisce il
se il blocco funzione rileva un errore.
Numero di caratteri ricevuti.
Caratteri ricevuti.
Regole di programmazione
Quando più funzioni INPUT_CHAR_QX sono avviate contemporaneamente, il parametro
RESET_BUF deve essere impostato a 0 (memoria di ricezione del modulo non reimpostata).
È possibile richiedere di reimpostare la memoria del modulo per il messaggio successivo
( RESET_BUF =1) in modo da evitare la ricezione di dati obsoleti. Quando il parametro
RESET_BUF è impostato a 1, è necessario eseguire la funzione INPUT_CHAR_QX prima di inviare i dati, altrimenti i caratteri già ricevuti vengono cancellati.
È possibile eseguire la funzione INPUT_CHAR_QX prima di inviare i caratteri di fine al PLC.
Se si utilizzano i caratteri di fine e se in un buffer ne sono presenti numerosi e il buffer stesso non è stato azzerato, ogni funzione INPUT_CHAR_QX riceve la stringa iniziale del buffer finché non raggiunge il primo dei caratteri di fine e poi il buffer viene rimosso dai caratteri di lettura.
Lo stesso avviene per la lettura di un numero di caratteri.
Se i caratteri di fine sono configurati, potrebbe essere possibile usare il numero della funzione di caratteri.
NOTA: Gestione RTS/CTS: nella comunicazione in Modalità caratteri, quando si utilizza l'EF INPUT_CHAR_QX , i caratteri ricevuti sul collegamento seriale vengono memorizzati in un buffer ad anello. La dimensione di questo buffer è 1024. Una volta che il buffer è pieno tutti gli altri caratteri vanno persi. Per evitare ciò è possibile selezionare la gestione RTS/CTS. In questo caso, quando il buffer ad anello è quasi pieno, la CPU azzera il segnale RTS per interrompere l'invio dei caratteri.
33003682.24
157
comunicazione
INPUT_CHAR_QX: Ricezione di stringhe di caratteri sul bus EIO
Se viene inviata una stringa di più di 1000 caratteri (ad esempio 1013), l'RTS consente di ricevere solo i primi 1000, mentre la funzione INPUT_CHAR_QX attenderà il carattere di fine a tempo indefinito.
AVVERTIMENTO
PERDITA DI DATI
Verificare che l'apparecchiatura remota non invii stringhe di più di 1000 caratteri
(compresi i caratteri finali) quando si utilizza la gestione RTS/CTS.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
NOTA: Per inviare una stringa di più di 1000 caratteri (ad esempio 1013) è necessario inviare 2 stringhe. Ad esempio, inviare prima 1000 caratteri, quindi i restanti 13 caratteri.
158 33003682.24
MBP_MSTR: Modbus Plus Master
comunicazione
Contenuto del capitolo
Descrizione della morsettiera.................................................. 159
Codici funzione operativi ........................................................ 163
Struttura del blocco di controllo della rete................................. 165
Lettura di dati......................................................................... 168
Scrittura di dati....................................................................... 170
Recupero di statistiche locali................................................... 172
Cancellazione di statistiche locali ............................................ 173
Scrittura di dati globali ............................................................ 174
Lettura di dati globali .............................................................. 175
Recupero di statistiche remote ................................................ 176
Cancellazione di statistiche remote ......................................... 178
Stato di funzionamento di Peer Cop ........................................ 179
Reset di un modulo opzionale ................................................. 180
Lettura CTE........................................................................... 181
Scrittura CTE......................................................................... 183
Invia e-mail............................................................................ 185
Invio di una richiesta Modbus.................................................. 187
Chiusura di una richiesta di collegamento ................................ 192
Lettura/scrittura dati ............................................................... 193
Attivazione / Disattivazione dei servizi HTTP o FTP/
TFTP .................................................................................... 194
Stato delle comunicazioni Peer Cop ........................................ 196
Statistiche della rete Modbus Plus........................................... 198
Statistiche di rete Ethernet TCP/IP .......................................... 203
Introduzione
Questo capitolo descrive il blocco MBP_MSTR .
Descrizione della morsettiera
Descrizione della funzione
È possibile selezionare una delle
14 operazioni di comunicazione di rete disponibili, pagina
utilizzando il blocco funzione MBP_MSTR.
Il blocco MBP_MSTR è supportato su
varie piattaforme hardware, pagina 30
.
33003682.24
159
comunicazione
È possibile configurare EN ed ENO come parametri supplementari.
NOTA: Verificare che il programmatore abbia familiarità con le procedure di instradamento della rete quando si programma un blocco funzione MBP_MSTR . Le strutture del percorso di instradamento Modbus Plus sono descritte dettagliatamente nel manuale delle architetture di comunicazione (vedi Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete Modbus Plus - Guida alla pianificazione e all'installazione . Se è implementato l'instradamento TCP/IP o SY/MAX
Ethernet (vedi Quantum con EcoStruxure ™ Control Expert, Configurazione di TCP/IP,
Manuale dell'utente), usare router EtherNet IP.
I blocchi funzione CREAD_REG , CWRITE_REG , READ_REG , WRITE_REG e MBP_MSTR utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione.
Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
NOTA: Nelle sezioni FBD e LD, questo blocco funzione può essere utilizzato a livello del programma e con i blocchi funzione derivati (DFB). Quando si usano i DFB, verificare che i parametri CONTROL e DATABUF siano collegati direttamente ai pin di I/O dell'DFB.
NOTA: Una comunicazione TCP/IP tra un PLC Quantum e un PLC Momentum è possibile solo se in ogni ciclo viene eseguito un job di lettura o di scrittura. Se per ciascun ciclo del PLC vengono inviate diverse operazioni, la comunicazione si interrompe senza generare un messaggio di errore nel registro di stato del blocco funzione.
NOTA: In Quantum o Premium Hot Standby, per impedire alla precedente CPU di standby l'esecuzione delle funzioni di comunicazione (adesso in stato RUN offline), occorre aggiungere una condizione sui bit di stato per disattivare la funzione se la CPU
è offline.
Esempio:
• È possibile inviare MBP_MSTR .Enable:=(HSBY_NOEPLCMSTR_ON) AND (%
SW61.1) AND NOT (%SW61.0) oppure
• Si può creare una variabile booleana, primary_state:=(%SW61.1) AND NOT (%
SW61.0), e inserirla per eseguire la sezione
160 33003682.24
comunicazione
NOTA: In M580Hot Standby, per impedire alla precedente CPU di standby l'esecuzione delle funzioni di comunicazione (adesso in stato RUN offline), occorre aggiungere una condizione sui bit di stato per disattivare la funzione se la CPU è offline.
Esempio:
• È possibile impostare MBP_MSTR .Enable:=(HSBY_NOEPLCMSTR_ON AND
ECPU_HSBY_1.LOCAL_HSBY_STS.RUN_PRIMARY) oppure
• Usare la variabile booleana ECPU_HSBY_1.LOCAL_HSBY_STS.RUN_PRIMARY
come condizione di esecuzione della sezione
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
Rappresentazione in FBD
33003682.24
161
comunicazione
Rappresentazione in LD
Parametri di ingresso
Parametro
ENABLE
ABORT
Tipo di dati
BOOL
BOOL
Descrizione
Quando è ON, l'operazione specificata nel primo elemento del registro
CONTROL viene attivata.
Quando è ON, l' operazione attiva, pagina 163
in atto viene interrotta.
Parametri di uscita
Parametro
ACTIVE
ERROR
SUCCESS
Tipo di dati Descrizione
BOOL ON quando l'operazione è attiva.
BOOL
BOOL
ON quando l'operazione viene interrotta senza successo.
ON quando l'operazione viene conclusa correttamente.
162 33003682.24
comunicazione
Parametro
CONTROL
DATABUF
Tipo di dati Descrizione
WORD
WORD
Questo campo contiene il blocco di controllo. Il primo elemento CONTROL[1] contiene il numero del
codice operativo dell'operazione da eseguire, pagina
. Il contenuto del registro di sequenza dipende dall'operazione.
Verificare che il campo dati sia dichiarato come variabile allocata.
La struttura del blocco di controllo è diversa
a seconda della rete utilizzata, pagina 165 .
Per le operazioni che forniscono dati (ad esempio un'operazione di scrittura ) il campo dati corrisponde all'origine dei dati. Per le operazioni che ricevono dati (ad esempio un'operazione di lettura ) il campo dati corrisponde alla destinazione dei dati.
Con le operazioni di lettura e scrittura Ethernet CTEil campo dati contiene la tabella di estensione della configurazione Ethernet. In questo caso,
DATABUF deve essere definito come array di almeno 10 elementi.
Verificare che il campo dati sia dichiarato come variabile allocata.
Errore di runtime
In caso di errore durante un'operazione MBP_MSTR , viene visualizzato un codice esadecimale nel registro CONTROL[2] del blocco di controllo per un ciclo.
NOTA: I
delle funzioni sono specifici della rete.
NOTA: Per una lista di tutti i valori e i codici di errore, vedere le tabelle
codici di errore per la libreria di comunicazione, pagina 549 .
Codici funzione operativi
Codici funzione
MBP_MSTR
validi
1
2
Codice funzione
Con il blocco MBP_MSTR è possibile attivare dalla rete una delle operazioni di comunicazione disponibili. Come illustrato nella seguente tabella, ad ogni operazione è assegnato un codice funzione. La disponibilità delle specifiche operazioni dipende dal tipo di rete e di modulo utilizzati.
Operazione CIP Ethernet
Scrittura dei dati
Lettura dei dati
Modbus
Plus
X
X
Ethernet
TCP/IP
X
X
SY/MAX
Ethernet
X
X
-
-
33003682.24
163
10
11
12
13
14 comunicazione
164 dove:
• X indica Sì
• - indica No
X
X
X
X
-
X
X
X
X
-
X
X
-
X
-
Ethernet
TCP/IP
X
-
X
-
X
X
-
-
-
-
-
SY/MAX
Ethernet
-
-
-
-
-
-
-
X
-
-
-
CIP Ethernet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
33003682.24
Struttura del blocco di controllo della rete
comunicazione
Riepilogo
La struttura del blocco di controllo MBP_MSTR varia in base al tipo di rete utilizzato. Di seguito sono descritte le strutture relative a Modbus Plus, TCP/IP Ethernet e SyMax
Ethernet.
Blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Contenuto
Indica un'operazione valida per Modbus Plus
Indica lo stato di errore
Indica la lunghezza, ad esempio il numero di unità dati trasferite (massimo 100).
Indica le informazioni dipendenti dall'operazione MSTR
Registro di instradamento 1: consente di specificare un nodo di destinazione durante un trasferimento di rete (indirizzo del percorso di instradamento uno su cinque)
Byte più significativo: indirizzo del nodo di origine, ad esempio lo slot del modulo NOM
(Network Options Module) di Modbus Plus
Quando si utilizza la porta Modbus Plus del modulo CPU, questo modulo deve essere impostato a 0 (indipendentemente dallo slot CPU).
Byte meno significativo: l'indirizzo del nodo di destinazione, ovvero un valore che rappresenta un indirizzo diretto o bridge. Se non sono presenti bridge, questo valore contiene l'indirizzo del nodo di destinazione. Se invece è presente un bridge, questo valore contiene l'indirizzo del bridge.
Se il modulo NOM è inserito nello slot 7 del rack, il byte più significativo del registro di instradamento 1 ha l'aspetto riportato di seguito (valore 0x0706):
CONTROL[6]
33003682.24
Byte più significativo Slot 1 ... 16
Byte meno significativo Indirizzo di destinazione (valore binario compreso tra 1 e 64
(normale) o tra 65 e 255 (esteso)
Registro di instradamento 2: consente di specificare l'indirizzo del nodo di destinazione
(ulteriori bridge o moduli Modbus Plus). Se l'indirizzamento del precedente registro di instradamento è stato completato, il valore è impostato a 0.
165
comunicazione
Registro
CONTROL[7]
CONTROL[8]
CONTROL[9]
Contenuto
Registro di instradamento 3, simile al registro di instradamento 2
Registro di instradamento 4, simile al registro di instradamento 2 (vedere Registro di instradamento 2)
Registro di instradamento 5, simile al registro di instradamento 2 (vedere Registro di instradamento 2)
Blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Contenuto
Indica un'operazione valida per TCP/IP
Indica lo stato di errore
Indica la lunghezza, ad esempio il numero di unità dati trasferite (massimo 100).
Indica le informazioni dipendenti dall'operazione MSTR
Registro di instradamento: consente di specificare un nodo di destinazione durante un trasferimento di rete
Byte più significativo: indirizzo del nodo di origine, ad esempio lo slot NOE del modulo
NOE
Quando si utilizza un modulo Ethernet integrato sulla CPU, questo byte deve essere impostato a 254 (FE hex) indipendentemente dallo slot CPU.
Byte meno significativo: l'indirizzo del nodo di destinazione, ovvero un valore che rappresenta un indirizzo diretto o bridge. Se non sono presenti bridge, il valore del byte meno significativo è impostato a 0. Se invece è presente un bridge, questo valore contiene l'MBP per l'indice di mappatura Ethernet (MET).
Se il modulo NOE è inserito nello slot 7 del rack e l'indice di mappatura Ethernet (MET) è
6, il registro di instradamento si presenta come segue (valore 0x0706):
166
CONTROL[6]
CONTROL[7]
CONTROL[8]
Byte più significativo Slot 1 ... 16
Byte meno significativo indice di mappatura MBP on Ethernet Transporter (MET)
Byte 4, MSB dell'indirizzo IP di destinazione a 32 bit.
Byte 3 dell'indirizzo IP di destinazione a 32 bit.
Byte 2 dell'indirizzo IP di destinazione a 32 bit.
33003682.24
comunicazione
Registro
CONTROL[9]
CONTROL[10]
CONTROL[11]
Contenuto
Byte 1, LSB dell'indirizzo IP di destinazione a 32 bit.
Indica le informazioni dipendenti dall'operazione MSTR
Indica le informazioni dipendenti dall'operazione MSTR
NOTA: CONTROL[10] e CONTROL[11] sono usati durante la configurazione del blocco
MBP_MSTR per un'operazione di Lettura/Scrittura dati (codice funzione 23).
Blocco di controllo per Ethernet SY/MAX
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Contenuto
Indica un'operazione valida per SY/MAX
Indica lo stato di errore
Indica la lunghezza, ad esempio il numero registri trasferiti (massimo 100)
Indica le informazioni dipendenti dall'operazione MSTR
Registro di instradamento: consente di specificare un nodo di destinazione durante un trasferimento di rete
Byte più significativo: indirizzo del nodo di origine, ad esempio lo slot del modulo NOE
Byte meno significativo: l'indirizzo del nodo di destinazione, ovvero un valore che rappresenta un indirizzo diretto o bridge. Se non sono presenti bridge, il valore del byte meno significativo è impostato a 0. Se invece è presente un bridge, questo valore contiene l'MBP per l'indice di mappatura Ethernet (MET).
Se il modulo NOM è inserito nello slot 7 del rack e l'indice di mappatura Ethernet (MET) è
6, il registro di instradamento ha l'aspetto riportato di seguito (valore 0x0706):
CONTROL[6]
CONTROL[7]
Byte più significativo Slot 1 ... 16
Byte meno significativo indice di mappatura MET (MBP on Ethernet Transporter)
Numero derivazione della destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
33003682.24
167
comunicazione
Lettura di dati
Descrizione
Un'operazione di lettura trasferisce i dati da un dispositivo di origine slave specificato a un dispositivo di destinazione master sulla rete. L'operazione utilizza un percorso di transazione master e il suo completamento può richiedere più cicli. Per programmare un blocco MBP_MSTR in modo che esegua un'operazione di scrittura, usare il
.
NOTA: Non cercare di programmare un MBP_MSTR per la lettura del proprio indirizzo di stazione. Questa azione provoca la generazione di un errore da parte del blocco funzione nel
registro CONTROL[2] del blocco di controllo, pagina 165 .
È possibile leggere un'operazione di lettura su un registro slave inesistente. Lo slave rileva e registra lo stato; questa operazione può durare per diversi cicli.
NOTA: Per la comunicazione di un Quantum PLC con un Premium/Atrium PLC, confermare che l'indirizzamento venga eseguito con offset 1. Per accedere a un oggetto indirizzo n di un PLC Premium, accertarsi che la funzione di comunicazione del PLC
Quantum utilizzi l'indirizzo n+1 . L'indirizzamento IEC inizia a 0 e l'indirizzamento
Modbus inizia a 1.
Implementazione di rete
L'operazione di scrittura può essere eseguita su reti Modbus Plus, TCP/IP Ethernet e SY/
MAX Ethernet.
Uso del blocco di controllo Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
...
CONTROL[9]
Significato
2 = Lettura dati
Indica lo stato di errore.
Numero di registri da leggere dallo slave.
Determina il registro iniziale %MW dello slave dal quale sono letti i dati, ad es., 1 = %
MW1, 49 = %MW49.
Il registro di instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso di instradamento uno su cinque) del nodo durante un trasferimento di rete.
L'ultimo byte del percorso di indirizzamento diverso da 0 è il nodo di destinazione.
168 33003682.24
Uso del blocco di controllo per TCP/IPEthernet comunicazione
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
2 = Lettura dati
Indica lo stato di errore.
Numero di indirizzi da leggere dallo slave.
Determina il registro iniziale %MW dello slave dal quale sono letti i dati, ad es., 1 = %MW1,
49 = %MW49.
Registro di instradamento
• Byte più significativo: slot del modulo adattatore di rete
• Byte meno significativo: indice di mappatura MBPon EthernetTransporter (MET)
Ogni indirizzo contiene 1 byte dell'indirizzo IP a 32 bit, dove il MSB si trova in CONTROL
[6] e il LSB si trova in CONTROL[9].
Uso del blocco di controllo per SY/MAXEthernet
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
2 = Lettura dati
Indica lo stato di errore.
Numero di indirizzi da leggere dallo slave.
Determina il registro iniziale %MW dello slave nel quale vengono scritti i dati, ad es., 1 = %
MW1, 49 = %MW49.
Registro di instradamento:
• Byte più significativo: slot del modulo adattatore di rete
• Byte meno significativo: numero della derivazione di destinazione
Terminazione: FF hex
33003682.24
169
comunicazione
Scrittura di dati
Descrizione
Un'operazione di scrittura trasferisce i dati da un dispositivo di origine master a un dispositivo di destinazione slave specificato sulla rete. Questa operazione utilizza un percorso di transazione master e può richiedere diversi cicli per il completamento. Per programmare un blocco MBP_MSTR in modo che esegua un'operazione di scrittura, usare il
.
NOTA: Non cercare di programmare un MBP_MSTR per la scrittura nell'indirizzo della propria derivazione. Questa azione provoca la generazione di un errore da parte del blocco funzione nel
registro CONTROL[2] del blocco di controllo, pagina 165 .
È possibile eseguire un'operazione di scrittura in un registro slave inesistente. Lo slave rileva e registra lo stato, che può durare per diversi cicli.
NOTA: Per la comunicazione di un PLC Quantumcon un PLCPremium/Atrium, confermare che l'indirizzamento venga eseguito con offset 1. Per accedere a un oggetto indirizzo n di un PLC Premium, accertarsi che la funzione di comunicazione del PLC
Quantum utilizzi l'indirizzo n+1 . L'indirizzamento IEC inizia a 0 e l'indirizzamento
Modbus inizia a 1.
Implementazione di rete
L'operazione di scrittura può essere eseguita sulle reti Modbus Plus, TCP/IP Ethernete SY/
MAX Ethernet.
Uso del blocco di controllo Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
...
CONTROL[9]
Significato
1 = Scrittura dati
Indica lo stato di errore.
Numero di indirizzi inviati allo slave.
Determina il registro iniziale %MW dello slave in cui vengono scritti i dati, ad es. 1 = %
MW1, 49 = %MW49.
Il registro di instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso di instradamento uno su cinque) del nodo durante un trasferimento di rete.
L'ultimo byte del percorso di indirizzamento diverso da 0 è il nodo di destinazione.
170 33003682.24
Uso del blocco di controllo per TCP/IPEthernet comunicazione
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
1 = Scrittura dati
Indica lo stato di errore.
Numero di indirizzi inviati allo slave.
Determina l'indirizzo iniziale %MW dello slave nel quale vengono scritti i dati.
Registro di instradamento:
• Byte più significativo: slot del modulo adattatore di rete
• Byte meno significativo: indice di mappatura MBP on transporterEthernet (MET)
Ogni indirizzo contiene 1 byte dell'indirizzo IP a 32 bit.
CONTROL[6]
...
CONTROL[9]
Uso del blocco di controllo per SY/MAXEthernet
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
1 = Scrittura dati
Indica lo stato di errore.
Numero di indirizzi inviati allo slave.
Determina il registro iniziale %MW dello slave nel quale vengono scritti i dati, ad es., 1 = %
MW1, 49 = %MW49.
Registro di instradamento:
• Byte più significativo: slot del modulo adattatore di rete
• Byte meno significativo: numero della derivazione di destinazione
Terminazione: FF hex
33003682.24
171
comunicazione
Recupero di statistiche locali
Descrizione
Un'operazione di recupero di statistiche locali consente di leggere dati da un nodo locale in un solo ciclo, senza che sia necessario un percorso di transazione master.
Per programmare un blocco MBP_MSTR per il recupero di statistiche locali , utilizzare il
codice funzione 3, pagina 163 .
Implementazione di rete
È possibile eseguire operazioni di recupero di statistiche locali su reti Modbus
Plus e
.
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
3 = Recupero statistiche locali
Indica lo stato di errore
Numero di indirizzi da leggere dalle statistiche locali (1..54)
Nota: la dimensione di databuf deve essere almeno pari alla dimensione di questa voce.
Primo indirizzo a partire da cui deve essere letta la tabella di statistiche (Reg1=0).
Il registro di instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso di instradamento uno su cinque) del nodo durante un trasferimento di rete.
L'ultimo byte diverso da zero nel percorso di instradamento è il nodo di destinazione.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
Significato
3 = Recupero statistiche locali
Indica lo stato di errore
Numero di indirizzi da leggere dalle statistiche locali (1...38)
172 33003682.24
Registro
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9] comunicazione
Significato
Nota: la dimensione di databuf deve essere pari alla dimensione di questa voce.
Primo indirizzo a partire da cui deve essere letta la tabella di statistiche (Reg1=0).
Registro di instradamento
Byte più significativo: slot modulo adattatore di rete.
Non usato
Cancellazione di statistiche locali
Descrizione
Un'operazione di cancellazione di statistiche locali consente di cancellare i valori dalle parole 13 ... 22 dalla tabella di statistiche del nodo locale. Il completamento dell'operazione richiede un solo ciclo e non è necessario utilizzare un percorso di transazione master. Per programmare un blocco MBP_MSTR per la cancellazione di statistiche locali, utilizzare il
.
Implementazione di rete
È possibile eseguire operazioni di cancellazione di statistiche locali su reti Modbus Plus ed
.
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
Significato
4 = Cancellazione di statistiche locali
Indica lo stato di errore.
Riservato
33003682.24
173
comunicazione
Registro
CONTROL[4]
CONTROL[5]
Significato
Riservato
Il registro di instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso di instradamento uno su cinque) del nodo durante un trasferimento di rete.
L'ultimo byte diverso da zero nel percorso di instradamento è il nodo di destinazione.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
4 = Cancellazione di statistiche locali
Indica lo stato di errore.
Riservato
Riservato
Registro di instradamento
Byte più significativo: slot modulo adattatore di rete.
Riservato CONTROL[6]
...
CONTROL[9]
Scrittura di dati globali
Descrizione
Un'operazione di scrittura di dati globali consente di trasferire i dati dal processore delle comunicazioni del nodo corrente. I dati possono essere trasmessi nella rete non appena il nodo riceve il token e quindi
letti da tutti i nodi collegati alla rete locale, pagina 175
.
Il completamento di un'operazione di scrittura di dati globali richiede un solo ciclo e non è necessario utilizzare un percorso di transazione master. Per programmare un blocco MBP_
MSTR per la scrittura di dati globali, utilizzare il
.
174 33003682.24
Implementazione di rete comunicazione
È possibile eseguire operazioni di scrittura di dati globali solo su reti Modbus Plus. Le operazioni di lettura e scrittura di dati globali compromettono la funzionalità Modbus Plus denominata Peer Cop .
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
5 = Scrittura di dati globali
Indica lo stato di errore.
Numero di indirizzi da scrivere dalla RAM di stato alla memoria dati globali (processore comunicazioni) (1...32)
Riservato
Se i dati globali vengono inviati tramite un modulo NOM, immettere lo slot di tale modulo nel byte più significativo del registro.
Lettura di dati globali
Descrizione
Un'operazione di lettura di dati globali consente di leggere i dati dal processore delle comunicazioni di un nodo della rete in cui
sono presenti dati globali scritti, pagina 174 . Non
è necessario utilizzare un percorso di transazione master.
Se i dati globali non sono attualmente disponibili con i nodi chiamati, il completamento dell'operazione di lettura può richiedere più cicli. Se invece i dati globali sono disponibili, l'operazione viene eseguita in un solo ciclo. Per programmare un blocco MBP_MSTR per la lettura di dati globali, utilizzare il
.
Implementazione di rete
È possibile eseguire operazioni di lettura di dati globali solo su reti Modbus Plus. Le operazioni di lettura e scrittura di dati globali compromettono la funzionalità Modbus Plus denominata Peer Cop .
33003682.24
175
comunicazione
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
6 = Lettura di dati globali
Indica lo stato di errore.
Numero di indirizzi da inviare dalla memoria dati globali (processore comunicazioni)
(1...32)
Visualizza gli indirizzi disponibili nel nodo analizzato (questo registro viene aggiornato automaticamente).
Il byte meno significativo contiene l'indirizzo del nodo di cui si desidera leggere i dati globali. Si tratta di un valore compreso tra 1 e 64.
Se i dati globali vengono inviati tramite un modulo NOM, immettere lo slot di tale modulo nel byte più significativo del registro.
Recupero di statistiche remote
Descrizione
Un'operazione di recupero di statistiche remote consente di leggere i dati dai nodi remoti nella rete. Con ciascuna query, il processore delle comunicazioni remote genera una tabella completa di statistiche, anche se la query in oggetto non si riferisce all'intera tabella.
Vengono quindi copiate soltanto le parole oggetto della query, identificate dall'indirizzo
$MW.
Il completamento dell'operazione può richiedere più cicli. Non è necessario utilizzare un percorso di transazione master. Per programmare un blocco MBP_MSTR per il recupero di statistiche remote, utilizzare il
.
Implementazione di rete
Un'operazione di recupero di statistiche remote può essere eseguita sulle reti Modbus Plus e TCP/IP Ethernet.
176 33003682.24
Utilizzo del blocco di controllo per Modbus Plus comunicazione
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
...
CONTROL[9]
Significato
7 = Recupera statistiche remote
Indica lo stato di errore
Numero di indirizzi da leggere dal campo dati relativo alle statistiche (1 ... 54).
Nota: la dimensione di databuf deve essere almeno pari alla dimensione di questa voce.
Primo indirizzo a partire da cui devono essere lette le statistiche del nodo. Non superare il numero di registri statistici disponibile.
Indirizzi di instradamento 1 ... 5 del nodo.
L'ultimo byte diverso da zero nel percorso di instradamento è il nodo di destinazione.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
7 = Recupera statistiche remote
Indica lo stato di errore
Numero di indirizzi da leggere dal campo dati relativo alle statistiche (1 ... 38).
Nota: la dimensione di databuf deve essere almeno pari alla dimensione di questa voce.
Primo indirizzo a partire da cui devono essere lette le statistiche del nodo. Non superare il numero di registri statistici disponibile.
Registro di instradamento
Byte più significativo: slot modulo adattatore di rete
Ciascun indirizzo contiene 1 byte dell'indirizzo IP a 32 bit, dove il valore di CONTROL[6] corrisponde all'MSB e il valore di CONTROL[9] corrisponde all'LSB.
33003682.24
177
comunicazione
Cancellazione di statistiche remote
Descrizione
Un'operazione di cancellazione di statistiche remote consente di cancellare i valori dei nodi remoti dalle parole 13... 22 nella tabella delle statistiche del nodo locale. L'operazione utilizza un percorso di transazione master e il suo completamento può richiedere più cicli.
Per programmare un blocco MBP_MSTR per l'esecuzione di un'operazione di cancellazione delle statistiche remote, utilizzare il
.
Implementazione di rete
È possibile eseguire operazioni di cancellazione di statistiche remote su reti Modbus Plus ed
.
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
...
CONTROL[9]
Significato
8 = Cancellazione di statistiche remote
Indica lo stato di errore.
Riservato
Riservato
Il registro di instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno su cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte diverso da zero nel percorso di instradamento è il nodo di destinazione.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
Significato
8 = Cancellazione di statistiche remote
Indica lo stato di errore.
Riservato
178 33003682.24
Registro
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9] comunicazione
Significato
Riservato
Registro di instradamento
Byte più significativo: slot modulo adattatore di rete.
Ogni indirizzo contiene un byte dell'indirizzo IP a 32 bit, dove il byte più significativo è in
CONTROL[6] e il byte meno significativo è in CONTROL[9].
Stato di funzionamento di Peer Cop
Descrizione
Un'operazione sullo stato di funzionamento di Peer Cop legge i dati selezionati dalla tabella delle comunicazioni Peer Cop e li scarica nei registri degli indirizzi %MW della RAM di stato specificati. Per programmare un blocco MBP_MSTR per l'esecuzione di un'operazione sullo stato di funzionamento di Peer Cop, utilizzare il
codice funzione 9, pagina 163 .
NOTA: lo stato di funzionamento Peer Cop è operativo soltanto se è stato configurato uno scanner I/O basato su Peer Cop.
La tabella di stato delle comunicazioni Peer Cop contiene 12 parole.
MBP_MSTR indicizza tutte le parole con i numeri da 0 a 11.
Implementazione di rete
Un'operazione sullo stato di funzionamento di Peer Cop può essere eseguita solo su reti
Modbus Plus.
Utilizzo del blocco di controllo per Modbus Plus
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
Significato
9 = Stato di funzionamento Peer Cop
Indica lo stato di errore.
Numero di parole richiesto dalla tabella Peer Cop (1...12).
33003682.24
179
comunicazione
Registro
CONTROL[4]
CONTROL[5]
Significato
Prima parola da leggere dalla tabella Peer Cop, dove 0 = prima parola e 11 = ultima parola.
Indirizzo di instradamento 1
Se questo è il secondo di due nodi locali, impostare il byte più significativo a 1.
Reset di un modulo opzionale
Descrizione
Se si esegue un'operazione di reset di un modulo opzionale, in un modulo di comunicazione
Ethernet Quantum NOE o nella porta Ethernet di un modulo CPU 140CPU65150/60 viene avviato un ciclo che reimposta lo specifico ambiente di lavoro. Per programmare un blocco
MBP_MSTR per l'esecuzione di un'operazione di reset di un modulo opzionale, utilizzare il
codice funzione 10, pagina 163 .
Implementazione di rete
È possibile eseguire un'operazione di reset di un modulo opzionale su reti
e Ethernet SY/MAX.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
10 = Reset di un modulo opzionale
Indica lo stato di errore
Nessun significato
Nessun significato
Registro di instradamento, pagina 166
Nessun significato
180 33003682.24
comunicazione
Utilizzo del blocco di controllo per Ethernet SY/MAX
(
CONTROL
)
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
...
CONTROL[9]
Significato
10 = Reset di un modulo opzionale
Indica lo stato di errore
Nessun significato
Nessun significato
Registro di instradamento, pagina 167
Nessun significato
Lettura CTE
Descrizione
Un'operazione di lettura CTE legge un determinato numero di byte dalla tabella di estensione della configurazione (CTE) Ethernet nel buffer specificato della memoria PLC.
Questi byte iniziano con un offset di byte all'inizio della tabella CTE. Il contenuto della tabella
CTE è visualizzato nel
parametro di uscita, pagina 162
DATABUF . Per programmare un blocco MBP_MSTR per l'esecuzione di un'operazione di cancellazione delle statistiche remote, utilizzare il
codice funzione 11, pagina 163
.
Implementazione di rete
Un'operazione di lettura CTE può essere eseguita su reti Ethernet TCP/IP ed Ethernet SY/
MAX.
33003682.24
181
comunicazione
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]...
CONTROL[9]
Significato
11 = Lettura CTE
Indica lo stato di errore
Impostazione della lunghezza: un valore compreso tra 12 e 37.
Nessun significato
Registro di instradamento
Byte meno significativo = indice di mappatura
Un valore visualizzato nel byte del registro non è utilizzato o byte più significativo = slot modulo adattatore di rete
Nessun significato
Utilizzo del blocco di controllo per Ethernet SY/MAX
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
11 = Lettura CTE
Indica lo stato di errore
Numero di parole trasferite
Offset di byte nella struttura del registro PLC, che specifica da dove sono letti i byte CTE
Registro di instradamento
MSB: slot del modulo NOE
Terminatore: FF esa CONTROL[6]
...
CONTROL[9]
182 33003682.24
comunicazione
Implementazione dell'indicatore CTE (
DATABUF
)
I valori indicati nella tabella CTE sono visualizzati nell'uscita DATABUF quando è implementata un'operazione di lettura CTE. I registri visualizzano i seguenti dati CTE:
Implementazione dell'indicatore CTE ( DATABUF ):
Parametro
Tipo di frame
Indirizzo IP
Maschera di rete inferiore
Gateway
Registro
DATABUF[0]
DATABUF[1]
DATABUF[2]
DATABUF[3]
DATABUF[4]
DATABUF[5]
DATABUF[6]
DATABUF[7]
DATABUF[8]
DATABUF[9]
DATABUF[10]
Contenuto
1 = 802.3
2 = Ethernet
Primo byte dell'indirizzo IP
Secondo byte dell'indirizzo IP
Terzo byte dell'indirizzo IP
Quarto byte dell'indirizzo IP
Parola più significativa
Parola meno significativa
Primo byte del gateway
Secondo byte del gateway
Terzo byte del gateway
Quarto byte del gateway
Scrittura CTE
Descrizione
Un'operazione di scrittura CTE scrive la tabella di configurazione CTE a partire dai dati specificati ( DATABUF ) in una tabella di estensione della configurazione Ethernet specificata o in un determinato slot. Per programmare un blocco MBP_MSTR per l'esecuzione di un'operazione di scrittura CTE, utilizzare il
codice funzione 12, pagina 163
.
Implementazione di rete
Un'operazione di scrittura CTE può essere eseguita su reti
ed
Ethernet SY/MAX.
33003682.24
183
comunicazione
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
12 = Scrittura CTE
Indica lo stato di errore.
Impostazione della lunghezza: un valore compreso tra 12 e 37
Nessun significato
Registro di instradamento
Byte meno significativo = indice di mappatura
Un valore visualizzato nel byte dell'indirizzo non è utilizzato oppure
Byte più significativo = slot modulo adattatore di rete
Nessun significato CONTROL[6]
...
CONTROL[9]
Utilizzo del blocco di controllo per Ethernet SY/MAX
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
CONTROL[7]
...
CONTROL[9]
Significato
12 = Scrittura CTE (tabella di estensione config.)
Indica lo stato di errore
Numero di parole trasferite
Offset di byte nella struttura dell'indirizzo PLC che specifica dove sono scritti i byte CTE.
Registro di instradamento
Byte più significativo = slot del modulo NOE
Byte meno significativo = numero derivazione della destinazione
Terminatore: FF esa
Nessun significato
184 33003682.24
comunicazione
Implementazione dell'indicatore CTE (
DATABUF
)
I valori nella tabella di estensione della configurazione (CTE) Ethernet sono visualizzati nel campo di uscita DATABUF quando è implementata un'operazione di scrittura CTE. I registri sono utilizzati per trasferire i seguenti dati CTE:
Implementazione dell'indicatore CTE ( DATABUF ):
Parametro
Tipo di frame
Registro
DATABUF[0]
Indirizzo IP
Maschera di rete inferiore
Gateway
DATABUF[1]
DATABUF[2]
DATABUF[3]
DATABUF[4]
DATABUF[5]
DATABUF[6]
DATABUF[7]
DATABUF[8]
DATABUF[9]
DATABUF[10]
Contenuto
1 = 802.3
2 = Ethernet
Primo byte dell'indirizzo IP
Secondo byte dell'indirizzo IP
Terzo byte dell'indirizzo IP
Quarto byte dell'indirizzo IP
Parola più significativa
Parola meno significativa
Primo byte del gateway
Secondo byte del gateway
Terzo byte del gateway
Quarto byte del gateway
Invia e-mail
Descrizione
Il servizio di notifica della posta elettronica permette ai progetti basati sul controller di segnalare gli allarmi o gli eventi. Il controller monitora il sistema e crea dinamicamente un messaggio di posta elettronica, che avverte gli utenti locali o remoti.
Un evento o una condizione definiti dall'utente attivano la creazione di un messaggio da parte del blocco MSTR. Ogni messaggio utilizza una delle tre intestazioni definite dall'utente. Ogni messaggio inviato dal controller può contenere informazioni di testo e sulle variabili (con un massimo di 238 byte).
Il progetto seleziona l'intestazione appropriata. Ogni intestazione contiene:
33003682.24
185
comunicazione
• nome del mittente
• lista dei destinatari
• oggetto
Per programmare un blocco MBP_MSTR per l'invio di messaggi e-mail, usare il
codice funzione 13, pagina 163 .
Implementazione di rete
Un'operazione di invio e-mail può essere eseguita su una rete Ethernet TCP/IP.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Registro
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
Significato
13 = invia e-mail
Indica i
codici di errore specifici dell'e-mail, pagina 568
Numero di parole trasferite
Non utilizzato
Byte più significativo: indirizzo slot del modulo NOE o 0xFE per 140 CPU 651 60
Byte meno significativo: sempre 0
Non utilizzato CONTROL[6]
...
CONTROL[9]
186 33003682.24
Descrizione del parametro DATABUF
Registro
DATABUF 1
DATABUF 2
...
DATABUF 119 comunicazione
Contenuto
L'intestazione del messaggio e-mail è il byte meno significativo con un valore di
1, 2 o 3.
Il byte più significativo contiene il numero ( n ) di caratteri dell'oggetto, un valore compreso tra 0 e 238.
I dati (in formato ASCII) che verranno copiati nel messaggio e-mail.
I primi n caratteri vengono aggiunti nell'oggetto del messaggio e-mail configurato. I caratteri rimanenti (2 * N -2 n ) fanno parte del corpo del messaggio, dove N è il numero di parole trasferite.
Invio di una richiesta Modbus
In breve
Usare l'operazione MSRT 15 per inviare richieste Modbus generiche sulla rete.
NOTA: questa operazione non è disponibile sulle porte Modbus Plus (porta integrata sui moduli CPU o NOM), né sulla porta Ethernet integrata su una CPU.
Operazioni con i blocchi
Il blocco MBP_MSTR può inviare richieste e ricevere risposte della lunghezza massima di
253 byte.
Per maggiori informazioni fare riferimento a
Operazione con i blocchi, pagina 159 :
• Quando il pin di ingresso ENABLE è attivato, l'operazione 15 ha inizio.
• Se il pin di ingresso ABORT è attivato o il pin di ingresso ENABLE è disattivato, l'operazione termina.
• Il pin di uscita ACTIVE è attivato durante l'operazione.
• Il pin di uscita ERROR si attiva se l'operazione non viene interrotta correttamente.
• Il pin di uscita SUCCESS si attiva se l'operazione viene conclusa correttamente.
• I pin di uscita CONTROL e DATABUF definiscono l'operazione (fare riferimento a
Blocco di controllo, pagina 188 e Buffer di dati, pagina 188 ).
• È possibile configurare EN ed ENO come parametri supplementari.
33003682.24
187
comunicazione
Blocco di controllo
Il formato del Blocco di controllo è descritto nella tabella seguente:
Parola
CONTROL[1]
CONTROL[2]
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
CONTROL[7]
CONTROL[8]
CONTROL[9]
CONTROL[10]
CONTROL[11]
Descrizione
15 = invio di una richiesta Modbus
Indica lo stato di errore rilevato
Lunghezza DATABUF (numero di WORD)
Offset per l'inizio della risposta nel DATABUF (numero di WORD).
NOTA: per evitare di sovrascrivere la richiesta, il valore di offset della risposta moltiplicato per 2 deve essere maggiore della lunghezza della risposta (CONTROL[10]).
Registro di instradamento:
Byte più significativo = slot del modulo di comunicazione Ethernet
Byte meno significativo = indice di mappatura MBP on Ethernet transporter (MET)
(noto anche come ID unità)
Byte 4 dell'indirizzo IP (MSB)
Byte 3 dell'indirizzo IP
Byte 2 dell'indirizzo IP
Byte 1 dell'indirizzo IP (LSB)
Lunghezza dei dati della richiesta DATABUF (byte)
Lunghezza della risposta DATABUF ricevuta (byte)
NOTA: Questo parametro viene letto solo se impostato dal modulo opzionale dopo la conclusione dell'operazione.
Buffer di dati
Il protocollo MODBUS definisce un'unità dati protocollo (PDU, protocol data unit) semplice indipendente dai layer di comunicazione sottostanti.
Il buffer di dati (DATABUF) è formato da registri contigui che comprendono sia il PDU di richiesta Modbus che il PDU di risposta Modbus:
DATABUF
Lunghezza buffer dati è impostato nella parola CONTROL[3].
PDU di richiesta Modbus :
Lunghezza richiesta dati è impostato nella parola CONTROL[10].
188 33003682.24
comunicazione
PDU di risposta Modbus :
Avvio risposta dati ( Offset risposta ) è impostato nella parola CONTROL[4].
NOTA: per evitare di sovrascrivere la richiesta, il valore di offset della risposta moltiplicato per 2 deve essere maggiore della lunghezza della risposta (CONTROL[10]).
Lunghezza risposta dati è impostato nella parola CONTROL[11].
ATTENZIONE
PERDITA DI DATI
Verificare che l' Offset risposta sia maggiore della Lunghezza richiesta dati .
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
NOTA: Sia la richiesta che la risposta devono essere strutturate in formato Little Endian.
Ogni parola è formata da 2 byte di dati in formato Little Endian, dove il byte meno significativo è memorizzato nell'indirizzo di memoria più piccolo.
Richiesta Modbus
Il formato del PDU della richiesta Modbus è:
Offset byte
1
2
Zona
Codice funzione
Dati della richiesta
Tipo dati
BYTE
Area BYTE
Descrizione
Codice funzione Modbus
Questo campo dipende dal codice funzione e contiene informazioni come referenze delle variabili, conteggi delle variabili, offset di dati, codici di sottofunzioni, ecc.
Risposta Modbus
Il formato del PDU della risposta Modbus è:
Offset byte
1
2
Zona
Codice funzione
Dati risposta
Tipo dati
BYTE
Area BYTE
33003682.24
Descrizione
Codice funzione Modbus
Questo campo dipende dal codice funzione e contiene informazioni come referenze delle variabili, conteggi delle variabili, offset di dati, codici di sottofunzioni, ecc.
189
comunicazione
Risposta all'eccezione Modbus
Il formato del PDU della risposta all'eccezione Modbus è:
Offset byte
1
2
Zona
Codice funzione
Codice eccezione
Tipo dati
BYTE
BYTE
Descrizione
Codice funzione Modbus + 80 (hex)
Questo campo è definito nel documento MODBUS
Application Protocol Specification .
Specifica Modbus
I codici funzione Modbus standard sono definiti nel documento MODBUS Application
Protocol Specification , V1.1b, che può essere scaricato da www.modbus-ida.org.
Esempio di invio di richiesta Modbus
Allo scopo di leggere 4 registri di ingresso contigui (codice funzione Modbus 4) a partire dal registro 100 (64 hex) in un dispositivo remoto, una richiesta Modbus deve essere inviata sulla rete con la seguente risposta Modbus .
Nome campo richiesta
Codice funzione
Indirizzo iniziale, High
Indirizzo iniziale, Low
Numero di registri, High
Numero di registri, Low
64
00
04
Valore
04
00
Nome campo risposta
Codice funzione
Conteggio byte
Valore registro 100, High
Valore registro 100, Low
Valore registro 101, High
Valore registro 101, Low
00
01
00
02
Valore
04
08
190 33003682.24
comunicazione
Nome campo risposta
Valore registro 102, High
Valore registro 102, Low
Valore registro 103, High
Valore registro 103, Low
Valore
00
03
00
04
Usando i seguenti valori della parola CONTROL:
• CONTROL[1] (operazione MSTR) = 15
• CONTROL[2] (codice errore) = fare riferimento alla descrizione del blocco CONTROL
(sola lettura)
• CONTROL[3] (lunghezza DATABUF) = 11
• CONTROL[4] (offset risposta) = 5
• CONTROL[5] (registro di instradamento) = fare riferimento alla descrizione del blocco
CONTROL
• CONTROL[6] (IP1) = fare riferimento alla descrizione del blocco CONTROL
• CONTROL[7] (IP1) = fare riferimento alla descrizione del blocco CONTROL
• CONTROL[8] (IP1) = fare riferimento alla descrizione del blocco CONTROL
• CONTROL[9] (IP1) = fare riferimento alla descrizione del blocco CONTROL
• CONTROL[10] (lunghezza richiesta) = 5
• CONTROL[11] (lunghezza risposta) = 10
La codifica dei dati nel buffer dei dati è la seguente:
Zona Descrizione
Richiesta
Risposta
DATABUF[1]
DATABUF[2]
DATABUF[3]
DATABUF[4]
DATABUF[5]
DATABUF[6]
DATABUF[7]
DATABUF[8]
DATABUF[9]
DATABUF[10]
Valore
(hex)
0400
6400
0400
0000
0000
0408
0001
0002
0003
0004
Codice funzione + Indirizzo iniziale, High
Indirizzo iniziale, Low + Numero di registri, High
Numero di registri, Low + NULL
Null
Null
Codice funzione + Conteggio byte
Valore registro 100, High + Valore registro 100, Low
Valore registro 101, High + Valore registro 101, Low
Valore registro 102, High + Valore registro 102, Low
Valore registro 103, High + Valore registro 103, Low
33003682.24
191
comunicazione
Zona
DATABUF[11]
Valore
(hex)
0000
Descrizione
Null
Chiusura di una richiesta di collegamento
In breve
Eseguire l'operazione 16 MBP_MSTR per chiudere un collegamento Modbus TCP/IP sulla rete.
NOTA: Quest'operazione non è disponibile sulle porte Modbus Plus (porta integrata nei moduli CPU o NOM).
Operazioni dei blocchi
Il blocco MBP_MSTR può inviare richieste e ricevere risposte di lunghezza max. di 253 byte. Per le operazioni dei blocchi, vedere la
descrizione dei blocchi, pagina 159 :
• Quando il pin di ingresso ENABLE è attivato, inizia l'operazione 15.
• Se il pin di ingresso ABORT è attivato o se il pin di ingresso ENABLE è disattivato, l'operazione finisce.
• Il pin di uscita ACTIVE è attivato durante l'operazione.
• Il pin di uscita ERROR si attiva se l'operazione viene interrotta senza successo.
• Il pin di uscita SUCCESS si attiva se l'operazione viene completata correttamente.
• I
CONTROL e DATABUF definiscono l'operazione.
• È possibile configurare EN ed ENO come parametri supplementari.
Blocco Control
192
Il formato del blocco CONTROL è descritto di seguito:
Registro
CONTROL[1 ]
CONTROL[2]
Funzione
Funzionamento
Stato dell'errore
Descrizione
16 = chiusura del collegamento
Indica lo
stato dell'errore rilevato, pagina 551
(sola lettura)
33003682.24
Registro
CONTROL[3 ]
CONTROL[4 ]
CONTROL[5 ]
CONTROL[6]
CONTROL[7]
CONTROL[8]
CONTROL[9 ] comunicazione
Funzione
(Non in uso)
(Non in uso)
Registro di instradamento
Indirizzo IP
Descrizione
–
–
Byte più significativo = slot del modulo di comunicazione Ethernet
Byte più significativo = indice di mappatura
MBP on Ethernet transporter (MET) (noto anche come ID unità)
Byte 4 dell'indirizzo IP (MSB)
Byte 3 dell'indirizzo IP
Byte 2 dell'indirizzo IP
Byte 1 dell'indirizzo IP (LSB)
Lettura/scrittura dati
Introduzione
In una singola transazione, le operazioni di lettura e scrittura MSTR possono trasferire i dati da un dispositivo di origine master in uno specifico dispositivo di destinazione slave e quindi trasferire i dati dall'origine slave specificata al master. Questo processo utilizza un percorso di transazione master e può richiedere più cicli per il completamento. Per programmare un blocco MBP_MSTR in modo da eseguire un'operazione di lettura/scrittura combinata, utilizzare il
codice funzione 23, pagina 163 .
L'operazione di lettura/scrittura combinata può essere utilizzata solo con i seguenti due modelli:
• Quantum: NOE 771 01 (3.0 o versione successiva) o NOE 771 11 (3.0 o versione successiva)
• Momentum: M1E CPU (1.0 o successiva)
Uso del blocco Control
Registro
CONTROL[1]
CONTROL[2]
Contenuto
23 = lettura/scrittura dati.
Indica lo stato di errore.
33003682.24
193
comunicazione
Registro
CONTROL[3]
CONTROL[4]
CONTROL[5]
Contenuto
Numero di registri da inviare allo slave.
Specifica il registro iniziale %MW dello slave nel quale verranno scritti i dati, ad esempio
1 = %MW1, 49 = %MW49.
Registro di instradamento:
Byte più significativo: slot del modulo adattatore di rete.
Byte meno significativo: indice di mappatura MBP su Ethernet Transporter (MET)
Ogni indirizzo contiene 1 byte dell'indirizzo IP a 32 bit, dove l'MSB è in CONTROL[6] e l'LSB in CONTROL[9].
CONTROL[6]
...
CONTROL[9]
CONTROL[10]
CONTROL[11]
Numero di registri da leggere dallo slave.
Specifica il registro iniziale %MW dello slave da cui vengono letti i dati, ad esempio 1 = %
MW1, 49 = %MW49.
NOTA: Durante la configurazione del blocco MBP_MSTR per un'operazione di lettura/ scrittura dati, si noti che
• Il parametro di uscita DATABUF è utilizzata per memorizzare, nella seguente sequenza, sia:
1
2 i dati da scrivere e sia i dati da leggere
• la dimensione del parametro d'uscita DATABUF deve essere uguale alla dimensione dei dati da scrivere e dei dati da leggere; se la dimensione è inferiore, i dati verranno sovrascritti e possono essere persi.
• Entrambi i parametri CONTROL e DATABUF devono essere memorizzati negli indirizzi localizzati, ad esempio gli indirizzi %MW.
Attivazione / Disattivazione dei servizi HTTP o FTP/
TFTP
Descrizione
Un'operazione di Attivazione/disattivazione servizi HTTP o FTP/TFTP modifica lo stato attivato dei servizi HTTP o FTP/TFTP del modulo.
194 33003682.24
comunicazione
Implementazione di rete
Un'operazione di attivazione/disattivazione servizi HTTP o FTP/TFTP può
essere eseguita sulle reti TCP/IP Ethernet, pagina 203
.
Utilizzo del blocco di controllo per Ethernet TCP/IP
Se è stato attivato HTTP o Control ExpertFTP/TFTP mediante gli strumenti di configurazione di (vedi Quantum con EcoStruxure ™ Control Expert, Moduli di rete Ethernet,
Manuale dell'utente), è possibile utilizzare un blocco MSTR per modificare lo stato del servizio mentre l'applicazione è in funzione. Il blocco MSTR non può cambiare lo stato dei servizi HTTP o FTP/TFTP se il servizio è stato disattivato con uno degli strumenti di configurazione.
Registro
CONTROL[1]
CONTROL[2]
Significato
65520 (dec) FFF0 (hex) = attiva / disattiva HTTP o FTP/TFTP
Indica lo stato di errore. I codici di errore possibili includono:
0x000 (riuscito): il blocco MSTR con il codice operativo 65520 è stato richiamato e lo stato di attivazione di HTTP o FTP/TFTP è stato modificato.
0x5068 (occupato): il blocco MSTR con codice operativo 65520 è stato chiamato entro 2 secondi dalla chiamata precedente (indipendentemente dal codice restituito dalla chiamata precedente).
0x4001 (stesso stato): il blocco MSTR con codice operativo 65520 è stato chiamato per modificare lo stato di attivazione di HTTP e FTP/TFTP negli stato in cui si trovavano precedentemente.
0x2004 (dati non validi): il blocco MSTR con codice operativo 65520 è stato chiamato e i dati del blocco di controllo non corrispondevano alle specifiche.
0x5069 (disattivato): se il servizio HTTP o FTP/TFTP era già disattivato tramite l'interfaccia
Control Expert di quando è stato chiamato il blocco MSTR con codice operativo 65520 per modificare lo stato del servizio disattivato.
Impostare questo registro a 1.
CONTROL[3]
CONTROL[4]
CONTROL[5]
CONTROL[6]
Numero di slot del modulo e ID destinazione
Byte high = numero slot modulo slot del modulo di comunicazione
Byte Low = ID destinazione
Modalità richiesta
Bit 0 (LSB) = 1: attiva FTP/TFTP
Bit 0 (LSB) = 0: disattiva FTP/TFTP
33003682.24
195
comunicazione
Registro Significato
Bit 1 = 1: Attiva HTTP
Bit 1 = 0: Disattiva HTTP
Impostare questo registro a 0.
CONTROL[7]
CONTROL[8]
CONTROL[9]
Le modifiche degli stati dei servizi HTTP, FTP e TFTP effettuate dal blocco MSTR con codice operativo 65520 (dec) sono annullate dal valore configurato quando per il modulo è stato eseguito un ciclo di spegnimento-accensione o un reset e quando viene scaricata nel modulo una nuova applicazione.
Ecco alcuni esempi:
Stato configurato da Control Expert
Disattivato
Attivato
Azione tentata usando il
MSTR con il codice operativo 65520 (dec)
Qualsiasi
Risultato
Disattiva
Attiva
Il MSTR restituisce il codice di errore 0x5069 (il servizio è stato già disattivato dalla configurazione)
MSTR restituisce il codice 0x000 (riuscito).
• Un'altra azione del blocco MSTR attiva il servizio
–OPPURE–
• Per il modulo viene eseguito un reset o ciclo di spegnimento-accensione
–OPPURE–
• Viene scaricata una nuova applicazione con il servizio disattivato dalla configurazione
Il MSTR restituisce il codice di errore 0x4001 (stesso stato).
Nessuna modifica effettuata.
Stato delle comunicazioni Peer Cop
Stato delle comunicazioni Peer Cop
La tabella contenente le informazioni sullo stato del funzionamento Peer Cop occupa 12 registri consecutivi, indicizzabili con i numeri da 0 a 11 in un'operazione MBP_MSTR . Ogni singolo bit delle parole della tabella è utilizzato per presentare un aspetto dello stato di comunicazione per un nodo specifico sulla rete Modbus Plus. Per programmare un blocco
196 33003682.24
comunicazione
MBP_MSTR in modo che ottenga lo stato del funzionamento Peer Cop, usare il
codice funzione 9, pagina 163 .
Implementazione di rete
Un'operazione sullo stato del funzionamento delle comunicazioni Peer Cop può essere eseguita soltanto sulle reti Modbus Plus.
Nodo di rete bit di relazione
I bit delle parole da 0 a 3 rappresentano lo stato all'ingresso di comunicazione globale dei nodi da 1 a 64. I bit nelle parole da 4 a 7 rappresentano lo stato dell'uscita di un nodo specifico.
I bit nelle parole da 8 a 11 rappresentano lo stato dell'ingresso di un nodo specifico.
Nodo di rete bit di relazione Tipo di stato
Ricezione globale
Indice parola
0
1
Invio diretto
Ricezione diretta 8
9
6
7
10
4
5
2
3
33003682.24
197
comunicazione
Tipo di stato Indice parola
11
Nodo di rete bit di relazione
Condizione del bit di stato
La condizione del bit di stato Peer Cop indica lo stato corrente di comunicazione del suo nodo assegnato. Un bit di stato viene impostato quando il nodo associato accetta un ingresso per il suo blocco dati Peer Cop o quando riceve il segnale che un altro nodo ha accettato una specifica uscita di dati dal suo blocco dati di uscita Peer Cop. Un bit di stato viene eliminato se il blocco dati associato non ha accettato alcuna comunicazione entro il periodo di timeout dello stato Peer Cop.
Tutti i bit di stato vengono eliminati se viene eseguito il comando d'interfaccia Inserisci Peer
Cop durante un avvio del PLC. I valori della tabella diventano validi quando il token è stato completamente ignorato, dopo che è stato eseguito il comando d'interfaccia Put Peer Cop .
Il bit di stato di un nodo specifico è sempre zero quando la voce Peer Cop assegnata è zero.
Statistiche della rete Modbus Plus
Statistiche della rete Modbus Plus
La seguente tabella mostra le statistiche disponibili in Modbus Plus. Si possono ottenere questi dati eseguendo l'operazione corrispondente MBP_MSTR (codice funzione Modbus 8).
NOTA: Se si modifica l'operazione di
cancellazione statistiche locali, pagina 173
o di
cancellazione statistiche remote, pagina 178
, vengono cancellate solo le parole da 13 a
22 nella tabella delle statistiche.
Parola
00
3
4
1
2
5
Bit Descrizione
ID tipo del nodo
0 Tipo di nodo sconosciuto
Nodo PLC
Nodo bridge Modbus
Nodo computer host
Nodo Bridge Plus
Nodo I/O peer
198 33003682.24
Parola
01
Bit
6 ... 15
0 ... 11
12 ... 14
15 comunicazione
Descrizione
Riservato
Numero della versione software come valore esadecimale (per leggerlo, isolare i bit
12-15 dalla parola)
Riservato
Definisce i contatori degli errori dalla parola 15.
Il bit più significativo definisce l'uso dei contatori errori nella parola 15. La metà meno significativa del byte più significativo insieme al byte meno significativo contengono la versione software.
02
03
04
05
33003682.24
2
3
4
5
Indirizzo di rete di questa stazione
Variabile di stato MAC:
0 Stato di avvio
1 Segnali indicatore stato offline
Stato offline duplicato
Stato di inattività
Stato utilizzo token
Stato risposta lavoro
6
7
8
9
10
Stato trasferimento token
Stato richiesta risposta
Stato controllo del trasferimento
Stato richiesta token
Stato richiesta risposta
Stato peer (codice LED); indica lo stato di questo dispositivo in relazione alla rete:
0 Operazione collegamento monitor
32
64
96
Operazione collegamento normale
Non riceve mai il token
Stazione singola
128 Stazione duplicata
Contatore trasferimenti token; aumenta ogni volta che questa stazione riceve il token
199
comunicazione
Parola
06
07
08
09
10
11
12
13
14
15
16
17
18
19
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
Bit
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
Descrizione
Tempo di ciclo del token in ms
Rappresentazione bit master dati fallita durante proprietà token
Rappresentazione bit (bitmap) master programma fallita durante proprietà del token
Bitmap attività proprietà token del master dati
Bitmap attività proprietà token del master programma
Bitmap attività proprietà token dello slave dati
Bitmap attività proprietà token dello slave programma
Bitmap comando richiesta trasferimento slave dati/interrogazione slave
Bitmap richiesta trasferimento risposta master programma/interrogazione master
Bitmap comando richiesta trasferimento slave programma/interrogazione slave
Bitmap stato collegamenti del master programma
HIGH
LOW
HIGH
LOW
Bitmap logoff automatico dello slave programma
Contatore errori ritardo pretrasferimento
Contatore errori superamento DMA buffer di ricezione
Comando ripetizione contatore di ricezione
HIGH Dimensioni blocco dati contatore errori
Se il bit 15 della parola 1 = 0, la parola 15 ha il seguente significato:
LOW Interruzione collisione ricevitore contatore errori
HIGH Allineamento ricevitore contatore errori
Se il bit 15 della parola 1 = 1, la parola 15 ha il seguente significato:
Errore blocco dati sul cavo A
Errore blocco dati sul cavo B
Contatore errori ricevitore CRC
Contatore errori lunghezza pacchetto errata
Contatore errori indirizzo collegamento errato
Contatore errori underflow DMA, memoria buffer trasferimenti
Contatore errori lunghezza pacchetto interno errata
Contatore errori codice funzione MAC errato
Contatore tentativi di comunicazione
200 33003682.24
Parola
20
21
22
23
24
25
26
27
28
29
30
31
32
33
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
Bit
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
34
33003682.24
Descrizione
Contatore errori comunicazione fallita
Contatore ricezione pacchetto riuscita
Contatore errori nessuna ricezione risposta
Contatore errori ricezione risposta imprevista
Contatore errori percorso imprevisto
Contatore errori risposta imprevista
Contatore errori transazione saltata
Bitmap tabella stazione attiva, nodi da 1 a 8
Bitmap tabella stazione attiva, nodi da 9 a 16
Bitmap tabella stazione attiva, nodi da 17 a 24
Bitmap tabella stazione attiva, nodi da 25 a 32
Bitmap tabella stazione attiva, nodi da 33 a 40
Bitmap tabella stazione attiva, nodi da 41 a 48
Bitmap tabella stazione attiva, nodi da 49 a 56
Bitmap tabella stazione attiva, nodi da 57 a 64
Bitmap tabella stazione attiva, nodi da 1 a 8
Bitmap tabella stazione attiva, nodi da 9 a 16
Bitmap tabella stazione attiva, nodi da 17 a 24
Bitmap tabella stazione attiva, nodi da 25 a 32
Bitmap tabella stazione attiva, nodi da 33 a 40
Bitmap tabella stazione attiva, nodi da 41 a 48
Bitmap tabella stazione attiva, nodi da 49 a 56
Bitmap tabella stazione attiva, nodi da 57 a 64
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 1 a 8
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 9 a 16
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 17 a 24
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 25 a 32
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 33 a 40
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 41 a 48
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 49 a 56 comunicazione
201
comunicazione
Parola
35
36
37
38
39
40
41
42
43
44
45
46
47
48
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
Bit
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
202
Descrizione
Bitmap tabella relativa all'esistenza dei dati globali, nodi da 57 a 64
Bitmap buffer di ricezione utilizzati, buffer da 1 a 8
Bitmap buffer di ricezione utilizzati, buffer da 9 a 16
Bitmap buffer di ricezione utilizzati, buffer da 17 a 24
Bitmap buffer di ricezione utilizzati, buffer da 25 a 32
Bitmap buffer di ricezione utilizzati, buffer da 33 a 40
Contatore dei comandi elaborati attivati per la gestione della stazione
Contatore comandi di attivazione percorso uscita 1 del master dati
Contatore comandi di attivazione percorso uscita 2 del master dati
Contatore comandi di attivazione percorso uscita 3 del master dati
Contatore comandi di attivazione percorso uscita 4 del master dati
Contatore comandi di attivazione percorso uscita 5 del master dati
Contatore comandi di attivazione percorso uscita 6 del master dati
Contatore comandi di attivazione percorso uscita 7 del master dati
Contatore comandi di attivazione contatore percorso uscita 8 del master dati
Contatore comandi elaborazione ingresso percorso ingresso 41 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 42 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 43 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 44 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 45 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 46 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 47 dello slave dati
Contatore comandi elaborazione ingresso percorso ingresso 48 dello slave dati
Contatore comandi attivazione percorso uscita 81 del master programma
Contatore comandi attivazione percorso uscita 82 del master programma
Contatore comandi attivazione percorso uscita 83 del master programma
Contatore comandi attivazione percorso uscita 84 del master programma
Contatore comandi attivazione percorso uscita 85 del master programma
Contatore comandi attivazione percorso uscita 86 del master programma
33003682.24
Parola
49
50
51
52
53
Bit
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH
LOW
HIGH comunicazione
Descrizione
Contatore comandi attivazione percorso uscita 87 del master programma
Contatore comandi attivazione percorso uscita 88 del master programma
Contatore comandi elaborazione ingresso percorso C1 dello slave programma
Contatore comandi elaborazione percorso ingresso 2 dello slave programma
Contatore comandi elaborazione percorso ingresso C3 dello slave programma
Contatore comandi elaborazione percorso ingresso C4 dello slave programma
Contatore comandi elaborazione percorso ingresso C5 dello slave programma
Contatore comandi elaborazione percorso ingresso C6 dello slave programma
Contatore comandi elaborazione percorso ingresso C7 dello slave programma
Contatore comandi elaborazione percorso ingresso C8 dello slave programma
Statistiche di rete Ethernet TCP/IP
Statistiche di rete Ethernet TCP/IP
Un modulo Ethernet TCP/IP risponde ai comandi statistiche locali e remote provenienti dal blocco MBP_MSTR con il contenuto dell'array databuf (vedere le informazioni nella tabella riportata di seguito):
Parola
Da 00 a 02
03
04 e 05
06 e 07
08 e 09
10 e 11
12 e 13
Significato
Indirizzo MAC ad esempio, l'indirizzo MAC 00 00 54 00 12 34 è visualizzato come segue:
Parola
00
01
02
Stato della scheda (consultare la tabella riportata di seguito)
Numero di interrupt del ricevitore
Numero di interrupt di trasferimento
Conteggio errori di timeout trasferimento
Conteggio errori di rilevamento collisione
Pacchetti omessi
Contenuto
00 00
54 00
12 34
33003682.24
203
comunicazione
Parola
14 e 15
16 e 17
18 e 19
20 e 21
22 e 23
24 e 25
26 e 27
28 e 29
30 e 31
32 e 33
34 e 35
36 e 37
Significato
Conteggio errori memoria
Numero di riavvii eseguiti dal driver
Conteggio errori del pacchetto dati di ricezione
Ricevitore conteggio errori di superamento
Contatore errori CRC di ricezione
Contatore errori del buffer ricezione
Contatore errori del buffer trasferimento
Contatore superamento negativo del bin trasferimento
Contatore collisione ritardata
Contatore portante persa
Numero di tentativi
Indirizzo IP
Ad esempio, l'indirizzo IP 198.202.137.113 (o C6
CA 89 71) è rappresentato come segue:
Parola
36
37
Contenuto
89 71
C6 CA
Definizione dei bit parola per lo stato scheda
NOTA: si consiglia di visualizzare la parola relativa allo stato della scheda in formato binario.
La tabella seguente descrive le definizioni del bit di parola della parola di stato della scheda.
• 140 NOE 771 x 1, versioni 2.0, 3.0, 3.1, 3.3 e 3.6 o successive
• 140 NOE 771 x 0, versioni 3.0, 3.3 e 3.4 o successive
Bit n.
15
14
13
12
11 ... 8
7 ... 4
3
Definizione
0 = LED collegamento spento 1 = LED collegamento acceso
0 = LED applicazione spento 1 = LED applicazione acceso
0 = coppia intrecciata 1 = fibra
0 = 10 Mbit 1 = 100 Mbit
(Riservati)
Tipo di modulo (vedere la tabella seguente)
(Riservati)
204 33003682.24
comunicazione
2
1
0
0 = half duplex 1 = full duplex
0 = non configurato 1 = configurato
0 = non in esecuzione 1 = in esecuzione
NOTA: i bit vengono numerati da destra a sinistra iniziando dal bit 0 (bit basso). Ad esempio, PLC in esecuzione = 0000 0000 0000 0001 e Connessione LED = 1000
0000 0000 0000.
La tabella seguente descrive le definizioni dei bit parola per lo stato scheda per:
• 140 NOE 771 x 1, versione 3.5
• 140 NOE 771 x 0, versioni 1.02 e 2.0
• 140 CPU 651 x 0
6
5
8
7
4
3 ... 0
Bit n.
15 ... 12
11
10
9
Definizione
Tipo di modulo (vedere la tabella seguente)
(Riservati)
0 = half duplex 1 = full duplex
0 = non configurato 1 = configurato
0 = PLC non in esecuzione 1 = PLC/NOE in esecuzione
0 = LED collegamento spento 1 = LED collegamento acceso
0 = LED applicazione spento 1 = LED applicazione acceso
0 = coppia intrecciata 1 = fibra
0 = 10 Mbit 1 = 100 Mbit
(Riservati)
NOTA: i bit vengono contati da destra a sinistra iniziando dal bit 0 (bit basso). Ad esempio, PLC in esecuzione = 0x0100, LED applicazione = 0x0040 e Connessione
LED = 0x0080.
Definizione dei bit della parola di stato della scheda per tipo di modulo
La seguente tabella descrive i valori dei tipi di modulo:
33003682.24
205
comunicazione
7
8
9
10
11
12
13 ... 15
5
6
3
4
0
1
2
Valore dei bit 7...4 o 15...12
Nota: per ulteriori informazioni sull'intervallo di bit applicabile alla versione software del modulo, consultare le tabelle riportate in precedenza.
Tipo di modulo
NOE 2x1
ENT
M1E
NOE 771 00
ETY
CIP
(Riservati)
140 CPU 651 x0
(Riservati)
(Riservati)
NOE 771 10
NOE 771 01
NOE 771 11
(Riservati)
206 33003682.24
ModbusP_ADDR: Indirizzo Modbus Plus
comunicazione
ModbusP_ADDR: Indirizzo Modbus Plus
Contenuto del capitolo
Descrizione ........................................................................... 207
Descrizione dettagliata ........................................................... 210
Introduzione
Questo capitolo descrive il blocco ModbusP_ADDR .
Descrizione
Descrizione della funzione
Questo blocco funzione consente l'immissione dell'indirizzo Modbus Plus per i blocchi funzione READ_REG , CREAD_REG , WRITE_REG e CWRITE_REG . L'indirizzo viene trasferito come struttura di dati.
È possibile configurare EN e ENO come parametri supplementari.
NOTA: È necessario avere familiarità con la rete quando si programma il blocco funzione ModbusP_ADDR . Le strutture dei percorsi di instradamento Modbus Plus sono descritte in dettaglio nel manuale Architetture di comunicazione (vedi Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete Modbus
Plus - Guida alla pianificazione e all'installazione (codice riferimento 31003525) .
33003682.24
207
comunicazione
Rappresentazione in FBD
Rappresentazione:
ModbusP_ADDR: Indirizzo Modbus Plus
Rappresentazione in LD
Rappresentazione:
208 33003682.24
ModbusP_ADDR: Indirizzo Modbus Plus
comunicazione
Rappresentazione in IL
Rappresentazione:
CAL ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot,
=BYTE_variable1, ROUTING2:=BYTE_variable2,
ROUTING1:
ROUTING3:=BYTE_ variable3, ROUTING4:=BYTE_variable4,
ADDRFLD=>DataStructureModbusPlusAddress)
ROUTING5:=BYTE_variable5,
Rappresentazione in ST
Rappresentazione:
ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot, ROUTING1:=BYTE_ variable1, ROUTING2:=BYTE_variable2,
ROUTING4:=BYTE_variable4,
ROUTING3:=BYTE_variable3,
ROUTING5:=BYTE_variable5, ADDRFLD=
>DataStructureModbusPlusAddress) ;
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
Slot_ID
Tipo di dati
BYTE
ROUTING1 BYTE
ROUTING2
ROUTING3
ROUTING4
ROUTING5
BYTE
BYTE
BYTE
BYTE
Descrizione dei parametri d'uscita:
Parametro
ADDRFLD
Tipo di dati
WordArr5
Descrizione
ID dello slot
Slot per il modulo NOM
Instradamento 1 è utilizzato per la specifica dell'indirizzo
(indirizzi del percorso di instradamento uno di cinque) del nodo di destinazione durante il trasferimento sulla rete.
L'ultimo byte del percorso di instradamento diverso da zero è il nodo di destinazione.
Instradamento 2
Instradamento 3
Instradamento 4
Instradamento 5
Descrizione
Struttura di dati utilizzata per trasferire l'indirizzo Modbus Plus
33003682.24
209
comunicazione
Descrizione dettagliata
ModbusP_ADDR: Indirizzo Modbus Plus
Tipi di dati derivati
Descrizione degli elementi per WordArr5 :
Elemento
WordArr5[1]
Tipo di dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD
Descrizione
Scheda instradamento 1
Byte meno significativo: utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno su cinque) di un nodo di destinazione durante un trasferimento di rete.
Byte più significativo:
Slot del modulo scheda di rete (NOM), se disponibile.
Scheda instradamento 2
Scheda instradamento 3
Scheda instradamento 4
Scheda instradamento 5
Slot_ID
Se un modulo opzionale di rete (NOM) Modbus Plus nel rack di un controller Quantum è indirizzato come nodo di destinazione, il valore sull'ingresso Slot_ID rappresenta lo slot fisico NOM, ossia se il NOM è inserito nello slot 7 del rack il valore appare come segue:
210 33003682.24
ModbusP_ADDR: Indirizzo Modbus Plus
comunicazione
Routing x
L'ingresso Routing x è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno su cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte del percorso d'instradamento diverso da zero è il nodo di destinazione.
Scheda instradamento 1
Se un modulo opzionale di rete (NOM) Modbus Plus è indirizzato come nodo di destinazione in un rack del modulo di controllo Quantum, il byte più significativo rappresenta lo slot fisico del NOM. Se il nodo di destinazione è una CPU, il byte più significativo
(indifferentemente dallo slot della CPU) è impostato a "0".
Se il NOM è inserito nello slot 7 nel rack del modulo, il byte più significativo della scheda di instradamento 1 appare come segue:
Byte più significativo Slot da 1 a 16
Byte meno significativo Indirizzo di destinazione (valore binario compreso tra 1 e 64
(normale) o tra 65 e 255 (esteso))
33003682.24
211
comunicazione
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
Contenuto del capitolo
Descrizione ........................................................................... 212
Schermata di immissione assistita........................................... 215
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione OUT_IN_CHAR .
Descrizione
Descrizione della funzione
La funzione OUT_IN_CHAR è utilizzata per inviare una stringa di max. 210 byte (120 per la porta terminale) seguita da una richiesta di ricezione messaggio (è anche possibile il solo invio o la sola ricezione).
La stringa di caratteri può essere contenuta in una variabile statica (vedi EcoStruxure ™
Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) o impostata sotto forma di valore immediato (serie di byte tra apostrofi, ad es. 'Messaggio da inviare').
Queste stringhe di caratteri possono contenere caratteri speciali e devono iniziare con il carattere $ seguito dal valore esadecimale del carattere da inviare, ad esempio $0D .
È possibile utilizzare alcuni caratteri speciali (vedi EcoStruxure ™ Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento), quali:
$R = CR (ritorno a capo), $L = LF (avanzamento riga), $N = CR+LF .
È possibile configurare anche i parametri supplementari EN ed ENO .
212 33003682.24
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
Indirizzo LD
OUT_IN_CHAR Mode, Data_to_Send, Management_Param, Received_Data
33003682.24
213
comunicazione
Rappresentazione ST
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
Rappresentazione:
OUT_IN_CHAR(Address, Mode, Data_to_Send, Management_Param,
Received_Data);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
Address
Modalità
Data_to_Send
Tipo
ARRAY [0...5] OF
INT
INT
STRING
Commento
Indirizzo dell'entità di destinazione dello scambio. Sono possibili solo gli indirizzi che terminano in SYS (ad es.:
{Network.Station}SYS ).
Modalità operativa:
• 1: trasmissione seguita da modalità ricezione
• 2: invio di un messaggio
• 3: messaggio in modalità ricezione
Stringa di caratteri da inviare. È indispensabile che questa stringa di caratteri esista quando la funzione è chiamata, anche se non ci sono dati da inviare (ad esempio, in modalità di sola ricezione).
La tabella seguente descrive i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo
ARRAY [0...3] OF
INT
Commento
Tabella di gestione degli scambi, pagina 39
La tabella seguente descrive i parametri d'uscita:
Parametro
Received_Data
Tipo
STRING
Commento
Stringa di caratteri ricevuta. È indispensabile che questa stringa di caratteri esista quando la funzione è chiamata, anche se non ci sono dati da ricevere (ad esempio, in modalità di solo invio).
214 33003682.24
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
comunicazione
NOTA: al momento della trasmissione o di una trasmissione seguita da ricezione, l'utente riceve l'indicazione di inizializzare la quarta parola della tabella di gestione
(lunghezza) prima di eseguire la funzione. Quindi, la lunghezza della stringa di caratteri ricevuta è memorizzata nella stessa parola alla fine dello scambio. Prima di ciò, tuttavia,
è necessario definire durante la configurazione una condizione di stop (vedi Premium e
Atrium con EcoStruxure ™ Control Expert, Collegamento seriale asincrono, Manuale dell'utente).
Per inviare stringhe di caratteri che contengano caratteri di fine stringa (ZERO).
Occorre:
• Utilizzare STRINGHE localizzate.
• inizializzare l'ultima parola della tabella di gestione scambio con il numero di caratteri da inviare. Se si inizializza questa parola con il valore 0, la stringa inviata si arresta al primo carattere ZERO che incontra. Se si inizializza con un valore, la lunghezza della stringa di caratteri inviata sarà uguale a tale valore.
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per il Modicon M340.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
33003682.24
215
comunicazione
Illustrazione
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetto possibili sono:
• ADDR(STRING)
• ARRAY [0..5] OF INT
NOTA: Se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo diventa grigio.
Modalità
La selezione dall'elenco a discesa:
• Scambio
• Trasmissione
• Ricezione visualizza direttamente il valore immediato 1, 2 o 3.
NOTA: Scegliere semplicemente tra le soluzioni disponibili nel menu a discesa.
216 33003682.24
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
comunicazione
NOTA: se si usa il campo di immissione invece del menu, è possibile immettere una variabile del tipo INT, localizzata o meno.
Stringa da inviare
La stringa da inviare è una variabile del tipo STRING. Questa variabile deve essere dichiarata prima dell'utilizzo.
Se la scelta della stringa è una variabile (esempio String_0 ), il campo di immissione del valore immediato scompare.
Stringa da ricevere
La zona ricezione è una variabile del tipo STRING.
La dimensione di questa variabile è una funzione del numero di caratteri da ricevere. La variabile deve essere dichiarata prima di venire utilizzata in questa schermata.
Rapporto
Il rapporto è un array di 4 interi.
NOTA: Evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto, poiché in questo caso la funzione di lettura delle variabili potrebbe non essere attiva.
Esempio di come inviare/ricevere una stringa di caratteri
In breve
Si ipotizzi di voler inviare una stringa di caratteri Str_1 dalla stazione 1 della rete 20 alla porta terminale della stazione 5, quindi ricevere una stringa di caratteri Str_2 dalla porta terminale della stazione 5 della stessa rete.
In questo caso, un terminale video è collegato alla porta terminale della stazione 5 della rete
20.
La stringa da inviare contiene 10 caratteri.
33003682.24
217
comunicazione
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
La tabella di gestione della funzione è costituita dalla tabella di parole %MW170:4 .
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
Programmazione
Programmazione in ST:
IF RE(%I0.3.8) AND NOT %MW170.0 THEN
(* inizializzazione dei dati da inviare *)
%MW173 := 10;
(* funzione di comunicazione *)
OUT_IN_CHAR(ADDR('{20.5}0.0.0.SYS'),1,Str_1,%MW170:4,Str_
2);
END_IF;
Parametri della richiesta:
Parametri
ADDR('{20.5}0.0.0.SYS')
1
Descrizione
• {20.5}: rete 20, stazione 5
• 0 : rack
• 0 : modulo
• 0: canale 0
• SYS: indirizzo di sistema
Trasmissione, quindi ricezione
218 33003682.24
OUT_IN_CHAR: invio/ricezione di stringhe di caratteri
comunicazione
Parametri
Str_1
%MW170:4
Str_2
Descrizione
Variabile del tipo STRING contenente il messaggio da inviare
Tabella di gestione
Variabile del tipo STRING che conterrà il messaggio ricevuto
NOTA: Ogni volta che la funzione viene avviata, inizializzare il parametro di lunghezza
(nell'esempio %MW173) con il valore corrispondente al numero di caratteri (in byte) da inviare a Str_1).
Al termine dello scambio, %MW173 conterrà la lunghezza dei dati ricevuti (in byte).
33003682.24
219
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
OUT_IN_MBUS: Funzione di comunicazione
Modbus
Contenuto del capitolo
Presentazione generale del blocco di comunicazione OUT_
IN_MBUS ............................................................................... 220
Descrizione del blocco di comunicazione OUT_IN_
MBUS ..................................................................................... 224
Implementazione del blocco di comunicazione OUT_IN_
MBUS ..................................................................................... 233
Esempio di utilizzazione del blocco di comunicazione OUT_
IN_MBUS ............................................................................... 240
Scopo di questo capitolo
Questo capitolo descrive la funzione di comunicazione OUT_IN MBUS .
Presentazione generale del blocco di comunicazione OUT_IN_MBUS
Argomento di questa sezione
Questa sezione presenta una descrizione sommaria del blocco di comunicazione OUT_IN_
MBUS .
Descrizione della funzione
Introduzione
La funzione OUT_IN_MBUS viene utilizzata per emulare una comunicazione Modbus master da un collegamento seriale configurato in modalità caratteri.
Combinata con la possibilità di commutare al volo una configurazione Modbus slave in una configurazione in modalità caratteri tramite la funzione WRITE_CMD , questa funzione permette al PLC di funzionare come Modbus master o slave sullo stesso collegamento.
220 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
NOTA: questa funzione è utile solo quando le due modalità Modbus master and slave sono attive contemporaneamente. In caso contrario, si raccomandano gli standard EF
READ_VAR e WRITE_VAR per gestire la funzione Modbus master (Modbus slave è gestito implicitamente dal sistema). In questo caso vedere la documentazione Modbus.
NOTA: Fare attenzione che i due master (sullo stesso bus) non inviino richieste simultaneamente, altrimenti le richieste vanno perdute e ogni report riceverà un messaggio d'errore tipo 16#0100 (impossibile elaborare la richiesta) o 16#ODFF (slave non presente).
AVVERTIMENTO
FUNZIONAMENTO ANOMALO DELL'APPLICAZIONE - SCRITTURA DI VARIABILI
NEGLI SLAVE
Prima di scrivere delle variabili da un master a uno slave, accertarsi che il comportamento dell'applicazione risultante rimanga accettabile.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Sample
Modalità nominale
La maggior parte delle applicazioni comprende un PC utilizzato per applicazioni di supervisione. Il supervisore è un master Modbus che comunica con vari slave. Questa modalità operativa è chiamata modalità nominale.
33003682.24
221
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Nella seguente figura è rappresentata la modalità nominale (da supervisore a slave):
Modalità di eccezione
Su richiesta, un PLC dovrebbe essere in grado di commutare dalla modalità slave Modbus alla modalità master Modbus per potere inviare richieste ad altri PLC o dispositivi. Questo tipo di commutazione è chiamato modalità di eccezione.
Quando la modalità di eccezione viene terminata, il sistema dovrebbe essere in grado di ritornare allo stato iniziale (modalità nominale).
222 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
Nella seguente figura è illustrata la modalità di eccezione (da master a slave emulato):
Funzionalità
In breve
La funzione OUT_IN_MBUS supporta:
• i codici Modbus
1, 2, 3, 4, 5, 6, 15, 16, pagina 228
• le
modalità ASCII e RTU , pagina 231
•
l'indirizzamento completo, pagina 228 .
La funzione OUT_IN_MBUS è presente come DFB e deve essere riavviata ad ogni ciclo PLC a condizione che il bit di attività sia impostato a 1.
Questa funzione è disponibile sui PLC Premium con una scheda di comunicazione
TSXSCP111 o TSXSCP114 installata sul processore o modulo host (TSXSCY21601 o
TSXSCY11601).
33003682.24
223
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Limitazioni
Su ogni porta non si può attivare simultaneamente più di un DFB OUT_IN_MBUS . Allo stesso modo, non si possono utilizzare simultaneamente i blocchi PRINT_CHAR , INPUT_CHAR o
OUT_IN_CHAR .
La funzione OUT_IN_MBUS non supporta:
• la modifica dei parametri dei livelli fisici o di collegamento: velocità di trasmissione, formato carattere, passaggio da RTU ad ASCII o viceversa, gestione del segnale
RS232,
• i conflitti e gli errori di comunicazione che possono derivare dalla presenza di due master Modbus attivi simultaneamente sullo stesso collegamento,
• tutte le modalità operative che possono derivare da un errore o da un collegamento temporaneo con una scheda di comunicazione,
• la configurazione e la gestione dei modem.
Descrizione del blocco di comunicazione OUT_IN_
MBUS
Argomento di questa sezione
Questa sezione presenta una descrizione dettagliata del blocco di comunicazione OUT_IN_
MBUS .
224 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
Rappresentazioni e parametri
Rappresentazione FBD
Rappresentazione: comunicazione
33003682.24
225
comunicazione
Rappresentazione LD
Rappresentazione:
OUT_IN_MBUS: Funzione di comunicazione Modbus
Rappresentazione IL
Rappresentazione:
Indirizzo LD
OUT_IN_MBUS AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST
Rappresentazione ST
Rappresentazione:
OUT_IN_MBUS(AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
226 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
Parametro
ADDR
MBUSCMD
RETRYLMT
DATABITS
RESPTOUT
ABORT
Tipo
INT
BOOL
Commento
ADDR_TYPE Informazioni relative all'indirizzo della porta di comunicazione del dispositivo slave.
Questo indirizzo deve essere espresso nel seguente formato: ADDR('r.m.c.SYS').
Abbreviazioni utilizzate: r = rack, m = slot modulo, c = canale.
ARRAY[1.. 4] OF INT
di array Modbus
Numero di
di inviare un messaggio creato dal blocco
Modbus da inviare in modalità
ASCII (DATABITS =0) o modalità RTU (DATABITS=1).
INT
BOOL
Tempo di
del blocco.
Bit annullamento DFB.
La tabella seguente descrive il parametro di ingresso/uscita:
Parametro
MASTERDATAAREA
Tipo
ARRAY [x.. y] OF
INT
Commento
Area
del PLC master
NOTA: al fine di leggere uno degli ultimi 8 bit della memoria, è necessario leggere tutti gli ultimi 8 bit, altrimenti la funzione rinvia un rapporto di stato di errore. Quindi è possibile estrarre il bit necessario.
NOTA: Se il parametro di ingresso/uscita utilizza un array dinamico, selezionare in
Control ExpertConsenti array dinamici [ANY_ARRAY_XXX] sotto Strumenti > Opzioni del progetto > Estensioni del linguaggio .
La tabella seguente descrive i parametri di uscita (sola lettura):
Parametro
RETRY
ACTIVE
DONE
ERROR
STATUS
Tipo
INT
BOOL
BOOL
BOOL
INT
Commento
Il valore visualizzato indica il numero corrente di tentativi effettuati dal blocco.
Il valore 1 indica che è vi è un'operazione in corso.
Il valore 1 indica che l'operazione è completata.
Il valore 1 indica che si è verificato un errore.
Il valore visualizza un codice di
generato dal blocco.
33003682.24
227
comunicazione
Il parametro
MbusCmd
OUT_IN_MBUS: Funzione di comunicazione Modbus
Definizione del parametro MbusCmd
Il parametro MbusCmd rappresenta il comando Modbus.
Il parametro MbusCmd è costituito da una tabella di 4 registri uguali a quelli presentati qui di seguito:
Contenuto
MbusCmd[1]
MbusCmd[2]
Descrizione Descrizione
Indirizzo slave
Questa parola contiene l'indirizzo del PLC slave Modbus.
L'intervallo di indirizzi ammessi comprende valori da 0 a 248.
L’indirizzo 0 è riservato per inviare un messaggio Modbus a più PLC. Questo tipo di trasmissione è chiamata modalità di diffusione.
Codice funzione
Modbus
La modalità di diffusione prende in considerazione solo i codici della funzione Modbus scrivendo i dati del PLC master nei PLC slave. La modalità non prende in considerazione i codici della funzione Modbus leggendo dei dati dei PLC slave.
L'indirizzo 248 è riservato alla comunicazione punto punto quando l'indirizzo dello slave non è conosciuto. Questo indirizzo non è supportato da tutte le apparecchiature.
Il blocco OUT_IN_MBUS utilizza i seguenti codici funzione:
• 01 = lettura di più bit d'uscita (0x)
• 02 = lettura di più bit d'ingresso (1x)
• 03 = lettura di più registri d'uscita (4x)
• 04 = lettura di più registri d'ingresso (1x)
• 05 = scrittura di un solo bi d'uscita (0x)
• 06 = scrittura di un solo registro d'uscita (4x)
• 15 = scrittura di più bit d'uscita (0x)
• 16 = scrittura di più registri d'uscita (4x).
Nota : quando il PLC slave è di tipo Premium, tutti i bit diventano delle %M e i registri diventano delle %MW .
228 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
Contenuto
MbusCmd[3]
MbusCmd[4]
Descrizione Descrizione
Zona dati del
PLC slave
Per un comando di lettura, la zona dati del PLC slave è la sorgenti dati. Per un comando di scrittura, la zona dati del PLC slave è la destinazione dei dati.
Ad esempio:
• per leggere i bit d'uscita da 300 a 500 di un PLC slave, immettere 300 in questo campo
• per scrivere i dati di un PLC master nel registro 100 di tipo 4x di un PLC slave, immettere 100 in questo campo.
A seconda del tipo di comando Modbus (lettura o scrittura), le zone dei dati sorgente e di destinazione devono essere conformi a quelle contenute nella tabella
Quantità Questo registro contiene la quantità di dati da scrivere o da leggere nel PLC slave.
Ad esempio, immettere 100 per leggere 100 registri d'uscita nel PLC slave o immettere
32 per scrivere 32 bit d'uscita in un PLC slave.
Esiste una dimensione limitata, che dipende dal codice funzione Modbus utilizzato e dalla modalità di trasmissione (RTU o ASCII). Questi valori limiti di MbusCmd[4] sono espressi in modo dettagliati nella tabella
. Questa dimensione non è significativa per i codici funzione 5 e 6.
Nota : la zona di memoria è limitata in funzione dell'apparecchiatura e della parametrizzazione dello slave
MbusCmd[3]
La tabella qui di seguito presenta la zona di dati del PLC slave per MbusCmd[3] . Questa zona di dati dipende dal codice funzione Modbus utilizzato e dal tipo di PLC slave:
Codice funzione Zona di dati per PLC Premium Zona di dati per apparecchiature standard Modbus
0x (sorgente)
1x (sorgente)
%M (sorgente)
%M (sorgente)
01 (lettura di più bit d'uscita (0x))
02 (lettura di più bit d'ingresso
(1x))
03 (lettura di più registri d'uscita
(4x))
04 (lettura di più registri d'ingresso (3x))
05 (scrittura di un solo bi d'uscita
(0x))
06 (scrittura di un solo registro d'uscita (4x))
4x (sorgente)
3x (sorgente)
0x (destinazione)
4x (destinazione)
%MW (sorgente)
%MW (sorgente)
% M (destinazione)
% MW (destinazione)
33003682.24
229
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Codice funzione
15 (scrittura di più bit d'uscita
(0x))
16 (scrittura di più registri d'uscita
(4x)).
Zona di dati per apparecchiature standard Modbus
0x (destinazione)
4x (destinazione)
Zona di dati per PLC Premium
% M (destinazione)
% MW (destinazione)
MbusCmd[4]
La tabella qui di seguito presenta il valore limite di MbusCmd[4] . Questo valore dipende dal codice funzione Modbus utilizzato e dalla modalità di trasmissione:
Codice funzione
01 (lettura di più bit d'uscita (0x))
02 (lettura di più bit d'ingresso (1x))
03 (lettura di più registri d'uscita (4x))
04 (lettura di più registri d'ingresso (3x))
05 (scrittura di un solo bi d'uscita (0x))
06 (scrittura di un solo registro d'uscita (4x))
15 (scrittura di più bit d'uscita (0x))
16 (scrittura di più registri d'uscita (4x)).
100
1
1
1000
100
Modalità RTU
(8 bit)
1000
1000
100
50
1
1
500
50
Modalità ASCII
(7 bit)
500
500
50
Il parametro
RetryLmt
Definizione
Questo parametro corrisponde al numero di tentativi di invio di un messaggio assegnati a un blocco OUT_IN_MBUS prima della ricezione di una risposta corretta da un'apparecchiatura slave (PLC, modem, ecc.).
Quando la risposta non è completamente strutturata nei tempi impartiti, il blocco genera un errore e un codice d'errore.
Il numero di nuovi tentativi deve essere compreso tra 0 e 32767.
Questo campo è utilizzato insieme a RespTout .
230 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
Il parametro
DataBits
comunicazione
Definizione
I messaggi Modbus possono essere inviati in modalità ASCII o RTU.
La modalità ASCII utilizza 7 bit di dati mentre la modalità RTU ne utilizza 8. Per l'invio di un messaggio in caratteri RTU, Databits deve essere uguale a 1.
Il valore deve essere conforme alla configurazione della scheda di comunicazione .
NOTA: per evitare tutti i problemi in caso di modifica della configurazione, utilizzare le costanti di sistema di tipo %KWr.m.c.1.8
per inizializzare questo parametro.
Il parametro
RespTout
Definizione
Questo parametro corrisponde al tempo di attesa di un blocco OUT_IN_MBUS prima della ricezione di una risposta corretta da un'apparecchiatura slave (PLC, modem, ecc.).
Quando la risposta non è completamente strutturata nel tempo stabilito, il blocco genera un errore. Il sistema non ammette nessuna risposta dopo questo ritardo.
La base del tempo è di 100ms. I valori validi sono compresi tra 0 (attesa infinita) e 32767.
Il conteggio del ritardo inizia subito dopo l'invio dell'ultimo carattere del messaggio.
Il parametro
MasterDataArea
Definizione
Per un comando di lettura, la zona dati del PLC master e la destinazione dei dati rinviati dallo slave.
Per un comando di scrittura, la zona dati del PLC slave è la sorgenti dei dati.
Per i codici dei comandi Modbus 1, 2, 5 e 15, la codifica dei bit si effettua nel modo seguente:
• I bit da 1 a 16 sono stoccati nel primo elemento della tabella INT passato in argomento, essendo il primo bit il bit meno significativo dell'elemento.
33003682.24
231
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
• I bit da 17 a 32 vengono posti nel secondo elemento della tabella, il bit 17 corrisponde al bit meno significativo dell'elemento.
• Ecc.
Così che, per scambiare 1000 bit, conviene dichiarare una tabella di 63 INT (1000/16 + 8).
NOTA: una zona di dati di tipo intero %MW può essere utilizzata direttamente nel parametro MasterDataArea (esempio: %MW100:50 designa una tabella di 50 interi iniziando dall'indirizzo 100).
Un gruppo di elementi di una tabella di bit di tipo %M deve precedentemente essere convertito e ricopiato in una tabella di interi (INT) secondo la codifica descritta sopra.
Il parametro
Status
Definizione
Questo parametro visualizza un codice di stato generato dal blocco OUT_IN_MBUS .
La seguente tabella presenta i diversi codici di stato.
104
108
113
114
115
116
124
7
8
5
6
3
4
1
2
Codice di stato
Descrizione dello stato
Eccezione Modbus - Funzione non corretta
Eccezione Modbus - Indirizzo di dati non corretto
Eccezione Modbus - Valore di dati non corretto
Eccezione Modbus - Errore dell'abbonato slave
Eccezione Modbus - Conferma
Eccezione Modbus - Abbonato slave occupato
Eccezione Modbus - Conferma negativa
Eccezione Modbus - Errore di parità memoria
La lunghezza dei dati non può essere uguale a zero
Errore non definito
Checksum LRC del PLC slave non valido
Checksum CRC del PLC slave non valido
Codice funzione Modbus non valido
Timeout del messaggio di risposta Modbus
Stato interno non definito
232 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
130
131
200
201
202
203
204
205
206
207
208
Codice di stato
125
128
Descrizione dello stato
Modalità di diffusione non ammessa per questa funzione Modbus
Risposta non attesa da parte dello slave Modbus
Parola di comando modificata in corso di attività
Numero di caratteri non corretto
Indirizzo slave fuori limiti
Errore di comunicazione con la porta seriale
Numero binario non valido
Quantità di dati troppo grande
Zona di dati del master troppo piccola
Il timeout deve essere positivo
Eccezione Modbus non conosciuta
Azione annullata dall'utente
RetryLmt deve essere positivo comunicazione
Implementazione del blocco di comunicazione
OUT_IN_MBUS
Argomento di questa sezione
Questa sezione descrive l'implementazione del blocco di comunicazione OUT_IN_MBUS .
Configurazione del collegamento seriale
Introduzione
L'uso del blocco OUT_IN_MBUS richiede la precedente configurazione corretta del collegamento seriale.
Sono utilizzati i seguenti parametri:
• collegati alla trasmissione e configurati da Control Expert
33003682.24
233
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
• collegati all'applicazione e trasmessi come argomenti della funzione
Riepilogo dei parametri di trasmissione
Il collegamento seriale delle schede è configurato da Control Expert. Si tratta dei seguenti parametri:
• Velocità di trasmissione
• Ritardo tra caratteri
• Dati
• Stop
• Parità
Per consentire lo scambio di dati tra tutti i dispositivi collegati sul bus, la configurazione del collegamento seriale deve essere identica per tutti i dispositivi.
La schermata di configurazione utilizzata per immettere i parametri dipende dalla configurazione selezionata in modalità nominale.
234 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
Parametri di trasmissione della modalità Modbus
La seguente figura mostra una schermata di configurazione con la modalità nominale in modalità
Modbus.
NOTA: Il valore del parametro di ingresso
del blocco OUT_IN_MBUS deve corrispondere al valore selezionato nella finestra Dati della schermata di configurazione.
L'uso di OUT_IN_MBUS richiede la commutazione dinamica alla modalità caratteri. In questa modalità, le condizioni per l'arresto (su caratteri o silenzio) sono disattivate e non sono modificabili dall'applicazione. La funzione OUT_IN_CHAR quindi non è più utilizzabile in modalità di ricezione (arresto su timeout), e solo le funzioni INPUT_CHAR e INPUT_BYTES possono essere utilizzate per la ricezione specificando il numero di caratteri da ricevere.
33003682.24
235
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Parametri di trasmissione della modalità caratteri
La seguente figura mostra una schermata di configurazione con la modalità nominale in modalità caratteri.
NOTA: Il valore del parametro di ingresso
del blocco OUT_IN_MBUS deve corrispondere al valore selezionato nella finestra Dati della schermata di configurazione.
Quando la configurazione della scheda è in modalità caratteri:
• Le condizioni per l'arresto (su caratteri o silenzio) configurabili in questa modalità devono essere disattivate affinché OUT_IN_MBUS funzioni correttamente. La funzione
OUT_IN_CHAR quindi non è più utilizzabile in modalità di ricezione (arresto su timeout), e solo le funzioni INPUT_CHAR e INPUT_BYTES possono essere utilizzate per la ricezione specificando il numero di caratteri da ricevere.
• Il ritardo tra caratteri non può essere configurato. Pertanto è necessario accertarsi che il valore di questo parametro nei dispositivi Modbus remoti sia compatibile con la configurazione della modalità caratteri.
Parametri dell'applicazione
Due parametri dell'applicazione vengono inviati come argomenti della funzione OUT_IN_
MBUS .
236 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
Si tratta dei seguenti parametri:
•
Numero di tentativi, pagina 230
•
Ritardo alla risposta, pagina 231
comunicazione
Procedura da seguire per la programmazione
Procedura da seguire
La tabella qui di seguito presenta la procedura di programmazione del blocco OUT_IN_
MBUS :
Fase
1
2
3
4
Azione
Preparazione della porta di comunicazione
Inizializzazione dei parametri.
Chiamata del blocco
OUT_IN_MBUS .
Reinizializzazione della porta di comunicazione.
Dettagli
• Se la porta seriale non è configurata in modalità caratteri, cambiare la modalità Modbus della porta in modalità carattere inviando sulla porta seriale il comando
• nel caso di una trasmissione via modem, inviare il comando
HAYES utilizzando il blocco PRINT_CHAR o OUT_IN_CHAR per poter configurare il
• nel caso di una trasmissione via modem, utilizzare il comando
HAYES per inviare un messaggio di chiamata via modem utilizzando il blocco PRINT_CHAR o OUT_IN_CHAR . Il messaggio di chiamata è utilizzato per inviare un numero di telefono al
.
Inizializzare i parametri d'ingresso del blocco DFB. Non è utile ripetere questa operazione ad ogni ciclo PLC.
• OUT_IN_MBUS deve essere chiamato ad ogni ciclo PLC fino a quando il bit di attività passa a zero
• appena il bit di attività è a zero, forzare un bit nella condizione di chiamata del blocco per evitare una nuova chiamata
• verificare il bit d'errore (in caso d'errore, la parola di stato precisa la causa dell'errore).
• Nel caso di una trasmissione via modem, inviare il comando
HAYES per inviare un messaggio di sconnessione al
utilizzando il blocco PRINT_CHAR o OUT_IN_
CHAR .
• Se la porta è stata commutata in modalità caratteri (nella fase
1), ritornare nella modalità di origine della porta seriale con il comando
.
33003682.24
237
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Scrivere le parole di comando su una porta di comunicazione
I passi che seguono devono essere eseguiti per inviare un WRITE_CMD a una porta di comunicazione:
Fase
1
2
3
Azione
Verificare che nessun comando sia in attesa.
• Prima di eseguire un WRITE_CMD , verificare se è in corso uno scambio utilizzando l'oggetto linguaggio %MWr.m.c.0
. Per aggiornare questa parola, occorre utilizzare il blocco READ_STS .
Assegnare la parola di comando
• Occorre successivamente modificare il valore dell'oggetto linguaggio di comando per realizzare il comando richiesto. Per un collegamento Modbus, l’oggetto linguaggio è la parola interna %MWr.m.c.15
. Ad esempio, per commutare dalla modalità Modbus alla modalità caratteri, %MWr.m.c.15
viene impostato a 16#4000 ( %MWr.m.c.15.14
=1).
Nota : deve essere commutato un solo bit di comando da 0 a 1 prima di trasmettere il comando WRITE_CMD .
Inviare il comando
• Infine, un comando WRITE_CMD deve essere eseguito per riconoscere il comando.
che segue, si utilizza l'interfaccia IODDT corrispondente per comunicare con il canale della porta seriale di comunicazione.
Uso del modem
Descrizione
È necessario familiarizzarsi con i tre comandi d'interfaccia modem telefonici con i PLC.
Questi comandi sono:
• Iinizializza
• Chiama
• Scollega
Prima di inviare un messaggio ASCII o Modbus, si deve inviare un messaggio d'inizializzazione al modem e poi eseguire la chiamata.
Una volta stabilita la connessione tra i due modem, è possibile inviare un numero illimitato di messaggi ASCII o messaggi Modbus.
Una volta inviati tutti i messaggi, occorre inviare la stringa di scollegamento al modem.
238 33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
Iinizializza il modem
Il messaggio di inizializzazione è un messaggio ASCII che può contenere fino a 512 caratteri, anche se ne bastano 50 per inizializzare un modem.
È possibile utilizzare tutti i comandi Hayes AT come componenti della stringa d'inizializzazione.
Esempio : un messaggio Hayes tipico d'inizializzazione:
• AT&F&K0&Q0&D0V1X0Q0 <CR><LF>
NOTA: per semplificare la programmazione, è possibile inizializzare il modem con un terminale (esempio: Windows hyperteminal) e non utilizzare la funzione OUT_IN_CHAR .
Una volta che i parametri sono caricati nel modem, essi possono essere salvati nella memoria non volatile con un comando AT, normalmente &W.
Chiama il modem
Il messaggio di chiamata è utilizzato per inviare il numero di telefono al modem.
Solo i comandi AT relativi alla chiamata devono essere inclusi nel messaggio.
Esempio 1 : chiamata a frequenza:
• AT DT 6800326 <CR><LF>
Esempio 2 : chiamata a impulsi:
• AT DP 6800326 <CR><LF>
Esempio 3 : chiamata a frequenza con attesa della tonalità:
• AT DT W,6800326 <CR><LF>
NOTA: il valore del TimeOut deve essere sufficientemente grande in quanto la connessione tra i due modem richiede tempo (ad esempio, impostare il timeout a 30000 ms). Se il valore è troppo piccolo viene generato un
116 dal blocco OUT_IN_MBUS . Possono essere necessari più tentativi prima di trovare il tempo ottimale.
Scollega il modem
Il messaggio di scollegamento è utilizzato per scollegare il modem.
Esempio 1 : messaggio Hayes tipico di disconnessione:
• +++AT H0 <CR><LF>
33003682.24
239
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
NOTA: il valore del TimeOut deve essere grande in quanto la disconnessione di un modem richiede tempo (ad esempio, impostare il timeout a 30000 ms). Se il valore è troppo piccolo viene generato un
116 dal blocco OUT_IN_
MBUS . Possono essere necessari più tentativi prima di trovare il tempo ottimale.
Esempio di utilizzazione del blocco di comunicazione OUT_IN_MBUS
Argomento di questa sezione
Questa sezione presenta un esempio d'utilizzazione del blocco di comunicazione OUT_IN_
MBUS .
Descrizione dell'esempio
In breve
L'esempio selezionato è un'applicazione di comunicazione Modbus tramite modem.
Nella seguente figura è illustrato un esempio:
240
I dispositivi comunicano tra di loro per mezzo di modem. Il supervisore è il master Modbus, mentre i PLC X e Y sono gli slave.
Nell'esempio illustrato si intendono scrivere i valori dell'area dati del PLC X nel PLC Y.
PLC X deve scrivere un'area dati di 41 numeri interi a partire dall'indirizzo %MW100 nel PLC
Y da %MW100.
33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
A questo scopo, PLC X deve diventare Modbus Master. L'indirizzo Modbus di PLC X è 9, Y
è 10.
Per semplificare la programmazione, i modem sono stati inizializzati con i parametri corretti tramite un terminale di programmazione. Questi parametri sono archiviati nella memoria non volatile dai comandi AT&W.
Struttura della programmazione
Commenti dei passi
La tabella qui di seguito riepiloga i passi di programmazione dell'esempio:
Numero di passo
0
Descrizione del passo
5
10
15
20
25
30
35
Stato iniziale della funzione.
Attesa dell'impostazione a 1 del bit Start_4 per passare al passo 5.
Se sulla porta seriale non è in corso nessun comando, viene inviato un comando per passare la porta seriale dalla modalità Modbus alla modalità carattere.
Passaggio al passo 10.
Lettura dello stato della porta seriale.
• Se si verifica un errore sulla porta seriale:
◦ Error_4 è a -2
◦ e si va al passo 65.
• Se non si verifica nessun errore sulla porta seriale
◦ e la modalità carattere è attiva, andare al passo 15
◦ mentre se la modalità carattere non è attiva, viene allora eseguito il test di stato del passaggio in modalità carattere su 1000 cicli. Se, alla fine dei 1000 cicli, la modalità non è cambiata, Error_4 è impostato a -1 e si va al passo 65.
Invio di un comando di chiamata al modem tramite il blocco PRINT_CHAR e attesa della risposta via INPUT_CHAR .
Passaggio al passo 20.
Se il risultato di PRINT_CHAR è soddisfacente si va al passo 25, altrimenti si va al passo 65 con
Error_4 impostato a -3.
Se il risultato di INPUT_CHAR è soddisfacente si va al passo 30, altrimenti al passo 65 con
Error_4 a -4.
Se il modem risponde si va al passo 35, altrimenti al passo 65 con Error_4 a -5.
Inizializzazione della parametrizzazione del blocco OUT_IN_MBUS.
33003682.24
241
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
Numero di passo
Descrizione del passo
40
45
50
55
60
65
Passaggio al passo 40.
• Chiamata del blocco OUT_IN_MBUS .
• Se il bit Active_4 è a 0
◦ e se il bit Flag_Error_4 è a 0, si va al passo 45
◦ e se il bit Flag_Error_4 è a 1, si va al passo 45 con Error_4 a -6.
Invio di un comando di connessione al modem tramite il blocco PRINT_CHAR .
Passaggio al passo 50.
Se il risultato di PRINT_CHAR è soddisfacente si può passare al passo 55, altrimenti si va al passo 65 con Error_4 impostato al valore 1.
Se sulla porta seriale non è in corso nessun comando, viene inviato un comando per passare la porta seriale dalla modalità carattere alla modalità Modbus.
Passaggio al passo 60.
Lettura dello stato della porta seriale.
• Se si verifica un errore sulla porta seriale:
◦ Error_4 è a 3
◦ allora si va al passo 65.
• Se non si verifica nessun errore sulla porta seriale
◦ e viene effettuato il passaggio in modalità Modbus, si va quindi al passo 65
◦ e passare in modalità Modbus, e viene effettuato il test di passaggio in modalità
Modbus su 1000 cicli. Se, alla fine dei 1000 cicli, la modalità non è cambiata, Error_4
è a 2, e viene effettuato il passaggio al passo 65.
Ritorno al passo 0 (lo stato iniziale della funzione) e bit Start_4 a 0.
Dichiarazione delle variabili
Presentazione
La tabella qui sotto riassume le informazioni sulle variabili utilizzate:
Variabile
Start_4
Step_4
Error_4
Tipo
BOOL
INT
INT
Definizione
Bit di avvio della funzione
Passo della funzione
Codice d'errore della funzione
242 33003682.24
Variabile
MngtPrint_4
MngtInput_4
ReqString_4
AnsString_4
Out_In_Mbus_4
Adr_4
MbusCmd_4[1]
MbusCmd_4[2]
MbusCmd_4[3]
MbusCmd_4[4]
RetryLmt_4
DataBits_4
RespTout_4
Retry_4
Active_4
Done_4
Flag_Error_4
Status_4
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
STRING
STRING
OUT_IN_MBUS
INT
INT
INT
INT
INT
INT
INT
INT
INT
BOOL
BOOL
BOOL
INT
Tipo
ARRAY[0..4] of INT
ARRAY[0..4] of INT
Definizione
Tabella dei parametri di comunicazione per il blocco INPUT_
CHAR
Tabella dei parametri di comunicazione per il blocco PRINT_
CHAR
Comando di una stringa di caratteri al modem
Risposta di una stringa di caratteri del modem
Istanza del blocco OUT_IN_MBUS
Porta di comunicazione del PLC slave
Codice funzione Modbus
Quantità di dati da leggere
Indirizzo Modbus del PLC slave
Inizio della zona di dati da leggere dello slave
Numero di tentativi
Modalità di trasmissione (1 per RTU e 0 per ASCII)
Timeout
Numero di tentativi effettuati dal blocco
Il valore 1 indica che è in corso un'operazione.
Il valore 1 indica che l'operazione è riuscita.
Il valore 1 indica che si è verificato un errore o che l'operazione corrente è terminata
Codice dello stato generato dal blocco
Programmazione
Programmazione in linguaggio ST
L'esempio è programmato in linguaggio letterale strutturato ST. La sezione dedicata si trova sotto lo stesso task master (MAST).
(* Funzione per scrivere %MW100 in %MW140 in slave Y *)
(* --------------------------------------------- *)
CASE Step_4 OF
0:
(* Inizializzazione*)
IF (Start_4) THEN (* flag trigger*)
33003682.24
243
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
244
Error_4 := 0;
Step_4 := 5; (* passo successivo *)
5:
END_IF;
(* Invia comando per commutare porta seriale da Modbus a modalità caratteri *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* lettura stato porta seriale*)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* nessun comando attivo*)
Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* reset parola di controllo*)
SET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* imposta bit di comando MB_TO_CHAR*)
WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* invia comando*) i := 0; (* inizializza riprova conteggio*)
Step_4 := 10; (* passo successivo *)
10:
END_IF;
(* Risultato test del comando di commutazione *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* lettura stato porta seriale*)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* comando completato*)
RESET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* reset bit di comando MB_TO_CHAR*)
IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* nessun errore*)
IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 03) THEN
(* modalità carattere OK *)
Step_4 := 15; (* passo successivo *)
ELSE i := i + 1;
IF (i > 1000) THEN
Error_4 := -1; (* errore *)
Step_4 := 65; (* passo successivo = fine*)
END_IF;
END_IF;
ELSE (* errore d'invio comando alla porta *)
Error_4 := -2; (* errore *)
Step_4 := 65; (* passo successivo = fine*)
END_IF;
END_IF;
15:
(* Invia comando di composizione al modem *)
Adr_4 := ADDR('0.3.1.SYS'); (* porta di comunicazione*)
MngtPrint_4[3] := 50; (* timeout *)
MngtPrint_4[4] := 16; (* numero di byte da inviare*)
ReqString_4 := 'ATDT0102030405$N'; (* messaggio di composizione
*)
33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4);
MngtInput_4[3] := 300; (* timeout *)
MngtInput_4[4] := 0; (* numero di byte da inviare*)
INPUT_CHAR(Adr_4, 0, 12, MngtInput_4, AnsString_4); (* attesa risposta modem *)
Step_4 := 20; (* passo successivo *)
20:
(* Risultato funzione test PRINT_CHAR *)
IF (NOT MngtPrint_4[1].1) THEN
IF (MngtPrint_4[2] = 0) THEN
Step_4 := 25; (* success : passo successivo *)
ELSE
Error_4 := -3; (* errore *)
Step_4 := 65; (* passo successivo = fine*)
END_IF;
END_IF;
25:
(* Risultato funzione test INPUT_CHAR *)
IF (NOT MngtInput_4[1].1) THEN
IF (MngtInput_4[2] = 0) THEN
Step_4 := 30; (* success : passo successivo *)
ELSE
Error_4 := -4; (* errore *)
Step_4 := 65; (* passo successivo = fine*)
END_IF;
END_IF;
30:
(* Risposta test modem *)
IF (AnsString_4 = 'CONNECT 9600') THEN
Step_4 := 35; (* success : passo successivo *)
ELSE
Error_4 := -5; (* errore *)
Step_4 := 65; (* passo successivo = fine*)
END_IF;
35:
(* Inizializza parametri OUT_IN_MBUS *)
MbusCmd_4[1] := 10; (* indirizzo PLC slave *)
MbusCmd_4[2] := 16#06; (* funzione Modbus 16#06 *)
MbusCmd_4[3] := 100; (* area PLC slave = %MW100 *)
MbusCmd_4[4] := 41; (* quantità di dati *)
RetryLmt_4 := 2; (* numero di tentativi *)
DataBits_4 := %KW0.3.1.1.8; (* 1 = 8 bit -> modalità RTU, 0 = 7 bit -> modalità ASCII *)
RespTout_4 := 300; (* timeout = 30s *)
Flag_Error_4 := 0;
40:
Step_4 := 40; (* passo successivo *)
(* Richiamo di Call OUT_IN_MBUS *)
33003682.24
245
comunicazione
OUT_IN_MBUS: Funzione di comunicazione Modbus
246
Out_In_Mbus_4 (Adr_4, MbusCmd_4, RetryLmt_4, DataBits_4,
RespTout_4, Abort_4,
Error_4, Status_4);
%MW100:41, Retry_4, Active_4, Done_4, Flag_
IF (NOT Active_4) THEN (* richiesta completata *)
IF (NOT Flag_Error_4) THEN (* nessun errore *)
Step_4 := 45; (* passo successivo *)
ELSE (* errore *)
Error_4 := -6; (* errore *)
45:
Step_4 := 45; (* passo successivo *)
END_IF;
END_IF;
(* disconnessione modem *)
MngtPrint_4[3] := 50; (* timeout *)
MngtPrint_4[4] := 9; (* numero di byte da inviare*)
ReqString_4 := '+++ATH0$N'; (* messaggio di disconnessione *)
PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4);
50:
Step_4 := 50; (* passo successivo *)
(* Risultato funzione test PRINT_CHAR *)
IF (NOT MngtPrint_4[1].1) THEN
IF (MngtPrint_4[2] = 0) THEN
(* Success : passo successivo *)
Step_4 := 55;
ELSE
(* Fine con errore *)
Error_4 := 1;
Step_4 := 65;
END_IF;
END_IF;
55:
(* Invia comando per commutare porta seriale da Modbus a modalità caratteri *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* lettura stato porta seriale*)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* nessun comando attivo*)
Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* reset parola di controllo*)
SET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* imposta bit di comando MB_TO_CHAR *)
WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* invia comando*) i := 0; (* inizializza riprova conteggio*)
Step_4 := 60; (* passo successivo *)
END_IF;
60:
(* Risultato test del comando di commutazione *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* lettura stato porta seriale*)
33003682.24
OUT_IN_MBUS: Funzione di comunicazione Modbus
comunicazione
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* comando completato*)
RESET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* reset bit di comando CHAR_TO_MB *) errore*)
IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* nessun
IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 07) THEN
(* modalità Modbus OK *)
Step_4 := 65; (* passo successivo *)
ELSE i := i + 1;
IF (i > 1000) THEN
Error_4 := 2; (* errore *)
Step_4 := 65; (* passo successivo *)
END_IF;
END_IF;
ELSE (* errore d'invio comando alla porta *)
Error_4 := 3; (* errore *)
Step_4 := 65; (* passo successivo *)
END_IF;
END_IF;
65:
(* Fine *)
Start_4 := 0; (* consenti nuova domanda *)
Step_4 := 0; (* vai a stato di attesa *)
END_CASE;
33003682.24
247
comunicazione
PRINT_CHAR: Invio di stringhe di caratteri
PRINT_CHAR: Invio di stringhe di caratteri
Contenuto del capitolo
Descrizione ........................................................................... 248
Schermata di immissione assistita........................................... 252
Esempio di invio di stringhe di caratteri tramite una rete
Fipway .................................................................................. 254
Argomento del capitolo
Questo capitolo descrive la funzione PRINT_CHAR .
Descrizione
Descrizione della funzione
Per i PLC Premium, la funzione PRINT_CHAR è utilizzata per inviare una stringa di caratteri del massimo di 4 Kbyte, 120 byte alla porta terminale, da trasmettere su un collegamento in modalità carattere.
Per le CPU Modicon M340 e M580, la funzione PRINT_CHAR permette di inviare una stringa di caratteri di max. 1024 byte.
La stringa di caratteri può essere contenuta in una variabile statica (vedere ™ EcoStruxure
Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) o impostata sotto forma di valore immediato (serie di byte tra apostrofi, ad esempio:
"Messaggio da inviare").
Queste stringhe di caratteri possono contenere caratteri speciali e devono iniziare con il carattere $ seguito dal valore esadecimale del carattere da inviare, ad esempio $0D .
È possibile utilizzare alcuni caratteri speciali (vedere ™ EcoStruxure Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento), come:
$R = CR (ritorno a capo), $L = LF (avanzamento riga), $N = CR+LF .
È possibile inoltre configurare i parametri supplementari EN ed ENO .
248 33003682.24
PRINT_CHAR: Invio di stringhe di caratteri
comunicazione
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Implementare una richiesta di coordinazione tra P-HSBY e Target in un'applicazione a 2 fili per interrompere simultaneamente PRINT_CHAR durante uno scambio.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione:
33003682.24
249
comunicazione
PRINT_CHAR: Invio di stringhe di caratteri
Rappresentazione IL
Rappresentazione:
LD Address
PRINT_CHAR String_to_Send, Management_Param
Rappresentazione ST
Rappresentazione:
PRINT_CHAR(Address, String_to_Send, Management_Param);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
EMIS
Tipo
ARRAY [0..5] OF INT per Premium
ARRAY [0..7] OF INT per Modicon M340 e
M580
STRING
Commento
Le seguenti istruzioni sono valide soltanto per i PLC
Premium:
• Address of the message's receiving character mode channel is given by the
function
• Sono possibili solo gli indirizzi che terminano in
SYS (esempio: 0.0.0.SYS
porta terminale del processore).
Le seguenti affermazioni sono valide solo per i PLC
Modicon M340:
• L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
.
• La sintassi dell'indirizzo è del tipo ADDM (‘r.m.c.
node’). Il nodo è un campo opzionale che può essere SYS o vuoto (ad es. ADDM(‘0.0.0.SYS’) corrisponde a ADDM(‘0.0.0’).
Le seguenti affermazioni sono valide solo per le CPU
Modicon M580:
• Indirizzo dell'entità di destinazione dell'operazione di stampa, risultato della funzione
Stringa di caratteri da inviare. È contenuta in una stringa di caratteri o fornita come valore immediato.
Nota : questa stringa di caratteri deve esistere, anche se non vi sono dati da inviare.
250 33003682.24
PRINT_CHAR: Invio di stringhe di caratteri
comunicazione
La tabella seguente descrive i parametri ingresso/uscita:
Parametro
GEST
Tipo
ARRAY [0..3] OF
INT
Commento
Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
◦ Se la lunghezza di questo parametro è impostata a 0, il sistema invierà la stringa completa.
◦ Se la lunghezza di questo parametro è maggiore della lunghezza della stringa, allora verrà restituito l'errore
16#0A (Dimensioni del buffer di emissione non sufficienti) nella seconda parola di gestione e non verrà inviato alcun carattere.
NOTA: Nel caso di PRINT_CHAR , la quarta parola di gestione (lunghezza da inviare) non deve essere scritta mentre il bit di attività è 1 (ossia quando EF è in esecuzione). Altrimenti PRINT_CHAR potrebbe essere bloccato con l'errore 0xB.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39
.
regole di programmazione
I caratteri speciali sono preceduti dal carattere $ nella stringa da trasmettere. I caratteri $ non sono trasmessi dal mittente e perciò non devono essere conteggiati durante l'inizializzazione del parametro di lunghezza.
Gli spazi tra due caratteri sono conteggiati in un byte.
Perciò, nell'esempio STAMPA IN CORSO$L$R la lunghezza dei dati da inviare è 22 byte.
33003682.24
251
comunicazione
PRINT_CHAR: Invio di stringhe di caratteri
Sui PLC Premium, sono necessari più cicli del PLC per inviare una stringa di caratteri di più di 240 byte (la stringa è frammentata). Per questo motivo è importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione. Il sistema trasmette la stringa coerentemente in più segmenti, ma non vieta la trasmissione di un'altra stringa di caratteri tra due frammenti.
Su CPU Modicon M340 e M580, è necessario un ciclo della CPU per inviare una stringa di caratteri di una lunghezza massima di 1024 byte. È importante assicurarsi che i dati di gestione non vengano modificati durante l'elaborazione della funzione.
La porta seriale del PLC Modicon M340 è full duplex, quindi è possibile inviare una funzione
PRINT_CHAR anche quando è stata inviata ed è ancora in attesa una funzione INPUT_
CHAR .
NOTA: Per inviare stringhe di caratteri che contengano caratteri di fine stringa (ZERO).
Occorre:
• utilizzare STRINGHE localizzate
• inizializzare l'ultima parola della tabella di gestione scambio con il numero di caratteri da inviare. Se si inizializza questa parola con il valore 0, la stringa inviata si arresta al primo carattere ZERO che incontra. Se la si inizializza con un valore, la lunghezza della stringa di caratteri inviata sarà uguale a tale valore.
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per il Modicon M340/M580.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
252 33003682.24
PRINT_CHAR: Invio di stringhe di caratteri
comunicazione
Illustrazione
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetto possibili sono:
• ADDR(STRING)
• ARRAY [0..5] OF INT .
NOTA: se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo viene visualizzato in grigio.
Stringa da inviare
La stringa da inviare è una variabile del tipo STRING o un valore immediato. Se è selezionata una variabile del tipo STRING, il campo valore scompare.
Rapporto
Il rapporto è un array di 4 interi, che può essere localizzato o meno.
NOTA: evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto. In caso contrario, la funzione di lettura delle variabili potrebbe non essere attiva.
33003682.24
253
comunicazione
PRINT_CHAR: Invio di stringhe di caratteri
Esempio di invio di stringhe di caratteri tramite una rete Fipway
In breve
Si ipotizzi di voler inviare un stringa di caratteri a un terminale video connesso al collegamento integrato del modulo TSXSCY21601 di un PLC con un indirizzo di rete 20, stazione 3. Il modulo TSXSCY21601 è ubicato nello slot 2 del rack di base.
La tabella di gestione è situata in %MW110:4 , mentre la stringa da inviare è situata nella variabile Str_1 .
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
Trasmissione
Programmazione in ST:
IF RE(%I0.3.6) AND NOT %MW110.0 THEN
PRINT_CHAR(ADDR('{20.3}0.2.0.SYS'),Str_1,%MW110:4);
END_IF;
Parametri della richiesta:
254 33003682.24
PRINT_CHAR: Invio di stringhe di caratteri
comunicazione
Parametri
ADDR('{20.3}0.2.0.
SYS')
Str_1
%MW110:4
Descrizione
• {20.3}: rete 20, stazione 3
• 0 : rack
• 2 : modulo
• 0: canale 0
• SYS: indirizzo di sistema
Stringa di caratteri da inviare, la variabile Str_1 è del tipo STRING .)
Tabella di gestione
NOTA: Ogni volta che la funzione viene avviata, inizializzare il parametro di lunghezza
(nell'esempio %MW113) con il valore corrispondente al numero di caratteri (in byte) da inviare a Str_1 ).
Esempio di invio di stringhe di caratteri tramite il collegamento seriale dei processori Modicon M340
In breve
Si supponga di voler inviare una stringa di caratteri a un terminale di immissione/ visualizzazione dati collegato alla porta seriale di un processore Modicon M340.
La tabella di gestione è situata in %MW110:4 , mentre la stringa da inviare è situata nella variabile caract .
33003682.24
255
comunicazione
PRINT_CHAR: Invio di stringhe di caratteri
Illustrazione
Un PLC Modicon M340 è collegato a un terminale di immissione/visualizzazione dati
TM8501:
Trasmissione
Programmazione in ST:
IF (%M16) THEN
PRINT_CHAR(ADDM('0.0.0'),caract,gestion);
END_IF;
Parametri della richiesta:
Parametri
ADDM('0.0.0') caract gestion
Descrizione
• 0 : rack
• 0 : modulo
• 0: canale 0
• SYS: indirizzo di sistema (opzionale sui PLC Modicon M340)
Stringa di caratteri da inviare, variabile caract .
Tabella di gestione
NOTA: Ogni volta che la funzione viene avviata, inizializzare il parametro di lunghezza
(nell'esempio %MW113 se la tabella di gestione si trova tra %MW110 e %MW113 ) con il valore corrispondente al numero di caratteri (in byte) da inviare a caract ).
256 33003682.24
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 257
Presentazione
Questo capitolo descrive la funzione PRINT_CHAR_QX .
Descrizione
Descrizione della funzione
La funzione PRINT_CHAR_QX permette di inviare una stringa di caratteri di max. 1000 byte a un dispositivo seriale collegato a un modulo di comunicazione seriale Modicon X80
(BMXNOM0200) situato in una derivazione EIO.
La stringa di caratteri può essere contenuta in una variabile statica (vedi EcoStruxure ™
Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) o impostata sotto forma di valore immediato (serie di byte tra apostrofi, ad esempio
'Messaggio da inviare').
Queste stringhe di caratteri possono contenere caratteri speciali e devono iniziare con il carattere $ seguito dal valore esadecimale del carattere da inviare, ad esempio $0D .
È possibile utilizzare alcuni caratteri speciali (vedi EcoStruxure ™ Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento), quali:
$R = CR (ritorno a capo), $L = LF (avanzamento riga), $N = CR+LF .
È possibile configurare i parametri aggiuntivi EN ed ENO .
I blocchi funzione di comunicazione utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione. Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
33003682.24
257
comunicazione
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
Rappresentazione FBD
Rappresentazione:
258 33003682.24
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
CAL PRINT_CHAR_QX_Instance (ENABLE:=PrintCharEnable, ABORT:
=PrintCharAbort, ADDR:=ModuleAddress, SEND_LEN:=NbCharToSend, SEND_
BUF:=SendBuffer, DONE=>PrintCharSuccessfull, ACTIVE=
>PrintCharActive, ERROR=>PrintCharFaulty, STATUS=>ErrorCode)
Rappresentazione ST
Rappresentazione:
PRINT_CHAR_QX_Instance (ENABLE:=PrintCharEnable, ABORT:
=PrintCharAbort, ADDR:=ModuleAddress, SEND_LEN:=NbCharToSend, SEND_
BUF:=SendBuffer, DONE=>PrintCharSuccessfull, ACTIVE=
>PrintCharActive, ERROR=>PrintCharFaulty, STATUS=>ErrorCode);
33003682.24
259
comunicazione
Descrizione dei parametri
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
La tabella seguente descrive i parametri di ingresso:
Parametro
ENABLE
ABORT
ADDR
SEND_LEN
SEND_BUF
Tipo
BOOL
BOOL
ANY_ARRAY_INT
INT
ANY
Commento
Impostato a 1 per inviare una stringa di caratteri.
Impostato a 1 per interrompere l'operazione corrente.
Array contenente l'indirizzo di destinazione del modulo
Modicon X80, risultato della funzione
Numero di caratteri da inviare.
Caratteri da inviare.
Nota : questo parametro relativo ai caratteri deve esistere, anche se non vi sono dati da inviare.
Descrizione dei parametri d'uscita:
Parametro
DONE
Tipo di dati
BOOL
ACTIVE
ERROR
STATUS
BOOL
BOOL
WORD
Significato
Impostato a 1 quando l'esecuzione della funzione è terminata correttamente.
Impostato a 1 quando l'esecuzione della funzione è in corso.
Impostato a 1 se viene rilevato un errore dal blocco funzione.
Fornisce il
se il blocco funzione rileva un errore.
Regole di programmazione
I caratteri speciali sono preceduti dal carattere $ nella stringa da trasmettere. I caratteri $ non sono trasmessi dal mittente e perciò non devono essere conteggiati durante l'inizializzazione del parametro di lunghezza.
Gli spazi tra due caratteri sono conteggiati in un byte.
Perciò, nell'esempio PRINTING IN PROGRESS$L$R la lunghezza dei dati da inviare è 22 byte.
260 33003682.24
PRINT_CHAR_QX: Invio di stringhe di caratteri sul bus EIO
comunicazione
NOTA: Per inviare stringhe di caratteri che contengano caratteri di fine stringa (ZERO), occorre:
• utilizzare STRINGHE allocato
• inizializzare SEND_LEN con il numero di caratteri da inviare.
33003682.24
261
comunicazione
RCV_TLG: Ricezione di telegrammi
RCV_TLG: Ricezione di telegrammi
Contenuto del capitolo
Descrizione ........................................................................... 262
Esempio di come ricevere un telegramma................................ 265
Argomento del capitolo
Questo capitolo descrive la funzione RCV_TLG .
Descrizione
Descrizione della funzione
La funzione RCV_TLG viene utilizzata per leggere i dati di tipo telegramma da un'applicazione remota.
I dati ricevuti devono essere di una lunghezza max. di 16 byte. A differenza delle altre funzioni di comunicazione, questa funzione viene elaborata immediatamente (sincrona): non vi sono quindi bit di attività e parametri di timeout.
La tabella dei valori interi assegnati ai parametri di gestione, pertanto, utilizza solo due parole anziché quattro (i numeri di scambio e di timeout non sono necessari).
NOTA: questa funzione può essere utilizzata su Fipway solo nel processore e per le stazioni da 0 a 15.
Configurare i parametri supplementari EN ed ENO .
Rappresentazione FBD
Rappresentazione:
262 33003682.24
RCV_TLG: Ricezione di telegrammi
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
LD Management_Param
RCV_TLG Address, Received_Data
Rappresentazione ST
Rappresentazione:
RCV_TLG(Management_Param, Address, Received_Data);
Descrizione dei parametri
La tabella seguente descrive i parametri ingresso/uscita:
33003682.24
263
comunicazione
RCV_TLG: Ricezione di telegrammi
Parametro
Management_Param
Tipo
ARRAY [0.. 1] OF
INT
Commento
Tabella di parole utilizzata per gestire lo scambio. Questa tabella è costituita da 2 parole: la parola di rapporto e la parola che indica la quantità di dati ricevuti (in numero di byte). Il report comprende:
• il report operazioni (byte più significativo della prima parola),
• il report comunicazioni (byte meno significativo della prima parola),
Il report di comunicazione assume uno dei seguenti valori:
• 16#00 : scambio corretto,
• 16#05 : parametri di gestione errati,
• 16#06 : parametri specifici errati,
• 16#09 : dimensioni del buffer di ricezione insufficienti,
• 16#0B: nessuna risorsa di sistema: il numero di EF di comunicazione simultanei supera il valore massimo che può essere gestito dal processore,
• 16#0D: nessun telegramma ricevuto,
• 16#10 : modulo di rete mancante,
• 16#0F: servizio telegramma non configurato.
La tabella seguente descrive i parametri d'uscita:
Parametro
Indirizzo
Received_Data
Tipo
INT
ARRAY [n... m] OF
INT
Commento
Indirizzo dell'entità che trasmette il telegramma alla fine dello scambio.
• Il byte meno significativo corrisponde al numero di rete esadecimale.
• Il byte più significativo corrisponde al numero di stazione esadecimale.
Buffer di ricezione. Tabella di interi contenente i dati ricevuti.
Questa tabella deve essere max. 8 interi (16 byte) di lunghezza.
264 33003682.24
RCV_TLG: Ricezione di telegrammi
Esempio di come ricevere un telegramma
comunicazione
In breve
Si ipotizzi di voler ricevere un telegramma di 8 parole (16 byte) da un'applicazione remota su una rete Fipway.
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
Programmazione
Programmazione in ST:
IF RE(%I0.3.11) THEN
RCV_TLG(%MW200:2, %MW300,%MW310:8);
END_IF;
Parametri della richiesta:
Parametri
%MW200:2
%MW300
%MW310:8
Descrizione
Tabella di gestione
Contiene l'indirizzo del mittente alla fine dello scambio.
Contenuto del telegramma ricevuto
33003682.24
265
comunicazione
RCV_TLG: Ricezione di telegrammi
NOTA: quando una funzione RCV_TLG è programmata in un task evento, non è possibile utilizzarla nel task MAST o FAST.
Per eseguire questa funzione in modo sincrono, è necessario testare il rapporto operazione immediatamente dopo la riga di programma che attiva l'esecuzione della funzione.
266 33003682.24
READ_ASYN: Lettura dei dati in modo asincrono
READ_ASYN: Lettura dei dati in modo asincrono
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 267
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione READ_ASYN .
Descrizione
Descrizione della funzione
La funzione READ_ASYN è utilizzata per leggere 1 Kbyte di dati tramite il canale di messaggistica asincrona dei moduli TSX ETY in modalità TCP/IP.
È possibile accedere in lettura ai dati seguenti:
• bit interni
• parole interne.
La lettura asincrona si può effettuare solo tra due stazioni sullo stesso segmento di rete
TCP/IP Ethernet.
La funzione READ_ASYN è inviata alla fine del task MAST solo se questo è configurato in modalità periodica. È possibile attivare 8 funzioni contemporaneamente.
Il principio di funzionamento è identico a quello della funzione
La dimensione dei buffer di invio e ricezione è espressa in parole. È di 512 parole, o 1024 byte.
NOTA: La funzione server asincrona supporta protocolli UNI-TE V1 o V2.0. La funzione
READ_ASYN utilizza il protocollo UNI-TE V2.0.
È possibile configurare anche i parametri supplementari EN ed ENO .
33003682.24
267
comunicazione
Rappresentazione FBD
Rappresentazione:
READ_ASYN: Lettura dei dati in modo asincrono
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
Indirizzo LD
READ_ASYN Object_Type, First_Object, Object_Number, Management_
Param, Receiving_Array
268 33003682.24
READ_ASYN: Lettura dei dati in modo asincrono
comunicazione
Rappresentazione ST
Rappresentazione:
READ_ASYN(Address, Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
Address
Object_Type
First_Object
Object_Number
Tipo
ARRAY [0.. 5] OF
INT
STRING
DINT
INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Gli indirizzi sono del tipo: ADDR('{Network.Station}
SYS .
Tipo di oggetti da leggere:
• '%M': bit interni,
• '%MW': parole interne,
• '%S': bit di sistema,
• '%SW': parole di sistema.
Indice del primo oggetto da leggere.
Numero di oggetti da leggere.
La tabella seguente descrive i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo
ARRAY [0.. 3] OF
INT
Commento
Tabella di gestione degli scambi, pagina 39
La tabella seguente descrive i parametri d'uscita:
Parametro
Receiving_Array
Tipo
ARRAY [n... m] OF
INT
Commento
Tabella di parole contente il valore degli oggetti letti.
33003682.24
269
comunicazione
READ_DDT: lettura di DDT
Contenuto del capitolo
Configurazione della funzione elementare READ_DDT............. 270
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione READ_DDT .
Configurazione della funzione elementare READ_
DDT
Panoramica
Utilizzare il blocco funzione READ_DDT per configurare i messaggi letti per il modulo di comunicazione BMENUA0100.
I parametri ADR , DDT_NAME e GEST definiscono il funzionamento.
È possibile configurare EN ed ENO come parametri supplementari.
Rappresentazione FBD
270 33003682.24
Parametri di ingresso
Parametro
EN
ADR
DDT_NAME comunicazione
Tipo di dati
BOOL
Qualsiasi array di
INT
STRING
Descrizione
Questo parametro è facoltativo. Quando questo ingresso è impostato a uno, il blocco viene attivato e può risolvere l'algoritmo dei blocchi funzione. Quando questo ingresso è impostato a zero, il blocco viene disattivato e non risolve l'algoritmo dei blocchi funzione.
Array contenente l'entità di destinazione dell'operazione di scambio.
L'indirizzo è il risultato della funzione ADDMX. Ad esempio: ADDMX
(0.0.3{192.168.10.2}100.TCP.MBS) indica il modulo all'indirizzo IP
192.168.10.2, con UnitId 100 (server locale del modulo), collegato alla porta Ethernet integrata.
Nome del DDT da leggere: T_BMENUA0100
Parametri di ingresso/uscita
L'array GEST è locale:
Parametro
GEST
Tipo di dati
Array
[0...3] di
INT
Descrizione
1
2
3
I parametri di gestione, costituiti da quattro parole. Per ulteriori informazioni relative a questi parametri, consultare la sezione della guida di Control Expert
Struttura dei parametri di gestione , pagina 39 .
BYTE più significativo BYTE meno significativo Parola#
0 Numero di scambio Bit di attività: rango 0
Bit di annullamento: rango 1
Bit di riconoscimento immediato: rango 2
Report comunicazioni, pagina 42
33003682.24
271
comunicazione
Parametri di uscita
Parametro
ENO
Tipo di dati
BOOL
RECP_DDT Qualsiasi
Descrizione
Questo parametro è facoltativo. Quando si seleziona questa uscita, si ottiene anche l'ingresso EN. L'uscita
ENO viene attivata a seguito della corretta esecuzione del blocco funzione.
Buffer di ricezione. È possibile utilizzare una variabile
DDT. Per il contenuto di questo DDT, vedere la descrizione del DDT T_BMENUA0100 (vedi M580,
BMENUA0100 OPC UA Modulo integrato, Guida di installazione e configurazione). La dimensione dei dati ricevuti (in byte) viene scritta automaticamente dal sistema nella quarta parola della tabella di gestione.
Blocchi funzione per la comunicazione asincrona
In un'applicazione Hot Standby durante un evento di commutazione, il blocco funzione di comunicazione asincrona READ_DDT non riprende automaticamente il funzionamento sul nuovo PAC primario, se non configurato specificamente, come indicato di seguito.
Utilizzare la procedura seguente per consentire agli EFB di comunicazione asincroni di riprendere automaticamente il funzionamento dopo una commutazione:
• Programmare l'applicazione in modo che non tutte le istanze degli EFB vengano scambiate con il PAC di standby. A questo scopo, deselezionare l'attributo Scambio su
STBY per l'istanza EFB.
Considerazioni quando si configura la funzione
Quando si utilizza la funzione elementare READ_DDT, considerare quanto segue:
• Se l'applicazione comprende più BMENUA0100 in un rack, utilizzare istanze separate di un array WORD per ogni pin GEST. Ogni blocco gestisce il proprio array WORD di gestione.
• Non è necessario specificare un valore per il parametro della lunghezza in GEST[3], in quanto non vi sono dati da inviare. Al termine dell'operazione (quando il bit di attività in
GEST[0] è impostato a 0), la lunghezza verrà impostata con la lunghezza dei dati copiati nel parametro di uscita RECP_DDT se non viene segnalato alcun errore rilevato in GEST[1] o con un codice di stato opzionale. Per una descrizione di questi valori del codice di stato aggiuntivi, consultare l'argomento della guida di Control Expert
Codici di errore degli EFB con parametro STATUS , pagina 551 .
272 33003682.24
comunicazione
• Un valore di timeout di 0 indica un periodo di attesa infinito. In questo caso, una perdita o un ritardo di comunicazione che si verifica durante l'operazione di scambio non viene rilevato. Durante questo periodo di attesa infinito, il parametro RECP_DDT conserva il valore precedente. Per evitare questo scenario, impostare il timeout a un valore diverso da zero.
• In caso di report operazione 16#01 (Richiesta non elaborata) o 16#02 (Risposta errata) nella parola GEST[1] della tabella di gestione, un codice di stato aggiuntivo può essere segnalato nel parametro della lunghezza (GEST[3]). I codici di stato restituiti in questo campo corrispondono a un sottointervallo dei possibili codici del parametro STATUS degli EFB di comunicazione. I valori possibili per READ_DDT sono 0x30ss e 0x4001.
Per una descrizione di questi valori del codice di stato aggiuntivi, consultare l'argomento della guida di Control Expert
Codici di errore degli EFB con parametro
.
• In base al DDT specificato nel parametro DDT_NAME, sui dati ricevuti vengono eseguiti alcuni controlli di coerenza. Se viene rilevata una mancata corrispondenza, viene impostato il codice 16#02 (Risposta errata) nel byte del report operazione (il byte più significativo di GEST[1]). Tenere presente che il blocco non controlla la validità del tipo di dati della variabile configurata come buffer di ricezione (RECP_DDT). Verificare che il tipo di dati della variabile collegata al parametro RECP_DDT corrisponda al tipo di dati ricevuti.
ATTENZIONE
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
• Verificare che la variabile di tipo DDT associata al parametro di uscita RECP_DDT corrisponda al tipo di dati scritti nel buffer di ricezione.
• Verificare che l'indirizzo impostato nel parametro ADR corrisponda al modulo corretto, in particolare quando sono configurati più moduli identici nella stessa rete.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Configurazione della funzione elementare READ_DDT
Per configurare la funzione elementare READ_DDT, seguire questa procedura:
2
3
Passo
1
Azione
Impostare il dispositivo di destinazione in ADR (utilizzare un blocco ADDM per specificare questo indirizzo in formato stringa esplicito).
Impostare il parametro DDT_NAME con il nome del DDT da leggere.
Richiamare la funzione READ_DDT per avviare la comunicazione (con il pin di ingresso EN impostato a 1, se configurato).
33003682.24
273
comunicazione
Passo
4
5
Azione
Monitorare il bit di attività (nel byte meno significativo del parametro GEST[0]) fino al completamento della comunicazione (il bit di attività viene impostato a 0 dal sistema al termine della comunicazione). Eseguire la funzione solo una volta per evitare di cancellare i valori di stato. Ad esempio, impostando il pin EN a 0 durante il funzionamento si provoca il richiamo della funzione.
Visualizzare i parametri del report in GEST[1]. Se il report indica 16#0000, il buffer RECP_DDT contiene i dati ricevuti. La dimensione dei dati ricevuti (in byte) viene scritta nella quarta parola
(GEST[3]) della tabella di gestione.
Esempio di EF READ_DDT EF
274
In questo esempio, è possibile avviare l'EF READ_DDT:
• Continuamente impostando la variabile read_ddt_continuous.
NOTA: nel caso di un errore rilevato, non è possibile leggere i codici del report nella seconda parola della variabile read_ddt_mngt.
• Solo una volta, impostando la variabile read_ddt_one_shot.
33003682.24
READ_GDATA: Lettura dei dati globali Modbus Plus
READ_GDATA: Lettura dei dati globali
Modbus Plus
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 275
Argomento del capitolo
Questo capitolo descrive la funzione READ_GDATA .
Descrizione
Descrizione della funzione
La funzione READ_GDATA è utilizzata per leggere dati condivisi, o Dati globali , su una rete
Modbus Plus .
I Dati globali vengono condivisi tra un massimo di 64 stazioni sulla stessa rete Modbus Plus.
Ciascuna stazione può scrivere fino a 32 interi, successivamente utilizzabili da tutte le stazioni sulla rete. Ogni stazione può, a sua volta, leggere i 32 interi (al massimo) di tutte le altre stazioni di rete.
È possibile configurare anche i parametri supplementari EN ed ENO .
Rappresentazione FBD
Rappresentazione:
33003682.24
275
comunicazione
Rappresentazione LD
Rappresentazione:
READ_GDATA: Lettura dei dati globali Modbus Plus
Rappresentazione IL
Rappresentazione:
Indirizzo LD
READ_GDATA Management_Param, Receiving_Array
Rappresentazione ST
Rappresentazione:
READ_GDATA(Address, Management_Param, Receiving_Array);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
Address
Tipo
ARRAY [0.. 5] OF
INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Questo indirizzo è inizializzato, prima dello scambio, con il valore del nodo su cui è connessa la stazione di cui sono richiesti i Dati globali.
Indirizzo di esempio: ADDR('0.0.1.10') corrisponde alla stazione collegata al nodo 10 della rete. Le prime tre cifre
(0.0.1) corrispondono all'indirizzo del canale della scheda
PCMCIA Premium Modbus Plus.
276 33003682.24
READ_GDATA: Lettura dei dati globali Modbus Plus
comunicazione
La tabella seguente descrive i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo
ARRAY [0.. 3] OF
INT
Commento
Tabella di gestione scambi, pagina 39
.
Non è necessario inizializzare il parametro di lunghezza prima di avviare lo scambio.
Alla fine di questo scambio, questo parametro di lunghezza (la quarta parola) contiene il numero di byte costituente i dati prodotti dalla stazione specificata nell'indirizzo.
La tabella seguente descrive i parametri d'uscita:
Parametro
Receiving_Array
Tipo
ARRAY [n... m] OF
INT
Commento
Tabella di parole contente il valore degli oggetti letti.
33003682.24
277
comunicazione
READ_REG: Lettura registro
Contenuto del capitolo
Descrizione ........................................................................... 278
Tipi di dati derivati .................................................................. 281
Modalità di funzionamento ...................................................... 283
Descrizione dei parametri ....................................................... 283
Introduzione
Questo capitolo descrive il blocco READ_REG .
Descrizione
Descrizione della funzione
Con un fronte di salita sull'ingresso REQ , questo blocco funzione legge un'area di registro da uno slave indirizzato tramite Modbus Plus, TCP/IP-Ethernet o SY/MAX-Ethernet.
I blocchi funzione CREAD_REG , CWRITE_REG , READ_REG , WRITE_REG e MBP_MSTR utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione.
Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
278 33003682.24
comunicazione
NOTA: Quando si programma una funzione READ_REG , occorre conoscere le procedure di instradamento utilizzate dalla rete. Le strutture dei percorsi di transazione Modbus
Plus sono descritte nei dettagli nel manuale Architetture di comunicazione (vedi Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete Modbus
Plus, Guida alla pianificazione e all'installazione (codice di riferimento 31003525) . Se è implementato l'instradamento Ethernet (vedi Quantum con EcoStruxure ™ Control Expert,
Configurazione di TCP/IP, Manuale dell'utente) TCP/IP o SY/MAX, devono essere utilizzati i prodotti di instradamento Ethernet IP standard.
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
Rappresentazione in FBD
Rappresentazione:
Rappresentazione in LD
Rappresentazione:
33003682.24
279
comunicazione
Rappresentazione in IL
Rappresentazione:
CAL READ_REG_Instance (REQ:=StartReadOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData,
ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead,
STATUS=>ErrorCode)
Rappresentazione in ST
Rappresentazione:
READ_REG_Instance (REQ:=StartReadOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData,
ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead,
STATUS=>ErrorCode) ;
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
REQ
Tipo di dati
BOOL,
SLAVEREG
NO_REG
ADDRFLD
DINT
INT
WordArr5
Significato
Con un fronte di salita sull'ingresso REQ , questo blocco funzione legge un'area di registro da uno slave indirizzato tramite Modbus Plus, TCP/IP-Ethernet o SY/MAX-Ethernet.
Indirizzo offset del primo registro %MW nello slave da cui leggere.
Numero di indirizzi da leggere dallo slave
Struttura di dati che descrive l'indirizzo Modbus Plus, l'indirizzo
TCP/IP o l'indirizzo SY/MAX-IP.
Descrizione dei parametri d'uscita:
Parametro
NDR
ERROR
Tipo di dati
BOOL
BOOL
Significato
Impostato a 1 per un ciclo dopo la lettura dei nuovi dati
Impostato a 1 per un ciclo se si verifica un errore
280 33003682.24
Parametro
STATUS
Tipo di dati
WORD,
REG_READ ANY comunicazione
Significato
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Scrittura dei dati
Per poter leggere il file è necessario dichiarare una struttura dati come variabile allocata.
Errore di runtime
Per un elenco di tutti i valori e i codici di errore del blocco, vedere la
tabella dei codici di errore, pagina 549 .
Tipi di dati derivati
Descrizione degli elementi per
WordArr5
in Modbus Plus
Descrizione degli elementi per WordArr5 in Modbus Plus:
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
Tipo dati
WORD
WORD
WORD
Descrizione
Byte meno significativo:
Il registro d'instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno di cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte del percorso d'instradamento diverso da zero è il nodo di destinazione.
Byte più significativo:
Indirizzo del nodo di origine.
• posizione slot del modulo quando si utilizza la porta
Modbus Plus sul modulo NOM.
• impostato a 0 quando si utilizza la porta Modbus Plus sulla CPU (indipendentemente dallo slot CPU).
Registro d'instradamento 2
Registro d'instradamento 3
33003682.24
281
comunicazione
Elemento
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
Descrizione
Registro d'instradamento 4
Registro d'instradamento 5
Descrizione degli elementi per
WordArr5
con Ethernet
TCP/IP
Descrizione degli elementi per WordArr5 con Ethernet TCP/IP
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo:
Slot del modulo NOE (16#FE se la rete Ethernet è integrata nella CPU)
Byte 4 (MSB) dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit.
Byte 2 dell'indirizzo IP di destinazione a 32 bit.
Byte 1 (LSB) dell'indirizzo IP di destinazione a 32 bit
Descrizione degli elementi per
WordArr5
con Ethernet
SY/MAX
Descrizione degli elementi per WordArr5 con Ethernet SY/MAX:
Elemento
WordArr5[1]
WordArr5[2]
Tipo dati
WORD
WORD
Descrizione
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte più significativo: slot del modulo NOE
Numero derivazione della destinazione (o impostato al valore esadecimale di FF)
282 33003682.24
Elemento
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD comunicazione
Descrizione
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Nessun significato
Nessun significato
Modalità di funzionamento
Modalità di funzionamento dei blocchi
READ_REG
Anche se è possibile programmare una grande quantità di blocchi di funzione READ_REG , solo quattro operazioni di lettura possono essere attive contemporaneamente. In un caso del genere è irrilevante se sono il risultato di questo blocco di funzione o di altri (ad es.
MBP_
MSTR , CREAD_REG ). Tutti i blocchi di funzione utilizzano un percorso di transazione e richiedono più cicli per completare un processo.
NOTA: Una comunicazione TCP/IP tra un PLC Quantum (NOE 211 00) e un PLC
Momentum (tutte le CPU TCP/IP e tutti i moduli di I/O TCP/IP) è possibile solo quando in ogni ciclo viene eseguita un'unica operazione di lettura o di scrittura. Se per ciascun ciclo del PLC vengono inviate diverse operazioni, la comunicazione si interrompe senza generare un messaggio di errore nel registro di stato del blocco funzione.
Tutte le informazioni di instradamento sono contenute nella struttura dati WordArr5 dell'ingresso ADDRFLD . Il tipo di blocco funzione assegnato a questo ingresso è definito dalla rete utilizzata.
Si consiglia di utilizzare:
• Modbus Plus per il blocco funzione ModbusP_ADDR
• Ethernet TCP/IP per il blocco funzione TCP_IP_ADDR
• Ethernet SY/MAX per il blocco funzione SYMAX_IP_ADDR
NOTA: La struttura dati WordArr5 può essere utilizzata anche con le costanti.
Descrizione dei parametri
REQ
Un fronte di salita attiva la transazione di lettura.
33003682.24
283
comunicazione
Il parametro può essere immesso come un indirizzo diretto, variabile localizzata, variabile non localizzata o letterale.
SLAVEREG
Inizio dell'area nello slave indirizzato dal quale vengono lette le origini dati. L'area di origine risiede sempre nell'area del registro %MW.
NOTA: Per gli slave per un PLC nonControl Expert:
L'area di origine risiede sempre nell'area dei registri 4x.
SLAVEREG prevede il riferimento dell'offset entro l'area 4x. Il "4" iniziale deve essere omesso (ad es. 59
(contenuto delle variabili o valore del letterale) = 40059).
Il parametro può essere immesso come un indirizzo diretto, variabile localizzata, variabile non localizzata o letterale.
NO_REG
Numero di indirizzi da leggere dallo slave indirizzato (1 - 100).
Il parametro può essere immesso come un indirizzo diretto, variabile localizzata, variabile non localizzata o letterale.
NDR
La transizione allo stato ON per un ciclo di programma significa la ricezione di nuovi dati pronti per essere elaborati.
Questo parametro può essere immesso come indirizzo diretto, variabile localizzata o variabile non localizzata.
ERROR
La transizione allo stato ON per un ciclo di programma indica il rilevamento di un nuovo errore.
Questo parametro può essere immesso come indirizzo diretto, variabile localizzata o variabile non localizzata.
284 33003682.24
REG_READ
comunicazione
Un ARRAY delle stesse dimensioni della trasmissione richiesta deve essere concordato (≥
NO_REG ) per questo parametro. Il nome di questo array è definito come parametro. Se l'array definito è troppo piccolo, viene trasmessa solo la quantità di dati presente nell'array.
Il parametro deve essere definito come variabile localizzata.
STATUS
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
33003682.24
285
comunicazione
READ_REG_QX: Registro lettura sul bus EIO
READ_REG_QX: Registro lettura sul bus EIO
Contenuto del capitolo
Descrizione ........................................................................... 286
Presentazione
Questo capitolo descrive la funzione READ_REG_QX .
Descrizione
Descrizione della funzione
La funzione READ_REG_QX permette di leggere i registri in uno slave Modbus collegato a un modulo di comunicazione seriale Modicon X80 situato in una derivazione remota EIO.
Per programmare una funzione READ_REG_QX è necessario avere familiarità con le procedure di instradamento utilizzate dalla rete. Le strutture dei percorsi di instradamento
Modbus Plus sono descritte nel dettaglio nel capitolo Indirizzamento per un'entità di comunicazione Modbus Plus (vedi Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento
Rete Modicon Modbus Plus - Guida alla pianificazione e all'installazione, pagina 17 .
NOTA: Nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
È possibile configurare anche i parametri supplementari EN ed ENO .
I blocchi funzione di comunicazione utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione. Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un
286 33003682.24
READ_REG_QX: Registro lettura sul bus EIO
comunicazione percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
Rappresentazione in FBD
Rappresentazione:
33003682.24
287
comunicazione
Rappresentazione in LD
Rappresentazione:
READ_REG_QX: Registro lettura sul bus EIO
Rappresentazione in IL
Rappresentazione:
CAL READ_REG_QX_Instance (ENABLE:=ReadRegQxEnable, ABORT:
=ReadRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToRead,
SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE=
>ReadRegQxSuccessfull, ACTIVE=>ReadRegQxActive, ERROR=
>ReadRegQxFaulty, STATUS=>ErrorCode, REG_READ=>ReadData)
Rappresentazione in ST
Rappresentazione:
READ_REG_QX_Instance (ENABLE:=ReadRegQxEnable, ABORT:
=ReadRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToRead,
SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE=
>ReadRegQxSuccessfull, ACTIVE=>ReadRegQxActive, ERROR=
>ReadRegQxFaulty, STATUS=>ErrorCode, REG_READ=>ReadData)
288 33003682.24
READ_REG_QX: Registro lettura sul bus EIO
comunicazione
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
ENABLE
ABORT
ADDR
Tipo di dati
BOOL
BOOL
ANY_ARRAY_INT
NO_REG
SLAVEREG
IEC
INT
DINT
INT
Significato
Impostato a 1 per la lettura dei registri.
Impostato a 1 per interrompere l'operazione corrente.
Array contenente l'indirizzo slave Modbus, risultato della funzione
Numero di registri da leggere nello slave Modbus.
Indirizzo offset del primo registro %MW da leggere nello slave
Modbus.
Regolazione dell'indice applicata al parametro SLAVEREG . Il parametro IEC può avere 2 valori:
• 0: %MW x
• 1: %MW x+1
Il valore predefinito IEC è 0 per una destinazione Modicon
M340.
Descrizione dei parametri d'uscita:
Parametro
DONE
Tipo di dati
BOOL
ACTIVE
ERROR
STATUS
REG_READ
BOOL
BOOL
WORD
ANY_ARRAY_WORD
Significato
Impostato a 1 quando l'esecuzione della funzione è terminata correttamente.
Impostato a 1 quando l'esecuzione della funzione è in corso.
Impostato a 1 se viene rilevato un errore dal blocco funzione.
Fornisce il
se il blocco funzione rileva un errore.
Lettura dei dati
(Una struttura di dati deve essere dichiarata come variabile localizzata per poter ricevere la risposta dallo slave Modbus.)
33003682.24
289
comunicazione
READ_REMOTE: lettura di variabili remote
READ_REMOTE: lettura di variabili remote
Contenuto del capitolo
Descrizione ........................................................................... 290
Introduzione
Questo capitolo descrive il blocco funzione di comunicazione READ_REMOTE .
Descrizione
Descrizione della funzione
La funzione READ_REMOTE consente di leggere il valore di variabili remote scambiate tra le applicazioni del PLC.
Quando il valore di ingresso EN è TRUE :
• Il blocco funzione di comunicazione READ_REMOTE consente di scambiare il valore della variabile tra i PLC. Possono essere lette le variabili allocate e non allocate
• È possibile leggere qualsiasi tipo di variabile remota con nome (allocata e non allocata) in base al nome della variabile
• Il numero di pin relativi alla selezione delle variabili è fisso e non può essere modificato dall'utente: 14 pin per specificare le variabili locali e 14 pin per specificare le variabili remote. Non è richiesto collegare tutti i pin di ingresso e uscita.
NOTA: i nomi delle variabili remote specificati nel parametro R_VAR_x possono essere modificati durante il runtime. Ciò porta al riavvio del processo di verifica dei dati tra i PLC locale e remoto.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
Limitazione del firmware della CPU
Il blocco READ_REMOTE è supportato da:
• CPU M580 con SO versione V3.20 o successive
• CPU M340 con SO versione V3.30 o successive
290 33003682.24
READ_REMOTE: lettura di variabili remote
comunicazione
Per consentire la verifica del tipo in base al confronto del checksum (vedere
Controllo del tipo di dati, pagina 295
), la CPU remota deve avere la seguente versione firmware minima:
• CPU M580 con SO versione V3.20 o successive
• CPU M340 con SO versione V3.30 o successive
NOTA: È possibile scambiare variabili con una CPU M580 o M340 remota dotata di un firmware precedente o di un'altra CPU che supporta la funzione Dizionario dati disattivando la verifica del tipo in base al confronto del checksum mediante il
.
Rappresentazione FBD
Rappresentazione:
33003682.24
291
comunicazione
Rappresentazione LD
Rappresentazione:
READ_REMOTE: lettura di variabili remote
Rappresentazione IL
Rappresentazione:
CAL READ_REMOTE_Instance CTRL:=ReadRemote_Control, ENABLE:
=ReadRemote_Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1:
=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE=
>ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_
ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_
VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14)
Rappresentazione ST
Rappresentazione:
READ_REMOTE_Instance (CTRL:=ReadRemote_Control, ENABLE:=ReadRemote_
Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1:
=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE=
>ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_
ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_
VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14);
292 33003682.24
READ_REMOTE: lettura di variabili remote
comunicazione
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
CTRL
ENABLE
ABORT
ADDR
R_VAR_i
Tipo
ARRAY_INT [0..3]
BOOL
BOOL
ANY_ARRAY_INT
STRING
Commento
Parametro di ingresso Control :
• INT [0] : tempo massimo TIMEOUT di attesa della fine dell'esecuzione della funzione READ_REMOTE (in millisecondi)
• INT [1] : impostato a 1 se la versione del firmware della
CPU remota è precedente a V3.30 per M340 e V3.2 per
M580
NOTA: il tipo di verifica tramite checksum del tipo non è eseguito nel caso di INT [1]. Tale verifica si basa solo sulla lunghezza del tipo (ad esempio, i tipi di variabili locali e remote sono considerati coerenti se hanno la stessa dimensione in byte).
La funzione è eseguita quando questo parametro è ON .
La funzione non è eseguita (interrotta) quando questo parametro è ON .
Array contenente l'indirizzo del PLC, risultato di:
• funzione ADDM per M340;
• funzione ADDMX per M580
Identificazione (nome simbolico) di una variabile remota.
La tabella seguente descrive i parametri d'uscita:
Parametro
DONE
ACTIVE
ERROR
STATUS
Tipo
BOOL
BOOL
BOOL
INT
Commento
La funzione richiesta viene eseguita e convalidata correttamente.
TRUE se l'esecuzione del blocco funzione è in corso (lettura dei descrittori della variabile remota e relativi valori).
Ricevuto uno stato diverso da zero.
Fornisce il
se il blocco funzione rileva un errore.
NOTA: il valore del parametro STATUS è 0 solo se il valore del parametro EXT_STATUS è 0 per ogni accesso alla variabile.
33003682.24
293
comunicazione
Parametro
EXT_STATUS
L_VAR_i
Tipo
ARRAY [1..14] OF
INT
ANY
READ_REMOTE: lettura di variabili remote
Commento
Fornisce il
esteso se il blocco funzione rileva un errore: uno stato per ogni accesso alla variabile.
Una variabile locale utilizzata per memorizzare il valore letto da una variabile remota.
NOTA: il tipo di una variabile locale deve corrispondere al tipo di una variabile remota (vedere Controllo del tipo di dati di seguito).
Regole d'uso
Questa funzione supporta i dati remoti seguenti:
• Variabili elementari
• Array (tabelle)
• Istanze DDT senza riferimenti (tipo indirezione =1 )
Sono supportati i tipi seguenti di sintassi:
• MyVar
• MyArray[2]
• MyDdtArray[4].elem1
NOTA: l'indice Array deve essere un valore immediato.
NOTA: una variabile remota viene identificata con il nome o il nome del percorso. Ad esempio, MyVar[2].elem1
.
Il blocco funzione di comunicazione READ_REMOTE legge prima la definizione, l'indirizzo e il tipo di variabili remote e solo allora legge le variabili stesse. Questa regola si applica anche alle modifiche online dei dati del server del PLC, ad esempio rimuovendo una variabile o un'istanza del FB.
La funzione Dizionario dati deve essere attivata da un PLC client e da un PLC server.
Il blocco funzione di comunicazione READ_REMOTE deve essere chiamato ed eseguito dal task MAST, FAST, AUX0 o AUX1.
Il set di caratteri consentito per una variabile remota è Standard. Se si utilizzano caratteri estesi o Unicode per una variabile remota, si verifica un errore e il messaggio “Variabile non trovata” viene visualizzato nel server OFS.
Se si utilizza l'impostazione Solo variabili HMI nel Dizionario dati ( Strumenti >
Impostazione progetto > Dati integrati PLC ), l'attributo Variabile HMI deve essere selezionato per le variabili scambiate con il blocco funzione READ_REMOTE , possibile in un'applicazione locale o remota.
294 33003682.24
READ_REMOTE: lettura di variabili remote
comunicazione
NOTA: L'impostazione Solo variabili HMI non deve essere identica nelle applicazioni locale e remota.
Controllo del tipo di dati
ATTENZIONE
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
Verificare che il tipo di variabile referenziata dal parametro R_VAR_x corrisponda al tipo di variabile assegnata al parametro L_VAR_x .
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Il blocco di comunicazione READ_REMOTE legge variabili con tipi di dati identici.
Il controllo del tipo di dati tra variabili locali e remote viene eseguito per impostazione predefinita e si applica a:
• EDT
• DDT
• ARRAY DDT
• ARRAY anonimo
Il controllo del tipo di utente viene eseguito dal checksum di tipo identico e dalla lunghezza del tipo.
Gli attributi esportati del formato di origine definito sono controllati durante il controllo del checksum di tipo identico.
Viene sempre eseguito un controllo minimo di coerenza basato sulla lunghezza del tipo, mentre le variabili locali e remote devono avere la stessa dimensione in byte.
Il controllo per nome di tipo non viene eseguito a causa della differenza nelle definizioni utilizzate dal PLC client e dal PLC server.
Per disattivare il controllo del tipo di dati, utilizzare il parametro CTRL . Solo il controllo del tipo di dati basato sul checksum di tipo identico può essere disattivato tramite il parametro CTRL .
NOTA: i tipi di dati STRING e STRING[n] sono considerati identici anche se la dimensione della stringa è diversa. Sono scambiati solo i caratteri corrispondenti alla lunghezza minima delle variabili locali e remote. La stringa viene troncata solo per le variabili stringa ( STRING o STRING[n] ). Questa regola non si applica alle variabili stringa nei DDT.
33003682.24
295
comunicazione
READ_REMOTE: lettura di variabili remote
NOTA: La famiglia di CPU Premium e Quantum non condivide lo stesso schema di allineamento della memoria della famiglia M580 e M340. Le variabili DDT o array potrebbero non scambiarsi correttamente, completando con il codice 16#1309
(lunghezza non corrispondente) nel campo EXT_STATUS corrispondente. Per evitare scambi dati errati, è necessario modificare il tipo DDT in Premium o Quantum. Per ulteriori informazioni, vedere il capitolo DDT: Regole di mappatura. Control Expert può indicare al momento della compilazione dove l'allineamento sembra essere diverso. Per attivare questa opzione, modificare la proprietà Generazione compatibilità mappatura
DDT in Impostazioni progetto .
Comportamento della modalità Hot Standby
In modalità Hot Standby, READ_REMOTE si comporta analogamente ad altri blocchi funzione di comunicazione. La stessa regola di programmazione deve essere seguita come descritto in Blocco funzione di comunicazione asincrona (vedere Modicon M580 Hot Standby, Guida alla pianificazione del sistema per le architetture di utilizzo frequente).
Quando si verifica una commutazione, l'indirizzo IP del PLC di destinazione viene commutato nel PLC server, mentre la richiesta in corso viene riavviata nella modalità
Standby. Perciò, la comunicazione con il blocco funzione READ_REMOTE viene ripristinata e continua normalmente.
NOTA: la definizione di una variabile remota viene comunicata al PLC di Standby insieme con lo stato interno del blocco funzione di comunicazione READ_REMOTE .
Simulatore PLC
Il blocco funzione di comunicazione READ_REMOTE può essere utilizzato con il simulatore
PLC delle richieste di comunicazione in corso. Per informazioni, vedere EcoStruxure ™
Control Expert, Simulatore PLC .
Limitazioni
I dati seguenti mappati sul tipo di dati ANY non sono supportati da questa funzione:
• Istanze IODDT
• Istanze DDT dispositivo contenenti EBOOL
• Istanze DDT con un riferimento (tipo indirezione =1 )
• Array di EBOOL, EFB e DFB
NOTA: è lo stesso comportamento del parametro ANY .
296 33003682.24
READ_REMOTE: lettura di variabili remote
comunicazione
Altre limitazioni:
• Il numero massimo di variabili è 14
• La dimensione richiesta non deve superare 1 kB. Ossia:
◦ La dimensione totale dei dati scambiati deve essere inferiore a 1 kB
◦ La somma di tutte le stringhe descritte in tutti i percorsi di variabili deve essere inferiore a 1010 Byte
◦ Se la dimensione richiesta è > 1 kB, si verifica un errore di stato
• Il tempo di risposta dipende dal tempo di ciclo del PLC ed è limitato al valore di timeout specificato nella prima parola del parametro CTRL .
33003682.24
297
comunicazione
READ_SDO: lettura oggetto dati di servizio
READ_SDO: lettura oggetto dati di servizio
Contenuto del capitolo
READ_SDO: lettura oggetto dati di servizio.............................. 298
Argomento di questo capitolo
Questo capitolo descrive la funzione di comunicazione READ_SDO .
READ_SDO: lettura oggetto dati di servizio
Descrizione della funzione
Il blocco funzionale READ_SDO legge (scambi espliciti) dall'applicazione del PLC fino al dispositivo (SDO).
Questo blocco funzionale fornisce accesso al codice di interruzione quando il comando
SDO non riesce (solo se il bus di campo è in modalità RUN e solo verso i dispositivi configurati).
298 33003682.24
READ_SDO: lettura oggetto dati di servizio
Rappresentazione FBD
Rappresentazione: comunicazione
33003682.24
299
comunicazione
Rappresentazione LD
READ_SDO: lettura oggetto dati di servizio
Rappresentazione IL
Rappresentazione:
CAL READ_SDO_Instance (ENABLE := EnableREAD_SDO, ABORT := AbortREAD_
SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX :=
SDOIndex, SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN :=
DataNumberIn, DONE => ReadSDOSuccessful, ACTIVE => ReadSDOActive, ERROR
=> ReadSDOFaulty, STATUS => ErrorCode, SDOABORTCODE => AbortCode, NB_OUT
=> DataNumberOut, DATA => SDODataToRead)
Rappresentazione ST
Rappresentazione:
READ_SDO_Instance (ENABLE := EnableREAD_SDO, ABORT := AbortREAD_SDO,
ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex,
SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn, DONE
=> ReadSDOSuccessful, ACTIVE => ReadSDOActive, ERROR => ReadSDOFaulty,
300 33003682.24
READ_SDO: lettura oggetto dati di servizio
comunicazione
STATUS => ErrorCode, SDOABORTCODE => AbortCode, NB_OUT => DataNumberOut,
DATA => SDODataToRead)
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Descrizione Parametro di ingresso
ENABLE
ABORT
ADDR
Tipo di dati
BOOL
BOOL
ANY_ARRAY_INT
NODE
INDEX
SUBINDEX
OFFSET
NB_IN
BYTE
INT
BYTE
INT
INT
ON: l'operazione è attivata.
ON: l'operazione attiva in atto viene interrotta.
Array contenente l'indirizzo dell'entità di destinazione dell'operazione di lettura, risultato della funzione ADDMX.
Byte utilizzato per selezionare un particolare dispositivo slave NMT sulla rete CANopen (da 16#01 a 16#7F).
Due byte utilizzati per accedere a un oggetto particolare in un dispositivo server SDO CANopen.
Byte utilizzato per accedere a un sotto oggetto particolare in un dispositivo server SDO CANopen.
Due byte che indicano l'offset iniziale nell'oggetto selezionato. Può essere non zero quando si eseguono i trasferimenti SDO segmentati.
NOTA: Non usato per l'indirizzamento di un modulo EtherNet/IP
(indirizzo con suffisso CIP).
Due byte che forniscono il conteggio del numero desiderato di valori da leggere (in byte).
NOTA:
• Se impostato a 0, il numero di dati da leggere viene impostato alla dimensione della variabile associata al parametro di uscita DATA .
• Quando utilizzato con il modulo BMECXM0100, questo parametro di ingresso è uguale a 0 indipendentemente dal valore impostato.
La tabella seguente descrive i parametri d'uscita:
Tipo di dati Descrizione Parametro d’uscita
DONE
ACTIVE
ERROR
BOOL
BOOL
BOOL
ON: l'operazione viene conclusa correttamente.
ON: l'operazione è attiva.
ON: l'operazione viene interrotta senza successo.
33003682.24
301
comunicazione
READ_SDO: lettura oggetto dati di servizio
Parametro d’uscita
STATUS
Tipo di dati Descrizione
WORD Fornisce il
se il blocco funzione rileva un errore.
Codice di interruzione SDO, pagina 575
quando STATUS = 16#4007.
SDOABORT-
CODE
NB_OUT
DWORD
DATA
INT Dimensione dei dati (in BYTES) effettivamente restituiti nel parametro di uscita DATA .
ANY_ARRAY_BYTE Lettura dei dati.
302 33003682.24
READ_VAR: Lettura di variabili
READ_VAR: Lettura di variabili
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 303
Schermata di immissione assistita........................................... 310
Esempio di utilizzo su un bus Uni-Telway ................................. 313
Esempio di bit di lettura .......................................................... 315
Esempio di utilizzo in una rete................................................. 316
Esempio con controllo di esecuzione ....................................... 322
Introduzione
Questo capitolo descrive la funzione di comunicazione READ_VAR .
Descrizione
Descrizione della funzione
La funzione READ_VAR è utilizzata per leggere il valore di uno o più oggetti di linguaggio:
• bit interni
• parole interne.
Verificare che gli oggetti da leggere siano consecutivi. Possono trovarsi in una CPU remota o in un dispositivo collegato a un canale di comunicazione.
Nella CPU Modicon M340 e M580, la funzione READ_VAR può leggere fino a 2.000 bit consecutivi in un dispositivo remoto.
Sui PLC Premium, la funzione READ_VAR può leggere fino a 1.000 bit consecutivi in un dispositivo remoto, qualunque sia il dispositivo e il protocollo utilizzato (Uni-Telway o
Modbus/Jbus).
NOTA: Per i soli PLC Premium, la lettura di oltre 1000 bit richiede l'uso della funzione
SEND_REQ .
33003682.24
303
comunicazione
READ_VAR: Lettura di variabili
AVVERTIMENTO
INCOMPATIBILITÀ DEI DATI SCAMBIATI
Gli allineamenti delle strutture dati non sono le stesse per i dispositivi Premium/Quantum e per gli M340/M580, per cui verificare che i dati scambiati siano compatibili. Vedere DDT:
Regole di mappatura (vedere ™ EcoStruxure Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) per le regole di allineamento.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
Rappresentazione FBD
Rappresentazione:
304 33003682.24
READ_VAR: Lettura di variabili
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
LD Address
READ_VAR Object_Type, First_Object, Object_Number, Management_
Param, Receiving_Array
Rappresentazione ST
Rappresentazione:
READ_VAR(Address, Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
33003682.24
305
comunicazione
READ_VAR: Lettura di variabili
Parametro
ADR
OBJ
NUM
NB
Tipo
ARRAY [0..5] OF INT per Premium
ARRAY [0..7] OF INT per Modicon M340 e
M580
STRING
DINT
INT
Commento
Istruzioni specifiche per piattaforme hardware:
• Premium:
◦ L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
◦ Indirizzo dell'entità di destinazione dello scambio.
I seguenti indirizzi non sono ammessi:
• {Network.Station}APP,
• {Network.Station}APP.num.
• Modicon M340:
◦ L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
◦ La sintassi dell'indirizzo è di tipo ADDM ('r.m.c.
node').
• Modicon M580:
◦ Indirizzo dell'entità di destinazione dell'operazione di lettura, risultato della funzione
Tipi di oggetti da leggere per i PLC Premium:
• ’%M’: bit interni
• ’%MW’: parole interne
• ’%S’: bit di sistema
• ’%SW’: parole di sistema
• ’%I’: bit di ingresso
• ’%IW’: parole di ingresso
Tipi di oggetti da leggere per le CPU ModiconM340 e M580:
• ’%M’: bit interni
• ’%MW’: parole interne
• ’%I’: bit di ingresso
• ’%IW’: parole di ingresso
Indice del primo oggetto da leggere.
Numero di oggetti da leggere.
La tabella seguente descrive i parametri ingresso/uscita:
306 33003682.24
READ_VAR: Lettura di variabili
comunicazione
Parametro
GEST
Tipo Commento
ARRAY [0..3] OF INT Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39
.
La tabella seguente descrive i parametri d'uscita:
Parametro
RECP
Tipo
ARRAY [n..m] OF
INT
Commento
Tabella di parola contenente il valore della lettura oggetti.
NOTA: La dimensione dei dati ricevuti (in byte) viene scritto automaticamente dal sistema nella quarta parola della tabella di gestione.
Regole d'uso
Verificare che i tipi di oggetti siano immessi in maniera coerente. Immettere tutte le voci con le minuscole o tutte con le maiuscole; la funzione restituisce un rapporto uguale a 16#06
(parametri specifici non corretti).
Per i PLC Micro, Premium o Atrium che dispongono della funzione READ_VAR , l'accesso in solo lettura a i bit interni ha le seguenti particolarità:
• Il valore di forzatura dei bit è restituito nella risposta
33003682.24
307
comunicazione
READ_VAR: Lettura di variabili
• La lettura di 1 bit include perciò due tipi di risposte:
◦ la prima contiene il valore degli 8 bit di una richiesta
◦ la seconda indica se questi bit sono stati forzati.
• Per poter leggere uno degli ultimi 8 bit della memoria è necessario leggere tutti gli ultimi
8 bit, altrimenti la funzione restituisce un rapporto dell'operazione 16#01. Quest'ultima particolarità si applica anche ai PLC Modicon M340 e M580.
NOTA: Verificare che lo spazio dei byte di indicazione di forzatura sia presente per la tabella di ricezione; in caso contrario nel rapporto restituito viene indicato un codice di errore 16#03.
NOTA: Per i PLC Modicon M340/M580, i bit di forzatura non sono accessibili dalle funzioni READ_VAR e WRITE_VAR , in quanto il protocollo Modbus non li supporta.
Transazioni simultanee
La seguente tabella fornisce le capacità di ogni canale di comunicazione di elaborare simultaneamente le transazioni secondo varie configurazioni sui PLC Micro e Premium.
Configurazione Micro TSX 57 10 TSX 57 20
4
8
4
8
TSX 57 23/30/40/
45/55, PCX 57,
PMX 57
4
8
TSX 57 46/56
8
8
Porta terminale del master Uni-Telway
PCMCIA o collegamento SCY del master
Uni-Telway
Porta terminale dello slave client Uni-
Telway
PCMCIA o collegamento SCY dello slave client Uni-Telway
Porta terminale dello slave server Uni-
Telway
PCMCIA o collegamento SCY dello slave server Uni-Telway
Porta terminale Modbus
PCMCIA o collegamento SCY Modbus
Morsettiera modalità caratteri
PCMCIA o collegamento SCY modalità caratteri
PCMCIA CANopen
PCMCIA o collegamento SCY Fipway
4
1
4
1
4
4
4
4
1
4
-
4
1
1
4
6
-
8
1
8
10
8
1
1
4
6
-
8
1
8
10
8
1
1
4
6
-
8
1
8
10
8
8
1
4
6
-
8
1
8
10
8
308 33003682.24
READ_VAR: Lettura di variabili
comunicazione
Configurazione
Modbus Plus
Ethernet
Ethernet integrato
4
-
-
Micro TSX 57 10 TSX 57 20
4
16
-
4
16
-
TSX 57 23/30/40/
45/55, PCX 57,
PMX 57
4
16
-
TSX 57 46/56
4
16
64
Capacità di ogni canale di comunicazione di elaborazione simultanea delle transazioni secondo varie configurazioni sui PLC Modicon M340:
Configurazione
CANopen integrato
Ethernet integrato
Porta seriale master
Modbus
BMX P34 1000 BMX P34 2000
-
-
8
-
-
16
BMX P34 2010/
20102
16
-
16
BMX P34 2020
-
16
16
BMX P34 2030/
20302
16
16
-
Numero massimo di richieste come client per scansione sulle M580 CPU standalone :
Configurazione
Ethernet
Codice di riferimento della CPU (BME P58 ...)
10•0
16
20•0
32
30•0
48
40•0
80
5040
80
6040
96
Numero massimo di richieste come client per scansione sulle M580 CPU Hot Standby :
Configurazione
Ethernet
Codice di riferimento della CPU (BME H58 ...)
2040
32
4040
80
6040
96
Numero massimo di richieste elaborate per scansione sulle M580 CPU standalone :
Configurazione
CPU da tutte le origini (1.)
Ethernet integrato
Codice di riferimento della CPU (BME P58 ...)
10•0
16
8
20•0
24
12
30•0
32
16
40•0
40
24 (2.)
5040
48
32
6040
64
32
USB 4 4 4 4 4 4
1.
La parola di sistema %SW90 consente di regolare il numero di richieste eseguite per ciclo. Il numero minimo di richieste elaborate per ciclo è impostato a 2 al fine di ridurre il jitter CPU.
2.
Il numero massimo di richieste è 16 per la CPU M580 BME P58 40•0 con versione firmware ≤ 1.20.
33003682.24
309
comunicazione
READ_VAR: Lettura di variabili
Numero massimo di richieste elaborate per scansione sulle M580 CPU Hot Standby :
Configurazione
CPU da tutte le origini (1.)
Ethernet integrato
Codice di riferimento della CPU (BME H58 ...)
2040
24
12
4040
40
24
6040
64
32
USB 4 4 4
1.
La parola di sistema %SW90 consente di regolare il numero di richieste eseguite per ciclo. Il numero minimo di richieste elaborate per ciclo è impostato a 2 al fine di ridurre il jitter CPU.
NOTA: Verificare che il numero massimo di richieste simultanee presenti in tutte le tabelle tenga in considerazione il numero massimo di richieste simultanee che ogni CPU può gestire per ciclo, come Client e come Server (vedere Modicon M580, Hardware,
Manuale di riferimento).
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per il Modicon M340/M580.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
310 33003682.24
READ_VAR: Lettura di variabili
comunicazione
Illustrazione
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetto possibili sono:
• ADDR(STRING)
• ARRAY[0..5] OF INT .
NOTA: se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo diventa grigiato.
Tipo di oggetto da leggere.
Per i PLC Premium, le opzioni possibili sono:
• ‘%M’ per la lettura dei bit interni.
• '%MW' per leggere le parole interne.
• ‘%S’ per la lettura dei bit di sistema.
• ‘%SW’ per la lettura delle parole di sistema.
• ‘%I’ per la lettura dei bit di ingresso.
• ‘%IW’ per la lettura delle parole di ingresso.
NOTA: scegliere semplicemente tra le soluzioni disponibili nel menu a discesa.
33003682.24
311
comunicazione
READ_VAR: Lettura di variabili
Indirizzo del primo oggetto da leggere
Gli oggetti possibili sono del tipo DINT :
• variabili
• costanti
• valore immediato.
NOTA: se si immette una costante, viene visualizzato un campo per l'immissione della stessa. Se si immette una variabile, questa può essere identificata o meno.
Numero di oggetti consecutivi da leggere
Gli oggetti possibili del tipo INT sono:
• variabili
• costanti
• valore immediato.
NOTA: se si immette una costante, viene visualizzato un campo per l'immissione della stessa. Se si immette una variabile, questa può essere identificata o meno.
Area di ricezione
La zona ricezione è una matrice (array) di interi. La dimensione di questa matrice dipende dal numero di oggetti da leggere. Questa matrice di interi può essere localizzata o meno.
Rapporto
Il rapporto è un array di 4 interi.
NOTA: evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto. In caso contrario, la funzione di lettura delle variabili potrebbe non essere attiva.
312 33003682.24
READ_VAR: Lettura di variabili
Esempio di utilizzo su un bus Uni-Telway
comunicazione
In breve
Il PLC master deve leggere parole interne da %MW100 a %MW109 dell'indirizzo stazione 6 su un bus Uni-Telway. I valori delle parole lette vengono ordinati in base alla parola interna %
MW10 , mentre i parametri di gestione sono archiviati in base a %MW40 .
Illustrazione
Entrambe le stazioni sono collegate da un bus Uni-Telway.
33003682.24
313
comunicazione
Programmazione
Programmazione in LD:
READ_VAR: Lettura di variabili
314
Parametri della richiesta:
Parametri
'0.0.0.6'
'% MW '
100
10
%MW40:4
%MW10:10
Descrizione
• 0 : rack
• 0 : modulo
• 0 : canale 0
• 6 : indirizzo di destinazione
Tipo di oggetto (parola interna)
Indirizzo del primo oggetto
Numero di oggetti consecutivi
Rapporto
Contenuto della risposta
33003682.24
READ_VAR: Lettura di variabili
Esempio di bit di lettura
comunicazione
In breve
Nei PLC Modicon M340, non è possibile accedere ai bit forzati tramite le funzioni READ_VAR e WRITE_VAR poiché il protocollo Modbus non supporta questa funzione. Di conseguenza, le istruzioni relative ai bit forzati che seguono non sono valide per i PLC Modicon M340.
Gli esempi che seguono illustrano la funzione di comunicazione READ_VAR per la lettura dei bit. In questo caso la tabella di ricezione contiene consecutivamente il valore dei bit e l'indicazione di forzatura.
Lettura di 32 bit interni
In ST, la sintassi delle funzione di lettura dei bit interni è la seguente:
READ_VAR (ADDR('{20.1}0.5.1.3'),'%M', 0, 32 , %MW100:4, %MW50:4);
La tabella di ricezione deve includere 8 byte (4 parole), 4 byte per il valore e 4byte per l'indicazione di forzatura.
Valore
Forzatura
Parola
%MW100
%MW101
%MW102
%MW103
Byte 3
0000
1111
0000
0000
Byte 2
0000
1111
0000
0000
Byte 1
1100
0000
0101
0000
Byte 0
1100
1111
0101
1111
La forzatura può essere effettuata per ciascun bit %MW102 o %MW103 impostato a 1; il valore di forzatura è quello del relativo bit letto.
Esempio:
Descrizione
1
1
0
0
Valore dei primi 4 bit
(byte 0 della parola %MW100)
1
0
1
0
Forzatura dei primi 4 bit
(byte 0 della parola %MW102)
Il bit viene forzato su 0
Il bit non è forzato
Il bit viene forzato su 1
Il bit non è forzato
33003682.24
315
comunicazione
READ_VAR: Lettura di variabili
Lettura di 18 bit interni
In ST, la sintassi delle funzione di lettura dei bit interni è la seguente:
READ_VAR (ADDR('{20.1}0.5.1.3'),'%M', 0, 18 , %MW100:3, %MW50:4);
La tabella di ricezione deve contenere 3 parole (o 6 byte). Infatti, per ottenere il valore dei 18 bit sono necessari 3 byte più altri 3 byte, al fine di contenere il valore di forzatura dei 18 bit.
Esempio di utilizzo in una rete
In breve
La stazione 2 della rete 20 deve leggere una tabella di 5 parole, da %MW 0 a %MW 4, dello slave
Uni-Telway, indirizzo di rete 20, stazione 1, modulo di comunicazione TSXSCM2116 nello slot 5, canale 1 nel modulo di comunicazione, indirizzo server Ad0 = 3.
316 33003682.24
READ_VAR: Lettura di variabili
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
comunicazione
33003682.24
317
comunicazione
Programmazione
Programmazione in LD:
READ_VAR: Lettura di variabili
318
Parametri della richiesta:
Parametri
ADDR('{20.1}0.5.1.3')
'%MW'
0
5
%MW50:4
%MW20:5
Descrizione
• {20.1}: rete 20, stazione 1
• 0 : rack
• 5 : modulo
• 1 : canale 1
• 3: lettura dell'indirizzo slave di destinazione
Tipo di oggetto (parola interna)
Indirizzo del primo oggetto
Numero di oggetti consecutivi
Tabella di gestione
Contenuto della risposta
33003682.24
READ_VAR: Lettura di variabili
comunicazione
Esempio di lettura di parole tramite il collegamento seriale dei processori Modicon M340
In breve
Questo esempio è basato su 2 processori Modicon M340 che comunicano tramite il collegamento seriale Modbus. Il PLC master Modbus deve leggere le parole interne da %
MW100 a %MW109 sul PLC slave Modbus.
Descrizione dell'esempio
I valori delle parole lette vengono ordinati sulla base della parola interna %MW10 .
Il seguente esempio utilizza variabili non localizzate e descrive la ricezione di dati in una tabella non localizzata di 10 parole denominata Tab_recp (dichiarata come ARRAY [0..9]
OF INT ). I parametri di gestione si trovano in una tabella di 4 interi, denominata
Management_Parameter (dichiarata come ARRAY [0..3] OF INT ).
Nell'esempio, il numero di slave Modbus è 7, quindi il parametro d'ingresso ADDM è
'0.0.0.7':
• 0: numero di rack del processore, pari a 0
• 0: numero di slot del processore nel rack, pari a 0 poiché il numero di slot di un processore Modicon M340 è sempre 0
• 0: numero del canale, pari a 0 poiché il collegamento seriale di un processore Modicon
M340 è sempre il canale 0
• 7: il numero degli slave configurati è 7.
33003682.24
319
comunicazione
READ_VAR: Lettura di variabili
Illustrazione
I due processori Modicon340 sono collegati tramite un collegamento Modbus:
320 33003682.24
READ_VAR: Lettura di variabili
Programmazione
Programmazione in LD: comunicazione
I parametri della richiesta sono i seguenti:
Parametri
ADDM('0.0.0.7')
'%MW'
100
10
Tab_recp
Management_Parameter
Descrizione
• 0: numero di rack del processore slave
• 0: numero di slot del processore slave
• 0: numero di canale (numero della porta seriale)
• 7: numero degli slave configurati
Tipo di oggetto (parola interna)
Indirizzo del primo oggetto da leggere
Numero di oggetti consecutivi da leggere
Contenuto della risposta
Tabella di gestione
33003682.24
321
comunicazione
Esempio con controllo di esecuzione
READ_VAR: Lettura di variabili
In breve
L'esempio seguente illustra la funzione READ_VAR con un controllo dei parametri di gestione.
Programmazione della funzione
Programmazione in ST:
IF NOT %M21 AND %I0.1.2 THEN
%MW210:4 := 0;
%MW212 := 50;
READ_VAR(ADDR(’0.3.1.7’),’%MW’,20,1,%MW210:4,%MW1701:1);
SET %M21;
END_IF;
• il bit d'ingresso %I0.1.2
controlla la funzione
• il bit di internet %M21 è utilizzato per testare l'attività della funzione
• %MW210:4 := 0; inizializza la tabella di gestione a 0
• MW212 := 50; inizializza il valore di timeout a 5 secondi.
NOTA: per i PLC Modicon M340 è necessario utilizzare la sintassi READ_VAR(ADDM
(‘0.3.1.7’),’%MW’,20,1,%MW210:4,%MW1701:1); poiché tali PLC non possono utilizzare la funzione ADDR .
Programmazione del controllo degli scambi
Programmazione in ST:
IF %M21 AND NOT %M210.0 THEN
INC %MW214;
IF %MW211 = 0 THEN
INC %MW215;
ELSE
SET %Q0.2.2;
INC %MW216;
%MW217 := %MW211;
END_IF;
END_IF;
• %MW214 conteggia il numero di scambi
322 33003682.24
READ_VAR: Lettura di variabili
• %MW215 conteggia il numero di scambi corretti
• %MW216 conteggia il numero di scambi che generano errori
• %MW217 memorizza il messaggio di errore
• %Q0.2.2
indica un errore di scambio.
comunicazione
33003682.24
323
comunicazione
SEND_EMAIL: invio di messaggi e-mail
SEND_EMAIL: invio di messaggi e-mail
Contenuto del capitolo
Send Email............................................................................ 324
Argomento del capitolo
Questo capitolo descrive il blocco Send_Email .
Send Email
Descrizione della funzione
La funzione SEND_EMAIL permette di inviare un messaggio e-mail con un Modicon M340 .
Il servizio SEND_EMAIL è limitato alla porta Ethernet integrata e ai moduli BMX NOC 0401 .
Non è supportata da un modulo BMX NOE
NOTA: Affinché il servizio SEND_EMAIL funzioni correttamente, è necessario dapprima configurare l'indirizzo IP del server SMTP e delle destinazioni e-mail utilizzabili nel software Control Expert
È possibile configurare anche i parametri supplementari EN ed ENO .
324 33003682.24
SEND_EMAIL: invio di messaggi e-mail
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
CAL SEND_EMAIL (ADR := Channel_Address, HEAD_KEY := Header_Number,
SUBJ_STR := Str_Email_Subject, BODY_STR := Str_Email_Body, GEST :=
Management_Param);
33003682.24
325
comunicazione
Rappresentazione ST
SEND_EMAIL: invio di messaggi e-mail
SEND_EMAIL (ADR := Channel_Address, HEAD_KEY := Header_Number,
SUBJ_STR := Str_Email_Subject, BODY_STR := Str_Email_Body, GEST :=
Management_Param);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
Channel_Address
Header_Number
Str_Email_Subject
Str_Email_Body
Tipo
ARRAY [0..7] OF
INT
INT
STRING
STRING
Descrizione
Indirizzo o risultato di ADDM . Utilizza l'EF ADDM per creare questo campo.
Per inviare un messaggio e-mail tramite una porta
Ethernet CPU, usare ADDM(‘0.0.3’) .
Per inviare un messaggio e-mail tramite un modulo BMX
NOC configurato nel rack 0, slot 4, canale 0, usare
ADDM(‘0.4.0’) .
Corrisponde agli indirizzi e-mail gestiti con il softwareControl Expert (sono accettati solo 1, 2, 3).
Rappresenta la parte dinamica dell'oggetto aggiunto alla stringa relativa all'oggetto statico.
Rappresenta il corpo del messaggio e-mail.
La tabella seguente descrive i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo
ARRAY [0..3] OF
INT
Commento
Tabella di gestione scambi, pagina 39
.
Tabella di 4 parole utilizzata per controllare i parametri dell'esecuzione.
Il parametro di lunghezza (4ª parola della tabella di gestione) è un parametro di uscita. Questa parola è scritta dal sistema con la lunghezza totale del messaggio e-mail (intestazione + corpo). Le dimensioni massime di intestazione + corpo sono 1024 caratteri.
326 33003682.24
SEND_EMAIL: invio di messaggi e-mail
comunicazione
Regole per l'invio di messaggi e-mail
Dopo aver avviato un EF SEND_EMAIL , il bit di attività è impostato finché non viene inviato il messaggio e-mail. Tuttavia, non vi è alcuna conferma che il messaggio e-mail sia arrivato a destinazione. Se è programmato un timeout (3ª parola di gestione <> 0), il messaggio email viene annullato se non è stato inviato entro il tempo programmato. In questo caso, la 2ª parola di gestione riceve la risposta negativa Scambio interrotto al timeout (0x01).
Caratteristiche del runtime: il sistema Modicon M340 è in grado di gestire quattro richieste di invio simultanee, provenienti da quattro EF. Se un 5º EF cerca di inviare un messaggio email riceverà l'informazione Nessuna risorsa di sistema del processore (0x0B) finché non si libera una delle risorse.
Esempi di servizio Send Email
IF (default_id = 0) and FE(default_state) THEN
(* PUMP IS OK *)
SEND_EMAIL(ADDM('0.0.3'), 1, 'Pump n°3 is OK', ' ' , Management_
Param);
ELSEIF RE(default_state) THEN
(* PUMP IS FAULTY *) str_default := INT_TO_STRING(default_id); str_Email_Body := CONCAT_STR(' Default = ', str_default);
SEND_EMAIL(ADDM('0.0.3'), 1, 'Pump n°3 is faulty', str_Email_
Body, Management_Param);
END_IF;
33003682.24
327
comunicazione
SEND_REQ: Invio di richieste
Contenuto del capitolo
Descrizione ........................................................................... 328
Lista delle richieste UNI-TE .................................................... 332
Schermata di immissione assistita........................................... 338
Esempio di come inviare una richiesta UNI-TE ......................... 340
Modifica dei parametri IP tramite SEND_REQ
(esempio).............................................................................. 342
Uso della funzione SEND_REQ .............................................. 343
Argomento del capitolo
Questo capitolo descrive la funzione SEND_REQ .
Descrizione
Descrizione della funzione
La funzione SEND_REQ è utilizzata per codificare e inviare tutte le richieste UNI-TE e
Modbus/Jbus, nonché ricevere le risposte associate.
I dettagli di codifica per le richieste UNI-TE sono riportati nel manuale di Manuale dell'utente
Premium e Atrium con moduli di rete Ethernet Unity Pro.
I dettagli sulla codifica delle richieste Modbus/Jbus sono riportati nel manuale TSX DG
MDB.
Le richieste Modbus comuni a tutti i dispositivi Schneider sono presentate nel manuale
Architettura e servizi di comunicazione (vedi Servizi e architetture di comunicazione,
Manuale di riferimento).
NOTA: questa funzione non potrebbe essere usata per inviare richieste Modbus/Jbus attraverso un modulo Premium ETY.
È possibile configurare anche i parametri EN ed ENO .
328 33003682.24
Rappresentazione FBD
Rappresentazione LD comunicazione
Rappresentazione IL
Indirizzo LD
SEND_REQ Request_Code, Data_to_Send, Management_Param, Received_
Data
Rappresentazione ST
SEND_REQ(Address, Request_Code, Data_to_Send, Management_Param,
Received_Data);
33003682.24
329
comunicazione
Descrizione dei parametri
Nella seguente tabella sono descritti i parametri d'ingresso:
Parametro
Indirizzo
Request_Code
Data_to_Send
Tipo
INT
Commento
ARRAY[0.. 5] OF INT Indirizzo dell'entità di destinazione dello scambio. Il tipo di indirizzo dipende dalla richiesta inviata. È perciò possibile, ad esempio, trasmettere la richiesta RUN (ALL,
0 per il modulo TSX SCY 11601) mentre è impossibile inviare una richiesta d'identificazione a più dispositivi contemporaneamente.
Richiesta da inviare al dispositivo di destinazione, detto anche server . Le richieste possono essere del tipo
o Modbus.
ARRAY [n... m] OF
INT
Tabella di interi da inviare al dispositivo di destinazione della richiesta. Questa tabella dipende dalla richiesta inviata.
Deve avere la lunghezza minima di 1 elemento, anche se la richiesta utilizzata non implica l'invio di dati (ad esempio, una richiesta d'identificazione).
Nota : per garantire una corretta esecuzione della funzione, la lunghezza dei dati da inviare (in byte) deve essere obbligatoriamente assegnata alla quarta parola della tabella di gestione.
Nella tabella seguente sono descritti i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo Commento
ARRAY[0.. 3] OF INT
Tabella di gestione scambi, pagina 39
La tabella seguente descrive i parametri di uscita:
330 33003682.24
Parametro
Received_Data comunicazione
Tipo
ARRAY [n... m] OF
INT
Commento
Tabella di interi contenente i dati restituiti dal dispositivo server che costituiva la destinazione della richiesta.
Benché alcune richieste non esigano una risposta (ad esempio, le richieste Run), è necessario riservare una tabella minima di 1 intero ogni volta che si impiega la funzione SEND_REQ .
Nota : la dimensione dei dati ricevuti viene automaticamente scritta dal sistema nella
quarta parola della tabella di gestione, pagina 45
.
Nota : In alcuni casi (ad esempio, lettura di tabelle di parole) è necessario rimettere in sequenza gli oggetti ricevuti tramite la funzione ROR1_ARB (vedi
EcoStruxure ™ Control Expert, Obsoleta, Libreria dei blocchi funzione) (spostamento di un byte in una tabella).
Transazioni simultanee
Nella seguente tabella sono indicate le capacità di ogni canale di comunicazione di elaborare simultaneamente le transazioni in base alle varie configurazioni sui PLC Micro e
Premium. ( SEND_REQ non è disponibile per PLC Modicon M340/M580 e Modicon
Quantum).
Configurazione Micro TSX 57 10 TSX 57 20
4
1
4
8
4
8
TSX 57 23/30/40/
45/55, PCX 57,
PMX 57
4
8
TSX 57 46/56
8
8
Porta terminale master Uni-Telway
PCMCIA master o collegamento SCY
Uni-Telway
Porta terminale slave client Uni-Telway
PCMCIA slave client o collegamento
SCY Uni-Telway
Porta terminale slave server Uni-Telway
PCMCIA slave server o collegamento
SCY Uni-Telway
Porta terminale Modbus
PCMCIA o collegamento SCY Modbus
Morsettiera modalità carattere
PCMCIA o collegamento SCY modalità carattere
CANopen PCMCIA
1
4
4
4
4
4
4
1
-
1
8
-
8
4
6
1
1
10
1
8
-
8
4
6
1
1
10
1
8
-
8
4
6
1
1
10
1
8
-
8
4
6
8
1
10
33003682.24
331
comunicazione
Configurazione
PCMCIA o collegamento SCY Fipway
Modbus Plus
Ethernet
Ethernet integrato
Micro TSX 57 10 TSX 57 20
4
4
-
-
8
4
16
-
8
4
16
-
4
16
-
TSX 57 23/30/40/
45/55, PCX 57,
PMX 57
8
TSX 57 46/56
8
4
16
64
Lista delle richieste UNI-TE
In breve
Il protocollo UNI-TE permette di:
• identificare e diagnosticare tutti i dispositivi che hanno un server UNI-TE
• fornire un insieme di servizi che forniscono l'accesso in lettura/scrittura ai dati relativi al tipo
• scaricare i dati da un dispositivo ad un altro dispositivo
• proteggere un server da connessioni simultanee durante un periodo critico
Questi diversi servizi si ottengono mediante la funzione SEND_REQ , con la codifica della richiesta UNI-TE da inviare.
NOTA: Per dettagli e per la lista di richieste riconosciute da ogni dispositivo, vedere il manuale di riferimento TSX DR NET.
Le seguenti tabelle forniscono una lista non esaustiva delle richieste riconosciute dai dispositivi Premium.
Richieste di uso generale
Queste richieste vengono usate per identificare e diagnosticare tutti i tipi di dispositivi che hanno un server UNI-TE.
332 33003682.24
Nome della richiesta
IDENTIFICATION
READ_CPU
PROTOCOL_VERSION
MIRROR comunicazione
Codice della richiesta
16#0F
Codice del report
16#3F
Commento
16#4F
16#30
16#FA
16#7F
16#60
16#FB
Fornisce le seguenti informazioni:
• gamma di prodotti
• tipo di applicazione specifica
• tipo di prodotto
• riferimento catalogo
Esegue la diagnostica del sistema su qualsiasi dispositivo.
Permette di adattare la versione del protocollo tra due entità in comunicazione.
Testa l'instradamento corretto dei dati tra due dispositivi in comunicazione.
Modifica dinamica dei parametri IP
Modifica dei parametri IP
Nome della richiesta
REQUEST CODE
CHANGE IP PARAMETERS
Codice della richiesta
16#37
16#13
Commento funzione del codice di richiesta modifica la sottofunzione dei parametri IP
Per garantire che il modulo ETY sia pronto per il funzionamento, lasciar continuare l'esecuzione del PLC (in modalità Run) per 15 secondi dopo l'ultima modalità di arresto prima di inviare la funzione SEND_REQ. Dopo che l'utente emette il comando CHANGE IP
PARAMETERS e il modulo ETY accetta i nuovi parametri, il modulo ETY viene reimpostato e inizia le operazioni con i nuovi parametri.
NOTA: I client FDR che utilizzano il modulo ETY per un server devono essere riavviati dopo che è completata la modifica dell'indirizzo IP del modulo ETY. Altrimenti, questi client FDR non possono aggiornare i propri file dei parametri sul server FDR (il modulo
ETY).
NOTA: Le parole costanti contengono i parametri di configurazione originali, non quelli aggiornati dopo la modifica dell'indirizzo IP.
33003682.24
333
comunicazione
NOTA: È possibile visualizzare la nuova configurazione (parametri IP, subnet mask e indirizzo gateway) nella Control Expertschermata di debug di ETY (vedi Premium e
Atrium che utilizzano EcoStruxure ™ Control Expert, Moduli di rete Ethernet, Manuale dell'utente). È anche possibile vedere il nuovo indirizzo IP assegnato nella pagina web delle statistiche del modulo Ethernet (vedi Premium e Atrium che utilizzano
EcoStruxure ™ Control Expert, Moduli di rete Ethernet, Manuale dell'utente); tuttavia, tenere presente che i dati relativi a indirizzo IP, subnetwork mask e Gateway in questa pagina riflettono la vecchia configurazione.
Uso dei parametri per la modifica dell'indirizzo IP
Questa tabella è basata sugli indirizzi di esempio IP 139.158.10.7, subnet mask
255.255.248.0 e gateway 139.158.8.1.
Parametro
ADDRESS
Tipo array [0...5] of INT
Valore
ADDR ('rack.slot.channel.SYS')
Commento
Esempio: ADDR (0.x.0.SYS') x = slot in cui è installato il modulo ETY
REQUEST_CODE
Data_to_Send
INT array [0...8] of INT
Manage_Param numero di parole
1
334
16#37 byte 1: sottofunzione (13h) byte 2: sottofunzione (96h) byte 3: 0 byte 4: 0 byte 5: indirizzo IP 2 (158) byte 6: indirizzo IP 1 (139) byte 7: indirizzo IP 4 (7) byte 8: indirizzo IP 3 (10) byte 9: subnet mask 2 (255) byte 10: subnet mask 1 (255) byte 11: subnet mask 4 (0) byte 12: subnet mask 3 (248) byte 13: gateway 2 (158) byte 14: gateway 1 (139) byte 15: gateway 4 (1) byte 16: gateway 3 (8) byte più significativo report attività byte più significativo
Byte meno significativo
Il valore è ignorato.
Il valore è ignorato.
1-239 (byte più significativo)
0-255 (byte meno significativo)
0-255 (byte più significativo)
0-255 (byte meno significativo)
255
0-255
0-255
0-255
1-239 (l'indirizzo Gateway deve trovarsi nella stessa sottorete dell'indirizzo IP).
0-255
0-255
0-255 byte meno significativo
00
33003682.24
comunicazione
Parametro Tipo
2
3
4
Valore report operazioni (vedere la nota) timeout (ms) lunghezza: 18 (INT)
Commento report comunicazioni (vedere la nota)
NOTA: La seguente tabella fornisce dettagli sui codici degli indirizzi IP (corretti ed errati).
Vedere l'esempio fornito per
Modifica dei parametri IP con SEND_REQ, pagina 342 .
Modifica dei codici degli indirizzi IP
Significato Report operazioni codice corretto
FE (hex) codici di errore
01 (hex)
00 (hex)
Report comunicazioni
00 (hex)
FF (hex)
03 (hex)
00 (hex)
16 (hex)
17 (hex)
18 (hex)
19 (hex)
1A (hex)
FD (hex)
07 (hex)
FF (hex)
FF (hex)
FF (hex)
FF (hex)
FF (hex)
00 (hex)
(SEND_REQ) indirizzo IP modificato correttamente valore codice richiesta non valido (ad es., non 16#37)
SEND_REQ a IP ETY anziché sul backplane mappatura indirizzo a ETY errata indirizzo IP non valido sottorete non valida indirizzo gateway non valido indirizzo di rete non valido
L'indirizzo IP dell'ETY era già impostato a SEND_REQ)
(SEND_REQ) non ha modificato correttamente l'indirizzo IP
Uso dei parametri per il comando di reimpostazione modulo
Un'operazione Reset modulo attiva nei moduli di comunicazione Premium ETY e ETY
PORT un ciclo di reset dell'ambiente operativo. Per programmare un blocco funzione
SEND_REQ per l'esecuzione di un comando di Reset modulo, usare il codice funzione 37, codice sottofunzione 10.
33003682.24
335
comunicazione
Parametro
ADDRESS
REQUEST_CODE
Data_to_send
Manage_Param
INT array [0...1] of INT
Codici di comando Reset modulo
Report operazioni Report comunicazioni codice corretto
FE (hex) codici di errore
01 (hex)
00 (hex)
FD (hex)
00 (hex)
FF (hex)
07 (hex)
00 (hex)
Significato
SEND_REQ ha reimpostato correttamente il modulo valore codice richiesta non valido (ad es., non 16#37) mappatura indirizzo a ETY errata
SEND_REQ non ha reimpostato il modulo
Accesso agli oggetti
Queste richieste offrono un set di servizi che consentono l'accesso in lettura/scrittura ai dati bit e di parola interni, ai dati dei bit di sistema e di parola, ai dati in virgola mobile, ai dati delle costanti e ai dati SFC.
336 33003682.24
Nome della richiesta
READ_OBJECT
WRITE_OBJECT
READ_INTERNAL_BIT
WRITE_INTERNAL_BIT
READ_INTERNAL_WORD
WRITE_INTERNAL_WORD comunicazione
Codice della richiesta
16#36
16#37
16#00
16#10
16#04
16#14
Codice del report
Commento
16#66
16#FE
16#30
16#FE
16#34
16#FE
Utilizzato per leggere uno o più oggetti consecutivi dello stesso tipo.
Utilizzato per scrivere uno o più oggetti consecutivi dello stesso tipo.
Utilizzato per leggere il valore di un bit interno.
Utilizzato per scrivere il valore di un bit interno.
Utilizzato per leggere il valore di una parola interno.
Utilizzato per scrivere il valore di una parola interna.
Gestione delle modalità operative
Queste richieste forniscono un insieme di servizi che permettono di gestire le modalità operative di un processore.
Nome della richiesta
RUN
STOP
INIT
Codice della richiesta
16#24
16#25
16#33
Codice del report
Commento
16#FE
16#FE
16#63
Utilizzato per avviare l'esecuzione dei task di un processore.
Utilizzato per interrompere l'esecuzione dei task di un processore.
Utilizzato per attivare un riavvio a freddo o a caldo.
Gestione delle riservazioni
Queste richieste forniscono un meccanismo di riservazione che permette di proteggere un server contro le connessioni simultanee durante un periodo critico.
Nome della richiesta
RESERVE
RELEASE
I_AM_ALIVE
Codice della richiesta
16#1D
16#1E
16#2D
Codice del report
Commento
16#FE
16#FE
16#FE
Consente a un client di riservare tutte o una parte delle funzioni di un server.
Permette a un client di liberare il server riservato.
Permette di mantenere la riservazione.
33003682.24
337
comunicazione
NOTA: Per riservare il PLC, scrivere %SW110 a 1 e utilizzare la funzione SEND_REQ con il codice richiesta 16#1D.
If NOT Management_Table[0].0 then (*reservation 1D*)
Management_Table[2]:=4; (* time out *)
SEND_REQ (ADR :=ADDR('sys'),
CODE := 16#001D,
EMIS := Emis_table,
GEST := Management_Table,
RECP => Receive_buffer);
END_IF;
Con le variabili create nell'Editor dati come:
• Management_Table: ARRAY [0..3] OF INT
• Emis_table: ARRAY [0..0] OF INT
• Receive_buffer: ARRAY [0..0] OF INT
NOTA: creare le variabili senza alcun valore all'interno, solo il valore di timeout deve essere impostato in Management_Table[2] .
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
338 33003682.24
comunicazione
Illustrazione
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetto possibili sono:
• ADDR(STRING)
• ARRAY [0..5] OF INT .
NOTA: se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo viene visualizzato in grigio.
Codice richiesta
Gli oggetti possibili sono del tipo INT:
• variabili
• costanti
• valore immediato.
NOTA: se si immette una costante, viene visualizzato un campo per l'immissione della stessa. Se si immette una variabile, questa può essere localizzata o meno.
33003682.24
339
comunicazione
Dati da inviare
I dati da inviare sono memorizzati sotto forma di array di interi. Questo array può essere localizzato o meno.
Zona ricezione
La zona ricezione è un array di interi. Questo array può essere localizzato o meno e la sua dimensione dipende dal codice di richiesta utilizzato.
Rapporto
Il rapporto è un array di 4 interi.
NOTA: evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto. In caso contrario, la funzione di lettura delle variabili potrebbe non essere attiva.
Esempio di come inviare una richiesta UNI-TE
In breve
La stazione 2 della rete 20 deve inviare una richiesta d'identificazione al dispositivo con l'indirizzo Ad0=3 sul bus Uni-Telway della stazione 1 della stessa rete. La richiesta d'identificazione ha il codice decimale 15 (o 16#0F).
La tabella di gestione è situata in %MW10:4 .
340 33003682.24
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway: comunicazione
Programmazione
Programmazione in ST:
IF RE(%I0.3.2) AND NOT %MW10.0 THEN
SEND_REQ(ADDR('{20.1}0.5.1.3'),15,%MW0:1, %MW10:4,%MW100:24);
END_IF;
Parametri della richiesta:
Parametri
ADDR('{20.1}0.5.1.3')
15
Descrizione
• {20.1}: rete 20, stazione 1
• 0 : rack
• 5 : modulo
• 1 : canale 1
• 3 : indirizzo di destinazione
Richiesta 15 (o 16#0F se la codifica è esadecimale)
33003682.24
341
comunicazione
Parametri
%MW0:1
%MW10:4
%MW100:24
Descrizione
Dati inviati (ad esempio: nessun dato da inviare)
Tabella di gestione
Contenuto della risposta (ricezione di 24 parole)
NOTA: Ogni volta che la funzione viene avviata, inizializzare il parametro di lunghezza
(nell'esempio %MW13 = 0 ).
Modifica dei parametri IP tramite SEND_REQ
(esempio)
Illustrazione
L'immagine mostra come impostare i parametri IP per il modulo ETY nello slot 2 tramite il blocco
SEND_REQ:
342
Nota:
• ADR: riflette la posizione del modulo ETY nello slot 2.
• CODE: riflette il valore di REQUEST_CODE.
33003682.24
comunicazione
• EMIS: contiene i parametri IP in Data_to_Send:
◦ indirizzo (139.158.10.7)
◦ subnet mask (255.255.248.0)
◦ gateway (139.158.8.1)
• GEST: riflette Management_Param (parametri di gestione).
È necessario assegnare un tempo alla terza parola di Management_Param. La quarta parola deve avere il valore INT 18.
• RECP: questo parametro richiede un valore INT minimo di 1, anche quando non viene restituito alcun messaggio di risposta, come nel caso di una richiesta di modifica dell'IP.
Uso della funzione SEND_REQ
In breve
La funzione SEND_REQ consente di codificare e inviare tutte le richieste UNI-TE e Modbus/
Jbus, nonché ricevere le risposte associate.
In alcuni casi (ad esempio, lettura di tabelle di parole) è necessario rimettere in sequenza gli oggetti ricevuti tramite la funzione ROR1_ARB (spostamento di un byte in una tabella).
Esempio
Oggetti da leggere:
16#0201
16#0403
16#0605
16#0807
16#0A09
Tabella di ricezione dopo l'esecuzione di una SEND_REQ (lettura oggetto):
%MW100=16#01 07
%MW101=16#0302
%MW102=16#0504
33003682.24
343
comunicazione
%MW103=16#0706
%MW104=16#0908
%MW105=16#000A
Tabella di ricezione dopo una ROR1_ARB(%MW100:6):
%MW100=16#0201
%MW101=16#0403
%MW102=16#0605
%MW103=16#0807
%MW104=16#0A09
%MW105=16# 07 00
344 33003682.24
SEND_TLG: Invio di telegrammi
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 345
Esempio di come inviare un telegramma.................................. 348
Argomento del capitolo
Questo capitolo descrive la funzione SEND_TLG .
Descrizione
Descrizione della funzione
La funzione SEND_TLG permette di inviare dati di tipo telegramma a un'applicazione remota.
I dati da inviare devono essere di una lunghezza massima di 16 byte. A differenza delle altre funzioni di comunicazione, questa funzione viene elaborata immediatamente (sincrona): non vi sono quindi bit di attività e parametri di timeout.
La tabella dei valori interi assegnati ai parametri di gestione, pertanto, utilizza solo due parole anziché quattro (i numeri di scambio e di timeout non sono necessari).
AVVERTIMENTO
FUNZIONE NON OPERATIVA - CONFIGURAZIONE NON VALIDA
Usare la funzione SEND_TLG su una rete Fipway solo dopo aver installato una scheda
TSX FPP 20 :
• sul canale 1 del processore
• per le stazioni da 0 a 15
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Configurare i parametri supplementari EN ed ENO .
33003682.24
345
comunicazione
Rappresentazione FBD
Rappresentazione:
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
Indirizzo LD
SEND_TLG Data_to_Send, Management_Param
Rappresentazione ST
Rappresentazione:
SEND_TLG(Address, Data_to_Send, Management_Param);
346 33003682.24
comunicazione
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
EMIS
Tipo
ARRAY [0.. 5] OF
INT
ARRAY [n.. m] OF
INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Sono permessi solo gli indirizzi {Network.Station}APP o
{Network.Station}APP.num.
Tabella di valori interi da inviare al dispositivo di destinazione della richiesta.
Questa lunghezza deve essere pari a max. 8 interi (16 byte).
Nota : è indispensabile che il numero di byte da inviare sia collocato nella seconda parola della tabella di gestione prima di eseguire lo scambio.
La tabella seguente descrive i parametri ingresso/uscita:
Parametro
GEST
Tipo
ARRAY [0 ... 1] OF
INT
Commento
Tabella di parole utilizzata per gestire lo scambio.
Questa tabella è composta da 2 parole: la parola di report e la parola di lunghezza per i dati da inviare. Il report comprende:
• il report operazioni (byte più significativo della prima parola),
• il report comunicazioni (byte meno significativo della prima parola),
Il report operazioni assume uno dei seguenti valori:
• 16#00: scambio corretto,
• 16#03: formato indirizzo errato,
• 16#04: indirizzo destinazione errato,
• 16#05: parametri di gestione errati (ad esempio, lunghezza),
• 16#06: parametri specifici errati,
• 16#07: modulo in errore,
• 16#0A: dimensioni del buffer di invio insufficienti,
• 16#0B: nessuna risorsa di sistema: il numero di EF di comunicazione simultanei supera il valore massimo che può essere gestito dal processore,
• 16#0F: servizio Telegramma non configurato.
33003682.24
347
comunicazione
Esempio di come inviare un telegramma
In breve
Si ipotizzi di voler inviare un telegramma di 8 parole dalla stazione 1 alla stazione remota 3 su una rete Fipway 20.
Utilizzeremo la tabella %MW190:8 per contenere queste parole da inviare, mentre la tabella
%MW200:2 conterrà la tabella di gestione dello scambio.
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
Programmazione
Programmazione in ST:
IF RE(%I0.3.10) THEN
SEND_TLG(ADDR('{20.3}APP'), %MW190:8, %MW200:2);
END_IF;
Parametri della richiesta:
Parametri
ADDR('{20.3}APP')
%MW190:8
%MW200:2
Descrizione
• {20.2}: rete 20, stazione 3
• APP: applicazione
Contenuto del telegramma da inviare
Tabella di gestione
348 33003682.24
comunicazione
NOTA: la parola %MW 201 deve essere inizializzata a 16 (8 parole) prima che la richiesta sia inviata.
Per eseguire questa funzione in modo sincrono, è necessario testare il rapporto operazione immediatamente dopo la riga di programma che attiva l'esecuzione della funzione.
33003682.24
349
comunicazione
SYMAX_IP_ADDR: Indirizzo IP SY/MAX
SYMAX_IP_ADDR: Indirizzo IP SY/MAX
Contenuto del capitolo
Descrizione ........................................................................... 350
Descrizione dettagliata ........................................................... 352
Introduzione
Questo capitolo descrive il blocco SYMAX_IP_ADDR .
Descrizione
Descrizione della funzione
Questo blocco funzione consente di immettere l'indirizzo SY/MAX IP per i blocchi funzione
REAG_REG , CREAD_REG , WRITE_REG e CWRITE_REG . L'indirizzo viene trasferito come struttura di dati.
È possibile configurare EN ed ENO come parametri supplementari.
NOTA: Per programmare il blocco funzione SYMAX_IP_ADDR occorre avere familiarità con la propria rete.
Rappresentazione in FBD
Rappresentazione:
350 33003682.24
SYMAX_IP_ADDR: Indirizzo IP SY/MAX
Rappresentazione in LD
Rappresentazione: comunicazione
Rappresentazione in IL
Rappresentazione:
CAL SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex,
SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber,
TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP)
Rappresentazione in ST
Rappresentazione:
SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex,
SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber,
TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP) ;
Descrizione dei parametri
Descrizione dei parametri ingresso:
33003682.24
351
comunicazione
Parametri
DROP_NR
Slot_ID
DESTDROP
TERMINAT
Tipo di dati
BYTE
BYTE
WORD
WORD
SYMAX_IP_ADDR: Indirizzo IP SY/MAX
Descrizione
Indice mappatura MBP on Ethernet Transporter (MET)
Slot del modulo NOE
Numero derivazione di destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Descrizione dei parametri d'uscita:
Parametri
ADDRFLD
Tipo di dati
WordArr5
Descrizione
Struttura dati utilizzata per trasferire l'indirizzo SY/MAX IP
Descrizione dettagliata
Descrizione degli elementi di
WordArr5
Descrizione degli elementi per WordArr5 :
Elemento
WordArr5[1]
Tipo di dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD
Descrizione
Byte più significativo:
Slot del modulo NOE
Byte meno significativo:
Indice mappatura MBP on Ethernet Transporter (MET)
Numero derivazione di destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Nessun significato
Nessun significato
352 33003682.24
SYMAX_IP_ADDR: Indirizzo IP SY/MAX
DROP_NR
comunicazione
L'indice di mappatura MBP on Ethernet Transporter (MET) è fornito all'ingresso DROP_NR ; ciò significa che se MET è 6, il valore appare come segue:
Slot_ID
Se un NOE nel rack di un controller Quantum è indirizzato come nodo di destinazione, il valore all'ingresso SLOT_ID rappresenta lo slot fisico NOE, cioè se il NOE è inserito nello slot 7 del rack il valore appare come segue:
ADDRFLD
Se un NOE nel rack di un controller Quantum è indirizzato come nodo di destinazione, il valore nel byte più significativo rappresenta lo slot fisico del NOE e il byte meno significativo rappresenta l'indice di mappatura MBP on Ethernet Transporter (MET), cioè se il NOE è inserito nello slot 7 del rack e l'indice di mappatura MET è 6, il primo elemento della struttura dati appare come segue:
Byte più significativo Slot da 1a 16
Byte meno significativo Indice mappatura MBP on Ethernet Transporter (MET)
33003682.24
353
comunicazione
TCP_IP_ADDR: Indirizzo TCP/IP
Contenuto del capitolo
Descrizione ........................................................................... 354
Descrizione dettagliata ........................................................... 357
Introduzione
Questo capitolo descrive il blocco TCP_IP_ADDR .
Descrizione
Descrizione della funzione
Questo blocco funzione consente di immettere l'indirizzo TCP/ IP per i blocchi funzione
READ_REG , CREAD_REG , WRITE_REG e CWRITE_REG . L'indirizzo viene trasferito come struttura di dati.
È possibile configurare EN ed ENO come parametri supplementari.
NOTA: Per programmare il blocco funzione TCP_IP_ADDR occorre avere familiarità con la rete. Una descrizione completa dell'instradamento TCP/IP è fornita in Quantum using
EcoStruxure ™ Control Expert, TCP/IP Configuration, User Manual .
354 33003682.24
Rappresentazione in FBD
Rappresentazione:
Rappresentazione in LD
Rappresentazione: comunicazione
33003682.24
355
comunicazione
Rappresentazione in IL
Rappresentazione:
CAL TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex,
SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress,
IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress,
IP_B1:=Byte1OfIPAddress,
ADDRFLD=>DataStructureTCP_IPAddress)
Rappresentazione in ST
Rappresentazione:
TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex,
SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress,
IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress,
IP_B1:=Byte1OfIPAddress,
ADDRFLD=>DataStructureTCP_IPAddress) ;
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametri
MAP_IDX
Tipo di dati
BYTE
Slot_ID
IP_B4
IP_B3
IP_B 2
IP_B1
BYTE
BYTE
BYTE
BYTE
BYTE
Descrizione
Indice di mappa
Indice mappatura MBP on Ethernet Transporter (MET)
ID slot
Slot del modulo NOE
Byte 4 (MSB) dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit
Byte 2 dell'indirizzo IP di destinazione a 32 bit
Byte 1 (LSB) dell'indirizzo IP di destinazione a 32 bit
NOTA: Per il parametro Slot_ID: quando si usa un modulo CPU Ethernet integrato come
140 CPU 651 •0, l'ID slot deve essere 254 (FE hex) indipendentemente dallo slot CPU.
Descrizione dei parametri d'uscita:
356 33003682.24
Parametri
ADDRFLD
Tipo di dati
WordArr5 comunicazione
Descrizione
Struttura di dati utilizzata per trasferire l'indirizzo TCP/IP
Descrizione dettagliata
Descrizione degli elementi di
WordArr5
Descrizione degli elementi per WordArr5 :
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo di dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte più significativo:
Slot del modulo NOE
Byte meno significativo:
Indice mappatura MBP on Ethernet Transporter (MET)
Byte 4 dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit
Byte 2 dell'indirizzo IP di destinazione a 32 bit
Byte 1 dell'indirizzo IP di destinazione a 32 bit
MAP_IDX
L'indice di mappatura MBP on Ethernet Transporter (MET) è fornito all'ingresso Map_Idx+ ; ciò significa che se MET è 6, il valore appare come segue:
33003682.24
357
comunicazione
Slot_ID
Se un NOE nel rack di un controller Quantum è indirizzato come nodo di destinazione, il valore all'ingresso SLOT_ID rappresenta lo slot fisico NOE. Esempio: se il NOE è inserito nello slot 7 del rack , il valore si presenterà come segue:
NOTA: Se si utilizza un modulo CPU Ethernet come 140 CPU 651 x0, l'ID dello slot deve essere 254 (FE hex) indipendentemente dallo slot della CPU.
ADDRFLD
Se un NOE nel rack di un controller Quantum è indirizzato come nodo di destinazione, il valore nel byte più significativo rappresenta lo slot fisico del NOE e il byte meno significativo rappresenta l'indice di mappatura MBP on Ethernet Transporter (MET), cioè se il NOE è inserito nello slot 7 del rack e l'indice di mappatura MET è 6, il primo elemento della struttura dati appare come segue:
Byte più significativo Slot da 1a 16
Byte meno significativo Indice mappatura MBP on Ethernet Transporter (MET)
358 33003682.24
UNITE_SERVER: Server immediato
UNITE_SERVER: Server immediato
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 359
Esempio di server immediato .................................................. 362
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione UNITE_SERVER .
Descrizione
Descrizione della funzione
La funzione UNITE_SERVER è utilizzata per elaborare le richieste UNI-TE direttamente dal programma applicativo.
Questa funzione è attivabile dal task MAST o dal task FAST.
NOTA: l'applicazione può attivare solo una funzione UNITE_SERVER alla volta.
NOTA: la funzione UNITE_SERVER è utilizzata per elaborare le richieste da un collegamento Modbus (scheda PCMCIA TSX SCP 114 in un modulo TSX SCY 21601 configurato come slave Modbus con server immediato (vedi Premium e Atrium con
EcoStruxure ™ Control Expert, Collegamento seriale asincrono, Manuale dell'utente)).
È possibile configurare anche i parametri supplementari EN ed ENO .
33003682.24
359
comunicazione
UNITE_SERVER: Server immediato
Principio dello scambio
Lo schema seguente illustra lo scambio realizzato durante l'impiego della funzione di comunicazione UNITE_SERVER
Rappresentazione FBD
Rappresentazione:
360 33003682.24
UNITE_SERVER: Server immediato
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
LD Management_Param
UNITE_SERVER Address, Received_Codes
Rappresentazione ST
Rappresentazione:
UNITE_SERVER(Management_Param, Address, Received_Codes);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso/uscita:
33003682.24
361
comunicazione
UNITE_SERVER: Server immediato
Parametro
Management_Param
Tipo
ARRAY [0.. 1] OF
INT
Commento
Tabella di parole utilizzata per gestire lo scambio. Questa tabella è costituita da 2 parole: la prima parola contiene il numero di scambio e il bit di attività, la seconda parola contiene il report. Il rapporto comprende:
• il rapporto operazione (byte più significativo)
• il rapporto comunicazione (byte meno significativo).
Il rapporto comunicazione assume uno dei due valori seguenti:
• 16#00: scambio corretto,
• 16#01: arresto su timeout, impossibile l'invio della risposta entro 2 secondi
• 16#02: arresto su richiesta utente (STOP, %S0,
INIT, riavvio a caldo o a freddo),
• 16#03: formato indirizzo sconosciuto,
• 16#05 : parametri di gestione errati,
• 16#07: problema durante l'invio alla destinazione,
• 16#11: nessuna richiesta ricevuta,
• 16#12: la funzione UNITE_SERVER già chiamata da un altro task,
• 16#FF: messaggio rifiutato.
Nota : quando un messaggio è respinto (codice 16#FF), il rapporto operazione può assumere il valore 16#14
(server arrestato).
La tabella seguente descrive i parametri d'uscita:
Parametro
Address
Tipo
ARRAY [0.. 2] OF
INT
Received_Codes INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Questo indirizzo corrisponde al canale cui è collegato il mittente della richiesta.
Alla fine dello scambio, questa parola contiene:
• il codice di richiesta ricevuto (meno significativo)
• il codice di risposta rinviato (più significativo).
Esempio di server immediato
In breve
362
Questo esempio riguarda l'implementazione di una funzione UNITE_SERVER quale server immediato per una funzione di comunicazione READ_VAR . Il collegamento Modbus
33003682.24
UNITE_SERVER: Server immediato
comunicazione interessato è connesso alla scheda PCMCIA di un modulo TSX SCY 21601 ubicato nello slot 2 del rack base.
Programmazione
Programmazione in ST:
IF NOT %MW100:X0 THEN
UNITE_SERVER(%MW100:2, %MW110:3, %MW10);
END_IF;
Parametri della richiesta:
Parametri
%MW100:2
%MW110:3
%MW10
Descrizione
Tabella di gestione
Esempio : il server immediato è SCP114 configurato come slave 49 in un
SCY21601 (slot 4, rack 0).
• Parola 1: 16#FE00 corrisponde al rack
• Parola 2: 16#0405 corrisponde allo slot
• Parola 3: 16#0095 corrisponde al canale.
Per maggiori informazioni vedere Modalità di indirizzamento X-WAY (vedi
Driver di comunicazione, Manuale d'installazione).
Risposta:
• Byte meno significativo: 16#03, codice ricevuto della funzione di lettura
UNITE di n parole.
• Byte più significativo: 16#03, codice di risposta della funzione lettura
UNITE di n parole.
33003682.24
363
comunicazione
WRITE_ASYN: Scrittura asincrona dei dati
WRITE_ASYN: Scrittura asincrona dei dati
Contenuto del capitolo
Descrizione ........................................................................... 364
Argomento del capitolo
Questo capitolo descrive la funzione WRITE_ASYN .
Descrizione
Descrizione della funzione
La funzione WRITE_ASYN è utilizzata per scrivere 1 Kbyte di dati tramite il canale di messaggistica asincrona dei moduli TSX ETY in modalità TCP/IP.
È possibile accedere in scrittura ai dati seguenti:
• bit interni
• parole interne.
La scrittura asincrona si può effettuare solo tra due stazioni sullo stesso segmento di rete
TCP/IP Ethernet.
La funzione WRITE_ASYN è inviata alla fine del task MAST solo se questo è configurato in modalità periodica. È possibile attivare 8 funzioni contemporaneamente.
La dimensione dei buffer di invio e ricezione è espressa in parole. È di 512 parole, o 1024 byte.
NOTA: La funzione server asincrona supporta protocolli UNI-TE V1 o V2.0. La funzione
WRITE_ASYN utilizza il protocollo UNI-TE V2.0.
È possibile configurare anche i parametri supplementari EN ed ENO .
364 33003682.24
WRITE_ASYN: Scrittura asincrona dei dati
comunicazione
Principio dello scambio
Il seguente schema illustra gli scambi tra due stazioni per una funzione WRITE_ASYN :
33003682.24
365
comunicazione
Rappresentazione FBD
Rappresentazione:
WRITE_ASYN: Scrittura asincrona dei dati
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
Indirizzo LD
366 33003682.24
WRITE_ASYN: Scrittura asincrona dei dati
comunicazione
WRITE_ASYN Object_Type, First_Object, Object_Number, Data_to_Write,
Management_Param
Rappresentazione ST
Rappresentazione:
WRITE_ASYN(Address, Object_Type, First_Object, Object_Number, Data_ to_Write, Management_Param);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
Address
Object_Type
First_Object
Object_Number
Data_to_Write
Tipo
ARRAY [0.. 5] OF
INT
STRING
DINT
INT
ARRAY [n... m] OF
INT
Commento
Indirizzo dell'entità di destinazione dello scambio. Gli indirizzi sono del tipo: ADDR(’{Network.Station}
SYS .
Tipo di oggetti da scrivere:
• '%M': bit interni,
• '%MW': parole interne,
• '%S': bit di sistema,
• '%SW': parole di sistema.
Indice del primo oggetto da scrivere nel dispositivo di destinazione.
Numero di oggetti da scrivere.
Tabella di parole contenente il valore degli oggetti da scrivere.
La tabella seguente descrive i parametri di ingresso/uscita:
33003682.24
367
comunicazione
Parametro
Management_Param
WRITE_ASYN: Scrittura asincrona dei dati
Tipo Commento
ARRAY [0.. 3] OF INT
Tabella di gestione scambi, pagina 39
. Il report operazioni assume uno dei seguenti valori:
• 16#00 : scambio corretto,
• 16#01: arresto su timeout, impossibile l'invio della risposta entro 2 secondi
• 16#02: arresto su richiesta utente (STOP, S0, INIT, riavvio a caldo o a freddo),
• 16#03: formato indirizzo errato,
• 16#05 : parametri di gestione errati,
• 16#07 : destinazione mancante,
• 16#09 : dimensioni del buffer di ricezione insufficienti,
• 16#10: dimensioni del buffer di invio insufficienti,
• 16#11 : nessuna risorsa di sistema (8 funzioni già attive),
• 16#19: numero di scambio non valido,
• 16#FF: messaggio rifiutato.
Nota : non dimenticare di programmare un valore di timeout per arrestare uno scambio in corso quando la risposta non è rinviata al mittente.
368 33003682.24
WRITE_GDATA: Scrittura di Dati globali Modbus Plus
WRITE_GDATA: Scrittura di Dati globali
Modbus Plus
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 369
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione WRITE_GDATA .
Descrizione
Descrizione della funzione
La funzione WRITE_GDATA è utilizzata per scrivere dati condivisi, o Dati globali , su una rete
Modbus Plus .
I Dati globali vengono condivisi tra un massimo di 64 stazioni sulla stessa rete Modbus Plus.
Ciascuna stazione può scrivere fino a 32 interi, successivamente utilizzabili da tutte le stazioni sulla rete. Ogni stazione può, a sua volta, leggere i 32 interi (al massimo) di tutte le altre stazioni di rete.
È possibile configurare anche i parametri supplementari EN ed ENO .
Rappresentazione FBD
Rappresentazione:
33003682.24
369
comunicazione
Rappresentazione LD
Rappresentazione:
WRITE_GDATA: Scrittura di Dati globali Modbus Plus
Rappresentazione IL
Rappresentazione:
Indirizzo LD
WRITE_GDATA Data_to_Write, Management_Param
Rappresentazione ST
Rappresentazione:
WRITE_GDATA(Address, Data_to_Write, Management_Param);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
370 33003682.24
WRITE_GDATA: Scrittura di Dati globali Modbus Plus
comunicazione
Parametro
Address
Data_to_Write
Tipo
ARRAY [0.. 5] OF
INT
ARRAY [n... m] OF
INT
Commento
Indirizzo della scheda PCMCIA che connette il Premium alla rete Modbus Plus. Il valore di questo indirizzo è:
ADDR('0.0.1.SYS') .
Nota : i dati sono scritti sulla scheda PCMCIA che successivamente li condivide.
Tabella di parole contente il valore degli oggetti da scrivere. Questa tabella deve sempre avere la dimensione di 32 interi di 16 bit, la dimensione massima dei Dati globali su una rete Modbus Plus.
La tabella seguente descrive i parametri di ingresso/uscita:
Parametro
Management_Param
Tipo
ARRAY [0.. 3] OF
INT
Commento
Tabella di gestione scambi, pagina 39
.
Non è necessario inizializzare il parametro di lunghezza prima di avviare lo scambio.
33003682.24
371
comunicazione
WRITE_REG: Scrittura registro
Contenuto del capitolo
Descrizione ........................................................................... 372
Tipi di dati derivati .................................................................. 375
Modalità di funzionamento ...................................................... 377
Descrizione dei parametri ....................................................... 378
Introduzione
Questo capitolo descrive il blocco WRITE_REG .
Descrizione
Descrizione della funzione
Su un fronte di salita sull'ingresso REQ , questo blocco funzione scrive un'area del registro da un'area del registro di un dispositivo collegato tramite Modbus Plus, TCP/IP Ethernet o SY/
MAX-Ethernet, con il contenuto di un'area del registro del PLC.
È possibile configurare EN ed ENO come parametri supplementari.
I blocchi funzione CREAD_REG , CWRITE_REG , READ_REG , WRITE_REG e MBP_MSTR utilizzano un percorso di transizione dati e richiedono più cicli per completare un'operazione.
Il numero di percorsi di transazione disponibili per modulo e ciclo MAST dipende dalla porta di comunicazione utilizzata:
• La porta integrata Modbus Plus o i moduli NOM supportano fino a 4 blocchi contemporaneamente.
• La porta integrata TCP/IP Ethernet supporta fino a 4 blocchi contemporaneamente.
• I moduli TCP/IP Ethernet NOE, NOC e 140 CRP 312 00 supportano fino a 16 blocchi contemporaneamente.
Sulla stessa porta di comunicazione possono essere programmati più blocchi funzione di comunicazione. Tuttavia, un blocco di comunicazione che supera il numero massimo ammesso su quella porta non verrà gestito fino a quando non diventa disponibile un percorso di transazione. A questo punto, diventa attivo il blocco successivo sulla stessa porta e inizia ad utilizzare un percorso disponibile.
372 33003682.24
comunicazione
NOTA: Quando si programma una funzione WRITE_REG , è necessario conoscere le procedure di instradamento usate dalla rete. Le strutture dei percorsi di transazione
Modbus Plus sono descritte nei dettagli nel manuale Architetture di comunicazione (vedi
Servizi e architetture di comunicazione, Manuale di riferimento) e nel documento Rete
Modbus Plus, Guida alla pianificazione e all'installazione (codice di riferimento
31003525) . Se è implementato l'instradamento Ethernet (vedi Quantum con
EcoStruxure ™ Control Expert, Configurazione di TCP/IP, Manuale dell'utente) TCP/IP o
SY/MAX, devono essere utilizzati i prodotti di instradamento Ethernet IP standard.
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
Rappresentazione in FBD
Rappresentazione:
33003682.24
373
comunicazione
Rappresentazione in LD
Rappresentazione:
Rappresentazione in IL
Rappresentazione:
CAL WRITE_REG_Instance (REQ:=StartWriteOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructureForTransfer,
DONE=>SetAfterWritingData, ERROR=>SetInCaseOfError,
STATUS=>ErrorCode)
Rappresentazione in ST
Rappresentazione:
WRITE_REG_Instance (REQ:=StartWriteOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructureForTransfer,
DONE=>SetAfterWritingData, ERROR=>SetInCaseOfError,
STATUS=>ErrorCode) ;
374 33003682.24
comunicazione
Descrizione dei parametri
Descrizione dei parametri ingresso:
Parametro
REQ
Tipo di dati
BOOL
SLAVEREG
NO_REG
REG_WRIT
ADDRFLD
DINT
INT
ANY
WordArr5
Significato
Su un fronte di salita sull'ingresso REQ , questo blocco funzione scrive un'area del registro di un dispositivo collegato tramite
Modbus Plus, TCP/IP Ethernet o SY/MAX-Ethernet, con il contenuto di un'area del registro del PLC.
Indirizzo offset del primo registro %MW dello slave in cui scrivere.
Numero di indirizzi da scrivere dallo slave
Campo dei dati di origine
(Una struttura dati deve essere dichiarata come una variabile localizzata per il file di origine).
Una struttura dati che trasferisce l'indirizzo Plus Modbus, l'indirizzo TCP/IP o l'indirizzo SY/MAX-IP.
Descrizione dei parametri d'uscita:
Parametro
DONE
ERROR
STATUS
Tipo di dati
BOOL
BOOL
WORD
Significato
Impostato a 1 per un ciclo dopo la scrittura dei dati.
Impostato a 1 per un ciclo se si verifica un errore.
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Errore di runtime
Per un elenco di tutti i codici e valori di errore blocco, vedere la tabella dei
.
Tipi di dati derivati
Descrizione degli elementi per
WordArr5
in Modbus Plus
Descrizione degli elementi per WordArr5 in Modbus Plus:
33003682.24
375
comunicazione
Elemento
WordArr5[1]
Tipo dati
WORD
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
WORD
WORD
WORD
WORD
Descrizione
Byte meno significativo:
Il registro d'instradamento 1 è utilizzato per specificare l'indirizzo (indirizzo del percorso d'instradamento uno di cinque) del nodo di destinazione durante un trasferimento di rete.
L'ultimo byte del percorso d'instradamento diverso da zero è il nodo di destinazione.
Byte più significativo:
Indirizzo del nodo di origine.
• posizione slot del modulo quando si utilizza la porta
Modbus Plus sul modulo NOM.
• impostato a 0 quando si utilizza la porta Modbus Plus sulla CPU (indipendentemente dallo slot CPU).
Registro d'instradamento 2
Registro d'instradamento 3
Registro d'instradamento 4
Registro d'instradamento 5
Descrizione degli elementi per
WordArr5
con Ethernet
TCP/IP
Descrizione degli elementi per WordArr5 con Ethernet TCP/IP
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte più significativo: slot del modulo NOE
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Byte 4 (MSB) dell'indirizzo IP di destinazione a 32 bit
Byte 3 dell'indirizzo IP di destinazione a 32 bit.
Byte 2 dell'indirizzo IP di destinazione a 32 bit.
Byte 1 (LSB) dell'indirizzo IP di destinazione a 32 bit
376 33003682.24
comunicazione
Descrizione degli elementi per
WordArr5
con Ethernet
SY/MAX
Descrizione degli elementi per WordArr5 con Ethernet SY/MAX:
Elemento
WordArr5[1]
WordArr5[2]
WordArr5[3]
WordArr5[4]
WordArr5[5]
Tipo dati
WORD
WORD
WORD
WORD
WORD
Descrizione
Byte più significativo: slot del modulo NOE
Byte meno significativo: indice di mappatura MBP on Ethernet Transporter (MET).
Numero derivazione della destinazione (o impostato al valore esadecimale di FF)
Dispositivo di terminazione (impostato al valore esadecimale di FF)
Nessun significato
Nessun significato
Modalità di funzionamento
Modalità di funzionamento del blocco
WRITE_REG
Anche se è possibile programmare una grande quantità di blocchi di funzione WRITE_REG , solo quattro operazioni di scrittura possono essere attive contemporaneamente. In un caso del genere è irrilevante se sono il risultato di questo blocco di funzione o di altri (ad es.
MBP_
MSTR , CWRITE_REG ). Tutti i blocchi di funzione utilizzano un percorso di transazione e richiedono più cicli per completare un processo.
Se in un'applicazione vengono utilizzati più blocchi funzione WRITE_REG , questi devono differire almeno nei valori dei parametri NO_REG o REG_WRITE .
NOTA: Una comunicazione TCP/IP tra un PLC Quantum (NOE 211 00) e un PLC
Momentum (tutte le CPU TCP/IP e tutti i moduli di I/O TCP/IP) è possibile solo quando in ogni ciclo viene eseguita un'unica operazione di lettura o di scrittura. Se per ciascun ciclo del PLC vengono inviate diverse operazioni, la comunicazione si interrompe senza generare un messaggio di errore nel registro di stato del blocco funzione.
I segnali DONE ed ERROR indicano lo stato del blocco funzione al programma utente.
33003682.24
377
comunicazione
Tutte le informazioni di instradamento sono contenute nella struttura dati WordArr5 dell'ingresso ADDRFLD . Il tipo di blocco funzione assegnato a questo ingresso è definito dalla rete utilizzata.
Si consiglia di utilizzare:
• Modbus Plus per il blocco funzione
• Ethernet TCP/IP per il blocco funzione
• Ethernet SY/MAX per il blocco funzione
NOTA: La struttura dati WordArr5 può essere utilizzata anche con le costanti.
Descrizione dei parametri
REQ
Un fronte di salita attiva la transazione di scrittura.
Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
SLAVEREG
Inizio dell'area nello slave indirizzato nella quale vengono scritti i dati di origine. L'area di origine risiede sempre nell'area d'indirizzo %MW.
NOTA: Per gli slave per un PLC nonControl Expert:
L'area di destinazione risiede sempre nell'area dei registri 4x.
SLAVEREG prevede l'indirizzo di destinazione come un offset entro l'area 4x. Il "4" iniziale deve essere omesso (ad es. 59 (contenuto delle variabili o valore del letterale) = 40059).
Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
NO_REG
Numero di indirizzi da scrivere nel processore slave (1 - 100).
Il parametro può essere immesso come indirizzo, variabile localizzata, variabile non localizzata o letterale.
378 33003682.24
REG_WRIT
comunicazione
Un ARRAY delle stesse dimensioni della trasmissione pianificata deve essere concordato (≥
NO_REG ) per questo parametro. Il nome di questo array è definito come parametro. Se l'array definito è troppo piccolo, viene trasmessa solo la quantità di dati presente nell'array.
Il parametro deve essere definito come variabile localizzata.
DONE
La transizione allo stato ON per una scansione di programma significa che i dati sono stati trasferiti.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
ERROR
La transizione allo stato ON per un ciclo di programma indica il rilevamento di un nuovo errore.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
STATUS
Se si verifica un errore durante l'esecuzione della funzione, su quest'uscita permane un
per un ciclo.
Questo parametro può essere immesso come indirizzo, variabile localizzata o non localizzata.
33003682.24
379
comunicazione
WRITE_REG_QX: Registro scrittura sul bus EIO
WRITE_REG_QX: Registro scrittura sul bus
EIO
Contenuto del capitolo
Descrizione ........................................................................... 380
Presentazione
Questo capitolo descrive la funzione WRITE_REG_QX .
Descrizione
Descrizione della funzione
La funzione WRITE_REG_QX permette di leggere i registri in uno slave Modbus collegato a un modulo di comunicazione Modicon M340 Modbus (BMX NOM) situato in una derivazione
EIO.
Per programmare una funzione WRITE_REG_QX è necessario conoscere le procedure di instradamento utilizzate dalla rete.
NOTA: nel programma è possibile utilizzare più copie di questo blocco funzione, ma non più istanze di queste copie.
È possibile configurare anche i parametri EN ed ENO .
380 33003682.24
WRITE_REG_QX: Registro scrittura sul bus EIO
Rappresentazione in FBD
Rappresentazione: comunicazione
33003682.24
381
comunicazione
Rappresentazione in LD
Rappresentazione:
WRITE_REG_QX: Registro scrittura sul bus EIO
Rappresentazione in IL
Rappresentazione:
CAL WRITE_REG_QX_Instance (ENABLE:=WriteRegQxEnable, ABORT:
=WriteRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToWrite,
REG_WRITE:=WriteData, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE=
>WriteRegQxSuccessfull, ACTIVE=>WriteRegQxActive, ERROR=
>WriteRegQxFaulty, STATUS=>ErrorCode)
Rappresentazione in ST
Rappresentazione:
WRITE_REG_QX_Instance (ENABLE:=WriteRegQxEnable, ABORT:
=WriteRegQxAbort, ADDR:=ModuleAddress, NO_REG:=NbRegistersToWrite,
REG_WRITE:=WriteData, SLAVEREG:=SlaveAddress, IEC:=IndexAdjust, DONE=
382 33003682.24
WRITE_REG_QX: Registro scrittura sul bus EIO
>WriteRegQxSuccessfull, ACTIVE=>WriteRegQxActive, ERROR=
>WriteRegQxFaulty, STATUS=>ErrorCode) comunicazione
Descrizione dei parametri
Descrizione dei parametri di ingresso:
Parametro
ENABLE
ABORT
ADDR
Tipo dati
BOOL
BOOL
ANY_ARRAY_INT
NO_REG
REG_WRITE
SLAVEREG
IEC
INT
ANY_ARRAY_WORD
DINT
INT
Significato
Impostato a 1 per la scrittura dei registri.
Impostato a 1 per interrompere l'operazione corrente.
Array contenente l'indirizzo slave Modbus, risultato della funzione
Numero di registri da scrivere nello slave Modbus.
Campo dati sorgente
(È necessario dichiarare una struttura dati come variabile localizzata per il file sorgente).
Indirizzo offset del primo registro %MW da scrivere nello slave
Modbus.
Regolazione dell'indice applicata al parametro SLAVEREG . Il parametro IEC può avere 2 valori:
• 0: %MW x
• 1: %MW x+1
Il valore predefinito IEC è 0 per una destinazione Modicon
M340.
Descrizione dei parametri di uscita:
Parametro
DONE
Tipo dati
BOOL
ACTIVE
ERROR
STATUS
BOOL
BOOL
WORD
Significato
Impostato a 1 quando l'esecuzione della funzione si è conclusa correttamente.
Impostato a 1 quando l'esecuzione della funzione è in corso.
Impostato a 1 se viene rilevato un errore dal blocco funzione.
Fornisce il
se il blocco funzione rileva un errore.
33003682.24
383
comunicazione
WRITE_REMOTE: scrittura di variabili remote
WRITE_REMOTE: scrittura di variabili remote
Contenuto del capitolo
Descrizione ........................................................................... 384
Introduzione
Questo capitolo descrive il blocco funzione di comunicazione WRITE_REMOTE .
Descrizione
Descrizione della funzione
La funzione WRITE_REMOTE consente di scrivere il valore di variabili remote scambiate tra le applicazioni del PLC.
Quando il valore di ingresso EN è TRUE :
• Il blocco funzione di comunicazione WRITE_REMOTE consente di scambiare il valore della variabile tra i PLC. Possono essere scritte le variabili allocate e non allocate
• È possibile scrivere qualsiasi tipo di variabile remota con nome (allocata e non allocata) in base al nome della variabile
• Il numero di pin relativi alla selezione delle variabili è fisso e non può essere modificato dall'utente: 14 pin per specificare le variabili locali e 14 pin per specificare le variabili remote. Non è richiesto collegare tutti i pin di ingresso e uscita.
NOTA: i nomi delle variabili remote specificati nel parametro R_VAR_x possono essere modificati durante il runtime. Ciò porta al riavvio del processo di verifica dei dati tra i PLC locale e remoto.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
Limitazione del firmware della CPU
Il blocco WRITE_REMOTE è supportato da:
• CPU M580 con SO versione V3.20 o successive
• CPU M340 con SO versione V3.30 o successive
384 33003682.24
WRITE_REMOTE: scrittura di variabili remote
comunicazione
Per consentire la verifica del tipo in base al confronto del checksum (vedere
Controllo del tipo di dati, pagina 389
), la CPU remota deve avere la seguente versione firmware minima:
• CPU M580 con SO versione V3.20 o successive
• CPU M340 con SO versione V3.30 o successive
NOTA: È possibile scambiare variabili con una CPU M580 o M340 remota dotata di un firmware precedente o di un'altra CPU che supporta la funzione Dizionario dati disattivando la verifica del tipo in base al confronto del checksum mediante il
.
Rappresentazione FBD
Rappresentazione:
33003682.24
385
comunicazione
Rappresentazione LD
Rappresentazione:
WRITE_REMOTE: scrittura di variabili remote
Rappresentazione IL
Rappresentazione:
CAL WRITE_REMOTE_Instance CTRL:=WriteRemote_Control, ENABLE:
=WriteRemote_Enable, ADDR:=Address, ABORT:=WriteRemote_Abort, R_VAR_
1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, L_VAR_1=
>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14, DONE=>WriteRemote_
Done, ACTIVE=>WriteRemote_Active, ERROR=>WriteRemote_ExecutionError,
STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode)
Rappresentazione ST
Rappresentazione:
CAL WRITE_REMOTE_Instance (CTRL:=WriteRemote_Control, ENABLE:
=WriteRemote_Enable, ADDR:=Address, ABORT:=WriteRemote_Abort, R_VAR_
1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, L_VAR_1=
>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14, DONE=>WriteRemote_
Done, ACTIVE=>WriteRemote_Active, ERROR=>WriteRemote_ExecutionError,
STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode);
386 33003682.24
WRITE_REMOTE: scrittura di variabili remote
comunicazione
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
CTRL
ENABLE
ABORT
ADDR
R_VAR_i
L_VAR_i
Tipo
ARRAY_INT [0..3
]
BOOL
BOOL
ANY_ARRAY_INT
STRING
ANY
Commento
Parametro di ingresso Control :
• INT [0] : tempo massimo TIMEOUT di attesa della fine dell'esecuzione della funzione WRITE_REMOTE (in millisecondi)
• INT [1] : impostato a 1 se la versione del firmware della
CPU remota è precedente a V3.30 per M340 e V3.2 per
M580
NOTA: il tipo di verifica tramite checksum del tipo non è eseguito nel caso di INT [1]. Tale verifica si basa solo sulla lunghezza del tipo (ad esempio, i tipi di variabili locali e remote sono considerati coerenti se hanno la stessa dimensione in byte).
La funzione è eseguita quando questo parametro è ON .
La funzione non è eseguita (interrotta) quando questo parametro è ON .
Array contenente l'indirizzo del PLC, risultato di:
• Funzione ADDM per M340;
• Funzione ADDMX per M580
Identificazione (nome simbolico) di una variabile remota.
Una variabile locale utilizzata per scrivere il valore nel dispositivo remoto.
NOTA: il tipo di una variabile locale deve corrispondere al tipo di una variabile remota (vedere Controllo del tipo di dati di seguito).
La tabella seguente descrive i parametri d'uscita:
Parametro
DONE
ACTIVE
ERROR
Tipo
BOOL
BOOL
BOOL
Commento
La funzione richiesta viene eseguita e convalidata correttamente.
TRUE se l'esecuzione del blocco funzione è in corso (scrittura dei descrittori della variabile remota e relativi valori).
Ricevuto uno stato diverso da zero.
33003682.24
387
comunicazione
Parametro
STATUS
EXT_STATUS
Tipo
INT
ARRAY [1..14] OF
INT
WRITE_REMOTE: scrittura di variabili remote
Commento
Fornisce il
se il blocco funzione rileva un errore.
NOTA: il valore del parametro STATUS è 0 solo se il valore del parametro EXT_STATUS è 0 per ogni accesso alla variabile.
Fornisce il
esteso se il blocco funzione rileva un errore: uno stato per ogni accesso alla variabile.
Regole d'uso
Questa funzione supporta i dati remoti seguenti:
• Variabili elementari
• Array (tabelle)
• Istanze DDT senza riferimenti (tipo indirezione =1 )
Sono supportati i tipi seguenti di sintassi:
• MyVar
• MyArray[2]
• MyDdtArray[4].elem1
NOTA: l'indice Array deve essere un valore immediato.
NOTA: una variabile remota viene identificata con il nome o il nome del percorso. Ad esempio, MyVar[2].elem1
.
Il blocco funzione di comunicazione WRITE_REMOTE scrive prima la definizione, l'indirizzo e il tipo di variabili remote e solo allora scrive le variabili stesse. Questa regola si applica anche alle modifiche online dei dati del server del PLC, ad esempio rimuovendo una variabile o un'istanza del FB.
La funzione Dizionario dati deve essere attivata da un PLC client e da un PLC server.
Il blocco funzione di comunicazione WRITE_REMOTE deve essere chiamato ed eseguito dal task MAST, FAST, AUX0 o AUX1.
Il set di caratteri consentito per una variabile remota è Standard. Se si utilizzano caratteri estesi o Unicode per una variabile remota, si verifica un errore e il messaggio “Variabile non trovata” viene visualizzato nel server OFS.
Se si utilizza l'impostazione Solo variabili HMI nel Dizionario dati ( Strumenti >
Impostazione progetto > Dati integrati PLC ), l'attributo Variabile HMI deve essere selezionato per le variabili scambiate con il blocco funzione WRITE_REMOTE , possibile in un'applicazione locale o remota.
388 33003682.24
WRITE_REMOTE: scrittura di variabili remote
comunicazione
NOTA: L'impostazione Solo variabili HMI non deve essere identica nelle applicazioni locale e remota.
Controllo del tipo di dati
ATTENZIONE
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
Verificare che il tipo di variabile referenziata dal parametro R_VAR_x corrisponda al tipo di variabile assegnata al parametro L_VAR_x .
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Il blocco funzione di comunicazione WRITE_REMOTE scrive variabili con tipi di dati identici.
Il controllo del tipo di dati tra variabili locali e remote viene eseguito per impostazione predefinita e si applica a:
• EDT
• DDT
• ARRAY DDT
• ARRAY anonimo
Il controllo del tipo di utente viene eseguito dal checksum di tipo identico e dalla lunghezza del tipo.
Gli attributi esportati del formato di origine definito sono controllati durante il controllo del checksum di tipo identico.
Viene sempre eseguito un controllo minimo di coerenza basato sulla lunghezza del tipo, mentre le variabili locali e remote devono avere la stessa dimensione in byte.
Il controllo per nome di tipo non viene eseguito a causa della differenza nelle definizioni utilizzate dal PLC client e dal PLC server.
Per disattivare il controllo del tipo di dati, utilizzare il parametro CTRL . Solo il controllo del tipo di dati basato sul checksum di tipo identico può essere disattivato tramite il parametro CTRL .
NOTA: i tipi di dati STRING e STRING[n] sono considerati identici anche se la dimensione della stringa è diversa. Sono scambiati solo i caratteri corrispondenti alla lunghezza minima delle variabili locali e remote. La stringa viene troncata solo per le variabili stringa ( STRING o STRING[n] ). Questa regola non si applica alle variabili stringa nei DDT.
33003682.24
389
comunicazione
WRITE_REMOTE: scrittura di variabili remote
NOTA: La famiglia di CPU Premium e Quantum non condivide lo stesso schema di allineamento della memoria della famiglia M580 e M340. Le variabili DDT o array potrebbero non scambiarsi correttamente, completando con il codice 16#1309
(lunghezza non corrispondente) nel campo EXT_STATUS corrispondente. Per evitare scambi dati errati, è necessario modificare il tipo DDT in Premium o Quantum. Per ulteriori informazioni, vedere il capitolo DDT: Regole di mappatura. Control Expert può indicare al momento della compilazione dove l'allineamento sembra essere diverso. Per attivare questa opzione, modificare la proprietà Generazione compatibilità mappatura
DDT in Impostazioni progetto .
Comportamento della modalità Hot Standby
In modalità Hot Standby, WRITE_REMOTE si comporta analogamente ad altri blocchi funzione di comunicazione. La stessa regola di programmazione deve essere seguita come descritto in Blocco funzione di comunicazione asincrona (vedere Modicon M580 Hot
Standby, Guida alla pianificazione del sistema per le architetture di utilizzo frequente).
Quando si verifica una commutazione, l'indirizzo IP del PLC di destinazione viene commutato nel PLC server, mentre la richiesta in corso viene riavviata nella modalità
Standby. Perciò, la comunicazione con il blocco funzione WRITE_REMOTE viene ripristinata e continua normalmente.
NOTA: la definizione di una variabile remota viene comunicata al PLC di Standby insieme con lo stato interno del blocco funzione di comunicazione WRITE_REMOTE .
Simulatore PLC
Il blocco funzione di comunicazione WRITE_REMOTE può essere utilizzato con il simulatore
PLC delle richieste di comunicazione in corso. Per informazioni, vedere EcoStruxure ™
Control Expert, Simulatore PLC .
Limitazioni
I dati seguenti mappati sul tipo di dati ANY non sono supportati da questa funzione:
• Istanze IODDT
• Istanze DDT dispositivo contenenti EBOOL
• Istanze DDT con un riferimento (tipo indirezione =1 )
• Array di EBOOL, EFB e DFB
NOTA: è lo stesso comportamento del parametro ANY .
390 33003682.24
WRITE_REMOTE: scrittura di variabili remote
comunicazione
Altre limitazioni:
• Il numero massimo di variabili è 14
• La dimensione richiesta non deve superare 1 kB. Ossia:
◦ La dimensione totale dei dati scambiati deve essere inferiore a 1 kB
◦ La somma di tutte le stringhe descritte in tutti i percorsi di variabili deve essere inferiore a 1010 Byte
◦ Se la dimensione richiesta è > 1 kB, si verifica un errore di stato
• Il tempo di risposta dipende dal tempo di ciclo del PLC ed è limitato al valore di timeout specificato nella prima parola del parametro CTRL .
33003682.24
391
comunicazione
WRITE_SDO: scrittura oggetto dati di servizio
WRITE_SDO: scrittura oggetto dati di servizio
Contenuto del capitolo
WRITE_SDO: scrittura oggetto dati di servizio ......................... 392
Argomento di questo capitolo
Questo capitolo descrive la funzione di comunicazione WRITE_SDO .
WRITE_SDO: scrittura oggetto dati di servizio
Descrizione della funzione
Il blocco funzionale WRITE_SDO scrive (scambi espliciti) dall'applicazione del PLC fino al dispositivo (SDO).
Questo blocco funzionale fornisce accesso al codice di interruzione quando il comando
SDO non riesce (solo se il bus di campo è in modalità RUN e solo verso i dispositivi configurati).
392 33003682.24
WRITE_SDO: scrittura oggetto dati di servizio
Rappresentazione FBD
Rappresentazione: comunicazione
33003682.24
393
comunicazione
Rappresentazione LD
WRITE_SDO: scrittura oggetto dati di servizio
Rappresentazione IL
Rappresentazione:
CAL WRITE_SDO_Instance (ENABLE := EnableWRITE_SDO, ABORT := AbortWRITE_
SDO, ADDR := DataStructureAddress, NODE := NodeNumber, INDEX :=
SDOIndex, SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN :=
DataNumberIn, DATA_IN := SDODataToWrite, DONE => WriteSDOSuccessful,
ACTIVE => WriteSDOActive, ERROR => WriteSDOFaulty, STATUS => ErrorCode,
SDOABORTCODE => AbortCode)
Rappresentazione ST
394
Rappresentazione:
WRITE_SDO_Instance (ENABLE := EnableWRITE_SDO, ABORT := AbortWRITE_SDO,
ADDR := DataStructureAddress, NODE := NodeNumber, INDEX := SDOIndex,
33003682.24
WRITE_SDO: scrittura oggetto dati di servizio
comunicazione
SUBINDEX := SDOSubIndex, OFFSET := FirstSDO, NB_IN := DataNumberIn,
DATA_IN := SDODataToWrite, DONE => WriteSDOSuccessful, ACTIVE =>
WriteSDOActive, ERROR => WriteSDOFaulty, STATUS => ErrorCode,
SDOABORTCODE => AbortCode)
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro di ingresso
ENABLE
ABORT
ADDR
NODE
INDEX
SUBINDEX
OFFSET
NB_IN
DATA_IN
Tipo di dati
BOOL
BOOL
ANY_ARRAY_INT
BYTE
Descrizione
ON: l'operazione è attivata.
ON: l'operazione attiva in atto viene interrotta.
Array contenente l'indirizzo dell'entità di destinazione dell'operazione di lettura, risultato della funzione ADDMX.
Byte utilizzato per selezionare un particolare dispositivo slave NMT sulla rete CANopen (da 16#01 a 16#7F).
INT
BYTE
INT
Due byte utilizzati per accedere a un oggetto particolare in un dispositivo server SDO CANopen.
Byte utilizzato per accedere a un sotto oggetto particolare in un dispositivo server SDO CANopen.
Due byte che indicano l'offset iniziale nell'oggetto selezionato. Può essere non zero quando si eseguono i trasferimenti SDO segmentati.
NOTA: Non usato per l'indirizzamento di un modulo EtherNet/IP
(indirizzo con suffisso CIP).
INT Due byte che forniscono il conteggio del numero desiderato di valori da scrivere (in byte).
ANY_ARRAY_BYTE Dati da scrivere.
La tabella seguente descrive i parametri d'uscita:
Tipo di dati Descrizione Parametro d’uscita
DONE
ACTIVE
ERROR
BOOL
BOOL
BOOL
ON: l'operazione viene conclusa correttamente.
ON: l'operazione è attiva.
ON: l'operazione viene interrotta senza successo.
33003682.24
395
comunicazione
Parametro d’uscita
STATUS
SDOABORT-
CODE
Tipo di dati
WORD
DWORD
WRITE_SDO: scrittura oggetto dati di servizio
Descrizione
Fornisce il
se il blocco funzione rileva un errore.
Codice di interruzione SDO, pagina 575
quando STATUS = 16#4007.
396 33003682.24
WRITE_VAR: Scrittura di variabili
WRITE_VAR: Scrittura di variabili
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 397
Schermata di immissione assistita........................................... 403
Esempio di come scrivere parole su una rete ........................... 406
Esempio con controllo di esecuzione ....................................... 410
Argomento del capitolo
Questo capitolo descrive la funzione di comunicazione WRITE_VAR .
Descrizione
Descrizione della funzione
La funzione WRITE_VAR permette di scrivere uno o più oggetti di linguaggio dello stesso tipo:
• bit interni
• parole interne
Verificare che gli oggetti di scrittura siano consecutivi. Possono trovarsi in una CPU remota o in un dispositivo collegato a un canale di comunicazione.
AVVERTIMENTO
INCOMPATIBILITÀ DEI DATI SCAMBIATI
Gli allineamenti delle strutture dati non sono le stesse per Premium/Quantum e per M340/
M580, quindi occorre verificare che i dati scambiati siano compatibili. Vedere DDT: Regole di mappatura (vedere ™ EcoStruxure Control Expert, Struttura e linguaggi di programmazione, Manuale di riferimento) per le regole di allineamento.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
È possibile inoltre configurare i parametri supplementari EN ed ENO .
33003682.24
397
comunicazione
Rappresentazione FBD
Rappresentazione:
WRITE_VAR: Scrittura di variabili
Rappresentazione LD
Rappresentazione:
Rappresentazione IL
Rappresentazione:
LD Address
398 33003682.24
WRITE_VAR: Scrittura di variabili
comunicazione
WRITE_VAR Object_Type, First_Object, Object_Number, Data_to_Write,
Management_Param
Rappresentazione ST
Rappresentazione:
WRITE_VAR(Address, Object_Type, First_Object, Object_Number, Data_ to_Write, Management_Param);
Descrizione dei parametri
La tabella seguente descrive i parametri di ingresso:
Parametro
ADR
TYP
33003682.24
Tipo
ARRAY [0..5] OF INT per Premium
ARRAY [0..7] OF INT per Modicon M340 e
M580
STRING
Commento
Istruzioni specifiche per piattaforme hardware:
• Premium:
◦ L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
ADDR
◦ Indirizzo dell'entità di destinazione dello scambio.
I seguenti indirizzi non sono ammessi:
• {Network.Station}APP,
• {Network.Station}APP.num.
• indirizzi broadcast (ALL, 0 per il modulo TSX SCY
11601).
• Modicon M340:
◦ L'indirizzo del canale in modalità carattere di ricezione del messaggio è fornito dalla funzione
ADDM
◦ La sintassi dell'indirizzo è di tipo ADDM ('r.m.c.
node').
• Modicon M580:
◦ L'indirizzo dell'entità di destinazione dell'operazione di scrittura, risultato della funzione ADDMX .
Tipi di oggetti da scrivere per i PLC Premium.
• ’%M’: bit interni,
• ’%MW’: parole interne,
• ’%S’: bit di sistema,
• ’%SW’: parole di sistema.
Tipo di oggetti da scrivere per i PLC Modicon M340 e M580:
• ’%M’: bit interni,
399
comunicazione
WRITE_VAR: Scrittura di variabili
Parametro
NUM
NB
EMIS
Tipo
DINT
INT
ARRAY [n..m] OF INT
Commento
• ’%MW’: parole interne.
Indice del primo oggetto da scrivere nel dispositivo di destinazione.
Numero di oggetti da scrivere.
Tabella di parole contenente il valore degli oggetti da scrivere.
La tabella seguente descrive i parametri ingresso/uscita:
Parametro
GEST
Tipo
ARRAY [0...3] OF INT
Commento
Tabella di gestione scambio contenente le parole seguenti:
• Parola di rango 1: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: numero di scambio
◦ Byte meno significativo: bit di attività (rango 0) e bit di annullamento (rango 1)
NOTA: Il bit di annullamento è disponibile solo per i PLC Modicon M340 e M580.
• Parola di rango 2: una parola gestita dal sistema e comprendente due byte:
◦ Byte più significativo: rapporto operazione
◦ Byte meno significativo: rapporto comunicazione
• Parola di rango 3: una parola gestita dall'utente che definisce il tempo di risposta massimo mediante una base tempo di 100 ms.
• Parola di rango 4: una parola gestita dall'utente che definisce la lunghezza dello scambio.
Per informazioni dettagliate, vedere la sezione
Struttura dei parametri di gestione , pagina 39 .
NOTA: Verificare che il parametro di lunghezza non sia inizializzato prima di avviare la funzione.
NOTA: La CPU Premium con Ethernet integrato dei moduli TSX P574xxx, TSX P575xxx e TSX P576xxx utilizzata come client può scrivere soltanto 100 parole anziché 123 parole come gli altri moduli Ethernet e CPU Premium con ETY PORT.
400 33003682.24
WRITE_VAR: Scrittura di variabili
comunicazione
Transazioni simultanee
La seguente tabella fornisce le capacità di ogni canale di comunicazione di elaborare simultaneamente le transazioni secondo varie configurazioni sui PLC Micro e Premium.
Configurazione Micro TSX 57 10 TSX 57 20
4
8
4
8
TSX 57 23/30/40/
45/55, PCX 57,
PMX 57
4
8
TSX 57 46/56
8
8
Porta terminale del master Uni-Telway
PCMCIA o collegamento SCY del master
Uni-Telway
Porta terminale dello slave client Uni-
Telway
PCMCIA o collegamento SCY dello slave client Uni-Telway
Porta terminale dello slave server Uni-
Telway
PCMCIA o collegamento SCY dello slave server Uni-Telway
Porta terminale Modbus
PCMCIA o collegamento SCY Modbus
Morsettiera modalità caratteri
PCMCIA o collegamento SCY modalità caratteri
PCMCIA CANopen
PCMCIA o collegamento SCY Fipway
Modbus Plus
Ethernet
Ethernet integrato
4
1
4
4
1
4
4
4
4
1
-
4
4
-
-
1
1
4
6
10
8
4
16
-
-
8
1
8
1
1
4
6
10
8
4
16
-
-
8
1
8
1
1
4
6
10
8
4
16
-
-
8
1
8
8
1
4
6
10
8
4
16
64
-
8
1
8
La tabella seguente indica le capacità di ogni canale di comunicazione di elaborare simultaneamente le transazioni in base alle varie configurazioni sui PLC Modicon MC80.
Configurazione
CANopen integrato
Ethernet integrato
Porta seriale master Modbus
BMKC80•03••
16
16
8
33003682.24
401
comunicazione
WRITE_VAR: Scrittura di variabili
La tabella seguente indica le capacità di ogni canale di comunicazione di elaborare simultaneamente le transazioni secondo varie configurazioni sul PLC Modicon M340.
Configurazione BMX P34 1000 BMX P34 2000
CANopen integrato
Ethernet integrato
Porta seriale master
Modbus
-
-
8
-
-
16
BMX P34 2010/
20102
16
-
16
BMX P34 2020
-
16
16
BMX P34 2030/
20302
16
16
-
Numero massimo di richieste come client per scansione sugli Modicon M580 CPU:
Configurazione
Ethernet
Codice di riferimento della CPU (BME P58 ...)
10•0
16
20•0
32
30•0
48
40•0
80
5040
80
6040
96
Numero massimo di richieste come client per scansione sulle CPU Modicon Hot Standby
M580:
Configurazione
Ethernet
Codice di riferimento della CPU (BME H58 ...)
2040
32
4040
80
6040
96
Numero massimo di richieste eseguite per scansione sugli Modicon M580 CPU:
Configurazione Codice di riferimento della CPU (BME P58 ...)
10•0
16
20•0
24
30•0
32
40•0
40
5040
48
6040
64 CPU da tutte le origini (1.)
Ethernet integrato 8 12 16 24 (2.) 32 32
USB 4 4 4 4 4 4
1.
La parola di sistema %SW90 consente di regolare il numero di richieste eseguite per ciclo. Il numero minimo di richieste elaborate per ciclo è impostato a 2 al fine di ridurre il jitter CPU.
2.
Il numero massimo di richieste è 16 per la CPU M580 BME P58 40•0 con versione firmware ≤ 1.20.
Numero massimo di richieste server per scansione sulle CPU Hot Standby Modicon M580:
402 33003682.24
WRITE_VAR: Scrittura di variabili
comunicazione
Configurazione
CPU da tutte le origini (1.)
Ethernet integrato
Codice di riferimento della CPU (BME H58 ...)
2040
24
12
4040
40
24
6040
64
32
USB 4 4 4
1.
La parola di sistema %SW90 consente di regolare il numero di richieste eseguite per ciclo. Il numero minimo di richieste elaborate per ciclo è impostato a 2 al fine di ridurre il jitter CPU.
NOTA: Verificare che il numero massimo di richieste simultanee presenti in tutte le tabelle tenga in considerazione il numero massimo di richieste simultanee che ogni CPU può gestire per ciclo, come Client e come Server (vedere Modicon M580, Hardware,
Manuale di riferimento).
Schermata di immissione assistita
In breve
Per questa funzione di comunicazione è possibile richiamare la schermata di immissione assistita. Questa schermata non è disponibile per Modicon M340/M580.
NOTA: I simboli delle variabili sono accettati nei diversi campi della schermata.
33003682.24
403
comunicazione
WRITE_VAR: Scrittura di variabili
Illustrazione
Di seguito viene mostrato un esempio della schermata di immissione assistita della funzione.
Indirizzo
Per i PLC Premium, i tipi di oggetti possibili sono:
• ADDR(STRING) ,
• ARRAY [0..5] OF INT .
NOTA: se si immette un valore direttamente nel campo, il pulsante di immissione assistita dell'indirizzo diventa grigiato.
Tipo dell'oggetto da scrivere.
Per i PLC Premium, le scelte possibili sono:
• ‘%M’ per la scrittura dei bit interni.
• ‘%MW’ per la scrittura delle parole interne.
• ‘%S’ per la scrittura dei bit di sistema.
• ‘%SW’ per la scrittura delle parole di sistema.
NOTA: scegliere semplicemente tra le soluzioni disponibili nel menu a discesa.
404 33003682.24
WRITE_VAR: Scrittura di variabili
comunicazione
Indirizzo del primo oggetto da scrivere
Gli oggetti possibili del tipo DINT sono:
• variabili
• costanti
• valore immediato.
NOTA: se si immette una costante, viene visualizzato un campo per l'immissione della stessa. Se si immette una variabile, essa può essere localizzata oppure no. D'altra parte gli oggetti di scrittura sono obbligatoriamente delle variabili localizzate.
Numero di oggetti consecutivi da scrivere
Gli oggetti possibili del tipo INT sono:
• variabili
• costanti
• valore immediato.
NOTA: se si immette una costante, viene visualizzato un campo per l'immissione della stessa. Se si immette una variabile, essa può essere localizzata oppure no.
Dati da scrivere
L'area dei dati di scrittura è un array di interi. La dimensione di questo array dipende dal numero di oggetti di scrittura. Questa matrice di interi può essere localizzata o meno.
Rapporto
Il rapporto è un array di 4 interi.
NOTA: evitare di utilizzare più aree di memoria identiche per le tabelle di rapporto, poiché in questo caso la funzione di lettura delle variabili potrebbe non essere attiva.
33003682.24
405
comunicazione
WRITE_VAR: Scrittura di variabili
Esempio di come scrivere parole su una rete
In breve
Finora gli esempi sono stati scritti utilizzando l'indirizzamento diretto (uso di %MWi), ma è anche possibile creare questi stessi esempi con variabili non localizzate.
L'esempio che segue utilizza variabili non localizzate e comprende la scrittura di una tabella di 50 parole denominata Tab_1 (dichiarata come ARRAY [0..49] OF INT) nello slave Uni-
Telway, con l'indirizzo:
• Rete 20
• Stazione 1
• Modulo SCM2116 in un TSX 87 nello slot 5 del rack di base
• Canale 1
• Indirizzo server dello slave Ad0 = 3.
I valori da scrivere sono nella variabile Tab_1 del mittente.
I parametri di gestione si trovano in una tabella di 4 interi denominata Management_
Parameter (dichiarata come ARRAY [0..3] OF INT).
406 33003682.24
WRITE_VAR: Scrittura di variabili
Illustrazione
Le due stazioni sono collegate tramite una rete Fipway.
comunicazione
Programmazione
Programmazione in ST:
IF RE(%I0.3.1) AND NOT Management_Parameter[0].0 THEN
WRITE_VAR(ADDR('{20.1}0.5.1.3'),'%MW',0,50,Tab_1,Management_
Parameter);
END_IF;
Parametri della richiesta:
33003682.24
407
comunicazione
Parametri
ADDR('{20.1}5.1.3')
'%MW'
0
50
Tab_1
Management_Parameter
WRITE_VAR: Scrittura di variabili
Descrizione
• {20.1}: rete 20, stazione 1
• 0 : rack
• 5 : modulo
• 1 : canale 1
• 3 : indirizzo di destinazione
Tipo di oggetto (parola interna)
Indirizzo del primo oggetto da scrivere
Numero di oggetti consecutivi da scrivere
Dati da scrivere
Tabella di gestione
Esempio di scrittura di parole tramite il collegamento seriale dei PLC Modicon M340
In breve
Questo esempio è basato su 2 processori Modicon M340 che comunicano tramite il collegamento seriale Modbus.
Descrizione dell'esempio
L'esempio che segue utilizza variabili non localizzate e comprende la scrittura di una tabella non localizzata di 50 parole denominata Tab_1 (dichiarata come ARRAY [0..49] OF INT ) nello slave Modbus. I parametri di gestione si trovano in una tabella di 4 interi, denominata
Management_Parameter (dichiarata come ARRAY [0..3] OF INT ).
Nell'esempio, il numero di slave Modbus è 7, quindi il parametro d'ingresso ADDM è '0.0.0.7':
• 0: numero di rack del processore, pari a 0
• 0: numero di slot del processore nel rack, pari a 0 poiché il numero di slot di un processore Modicon M340 è sempre 0
• 0: numero del canale, pari a 0 poiché il collegamento seriale di un processore Modicon
M340 è sempre il canale 0
• 7: il numero degli slave configurati è 7.
408 33003682.24
WRITE_VAR: Scrittura di variabili
I valori da scrivere sono nella variabile Tab_1 del mittente.
Illustrazione
I due processori Modicon340 sono collegati tramite un collegamento Modbus: comunicazione
Programmazione
Programmazione in ST:
IF RE(%I0.3.1) AND NOT Management_Parameter[0].0 THEN
WRITE_VAR(ADDM('0.0.0.7'),'%MW',0,50,Tab_1,Management_
Parameter);
END_IF;
I parametri della richiesta sono i seguenti:
Parametri
ADDM('0.0.0.7')
'%MW'
Descrizione
• 0: numero di rack del processore slave
• 0: numero di slot del processore slave
• 0: numero di canale (numero della porta seriale)
• 7: numero degli slave configurati
Tipo di oggetto (parola interna)
33003682.24
409
comunicazione
Parametri
0
50
Tab_1
Management_Parameter
WRITE_VAR: Scrittura di variabili
Descrizione
Indirizzo del primo oggetto da scrivere
Numero di oggetti consecutivi da scrivere
Dati da scrivere
Tabella di gestione
Esempio con controllo di esecuzione
In breve
L'esempio seguente illustra la funzione WRITE_VAR con un controllo dei parametri di gestione.
Programmazione della funzione
Programmazione in ST:
IF NOT %M20 AND %I0.1.2 THEN
%MW200:4:= 0;
INC %MW1700
%MW202:= 50;
WRITE_VAR(ADDR(’0.3.1.7’),’%MW’,20,1,%MW1700:1,%MW200:4);
SET %M20;
END_IF;
• il bit d'ingresso %I0.1.2 controlla la funzione
• il bit di internet %M20 è utilizzato per testare l'attività della funzione
• %MW200:4:= 0; imposta la tabella di gestione a 0
• INC %MW1700; incrementa la parola %MW1700
• MW202:= 50; inizializza il valore di timeout a 5 secondi.
NOTA: per i PLC Modicon M340 è necessario utilizzare la sintassi WRITE_VAR(ADDM
(‘0.3.1.7’),’%MW’,20,1,%MW1700:4,%MW200:4); , poiché tali PLC non possono utilizzare la funzione ADDR .
410 33003682.24
WRITE_VAR: Scrittura di variabili
Programmazione del controllo degli scambi
Programmazione in ST:
IF %M20 AND NOT %M200.0 THEN
INC %MW204;
IF %MW201 = 0 THEN
INC %MW205;
ELSE
SET %Q0.2.2;
INC %MW206;
%MW207 := %MW201;
END_IF;
END_IF;
• %MW204 conteggia il numero di scambi
• %MW205 conteggia il numero di scambi corretti
• %MW206 conteggia il numero di scambi che generano errori
• %MW207 memorizza il messaggio di errore
• %Q0.2.2 indica un errore di scambio.
comunicazione
33003682.24
411
comunicazione
XMIT: Transmit
Contenuto del capitolo
Descrizione breve .................................................................. 412
Rappresentazione.................................................................. 413
Descrizione dei parametri ....................................................... 416
Descrizione della struttura dati XMIT_SET ............................... 418
Descrizione della struttura dati XMIT_CFG .............................. 419
Esempio di applicazione ......................................................... 426
Introduzione
Questo capitolo descrive il blocco XMIT . Questo blocco differisce dal blocco XXMIT solo nell'interfaccia. Per la descrizione del funzionamento fare pertanto riferimento a quest'ultimo.
Descrizione breve
Descrizione della funzione
Il blocco funzione XMIT (Transmit) invia i messaggi Modbus da un PLC master a più PLC slave o invia stringhe di caratteri ASCII dalla porta num. 1 o num. 2 dello slave Modbus del
PLC alle stampanti e ai terminali ASCII.
XMIT invia questi messaggi tramite modem remoti telefonici, modem radio o connessione diretta.
XMIT esegue funzioni di ingresso ASCII generiche in modalità di comunicazione, tra cui
ASCII semplice e ASCII con terminazione. È possibile importare dati ASCII o binari nel PLC e convertirli in vari dati ASCII o binari da inviare ai dispositivi DCE (Data Communication
Equipment) in base alle esigenze dell'applicazione.
NOTA: Il blocco XMIT differisce dal blocco XXMIT solo per l'interfaccia. Per le descrizioni funzionali, pertanto, vedere
È possibile configurare EN ed ENO come parametri supplementari.
412 33003682.24
comunicazione
Diagnostica
Il blocco dispone di una diagnostica integrata che controlla che sulla stessa porta del PLC non sia attivo un altro blocco XMIT. Nel blocco, una tabella di controllo permette di controllare il collegamento di comunicazione tra il PLC e i dispositivi DCE collegati alla porta
Modbus num. 1 o num. 2 del PLC. Il blocco NON attiva il LED della porta mentre trasmette i dati.
XMIT con più master Modbus
Come protocollo master/slave, Modbus è progettato per avere solo un master che interroga più slave. Quindi, quando si usa il blocco XMIT in una rete con più master, è responsabilità dell'utente risolvere i conflitti ed evitare collisioni, il che può avvenire agevolmente tramite la programmazione logica.
Limitazioni
Il blocco controlla le porte Modbus 1 e 2 delle CPU Momentum. Può essere utilizzato solo con stripped exec. Funziona esattamente come la controparte LL984, ma senza le funzioni di conversione, copia e confronto delle stringhe ASCII e senza le funzioni di stato della porta.
Rappresentazione
Rappresentazione FBD
33003682.24
413
comunicazione
Rappresentazione LD
Rappresentazione IL
CAL XMIT_instance(START:=Start_param, ABORT:=Abort_param, MSG_OUT:
=MsgOut_param, SET:=Set_param, PORT:=Port_param, MSG_IN=>MsgIn_ param, CFG=>Configuration_param, OP_ACT=>Active_param, NO_SUC=
>Error_param, EXT=>Status_param)
Rappresentazione ST
XMIT_instance (START:=Start_param, ABORT:=Abort_param, MSG_OUT:
=MsgOut_param, SET:=Set_param, PORT:=Port_param, MSG_IN=>MsgIn_ param, CFG=>Configuration_param, OP_ACT=>Active_param, NO_SUC=
>Error_param, EXT=>Status_param);
Descrizione dei parametri
Descrizione dei parametri del blocco
Parametri
SET
MSG_OUT (1)
PORT
Tipo di dati
XMIT_SET
ANY
BYTE
Significato
Struttura dati per la configurazione XMIT
Buffer per messaggi in uscita (nell'intervallo 4x)
Porta (0 o 1)
414 33003682.24
comunicazione
Parametri
START
ABORT
MSG_IN (1)
Tipo di dati
BOOL
BOOL
ANY
Significato
1: Avvia l'operazione XMIT
1: Interrompe l'operazione XMIT corrente
Buffer per messaggi in ingresso (nell'intervallo 4x)
CFG
OP_ACT
NO_SUC
XMIT_SET
BOOL
BOOL
Struttura dati con tutti i componenti della configurazione XMIT, tra cui le variabili impostate automaticamente e quelle non utilizzate. Solo per la visualizzazione e deve essere nell'intervallo 4x
1: Operazione XMIT in corso
1: Operazione conclusa NON correttamente
OP_SUC BOOL 1: Operazione conclusa con successo
Visualizza un codice di errore generato da XMIT EXT (2) INT
(1) Nessuna verifica per mappatura in registro quadruplo. Può trattarsi di dati non localizzati.
(2) Usato per un altro scopo con hot standby Momentum
Struttura dati XMIT_SET
Elemento
BaudRate
DataBits
Parity
StopBits
CommandWord
MessageLen
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
Tipo di dati
WORD
BYTE
BYTE
BYTE
WORD
WORD
WORD
WORD
WORD
WORD
Componente corrispondente in LL984 XMIT
Registro 4x+3 (velocità dati)
Registro 4x+3 (bit di dati)
Registro 4x+5 (parità)
Registro 4x+6 (bit di stop)
Registro 4x+8 (parola di comando)
Registro 4x+10 (lunghezza messaggio); in caso di ricezione con terminazione, questo componente è impostato automaticamente.
Registro 4x+11 (timeout risposta (ms))
Registro 4x+12 (limite tentativi)
Registro 4x+13 (inizio ritardo di trasmissione (ms))
Registro 4x+14 (fine ritardo di trasmissione (ms)).
33003682.24
415
comunicazione
Struttura dati XMIT_CFG
Elemento
FaultStatus
UserAvail_1
BaudRate
DataBits
Parity
StopBits
UserAvail_2
CommandWord
MessagePtr
MessageLen
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
CurrentRetry
WORD
WORD
WORD
WORD
WORD
WORD
Tipo di dati
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
Componente corrispondente in LL984 XMIT
Registro 4x+1 (stato errore)
Registro 4x+2 (disponibile per l'utente)
Registro 4x+3 (velocità dati)
Registro 4x+3 (bit di dati)
Registro 4x+5 (parità)
Registro 4x+6 (bit di stop)
Registro 4x+7 (disponibile per l'utente)
Registro 4x+8 (parola di comando)
Registro 4x+9 (puntatore messaggio)
Registro 4x+10 (lunghezza messaggio)
Registro 4x+11 (timeout risposta (ms))
Registro 4x+12 (limite tentativi)
Registro 4x+13 (inizio ritardo di trasmissione (ms))
Registro 4x+14 (fine ritardo di trasmissione (ms))
Registro 4x+15 (nuovo tentativo corrente).
Descrizione dei parametri
MSG_OUT
MSG_OUT contiene i dati dei messaggi da trasferire, ad esempio, i caratteri ASCII per un trasferimento ASCII, la definizione dei caratteri di terminazione per gli ingressi ASCII con terminazione o i modelli Modbus per i messaggi master Modbus.
Il tipo di dati da assegnare al parametro deve essere un array del tipo di dati WORD. Questo array deve essere assegnato a un campo di registri 4x. La lunghezza del campo deve essere uguale alla lunghezza del campo MSG_IN. Se il campo è assegnato al campo delle
Variabili non identificate, viene generato un messaggio di errore di runtime.
416 33003682.24
comunicazione
SET
SET contiene la configurazione del blocco funzione XMIT sotto forma di struttura dati XMIT_
SET. Questo parametro può essere assegnato a una variabile non identificata. I componenti della struttura dati hanno la stessa funzione dei componenti della configurazione LL984
XMIT. Esiste solo una differenza: le variabili sono impostate automaticamente dal sistema e le variabili non utilizzate non sono indicate in questa struttura dati. Questo significa che una configurazione completa richiede la definizione di tutti i componenti di questa struttura dati.
PORT
PORT specifica l'interfaccia di comunicazione. Gli unici valori ammessi sono 0 e 1.
NOTA: Quando si utilizzano i blocchi XMIT, L9_XMIT o XXMIT EF sulle due porte seriali della CPU Momentum 171 CBU 78090, creare un'istanza del blocco EF per ciascuna porta.
Non cambiare dinamicamente il numero di porta. Impostare il numero di porta come valore iniziale per ogni istanza in quanto il blocco memorizza una singola configurazione di porta.
START
Un segnale 1 su START inizia l'operazione XMIT. Il segnale 1 deve essere applicato finché si conclude l'operazione o si è verificato un errore.
ABORT
Un segnale 1 termina l'operazione XMIT corrente e scrive il codice di interruzione 121 nel componente FaultStatus della struttura dati XMIT_CFG sull'uscita CFG.
MSG_IN
MSG_IN contiene i dati dei messaggi in arrivo, ad esempio, gli ingressi ASCII con terminazione o le risposte di un comando master Modbus precedentemente inviato dal blocco funzione XMIT. Il tipo di dati da assegnare al parametro deve essere un array del tipo di dati WORD. Questo array deve essere assegnato a un campo di registri 4x. La lunghezza del campo deve essere uguale alla lunghezza del campo MSG_OUT. Se il campo è assegnato al campo delle Variabili non identificate, viene generato un messaggio di errore di runtime.
33003682.24
417
comunicazione
CFG
CFG contiene una copia del blocco funzione XMIT della configurazione definita su SET con il formato della struttura dati XMIT_CFG, che include le variabili impostate automaticamente e quelle non usate. I componenti della struttura dati hanno la stessa funzione dei componenti della configurazione LL984 XMIT. Questa struttura dati deve essere assegnata a un campo di registri 4x. Se la struttura dati è assegnata al campo delle variabili non identificate, verrà generato un messaggio di errore runtime. CFG permette di verificare la configurazione effettivamente applicata.
OP_ACT
Un segnale 1 indica che è in corso un'operazione XMIT.
NO_SUC
Un segnale 1 indica che si è verificato un errore o che l'operazione XMIT corrente è terminata.
OP_SUC
Un segnale 1 indica che l'operazione XMIT è terminata correttamente.
EXT
Visualizza un codice di errore (tranne in hot standby)
Descrizione della struttura dati XMIT_SET
XMIT_SET
Questa struttura dati contiene la configurazione particolare per l'operazione XMIT. Questa variabile può essere salvata nella memoria non allocata. Gli elementi di questa struttura hanno lo stesso significato degli elementi corrispondenti della struttura
418 33003682.24
comunicazione
. XMIT_SET viene usato per configurare il blocco XMIT. I valori di questa struttura dati sono trasferiti a XMIT_CFG.
NOTA: XMIT_SET non contiene l'elemento MessagePtr. Questo viene impostato automaticamente all'indirizzo dell'array MSG_IN e array e immesso in XMIT_CFG.
Descrizione della struttura dati XMIT_CFG
In breve
Questa struttura dati contiene i dati di configurazione attuali usati dal blocco XMIT. Non scrivere direttamente in questo array, dato che il contenuto è generato automaticamente o copiato da XMIT_SET. Di seguito viene fornita una descrizione dettagliata di ognuno dei
(16) registri della tabella di controllo delle comunicazioni XMIT.
XMIT_CFG.Revision Read Only
Visualizza il numero di revisione corrente del blocco XMIT. Questo numero viene automaticamente caricato dal blocco funzione e sovrascrive qualsiasi altro numero immesso nel registro.
XMIT_CFG.FaultStatus Read Only
Questo campo visualizza un codice di errore generato dal blocco XXMIT. La tabella seguente riporta un elenco completo.
Descrizione errore
7
8
5
6
3
4
1
2
Codice di errore
Eccezione Modbus - Funzione non valida
Eccezione Modbus - Indirizzo dati non valido
Eccezione Modbus - Valore dati non valido
Eccezione Modbus - Errore dispositivo slave
Eccezione Modbus - Riconoscimento
Eccezione Modbus - Dispositivo slave occupato
Eccezione Modbus - Riconoscimento negativo
Eccezione Modbus - Errore parità di memoria
33003682.24
419
comunicazione
103
104
105
106
Codice di errore
9 ... 99
100
101
102
107
119
120
121
122
123
124
125
126
127
112
113
114
115
116
108
109
110
111
117
118
420
Descrizione errore
Riservato
L'area dati PLC slave non può essere uguale a zero
L'area dati PLC master non può essere uguale a zero
Bobina (0x) non configurata
Registro di mantenimento (4x) non configurato
La lunghezza dei dati non può essere uguale a zero
Il puntatore alla tabella dei messaggi non può essere uguale a zero
Il puntatore alla tabella dei messaggi è al di fuori dell'intervallo di registri di mantenimento configurati (4x)
Timeout messaggio in trasmissione. Questo errore viene generato quanto l'UART non riesce a completare una trasmissione entro 10 secondi. Questo errore supera il conteggio dei tentativi e attiva l'uscita di errore sul primo errore.
Errore non definito
Il modem ha restituito un ERRORE
Il modem ha restituito NESSUNA PORTANTE
Il modem ha restituito NESSUN SEGNALE
Il modem ha restituito OCCUPATO
Checksum LRC non valida dal PLC slave
Checksum CRC non valida dal PLC slave
Codice funzione Modbus non valido
Timeout messaggio di risposta Modbus
Timeout risposta modem
XMIT non ha potuto accedere alle porte di comunicazione 1 o 2 del PLC
XMIT non ha potuto attivare il ricevitore della porta del PLC
XMIT non ha potuto impostare l'UART del PLC
L'utente ha lanciato un comando di interruzione non usato non usato
Stato interno non definito
Modalità di trasmissione non ammessa con questo codice funzione Modbus
Il DCE non ha attivato il CTS
Configurazione non valida (velocità dati, bit di dati, parità o bit di stop)
33003682.24
131
132
133
134
Codice di errore
128
129
130
Descrizione errore
Risposta inattesa ricevuta dallo slave Modbus
Impostazione parola di comando non valida
La parola di comando è cambiata mentre era attiva
Conteggio caratteri non valido
Blocco registro non valido
Errore di overflow del buffer FIFO dell'ingresso ASCII
Numero di caratteri iniziali o di terminazione non valido comunicazione
XMIT_CFG.UserAvail_1
Il blocco XMIT non usa questo registro. Tuttavia può essere utilizzato nella logica utente come puntatore.
XMIT_CFG.DataBits
XMIT supporta i seguenti valori di bit di dati: 7 e 8. Per configurare le dimensioni del bit di dati, immettere in questo elemento il relativo numero decimale. I messaggi Modbus possono essere inviati in modalità ASCII (7 o 8 bit di dati) o RTU (8 bit di dati). Quando si immette un bit di dati non valido, il blocco visualizza un errore di configurazione (codice di errore 127) nell'elemento XMIT_CFG.FaultStatus. Per ulteriori informazioni sui formati dei messaggi
Modbus vedere la Guida di riferimento del protocollo Modicon Modbus (PI MBUS 300).
XMIT_CFG.Parity
XMIT supporta le seguenti parità: nessuna, pari e dispari. Immettere un decimale: 0 = nessuna parità, 1 = parità dispari o 2 = parità pari. Quando si immette un valore non valido per la parità, il blocco visualizza un errore di configurazione (codice di errore 127) nell'elemento XMIT_CFG.FaultStatus.
33003682.24
421
comunicazione
XMIT_CFG.StopBits
XMIT supporta uno o due bit di stop. Immettere un decimale: 1 = un bit di stop o 2 = due bit di stop. Quando si immette un bit di stop non valido, il blocco visualizza un errore di configurazione (codice di errore 127) nell'elemento XMIT_CFG.FaultStatus.
XMIT_CFG.UserAvail_2
Il blocco XMIT non usa questo elemento. Tuttavia può essere utilizzato nella logica utente come puntatore.
XMIT_CFG.CommandWord
XMIT interpreta ogni bit della parola di comando come una funzione da eseguire. Se i bit 7 e
8 o se due o più dei bit 13, 14, 15 o 16 sono contemporaneamente attivi o se il bit 7 non è attivo quando sono attivi i bit 13, 14, 15, o 16, viene generato l'errore 129. Si applicano altre restrizioni. Per maggiori dettagli fare riferimento a
Funzioni di comunicazione XXMIT , pagina 449
. Nella tabella di seguito sono mostrate le singole definizioni dei bit.
Bit
Bit 1 (msb)
Definizione
Riservato
Bit 2 - Abilitazione controllo modem RTS/CTS Impostare a 1 quando un DCE connesso al PLC richiede un handshake hardware mediante il controllo RTS/CTS. Questo bit può essere usato in combinazione con altri valori contenuti in XMIT_CFG.XmStartDelay e XMIT_CFG.XmEndDelay.
L'inizio del ritardo di trasmissione mantiene attivo l'RTS per (X mS) prima che XMIT invii il messaggio dalla porta del PLC.
Analogamente, il ritardo di fine trasmissione mantiene attivo l'RTS per (X mS) dopo che XMIT ha terminato di inviare un messaggio dalla porta del PLC. Una volta terminato il ritardo di fine trasmissione, XMIT disattiva l'RTS.
Bit 3 Attiva modalità RS485 Imposta a 1 quando la porta selezionata deve funzionare in modalità RS485. In caso contrario si imposta a 0 in modo predefinito, che equivale alla modalità RS232.
Bit 4
Bit 5 - Ingresso ASCII con terminazione
Riservato
Impostare a 1 per rimuovere ed eliminare tutti i caratteri dal buffer FIFO fino a quando non si ottiene la stringa iniziale.
Successivamente, i caratteri iniziali e quelli che seguono vengono scritti nell'array MSG_IN fino a quando non si ottiene la sequenza di terminazione. La stringa di terminazione viene scritta anche nell'array MSG_IN. Per ulteriori informazioni, vedere
Funzione ingresso ASCII con terminazione, pagina
422 33003682.24
comunicazione
Bit
Bit 6 - Ingresso ASCII semplice
Bit 7 - Abilitazione messaggi con stringhe
ASCII
Definizione
Impostare a 1 per rimuovere i caratteri ASCII dal buffer FIFO per la scrittura nell'array MSG_IN. Il puntatore del messaggio
(XMIT_CFG.MessagePtr) viene impostato automaticamente all'indirizzo di registro specificato per l'array MSG_IN. Per ulteriori informazioni, vedere
Funzione ingresso ASCII semplice, pagina 454
.
Impostare a 1 quando si desidera inviare messaggi ASCII dal
PLC. XMIT invia stringhe ASCII lunghe fino a 1024 caratteri.
Programmare il messaggio ASCII nell'array MSG_OUT. Sono consentiti due caratteri per registro. Utilizzare solo il bit 7 oppure il bit 8, non utilizzarli entrambi. Per ulteriori informazioni vedere
Messaggi con stringhe ASCII, pagina 454 .
Bit 8 - Abilitazione messaggi Modbus
Bit 9 - Abilitazione buffer FIFO di ricezione
ASCII
Impostare a 1 quando si desidera inviare messaggi Modbus dal PLC. I messaggi Modbus possono essere in formato RTU o
ASCII. Quando i bit di dati =8, XMIT utilizza il formato Modbus
RTU. Quando i bit di dati =7, XMIT utilizza il formato Modbus
ASCII. Utilizzare solo il bit 7 oppure il bit 8, non utilizzarli entrambi.
Impostare a 1 per consentire al blocco XMIT di assumere il controllo sulla porta selezionata (1) dal PLC. Il blocco inizia a ricevere i caratteri ASCII in un buffer FIFO circolare vuoto da
512 byte. Per ulteriori informazioni vedere
Ricezione ASCII nel buffer FIFO, pagina 463 .
Bit 10 - Attivazione backspace
Bit 11 - Attivazione controllo di flusso RTS/
CTS
Impostare a 1 per consentire la gestione speciale del carattere
ASCII backspace (BS, 8Hex). Quando si utilizza un ingresso
ASCII semplice (bit 6) o un ingresso ASCII con terminazione
(bit 5), ogni carattere backspace viene rimosso da FIFO e può essere o NON essere salvato nell'array MSG_IN. Per ulteriori informazioni vedere
Attivazione backspace, pagina 464 .
Impostare a 1 per attivare il controllo di flusso hardware full duplex mediante i segnali di handshake RTS e CTS per i messaggi ASCII. RTS/CTS funziona in modalità sia di ingresso sia di uscita. Per ulteriori informazioni vedere
Attivazione del controllo di flusso RTS/CTS, pagina 464 .
Bit 12 - Attivazione controllo di flusso Xon/Xoff Impostare a 1 per attivare il controllo di flusso software full duplex mediante il carattere ASCII Xon (DC1, 11 Hex) e il carattere ASCII Xoff (DC3, 13 Hex). Xon/Xoff funziona in modalità sia di ingresso sia di uscita. Per ulteriori informazioni vedere
Attivazione del controllo di flusso Xon/Xoff, pagina 465 .
Bit 13 - Modem a impulsi Impostare a 1 quando si utilizza un modem remoto compatibile
Hayes, se si desidera comporre un numero di telefono in modalità a impulsi. Programmare il numero di telefono nell'array MSG_IN. La lunghezza del messaggio deve essere specificata in XMIT_SET.MessageLen. I numeri composti con modalità a impulsi sono inviati al modem preceduti automaticamente da ATDP e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione è una stringa ASCII, il bit 7 deve essere impostato su ON prima di inviare il numero da comporre.
33003682.24
423
comunicazione
Bit
Bit 14 - Disconnessione modem
Bit 15 - Modem a frequenza
Bit 16 - Inizializzazione modem
Definizione
Impostare a 1 quando si utilizza un modem remoto compatibile
Hayes, se si desidera disconnettere il modem. Per impostare il bit su ON, è necessario utilizzare la logica ladder. Poiché il messaggio di disconnessione è una stringa ASCII, il bit 7 deve essere impostato su ON prima di inviare il messaggio. I messaggi di disconnessione sono inviati al modem preceduti automaticamente da +++AT e seguiti da un ritorno a capo
<CR> e da un avanzamento riga <LF>. XMIT attende di ricevere la risposta corretta di disconnessione dal modem prima di impostare su ON il segnale di uscita OP-SUC, con cui registra il completamento corretto dell'operazione.
Impostare a 1 quando si utilizza un modem remoto compatibile
Hayes, se si desidera comporre un numero di telefono in modalità a frequenza. Il messaggio di composizione deve essere inserito in MSG_OUT e la lunghezza del messaggio in
XMIT_SET.MessageLen. I numeri composti in modalità a frequenza sono inviati al modem preceduti automaticamente da ATDT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione
è una stringa ASCII, il bit 7 deve essere impostato su ON prima di inviare il numero da comporre.
Impostare a 1 quando si utilizza un modem remoto compatibile
Hayes, se si desidera inizializzare il modem. Programmare il messaggio di inizializzazione nell'array MSG_OUT e la lunghezza del messaggio XMIT_SET.MessageLen. Tutti i messaggi sono inviati al modem preceduti automaticamente da
AT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di inizializzazione è una stringa
ASCII, il bit 7 deve essere impostato su ON prima di inviare il messaggio.
XMIT_CFG.MessagePtr
Questo puntatore viene gestito automaticamente dal blocco XMIT. Punta all'inizio della tabella dei messaggi che è l'array
o l'array
a seconda della funzione XMIT selezionata. Ogni elemento dell'array (registro 4x) può contenere fino a due caratteri ASCII. Ogni stringa ASCII può avere una lunghezza fino a
1024 caratteri. Ad esempio, per inviare 10 messaggi ASCII dal PLC, occorre trasferire le 10 stringhe di caratteri ASCII nell'array MSG_OUT in successione dopo ogni operazione corretta di XMIT.
XMIT_CFG.MessageLen
Immettere la lunghezza del messaggio corrente. Quando XMIT sta inviando messaggi
Modbus per i codici funzione 01, 02, 03, 04, 05, 06, 08, 15 e 16, la lunghezza del messaggio
424 33003682.24
comunicazione viene automaticamente impostata a cinque. Quando XMIT sta ricevendo l'ingresso ASCII con terminazione, la lunghezza del messaggio deve essere impostata a cinque oppure viene emesso un errore. Quando XMIT sta inviando messaggi Modbus per i codici funzione venti e ventuno, la lunghezza del messaggio viene automaticamente impostata a sei.
Quando XMIT sta inviando messaggi ASCII, la lunghezza può essere di 1 ... 1024 caratteri
ASCII per messaggio.
XMIT_CFG.RespTimeOut
Immettere il valore di tempo in millisecondi (mS) per determinare per quanto tempo XMIT deve attendere un messaggio di risposta valido da un dispositivo slave (PLC, modem e così via). Il tempo specificato, inoltre, si applica alle trasmissioni ASCII e alle operazioni di controllo del flusso. Quando il messaggio di risposta non è completamente formato entro il tempo specificato, XMIT genera un errore. L'intervallo valido è 0 ... 65535 mS. Il timeout viene iniziato dopo l'invio dell'ultimo carattere del messaggio.
XMIT_CFG.RetryLimit
Immettere il numero di tentativi per determinare quante volte XMIT invia un messaggio per ottenere una risposta valida da un dispositivo slave (PLC, modem e così via). Quando il messaggio di risposta non è completamente formato entro il tempo specificato, XMIT genera un errore e un codice di errore. L'intervallo valido è 0 ... 65535 nuovi tentativi.
Questo campo viene utilizzato in combinazione con il timeout risposta (4x + 11).
XMIT_CFG.StartDelay
Immettere il valore di tempo in millisecondi (mS) quando il controllo RTS/CTS è abilitato per determinare per quanto tempo XMIT attende la trasmissione di un messaggio dalla porta 1 del PLC dopo la ricezione di CTS. Inoltre è possibile utilizzare questo registro anche quando
RTS/CTS NON è controllato. In questa situazione il valore di tempo immesso determina la durata dell'attesa di XMIT prima dell'invio di un messaggio dalla porta 1 del PLC. È possibile utilizzarlo come timer di ritardo prima del messaggio. L'intervallo valido è 0 ... 65535 mS.
XMIT_CFG.XmEndDelay
Immettere il valore di tempo in millisecondi (mS) quando il controllo RTS/CTS è abilitato, per determinare per quanto tempo XMIT deve mantenere attivato l'RTS dopo aver inviato il messaggio dalla porta 1 del PLC. Una volta scaduto il tempo, XMIT disattiva l'RTS. È possibile utilizzare questo registro anche quando RTS/CTS NON ha il controllo. In questa
33003682.24
425
comunicazione
situazione il valore di tempo immesso determina la durata dell'attesa di XMIT dopo l'invio di un messaggio dalla porta 1 del PLC. È possibile utilizzarlo come timer di ritardo dopo il messaggio. L'intervallo valido è 0 ... 65535 mS.
XMIT_CFG.XmCurrentRetry
Il valore visualizzato indica il numero dei tentativi eseguiti dal blocco funzione XMIT. Questo registro è di sola lettura.
Esempio di applicazione
Descrizione
Il programma seguente è una breve applicazione dimostrativa che consente di commutare agevolmente tra le quattro funzioni principali del blocco XMIT:
• Messaggio ASCII in uscita (0)
• Ingresso ASCII semplice (1)
• Ingresso ASCII con terminazione (2)
• Master Modbus (3)
Per selezionare la funzione immettere il numero appropriato nella variabile ModeSelection.
Un segnale di salita su X_Trigger attiva il blocco XMIT impostando la variabile Start 1. Start resta impostata a 1 finché la funzione non è stata eseguita o interrotta con errore
426 33003682.24
Sezione IEC
Selezione di dati di configurazione comunicazione
Blocco funzione XMIT
33003682.24
427
comunicazione
Mantenere Start "on" finché il comando non è terminato non si è verificato un errore
Dichiarazioni di variabili
Le tabelle seguenti mostrano le variabili usate in questo esempio
Tabella delle variabili
Nome variabile
Start
Abort opActive opError opDone
Port
DirectMessageOut
DirectXmitSet
DirectMessageIn
DirectXmitConfig
X_Trigger
ModeSelection
Tipo di dati
BOOL
BOOL
BOOL
BOOL
BOOL
BYTE
WordArr256
XMIT_SET
WordArr256
XMIT_CFG
BOOL
UINT
Indirizzo
400257
400513
400001
400523
Descrizione
Deve rimanere ON finché XMIT non è terminato
Interrompe l'operazione XMIT
Indica lo stato di XMIT
Indica lo stato di XMIT
Indica lo stato di XMIT
Seleziona la porta 1 o 2
Dati di configurazione attuali o dati da trasmettere
Dati di configurazione attuali
Dati ricevuti da funzioni ASCII In
Dati di configurazione attuali
Avvia la funzione XMIT
Seleziona la funzione richiesta 0..3
428 33003682.24
Nome variabile
Message AsciiOut
MessageSimpleAsciiIn
MessageTermAsciiIn
MessageModbus
XmitSetForAsciiOut
XmitSetForSimpleAsciiIn
XmitSetForTermAsciiIn
XmitSetForModbus comunicazione
Tipo di dati
WordArr256
WordArr256
WordArr256
WordArr256
XMIT_SET
XMIT_SET
XMIT_SET
XMIT_SET
Indirizzo Descrizione
Messaggio che deve essere trasmesso da
ASCII Out
(nessun contenuto necessario)
Dati di configurazione per Ingresso ASCII con terminazione
Dati di configurazione per Modbus
Dati di configurazione per ASCII Out
Dati di configurazione per Ingresso ASCII semplice
Dati di configurazione per Ingresso ASCII con terminazione
Dati di configurazione per Modbus
Valori iniziali
Le tabelle seguenti mostrano i valori iniziali per i diversi array utilizzati:
Contenuto della struttura dati XmitSetForAaciiOut
Nome elemento
BaudRate
DataBits
Parity
StopBits
CommandWord
MessageLen
Tipo di dati
WORD
BYTE
BYTE
BYTE
WORD
WORD
Indirizzo
9600
8
2
1
512
16
Commento
Bit 7 impostato
Trasmette i primi 16 caratteri dall'array
MessageAsciiOut
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
WORD
WORD
WORD
WORD
100
100
100
100
Contenuto della struttura dati XmitSetForSimpleAsciiIn
33003682.24
429
comunicazione
430
Nome elemento
BaudRate
DataBits
Parity
StopBits
CommandWord
MessageLen
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
Tipo di dati
WORD
BYTE
BYTE
BYTE
WORD
WORD
WORD
WORD
WORD
WORD
100
100
100
100
Indirizzo
9600
8
2
1
1152
16
Commento
Bit 6 e 9 impostati opDone viene impostato a 1 dopo la ricezione di 16 caratteri
Contenuto della struttura dati XmitSetForTermAsciiIn
Commento Nome elemento
BaudRate
DataBits
Parity
StopBits
CommandWord
MessageLen
Tipo di dati
WORD
BYTE
BYTE
BYTE
WORD
WORD
Indirizzo
9600
8
2
1
2176
5
Bit 5 e 9 impostati
L'elemento DirectXmitSet.MessageLen viene impostato automaticamente a 5 a prescindere da questo dato
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
WORD
WORD
WORD
WORD
100
100
100
100
Contenuto della struttura dati XmitSetForModbus
Nome elemento
BaudRate
DataBits
Parity
Tipo di dati
WORD
BYTE
BYTE
Indirizzo
9600
8
2
Commento
Modalità RTU
33003682.24
comunicazione
Nome elemento
StopBits
CommandWord
MessageLen
RespTimeOut
RetryLimit
XmStartDelay
XmEndDelay
Tipo di dati
BYTE
WORD
WORD
WORD
WORD
WORD
WORD
Contenuto della struttura dati MessageAsciiOut
Nome elemento
MessageAsciiOut[2]
MessageAsciiOut[3]
MessageAsciiOut[4]
MessageAsciiOut[5]
MessageAsciiOut[6]
MessageAsciiOut[7]
MessageAsciiOut[8]
MessageAsciiOut[...]
Tipo di dati
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
Indirizzo
17220
17734
18248
18762
19276
19790
20304
...
Indirizzo
1
256
5
1000
10
100
100
Commento
Bit 8 impostato
Per i codici funzione 01...06, 15 e 16
Commento
'CD' da trasmettere
'EF'
'GH'
'IJ'
'KL'
'MN'
'OP'
Contenuto della struttura dati MessageTermAsciiIn
Nome elemento
MessageAsciiOut[1]
Tipo di dati
WORD
Indirizzo
258
MessageAsciiOut[2]
MessageAsciiOut[3]
WORD
WORD
9216
3338
Contenuto della struttura dati MessageModbus
Nome elemento
MessageAsciiOut[1]
MessageAsciiOut[2]
Tipo di dati
WORD
WORD
Indirizzo
3
32
Commento
0x0102 1 carattere iniziale e 2 di terminazione
0x2400 Primo carattere iniziale '$'
0x0D0A Caratteri di terminazione [CR][LF]
Commento
Lettura di più registri di mantenimento (4x)
Lettura di 32 registri
33003682.24
431
comunicazione
Nome elemento
MessageAsciiOut[3]
MessageAsciiOut[4]
MessageAsciiOut[5]
Tipo di dati
WORD
WORD
WORD
Indirizzo
10
101
701
Commento
Indirizzo Modbus PLC slave
Inizio con registro 40101
La destinazione dati è il registro 40701
432 33003682.24
XXMIT: Trasmissione
comunicazione
Contenuto del capitolo
Introduzione a XXMIT............................................................. 433
Funzioni XXMIT ..................................................................... 434
XXMIT: regole di programmazione .......................................... 478
Riferimenti tecnici di XXMIT .................................................... 480
Informazioni sul cablaggio ...................................................... 489
Introduzione
Questo capitolo descrive il blocco XXMIT .
Introduzione a XXMIT
Panoramica
Questa sezione fornisce una panoramica generale del blocco funzione XXMIT .
Funzionalità XXMIT
Panoramica delle funzioni
Il blocco funzione XXMIT consente l'uso della porta seriale dei PLC per la comunicazione sotto il controllo del programma applicativo.
Sono supportati i seguenti tipi di comunicazione:
• Modbus come master
• Ingresso/uscita ASCII semplice
• Ingresso ASCII con uno o due caratteri di terminazione
• Comunicazione modem
33003682.24
433
comunicazione
Descrizione della funzione
Il blocco funzione XXMIT invia messaggi Modbus da un PLC master a più PLC slave oppure invia stringhe di caratteri ASCII dalla porta numero 1 dei PLC Modbus slave a stampanti e terminali ASCII.
XXMIT invia questi messaggi mediante modem remoti telefonici, modem radio.
Nel caso di messaggi ASCII, non esiste alcun controllo simile a un segnale CRC o checksum che garantisca la validità dei dati ricevuti.
ATTENZIONE
DATI NON VALIDI
Verificare la validità dei dati ricevuti in caso di messaggi ASCII.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
NOTA: Per evitare la ricezione di dati non validi a causa di perturbazioni elettriche, si consiglia di utilizzare i messaggi Modbus che includono un controllo ciclico ridondante
(CRC- Cyclical Redundancy Checking).
Funzioni XXMIT
Panoramica
Questa sezione descrive XXMIT.
Breve descrizione
Descrizione della funzione
Il blocco funzione XXMIT invia messaggi Modbus da un PLC master a più PLC slave oppure invia stringhe di caratteri ASCII dalla porta numero 1 dei PLC Modbus slave a stampanti e terminali ASCII.
XXMIT invia questi messaggi mediante modem remoti telefonici, modem radio o connessioni dirette.
NOTA: Il blocco funzione XXMIT può solo essere usato con il task MAST. Se viene avviato con i task FAST / AUX o EVENT viene visualizzato un codice d'errore immediato
(127), (non esiste controllo eseguito da Control Expert durante la creazione).
434 33003682.24
comunicazione
NOTA: EN ed ENO NON devono essere utilizzati con XXMIT , in caso contrario, i parametri di uscita potrebbero bloccarsi.
NOTA: La comunicazione Modbus mediante modem radio con PLC Quantum è possibile soltanto con il blocco funzione XXMIT configurato come Modbus Master.
NOTA: Fare attenzione che i due master (sullo stesso bus) non inviino richieste simultaneamente, altrimenti le richieste vanno perdute e ogni report avrà un risultato errato che potrebbe essere 16#0100 (impossibile elaborare la richiesta) o 16#ODFF
(slave non presente).
Requisiti software e hardware
Software
XXMIT richiede il seguente software:
PLC Sistema operativo Unity Pro 1 /Control Expert
Quantum 2.3 o successiva 2.3 o successiva
Momentum 1.0 o successiva 8.0 o successiva
1 Unity Pro è il nome precedente di Control Expert per la versione 13.1 o precedente.
Vedere
Disponibilità dei blocchi sulle varie piattaforme hardware, pagina 30
per un elenco dell'hardware supportato sul blocco funzione XXMIT .
33003682.24
435
comunicazione
Rappresentazione
Rappresentazione FBD
Rappresentazione:
436 33003682.24
Rappresentazione LD
Rappresentazione: comunicazione
Rappresentazione IL
Rappresentazione:
CAL XXMIT_instance(Start:=Start_param, Command:=Command_param,
MsgOut:=MsgOut_param, MsgLen:=Msglen_param, Port:=Port_param,
Baudrate:=Baudrate_param, Databits:=Databits_param, Stopbits:
=Stopbits_param, Parity:=Parity_param, RespTout:=RespTout_param,
RetryLmt:=RetryLmt_param, StartDly:=StartDly_param, EndDly:=EndDly_ param, Error=>Error_param, MsgIn=>MsgIn_param, RecCount=>RecCount_ param, Status=>Status_param, Retry=>Retry_param)
Rappresentazione ST
Rappresentazione:
XXMIT_instance (Start:=Start_param, Command:=Command_param, MsgOut:
=MsgOut_param, MsgLen:=Msglen_param, Port:=Port_param, Baudrate:
33003682.24
437
comunicazione
=Baudrate_param, Databits:=Databits_param, Stopbits:=Stopbits_ param, Parity:=Parity_param, RespTout:=RespTout_param, RetryLmt:
=RetryLmt_param, StartDly:=StartDly_param, EndDly:=EndDly_param,
Error=>Error_param, MsgIn=>MsgIn_param, RecCount=>RecCount_param,
Status=>Status_param, Retry=>Retry_param);
Descrizione dei parametri
Descrizione dei parametri del blocco
Parametri
Start
Command
MsgOut
MsgLen
Port
Baudrate
Databits
Stopbits
Parity
RespTout
RetryLmt
Tipo di dati
BOOL
WORD
ANY
INT
BYTE
INT
BYTE
BYTE
BYTE
INT
INT
StartDly
EndDly
Active
Done
Error
Msgln
RecCount
INT
INT
BOOL
BOOL
BOOL
ANY
INT
Significato
Con valore 1 avvia il funzionamento di XXMIT, pagina 439
Specifica il comando da eseguire, pagina 439
Messaggio da inviare, pagina 442
Lunghezza del messaggio di uscita, pagina 442
Selezione dell'interfaccia di comunicazione, pagina 443
Tempo di attesa di una risposta valida, pagina 443
Numero di tentativi fino alla ricezione di una risposta valida, pagina 444
Tempo di attesa prima della trasmissione di un messaggio, pagina 444
Tempo di attesa dopo la trasmissione di un messaggio, pagina
Un valore di 1 indica che è in corso un'operazione XXMIT, pagina 445
Un valore di 1 indica che l'operazione XXMIT è stata completata correttamente, pagina 445
Il valore 1 indica che si è verificato un errore o che l'operazione
XXMIT corrente è terminata, pagina 445
Messaggio in ingresso, pagina 445
Visualizzazione del numero di caratteri ricevuti, pagina 446
438 33003682.24
Parametri
Status
Retry
Tipo di dati
INT
INT comunicazione
Significato
Visualizza un codice di errore generato da XXMIT, pagina 446
Indica il numero corrente di tentativi eseguiti da XXMIT, pagina
Descrizione dettagliata dei parametri
Start
Un valore 1 al segnale di Avvio innesca l'operazione XXMIT . Il valore 1 deve essere applicato fino al termine dell'operazione o fino a quando non si verifica un errore.
NOTA: I parametri di ingresso XXMIT devono essere inizializzati prima di impostare l'ingresso START Tali parametri non devono essere modificati durante l'attività del blocco funzione.
Command
Il parametro XXMIT interpreta ogni bit della parola di comando come una funzione da eseguire. Se i bit 9 e 8 o se due o più dei bit 3, 2, 1 o 0 sono contemporaneamente attivi o se il bit 9 non è attivo quando sono attivi i bit 3, 2, 1, o 0, viene generato l'errore 129. Per ulteriori informazioni, fare riferimento alla sezione
Funzioni di comunicazione XXMIT, pagina
. Nella tabella di seguito sono mostrate le singole definizioni dei bit.
Struttura della parola di comando
Definizioni bit parola XXMIT Command
33003682.24
439
comunicazione
Bit
Bit 15 (msb)
Bit 14 -
Abilitazione controllo modem
RTS/CTS
Bit 13 - Attiva modalità RS485
Bit 12 -
Inversione parola
ASCII
Bit 11 - Ingresso
ASCII con terminazione
Bit 10 - Ingresso
ASCII semplice
Bit 9 -
Abilitazione messaggi con stringhe ASCII
Bit 8 -
Abilitazione messaggi
Modbus
Bit 7 -
Abilitazione buffer FIFO di ricezione ASCII
Bit 6 - Attivazione backspace
Definizione
Con i processori Momentum, dopo l'attivazione del blocco
,
o L9_XMIT (vedi EcoStruxure ™ Control Expert, UnityLL984, Libreria dei blocchi), la porta seriale non torna in modalità Slave. Questo bit di comando è stato creato per impostare la porta seriale Momentum alla propria configurazione iniziale.
Impostando a 1 la configurazione della porta viene impostata al valore che aveva nella configurazione dell'applicazione. Il bit DONE viene impostato a 1 quando viene eseguita l'azione.
Impostare a 1 quando un DCE connesso al PLC richiede un handshake hardware mediante il controllo RTS/CTS. Questo bit è utilizzabile con i valori contenuti in StartDly e EndDly.
L'avvio del ritardo di trasmissione mantiene l'RTS confermato per il tempo in StartDly (ms) prima che XXMIT invii un messaggio alla porta del PLC. Allo stesso modo, il ritardo di fine trasmissione mantiene l'RTS confermato per EndDly (ms) dopo che l' XXMIT ha terminato l'invio di un messaggio alla porta del PLC. Una volta scaduto il ritardo di trasmissione l' XXMIT annulla la conferma all'RTS.
Imposta a 1 quando la porta selezionata deve funzionare in modalità RS485. In caso contrario si imposta a 0 in modo predefinito, che equivale alla modalità RS232.
Quando si utilizza la porta Modbus in modalità RS485 con la messaggistica Modbus, accertarsi di utilizzare esattamente gli stessi parametri (velocità in baud, bit di dati, bit di stop, parità) per il blocco funzione XXMIT come configurato per quella porta.
Impostare su 1 per l'utilizzo con i comandi di comunicazione ASCII_IN, ASCII_OUT e
TERM_ASCII_IN per modificare l'ordine dei byte nell'array MSGIN nel formato Concept.
Quando non impostati (0), questi comandi mantengono il formato di byte MSGIN corrente.
Impostare a 1 per rimuovere ed eliminare tutti i caratteri dal buffer FIFO fino a quando non si ottiene la stringa iniziale. Successivamente, i caratteri iniziali e quelli che seguono vengono scritti in MsgIn fino a quando non si ottiene la sequenza di terminazione. La stringa di terminazione viene scritta anche in MsgIn. Per maggiori informazioni vedere
Funzione ingresso ASCII con terminazione, pagina 452
.
Impostare a 1 per rimuovere i caratteri ASCII dal buffer FIFO per la scrittura nell'array
MsgIn. Per maggiori informazioni vedere
Funzione Ingresso ASCII semplice, pagina 454 .
Impostare a 1 quando si desidera inviare messaggi ASCII dal PLC.
XXMIT invia stringhe
ASCII lunghe fino a 1024 caratteri. Programmare il messaggio ASCII in MsgOut. Utilizzare solo il bit 9 oppure il bit 8, non utilizzarli entrambi.
Impostare a 1 quando si desidera inviare messaggi Modbus dal PLC. I messaggi Modbus possono essere in formato RTU o ASCII. Quando i bit di dati =8, XXMIT usa il formato RTU
Modbus. Quando il bit di dati =7, XXMIT usa il formato Modbus ASCII. Utilizzare solo il bit 9 oppure il bit 8, non utilizzarli entrambi.
Impostare a 1 per consentire il blocco funzione XXMIT di prendere controllo sulla porta selezionata (1) dal PLC. Il blocco inizia a ricevere i caratteri ASCII in un buffer FIFO circolare vuoto da 512 byte. Fare riferimento a
Buffer FIFO di ricezione ASCII, pagina 463
per maggiori dettagli.
Impostare a 1 per consentire la gestione speciale del carattere ASCII backspace (BS,
8Hex) quando si utilizza un ingresso ASCII semplice (Bit 10) o un ingresso ASCII con terminazione (Bit 11). Se si imposta il bit 6, i caratteri di backspace NON vengono memorizzati in MsgIn. Per maggiori informazioni vedere
440 33003682.24
comunicazione
Bit
Bit 5 - Attivazione controllo di flusso
RTS/CTS
Bit 4 - Attivazione controllo di flusso
Xon/Xoff
Bit 3 - Modem a impulsi
Bit 2 -
Scollegamento del modem
Bit 1 - Modem a frequenza
Bit 0 -
Inizializzazione modem
Definizione
Impostare a 1 per attivare il controllo di flusso hardware full duplex mediante i segnali di handshake RTS e CTS per i messaggi ASCII. RTS/CTS funziona in modalità sia di ingresso sia di uscita. Fare riferimento a
Attivazione controllo di flusso RTS/CTS, pagina 464
per maggiori dettagli.
Impostare a 1 per attivare il controllo di flusso software full duplex mediante il carattere
ASCII Xon (DC1, 11 Hex) e il carattere ASCII Xoff (DC3, 13 Hex). Xon/Xoff funziona in modalità sia di ingresso sia di uscita. Fare riferimento a
Attivazione del controllo di flusso
per maggiori dettagli.
Impostare a 1 quando si utilizza un modem remoto compatibile Hayes, se si desidera comporre un numero di telefono in modalità a impulsi. Programmare il numero di telefono in
MsgOut. La lunghezza del messaggio deve essere specificata in MsgLen. I numeri composti con modalità a impulsi sono inviati al modem preceduti automaticamente da
ATDT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione è una stringa ASCII, il bit 9 deve essere impostato a ON prima di inviare il numero da comporre.
Impostare a 1 quando si utilizza un modem remoto compatibile Hayes, se si desidera disconnettere il modem. Per impostare il bit a ON, è necessario utilizzare la logica utente.
Poiché il messaggio di disconnessione è una stringa ASCII, il bit 9 deve essere impostato a
ON prima di inviare il messaggio. I messaggi di disconnessione sono inviati al modem preceduti automaticamente da +++AT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>.
XXMIT attende di ricevere la risposta corretta di disconnessione dal modem prima di impostare a ON il segnale di uscita Chiudi, con cui registra il completamento corretto dell'operazione.
Impostare a 1 quando si utilizza un modem remoto compatibile Hayes, se si desidera comporre un numero di telefono in modalità a frequenza. Programmare il numero di telefono in MsgOut. La lunghezza del messaggio deve essere specificata in MsgLen. I numeri composti in modalità a frequenza sono inviati al modem preceduti automaticamente da ATDT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione è una stringa ASCII, il bit 9 deve essere impostato a ON prima di inviare il numero da comporre.
Impostare a 1 quando si utilizza un modem remoto compatibile Hayes, se si desidera inizializzare il modem. Programmare il messaggio di inizializzazione in MsgOut e la lunghezza del messaggio in MsgLen. Tutti i messaggi sono inviati al modem preceduti automaticamente da AT e seguiti da un ritorno a capo <CR> e da un avanzamento riga
<LF>. Poiché il messaggio di inizializzazione è una stringa ASCII, il bit 9 deve essere impostato a ON prima di inviare il messaggio.
NOTA: In confronto alla parola XXMIT Command Concept, la numerazione dei bit della parola di comando Control Expert è cambiata:Command conversione parola Command
33003682.24
441
comunicazione
Nel caso di un trasferimento di applicazione da Concept a Control Expert, quando si accede alla parola Command mediante bit è necessario tenere presente la nuova numerazione dei bit. Ciò NON è necessario quando si accede alla parola di comunicazione mediante parola.
MsgOut
MsgOut contiene i dati dei messaggi da trasferire, ad esempio, i caratteri ASCII per un trasferimento ASCII, la definizione dei caratteri di terminazione per gli ingressi ASCII con terminazione o i modelli Modbus per i messaggi master Modbus.
Il tipo di dati da assegnare al parametro deve corrispondere ai requisiti della funzione da svolgere. Nel caso di funzionamento con il Modbus, il tipo di dati di MsgOut e MsgIn deve essere uguale.
NOTA: Per tutti i tipi di comunicazione (Modbus Master, ASCII Input / Output), i parametri MsgOut e MsgIn devono essere assegnati alla variabile. Le due variabili devono essere di tipo Data Type Byte Array o Word Array. Altri tipi potrebbero produrre risultati non prevedibili.
NOTA: Per i messaggi Modbus, MsgOut deve essere un campo di parole. Le dimensioni minime dell'array sono WordArr9
MsgLen
È necessario immettere la lunghezza del messaggio corrente a seconda della funzione
XXMIT selezionata.
La tabella seguente presenta una panoramica delle funzioni Modbus e ASCII:
Funzione XXMIT
Messaggeria Modbus
Ingresso ASCII con terminazione
Ingresso ASCII semplice
Messaggi con stringhe ASCII
Sottofunzione
01, 02, 03, 04, 05, 06, 08, 15, 16
Lunghezza del messaggio
5
5
1...1024.
1 - 1024. La lunghezza selezionata deve corrispondere alle dimensioni dell'array assegnato a MsgOut. In caso contrario, verrà generato l'errore 129.
NOTA: Per i codici delle funzioni Modbus, il valore di MsgLen può essere più alto di cinque parole, ma solo le prime cinque parole della tabella di definizione Modbus vengono prese in considerazione durante il runtime.
442 33003682.24
Port
Port specifica l'interfaccia di comunicazione. I valori autorizzati sono da 0 a 1.
comunicazione
Baudrate
XXMIT supporta le seguenti velocità dati: 50, 75, 110, 134, 150, 300, 600, 1200, 1800, 2000,
2400, 3600, 4800, 7200, 9600, 19200. Per configurare una velocità dati, immettere il relativo numero decimale. Quando si immette una velocità dati non valida, il blocco visualizza un errore di configurazione (codice di errore 127) nell'elemento di stato XXMIT .
Databits
XXMIT supporta i seguenti bit di dati: 7 e 8. Per configurare la dimensione del bit di dati, immettere il numero decimale in questo elemento. È possibile inviare i messaggi Modbus in modalità ASCII o RTU. La modalità ASCII richiede 7 bit di dati, mentre la modalità RTU richiede 8 bit di dati. Quando si invia un messaggio in caratteri ASCII è possibile utilizzare 7 o 8 bit di dati. Quando viene immesso un bit di dati non valido, il blocco visualizza un errore di configurazione non valida (codice di errore 127) nell'elemento di stato XXMIT . Per ulteriori informazioni sui formati dei messaggi Modbus vedere la guida di riferimento del protocollo
Modicon Modbus (www.modbus.org).
Stopbits
XXMIT supporta uno o due bit di stop. Immettere un decimale di: 1 = un bit di stop, o 2 = due bit di stop. Quando si immette un bit di stop, il blocco visualizza un errore di configurazione non valida (codice di errore 127) nell'elemento di stato XXMIT .
Parity
XXMIT supporta la parità seguente: nessuna, dispari e pari. Immettere un decimale di: 0 = nessuna parità, 1 = parità dispari, o 2 = parità pari. Quando si immette un parità non valida, il blocco visualizza un errore di configurazione non valida (codice di errore 127) nell'elemento di stato XXMIT .
RespTout
Si imposta il valore tempo in millisecondi (ms) per determinare l'attesa XXMIT per un messaggio di risposta valida da un dispositivo slave (PLC, modem, ecc.). Il tempo
33003682.24
443
comunicazione
specificato, inoltre, si applica alle trasmissioni ASCII e alle operazioni di controllo del flusso.
Quando il messaggio di risposta non è completamento formato entro questo tempo specificato, XXMIT emette un codice d'errore. L'intervallo valido è da 0 a 32767 ms. Il timeout viene iniziato dopo l'invio dell'ultimo carattere del messaggio.
RetryLmt
Si specifica il numero di tentativi per determinare quante volte XXMIT invia un messaggio per ottenere una risposta valida dal dispositivo slave (PLC, modem, etc.). Quando il messaggio di risposta non è completamento formato entro questo tempo specificato, XXMIT emette un errore e un codice d'errore. L'intervallo valido è da 0 a 32767 numero di tentativi.
Questo campo è utilizzato insieme a RespTout.
StartDly
Si immette il valore tempo in millisecondi (ms) quando il controllo RTS/CTS è attivato, per determinare il tempo di attesa XXMIT dopo la ricezione del CTS e prima che trasmetta un messaggio proveniente dalla porta PLC. È possibile utilizzare questo registro anche quando
RTS/CTS NON ha il controllo. In questa situazione, il valore di tempo immesso determina il tempo di attesa di XXMIT prima che invii un messaggio proveniente dalla porta del PLC.
Questo campo può essere utilizzato come un timer di ritardo prima del messaggio.
L'intervallo valido è da 0 a 32767 ms.
EndDly
Si immette un valore tempo in millisecondi (ms) quando il controllo RTS/CTS è attivato, per determinare per quanto tempo XXMIT mantiene l'RTS attivato una volta che il messaggio è inviato alla porta del PLC. Alla scadenza del tempo, l' XXMIT disattiva l'RTS. È possibile utilizzare questo registro anche quando RTS/CTS NON ha il controllo. In questa situazione, il valore di tempo immesso determina il tempo di attesa dell' XXMIT prima che invii un messaggio alla porta del PLC. Questo campo può essere utilizzato come un timer di ritardo dopo il messaggio. L'intervallo valido è da 0 a 32767 ms.
444 33003682.24
comunicazione
NOTA: Con una comunicazione RS 485 il segnale di trasmissione è mantenuto a '1' durante il periodo di tempo EndDly. Per le connessioni a 2 fili qualunque carattere proveniente dal partner di comunicazione verrà perso. Perciò impostare EndDly a 0 ms se la funzione non è utilizzata.
Active
Un valore 1 indica che un'operazione XXMIT è in corso.
Done
Un valore 1 indica che un'operazione XXMIT è stata completata correttamente.
Error
Un valore 1 indica che si è verificato un errore, oppure che l'operazione corrente XXMIT è completata.
MsgIn
MsgIn contiene i dati del messaggio in ingresso per l'ingresso ASCII con terminazione o per l'ingresso ASCII semplice.
Nel caso di funzionamento con il Modbus, il tipo di dati deve essere uguale a quello del campo MsgOut.
33003682.24
445
comunicazione
RecCount
Questo elemento visualizza il numero di caratteri ricevuti.
NOTA: Quando vengono ricevuti troppi caratteri senza che sia rilevato un carattere di terminazione, viene segnalato un errore nel parametro di stato (131) e il parametro
RecCount viene impostato a MsgLen-1.
Status
Questo elemento visualizza un codice di errore generato da XXMIT .
La tabella seguente riporta un elenco completo.
Stato errore
Descrizione errore
5
6
2
3
4
Codice di errore
1
7
8
9... 99
100
101
102
103
104
105, 106
107
108
109
Eccezione Modbus - Funzione non valida
Eccezione Modbus - Indirizzo dati non valido
Eccezione Modbus - Valore dati non valido
Eccezione Modbus - Errore dispositivo slave
Eccezione Modbus - Riconoscimento
Eccezione Modbus - Dispositivo slave occupato
Eccezione Modbus - Riconoscimento negativo
Eccezione Modbus - Errore parità di memoria
Riservato
L'area dati PLC slave non può essere uguale a zero
L'area dati PLC master non può essere uguale a zero bit (%M) non configurato
Parola di memoria PLC master (%MW) non configurata
La lunghezza dei dati non può essere uguale a zero
Riservato
Timeout messaggio in trasmissione. Questo errore viene generato quanto l'UART non riesce a completare una trasmissione entro 10 secondi. Questo errore supera il conteggio dei tentativi e attiva l'uscita di errore sul primo errore, vedere oltre Informazioni aggiuntive per l'errore 107.
Errore non definito
Il modem ha restituito un ERRORE
446 33003682.24
comunicazione
128
129
130
131
132
133
134
135...149
33003682.24
117
118
119
120
121
122
123
124
125
126
127
Codice di errore
110
111
112
113
114
115
116
Descrizione errore
Il modem ha restituito NESSUNA PORTANTE
Il modem ha restituito NESSUN SEGNALE
Il modem ha restituito OCCUPATO
Checksum LRC non valida dal PLC slave, vedere la nota 1) sotto
Checksum CRC non valida dal PLC slave, vedere la nota 1) sotto
Codice funzione Modbus non valido
Timeout messaggio di risposta Modbus, vedere la nota 2) sotto
Timeout risposta modem
XXMIT non ha potuto accedere alla porta di comunicazione numero 1 del PLC
XXMIT non ha potuto attivare il ricevitore della porta del PLC
XXMIT non ha potuto impostare l'UART del PLC
Riservato
Porta non valida
Riservato
Stato interno non definito
Modalità di trasmissione non ammessa con questo codice funzione Modbus
Il DCE non ha attivato il CTS
• Configurazione non valida (velocità dati, bit di dati, parità o bit di stop).
• Esecuzione in un qualunque altro task che non sia MAST.
• Codice funzione non valido Modbus.
• Indirizzo slave maggiore di 247.
• Il parametro della lunghezza dati è maggiore dei limiti descritti in questo documento.
• Il numero di porta non è 1.
• I valori RespTout, StartDly, EndDly, RecCount, MsgLen, RetryLmt sono inferiori a 0.
Risposta inattesa ricevuta dallo slave Modbus, vedere la nota 1) sotto
Impostazione parola di comando non valida
La parola di comando è cambiata mentre era attiva
Conteggio caratteri non valido
Riservato
Errore di overflow del buffer FIFO dell'ingresso ASCII
Numero di caratteri iniziali o di terminazione non valido
Riservato
447
comunicazione
Codice di errore
150
151
152
153
154
Descrizione errore
La porta configurata è già stata presa da un'altra istanza dell' XXMIT oppure la porta configurata non è supportata su quel PLC
MsgOut è minore di 12 byte mentre la funzione 'Messaggi master Modbus' è selezionata.
Include anche il valore del parametro MsgLen inferiore a 5
La variabile connessa a MsgOut è minore del valore del parametro MsgLen mentre 'Messaggi con stringhe ASCII' è selezionato
La variabile connessa a MsgIn è minore del valore del parametro MsgLen mentre è selezionato
'Ingresso ASCII con terminazione' o 'Ingresso ASCII semplice'
Il bit di avvio XXMIT impostato a 1 in un controller Quantum Hot Standby che non è in modalità
Primaria.
NOTA: 1) Questo codice di errore si verifica se lo slave Modbus risponde troppo rapidamente.
Nel caso in cui come slave Modbus si utilizzi un PLC Modicon, verificare l' Impostazione della porta Modbus della relativa configurazione.
2) Per il blocco funzione XXMIT in modalità master Modbus, se l'errore 116 persiste dopo aver eseguito la configurazione corretta tramite modifiche da tastierina o online, ricompilare e trasferire l'applicazione al PLC.
Informazioni aggiuntive per l'errore 107
L'errore 107 appare quando viene rilevata una discrepanza nella configurazione XXMIT . Se l'impostazione della porta interna dell' XXMIT è in modalità RS232 e la parola di comando è in modalità RS485 (#2100). La modalità di comunicazione deve essere modificata.
La tabella seguente mostra come modificare la modalità di comunicazione se si verifica l'errore 107:
6
7
4
5
2
3
Passo
1
Azione
Collegare il PC a Control Expert
Commutare il PLC in STOP
Modificare le impostazioni della porta Modbus (RS232 o RS 485)
Modificare la parola di comando in base alla modalità desiderata
Ricompilare l'applicazione
Scaricare l'applicazione
Commutare il PLC in RUN
448 33003682.24
comunicazione
NOTA: Si osservi quanto segue:
• La commutazione dalla modalità RS232 a RS485 dura 3 secondi quando sia le impostazioni della porta interna che le parole di comando corrispondono. In questi 3 secondi viene emesso il codice di errore 126 (DCE non attivo, solo per la modalità
RS232).
• La commutazione dalla modalità RS232 a RS485 è immediata dato che corrisponde alla configurazione predefinita.
Retry
Il valore visualizzato indica il numero dei tentativi eseguiti da XXMIT . Questo elemento è di sola lettura
Questa uscita viene aggiornata solo una volta al termine dell'operazione.
Per Modicon Quantum l'uscita Retry viene aggiornata a ogni nuovo tentativo.
Per Modicon Momentum l'uscita Retry viene aggiornata al termine dell'operazione, con o senza esito positivo.
Funzioni di comunicazione XXMIT
Parola di comando XXMIT
XXMIT esegue le seguenti sei funzioni. Per ogni funzione è necessario impostare alcuni bit della parola di comando.
Bit della parola di comando
Funzioni della parola di comando in relazione ai bit
Funzione Bit della parola di comando impostabili a 1
14,7,6,5,4
Bit che È NECESSARIO impostare a = 0
10,9,8,3,2,1,0 Ingresso ASCII con terminazione
(Bit 11=1) (vedere la nota seguente)
Ingresso ASCII semplice (Bit 10=
1) (vedere la nota seguente)
Uscita ASCII semplice (Bit 9=1)
14,7,6,5,4
14,7,6,5,4
11,9,8,3,2,1,0
11,10,8,3,2,1,0
33003682.24
449
comunicazione
Funzione
Uscita modem (Bit 9=1)
Uscita messaggi master Modbus
(Bit 8=1)
Bit della parola di comando impostabili a 1
14,3,2,1,0
14,
Bit che È NECESSARIO impostare a = 0
11,10,8,7,6,5,4 (più uno, ma SOLO uno, dei seguenti bit impostato a 1: 3,2,1 o 0, mentre gli altri tre bit devono essere impostati a 0)
11,10,9,7,6,5,4,3,2,1,0
NOTA: Quando si utilizzano queste funzioni, È NECESSARIO impostare il buffer FIFO di ricezione ASCII ( Bit 7) a 1. Il 15 (MSB) e i bit 13 e 12 sono riservati. Vedere la tabella
)
Funzioni ASCII XXMIT
In breve
XXMIT supporta le seguenti funzioni di comunicazione ASCII.
• Ingresso ASCII con terminazione
• Ingresso ASCII semplice
• Messaggi con stringhe ASCII
Configurazione della porta Modbus
La funzione XXMIT è configurata mediante il relativo blocco funzionale. Il blocco funzionale inizializza la porta Modbus 1 ogni volta che è attivo, con i parametri definiti. I parametri
XXMIT possono essere visualizzati nel display LCD del controller.
NOTA: Le impostazioni selezionate nella schermata di configurazione della CPU oppure tramite il display LCD del controller non hanno alcun effetto sui valori di trasmissione nella modalità master.
450 33003682.24
Esempio di configurazione del blocco funzionale XXMIT: comunicazione
Esempio di schermata di configurazione della CPU con valori diversi impostati:
Esempio di impostazioni sul display LCD del controller:
I 3 grafici precedenti mostrano valori diversi per la funzione XXMIT. Indipendentemente dalle impostazioni nella schermata di configurazione della CPU o sul display LCD del controller, i valori attuali usati per la trasmissione sono quelli del blocco funzione XXMIT:
• Velocità di trasmissione: 2400
• Parità: Pari
33003682.24
451
comunicazione
• Bit di dati: 7
• Bit di stop: 2
Funzione ingresso ASCII con terminazione
Quando il bit 11 della parola di comando viene attivato per messaggi sull'ingresso ASCII con terminazione, l'array MsgOut deve contenere la tabella delle definizioni dell'ingresso ASCII.
A seconda del tipo di dati selezionato per MsgOut, la tabella delle definizioni dell'ingresso
ASCII con terminazione è costituita da tre parole o da 6 byte. Di seguito è riportata la tabella delle definizioni dell'ingresso ASCII con terminazione.
Tabella delle definizioni dell'ingresso ASCII con terminazione (tipo di dati WordArray)
Parola
MsgOut[1]
MsgOut[2]
MsgOut[3]
Byte più significativo
Numero di caratteri iniziali (contenuto ammesso
= 0, 1, 2)
Primo carattere iniziale
Primo carattere della terminazione
Byte meno significativo
Numero di caratteri della terminazione
(contenuto ammesso = 1, 2)
Secondo carattere iniziale
Secondo carattere della terminazione
Tabella delle definizioni dell'ingresso ASCII con terminazione (tipo di dati ByteArray)
Byte
MsgOut[1]
MsgOut[2]
MsgOut[3]
MsgOut[4]
MsgOut[5]
MsgOut[6]
Funzione lunghezza stringa iniziale (0 o 1 o 2) lunghezza stringa di terminazione (1 o 2) primo carattere iniziale secondo carattere iniziale primo carattere della terminazione secondo carattere della terminazione
Durante il processo, RecCount mantiene il conteggio corrente dei caratteri scritti nell'array
MsgIn. Una volta ricevuta la stringa di terminazione, l'uscita Chiudi di XXMIT si porta su ON e RecCount mantiene la lunghezza totale della stringa ricevuta, includendo le stringhe iniziale e di terminazione. A questo punto, XXMIT controlla ancora la porta e continua a salvare i nuovi caratteri ricevuti nel buffer FIFO di ricezione ASCII, poiché la parola di comando che abilita il buffer FIFO di ricezione ASCII, bit 7, è impostata su ON.
Tramite la logica di programmazione, è possibile cancellare il bit dell'ingresso ASCII semplice prima della scansione successiva, lasciando impostato su ON il bit di abilitazione del buffer FIFO di ricezione ASCII. In tal modo, MsgIn NON viene sostituito dai nuovi dati
FIFO, che continuano ad essere raccolti nel buffer FIFO. Tramite la logica di
452 33003682.24
comunicazione programmazione, è possibile cancellare entrambi i bit di abilitazione del buffer FIFO di ricezione ASCII (bit 7) e dell'ingresso ASCII con terminazione (bit 11) per restituire al PLC il controllo della porta.
Quando vi sono troppi caratteri scritti nell'array MsgIn e non viene rilevata NESSUNA terminazione oppure l'array MsgIn si trova al di fuori dell'intervallo ammesso per il PLC configurato, lo Stato contiene un errore e il parametro RecCount non è significativo. Il limite di caratteri è il valore minore tra 1024 o il doppio delle dimensioni dell'array MsgIn.
Esempio di Ingresso ASCII con terminazione
Si ipotizzi che XXMIT venga attivato con le parole di comando bit 7 e 11 impostate. Buffer
FIFO ASCII abilitato e ASCII con terminazione. La porta riceve la seguente stringa ASCII:
"AMScrlf$weight = 1245 GRAMScrlf$wei". Vedere la tabella con le definizioni dell'ingresso
ASCII, che riporta il contenuto indicato con ( ) in questo esempio.
Tabella delle definizioni dell'ingresso ASCII con terminazione (tipo di dati contenuto array di byte)
Byte
MsgOut[1]
MsgOut[2]
MsgOut[3]
MsgOut[4]
MsgOut[5]
MsgOut[6]
Contenuto
Numero di caratteri iniziali (0x01)
Numero di caratteri di terminazione (0x02)
Primo carattere iniziale ('$')
Secondo carattere iniziale (non utilizzato)
Primo carattere di terminazione ('cr')
Secondo carattere della terminazione ('lf'')
Esempio di tabella delle definizioni dell'ingresso ASCII con terminazione (contenuto del tipo di dati array parola)
Parola
MsgOut[1]
MsgOut[2]
MsgOut[3]
Byte più significativo
Numero di caratteri iniziali (0x01)
Primo carattere iniziale ('$')
Primo carattere di terminazione ('cr')
Byte meno significativo
Numero di caratteri di terminazione
(0x02)
Secondo carattere iniziale (non utilizzato)
Secondo carattere della terminazione
('lf'')
XXMIT diventa ATTIVO ed elimina dal buffer FIFO di ingresso i cinque caratteri iniziali,
"AMScrlf", perché non corrispondono al primo carattere iniziale impostato a '$'. Durante la scansione logica dopo la ricezione di '$', XXMIT resta ATTIVO e copia '$' e i caratteri
33003682.24
453
comunicazione
successivi nell'array MsgIn, aggiornando RecCount con il conteggio attuale, man mano che giungono i caratteri.
Dopo la ricezione dell'ultimo carattere di terminazione, l'uscita Chiudi viene attivata e
MsgLen contiene la lunghezza totale, pari a 22 caratteri (0x0016). L'array MsgIn contiene:
"$weight = 1245 GRAMScrlf" come array di byte (o: "$w", "ei", "gh", "t ", "= ", "12", "45", " G",
"RA", "MS", "crlf" se si utilizza un array parola).
Durante la scansione in cui viene attivata l'uscita Chiudi, i caratteri già ricevuti del messaggio successivo, "$wei", giunti dopo la stringa di terminazione, restano nel buffer
FIFO dell'ingresso ASCII. Ciò permette alla logica di programma di disattivare l'ingresso
ASCII con terminazione prima della successiva risoluzione della scansione XXMIT di questa porta, mantenendo i caratteri nel buffer FIFO fino a quando il PLC completa l'elaborazione del messaggio corrente, operazione che può richiedere diverse scansioni.
Funzione Ingresso ASCII semplice
Tutti i caratteri in ingresso sono immessi nell'array MsgIn. Se MsgIn è definito come un array di byte (come consigliato), i caratteri in ingresso vengono semplicemente memorizzati, con il primo carattere nel primo elemento dell'array, il secondo carattere nel secondo elemento e così via. Se MsgIn è definito come WordArray, in ogni elemento vengono memorizzati due caratteri. Il primo carattere viene memorizzato nel byte basso del primo elemento. Il secondo carattere viene memorizzato nel byte alto del primo elemento. Il terzo carattere viene memorizzato nel byte alto del secondo elemento e così via. La variabile della lunghezza del messaggio (MsgLen) contiene la lunghezza del messaggio (1 ... 1024 caratteri).
NOTA: quando l'ingresso ASCII semplice (bit 10) e la ricezione ASCII nel buffer FIFO
(bit 7) restano impostati, i nuovi caratteri vengono trasferiti continuamente dal buffer
FIFO allo stesso array MsgIn, sostituendosi continuamente ai caratteri precedenti già memorizzati nell'array MsgIn.
Messaggi con stringhe ASCII
Quando la parola di comando bit 9 viene attivata per i messaggi con stringhe, l'array
MsgOut deve contenere le informazioni ASCII da trasmettere. La lunghezza del messaggio
MsgLen deve essere impostata sulla lunghezza del messaggio da trasmettere.
Come descritto in
Descrizione dettagliata dei parametri, pagina 439
, MsgOut può essere impostato su qualsiasi tipo di dati. Per i messaggi con stringhe ASCII, il tipo ByteArray riflette al meglio la natura delle stringhe: il primo byte contiene il primo carattere e così via.
Per maggiori informazioni, vedere
Invio ASCII semplice, pagina 471 .
454 33003682.24
comunicazione
Transizione trasmissione-ricezione
Se l'applicazione richiede la ricezione di una risposta da un altro dispositivo dopo la trasmissione di un messaggio, (richiesta - risposta), XXMIT deve commutare dalla modalità di trasmissione alla modalità di ricezione, per leggere la risposta del partner di comunicazione. La commutazione di XXMIT dalla trasmissione alla ricezione può avvenire non prima del ciclo successivo all'operazione di trasmissione. Spetta all'utente fare in modo che la risposta sia ritardata di almeno un ciclo del PLC richiedente per evitare errori di comunicazione.
Il ritardo di trasmissione da parte del partner di comunicazione è particolarmente importante in caso di tempi di ciclo lunghi da parte del richiedente e rapidi da parte dei partner.
Considerazioni sui tempi del ritardo rispetto al partner:
In base alla figura riportata sopra (non in scala), è possibile valutare l'effetto dei tre diversi tempi: tempo di scansione richiedente, tempo di trasmissione e tempo di scansione partner sul tempo di ritardo del partner richiesto. Poiché le scansioni del richiedente e del partner sono asincrone, il tempo di scansione del partner non deve essere preso in considerazione.
Il tempo di trasmissione dipende dalla lunghezza del telegramma e dalla velocità baud. Un messaggio con 18 caratteri a 9600 baud impiega 14 ms. Il contributo principale proviene ovviamente dal tempo di scansione del richiedente. Perciò, benché il tempo minimo di ritardo del partner possa anche essere minore del tempo di scansione del richiedente, per garantire una comunicazione corretta si consiglia di utilizzare il tempo di scansione del richiedente come tempo minimo di ritardo del partner.
33003682.24
455
comunicazione
Funzioni del modem XXMIT
In breve
Le funzioni XXMIT elencate nella tabella seguente permettono di comunicare con un modem compatibile Hayes:
Funzioni del modem
Bit nella parola di comando
Bit 3
Bit 2
Bit 1
Bit 0
Funzione
Modem a segnale d'impulsi
Disconnessione modem
Modem a segnale di frequenza
Inizializza modem
Modem a segnale d'impulsi
Impostare a 1 il Bit 3 della parola di comando quando si utilizza un modem remoto compatibile Hayes, se si desidera comporre un numero di telefono in modalità a impulsi.
Programmare il numero di telefono nell'array MsgOut. La lunghezza del messaggio deve essere specificata in MsgLen. I numeri composti con modalità a impulsi inviati al modem sono automaticamente preceduti da ATDP e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione è una stringa ASCII, il bit 9 deve essere impostato su ON prima di inviare il numero da comporre.
Disconnessione modem
Impostare a 1 il Bit 2 della parola di comando quando si utilizza un modem remoto compatibile Hayes, se si desidera disconnettere il modem. Per impostare il bit su ON, è necessario utilizzare la logica di programma. Poiché il messaggio di disconnessione è una stringa ASCII, il bit 9 deve essere impostato su ON prima di inviare il messaggio. I messaggi di disconnessione inviati al modem sono automaticamente preceduti da +++AT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. XXMIT attende di ricevere la risposta corretta di disconnessione dal modem prima di impostare su ON il segnale di uscita
Chiudi, con cui registra il completamento corretto dell'operazione.
Modem a segnale di frequenza
456
Impostare a 1 il Bit 1 della parola di comando quando si utilizza un modem remoto compatibile Hayes, se si desidera comporre un numero di telefono in modalità a frequenza.
33003682.24
comunicazione
Programmare il numero di telefono nell'array MsgOut. La lunghezza del messaggio deve essere specificata in MsgLen. I numeri con composizione a frequenza inviati al modem sono automaticamente preceduti da ATDP e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di composizione è una stringa ASCII, il bit 9 deve essere impostato su ON prima di inviare il numero da comporre.
Inizializza modem
Impostare a 1 il Bit 0 della parola di comando quando si utilizza un modem remoto compatibile Hayes, se si desidera inizializzare il modem. Programmare il messaggio di inizializzazione nell'array MsgOut e la lunghezza del messaggio in MsgLen. Tutti i messaggi inviati al modem sono automaticamente preceduti da AT e seguiti da un ritorno a capo <CR> e da un avanzamento riga <LF>. Poiché il messaggio di inizializzazione è una stringa ASCII, il bit 9 deve essere impostato su ON prima di inviare il messaggio.
Funzioni Modbus XXMIT
In breve
XXMIT supporta i seguenti codici funzione Modbus:
• 01 ... 06 e 15 ... 16
• 08
Configurazione della porta Modbus
La funzione XXMIT è configurata mediante il relativo blocco funzionale. Il blocco funzionale inizializza la porta Modbus 1 ogni volta che è attivo, con i parametri definiti. I parametri
XXMIT possono essere visualizzati nel display LCD del controller.
NOTA: Le impostazioni selezionate nella schermata di configurazione della CPU oppure tramite il display LCD del controller non hanno alcun effetto sui valori di trasmissione nella modalità master.
33003682.24
457
comunicazione
Esempio di configurazione del blocco funzionale XXMIT:
Esempio di schermata di configurazione della CPU con valori diversi impostati:
Esempio di impostazioni sul display LCD del controller:
458
I 3 grafici precedenti mostrano valori diversi per la funzione XXMIT. Indipendentemente dalle impostazioni nella schermata di configurazione della CPU o sul display LCD del controller, i valori attuali usati per la trasmissione sono quelli del blocco funzione XXMIT:
• Velocità di trasmissione: 19200
33003682.24
• Parità: Pari
• Bit di dati: 8
• Bit di stop: 1 comunicazione
Transizione trasmissione-ricezione
Ad eccezione dei messaggi broadcast, tutte le funzioni Modbus richiedono ad XXMIT la commutazione dalla modalità di trasmissione alla modalità di ricezione, in modo da poter leggere la risposta dello slave. XXMIT commuta dalla trasmissione alla ricezione nel ciclo successivo all'operazione di trasmissione. Spetta all'utente fare in modo che la risposta dello slave sia ritardata di almeno un ciclo del master per evitare errori di comunicazione.
Il ritardo di trasmissione da parte dello slave è particolarmente importante in caso di tempi di ciclo lunghi da parte del master e rapidi da parte degli slave.
Considerazioni sui tempi del ritardo dello slave:
In base alla figura riportata sopra (non in scala), è possibile valutare l'effetto dei tre diversi tempi: tempo di scansione del master, tempo di trasmissione e tempo di scansione dello slave sul tempo di ritardo dello slave. Poiché le scansioni del master e dello slave sono asincrone, il tempo di scansione dello slave non deve essere preso in considerazione. Il tempo di trasmissione dipende dal tipo del telegramma, dalla velocità di trasmissione e dal protocollo. Ad esempio, una richiesta di lettura standard a 9600 baud che utilizza il
33003682.24
459
comunicazione
protocollo ASCII, impiega 14 ms. Il contributo principale proviene ovviamente dal tempo di scansione del master. Per questo motivo, sebbene il tempo minimo di ritardo dello slave possa anche essere minore del tempo di scansione del master, per garantire una comunicazione corretta si consiglia di utilizzare il tempo di scansione del master come tempo minimo di ritardo dello slave.
NOTA: Per i PLC Quantum, è possibile specificare il tempo di ritardo nella finestra di dialogo delle impostazioni della porta Modbus. Il tempo di ritardo può avere un valore compreso tra 10 e 1000 ms, arrotondati automaticamente al valore superiore divisibile per 10.
È necessario immettere il ritardo richiesto più 10 ms. Ad esempio, per avere un ritardo di 110 ms è necessario immettere 120 in questo campo.
NOTA: Per i PLC Momentum 171 CBU 78090, creare un'istanza di blocco EF per ciascuna porta quando si utilizzano i blocchi XMIT, L9_XMIT o XXMIT EF sulle due porte seriali del PLC.
Non cambiare dinamicamente il numero di porta. Impostare il numero di porta come valore iniziale per ogni istanza in quanto il blocco memorizza una singola configurazione di porta.
Codici funzione Modbus (01 ... 06, 15 e 16)
Per i messaggi Modbus, l'array MsgOut deve contenere la tabella delle definizioni Modbus.
Questa tabella è definibile come un campo di parole. La tabella delle definizioni Modbus per il codice funzione Modbus: 01, 02, 03, 04, 05, 06, 15 e 16 ha una lunghezza di cinque parole e occorre impostare MsgLen a 5 per il funzionamento di XXMIT. Di seguito è riportata la tabella delle definizioni Modbus.
Codici funzione della tabella delle definizioni Modbus (01) 06, 15 e 16)
Contenuto
Codice funzione
Modbus (MsgOut
[1])
Quantità (MsgOut
[2])
Descrizione
XXMIT supporta i seguenti codici funzione:
01 = Lettura bit multipli (%Q)
02 = Lettura bit multipli digitali (%I)
03 = Lettura parole multiple (%MW)
04= Lettura parole multiple di ingresso (%IW)
05 = Scrittura bit singolo (%Q)
06 = Scrittura parole singole (%MW)
15 = Scrittura bit multipli (%Q)
16 = Scrittura parole multiple (%MW)
Immettere la quantità di dati che si desidera scrivere o leggere dal PLC slave. Immettere, ad esempio, 100 per leggere 100 parole dal PLC slave o immettere 32 per scrivere 32 bit
460 33003682.24
comunicazione
Contenuto Descrizione nel PLC slave. Esistono limiti di quantità dipendenti dal modello del PLC. Per ulteriori informazioni su tali limiti, vedere l'Appendice A.
Indirizzo PLC slave
(MsgOut[3])
Area dati PLC slave (MsgOut[4])
Area dati PLC master (MsgOut
[5])
Immettere l'indirizzo del PLC Modbus slave. In genere l'intervallo dell'indirizzo Modbus è 1
... 247. Per inviare un messaggio Modbus a più PLC, immettere 0 per l'indirizzo PLC slave. Questa modalità è chiamata modalità trasmissione. La modalità trasmissione supporta solo i codici funzione Modbus che scrivono dati dal PLC master ai PLC slave. La modalità trasmissione broadcast NON supporta i codici funzione Modbus che leggono dati dai PLC slave.
Per un comando di lettura, l'area dati del PLC slave è l'origine dei dati. Per un comando di scrittura, l'area dati del PLC slave è la destinazione dei dati. Ad esempio, per leggere i bit
(%I300 ... %I500) da un PLC slave, immettere 300 in questo campo. Per scrivere i dati da un PLC master e collocarli in parole (%MW100) di un PLC slave, immettere 100 in questo campo. A seconda del tipo di comando Modbus (scrittura o lettura), le aree dati di origine e di destinazione devono essere definite nella seguente tabella delle aree dati di origine e di destinazione.
Per un comando di lettura, l'area dati del PLC master è la destinazione dei dati restituiti dallo slave. Per un comando di scrittura, l'area dati del PLC master è l'origine dei dati. Ad esempio, per scrivere i bit (%M16 ... %M32) situati nel PLC master su un PLC slave, immettere 16 nel campo. Per leggere le parole (%IW1 ... %IW100) da un PLC slave e collocare i dati nell'area dati del PLC master (%MW100 ... %MW199), immettere 100 in questo campo. A seconda del tipo di comando Modbus (scrittura o lettura), le aree dati di origine e di destinazione devono essere definite nella seguente tabella delle aree dati di origine e di destinazione.
Aree dati di origine e di destinazione per i codici funzione (01 ... 06, 15 e 16)
Codice funzione
03 (lettura multipla 4x)
04 (lettura multipla 3x)
01 (lettura multipla 0x)
02 (lettura multipla 1x)
16 (scrittura multipla 4x)
15 (scrittura multipla 0x)
05 (scrittura singola 0x)
06 (scrittura singola 4x)
Area dati PLC master
%MW (destinazione)
%MW (destinazione)
%M (destinazione)
%M (destinazione)
%MW (origine)
%M (origine)
%M (origine)
%MW (origine)
Area dati PLC slave
%MW (origine)
%IW (origine)
%Q (origine)
%I (origine)
%MW (destinazione)
%Q (destinazione)
%Q (destinazione)
%MW (destinazione)
Per inviare 20 messaggi Modbus dal PLC, è necessario trasferire 20 tabelle di definizioni
Modbus, una dopo l'altra, in MsgOut dopo ogni operazione XXMIT conclusasi correttamente. In alternativa, è necessario programmare 20 XXMIT separati e attivarli uno alla volta mediante la logica utente.
33003682.24
461
comunicazione
Codice funzione Modbus (08)
Per i messaggi Modbus, l'array MsgOut deve contenere la tabella delle definizioni Modbus.
Questa tabella è definibile come un campo di parole. La tabella delle definizioni Modbus per il codice funzione Modbus: 08 ha una lunghezza di cinque parole e occorre impostare
MsgLen a 5 per il funzionamento di XXMIT. Di seguito è riportata la tabella delle definizioni
Modbus.
Codici funzione della tabella delle definizioni Modbus (08)
Contenuto
Codice funzione
Modbus
(MsgOut[1])
Diagnostica
(MsgOut[2])
Descrizione
XXMIT supporta il seguente codice funzione:
08 = Diagnostica
Immettere in questo campo il valore decimale del codice della sottofunzione di diagnostica per eseguire la specifica funzione di diagnostica desiderata. Sono supportate le seguenti sottofunzioni di diagnostica:
Codice sottofunzione Descrizione
00 Ritorno dati interrogazione
01
02
Riavvio opzione di comunicazione
Ritorno parola di diagnostica
03
04
05 ... 09
10
11
12
13
Modifica delimitatore ingresso ASCII
Forzatura modalità di solo ascolto
Riservato
Azzera contatori
(e parole di diagnostica in 384, 484)
Ritorno conteggio messaggi bus
Ritorno conteggio errore di comunicazione bus
Indirizzo PLC slave (MsgOut
[3])
Contenuto campo dati
14 ... 15
16
17
18
19 ... 21
Ritorno conteggio errore di eccezione bus
Non supportato
Restituzione conteggio NAK slave
Ritorno conteggio slave occupato
Ritorno conteggio superamento caratteri bus
Immettere l'indirizzo del PLC Modbus slave. In genere l'intervallo dell'indirizzo Modbus è 1 ...
247. Il codice funzione 8 NON supporta la modalità broadcast (indirizzo 0).
È necessario immettere il valore decimale necessario per l'area dati della specifica sottofunzione di diagnostica:
462 33003682.24
comunicazione
Contenuto funzione di diagnostica
(MsgOut[4])
Area dati PLC master (MsgOut
[5])
Descrizione
Codice sottofunzione Descrizione
02, 04, 10, 11, 12, 13,
16, 17 e 18
Questo valore è automaticamente azzerato nel messaggio
Modbus inviato allo slave (questo valore non viene riflesso nel buffer MsgOut).
00, 01 e 03 È necessario immettere il valore nel campo dati desiderato. Per ulteriori informazioni, vedere la guida di riferimento del protocollo
Modbus Modicon (www.modbus.org) .
Per tutte le sottofunzioni, l'area dati del PLC master è la destinazione dei dati restituiti dallo slave.
È necessario specificare una parola di memoria %MW che contrassegni l'inizio dell'area dati dove sono collocati i dati restituiti.
Per collocare, ad esempio, i dati nell'area dati del PLC master partendo da (%MW100), immettere 100 in questo campo. La sottofunzione 04 NON restituisce alcuna risposta. Per ulteriori informazioni, vedere la guida di riferimento del protocollo Modbus Modicon (www.
modbus.org) .
FIFO e controllo di flusso
In breve
XXMIT consente all'utente di definire l'uso di un buffer di ricezione di tipo FIFO, del controllo di flusso e della funzione dei backspace ricevuti.
Buffer FIFO di ricezione ASCII
Impostando a 0 il bit 7 della parola di comando si termina questa funzione. Quando il buffer
FIFO riceve 512 caratteri si imposta un overflow interno. Quando si verifica l'overflow, tutti i caratteri successivi vengono eliminati, tutte le operazioni dell'ingresso ASCII (semplice e con terminazione) sono terminate e il blocco restituisce un errore finché non si modifica il valore (bit 7). Quando si modifica il valore (bit 7), tutti i dati del buffer FIFO vengono eliminati, entrambi i bit di controllo dell'ingresso ASCII vengono ignorati (ASCII semplice (bit
10), ASCII con terminazione (bit 11)) e se non si seleziona alcun controllo di uscita ASCII il controllo della porta seriale (1) viene restituito al PLC.
Impostare ASCII con terminazione (bit 11) o ASCII semplice (bit 10) per rimuovere i caratteri
ASCII dal buffer FIFO per l'elaborazione. Non è possibile impostare contemporaneamente più di uno dei seguenti tre bit: ASCII con terminazione (bit 11), ASCII semplice (bit 10) o
Messaggi con stringhe ASCII (bit 9).
Per ottenere il funzionamento Full duplex, impostare sia il buffer FIFO di ricezione ASCII (bit
7) sia i Messaggi con stringhe ASCII (bit 9). Questo consente una semplice trasmissione in
33003682.24
463
comunicazione
ASCII da parte del PLC mentre è ancora in corso la ricezione dei caratteri ASCII nel buffer
FIFO. Ciò risulta utile quando si utilizzano terminali non intelligenti. Quando si imposta il buffer FIFO di ricezione ASCII (bit 7), non è possibile utilizzare alcuno dei seguenti controlli di uscita ASCII: Messaggi master Modbus (bit 8), Modem a impulsi (bit 3), Disconnessione modem (bit 2), Modem a frequenza (bit 1) e Inizializzazione modem (bit 0).
Attivazione backspace
Quando viene rilevato un backspace (BS), esso NON viene memorizzato nell'array MsgIn, perché in effetti elimina il carattere precedente e determina una diminuzione del contatore dei caratteri RecCount. Quando invece viene rilevato un normale carattere ASCII, esso viene memorizzato nell'array MsgIn e il contatore dei caratteri RecCount viene incrementato.
NOTA: i backspace NON POSSONO eliminare caratteri da un array MsgIn vuoto, pertanto il contatore caratteri RecCount non può scendere sotto lo 0.
Questa speciale funzionalità di backspace, unitamente all'attivazione dell'eco interna a livello del terminale, è molto utile nel caso si utilizzino terminali non intelligenti. Viene attivato un ingresso ASCII con terminazione XXMIT che esegue una ricerca di "cr" con impostati il buffer FIFO di ricezione ASCII (bit 7) e backspace (bit 6). Non è necessaria alcun'altra logica di programma per la digitazione e la modifica immediata dei caratteri con backspace.
Quando si digita "cr", XXMIT attiva l'uscita Chiudi e i dati corretti vengono correttamente allineati nell'array MsgIn.
Attivazione controllo di flusso RTS/CTS
Le considerazioni seguenti riguardano la modalità di uscita. Lo stato XXMIT diventa
BLOCCO ricezione quando il dispositivo ricevente imposta CTS su OFF per indicare che non è più in grado di elaborare altri caratteri. Analogamente, lo stato XXMIT diventa NON
BLOCCATO quando il CTS è su ON e il dispositivo ricevente indica che PUÒ elaborare altri caratteri.
Quando la trasmissione è NON BLOCCATA e sono impostati Uscita ASCII semplice (bit 9) e
Controllo di flusso RTS/CTS (bit 5), i dati di uscita da trasmettere vengono inviati in pacchetti da 16 byte. Una volta inviati tutti i pacchetti in uscita, l'uscita Chiudi (Done) su
XXMIT diventa ON per indicare il completamento corretto dell'operazione.
Se durante la trasmissione lo stato diventa improvvisamente BLOCCATO, vengono inviati solo i caratteri rimanenti del pacchetto di uscita corrente, per un massimo di 16 caratteri, e
XXMIT resta ATTIVO per un tempo indefinito. L'uscita ASCII riprende a inviare tutti i pacchetti restanti in uscita solo quando CTS torna su ON.
Le considerazioni seguenti riguardano la modalità di ingresso. Poiché l'RTS è un segnale di uscita, è possibile utilizzarlo in modo indipendente dal processo di trasmissione dell'uscita
ASCII, verso dispositivi di invio BLOCCATI o NON BLOCCATI. Quando si imposta il buffer
464 33003682.24
comunicazione
FIFO di ricezione ASCII (bit 7), il controllo di flusso RTS/CTS funziona in modalità di ingresso. Quando si imposta il buffer FIFO di ricezione ASCII (bit 7) ma non è impostato né l'ingresso ASCII semplice (bit 10) né l'ingresso ASCII con terminazione (bit 11), i caratteri ricevuti riempiono il buffer FIFO in cui vengono inseriti. Contemporaneamente, il controllo di flusso RTS (bit 5) è su ON e ciò consente al dispositivo di invio di procedere.
Quando i caratteri contenuti nel buffer FIFO (512 caratteri) superano i tre quarti della capacità, il controllo di flusso RTS (bit 5) viene azzerato, in modo da bloccare il dispositivo di invio. Il controllo di flusso RTS (bit 5) resta azzerato fino a quando l'ingresso ASCII semplice
(bit 10) o l'ingresso ASCII con terminazione (bit 11) hanno rimosso dal buffer FIFO un numero di caratteri sufficiente per portarne il contenuto a meno di un quarto della capacità.
A questo punto, il controllo di flusso RTS (bit 5) è nuovamente impostato su ON.
NOTA: Se il segnale CTS viene forzato indefinitamente su OFF dal dispositivo di ricezione (oppure se è presente un problema di collegamento che forza il segnale CTS su OFF), il blocco XXMIT non completerà la trasmissione e il dispositivo di ricezione non riceverà il comando.
ATTENZIONE
BLOCCO TRASMISSIONE
Accertarsi che la funzione XXMIT completi sempre la trasmissione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
È possibile evitare il blocco della trasmissione:
• avviando un timer all'avvio del blocco XXMIT e avvisando il programma applicativo al raggiungimento dell'ora interna del timer.
• azzerando il bit di avvio XXMIT.
NOTA: l'algoritmo del controllo di flusso RTS/CTS è diverso dal controllo modem RTS/
CTS. Il primo riguarda l'overflow del buffer di ricezione full duplex. Il secondo riguarda invece il processo di trasmissione che ha accesso al supporto di trasmissione condiviso.
Per questo motivo, non è possibile richiedere contemporaneamente entrambi questi algoritmi RTS/CTS.
NOTA: NON SI PUÒ selezionare alcun tipo di handshake con controllo di flusso RTS/
CTS (bit 5) quando la porta è in modalità RS 485 (bit 13), perché questi segnali NON esistono in modalità RS 485.
Attivazione del controllo di flusso Xon/Xoff
Le considerazioni seguenti riguardano la modalità di uscita. Lo stato XXMIT diventa
BLOCCATO quando riceve un carattere Xoff. Analogamente, lo stato XXMIT diventa NON
33003682.24
465
comunicazione
BLOCCATO quando riceve un carattere Xon. In nessun caso è possibile inserire Xon o Xoff nel buffer FIFO.
Quando la trasmissione è NON BLOCCATA e sono impostati Uscita ASCII semplice (bit 9) e
Controllo di flusso Xon/Xoff (bit 4), i dati di uscita da trasmettere vengono inviati in pacchetti da 16 byte. Una volta inviati tutti i pacchetti, l'uscita Chiudi del blocco XXMIT diventa ON.
Se durante la trasmissione lo stato diventa improvvisamente BLOCCATO, vengono inviati solo i caratteri rimanenti del pacchetto di uscita corrente, per un massimo di 16 caratteri, e il blocco XXMIT resta ATTIVO per un tempo indefinito. L'uscita ASCII riprende a inviare tutti i pacchetti restanti in uscita solo quando riceve il successivo carattere Xon.
Le considerazioni seguenti riguardano la modalità di ingresso. Xon/Xoff può essere utilizzato per bloccare o sbloccare i dispositivi di invio. Quando si imposta il buffer FIFO di ricezione ASCII (bit 7), il controllo di flusso Xon/Xoff (bit 4) funziona in modalità ingresso.
Quando si imposta il buffer FIFO di ricezione ASCII (bit 7) ma non è impostato né l'ingresso
ASCII semplice (bit 10) né l'ingresso ASCII con terminazione (bit 11), i caratteri ricevuti riempiono il buffer FIFO in cui vengono inseriti.
Quando i caratteri contenuti nel buffer FIFO superano i tre quarti della capacità, al ricevimento di caratteri aggiuntivi la variabile di stato FIFO viene impostata per l'invio alla porta seriale di caratteri XOFF dopo un ritardo di massimo di 16 caratteri, BLOCCANDO il mittente e cancellando la variabile di stato FIFO.
Quando tutte le funzioni di uscita ASCII (bit 8,3,2,1 e 0) sono su OFF e il controllo di flusso
Xon/Xoff (bit 4) è su ON, il tempo del ritardo è impostato in modo predefinito sul tempo di un carattere. Quando invece tutte le funzioni di uscita ASCII (bit 8,3,2,1 e 0) sono su ON e il controllo di flusso Xon/Xoff (bit 4) è su ON, l'uscita ASCII viene suddivisa in pacchetti da 16 byte. In questo modo, i caratteri Xoff in sospeso NON devono aspettare più del tempo di 16 caratteri prima di BLOCCARE il mittente.
Una volta che il mittente ha interrotto la trasmissione, il PLC rimuove eventualmente i caratteri dal buffer FIFO mediante l'ingresso ASCII semplice (bit 10) o l'ingresso ASCII con terminazione (bit 11).
Quando i caratteri contenuti nel buffer FIFO sono minori di un quarto della capacità, la variabile di stato FIFO viene impostata su XON per l'invio di un carattere Xon dalla porta seriale per SBLOCCARE il mittente.
NOTA: per evitare un blocco dovuto a un cavo scollegato o ad altri errori di comunicazione intermittenti, quando il mittente è BLOCCATO e NON riceve correttamente il carattere Xon si utilizza il seguente algoritmo. Il buffer FIFO, quando si svuota e non riceve più caratteri, trasmette un flusso stabile di caratteri Xon alla velocità di uno ogni cinque secondi.
466 33003682.24
comunicazione
NOTA: il controllo di flusso Xon/Xoff (bit 4) è diverso dal controllo di flusso RTS/CTS (bit
5). Il primo si basa sulla trasmissione di caratteri Xon e Xoff per impedire di provocare l'overflow del buffer in modalità full duplex. Il secondo svolge la stessa funzione ma utilizza i segnali handshake hardware. Gli algoritmi di controllo del flusso, pertanto, non possono essere richiesti contemporaneamente. Il controllo modem basato sul controllo di flusso RTS/CTS (bit 5), infatti, richiede una rete half duplex mentre il controllo di flusso Xon/Xoff (bit 4) richiede una rete full duplex .
Esempi di applicazione
Descrizione
Il programma seguente è una breve applicazione dimostrativa con quattro istanze di XXMIT che mostrano le quattro funzioni principali:
• Master Modbus
• Ingresso ASCII semplice
• Messaggio ASCII in uscita
• Ingresso ASCII con terminazione
Master Modbus
La seguente operazione Master Modbus è una richiesta di lettura a un dispositivo slave (ad esempio, indirizzo 4) connesso alla porta 1 del master:
• Lettura da %MW1 a %MW10 sullo slave
• in %MW11 - %MW20 locali
Lo slave (indirizzo 4) deve essere impostato con i seguenti parametri di porta:
• 9600 Baud
• 8 bit di dati
• 1 bit di stop
• parità pari (2)
Il Master utilizza le impostazioni XXMIT
Dichiarazione delle variabili per il master Modbus
La tabella seguente riporta le variabili utilizzate nell'esempio di master Modbus:
33003682.24
467
comunicazione
Nome variabile
StartModbusMstr
ModbusMstrActive
ModbusMstrCommand
ModbusMstrDone
ModbusMstrError
ModbusMstrSettings
ModbusMstrSettings[1]
ModbusMstrSettings[2]
ModbusMstrSettings[3]
ModbusMstrSettings[4]
ModbusMstrSettings[5]
ModbusMstrSettings[6]
ModbusMstrSettings[7]
ModbusMstrSettings[8]
ModbusMstrSettings[9]
ModbusMstrStatus
ModbusMstrNode
ModbusMstrErrorCounter
ModbusMstrDoneCounter
Sezione IEC per master Modbus
Programmare quanto segue in una sezione FBD:
Assegnazione dell'indirizzo nodo slave
Tipo di dati Valore iniziale
BOOL
BOOL
WORD
BOOL
BOOL
WordArr9
16#0100
4
1
3
10
11
0
Commento
Bit 8 impostato
Codice Modbus: Lettura di più parole
Quantità di parole da leggere
Indirizzo slave Modbus
Parola di origine
Parola di destinazione non usato non usato non usato non usato
INT
WORD
INT
INT
4 Immettere l'indirizzo slave
468 33003682.24
Assegnazioni al blocco funzione XXMIT: comunicazione
Conteggio errori e operazioni riuscite
Ricezione ASCII semplice
Riceve qualsiasi dato arrivi alla porta 1. La lunghezza del buffer di ricezione è assegnata come 'SimpleReceiveLength', che ha valore iniziale di 10.
I caratteri ricevuti sono in MsgIn array, il numero di caratteri ricevuti in RecCount.
33003682.24
469
comunicazione
Dichiarazione delle variabili per ricezione ASCII semplice
La tabella seguente riporta le variabili utilizzate nell'esempio di ricezione ASCII semplice:
Nome variabile Tipo di dati Valore iniziale
Commento
StartSimpleReceive
SimpleReceiveActive
SimpleReceiveCharCounter
SimpleReceiveCommand
SimpleReceiveDone
SimpleReceiveError
SimpleReceiveLength
SimpleReceiveRetryCounter
SimpleReceiveStatus
SimpleRecMessage
SimpleReceiveDoneCounter
SimpleReceiveErrorCounter
BOOL
BOOL
INT
WORD
BOOL
BOOL
INT
INT
INT
ByteArr12
INT
INT
16#0480
10
Bit 7 e 10 impostati. FIFO abilitato
470 33003682.24
Sezione IEC per ricezione ASCII semplice
Programmare quanto segue in una sezione FBD: comunicazione
Conteggio errori e operazioni riuscite
Invio ASCII semplice
Invia un messaggio ASCII semplice dalla porta 1, il messaggio è 'Hello World!!'
33003682.24
471
comunicazione
Dichiarazione delle variabili per invio ASCII semplice
La tabella seguente riporta le variabili utilizzate nell'esempio di invio ASCII semplice:
Nome variabile Tipo di dati Valore iniziale
Commento
StartSimpleSend
SimpleSendActive
SimpleSendCommand
SimpleSendDone
SimpleSendError
SimpleSendLength
SimpleSendMessage
SimpleSendMessage[1]
SimpleSendMessage[2]
SimpleSendMessage[3]
SimpleSendMessage[4]
SimpleSendMessage[5]
SimpleSendMessage[6]
SimpleSendMessage[7]
SimpleSendMessage[8]
SimpleSendMessage[9]
SimpleSendMessage[10]
SimpleSendMessage[11]
SimpleSendMessage[12]
SimpleSendMessage[13]
SimpleSendMessage[14]
SimpleSendRetryCounter
SimpleSendStatus
SimpleSendDoneCounter
SimpleSendErrorCounter
INT
INT
INT
INT
BOOL
BOOL
WORD
BOOL
BOOL
INT
ByteArr36
16#0200
14
16#72
16#6C
16#64
16#20
16#21
16#21
16#48
16#65
16#6C
16#6C
16#6F
16#20
16#57
16#6F
Bit 9 impostato
Numero di caratteri da inviare
'Hello World !!'
472 33003682.24
Sezione IEC per invio ASCII semplice
Programmare quanto segue in una sezione FBD: comunicazione
Conteggio errori e operazioni riuscite
Ricezione ASCII con terminazione
Dopo la ricezione dei "caratteri iniziali" "AB", il blocco funzione immette tutti i caratteri ricevuti nel buffer di ricezione MsgIn. Il ricevitore si interrompe dopo la ricezione dei
33003682.24
473
comunicazione
"caratteri finali" "CD", mediante i quali l'uscita "Chiudi" viene impostata, per indicare il completamento corretto dell'operazione. La lunghezza massima del buffer di ricezione è assegnata come "TermReceiveLength", impostata inizialmente al valore di 20 in questo esempio.
Dichiarazione delle variabili per ricezione ASCII con terminazione
La tabella seguente riporta le variabili utilizzate nell'esempio di ricezione ASCII con terminazione:
Nome variabile Tipo di dati Valore iniziale
Commento
StartTermReceive
TermReceiveActive
TermReceiveCharCounter
TermReceiveCommand
TermReceiveDone
TermReceiveError
TermReceiveLength
TermReceiveMessage
TermReceiveRetryCounter
TermReceiveSettings
TermReceiveSettings[1]
TermReceiveSettings[2]
TermReceiveSettings[3]
TermReceiveSettings[4]
TermReceiveSettings[5]
TermReceiveSettings[6]
TermReceiveStatus
TermReceiveDoneCounter
TermReceiveErrorCounter
BOOL
BOOL
INT
WORD
BOOL
BOOL
INT
ByteArr36
INT
ByteArr36
INT
INT
INT
16#0880
20
16#02
16#02
16#41
16#42
16#43
16#44
Bit 11 e 7 impostati. FIFO abilitato
Caratteri ricevuti lunghezza stringa di terminazione (1 o 2) lunghezza stringa iniziale (0, 1 o 2) primo carattere iniziale secondo carattere iniziale primo carattere della terminazione secondo carattere della terminazione
474 33003682.24
Sezione IEC per ricezione ASCII con terminazione
Programmare quanto segue in una sezione FBD: comunicazione
Conteggio errori e operazioni riuscite
Immissione di stringhe come valori iniziali
L'Editor dati di Control Expert consente di immettere le stringhe come valori iniziali negli array di byte.
33003682.24
475
comunicazione
La sezione seguente fornisce una breve descrizione di come è possibile definire una variabile 'DemoString' come 'ByteArr36' e immettere una stringa 'Testo utente ' come valore iniziale.
Aprire l'Editor dati
Dal menu principale, selezionare:
Strumenti -> Editor dati.
Editor di dati
476
Dichiarazione del nuovo nome stringa
Per dichiarare il nome stringa per l'array, fare clic su accanto al tipo (in questo caso
Bool). In tal modo, si apre una finestra di selezione del tipo della variabile.
33003682.24
Definizione del tipo elemento 1 comunicazione
Definizione del tipo di elemento
Selezionare la casella di controllo Allineamento e definire il tipo elemento dell'array e il numero degli elementi. A questo punto, è possibile visualizzare e modificare i valori espansi del byteArr36.
Definizione del tipo elemento 2
33003682.24
477
comunicazione
Definizione ByteArr36
XXMIT: regole di programmazione
Introduzione
Questa sezione descrive le regole di programmazione XXMIT per Unity Pro versione 2.3 o successiva.
NOTA:
Unity Pro è il nome precedente di Control Expert per versione 13.1 o precedenti.
Regole di programmazione XXMIT
Descrizione delle regole di programmazione
Per inviare una richiesta Modbus o una stringa di caratteri possono essere necessari vari cicli del PLC. Il funzionamento dei bit Avvio, Attivo, Chiudi ed Errore è il seguente:
478 33003682.24
comunicazione
Il segnale di avvio viene scritto dall'applicazione. I segnali Attivo, Chiudi ed Errore sono letti dall'applicazione.
NOTA: Se dopo il completamento il segnale di avvio viene mantenuto a 1, il blocco
XXMIT si riavvia. Questo genera trasmissione multipla dello stesso messaggio Modbus o ASCII al dispositivo di ricezione.
ATTENZIONE
TRASMISSIONE MULTIPLA
Verificare che il blocco XXMIT non venga riavviato dopo il completamento.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Il reset del bit Start non appena il bit Done viene visto a 1 impedisce il riavvio del blocco
XXMIT dopo il completamento.
Non è possibile attivare più XXMIT contemporaneamente. Se si attivano più XXMIT, il primo blocco scansionato diventa operativo e impedisce il funzionamento di tutti gli altri XXMIT fino al suo completamento. Il blocco successivo della scansione che viene richiamato genera immediatamente il codice errore 150.
Il blocco funzione XXMIT può solo essere usato con il task MAST. Se viene avviato con i task FAST / AUX o EVENT viene visualizzato un codice d'errore immediato (127), (non esiste controllo eseguito da Control Expert durante la creazione).
33003682.24
479
comunicazione
NOTA: prima di impostare l'ingresso AVVIO, è necessario inizializzare il parametro di ingresso XXMIT. Tali parametri non devono essere modificati durante l'attività del blocco funzione. Se si ripristina a 0 il bit AVVIO prima del completamento, il blocco funzione viene interrotto e il bit attivo è impostato a 0. Per eseguire completamente il blocco, è necessario impostare a 1 il bit AVVIO fino al termine dell'operazione o fino al verificarsi di un errore.
Riferimenti tecnici di XXMIT
Panoramica
Questa sezione descrive i riferimenti tecnici di XXMIT.
Limiti dei parametri di interrogazione e risposta Modbus
Limiti dei parametri in base al codice funzione
I parametri di interrogazione e risposta sono limitati in base al tipo di codice funzione utilizzato. A questo proposito, vedere la tabella seguente.
Tabella dei parametri massimi dei PLC Quantum :
6
15
16
4
5
2
3
Codice funzione
1
Descrizione
Lettura di più bit
Lettura di più bit
Lettura di più parole
Lettura di più parole
Scrittura di un singolo bit
Scrittura di una singola parola
Scrittura di più bit
Scrittura di più parole
Interrogazione
2000 bit
2000 bit
125 parole
125 parole
1 bit
1 parola
800 bit
100 parole
Risposta
2000 bit
2000 bit
125 parole
125 parole
1 bit
1 parola
800 bit
100 parole
480 33003682.24
Configurazione XXMIT mediante modem remoti compatibili Hayes (solo) comunicazione
Descrizione
Per interfacciare i modem remoti con XXMIT, è necessario utilizzare tre comandi.
Tali comandi sono:
• Inizializza modem
• Componi numero modem
• Disconnetti modem
Prima di inviare un messaggio ASCII o Modbus attraverso il modem, è necessario inviare al modem stesso una stringa di inizializzazione e quindi una stringa di composizione del numero. Una volta che il modem ha composto il numero di telefono e ha istituito una connessione con il modem remoto, è possibile utilizzarlo per inviare un numero illimitato di messaggi ASCII o Modbus. Per inviare più messaggi, incrementare il puntatore dei messaggi al messaggio successivo dopo ogni operazione XXMIT completata correttamente.
Una volta inviati tutti i messaggi, è possibile inviare al modem la stringa di disconnessione.
Messaggio di inizializzazione
Il messaggio di inizializzazione è un normale messaggio ASCII e può essere lungo al massimo 512 caratteri, tuttavia in genere 50 caratteri sono più che sufficienti per eseguire l'operazione. Nell'ambito della stringa di inizializzazione è possibile implementare qualsiasi comando AT Hayes. Per l'inizializzazione di un modem da utilizzare con XXMIT, si consiglia di utilizzare i seguenti comandi.
Messaggio di inizializzazione per modem remoto
Messaggio di inizializzazione =
AT=
&F=
&K0=
&Q0=
&D0=
V1=
AT&F&K0&Q0&D0V1Q0X0E1
Esegue la calibrazione automatica del modem 1
Richiama la configurazione di fabbrica come configurazione attiva 1
Disabilita il controllo di flusso locale 2
Comunica in modalità asincrona 2
Ignora lo stato del segnale DTR 1
Visualizza i codici risultato come parole 1
Se non si utilizza V1 o se il modem non è in grado di restituire risposte dettagliate, XXMIT restituisce l'errore 117 (timeout risposta modem).
33003682.24
481
comunicazione
482
Messaggio di inizializzazione =
Q0=
X0=
AT&F&K0&Q0&D0V1Q0X0E1
Restituisce i codici risultato 1
Fornisce i codici risultato di base sull'avanzamento delle chiamate:
Collegamento, Nessuna portante e Ring 1
E1= trasmette i caratteri dalla tastiera allo schermo nello stato di comando 1
1 Per ottenere un funzionamento corretto è necessario che questi parametri vengano sempre inclusi nella stringa di inizializzazione di XXMIT.
2 Per trasmettere correttamente un messaggio al modem remoto, questi parametri dovrebbero essere inclusi nella stringa di inizializzazione di XXMIT. Per modificare o decidere di non utilizzare questi parametri, è necessario essere esperti nell'uso del modem.
NOTA: benché alcuni produttori di modem dichiarino la piena compatibilità con Hayes, è possibile che vi siano leggere differenze. Si consiglia pertanto di utilizzare solo comandi la cui definizione sia uguale a quella riportata sopra.
Il messaggio di inizializzazione deve sempre iniziare con un comando AT standard Hayes. In
XXMIT, i messaggi di comando del modem sono automaticamente preceduti da AT e seguiti da un ritorno a capo (0x0D) e da un avanzamento riga (0x0A), poiché questi caratteri sono richiesti da tutti i messaggi di controllo dei modem. Altri messaggi ASCII non di controllo non devono necessariamente terminare con ritorno a capo e avanzamento riga.
Ad esempio, un tipico messaggio di inizializzazione inviato al modem da XXMIT.
Messaggio
(AT)&F&K0&Q0&D0V1X0Q0 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
17 caratteri
Il messaggio di inizializzazione, ad esempio, può essere utilizzato anche per impostare i registri S del modem.
Messaggio
(AT)S0=1 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
4 caratteri
Per fare in modo che XXMIT invii al modem un messaggio di inizializzazione, il bit 9 e il bit 0 della parola di comando devono essere su ON. Quando il bit 0 è su ON, i bit 1 e 2 non devono essere su ON, altrimenti XXMIT non completa correttamente l'operazione. Per inviare effettivamente il messaggio, l'ingresso Avvio di XXMIT deve essere impostato e restare su ON fino al completamento dell'operazione o al verificarsi di un errore. Quando
XXMIT determina che l'invio del messaggio al modem è avvenuto correttamente, imposta su
ON l'uscita Chiudi. Quando si verifica un errore, l'uscita Errore viene impostata su ON.
Durante l'invio del messaggio al modem, l'uscita Attivo è su ON.
33003682.24
comunicazione
NOTA: per ridurre la programmazione della logica utente, è possibile inizializzare il modem con i parametri inviati mediante un programma terminale, senza utilizzare
XXMIT. Una volta che i parametri sono stati trasferiti nella memoria del modem, è possibile salvarli nella memoria non volatile con un comando AT, generalmente &W.
Messaggio di composizione
Il messaggio di composizione permette di inviare al modem un numero di telefono. Nel messaggio è necessario includere solo comandi AT correlati alla composizione di un numero. Di seguito sono riportati alcuni esempi tipici di messaggi di composizione utilizzati con XXMIT.
Esempio di composizione in frequenza del numero di telefono.
Messaggio
(AT)DT)6800326 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
7 caratteri
Esempio di composizione a impulsi del numero di telefono.
Messaggio
(AT)DP)6800326 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
7 caratteri
Esempio di composizione in frequenza del numero di telefono, attesa del tono di frequenza prima della composizione del numero e pausa prima della composizione del resto del numero.
Messaggio
(AT)DT)W,6800326 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
9 caratteri
Per fare in modo che XXMIT invii al modem un messaggio in frequenza, il bit 9 e il bit 1 della parola di comando devono essere su ON. Quando il bit 1 è su ON, i bit 0 e 2 non devono essere su ON, altrimenti XXMIT non completa correttamente l'operazione. Per inviare effettivamente il messaggio, l'ingresso Avvio di XXMIT deve essere impostato e restare su
ON fino al completamento dell'operazione o al verificarsi di un errore. Quando XXMIT determina che l'invio del messaggio al modem è avvenuto correttamente, imposta su ON l'uscita Chiudi. Quando si verifica un errore, l'uscita Errore viene impostata su ON. Durante l'invio del messaggio al modem, l'uscita Attivo è su ON.
33003682.24
483
comunicazione
NOTA: poiché la connessione di un modem locale con uno remoto è un'operazione che richiede molto tempo, quando si invia un messaggio di composizione a un modem il valore di timeout di RespTout deve essere piuttosto lungo. Per inviare un messaggio di composizione, impostare il timeout, ad esempio, su 30.000 ms. Quando il valore di timeout è troppo breve, XXMIT emette un timeout del messaggio. Prima di stabilire il tempo appropriato può essere necessario provare più volte.
Messaggio di disconnessione
Il messaggio di disconnessione permette di disconnettere il modem. Nel messaggio è necessario utilizzare solo comandi AT correlati alla disconnessione del modem. Di seguito è riportato un esempio tipico di messaggio di disconnessione.
Esempio di messaggio di disconnessione del modem.
Messaggio
(+++AT)H0 (<CR><LF>) 1
1 I caratteri tra parentesi vengono inviati in modo automatico.
Lunghezza
2 caratteri
Quando si invia il messaggio di disconnessione a un modem che è già connesso a un altro modem remoto, XXMIT deve prima impostare il modem locale in modalità di comando. A questo scopo, XXMIT invia al modem una sequenza di escape +++. XXMIT assume che +++ imposti il modem in modalità di comando. Per alcuni modelli di modem è possibile modificare questa sequenza di escape predefinita. Affinché XXMIT possa funzionare correttamente, il modem deve essere impostato in modo da accettare la sequenza di escape +++.
Per fare in modo che XXMIT invii al modem un messaggio di disconnessione, il bit 9 e il bit 2 della parola di comando devono essere su ON. Quando il bit 2 è su ON, i bit 0 e 1 non devono essere su ON, altrimenti XXMIT non completa correttamente l'operazione. Per inviare effettivamente il messaggio, l'ingresso Avvio di XXMIT deve essere impostato e restare su ON fino al completamento dell'operazione o al verificarsi di un errore. Quando
XXMIT determina che l'invio del messaggio al modem è avvenuto correttamente, imposta su
ON l'uscita Chiudi. Quando si verifica un errore, l'uscita Errore viene impostata su ON.
Durante l'invio del messaggio al modem, l'uscita Chiudi è su ON.
NOTA: Esperto: poiché la disconnessione di un modem dopo il ricevimento del relativo comando è un'operazione che richiede molto tempo, quando si invia un messaggio di composizione a un modem il valore di timeout di RespTout deve essere piuttosto lungo.
Per inviare un messaggio di composizione, impostare il timeout, ad esempio, su 30.000
ms. Quando il valore di timeout è troppo breve, XXMIT emette un timeout del messaggio. Prima di stabilire il tempo appropriato può essere necessario provare più volte.
484 33003682.24
Esempio di applicazione Hayes: comunicazione
Descrizione
Il seguente programma è una breve applicazione d'esempio per inviare il messaggio "Hello
World" con un modem compatibile Hayes (Com One, Deskline 56K).
Per avviare l'applicazione, occorre impostare la variabile "stage" a 1 in una tabella di animazione Control Expert.
Tipi di dati Variabile
start_xxmit_block command msgout
Msg_Size xmit_DONE xmit_ERROR xmit_ACTIVE xxmit_RESPTOUT xxmit_STARTDLY xxmit_ENDDLY xmit_STATUS_mem counter stage
BOOL
WORD
ARRAY[0.40] OF BYTE
INT
BOOL
BOOL
BOOL
INT
INT
INT
INT
INT
WORD
33003682.24
485
comunicazione
IECsezione per XXMIT
Programmare quanto segue in una sezione FBD:
IEC Sezioni per i comandi Modem
Programmare quanto segue in una sezione ST:
(* %S6 viene usato per generare un ritardo di 2 secondi *) %m6 := % s6; if xxmit_STATUS_Mem = 0 then if not(xxmit_STATUS = 0) then xxmit _STATUS_Mem := xxmit_STATUS; end_if; end_if;
(* Se errore XXMIT, il blocco funzione viene interrotto *) if xmit_
ERROR=1 then stage := 0; counter := 0; start_xxmit_block:=0; end_if; if stage = 1 then
(* Messaggio di inizializzazione*) xxmit_STATUS_Mem := 0; counter := 0; xxmit_ENDDLY := 700; xxmit_STARTDLY := 600; xxmit_RESPTOUT := 700;
(* Parola di comando init *) command:=2#0000001000000001; msgout[0] := 16#26;(*&->26*) msgout[1] := 16#46;(*F->46*)
486 33003682.24
msgout[2] := 16#26;(*&->26*) msgout[3] := 16#4B;(*K->46*) msgout[4] := 16#30;(*0->30*) msgout[5] := 16#26;(*&->26*) msgout[6] := 16#44;(*D->44*) msgout[7] := 16#30;(*0->30*) msgout[8] := 16#56;(*V->56*) msgout[9] := 16#31;(*1->31*) msgout[10] := 16#51;(*Q->51*) msgout[11] := 16#30;(*0->30*) msgout[12] := 16#58;(*X->58*) msgout[13] := 16#30;(*0->30*) msgout[14] := 16#45;(*E->45*) msgout[15] := 16#31;(*1->31*)
Msg_Size := 16; start_xxmit_block:=1; stage := 2; end_if; if stage = 3 then
(* Messaggio di composizione *) xxmit_STARTDLY := 100; xxmit_ENDDLY := 100; xxmit_RESPTOUT := 32000;
(* Parola di comando init *) command:=2#0000001000000010;
(* Numero estensione *) msgout[0] := 16#32;(*2*) msgout[1] := 16#35;(*5*) msgout[2] := 16#37;(*7*) msgout[3] := 16#34;(*4*) start_xxmit_block:=1;
Msg_Size := 4; stage := 4; end_if; if (stage = 5)then if RE(%m6) then counter := counter + 1; end_if;
(* Ritardo di due secondi *) if stage = 5 and counter = 2 then counter := 0; stage := 7; end_if; end_if; if stage = 7 then
(* Messaggio ASCII da inviare*) xxmit_STARTDLY := 300; xxmit_ENDDLY := 400; xxmit_RESPTOUT := 32000;
(* Parola di comando init *)
33003682.24
comunicazione
487
comunicazione
command:2=#0100001000000000; msgout[0] := 16#48; (*H*) msgout[1] := 16#65; (*e*) msgout[2] := 16#6C; (*l*) msgout[3] := 16#6C; (*l*) msgout[4] := 16#6F; (*o*) msgout[5] := 16#20; (* *) msgout[6] := 16#57; (*W*) msgout[7] := 16#6F; (*o*) msgout[8] := 16#72; (*r*) msgout[9] := 16#6C; (*l*) msgout[10] := 16#64; (*d*) msgout[11] := 16#20; (* *) msgout[12] := 16#21; (*!*) msgout[13] := 16#21; (*!*)
Msg_Size := 14; start_xxmit_block:=1; stage := 8; end_if; if stage = 100 then
(* Messaggio di disconnessione *) command:=2#0000001000000100; xxmit_STARTDLY := 300; xxmit_ENDDLY := 400; xxmit_RESPTOUT := 500; msgout[0] := 16#48;(* *) msgout[1] := 16#30;(*CR*)
Msg_Size := 2; start_xxmit_block:=1; end_if;
(* Modifica di stato dopo ogni operazione *) if xmit_DONE = 1 then start_xxmit_block:=0; if stage = 2 then stage := 3; end_if; if stage = 4 then ounter := 0; stage := 5; end_if; if stage = 8 then stage := 99; end_if; if stage = 99 then stage :=100; end_if; end_if;
488 33003682.24
Informazioni sul cablaggio
comunicazione
Panoramica
Questa sezione descrive i cavi e i pinout dei componenti hardware utilizzati con XXMIT.
Pin di uscita dei cavi
Pin di uscita del cavo di interfaccia
Per il collegamento tra il PLC e il modem o la stampante è necessario disporre di un cavo di interfaccia. Il cavo effettivo è collegato alla porta supportata dal PLC e alla porta RS232 del modem o della stampante, oppure viene diretto a un'altra porta Modbus del PLC. XXMIT supporta diversi modelli di modem e stampanti, pertanto i pin di uscita variano a seconda dei casi. Di seguito sono indicati alcuni pin di uscita.
Da 9 pin (RS-232) a 25 pin (modem) senza controllo RTS/CTS
Fare riferimento alla figura per la vista anteriore dei connettori.
Fare riferimento alla tabella dei pin di uscita dei connettori.
33003682.24
489
comunicazione
RXD
TXD
RTS
CTS
DSR
DTR
GND
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
2
3
7 con ponticello
8 con ponticello
4 con ponticello
6 con ponticello
5
Pin di uscita collegato a ...
Sì
Sì
Sì
25 pin D-shell
Pin di uscita
3
2
4 con ponticello
5 con ponticello
6 con ponticello
20 con ponticello
7
Nome segnale
RXD
TXD
RTS
CTS
DSR
DTR
GND
Da 9 pin (RS-232) a 25 pin (modem) con controllo RTS/CTS
Fare riferimento alla figura per la vista anteriore dei connettori.
490
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
RXD
TXD
2
3
Pin di uscita collegato a ...
Sì
Sì
3
2
25 pin D-shell
Pin di uscita Nome segnale
RXD
TXD
33003682.24
RTS
CTS
DSR
DTR
GND
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
7
8
4 con ponticello
6 con ponticello
5
Pin di uscita collegato a ...
Sì
Sì
Sì comunicazione
25 pin D-shell
Pin di uscita
4
5
6 con ponticello
20 con ponticello
7
Nome segnale
RTS
CTS
DSR
DTR
GND
Da 9 pin a 9 pin (null modem)
Fare riferimento alla figura per la vista anteriore dei connettori.
RXD
TXD
RTS
CTS
DSR
DTR
GND
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
Connettore a 9 pin
Pin di uscita Pin di uscita collegato a ...
Sì
Sì
2
3
7 con ponticello
8 con ponticello
4 con ponticello
6 con ponticello
5 Sì
3
2
7 con ponticello
8 con ponticello
4 con ponticello
6 con ponticello
5
Nome segnale
TXD
RXD
RTS
CTS
DSR
DTR
GND
33003682.24
491
comunicazione
Da 9 pin a 9 pin (modem)
Fare riferimento alla figura per la vista anteriore dei connettori.
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
TXD
RXD
RTS
CTS
DSR
DTR
GND
7
8
2
3
4 con ponticello
6 con ponticello
5
Pin di uscita collegato a ...
Sì
Sì
Sì
Sì
Sì
Connettore a 9 pin
Pin di uscita Nome segnale
7
8
2
3
4 con ponticello
6 con ponticello
5
TXD
RXD
RTS
CTS
DSR
DTR
GND
492 33003682.24
Da 9 pin a 25 pin (null modem)
Fare riferimento alla figura per la vista anteriore dei connettori.
comunicazione
RXD
TXD
RTS
CTS
DSR
DTR
GND
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore a 9 pin
Nome segnale Pin di uscita
25 pin D-shell
Pin di uscita Pin di uscita collegato a ...
Sì
Sì
2
3
7 con ponticello
8 con ponticello
4 con ponticello
6 con ponticello
5 Sì
2
3
4 con ponticello
5 con ponticello
6 con ponticello
20 con ponticello
7
Nome segnale
TXD
RXD
RTS
CTS
DSR
DTR
GND
33003682.24
493
comunicazione
Da RJ45-(8x8) a 25 pin (null modem) 110XCA20401
Fare riferimento alla figura per la vista anteriore dei connettori.
494
RXD
TXD
RTS
CTS
GND
DSR
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita Pin di uscita collegato a ...
Sì
Sì
25 pin D-shell
Pin di uscita
5
2
4
3
6 con ponticello
7 con ponticello
Messa a terra chassis 8
Sì
Sì
Sì
7
6
20
1
2
3
4 con ponticello
5 con ponticello
N.C.
(*) 1
(*) 5 Vcc forniti dal controller. Non collegare
No
Nome segnale
TXD
RXD
RTS
CTS
GND
DSR
DTR
Messa a terra chassis
33003682.24
comunicazione
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da RJ45-(8x8) a 9 pin (null modem) 110XCA20301
Fare riferimento alla figura per la vista anteriore dei connettori.
RXD
TXD
RTS
CTS
GND
DSR
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita Pin di uscita collegato a ...
Sì
Sì
9 pin D-shell
Pin di uscita
5
2
4
3
6 con ponticello
7 con ponticello
Sì
Sì
5
4
6
3
2
7 con ponticello
8 con ponticello
Messa a terra chassis 8 Sì
Nome segnale
TXD
RXD
RTS
CTS
GND
DTR
DSR
Involucro del connettore
N.C.
(*) 1
(*) 5 Vcc forniti dal controller. Non collegare
No
33003682.24
495
comunicazione
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da RJ45-(8x8) a 25 pin (modem) 110XCA20401
Fare riferimento alla figura per la vista anteriore dei connettori.
496
Fare riferimento alla tabella dei pin di uscita dei connettori.
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita
RXD
TXD
RTS
CTS
GND
4
3
6 con ponticello
7 con ponticello
5
Pin di uscita collegato a ...
Sì
Sì
Sì
25 pin D-shell
Pin di uscita
3
2
4 con ponticello
5 con ponticello
7
Nome segnale
RXD
TXD
RTS
CTS
GND
33003682.24
comunicazione
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita
DSR 2
Pin di uscita collegato a ...
Sì
25 pin D-shell
Pin di uscita
6
20
1
Nome segnale
DSR
DTR
Messa a terra chassis
Messa a terra chassis
N.C.
(*)
8
1
(*) 5 Vcc forniti dal controller. Non collegare
Sì
No
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da RJ45-(8x8) a 25 pin (modem) 110XCA20401
Fare riferimento alla figura per la vista anteriore dei connettori.
Fare riferimento alla tabella dei pin di uscita dei connettori.
33003682.24
497
comunicazione
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita
RXD
TXD
RTS
CTS
GND
6
7
5
4
3
Pin di uscita collegato a ...
Sì
Sì
Sì
Sì
Sì
25 pin D-shell
Pin di uscita
3
2
4
5
7
6 con ponticello
20 con ponticello
1
Nome segnale
RXD
TXD
RTS
CTS
GND
DSR
DTR
Messa a terra chassis Messa a terra chassis
N.C.
(*)
8
1
Sì
No
(*) 5 Vcc forniti dal controller. Non collegare
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da RJ45-(8x8) a RJ45-(8x8) (modem)
Fare riferimento alla figura per la vista anteriore dei connettori.
498
Fare riferimento alla tabella dei pin di uscita dei connettori.
33003682.24
comunicazione
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita Pin di uscita collegato a ...
RXD
TXD
RTS
CTS
GND
DSR
Messa a terra chassis
N.C.
(*)
8
1
5
2
4
3
6
7
(*) 5 Vcc forniti dal controller. Non collegare
Sì
Sì
Sì
Sì
Sì
Sì
Sì
No
5
2
8
4
3
6
7
Connettore RJ45
Pin di uscita
Nome segnale
RXD
TXD
RTS
CTS
GND
DSR
Messa a terra chassis
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da 9 pin a RJ45-(8x8) (modem) 110XCA20301
Fare riferimento alla figura per la vista anteriore dei connettori.
Fare riferimento alla tabella dei pin di uscita dei connettori.
33003682.24
499
comunicazione
RXD
TXD
RTS
CTS
GND
DSR
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita
5
2
4
3
6 con ponticello
7 con ponticello
Pin di uscita collegato a ...
Sì
Sì
Sì
Sì
Connettore a 9 pin
Pin di uscita Nome segnale
2
3
7 con ponticello
8 con ponticello
RXD
TXD
RTS
CTS
5 GND
6
4
Involucro del connettore
DSR
DTR
Messa a terra chassis
N.C.
(*)
8
1
(*) 5 Vcc forniti dal controller. Non collegare
Sì
No
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
Da 9 pin a RJ45-(8x8) (modem) 110XCA20301
Fare riferimento alla figura per la vista anteriore dei connettori.
500
Fare riferimento alla tabella dei pin di uscita dei connettori.
33003682.24
comunicazione
Pin di uscita dei connettori
Connettore RJ45
Nome segnale Pin di uscita
RXD
TXD
RTS
CTS
GND
6
7
5
4
3
Pin di uscita collegato a ...
Sì
Sì
Sì
Sì
Sì
Connettore a 9 pin
Pin di uscita Nome segnale
2
3
7
8
5
6 con ponticello
4 con ponticello
Involucro del connettore
RXD
TXD
RTS
CTS
GND
DSR
DTR
Messa a terra chassis 8
N.C.
(*) 1
(*) 5 Vcc forniti dal controller. Non collegare
Sì
No
AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non collegare cavi ai morsetti non utilizzati e/o ai morsetti indicati come "No Connection"
(N.C.)".
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
RJ 45 CPU High End RS 422/RS 485
Fare riferimento alla figura per la vista anteriore del connettore CPU.
Tabella dei pin di uscita per il connettore RJ 45 High End Quantum RS 422/RS 485.
33003682.24
501
comunicazione
Pin
6
7
8
3
4
1
2
5
Segnale RS-422
RX -
RX +
TX +
Nc
GND
TX -
Nc
PE opzionale
Segnale RS-485
D -
D +
Nc
GND
Nc
PE opzionale
NOTA: per il protocollo RS-485, i pin 1 e 6 devono essere cortocircuitati, così come i pin
2 e 3.
Kit adattatore cavo
Kit adattatore cavo per RJ45
Anziché crearli, l'utente può acquistare i kit adattatore cavo per i requisiti RJ45 (8x8). La tabella che segue fornisce un elenco dei kit disponibili.
Kit adattatore cavo disponibili
Descrizione
Da RJ45-(8x8) a maschio a 25 pin
Da RJ45-(8x8) a maschio a 9 pin
Da RJ45-(8x8) a femmina a 9 pin
Da RJ45-(8x8) a femmina a 25 pin
Codice di riferimento
110XCA20401
110XCA20301
110XCA20302
110XCA20402
502 33003682.24
Kit adattatore da DB a RJ45
comunicazione
Esempio di connessione cavo 1
Per terminali standard operanti a velocità contenute o che utilizzano il controllo del flusso software, è possibile utilizzare una semplice connessione a 3 pin.
Da RJ45 a DB9
33003682.24
503
comunicazione
PLC Quantum
RJ 45
RJ45-3
RJ45-4
RJ45-5
TXD
RXD
GND
Connettore modem
DB9
RXD
TXD
GND
DB25-2
DB-25-3
DB25-5
Esempio di connessione 2
Da RJ45 a DB25
PLC Quantum
RJ 45
RJ45-3
RJ45-4
RJ45-5
TXD
RXD
GND
Connettore modem
DB25
RXD
TXD
GND
DB25-3
DB-25-2
DB25-7
504 33003682.24
comunicazione
33003682.24
505
comunicazione
Client OPC UA
Contenuto della sezione
UA_Connect.......................................................................... 507
UA_ConnectionGetStatus ...................................................... 510
UA_Disconnect...................................................................... 513
UA_NamespaceGetIndexList.................................................. 515
UA_NodeGetHandleList ......................................................... 517
UA_NodeReleaseHandleList .................................................. 520
UA_ReadList ......................................................................... 522
UA_WriteList ......................................................................... 524
UA_SubscriptionCreate.......................................................... 526
UA_SubscriptionDelete .......................................................... 528
UA_MonitoredItemAddList...................................................... 530
UA_MonitoredItemOperList .................................................... 533
UA_SubscriptionProcessed .................................................... 535
UA_MonitoredItemRmvList..................................................... 537
Tipi di dati derivati OPC UA..................................................... 539
Panoramica
Questa sezione descrive le funzioni elementari e i blocchi funzione elementari della famiglia di client OPC UA .
506 33003682.24
UA_Connect
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 507
Descrizione
Questo capitolo descrive il blocco funzione UA_Connect.
Descrizione
Descrizione della funzione
Il blocco funzione UA_Connect consente di creare una connessione di trasporto per una sessione OPC-UA. La connessione viene terminata chiamando UA_Disconnect dopo aver stabilito la connessione.
L'uscita CONNECTIONHDL DWORD deve essere fornita in ingresso ad altri blocchi.
Identifica la connessione client al ServerEndPointUrl specificato.
NOTA: una CPU M580 può supportare:
• fino a 64 connessioni in parallelo tramite UA_Connect;
• per ogni connessione, leggere fino a 256 nodi di tipo semplice e scrivere fino a 128 nodi di tipo simple .
Ogni client OPC UA può accedere al server UA di destinazione solo dalle porte Ethernet integrate delle CPU o dalla porta esterna del modulo BMENUA0100.
33003682.24
507
comunicazione
Rappresentazione in FBD
Descrizione dei parametri
Parametri di ingresso:
ATTENZIONE
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
Non utilizzare un parametro di indirizzo errato per "SERVERENDPOINTURL". Ad esempio, non impostare un parametro di indirizzo che non corrisponda all'apparecchiatura di destinazione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
Nome
EXECUTE
SERVERENDPOIN-
TURL
SESSIONCONNEC-
TINFO
TIMEOUT
Tipo
BOOL string[255]
DDT
UASessionConnectInfo, pagina 539
TIME
Commento
Sul fronte di salita viene avviata la connessione.
URL
Specifica le informazioni di connessione necessarie per creare una sessione OPC UA
Tempo massimo per stabilire la connessione.
508 33003682.24
Parametri di uscita:
Nome
DONE
Tipo
BOOL
BUSY BOOL
ERROR
ERRORID
CONNECTIONHDL
BOOL
DWORD
DWORD comunicazione
Commento
Segnala che una connessione è stata correttamente stabilita.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB.
.
L'handle di connessione è valido fino alla chiamata di UA_
Disconnect.
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
33003682.24
509
comunicazione
UA_ConnectionGetStatus
Contenuto del capitolo
Descrizione ........................................................................... 510
UAConnectionStatus.............................................................. 512
UAServerState ...................................................................... 512
Descrizione
Questo capitolo descrive il blocco funzione UA_ConnectionGetStatus.
Descrizione
Descrizione della funzione
Il blocco funzione UA_ConnectionGetStatus consente di ottenere lo stato di connessione di una connessione specificata. Fornisce inoltre lo stato del server e anche il livello di servizio
Rappresentazione in FBD
510 33003682.24
Descrizione dei parametri comunicazione
Parametri di ingresso:
Nome
EXECUTE
CONNEC-
TIONHDL
TIMEOUT
Tipo Commento
BOOL Sul fronte di salita la connessione è terminata.
DWORD Handle di connessione da chiudere.
TIME Tempo massimo per chiudere la connessione.
Parametri di uscita:
Nome
DONE
BUSY
ERROR
Tipo
BOOL
BOOL
BOOL
Commento
L'FB ha completato correttamente il task.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB.
ERRORID
CONNECTION-
STATUS
DWORD
UINT
SERVERSTATE UINT
Vedere sono valide solo se ConnectionStatus è UAConnectionStatus_Connected
Vedere
.
UAConnectionStatus, pagina 512
. Le uscite ServerSate e ServerLevel
. Lo stato del server è UAServerState_
UNKOWN se ConnectionStatus non è UAConnectionStatus_Connected
SERVERLEVEL BYTE ServiceLevel descrive la capacità del server di fornire i propri dati al client.
L'intervallo di valori è compreso tra 0 e 255, dove 0 indica il livello più basso e
255 indica il livello più alto (migliore). Lo scopo è fornire ai client un'indicazione di disponibilità tra server ridondanti. Questo valore dipende dal server.
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
33003682.24
511
comunicazione
UAConnectionStatus
1
2
Valore
0
Descrizione
Il client UA è collegato al server UA.
È stato rilevato un errore nella connessione dal client UA al server UA.
Il client UA è stato disconnesso dal server UA
UAServerState
3
4
5
6
7
1
2
Valore
0
Descrizione
Il server è in uno stato operativo.
Il server è in uno stato non operativo.
Il server è in esecuzione ma non sono caricate informazioni di configurazione e perciò non trasferisce dati.
Il server è stato sospeso temporaneamente e non riceve né invia dati.
Il server è arrestato o è in corso di arresto.
Il server è in modalità test.
Il server funziona correttamente ma non può accedere ai dati dalle origini dati.
Questo stato viene utilizzato solo per indicare che il server OPC UA non riceve informazioni sui server sottostanti di stato.
512 33003682.24
UA_Disconnect
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 513
Descrizione
Questo capitolo descrive il blocco funzione UA_Disconnect.
Descrizione
Descrizione della funzione
Il blocco funzione UA_Disconnect consente di chiudere una connessione di trasporto di una sessione OPC UA.
Rappresentazione in FBD
33003682.24
513
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
CONNECTIONHDL
TIMEOUT
Tipo
BOOL
DWORD
TIME
Parametri di uscita:
Nome
DONE
BUSY
Tipo
BOOL
BOOL
ERROR
ERRORID
BOOL
DWORD
Commento
Sul fronte di salita la connessione è terminata.
Handle di connessione da chiudere.
Tempo massimo per chiudere la connessione.
Commento
L'FB ha completato il task.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB.
.
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
514 33003682.24
UA_NamespaceGetIndexList
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 515
Descrizione
Questo capitolo descrive il blocco funzione UA_NamespaceGetIndexList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_NamespaceGetIndexList consente di ottenere gli indici dello spazio dei nomi di diversi URI dello spazio dei nomi dal server.
Questo blocco legge la variabile OPCUA Namespace dal server. Esegue quindi la ricerca nelle stringhe URI dello spazio dei nomi specificate nell'ingresso nell'array dello spazio dei nomi e restituisce gli indici corrispondenti.
Rappresentazione in FBD
UA_NamespaceGetIndexList
EXECUTE
CONNECTIONHDL
NAMESPACEURISCOUNT
NAMESPACEURIS
TIMEOUT
DONE
BUSY
ERROR
ERRORID
ERRORIDS
NAMESPACEINDEXES
33003682.24
515
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
CONNECTIONHDL
NAMESPACEURI-
SCOUNT
NAMESPACEURIS
TIMEOUT
Tipo
BOOL
DWORD
UINT
ASNamespaceURIs
TIME
Commento l'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di connessione.
Numero di NamespaceURI nell'Array di NamespaceURIs.
Array di STRING con NamespaceURIs.
Tempo massimo per risposta.
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
ERRORIDS
NAMESPACEINDE-
XES
Tipo
BOOL
Commento
L'FB ha completato correttamente il task.
BOOL L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB.
BOOL
DWORD
Codice di errore, pagina 576 .
ADWErrorIDs Codici di errore.
AUINamespaceIndexes Indici dello spazio dei nomi.
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
516 33003682.24
UA_NodeGetHandleList
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 517
Descrizione
Questo capitolo descrive il blocco funzione UA_NodeGetHandleList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_NodeGetHandleList consente di ottenere gli handle del nodo per più nodi.
Passaggio all'ingresso NODEIDS di un array [ 0 .. 31 ] di elementi struttura NodeIds, questo blocco restituisce un array [ 0 .. 31 ] di NodeHdls.
Traduce NodeIds in NodeHdls per ottimizzare il carico utile delle richieste OPC UA dal client al server.
Le richieste NodeIds del client vengono registrate dal server che torna agli handle corrispondenti per le richieste future.
Rappresentazione in FBD
33003682.24
517
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
Tipo
BOOL
CONNECTIONHDL
NODEIDCOUNT
NODEIDS
TIMEOUT
DWORD
UINT
AUANodeID
TIME
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di connessione.
Numero di NodeID in array di NodeID.
Array di
Tempo per risposta.
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
NODEHDLS
Tipo Commento
BOOL
BOOL
BOOL
L'FB ha completato correttamente il task.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se ERRORID o uno dei NodeErrorID indica un errore.
.
DWORD
ANY_ARRAY_DWORD Array di NodeErrorID. (DWORD)
ANY_ARRAY_DWORD Array di handle di nodo. (DWORD)
NOTA: UA_NodeGetHandleList utilizza il servizio dei nodi di registro interni gestito sul lato server per una sessione: "Registra uno o più nodi per un uso ripetuto all'interno di una sessione."
Poiché i nodi sono gli stessi, non vi è alcuna verifica che tali nodi siano già stati registrati. In questo modo gli handle vengono incrementati. Spetta al cliente evitare di creare una nuova registrazione sui nodi già registrati. Le applicazioni PLC che utilizzano EFB client OPCUA possono utilizzare l'EFB di rilascio handle per liberare la registrazione del nodo nel server.
Per limitare le dimensioni della variabile dell'applicazione compilata per NODEIDS del pin, il numero massimo di handle del nodo è limitato a 32.
Se per uso futuro di UA_ReadList, UA_WriteList, UA_MonitoredAddItem (fino a 251 variabili) sono necessari più di 32 handle del nodo, occorre ripetere la chiamata di UA_
NodeGetHandleList con gli NodeId richiesti e concatenare l'array handle dell'uscita per riempire l'array di handle con gli altri blocchi.
518 33003682.24
comunicazione
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
519
comunicazione
UA_NodeReleaseHandleList
Contenuto del capitolo
Descrizione ........................................................................... 520
Descrizione
Questo capitolo descrive il blocco funzione UA_NodeReleaseHandleList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_NodeReleaseHandleList consente di rilasciare più handle del nodo. Dopo aver chiamato UA_NodeReleaseHandleList, NodeHdls non sarà valido.
Rappresentazione in FBD
520 33003682.24
Descrizione dei parametri comunicazione
Parametri di ingresso:
Nome
EXECUTE
CONNECTIONHDL
NODEHDLCOUNT
NODEHDLS
TIMEOUT
Tipo
BOOL
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
DWORD
UINT
Handle di connessione.
Numero di nodi nell'array NodeHdls
ANY_ARRAY_DWORD Array di handle del nodo da rilasciare.
TIME Tempo per risposta.
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
Tipo
BOOL
BOOL
BOOL
Commento
L'FB ha completato correttamente il task.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se ErrorID o uno degli NodeErrorID indica un errore.
DWORD
.
ANY_ARRAY_DWORD Array di DWORD. Contiene un codice di errore per ogni elemento valido dell'array NodeHdls.
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
521
comunicazione
UA_ReadList
Contenuto del capitolo
Descrizione ........................................................................... 522
Descrizione
Questo capitolo descrive il blocco funzione UA_ReadList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_ReadList consente di leggere i valori di più nodi tramite un elenco di handle dei nodi.
I valori del nodo vengono restituiti in VARIABILI.
Rappresentazione in FBD
522 33003682.24
Descrizione dei parametri comunicazione
Parametri di ingresso:
Nome
EXECUTE
CONNECTIONHDL
NODEHDLCOUNT
NODEHDLS
NODEADDINFOS
TIMEOUT
Tipo
BOOL
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
DWORD
UINT
Handle di connessione.
Numero di elementi validi nell'array da leggere.
ANY_ARRAY_DWORD Array di handle di nodo.
AUANodeAdditionalInfo Array di UANodeAdditionalInfo
TIME Tempo per risposta.
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
TIMESTAMPS
Tipo
BOOL
BOOL
BOOL
Commento
L'FB ha completato correttamente il task.
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se ErrorID o uno degli NodeErrorID indica un errore.
.
DWORD
ANY_ARRAY_DWORD Array di DWORD. Contiene un codice di errore per ogni elemento valido dell'array Variables.
Contiene un TimeStamp per ogni elemento valido dell'array
Variables. (tipo data e ora DT, millisecondi)
Parametri di ingresso/uscita:
Nome
VARIABILI
Tipo
Commento
Array dei valori delle variabili.
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
523
comunicazione
UA_WriteList
Contenuto del capitolo
Descrizione ........................................................................... 524
Descrizione
Questo capitolo descrive il blocco funzione UA_WriteList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_WriteList consente di scrivere i valori di più nodi tramite un elenco di handle dei nodi.
Rappresentazione in FBD
524 33003682.24
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
Tipo
BOOL
CONNECTIONHDL
NODEHDLCOUNT
NODEHDLS
NODEADDINFOS
TIMEOUT
Parametri di uscita:
Nome
DONE
BUSY
ERROR
Tipo
BOOL
BOOL
BOOL
DWORD
UINT
ANY_ARRAY_DWORD
AUANodeAdditionalInfo
TIME
ERRORID
NODEERRORIDS
DWORD
ANY_ARRAY_DWORD
Parametri di ingresso/uscita:
Nome
VARIABILI
Tipo
comunicazione
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di connessione.
Numero di elementi validi nell'array da scrivere
Array di handle di nodo
Array di UANodeAdditionalInfo
Tempo per risposta
Commento
L'FB ha completato correttamente il task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se
ErrorID o uno degli NodeErrorID indica un errore.
.
Array di DWORD. Contiene un codice di errore per ogni elemento valido dell'array Variables.
Commento
Array di valori delle variabili
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
525
comunicazione
UA_SubscriptionCreate
Contenuto del capitolo
Descrizione ........................................................................... 526
Descrizione
Questo capitolo descrive il blocco funzione UA_SubscriptionCreate.
Descrizione
Descrizione della funzione
Il blocco funzione UA_SubscriptionCreate consente di creare una sottoscrizione. La sottoscrizione viene creata in un elenco di variabili. Il blocco funzione fornisce la richiamata quando viene modificato un valore di variabile. L'intervallo di pubblicazione è definito in questo blocco funzione.
Rappresentazione in FBD
526 33003682.24
Descrizione dei parametri comunicazione
Parametri di ingresso:
Nome
EXECUTE
CONNEC-
TIONHDL
PUBLISHINGENA-
BLE
PRIORITY
Tipo
BOOL
BOOL
BYTE
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
DWORD Handle di connessione.
Attiva la pubblicazione.
TIMEOUT TIME
Priorità della sottoscrizione nel server rispetto alle altre sottoscrizioni create da questo client. Vedere i parametri OPC UA Parte 4 Capitolo 51322 (Tabella
86)
Tempo massimo per risposta
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
SUBSCRIP-
TIONHDL
Tipo
BOOL
Commento
L'FB ha completato correttamente il task
BOOL
BOOL
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se ErrorID o uno degli NodeErrorID indica un errore.
DWORD
Codice di errore, pagina 576 .
DWORD Handle di sottoscrizione.
Parametri di ingresso/uscita:
Nome
PUBLISHINGIN-
TERVAL
Tipo
TIME
Commento
Intervallo di pubblicazione (può essere modificato dall'intervallo di pubblicazione modificato dal server).
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
527
comunicazione
UA_SubscriptionDelete
Contenuto del capitolo
Descrizione ........................................................................... 528
Descrizione
Questo capitolo descrive il blocco funzione UA_SubscriptionDelete.
Descrizione
Descrizione della funzione
Il blocco funzione UA_SubscriptionDelete consente di eliminare una sottoscrizione.
Rappresentazione in FBD
528 33003682.24
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
CONNEC-
TIONHDL
TIMEOUT
Tipo
BOOL
DWORD
TIME
Parametri di uscita:
Nome
DONE
BUSY
ERROR
Tipo
BOOL
BOOL
BOOL
ERRORID DWORD comunicazione
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di connessione.
Tempo massimo per risposta
Commento
L'FB ha completato correttamente il task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se ErrorID o uno degli NodeErrorID indica un errore.
.
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
33003682.24
529
comunicazione
UA_MonitoredItemAddList
Contenuto del capitolo
Descrizione ........................................................................... 530
Descrizione
Questo capitolo descrive il blocco funzione UA_MonitoredItemAddList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_MonitoredItemAddList consente di aggiungere più handle di nodo a una sottoscrizione. Può definire a quali variabili verrà sottoscritto e quando verrà aggiornato un valore di variabile in base alla logica IEC.
È possibile chiamare questo blocco una sola volta per una sottoscrizione.
Rappresentazione in FBD
530 33003682.24
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
SUBSCRIPTIONHDL
NODEHDLCOUNT
NODEHDLS
SYNCMODE
Tipo
BOOL
DWORD
UINT
ANY_ARRAY_DWORD
UINT
NODEADDINFOS
TIMEOUT
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
MONITOREDITEMHDLS
33003682.24
AUANodeAdditionalInfo
TIME
Tipo
BOOL
BOOL
BOOL
DWORD
ANY_ARRAY_DWORD
ANY_ARRAY_DWORD comunicazione
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di sottoscrizione.
Numero di elementi validi nell'array da rimuovere.
Array di handle di nodo monitorati
• 0 = UAMSync_Unknown
Default, il risultato è un codice di errore - deve essere impostato su una delle seguenti opzioni
• 1 = UAMS_ControllerSync
• 2 = UAMS_FwSync
Per il concetto generale di modalità di sincronizzazione, vedere
Modalità di monitoraggio, pagina
Array di UANodeAdditionalInfo
Tempo massimo per risposta
Commento
L'FB ha completato correttamente il proprio task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se
ErrorID o uno degli NodeErrorID indica un errore.
Array di DWORD. Contiene un codice di errore per ogni elemento valido dell'array NOEHDLS.
Array di handle di elemento monitorati.
531
comunicazione
Parametri di ingresso/uscita:
Nome
VARIABILI
Tipo
AUAMonitoredVariables
MONITORINGPARAMETERS
VALUESCHANGED
MINLOSTVALUECOUNT
AUAMonitoringParameter
ANY_ARRAY_BOOL
ANY_ARRAY_UINT
Commento
Array di
UAMonitoredVariables, pagina 543
Array di
UAMonitoringParameter, pagina 544
Indica che i valori dell'elemento monitorato sono stati modificati.
Conteggio dei valori minimi persi se la dimensione della coda è > 1
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
532 33003682.24
UA_MonitoredItemOperList
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 533
Descrizione
Questo capitolo descrive il blocco funzione UA_MonitoredItemOperList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_MonitoredItemOperList aggiorna i valori di un elenco di variabili.
Aggiorna inoltre le informazioni corrispondenti negli elenchi associati (ad esempio,
ValuesChanged, TimeStamps e NodeQualityIDs) del programma Control. Questo blocco funzione può essere utilizzato per controllare quando la variabile verrà aggiornata nell'applicazione.
Rappresentazione in FBD
UA_MonitoredItemOperList
EXECUTE
SUBSCRIPTIONHDL
MONITOREDITEMHDLCOUNT
MONITOREDITEMHDLS
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
PUBLISHED
33003682.24
533
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
Tipo
BOOL
SUBSCRIPTIONHDL
MONITOREDHDLCOUNT
DWORD
UINT
ANY_ARRAY_DWORD
Tipo
BOOL
BOOL
BOOL
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di sottoscrizione.
Numero di elementi validi nell'array da aggiornare.
Array di handle di nodo monitorati MONITOREDHDLS
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
PUBLISHED
DWORD
ANY_ARRAY_DWORD
BOOL
Commento
L'FB ha completato correttamente il task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se
ErrorID o uno degli NodeErrorID indica un errore.
Array di DWORD. Contiene un codice di errore per ogni elemento valido dell’array
MonitoredItemHdls.
Indica che le variabili sono state pubblicate dall’ultima chiamata.
Almeno un elemento dell'array di
ValuesChanged sarà true.
Questo blocco funzione viene utilizzato quando il sistema sottostante non aggiorna automaticamente i valori delle variabili. Dopo la corretta esecuzione, è previsto che i valori delle variabili e le informazioni corrispondenti negli elenchi associati (ad esempio,
ValuesChanged, TimeStamps e NodeQualityID) siano stati aggiornati.
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
534 33003682.24
UA_SubscriptionProcessed
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 535
Descrizione
Questo capitolo descrive il blocco funzione UA_SubscriptionProcessed.
Descrizione
Descrizione della funzione
Il blocco funzione UA_SubscriptionProcessed può essere eventualmente chiamato per verificare se gli elementi monitorati sono stati pubblicati. L'uso del blocco funzione dipende dal sistema sottostante.
Rappresentazione in FBD
UA_SubscriptionProcessed
EXECUTE
SUBSCRIPTIONHDL
TIMEOUT
DONE
BUSY
ERROR
ERRORID
PUBLISHED
33003682.24
535
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
Tipo
BOOL
SUBSCRIPTIONHDL
TIMEOUT
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
PUBLISHED
DWORD
TIME
Tipo
BOOL
BOOL
BOOL
DWORD
BOOL
Commento
EF viene attivato continuamente mentre l'ingresso EXECUTE è true.
Handle di sottoscrizione.
Tempo massimo per risposta
Commento
L'FB ha completato correttamente il task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
NOTA: Questo parametro può essere aumentato anche quando questo blocco viene eseguito continuamente.
Segnala che si è verificato un errore nell'FB. Impostato a true se
ErrorID o uno degli NodeErrorID indica un errore.
.
Indica che le variabili sono state pubblicate dall’ultima chiamata.
Almeno un elemento dell'array di
ValuesChanged sarà true.
Utilizzare questo blocco funzione quando il sistema sottostante pubblica automaticamente i valori delle variabili. Si consiglia di non utilizzare questo blocco funzione insieme al blocco funzione UA_MonitoredItemOperateList.
Errore di runtime
Per un elenco di
rilevati OPC UA, consultare l'Appendice.
536 33003682.24
UA_MonitoredItemRmvList
comunicazione
Contenuto del capitolo
Descrizione ........................................................................... 537
Descrizione
Questo capitolo descrive il blocco funzione UA_MonitoredItemRmvList.
Descrizione
Descrizione della funzione
Il blocco funzione UA_MonitoredItemRmvList consente di rimuovere più nodi da una sottoscrizione tramite un elenco di handle del nodo.
Rappresentazione in FBD
33003682.24
537
comunicazione
Descrizione dei parametri
Parametri di ingresso:
Nome
EXECUTE
SUBSCRIP-
TIONHDL
MONITOREDI-
TEMHDLCOUNT
MONITOREDI-
TEMHDLS
TIMEOUT
Tipo
BOOL
DWORD
UINT
Commento
L'FB esegue il proprio task sul fronte di salita su questo ingresso.
Handle di sottoscrizione.
Numero di elementi validi nell'array da rimuovere.
ANY_ARRAY_
DWORD
TIME
Array di handle di nodo monitorati
Tempo massimo per risposta
Parametri di uscita:
Nome
DONE
BUSY
ERROR
ERRORID
NODEERRORIDS
Tipo
BOOL
BOOL
BOOL
DWORD
ANY_ARRAY_
DWORD
Commento
L'FB ha completato correttamente il task
L'FB non è terminato e si devono prevedere nuovi valori di uscita.
Segnala che si è verificato un errore nell'FB. Impostato a true se
ErrorID o uno degli NodeErrorID indica un errore.
.
Array di DWORD. Contiene un codice di errore per ogni elemento valido dell'array NOEHDLS.
Errore di runtime
Per un elenco di
codici di errore rilevati, pagina 576
OPC UA, consultare l'Appendice.
538 33003682.24
Tipi di dati derivati OPC UA
comunicazione
Contenuto del capitolo
UASessionConnectInfo .......................................................... 539
AUANodeAdditionalInfo.......................................................... 541
UANodeAdditionalInfo............................................................ 541
UAAttributeID ........................................................................ 541
UAIndexRange ...................................................................... 542
AUANodeID .......................................................................... 543
UANodeID............................................................................. 543
AUAMonitoredVariables ......................................................... 543
UAMonitoredVariables ........................................................... 543
AUAMonitoringParameter....................................................... 544
UAMonitoringParameter ......................................................... 544
ASTVariable .......................................................................... 545
STVariable ............................................................................ 545
ASNamespaceURIs ............................................................... 547
ASTTimeStamp ..................................................................... 547
STTimeStamp ....................................................................... 547
Questo capitolo descrive i tipi di dati derivati del client OPC UA supportati (DDT).
UASessionConnectInfo
La struttura UASessionConnectInfo fornisce le informazioni di connessione richieste per creare una sessione OPC UA.
Nome
SessionName
ApplicationName
Nome tipo string[255] string[255]
SecurityMsgMode
SecurityPolicy
UINT
UINT
CertificateStore string[255]
ClientCertificateName string[255]
ServerUri string[255]
Commento
Definisce il nome della sessione assegnato dal client. La stringa può essere vuota. Il nome viene visualizzato nelle informazioni di diagnostica del server. In caso di stringa vuota, il server genera un nome di sessione.
Definisce il nome leggibile dell'applicazione client OPC UA. La stringa può essere vuota.
Non supportato, il valore viene ignorato.
Non supportato, il valore viene ignorato.
Non supportato, il valore viene ignorato.
Non supportato, il valore viene ignorato.
Definisce l'URI del server. La stringa può essere vuota.
33003682.24
539
comunicazione
Nome
CheckServerCertificate
TransportProfile
UserIdentityToken
Nome tipo
BOOL
Commento
Non supportato, il valore viene ignorato.
UINT UATransportProfile. Profilo di trasporto È supportato solo il valore UATP_UATcp, ossia 1.
UAUserIdentityToken UAUserIdentityToken. Dati di autenticazione utente.
VendorSpecificParameter
SessionTimeout
UAConnectSpecific-
Parameter
TIME
Il fornitore può definire parametri specifici.
MonitorConnection
LocaleIDs
TIME
ARRAY[1..5] OF string[6] definisce per quanto tempo la sessione durerà in assenza di connessione.
Definisce l'intervallo per controllare la connessione. Se è 0, non viene eseguito alcun controllo.
Identificativo di lingua e paese. Formato: <lingua>-<paese>.
Esempio: it-IT. La stringa potrebbe essere vuota.
Dove la struttura UAUserIdentifierToken è definita da:
Nome
UAUserIdentityToken-
Type
Nome tipo
UINT
TokenParam1
TokenParam2 string[255] string[255]
Commento
Definisce il token di identità per autenticare un utente durante la creazione della sessione. 0 per Anonymous, 1 per
Username.
Se TokenType è "Anonymous" ossia valore 0, non deve essere valutato, se TokenType "Username", ossia valore 1, contiene il nome utente.
Se TokenType è "Anonymous" ossia valore 0, non deve essere valutato, se TokenType "Username", ossia valore 1, contiene password.
Dove la struttura UAConnectSpecificParameter è definita da:
Nome
OPCUARequestTimeOut
Riservato
Nome tipo
TIME
ARRAY[0..31] OF
WORD
Commento
Timeout di tutte le richieste OPCUA inviate dalla connessione corrente, se 0 internamente il valore predefinito sarà 30 s.
Per una futura estensione di questo parametro specifico.
L'uso di OPCUARequestTimeOut dipende dal comportamento del server OPC UA indirizzato. Se il server è configurato per richiedere molto tempo per rispondere in alcuni casi, ad esempio quando il modulo BMENUA0100 esegue la sincronizzazione delle modifiche online, l'utente può estendere il timeout.
540 33003682.24
AUANodeAdditionalInfo
comunicazione
AUANodeAdditionalInfo è un array [ 0 .. 255 ]di
elementi di struttura UANodeAdditionalInfo, pagina 541
.
UANodeAdditionalInfo
UANodeAdditionalInfo consente di fornire informazioni aggiuntive sul nodo ed è definito da:
Nome
AttributeID
IndexRange-
Count
IndexRange
Nome tipo
UINT
UINT
Commento
UAAttributeID. Seleziona l'attributo a cui accedere.
Numero di IndexRange validi specificati.
AUAIndexRange ARRAY OF UAIndexRange
Gli ultimi 2 elementi sono utili solo per gli array di server.
UAAttributeID
L'enumerazione UAAttributeID specifica gli attributi OPC di un nodo.
Nome
UAAI_NodeID
Valore
1
UAAI_NodeClass
UAAI_BrowseName
UAAI_DisplayName
UAAI_Description
UAAI_WriteMask 6
UAAI_UserWriteMask 7
UAAI_IsAbstract
UAAI_Symmetric
UAAI_InverseName
8
9
10
4
5
2
3
Descrizione
Identificativo approvato del nodo.
Classe del nodo.
Nome non localizzato per il nodo.
Nome localizzato per il nodo.
Descrizione localizzata del nodo.
Indica quali attributi possono essere scritti.
Indica quali attributi possono essere scritti manualmente.
Indica che un tipo di nodo non può essere istanziato.
Indica che i riferimenti avanti e indietro hanno lo stesso significato.
Selezionare il nome per un riferimento inverso.
33003682.24
541
comunicazione
Nome
UAAI_
ContainsNoLoops
UAAI_EventNotifier
UAAI_Value
UAAI_DataType
UAAI_ValueRank
UAAI_
ArrayDimensions
Valore
11
12
13
14
15
16
UAAI_AccessLevel 17
18 UAAI_
UserAccessLevel
UAAI_
MinimumSamplingInterval
UAAI_Historizing
19
20
21 UAAI_Executable
UAAI_UserExecutable 22
Descrizione
Indica che i successivi riferimenti avanti in una vista non provocano un loop.
Indica che il nodo può essere utilizzato per sottoscrivere agli eventi.
Valore di una variabile.
Id nodo del tipo dati del valore di variabile.
Numero di dimensioni nel valore.
Lunghezza di ogni dimensione di un valore dell'array.
Indica la modalità di accesso a una variabile.
Indica la modalità di accesso a una variabile dopo aver preso in considerazione i diritti di accesso dell'utente.
Specifica la velocità con la quale il server può campionare il valore per le modifiche [ms].
Specifica se il server raccoglie attivamente dati per la variabile.
Specifica se è possibile chiamare il metodo.
Specifica se è possibile chiamare il metodo manualmente.
UAIndexRange
La struttura UAIndexRange consente di fornire le informazioni sull'intervallo di indice di una dimensione di una variabile pubblicata dal server OPC UA.
Nome
StartIndex
EndIndex
Tipo di dati
UINT
UINT
Descrizione
Indice iniziale.
Indice finale
542
Per ciascuna dimensione:
1. È necessario assegnare StartIndex ed EndIndex .
2. Il valore di StartIndex deve essere minore del valore di EndIndex.
3. Per accedere a tutti gli elementi di una dimensione, è necessario assegnare StartIndex ed EndIndex in base al numero totale di elementi nella dimensione.
4. È possibile selezionare un singolo elemento di una dimensione specificando lo stesso
StartIndex ed EndIndex.
33003682.24
AUANodeID
AUANodeID è un array [ 0 .. 31] di
elementi di struttura UANodeID, pagina 543 .
comunicazione
UANodeID
UANodeID è una struttura definita da:
Nome
NamespaceIndex
Nome tipo
UINT
Identificativo
IdentifierType string[255]
UINT
Commento
Spazio dei nomi del server OPC UA. (In pratica, l'indice dello spazio dei nomi del server OPC UA ottenuto da GetNameSpaceindex (fornito dal nodo
NamespaceArray 2255 del server OPCUA)
Identificativo. Un identificativo vuoto non è consentito.
UAIdentifierType. Tipo di identificativo. I valori possibili sono:
• 0: UAIT_Numeric
• 1: UAIT_String
Nel campo Identificativo viene codificato un IdentifierType numerico come stringa, ad esempio ‘25’ per idNum = 25.
Dove NodeHdls è un array di DWord.
AUAMonitoredVariables
AUAMonitoredVariables è un array [0 .. 250] di
elementi di struttura UAMonitoredVariable, pagina 543
.
UAMonitoredVariables
UAMonitoredVariables è una struttura definita da:
33003682.24
543
comunicazione
Nome
Valori
TimeStamps
NodeQualityIds
NewValuesCount
Nome tipo
ARRAY [0..2]
OF
ARRAY [0..2]
OF
ARRAY [0..2] OF DWORD
Commento
Array di riferimento della variabile che riceverà il valore. il
Riferimento deve essere inizializzato con l'indirizzo dell'oggetto del tipo di variabile
Array di TimeStamp di ogni valore
Array di OPCUA Quality di ogni valore
UINT Conteggio dei valori max 3, aggiornato a partire dall'elemento più basso dei valori
AUAMonitoringParameter
AUAMonitoringParameter è un array [0 .. 250] di
UAMonitoringParameter, pagina 544
.
UAMonitoringParameter
UAMonitoringParameter è una struttura definita da:
Nome
SamplingInterval
QueueSize
DiscardOldest
DeadbandType
Deadband
Nome tipo
TIME
UINT
BOOL
UINT
REAL
Commento
Frequenza in millisecondi con cui il server verifica la presenza di modifiche nell'origine dati sottostante.
La dimensione della coda per l’elemento di monitoraggio.
Determinare il criterio di eliminazione in caso di overflow della coda: TRUE: ignora il meno recente nella coda di campionamento
FALSE: ignora il più recente nella coda di esempio.
Questo parametro indica se viene applicata una banda morta e, se applicata, quale tipo di banda morta:
0
1
UADT_None Non deve essere applicato alcun calcolo della banda morta.
UADT_
Absolute
AbsoluteDeadband (Vedere OPC UA
Parta 4, Capitolo 7.16.2)
2 UADT_
Percent
PercentDeadband
Ad esempio, percentuale (0,1%).
544 33003682.24
ASTVariable
ASTVariable è un array [ 0 .. 250 ] di
.
STVariable
STVariable è una struttura definita da:
Nome etNodeDataType pbyBuffer
Nome tipo
BYTE
REF_TO ANY
Descrizione
Un tipo di variabile definita dall'utente.
Riferimento alla variabile dell'applicazione.
comunicazione etNodeDataType
Configurare etNodeDataType con un tipo di dati integrato OPC UA. Vedere il riferimento online OPC UA all'indirizzo: https://reference.opcfoundation.org/v104/Core/docs/Part6/5.1.2/
I seguenti tipi di variabili OPC corrispondono ai tipi di dati IEC 61131-3:
Tipo
UATypeNull
UATypeBool
UATypeSByte
UATypeByte
UATypeInt16
UATypeUInt16
UATypeInt32
UATypeUInt32
UATypeInt64
UATypeUInt64
UATypeFloat
8
9
6
7
10
4
5
2
3
Valore
0
1
Descrizione
-
BOOL
BYTE
INT
UINT
DINT
UDINT
REAL
33003682.24
545
comunicazione
Tipo
UATypeDouble
UATypeString
Valore
11
12
Descrizione
UATypeDateTime 13
STRING (in questo caso il codice risolve la dimensione abbreviata tra la variabile di origine e di destinazione)
DT
NOTA: Il formato DT dipende dal server. Ad esempio, alcuni server possono restituire:
• UATypeUInt64 con la codifica interna di IEC 1131 DT in Control
Expert (codifica BCD). in genere il servizio BMENUA0100 o il server OFS UA.
• IEC 1131 Valore letterale stringa data e ora, in genere in OFS
UA. Questo formato è attivato nella configurazione.
Per determinare il formato DT utilizzato, è necessario consultare la documentazione del server.
ATTENZIONE
FUNZIONAMENTO IMPREVISTO DELL'APPLICAZIONE
Verificare che il tipo di variabili selezionate per le variabili locali (parametro VARIABLES per UA_ReadList, UA_WriteList, UA_MonitoredItemAddList) sia coerente con il tipo di variabili remote corrispondenti nel server OPC UA.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
REF_TO ANY
I valori delle variabili sono forniti direttamente tramite un tipo ANY: REF_TO ANY.
REF_TO ANY è un nuovo tipo definito in Control Expert. Può essere utilizzato per definire un riferimento su qualsiasi tipo di variabile. Ad esempio, può essere utilizzato come tipo di variabile o come elemento di DDT.
L'inizializzazione del riferimento (ossia la variabile a cui si riferisce) può essere eseguita solo tramite il valore iniziale nell'editor dati.
Per semplificare la generazione del codice, non è consentita la seguente sintassi:
(ad esempio VAR_REF: REF_TO ANY) in ST VAR_REF = REF (Var_ANY_TYPE).
Un blocco funzione considera REF_TO ANY come buffer di BYTE e conosce le dimensioni del buffer per non sovrascrivere o rileggere la variabile.
546 33003682.24
ASNamespaceURIs
comunicazione
ASNamespaceURIs è un array [0 .. 19] di elementi stringa[255]. Ogni stringa può contenere un URI dello spazio dei nomi.
ASTTimeStamp
ASTTimeStamp è un array [0 .. 250] di
elementi STTimeStamp, pagina 547 .
STTimeStamp
STTimeStampis è una struttura definita da:
Nome Nome tipo
DTTimeStamp DT millisecondi UINT
Descrizione
Valore data e ora in formato IEC DT
Valore timestamp in millisecondi
33003682.24
547
comunicazione
Appendici
Contenuto della sezione
Codici di errore e valori EFB ................................................... 549
Panoramica
Questa sezione contiene le appendici.
548 33003682.24
Codici di errore e valori EFB
comunicazione
Contenuto del capitolo
Errori di virgola mobile comuni ................................................ 550
Codici di errore degli EFB con parametro STATUS ................... 551
Dettagli dei codici di errore di STATO 11ss, 12ss, 13ss e
1mss..................................................................................... 555
Dettagli dei codici errore di STATO da 31ss a 37ss ................... 558
Dettagli dei Codici di errore EFB TCP/IP Ethernet 5mss............ 566
Dettagli dei codici di errore EFB Modbus Plus 6mss ................. 570
Codici di errore specifici Quantum EFB SY/MAX ...................... 570
Codici di errore rilevati EtherNet/IP.......................................... 572
Codice di interruzione SDO CANopen ..................................... 575
Codici di errore rilevati OPC UA .............................................. 576
Introduzione
La seguente tabella mostra i codici di errore e valori di errore creati per gli EFB della libreria.
Tabella dei codici di errore per la Libreria di comunicazione
Introduzione
Quando si verifica un errore, gli FFB della libreria di comunicazione generano un codice di errore nel
(per gli EFB con un parametro di uscita STATUS ), informazioni sull'errore nel buffer diag (se è abilitata la diagnostica di sistema) e un codice di errore in %SW125 (vedi EcoStruxure ™ Control Expert, Bit e parole di sistema, Manuale di riferimento). L'elenco dei codici di errore è riportato nella tabella seguente.
Extended
Tabella dei codici di errore e dei valori di errore creati per gli EFB della famiglia Extended .
33003682.24
549
comunicazione
Codice di errore
E_EFB_MSTR_ERROR
E_EFB_NOT_STATE_RAM_4X
Stato
ENO in errore
F
F
Valore di errore in
Dec
-30191
-30531
E_EFB_MSTR_ERROR
E_EFB_OUT_OF_RANGE
E_EFB_NOT_STATE_RAM_4X
W_WARN_OUT_OF_RANGE
E_EFB_NOT_STATE_RAM_4X
E_EFB_MSTR_ERROR
W_WARN_OUT_OF_RANGE
E_EFB_NOT_STATE_RAM_4X
E_EFB_MSTR_ERROR
F
F
F
F
F
F
F
F
F
-30191
-30192
-30531
30110
-30531
-30191
30110
-30531
-30191
Valore di errore in Hex
Descrizione dell'errore
16#8A11 Errore di comunicazione MSTR
16#88B-
D
Variabile non mappata all'area % MW
(4x)
16#8A11 Errore di comunicazione MSTR
16#8A1-
0
16#88B-
D
16#759-
E
16#88B-
D
Errore interno: l'EFB ha rilevato una violazione, ad es. la scrittura eccede i limiti %MW (4x)
Variabile non mappata all'area %MW
(4x)
Parametro fuori intervallo
Variabile non mappata all'area %MW
(4x)
16#8A11 Errore di comunicazione MSTR
Parametro fuori intervallo 16#759-
E
16#88B-
D
Variabile non mappata all'area %MW
(4x)
16#8A11 Errore di comunicazione MSTR
NOTA: Per informazioni sul significato dei codici dei parametri di uscita STATUS , vedere i
codici di errore, pagina 551 .
Errori di virgola mobile comuni
Introduzione
La seguente tabella mostra i codici di errore e i valori di errore comuni creati per gli errori di virgola mobile. Queste informazioni sugli errori sono riportate nel visualizzatore diagnostica e i valori del codice di errore sono scritti in %SW125 (vedi EcoStruxure ™ Control Expert, Bit e parole di sistema, Manuale di riferimento).
550 33003682.24
Errori di virgola mobile comuni
Tabella degli errori comuni di virgola mobile
Codici di errore
FP_ERROR
Valore di errore in Dec
-30150
Valore di errore in
Hex
16#8A3A
E_FP_STATUS_FAILED_IE
E_FP_STATUS_FAILED_DE
E_FP_STATUS_FAILED_ZE
E_FP_STATUS_FAILED_ZE_IE
E_FP_STATUS_FAILED_OE
E_FP_STATUS_FAILED_OE_IE
E_FP_STATUS_FAILED_OE_ZE
-30151
-30152
-30154
-30155
-30158
-30159
-30162
E_FP_STATUS_FAILED_OE_ZE_IE -30163
16#8A39
16#8A38
16#8A36
16#8A35
16#8A32
16#8A31
16#8A2E
16#8A2D
E_FP_NOT_COMPARABLE -30166 16#8A2A
Descrizione dell'errore comunicazione
Valore base (che non compare come valore di errore)
Operazione a virgola mobile non autorizzata
Operando denormalizzato - non un numero
REALE valido
Divisione per zero non autorizzata
Operazione a virgola mobile non autorizzata/ divisione per zero
Overflow a virgola mobile
Operazione a virgola mobile non autorizzata/ overflow
Overflow a virgola mobile non autorizzata/ divisione per zero
Operazione a virgola mobile non autorizzata/ overflow/divisione per zero
Errore interno
Codici di errore degli EFB con parametro STATUS
Formato dei codici di errore della funzione
I codici di errore del parametro STATUS vengono visualizzati come Mmss , dove:
• M è il codice alto
• m è il codice basso;
• ss è un sottocodice
33003682.24
551
comunicazione
Codici di errore comuni
2003
2004
2005
2006
2007
2008
2009
200A
200B
200C
200D
200E
Descrizione dei codici di errore esadecimali:
Descrizione
200F
2010
2011
2012
2013
Codice di errore hex.
1001
1002
11ss
12ss
13ss
1mss
2001
2002
Interrotto dall'utente.
Interruzione causata dall'avvio a caldo.
specifici del blocco funzione di comunicazione.
specifici del blocco funzione di comunicazione.
specifici del blocco funzione di comunicazione.
specifici del blocco funzione di comunicazione.
Nel blocco di controllo è stata specificato un tipo di operazione non supportata.
Uno o più parametri del blocco di controllo sono stati modificati mentre era attivo l'elemento
MSTR (vale solo per le operazioni il cui completamento richiede più cicli). I parametri del blocco di controllo possono essere modificati solo nei componenti MSTR non attivi.
Valore non valido nel campo lunghezza del blocco di controllo.
Valore non valido nel campo offset del blocco di controllo.
Valore non valido nei campi lunghezza e offset del blocco di controllo.
Campo dati non autorizzato nello slave.
Campo di rete non autorizzato nello slave.
Percorso di instradamento di rete non autorizzato nello slave.
Percorso di instradamento equivalente al proprio indirizzo.
Tentativo di ottenere più parole di dati globali di quelle disponibili.
Conflitto Peer cop su WR/RD globali.
Sequenza sbagliata per modifica richiesta indirizzo.
Indirizzo sbagliato per modifica richiesta indirizzo.
Il blocco di controllo o il buffer di dati non è assegnato, oppure (dimensione non corretta), parte del blocco di controllo o buffer dati sono posizionati esternamente all'intervallo %MW (4x).
Spazio per risposta nell buffer di dati troppo piccolo.
Lunghezza buffer di controllo non valida.
Parametro non valido.
Errore di sintassi nella stringa “rail.slot.chan”.
Modulo assente, non rilevato o non configurato.
552 33003682.24
comunicazione
37ss
4001
4002
4003
4004
4005
4006
4007
5mss
6mss
32ss
33ss
34ss
35ss
Codice di errore hex.
2015
2016
2017
2018
2019
201A
201B
30ss
31ss
36ss
Descrizione
Nessun dato del canale (canale fuori limiti).
Interruzione al timeout.
Contesto task non valido.
Errore servizio di sistema sicurezza Ethernet.
Dati risposta non validi (i dati ricevuti non corrispondono alla risposta prevista).
Checksum risposta errata.
Problema di compatibilità (ad esempio, versione EF o DDT non compatibile con la versione firmware).
Risposta eccezionale dallo slave Modbus con specifico codice di eccezione
.
Risposta all'errore eccezionale di protocollo Control Expert dallo slave Modbus con
specifico codice d'errore ss , pagina 558 .
Riconoscimento errore eccezionale della richiesta I/O protocollo Control Expert dallo slave
Modbus con
specifico codice errore ss , pagina 559
.
Rapporto specifico UNI-TE.
Rapporto di comunicazione generico, pagina 560
(corrisponde al campo Rapporto di comunicazione dei parametri di gestione EF Premium/M340).
Report operazione generica in caso di scambio corretto, pagina 561
(corrisponde al campo Report operazione dei parametri di gestione Premium/M340 EF quando il Report comunicazione = 16#00).
Rapporto operazione generico in caso di rifiuto del messaggio, pagina 561
(corrisponde al campo Rapporto operazione dei parametri di gestione EF Premium/M340 quando il rapporto comunicazione = 16#FF).
Codice di stato generico CIP., pagina 562
Risposta non coerente dallo slave Modbus.
Risposta Umas Modbus non coerente.
Risposta non coerente UNI-TE (dipende dal modulo)
Richiesta di lettura per le parole di stato non accettate dal canale del modulo.
I parametri di comando non accettati dal canale del modulo.
Parametri di regolazione non accettati dal modulo
Il codice di interruzione SDO (4 byte) può essere presente nei campo dati se disponibile.
Codici di errore specifici TCP/IP Ethernet, pagina 566
Errore del percorso di instradamento specifico Modbus Plus, pagina 570
.
33003682.24
553
comunicazione
Codice di errore hex.
Descrizione
7mss
8mss
F001
F002
Il sottocampo m mostra l'errore (un valore 0 significa nodo locale, 2 significa 2° dispositivo sul percorso, e così via).
Codici di errore specifici di SY/MAX, pagina 570
Codici di errore rilevati EtherNet/IP, pagina 572 .
È stato specificato un nodo di destinazione sbagliato per l'operazione MSTR. L'opzione S985 referenziata non presente o in modalità Reset.
Componente non inizializzato completamente
Codici della funzione di eccezione specifica Modbus
(30ss)
Questa tabella elenca i valori esadecimali ss nei codici di errore 30ss:
Descrizione
3006
3007
300A
300B
30FF
Codice di errore hex.
3001
3002
3003
3004
3005
Lo slave non supporta l'operazione richiesta.
Sono stati richiesti dei registri slave non esistenti.
È stato richiesto un valore dati non autorizzato.
Errore irreversibile rilevato nello slave.
Lo slave ha accettato un comando di programma lungo.
La funzione non può correntemente essere svolta: esecuzione di un comando lungo.
Lo slave ha respinto il comando di programma lungo.
Impossibile allocare per il gateway un percorso di comunicazione interna
Nessuna risposta ottenuta dal dispositivo di destinazione
Eccezione estesa Modbus. Dati aggiuntivi disponibili nel campo dati (se il campo dati è fornito):
• Lunghezza eccezione: rappresenta la lunghezza della risposta di eccezione estesa, non inclusi questi 2 byte.
• Dati eccezione: informazioni sull'errore specifiche del codice funzione coinvolto.
Il valore ss corrisponde al codice di eccezione Modbus restituito dal dispositivo slave
Modbus in caso di errore (secondo byte dell'eccezione PDU Modbus):
• codice_funzione-eccezione = codice funzione richiesta + 0x80: 1 byte
554 33003682.24
• codice_eccezione: 1 byte (restituito come ss nel codice di errore 16#30ss comunicazione
Dettagli dei codici di errore di STATO 11ss, 12ss,
13ss e 1mss
Codici di errore generici (11ss)
Questa tabella elenca il valore ss esadecimale nel codice di errore 11ss:
Descrizione Codice di errore hex.
1100
1101
1102
1103
1109
110A
110B
110E
1110
1111
Errore generico
Numero di variabili errato
Dimensione errata del parametro EXT_STATUS
Dimensione errata del parametro CTRL
Lunghezza non corrispondente
Tipo non corrispondente
Errore di scrittura in un dispositivo remoto
Nessuna variabile corretta per creare una richiesta per ricavare i dati
La dimensione della variabile supera la dimensione richiesta (1024 Byte)
Errore lunghezza stringa (stringa di destinazione < stringa di origine)
Codici di errore di STATO delle variabili locali (12ss)
Questa tabella elenca il valore ss esadecimale nel codice di errore 12ss:
Descrizione Codice di errore hex.
1200
1205
1206
1207
Errore generico relativo alle variabili locali
Errore di recupero indirizzo fisico di una variabile locale
Errore di recupero checksum tipo di una variabile locale
Errore di recupero descrittore di una variabile locale
33003682.24
555
comunicazione
Codici di errore di STATO delle variabili remote (12ss)
Questa tabella elenca il valore ss esadecimale nel codice di errore 13ss:
Descrizione Codice di errore hex.
1300
1304
1306
1307
130C
130F
Errore generico relativo alle variabili remote
Nessuna variabile locale associata
Errore di recupero checksum tipo di una variabile remota
Errore di recupero descrittore di una variabile remota
Errore di scrittura in un dispositivo remoto
Dimensione errata richiesta per ottenere informazioni su una variabile remota (superata)
Codici di errore di STATO per Variabili locali (m=2) o
Variabili remote (m=3) (1mss)
Questa tabella elenca il valore mss esadecimale nel codice di errore 1mss:
Descrizione
1m87
1m88
1m89
1m8A
1m8B
1m8C
1m8D
Codice di errore hex.
1m81
1m82
1m83
1m84
1m85
1m86
Errore di accesso ai blocchi di memoria del dizionario
Variabile o campo non trovato nel dizionario
Errore di sintassi percorso della variabile
Il percorso della variabile non è un array
Array fuori limiti
La variabile di array ha troppi subscript
Le dimensioni dell'array eccedono il valore supportato massimo
Rilevato tipo incompatibile
Valore ID tipo errato
Il bit estratto non è supportato dal tipo di variabile
Rango bit estratto non valido
Chiave attributo sconosciuta nel dizionario
Blocco tipo spazio dei nomi errato
556 33003682.24
1mC4
1mC5
1mC6
1mC7
1mC8
1mC9
1mCA
1mCB
1mCC
1mCD
1mCE
1mCF
1mD0
1mD1
1mD2
1mD3
1mD4
1mD5
1mD6
1mD7
Codice di errore hex.
1m8E
1mC0
1mC1
1mC2
1mC3
Descrizione
Tabella del checksum tipo ordinata per ID tipo non presente nell'applicazione
Errore generico del dizionario dati
Nessun dizionario dati nell'applicazione
Dizionario dati occupato o non accessibile (l'utente deve riprovare)
Dizionario dati non uguale all'ultima richiesta
Dizionario dati riservato
Variabile o campo non trovato nel dizionario
Errore di sintassi nel percorso della variabile
Il tipo di variabile non è un array
Array fuori limiti
La variabile di array ha troppi subscript
Le dimensioni dell'array eccedono il valore supportato massimo
Rilevato tipo incompatibile
Valore ID tipo errato
Il bit estratto non è supportato dal tipo di variabile
Rango bit estratto non valido
Chiave attributo sconosciuta nel dizionario
Errore di accesso ai blocchi di memoria del dizionario
Errore dimensione tabella hash nel dizionario dati precaricato (non uguale)
Valore ID evento errato
Blocco tipo spazio dei nomi errato
Tipo non trovato nel dizionario
Tipo non uguale
Il tipo presentato nella tabella ordinata non è nell'applicazione
Tabella del checksum tipo ordinata per ID tipo non presente nell'applicazione comunicazione
33003682.24
557
comunicazione
Dettagli dei codici errore di STATO da 31ss a 37ss
Codici di errore del protocollo Control Expert (31ss)
Questa tabella elenca i valori esadecimali nei codici di errore 31ss:
3187
3188
3189
318 A
318B
Codice di errore esadecimale
3100
3180
3181
3182
3183
3184
3185
3186
Descrizione
3190
3191
3192
3193
3194
3195
3196
Errore di protocollo Control Expert generico.
Errore di comunicazione generico.
PLC riservato da un altro utente.
Riservare il PLC
Richiesta sconosciuta o sotto codice.
Oggetto sconosciuto (ad esempio: %Z non implementato).
La risposta non ha potuto essere creata.
La richiesta ha dei parametri non validi (ad esempio: la richiesta è stata creata male, o ha pochi/molti parametri o ha un comando Csa errato e così via).
Sequenza sbagliata (ad esempio: EndDownload eseguito prima di BeginDownload).
La dimensione della risposta ha superato la dimensione del buffer disponibile.
Modulo non configurato (indirizzo sbagliato).
Azione non ammessa in questo progetto.
Stato occupato: l'operazione precedente è ancora in funzione, o tutte le risorse interne sono occupate per questa richiesta di I/O, o troppo sovraccarico parallelo e così via.
Errore generico: qualcosa di sbagliato nell'applicazione.
Violazione d'accesso: blocco di sola lettura-scrittura, o variabile di sola lettura, o download mentre la memoria è protetta e così via.
Oggetto non accessibile perché è in uso.
Fuori limiti: supero dell'intervallo di %MW, o troppi punti di interruzione, o pila dei richiami troppo grande e così via.
Lunghezza non valida.
Riferimento a una risorsa o task non esistente, o l'indirizzo variabile non è nell'area dati DFB, e così via.
L'oggetto o la risorsa è già definita. Ad esempio: provare ad avviare quando è già avviato, o un
ID di breakpoint già in uso, e così via.
558 33003682.24
comunicazione
3198
3199
319 A
31A0
31A1
31A2
31B0
31B1
31 B2
31B3
31C0
31FF
Codice di errore esadecimale
3197
Descrizione
Dati incoerenti o stato dei dati non ammesso. Ad esempio: dati sbagliati o valore errato durante la scrittura di un oggetto.
Oggetto esistente ma non inizializzato.
Canale fuori limiti in una richiesta di I/O.
Richiesta non ancora implementata
Applicazione incompatibile, destinazione o piattaforma sbagliata.
Controllo firma fallito.
Configurazione di memoria PCMCIA sbagliata
PLC non in modalità corretta: download con PLC in modalità RUN, o debug mentre PLC è in
NOCONF, tentativo di divisione di un task, senza punti di interruzione, operazione di upload interrotta dal download o da modifiche online e così via.
La modalità non può essere cambiata: forzatura sull'I/O all'arresto.
Si è verificato un timeout interno.
Il tempo di watchdog è scaduto.
Codice report generico dizionario dati
Errore generale non definito.
Riconoscimento errore richiesta di I/O protocollo Control
Expert (32ss)
Questa tabella elenca i valori esadecimali ss nel codice di errore 32ss:
Codice di errore esadecimale
3202
3207
3209
320 A
320B
320C
3284
Descrizione
Errore di scambio.
Un altro scambio esplicito in corso.
Operazione impossibile.
I dati sono respinti dall'IOB.
Scrittura non autorizzata
Numero massimo di scambi.
Oggetto sconosciuto.
33003682.24
559
comunicazione
Codice di errore esadecimale
3286
328 A
328B
3293
3297
3299
Descrizione
Buffer di lettura non valido.
Azione sconosciuta o non valida.
Tutti i buffer in uso.
Oggetto fuori campo.
Valore oggetto proibito (solo per operazioni di scrittura).
Canale fuori campo.
Rapporto di comunicazione generico (34ss)
Questa tabella elenca il valore esadecimale nel codice di errore 34ss:
Codice di errore esadecimale
3401
3402
3403
3404
3405
3406
3407
3409
340 A
340B
340C
340D
340E
340F
3410
3411
Descrizione
Interruzione scambio al timeout.
Interruzione scambio su richiesta utente ( CANCEL ).
Formato indirizzo non valido.
Indirizzo destinazione non corretto
Formato parametri di gestione errato.
Parametri specifici non corretti.
Errore rilevato durante l'invio alla destinazione.
Riservato.
Dimensioni buffer di ricezione insufficienti.
Nessuna risorsa di sistema processore.
Numero di scambio errato.
Nessun telegramma ricevuto.
Lunghezza errata.
Servizio del telegramma non configurato.
Modulo di rete mancante.
Richiesta mancante.
560 33003682.24
comunicazione
Codice di errore esadecimale
3412
3413
Descrizione
Server dell'applicazione già attivo.
Numero transazione UNI-TE V2 errato.
Il valore ss corrisponde al
codice del rapporto di comunicazione, pagina 42
restituito dall'EFS di comunicazione esistente sulle piattaforme Premium/Atrium/Mxxx.
Rapporto di operazione generico (35ss e 36ss)
Questo byte del rapporto è specifico per ogni funzione e indica il risultato dell'operazione sull'applicazione remota.
Il rapporto di operazione generico in caso di scambio corretto è codificato nel formato
16#35ss. Se il messaggio è rifiutato dal dispositivo remoto, il rapporto avrà il formato
16#36ss.
Questa tabella elenca il valore esadecimale ss nel codice di errore 35ss:
Codice di errore esadecimale
3501
3502
Descrizione
Richiesta non elaborata.
Risposta scorretta.
Il valore ss nei codici 35ss corrisponde al campo del rapporto di operazione dei parametri di gestione EF Premium/M340 quando il
rapporto di comunicazione , pagina 43 = 16#00.
Questa tabella elenca il valore ss nel codice di errore 36ss:
Codice di errore esadecimale
3601
3602
3603
3604
3605
3606
Descrizione
Nessuna risorsa verso il processore.
Nessuna risorsa di linea.
Nessun dispositivo o dispositivo senza risorse.
Guasto di linea.
Errore di lunghezza.
Canale di comunicazione in errore.
33003682.24
561
comunicazione
360C
360D
360F
3611
3612
3614
3615
3616
Codice di errore esadecimale
3607
3608
360B
3617
3618
3621
3630
Descrizione
Errore di indirizzamento.
Errore applicazione.
Risorse di sistema non disponibili.
Funzione di comunicazione non attiva.
Destinatario assente.
Problema di instradamento o canale non configurato.
Formato indirizzo non gestito.
Nessuna risorsa di destinazione.
Nessuna connessione operativa (esempio: Ethernet TCP/IP)
Nessuna risorsa sul canale locale.
Accesso non autorizzato (esempio: Ethernet TCP/IP).
Configurazione di rete non coerente (esempio: Ethernet TCP/IP).
Connessione temporaneamente non disponibile.
Server applicazione arrestato.
Errore di trasmissione.
Il valore ss nei codici 36ss corrisponde al campo del rapporto di operazione dei parametri di gestione EF Premium/M340 quando il
rapporto di comunicazione, pagina 43
= 16#FF.
Codice stato generico CIP (37ss)
La tabella seguente elenca i codici di stato che possono essere presenti nel campo del codice di stato generale di un messaggio di risposta di errore CIP rilevato:
Descrizione stato Codice di stato generale (in esadecimale)
3701
Nome stato
Connessione non riuscita
3702 Risorsa non disponibile
Un servizio relativo alla connessione ha restituito un errore nel percorso della connessione.
Le risorse necessarie all'oggetto per eseguire il servizio richiesto non erano disponibili.
562 33003682.24
comunicazione
Codice di stato generale (in esadecimale)
3703
Nome stato
Valore parametro non valido
3704
3705
3706
3707
3708
3709
370A
370B
370C
370D
370E
370F
3710
3711
3712
3713
3714
3715
Descrizione stato
Errore segmento percorso
Destinazione percorso sconosciuta
Trasferimento parziale
Perdita connessione
Servizio non supportato
Valore attributo non valido
Errore lista attributi
Già in modalità/stato richiesti
Conflitto stato oggetto
Oggetto già esistente
Attributo non impostabile
Violazione privilegio
Conflitto stato dispositivo
Dimensioni dati risposta troppo grandi
Frammentazione di un valore primitivo
Dati non sufficienti
Attributo non supportato
Troppi dati
Vedere il codice di stato 0x20, ovvero il valore preferito da utilizzare per questa condizione.
Mancata comprensione dell'identificativo del segmento percorso o della sintassi del segmento da parte del nodo di elaborazione.
L'elaborazione del percorso si interrompe quando viene rilevato un errore nel segmento del percorso.
Il percorso fa riferimento a una classe di oggetti, un'istanza o un elemento strutturale non conosciuti o non contenuti nel nodo di elaborazione. L'elaborazione del percorso si interrompe quando viene rilevato un errore di destinazione sconosciuta.
È stata trasferita solo una parte dei dati previsti.
La connessione di messaggistica è stata interrotta.
Il servizio richiesto non è stato implementato o non è stato definito per questa classe di oggetti/istanza.
Sono stati rilevati dati attributo non validi.
Lo stato di un attributo nella risposta Get_Attribute_List o
Set_Attribute_List è diverso da zero.
L'oggetto si trova già nella modalità o nello stato richiesti dal servizio.
L'oggetto non può eseguire il servizio richiesto nella modalità o nello stato corrente.
L'istanza richiesta dell'oggetto da creare è già esistente.
È stata ricevuta la richiesta di modificare un attributo non modificabile.
Una verifica di autorizzazione/privilegio non è riuscita correttamente.
La modalità o lo stato del dispositivo impedisce l'esecuzione del servizio richiesto.
Le dimensioni dei dati da trasmettere nel buffer risposte superano la dimensione allocata del buffer risposte.
Il servizio ha specificato un'operazione che provoca la frammentazione di un valore dati primitivo, ovvero la metà di un tipo di dati REAL.
Il servizio non ha fornito dati sufficienti per eseguire l'operazione specificata.
L'attributo specificato nella richiesta non è supportato.
Il servizio ha fornito più dati di quelli previsti.
33003682.24
563
comunicazione
Codice di stato generale (in esadecimale)
3716
3717
3718
3719
371A
371B
371C
371D
371E
371F
3720
3721
3722
3723
Nome stato
L'oggetto non esiste.
Sequenza frammentazione servizio non in corso
Dati attributo non memorizzati
Salvataggio non riuscito
Instradamento non riuscito, pacchetto richiesta troppo grande
Instradamento non riuscito, pacchetto risposta troppo grande
Dati di immissione lista attributi mancanti
Lista valori attributi non valida
Errore servizio integrato
Errore specifico del fornitore
Parametro non valido
Descrizione stato
L'oggetto specificato non esiste nel dispositivo.
La sequenza di frammentazione per questo servizio non è attualmente attiva per questi dati.
I dati attributo di questo oggetto non sono stati salvati prima del servizio richiesto.
I dati attributo di questo oggetto non sono stati salvati a causa di tentativo non riuscito.
Il pacchetto di richiesta del servizio era troppo grande per poter essere trasmesso su una rete nel percorso verso la destinazione. Il dispositivo di instradamento ha dovuto interrompere il servizio.
Il pacchetto di risposta del servizio era di dimensioni troppo grandi per poter essere trasmesso su una rete nel percorso dalla destinazione. Il dispositivo di instradamento ha dovuto interrompere il servizio.
Il servizio non ha fornito un attributo in un elenco di attributi necessario al servizio per l'esecuzione del comportamento richiesto.
Il servizio restituisce la lista di attributi forniti con le informazioni di stato per gli attributi non validi.
Un servizio integrato ha fornito un errore rilevato.
È stato rilevato un errore specifico del fornitore. Il campo dei codici aggiuntivi della risposta di errore definisce il tipo di errore specifico verificatosi. Usare questo codice di errore solo quando nessuno dei codici elencati nella tabella o nella definizione della classe di oggetti corrisponde precisamente all'errore rilevato.
Un parametro associato alla richiesta non era valido. Questo codice viene utilizzato quando un parametro non soddisfa i requisiti di questa specifica e/o i requisiti definiti in una specifica dell'oggetto applicazione.
Valore scrivibile una sola volta o supporto già scritto
Risposta ricevuta non valida
Overflow buffer
È stato eseguito un tentativo di scrittura su un supporto scrivibile una sola volta (ad esempio unità WORM, PROM) che è già stato scritto o di modifica di un valore che non può essere modificato una volta definito.
È stata ricevuta una risposta non valida (ad esempio il codice servizio della risposta non corrisponde al codice servizio della richiesta oppure il messaggio di risposta è minore delle dimensioni minime previste per la risposta). Questo codice di stato può indicare altre cause di risposta non valide.
Le dimensioni del messaggio ricevuto sono maggiori delle dimensioni massime del buffer di ricezione. L'intero messaggio è stato eliminato.
564 33003682.24
comunicazione
Codice di stato generale (in esadecimale)
3724
3725
3726
3727
3728
3729
372A
372B
372C
Nome stato Descrizione stato
Errore formato messaggio Il formato del messaggio ricevuto non è supportato dal server.
Errore chiave nel percorso Il segmento chiave incluso come primo segmento del percorso non corrisponde al modulo di destinazione. Lo stato specifico dell'oggetto indica la parte del controllo chiave in cui si è verificato l'errore.
Dimensioni percorso non valide Le dimensioni del percorso inviate con la richiesta del servizio non sono sufficientemente grandi per consentire l'indirizzamento della richiesta verso un oggetto oppure sono stati inclusi troppi dati di indirizzamento.
Attributo non previsto nella lista È stato eseguito un tentativo di impostare un attributo che non può essere impostato in questo momento.
ID membro non valido L'ID membro specificato nella richiesta non esiste nella classe/ istanza/attributo specificati.
Membro non impostabile
Server solo del gruppo 2 — errore generale
Errore Modbus sconosciuto
Attributo non accessibile
È stata ricevuta la richiesta di modificare un membro non modificabile.
Questo codice di errore rilevato può essere segnalato solo dai server DeviceNet del gruppo 2 con al massimo 4 Kb di spazio codice e solo al posto di un servizio non supportato, di un attributo non supportato o di un attributo non impostabile.
Un convertitore CIP - Modbus ha ricevuto un codice di eccezione
Modbus sconosciuto.
È stata ricevuta una richiesta di lettura di un attributo non leggibile.
372D - 37CF –
37D0...37FF
Riservato errori classe oggetto e servizi
Riservato da CIP per estensioni future.
Questa categoria di codici di errore rilevati indica errori specifici della classe dell'oggetto. Utilizzare questa categoria solo se nessuno dei codici presentati in questa tabella riflette precisamente l'errore rilevato.
NOTA: Estratto con autorizzazione da The CIP Networks Library, Volume 1 , Common
Industrial Protocol (CIP ™ ), Edition 3.6, Aprile 2009.
33003682.24
565
comunicazione
Dettagli dei Codici di errore EFB TCP/IP Ethernet
5mss
Codici di errore specifici della rete Ethernet TCP/IP
(5mss)
NOTA: Gli errori Ethernet sono gestiti dai moduli Ethernet o dal coprocessore Ethernet eccetto il codice errore 5050 (hex).
Significato
5020
5023
5024
5025
5026
5027
5028
Codice di errore esadecimale
5001
5004
5005
5006
5009
500C
500D
5011
5016
5017
5029
502A
502B
502C
Risposta incoerente della rete
Chiamata di sistema interrotta
Errore I/O
Indirizzo inesistente
Descrittore socket non valido
Memoria insufficiente
Autorizzazione negata
Voce esistente
Argomento non valido
Memoria insufficiente per la tabella interna
Connessione interrotta
Quest'operazione è stata bloccata e il socket non è bloccante
Il socket non è bloccante e la connessione non può essere chiusa
Il socket non è bloccante e un precedente tentativo di connessione non è stato concluso
Operazione socket eseguita su un dispositivo non socket
Indirizzo di destinazione non valido
Messaggio troppo lungo
Tipo di protocollo non corretto per il socket
Protocollo non disponibile
Protocollo non supportato
Tipo di socket non supportato
566 33003682.24
comunicazione
504B
5050
5051
5052
33003682.24
5030
5031
5032
5033
5034
Codice di errore esadecimale
502D
502E
502F
5035
5036
5037
5042
5046
5047
5048
5049
504A
5038
5039
503A
503B
503C
503D
5040
5041
Significato
Operazione non supportata su un socket
Famiglia protocolli non supportata
Famiglia indirizzi non supportata
Indirizzo già utilizzato
Indirizzo non disponibile
Rete non funzionante
Rete irraggiungibile
Connessione di rete persa in seguito a ripristino
Connessione interrotta dal peer
Connessione ripristinata dal peer
È richiesto un buffer interno ma non è possibile assegnarlo
Socket già collegato
Socket non collegato
Impossibile inviare dopo l'arresto del socket
Troppi riferimenti, impossibile unire
Timeout connessione (vedere nota seguente)
Connessione rifiutata
Host non funzionante
Impossibile raggiungere l'host di destinazione da questo nodo
La directory non è vuota
NI_INIT ha restituito ‘-1’
MTU non è valido
Lunghezza hardware non valida
Impossibile trovare la route specificata
Collisione nella selezione della chiamata:queste condizioni sono già state selezionate da un altro task
ID task non valido
Nessuna risorsa di rete
Errore lunghezza
Errore di indirizzamento
567
comunicazione
Codice di errore esadecimale
5053
5054
5055
5056
5057
51ss
53ss
Significato
Errore applicazione
Il client non può elaborare la richiesta
Nessuna risorsa di rete
Connessione TCP non operativa
Configurazione incoerente
Codici di errore servizio SMTP, pagina 568
Codici di errore servizio Modbus client, pagina 569
NOTA:
• Il codice errore 5055 (hex) può presentarsi prima di un codice errore 503C (hex).
• Nessun dispositivo remoto ha la precedenza su un timeout.
Codici di errore servizio SMTP (51ss)
Codici di errore servizio SMTP esadecimale:
Significato
5104
5105
5106
5107
5108
Codice di errore esadecimale
5100
5101
5102
5103
5109
510A
510B
Errore interno
Componente SMTP non operativo
Intestazione del messaggio e-mail non configurata
Valore intestazione messaggio e-mail non valido
Impossibile stabilire la connessione al server SMTP
Errore nella trasmissione del contenuto del corpo del messaggio e-mail al server SMTP
Chiusura della connessione SMTP a causa di un errore restituito dal server
Richiesta HELO SMTP non riuscita
Richiesta MAIL SMTP non riuscita. È possibile che il server SMTP richieda l'autenticazione
Richiesta RCPT SMTP non riuscita
Nessun destinatario accettato dal server SMTP
Richiesta DATA SMTP non riuscita
568 33003682.24
comunicazione
Codice di errore esadecimale
510C
510D
510E
Significato
Lunghezza della richiesta di invio e-mail non valida
Autenticazione non riuscita
Una richiesta di azzeramento componente è stata ricevuta durante la connessione
Codici di errore servizio Modbus Client (53ss)
5304
5305
5306
5307
5308
5309
530A
530B
530C
Codici di errore esadecimali servizio Modbus client:
Significato Codice di errore esadecimale
5300
5301
5302
5303
Non utilizzato (riservato per uso futuro)
Il componente ha esaurito le risorse
L'indirizzo IP fornito non è appropriato. Ad esempio: 0.0.0.0, o indirizzo broadcast o indirizzo multicast, ecc.
Timeout della transazione. Il server remoto ha accettato una richiesta e non ha risposto entro 2 minuti.
Tutte le connessioni sono correntemente in uso
Accesso rifiutato
Impossibile raggiungere la rete
Host non attivo
Connessione di rete persa in seguito a ripristino
Rete non attiva
Connessione rifiutata
Timeout connessione
Intestazione MBAP errata
33003682.24
569
comunicazione
Dettagli dei codici di errore EFB Modbus Plus
6mss
Codici di errore specifici di Modbus Plus (6mss)
NOTA: Il campo m nel codice errore 6mss è un Indice nelle informazioni di instradamento che mostra dove è stato rilevato un errore.
m = 0 indica che l'errore è stato rilevato nel nodo locale, m = 2 indica che è stato rilevato nel secondo dispositivo del percorso, e così via.
Descrizione Codice di errore esadecimale
6m01
6m02
6m03
6m04
6m05
6m06
6m07
6m08
6m10
6m20
6m40
6m80
F001
Nessuna ricezione risposta
Accesso al programma negato
Nodo non funzionante o non in grado di comunicare
Ricevuta risposta insolita
Percorso dei dati router-nodo occupato
Slave non funzionante
Indirizzo di destinazione errato
Tipo di nodo non autorizzato nel percorso di instradamento
Lo slave ha rifiutato il comando
Lo slave ha perso una transazione attivata
Ricevuto un percorso di uscita master imprevisto
Ricevuta risposta imprevista
È stato specificato un nodo di destinazione sbagliato per l'operazione MSTR .
Codici di errore specifici Quantum EFB SY/MAX
Codici di errore specifici di SY/MAX
570
Quando si usa SY/MAX Ethernet, nel registro CONTROL[1] del blocco di controllo possono comparire tre tipi di errori aggiuntivi.
I codici di errore hanno il seguente significato:
33003682.24
• Errore 71xx: errori rilevati dal dispositivo remoto SY/MAX
• Errore 72xx: errori rilevati dal server
• Errore 73xx: errori rilevati dal convertitore Quantum comunicazione
Codici di errore esadecimali specifici di SY/MAX
7113
711D
7149
714B
7101
7203
7209
F720
7210
7211
Codici di errore esadecimali specifici di SY/MAX:
Descrizione Codice di errore esadecimale
7101
7103
7109
F710
7110
7111
7213
721D
7249
724B
Codice op non valido rilevato dal dispositivo remoto SY/MAX
Indirizzo non valido rilevato dal dispositivo remoto SY/MAX
Tentativo di scrivere in un registro con protezione in scrittura rilevato dal dispositivo remoto
SY/MAX
Overflow ricevitore rilevato dal dispositivo remoto SY/MAX
Lunghezza non valida rilevata dal dispositivo remoto SY/MAX
Dispositivo remoto non attivo, nessuna connessione (si verifica quando sono esauriti tutti i tentativi e i timeout) rilevata dal dispositivo remoto SY/MAX
Parametro non valido in un'operazione di lettura rilevato dal dispositivo remoto SY/MAX
Percorso non valido rilevato dal dispositivo remoto SY/MAX
Parametro non valido in un'operazione di scrittura rilevato dal dispositivo remoto SY/MAX
Numero di derivazione non valida rilevato dal dispositivo remoto SY/MAX
Codice op non valido rilevato dal server SY/MAX
Indirizzo non valido rilevato dal server SY/MAX
Tentativo di scrivere in un registro con protezione in scrittura rilevato dal server SY/MAX
Overflow ricevitore rilevato dal server SY/MAX
Lunghezza non valida rilevata dal server SY/MAX
Dispositivo remoto non attivo, nessuna connessione (si verifica quando sono esauriti tutti i tentativi e i timeout) rilevata dal server SY/MAX
Parametro non valido in un'operazione di lettura rilevato dal server SY/MAX
Percorso non valido rilevato dal server SY/MAX
Parametro non valido in un'operazione di scrittura rilevato dal server SY/MAX
Numero di derivazione non valido rilevato dal server SY/MAX
33003682.24
571
comunicazione
Codice di errore esadecimale
7301
7303
7309
731D
734B
Descrizione
OpCode non valido in una richiesta del blocco MSTR dal convertitore Quantum
Stato del modulo QSE lettura/scrittura (indirizzo 200 fuori campo)
Tentativo di scrivere in un registro protetto in scrittura quando si esegue una scrittura di stato
(percorso 200)
Percorso non valido rilevato dal convertitore Quantum.
Percorsi validi:
• dest_drop, 0xFF
• 200, dest_drop, 0xFF
• 100+drop, dest_drop, 0xFF
• Tutti gli altri valori di instradamento producono un errore
Si è verificato uno dei seguenti errori:
• Non è stata configurata una CTE (Configuration Extension Table)
• Non è stata creata una voce della tabella CTE per il numero di slot del modello QSE
• Non è stata specificata una derivazione valida
• Il modulo QSE non è stato azzerato dopo la creazione della CTE.
Nota: dopo aver scritto e configurato la CTE e aver scaricato il modulo QSE, occorre azzerare il modulo QSE affinché le modifiche diventino effettive.
• Quando si usa un'istruzione MSTR non sono stati specificati uno slot o una derivazione validi
Codici di errore rilevati EtherNet/IP
Codici di errore rilevati EtherNet/IP
572
I codici di errore esadecimali rilevati EtherNet/IP sono i seguenti:
Codice di errore rilevato (hex)
800D
8012
8015
Descrizione
Timeout sulla richiesta del messaggio esplicito
Dispositivo non valido
Eseguire la seguente azione:
• Nessuna risorsa per gestire il messaggio oppure
• errore rilevato internamente: nessun buffer disponibile, nessun collegamento disponibile, impossibile inviare al task TCP
33003682.24
comunicazione
8111
8113
8114
8115
8116
8117
8118
8119
811A
811B
8123
8124
8125
8126
8127
8131
8132
8103
8106
8107
8108
8109
8110
Codice di errore rilevato (hex)
8018
Descrizione
Eseguire la seguente azione:
• Un altro messaggio esplicito per questo dispositivo è in corso oppure
• connessione TCP o sessione di incapsulamento in corso
Timeout sulla richiesta Forward_Open 8030
Nota: i seguenti errori rilevati 81xx sono errori rilevati di risposta Forward_Open che hanno origine alla destinazione remota e che sono ricevuti tramite connessione CIP.
8100 Connessione in uso o Forward_Open doppio
Classe di trasporto e combinazione di trigger non supportate
Conflitto di proprietà
Connessione di destinazione non trovata
Parametro di connessione di rete non valido
Dimensioni connessione non valide
Destinazione per connessione non configurata
RPI non supportato
Fuori da connessioni
Mancata corrispondenza ID fornitore o codice prodotto
Mancata corrispondenza tipo di prodotto
Mancata corrispondenza revisione
Percorso applicazione prodotto o consumato non valido
Percorso applicazione configurazione non valido o incoerente
Connessione di solo ascolto non aperta
Oggetto destinazione fuori da connessioni
RPI inferiore a tempo inibizione produzione
Timeout connessione
Timeout richiesta non collegata
Errore rilevato parametro in richiesta e servizio non collegati
Messaggio troppo grande per servizio unconnected_send
Riconoscimento non collegato senza risposta
Memoria insufficiente per il buffer
Ampiezza di banda di rete non disponibile per dati
33003682.24
573
comunicazione
Codice di errore rilevato (hex)
8133
8134
8135
8136
8141
8142
8145
Descrizione
Nessun filtro ID connessione consumata disponibile
Non configurato per inviare dati priorità programmata
Mancata corrispondenza firma programmazione
Validazione firma programmazione impossibile
Porta non disponibile
Indirizzo collegamento non valido
Segmento non valido in percorso connessione
8146
8147
8148
8149
814A
814B
814C
814D
814E
814F
Errore rilevato in percorso di connessione servizio Forward_Close
Programmazione non specificata
Indirizzo collegamento a se stesso non valido
Risorse secondarie non disponibili
Connessione rack già stabilita
Connessione modulo già stabilita
Varie
Mancata corrispondenza connessione ridondante
Nessuna altra risorsa consumatore collegamento configurabile dall'utente: il numero configurato di risorse per un'applicazione produttrice ha raggiunto il limite
Nessuna altra risorsa consumatore collegamento configurabile dall'utente: nessun consumatore configurato per un'applicazione produttrice in uso
8160
8170
8171
8173
Specifico del fornitore
Nessun dato disponibile applicazione di destinazione
Nessun dato disponibile applicazione di origine
Non configurato per off-subnet multicast
81A0
81B0
Errore rilevato in assegnazione dati
Errore rilevato in stato oggetto opzionale
81C0 Errore rilevato in stato dispositivo opzionale
Nota: tutti gli errori rilevati 82xx sono errori rilevati di risposta della sessione registro.
8200 Il dispositivo di destinazione non ha risorse sufficienti
574 33003682.24
comunicazione
Codice di errore rilevato (hex)
8208
820F
Descrizione
Il dispositivo di destinazione non riconosce intestazione incapsulamento messaggio
Errore rilevato riservato o sconosciuto da destinazione
Codice di interruzione SDO CANopen
Panoramica
Il codice di interruzione SDO viene utilizzato quando il comando SDO non riesce.
Codice di interruzione SDO
Valore del codice interruzione SDO
(esadecimale)
0503 0000
0504 0000
0504 0001
0504 0002
0504 0003
0504 0004
0504 0005
0601 0000
0601 0001
0601 0002
0602 0002
0604 0041
0604 0042
0604 0043
0604 0047
Parametro
Bit toggle non alternato.
Timeout protocollo SDO.
Specificatore comando client/server non valido o sconosciuto.
Dimensione blocco non valida (solo modalità blocco).
Numero sequenza non valido (solo modalità blocco).
Errore CRC (solo modalità blocco).
Memoria esaurita.
Accesso non supportato a un oggetto.
Tentativo di lettura su un oggetto di sola scrittura.
Tentativo di scrittura su un oggetto di sola lettura.
L'oggetto non esiste nel dizionario oggetti.
Impossibile mappare l'oggetto sul PDO.
Il numero e la lunghezza degli oggetti da mappare supera la lunghezza PDO.
Motivo di incompatibilità del parametro generale.
Incompatibilità interna generale nel dispositivo.
33003682.24
575
comunicazione
Valore del codice interruzione SDO
(esadecimale)
0606 0000
0607 0010
0607 0012
0607 0013
0609 0011
0609 0030
0609 0031
0609 0032
0609 0036
0800 0000
0800 0020
0800 0021
0800 0022
Parametro
0800 0023
Impossibile accedere a causa di un errore hardware.
Il tipo di dati non corrisponde, la lunghezza del parametro di servizio non corrisponde
Il tipo di dati non corrisponde, la lunghezza del parametro è eccessiva
Il tipo di dati non corrisponde, la lunghezza del parametro è troppo bassa
Indice secondario inesistente.
Gamma valori del parametro superata (solo per accesso in scrittura).
Valore del parametro scritto troppo alto.
Valore del parametro scritto troppo basso.
Il valore massimo è inferiore al valore minimo.
Errore generale
Impossibile trasferire o archiviare i dati nell'applicazione.
Impossibile trasferire o archiviare i dati nell'applicazione a causa di controllo locale.
Impossibile trasferire o archiviare i dati nell'applicazione a causa dello stato del dispositivo presente.
Impossibile completare la generazione dinamica del dizionario oggetti o non è presente alcun dizionario oggetti (ad esempio, il dizionario oggetti viene generato da un file non valido).
Codici di errore rilevati OPC UA
Struttura del codice di errore rilevato OPC UA
576
I codici di errore rilevati OPC UA sono lunghi 4 byte del tipo di dati DWORD.
NOTA: Il bit 29 del codice di errore rilevato a 4 byte consente di distinguere tra i codici definiti da:
• OPC Foundation
• PLCopen o Schneider Electric
Campo
Severity
Intervallo di bit
30:31
Descrizione
Indica se il codice di errore rilevato rappresenta una condizione riuscita, non riuscita o incerta, come indicato di seguito:
33003682.24
Campo
ErrorType
ErrorType2 comunicazione
Intervallo di bit
Descrizione
29
00
01
10
11
0
1
Operazione riuscita
Insicura
Non riuscita
Riservato
L'operazione è riuscita. È possibile utilizzare i risultati associati.
Operazione non riuscita. Impossibile utilizzare i risultati associati.
Operazione parzialmente riuscita. I risultati associati potrebbero non essere utili per alcuni scopi.
Riservato per uso futuro. Si consiglia ai client di considerare non riuscito un codice di errore rilevato di tale gravità (10).
Indica un codice di errore rilevato definito da OPC Foundation. Per una descrizione vedere la specifica OPC UA all'indirizzo: https://reference.opcfoundation.org/v104/Core/docs/Part6/A.2/
Indica un codice di errore rilevato PLCopen o specifico del fornitore, segnalato dal bit 28.
28 Questo bit può essere valutato solo se il bit 29 = 1.
0
Errore PLCopen rilevato, pagina 577
.
1
Errore rilevato specifico Schneider Electric, pagina 579 .
Codici di errore rilevati PLCOpen
Categoria: Generale
Codice di errore rilevato (bit 0..27)
16#A000_0001
16#A000_0002
Categoria: Collegamento
Codice di errore rilevato (bit 0..27)
16#A000_0100
16#A000_0101
16#A000_0102
16#A000_0103
Descrizione
Errore interno, permanente.
Errore temp.; l'FB potrebbe tentare di raggiungere FW.
Descrizione
Impossibile stabilire il collegamento.
Impossibile trovare il nome host richiesto.
Collegamento già stabilito.
Connessione non riuscita a causa dell'impostazione della sicurezza.
33003682.24
577
comunicazione
Categoria: Collegamento (Continuare)
Codice di errore rilevato (bit 0..27)
16#A000_0104
16#A000_0105
Descrizione
Collegamento sospeso.
ConnectionHdl fornito sconosciuto.
Categoria: Spazio dei nomi
Codice di errore rilevato (bit 0..27)
16#A000_0200
Descrizione
Impossibile trovare sul server uno spazio dei nomi con il nome richiesto.
Categoria: Nodo
Codice di errore rilevato (bit 0..27)
16#A000_0300
16#A000_0301
16#A000_0302
16#A000_0303
16#A000_0304
16#A000_0305
16#A000_0306
16#A000_0307
16#A000_0308
Descrizione
La variabile del PLC di destinazione è troppo breve per i dati recuperati.
Tipo non valido o non supportato.
NodeHdl fornito sconosciuto.
MethodHdl fornito sconosciuto.
Lettura non riuscita per un motivo sconosciuto.
Scrittura non riuscita per un motivo sconosciuto.
Chiamata al metodo non riuscita per un motivo sconosciuto.
Conversione parametro ingresso chiamata al metodo non riuscita.
Conversione parametro uscita chiamata al metodo non riuscita.
ATTENZIONE: questo significa che la chiamata al metodo è stata eseguita correttamente, ma non è stato possibile convertire i valori restituiti.
Categoria: Attributo
Codice di errore rilevato (bit 0..27)
16#A000_0400
16#A000_0401
Descrizione
Utilizzato in UA_NodeGetInformation per elementi, inesistenti in questo NodeClass.
Utilizzato in UA_NodeGetInformation per elementi, che devono esistere ma non esistono.
578 33003682.24
Categoria: Monitoraggio
Codice di errore rilevato (bit 0..27)
16#A000_0500
16#A000_0501
16#A000_0502
16#A000_0503
Descrizione
SubscriptionHdl fornito sconosciuto.
MonitoredItemHdl fornito sconosciuto.
Sinc controller e sinc firmware misti nello stesso elenco
Modalità sinc non valida.
comunicazione
Codici di errore rilevato specifici Schneider Electric
Codice di errore rilevato (bit 0..27)
16#B0000001
16#B0000003
16#B0000004
16#B0000006
16#B0000007
16#B0000011
16#B0000012
16#B0000013
16#B0000014
16#B0000016
16#B0000017
16#B0000018
16#B0000019
16#B0000103
16#B0000021
16#B0000022
Descrizione
Rilevato errore interno del client.
Il valore di NodeHdlCount non è valido. Intervallo di valori valido: 1..
MAX_ELEMENTS_NODELIST.
Il ServerEndpointUrl specificato non deve essere una stringa nulla.
Il valore di NodeIdCount non è valido. Intervallo di valori valido: 1..
MAX_ELEMENTS_NODELIST.
Risposta non valida o errata dal server OPC UA.
Il valore di TransportProfile non è supportato.
Il valore di SessionTimeout non è supportato. Intervallo di valori valido:
30 s...1 d
Il valore di MonitorConnection non è supportato. Intervallo di valori valido: 500 ms...10 min
Il valore di UAUserIdentityTokenType non è supportato.
Il valore di IndexRangeCount non è supportato. Intervallo di valori valido: 0...3
Il valore di StartIndex non deve essere maggiore del valore di
EndIndex.
Il valore di IdentifierType non è supportato.
L'Identifier specificato non deve essere una stringa nulla.
Il BufferSize specificato è troppo piccolo.
Le dimensioni del nodo del tipo dati specificato non corrispondono alle dimensioni del nodo sul server OPC UA.
Il BufferAddress specificato non deve essere 0.
33003682.24
579
comunicazione
Codice di errore rilevato (bit 0..27)
16#B0000024
16#B0000025
16#B0000026
16#B0000027
16#B0000028
16#B0000029
16#B0000030
16#B0000099
16#B0000100
16#B0000102
16#B0000103
16#B0000104
16#B0000105
16#B0000106
16#B0000107
16#B0000108
16#B0000500
16#B0000501
16#B0000502
16#B0000503
16#B0000504
16#B0000505
16#B0000506
Descrizione
La dimensione dati specificata del buffer non corrisponde alla dimensione dati del nodo di destinazione sul server.
L'UserIdentityTokenParam specificato non è valido. Con
UserIdentityTokenType = UAUITT_Username, nessuno dei ST_
UserIdentyTokenParams può essere una stringa nulla.
L'InvalidSecurityPolicy specificato non è valido.
L'InvalidSecurityMsgMode specificato non è valido.
L'AttributeID specificato non è supportato.
Il valore di NamespaceUrisCount non è valido. Intervallo di valori valido: 1...MAX_ELEMENTS_NAMESPACES
Il valore di NamespaceUri non deve essere una stringa nulla.
Il timeout è scaduto durante l'attesa di una risposta dal client
(componente firmware).
Il timeout è scaduto durante l'attesa di una risposta dal server OPC UA.
Il DataType specificato del nodo non corrisponde al tipo di dati del nodo sul server OPC UA.
Il BufferSize specificato è troppo piccolo.
Il controller non fornisce sufficiente memoria per elaborare i dati ricevuti.
Dopo il rilevamento di una modifica online, il client OPC UA è stato reinizializzato e l'esecuzione del blocco funzione interrotta.
Handle del nodo già recuperati per questa sessione. Rilasciare gli handle del nodo già recuperati prima di ottenerne di nuovi.
La dimensione del tipo specificata dal cliente da etNodeDataTypedo non corrisponde alla dimensione del valore
I dati sono scalari ma il loro tipo non è supportato
Il valore di MonitoredItemHdlCount non è valido. Intervallo di valori valido: 1..MAX_ELEMENTS_MONITORLIST
Numero massimo di sottoscrizioni raggiunto per la CPU M580.
Handle del nodo già recuperati per questa sessione. Rilasciare gli handle del nodo già recuperati prima di ottenerne di nuovi.
Gestore eventi di sistema non creato.
Gestore eventi specifico della sottoscrizione non creato.
Dimensioni dati (incluse tutte le dimensioni) troppo grandi.
Gli handle elementi monitorati forniti non corrispondono a quelli della sottoscrizione
580 33003682.24
comunicazione
Codice di errore rilevato (bit 0..27)
16#B0000508
16#B0000509
16#B0000511
Descrizione
Operazione interrotta. Vedere il codice di errore nella tabella errorId del nodo
Numero massimo di connessioni raggiunto per CPU M580.
Numero massimo di servizi simultanei raggiunti, ossia il numero di EFB che possono essere eseguiti in parallelo, in stato Occupato.
Altri codici errore rilevato specifici Schneider Electric
NOTA: I codici seguenti segnalano che è stato rilevato un errore ma non si interrompe l'esecuzione del blocco funzione.
Codice di errore rilevato (bit 0..27)
16#70000001
16#70000002
Descrizione
Esecuzione parziale - vedere il codice di errore nella tabella errorId del nodo
La lunghezza dell'array di destinazione è troppo piccola rispetto all'origine
33003682.24
581
comunicazione
Glossario
A
ADDM_TYPE:
Questo tipo predefinito è utilizzato come uscita per la funzione ADDM. È un ARRAY[0..8]
OF Int. Si trova nella libreria della stessa famiglia degli EF che lo utilizzano.
ADDR_TYPE:
Questo tipo predefinito è utilizzato come uscita per la funzione ADDR. È un ARRAY[0..5]
OF Int. Si trova nella libreria della stessa famiglia degli EF che lo utilizzano.
ANY:
Tra i diversi tipi di dati esiste una gerarchia. Nei DFB, talvolta, è possibile dichiarare variabili che possono contenere più tipi di valori. In tal caso, si utilizzano i tipi ANY_xxx .
La figura seguente descrive questa struttura gerarchica:
33003682.24
583
comunicazione
ARRAY:
Un ARRAY è una tabella di elementi dello stesso tipo.
La sintassi è la seguente: ARRAY [<limiti>] OF <Tipo>
Esempio:
ARRAY [1..2] OF BOOL è una tabella a una dimensione composta da due elementi di tipo
BOOL .
ARRAY [1..10, 1..20] OF INT è una tabella a due dimensioni composta da 10x20 elementi di tipo INT .
B
BOOL:
BOOL è l’abbreviazione del tipo booleano. Si tratta dell'elemento dati di base in informatica.
Una variabile di tipo BOOL possiede uno dei due seguenti valori: 0 ( FALSE ) o 1 ( TRUE )
Un bit estratto di parola è di tipo BOOL , ad esempio: %MW10.4
.
BYTE:
Un gruppo di 8 bit è definito BYTE . L'immissione di un BYTE avviene in modalità binaria o in base 8.
Il tipo BYTE è codificato in un formato a 8 bit che, in formato esadecimale, va da 16#00 a
16#FF .
D
DINT:
DINT è l'abbreviazione del formato Double INTeger (intero doppio) (codificato a 32 bit).
I limiti superiore/inferiore sono i seguenti: da -(2 alla 31ª potenza) a (2 alla 31ª potenza) - 1.
Esempio:
-2147483648 , 2147483647 , 16#FFFFFFFF .
584 33003682.24
comunicazione
E
EFB:
EFB è l'abbreviazione di Elementary Function Block (blocco funzione elementare).
Si tratta del blocco, utilizzato in un programma, che esercita una funzione software predefinita.
Gli EFB possiedono stati e parametri interni. Anche se gli ingressi sono identici, i valori delle uscite possono essere diversi. Ad esempio, un contatore possiede un'uscita che indica che il valore di preselezione è stato raggiunto. Questa uscita è impostata a 1 quando il valore corrente è uguale al valore preimpostato.
EN:
EN corrisponde a EN able (attiva) e si tratta di un ingresso di blocco facoltativo. Quando l'ingresso EN è attivato, viene stabilita automaticamente anche un'uscita ENO .
Se EN = 0, il blocco non è attivato, il programma interno non viene eseguito ed ENO viene impostato su 0.
Se EN = 1, il programma interno del blocco viene eseguito ed ENO viene impostato su 1.
Nel caso si verifichi un errore, ENO viene impostato su 0.
Se l'ingresso EN non è collegato, viene automaticamente impostato su 1.
ENO:
ENO corrisponde a E rror NO tification (notifica di errore) e si tratta dell'uscita associata all'ingresso facoltativo EN .
Se ENO viene impostato su 0 (perché EN = 0 o in caso di errore di esecuzione):
• lo stato delle uscite dei blocchi funzione resta identico a quello in cui si trovavano durante l'ultimo ciclo di scansione eseguito correttamente;
• le uscite delle funzioni e le procedure vengono impostate su "0".
F
Funzione:
Vedere EF.
33003682.24
585
comunicazione
I
INT:
INT è l'abbreviazione del formato single INTeger (intero semplice) (codificato a 16 bit).
I limiti superiore/inferiore sono i seguenti: da -(2 alla 15ª potenza) a (2 alla 15ª potenza) - 1.
Esempio:
-32768 , 32767 , 2#1111110001001001 , 16#9FA4 .
S
STRING:
Una variabile di tipo STRING è costituita da una stringa di caratteri ASCII. La lunghezza massima di una stringa di caratteri è di 65.534 caratteri.
V
Variabili assegnate:
Variabile di cui è possibile conoscere la posizione nella memoria del PLC. Ad esempio, la variabile Water_pressure è associata a %MW102 .
Water_pressure viene quindi definita variabile assegnata.
586 33003682.24
comunicazione
W
WORD:
Il tipo WORD è codificato in un formato a 16 bit ed è utilizzato per eseguire elaborazioni in stringhe di bit.
Questa tabella fornisce i limiti inferiore/superiore delle basi che è possibile utilizzare:
Base
Esadecimale
Ottale
Binario
Limite inferiore
16#0
8#0
2#0
Limite superiore
16#FFFF
8#177777
2#1111111111111111
Esempi di rappresentazione
Dati
0000000011010011
1010101010101010
0000000011010011
Rappresentazione in una delle basi
16#D3
8#125252
2#11010011
33003682.24
587
comunicazione
Indice
A
ADDM .......................................................73
ADDM_TYPE ...................................... 73, 80
ADDMX.....................................................80
ADDR .......................................................88
ADDR_TYPE .............................................88
B
Blocco funzione
ETH_PORT_CTRL ............................... 126
C
CANCEL ...................................................91
CLOSE_TCP_CNX ....................................95
codici di errore
11ss..................................................... 555
12ss .................................................... 555
13ss .................................................... 555
1mss.................................................... 555
CREAD_REG....................................... 551
CWRITE_REG ..................................... 551
EXCH_QX............................................ 551
GET_TS_EVT_M.................................. 551
GET_TS_EVT_Q.................................. 551
INPUT_CHAR_QX................................ 551
PRINT_CHAR_QX................................ 551
PWS_CMD .......................................... 551
PWS_DIAG .......................................... 551
READ_PARAM_MX .............................. 551
READ_REG ......................................... 551
READ_REG_QX................................... 551
READ_REMOTE .................................. 551
READ_SDO ......................................... 551
READ_STS_MX ................................... 551
READ_STS_QX ................................... 551
RESTORE_PARAM_MX ....................... 551
SAVE_PARAM_MX............................... 551
WRITE_PARAM_MX ............................ 551
WRITE_REG........................................ 551
WRITE_REG_QX ................................. 551
588
WRITE_REMOTE................................. 551
WRITE_SDO........................................ 551
Codici di errore ........................................ 549
comunicazione - istruzioni
CANCEL ................................................91
DATA_EXCH ........................................ 113
informazioni generali per Premium e
Atrium ..................................................46
INPUT_BYTE ....................................... 139
INPUT_CHAR ...................................... 144
OUT_IN_CHAR .................................... 212
Comunicazione - istruzioni
ADDM....................................................73
CLOSE_TCP_CNX.................................95
CREAD_REG.........................................99
CWRITE_REG ..................................... 106
ETH_PORT_CTRL ............................... 126
EthPort_Control_MX ............................. 131
MBP_MSTR ......................................... 159
OUT_IN_MBUS.................................... 220
PRINT_CHAR ...................................... 248
RCV_TLG ............................................ 262
READ_ASYN ....................................... 267
READ_DDT.......................................... 270
READ_GDATA ..................................... 275
READ_REG ......................................... 278
READ_REMOTE .................................. 290
READ_SDO ......................................... 298
READ_VAR.......................................... 303
SEND_EMAIL ...................................... 324
SEND_REQ ......................................... 328
SEND_TLG .......................................... 345
SYMAX_IP_ADDR................................ 350
TCP_IP_ADDR..................................... 354
UNITE_SERVER .................................. 359
WRITE_ASYN ...................................... 364
WRITE_GDATA .................................... 369
WRITE_REG........................................ 372
WRITE_REMOTE................................. 384
WRITE_SDO........................................ 392
WRITE_VAR ........................................ 397
XXMIT ................................................. 433
comunicazioni - istruzioni
ADDR ....................................................88
Comunicazioni - istruzioni
ADDMX .................................................80
EXCH_QX............................................ 134
INPUT_CHAR_QX................................ 154
33003682.24
I
ModbusP_ADDR .................................. 207
PRINT_CHAR_QX................................ 257
READ_REG_QX................................... 286
WRITE_REG_QX ................................. 380
CREAD_REG ............................................99
CWRITE_REG......................................... 106
comunicazione
O
OPC UA
client......................................................63
modalità monitoraggio.............................65
OUT_IN_CHAR ....................................... 212
OUT_IN_MBUS ....................................... 220
D
DATA_EXCH ........................................... 113
Descrizione dei parametri ......................... 416
Disponibilità delle istruzioni .........................30
P
PRINT_CHAR.......................................... 248
PRINT_CHAR_QX ................................... 257
E
Esecuzione asincrona
ETH_PORT_CTRL ............................... 126
Esecuzione sincrona
ETH_PORT_CTRL ............................... 126
ETH_PORT_CTRL................................... 126
EthPort_Control_MX ................................ 131
EXCH_QX ............................................... 134
R
RCV_TLG ............................................... 262
READ_ASYN........................................... 267
READ_DDT ............................................. 270
READ_GDATA......................................... 275
READ_REG............................................. 278
READ_REG_QX ...................................... 286
READ_REMOTE ..................................... 290
READ_SDO............................................. 298
READ_VAR ............................................. 303
G
gestione delle stringhe - istruzioni
INPUT_CHAR ...................................... 144
OUT_IN_CHAR .................................... 212
PRINT_CHAR ...................................... 248
INPUT_BYTE .......................................... 139
INPUT_CHAR.......................................... 144
INPUT_CHAR_QX ................................... 154
istruzioni
disponibilità ............................................30
S
SEND_EMAIL.......................................... 324
SEND_REQ............................................. 328
SEND_TLG ............................................. 345
Servizi FTP/TFTP
attivazione/disattivazione ...............122, 194
Servizi HTTP
attivazione/disattivazione ...............122, 194
Sicurezza
ETH_PORT_CTRL ............................... 126
Struttura dati
XMIT_CFG........................................... 419
XMIT_SET ........................................... 418
SYMAX_IP_ADDR ................................... 350
M
MBP_MSTR ............................................ 159
ModbusP_ADDR ..................................... 207
33003682.24
T
TCP_IP_ADDR ........................................ 354
Tipo di esecuzione
ETH_PORT_CTRL ............................... 126
589
comunicazione
U
UA_Connect ............................................ 507
UA_ConnectionGetStatus......................... 510
UA_Disconnect ........................................ 513
UA_MonitoredItemAddList ........................ 530
UA_MonitoredItemOperList ...................... 533
UA_MonitoredItemRmvList ....................... 537
UA_NamespaceGetIndexList .................... 515
UA_NodeGetHandleList ........................... 517
UA_NodeReleaseHandleList .................... 520
UA_ReadList ........................................... 522
UA_SubscriptionCreate ............................ 526
UA_SubscriptionDelete ............................ 528
UA_SubscriptionProcessed ...................... 535
UA_WriteList ........................................... 524
UNITE_SERVER ..................................... 359
W
WRITE_ASYN ......................................... 364
WRITE_GDATA ....................................... 369
WRITE_REG ........................................... 372
WRITE_REG_QX .................................... 380
WRITE_REMOTE .................................... 384
WRITE_SDO ........................................... 392
WRITE_VAR............................................ 397
X
XMIT ....................................................... 412
XMIT_CFG .............................................. 419
XMIT_SET............................................... 418
XXMIT..................................................... 433
590 33003682.24
Schneider Electric
35 rue Joseph Monier
92500 Rueil Malmaison
France
+ 33 (0) 1 41 29 70 00 www.se.com
Poiché gli standard, le specifiche tecniche e la progettazione possono cambiare di tanto in tanto, si prega di chiedere conferma delle informazioni fornite nella presente pubblicazione.
© 2022 Schneider Electric . Tutti i diritti sono riservati.
33003682.24
Shkarko
Reklamë