Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021. Importanti informazioni utente. Leggere questa documentazione e i documenti elencati ...
Istruzioni generali per i controllori programmabili Micro800 Numeri di catalogo 2080-LC10, 2080-LC20, 2080-LC30, 2080-LC50, 2080-LC70 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Sostituisce la pubblicazione -2080-RM001I-IT-E - Gennaio 2019 Manuale di riferimento Istruzioni originali Istruzioni generali per i controllori programmabili Micro800 Importanti informazioni utente Leggere questa documentazione e i documenti elencati nella sezione delle risorse aggiuntive riguardo l'installazione, la configurazione e l'operatività di questa attrezzatura prima di installare, configurare, attivare o eseguire la manutenzione di questo prodotto. Agli utenti viene richiesto di acquisire familiarità con le istruzioni per l'installazione e il cablaggio, oltre al soddisfacimento dei requisiti di tutti i codici, leggi e normative in vigore. È necessario che attività come installazione, regolazione, messa in servizio, utilizzo, assemblaggio, disassemblaggio e manutenzione siano eseguiti da personale opportunamente formato in ottemperanza al codice di pratica. Se questa attrezzatura viene utilizzata in una modalità non specificata dal produttore, la protezione fornita da questa attrezzatura potrebbe risultarne compromessa. In nessun caso Rockwell Automation, Inc. potrà essere ritenuto responsabile dei danni indiretti o conseguenziali risultanti dall'applicazione di queste apparecchiature. Gli esempi e i diagrammi in questo manuale sono inclusi a solo scopo informativo. A causa delle numerose variabili e requisiti associati a una particolare installazione, Rockwell Automation, Inc. non può essere ritenuto responsabile dell'uso effettivo basato sugli esempi e i diagrammi. Nessuna responsabilità riguardo brevetti viene assunta da Rockwell Automation, Inc. in relazione all'utilizzo di informazioni, circuiti, apparecchiature o software descritti in questo manuale. È proibita la riproduzione del contenuto di questo manuale, in parte o in toto, senza il consenso scritto di Rockwell Automation, Inc. All'interno del manuale, quando necessario, vengono utilizzate note per evidenziare considerazioni sulla sicurezza. AVVERTENZA: Identifica informazioni relative a procedure o circostanze che possono provocare un'esplosione in un ambiente pericoloso, che può portare a lesioni personali o morte, danni materiali o perdite economiche. ATTENZIONE: Identifica informazioni relative a procedure o circostanze che possono portare a lesioni personali o morte, danni materiali o perdite economiche. I segnali di attenzione consentono di identificare un pericolo, evitare un pericolo e riconoscere le conseguenze IMPORTANTE Identifica informazioni che sono critiche per la corretta applicazione e comprensione del prodotto. Le etichette che forniscono precauzioni specifiche possono trovarsi all'esterno o all'interno dell'attrezzatura. RISCHIO DI FOLGORAZIONE: Etichette possono essere applicate sull'apparecchiatura o al suo interno, ad esempio una trasmissione o un motore, per avvisare le persone della possibile presenza di tensione elettrica pericolosa. RISCHIO DI USTIONI: Etichette possono essere applicate sull'apparecchiatura o al suo interno, ad esempio una trasmissione o un motore, per avvisare le persone che le superfici possono raggiungere temperature pericolose. RISCHIO DI ARCO ELETTRICO: Etichette possono essere applicate sull'apparecchiatura o al suo interno, per esempio il centro di controllo motore, per avvisare le persone del possibile rischio di arco elettrico. L'arco elettrico può causare lesioni gravi e in casi estremi morte. Indossare dispositivi di protezione individuale (DPI) adeguati. Seguire TUTTE le disposizioni in materia di sicurezza sul lavoro e di dispositivi di protezione individuale (DPI). 2 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Introduzione Sommario In questo manuale ..................................................................... 13 Controllori supportati .................................................................. 13 Risorse aggiuntive ...................................................................... 13 Avvisi legali................................................................................. 14 Capitolo 1 Ricerca di informazioni sulle Blocchi di istruzione ................................................................... 15 istruzioni e sugli elementi ladder Operatori ............................................................................... 15 Funzioni ................................................................................ 16 Blocchi funzione .................................................................... 17 Istruzione impostate in ordine alfabetico .................................... 18 Capitolo 2 Linguaggio LD (Ladder Diagram) Programmazione in Ladder Diagram ......................................... 25 Ambiente di sviluppo del programma LD ................................... 26 Barra degli strumenti Istruzione (LD)..................................... 26 Aggiungere elementi istruzione dalla barra degli strumenti Istruzione ......................................................................... 27 Capitolo 3 Elementi del ladder diagram (LD) Piolo ...................................................................................... 29 Aggiunta di un ramo a un programma LD........................ 30 Etichette ramo ................................................................. 31 Commenti piolo................................................................ 32 Diramazione .......................................................................... 33 Aggiunta di un ramo a un programma LD........................ 34 Blocco istruzione (LD) ........................................................... 37 Bobina................................................................................... 37 Aggiunta di elementi a bobina ......................................... 38 Bobina diretta .................................................................. 41 Bobina invertita ................................................................ 41 Bobina fronte di discesa impulso ..................................... 42 Bobina fronte di salita impulso ......................................... 43 Bobina impostata ............................................................. 44 Bobina ripristinata ............................................................ 45 Contatto ................................................................................ 47 Aggiunta di un contatto a un programma LD ................... 47 Contatto diretto ................................................................ 50 Contatto invertito.............................................................. 51 Contatto fronte di salita impulso ...................................... 51 Contatto fronte di discesa impulso................................... 52 Ritorno .................................................................................. 53 Salto...................................................................................... 54 Blocchi di istruzione nei programmi LD ...................................... 55 Utilizzo nell'editor di lingue LD.................................................... 56 Esempi di programma ladder diagram (LD)................................ 57 Tasti di scelta rapida LD ............................................................. 59 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 3 Sommario Istruzione allarme Istruzioni aritmetiche Capitolo 4 LIM_ALRM (limite allarme)......................................................... 63 Capitolo 5 ABS (valore assoluto) ................................................................ 67 ACOS (arcocoseno di origine) ................................................... 69 ACOS_LREAL (arcocoseno Long Real)..................................... 71 Addition ...................................................................................... 72 ASIN (arcoseno) ......................................................................... 74 ASIN_LREAL (arcoseno Long Real) .......................................... 76 ATAN (arcotangente) ................................................................. 77 ATAN_LREAL (arcotangente Long Real) ................................... 79 COS (coseno)............................................................................. 81 COS_LREAL (coseno Long Real) .............................................. 82 Division....................................................................................... 84 EXPT (esponente) ...................................................................... 86 LOG (log base 10) ...................................................................... 87 MOD (modulo)............................................................................ 89 MOV (sposta) ............................................................................. 91 Multiplication............................................................................... 92 Neg (negazione) ......................................................................... 94 POW (incremento alimentazione)............................................... 95 RAND (valore casuale)............................................................... 97 SIN (seno) .................................................................................. 99 SIN_LREAL (seno Long Real).................................................. 100 SQRT (radice quadrata) ........................................................... 102 Subtraction ............................................................................... 103 TAN (tangente) ......................................................................... 105 TAN_LREAL (tangente Long Real) .......................................... 107 TRUNC (troncamento).............................................................. 108 Istruzioni porta seriale ASCII Capitolo 6 ABL (prova ASCII per riga del buffer) ...................................... 111 ACL (buffer cancellazione ASCII) ............................................ 113 AHL (righe di arbitraggio ASCII) ............................................... 115 ACB (caratteri ASCII nel buffer) ............................................... 118 ARD (lettura ASCII) .................................................................. 120 ARL (riga di lettura ASCII) ........................................................ 123 AWA (scrittura ASCII aggiunta) ................................................ 125 AWT (scrittura ASCII) ............................................................... 128 Dettagli dei parametri ASCII ..................................................... 130 Tipo di dati ABLACB ........................................................... 131 Tipo di dati ACL .................................................................. 131 Tipo di dati AHL ChannelSts ............................................... 131 Tipo di dati AHLI ................................................................. 132 Tipo di dati ARDARL ........................................................... 132 Tipo di dati AWAAWT ......................................................... 133 Capitolo 7 4 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni binarie Sommario AND_MASK (maschera AND).................................................. 135 BSL (spostamento del bit a sinistra) ........................................ 137 BSR (spostamento del bit a destra).......................................... 141 NOT_MASK (maschera NOT bit-to-bit) .................................... 144 OR_MASK (maschera OR bit-to-bit) ........................................ 146 ROL (rotazione a sinistra)......................................................... 147 ROR (rotazione a destra) ......................................................... 149 SHL (spostamento a sinistra) ................................................... 151 SHR (spostamento a destra) .................................................... 153 XOR_MASK (maschera OR esclusivo) .................................... 155 Istruzioni booleane Capitolo 8 F_TRIG (rilevamento fronte di discesa) ................................... 159 R_TRIG (rilevatore fronte di salita) .......................................... 161 RS (reset/impostazione) ........................................................... 163 OR ............................................................................................ 164 AND.......................................................................................... 165 XOR (OR esclusivo) ................................................................. 166 NOT.......................................................................................... 166 SR (impostazione/reset) ........................................................... 167 TTABLE (tavola della verità)..................................................... 169 MUX8B (multiplexer di ingressi BOOL 8) ................................. 172 MUX4B (multiplexer di ingressi BOOL 4) ................................. 175 Istruzioni di comunicazione Capitolo 9 COM_IO_WDOG ..................................................................... 179 MSG_CIPGENERIC (messaggio generico per Common Industrial Protocol) ................................................................................... 182 Tipo di dati CIPAPPCFG..................................................... 184 Tipo di dati CIPCONTROLCFG .......................................... 185 Tipo di dati CIPSTATUS ..................................................... 186 Bit di stato CIPSTATUS ................................................. 187 Codici di errore CIPSTATUS ......................................... 187 Tipo di dati CIPTARGETCFG ............................................. 188 Percorso di destinazione per la messaggistica CIP ....... 189 Connessioni per messaggio CIP/EIP............................. 190 Timer per timeout messaggio CIP ................................. 191 MSG_CIPSYMBOLIC (messaggio simbolico per Common Industrial Protocol) ................................................................... 191 Tipo di dati CIPSYMBOLICCFG ......................................... 193 Sintassi scrittura/lettura dei messaggi simbolici............. 194 Dimensione pacchetto dati supportata per la funzione CIP seriale ................................................................................. 195 MSG_MODBUS (messaggio modbus) ..................................... 196 Tipo di dati MODBUSLOCPARA......................................... 198 Processo di esecuzione del messaggio (Rung = TRUE) .... 200 Tipo di dati MODBUSTARPARA ......................................... 202 MSG_MODBUS2 (messaggio MODBUS/TCP) ........................ 202 Tipo di dati MODBUS2LOCPARA....................................... 205 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 5 Sommario Tipo di dati MODBUS2TARPARA ....................................... 206 Processi di esecuzione di messaggi e diagrammi di temporizzazione ....................................................................... 208 Processo di esecuzione del messaggio (generale) ............. 209 Processo di esecuzione del messaggio (Rung = TRUE) .... 210 Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = TRUE) ................................................................... 211 Processo di esecuzione del messaggio (Rung = FALSE)... 211 Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = FALSE).................................................................. 212 Processo di esecuzione di messaggi (errore) ..................... 213 Diagramma di temporizzazione dell'esecuzione del messaggio (errore) ................................................................................ 214 Utilizzo dei blocchi funzione di comunicazione (messaggio) .... 215 Configurazione dei valori dei dati oggetto per i messaggi espliciti (MSG_CIPGENERIC) ............................................ 215 Esempio: Come creare un programma di generazione messaggi MSG_CIPGENERIC per leggere i dati da un controllore ........................................................................... 217 Identificazione dei valori iniziali per le variabili di input, MSG_CIPGENERIC ...................................................... 218 Aggiunta di variabili e di un blocco funzione MSG_CIPGENERIC ...................................................... 219 Configurazione dei valori iniziali per le variabili ............. 220 Aggiunta di un contatto e di una bobina......................... 222 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPGENERIC) ...................................... 223 Verifica della corretta configurazione IP sul controllore B ....................................................................................... 225 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore ........................................................................... 226 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPSYMBOLIC) .................................... 227 Aggiunta di un operatore Equal e di una bobina ............ 228 Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto ................................................. 230 Verifica della corretta configurazione IP sul controllore B ....................................................................................... 232 Creazione di una variabile globale per il controllore B ... 233 Revisione dei risultati del programma completo ............ 234 Esempio: Come configurare una comunicazione Modbus per la lettura da e la scrittura in una unità ................................. 236 Supporto per protocolli di comunicazione................................. 240 Canali di comunicazione integrati ....................................... 242 Istruzioni per il confronto 6 Capitolo 10 Uguale ..................................................................................... 243 Greater than............................................................................. 246 Greater than or equal ............................................................... 247 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Sommario Less than.................................................................................. 249 Less than or equal .................................................................... 250 Not equal .................................................................................. 251 Istruzioni contatore Capitolo 11 CTD (conteggio decrescente) .................................................. 255 CTU (conteggio crescente) ...................................................... 257 CTUD (conteggio crescente decrescente)................................ 259 Istruzioni per la conversione dati Capitolo 12 ANY_TO_BOOL....................................................................... 263 ANY_TO_BYTE ....................................................................... 264 ANY_TO_DATE ....................................................................... 265 ANY_TO_DINT......................................................................... 267 ANY_TO_DWORD ................................................................... 268 ANY_TO_INT ........................................................................... 269 ANY_TO_LINT ......................................................................... 270 ANY_TO_LREAL...................................................................... 272 ANY_TO_LWORD.................................................................... 273 ANY_TO_REAL........................................................................ 274 ANY_TO_SINT ......................................................................... 275 ANY_TO_STRING ................................................................... 276 ANY_TO_TIME ........................................................................ 277 ANY_TO_UDINT ...................................................................... 278 ANY_TO_UINT......................................................................... 279 ANY_TO_ULINT....................................................................... 280 ANY_TO_USINT ...................................................................... 281 ANY_TO_WORD...................................................................... 282 Istruzioni per l'elaborazione dei dati Capitolo 13 MEDIA ..................................................................................... 285 COP ......................................................................................... 287 Copia in un tipo di dati differente......................................... 290 Esempio di array della stringa COP .................................... 290 MIN (minimo)............................................................................ 292 MAX (massimo)........................................................................ 294 Istruzioni per l'High Speed Counter (HSC) Capitolo 14 Che cos'è l'High-Speed Counter? ............................................ 297 HSC (High Speed Counter)...................................................... 298 Valori HSCCmd................................................................... 300 Tipo di dati HSCAPP........................................................... 301 Tipo di dati HSCSTS ........................................................... 304 Tipo di dati PLS................................................................... 311 Tipo di dati HSCE_CHANNEL ............................................ 312 Tipo di dati HSCE_STS....................................................... 313 Tipo di dati PLS_HSCE....................................................... 314 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 7 Sommario Istruzioni HSCE Istruzioni ingresso/uscita HSC_SET_STS (stato di impostazione dell'High-Speed Counter) ................................................................................................. 314 Utilizzo delle istruzioni dell'High-Speed Counter ...................... 317 Aggiornamento dei dati dell'applicazione HSC.................... 317 Finestra di dialogo Interruzione da parte dell'utente dell'HighSpeed Counter (HSC) ......................................................... 318 Configurazione di un Interrupt utente dell'High Speed Counter (HSC) .................................................................................. 318 Aggiunta e configurazione di un'interruzione da parte dell'utente dell'High-Speed Counter (HSC) ......................... 319 Proprietà interruzione HSC ............................................ 320 Parametri interruzione HSC ........................................... 321 Configurazione di un interruttore di fine corsa programmabile (PLS)................................................................................... 323 Esempio: come creare un programma High-Speed Counter (HSC) .................................................................................. 324 Creazione di un ladder diagram e aggiunta di variabili .. 325 Assegnazione di valori alle variabili HSC....................... 328 Assegnazione di variabili e compilazione del programma ....................................................................................... 329 Test del programma ed esecuzione dell'High-Speed Counter .......................................................................... 331 Add a Programmable Limit Switch (PLS) function .............. 334 Esempio: interruttore fine corsa programmabile (PLS) abilitato ............................................................................................ 335 Capitolo 15 HSCE ....................................................................................... 337 HSCE_CFG ............................................................................. 341 HSCE_CFG_PLS ..................................................................... 344 HSCE_READ_STS .................................................................. 346 HSCE_SET_STS ..................................................................... 348 Codici di errore HSCE .............................................................. 351 Capitolo 16 LCD.......................................................................................... 356 LCD_BKLT_REM (retroilluminazione LCD remoto) ................. 358 LCD_REM (LCD remoto).......................................................... 360 RHC (lettura high speed clock)................................................. 364 RPC (lettura checksum del programma) .................................. 365 DLG (registro dati) .................................................................... 366 IIM (ingresso immediato) .......................................................... 368 IOM (uscita istantanea) ............................................................ 370 KEY_READ (lettura tasti su LCD) ............................................ 372 KEY_READ_REM (lettura chiavi per LCD remoto) .................. 375 MM_INFO (informazioni sul modulo di memoria) ..................... 377 Tipo di dati MMINFO ........................................................... 380 MODULE_INFO ....................................................................... 380 8 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni di interruzione Istruzioni di controllo del movimento Sommario MODULE_INFO - Informazioni sui moduli plug-in e di espansione.......................................................................... 384 Diagrammi di temporizzazione dell'istruzione MODULE_INFO ............................................................................................ 386 PLUGIN_INFO (informazioni sui plug-in).................................. 392 PLUGIN_READ (lettura plug-in) ............................................... 394 PLUGIN_RESET (reset plug-in) ............................................... 397 PLUGIN_WRITE (plug-in di scrittura) ....................................... 398 RCP (ricetta)............................................................................. 400 RTC_READ (lettura Real-Time Clock) ..................................... 403 RTC_SET (impostare Real-Time Clock)................................... 405 SYS_INFO................................................................................ 407 Tipo di dati SYS_INFO........................................................ 409 TRIMPOT_READ (lettura trimpot) ............................................ 410 Definizione ID Trimpot......................................................... 411 Capitolo 17 STIS (selezione avvio temporizzato)........................................ 413 UIC (bit clear interrupt lost) ...................................................... 415 UID (disattivazione interrupt) .................................................... 416 UIE (abilitazione interrupt) ........................................................ 418 UIF (interrupt flush in attesa) .................................................... 420 Capitolo 18 Regole generali per i blocchi funzione di controllo movimento. 424 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento ............................................................................... 426 Stati asse di controllo movimento ....................................... 426 Numeri dei parametri del blocco funzione per il controllo del movimento .......................................................................... 429 ID errori del blocco funzione di controllo movimento........... 430 Scenari di errore asse ......................................................... 431 Tipo di dati AXIS_REF ........................................................ 432 Tipo di dati FB_AXIS_REF.................................................. 433 Variabili dell'asse ................................................................ 434 MC_AbortTrigger (trigger di interruzione del controllo movimento) ................................................................................................. 434 MC_Halt (halt di controllo movimento) ..................................... 437 MC_Home (home del controllo movimento) ............................. 440 MC_MoveAbsolute (movimento assoluto del controllo movimento) ................................................................................................. 445 MC_MoveRelative (movimento relativo del controllo movimento) ................................................................................................. 448 MC_MoveVelocity (velocità di movimento del controllo movimento)............................................................................... 453 MC_Power (potenza del controllo movimento)......................... 457 MC_ReadActualPosition (posizione effettiva di lettura del controllo movimento)............................................................................... 460 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 9 Sommario MC_ReadActualVelocity (velocità effettiva di lettura del controllo movimento)............................................................................... 464 MC_ReadAxisError (errore dell'asse di lettura del controllo movimento)............................................................................... 468 Codici di errore AxisErrorID ................................................ 471 MC_ReadBoolParameter (parametro BOOL di lettura del controllo movimento)............................................................................... 473 MC_ReadParameter (parametro di lettura del controllo movimento)............................................................................... 475 MC_ReadStatus (stato di lettura del controllo movimento)....... 478 MC_Reset (reset del controllo movimento) .............................. 484 MC_SetPosition (posizione impostazione del controllo movimento)............................................................................... 486 MC_Stop (arresto del controllo movimento) ............................. 489 MC_TouchProbe (sonda a contatto del controllo movimento).. 492 MC_WriteBoolParameter (parametro BOOL di scrittura del controllo movimento) ................................................................ 496 MC_WriteParameter (parametro di scrittura del controllo movimento)............................................................................... 499 Istruzioni di controllo dei processi Capitolo 19 DERIVATE ............................................................................... 503 FFL (caricamento FIFO)........................................................... 505 Diagrammi di temporizzazione istruzione FFL e FFU ......... 510 FFU (Scarica FIFO) .................................................................. 515 HYSTER (isteresi) .................................................................... 520 INTEGRAL ............................................................................... 522 AND.......................................................................................... 527 LFL (carico LIFO) ..................................................................... 528 LFU (scarica LIFO) ................................................................... 530 PWM (Pulse Width Modulation)................................................ 533 SCALER (scala) ....................................................................... 535 STACKINT (valori interi dello stack) ......................................... 537 SCL .......................................................................................... 540 Esempi di diagrammi di temporizzazione dell'istruzione SCL ............................................................................................ 544 TND (interruzione programma corrente)................................... 547 LIMIT (prova limite) .................................................................. 549 Istruzione per il controllo del programma Capitolo 20 AFI (sempre false) ................................................................... 553 NOP (nessuna operazione)...................................................... 553 SUS (sospensione) .................................................................. 554 Istruzione proporzionale integrale derivativa (PID) 10 Capitolo 21 Che cos'è il controllo proporzionale integrale derivativo (PID)?557 IPIDCONTROLLER (controllore proporzionaleintegrale derivativo) ................................................................................ 557 Tipo di dati GAIN_PID......................................................... 561 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Sommario Tipo di dati AT_Param ........................................................ 562 Modalità di implementazione del controllo PID da parte del blocco funzione IPIDController............................................ 563 Operazione del blocco funzione IPIDController .................. 564 Utilizzo dell'istruzione proporzionale integrale derivativa .... 565 Utilizzo dell'auto tuning con il blocco funzione IPIDController ................................................................ 568 Auto tuning in sistemi di primo e secondo ordine........... 569 Configurazione dell'auto tuning...................................... 570 Utilizzo di un STI (Selectable Timed Interrupt) con auto tuning............................................................................. 577 Esempio: IPIDController con auto tuning....................... 577 Esempio: come creare un ciclo di feedback per il valore manipolato ..................................................................... 579 Esempio: come aggiungere un UDFB a un programma PID ....................................................................................... 580 Esempio: come creare un programma IPIDController per controllare la temperatura .............................................. 581 Esempio: come creare un programma IPIDController per controllare il livello di erogazione dell'acqua .................. 583 PID (proporzionale integrale derivativa) ................................... 586 Stato della macchina di istruzione PID................................ 591 Diagrammi di temporizzazione dell'istruzione PID .............. 592 Capitolo 22 Istruzioni Real Time Clock (RTC) RTC_READ (lettura Real-Time Clock) ..................................... 597 RTC_SET (impostare Real-Time Clock) .................................. 599 Istruzioni socket Capitolo 23 SOCKET_ACCEPT.................................................................. 604 SOCKET_CREATE.................................................................. 607 SOCKET_DELETE................................................................... 612 SOCKET_DELETEALL ............................................................ 615 SOCKET_INFO ........................................................................ 618 SOCKET_OPEN ...................................................................... 623 SOCKET_READ....................................................................... 628 SOCKET_WRITE ..................................................................... 632 Tipo di dati SOCKADDR_CFG ................................................. 636 Tipo di dati SOCK_STATUS..................................................... 637 Codici di errore del socket ........................................................ 637 Bit di stato per l'istruzione del socket........................................ 641 Diagrammi di temporizzazione dell'istruzione Socket............... 641 Diagrammi di transazione dell'istruzione Socket ...................... 649 Transazioni per client TCP ....................................................... 649 Transazioni per server TCP...................................................... 649 Transazioni per UDP con connessione aperta ......................... 650 Transazioni per UDP senza connessioni aperte....................... 650 Diagrammi di stato della macchina per TCP ............................ 651 Diagrammi dello stato della macchina per UDP ....................... 654 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 11 Sommario Istruzioni di elaborazione della stringa Istruzioni del timer Capitolo 24 ASCII ....................................................................................... 657 CHAR (codice ASCII a carattere della stringa) ........................ 659 DELETE (eliminare una sottostringa)....................................... 661 FIND (trova sottostringa) .......................................................... 663 INSERT (inserimento stringa)................................................... 664 LEFT (estrae a sinistra di una stringa) ..................................... 667 MID (estrae dal centro di una stringa) ...................................... 668 MLEN (lunghezza della stringa) ............................................... 671 RIGHT (estrazione a destra di una stringa) .............................. 672 REPLACE (sostituisce la sottostringa) ................................................. 674 Capitolo 25 Configurazione delle istruzioni del timer .................................. 677 TOF (timer, ritardo alla diseccitazione) .................................... 678 TON (timer, ritardo all'eccitazione) ........................................... 680 TONOFF (ritardo, on, off) ......................................................... 682 TP (tempo impulsi) ................................................................... 685 RTO (timer di ritrasmissione, Ritardo all'eccitazione) ............... 687 DOY (anno di controllo per Real-Time clock) ........................... 689 TDF (differenza di tempo)......................................................... 691 TOW (settimana di controllo per Real Time Clock) .................. 693 12 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 In questo manuale Controllori supportati Introduzione In questa guida vengono fornite informazioni di riferimento relative all'insieme di istruzioni disponibili per lo sviluppo di programmi da utilizzare nei sistemi di controllo Micro800. L'insieme di istruzioni include il supporto dei linguaggi di programmazione ST (Structured Text), LD (Ladder Diagram) e FBD (Function Block Diagram). Inoltre, vengono definiti elementi ladder supportati nell'ambiente di sviluppo Connected Components Workbench. Connected Components Workbench include il supporto della configurazione per i seguenti controllori Micro800. · 2080-LC10-12AWA · 2080-LC10-12DWD · 2080-LC10-12QBB · 2080-LC10-12QWB · 2080-LC20-20AWB · 2080-LC20-20QBB · 2080-LC20-20QWB · 2080-LC30-10QVB · 2080-LC30-10QWB · 2080-LC30-16AWB · 2080-LC30-16QVB · 2080-LC30-16QWB · 2080-LC30-24QBB · 2080-LC30-24QVB · 2080-LC30-24QWB · 2080-LC30-48AWB · 2080-LC30-48QBB · 2080-LC30-48QVB · 2080-LC30-48QWB · 2080-LC50-24AWB · 2080-LC50-24QBB · 2080-LC50-24QVB · 2080-LC50-24QWB · 2080-LC50-48AWB · 2080-LC50-48QBB · 2080-LC50-48QVB · 2080-LC50-48QWB · 2080-LC50-48QWB - SIM · 2080-LC50-24AWB · 2080-LC70-24QBB · 2080-LC70-24QWB Risorse aggiuntive Questi documenti contengono informazioni aggiuntive relative a prodotti Rockwell Automation correlati. Risorsa Descrizione Criteri per il cablaggio e la messa a terra in automazione industriale, pubblicazione 1770-4.1 disponibile all'indirizzo http://literature.rockwellautomation.com/idc/groups/li terature/documents/in/1770-in041_-en-p.pdf. Fornisce criteri generali per l'installazione di un sistema industriale Rockwell Automation. Sito Web delle certificazioni prodotto, http://www.ab.com Fornisce dichiarazioni di conformità, certificati e altri dettagli di certificazione. Guida alla migrazione dei controller MicroLogix a Viene illustrato come utilizzare gli strumenti software Micro800, disponibile per selezionare un controller Micro800 adatto e come all'https://literature.rockwellautomation.com/idc/grou convertire i programmi MicroLogix in modo che ps/literature/documents/rm/2080-rm002_-en-e.pdf funzionino con il controller Micro800. Micro800 Controllers Starter Pack Quick Start, Viene illustrato come utilizzare un controller Micro800 disponibile con un terminale PanelView 800. all'https://literature.rockwellautomation.com/idc/grou ps/literature/documents/qs/2080-qs004_-en-e.pdf Configurazione dei controller Micro800 su FactoryTalk Vengono fornite istruzioni di avvio rapido per la Gateway, disponibile all'indirizzo configurazione di un controller Micro800 in FactoryTalk https://literature.rockwellautomation.com/idc/groups/l Linx Gateway. iterature/documents/qs/2080-qs005_-en-e.pdf Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 13 Introduzione Avvisi legali È possibile visualizzare o scaricare pubblicazioni all'indirizzo http://www.rockwellautomation.com/literature. Per ordinare copie cartacee di documentazione tecnica, contattare il distributore Rockwell Automation locale o un rappresentante commerciale. Rockwell Automation pubblica le note legali, quali informative sulla privacy, accordi di licenza, divulgazioni del marchio e altri termini e condizioni, nella pagina Note legali del sito Web di Rockwell Automation. Contratto di licenza con l'utente finale (EULA) Il contratto di licenza con l'utente finale di Rockwell Automation ("EULA") può essere consultato aprendo il file License.rtf archiviato nella cartella di installazione del prodotto sul disco rigido del PC. La posizione predefinita del file è: C:\Program Files (x86)\Common Files\Rockwell\license.rtf. Licenze software open source Il software incluso in questo prodotto contiene software con copyright concesso in licenza con una o più licenze open source. È possibile visualizzare l'elenco completo di tutti i software open source utilizzati nel prodotto e le relative licenze, aprendo il file Indice.html archiviato nella cartella OPENSOURCE del prodotto sul disco rigido del PC. La posizione predefinita del file è: C:\Program Files (x86)\Common Files\Rockwell\Help\Connected Components Workbench\Release Notes\OPENSOURCE\Indice.htm Il codice sorgente dei pacchetti open source inclusi nel prodotto è disponibile nei rispettivi siti Web del progetto. In alternativa, è possibile ottenere il codice sorgente completo contattando Rockwell Automation tramite il modulo di Contact disponibile sul sito Web di Rockwell Automation: http://www.rockwellautomation.com/global/aboutus/contact/contact.page. Inserire "Open source" nel testo della richiesta. 14 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 1 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Connected Components Workbench include un set completo di istruzioni con strutture e vettori, ambienti di sviluppo per la logica ladder, testo strutturato, diagramma a blocchi funzionali e programmi di blocchi funzione definiti dall'utente. Inoltre, Connected Components Workbench include strumenti di configurazione dell'interfaccia utente per i controllori Micro800, unità PowerFlex®, un dispositivo relè di sicurezza, terminali grafici del componente PanelViewTM e opzioni di connettività di rete e seriali. Per informazioni su una specifica istruzione, inclusi descrizione, dettagli dei parametri ed esempi di linguaggio, individuare l'istruzione nel sommario o in uno dei seguenti argomenti di riferimento. · Riferimento sulle istruzioni in ordine alfabetico a pagina 18 Per una descrizione degli elementi ladder utilizzati in Connected Components Workbench, vedere la seguente sezione: · Riferimento linguaggio LD (Ladder Diagram) a pagina 25 Blocchi di istruzione Il set di istruzioni Connected Components Workbench comprende i blocchi di istruzioni conformi allo standard IEC 61131-3 per i controllori Micro800. I blocchi di istruzioni comprendono operatori, funzioni e blocchi funzione. Vedere anche Operatori a pagina 15 Funzioni a pagina 16 Blocchi funzione a pagina 17 Operatori Il set di istruzioni Connected Components Workbench include i blocchi istruzione conformi a IEC 61131-3 per i controllori Micro800; gli operatori sono inclusi nel set di istruzioni Connected Components Workbench. Un operatore è un'operazione logica di base, ad esempio aritmetica, booleana, di comparatore o conversione dati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 15 Capitolo 1 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Vedere anche Blocchi funzione a pagina 17 Funzioni a pagina 16 Funzioni Le funzioni hanno uno o più parametri di ingresso e uno o più parametri di uscita. Formato del blocco di istruzioni Un blocco di istruzioni è rappresentato da un singolo rettangolo e ha un numero fisso di punti di connessione di ingresso e di uscita. Un blocco di istruzioni elementare esegue una sola funzione. Elemento num. Elemento Nome blocco Ingresso Connessione di ingresso Uscita Connessione di uscita Descrizione Il nome della funzione da eseguire dal blocco di istruzione è scritto all'interno del rettangolo (in alto). Ogni ingresso di un blocco di istruzioni è etichettato e possiede un tipo predefinito. Gli ingressi sono connessi sul bordo sinistro. Ogni uscita di un blocco di istruzioni è etichettata e possiede un tipo predefinito. Le uscite sono connesse sul bordo destro. Chiamata di una funzione Connected Components WorkbenchTM non supporta chiamate a funzioni ricorsive. Quando una funzione della sezione Funzioni viene chiamata da se stessa o da una delle sue funzioni chiamate, si verifica un errore di runtime. Inoltre, le funzioni non archiviano i valori locali delle proprie variabili locali. Dato che le funzioni non sono oggettivate, non possono richiamare blocchi funzione. · Una funzione può essere richiamata da un programma, una funzione o un blocco funzione. · Qualsiasi programma di qualsiasi sezione può chiamare una o più funzioni. Una funzione può avere variabili locali. · Una funzione non ha nessun significato di istanza, ovvero i dati locali non sono archiviati e di norma andranno persi da una chiamata all'altra. · Poiché l'esecuzione di una funzione è controllata dal relativo programma principale, l'esecuzione di quest'ultimo è sospesa fino al termine della funzione. 16 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 1 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Programma principale Funzione Funzione Blocchi funzione Definizione dei nomi di parametri e funzioni L'interfaccia di una funzione deve essere definita esplicitamente con tipo e nome univoco per ciascuno dei parametri chiamanti (ingresso) o dei parametri di ritorno (uscita). Una funzione ha un solo parametri di ritorno. Il valore del parametro di ritorno di un blocco funzione varia a seconda del linguaggio di programmazione (FBD, LD, ST). I nomi delle funzioni e dei relativi parametri possono contenere un massimo di 128 caratteri. I nomi del parametro della funzione può iniziare con una lettera o un carattere di sottolineatura, seguiti da lettere, cifre e singoli caratteri di sottolineatura. Vedere anche Blocchi funzione a pagina 17 Operatori a pagina 15 Un blocco funzione è un blocco di istruzioni con parametri di ingresso e uscita e che funziona con dati interni (parametri). Può essere scritto nei linguaggi testo strutturato, ladder diagram e diagramma a blocchi funzionali. Formato del blocco di istruzioni Un blocco di istruzioni è rappresentato da un singolo rettangolo e ha un numero fisso di punti di connessione di ingresso e di uscita. Un blocco di istruzioni elementare esegue una sola funzione. Elemento num. Elemento Descrizione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 17 Capitolo 1 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Nome blocco Il nome della funzione da eseguire dal blocco di istruzione è scritto all'interno del rettangolo (in alto). Ingresso Ogni ingresso di un blocco di istruzioni è etichettato e possiede un tipo predefinito. Connessione di ingresso Uscita Gli ingressi sono connessi sul bordo sinistro. Ogni uscita di un blocco di istruzioni è etichettata e possiede un tipo predefinito. Connessione di Le uscite sono connesse sul bordo destro. uscita Chiamata di un blocco funzione Quando in un programma viene chiamato un blocco funzione, in realtà viene chiamata un'istanza di esso. L'istanza utilizza lo stesso codice, ma viene creata un'istanza dei parametri di ingresso e uscita, ovvero per ogni istanza del blocco funzione vengono copiate le variabili locali. I valori delle variabili dell'istanza di un blocco funzione sono archiviati da un ciclo all'altro. Un blocco funzione può essere chiamato da un programma o da un altro blocco funzione, mentre non può essere chiamato dalle funzioni, in quanto di queste non viene creata un'istanza. Definizione dei nomi di parametri e blocchi funzione L'interfaccia di un blocco funzione deve essere definita esplicitamente con tipo e un nome unico per ciascuno dei parametri chiamanti (ingresso) o dei parametri di ritorno (uscita). I blocchi funzione possono avere più di un parametro di uscita. Il valore del parametro di ritorno di un blocco funzione varia a seconda del linguaggio di programmazione (FBD, LD, ST). I nomi dei blocchi funzione e dei relativi parametri possono contenere un massimo di 128 caratteri. I nomi del parametro del blocco funzione può iniziare con una lettera o un carattere di sottolineatura, seguiti da lettere, numeri e singoli caratteri di sottolineatura. Vedere anche Funzioni a pagina 16 Operatori a pagina 15 Istruzione impostate in ordine alfabetico Istruzione - a pagina 103 Istruzione mappata (tema Logix) SUB La tabella seguente elenca le istruzioni per il controllore Micro800 disponibili in Connected Components Workbench e le relative istruzioni di mappatura nel tema Logix, in ordine alfabetico. Categoria Tipo Descrizione Aritmetico Operatore Sottrarre un valore Integer, Real o Time da un altro valore Integer, Real o Time. 18 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzione * a pagina 92 / a pagina 84 + a pagina 72 < a pagina 249 <= a pagina 250 <> a pagina 251 = a pagina 243 > a pagina 246 >= a pagina 247 ABL a pagina 111 ABS a pagina 67 ACB a pagina 118 ACL a pagina 113 ACOS a pagina 69 ACOS_LREAL a pagina 71 AFI a pagina 553 AHL a pagina 115 AND a pagina 165 AND_MASK a pagina 135 ANY_TO_BOOL a pagina 263 ANY_TO_BYTE a pagina 264 ANY_TO_DATE a pagina 265 ANY_TO_DINT a pagina 267 ANY_TO_DWORD a pagina 268 ANY_TO_INT a pagina 269 ANY_TO_LINT a pagina 270 ANY_TO_LREAL a pagina 272 ANY_TO_LWORD a pagina 273 ANY_TO_REAL a pagina 274 ANY_TO_SINT a pagina 275 ANY_TO_STRING a pagina 276 ANY_TO_TIME a pagina 277 ANY_TO_UDINT a pagina 278 ANY_TO_UINT a pagina 279 ANY_TO_ULINT a pagina 280 ANY_TO_USINT a pagina 281 ANY_TO_WORD a pagina 282 ARD a pagina 120 Istruzione mappata (tema Logix) MUL DIV ADD Categoria Aritmetico Aritmetico Aritmetico Capitolo 1 Tipo Operatore Operatore Operatore Ricerca di informazioni sulle istruzioni e sugli elementi ladder Descrizione Moltiplica due o più valori Integer o Real. Divisione di due valori Integer o Real. Somma due o più valori Integer, Real, Time o String. LES Confronta Operatore Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è inferiore al secondo. LEQ Confronta Operatore Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è inferiore o uguale al secondo. NEQ Confronta Operatore Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo non è uguale al secondo. EQU Confronta Operatore Testa se un valore è uguale a un altro. GRT Confronta Operatore Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è maggiore del secondo. GEQ Confronta Operatore Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è maggiore o uguale al secondo. ABL Comunicazioni Blocco funzione Conta il numero di caratteri nel buffer fino al carattere di fine riga incluso. ABS Aritmetico Funzione Restituisce il valore assoluto di un valore Real. ACB Comunicazioni Blocco funzione Conta il numero totale dei caratteri nel buffer. ACL ACS ACOS_LREAL AFI AHL AND Comunicazioni Aritmetico Aritmetico Controllo programma Comunicazioni Operazioni booleane Blocco funzione Funzione Funzione Funzione Blocco funzione Operatore Elimina i buffer di ricezione e trasmissione. Calcola l'arcocoseno di un valore Real. Calcola l'arcocoseno di un valore Long Real. Disabilita un ramo temporaneamente quando si esegue il debug. Impostare o reimpostare linee di arbitraggio modem. Esegue un'operazione booleana AND tra due o più valori. AND_MASK ANY_TO_BOOL ANY_TO_BYTE ANY_TO_DATE STOD ANY_TO_DWORD ACI ANY_TO_LINT ANY_TO_LREAL ANY_TO_LWORD STOR ANY_TO_SINT DTOS ANY_TO_TIME ANY_TO_UDINT ANY_TO_UINT ANY_TO_ULINT ANY_TO_USINT ANY_TO_WORD ARD Operazioni binarie Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Conversione dati Comunicazioni Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Funzione Blocco funzione Esegue AND bit-to-bit tra due valori Integer. Converte un valore non booleano in uno booleano. Converte un valore in un byte. Converte un tipo di dati String, Integer, Real o Time in un tipo di dati Date. Converte un valore in Double Integer. Converte un valore in un valore Double Word. Converte un valore in Integer. Converte un valore in Long Integer. Converte un valore in Long Real. Converte un valore in Long Word. Converte un valore in Real. Converte un valore in Short Integer. Converte un valore in String. Converte un valore in un tipo di dati Time. Converte un valore in Unsigned Double Integer. Converte un valore in Unsigned Integer. Converte un valore in Unsigned Long Integer. Converte un valore in Unsigned Short Integer. Converte un valore in Word. Legge i caratteri dal buffer di ingresso e posiziona gli stessi in una stringa. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 19 Capitolo 1 Istruzione ARL a pagina 123 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Istruzione mappata (tema Logix) ARL Categoria Comunicazioni Tipo Blocco funzione ASCII a pagina 657 ASCII Manipolazione stringa Funzione ASIN a pagina 74 ASIN_LREAL a pagina 76 ATAN a pagina 77 ATAN_LREAL a pagina 79 MEDIA a pagina 285 ASN ASN_LREAL ATN ATAN_LREAL AVE Aritmetico Aritmetico Aritmetico Aritmetico Manipolazione dati Funzione Funzione Funzione Funzione Blocco funzione AWA a pagina 125 AWA Comunicazioni Funzione AWT a pagina 128 AWT BSL a pagina 137 BSL BSR a pagina 141 BSR CHAR a pagina 659 CHAR Comunicazioni Operazioni binarie Operazioni binarie Manipolazione stringa Funzione Blocco funzione Blocco funzione Funzione COM_IO_WDOG a pagina 179 COP a pagina 287 COM_IO_WDOG COP Comunicazioni Conversione dati Blocco funzione Blocco funzione COS a pagina 81 COS_LREAL a pagina 82 CTD a pagina 255 COS COS_LREAL CTD Aritmetico Contatore Funzione Funzione Funzione CTU a pagina 257 CTUD a pagina 259 DELETE a pagina 661 DERIVATE a pagina 503 CTU CTUD DELETE DERIVATE Contatore Contatore Funzione Funzione Manipolazione stringa Funzione Controllo del processo Blocco funzione DLG a pagina 366 DLG DOY a pagina 689 DOY EXPT a pagina 86 EXPT F_TRIG a pagina 159 OSF FFL a pagina 515 FFL FFU a pagina 515 FFU Ingresso/uscita Blocco funzione Durata Funzione Aritmetico Funzione Operazioni booleane Blocco funzione Controllo del processo Blocco funzione Controllo del processo Blocco funzione FIND a pagina 663 HSC a pagina 298 HSC_SET_STS a pagina 314 HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 HSCE_READ_STS a pagina 346 FIND HSC HSC_SET_STS HSCE HSCE_CFG HSCE_CFG_PLS HSCE_READ_STS Manipolazione stringa Ingresso/uscita Funzione Blocco funzione Ingresso/uscita Blocco funzione Ingresso/uscita Ingresso/uscita Ingresso/uscita Blocco funzione Blocco funzione Blocco funzione Ingresso/uscita Blocco funzione Descrizione Legge una riga di caratteri dal buffer di ingresso e posiziona gli stessi in una stringa. Restituire il codice ASCII per i caratteri in una stringa. Carattere -> codice ASCII. Calcola l'arcoseno di un valore Real. Calcola l'arcoseno di un valore Long Real. Calcola l'arcotangente di un valore Real. Calcola l'arcotangente di un valore Long Real. Calcola una media in esecuzione su un numero di un campioni definito. Scrivere una stringa con due caratteri aggiunti (configurati dall'utente) su un dispositivo esterno. Scrive i caratteri da una stringa sorgente a un dispositivo esterno. Sposta un bit in un elemento vettore verso sinistra. Sposta un bit in un elemento vettore verso destra. Restituisce una stringa di un carattere per un codice ASCII. Codice ASCII -> Carattere. Monitora la comunicazione con il controllore. Copia i dati binari nell'elemento di origine per l'elemento di destinazione. Calcola il coseno di un valore Real. Calcola il coseno di un valore Long Real. Conta gli Integer da un valore dato fino a 0, 1 a 1. Conta gli Integer da 0 fino a un valore dato, 1 a 1. Conta gli Integer da 0 fino a un valore dato, 1 a 1, o da un valore dato a 0, 1 a 1. Elimina i caratteri da una stringa. Differenziazione di un valore reale su una durata del ciclo definito. Scrive i valori di variabile dal motore di runtime in un file di registrazione dati su una scheda SD. Attiva un output se il valore del real-time clock è compreso nell'intervallo dell'impostazione Ora dell'anno. Calcola il valore Real di un numero di base elevato alla potenza dell'esponente intero. Rileva un fronte di discesa di una variabile booleana. Carica i dati a 8 bit, 16 bit, 32 bit o 64 bit in un vettore creato dall'utente denominato stack FIFO. Scarica i dati a 8, 16, 32 e 64 bit da un vettore creato dall'utente denominato stack FIFO (First In First Out, primo a entrare primo a uscire) nello stesso ordine in cui i dati sono stati caricati usando l'istruzione FFL. individua e fornisce la posizione delle sottostringhe nelle stringhe. HSC applica all'high-speed counter valori alti e bassi preimpostati e valori di origine per l'uscita. HSC_SET_STS permette l'impostazione o il ripristino manuale dello stato del conteggio dell'HSC. HSCE: avvio, arresto e lettura del valore dell'accumulatore. HSCE_CFG è la configurazione dell'High Speed Counter. HSCE_CFG_PLS è la configurazione dell'interruttore di fine corsa programmabile (PLS) dell'High Speed Counter. HSCE_READ_STS legge lo stato dell'High Speed Counter. 20 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzione HSCE_SET_STS a pagina 348 HYSTER a pagina 520 IIM a pagina 368 INSERT a pagina 664 INTEGRAL a pagina 522 IOM a pagina 370 IPIDCONTROLLER a pagina 557 KEY_READ a pagina 372 KEY_READ_REM a pagina 375 LCD a pagina 356 LCD_BKLT_REM a pagina 358 LCD_REM a pagina 360 LEFT a pagina 667 LFL (carico LIFO) a pagina 528 LFU (scarica LIFO) a pagina 530 LIM_ALRM a pagina 63 LIMIT a pagina 549 LOG a pagina 87 MAX a pagina 294 MC_AbortTrigger a pagina 434 MC_Halt a pagina 437 MC_Home a pagina 440 MC_MoveAbsolute a pagina 445 MC_MoveRelative a pagina 448 MC_MoveVelocity a pagina 453 MC_Power a pagina 457 MC_ReadActualPosition a pagina 464 MC_ReadActualVelocity a pagina 464 MC_ReadAxisError a pagina 468 MC_ReadBoolParameter a pagina 473 MC_ReadParameter a pagina 475 Istruzione mappata (tema Logix) HSCE_SET_STS HYSTER IIM INSERT INTEGRAL IOM IPIDCONTROLLER KEY_READ_REM LCD_BKLT_REM LCD_REM LEFT LFL LFU LIM LIMIT LOG MAX MC_AbortTrigger MC_Halt MAH MAM MC_MoveRelative MCD MSO MC_ReadActualPosition Categoria Capitolo 1 Tipo Ricerca di informazioni sulle istruzioni e sugli elementi ladder Descrizione Ingresso/uscita Blocco funzione Controllo del processo Ingresso/uscita Manipolazione stringa Blocco funzione Blocco funzione Funzione Controllo del processo Ingresso/uscita Controllo del processo Blocco funzione Blocco funzione Blocco funzione Ingresso/uscita Blocco funzione Ingresso/uscita Blocco funzione Ingresso/uscita Funzione Ingresso/uscita Funzione Ingresso/uscita Manipolazione stringa Controllo del processo Funzione Funzione Blocco funzione Controllo del processo Blocco funzione Allarme Blocco funzione Controllo del processo Aritmetico Manipolazione dati Controllo assi Funzione Funzione Funzione Blocco funzione Controllo assi Blocco funzione Controllo assi Controllo assi Blocco funzione Blocco funzione Controllo assi Blocco funzione Controllo assi Blocco funzione Controllo assi Controllo assi Blocco funzione Blocco funzione HSCE_SET_STS imposta/esegue il reset manuale dello stato dell'High Speed Counter. Isteresi booleana sulla differenza tra numeri reali. Aggiorna gli ingressi prima della normale scansione in uscita. inserisce sottostringhe in posizioni definite dall'utente all'interno delle stringhe. Integra un valore real durante la durata del ciclo definito. Aggiorna le uscite prima della normale in uscita. Configurare e controllare gli ingressi e le uscite utilizzate per la logica proporzionale-integrale-derivativa (PID). Solo Micro810. Legge lo stato della chiave su un modulo LCD opzionale quando il display dell'utente è attivo. Solo Micro820. Legge lo stato della chiave su un modulo LCD remoto opzionale quando il display dell'utente è attivo. Solo Micro810. Visualizza una stringa o un numero su una schermata LCD. Imposta i parametri di retroilluminazione dell'LCD remoto all'interno del programma utente. Visualizza i messaggi definiti dall'utente per l'LCD remoto. Estrae i caratteri dal lato sinistro di una stringa. Carica i dati a 8 bit, 16 bit, 32 bit o 64 bit in un vettore creato dall'utente denominato stack LIFO. Scarica i dati a 8 bit, 16 bit, 32 bit e 64 bit da un vettore creato dall'utente denominato stack LIFO (Last In First Out, ultimo a entrare primo a uscire) nello stesso ordine in cui i dati sono stati caricati usando l'istruzione LFL. Un allarme con isteresi di un valore Real per i limiti superiore e inferiore. riduce i valori interi a un intervallo definito. Calcola il logaritmo (base 10) di un valore Real. Calcola il valore massimo tra due valori interi. Interrompe i blocchi funzione Controllo assi collegati agli eventi di attivazione. Comanda un arresto controllato del movimento in condizioni operative normali. Comanda l'asse per l'esecuzione della sequenza <search home>. Determina un movimento controllato verso una posizione assoluta specificata. Determina un movimento controllato di una distanza specificata rispetto alla posizione attuale nel momento dell'esecuzione. Determina un movimento controllato infinito a una velocità specificata. Controllo dello stato di alimentazione (ON o OFF). Restituisce la posizione effettiva dell'asse di feedback. MC_ReadActualVelocity Controllo assi Blocco funzione Ritorna alla velocità corrente dell'asse di feedback. MC_ReadAxisError Controllo assi MC_ReadBoolParameter Controllo assi MC_ReadParameter Controllo assi Blocco funzione Blocco funzione Blocco funzione Legge gli errori dell'asse non in relazione ai blocchi funzione Controllo movimento. Restituisce il valore di un parametro specifico del produttore di tipo BOOL. Restituisce il valore di un parametro specifico del fornitore di tipo Real. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 21 Capitolo 1 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Istruzione MC_ReadStatus a pagina 478 Istruzione mappata (tema Logix) MC_ReadStatus Categoria Controllo assi Tipo Blocco funzione MC_Reset a pagina 484 MAFR Controllo assi Blocco funzione MC_SetPosition a pagina 486 MRP Controllo assi Blocco funzione MC_Stop a pagina 489 MAS Controllo assi Blocco funzione MC_TouchProbe a pagina 492 MC_TouchProbe Controllo assi Blocco funzione MC_WriteBoolParameter a pagina 496 MC_WriteParameter a pagina 499 MC_WriteBoolParameter Controllo assi MC_WriteParameter Controllo assi Blocco funzione Blocco funzione MID a pagina 668 MIN a pagina 292 MLEN a pagina 671 MM_INFO a pagina 377 MOD a pagina 89 MODULE_INFO a pagina 380 MID MIN MLEN MM_INFO MOD MODULE_INFO Manipolazione stringa Manipolazione dati Manipolazione stringa Ingresso/uscita Aritmetico Ingresso/uscita Funzione Funzione Funzione Blocco funzione Funzione Blocco funzione MOV a pagina 91 MSG_CIPGENERIC a pagina 182 MSG_CIPSYMBOLIC a pagina 191 MSG_MODBUS a pagina 196 MSG_MODBUS2 a pagina 202 MUX4B a pagina 175 MUX8B a pagina 172 Neg a pagina 94 NOP a pagina 553 MOV MSG MSG_CIPSYMBOLIC MSG_MODBUS MSG_MODBUS2 MUX4B MUX8B NEG NOP Aritmetico Operatore Comunicazioni Comunicazioni Comunicazioni Comunicazioni Booleano Booleano Aritmetico Controllo del programma Funzione Funzione Funzione Funzione Funzione Funzione Operatore Funzione NOT a pagina 166 NOT_MASK a pagina 144 OR a pagina 164 NOT NOT_MASK OR Operazioni booleane Operazioni binarie Operazioni booleane Operatore Funzione Operatore OR_MASK a pagina 146 PID a pagina 586 OR_MASK PID Operazioni binarie Funzione Controllo del processo Blocco funzione PLUGIN_INFO a pagina 392 PLUGIN_READ a pagina 394 PLUGIN_RESET a pagina 397 PLUGIN_WRITE a pagina 398 POW a pagina 95 PWM a pagina 533 R_TRIG a pagina 161 RAND a pagina 97 RCP a pagina 400 PLUGIN_INFO PLUGIN_READ PLUGIN_RESET PLUGIN_WRITE XPY PWM OSR RAND RCP Ingresso/uscita Blocco funzione Ingresso/uscita Blocco funzione Ingresso/uscita Blocco funzione Ingresso/uscita Blocco funzione Aritmetico Funzione Controllo del processo Blocco funzione Operazioni booleane Aritmetico Ingresso/uscita Blocco funzione Funzione Blocco funzione Descrizione Restituisce lo stato dell'asse rispetto al movimento attualmente in corso. Trasforma lo stato dell'asse da ErrorStop a StandStill ripristinando tutti gli errori interni legati all'asse. Sposta il sistema delle coordinate di un asse tramite la manipolazione della posizione effettiva. Comanda un arresto di movimento controllato e trasferisce lo stato dell'asse su Arresto in corso. Registra una posizione dell'asse in corrispondenza di un evento di attivazione. Modifica il valore di un parametro specifico del fornitore di tipo BOOL. Modifica il valore di un parametro specifico del fornitore di tipo Real. Estrae i caratteri dal centro di una stringa. Calcola il valore minimo tra due valori interi. Calcola la lunghezza di una stringa. Legge le informazioni sull'intestazione del modulo di memoria. Esegue il calcolo Modulo sui valori Integer. Legge le informazioni di modulo da un modulo plug-in o di espansione. Assegna il valore di ingresso in un'uscita. Invia un messaggio CIP generico esplicito. Invia un messaggio CIP Symbolic esplicito. Invia un messaggio Modbus. Invia un messaggio MODBUS/TCP su un canale Ethernet. Multiplexer tra quattro ingressi BOOL, restituisce un valore BOOL. Multiplexer tra otto ingressi BOOL, restituisce un valore BOOL. Converte un valore in un valore negativo. Funziona come segnaposto. Converte i valori booleani in valori negati. Maschera negazione numero intero bit-to-bit, inverte il valore di un parametro. OR booleano di due o più valori. Maschera OR numero intero bit-to-bit, abilita i bit. Un'istruzione di uscita che controlla le proprietà fisiche come la temperatura, la pressione, il livello dei liquidi o la portata tramite cicli di processo. Acquisisce le informazioni del modulo da un modulo plug-in generico (escluso il Modulo di memoria). Legge dati da un modulo plug-in generico (escluso il Modulo di memoria). Ripristina un modulo plug-in generico, ripristino hardware (ad esclusione di Modulo di memoria). Scrive dati per un modulo plug-in generico (escluso il Modulo di memoria). Calcola il valore di un numero Real elevato alla potenza dell'esponente Real. Attiva o disattiva l'uscita del PMW (Pulse Width Modulation) per un canale PWM configurato. Rileva un fronte di salita di una variabile booleana. Calcola valori interi casuali da un intervallo definito. Legge e scrive dati Ricetta su e da una scheda di memoria SD. 22 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzione REPLACE a pagina 674 RHC a pagina 364 RIGHT a pagina 672 ROL a pagina 147 ROR a pagina 149 RPC a pagina 365 RS a pagina 163 RTC_READ a pagina 403 RTC_SET a pagina 405 RTO a pagina 687 Istruzione mappata (tema Logix) REPLACE RHC RIGHT ROL ROR RPC RS RTC_READ RTC_SET RTO SCALER a pagina 535 SCL a pagina 540 SHL a pagina 151 SHR a pagina 153 SIN a pagina 99 SIN_LREAL a pagina 100 SOCKET_ACCEPT a pagina 604 SCP SCL SHL SHR SIN SIN_LREAL SOCKET_ACCEPT SOCKET_CREATE a pagina 607 SOCKET_CREATE SOCKET_DELETE a pagina 612 SOCKET_DELETEALL a pagina 615 SOCKET_INFO a pagina 618 SOCKET_DELETE SOCKET_DELETEALL SOCKET_INFO SOCKET_OPEN a pagina 623 SOCKET_OPEN SOCKET_READ a pagina 628 SOCKET_WRITE a pagina 632 SQRT a pagina 102 SR a pagina 167 STACKINT a pagina 537 STIS a pagina 413 SUS a pagina 554 SYS_INFO a pagina 407 TAN a pagina 105 TAN_LREAL a pagina 107 TDF a pagina 691 TND a pagina 547 TOF a pagina 678 TON a pagina 680 TONOFF a pagina 682 SOCKET_READ SOCKET_WRITE SQR SR STACKINT STS SUS SYS_INFO TAN TAN_LREAL TDF TND TOF TON TONOFF Categoria Capitolo 1 Tipo Ricerca di informazioni sulle istruzioni e sugli elementi ladder Descrizione Manipolazione stringa Ingresso/uscita Manipolazione stringa Operazioni binarie Operazioni binarie Ingresso/uscita Operazioni booleane Ingresso/uscita Ingresso/uscita Funzione Funzione Funzione Funzione Funzione Funzione Blocco funzione Blocco funzione Blocco funzione Durata Blocco funzione Controllo del processo Blocco funzione Controllo del processo Blocco funzione Operazioni binarie Funzione Operazioni binarie Funzione Aritmetico Aritmetico Comunicazioni Funzione Funzione Blocco funzione Comunicazioni Comunicazioni Comunicazioni Comunicazioni Comunicazioni Blocco funzione Blocco funzione Blocco funzione Blocco funzione Blocco funzione Comunicazioni Comunicazioni Aritmetico Operazioni booleane Controllo del processo Interrupt Blocco funzione Blocco funzione Funzione Blocco funzione Blocco funzione Funzione Controllo del programma Ingresso/uscita Aritmetico Aritmetico Durata Blocco funzione Blocco funzione Funzione Funzione Funzione Controllo del processo Funzione Durata Blocco funzione Durata Blocco funzione Durata Blocco funzione Sostituisce le parti di una stringa con nuovi set di caratteri. Legge high-speed clock. Estrae i caratteri dal lato destro di una stringa. Per i numeri Integer a 32 bit, ruota i bit interi a sinistra. Per i numeri interi a 32 bit, ruota i bit dell'intero a destra. Legge il checksum del programma utente. Ripristino bistabile dominante. Legge le informazioni sul modulo real-time clock (RTC). Imposta dati RTC (Real-Time clock) per le informazioni sul modulo RTC. Tempo di ritrasmissione. Incrementa un timer interno quando l'ingresso è attivo, ma non ripristina il timer interno quando l'ingresso diventa inattivo. Scala il valore di ingresso in base all'intervallo di uscita. Converte un valore di ingresso non scalato in un valore in virgola mobile espresso in unità ingegneristiche. Per gli integer a 32-bit, sposta gli integer a sinistra e inserisce 0 nel bit meno significativo. Per gli Integer a 32 bit, sposta gli Integer a sinistra e colloca 0 nel bit più significativo. Calcola il seno di un valore Real. Calcola il seno di un valore Long Real. Accetta una richiesta di connessione TCP da una destinazione remota e restituisce un'istanza di socket utilizzata per inviare e ricevere dati sulla connessione appena creata. Crea un'istanza del socket e restituisce un numero di istanza che viene usato come ingresso nelle operazioni socket successive. Elimina un'istanza di socket creata. Elimina tutte le istanze socket create. Restituisce le informazioni per il socket come codici di errore e lo stato di esecuzione. Apre la connessione per l'indirizzo di destinazione specificato per le connessioni Transmission Control Protocol (TCP). Per le connessioni User Datagram Protocol (UDP), associa un indirizzo IP di destinazione e il numero di porta al socket specificato. Legge i dati su un socket. Invia dati su un socket. Calcola la radice quadrata di un valore Real. Impostazione bistabile dominante. Gestisce lo stack di valori interi. Avvia il timer Selected Timed Interrupt (STI) utente dal programma di controllo invece che con l'avvio automatico. Sospende l'esecuzione del <controllore M800>. Legge il blocco dati dello stato per il controllore Micro800. Calcola la tangente di un valore Real. Calcola la tangente di un valore Long Real. Calcola la differenza di tempo tra TimeA e TimeB. Arresta il ciclo di scansione del programma utente in corso. Tempistica ritardo spegnimento. Incrementa un timer interno fino a un valore dato. Tempistica ritardo accensione. Incrementa un timer interno fino a un valore dato. Ritardo di accensione di un'uscita in caso di ramo True, quindi ritardo di spegnimento di un'uscita in caso di ramo False. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 23 Capitolo 1 Istruzione TOW a pagina 693 Ricerca di informazioni sulle istruzioni e sugli elementi ladder Istruzione mappata (tema Logix) TOW Categoria Durata Tipo Funzione TP a pagina 685 TRIMPOT_READ a pagina 410 TRUNC a pagina 108 TTABLE a pagina 169 UIC a pagina 415 UID a pagina 416 UIE a pagina 418 UIF a pagina 420 XOR a pagina 166 XOR_MASK a pagina 155 TP TRIMPOT_READ TRN TTABLE UIC UID UIE UIF XOR XOR_MASK Durata Ingresso/uscita Aritmetico Booleano Interrupt Interrupt Interrupt Interrupt Operazioni booleane Operazioni binarie Blocco funzione Blocco funzione Funzione Funzione Funzione Funzione Funzione Funzione Operatore Funzione Descrizione Attiva un'uscita se il valore del real-time clock è compreso nell'intervallo dell'impostazione Ora della settimana. Tempistica impulsi. Sul fronte di salita, incrementa un timer interno fino a un valore dato. Legge il valore TrimPot da un trimpot specifico. Tronca valori Real, lasciando solo l'intero. Fornisce il valore di uscita in base alla combinazione degli ingressi. Annulla la perdita di bit per l'interrupt utente selezionato. Disabilita un interrupt utente specifico. Abilita un interrupt utente specifico. Scarica o rimuove un ingresso utente in sospeso. OR esclusivo booleano di due o più valori. Maschera OR intero esclusivo bit-to-bit, restituisce valori di bit invertiti. Vedere anche Ricerca di informazioni sulle istruzioni e gli elementi ladder a pagina 15 24 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Linguaggio LD (Ladder Diagram) Capitolo 2 Un ladder diagram (LD) è una rappresentazione grafica di equazioni Booleana che combinano i contatti (argomenti ingresso) con le bobine (risultati uscita). Utilizzando simboli grafici su un diagramma di programma (organizzato come ladder diagram di cablaggio relè), il linguaggio LD descrive prove e modifiche dei dati Booleana. Nel diagramma i simboli grafici LD sono organizzati come un diagramma dei contatti elettrici. Il termine "ladder" (scala) deriva dal concetto di pioli collegati a linee di alimentazione verticali su entrambe le estremità, in cui ciascun piolo rappresenta un singolo circuito. In Connected Components Workbench è incluso un editor di lingue LD e sono supportati solo gli elementi e le istruzioni forniti con il software Connected Components Workbench. Vedere anche Elementi del ladder diagram (LD) a pagina 29 Ambiente di sviluppo del programma LD a pagina 26 Utilizzo degli elementi nell'editor di lingue LD a pagina 56 Programmazione in Ladder Diagram Un ladder diagram (LD) è una rappresentazione grafica di equazioni Booleana che combinano i contatti (argomenti ingresso) con le bobine (risultati uscita). Utilizzando simboli grafici su un diagramma di programma (organizzato come ladder diagram di cablaggio relè), il linguaggio LD descrive prove e modifiche dei dati Booleana. Il linguaggio LD utilizza simboli grafici su un diagramma di programma, organizzato come diagramma ladder del cablaggio del relè, per descrivere le prove e le modifiche dei dati Booleani. Connected Components Workbench fornisce un editor di lingue Diagramma ladder e supporta solo gli elementi e le istruzioni forniti con il software Connected Components Workbench. Vedere anche Ambiente di sviluppo del programma LD a pagina 26 Utilizzo degli elementi nell'editor di lingue LD a pagina 56 Elementi del ladder diagram (LD) a pagina 29 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 25 Capitolo 2 Linguaggio LD (Ladder Diagram) Esempi di programma ladder diagram (LD) a pagina 57 Ambiente di sviluppo del programma LD L'editor di lingue per un programma Diagramma ladder in cui si sviluppa una Program Organization Unit (POU). Nella figura seguente vengono mostrate le aree principali dell'ambiente di sviluppo di programmi LD. N. Nome Descrizione 1 Barra degli strumenti Istruzione Selezionare rapidamente un elemento istruzione e collocarlo nell'editor grafico LD o fare clic per aggiungere nell'editor di testo LD. 2 Editor di testo LD Modifica la logica mediante elementi mnemonici delle istruzioni ASCII. 3 Editor grafico LD Modifica la logica mediante elementi delle istruzioni grafici. 4 Casella degli strumenti LD Aggiunge elementi all'editor grafico LD. Vedere anche Elementi del ladder diagram (LD) a pagina 29 Barra degli strumenti Istruzione a pagina 26 Esempi di programma ladder diagram (LD) a pagina 57 Tasti di scelta rapida LD a pagina 59 Barra degli strumenti Istruzione (LD) Barra degli strumenti Istruzione è il nome colloquiale per il riquadro secondario nel riquadro editor di lingue, che funziona come una barra degli strumenti e viene utilizzata per aggiungere elementi lingua come 26 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 2 Linguaggio LD (Ladder Diagram) istruzioni allo Spazio di Lavoro dell'editor di lingue. È complementare alla casella degli strumenti di workbench. Elemento Schede Istruzioni Ricerca Preferiti Descrizione Elenca gli elementi istruzione per categoria. Fare clic su una categoria per visualizzare le istruzioni all'interno di tale categoria. È anche possibile utilizzare i tasti freccia per selezionare categorie diverse. Fare clic sulle frecce a sinistra delle schede per scorrere le categorie. Fare clic sulla freccia giù a destra delle schede per visualizzare un elenco di tutte le categorie. Elenca le istruzioni corrispondenti alla categoria Schede selezionata. Una categoria può anche avere elementi istruzione base appuntati all'inizio dell'elenco. Fare clic sulle frecce a sinistra delle istruzioni per scorrere le istruzioni. Filtra le istruzioni per categoria non appena vengono immessi i nomi o la parola chiave descrittiva. Fare clic sul nome categoria per visualizzare le istruzioni filtrate per tale categoria. Personalizza un elenco di istruzioni che è possibile individuare e aggiungere rapidamente a un programma. Vedere anche Aggiungere elementi istruzione dalla barra degli strumenti Istruzione a pagina 27 Aggiungere elementi istruzione dalla barra degli strumenti Istruzione Utilizzare la barra degli strumenti Istruzione per cercare, esplorare e aggiungere istruzioni allo Spazio di Lavoro dell'editor di lingue del programma Diagramma ladder (LD). Per aggiungere elementi istruzione dalla barra degli strumenti Istruzione all'editor di lingue: 1. Fare clic su una scheda categoria che comprende l'istruzione da aggiungere. È possibile accedere alla scheda utilizzando i tasti freccia e spostarla mediante trascinamento. 2. Selezionare l'istruzione attraverso un'operazione di trascinamento o facendo clic su di essa. 3. (facoltativo) Per individuare rapidamente l'istruzione, fare clic nel campo di ricerca, quindi digitare per trovare l'elemento istruzione in base al nome o alla parola chiave. Per chiudere la ricerca e abilitare la navigazione con tasto freccia, premere il tasto Esc. 4. (Opzionale) Fare clic con il pulsante destro del mouse sull'istruzione e selezionare Aggiungi ai Preferiti per aggiungerla alla scheda Preferiti. In alternativa, selezionare Rimuovi dai Preferiti per rimuoverla. L'impostazione Preferiti verrà salvata automaticamente. Vedere anche Barra degli strumenti Istruzione a pagina 26 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 27 Capitolo 2 Linguaggio LD (Ladder Diagram) 28 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Elementi del ladder diagram (LD) Capitolo 3 Elemento Piolo a pagina 29 Blocco istruzione (LD) a pagina 37 Diramazione a pagina 33 Bobina a pagina 37 Contatto a pagina 47 Ritorno a pagina 53 Salto a pagina 54 Gli elementi del diagramma Ladder sono i componenti utilizzati per compilare una Programmazione in Ladder Diagram. Tutti gli elementi elencati nella seguente tabella possono essere aggiunti a una Programmazione in Ladder Diagram all'interno di Connected Components Workbench. Descrizione Rappresenta un gruppo di elementi di circuito che portano all'attivazione di una bobina. Le istruzioni comprendono operatori, funzioni e blocchi funzione, tra cui blocchi funzione definiti dall'utente. Due o più istruzioni in parallelo. Rappresenta l'assegnazione di output o variabili interne. In un programma LD, una bobina rappresenta un'azione. Rappresenta il valore o la funzione di una variabile di input o interna. Rappresenta la fine condizionale dell'output di un diagramma. Rappresenta la logica condizionale o non condizionale nel programma LD che controlla l'esecuzione dei diagrammi. Vedere anche Linguaggio LD (Ladder Diagram) a pagina 25 Piolo I rami sono componenti grafici dei programmi Diagramma ladder che rappresentano un gruppo di elementi circuitali che conduce all'attivazione di una bobina. Usare le etichette per identificare i rami all'interno del diagramma. Le etichette, insieme ai salti, controllano l'esecuzione di un diagramma. I commenti sono testo in formato libero che è possibile aggiungere sopra il ramo a scopo di documentazione. Vedere anche Aggiunta di un ramo a un programma LD a pagina 30 Aggiunta di un'etichetta a un ramo a pagina 31 Elementi del ladder diagram (LD) a pagina 29 Linguaggio LD (Ladder Diagram) a pagina 25 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 29 Capitolo 3 Elementi del ladder diagram (LD) Aggiunta di un ramo a un programma LD I rami sono componenti grafici del programma Diagramma ladder che rappresentano un gruppo di elementi circuitali che conduce all'attivazione di una bobina. In Connected Components Workbench è possibile aggiungere un ramo a un programma Diagramma ladder da: · Editor di lingue Diagramma ladder · L'Editor multi-lingue si trova nel menu Strumenti · Casella degli strumenti LD Per aggiungere un elemento del ramo a un programma Diagramma ladder: 1. Nell'editor di lingue LD, fare clic con il pulsante destro del mouse su un ramo esistente, quindi: · Fare clic su Copia, quindi fare clic su Incolla per inserire una copia del ramo nell'editor di lingue. · Fare clic su Inserisci ramo, quindi: · Fare clic su Sopra per aggiungere il ramo sopra il ramo selezionato. · Fare clic su Sotto per aggiungere il ramo sotto il ramo selezionato. · Selezionare un ramo o un elemento nell'editor di lingue LD e premere: Premere CTRL+ALT+0 per aggiungere il ramo sopra il ramo selezionato. 30 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Etichette ramo Capitolo 3 Elementi del ladder diagram (LD) Premere CTRL+0 per aggiungere il ramo sotto il ramo selezionato. · Selezionare un ramo o un elemento nell'editor di lingue LD e premere: Fare clic su Strumenti > Editor multi-lingue > Inserisci ramo sotto per aggiungere il ramo sotto il ramo selezionato. Fare clic su Strumenti > Editor multi-lingue > Inserisci ramo sopra per aggiungere il ramo sopra il ramo selezionato. 1. (facoltativo) Aprire la casella degli strumenti LD per visualizzare l'elemento ramo. · Per inserire un ramo sotto un ramo esistente, selezionare il ramo nell'editor di lingue LD, quindi fare doppio clic su Ramo nella casella degli strumenti LD. Se non è selezionato un elemento prima di fare doppio clic su Ramo nella casella degli strumenti LD, il ramo viene inserito sotto l'ultimo ramo nell'editor di lingue LD. · Selezionare Ramo, quindi trascinare l'elemento nell'editor di lingue LD. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. Suggerimento: Se il Diagramma ladder contiene più di 355 rami, per visualizzare rami aggiuntivi, utilizzare il menu a comparsa invece della barra di scorrimento. Vedere anche Aggiunta di un'etichetta a un ramo a pagina 31 Tasti di scelta rapida LD a pagina 59 Elementi del ladder diagram (LD) a pagina 29 Pioli a pagina 29 Le etichette sono aggiunte facoltative di ogni ramo nell'Editor di lingue del Diagramma ladder. Le etichette possono avere un numero illimitato di caratteri e devono iniziare con una lettera o un carattere di sottolineatura, seguiti da lettere, numeri e caratteri di sottolineatura. Le etichette non possono contenere spazi o caratteri speciali (ad esempio +, -, o \). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 31 Capitolo 3 Elementi del ladder diagram (LD) Per aggiungere un'etichetta a un ramo nell'editor di lingue LD: 1. Per aggiungere un'etichetta a un ramo, fare clic con il pulsante destro del mouse sul ramo per aprire il menu Editor di lingue LD, quindi selezionare Visualizza Etichetta. Il ramo viene aggiornato per includere l'etichetta e il menu Editor di lingue LD mostra un segno di spunta accanto a Visualizza Etichetta. Commenti piolo 32 2. Selezionare l'Etichetta e digitare una descrizione. 3. (facoltativo) Per rimuovere l'etichetta, fare clic su Visualizza Etichetta nel menu Editor di lingue LD. Vedere anche Pioli a pagina 29 I commenti sono facoltativi per ogni ramo nell'Editor di lingue Diagramma ladder. Per impostazione predefinita, un commento è incluso quando si aggiunge un elemento ramo nell'editor di lingue LD. I commenti sono: · Inseriti nello spazio sopra il ramo. · Salvati in formato RTF. · Archiviati nel controllore. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) Per aggiungere o rimuovere un commento per un ramo nell'editor di lingue LD: 1. Per rimuovere un commento, fare clic con il pulsante destro del mouse sul ramo per aprire il menu dell'editor di lingue LD. Diramazione 2. Nel menu editor di lingue LD, fare clic su Visualizza commento. Il commento viene rimosso dal ramo e il segno di spunta accanto a Visualizza commento nell'editor di lingue LD viene rimosso dal menu. 3. (facoltativo) Per aggiungere un commento a un ramo, fare clic su Visualizza commento nel menu Editor di lingue LD. Vedere anche Aggiunta di un ramo a un programma LD a pagina 30 Aggiunta di un'etichetta a un ramo a pagina 31 Elementi del ladder diagram (LD) a pagina 29 Linguaggio LD (Ladder Diagram) a pagina 25 Pioli a pagina 29 Le diramazioni creano routine alternativi per le connessioni. È possibile aggiungere rami paralleli agli elementi su un ramo in un editor di lingue Diagramma ladder. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 33 Capitolo 3 Elementi del ladder diagram (LD) Esempio di diramazione Vedere anche Aggiunta di un ramo a un programma LD a pagina 34 Elementi del ladder diagram (LD) a pagina 29 Tasti di scelta rapida LD a pagina 59 Linguaggio LD (Ladder Diagram) a pagina 25 Aggiunta di un ramo a un programma LD I rami sono componenti grafici di programmazioni in Ladder Diagram (LD) che consentono di creare un routing alternativo per le connessioni e potrebbero includere rami paralleli. In Connected Components Workbench è possibile aggiungere un ramo a una programmazione in Ladder Diagram (LD) da: · Editor di lingue Diagramma ladder · L'Editor multi-lingue si trova nel menu Strumenti · Casella degli strumenti LD · Barra degli strumenti Istruzione (LD) Per aggiungere un ramo a una programmazione in Ladder Diagram: 1. Nell'editor di lingue LD, verificare che la programmazione in LD disponga di un ramo definito. Quindi, effettuare una delle seguenti operazioni: · Fare clic con il pulsante destro del mouse su un ramo o su un elemento nell'editor di lingue LD, selezionare Inserisci Elementi Ladder, quindi fare clic su Ramo. 34 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) Se viene visualizzato il selettore di variabili, selezionare una variabile o fare clic su OK senza selezionare una variabile per aggiungere l'elemento Ramo. · Selezionare un ramo o un elemento nell'editor di lingue LD e premere: CTRL+ALT+1 per aggiungere il ramo a sinistra dell'elemento o del ramo selezionato. CTRL+ALT+1 per aggiungere il ramo a sinistra dell'elemento selezionato. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi: Fare clic su Strumenti > Editor multi-lingue > Inserisci prima ramo per aggiungere il ramo a sinistra dell'elemento selezionato. Fare clic su Strumenti > Editor multi-lingue > Inserisci dopo ramo per aggiungere il ramo a destra dell'elemento selezionato. · Aprire la casella degli strumenti LD per visualizzare l'elemento ramo, quindi: Fare doppio clic sull'elemento ramo per aggiungerlo all'editor di lingue LD. Trascinare l'elemento ramo nell'editor di lingue LD e posizionarlo sul ramo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 35 Capitolo 3 Elementi del ladder diagram (LD) Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. 1. (facoltativo) Per inserire un ramo parallelo: a. Nell'editor di lingue LD, fare clic con il pulsante destro del mouse sul ramo per aprire il menu dell'editor di lingue LD. b. Dal menu editor di lingue LD, selezionare Inserisci ramo, quindi fare clic su: Sopra per inserire un ramo sopra il ramo selezionato. Sotto per inserire un ramo sotto il ramo selezionato. 2. (facoltativo) Per spostare un elemento ramo in un'altra posizione in una programmazione in LD, selezionare l'elemento e trascinarlo in una nuova posizione nella programmazione in LD. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del 36 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) mouse per inserire l'elemento nella posizione di destinazione. Vedere anche Diramazione a pagina 33 Elementi del ladder diagram (LD) a pagina 29 Tasti di scelta rapida LD a pagina 59 Linguaggio LD (Ladder Diagram) a pagina 25 Blocco istruzione (LD) Un elemento Blocco istruzione Diagramma ladder è un elemento funzionale conforme a IEC 61131-3 in un programma LD che può essere un blocco funzione, una funzione, un blocco funzione definito dall'utente, una funzione definita dall'utente o un operatore. Vedere anche Linguaggio LD (Ladder Diagram) a pagina 25 Elementi del ladder diagram (LD) a pagina 29 Bobina Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. Nelle programmazioni LD, una bobina rappresenta un'azione. Una bobina deve essere collegata a sinistra a un simbolo booleano come un contatto o all'output booleano di un blocco di istruzioni. Le bobine possono essere aggiunte solo a un ramo definito nell'editor di lingue LD. La definizione di bobina può essere modificata dopo che la bobina è stata aggiunta al ramo. L'esempio seguente mostra i tipi di elemento della bobina disponibili per la Programmazione in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 37 Capitolo 3 Elementi del ladder diagram (LD) Esempio: Bobine Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobina diretta a pagina 41 Bobina invertita a pagina 41 Bobina impostata a pagina 44 Bobina ripristinata a pagina 45 Aggiunta di elementi a bobina Le bobine sono componenti grafici di programmi Diagramma ladder, che rappresentano un'azione eseguita, un'uscita o una variabile interna. In Connected Components Workbench è possibile aggiungere una bobina a un programma Diagramma ladder da: · Editor di lingue Diagramma ladder · L'Editor multi-lingue si trova nel menu Strumenti · Casella degli strumenti LD · Barra degli strumenti Istruzione (LD) Per aggiungere un elemento a bobina a un programma Diagramma ladder: 1. Nell'editor di lingue LD, verificare che il programma LD disponga di un ramo definito per la bobina. Quindi, effettuare una delle seguenti operazioni: 38 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) · Fare clic con il pulsante destro del mouse su un ramo o un elemento nell'editor di lingue LD, selezionare Inserisci Elementi ladder, quindi fare clic su Bobina diretta. Se viene visualizzato il selettore di variabili, selezionare una variabile o fare clic su OK senza selezionare una variabile per aggiungere l'elemento Bobina diretta. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi premere CTRL+4 per aggiungere la Bobina diretta a destra del ramo. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi fare clic su Strumenti > Editor multi-lingue > Inserisci bobina per aggiungere la bobina a destra del ramo. · Aprire la casella degli strumenti LD per visualizzare gli elementi bobina (Bobina diretta, Bobina inversa, Imposta bobina, Reimposta bobina, Bobina fronte di salita dell'impulso, Bobina fronte di discesa dell'impulso), quindi: Fare doppio clic sull'elemento a bobina per aggiungerlo all'editor di lingue LD. Trascinare l'elemento a bobina nell'editor di lingue LD e posizionarlo sul ramo. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. 1. (Facoltativo) Per inserire una bobina parallela: a. Nell'editor di lingue LD, verificare che il programma LD abbia una diramazione definita, quindi fare clic con il pulsante destro del Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 39 Capitolo 3 Elementi del ladder diagram (LD) mouse sul primo livello della diramazione, per aprire il menu Editor di lingue LD. b. Nel menu Editor di lingue LD, selezionare Inserisci elementi Ladder, quindi fare clic su Bobina diretta. L'elemento viene inserito nel livello superiore della diramazione. c. Fare clic con il pulsante destro del mouse sul livello inferiore della diramazione, per aprire il menu Editor di lingue LD. d. Nel menu Editor di lingue LD, selezionare Inserisci elementi Ladder, quindi fare clic su Bobina diretta. L'elemento viene inserito nel livello inferiore della diramazione. 2. (Facoltativo) Per modificare il tipo di bobina, nell'editor di lingue selezionare la bobina, quindi premere la barra spaziatrice fino a quando il tipo di bobina viene visualizzato nell'editor di lingue. Ogni volta che si preme la barra spaziatrice, il tipo di bobina cambia da diretto, a inverso, a impostato, a ripristinato, a fronte salita dell'impulso, a fronte discesa dell'impulso. Vedere anche Diramazione a pagina 33 Bobine a pagina 37 Elementi del ladder diagram (LD) a pagina 29 Tasti di scelta rapida LD a pagina 59 40 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Bobina diretta Capitolo 3 Elementi del ladder diagram (LD) Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. La bobina diretta supporta l'output booleano di uno stato booleano della linea di collegamento. La variabile associata viene assegnata con lo stato booleano della connessione di sinistra. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile Booleana associata deve essere un'uscita oppure deve essere definita dall'utente. Esempio di bobina diretta Bobina invertita Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobine a pagina 37 Bobina invertita a pagina 41 Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 41 Capitolo 3 Elementi del ladder diagram (LD) L'elemento a bobina invertito supporta un output booleano in base alla negazione booleana dello stato di una linea di collegamento. La variabile associata viene assegnata con la negazione booleana dello stato della connessione di sinistra. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile Booleana associata deve essere un'uscita oppure deve essere definita dall'utente. Esempio di Bobina inversa Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobine a pagina 37 Bobina diretta a pagina 41 Elementi del ladder diagram (LD) a pagina 29 Bobina fronte di discesa impulso Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. 42 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) Le bobine fronte di discesa impulso (o negative) supportano l'uscita dello stato booleano di una linea di connessione. La variabile associata viene impostata su TRUE se lo stato booleano della connessione di sinistra scende da TRUE a FALSE. La variabile di uscita viene reimpostata a FALSE in tutti gli altri casi. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile Booleana associata deve essere un'uscita oppure deve essere definita dall'utente. Esempio di Bobina fronte di discesa impulso Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobine a pagina 37 Bobina fronte di salita impulso a pagina 43 Bobina fronte di salita impulso Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 43 Capitolo 3 Elementi del ladder diagram (LD) Le bobine fronte di salita impulso (o positive) supportano l'uscita dello stato booleano di una linea di connessione. La variabile associata viene impostata su TRUE se lo stato booleano della connessione di sinistra sale da FALSE a TRUE. La variabile di uscita viene reimpostata a FALSE in tutti gli altri casi. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile booleana associata deve essere di uscita oppure deve essere definita dall'utente. Esempio di Bobina fronte di salita impulso Bobina impostata Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobine a pagina 37 Elementi del ladder diagram (LD) a pagina 29 Bobina fronte di discesa impulso a pagina 42 Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. Nelle programmazioni LD, una bobina rappresenta un'azione. Le bobine impostate supportano l'uscita dello stato booleano di una linea di connessione. 44 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) La variabile associata viene impostata su TRUE quando lo stato booleano della connessione di sinistra diviene TRUE. La variabile di uscita mantiene tale valore fino a che viene generato un ordine inverso da una Bobina ripristinata. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile Booleana associata deve essere un'uscita oppure deve essere definita dall'utente. Esempio di Imposta bobina Vedere anche Aggiunta di elementi a bobina a pagina 38 Bobine a pagina 37 Bobina ripristinata a pagina 45 Bobina ripristinata Le bobine sono componenti grafici di Programmazione in Ladder Diagram, che rappresentano l'assegnazione di un'uscita o di una variabile interna. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 45 Capitolo 3 Elementi del ladder diagram (LD) Le bobine ripristinate supportano l'uscita dello stato booleano di una linea di connessione. La variabile associata viene impostata su FALSE quando lo stato booleano della connessione di sinistra diviene TRUE. La variabile di uscita mantiene tale valore fino a che viene generato un ordine inverso da una Bobina impostata. Lo stato della connessione di sinistra si propaga alla connessione di destra. La connessione di destra deve essere collegata alla rotaia di alimentazione verticale di destra (a meno che non siano presenti bobine parallele, caso in cui solo la bobina superiore deve essere collegata alla rotaia di alimentazione verticale di destra). La variabile booleana associata deve essere di uscita oppure deve essere definita dall'utente. Esempio di Reimposta bobina Vedere anche Bobine a pagina 37 Aggiunta di elementi a bobina a pagina 38 Bobina impostata a pagina 44 46 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Contatto Capitolo 3 Elementi del ladder diagram (LD) I contatti sono componenti grafici di Programmazioni in Ladder Diagram. A seconda del tipo, un contatto rappresenta il valore o la funzione di un ingresso o di una variabile interna. I contatti possono essere aggiunti solo a un piolo definito nell'editor di lingue LD. Dopo aver aggiunto un contatto, è possibile modificarne la definizione. L'esempio seguente mostra i tipi di elemento di contatto disponibili per la Programmazione in Ladder Diagram. Esempio: Contatti Vedere anche Aggiunta di elementi contatto a pagina 47 Contatto diretto a pagina 50 Contatto invertito a pagina 51 Contatto fronte di salita impulso a pagina 51 Contatto fronte di discesa impulso a pagina 52 Aggiunta di un contatto a un I contatti sono componenti grafici di una Programmazione in Ladder Diagram. A seconda del tipo, un contatto rappresenta il valore o la programma LD funzione di un ingresso o di una variabile interna. I contatti possono essere aggiunti solo a un piolo definito nell'editor di lingue LD. In Connected Components Workbench è possibile aggiungere un contatto a un programma Diagramma ladder da: · Editor di lingue Diagramma ladder · L'Editor multi-lingue si trova nel menu Strumenti · Casella degli strumenti LD · Barra degli strumenti Istruzione (LD) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 47 Capitolo 3 Elementi del ladder diagram (LD) Per aggiungere un elemento di contatto a un programma Diagramma ladder: 1. Nell'editor di lingue LD, verificare che il programma LD disponga di un ramo definito per il contatto. Quindi, effettuare una delle seguenti operazioni: · Fare clic con il pulsante destro del mouse su un ramo o un elemento nell'editor di lingue LD, selezionare Inserisci Elementi ladder, quindi fare clic su Contatto Diretto. Se viene visualizzato il selettore di variabili, selezionare una variabile o fare clic su OK senza selezionare una variabile per aggiungere l'elemento Contatto diretto. · Selezionare un ramo o un elemento nell'editor di lingue LD e premere: CTRL+ALT+3 per aggiungere l'elemento Contatto diretto a sinistra dell'elemento o del ramo selezionato. CTRL+3 per aggiungere l'elemento Contatto diretto a destra dell'elemento o del ramo selezionato. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi: Fare clic su Strumenti > Editor multi-lingue > Inserisci prima contatto per aggiungere il contatto a sinistra dell'elemento o del ramo selezionato. Fare clic su Strumenti > Editor multi-lingue > Inserisci dopo contatto per aggiungere il contatto a destra dell'elemento o del ramo selezionato. 48 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) · Aprire la casella degli strumenti LD per visualizzare gli elementi di contatto (Contatto diretto, Contatto inverso, Contatto sul fronte di salita dell'impulso, Contatto sul fronte di discesa dell'impulso ), quindi: Fare doppio clic sull'elemento di contatto per aggiungerlo all'editor di lingue LD. Trascinare l'elemento di contatto nell'editor di lingue LD e posizionarlo sul ramo. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. 1. (Facoltativo) Per inserire un contatto parallelo: a. Nell'editor di lingue LD, verificare che il programma LD abbia una diramazione definita, quindi fare clic con il pulsante destro del mouse sul primo livello della diramazione, per aprire il menu Editor di lingue LD. b. Nel menu Editor di lingue LD, selezionare Inserisci elementi Ladder, quindi fare clic su Contatto diretto. L'elemento viene inserito nel livello superiore della diramazione. c. Fare clic con il pulsante destro del mouse sul livello inferiore della diramazione, per aprire il menu Editor di lingue LD. d. Nel menu Editor di lingue LD, selezionare Inserisci elementi Ladder, quindi fare clic su Contatto diretto. L'elemento viene inserito nel livello inferiore della diramazione. 2. (Facoltativo) Per modificare il tipo di contatto, nell'editor di lingue selezionare il contatto, quindi premere la Barra spaziatrice fino a quando il tipo di contatto viene visualizzato nell'editor di lingue. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 49 Capitolo 3 Elementi del ladder diagram (LD) Ogni volta che si preme la barra, il tipo di contatto cambia da diretto a inverso, a fronte di salita dell'impulso, a fronte di discesa dell'impulso. Vedere anche Diramazione a pagina 33 Contatti a pagina 47 Elementi del ladder diagram (LD) a pagina 29 Tasti di scelta rapida LD a pagina 59 Contatto diretto I contatti sono componenti grafici di Programmazioni in Ladder Diagram. I contatti diretti supportano le operazioni booleane tra uno stato della linea di connessione e una variabile booleana. Lo stato della linea di collegamento a destra del contatto è l'AND logico tra lo stato della linea di collegamento sinistra e il valore della variabile associata al contatto. Esempio di contatto diretto Vedere anche Aggiunta di un elemento contatto a pagina 47 Contatti a pagina 47 Contatto invertito a pagina 51 50 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Contatto invertito Capitolo 3 Elementi del ladder diagram (LD) I contatti sono componenti grafici di Programmazioni in Ladder Diagram. I contatti invertiti consentono un'operazione booleana tra lo stato di una linea di connessione e la negazione booleana di una variabile booleana. Lo stato della linea di collegamento a destra del contatto è l'AND logico tra lo stato della linea di collegamento sinistra e la negazione booleana del valore della variabile associata al contatto. Esempio di Contatto inverso Vedere anche Aggiunta di elementi contatto a pagina 47 Contatti a pagina 47 Contatto diretto a pagina 50 Contatto fronte di salita impulso I contatti sono componenti grafici di Programmazioni in Ladder Diagram. I contatti fronte di salita impulso (o positivi) consentono un'operazione booleana tra lo stato di una linea di connessione e il fronte di salita di una variabile booleana. Lo stato della linea di connessione a destra del contatto è TRUE quando lo stato della linea di connessione a sinistra è TRUE e lo stato Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 51 Capitolo 3 Elementi del ladder diagram (LD) della variabile associata sale da FALSE a TRUE. Lo stato viene reimpostato a FALSE in tutti gli altri casi. Esempio di Contatto sul fronte di salita dell'impulso Raccomandazione: limitare l'uso di variabili di uscia con contatti fronte Si consiglia di non utilizzare output o variabili con un contatto sul fronte di salita dell'impulso (positivo) o un contatto sul fronte di discesa dell'impulso (negativo). Tali contatti sono destinati agli impulsi fisici in un ladder diagram. Per individuare il fronte di una variabile o di un output, è consigliato l'utilizzo del blocco funzione R_TRIG/F_TRIG, che è supportato e funziona in qualsiasi linguaggio e in qualsiasi punto del programma. Vedere anche Aggiunta di elementi contatto a pagina 47 Contatti a pagina 47 Contatto fronte di discesa impulso a pagina 52 Contatto fronte di discesa impulso I contatti sono componenti grafici di Programmazioni in Ladder Diagram. I contatti fronte di discesa impulso (o negativi) consentono un'operazione booleana tra lo stato di una linea di connessione e il fronte di discesa di una variabile booleana. Lo stato della linea di connessione a destra del contatto è TRUE quando lo stato della linea di connessione a sinistra è TRUE e lo stato della variabile associata cade da TRUE a FALSE. Lo stato viene reimpostato a FALSE in tutti gli altri casi. 52 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) Esempio di Contatto sul fronte di discesa dell'impulso Ritorno Raccomandazione: limitare l'uso di variabili di uscia con contatti fronte Si consiglia di non utilizzare output o variabili con un contatto sul fronte di salita dell'impulso (positivo) o un contatto sul fronte di discesa dell'impulso (negativo). Tali contatti sono destinati agli impulsi fisici in un ladder diagram. Per individuare il fronte di una variabile o di un output, è consigliato l'utilizzo del blocco funzione R_TRIG/F_TRIG, che è supportato e funziona in qualsiasi linguaggio e in qualsiasi punto del programma. Vedere anche Aggiunta di elementi contatto a pagina 47 Contatto a pagina 47 Contatto fronte di salita impulso a pagina 51 Vengono restituite uscite che rappresentano una fine condizionale di un programma Diagramma ladder. Non è possibile posizionare connessioni a destra di un elemento ritorno. Se la linea di collegamento di sinistra ha lo stato Booleana TRUE, il diagramma termina senza che vengano eseguite le equazioni nelle righe successive del diagramma stesso. Se il diagramma LD ha una funzione, il suo nome viene associato a una bobina di uscita per impostare il valore di ritorno (restituito al programma che effettua la chiamata). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 53 Capitolo 3 Elementi del ladder diagram (LD) Esempio di valori restituiti Salto 54 Per inserire un ritorno in programma Diagramma ladder: Effettuare una delle seguenti operazioni: · Fare clic con il pulsante destro del mouse su un ramo o su un elemento nell'editor di lingue LD, selezionare Inserisci gli elementi Ladder, quindi fare clic su Restituisci. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi premere CTRL+6. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi fare clic su Strumenti > Editor multi-lingue > Inserisci ritorno. · Aprire la casella degli strumenti LD per visualizzare l'elemento di ritorno, quindi: Fare doppio clic sull'elemento di ritorno per aggiungerlo all'editor di lingue LD. Trascinare l'elemento di ritorno nell'editor di lingue LD e posizionarlo sul ramo. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. Vedere anche Elementi del ladder diagram (LD) a pagina 29 Linguaggio LD (Ladder Diagram) a pagina 25 I salti sono elementi condizionali o non condizionali che controllano l'esecuzione di un programma Diagramma ladder. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Notazione di salto Capitolo 3 Elementi del ladder diagram (LD) La seguente notazione indica un salto a un'etichetta: >>LABEL: salta a un'etichetta con nome "LABEL" Esempio di salto Per inserire un salto: Effettuare una delle seguenti operazioni: · Fare clic con il pulsante destro del mouse su un ramo o su un elemento nell'editor di lingue LD, selezionare Inserisci gli elementi ladder, quindi fare clic su Salta. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi premere CTRL+5. · Selezionare un ramo o un elemento nell'editor di lingue LD, quindi fare clic su Strumenti > Editor multi-lingue > Inserisci salto. · Aprire la casella degli strumenti LD per visualizzare l'elemento di salto, quindi: Fare doppio clic sull'elemento di salto per aggiungerlo all'editor di lingue LD. Trascinare l'elemento di salto nell'editor di lingue LD e posizionarlo sul ramo. Nell'editor di lingue LD viene mostrato un segno più (+) per visualizzare una destinazione valida. Rilasciare il pulsante del mouse per aggiungere l'elemento. Blocchi di istruzione nei programmi LD Vedere anche Elementi del ladder diagram (LD) a pagina 29 Linguaggio LD (Ladder Diagram) a pagina 25 Ritorni a pagina 53 Il set di istruzioni Connected Components Workbench include i blocchi di istruzioni IEC 61131-3 conformi. I blocchi di istruzioni comprendono i blocchi funzione, le funzioni e gli operatori. L'utente può collegare input Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 55 Capitolo 3 Elementi del ladder diagram (LD) e output dei blocchi di istruzioni a variabili, contatti, bobine o altri input e output di blocchi di istruzione. Convenzioni per il blocco di istruzioni Le specifiche IEC61131-3 relative ai linguaggi di programmazione affrontano numerosi aspetti legati ai controllori programmabili, tra cui l'esecuzione del sistema operativo, le definizioni dei dati, i linguaggi di programmazione e i set di istruzioni. Di conseguenza, la specifica IEC61131-3 fornisce un set di funzionalità di base che è possibile estendere secondo le applicazioni dell'utente finale. Nomi blocco di istruzioni Funzioni e blocchi funzione sono rappresentati da una casella che visualizza il nome dell'istruzione e i nomi abbreviati dei parametri. Per i blocchi funzione, il nome dell'istanza viene visualizzato sopra il nome del blocco funzione. Parametri di ritorno del blocco di istruzioni · Il parametro di ritorno di una funzione ha lo stesso nome della funzione. Il parametro di ritorno è l'unico output. · I parametri di ritorno di un blocco funzione possono avere qualsiasi nome. Parametri di ritorno multipli possono fornire più output. · È possibile definire i parametri dei programmi per diversi dispositivi esplorando le schede dei singoli dispositivi visualizzate nella schermata Parametro. Vedere anche Elementi del ladder diagram (LD) a pagina 29 Utilizzo nell'editor di lingue LD Quando si aggiungono elementi a un ramo nella Programmazione in Ladder Diagram, questi vengono aggiunti secondo i seguenti criteri. · Il primo elemento di un piolo viene inserito nella posizione selezionata nel ladder diagram. · I successivi elementi vengono inseriti a destra dell'elemento selezionato nel piolo. · Impossibile inserire un elemento a destra di un ritorno bobina o salto. Diversi metodi per aggiungere un elemento alla Programmazione in Ladder Diagram: · Editor ladder LD 56 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) · Aggiungere elementi, eliminare elementi, copiare e incollare elementi. · Utilizzare i tasti di scelta rapida LD per aggiungere elementi. · Editor di testo LD · Aggiunge, modifica ed elimina gli elementi. · Copiare e incollare elementi da/verso RSLogix 500 e <RSLX5000>. · L'Editor multi-lingue si trova nel menu Strumenti. · Aggiungere elementi. · Esportare un'immagine del programma LD. · Attivare o disattivare l'apertura automatica del Selettore di variabili e del Selettore blocco istruzione. · Casella degli strumenti LD · Aggiungere elementi. · Barra degli strumenti Istruzione · Aggiungere elementi. È possibile sostituire una variabile assegnata direttamente dall'editor di lingue o dal selettore di variabili. Per modificare una variabile dall'editor di lingue: 1. Nell'editor di lingue, fare clic sul nome della variabile per visualizzare un elenco a discesa delle variabili globali e locali. 2. Effettuare una delle seguenti operazioni: · Immettere un nome della variabile nella casella di testo: · Selezionare un nome variabile diverso dall'elenco a discesa. Per modificare una variabile dal selettore di variabili: 1. Nell'editor di lingue, fare doppio clic sulla variabile per visualizzare il selettore di variabili. 2. Fare clic sul nome della variabile, quindi selezionare una variabile diversa dall'elenco a discesa delle variabili globali e locali. 3. Fare clic su una variabile esistente e immettere valori costanti nella casella di testo visualizzata. Esempi di programma ladder diagram (LD) Vedere anche Linguaggio LD (Ladder Diagram) a pagina 25 Esempi di programma ladder diagram (LD) a pagina 57 Tasti di scelta rapida LD a pagina 59 I seguenti esempi sono Programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 57 Capitolo 3 Elementi del ladder diagram (LD) Esempio: blocco funzione R_TRIG Il programma di esempio seguente mostra l'uso consigliato di un blocco funzione R_TRIG utilizzato per rilevare un bordo durante la connessione con il controllore. Esempio: confronto dei valori reali mediante sottrazione (-) ABS e minore di (<) Il tipo di dati Reale non è consigliabile per confrontare l'uguaglianza dei valori a causa delle differenze nell'arrotondamento dei numeri. Due valori di uscita potrebbero sembrare uguali su un display Connected Components Workbench, ma comunque valutati come false. Ad esempio, 23,500001 e 23,499999 saranno visualizzati entrambi come 23,5 in sul display di ingresso delle variabili, tuttavia nel controllore non saranno uguali. Per verificare se due dati di tipo reale sono uguali, è possibile usare l'istruzione Sottrazione per ottenere la differenza tra i valori e quindi determinare se la differenza è inferiore a un valore con precisione 58 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 3 Elementi del ladder diagram (LD) stabilita. Vedere l'esempio seguente di programma LD per il confronto tra i valori di due dati di tipo reale. Vedere anche Linguaggio LD (Ladder Diagram) a pagina 25 Ambiente di sviluppo del programma LD a pagina 26 Utilizzo degli elementi nell'editor di lingue LD a pagina 56 Tasti di scelta rapida LD I seguenti tasti di scelta rapida sono disponibili per l'utilizzo con il linguaggio Diagramma ladder: Tasto di scelta rapida Descrizione Ctrl+0 Inserisce un piolo dopo un piolo selezionato.1 Ctrl+Alt+0 Ctrl+1 Ctrl+Alt+1 Ctrl+2 Inserisce un piolo prima di un piolo selezionato.1 Inserisce una diramazione dopo un elemento selezionato. Inserisce una diramazione prima di un elemento selezionato. Inserisce un blocco di istruzioni dopo un elemento selezionato.2 Ctrl+Alt+2 Inserisce un blocco di istruzioni prima di un elemento selezionato.2 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 59 Capitolo 3 60 Elementi del ladder diagram (LD) Tasto di scelta rapida Descrizione Ctrl+3 Ctrl+Alt+3 Ctrl+4 Ctrl+5 Inserisce un contatto dopo un elemento selezionato.2 Inserisce un contatto prima di un elemento selezionato.2 Inserisce una bobina dopo un elemento selezionato. Inserisce un salto dopo un elemento selezionato. Ctrl+Alt+5 Ctrl+6 Inserisce un salto dopo un elemento selezionato. Inserisce un ritorno dopo un elemento selezionato. Ctrl+8 Ctrl+Alt+8 Elimina Invio Barra spaziatrice Maiusc+Invio Ctrl+Invio Inserisce una diramazione sopra la diramazione selezionata. Inserisce una diramazione sotto la diramazione selezionata. Rimuove un piolo o un elemento selezionato. Se è selezionato un ramo, premendo il tasto INVIO si seleziona il primo elemento del ramo. Se non sono presenti elementi all'interno del ramo, non viene eseguita alcuna operazione. Se è selezionato un contatto o una bobina, premere la barra spaziatrice per modificare il tipo di contatto o bobina. Inserisce un'interruzione di riga. Apre una riga sopra la riga in uso. Ctrl+Maiusc+Invio Ctrl+Maiusc+L Ctrl+Canc Apre una riga sotto la riga corrente. Rimuove la riga corrente. Rimuove la parola successiva nella riga in uso. Backspace Ctrl+Backspace Ctrl+C Ctrl+Ins Ctrl+V Maiusc+Ins Ctrl+Z Ctrl+Y Ctrl+Maiusc+Z Ctrl+Sinistra Ctrl+Destra Home Fine Ctrl+Home Ctrl+Fine Pagina su Pagina giù Rimuove il carattere a sinistra. Rimuove la parola precedente sulla riga in uso. Copia il testo selezionato negli appunti. Copia il testo selezionato negli appunti. Incolla nel punto di inserimento il testo salvato negli appunti. Incolla nel punto di inserimento il testo salvato negli appunti. Annulla il comando precedente. Ripete il comando precedente. Ripete il comando precedente. Passa all'istruzione o parola precedente. Passa all'istruzione o parola successiva. Passa al primo elemento del ramo selezionato; se non sono presenti elementi all'interno del ramo, non viene eseguita alcuna operazione. Passa all'ultimo elemento del ramo selezionato; se non sono presenti elementi all'interno del ramo, non viene eseguita alcuna operazione. Passa al primo elemento del primo ramo; se non sono presenti elementi all'interno del ramo viene selezionato il primo ramo. Passa all'ultimo elemento dell'ultimo ramo, se non sono presenti elementi all'interno del ramo viene selezionato l'ultimo ramo. Passa in alto nel codice visibile. Passa in basso nel codice visibile. Ctrl+J Passa alla parentesi corrispondente. Ctrl+Giù Ctrl+Su Maiusc+Giù Maiusc+clic con il pulsante sinistro Maiusc+Su Maiusc+Sinistra Maiusc+Destra Ctrl+Maiusc+Sinistra Scorre verso il basso. Scorre verso l'alto. Seleziona verso il basso. Seleziona più rami. Fare clic su ogni ramo singolarmente. Seleziona verso l'alto. Seleziona verso sinistra. Seleziona verso destra. Seleziona la parola o istruzione precedente. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Tasto di scelta rapida Ctrl+Maiusc+Destra Maiusc+Home Maiusc+Fine Ctrl+Maiusc+Home Ctrl+Maiusc+Fine MAIUSC+Pagina su MAIUSC+Pagina giù CTRL+MAIUSC+Pagina su Descrizione Capitolo 3 Elementi del ladder diagram (LD) Seleziona la parola o istruzione successiva. Seleziona dal punto di inserimento all'inizio della riga. Seleziona dal punto di inserimento alla fine della riga. Seleziona dal punto di inserimento all'inizio del documento. Seleziona dal punto di inserimento alla fine del documento. Seleziona dal punto di inserimento all'inizio del codice visibile. Seleziona dal punto di inserimento alla fine del codice visibile. Seleziona dal punto di inserimento all'inizio del codice visibile. CTRL+MAIUSC+Pagina giù Seleziona dal punto di inserimento alla fine del codice visibile. Ctrl+A Seleziona l'intero documento. Ctrl+D Ctrl+R Ctrl+Maiusc+W Se è selezionato un ramo o un elemento del ramo, dopo aver premuto CTRL+D l'utente può modificare il commento del ramo. Attivare o disattivare la chiamata automatica del selettore. Per impostazione predefinita, quando si aggiunge un elemento a una Programmazione in Ladder Diagram viene aperta la finestra di dialogo Selettore blocco istruzione o Selettore di variabili. Seleziona la parola successiva. Ctrl+Maiusc+J Maiusc+Alt+Giù Maiusc+Alt+Su Maiusc+Alt+Sinistra Maiusc+Alt+Destra Ctrl+Maiusc+Alt+Sinistra Ctrl+Maiusc+Alt+Destra Seleziona fino alla parentesi corrispondente. Seleziona la riga in uso e le successive. Seleziona la riga in uso e le precedenti. Seleziona a sinistra sulla riga corrente. Seleziona a destra della riga corrente. Seleziona le colonne disponibili nelle righe di codice da sinistra a destra. Seleziona le colonne disponibili nelle righe di codice da destra a sinistra. Esc Deseleziona il testo selezionato. Ins Attiva/disattiva la modalità di inserimento/sovrascrittura. 1 Se non è selezionato alcun piolo, viene aggiunto un piolo alla fine dell'elenco pioli. 2 Se è selezionato un ramo, viene inserito un elemento alla fine del ramo. Vedere anche Linguaggio LD (Ladder Diagram) a pagina 25 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 61 Istruzione allarme Capitolo 4 Blocco funzione LIM_ALRM a pagina 63 Utilizzare l'istruzione allarme per generare avvisi quando viene raggiunto un limite superiore o inferiore configurato. Descrizione Isteresi di un valore reale per limiti superiore e inferiore. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 LIM_ALRM (limite allarme) LIM_ALRM è un allarme con isteresi di un valore reale per limiti superiore e inferiore. L'isteresi si applica ai limiti superiore e inferiore. Il delta isteresi usato per il limite superiore o inferiore è pari alla metà del parametro EPS. L'allarme di processo si verifica quando il controllore riceve ed elabora un errore. Gli allarmi a livello di processo segnalano che il modulo ha superato i limiti alti o bassi configurati per ciascun canale. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Se TRUE, abilita il blocco istruzione. TRUE: esegue il calcolo corrente LIM_ALRM. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 63 Capitolo 4 Istruzione allarme H Ingresso REAL X Ingresso REAL L Ingresso REAL EPS Ingresso REAL QH Uscita BOOL Q Uscita BOOL QL Uscita BOOL ENO Uscita BOOL Valore limite superiore. L'ingresso è qualsiasi valore reale. Valore limite inferiore. Valore di isteresi (deve essere maggiore di zero). Allarme superiore: TRUE se X supera limite superiore H. Uscita allarme: TRUE se X è oltre i limiti. Allarme inferiore: TRUE se X minore del limite inferiore L. Abilita uscite. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di diagramma di temporizzazione LIM_ALRM Esempio di programmazione a blocchi funzionali LIM_ALRM 64 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder LIM_ALRM Capitolo 4 Istruzione allarme Esempio di testo strutturato LIM_ALRM Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 65 Capitolo 4 Istruzione allarme Vedere anche Istruzioni allarme a pagina 63 66 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni aritmetiche Capitolo 5 Usare le istruzioni aritmetiche per eseguire calcoli matematici. Funzione Descrizione ABS a pagina 67 ACOS a pagina 69 ACOS_LREAL a pagina 71 Addition a pagina 72 ASIN a pagina 74 ASIN_LREAL a pagina 76 ATAN a pagina 77 ATAN_LREAL a pagina 79 COS a pagina 81 COS_LREAL a pagina 82 Division a pagina 84 EXPT a pagina 86 LOG a pagina 87 MOD a pagina 89 MOV a pagina 91 Multiplication a pagina 92 Neg a pagina 94 POW a pagina 95 RAND a pagina 97 SIN a pagina 99 SIN_LREAL a pagina 100 SQRT a pagina 102 Subtraction a pagina 103 Restituisce il valore assoluto di un valore Real. Calcola l'arcocoseno di un valore Real. Calcola l'arcocoseno di un valore Long Real. Somma due o più valori Integer, Real, Time o String. Calcola l'arcoseno di un valore Real. Calcola l'arcoseno di un valore Long Real. Calcola l'arcotangente di un valore Real. Calcola l'arcotangente di un valore Long Real. Calcola il coseno di un valore Real. Calcola il coseno di un valore Long Real. Divisione di due valori Integer o Real. Calcola il valore Real di un numero di base elevato alla potenza dell'esponente intero. Calcola il logaritmo (base 10) di un valore Real. Esegue il calcolo Modulo sui valori Integer. Copia un valore di ingresso in un'uscita. Moltiplica due o più valori Integer o Real. Converte un valore in un valore negativo. Calcola il valore di un numero Real elevato alla potenza dell'esponente Real. Calcola valori interi casuali da un intervallo definito. Calcola il seno di un valore Real. Calcola il seno di un valore Long Real. Calcola la radice quadrata di un valore Real. Sottrarre un valore Integer, Real o Time da un altro valore Integer, Real o Time. TAN a pagina 105 TAN_LREAL a pagina 107 TRUNC a pagina 108 Calcola la tangente di un valore Real. Calcola la tangente di un valore Long Real. Tronca valori Real, lasciando solo l'intero. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 ABS (valore assoluto) Restituisce il valore assoluto (positivo) di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 67 Capitolo 5 Istruzioni aritmetiche Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN ENO ABS Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo assoluto corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Qualunque valore reale con segno. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. REAL Valore assoluto (sempre positivo). Esempio di programmazione a blocchi funzionali ABS Esempio di Diagramma ladder ABS 68 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Esempio di diagramma di Testo strutturato ABS Istruzioni aritmetiche (* Equivalenza ST: *) over := (ABS (delta) > range); Risultati ACOS (arcocoseno di origine) Vedere anche Istruzioni aritmetiche a pagina 67 Calcola l'arcocoseno di un valore Real. I valori di input e output sono espressi in radianti. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 69 Capitolo 5 Istruzioni aritmetiche Parametro EN Tipo di parametro Ingresso Tipo di dati BOOL IN Ingresso REAL ENO Uscita BOOL ACOS Uscita REAL Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo dell'arcocoseno corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Deve essere compreso nell'intervallo [-1.0 .. +1,0]. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Arcoseno del valore di ingresso (nel set [-p1/2..+p1/2])=0 per ingresso non valido. Esempio di programmazione a blocchi funzionali ACOS Esempio di Diagramma ladder ACOS Esempio di Testo strutturato ACOS (* Equivalenza ST: *) coseno := COS (angolo); risultato := ACOS (coseno); (* il risultato è uguale all'angolo *) 70 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 5 Istruzioni aritmetiche Vedere anche Istruzioni aritmetiche a pagina 67 ACOS_LREAL (arcocoseno Long Real) Calcola l'arcocoseno di un valore Long Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN ENO ACOS_LREAL Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL LREAL BOOL LREAL Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Deve essere compreso nell'intervallo [-1.0 .. +1,0]. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Arcocoseno del valore in ingresso (in set [0.0 .. PI]) = 0,0 per ingresso non valido. Esempio di Programmazione a blocchi funzionali ACOS_LREAL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 71 Capitolo 5 Istruzioni aritmetiche Esempio di Diagramma ladder ACOS_LREAL Esempio di Testo strutturato ACOS_LREAL (* Equivalenza ST: *) coseno := COS_LREAL (angolo); risultato := ACOS_LREAL (coseno); (* il risultato è uguale all'angolo *) Risultati Addition 72 Vedere anche Istruzioni aritmetiche a pagina 67 Somma due o più valori Integer, Real, Time o String. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Istruzioni aritmetiche Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 i2 Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME STRING SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME STRING Abilitazione istruzioni. TRUE: esegue il calcolo dell'addizione corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Addendo in tipo di dati Real, Time o String. Tutti gli ingressi devono essere dello stesso tipo di dati. Addendo in tipo di dati Real, Time o String. Tutti gli ingressi devono essere dello stesso tipo di dati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 73 Capitolo 5 o1 Istruzioni aritmetiche Uscita ENO Uscita SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME STRING BOOL Somma dei valori di input in formato Real, Time o String. Input e output devono utilizzare lo stesso tipo di dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato Addition (* Equivalenza ST: *) ao10 := ai101 + ai102; ao5 := (ai51 + ai52) + ai53; Vedere anche Istruzioni aritmetiche a pagina 67 ASIN (arcoseno) Calcola l'arcoseno di un valore Real. I valori di input e output sono espressi in radianti. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN 74 Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo dell'arcoseno corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Deve essere compreso nell'intervallo [-1.0 .. +1,0]. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Istruzioni aritmetiche ASIN Uscita REAL Arcoseno del valore di ingresso (nel set [-p1/2..+p1/2])=0 per ingresso non valido. ENO Uscita BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ASIN Esempio di Diagramma ladder ASIN Esempio di Testo strutturato ASIN (* Equivalenza ST: *) sine := SIN (angle); result := ASIN (sine); (* il risultato è uguale all'angolo *) Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 75 Capitolo 5 Istruzioni aritmetiche Vedere anche Istruzioni aritmetiche a pagina 67 ASIN_LREAL (arcoseno Long Calcola l'arcoseno di un valore Long Real. Real) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN ASIN_LREAL ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL LREAL LREAL BOOL Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Deve essere compreso nell'intervallo [-1.0 .. +1,0]. Arcoseno del valore in ingresso (in set [-PI/2 .. +PI/2]) = 0,0 per ingresso non valido. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ASIN_LREAL Esempio di diagramma ladder ASIN_LREAL 76 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Esempio di testo strutturato ASIN_LREAL Istruzioni aritmetiche (* Equivalenza ST: *) seno := SIN_LREAL (angolo); risultato := ASIN_LREAL (seno); (* il risultato è uguale all'angolo *) Risultati Vedere anche Istruzioni aritmetiche a pagina 67 ATAN (arcotangente) Calcola l'arcotangente di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 77 Capitolo 5 EN Istruzioni aritmetiche Ingresso BOOL IN Ingresso REAL ATAN Uscita REAL ENO Uscita BOOL Abilitazione istruzioni. TRUE: esegue il calcolo dell'arcotangente corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore Real. Arcotangente del valore di ingresso (nel set [-PI/2 .. +PI/2]) = 0,0 per ingresso non valido. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ATAN Esempio di Diagramma ladder ATAN Esempio di Testo strutturato ATAN (* Equivalenza ST: *) tangent := TAN (angle); result := ATAN (tangent); (* il risultato è uguale all'angolo*) 78 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 5 Istruzioni aritmetiche Vedere anche Istruzioni aritmetiche a pagina 67 ATAN_LREAL (arcotangente Calcola l'arcotangente di un valore Long Real. Long Real) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN ATAN_LREAL ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL LREAL LREAL BOOL Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore Long Real. Arcotangente del valore di ingresso (nel set [-PI/2 .. +PI/2]) = 0,0 per ingresso non valido. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 79 Capitolo 5 Istruzioni aritmetiche Esempio di diagramma blocco funzione ATAN_LREAL Esempio di diagramma ladder ATAN_LREAL Esempio di testo strutturato ATAN_LREAL (* Equivalenza ST: *) tangente := TAN_LREAL (angolo); risultato := ATAN_LREAL (tangente); (* il risultato è uguale all'angolo *) Risultati Vedere anche Istruzioni aritmetiche a pagina 67 80 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 COS (coseno) Capitolo 5 Istruzioni aritmetiche Calcola il coseno di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN COS ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del coseno corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Qualsiasi valore Real. REAL Coseno del valore di input (nel set [-1,0 .. +1,0]). BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali COS Esempio di Diagramma ladder COS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 81 Capitolo 5 Istruzioni aritmetiche Esempio di Testo strutturato COS (* Equivalenza ST: *) coseno := COS (angolo); risultato := ACOS (coseno); (* il risultato è uguale all'angolo *) Risultati Vedere anche Istruzioni aritmetiche a pagina 67 COS_LREAL (coseno Long Real) Calcola il coseno di un valore Long Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 82 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro EN IN COS_LREAL ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Tipo di dati BOOL LREAL LREAL BOOL Descrizione Capitolo 5 Abilitazione istruzioni. TRUE: esegue il calcolo del coseno corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore Long Real. Coseno del valore di input (nel set [-1,0 .. +1,0]). Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Istruzioni aritmetiche Esempio di programmazione a blocchi funzionali COS_LREAL Esempio di diagramma ladder COS_LREAL Esempio di testo strutturato COS_LREAL (* Equivalenza ST: *) coseno := COS_LREAL (angolo); risultato := ACOS_LREAL (coseno); (* il risultato è uguale all'angolo *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 83 Capitolo 5 Istruzioni aritmetiche Risultati Division Vedere anche Istruzioni aritmetiche a pagina 67 Divide il primo valore di input Integer o Real per il secondo valore di input Integer o Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della divisione corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. 84 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Istruzioni aritmetiche i1 Ingresso SINT dividendo nel tipo di dati Integer o Real diverso da zero. USINT Tutti gli ingressi devono essere dello stesso tipo di dati. BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL i2 Ingresso SINT Divisore nel tipo di dati Integer o Real diverso da zero. USINT Tutti gli ingressi devono essere dello stesso tipo di dati. BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL o1 Uscita SINT Quoziente degli input nel tipo di dati Integer o Real diverso da zero. USINT Input e output devono utilizzare lo stesso tipo di dati. BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL ENO Uscita BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato DIVISION (* Equivalenza ST: *) ao10 := ai101 / ai102; ao5 := (ai5 / 2) / ai53; Vedere anche Istruzioni aritmetiche a pagina 67 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 85 Capitolo 5 Istruzioni aritmetiche EXPT (esponente) Aumenta il valore di IN (base) alla potenza di EXP (esponente) e restituisce il risultato Real dell'operazione. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN EXP EXPT ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo dell'esponente corrente. FALSE: il calcolo non avviene. REAL Qualunque valore reale con segno. DINT Esponente intero. REAL Il valore Real di IN alla potenza di EXP. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali EXPT Esempio di Diagramma ladder EXPT 86 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato EXPT Capitolo 5 Istruzioni aritmetiche (* Equivalenza ST: *) dimensioni_tb := ANY_TO_DINT (EXPT (2,0; intervallo) ); Risultati Vedere anche Istruzioni aritmetiche a pagina 67 LOG (log base 10) Calcola il logaritmo (base 10) di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 87 Capitolo 5 Istruzioni aritmetiche Parametro Tipo di parametro EN Ingresso Tipo di dati BOOL IN Ingresso REAL LOG Uscita REAL ENO Uscita BOOL Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo del logaritmo corrente. FALSE: il calcolo non avviene. Deve essere maggiore di zero. Logaritmo (base 10) del valore in ingresso. Il valore restituito è -3.4E+38 per valori IN pari a zero e negativi. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali LOG Esempio di Diagramma ladder LOG Esempio di Testo strutturato LOG (* Equivalenza ST: *) xpos := ABS (xval); xlog := LOG (xpos); 88 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 5 Istruzioni aritmetiche MOD (modulo) Vedere anche Istruzioni aritmetiche a pagina 67 Divide l'ingresso IN per l'ingresso Base e porta il resto nell'uscita MOD. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN Base MOD ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del modulo. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Qualunque valore intero con segno. DINT Deve essere maggiore di zero. DINT Calcolo del modulo (input MOD base) / risultato -1 se base <= 0. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 89 Capitolo 5 Istruzioni aritmetiche Esempio di programmazione a blocchi funzionali MOD Esempio di Diagramma ladder MOD Esempio di Testo strutturato MOD (* Equivalenza ST: *) risultato_divisione := (valore / divisore); (* divisione intera *) resto_divisione := MOD (valore, divisore); (* resto della divisione *) 90 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 5 Istruzioni aritmetiche MOV (sposta) Vedere anche Istruzioni aritmetiche a pagina 67 Assegna il valore di ingresso (i1) a un'uscita (o1). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Per i programmi Testo strutturato, utilizzare l'operatore Equal (=) anziché MOV. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue collegamento diretto a un calcolo di uscita. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 91 Capitolo 5 i1 o1 ENO Istruzioni aritmetiche Ingresso Uscita Uscita BOOL DINT REAL TIME STRING SINT USINT INT UINT UDINT LINT ULINT DATE LREAL BYTE WORD DWORD LWORD BOOL DINT REAL TIME STRING SINT USINT INT UINT UDINT LINT ULINT DATE LREAL BYTE WORD DWORD LWORD BOOL Input e output devono utilizzare lo stesso tipo di dati. Input e output devono utilizzare lo stesso tipo di dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Testo strutturato (* Equivalenza ST: *) ao23 := ai10; Vedere anche Istruzioni aritmetiche a pagina 67 Multiplication 92 Moltiplica due o più valori Integer o Real. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 5 Istruzioni aritmetiche Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 i2 Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT LINT LWORD REAL LREAL Abilitazione istruzioni. TRUE: esegue il calcolo della moltiplicazione corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Fattore in tipo di dati Integer o Real. Tutti gli ingressi devono essere dello stesso tipo di dati. Fattore in tipo di dati Integer o Real. Tutti gli ingressi devono essere dello stesso tipo di dati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 93 Capitolo 5 o1 ENO Istruzioni aritmetiche Uscita Uscita SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL BOOL Prodotto degli ingressi nel tipo di dati Integer o Real. Input e output devono utilizzare lo stesso tipo di dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Testo strutturato Multiplication (* Equivalenza ST *) ao10 := ai101 * ai102; ao5 := (ai51 * ai52) * ai53; Vedere anche Istruzioni aritmetiche a pagina 67 Neg (negazione) Converte un valore in un valore negato. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione corrente in negativo. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. 94 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 i1 Ingresso SINT INT DINT LINT REAL LREAL o1 Uscita SINT INT DINT LINT REAL LREAL ENO Uscita BOOL Capitolo 5 Input e output devono essere dello stesso tipo di dati. Istruzioni aritmetiche Input e output devono essere dello stesso tipo di dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato Neg (* Equivalenza ST: *) ao23 := - (ai10); ro100 := - (ri1 + ri2); Vedere anche Istruzioni aritmetiche a pagina 67 POW (incremento alimentazione) Quando il primo argomento è 'base' e il secondo è 'exponent', calcolare il risultato Real di (base exponent): Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Tipo di parametro Ingresso IN Ingresso EXP Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo dell'esponente corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Numero Real da elevare. REAL Potenza (esponente). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 95 Capitolo 5 Istruzioni aritmetiche POW Uscita REAL ENO Uscita BOOL (IN EXP) 1,0 se IN è diverso da 0,0 e EXP è 0,0 0,0 se IN è 0,0 mentre EXP è negativo 0,0 se IN ed EXP sono 0,0 0,0 se IN è negativo ed EXP non corrisponde a un numero intero. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali POW Esempio di Diagramma ladder POW Esempio di testo strutturato POW (* Equivalenza ST: *) result := POW (xval, power); 96 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 5 Istruzioni aritmetiche Vedere anche Istruzioni aritmetiche a pagina 67 RAND (valore casuale) Calcola valori interi casuali da un intervallo definito. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN base RAND ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del valore intero casuale. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Definisce il set di numeri supportato. DINT Valore casuale nel set [0..base-1]. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali RAND Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 97 Capitolo 5 Istruzioni aritmetiche Esempio di Diagramma ladder RAND Esempio di Testo strutturato RAND (* Equivalenza ST: *) selected := MUX4 ( RAND (4), 1, 4, 8, 16 ); (* selezione casuale di 1 di 4 valori predefiniti il valore emesso della chiamata RAND è nel set [0..3], quindi 'selected' emesso da MUX4, ottiene il valore 'randomly' 1 se 0 è emesso da RAND, o 4 se 1 è emesso da RAND, o 8 se 2 è emesso da RAND, o 16 se 3 è emesso da RAND, *) Risultati 98 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 SIN (seno) Vedere anche Istruzioni aritmetiche a pagina 67 Capitolo 5 Istruzioni aritmetiche Calcola il seno di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN SIN ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del seno corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Qualsiasi valore Real. REAL Seno del valore di input (nel set [-1,0 .. +1,0]). BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali SIN Esempio di Diagramma ladder SIN Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 99 Capitolo 5 Istruzioni aritmetiche Esempio di Testo strutturato SIN (* Equivalenza ST: *) sine := SIN (angle); result := ASIN (sine); (* il risultato è uguale all'angolo *) Risultati Vedere anche Istruzioni aritmetiche a pagina 67 SIN_LREAL (seno Long Real) Calcola il seno di un valore Long Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 100 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 EN Ingresso IN SIN_LREAL ENO Ingresso Uscita Uscita BOOL LREAL LREAL BOOL Capitolo 5 Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore Long Real. Seno del valore di input (nel set [-1,0 .. +1,0]). Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Istruzioni aritmetiche Esempio di programmazione a blocchi funzionali SIN_LREAL Esempio di diagramma ladder SIN_LREAL Esempio di testo strutturato SIN_LREAL (* Equivalenza ST: *) TESTOUTPUT1 := SIN_LREAL(TESTINPUT1) ; Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 101 Capitolo 5 Istruzioni aritmetiche Risultati Vedere anche Istruzioni aritmetiche a pagina 67 SQRT (radice quadrata) Calcola la radice quadrata di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN SQRT ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della radice quadrata corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Deve essere maggiore o uguale a zero. REAL Radice quadrata del valore di input. Il risultato restituito è 0 per un valore IN negativo. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali SQRT 102 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder SQRT Capitolo 5 Istruzioni aritmetiche Esempio di Testo strutturato SQRT (* Equivalenza ST: *) xpos := ABS (xval); xroot := SQRT (xpos); Risultati Subtraction Vedere anche Istruzioni aritmetiche a pagina 67 Sottrae un valore Integer, Real o Time da un altro valore Integer, Real o Time. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 103 Capitolo 5 Istruzioni aritmetiche Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 i2 Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati BOOL Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo dell'addizione corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME Minuendo in qualsiasi tipo di dati Integer, Real o Time. Tutti gli ingressi devono essere dello stesso tipo di dati. Sottraendo in qualsiasi tipo di dati Integer, Real o Time. Tutti gli ingressi devono essere dello stesso tipo di dati. 104 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 o1 Uscita ENO Uscita TAN (tangente) SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME BOOL Capitolo 5 Istruzioni aritmetiche Differenza tra il minuendo e il sottraendo in qualsiasi tipo di dati Integer, Real o Time. L'output deve essere dello stesso tipo di dati degli input. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato Sottrazione (* Equivalenza ST: *) ao10 := ai101 - ai102; ao5 := (ai51 - 1) - ai53; Vedere anche Istruzioni aritmetiche a pagina 67 Calcola la tangente di un valore Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN TAN Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della tangente corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Non può essere uguale a PI/2 modulo PI. REAL Tangente del valore in ingresso = 1E+38 per ingresso valido. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 105 Capitolo 5 Istruzioni aritmetiche ENO Uscita BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali TAN Esempio di Diagramma ladder TAN Esempio di Testo strutturato TAN (* Equivalenza ST: *) tangent := TAN (angle); result := ATAN (tangent); (* il risultato è uguale all'angolo*) Risultati 106 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Istruzioni aritmetiche a pagina 67 Capitolo 5 Istruzioni aritmetiche TAN_LREAL (tangente Long Real) Calcola la tangente di un valore Long Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN TAN_LREAL ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL LREAL LREAL BOOL Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Non può essere uguale a PI/2 modulo PI. Tangente del valore in ingresso = 1E+38 per ingresso valido. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali TAN_LREAL Esempio di diagramma ladder TAN_LREAL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 107 Capitolo 5 Istruzioni aritmetiche Esempio di testo strutturato TAN_LREAL (* Equivalenza ST: *) tangente := TAN_LREAL (angolo); risultato := ATAN_LREAL (tangente); (* il risultato è uguale all'angolo *) Risultati Vedere anche Istruzioni aritmetiche a pagina 67 TRUNC (troncamento) Tronca valori Real, lasciando solo l'intero. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 108 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 EN IN TRUNC ENO Ingresso Ingresso Uscita Uscita Capitolo 5 Istruzioni aritmetiche BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del troncamento del valore Real. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. REAL Qualsiasi valore Real. REAL Se IN>0, il numero intero più grande minore o uguale all'ingresso. Se IN<0, il numero intero più piccolo maggiore o uguale all'ingresso. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali TRUNC Esempio di Diagramma ladder TRUNC Esempio di Testo strutturato TRUNC (* Equivalenza ST: *) result := TRUNC (+2.67) + TRUNC (-2.0891); (* significa risultato := 2,0 + (-2,0) := 0,0; *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 109 Capitolo 5 Istruzioni aritmetiche Risultati Vedere anche Istruzioni aritmetiche a pagina 67 110 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni porta seriale ASCII Capitolo 6 Blocco funzione ABL a pagina 111 ACB a pagina 118 ACL a pagina 113 AHL a pagina 115 ARD a pagina 120 ARL a pagina 123 AWA a pagina 125 AWT a pagina 128 Utilizza le istruzioni della porta seriale ASCII per utilizzare o modificare il canale di comunicazione per la ricezione o la trasmissione dei dati. Descrizione Conta il numero di caratteri nel buffer fino al carattere di fine riga incluso. Conta il numero totale dei caratteri nel buffer. Elimina i buffer di ricezione e trasmissione. Impostare o reimpostare linee di arbitraggio modem. Legge i caratteri dal buffer di ingresso e posiziona gli stessi in una stringa. Legge una riga di caratteri dal buffer di ingresso e posiziona gli stessi in una stringa. Scrivere una stringa con due caratteri aggiunti (configurati dall'utente) su un dispositivo esterno. Scrive i caratteri da una stringa sorgente a un dispositivo esterno. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 ABL (prova ASCII per riga del Conta il numero dei caratteri ASCII nel buffer di ingresso fino al carattere di terminazione incluso. buffer) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 111 Capitolo 6 IN Istruzioni porta seriale ASCII Ingresso BOOL ABLInput Q Ingresso Uscita ABLACB BOOL Characters Uscita UINT Errore Uscita BOOL ErrorID Uscita UINT Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco funzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. Canale su cui operare. Utilizzare il tipo di dati ABLACB per definire i parametri Canale, Tipo di trigger e Annulla per l'ingresso ABL. Indica quando il conteggio dei caratteri è in corso o è stato completato. Le uscite vengono aggiornate in modo asincrono dalla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. Il numero di caratteri nel buffer. Il limite di buffer è di 82 caratteri. Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codice errore 03 06 07 08 09 10 11 13 14 16 Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Descrizione errore Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di programmazione a blocchi funzionali ABL 112 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 6 Esempio di Diagramma ladder ABL Istruzioni porta seriale ASCII Esempio di Testo strutturato ABL Vedere anche Tipo di dati ABLACB a pagina 131 Istruzioni porta seriale ASCII a pagina 111 ACL (buffer cancellazione ASCII) Cancella i buffer di ricezione e trasmissione e rimuove le istruzioni dalla coda ASCII. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 113 Capitolo 6 Istruzioni porta seriale ASCII Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro Tipo di parametro Tipo di dati Descrizione IN Ingresso ACLInput Ingresso BOOL Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco funzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. ACLI Il canale su cui operare e lo stato dei buffer di trasmissione e ricezione. Se RXBuffer, elimina il buffer di ricezione e rimuove i blocchi funzione ASCII di ricezione (ARL e ARD) dalla coda ASCII. Se TXBuffer, elimina il buffer di trasmissione e rimuove i blocchi funzione ASCII di trasmissione (AWA e AWT) dalla coda ASCII. Utilizzare il tipo di dati ACLI per definire i parametri Canale, RXBuffer e TXBuffer per ACLInput. Q Errore ErrorID Uscita Uscita Uscita BOOL Indica se il processo di cancellazione della coda ASCII è in corso o completo. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. BOOL Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. UINT Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codice errore 03 06 07 08 09 10 11 13 14 16 Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Descrizione errore Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. 114 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 6 Istruzioni porta seriale ASCII Esempio di Programmazione a blocchi funzionali ACL Esempio di Diagramma ladder ACL Esempio di Testo strutturato ACL Vedere anche Tipo di dati ACL a pagina 131 Istruzioni porta seriale ASCII a pagina 111 AHL (righe di arbitraggio ASCII) Imposta o ripristina le linee di controllo di arbitraggio Request to Send (RTS) RS-232 del modem. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 115 Capitolo 6 Istruzioni porta seriale ASCII Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN AHLInput Q ChannelSts Errore ErrorID Tipo di parametro Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. AHLI Il canale su cui operare e l'impostazione o reset della linea di controllo RTS per il modem. Utilizzare il tipo di dati AHLI per definire i parametri Canale, SetRts, ClrRts, e Annulla per AHLInput. BOOL Indica se l'impostazione o il reset sono stati completati. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. WORD Visualizza lo stato corrente (da 0000 a 001F) delle righe di arbitraggio per il canale specificato. BOOL Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. UINT Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codice errore 03 06 07 08 09 10 11 13 14 16 116 Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Descrizione errore Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 6 Istruzioni porta seriale ASCII Esempio di programmazione a blocchi funzionali AHL Esempio di Diagramma ladder AHL Esempio di testo strutturato AHL Vedere anche Tipo di dati AHLI a pagina 132 Tipo di dati AHL ChannelSts a pagina 131 Istruzioni porta seriale ASCII a pagina 111 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 117 Capitolo 6 Istruzioni porta seriale ASCII ACB (caratteri ASCII nel buffer) Conta il numero totale di caratteri ASCII nel buffer, incluso il carattere di fine riga. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN ACBInput Q Characters Errore ErrorID Tipo di parametro Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ABLACB BOOL UINT BOOL UINT Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. Canale su cui operare. Utilizzare il tipo di dati ABLACB per definire i parametri Canale, Tipo di trigger e Annulla per l'ingresso ACB. Indica se il conteggio dei caratteri è in corso o è stato completato. Le uscite di questo blocco funzione vengono aggiornate in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il conteggio è completo. FALSE: il conteggio è in corso. Il numero di caratteri nel buffer. Indica la presenza di una condizione di errore. FALSE - Nessun errore. TRUE - È stato rilevato un errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codici di errore ACB Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. 118 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codice errore 03 06 07 08 09 10 11 13 14 16 Descrizione errore Capitolo 6 Istruzioni porta seriale ASCII Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di Programmazione a blocchi funzionali ACB Esempio di Diagramma ladder ACB Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 119 Capitolo 6 Istruzioni porta seriale ASCII Esempio di Testo strutturato ACB ARD (lettura ASCII) Vedere anche Tipo di dati ABLACB a pagina 131 Istruzioni porta seriale ASCII a pagina 111 Legge i caratteri ASCII dal buffer di ingresso e li memorizza in una stringa. Dettagli operazione: · L'istruzione ARD viene eseguita finché non verranno ricevuti tutti i caratteri nel buffer di ASCII. Eventuali viene eseguita un'istruzione ASCII, viene messa in coda fino al completamento di ARD. · Per interrompere l'istruzione ARD, eseguire un'istruzione ACL. · Per evitare che l'istruzione ARD ritardi la coda ASCII mentre è in attesa del numero necessario di caratteri, usare i risultati di un'istruzione ACB per attivare l'istruzione ARD. · Lo status dell'istruzione può essere estratto dal bit di controllo dell'istanza di istruzione (per esempio, ARD_1.controlbit). Questo mostra se l'istruzione sta bloccando la coda delle istruzioni ASCII in attesa di altri caratteri: · 7° bit = Istruzione abilitata. · 6° bit = Istruzione in coda. · 5° bit = Istruzione eseguita. · 3° bit = Istruzione con errore. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 120 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 6 Istruzioni porta seriale ASCII Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN ARDInput Q Destinazione NumChar Errore ErrorID Tipo di parametro Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ARDARL BOOL ASCIILOCADDR UINT BOOL UINT Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. Legge i caratteri dal buffer. Il massimo è 82. Utilizzare il tipo di dati ARDARL per definire i parametri Canale, Lunghezza e Annulla per ARDInput. Indica quando la lettura del buffer è in corso o completata. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. Elemento della stringa in cui vengono memorizzati i caratteri. Il numero di caratteri. Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 121 Capitolo 6 Istruzioni porta seriale ASCII Codice errore Descrizione errore 03 Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. 06 È stato rilevato un parametro non valido. 07 Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. 08 Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. 09 La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. 10 L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. 11 La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. 13 Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. 14 Il blocco funzione ACL è stato interrotto. 16 Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di programmazione a blocchi funzionali ARD Esempio di diagramma ladder ARD 122 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di testo strutturato ARD Capitolo 6 Istruzioni porta seriale ASCII Vedere anche Tipo di dati ARDARL a pagina 132 Istruzioni porta seriale ASCII a pagina 111 ARL (riga di lettura ASCII) Legge una riga di caratteri ASCII dal buffer fino ai caratteri di terminazione inclusi e li memorizza in una stringa. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN ARLInput Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ARDARL Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. Leggere una riga di caratteri ASCII dal buffer. Il massimo è 82. Utilizzare il tipo di dati ARDARL per definire i parametri Canale, Lunghezza e Annulla per ARDLInput. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 123 Capitolo 6 Q Istruzioni porta seriale ASCII Uscita BOOL Destinazione NumChar Errore Uscita Uscita Uscita ErrorID Uscita ASCIILOCADDR UINT BOOL UINT Indica quando la linea di lettura dal buffer di ingresso è in corso o è stata completata. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. Elemento della stringa in cui vengono memorizzati i caratteri. Il numero di caratteri nella riga, incluso il carattere di terminazione. Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codice errore 03 06 07 08 09 10 11 13 14 16 Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Descrizione errore Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di diagramma di blocco funzione ARL 124 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder ARL Capitolo 6 Istruzioni porta seriale ASCII Esempio di testo strutturato ARL AWA (scrittura ASCII aggiunta) Vedere anche Tipo di dati ARDARL a pagina 132 Istruzioni porta seriale ASCII a pagina 111 Scrivere una stringa con due caratteri aggiunti (configurati dall'utente) su un dispositivo esterno. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 125 Capitolo 6 Istruzioni porta seriale ASCII Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN AWAInput Origine Q NumChar Errore ErrorID Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati BOOL Descrizione Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione, ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. AWAAWT ASCIILOCADDR BOOL UINT BOOL UINT Il canale e il numero (lunghezza) dei caratteri da scrivere nel buffer. Il valore massimo è 82. Utilizzare il tipo di dati AWAAWT per definire i parametri Canale, Lunghezza e Annulla per AWAInput. La stringa sorgente uscita come vettore di caratteri secondo l'istruzione ARD o ARL. Indica quando la scrittura è in corso o completata. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. Il numero di caratteri. NumChar può essere inferiore alla lunghezza richiesta da trasmettere se la lunghezza della stringa Source String è inferiore alla lunghezza richiesta. Aggiorna quando la trasmissione è completa e Q è TRUE. Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. 126 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codice errore 03 06 07 08 09 10 11 13 14 16 Descrizione errore Capitolo 6 Istruzioni porta seriale ASCII Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di programmazione a blocchi funzionali AWA Esempio di diagramma ladder AWA Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 127 Capitolo 6 Istruzioni porta seriale ASCII Esempio di testo strutturato AWA Vedere anche Istruzioni porta seriale ASCII a pagina 111 Tipo di dati AWAAWT a pagina 133 AWT (scrittura ASCII) Scrive caratteri ASCII da una stringa sorgente a un dispositivo esterno Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro IN AWTInput Origine Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: il blocco istruzione non è attivo. Ingresso Ingresso AWAAWT ASCIILOCADDR Il canale e il numero (lunghezza) dei caratteri da scrivere nel buffer. Il valore massimo è 82. Utilizzare il tipo di dati AWAAWT per definire i parametri Canale, Lunghezza e Annulla per AWTInput. La stringa sorgente uscita come vettore di caratteri secondo l'istruzione ARD o ARL. 128 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 6 Istruzioni porta seriale ASCII Q Uscita NumChar Errore ErrorID Uscita Uscita Uscita BOOL Indica quando la scrittura è in corso o completata. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: il blocco funzione è completo. FALSE: il blocco funzione non è completo. UINT Il numero di caratteri. NumChar può essere inferiore alla lunghezza richiesta da trasmettere se la lunghezza della stringa Source String è inferiore alla lunghezza richiesta. Aggiorna quando la trasmissione è completa e Q è TRUE. BOOL Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. UINT Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore ABL. Codice errore 03 06 07 08 09 10 11 13 14 16 Codici di errore ABL Utilizzare questa tabella per determinare i codici di errore ABL e le descrizioni. Descrizione errore Impossibile completare la trasmissione perché il segnale Clear-to-Send è stato perso. È stato rilevato un parametro non valido. Impossibile completare la ricezione o la trasmissione ASCII perché la configurazione del canale è stata disattivata nella finestra di dialogo di configurazione del canale. Impossibile completare la scrittura ASCII perché è in corso un'altra trasmissione ASCII. La richiesta di comunicazione ASCII non è supportata dalla configurazione del canale in uso. L'esecuzione dell'istruzione è stata arrestata in seguito all'invio del comando Annulla. Nessuna azione richiesta. La lunghezza richiesta per la stringa non è valida o è un numero negativo, maggiore di 82 o uguale a 0. Si applica ai blocchi funzione ARD e ARL. Il valore richiesto (.LEN) nel blocco di funzione è un numero negativo o un valore maggiore della dimensione della stringa memorizzata con la stringa sorgente. Si applica ai blocchi funzione AWA e AWT. Il blocco funzione ACL è stato interrotto. Le linee di controllo RTS o CTS non sono supportate dalla porta seriale. Esempio di programmazione a blocchi funzionali AWT Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 129 Capitolo 6 Istruzioni porta seriale ASCII Esempio di diagramma ladder AWT Esempio di testo strutturato AWT Vedere anche Istruzioni porta seriale ASCII a pagina 111 Tipo di dati AWAAWT a pagina 133 Dettagli dei parametri ASCII I seguenti argomenti forniscono maggiori dettagli sui parametri ASCII e i tipi di dati strutturati. · Tipo di dati ABLACB · Tipo di dati ACL · Tipo di dati AHL ChannelSts · Tipo di dati AHLI · Tipo di dati ARDARL · Tipo di dati AWAAWT Vedere anche Istruzioni porta seriale ASCII a pagina 111 130 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Tipo di dati ABLACB Parametri Canale Tipo di dati UINT TriggerType USINT Annulla BOOL Capitolo 6 Istruzioni porta seriale ASCII Utilizzare questa tabella per determinare i valori dei parametri per il tipo di dati ABLACB. Descrizione Numero seriale porta: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot 1 - 5: · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 Rappresenta uno dei seguenti: · 0: Msg attivato una volta (quando IN passa da False a True) · 1: Msg attivato di continuo quando IN è True · Altro valore: Riservato Quando questo input è impostato a TRUE, questo blocco funzione non viene eseguito. Vedere anche Dettagli dei parametri ASCII a pagina 130 Tipo di dati ACL Parametri Canale Tipo di dati UINT RXBuffer BOOL TXBuffer BOOL Utilizzare questa tabella per determinare i valori dei parametri per il tipo di dati ABL. Descrizione Numero seriale porta: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot 1 - 5: · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 Se TRUE, elimina il buffer di ricezione e rimuove i blocchi funzione ASCII di ricezione (ARL e ARD) dalla coda ASCII. Se TRUE, elimina il buffer di trasmissione e rimuove i blocchi funzione ASCII di trasmissione (ARL e ARD) dalla coda ASCII. Vedere anche Dettagli dei parametri ASCII a pagina 130 Tipo di dati AHL ChannelSts Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati AHL ChannelSts. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 131 Capitolo 6 Istruzioni porta seriale ASCII Parametri DTRstatus DCDstatus DSRstatus RTSstatus CTSstatus Tipo di dati UINT UINT UINT UINT UINT Descrizione Utilizzato per il segnale DTR (riservato) Utilizzato per il segnale DCD (bit 3 di parola) 1 indica attivo Utilizzato per il segnale DSR (riservato) Utilizzato per il segnale RTS (bit 1 di parola) 1 indica attivo Utilizzato per il segnale CTS (bit 0 di parola) 1 indica attivo Vedere anche Dettagli dei parametri ASCII a pagina 130 Tipo di dati AHLI a pagina 132 Tipo di dati AHLI Parametri Canale Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati AHL. Tipo di dati Descrizione UINT Numero seriale porta: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot 1 - 5: · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 ClrRts BOOL SetRts BOOL Annulla BOOL Utilizzato per ripristinare la linea di controllo RTS. Utilizzato per impostare la linea di controllo RTS. Quando questo input è impostato a TRUE, questo blocco funzione non viene eseguito. Vedere anche Dettagli dei parametri ASCII a pagina 130 Tipo di dati AHL ChannelSts a pagina 131 Tipo di dati ARDARL Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati ARDARL. 132 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri Canale Lunghezza Annulla Tipo di dati UINT UINT BOOL Descrizione Capitolo 6 Istruzioni porta seriale ASCII Numero seriale porta: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot 1 - 5: · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 Il numero di caratteri che si vuole leggere dal buffer (massimo 82). Quando questo input è impostato a TRUE, questo blocco funzione non viene eseguito. Se già in esecuzione, l'operazione termina. Vedere anche Dettagli dei parametri ASCII a pagina 130 Tipo di dati AWAAWT Parametri Canale Tipo di dati UINT Lunghezza UINT Annulla BOOL Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati AWAAWT. Descrizione Numero seriale porta: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot 1 - 5: · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 Definisce il numero di caratteri che da scrivere nel buffer (massimo 82). Se si imposta la lunghezza a 0, AWA invia 0 byte di dati utente e 2 byte di caratteri aggiunti al buffer. Se TRUE, il blocco funzione non viene eseguito. Se già in esecuzione, l'operazione termina. Vedere anche Dettagli dei parametri ASCII a pagina 130 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 133 Istruzioni binarie Capitolo 7 Usare le istruzioni binarie per eseguire operazioni matematiche. Operatore Descrizione AND_MASK a pagina 135 NOT_MASK a pagina 144 Esegue AND bit-to-bit tra due valori Integer. Maschera negazione numero intero bit-to-bit, inverte il valore di un parametro. BSL a pagina 137 BSR a pagina 141 OR_MASK a pagina 146 ROL a pagina 147 Sposta un bit in un elemento vettore verso sinistra. Sposta un bit in un elemento vettore verso destra. Maschera OR numero intero bit-to-bit, abilita i bit. Per i numeri Integer a 32 bit, ruota i bit interi a sinistra. ROR a pagina 149 SHL a pagina 151 SHR a pagina 153 XOR_MASK a pagina 155 Per i numeri Integer a 32 bit, ruota i bit interi a sinistra. Per gli integer a 32-bit, sposta gli integer a sinistra e inserisce 0 nel bit meno significativo. Per gli Integer a 32 bit, sposta gli Integer a sinistra e colloca 0 nel bit più significativo. Maschera OR intero esclusivo bit-to-bit, restituisce valori di bit invertiti. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 AND_MASK (maschera AND) Esegue AND bit-to-bit tra due valori Integer. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN MSK Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della maschera per Integer AND bit-to-bit FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Deve avere il formato Integer. DINT Deve avere il formato Integer. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 135 Capitolo 7 Istruzioni binarie AND_MASK ENO Uscita Uscita DINT Bit-to-bit logico AND tra IN e MSK. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali AND_MASK Esempio di diagramma ladder AND_MASK Esempio di testo strutturato AND_MASK (* Equivalenza ST: *) parity := AND_MASK (xvalue, 1); (* 1 se xvalue è dispari *) result := AND_MASK (16#abc, 16#f0f); (* uguale a 16#a0c *) 136 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 7 Istruzioni binarie Vedere anche Istruzioni binarie a pagina 135 BSL (spostamento del bit a sinistra) Sposta un bit in un elemento vettore verso sinistra. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Dettagli operazione: L'istruzione BSL è un processo immediato nella transizione del ramo da false a true e negli aggiornamenti in uscita in modo sincrono. Quando Execute è TRUE, il bit più a sinistra (Src + SrcOffset e Length) viene copiato nel bit Unload e tutti i bit nel vettore o meno vengono spostati a sinistra di un bit. Length e limite di 16 bit vengono considerati tranne che per i tipi di dati BOOL. Il bit esterno viene quindi spostato sul bit 0 (Src + SrcOffset) del primo elemento. Per le operazioni di testo intorno, impostare la posizione di BitAddr sull'ultima posizione del bit o sul bit Unload. Possibile utilizzo Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 137 Capitolo 7 Istruzioni binarie dell'istruzione BSL, tracciare bottiglie in una linea di imbottigliamento dove ogni bit rappresenta una bottiglia. Parametro Execute Scr SrcOffset BitAddr Lunghezza Done Scarica 138 Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ANY_ELEMENTARY UINT BOOL UINT BOOL BOOL Abilitazione istruzioni. TRUE: fronte di salita rilevato, sposta il bit di una posizione a sinistra. · Innanzitutto vengono verificate le condizioni di errore. · Se Length = 0, il bit esterno viene spostato nel bit Unload. Nessun spostamento di bit su Scr. Viene eseguito il reset dei bit Error ed ErrorID. Viene impostato il bit Done. · Se Length > 0 e Length 2048, viene eseguito il reset dei bit Error ed ErrorID. Una volta completato lo spostamento dei bit, il bit Done viene impostato. · Se Length > 0 e Length 2048, il bit più a sinistra (indirizzato da Src + SrcOffset e Length) viene copiato nel bit Scarica e tutti i bit che fanno parte del vettore o no vengono spostati a sinistra di un bit (fino al bit Length e al limite di 16 bit, ad eccezione di BOOL). Il bit esterno viene spostato sul bit 0 (Src + SrcOffset) del primo elemento. FALSE: fronte di salita non rilevato, non attivare l'operazione BSL. L'indirizzo del (bit) Src da spostare. Tipi di dati supportati: BOOL, DWORD, INT, UINT, WORD, DINT e UDINT. · Vettori: Impostare Scr su un indirizzo a base variabile come: Source1, Source1[0] o Source1[1]. · Non vettori: Impostare Scr su un indirizzo variabile come Source1. Se SrcOffset è 0, iniziare dal primo elemento. · Vettori: Impostare SrcOffset su 0. Se impostato su Source1[0] o Source1[1], si verifica un errore: "L'offset di origine supera le dimensioni dell'array.". · Non vettori: Impostare SrcOffset su 0; in caso contrario si verifica un errore: "L'offset di origine supera le dimensioni dell'array.". Posizione del bit spostato in Src. Lunghezza contiene il numero di bit presenti in Src da spostare. Supporta lo spostamento tra elementi dell'array. · Per il tipo di dati BOOL, il numero di Booleani presenti nel vettore da spostare. · Per i tipi di dati a 16 e 32 bit, i bit vengono spostati in multipli di 16, ad esempio 16, 32 e 64. Se Length non è un multiplo esatto di 16, il numero di bit spostati viene inviato al successivo limite di 16 bit. · Length si basa sulla dimensione del tipo di dati. Se si supera l'intervallo viene generato un errore con il seguente messaggio: "L'offset di origine supera le dimensioni del vettore". Valori Lunghezza: · BOOL: 1 · Parola da 16 bit: 1-16 · Parola da 32 bit: 1-32 · Parola da 64 bit: 1-64 Se TRUE, l'operazione è stata completata correttamente. Se FALSE, durante l'operazione è stata rilevata una condizione di errore. Bit spostato fuori dall'indirizzo Src. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Errore ErrorID Uscita Uscita Capitolo 7 Istruzioni binarie BOOL Se si verifica un errore, Error viene impostato su true. USINT Se si verifica un errore, ErrorID contiene il codice dell'errore. Codici di errore BSL Codice errore Descrizione errore 01 Dimensioni non supportate. 02 Tipo di dati non supportato. 03 La lunghezza dei bit supera 2048. 04 L'offset di origine supera la dimensione dell'array. 05 La lunghezza dei bit supera la dimensione dell'array. 07 Parametro non valido. Esempio di programmazione a blocchi funzionali BSL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 139 Capitolo 7 Istruzioni binarie Esempio di Diagramma ladder BSL Esempio di Testo strutturato BSL 140 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 7 Istruzioni binarie Vedere anche Istruzioni binarie a pagina 135 BSR (spostamento del bit a destra) Sposta un bit in un elemento vettore verso destra. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Dettagli operazione: L'istruzione BSR è un processo immediato nella transizione del ramo da false a true e negli aggiornamenti in uscita in modo sincrono. Se Execute è TRUE, il bit più a destra (bit 0 dell'elemento indirizzato da Src + SrcOffset) viene copiato nel bit Unload e tutti i bit nel vettore o all'esterno del vettore vengono spostati a destra di un bit. Length e limite di 16 bit vengono considerati tranne che per i tipi di dati BOOL. Il bit esterno viene quindi spostato sul bit 0 (Src + SrcOffset) del primo elemento. Per le operazioni di testo intorno, impostare la posizione di BitAddr sull'ultima posizione del bit o sul bit Unload. Possibile utilizzo Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 141 Capitolo 7 Istruzioni binarie dell'istruzione BSL, tracciare bottiglie in una linea di imbottigliamento dove ogni bit rappresenta una bottiglia. Parametri Execute Scr SrcOffset BitAddr Lunghezza Finito Scarica Errore ErrorID Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ANY_ELEMENTARY UINT BOOL UINT BOOL BOOL BOOL USINT Abilitazione istruzioni. TRUE: fronte di salita rilevato, sposta il bit di una posizione a destra. FALSE: fronte di salita non rilevato, non attivare l'operazione BSR. L'indirizzo del (bit) Src da spostare. Tipi di dati supportati: BOOL, DWORD, INT, UINT, WORD, DINT e UDINT. · Vettori: Impostare Scr su un indirizzo a base variabile come: Source1, Source1[0] o Source1[1]. · Non vettori: Impostare Scr su un indirizzo variabile come Source1. Se SrcOffset è 0, iniziare dal primo elemento. · Vettori: Impostare SrcOffset su 0. Se impostato su Source1[0] o Source1[1], si verifica un errore: "L'offset di origine supera le dimensioni dell'array.". · Non vettori: Impostare SrcOffset su 0; in caso contrario si verifica un errore: "L'offset di origine supera le dimensioni dell'array.". Posizione del bit spostato in Src. Lunghezza contiene il numero di bit presenti in Src da spostare. Supporta lo spostamento tra elementi dell'array. · Per il tipo di dati BOOL, il numero di Booleani presenti nel vettore da spostare. · Per i tipi di dati a 16 e 32 bit, i bit vengono spostati in multipli di 16, ad esempio 16, 32 e 64. Se Lunghezza non è un multiplo esatto di 16, il numero di bit spostati è il limite successivo di 16 bit. · Length si basa sulla dimensione del tipo di dati. Se si supera l'intervallo viene generato un errore con il seguente messaggio: "L'offset di origine supera le dimensioni del vettore". Valori Lunghezza: · BOOL: 1 · Parola da 16 bit: 1-16 · Parola da 32 bit: 1-32 · Parola da 64 bit: 1-64 Se TRUE, l'operazione è stata completata correttamente. Se FALSE, durante l'operazione è stata rilevata una condizione di errore. Bit spostato fuori dall'indirizzo Src. Se si verifica un errore, Error viene impostato su true. Se si verifica un errore, ErrorID contiene il codice dell'errore. 142 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codici di errore BSR Codice errore Descrizione errore 01 Dimensioni non supportate. 02 Tipo di dati non supportato. 03 La lunghezza dei bit supera 2048. 04 L'offset di origine supera la dimensione dell'array. 05 La lunghezza dei bit supera la dimensione dell'array. 07 Parametro non valido. Capitolo 7 Istruzioni binarie Esempio di programmazione a blocchi funzionali BSR Esempio di diagramma ladder BSR Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 143 Capitolo 7 Istruzioni binarie Esempio di testo strutturato BSR Risultati Vedere anche Istruzioni binarie a pagina 135 NOT_MASK (maschera NOT bit-to-bit) Maschera negazione numero intero bit-to-bit, inverte il valore di un parametro. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN 144 Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della maschera negazione bit-to-bit. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 IN NOT_MASK ENO Ingresso Uscita Uscita Capitolo 7 Istruzioni binarie DINT Deve avere il formato Integer. DINT Negazione bit-to-bit su 32 bit di IN. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali NOT_MASK Esempio di diagramma ladder NOT_MASK Esempio di testo strutturato NOT_MASK (* Equivalenza ST: *) result := NOT_MASK (16#1234); (* il risultato è 16#FFFF_EDCB *) Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 145 Capitolo 7 Istruzioni binarie Vedere anche Istruzioni binarie a pagina 135 OR_MASK (maschera OR bit- Maschera OR numero intero bit-to-bit, abilita i bit. to-bit) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN MSK OR_MASK ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della maschera per Integer OR bit-to-bit. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Deve avere il formato Integer. DINT Deve avere il formato Integer. DINT Bit-to-bit logico OR tra IN e MSK. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali OR_MASK 146 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder OR_MASK Capitolo 7 Istruzioni binarie Esempi di testo strutturato OR_MASK (* Equivalenza ST: *) parity := OR_MASK (xvalue, 1); (* rende il valore sempre dispari *) result := OR_MASK (16#abc, 16#f0f); (* uguale a 16#fbf *) Risultati Vedere anche Istruzioni binarie a pagina 135 ROL (rotazione a sinistra) Effettua la rotazione dell'input di tipo DINT di NbR bit a sinistra circolarmente e riempie i bit a destra con i bit fatti ruotare. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 147 Capitolo 7 Istruzioni binarie Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbR ROL ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della rotazione dei bit del valore Integer a sinistra. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Valore integer. DINT Numero di rotazioni di 1 bit (in set [1..31]). DINT Valore con rotazione a sinistra. Quando NbR <= 0, non avviene alcuna modifica. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ROL Esempio di Diagramma ladder ROL 148 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato ROL Capitolo 7 Istruzioni binarie (* Equivalenza ST: *) result := ROL (register, 1); (* registro = 2#0100_1101_0011_0101*) (* risultato = 2#1001_1010_0110_1010*) Risultati Vedere anche Istruzioni binarie a pagina 135 ROR (rotazione a destra) Effettua la rotazione dell'input di tipo DINT di NbR bit a destra circolarmente e riempie i bit a sinistra con i bit fatti ruotare. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 149 Capitolo 7 Istruzioni binarie Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbR ROR ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della rotazione dei bit del valore Integer a destra. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Qualsiasi valore intero. DINT Numero di rotazioni di 1 bit (in set [1..31]). DINT Valore ruotato a destra. Non vi sono effetti se NbR <= 0. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ROR Esempio di Diagramma ladder ROR 150 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato ROR Capitolo 7 Istruzioni binarie (* Equivalenza ST: *) risultato := ROR (registro, 1); (* registro = 2#0100_1101_0011_0101 *) (* risultato = 2#1010_0110_1001_1010 *) Risultati SHL (spostamento a sinistra) Vedere anche Istruzioni binarie a pagina 135 Per gli integer a 32-bit, sposta gli integer a sinistra e inserisce 0 nel bit meno significativo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 151 Capitolo 7 Istruzioni binarie Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbS SHL ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: sposta gli integer a sinistra. FALSE: non vi è alcun movimento integer. Applicabile alle programmazioni in Ladder Diagram. DINT Qualsiasi valore intero. DINT Numero di spostamenti (shift) di 1 bit (in set [1..31]). DINT Valore spostato a sinistra. Non vi sono effetti se NbS <= 0. Se un valore di 0, sostituisce il bit meno significativo. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali SHL Esempio di Diagramma ladder SHL 152 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato SHL Capitolo 7 Istruzioni binarie (* Equivalenza ST: *) risultato := SHL (registro,1); (* registro = 2#0100_1101_0011_0101 *) (* risultato = 2#1001_1010_0110_1010 *) Risultati Vedere anche Istruzioni binarie a pagina 135 SHR (spostamento a destra) Sposta a destra i 32 bit di un intero e replica il bit più a sinistra (bit significativo) per riempire i bit disponibili. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 153 Capitolo 7 Istruzioni binarie Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbS SHR ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: sposta gli integer a destra. FALSE: non vi è alcun movimento integer. Applicabile alle programmazioni in Ladder Diagram. DINT Qualsiasi valore intero. DINT Numero di spostamenti (shift) di 1 bit (in set [1..31]). DINT Valore spostato a destra. Non vi sono effetti se NbS <= 0. Se un valore di 0, sostituisce il bit più significativo. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali SHR Esempio di Diagramma ladder SHR 154 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato SHR Capitolo 7 Istruzioni binarie (* Equivalenza ST: *) result := SHR (register,1); (* registro = 2#1100_1101_0011_0101 *) (* risultato = 2#0110_0110_1001_1010 *) Risultati Vedere anche Istruzioni binarie a pagina 135 XOR_MASK (maschera OR esclusivo) Maschera OR intero esclusivo bit-to-bit, restituisce valori di bit invertiti. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 155 Capitolo 7 Istruzioni binarie Parametro Tipo di parametro EN Ingresso Tipo di dati BOOL IN Ingresso DINT MSK Ingresso DINT XOR_MASK Uscita DINT ENO Uscita BOOL Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo della maschera per OR bit-to-bit esclusivo FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Deve avere il formato Integer. Deve avere il formato Integer. Bit-to-bit logico OR esclusivo tra IN e MSK. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali XOR_MASK Esempio di diagramma ladder XOR_MASK Esempio di testo strutturato XOR_MASK (* Equivalenza ST: *) crc32 := XOR_MASK (prevcrc, nextc); result := XOR_MASK (16#012, 16#011); (* è uguale a 16#003 *) 156 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 7 Istruzioni binarie Vedere anche Istruzioni binarie a pagina 135 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 157 Istruzioni booleane Capitolo 8 Funzione MUX4B a pagina 175 MUX8B a pagina 172 TTABLE a pagina 169 Blocco funzione F_TRIG a pagina 159 RS a pagina 163 R_TRIG a pagina 161 SR a pagina 167 Operatore AND a pagina 165 NOT a pagina 166 XOR a pagina 166 OR a pagina 164 Utilizzare le istruzioni booleane per determinare un valore di uscita in base a un calcolo logico partendo dagli ingressi. Le uscite del modulo possono essere controllate direttamente dal programma oppure in modo indipendente dal modulo, utilizzando le istruzioni booleane. Descrizione Multiplexer tra quattro ingressi BOOL, restituisce un valore BOOL. Multiplexer tra otto ingressi BOOL, restituisce un valore BOOL. Fornisce il valore di uscita in base alla combinazione degli ingressi. Descrizione Rileva un fronte di discesa di una variabile booleana. Reset bistabile dominante (priorità massima durante la definizione del comportamento delle istruzioni). Rileva un fronte di salita di una variabile booleana. Impostazione bistabile dominante. Descrizione Esegue un'operazione booleana AND tra due o più valori. Converte i valori booleani in valori negati. OR esclusivo booleano di due o più valori. OR booleano di due o più valori. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 F_TRIG (rilevamento fronte di discesa) Rileva un fronte di discesa di una variabile booleana. Il blocco F_TRIG imposta l'uscita Q per un ciclo quando l'ingresso CLK si attiva/disattiva da definito a risolto (per esempio, viene rilevato un fronte di discesa all'ingresso CLK). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 159 Capitolo 8 Istruzioni booleane Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione CLK Ingresso BOOL Controlla l'ingresso per un fronte di discesa. Qualsiasi variabile booleana. TRUE = nessun fronte di discesa rilevato. FALSE = fronte di discesa rilevato sull'ingresso CLK; impostare l'uscita Q su TRUE. Q Uscita BOOL Indica lo stato dell'uscita Q. TRUE = fronte di discesa rilevato; impostare l'uscita Q per un ciclo in più. FALSE = nessuna modifica all'uscita Q. Esempio di programmazione a blocchi funzionali F_TRIG Esempio di diagramma ladder F_TRIG Esempio di testo strutturato F_TRIG (* Equivalenza ST: F_TRIG1 è un'istanza del blocco F_TRIG *) F_TRIG1(cmd); nb_edge := ANY_TO_DINT(F_TRIG1.Q) + nb_edge; 160 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 8 Istruzioni booleane Vedere anche Istruzioni booleane a pagina 159 R_TRIG (rilevatore fronte di salita) Rileva un fronte di salita di una variabile booleana. Il blocco R_TRIG imposta l'uscita Q per un ciclo quando l'ingresso CLK si attiva/disattiva da risolto a definito (per esempio, viene rilevato un fronte di salita all'ingresso CLK). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro CLK Q Tipo di parametro Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Qualsiasi variabile booleana. TRUE: fronte di salita rilevato, imposta Q su TRUE. FALSE: nessun fronte di salita rilevato, imposta Q su FALSE. BOOL TRUE: quando CLK è TRUE. FALSE: in tutti gli altri casi. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 161 Capitolo 8 Istruzioni booleane Esempio di Programmazione a blocchi funzionali R_TRIG Esempio di Diagramma ladder R_TRIG Esempio di Testo strutturato R_TRIG (* Equivalenza ST: R_TRIG1 è un'istanza del blocco R_TRIG *) R_TRIG1(cmd); nb_edge := ANY_TO_DINT(R_TRIG1.Q) + nb_edge; Risultati Vedere anche Istruzioni booleane a pagina 159 162 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 RS (reset/impostazione) Capitolo 8 Istruzioni booleane Ripristina o imposta bistabile dominante (priorità massima durante la definizione del comportamento delle istruzioni). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro SET RESET1 Q1 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: imposta Q1 su TRUE. BOOL TRUE: esegue il reset di Q1 su FALSE (dominante). BOOL Stato memoria booleana. Esempio di programmazione a blocchi funzionali RS Esempio di Diagramma ladder RS Esempio di Testo strutturato RS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 163 Capitolo 8 Istruzioni booleane (* Equivalenza ST: RS1 è un'istanza del blocco RS *) RS1(start_cmd, (stop_cmd OR alarm)); command := RS1.Q1; Risultati Vedere anche Istruzioni booleane a pagina 159 OR Esegue un'operazione OR logica di due o più valori booleani e restituisce il valore booleano True se almeno un ingresso è True, altrimenti torna False. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri i1 i2 o1 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita BOOL BOOL BOOL OR booleano dei termini di ingresso. TRUE: quando uno o più ingressi sono TRUE. FALSE: quando gli ingressi sono FALSE. 164 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 AND Esempio di testo strutturato OR (* Equivalenza ST: *) bo10 := bi101 OR NOT (bi102); bo5 := (bi51 OR bi52) OR bi53; Capitolo 8 Istruzioni booleane Vedere anche Istruzioni booleane a pagina 159 Esegue un'operazione booleana AND tra due o più valori. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri i1 i2 o1 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Valore in tipo di dati Boolean. BOOL Valore in tipo di dati Boolean. BOOL Risultato dell'operazione booleana AND dei valori di ingresso. Esempio di testo strutturato AND (* Equivalenza ST: *) bo10 := bi101 AND NOT (bi102); bo5 := (bi51 AND bi52) AND bi53; Vedere anche Istruzioni booleane a pagina 159 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 165 Capitolo 8 Istruzioni booleane XOR (OR esclusivo) Esegue un'operazione OR esclusiva tra due valori booleani. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri i1 i2 o1 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL BOOL OR esclusivo booleano dei due termini di ingresso. TRUE: quando uno o entrambi gli ingressi sono TRUE. FALSE: quando entrambi gli ingressi sono FALSE. Esempio di Testo strutturato XOR (* Equivalenza ST: *) bo10 := bi101 XOR NOT (bi102); bo5 := (bi51 XOR bi52) XOR bi53; Vedere anche Istruzioni booleane a pagina 159 NOT Converte i valori booleani in valori negati. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 166 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri i1 o1 Tipo di parametro Ingresso Uscita Tipo di dati BOOL BOOL Descrizione Qualsiasi valore Boolean o espressione complessa. TRUE quando IN è FALSE. FALSE quando IN è TRUE. Capitolo 8 Istruzioni booleane Esempio di Testo strutturato NOT (* Equivalenza ST: *) bo10 := NOT (bi101); Vedere anche Istruzioni booleane a pagina 159 SR (impostazione/reset) Imposta un bistabile dominante. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro SET1 RESET Q1 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita BOOL TRUE: imposta Q1 su TRUE (dominante: priorità massima durante la definizione del comportamento delle istruzioni) BOOL TRUE: esegue il reset di Q1 su FALSE. BOOL Stato memoria booleana. TRUE: quando SET1 è TRUE. FALSE: quando RESET è TRUE. Esempio bistabile dominante Set1 Reset Q1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 Risultato Q1 0 1 0 0 1 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 167 Capitolo 8 Istruzioni booleane 1 0 1 1 1 1 1 1 0 1 1 1 Esempio di programmazione a blocchi funzionali SR Esempio di Diagramma ladder SR Esempio di Testo strutturato SR (* Equivalenza ST: SR1 è un'istanza del blocco SR *) SR1((auto_mode & start_cmd), stop_cmd); command := SR1.Q1; 168 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 8 Istruzioni booleane Vedere anche Istruzioni booleane a pagina 159 TTABLE (tavola della verità) Fornisce il valore di uscita in base alla combinazione degli ingressi. Se il valore è 0xABCD e gli ingressi da In3 a In0 corrispondono al numero 7, TTABLE è il valore del bit 7 nella tabella (che è 1). Il bit meno significativo nella tabella è il bit 0. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tabella IN0 IN1 IN2 IN3 TTABLE Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione UINT Tabella valori veri per la funzione BOOLEAN. BOOL Qualsiasi valore di ingresso BOOL. BOOL Qualsiasi valore di ingresso BOOL. BOOL Qualsiasi valore di ingresso BOOL. BOOL Qualsiasi valore di ingresso BOOL. BOOL Il valore di uscita in base alle combinazioni degli ingressi. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 169 Capitolo 8 Istruzioni booleane Combinazioni di ingressi TTABLE L'istruzione TTABLE ha quattro ingressi, e pertanto 16 combinazioni. Tali combinazioni trovano posto in una tavola della verità: per ogni combinazione è possibile regolare il valore in uscita. Il numero di combinazioni configurabili dipende dal numero di ingressi collegati alla funzione. Esempio di combinazione tavola della verità. Numero In3 In2 In1 In0 1 0 0 0 0 2 0 0 0 1 3 0 0 1 0 4 0 1 1 1 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 Esempio di programmazione a blocchi funzionali TTABLE 170 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Diagramma ladder TTABLE Capitolo 8 Istruzioni booleane Esempio di Testo strutturato TTABLE Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 171 Capitolo 8 Istruzioni booleane Vedere anche Istruzioni booleane a pagina 159 MUX8B (multiplexer di ingressi BOOL 8) Multiplexer tra otto ingressi BOOL, restituisce un valore BOOL. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Selettore IN0 IN1 IN2 IN3 IN4 IN5 172 Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione USINT Il valore intero del selettore deve essere compreso nell'intervallo [0...7]. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 0. FALSE: quando il selettore non è 0. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 1. FALSE: quando il selettore non è 1. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 2. FALSE: quando il selettore non è 2. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 3. FALSE: quando il selettore non è 3. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 4. FALSE: quando il selettore non è 4. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 5. FALSE: quando il selettore non è 5. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 IN6 IN7 MUX8B Ingresso Ingresso Uscita BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 6. FALSE: quando il selettore non è 6. BOOL Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 7. FALSE: quando il selettore non è 7. BOOL TRUE: quando: · In0 se selettore = 0 · In1 se selettore = 1 · In2 se selettore = 2 · In3 se selettore = 3 · In4 se selettore = 4 · In5 se selettore = 5 · In6 se selettore = 6 · In7 se selettore = 7 FALSE: per tutti gli altri valori del selettore. Capitolo 8 Istruzioni booleane Esempio di programmazione a blocchi funzionali MUX8B Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 173 Capitolo 8 Istruzioni booleane Esempio di diagramma ladder MUX8B Esempio di Testo strutturato MUX8B (* Equivalenza ST: *) range := MUX8 (choice, 1, 5, 10, 50, 100, 500, 1000, 5000); 174 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 8 Istruzioni booleane (* sceglie tra 8 intervalli predefiniti; ad esempio se choice è 3, range sarà 50 *) Risultati Vedere anche Istruzioni booleane a pagina 159 MUX4B (multiplexer di ingressi BOOL 4) Multiplexer tra quattro ingressi BOOL, restituisce un valore BOOL. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 175 Capitolo 8 Istruzioni booleane Selettore IN0 Ingresso USINT Ingresso BOOL IN1 Ingresso BOOL IN2 Ingresso BOOL IN3 Ingresso BOOL MUX4B Uscita BOOL Il valore intero del selettore deve essere compreso nell'intervallo [0...3]. Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 0. FALSE: quando il selettore non è 0. Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 1. FALSE: quando il selettore non è 1. Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 2. FALSE: quando il selettore non è 2. Qualsiasi valore di ingresso BOOL. TRUE: quando il selettore è 3. FALSE: quando il selettore non è 3. TRUE: quando: · In0 se selettore = 0 · In1 se selettore = 1 · In2 se selettore = 2 · In3 se selettore = 3 FALSE: per tutti gli altri valori del selettore. Esempio di programmazione a blocchi funzionali MUX4B 176 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder MUX4B Capitolo 8 Istruzioni booleane Esempio di Testo strutturato MUX4B (* Equivalenza ST: *) range := MUX4 (scelta, 1, 10, 100, 1000); (* sceglie tra 4 intervalli predefiniti; ad esempio se choice è 1, range sarà 10 *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 177 Capitolo 8 Istruzioni booleane Risultati Vedere anche Istruzioni booleane a pagina 159 178 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni di comunicazione Capitolo 9 Usare le istruzioni di comunicazione per leggere, scrivere, confrontare e convertire stringhe di comunicazione. Blocco funzione Descrizione COM_IO_WDOG a pagina 179 MSG_CIPGENERIC a pagina 182 MSG_CIPSYMBOLIC a pagina 191 MSG_MODBUS a pagina 196 MSG_MODBUS2 a pagina 202 Monitora le comunicazioni con il controllore. Invia un messaggio CIP generico esplicito. Invia un messaggio CIP Symbolic esplicito. Invia un messaggio Modbus. Invia un messaggio MODBUS/TCP su un canale Ethernet. Vedere anche Supporto per protocolli di comunicazione a pagina 240 Configurazione dei valori dei dati oggetto per i messaggi espliciti a pagina 215 Istruzione impostate in ordine alfabetico a pagina 18 Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Utilizzo dei blocchi funzione di comunicazione (messaggistica) a pagina 215 COM_IO_WDOG Monitora i messaggi esterni agli ingressi e alle uscite del controllore. Ad esempio, se il comando di scrittura CIP alla variabile _IO_EM_DO_00 non viene ricevuto tramite EtherNet/IP nell'intervallo di timeout configurato, il timer watchdog scadrà e tutte le uscite delle controllore verranno ripristinate. Sono supportati i protocolli EtherNet/IP, Modbus TCP e Modbus RTU. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. È supportata solo con firmware versione 12.00 e successivi. Nota: · sebbene ci siano diverse istanze per questa istruzione, solo una può essere abilitata. In caso contrario, sarà generato un errore con ErrorID impostato su 2. · Sono supportati solo ingressi/uscite digitale integrati nel controllore, di plug-in e di espansione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 179 Capitolo 9 Istruzioni di comunicazione Parametro Enable OutputClr PT TimeOut ET Stato Errore ErrorID Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: di seguito i tre casi della condizione TRUE. 1. Sul fronte di salita di TRUE, viene avviata l'esecuzione del blocco funzione. Il bit Stato è impostato su 0 e gli altri bit vengono cancellati. Verificare le condizioni di errore seguenti. Se non si verificano errori, procedere con il passaggio successivo. · Se PresetValue è inferiore a un secondo, Error è impostato su TRUE ed ErrorID è impostato su 1, il bit Stato 4 è impostato, TimeOut ed ElapsedTime sono cancellati. · Se il timer è già stato acquisito dall'altra istanza, Error è impostato su TRUE ed ErrorID è impostato su 2, il bit Stato 4 è impostato, TimeOut ed ElapsedTime sono cancellati. 2. PresetTime > ElapsedTime. Se Enable è impostato su TRUE e viene avviata l'esecuzione del blocco funzione. Verifica se vengono ricevuti i comandi. Se vengono ricevuti I comandi, eseguire il reset del timer immediatamente. Impostare ElapsedTime su 0 e impostare il bit Stato su 2. Gli altri bit vengono cancellati. Se non vengono ricevuti comandi, impostare il bit di stato e gli altri bit vengono cancellati. 3. PresetTime = ElapsedTime. Se Enable è impostato su TRUE e viene avviata l'esecuzione del blocco funzione. Verificare se vengano ricevuti i comandi. Se vengono ricevuti, ripristinare il timer immediatamente. Impostare ElapsedTime su 0 e impostare il bit di stato 2. Gli altri bit vengono cancellati. In caso contrario, imposta il bit TimeOut, imposta il bit di stato e gli altri bit vengono cancellati Impostare la variabile interna per cancellare le uscite digitali al termine della scansione se l'azione configurata è quella di eliminare tutte le uscite digitali al termine della scansione. FALSE: l'istruzione non viene eseguita e le uscite del blocco funzione vengono cancellate. BOOL 0: nessuna azione in caso di timeout. 1: cancella tutte le uscite digitali al termine della scansione (integrata, EXIO e UPM) in caso di timeout. Ingresso TIME Uscita BOOL Uscita TIME Uscita USINT Uscita BOOL Uscita USINT Tempo di attesa prima del timeout. Il valore di un timeout non può essere inferiore a un secondo; in caso contrario si verificherà un errore. Il valore massimo per PresetTime può essere il valore massimo entro il tipo di dati TIME. TRUE: ElapsedTime è uguale a PresetTime. FALSE: Enable è impostato su FALSE, il timer non è trascorso o si è verificato un errore. Il tempo trascorso. I valori possibili variano da 0 ms a 1193h2m47s294ms. Stato del blocco funzione. Bit 0: Enable Bit 1: timer in esecuzione, nessun ingresso o uscita ricevuti. Bit 2: comando ingresso o uscita ricevuto. Bit 3: timeout. Nessun comando di ingresso o uscita ricevuto. Bit 4: si è verificato un errore. Gli altri bit sono riservati. Indica che si è verificato un errore. Se si verifica un errore, ErrorID contiene il codice dell'errore. 180 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Codice errore COM_IO_WDOG Codice ErrorID Descrizione errore 1 PresetTime è inferiore a un secondo. Istruzioni di comunicazione 2 Un'altra istanza del blocco funzione COM_IO_WDOG è già in esecuzione. Esempio di Programmazione a blocchi funzionali COM_IO_WDOG Esempio di Diagramma ladder COM_IO_WDOG Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 181 Capitolo 9 Istruzioni di comunicazione Esempio di Testo strutturato COM_IO_WDOG Vedere anche Istruzioni di comunicazione a pagina 179 MSG_CIPGENERIC Invia un messaggio CIP (Common Industrial Protocol) esplicito tramite un canale Ethernet o una porta seriale. (messaggio generico per In una scansione è possibile elaborare un massimo di quattro richieste Common Industrial Protocol) di messaggio per canale. Per le programmazioni in ladder diagram, le richieste di messaggio sono eseguite al termine di una scansione ladder. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 182 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 IN Ingresso CtrlCfg AppCfg TargetCfg ReqData ReqLength ResData Q Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Stato ResLength Uscita Uscita BOOL CIPCONTROLCFG CIPAPPCFG CIPTARGETCFG USINT[1..1] UINT USINT[1..1] BOOL CIPSTATUS UINT Capitolo 9 Istruzioni di comunicazione Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: fronte di salita non rilevato, non attivo. Configurazione per il controllo dell'esecuzione del blocco funzione. Utilizzare i parametri del tipo di dati CIPCONTROLCFG per definire CtrlCfg. Configurazione del servizio CIP e del percorso dell'applicazione (EPATH). Utilizzare i parametri del tipo di dati CIPAPPCFG per definire AppCfg. Configurazione del dispositivo di destinazione. Utilizzare i parametri del tipo di dati CIPTARGETCFG per definire TargetCfg. Dati della richiesta messaggio CIP. La dimensione del vettore non deve essere maggiore della dimensione ReqLength. Lunghezza dei dati della richiesta messaggio CIP: · 0 - 490 Dati della risposta messaggio CIP. La dimensione del vettore non deve essere maggiore della dimensione ReqLength. Quando un MSG è attivato o riattivato, i dati dell'array ResData vengono cancellati. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: istruzione MSG terminata con successo. FALSE: istruzione MSG non terminata. Lo stato del blocco istruzione. Quando è attivato o riattivato un MSG, tutti gli elementi in Stato vengono ripristinati. L'uscita dello stato è definita nel tipo di dati CIPSTATUS. Lunghezza dei dati della risposta messaggio CIP: · 0 - 490 Quando un MSG è attivato o riattivato, ResLength viene ripristinato su 0. Esempio di Programmazione a blocchi funzionali MSG_CIPGENERIC Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 183 Capitolo 9 Istruzioni di comunicazione Esempio di Diagramma ladder MSG_CIPGENERIC Esempio di Testo strutturato MSG_CIPGENERIC Vedere anche Tipo di dati CIPCONTROLCFG a pagina 185 Tipo di dati CIPAPPCFG a pagina 184 Tipo di dati CIPTARGETCFG a pagina 188 Tipo di dati CIPSTATUS a pagina 186 Esempio: Come creare un programma di generazione messaggi MSG_CIPGENERIC per leggere i dati da un controllore a pagina 217 Tipo di dati CIPAPPCFG 184 Utilizzare questa tabella per definire i parametri per il tipo di dati CIPAPPCFG. Parametri Tipo di dati Descrizione Servizio USINT Codice servizio: 1 127 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri Classe Istanza Attributo MemberCnt MemberId Tipo di dati UINT UDINT UINT USINT UINT[3] Capitolo 9 Istruzioni di comunicazione Descrizione Valore ID della classe del segmento logico: 1 65535 Valore ID dell'istanza del segmento logico: 0 4294967295 Valore ID dell'attributo del segmento logico: 1 - 65535, 0 - ID attributo non utilizzato Conteggio ID membri. Valori ID membro massimi utilizzati: 1 - 3, 0 - ID membro non utilizzato Valori ID membro: 0 - 65535 Vedere anche MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 Tipo di dati CIPCONTROLCFG Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati CIPCONTROLCFG. Parametri Tipo di dati Descrizione Annulla BOOL TriggerType USINT StrMode USINT TRUE: annulla l'esecuzione del blocco funzione. Il bit è cancellato quando viene abilitato il messaggio. Se è impostato il parametro Cancel e il messaggio è abilitato (bit EN impostato) e non eseguito (bit DN non impostato), l'esecuzione del messaggio viene interrotta e viene impostato il bit ER. Rappresenta uno dei seguenti: · 0: Msg attivato una volta (quando IN passa da False a True) · Da 1 a 65535: valore attivazione ciclica in millisecondi. Msg è attivato periodicamente quando IN è True. Impostare il valore su 1, per attivare MSG il più rapidamente possibile. Riservato per uso futuro. Attivazione messaggio CIP Un messaggio CIP può essere attivato periodicamente impostando il parametro TriggerType su un valore diverso da zero. Utilizzare questa tabella per definire le azioni per il parametro Tipo di trigger. Azione Il messaggio è abilitato. Il tempo impostato nel timer attivazione è esaurito prima del completamento del messaggio. Il messaggio viene completato prima che si esaurisca il tempo impostato nel timer attivazione. Risultati Il timer attivazione si attiva. Il messaggio è attivato immediatamente nel ciclo di scansione ladder successivo. Il messaggio è attivato quando il tempo impostato nel timer attivazione è esaurito. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 185 Capitolo 9 Istruzioni di comunicazione Esempio: attivazione messaggio Nell'esempio seguente il valore TriggerType è impostato su 100. Vedere anche MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 Tipo di dati CIPSTATUS Parametri Errore ErrorID SubErrorID ExtErrorID StatusBits Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati CIPSTATUS. Tipo di dati Descrizione BOOL Questo bit è impostato su TRUE quando viene rilevata una condizione di errore durante l'esecuzione del blocco funzione. UINT Valore codice di errore. Gli ErrorID sono definiti nei codici di errore CIPSTATUS. UINT Valore codice di sottoerrore. I SubErrorID sono definiti nei codici di errore CIPSTATUS. UINT Valore codice di errore per stato CIP esteso. UINT È possibile utilizzare questo parametro per verificare i bit di controllo: · Bit 0: EN: abilitazione · Bit 1: EW Attesa abilitazione · Bit 2: ST Avvio · Bit 3: ER Errore · Bit 4: DN Eseguito · Bit 5: CIPCONN - chiusura connessione CIP · Bit 6: EIPSESS - chiusura sessione EIP · Gli altri bit sono riservati I StatusBits sono definiti per i bit di status CIPSTATUS. Vedere anche Codici di errore CIPSTATUS a pagina 187 Bit di stato CIPSTATUS a pagina 187 MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 186 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Bit di stato CIPSTATUS - - - - I bit di stato CIPSTATUS si impostano in base allo stato dell'esecuzione del messaggio, dei buffer di comunicazione e delle condizioni del piolo. - - - - - - - 4 3 2 1 0 Bit Nome Descrizione Comportamento 0 EN Enable Impostato quando il piolo passa a True. Rimane impostato finché non viene impostato il bit DN o ER e il piolo passa a False. 1 EW Enable Waiting Impostato quando il buffer di comunicazione è allocato per la richiesta di messaggio. Cancellato quando è impostato il bit ST. 2 ST Start Impostato quando il messaggio è stato trasmesso ed è in attesa di una risposta. Cancellato quando è impostato il bit DN. 3 ER Errore Impostato quando la trasmissione del messaggio non riesce. Viene scritto un codice di errore in ErrorID. Il bit ER e i valori del codice di errore sono cancellati al successivo passaggio del piolo da False a True. 4 DN Done Impostato quando il messaggio viene trasmesso correttamente. Il bit DN è cancellato al successivo passaggio del piolo da False a True. Quando è impostato il bit Done, tutti gli altri bit vengono cancellati, a indicazione del corretto completamento del MSG. Quando viene rilevato un errore ed è impostato il bit Error, gli altri bit di stato (EN/EW/ST) non vengono cancellati. 5 CIPCONN Done Impostare quando la connessione CIP per la comunicazione viene terminata. Il bit CIPCONN è applicabile quando ConnClose è True, per gli altri casi il bit CIPCONN è False. Il bit CIPCONN viene usato anche per Seriale, Ethernet e USB. 6 EIPSESS Done Impostare quando la sessione incapsulamento CIP per la comunicazione viene terminata. Il bit EIPSESS è applicabile quando ConnClose è True, per gli altri casi il bit EIPSESS è False. Questo bit è utilizzato solo per Ethernet. Vedere anche Codici di errore CIPSTATUS Tipo di dati CIPSTATUS a pagina 186 Utilizzare questa tabella per determinare i valori dei parametri per i campi ErrorID e SubErrorID del parametro CIPSTATUS quando è impostato il bit ER. Codice SubErrorID ErrorID Descrizione codice di errore 33 Errori relativi alla configurazione del parametro 32 Numero canale errato. 36 Tipo di connessione CIP non supportato. 40 Tipo di dati CIP simbolico non supportato. 41 Nome CIP simbolico non valido. 43 Valore classe CIP o conteggio MemberID non valido. 48 La dimensione dell'array per i dati di ingresso del blocco di istruzioni non è sufficiente. 49 Percorso di destinazione non valido. 50 Codice servizio errato. 51 La dimensione dell'array per i dati di trasmissione del blocco di istruzioni è troppo grande per la comunicazione CIP. la lunghezza massima dei dati utente da trasmettere varia in base alle diverse configurazioni del messaggio. Se il payload totale del messaggio CIP (compresi i dati utente e il sovraccarico del messaggio CIP) supera i 504 byte, viene generato un errore 0x21 (subError 0x33). 52 Valore del tipo di segmento non valido. 53 Valore di timeout UCCM errato. Se il valore di timeout incapsulamento è inferiore al timeout UCCM o la differenza tra timeout incapsulamento e timeout UCCM è minore o uguale a un secondo, viene generato un errore 0x21 (subError 0x35). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 187 Capitolo 9 Istruzioni di comunicazione Codice SubErrorID ErrorID Descrizione codice di errore 54 Valore di timeout connesso non valido. Se il valore di timeout incapsulamento è inferiore a quello del timeout del messaggio CONNESSO o la differenza tra il timeout di incapsulamento e il timeout del messaggio CONNESSO è minore o uguale a un secondo, viene segnalato un errore 0x21 (subError 0x36). 55 Errori relativi al timeout 112 Timeout del messaggio durante l'attesa nella rispettiva coda. 113 Timeout del messaggio durante l'attesa della connessione al livello del collegamento. 114 Timeout del messaggio durante l'attesa della trasmissione al livello del collegamento. 115 Timeout del messaggio durante l'attesa della risposta dal livello del collegamento. 69 Codici degli errori relativi al formato di risposta del server 65 La risposta al messaggio non corrisponde alla richiesta. 68 Tipo di dati della risposta al messaggio non valido/supportato. (MSG_CIPSYMBOLIC). 208 Nessun indirizzo IP configurato per la rete. 209 Numero massimo di connessioni utilizzate. Nessuna connessione disponibile. 210 Indirizzo Internet o del nodo non valido. 217 Esecuzione del messaggio annullata dall'utente. (Il parametro Cancel era impostato su TRUE.) 218 Spazio buffer di rete non disponibile. 222 Riservato. 223 L'indirizzo del collegamento non è disponibile. È in corso una modifica alla configurazione TCP/IP o Ethernet. 224 Codice di errore della risposta CIP. SubErrorID specifica lo stato del CIP, mentre ExtErrorID specifica il valore dello stato esteso del CIP. Fare riferimento alla specifica del CIP per i valori dei codici dei possibili errori. 255 Il canale è in arresto oppure è in corso una riconfigurazione. Un codice di errore viene generato immediatamente dopo l'accensione, finché non si stabilisce una connessione. Si tratta di un comportamento normale. Potrebbe verificarsi anche nelle seguenti situazioni: · Un cavo Ethernet è scollegato · Un indirizzo IP non può essere individuato · È presente un plug-in della porta seriale, ma non configurato Vedere anche Tipo di dati CIPSTATUS a pagina 186 Tipo di dati CIPTARGETCFG Parametri Percorso CipConnMode Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati CIPTARGETCFG. Tipo di dati STRING[80] USINT Descrizione Percorso della destinazione. È possibile specificare massimo due hop. La sintassi del percorso è: · {"<porta>,<indirizzo nodo/slot>"}2 Tipo di connessione CIP. · 0 - Non connesso (impostazione predefinita) · 1 - Connessione Class3 188 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri UcmmTimeout Tipo di dati UDINT Capitolo 9 Istruzioni di comunicazione Descrizione Timeout messaggio non connesso (in millisecondi). Il tempo di attesa di una risposta per i messaggi non connessi, inclusa l'esecuzione di una connessione per i messaggi non connessi. · Valori validi: 250-10.000 ms. · Impostare su 0 per utilizzare il valore predefinito 3.000 (3 secondi). · Per i valori minori di 250 ms, verrà impostato il valore 250 ms (minimo). · Per i valori maggiori di 10.000 ms, verrà impostato il valore 10.000 (massimo). ConnMsgTimeout UDINT Timeout connessione Class3 (in millisecondi). Il tempo di attesa di una risposta per i messaggi connessi. La connessione si interrompe una volta trascorso il tempo di timeout. · Valori validi: 800-10.000 ms. · Impostare su 0 per utilizzare il valore predefinito 10.000 (10 secondi). · Per i valori minori di 800, verrà impostato il valore 800 ms (minimo). · Per i valori maggiori di 10.000 ms, verrà impostato il valore 10.000 (massimo). ConnClose BOOL Comportamento alla chiusura della connessione: · TRUE - Chiusura della connessione al completamento del messaggio. · FALSE - Nessuna chiusura della connessione al completamento del messaggio (impostazione predefinita). Vedere anche Connessioni per messaggio CIP/EIP a pagina 190 Timer per timeout messaggio CIP a pagina 191 MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 Percorso di destinazione per la messaggistica CIP a pagina 189 Percorso di destinazione per Il percorso di destinazione per la messaggistica CIP contiene i parametri che determinano il percorso e la destinazione del messaggio la messaggistica CIP CIP. Il parametro della stringa relativa al percorso di destinazione usa la seguente sintassi: · "<porta locale>, <indirizzo prima destinazione>, [<porta locale prima destinazione>, <indirizzo seconda destinazione>]" Il primo hop deve essere presente, il secondo è facoltativo. Elemento della stringa Porta locale Indirizzo prima destinazione Descrizione Porta locale utilizzata per inviare il messaggio. La porta deve essere una porta seriale CIP o EtherNet/IP attiva. Le porte USB non sono supportate. Indirizzo di destinazione del primo hop. · Come EIP, specificare l'indirizzo IP di destinazione. L'indirizzo IP deve essere un indirizzo unicast e non un indirizzo con valore 0, multicast, broadcast, locale o loopback (127.x.x.x). · Come CIP seriale, specificare l'indirizzo del nodo di destinazione. Il valore supportato è 1. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 189 Capitolo 9 Istruzioni di comunicazione Porta locale della prima destinazione Porta locale utilizzata per inviare il messaggio. Indirizzo seconda destinazione Indirizzo di destinazione del secondo hop. Esempio di percorso di destinazione Nella seguente tabella sono elencati valori di esempio utilizzati in una stringa di percorso di destinazione, accanto a una descrizione dei risultati relativi a ciascuna stringa. Elemento della stringa "0,0" "6,1" "4,192.168.1.100" "4,192.168.1.100,1,0" Descrizione Il dispositivo di destinazione è il dispositivo locale. Tramite la porta 6 (porta seriale UPM del Micro830) raggiunto il nodo su 1. Tramite la porta 4 (porta Ethernet integrata del Micro850) raggiunto il nodo all'indirizzo 192.168.1.100. Tramite la porta 4 (porta Ethernet integrata del Micro850) raggiunto il nodo all'indirizzo 192.168.0.100 (modulo Logix ENET). Dal modulo ENET tramite la porta backplane (porta 1) raggiunto il controllore Logix allo slot 0. Vedere anche Connessioni per messaggio CIP/EIP Tipo di dati CIPTARGETCFG a pagina 188 Per l'esecuzione del messaggio client sono supportate massimo 16 connessioni CIP (classe 3) e 16 connessioni EIP. Nella seguente tabella è illustrato il comportamento della connessione CIP/EIP. Scenario La richiesta messaggio è abilitata e CipConnMode=1. Risultati Se non esiste una connessione alla destinazione, viene stabilita una connessione CIP. Se esiste già una connessione alla destinazione, viene utilizzata la connessione CIP esistente. La richiesta messaggio è abilitata, CipConnMode=1 e la porta locale Se non esiste una connessione EIP alla destinazione, prima di una del messaggio è Ethernet. connessione CIP viene stabilita una connessione EIP. La richiesta messaggio è abilitata, CipConnMode=0 e la porta locale Se non esiste una connessione EIP alla destinazione, viene stabilita una del messaggio è Ethernet. connessione EIP. L'esecuzione del messaggio è completata e ConnClose è impostato Se è presente solo una connessione alla destinazione, la connessione viene su True. terminata. Se sono presenti più connessioni alla destinazione, la connessione viene terminata al completamento dell'esecuzione dell'ultimo messaggio. Al termine di una connessione CIP, viene terminata anche qualsiasi connessione EIP associata. Se più connessioni CIP usano la stessa connessione EIP, la connessione EIP viene terminata successivamente a tutte le connessioni CIP associate. Quando ConnClose è true, la connessione di messaggio e sessione Se messaggi condividono la stessa connessione, la connessione viene EIP viene terminata al completamento dell'esecuzione del terminata al completamento dell'ultimo messaggio. messaggio. Una connessione CIP o EIP che non è associata a qualsiasi Vedere Oggetti CIP specifica Volume II TCP/IP per ulteriori informazioni messaggio attivo, viene terminata se è inattiva per x secondi. relative al servizio CIP impostato. Dove x è un valore di Timeout dell'inattività di incapsulamento configurabile che può essere impostato mediante il servizio CIP impostato. L'esecuzione del messaggio è completata e ConnClose è impostato La connessione non viene terminata. su False. 190 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Scenario La connessione non è associata a un messaggio attivo e rimane inattiva per l'intervallo di tempo specificato nel parametro ConnTimeOut. Il controllore passa da una modalità di esecuzione (Esecuzione, Esecuzione remota, Scansione singola remota di test e piolo singolo remoto) a una di non esecuzione. Capitolo 9 Risultati La connessione viene terminata. Istruzioni di comunicazione Per tutte le connessioni attive viene forzata la chiusura. Vedere anche Tipo di dati CIPTARGETCFG a pagina 188 Timer per timeout messaggio CIP Nella seguente tabella è descritto il comportamento dei timer per parametri CIPTARGETCFG timeout (UcmmTimeout e ConnMsgTimeout) in base alle richieste e allo stato del messaggio. Azione Il messaggio è abilitato. Risultati Il timer UcmmTimeout è attivato È richiesta la connessione Il timer ConnMsgTimeout è attivato Il timer ConnMsgTimeout è attivo La richiesta di connessione è completata Il timer UcmmTimeout è disabilitato Il timer UcmmTimeout è riattivato Vedere anche Tipo di dati CIPTARGETCFG a pagina 188 MSG_CIPSYMBOLIC Invia un messaggio CIP (Common Industrial Protocol) simbolico tramite un canale Ethernet o una porta seriale. (messaggio simbolico per Lingue supportate: Programmazione a blocchi funzionali, Diagramma Common Industrial Protocol) ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 191 Capitolo 9 Istruzioni di comunicazione Operazione MSG_CIPSYMBOLIC Quando è abilitato il blocco funzione, i buffer di ricezione per le operazioni di lettura vengono cancellati sul fronte di salita di Enable. Parametri IN CtrlCfg SymbolicCfg TargetCfg Dati Q Stato DataLength Tipo di parametro Ingresso Argomenti Tipo di dati BOOL Ingresso Ingresso Ingresso Ingresso Uscita CIPCONTROLCFG CIPSYMBOLICCFG CIPTARGETCFG USINT[490] BOOL Uscita Uscita CIPSTATUS UDINT Descrizione Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: fronte di salita non rilevato, non attivo. Configurazione per il controllo dell'esecuzione del blocco funzione. Utilizzare i parametri del tipo di dati CIPCONTROLCFG per definire CtrlCfg. Informazioni di lettura e scrittura per il simbolo. Configurazione del dispositivo di destinazione. Utilizzare i parametri del tipo di dati CIPTARGETCFG per definire TargetCfg. Il comando di lettura memorizza i dati restituiti dal server. Il comando di scrittura inserisce nel buffer i dati da inviare al server. Quando un MSG è attivato o riattivato, Data viene cancellato per il comando Lettura MSG. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: istruzione MSG terminata con successo. FALSE: istruzione MSG non terminata. Stato esecuzione blocco funzione Quando è attivato o riattivato un MSG, tutti gli elementi in Stato vengono ripristinati. L'uscita dello stato è definita nel tipo di dati CIPSTATUS. Numero di byte dati per servizio Lettura. Per servizio Scrittura il numero è 0. Quando un MSG è attivato o riattivato, DataLength viene ripristinato su 0 per il comando Lettura MSG. Esempio di Programmazione a blocchi funzionali MSG_CIPSYMBOLIC 192 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Esempio di Diagramma ladder MSG_CIPSYMBOLIC Esempio di Testo strutturato MSG_CIPSYMBOLIC Vedere anche Tipo di dati CIPCONTROLCFG a pagina 185 Tipo di dati CIPTARGETCFG a pagina 188 Tipo di dati CIPSYMBOLICCFG a pagina 193 Istruzioni di comunicazione a pagina 179 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Tipo di dati CIPSYMBOLICCFG Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati CIPSYMBOLICCFG. Parametri Servizio Simbolo Tipo di dati USINT STRING Descrizione Codice servizio: · 0 - Lettura (impostazione predefinita) · 1 - Scrittura Nome della variabile per lettura/scrittura. · Massimo 80 caratteri. · Il campo non può essere vuoto. Sintassi dei simboli definita nella sintassi di scrittura/lettura dei messaggi simbolici. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 193 Capitolo 9 Istruzioni di comunicazione Count UINT Tipo Definito dall'utente Offset USINT Riservato per uso futuro. Numero degli elementi della variabile per lettura/scrittura: · Valori validi: 1 - 490 · 1 è utilizzato se il valore è impostato su 0. Tipo di dati definito dall'utente per la variabile di destinazione. Tipo definito nel supporto del tipo di dati simbolico. Riservato per uso futuro. Un offset dei byte della variabile Lettura/Scrittura usata per leggere/scrivere una variabile di grandi dimensioni che non è possibile elaborare in un messaggio. · 0 0xFF Tipo di dati BOOL SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL STRING Supporto per il tipo di dati simbolico Utilizzare questa tabella per determinare i tipi di dati supportati da MSG_CIPSYMBOLIC. Valore (esadecimale) del tipo Descrizione di dati 193 (0xC1) 194 (0xC2) 195 (0xC3) 196 (0xC4) 197 (0xC5) 198 (0xC6) 199 (0xC7) 200 (0xC8) 201 (0xC9) 202 (0xCA) 203 (0xCB) 218 (0xDA) Booleano logico con valori TRUE (1) e FALSE (0). Valore intero con segno a 8 bit Valore intero con segno a 16 bit Valore intero con segno a 32 bit Valore intero con segno a 64 bit Valore intero senza segno a 8 bit Valore intero senza segno a 16 bit Valore intero senza segno a 32 bit Valore intero senza segno a 64 bit Valore virgola mobile a 32 bit Valore virgola mobile a 64 bit Stringa di caratteri Vedere anche MSG_CIPSYMBOLIC a pagina 191 Sintassi scrittura/lettura dei messaggi simbolici a pagina 194 Sintassi scrittura/lettura dei La sintassi definisce le combinazioni di simboli di un blocco istruzione di lettura/scrittura valido. messaggi simbolici Nomi validi simbolo Per essere valido, il nome di ogni simbolo deve soddisfare i requisiti descritti di seguito. · Deve iniziare con una lettera o un carattere di sottolineatura, seguito da lettere, cifre o caratteri di sottolineatura singoli. · Deve essere composto da un massimo di 40 caratteri. · Non può contenere due caratteri di sottolineatura consecutivi. 194 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Simbolo Variabile Array Struttura Capitolo 9 Istruzioni di comunicazione · Deve contenere i caratteri speciali [ ] . , come separatori. Sintassi dei simboli Utilizzare questa tabella per definire la sintassi valida per i simboli. sono supportate solo le variabili globali. Sintassi PROGRAM:<nome programma>,<nome simbolo> <nome simbolo>[dim3, dim2, dim1] (la dimensione massima supportata è 3). <nome simbolo>.<nome simbolo del campo struttura> Esempio PROGRAM:POU1.MyTag MyTag1[0] MyTag2[3,6] MyTag3[1,0,4] MyTag4.time.year MyTag5.local.time[1].year Vedere anche MSG_CIPSYMBOLIC a pagina 191 Tipo di dati CIPSYMBOLICCFG a pagina 193 Dimensione pacchetto dati supportata per la funzione CIP seriale Per i controllori Micro830, Micro850 e Micro870, la porta seriale integrata e le porte seriali plug-in supportano la comunicazione CIP seriale. Il pacchetto dati di comunicazione CIP seriale include dati utente e intestazione del pacchetto CIP. Durante l'uso come client CIP seriale, le porte seriali Micro830/Micro850 possono supportare un massimo di 490 byte di dati utente in lettura/scrittura. Questa specifica massima riguarda i pacchetti dati CIP seriale con una dimensione minima dell'intestazione del pacchetto. Se la dimensione dell'intestazione del pacchetto è maggiore della dimensione minima per l'intestazione del pacchetto, la dimensione massima dei dati utente supportabile dal client CIP è inferiore a 490 byte. Se la dimensione del pacchetto dati è maggiore della dimensione massima dei dati supportata dal client CIP, il blocco funzione segnala un errore (0x21) e un errore secondario (0x33). Durante l'uso come server CIP seriale, le porte seriali Micro830, Micro850 e Micro870 possono supportare un minimo di 255 byte di dati utente in lettura/scrittura. Questa specifica per la dimensione dei dati utente minima riguarda i pacchetti dati CIP seriale con una dimensione massima dell'intestazione del pacchetto. Se la dimensione dell'intestazione del pacchetto CIP è minore della dimensione massima per l'intestazione del pacchetto, il client CIP può supportare dimensioni del pacchetto dati maggiori della specifica minima (ovvero, maggiori di 255 byte). Tuttavia, se la dimensione dei dati utente è maggiore della dimensione massima dei dati supportata dalla funzione del server CIP, il pacchetto dati CIP può essere scartato e il client va in timeout. IMPORTANTE Per la funzione server CIP seriale, si consiglia di non effettuare operazioni in lettura/scrittura per più di 255 byte per i dati utente in un singolo messaggio CIP. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 195 Capitolo 9 Istruzioni di comunicazione Vedere anche MSG_CIPSYMBOLIC a pagina 191 MSG_MODBUS (messaggio modbus) Invia un messaggio Modbus tramite una porta seriale. Dettagli operazione: · In una scansione è possibile elaborare un massimo di quattro richieste di messaggio per canale. Per le programmazioni in ladder diagram, le richieste di messaggio sono eseguite al termine di una scansione ladder. · quando un trigger è impostato su continuo, anche i codici di errore saranno cancellati in modo continuo. Per visualizzare i codici di errore, aggiungere un piolo prima dell'istruzione MSG_MODBUS. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro IN Annulla LocalCfg TargetCfg LocalAddr Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL MODBUSLOCPARA MODBUSTARPARA MODBUSLOCADDR Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: fronte di salita non rilevato, non avviato. TRUE: annulla l'esecuzione del blocco funzione. FALSE: quando IN è TRUE. Input Annulla dominante. Definisce l'ingresso struttura (dispositivo locale). Definire la struttura d'ingresso per il dispositivo locale utilizzando il tipo di dati MODBUSLOCPARA. Definisce l'ingresso struttura (dispositivo locale). Definire la struttura d'ingresso per il dispositivo di destinazione utilizzando il tipo di dati MODBUSTARPARA. MODBUSLOCADDR è un array di 125 parole usato dai comandi di lettura per archiviare i dati (da 1 a 125 parole) restituiti dal Modbus slave e dai comandi di scrittura per inserire i dati nel buffer (da 1 a 125 parole) da inviare al Modbus slave. 196 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Q Uscita BOOL Errore Uscita BOOL ErrorID Uscita UINT Capitolo 9 Istruzioni di comunicazione Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: istruzione MSG terminata con successo. FALSE: istruzione MSG non terminata. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore MSG_MODBUS. Codici di errore MSG_MODBUS La tabella seguente descrive i codici di errore per MSG_MODBUS. Codice errore Descrizione errore 3 Il valore di TriggerType è stato modificato da 2 - 255. 20 Il driver di comunicazione locale non è compatibile con l'istruzione MSG. 21 Si è verificato un errore del parametro di configurazione canale locale. 22 L'indirizzo del ponte locale o di destinazione è maggiore dell'indirizzo massimo di nodo. 33 Parametro del file MSG non valido. 54 Modem non trovato. 55 Timeout del messaggio nel processore locale. Timeout del livello di collegamento. 217 L'utente ha cancellato il messaggio. 129 Funzione non valida. 130 Indirizzo dati non valido. 131 Valore dati non valido. 132 Guasto nel dispositivo slave. 133 Conferma. 134 Il dispositivo slave è occupato. 135 Conferma negativa. 136 Errore di parità in memoria. 137 Risposta non standard. 255 Il canale è stato spento. Esempio di Programmazione a blocchi funzionali MSG_MODBUS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 197 Capitolo 9 Istruzioni di comunicazione Esempio di Diagramma ladder MSG_MODBUS Esempio di Testo strutturato MSG_MODBUS Vedere anche Istruzioni di comunicazione a pagina 179 Esempio: Come configurare una comunicazione Modbus per la lettura da e la scrittura in una unità a pagina 236 Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Tipo di dati MODBUSTARPARA a pagina 202 Tipo di dati MODBUSLOCPARA a pagina 198 Tipo di dati MODBUSLOCPARA Utilizzare questa tabella per determinare i valori dei parametri per il tipo di dati MODBUSLOCPARA. 198 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri Canale TriggerType Cmd ElementCnt Tipo di dati UINT Descrizione Capitolo 9 Numero porta seriale PLC Micro800: · 2 per la porta seriale integrata o · 5-9 per i plug-in della porta seriale installati negli slot da 1 a · 5 per lo slot 1 · 6 per lo slot 2 · 7 per lo slot 3 · 8 per lo slot 4 · 9 per lo slot 5 Istruzioni di comunicazione USINT Rappresenta uno dei seguenti: · 0: Msg attivato una volta (quando IN passa da False a True) · 1: Msg attivato di continuo quando IN è True · Altro valore: Riservato USINT Rappresenta uno dei seguenti: · 01: lettura stato della bobina (0xxxx) · 02: lettura stato ingresso (1xxxx) · 03: lettura registri di mantenimento (4xxxx) · 04: lettura registri ingresso (3xxxx) · 05: scrittura bobina singola (0xxxx) · 06: scrittura registro singolo (4xxxx) · 15: scrittura bobine multiple (0xxxx) · 16: scrittura registri multipli (4xxxx) · Altri: Supporto del comando personalizzato. Supporto del comando personalizzato MODBUSLOCPARA: Sono supportati anche i comandi personalizzati nell'intervallo 0-255 e non ancora assegnati al comando Modbus. Se viene usato un comando personalizzato, LocalCfg:ElementCnt conterrà il numero dei byte ricevuti. La risposta sarà ricevuta in Local Address Data e sovrascriverà i dati richiesti. · Esempio per CMD=0x2B · Local Address Data 1:0x0E, READ_DEVICE_ID_MEI · Local Address Data 2:0x01, READ_DEV_ID_BASIC · Local Address Data 3:0x00, Read Vendor Object UINT Limiti · Per ingressi Lettura bobina/Discreto: 2000 bit · Per Lettura registro: 125 parole · Per Scrittura bobina: 1968 bit · Per Scrittura registro: 123 parole Attivazione messaggio MSG_MODBUS Un messaggio Modbus può essere attivato periodicamente impostando il parametro TriggerType su un valore diverso da zero. La tabella seguente descrive il funzionamento del parametro tipo di trigger quando utilizzato con il blocco funzione MSG_MODBUS. Azione Il messaggio è abilitato. Il tempo impostato nel timer attivazione è esaurito prima del completamento del messaggio. Il messaggio viene completato prima che si esaurisca il tempo impostato nel timer attivazione. Risultati Il timer attivazione si attiva. Il messaggio è attivato immediatamente nel ciclo di scansione ladder successivo. Il messaggio è attivato quando il tempo impostato nel timer attivazione è esaurito. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 199 Capitolo 9 Istruzioni di comunicazione Esempio: attivazione messaggio Nell'esempio seguente il valore TriggerType è impostato su 100. Vedere anche MSG_MODBUS a pagina 196 Processo di esecuzione del messaggio (Rung = TRUE) 200 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Nel seguente diagramma dei processi sono descritti gli eventi relativi alle istruzioni dei messaggi che si verificano quando la condizione Rung è True. Coda Com: le richieste di messaggio aggiunte alla coda Com hanno un buffer allocato ed elaborato dall'attività di comunicazione. Il limite massimo per la coda è 4. Coda Attesa: i messaggi che non è possibile aggiungere alla coda Com sono aggiunti alla coda Attesa per la successiva elaborazione. Per la coda Attesa non è previsto un limite di dimensione massimo. Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 MSG_MODBUS a pagina 196 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 201 Capitolo 9 Istruzioni di comunicazione Tipo di dati MODBUSTARPARA Nella tabella seguente è descritto il tipo di dati MODBUSTARPARA. Parametri Addr Node Tipo di dati UDINT USINT Descrizione Indirizzo dati destinazione (1 - 65536). Diminuisce di uno durante l'invio. Il valore predefinito per l'indirizzo del nodo slave è 1. L'intervallo è 1 - 247. Zero è l'indirizzo di trasmissione Modbus ed è valido solo per comandi di scrittura Modbus (ad esempio, 5, 6, 15 e 16). Vedere anche MSG_MODBUS a pagina 196 MSG_MODBUS2 (messaggio MODBUS/TCP) Invia un messaggio MODBUS/TCP su un canale Ethernet. Dettagli operazione: · In una scansione è possibile elaborare un massimo di quattro richieste di messaggio per canale. Per le programmazioni in ladder diagram, le richieste di messaggio sono eseguite al termine di una scansione ladder. · Quando MSG_MODBUS2 è abilitato, i buffer di ricezione per le operazioni di lettura vengono cancellati sul fronte di salita di Enable. · Annullando l'esecuzione dell'istruzione MSG_MODBUS2 non è garantito che la richiesta di messaggio in uscita venga cancellata, ma la risposta non sarà elaborata. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro IN 202 Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Stato ingresso ramo. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: fronte di salita non rilevato, non attivo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Annulla Ingresso LocalCfg Ingresso TargetCfg Ingresso LocalAddr Ingresso Q Uscita Errore Uscita ErrorID SuberrorID Uscita Uscita StatusBits Uscita BOOL MODBUS2LOCPARA MODBUS2TARPARA MODBUSLOCADDR BOOL BOOL UINT UINT UINT Capitolo 9 Istruzioni di comunicazione TRUE: annulla l'esecuzione del blocco funzione. Annullando l'esecuzione dell'istruzione MSG_MODBUS2 non è garantito che la richiesta di messaggio in uscita venga cancellata, ma la risposta non sarà elaborata. FALSE: quando IN è TRUE. Input Annulla dominante. Definisce l'ingresso della struttura (dispositivo locale). Definire la struttura d'ingresso per il dispositivo locale utilizzando il tipo di dati MODBUS2LOCPARA. Definisce l'ingresso della struttura (dispositivo locale). Definire la struttura d'ingresso per il dispositivo di destinazione utilizzando il tipo di dati MODBUS2TARPARA. Tipo di dati MODBUSLOCADDR è un vettore a 125 parole. Utilizzo di LocalAddr: · Per i comandi di lettura, archiviare i dati (1-125 parole) restituiti dallo slave Modbus. · Per i comandi di scrittura, inserire nel buffer i dati (1-125 parole) da inviare allo slave Modbus. Gli output di questa istruzione sono aggiornati in modo asincrono rispetto alla scansione del programma. L'output Q non è utilizzabile per riattivare l'istruzione, in quanto IN viene attivato sul fronte. TRUE: istruzione MSG terminata con successo. FALSE: istruzione MSG non terminata. Indica un errore rilevato. TRUE: è stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti nei codici di errore Modbus2. Si utilizza per verificare i bit di stato: · Bit 0: EN: abilitazione · Bit 1: EW Attesa abilitazione · Bit 2: ST Avvio · Bit 3: ER Errore · Bit 4: DN Eseguito Gli altri bit sono riservati. Valore del codice di errore SubError quando Error è TRUE. Quando un MSG è attivato o riattivato, un SubErrorID impostato in precedenza viene cancellato. ID errore SubErrorID Codici di errore ed errore secondario MSG_MODBUS2 Quando è impostato il bit ER, i campi ErrorID e SubErrorID visualizzano i seguenti codici di errore. Descrizione 33 Errori relativi alla configurazione del parametro 32 Numero canale errato. 37 Numero di elementi errato. 38 Indirizzo dati errato. 55 Errori relativi al timeout 112 Timeout del messaggio durante l'attesa nella rispettiva coda. 113 Timeout del messaggio durante l'attesa di una connessione al livello del collegamento. 114 Timeout del messaggio durante l'attesa della trasmissione al livello del collegamento. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 203 Capitolo 9 69 208 209 210 217 222 255 129 130 131 132 133 134 136 137 Istruzioni di comunicazione 115 Timeout del messaggio durante l'attesa della risposta dal livello del collegamento. Codici degli errori relativi al formato di risposta del server Nessun indirizzo IP configurato per la rete. Numero massimo di connessioni utilizzate. Nessuna connessione disponibile. Indirizzo Internet o del nodo non valido. Esecuzione del messaggio annullata dall'utente. (Il parametro Cancel era impostato su TRUE.) Impossibile stabilire una connessione di rete prima del timeout. Il canale è in arresto oppure è in corso una riconfigurazione. Un codice di errore viene generato immediatamente dopo l'accensione, finché non si stabilisce una connessione. Si tratta di un comportamento normale. Può essere generato anche se un cavo Ethernet viene scollegato o se non è possibile rilevare un indirizzo IP. Codici di errore della risposta slave Codice di funzione non valido Indirizzo dati non valido Valore dati non valido Errore del server Conferma Conferma negativa Errore di parità in memoria Codice di errore della risposta non standard. Il codice di errore effettivo può trovarsi nel SubErrorID. Esempio di programmazione a blocchi funzionali MSG_MODBUS2 204 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Esempio di Diagramma ladder MSG_MODBUS2 Istruzioni di comunicazione Esempio di Testo strutturato MSG_MODBUS2 Vedere anche Istruzioni di comunicazione a pagina 179 Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Tipo di dati MODBUS2LOCPARA a pagina 205 Tipo di dati MODBUS2TARPARA a pagina 206 Tipo di dati MODBUS2LOCPARA Parametri Canale TriggerType Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati MODBUS2LOCPARA. Tipo di dati UINT UDINT Descrizione Numero della porta Ethernet locale: · 4 per la porta Ethernet integrata di Micro850 e Micro820. Tipo di attivazione messaggio: · 0: Msg attivato una volta (quando IN passa da False a True) · 1 - 65535: valore di attivazione ciclico in millisecondi. Messaggio attivato periodicamente, quando IN è True e l'esecuzione del messaggio precedente è stata completata. · Impostare il valore su 1 per attivare i messaggi il più rapidamente possibile. Vedere Attivazione messaggio MSG_MODBUS2. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 205 Capitolo 9 Istruzioni di comunicazione Cmd USINT ElementCnt UINT Comando Modbus: · 01: lettura stato della bobina (0xxxx) · 02: lettura stato ingresso (1xxxx) · 03: lettura registri di mantenimento (4xxxx) · 04: lettura registri ingresso (3xxxx) · 05: scrittura bobina singola (0xxxx) · 06: scrittura registro singolo (4xxxx) · 15: scrittura bobine multiple (0xxxx) · 16: scrittura registri multipli (4xxxx) · Altri: Supporto del comando personalizzato Supporto del comando personalizzato MODBUS2LOCPARA: Sono supportati anche i comandi personalizzati nell'intervallo 0-255 e non ancora assegnati a un comando Modbus. Se viene usato un comando personalizzato, LocalCfg:ElementCnt conterrà il numero di byte ricevuti. La risposta sarà ricevuta in Local Address Data e sovrascriverà i dati richiesti. Esempio per CMD=0x2B: · Local Address Data 1:0x0E, READ_DEVICE_ID_MEI · Local Address Data 2:0x01, READ_DEV_ID_BASIC · Local Address Data 3:0x00, Read Vendor Object Limiti · Per ingressi Lettura bobina/Discreto: 2000 bit · Per Lettura registro: 125 parole · Per Scrittura bobina: 1968 bit · Per Scrittura registro: 123 parole Attivazione messaggio MSG_MODBUS2 Un messaggio Modbus può essere attivato periodicamente impostando il parametro TriggerType su un valore diverso da zero. Nella tabella seguente viene descritto cosa accade se il parametro TriggerType viene utilizzato con il blocco funzione MSG_MODBUS2. Azione Il messaggio è abilitato. Il tempo impostato nel timer di attivazione scade prima del completamento del messaggio. Il messaggio viene completato prima che il tempo impostato nel timer di attivazione scada. Risultati Il timer attivazione si attiva. Il messaggio è attivato immediatamente nel ciclo di scansione ladder successivo. Il messaggio è attivato quando il tempo impostato nel timer attivazione è esaurito. Tipo di dati MODBUS2TARPARA Parametri Tipo di dati Addr UDINT Vedere anche MSG_MODBUS2 a pagina 202 Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati MODBUS2TARPARA. Descrizione Indirizzo dati Modbus del dispositivo di destinazione: · 1 - 65536. · Diminuisce di uno durante l'invio. · Il firmware usa low-word dell'indirizzo, se il valore dell'indirizzo è superiore a 65536. 206 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri NodeAddress[4] Porta UnitId MsgTimeOut ConnTimeOut ConnClose Tipo di dati USINT UINT USINT Descrizione Capitolo 9 Istruzioni di comunicazione Indirizzo IP del dispositivo di destinazione. L'indirizzo IP deve essere un indirizzo unicast valido e non 0, multicast, broadcast, locale o loopback (127.x.x.x). Ad esempio, per specificare 192.168.2.100: · NodeAddress[0]=192 · NodeAddress[1]=168 · NodeAddress[2]=2 · NodeAddress[3]=100 Numero della porta TCP di destinazione. La porta Modbus/TCP standard è 502. 1 - 65535 Impostare a 0 per utilizzare il valore predefinito 502 Identificatore unità. Utilizzato per comunicare con i dispositivi slave tramite bridge Modbus. Fare riferimento alle specifiche Modbus per maggiori dettagli. Tenere presente che Micro800 non deve tentare di convalidare questo valore. 0 - 255 Impostare su 255 se il dispositivo di destinazione non è un bridge. UDINT Timeout messaggio (in millisecondi). Il tempo di attesa di una risposta a un comando avviato. · 250-10.000 · Impostare su 0 per utilizzare il valore predefinito 3.000. · Un valore inferiore a 250 (valore minimo) viene impostato su 250. · Un valore superiore a 10.000 (valore massimo) viene impostato su 10.000. Vedere Timer per timeout messaggio Modbus/TCP. UDINT Timeout connessione TCP (in millisecondi). Tempo di attesa per la corretta esecuzione della connessione TCP al dispositivo di destinazione. · 250-10.000 · Impostare su 0 per utilizzare il valore predefinito 5.000. · Un valore inferiore a 250 (valore minimo) viene impostato su 250. · Un valore superiore a 10.000 (valore massimo) viene impostato su 10.000. Vedere Timer per timeout messaggio Modbus/TCP. BOOL Comportamento alla chiusura della connessione TCP. · True: chiude la connessione TCP al completamento del messaggio. · False: non chiude la connessione TCP al completamento del messaggio [impostazione predefinita]. Vedere Connessioni per messaggio Modbus/TCP. Timer per timeout messaggio Modbus/TCP La tabella seguente descrive il comportamento per MsgTimeOut e ConnTimeOut in base alle richieste e allo stato del messaggio. Azione Il messaggio è abilitato. È richiesta la connessione TCP. Il timer ConnMsgTimeout è attivo. La richiesta di connessione è completata. Risultati Attiva il timer MsgTimeOut. Attiva il timer ConnTimeOut. Disabilita il timer MsgTimeOut. Riattiva il timer MsgTimeOut. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 207 Capitolo 9 Istruzioni di comunicazione Connessioni per messaggio Modbus/TCP Il client Modbus/TCP supporta un massimo di 16 connessioni. Nella seguente tabella è descritto il comportamento della connessione Modbus/TCP. Scenario Risultati La richiesta di messaggio è abilitata e non esiste alcuna connessione con la destinazione. In mancanza di una connessione con la destinazione, viene stabilita una nuova connessione. Se esiste già una connessione con la destinazione, viene utilizzata la connessione esistente. L'esecuzione del messaggio è completata e ConnClose è impostato Se è presente solo una connessione alla destinazione, la connessione viene terminata. su True. Se sono presenti più connessioni alla destinazione, la connessione viene terminata al completamento dell'esecuzione dell'ultimo messaggio. L'esecuzione del messaggio è completata e ConnClose è impostato La connessione non viene terminata. su False. La connessione non è associata a un messaggio attivo e rimane inattiva per l'intervallo di tempo specificato nel parametro ConnTimeOut. La connessione viene terminata. Il controllore passa da una modalità di esecuzione (Esecuzione, Esecuzione remota, Scansione singola remota di test e piolo singolo remoto) a una di non esecuzione. Per tutte le connessioni attive viene forzata la chiusura. Vedere anche MSG_MODBUS2 a pagina 202 Processi di esecuzione di messaggi e diagrammi di temporizzazione Nei seguenti argomenti sono descritte la modalità e la tempistica di esecuzione delle istruzioni dei messaggi MSG_CIPGENERIC, MSG_CIPSYMBOLIC e MSG_MODBUS2 in base alle relative condizioni di rung e bit. · Processo di esecuzione del messaggio (generale) · Processo di esecuzione del messaggio (Rung = TRUE) · Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = True) · Processo di esecuzione del messaggio (Rung = FALSE) · Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = FALSE) · Processo di esecuzione di messaggi (errore) · Diagramma di temporizzazione dell'esecuzione del messaggio (errore) Vedere anche Istruzioni di comunicazione a pagina 179 MSG_MODBUS2 a pagina 202 MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 208 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Processo di esecuzione del messaggio (generale) Capitolo 9 Istruzioni di comunicazione Nel seguente diagramma sono illustrate la modalità e la tempistica dell'esecuzione dei messaggi in base allo stato della coda Com. Nella seguente tabella è descritta la sequenza di eventi identificata nel diagramma precedente. N. Descrizione degli eventi 1 Il messaggio è abilitato. Se la coda Com è vuota, il buffer è allocato per il messaggio e il messaggio viene aggiunto alla coda Com per la trasmissione. La dimensione della coda Com è 4. Ogni canale ha una coda distinta. 2 Se la coda Com è piena, il messaggio viene aggiunto alla coda Attesa. Non appena la coda Com si svuota, il messaggio viene aggiunto alla coda Com dalla coda Attesa. Non esiste un limite di dimensione per la coda Attesa. Ogni canale ha una coda distinta. 3 L'attività di comunicazione esegue i messaggi presenti nella coda Com a ogni Fine scansione per la trasmissione. Le code di ogni canale vengono elaborate una per volta con metodo round robin. Viene eseguito un messaggio per ciascun canale. Il processo continua fino all'esecuzione di tutti i messaggi o fino alla scadenza della comunicazione pianificata (10 ms). Come da pianificazione, nella successiva Fine scansione viene visualizzato per primo il canale successivo all'ultimo elaborato. Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 209 Capitolo 9 Istruzioni di comunicazione Processo di esecuzione del messaggio (Rung = TRUE) Nel seguente diagramma dei processi sono descritti gli eventi relativi alle istruzioni dei messaggi che si verificano quando la condizione Rung è True. Coda Com: le richieste di messaggio aggiunte alla coda Com hanno un buffer allocato ed elaborato dall'attività di comunicazione. Il limite massimo per la coda è 4. Coda Attesa: i messaggi che non è possibile aggiungere alla coda Com sono aggiunti alla coda Attesa per la successiva elaborazione. Per la coda Attesa non è previsto un limite di dimensione massimo. Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 MSG_MODBUS a pagina 196 210 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = TRUE) Capitolo 9 Istruzioni di comunicazione Nella seguente tabella sono descritte le condizioni dei messaggi e lo stato dei bit per ogni passo dell'esecuzione identificato nel diagramma di temporizzazione, finché la condizione Rung rimane True. Passo 1 2 3 Descrizione messaggio La condizione Rung passa a TRUE. L'esecuzione del messaggio è abilitata. Il buffer di controllo dei messaggi viene acquisito. A questo punto i dati di ingresso (vale a dire, il parametro "data" per i messaggi di scrittura) vengono copiati per la trasmissione. Le modifiche successive ai dati di ingresso non verranno applicate al messaggio trasmesso. Inizia la trasmissione del messaggio. 4 Viene ricevuta la risposta al messaggio. 5 La condizione Rung passa a FALSE. Stato dei bit Il bit EN è impostato. Tutti gli altri bit sono cancellati. Il bit EW è impostato. Il bit EW è cancellato. Il bit ST è impostato. Il bit ST è cancellato. Il bit DN è impostato. Il bit EN è cancellato. Diagramma di temporizzazione per (Rung = TRUE) Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 Processo di esecuzione del Nel seguente diagramma dei processi sono descritti gli eventi relativi alle istruzioni dei messaggi che si verificano quando la condizione messaggio (Rung = FALSE) Rung è False. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 211 Capitolo 9 Istruzioni di comunicazione Diagramma di temporizzazione dell'esecuzione del messaggio (Rung = FALSE) Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 Nella seguente tabella sono descritte le condizioni dei messaggi e lo stato dei bit per ogni passo dell'esecuzione identificato nel diagramma di temporizzazione, finché la condizione Rung rimane FALSE durante l'esecuzione. 212 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Passo 1 2 3 4 5 6 Descrizione messaggio Stato dei bit La condizione Rung passa a TRUE. L'esecuzione del messaggio è abilitata. Il bit EN è impostato. Tutti gli altri bit sono cancellati. La condizione Rung passa a FALSE. L'esecuzione del messaggio continua. Viene acquisito il buffer del messaggio. A questo punto i dati di ingresso (vale a dire, il parametro "data" per i messaggi di scrittura) vengono copiati per la trasmissione. Le modifiche successive ai dati di ingresso non verranno applicate al messaggio trasmesso. Inizia la trasmissione del messaggio. Il bit EW è impostato. Il bit EW è cancellato. Il bit ST è impostato. Viene ricevuta la risposta al messaggio. Il messaggio viene scansionato di nuovo dopo il passo 5. Il bit ST è cancellato. Il bit DN è impostato. Il bit EN è cancellato. Diagramma di temporizzazione per (Rung = FALSE) Processo di esecuzione di messaggi (errore) Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 Nella seguente tabella sono descritte le condizioni dei messaggi e lo stato dei bit per ogni passo dell'esecuzione identificato nel diagramma di temporizzazione, quando si verifica un errore durante l'esecuzione. Passo 1 2 Descrizione messaggio La condizione Rung passa a TRUE. L'esecuzione del messaggio è abilitata. Il buffer del messaggio viene acquisito. Stato dei bit Il bit EN è impostato. Tutti gli altri bit sono cancellati. Il bit EW è impostato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 213 Capitolo 9 Istruzioni di comunicazione Passo 3 4 4-6 Descrizione messaggio Inizia la trasmissione del messaggio. La trasmissione del messaggio entra in timeout. Con la condizione Rung passata a FALSE. Stato dei bit Il bit EW è cancellato. Il bit ST è impostato. I bit EW e ST non cambiano. Il bit EN è cancellato. Il bit ER è impostato. Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 Diagramma di temporizzazione dell'esecuzione del messaggio (errore) Il seguente diagramma di temporizzazione mostra un modello tipico di errore che si verifica durante l'esecuzione. Vedere anche Processi di esecuzione di messaggi e diagrammi di temporizzazione a pagina 208 Istruzioni di comunicazione a pagina 179 214 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Utilizzo dei blocchi funzione di comunicazione (messaggio) Capitolo 9 Istruzioni di comunicazione Questa sezione fornisce dettagli ed esempi specifici per l'utilizzo delle istruzioni di comunicazione nei programmi logici. Per esempi e dettagli sull'utilizzo dei blocchi funzione MSG_CIPGENERIC e MSG_CIPSYMBOLIC al fine di creare programmi, vedere i seguenti argomenti. Vedere anche Istruzioni di comunicazione a pagina 179 Configurazione dei valori dei dati oggetto per i messaggi espliciti a pagina 215 Esempio: Come creare un programma di generazione messaggi MSG_CIPGENERIC per leggere i dati da un controllore a pagina 217 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Esempio: Come configurare una comunicazione Modbus per la lettura da e la scrittura in una unità a pagina 236 Configurazione dei valori dei Per utilizzare il blocco funzione MSG_CIPGENERIC per la messaggistica esplicita, sarà necessario configurare il parametro dati oggetto per i messaggi AppCfg con i valori corretti. espliciti (MSG_CIPGENERIC) Per maggiori informazioni sulla comunicazione tramite messaggi Esistono diverse risorse informative sull'uso e sull'implementazione delle comunicazioni via messaggistica, inclusa la guida di Connected Components Workbench, i manuali utente e la Rockwell Automation Literature Library. Nella seguente tabella sono elencate ulteriori fonti di informazioni in merito alla comunicazione tramite messaggi. Fonte di informazioni Descrizione Come trovare le informazioni Manuale dell'utente per uno specifico dispositivo di comunicazione Adattatore EtherNet/IP 22-COMM-E FRN 1.xxx, appendice C Specifica EtherNet/IP Contiene informazioni importanti sulla messaggistica e informazioni specifiche per la configurazione dei blocchi funzione per i messaggi. Fornisce informazioni sugli oggetti EtherNet/IP accessibili utilizzando i messaggi espliciti. Definisce gli oggetti da includere in ogni dispositivo CIP: Oggetto Identity, oggetto Message Router e oggetto Network. Menu Guida Connected Components Workbench Menu Guida Connected Components Workbench Sito Web ODVA (http://www.odva.org) Controllori programmabili Micro800: Fornisce istruzioni rapide per l'utilizzo della messaggistica CIP Rockwell Automation Literature Library Guida introduttiva alla messaggistica generica e simbolica nei controllori a logica programmabile (PLC) client CIP Micro830 e Micro850. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 215 Capitolo 9 Istruzioni di comunicazione Per accedere ai manuali dell'utente e alle guide rapide: 1. Per accedere alle rapide guide, nel menu Guida , fare clic su Visualizza Guida. 2. Fare doppio clic su Connected Components Workbench. 3. Fare doppio clic su Guida introduttiva a Connected Components Workbench. 4. Per accedere ai manuali dell'unità, nel menu Guida, fare clic su Manuali dell'utente per visualizzare la finestra di dialogo dei manuali. 5. Fare clic sul segno più (+) accanto a Unità per espandere la categoria, quindi espandere la classe fino a individuare il manuale desiderato. 6. Fare doppio clic sul nome del manuale per aprire il file PDF. 7. Per accedere al manuale di EtherNet/IP, nel menu Guida, fare clic su manuali dell'utente per visualizzare la finestra di dialogo dei manuali. 8. Fare clic sul segno più (+) accanto a Unità per espandere la categoria, quindi espandere la classe Periferiche PowerFlex classe 4. 9. Fare doppio clic sul manuale dell'utente dell'adattatore EtherNet/IP 22-COMM-E per aprire il file PDF. Per accedere ai manuali da Rockwell Automation Literature Library: 1. Visitare http://literature.rockwellautomation.com. 2. Per accedere alle versioni in lingua diversa dall'inglese dei manuali dell'utente, selezionare la lingua dalla casella a discesa Lingua della pubblicazione (nell'angolo destro). 3. Nella casella Cerca, inserire il numero completo o parziale del catalogo del dispositivo. Ad esempio, inserire 2080-LC30 per visualizzare i manuali utente Micro830. 4. Nella casella Ricerca, digitare il numero di catalogo completo o parziale del dispositivo. Ad esempio, inserire 2080-LC30 per visualizzare i manuali utente Micro830. Dati dell'oggetto Registro CIP I blocchi funzione MSG_CIPGENERIC utilizzano i dati dell'oggetto Registro CIP nel parametro AppCfg. I dati dell'oggetto includono quanto segue: · Codice classe · Istanza · Attributo istanza · Servizio Valori per il parametro MSG_CIPGENERIC AppCfg Per configurare i parametri del blocco funzione MSG_CIPGENERIC, utilizzare i valori dell'oggetto registro CIP per le variabili di ingresso. 216 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione L'immagine seguente mostra i valori dei dati dell'oggetto registro CIP utilizzati nei parametri del blocco funzione MSG_CIPGENERIC. Vedere anche MSG_CIPGENERIC a pagina 182 Utilizzo dei blocchi funzione di comunicazione (messaggistica) a pagina 215 Esempio: Come creare un programma di generazione messaggi MSG_CIPGENERIC per leggere i dati da un controllore Nell'esempio è illustrata la modalità di creazione di un programma di generazione messaggi per recuperare le informazioni di catalogo del controllore B dal controllore A, utilizzando un blocco funzione MSG_CIPGENERIC e un blocco funzione COP. Per creare un programma di messaggistica MSG_CIPGENERIC utilizzabile per leggere le informazioni da un controllore diverso, eseguire le attività seguenti. No Attività 1 Identificazione dei valori iniziali per le variabili di ingresso (MSG_CIPGENERIC) a pagina 218 2 Aggiunta di variabili e di un blocco funzione MSG_CIPGENERIC a pagina 219 3 Configurazione dei valori iniziali per le variabili a pagina 220 4 Aggiunta di un contatto e di una bobina a pagina 222 5 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPGENERIC) a pagina 223 6 Verifica della corretta configurazione IP sul controllore B a pagina 225 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 217 Capitolo 9 Istruzioni di comunicazione Vedere anche Configurazione dei valori dei dati oggetto per i messaggi espliciti a pagina 215 Utilizzo dei blocchi funzione di comunicazione (messaggistica) a pagina 215 Identificazione dei valori iniziali per le variabili di input, MSG_CIPGENERIC Attenersi alla seguente procedura per aggiungere variabili di ingresso e valori iniziali e ottenere i valori di oggetto identità per configurare i valori iniziali del parametro AppCfg. Per aggiungere variabili di ingresso e valori iniziali: 1. Nel menu Guida, fare clic su Manuali utente. 2. Espandere Unità e individuare il manuale dell'utente relativo al tipo di adattatore di comunicazione in uso (Manuale dell'utente dell'adattatore EtherNet/IP). 3. Fare doppio clic sul manuale per aprirlo. 4. Consultare le intestazioni dell'Appendice per individuare la sezione contenente le informazioni sugli oggetti EtherNet/IP accessibili mediante i messaggi espliciti (Appendice C). 5. Consultare la sezione Appendice e individuare il tipo di oggetto relativo al messaggio esplicito (oggetto identità). 6. Identificare i valori iniziali dei parametri AppCfg in base al tipo di informazioni da recuperare. Esempio di variabile di ingresso MyAppCfg.Service Parametro AppCfg Servizio MyAppCfg.Class MyAppCfg.Instance MyAppCfg.Attribute Classe Istanza Attributo Esempio di dati dell'oggetto Ethernet/IP e dei parametri AppCfg Nella seguente tabella sono identificati i dati specifici dell'oggetto Ethernet/IP utilizzati per leggere le informazioni di catalogo da un controllore. Opzione dati dell'oggetto Ethernet/IP Codice servizio Descrizione Implementazione per classe = sì Implementazione per istanza = sì Ottenimento singolo attributo Codice classe Istanze Attributo istanza Classe oggetto EtherNet/IP = oggetto identità 22-COMM-E Ottenimento nome prodotto e classificazione come SHORT STRING Valore iniziale 14 (0x0E in esadecimale) 01 01 07 Vedere anche Aggiunta di variabili e di un blocco funzione per messaggi generici MSG_CIPGENERIC a pagina 219 Esempio: Come configurare i messaggi espliciti (MSG_CIPGENERIC) a pagina 217 218 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Aggiunta di variabili e di un blocco funzione MSG_CIPGENERIC Per aggiungere un blocco funzione MSG_CIPGENERIC per una Programmazione in Ladder Diagram, quindi aggiungere variabili di ingresso al blocco funzione, attenersi alla seguente procedura. Per aggiungere un blocco funzione MSG_CIPGENERIC: 1. Aggiungere un controllore: · Espandere la cartella Controllori e la cartella Micro850 per visualizzare tutti i controllori Micro850. · Fare doppio clic su un controllore (2080-LC50-24QVB) per aggiungerlo all'Organizzatore progetto. 2. Aggiungere un programma con ladder diagram: · Nell'Organizzatore progetto, fare clic con il pulsante destro del mouse su Programmi, scegliere Aggiungi, quindi fare clic su Nuovo LD: Ladder diagram. · Fare clic con il pulsante destro del mouse sull'icona del diagramma ladder nell'Organizzatore progetto, selezionare Rinominae digitare CIPExplicitMessage. · Fare doppio clic su Programmazione in Ladder Diagram nell' Organizzatore progetto per visualizzare la POU di LD nell'editor di lingue. 3. Aggiungere il blocco di funzione MSG_CIPGENERIC: · Nella Casella degli strumenti, selezionare il blocco istruzione, quindi trascinarlo e rilasciarlo nel ramo del ladder per visualizzare il Selettore blocco istruzione. · Nel campo di ricerca digitare MSG per visualizzare i blocchi di funzione per i messaggi. · Digitare MSG_ReadDrive nel campo Istanza. · Fare doppio clic su MSG_CIPGENERIC per aggiungere un'istanza del blocco di funzione al ladder diagram. 4. Aggiungere variabili di ingressi locali MSG_CIPGENERIC: · Nell'Organizzatore progetto, fare doppio clic su Variabili locali per visualizzare la pagina Variabili locali. · Nella pagina Variabili aggiungere le variabili e i tipi di dati elencati nella tabella. Parametri Nome variabile Tipo di dati CtrlCfg AppCfg MyCtrlCfg MyAppCfg CIPCONTROLCFG CIPAPPCFG TargetCfg ReqData ReqLength ResData MyTargetCfg MyReqData MyReqLength MyResData CIPTARGETCFG USINT UINT USINT (array) 5. Per la variabile MyResData fare doppio clic su Dimensione e modificare la dimensione dell'array su [1..81]. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 219 Capitolo 9 Istruzioni di comunicazione L'aspetto della pagina Variabili deve essere simile all'immagine raffigurata di seguito. Vedere anche Configurazione dei valori iniziali (MSG_CIPGENERIC) a pagina 220 Esempio: Come configurare i messaggi espliciti (MSG_CIPGENERIC) a pagina 217 Identificazione dei valori iniziali per le variabili di ingresso (MSG_CIPGENERIC) a pagina 218 Configurazione dei valori iniziali per le variabili Per aggiungere valori iniziali alle variabili di ingresso già create in precedenza e assegnarle al parametro di ingresso corretto del blocco funzione MSG_CIPGENERIC, attenersi alla seguente procedura. Per assegnare variabili a MSG_CIPGENERIC: 1. Per configurare i valori iniziali della variabile di ingresso MyCtrlCfg: · Nella pagina Variabili locali, espandere MyCtrlCfg per visualizzare i relativi parametri. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Parametri Valore iniziale Commenti MyCtrlCfg.Cancel Lasciare vuoto Non necessario. MyCtrlCfg.TriggerType 0 È necessario recuperare il numero di catalogo una sola volta. MyCtrlcfg.StrMode Lasciare vuoto Non necessario. 2. Per configurare i valori iniziali della variabile di ingresso MyAppCfg · Nella pagina Variabili locali, espandere MyAppCfg per visualizzare i relativi parametri. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Parametri Valore iniziale MyAppCfg.Service 14 MyAppCfg.Class 01 MyAppCfg.Instance 01 220 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri MyTargetCfg.Path MyTargetCfg.CipConnMode MyTargetCfg.UcmmTimeout MyTargetCfg.ConnMsgTimeout MyTargetCfg.ConnClose Capitolo 9 Istruzioni di comunicazione MyAppCfg.Attribute 07 3. Per configurare i valori iniziali della variabile di ingresso MyTargetCfg · Nella pagina Variabili locali, espandere MyTargetCfg per visualizzare i relativi parametri. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Valore iniziale Commenti "4,192.168.100.4" 0 vuoto vuoto FALSE Il primo "4" indica che il messaggio è inviato tramite la porta Ethernet integrata. 192.168.100.4 è l'indirizzo IP dell'interfaccia Ethernet del dispositivo. Per i messaggi CIP è preferibile impostarlo su Non connesso. I messaggi non connessi prevedono un timeout con impostazione predefinita di 3000 millisecondi, se i relativi Valori iniziali sono vuoti. I messaggi connessi prevedono un timeout con impostazione predefinita di 3000 millisecondi, se i relativi Valori iniziali sono vuoti. Per la messaggistica connessa la connessione CIP può essere chiusa immediatamente dopo il completamento dell'istruzione di messaggio, impostando il Valore iniziale su TRUE. I parametri nella pagina Variabili devono avere l'aspetto raffigurato nella seguente immagine. Parametri CtrlCfg AppCfg Destinazione ReqData ReqLength 4. Per assegnare variabili ai parametri · Nella POU del ladder diagram fare clic in cima al blocco di ingresso della variabile per aprire l'elenco a discesa con le variabili. · Dall'elenco, assegnare ogni parametro di ingresso alla relativa variabile di ingresso corretta, come indicato nella seguente tabella. Variabile di ingresso Commenti MyCtrlCfg MyAppCfg MyTargetCfg MyReqData MyReqLength Il numero di catalogo deve essere recuperato solo una volta, quindi il valore iniziale di MyCtrlCfg.TriggerType è impostato su 0. I valori iniziali sono stati determinati cercando i valori dei dati oggetto di Servizio, Classe, Istanza e Attributo. I valori iniziali servono per la configurazione del dispositivo di destinazione. Essendo un messaggio di lettura, non vi è richiesta di dati, pertanto i parametri ReqData non sono utilizzati. Essendo un messaggio di lettura, non vi è richiesta di dati, pertanto i parametri ReqLength non sono utilizzati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 221 Capitolo 9 Istruzioni di comunicazione ResData MyResData La stringa con il numero di catalogo è memorizzata nell'array con formato stringa breve ODVA. Il primo elemento dell'array definisce la lunghezza della stringa, gli altri rappresentano il valore esadecimale del carattere della stringa. Il numero massimo di caratteri è 80 più la lunghezza dell'elemento, quindi MyResData è definito come un array a 1 dimensione con 81 elementi. L'istanza del blocco funzione MSG_CIPGENERIC deve essere simile all'immagine mostrata di seguito. Vedere anche Aggiunta di variabili e di un blocco funzione per messaggi generici MSG_CIPGENERIC a pagina 219 Aggiunta di un contatto e di una bobina a pagina 222 Esempio: Come configurare i messaggi espliciti (MSG_CIPGENERIC) a pagina 217 Aggiunta di un contatto e di Attenersi ai passaggi seguenti per aggiungere una bobina e un contatto all'istruzione MSG_CIPGENERIC che converte le informazioni del una bobina catalogo in una stringa leggibile dall'utente. Per aggiungere una bobina a MSG_CIPGENERIC: 1. Nella casella degli strumenti, selezionare Contatto diretto, quindi trascinarlo e rilasciarlo a sinistra dell'ingresso con il blocco funzione MSG_CIPGENERIC sul primo piolo del ladder. 2. Nel selettore di variabili, digitare Get_Catalog nel campo Nome del contatto. 222 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione 3. Nella casella degli strumenti, selezionare Bobina diretta, quindi trascinarla e rilasciarla a destra dell'uscita con il blocco di funzione MSG_CIPGENERIC sul primo piolo del ladder. 4. Nel selettore di variabili, digitare Convert_String nel campo Nome della bobina. Il primo piolo del programma con ladder diagram per la messaggistica MSG_CIPGENERIC dovrebbe apparire come nella seguente immagine. Vedere anche Aggiunta di un blocco funzione COP, di variabili e contatti a pagina 223 Configurazione dei valori iniziali (MSG_CIPGENERIC) a pagina 220 Esempio: Come configurare i messaggi espliciti (MSG_CIPGENERIC) a pagina 217 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPGENERIC) Attenersi ai passaggi seguenti per aggiungere un blocco funzione COP, le variabili e un contatto. L'istruzione COP si utilizza per convertire i dati dal tipo di dati di origine (ad esempio DINT o REAL) al tipo di dati di destinazione. In questo esempio le informazioni sul catalogo vengono convertite in una stringa leggibile dall'utente. Per aggiungere un blocco funzione COP: 1. Nella Casella degli strumenti, selezionare il Ramo, quindi trascinarlo e rilasciarlo direttamente sotto il primo ramo del ladder per aggiungere un secondo ramo. 2. Aggiungere il blocco di funzione COP: · Nella Casella degli strumenti, selezionare Blocco, quindi trascinarlo e rilasciarlo nel secondo ramo del ladder per aprire il Selettore blocco istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 223 Capitolo 9 Istruzioni di comunicazione · Fare doppio clic su COP per aggiungere un'istanza del blocco di funzione al ladder diagram. 3. Aggiungere le variabili locali di ingresso per COP: · Nell'Organizzatore progetto, fare doppio clic su Variabili locali per visualizzare la pagina Variabili locali. · Nella pagina Variabili locali, aggiungere le variabili e i tipi di dati elencati nella seguente tabella. Parametri Nome variabile Tipo di dati Src SrcOffset MyResData 0 Array USINT UINT Dest DestOffset Lunghezza Swap CatalogID 0 1 FALSE Array STRING UINT UINT BOOLEAN 4. Per la variabile CatalogID, fare doppio clic su Dimensione e modificare la dimensione del vettore su [1..1] 5. Aggiungere un contatto: · Nella casella degli strumenti, selezionare Contatto diretto, quindi trascinarlo e rilasciarlo a sinistra dell'ingresso con il blocco di funzione COP sul secondo piolo del ladder. · Nel selettore di variabili, selezionare la variabile Convert_String per il contatto. Risultato Il secondo piolo del programma con ladder diagram per la messaggistica MSG_CIPGENERIC deve avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un contatto e di una bobina a pagina 222 224 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Verifica della corretta configurazione IP sul controllore B Capitolo 9 Istruzioni di comunicazione Configurazione dei valori iniziali (MSG_CIPGENERIC) a pagina 220 Verifica della corretta configurazione IP sul controllore B a pagina 225 Per verificare se le impostazioni relative all'indirizzo IP del controllore B sono corrette, attenersi alla seguente procedura. Per verificare l'indirizzo IP: 1. Aprire lo Spazio di Lavoro dell'applicazione di un controllore: 2. In Organizzatore progetto fare doppio clic sul controllore per aprire lo spazio di lavoro del controllore. 3. Nello Spazio di Lavoro del controllore, espandere Ethernet nella struttura ad albero del controllore, quindi fare clic su Protocollo IP per visualizzare la pagina di configurazione del controllore. 4. Verificare che le impostazioni relative all'indirizzo IP siano corrette, come indicato nella seguente tabella. Opzione di configurazione IP Valore Indirizzo IP 192.168.1.19 Subnet mask Indirizzo gateway 255.255.255.0 192.168.1.1 Risultati Le opzioni relative al Protocollo IP nella pagina di configurazione del controllore devono avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un blocco funzione COP, di variabili e contatti a pagina 223 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 225 Capitolo 9 Istruzioni di comunicazione Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto a pagina 230 Creazione di una variabile globale per il controllore B a pagina 233 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Esempio: Come creare un In questo esempio viene illustrato come creare un programma di generazione messaggi per scrivere un valore dal controllore A alla programma di generazione variabile globale del controllore B. messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore Per creare un programma di messaggistica MSG_CIPSYMBOLIC utilizzabile per scrivere un valore in una variabile globale su un controllore diverso, eseguire le operazioni seguenti. No Attività 1 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPSYMBOLIC) a pagina 227 2 Aggiunta di un operatore Equal e di una bobina a pagina 228 3 Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto a pagina 230 4 Verifica della corretta configurazione IP sul controllore B a pagina 225 5 Creazione di una variabile globale per il controllore B a pagina 233 6 Revisione dei risultati del programma completo a pagina 234 Vedere anche Utilizzo dei blocchi funzione di comunicazione (messaggistica) a pagina 215 226 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Aggiunta di un blocco funzione COP, di variabili e di un contatto (MSG_CIPSYMBOLIC) Capitolo 9 Istruzioni di comunicazione L'istruzione COP si utilizza per convertire i dati immessi nel tipo di dati di destinazione, in modo che sia compatibile con la variabile del controllore. Per aggiungere un blocco funzione COP: 1. Aggiungere un controllore: · Espandere la cartella Controllori e la cartella Micro850 per visualizzare tutti i controllori Micro850. · Fare doppio clic su un controllore (2080-LC50-24QVB) per aggiungerlo all'Organizzatore progetto. 2. Aggiungere un programma con ladder diagram: · Nell'Organizzatore progetto, fare clic con il pulsante destro del mouse su Programmi, scegliere Aggiungi, quindi fare clic su Nuovo LD: Ladder diagram. · Fare clic con il pulsante destro del mouse sull'icona del diagramma ladder nell'Organizzatore progetto, selezionare Rinominae digitare CIPSymbolicMessage. · Fare doppio clic su Programmazione in Ladder Diagram nell' Organizzatore progetto per visualizzare la POU di LD nell'editor di lingue. 3. Aggiungere un blocco di funzione COP: · Nella Casella degli strumenti, selezionare Blocco istruzione, quindi trascinarlo e rilasciarlo nel primo ramo del ladder per aprire il Selettore blocco istruzione. · Nel campo di ricerca digitare COP e fare doppio clic su COP per aggiungere un'istanza del blocco di funzione al ladder diagram. 4. Aggiungere variabili COP e valori iniziali: · Nella POU del diagramma ladder, fare doppio clic su Variabili locali per aprire la pagina Variabili locali. · Nella pagina Variabili aggiungere le variabili e i tipi di dati elencati nella tabella riportata di seguito. 5. Creare array: · Per ValueToWrite, fare doppio clic su Dimensione e modificare la dimensione del vettore su [1..1]. · Per A_Data, fare doppio clic su Dimensione e modificare la dimensione del vettore su [1..4]. 6. Immettere i dati dalla colonna Valore della tabella riportata di seguito nel campo Valore iniziale di ciascuna variabile. 7. Aggiungere un contatto: · Nella Casella degli strumenti, selezionare Contatto diretto, quindi trascinarlo e rilasciarlo a sinistra dell'ingresso del blocco funzione COP sul primo ramo del ladder. · Nel Selettore di variabili, assegnare al contatto una variabile denominata Convert_Data. Utilizzare le variabili definite nella tabella per il blocco funzione COP. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 227 Capitolo 9 Istruzioni di comunicazione Parametri Src SrcOffset Dest DestOffset Nome variabile ValueToWrite 0 A_Data 0 Tipo di dati Array UDINT Valore iniziale: 987654321 UINT Array USINT UINT Lunghezza Swap STS 4 TRUE COPsts UINT BOOLEAN Array UINT Il primo piolo del programma ladder diagram per la messaggistica MSG_CIPSYMBOLIC deve avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un operatore Equal e di una bobina a pagina 228 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Aggiunta di un operatore Equal e di una bobina L'istruzione Equal si utilizza per attivare un valore di scrittura, se la conversione del tipo di dati è eseguita correttamente. Per aggiungere un operatore Equal (=), variabili e una bobina, attenersi alla seguente procedura. 228 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Per aggiungere un operatore Equal: 1. Nella Casella degli strumenti, selezionare il Ramo, quindi trascinarlo e rilasciarlo direttamente sotto il primo ramo del ladder per aggiungere un secondo ramo. 2. Aggiungere un operatore Equal: · Nella Casella degli strumenti, selezionare Blocco istruzione, quindi trascinarlo e rilasciarlo nel secondo ramo del ladder per aprire il Selettore blocco istruzione. · Nel campo di ricerca digitare il segno "=" e fare doppio clic su "=" per aggiungere un'istanza dell'operatore al ladder diagram. 3. Per aggiungere variabili Equal: · Nella POU del Diagramma ladder, fare doppio clic su una variabile per visualizzare il Selettore di variabili. · Nel Selettore di variabili, assegnare i nomi delle variabili, come elencato nella seguente tabella. Parametri Nome variabile i1 COPsts i2 1 4. Per aggiungere una bobina a un operatore Equal: Nella Casella degli strumenti, selezionare Bobina diretta, quindi trascinarla e rilasciarla a destra dell'uscita dell'operatore Equal sul secondo ramo del ladder. Nel selettore di variabili, digitare WriteValue nel campo Nome della bobina. Il secondo piolo del programma con ladder diagram per la messaggistica MSG_CIPGENERIC deve avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un blocco di funzione COP, di variabili e di un contatto a pagina 227 Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto a pagina 230 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 229 Capitolo 9 Istruzioni di comunicazione Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto Per aggiungere un blocco di funzione MSG_CIPSYMBOLIC, le variabili di ingresso e un contatto a un diagramma ladder, attenersi alla seguente procedura. Per aggiungere blocco funzione e variabili: 1. Nella casella degli strumenti selezionare il Ramo, quindi trascinarlo e rilasciarlo direttamente sotto il secondo ramo del ladder per aggiungere un terzo ramo. 2. Aggiungere il blocco di funzione MSG_CIPSYMBOLIC: · Nella casella degli strumenti selezionare il blocco istruzione, quindi trascinarlo e rilasciarlo nel ramo del ladder per aprire il Selettore di blocco istruzione. · Nel campo di ricerca digitare MSG per visualizzare i blocchi di funzione per i messaggi. · Digitare MSG_WriteVariable nel campo Istanza. · Fare doppio clic su MSG_CIPSYMBOLIC per aggiungere un'istanza del blocco di funzione denominato MSG_WriteVariable al ladder diagram. 3. Assegnare nomi di variabili: · Nella POU del Diagramma ladder, fare doppio clic su una variabile per visualizzare il Selettore di variabili. · Nel Selettore di variabili, assegnare i nomi delle variabili, come elencato nella seguente tabella. 4. Per la variabile Data, fare doppio clic su Dimensione e modificare la dimensione del vettore su [1...4]. 5. Configurare i valori iniziali per le variabili locali, aggiungere i valori iniziali CtrlCfg: · Nella pagina Variabili locali espandere il parametro CtrlCfg per visualizzare parametri aggiuntivi. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Parametri Valore iniziale A_CtrlCfg.Cancel Lasciare vuoto A_CtrlCfg.TriggerType A_Ctrlcfg.StrMode 300 Lasciare vuoto 6. Aggiungere valori SymCfg iniziali: · Nella pagina Variabili locali espandere il parametro SymCfg per visualizzare parametri aggiuntivi. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Parametri Valore iniziale A_SymCfg.Service 1 A_SymCfg.Symbol A_SymCfg.Count A_SymCfg.DataType A_SymCfg.Offset 'UDINT_FromA' Lasciare vuoto 200 Lasciare vuoto 230 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Il Selettore di variabili locali deve avere l'aspetto raffigurato nella seguente immagine. 7. Configurazione dei valori iniziali per TargetCfg · Nella POU del ladder diagram fare doppio clic sulla variabile A_TarCfg per aprire il selettore di variabili globali. · Espandere il parametro TargetCfg per visualizzare parametri aggiuntivi. · Immettere i seguenti valori nella colonna Valore iniziale di ciascun parametro. Parametri Valore iniziale A_TarCfg.Path '4,192.168.1.19' A_TarCfg.CipConnMode A_TarCfg.UcmmTimeout A_TarCfg.ConnMsgTimeout A_TarCfg.ConnClose 1 0 0 Lasciare vuoto Il selettore di variabili globali create dall'utente deve avere l'aspetto raffigurato nella seguente immagine. 8. Aggiungere un contatto: · Nella Casella degli strumenti, selezionare Contatto diretto, quindi trascinarlo e rilasciarlo a sinistra dell'ingresso del blocco funzione MSG_CIPSYMBOLIC sul terzo ramo del ladder. · Nel Selettore di variabili, assegnare la variabile WriteValue al contatto. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 231 Capitolo 9 Istruzioni di comunicazione Il terzo piolo del programma ladder diagram per la messaggistica MSG_CIPSYMBOLIC deve avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un operatore Equal e di una bobina a pagina 228 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Verifica della corretta configurazione IP sul controllore B a pagina 225 Verifica della corretta configurazione IP sul controllore B Per verificare se le impostazioni relative all'indirizzo IP del controllore B sono corrette, attenersi alla seguente procedura. Per verificare l'indirizzo IP: 1. Aprire lo Spazio di Lavoro dell'applicazione di un controllore: 2. In Organizzatore progetto fare doppio clic sul controllore per aprire lo spazio di lavoro del controllore. 3. Nello Spazio di Lavoro del controllore, espandere Ethernet nella struttura ad albero del controllore, quindi fare clic su Protocollo IP per visualizzare la pagina di configurazione del controllore. 4. Verificare che le impostazioni relative all'indirizzo IP siano corrette, come indicato nella seguente tabella. Opzione di configurazione IP Valore Indirizzo IP Subnet mask Indirizzo gateway 192.168.1.19 255.255.255.0 192.168.1.1 Risultati 232 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Le opzioni relative al Protocollo IP nella pagina di configurazione del controllore devono avere l'aspetto raffigurato nella seguente immagine. Vedere anche Aggiunta di un blocco funzione COP, di variabili e contatti a pagina 223 Aggiunta di un blocco funzione MSG_CIPSYMBOLIC, di variabili e di un contatto a pagina 230 Creazione di una variabile globale per il controllore B a pagina 233 Esempio: Come creare un programma di generazione messaggi MSG_CIPSYMBOLIC per scrivere i dati in un controllore a pagina 226 Creazione di una variabile Per creare una variabile globale per il controllore B, attenersi alla seguente procedura. globale per il controllore B Per creare una variabile globale: 1. Nell'Organizzatore progetto, fare doppio clic su Variabili globali per visualizzare il selettore di variabili globali. 2. Immettere UDINT_FromA nella colonna Nome. 3. Configurare gli altri parametri: · Verificare che il tipo di dati sia UDINT. · Verificare che l'attributo di lettura/scrittura sia selezionato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 233 Capitolo 9 Istruzioni di comunicazione Il selettore di variabili globali deve avere l'aspetto raffigurato nella seguente immagine. Vedere anche Verifica della corretta configurazione IP sul controllore B a pagina 225 Revisione dei risultati del programma completo a pagina 234 Revisione dei risultati del programma completo Nell'esempio seguente è illustrato il programma di messaggistica MSG_CIPSYMBOLIC completo dopo la sua esecuzione. 234 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione Risultati controllore B Le due immagini seguenti mostrano i valori del controllore B prima e dopo l'esecuzione del programma di messaggistica. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 235 Capitolo 9 Istruzioni di comunicazione Prima dell'esecuzione del programma Dopo l'esecuzione del programma Vedere anche Creazione di una variabile globale per il controllore B a pagina 233 Esempio: Come configurare una comunicazione Modbus per la lettura da e la scrittura in una unità Questi esempi descrivono come configurare le comunicazioni Modbus per leggere i dati dello stato da una unità PowerFlex 4 e scrivervi i dati di controllo utilizzando il blocco istruzione MSG_MODBUS. Cablaggio Micro830 Questo esempio usa un controllore Micro830 con modulo SERIALISOL collegato nel primo slot (Canale 5). È collegato un PowerFlex 40 236 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 9 Istruzioni di comunicazione singolo, ma il diagramma seguente mostra come cablare per multi-drop. Per maggiori informazioni sul cablaggio, fare riferimento al manuale utente. Esempio di lettura Modbus La seguente istruzione MSG_MODBUS può essere usata per leggere i dati dello stato dall'unità PowerFlex 40. Stato dell'unità Il valore "1807" indica che l'unità è · Pronta (bit 0 ON) · Attiva (bit 1 ON) · Marcia av. coman. (bit 2 ON) · Rotaz. avanti (bit 3 ON) · Stato di alcuni ingressi digitali dell'unità Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 237 Capitolo 9 Istruzioni di comunicazione Il valore "278" indica 27,8 Hz. Per maggiori informazioni sui bit della parola stato logico, sulle descrizioni dei codici di errore, sulle velocità effettive e comandate e altri codici di stato, fare riferimento al manuale utente PowerFlex. Configurazione lettura MSG_MODBUS Nell'immagine seguente sono illustrate le opzioni relative al blocco di istruzioni MSG_MODBUS usato per leggere i dati dello stato dall'unità PowerFlex 40. Variabile *.Channel *.TriggerType *.Cmd *.ElementCnt *.Addr *.Node *_laddr[1] *_laddr[2] *_laddr[3] *_laddr[4] Variabili lettura MSG_MODBUS Nella seguente tabella sono riportate le variabili e i valori utilizzati per configurare l'istruzione MSG_MODBUS in modo tale da leggere i dati dello stato dall'unità PowerFlex 40. Valore 5 0 3 4 8449 2 {data} {data} {data} {data} Descrizione Canale 5: posizione del modulo SERIALISOL Trigger per transizioni da False a True Codice funzione Modbus "03": lettura registri di mantenimento Lunghezza Indirizzo parola stato logico PowerFlex + 1 Indirizzo nodo PowerFlex Parola stato logico PowerFlex Codice di errore PowerFlex Velocità comandata PowerFlex (riferimento velocità) Feedback velocità PowerFlex (velocità effettiva) 238 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di istruzione MOV Capitolo 9 Istruzioni di comunicazione Nella seguente immagine è illustrato un esempio d'uso dell'istruzione MOV per spostare il valore dell'array *_l[1] in una parola, in modo tale da accedere direttamente ai bit individuali. Esempio di scrittura Modbus La seguente istruzione MSG_MODBUS consente di scrivere i dati di controllo nell'unità PowerFlex 40. Configurazione scrittura MSG_MODBUS Nella seguente immagine sono illustrate le variabili e i valori utilizzati per configurare l'istruzione MSG_MODBUS in modo tale da scrivere i dati di controllo nell'unità PowerFlex 40. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 239 Capitolo 9 Istruzioni di comunicazione Variabili di scrittura MSG_MODBUS La tabella seguente elenca le variabili con i relativi valori e ne descrive lo scopo. Variabile *.Channel *.TriggerType *.Cmd *.ElementCnt *.Addr *.Node *_laddr[1] *_laddr[2] Valore 5 0 16 2 8193 2 {data} {data} Descrizione Canale 5: posizione del modulo SERIALISOL Trigger per transizioni da False a True Codice funzione Modbus "16": scrittura registri di mantenimento Lunghezza Indirizzo parola stato logico PowerFlex + 1 Indirizzo nodo PowerFlex Parola comando logico PowerFlex Parola riferimento velocità PowerFlex Vedere anche MSG_MODBUS a pagina 196 Utilizzo dei blocchi funzione di comunicazione (messaggistica) a pagina 215 Supporto per protocolli di comunicazione Protocollo di messaggistica Server e client Modbus/RTU Server e client Modbus/TCP Server e client Ethernet IP Server e client CIP seriale ASCII I blocchi funzione MSG_CIP supportano diversi protocolli di comunicazione, come descritto in questa sezione. Supporto del blocco funzione per i protocolli di comunicazione dei messaggi. Supporto per comunicazione Utilizzare questo blocco funzione Tramite una porta seriale configurata come MSG_MODBUS a pagina 196 Modbus RTU. Tramite Ethernet, invece di una porta seriale. MSG_MODBUS2 a pagina 202 Mediante un canale Ethernet integrato. MSG_CIPSYMBOLIC a pagina 191 MSG_CIPGENERIC a pagina 182 Cavo Ethernet o seriale. MSG_CIPSYMBOLIC a pagina 191 Tramite una porta RS-232 configurata con un Vedere le istruzioni della porta seriale ASCII. driver ASCII. Modbus RTU Modbus è un protocollo per le comunicazioni master-slave, half-duplex che permette a un singolo master di comunicare con un massimo di 247 dispositivi slave. Il master di rete Modbus legge e scrive i bit e i registri. Modbus RTU è supportato configurando la porta seriale come Modbus RTU. Per maggiori informazioni sul protocollo Modbus, fare riferimento alle relative specifiche, disponibili all'indirizzo http://www.modbus.org. 240 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Modbus/TCP Capitolo 9 Istruzioni di comunicazione Il protocollo di comunicazione server Modbus/TCP utilizza le stesse funzioni di mapping Modbus di Modbus RTU, ma è supportato via Ethernet, anziché tramite una porta seriale. Il controllore Micro850 supporta fino a 16 connessioni server Modbus/TCP simultanee. L'unica configurazione di protocollo richiesta è quella della tabella di mapping Modbus. EtherNet/IP I controllori Micro820 e Micro850 supportano fino a 16 connessioni server EtherNet/IP simultanee tramite un canale di comunicazione Ethernet integrato. Questo canale consente di connettere un controllore Micro850 a vari dispositivi tramite una rete locale con velocità di trasferimento 10 Mbps/100 Mbps. Common Industrial Protocol (CIP) Il protocollo CIP è un protocollo di trasporto, a livello di applicazione, impiegato per la messaggistica su reti EtherNet/IP, ControlNet e DeviceNet. Questo protocollo permette di connettere facilmente i moduli HMI a un controllore Micro830 o Micro850. Messaggistica esplicita CIP Per la messaggistica esplicita si utilizza il protocollo CIP. La messaggistica esplicita (configurazione, raccolta dati e diagnostica) serve a trasferire i dati che non richiedono l'aggiornamento costante. La messaggistica esplicita è supportata con la messaggistica CIP client generica mediante il blocco funzione MSG_CIPGENERIC e con la messaggistica CIP client simbolica mediante il blocco funzione MSG_CIPSYMBOLIC. CIP seriale Il CIP seriale utilizza il protocollo Full-Duplex DF1 e fornisce una connessione da punto a punto tra due dispositivi. Combina la trasparenza dei dati (specifica American National Standards Institute, ANSI - X3.28-1976 sottocategoria D1) e la trasmissione simultanea a 2 vie con risposte integrate (sottocategoria F1) I controllori Micro830 e Micro850 supportano il CIP seriale tramite una connessione RS-232 ai dispositivi esterni, quali computer con software RSLinx Classic in esecuzione, terminali del componente PanelView (revisioni del firmware 1.70 e successive) o altri controllori che supportano il CIP seriale via DF1 full-duplex, come i controllori ControlLogix e CompactLogix dotati di porte seriali integrate. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 241 Capitolo 9 Istruzioni di comunicazione Il driver della porta seriale può essere configurato come CIP seriale, Modbus RTU, ASCII o Shutdown tramite la struttura di configurazione del dispositivo. Vedere anche Istruzioni porta seriale ASCII a pagina 111 Canali di comunicazione integrati a pagina 242 Canali di comunicazione integrati I controllori Micro820, Micro830 e Micro850 dispongono dei seguenti canali di comunicazione aggiuntivi integrati: · Una porta combinata RS-232/485 non isolata · Una porta di programmazione USB non isolata (solo Micro830 e Micro850) · Una porta Ethernet RJ-45 (solo Micro820 e Micro850) Vedere anche Supporto per protocolli di comunicazione a pagina 240 242 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni per il confronto Capitolo 10 Istruzione Utilizzare le istruzioni Compare per confrontare i valori Integer, Real, Time, Date e String utilizzando un'espressione o un'istruzione di confronto specifica. Descrizione (=) Equal a pagina 243 (>) Greater Than a pagina 246 (>=) Greater Than or Equal a pagina 247 (<) Less Than a pagina 249 (<=) Less Than or Equal a pagina 250 (<>) Not Equal a pagina 251 Confronta il primo ingresso con il secondo per stabilire l'uguaglianza. Per i tipi di dati Integer, Real, Time, Date e String. Confronta i valori di ingresso per determinare se il primo è maggiore del secondo. Confronta i valori di ingresso per determinare se il primo è maggiore o uguale al secondo. Confronta i valori di ingresso per determinare se il primo è minore del secondo. Confronta i valori di ingresso per determinare se il primo è minore o uguale al secondo. Confronta i valori di ingresso per determinare se il primo non è uguale al secondo. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Uguale Esegue il confronto tra il primo ingresso e il secondo per stabilire l'uguaglianza di tipi di dati Integer, Real, Time, Date e String. Dettagli operazione: · La prova di uguaglianza dei valori Time non è raccomandata per i blocchi istruzione TON, TP e TOF. · Il tipo di dati Real è sconsigliato durante il confronto dei valori per l'uguaglianza, poiché i numeri nell'operazione matematica sono arrotondati in maniera diversa rispetto a quelli visualizzati sul display di Uscita delle variabili. Di conseguenza, due valori di uscita possono sembrare uguali sul display, tuttavia la valutazione risulterà comunque falsa. Ad esempio, dal confronto di 23,500001 con 23,499999, entrambi vengono visualizzati come 23,5 sul display di ingresso delle variabili, ma nel controllore non saranno uguali. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 243 Capitolo 10 Istruzioni per il confronto Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 i2 o1 244 Tipo di parametro Ingresso Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL Abilitare funzione. TRUE: esegue il confronto di uguaglianza. FALSE: il confronto non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Tutti gli ingressi devono essere dello stesso tipo di dati. L'inserimento del valore Durata si applica ai linguaggi Testo strutturato, Diagramma ladder e Programmazione a blocchi funzionali. il tipo di dati Real non è raccomandato. TRUE se i1 = i2. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 10 Istruzioni per il confronto Esempio di confronto dei valori reali mediante sottrazione (-) ABS e Less than (<) Il tipo di dati Reale non è consigliabile per confrontare l'uguaglianza dei valori a causa delle differenze nell'arrotondamento dei numeri. Due valori di uscita potrebbero sembrare uguali su un display Connected Components Workbench, ma comunque valutati come false. Ad esempio, 23,500001 e 23,499999 saranno visualizzati entrambi come 23,5 in sul display di ingresso delle variabili, tuttavia nel controllore non saranno uguali. Per verificare se due dati di tipo reale sono uguali, è possibile usare l'istruzione Sottrazione per ottenere la differenza tra i valori e quindi determinare se la differenza è inferiore a un valore con precisione stabilita. Vedere l'esempio seguente di programma LD per il confronto tra i valori di due dati di tipo reale. Esempio di testo strutturato Equal (=) (* Equivalenza ST: *) aresult := (10 = 25); (* aresult è FALSE *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 245 Capitolo 10 Istruzioni per il confronto mresult := ('ab' = 'ab'); (* mresult è TRUE *) Vedere anche Istruzioni per il confronto a pagina 243 Greater than Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è maggiore del secondo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING Abilitazione istruzioni. TRUE: esegue il confronto dell'ingresso. FALSE: il confronto non viene eseguito. Applicabile solo alle programmazioni in Ladder Diagram. Tutti gli ingressi devono essere dello stesso tipo di dati. 246 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 i2 Ingresso SINT USINT - BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita BOOL Capitolo 10 Istruzioni per il confronto TRUE se i1 > i2. Esempio di Testo strutturato maggiore di (>) (* Equivalenza ST: *) aresult := (10 > 25); (* aresult è FALSE *) mresult := ('ab' > 'a'); (* mresult è TRUE *) Vedere anche Istruzioni per il confronto a pagina 243 Greater than or equal Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è maggiore o uguale al secondo. Per TON, TP e TOF, la prova di uguaglianza dei valori Time non è consigliata. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 247 Capitolo 10 Parametri EN i1 i2 o1 Istruzioni per il confronto Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitazione istruzioni. TRUE: esegue il confronto dell'ingresso. FALSE: il confronto non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Uscita SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL Tutti gli ingressi devono essere dello stesso tipo di dati. L'inserimento del valore Durata si applica ai linguaggi Testo strutturato, Diagramma ladder e Programmazione a blocchi funzionali. TRUE se i1 >= i2. Esempio di Testo strutturato maggiore o uguale (> =) (* Equivalenza ST: *) aresult := (10 >= 25); (* aresult è FALSE *) mresult := ('ab' >= 'ab'); (* mresult è TRUE *) Vedere anche Istruzioni per il confronto a pagina 243 248 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Less than Capitolo 10 Istruzioni per il confronto Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è inferiore al secondo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN i1 Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING Descrizione Abilitazione istruzioni. TRUE: esegue il confronto dell'ingresso. FALSE: il confronto non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Tutti gli ingressi devono essere dello stesso tipo di dati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 249 Capitolo 10 i2 o1 Istruzioni per il confronto Ingresso Uscita SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL TRUE se i1 < i2. Esempio di testo strutturato minore di (>) (* Equivalenza ST: *) aresult := (10 < 25); (* aresult è TRUE *) mresult := ('z' < 'B'); (* mresult è FALSE *) (* Equivalenza IL: *) LD 10 LT 25 ST aresult LD 'z' LT 'B' ST mresult Vedere anche Istruzioni per il confronto a pagina 243 Less than or equal Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo è inferiore o uguale al secondo. Per TON, TP e TOF, la prova di uguaglianza dei valori Time non è consigliata. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 250 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 10 Istruzioni per il confronto Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN i1 i2 o1 Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL SINT - USINT - BYTE - INT UINT - WORD - DINT - UDINT DWORD - LINT - ULINT - LWORD - REAL - LREAL - TIME - DATE STRING Abilitazione istruzioni. TRUE: esegue il confronto dell'ingresso. FALSE: il confronto non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Tutti gli ingressi devono essere dello stesso tipo di dati. L'inserimento del valore Durata si applica ai linguaggi Testo strutturato, Diagramma ladder e Programmazione a blocchi funzionali. Ingresso Uscita SINT - USINT - BYTE - INT UINT - WORD - DINT - UDINT DWORD - LINT - ULINT - LWORD - REAL - LREAL - TIME - DATE STRING BOOL TRUE se i1 <= i2. Esempio di testo strutturato minore o uguale (> =) (* Equivalenza ST: *) aresult := (10 <= 25); (* aresult è TRUE *) mresult := ('ab' <= 'ab'); (* mresult è TRUE *) Vedere anche Istruzioni per il confronto a pagina 243 Not equal Per i valori Integer, Real, Time, Date e String, confronta i valori di ingresso per stabilire se il primo non è uguale al secondo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 251 Capitolo 10 Istruzioni per il confronto Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 i2 o1 252 Tipo di parametro Ingresso Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING BOOL Abilitazione istruzioni. TRUE: esegue il calcolo di confronto corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Tutti gli ingressi devono essere dello stesso tipo di dati. TRUE: se il primo <> secondo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 10 Esempio di Testo strutturato Not equal (<>) Istruzioni per il confronto (* Equivalenza ST: *) aresult := (10 <> 25); (* aresult è TRUE *) mresult := ('ab' <> 'ab'); (* mresult è FALSE *) Vedere anche Istruzioni per il confronto a pagina 243 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 253 Istruzioni contatore Capitolo 11 Istruzione CTD a pagina 255 CTU a pagina 257 CTUD a pagina 259 Utilizzare le istruzioni contatore per controllare le operazioni in base al numero di eventi. Descrizione Conta gli Integer da un valore dato fino a 0, 1 a 1. Conta gli Integer da 0 fino a un valore dato, 1 a 1. Conta gli Integer da 0 fino a un valore dato, 1 a 1, o da un valore dato a 0, 1 a 1. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 CTD (conteggio decrescente) Conta gli Integer da un valore dato fino a 0, 1 a 1. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro CD LOAD PV Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Esegue il conteggio decrescente. TRUE: fronte di salita rilevato, conteggio decrescente con incrementi di uno. FALSE: fronte di discesa rilevato, tenere premuto il valore del contatore con lo stesso valore. Ingresso Ingresso BOOL Carica verifica il valore PV rispetto al valore del conteggio decrescente. TRUE - set CV=PV. FALSE: continua incrementando il conteggio decrescente di uno. DINT Valore massimo programmato del contatore. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 255 Capitolo 11 Istruzioni contatore Q Uscita BOOL CV Uscita DINT Indica se l'istruzione del conteggio decrescente ha generato un numero minore o uguale al valore massimo del contatore. TRUE: risultato contatore < = 0 (condizione di Underflow). FALSE: risultato contatore >0. Valore del contatore corrente. Esempio di programmazione a blocchi funzionali CTD Esempio di Diagramma ladder CTD Esempio di testo strutturato CTD (*Equivalenza ST: CTD1 è un'istanza del blocco *) CTD1(trigger,load_cmd,100); underflow := CTD1.Q; result := CTD1.CV; 256 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 11 Istruzioni contatore Vedere anche Istruzioni contatore a pagina 255 CTU (conteggio crescente) CTU conta (numeri interi) da 0 fino a un valore dato, 1 a 1. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro CU RESET PV Q CV Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Esegue il conteggio crescente. TRUE: fronte di salita rilevato, conteggio crescente con incrementi di uno. FALSE: fronte di discesa rilevato, tenere premuto il valore del contatore con lo stesso valore. BOOL Reset verifica il valore PV rispetto al valore del conteggio crescente. TRUE: imposta il valore CV a zero. FALSE: continuare incrementando il conteggio crescente di uno. DINT Valore massimo programmato del contatore. BOOL Indica se l'istruzione del conteggio crescente ha generato un numero maggiore o uguale al valore massimo del contatore. TRUE: risultato contatore =>PV (condizione di Overflow). FALSE: risultato contatore < PV DINT Risultato del contatore corrente. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 257 Capitolo 11 Istruzioni contatore Esempi di programmazione a blocchi funzionali CTU Esempio di Diagramma ladder CTU Esempio di testo strutturato CTU (* Equivalenza ST: CTU1 è un'istanza del blocco CTU*) CTU1(trigger,NOT(auto_mode),100); overflow := CTU1.Q; result := CTU1.CV; 258 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 11 Istruzioni contatore Vedere anche Istruzioni contatore a pagina 255 CTUD (conteggio crescente decrescente) Conta gli Integer da 0 fino a un valore dato, 1 a 1, o da un valore dato a 0, 1 a 1. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro CU CD RESET LOAD PV Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: fronte di salita rilevato, conteggio crescente. BOOL TRUE: fronte di salita rilevato, conteggio decrescente. BOOL Ripristina comando dominante (priorità massima durante la definizione del comportamento delle istruzioni). (CV = 0 quando RESET è TRUE). BOOL Carica comando. TRUE: imposta CV = PV. DINT Valore massimo programmato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 259 Capitolo 11 Istruzioni contatore QU Uscita BOOL QD Uscita BOOL CV Uscita DINT Overflow. TRUE: se CV >= PV. Underflow. TRUE: se CV <= 0. Risultato contatori. Esempio di programmazione a blocchi funzionali CTUD Esempio di diagramma ladder CTUD 260 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di testo strutturato CTUD Capitolo 11 Istruzioni contatore (* Equivalenza ST: supponiamo che CTUD1 sia un'istanza del blocco*) CTUD1(trigger1, trigger2, reset_cmd, load_cmd,100); full := CTUD1.QU; empty := CTUD1.QD; nb_elt := CTUD1.CV; Vedere anche Istruzioni contatore a pagina 255 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 261 Istruzioni per la conversione dati Capitolo 12 Utilizzare le istruzioni di conversione dei dati per convertire il tipo di dati di una variabile in un tipo diverso. Istruzione Descrizione ANY_TO_BOOL a pagina 263 ANY_TO_BYTE a pagina 264 ANY_TO_DATE a pagina 265 ANY_TO_DINT a pagina 267 ANY_TO_DWORD a pagina 268 ANY_TO_INT a pagina 269 ANY_TO_LINT a pagina 270 ANY_TO_LREAL a pagina 272 ANY_TO_LWORD a pagina 273 ANY_TO_REAL a pagina 274 ANY_TO_SINT a pagina 275 ANY_TO_STRING a pagina 276 ANY_TO_TIME a pagina 277 ANY_TO_UDINT a pagina 278 ANY_TO_UINT a pagina 279 ANY_TO_ULINT a pagina 280 ANY_TO_USINT a pagina 281 ANY_TO_WORD a pagina 282 Converte un valore non booleano in uno booleano. Converte un valore in un byte. Converte un tipo di dati String, Integer, Real o Time in un tipo di dati Date. Converte un valore in Double Integer. Converte un valore in un valore Double Word. Converte un valore in Integer. Converte un valore in Long Integer. Converte un valore in Long Real. Converte un valore in Long Word. Converte un valore in Real. Converte un valore in Short Integer. Converte un valore in String. Converte un valore in un tipo di dati Time. Converte un valore in Unsigned Double Integer. Converte un valore in Unsigned Integer. Converte un valore in Unsigned Long Integer. Converte un valore in Unsigned Short Integer. Converte un valore in Word. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 ANY_TO_BOOL Converte un valore non booleano in un valore booleano. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 263 Capitolo 12 Istruzioni per la conversione dati Parametri Tipo di parametro Tipo di dati EN Ingresso BOOL i1 Ingresso SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita BOOL Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Booleano. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore non Boolean. Valore Boolean. Esempio di testo strutturato ANY_TO_BOOL (* Equivalenza ST: *) ares := ANY_TO_BOOL (10); tres := ANY_TO_BOOL (t#0s); mres := ANY_TO_BOOL ('FALSE'); (* ares è TRUE *) (* tres è FALSE *) (* mres è FALSE *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_BYTE Converte un valore in Byte a 8 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 264 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri EN Tipo di parametro Ingresso Tipo di dati BOOL i1 Ingresso BOOL SINT USINT INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita BYTE ENO Uscita BOOL Capitolo 12 Istruzioni per la conversione dati Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Byte. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi valore non Byte. Un valore Byte a 8 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_BYTE (* Equivalenza ST: *) bres := ANY_TO_BYTE (true); tres := ANY_TO_BYTE (t#0s46ms); mres := ANY_TO_BYTE ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_DATE Converte un tipo di dati String, Integer, Real o Time in un tipo di dati Date. I tipi di dati Boolean, Byte e Word sono supportati ma non consigliati. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 265 Capitolo 12 Istruzioni per la conversione dati Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro Tipo di parametro Tipo di dati Descrizione EN Ingresso BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Date. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. i1 Ingresso BOOL · Le stringhe vengono convertite direttamente nel tipo di dati DATE e devono essere nel formato SINT YYYY-MM-DD, DATE#YYYY-MM-DD o D#YYYY-MM-DD. USINT · I tipi Integer e Real, che devono essere positivi, sono in unità di secondi e vengono aggiunti alla BYTE data 1970-01-01. INT · Time viene aggiunto alla data 1970-01-01. UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME STRING o1 Uscita DATE Valore della data convertita. Gli errori durante la conversione, ad esempio una data negativa, generano un risultato NON VALIDO. ENO Uscita BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. ANY_TO_DATE esempio di programmazione a blocchi funzionali ANY_TO_DATE Esempio di diagramma ladder ANY_TO_DATE 266 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 12 Esempio di testo strutturato ANY_TO_DATE Istruzioni per la conversione dati ANY_TO_DINT Vedere anche Istruzioni per la conversione dati a pagina 263 Converte un valore in Double Integer a 32 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione a Double Integer a 32 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 267 Capitolo 12 i1 o1 ENO Istruzioni per la conversione dati Ingresso Uscita Uscita BOOL SINT USINT BYTE INT UINT WORD UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING DINT BOOL Qualsiasi valore diverso da Double Integer. Un valore Double Integer a 32 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_DINT (* Equivalenza ST: *) bres := ANY_TO_DINT (true); tres := ANY_TO_DINT (t#1s46ms); mres := ANY_TO_DINT ('0198'); (* bres è 1 *) (* tres è 1046 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_DWORD Converte un valore in Double Word a 32 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 268 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 EN Ingresso BOOL i1 Ingresso BOOL SINT USINT BYTE INT UINT WORD DINT UDINT LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita DWORD ENO Uscita BOOL Capitolo 12 Istruzioni per la conversione dati Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Double Word a 32 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da double Word. Un valore double Word a 32 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_DWORD (* Equivalenza ST: *) bres := ANY_TO_DWORD (true); tres := ANY_TO_DWORD (t#1s46ms); mres := ANY_TO_DWORD ('0198'); (* bres è 1 *) (* tres è 1046 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_INT Converte un valore in Integer a 16 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 269 Capitolo 12 Istruzioni per la conversione dati Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametri Tipo di parametro Tipo di dati Descrizione EN Ingresso BOOL i1 Ingresso BOOL SINT USINT BYTE UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita INT ENO Uscita BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Integer a 16 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore Integer non a 16 bit. Un valore Integer a 16 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_INT (* Equivalenza ST: *) bres := ANY_TO_INT (true); tres := ANY_TO_INT (t#0s46ms); mres := ANY_TO_INT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_LINT Converte un valore in Long Integer a 64 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 270 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 12 Istruzioni per la conversione dati Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING LINT BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Long Integer a 64 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da Long Integer. Un valore Long Integer a 64 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_LINT (* Equivalenza ST: *) bres := ANY_TO_LINT (true); tres := ANY_TO_LINT (t#0s46ms); mres := ANY_TO_LINT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 271 Capitolo 12 Istruzioni per la conversione dati ANY_TO_LREAL Converte un valore in Long Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL TIME DATE STRING LREAL BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Long Real. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da long Real. Un valore long Real. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_LREAL (* Equivalenza ST: *) bres := ANY_TO_LREAL (true); tres := ANY_TO_LREAL (t#1s46ms); ares := ANY_TO_LREAL (198); (* bres è 1,0 *) (* tres è 1046,0 *) (* ares è 198,0 *) Vedere anche Istruzioni per la conversione dati a pagina 263 272 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 ANY_TO_LWORD Capitolo 12 Istruzioni per la conversione dati Converte un valore in Long Word a 64 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT REAL LREAL IME DATE STRING LWORD BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Long Word a 64 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da Long Word. Un valore Long Word a 64 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_LWORD (* Equivalenza ST: *) bres := ANY_TO_LWORD (true); tres := ANY_TO_LWORD (t#0s46ms); mres := ANY_TO_LWORD ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 273 Capitolo 12 Istruzioni per la conversione dati ANY_TO_REAL Converte un valore in Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD LREAL TIME DATE STRING REAL BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Real. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da Real. Un valore Real. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_REAL (* Equivalenza ST: *) bres := ANY_TO_REAL (true); tres := ANY_TO_REAL (t#1s46ms); ares := ANY_TO_REAL (198); (* bres è 1,0 *) (* tres è 1046,0 *) (* ares è 198,0 *) Vedere anche Istruzioni per la conversione dati a pagina 263 274 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 ANY_TO_SINT Capitolo 12 Istruzioni per la conversione dati Converte un valore in Short Integer. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 ENO Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING SINT BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Short Integer a 8 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore non-Short Integer. Qualsiasi valore Short Integer. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_SINT (* Equivalenza ST: *) bres := ANY_TO_SINT (true); tres := ANY_TO_SINT (t#0s46ms); mres := ANY_TO_SINT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 275 Capitolo 12 Istruzioni per la conversione dati ANY_TO_STRING Converte un valore in String. Dettagli operazione: · Durante la conversione di un tipo di dati REAL in una stringa, l'istruzione ANY_TO_STRING utilizza il formato di IEEE 754. · ANY_TO_STRING converte da 125.0 a 1.25000E + 02 · Se la lunghezza della stringa di destinazione è di 5 caratteri: · ANY_TO_STRING converte da 125.0 a 1.25000E+02 e le uscite da 1.250 alla stringa di destinazione. · Considerare la creazione di un blocco funzione definito dall'utente per convertire dalla notazione esponenziale al numero. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 276 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in String. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da String. Se IN è Boolean, '"FALSE" o "TRUE". Se IN è Integer o Real, rappresentazione decimale. Se IN è TIME, può essere: TIME time1 STRING s1 time1 :=13 ms; s1:=ANY_TO_STRING(time1); (* s1 = '0s13' *). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 ENO Uscita ANY_TO_TIME Capitolo 12 Istruzioni per la conversione dati BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_STRING (* Equivalenza ST: *) bres := ANY_TO_STRING (TRUE); ares := ANY_TO_STRING (125); (* bres è 'TRUE' *) (* ares è '125' *) Vedere anche Istruzioni per la conversione dati a pagina 263 Converte un valore diverso da Time o Date in un valore Time. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL STRING TIME Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Time. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore positivo diverso da un tipo di dati Time o Date. IN (o parte di integer di IN se è real) è il numero di millisecondi. STRING (numero di millisecondi, ad esempio, un valore di 300032 rappresenta 5 minuti e 32 millisecondi). Valore Time rappresentato da IN. Un valore di 1193h2m47s295ms non è valido. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 277 Capitolo 12 ENO Istruzioni per la conversione dati Uscita BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_TIME (* Equivalenza ST: *) ares := ANY_TO_TIME (1256); rres := ANY_TO_TIME (1256.3); (* ares := t#1s256ms *) (* rres := t#1s256ms *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_UDINT Converte un valore in Unsigned Double Integer a 32 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 o1 278 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT UINT WORD DINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING UDINT Abilitazione istruzioni. TRUE: esegue il calcolo della conversione a Double Integer a 32 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da Unsigned Double Integer. Un valore Unsigned Double Integer a 32 bit. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 ENO Uscita ANY_TO_UINT Capitolo 12 Istruzioni per la conversione dati BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_UDINT (* Equivalenza ST: *) bres := ANY_TO_UDINT (true); tres := ANY_TO_UDINT (t#1s46ms); mres := ANY_TO_UDINT ('0198'); (* bres è 1 *) (* tres è 1046 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 Converte un valore in Unsigned Integer. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN i1 Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL SINT USINT BYTE INT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Unsigned Integer a 16 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore non-Unsigned Integer. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 279 Capitolo 12 o1 ENO Istruzioni per la conversione dati Uscita UINT Uscita BOOL Un valore Unsigned Integer. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_UINT (* Equivalenza ST: *) bres := ANY_TO_UINT (true); tres := ANY_TO_UINT (t#0s46ms); mres := ANY_TO_UINT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_ULINT Converte un valore in Unsigned Long Integer a 64 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Unsigned Long Integer a 64 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. 280 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 i1 Ingresso BOOL SINT USINT BYTE INT UINT WORD DINT UDINT DWORD LINT LWORD REAL LREAL TIME DATE STRING o1 Uscita ULINT ENO Uscita BOOL Capitolo 12 Istruzioni per la conversione dati Qualsiasi valore diverso da Unsigned Long Integer. Un valore Unsigned Long Integer a 64 bit. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_ULINT (* Equivalenza ST: *) bres := ANY_TO_ULINT (true); tres := ANY_TO_ULINT (t#0s46ms); mres := ANY_TO_ULINT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_USINT Converte un valore in Unsigned Short Integer. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 281 Capitolo 12 EN Istruzioni per la conversione dati Ingresso BOOL i1 Ingresso BOOL SINT BYTE INT UINT WORD DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita USINT ENO Uscita BOOL Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Unsigned Short Integer a 8 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore non-Short Integer. Un valore Unsigned Short Integer. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_USINT (* Equivalenza ST: *) bres := ANY_TO_USINT (true); tres := ANY_TO_USINT (t#0s46ms); mres := ANY_TO_USINT ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 ANY_TO_WORD Converte un valore in Word a 16 bit. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 282 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri EN Tipo di parametro Ingresso Tipo di dati BOOL i1 Ingresso BOOL SINT USINT BYTE INT DINT UDINT DWORD LINT ULINT LWORD REAL LREAL TIME DATE STRING o1 Uscita WORD ENO Uscita BOOL Capitolo 12 Istruzioni per la conversione dati Descrizione Abilitazione istruzioni. TRUE: esegue il calcolo della conversione in Word a 16 bit. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Qualsiasi valore diverso da un valore WORD. Un valore Word. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di testo strutturato ANY_TO_WORD (* Equivalenza ST: *) bres := ANY_TO_WORD (true); tres := ANY_TO_WORD (t#0s46ms); mres := ANY_TO_WORD ('0198'); (* bres è 1 *) (* tres è 46 *) (* mres è 198 *) Vedere anche Istruzioni per la conversione dati a pagina 263 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 283 MEDIA Capitolo 13 Istruzioni per l'elaborazione dei dati Utilizzare le istruzioni per l'elaborazione dei dati per modificare i dati di uscita e lo stato senza modificare il programma. Istruzione Descrizione AVERAGE a pagina 285 COP a pagina 287 MAX a pagina 294 MIN a pagina 292 Calcola una media in esecuzione su un numero di un campioni definito. Copia i dati binari nell'elemento di origine per l'elemento di destinazione. Calcola il valore massimo tra due valori interi. Calcola il valore minimo tra due valori interi. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Calcola una media in movimento su un numero di campioni definito e memorizza il valore per ogni ciclo. Dettagli operazione: · Il numero definito di campioni (N) non deve superare 127. · Quando si imposta o si cambia il valore di N, impostare RUN su FALSE, quindi nuovamente su TRUE. · Se il comando RUN è FALSE (modalità reset), il valore di uscita è uguale al valore di ingresso. · Al raggiungimento del numero massimo di valori archiviati, il primo valore archiviato viene cancellato dall'ultimo. · usando i tipi di dati in virgola mobile, i calcoli potrebbero essere imprecisi a causa delle limitazioni nell'arrotondamento con le operazioni matematiche in virgola mobile. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 285 Capitolo 13 Istruzioni per l'elaborazione dei dati Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro RUN XIN N XOUT ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Tipo di dati BOOL REAL DINT REAL BOOL Descrizione TRUE = esecuzione FALSE = reset Qualsiasi variabile reale. Numero di campioni definito dall'applicazione. Esecuzione della media dei valori XIN. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali AVERAGE Esempio di diagramma ladder AVERAGE Esempio di Testo strutturato AVERAGE (* Equivalenza ST: AVERAGE1 un'istanza di un blocco AVERAGE *) AVERAGE1((auto_mode & store_cmd), sensor_value, 100); ave_value := AVERAGE1.XOUT; 286 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 13 Istruzioni per l'elaborazione dei dati Istruzioni per l'elaborazione dei dati a pagina 285 COP Copia i dati binari nell'elemento di origine per l'elemento di destinazione. L'elemento di origine rimane invariato. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri Enable Src SrcOffset Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. COP è attivato in base al livello. TRUE: esegue la copia. FALSE: il blocco funzione non è attivo. BOOL DWORD Elemento iniziale da copiare. SINT REAL USINT TIME BYTE DATE Se l'origine è un tipo di dati STRINGA, la destinazione deve essere un tipo di dati STRINGA o un USINT (UCHAR e BYTE). In caso contrario, viene segnalata una mancata corrispondenza tra tipi di dati. INT STRING UINT LWORD WORD ULINT DINT LINT UDINT LREAL UINT L'offset elemento di origine è utilizzato con i tipi di dati del vettore per identificare la posizione nel vettore di origine da cui copiare i dati. Impostare l'offset su 0: · Se non è un tipo di dati array oppure · Per copiare dal primo elemento per un tipo di dati array. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 287 Capitolo 13 Dest DestOffset Istruzioni per l'elaborazione dei dati Ingresso BOOL SINT USINT BYTE INT UINT WORD DINT UDINT Ingresso UINT DWORD REAL TIME DATE STRING LWORD ULINT LINT Lunghezza Ingresso UINT Swap Ingresso BOOL Sts Uscita UINT ENO Uscita BOOL Elemento iniziale da sovrascrivere dall'origine. Se la destinazione è un tipo di dati STRINGA, l'origine deve essere un tipo di dati STRINGA o un USINT (UCHAR e BYTE). In caso contrario, viene segnalata una mancata corrispondenza tra tipi di dati. L'offset elemento di destinazione è utilizzato con i tipi di dati del vettore per identificare la posizione nel vettore di destinazione in cui copiare i dati. Impostare l'offset su 0: · Se non è un tipo di dati array oppure · Per copiare dal primo elemento per un tipo di dati array. Numero di elementi di destinazione da copiare. Quando la destinazione è un tipo di dati STRINGA, indica il numero di stringhe da copiare. Utilizzato per scambiare i dati dagli elementi di origine e destinazione, in modo che i dati di destinazione sostituiscono i dati di origine e i dati di origine sostituiscono i dati di destinazione. TRUE: scambio dei byte in base al tipo di dati. Un'operazione di scambio non avviene se: · Il tipo di dati di origine o di destinazione è una STRINGA oppure · Sia i dati di origine che quelli di destinazione hanno lunghezza 1 byte. Stato dell'operazione di copia. Le definizioni del parametro Sts sono definite nei codici di stato COP. Abilita l'uscita. Applicabile solo alle programmazioni in Ladder Diagram. Codice dello stato COP 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A Codici di stato (Sts) del COP La tabella seguente descrive i codici di stato del COP. Descrizione stato Nessuna azione intrapresa (non abilitato). Blocco funzione COP con successo. La destinazione presenta byte residui durante la copia dalla stringa. I dati di origine sono troncati. La lunghezza di copia non è valida. Il tipo di dati non corrisponde con il tipo di dati stringa come origine o destinazione. La dimensione dei dati di origine è troppo ridotta per la copia. La dimensione dei dati di destinazione è troppo ridotta per la copia. Offset dei dati di origine non valido. Offset dei dati di destinazione non valido. I dati non sono validi o nell'origine o nella destinazione. 288 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 13 Istruzioni per l'elaborazione dei dati Esempio di programmazione a blocchi funzionali COP Esempio di diagramma ladder COP Esempio di testo strutturato COP Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 289 Capitolo 13 Istruzioni per l'elaborazione dei dati Vedere anche Esempio di array della stringa COP a pagina 290 Istruzioni per l'elaborazione dei dati a pagina 285 Copia in un tipo di dati differente a pagina 290 Copia in un tipo di dati differente Quando viene eseguita una copia da o in un tipo di dati stringa, per i dati nell'array USINT è utilizzato il formato di stringa breve ODVA. Quando la COP è utilizzata tra qualsiasi altra coppia di tipi di dati, l'operazione di copia è valida, anche se il tipo di dati nell'origine non è dello stesso tipo di quello nella destinazione e anche quando il formato di entrambi non è valido. La logica deve essere convalidata a livello di applicazione. Da un array USINT a un array stringa Per copiare un array USINT a un array stringa, i dati nell'array USINT devono essere in questo formato: · Byte1: lunghezza della prima stringa · Byte2: primo carattere del byte · Byte3: secondo carattere del byte · Byte n: ultimo carattere del byte · Byte (n+1): lunghezza della seconda stringa · Byte (n+2): primo carattere del byte della seconda stringa Vedere anche COP a pagina 287 Esempio di array della stringa COP L'esempio che segue mostra un'istruzione COP che copia un vettore stringa in un vettore Usint. L'istruzione COP ignora tutti gli elementi dell'array sorgente di lunghezza pari a zero. In questo esempio: · La lunghezza specificata è pari a 4 byte. · Il numero degli elementi di destinazione da copiare è 4 byte. · Tutti gli elementi dell'array di lunghezza pari a zero (vuoti) vengono ignorati. · L'istruzione COP trova un elemento di lunghezza diversa da zero nell'array stringa[1]; questo viene copiato nell'array USINT designato[1] con 1. Uno corrisponde alla lunghezza della stringa nell'array stringa[1] e l'array USINT[2] è 65, ossia il codice ASCII corrispondente ad "A". 290 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 13 Istruzioni per l'elaborazione dei dati · L'istruzione COP trova un elemento di lunghezza diversa da zero nell'array stringa[10] che corrisponde ad "a"; questo viene copiato nell'array USINT di destinazione[3] con 1. Uno corrisponde alla lunghezza della stringa nell'array stringa[10] e l'array USINT[4] è 97, ossia il codice ASCII corrispondente ad "a". Ladder diagram Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 291 Capitolo 13 Istruzioni per l'elaborazione dei dati Elementi dell'array con valori logici MIN (minimo) Vedere anche COP a pagina 287 Calcola il valore minimo tra due valori interi. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 292 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 13 Istruzioni per l'elaborazione dei dati EN Ingresso BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del valore intero minimo. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. IN1 Ingresso DINT Qualunque valore intero con segno. IN2 Ingresso DINT Non può essere reale. MIN Uscita DINT Il minimo dei due valori di ingresso. ENO Uscita BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali MIN Esempio di Diagramma ladder MIN Esempio di Testo strutturato MIN (* Equivalenza ST: *) nuovo_valore := MAX (MIN (valore_max, valore), valore_min); (* vincola il valore al gruppo [valore_min..valore_max] *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 293 Capitolo 13 Istruzioni per l'elaborazione dei dati Risultati MAX (massimo) Vedere anche Istruzioni per l'elaborazione dei dati a pagina 285 Calcola il valore massimo tra due valori interi. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN1 IN2 MAX ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: esegue il calcolo del valore intero massimo. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. DINT Qualunque valore intero con segno. DINT Non può essere reale. DINT Il massimo dei due valori di ingresso. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. 294 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 13 Istruzioni per l'elaborazione dei dati Esempio di programmazione a blocchi funzionali MAX Esempio di Diagramma ladder MAX Esempio di Testo strutturato MAX (* Equivalenza ST: *) nuovo_valore := MAX (MIN (valore_max, valore), valore_min); (* vincola il valore al gruppo [valore_min..valore_max] *) Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 295 Capitolo 13 Istruzioni per l'elaborazione dei dati Vedere anche Istruzioni per l'elaborazione dei dati a pagina 285 296 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Istruzione HSC a pagina 298 Monitorare e controllare l'High Speed Counter attenendosi alle relative istruzioni. Descrizione HSC applica all'high-speed counter valori alti e bassi preimpostati e valori di origine per l'uscita. HSC_SET_STS a pagina 314 HSC_SET_STS permette l'impostazione o il ripristino manuale dello stato del conteggio dell'HSC. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Che cos'è l'High-Speed Counter? Un high-speed counter rileva e conta impulsi stretti (veloci), quindi invia istruzioni specifiche per avviare le operazioni di controllo, quando i conteggi rilevati raggiungono i relativi valori preimpostati. Tra le operazioni di controllo sono inclusi l'esecuzione automatica e immediata della routine di interruzione dell'high-speed counter e l'aggiornamento immediato delle uscite in base al modello di maschera e all'origine configurata. Funzionalità dell'high-speed counter Poiché le istruzioni dell'HSC richiedono elevate prestazioni, il loro funzionamento è garantito da una circuiteria personalizzata che opera parallelamente al processore di sistema principale. Tra le funzionalità avanzate degli High-Speed Counter (HSC) sono incluse: · Funzionamento a 100 kHz del controllo diretto dell'alta velocità per le uscite · Dati in formato numero intero con segno a 32 bit (intervallo di conteggio ± 2.147.483.647) · Valori alto e basso preimpostati e programmabili · SetPoint di overflow e underflow · Elaborazione delle interruzioni automatiche in base al conteggio accumulato · Operatività delle istruzioni dell'HSC con parametri di runtime modificabili (dal programma di controllo dell'utente) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 297 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Supporto del controllore Micro800 per l'HSC Tutti i controllori Micro830, Micro850 e Micro870, tranne 2080-LCxxAWB, supportano fino a sei ingressi HSC. La funzionalità HSC è implementata nei controllori Micro800 tramite l'hardware dell'high-speed counter (ingressi integrati nel controllore) e l'istruzione HSC nell'applicazione. L'istruzione HSC configura l'hardware dell'high-speed counter e aggiorna l'accumulatore dell'immagine. IMPORTANTE è possibile utilizzare la funzione HSC solo con l'I/O integrato del controllore. Non può essere utilizzata con moduli di espansione I/O. Vedere anche Istruzioni per l'High-Speed Counter (HSC) a pagina 297 Utilizzo delle istruzioni dell'High-Speed Counter a pagina 317 HSC (High Speed Counter) HSC applica all'high-speed counter valori alti e bassi preimpostati e valori di origine per l'uscita. Dettagli operazione: · L'interruttore di fine corsa programmabile (PLS) viene abilitato impostando il parametro HSCAppData.PLSEnable su True. · Il parametro PLSPosition viene reimpostato al termine di un ciclo completo e al raggiungimento del valore HSCSTS.HP. Questa istruzione si applica ai controllori Micro830 e Micro850. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 298 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 EN Ingresso BOOL Enable HscCmd HSCAppData HSCStsInfo PlsData Sts Ingresso Ingresso Ingresso Ingresso Ingresso Uscita BOOL USINT HSCAPP HSCSTS DINT UDINT UINT ENO Uscita BOOL Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Stato del ramo del blocco istruzione. TRUE: il timer inizia a incrementare. FALSE: il blocco funzione non è attivo. Si consiglia di non usare il parametro EN con il blocco funzione HSC perché il timer continua a funzionare anche quando EN è impostato su FALSE. Applicabile solo alle programmazioni in Ladder Diagram. Abilitare il blocco istruzione. TRUE: esegue l'operazione HSC specificata nel parametro di comando HSC. FALSE: non viene emesso nessun comando HSC. Invia comandi all'HSC. Configurazione dell'applicazione HSC; di solito necessaria solo una volta. Stato dinamico dell'HSC. Di norma, è aggiornato continuamente durante il conteggio HSC. Struttura dati PLS (interruttore fine corsa programmabile). Stato dell'esecuzione dell'HSC. Codici di stato dell'HSC: · 0x00: nessuna azione intrapresa (non abilitato). · 0x01: esecuzione HSC completata. · 0x02: comando HSC non valido. · 0x03: ID HSC fuori intervallo. · 0x04: errore di configurazione HSC. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali HSC Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 299 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Esempio di diagramma ladder HSC Esempio di testo strutturato HSC Vedere anche Istruzioni per l'High-Speed Counter (HSC) a pagina 297 Valori HSCCmd a pagina 300 Tipo di dati HSCAPP a pagina 301 Tipo di dati HSCSTS a pagina 304 Tipo di dati PLS a pagina 311 Valori HSCCmd Nella seguente tabella sono descritti i comandi dell'HSC per ciascuno dei valori di comando. Comando HSC Descrizione comando 0x01 HSC RUN · Avvia l'HSC (se HSC è in modalità inattiva ed è abilitato il piolo). · Aggiorna solo le informazioni sullo stato dell'HSC (se HSC è in modalità di esecuzione ed è abilitato il piolo). 0x02 HSC Stop arresta un conteggio HSC (se HSC è in modalità di esecuzione ed è abilitato il piolo). 0x03 HSC Load/Set: ricarica i dati dell'applicazione HSC (se è abilitato il piolo) per 6 elementi di input: HPSetting, LPSetting, HPOutput, LPOutput, OFSetting, UFSettingand e UFSetting. Nota: questo comando non ricarica i seguenti elementi di input: accumulatore HSC. 0x04 Ripristino accumulatore HSC (se il rung è abilitato). 300 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Valore comando Risultato Risultati del comando HSC Condizioni Capitolo 14 Istruzioni per l'High Speed Counter (HSC) HscCmd =1 HscCmd =4 (ripristino) Avvia il meccanismo dell'HSC e fa passare le transizioni dell'HSC alla modalità di esecuzione. L'impostazione del parametro di ingresso Enable su False non arresta il conteggio in modalità di esecuzione. HscCmd =2 deve essere emesso per arrestare il conteggio. Il meccanismo dell'HSC aggiorna automaticamente i valori. Imposta il valore Acc. dell'HSC al valore AppData.Accumulator dell'HSC. HSC AppData.Accumulator è aggiornato con HSC Sts.Accumulator HscCmd =4 non arresta il conteggio HSC. Se HSC è in fase di conteggio quando viene emesso HscCmd =4, è possibile che alcuni conteggi vadano persi. Per impostare un valore Acc dell'HSC specifico durante il conteggio, scrivere il valore in AppData.Accumulator dell'HSC immediatamente prima dell'emissione di HscCmd =4. Vedere anche HSC a pagina 298 Tipo di dati HSCAPP Parametri PLSEnable HSCID HSCMode Accumulator Tipo di dati BOOL UINT UINT DINT HPSetting DINT LPSetting DINT Utilizzare il tipo di dati HSCAPP per definire il parametro HSCAppData nell'istruzione dell'HSC. I parametri del tipo di dati HSCApp servono a definire i dati di configurazione dell'HSC. Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati HSCAPP. Formato dati bit word word parola lunga parola lunga parola lunga Accesso al programma utente lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura Descrizione Abilitare o disabilitare l'interruttore di fine corsa programmabile (PLS) dell'High Speed Counter. Definisce l'HSC. Definisce la modalità dell'HSC. Valore accumulatore iniziale. HSCApp.Accumulator imposta il valore iniziale dell'accumulatore quando si attiva l'High Speed Counter. Quando l'High-Speed Counter è in modalità conteggio, l'accumulatore viene automaticamente aggiornato dal sottosistema dell'HSC, per propagare il valore effettivo dell'accumulatore dell'HSC. Impostazione valore alto preimpostato. Il parametro HSCApp.HPSetting imposta il setpoint superiore (nei conteggi) che definisce quando il sottosistema dell'HSC genera un interrupt. Il numero dei dati caricati nell'impostazione valore alto preimpostato deve essere inferiore o uguale ai dati residenti nel parametro di overflow (HSCAPP.OFSetting). In caso contrario, viene generato un errore di HSC. Impostazione valore basso preimpostato. HSCApp.LPSetting imposta il setpoint inferiore (nei conteggi) che definisce quando il sottosistema dell'HSC genera un interrupt. Il numero dei dati caricati nell'impostazione valore basso preimpostato deve essere superiore o uguale ai dati residenti nel parametro di underflow (HSCAPP.UFSetting). In caso contrario, viene generato un errore di HSC. Se i valori di underflow e dell'impostazione valore basso preimpostato sono numeri negativi, il valore basso preimpostato deve essere un numero con un valore assoluto inferiore al valore di underflow. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 301 Capitolo 14 OFSetting Istruzioni per l'High Speed Counter (HSC) DINT parola lunga lettura/scrittura UFSetting DINT parola lunga lettura/scrittura OutputMask UDINT word lettura/scrittura HPOutput UDINT parola lunga lettura/scrittura LPOutput UDINT parola lunga lettura/scrittura Impostazione overflow. L'impostazione di overflow di HSCApp.OFSetting definisce il limite di conteggio superiore del contatore. Se il valore accumulato del contatore sale oltre il valore specificato in OFSetting, viene generata un'interruzione per overflow. Quando viene generata l'interruzione per overflow, il sottosistema dell'HSC reimposta il valore accumulato sul valore di underflow e il contatore continua a contare dal valore di underflow (i conteggi non vanno persi durante questa transizione). I valori di OFSetting devono essere: · Tra -2.147.483.648 e 2.147.483.647. · Maggiori del valore di underflow. · Maggiori o uguali ai dati residenti nell'impostazione valore alto preimpostato (HSCAPP.HPSetting). In caso contrario, viene generato un errore di HSC. Impostazione underflow. Impostazione di underflow di HSCApp.UFSetting che definisce il limite di conteggio inferiore del contatore. Se il valore accumulato del contatore scende sotto il valore specificato in UFSetting, viene generata un'interruzione per underflow. Quando viene generata l'interruzione per underflow, il sottosistema dell'HSC reimposta il valore accumulato sul valore di overflow e il contatore avvia il conteggio dal valore di overflow (i conteggi non sono persi nella transizione). I valori di UFSetting devono essere: · Tra -2.147.483.648 e 2.147.483.647. · Inferiori al valore di overflow. · Inferiori o uguali ai dati residenti nell'impostazione valore basso preimpostato (HSCAPP.LPSetting), altrimenti viene generato un errore di HSC. Maschera esterna per uscita. HSCApp.OutputMask definisce le uscite integrate nel controllore, direttamente controllabili dall'High Speed Counter. Il sottosistema HSC è in grado di impostare le uscite su ON oppure OFF senza l'interazione del programma di controllo in base ai valori preimpostati alto o basso dell'accumulatore dell'HSC. Il modello di bit memorizzato in HSCApp.OutputMask definisce quali uscite vengono controllate dall'HSC e quali no. Il modello di bit HSCAPP.OutputMask corrisponde ai bit di uscita del controllore ed è possibile configurarlo durante l'installazione iniziale. I bit impostati (1) sono abilitati ed possibile impostarli su On oppure Off tramite il sottosistema dell'HSC. I bit cancellati (0) non possono essere impostati su On oppure Off tramite sottosistema dell'HSC. Ad esempio, per utilizzare l'HSC per controllare le uscite 0, 1, 3, assegnare: · HscAppData.OutputMask = 2#1011 oppure · HscAppData.OutputMask = 11 Impostazione uscita 32 bit per raggiungimento valore alto preimpostato. HSCApp.HPOutput definisce lo stato (1 = ON oppure 0 = OFF) delle uscite del controllore quando viene raggiunto il valore alto preimpostato. Per maggiori informazioni su come impostare direttamente su On oppure Off in base al valore alto preimpostato. Configurare il modello di bit uscita alta durante l'impostazione iniziale o utilizzare il blocco funzione HSC per caricare i nuovi parametri durante il funzionamento del controllore. Impostazione uscita 32 bit per raggiungimento valore basso preimpostato. HSCApp.LPOutput definisce lo stato (1 = "on" oppure 0 = "off") delle uscite del controllore quando viene raggiunto il valore basso preimpostato. Per maggiori informazioni su come impostare direttamente le uscite su ON oppure OFF in base al valore basso preimpostato. Configurare il modello di bit uscita bassa durante l'impostazione iniziale o utilizzare il blocco funzione HSC per caricare i nuovi parametri durante il funzionamento del controllore. 302 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Impostazione HSCApp HSCAPP.HpSetting HSCAPP.LpSetting HSCAPP.HPOutput HSCAPP.LPOutput Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Confronto tra impostazioni HSCApp e impostazioni PLSData Quando la funzione PLS è abilitata, le impostazioni HSCApp pertinenti sono sostituite dalle impostazioni PLSData corrispondenti, come descritto nella seguente tabella. Impostazione PLSData HSCHP HSCLP HSCHPOutput HSCLPOutput HSCApp.HSCID Il parametro HSCApp.HSCID identifica l'High Speed Counter. Nella tabella seguente sono elencati i valori per l'HSCID: Selezione uscita Prima parola dati funzione HSC Bit Descrizione 15-13 Tipo di modulo HSC: · 0x00 - Integrato. · 0x01 - Espansione. · 0x02 - Porta plug-in. 12-8 ID slot del modulo: · 0x00 - Integrato. · 0x01-0x1F - ID del modulo di espansione. · 0x01-0x05 - ID della porta plug-in. 7-0 ID HSC all'interno del modulo: · 0x00-0x0F - Integrato. · 0x00-0x07 - ID di HSC per Espansione. · 0x00-0x07 - ID di HSC per porta plug-in. per la versione iniziale di Connected Components Workbench sono supportati solo ID 0x00-0x05. HSCApp.HSCMode Il parametro HSCApp.HSCMode imposta l'High Speed Counter su uno dei 10 tipi di modalità di conteggio. Il valore della modalità è configurato tramite il dispositivo di programmazione ed è accessibile nel programma di controllo. Per ulteriori informazioni sulle modalità operative HSC e le assegnazioni degli input, vedere gli schemi dei cablaggi e degli input HSC nel Manuale dell'utente per i controllori programmabili Micro830 e Micro850. Modalità operativa dell'HSC, HSC principale e quello secondario supportano modalità differenti. · Gli High Speed Counter principali supportano 10 tipi di modalità operative. · Gli High Speed Counter secondari supportano 5 tipi di modalità operative (modalità 0, 2, 4, 6, 8). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 303 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) HSCMode 0 1 2 3 4 5 6 7 8 9 · Se l'High Speed Counter principale è impostato in modalità 1, 3, 5, 7 o 9, l'High Speed Counter secondario verrà disabilitato. Modalità conteggio Contatore su. L'accumulatore è cancellato (0) immediatamente al raggiungimento del valore alto preimpostato. Non è possibile definire un valore basso preimpostato in questa modalità. Contatore su con ripristino esterno e tenuta. L'accumulatore è cancellato (0) immediatamente al raggiungimento del valore alto preimpostato. Non è possibile definire un valore basso preimpostato in questa modalità. Contatore con direzione esterna. Contatore con direzione esterna, ripristino e tenuta. Contatore con due ingressi (su e giù). Contatore con due ingressi (su e giù), ripristino esterno e tenuta. Contatore in quadratura (ingressi in fase A e B). Contatore in quadratura (ingressi in fase A e B) con ripristino esterno e tenuta. Contatore in quadratura X4 (ingressi in fase A e B). Contatore in quadratura X4 (ingressi in fase A e B) con ripristino esterno e tenuta. Esempio di parametri HSCAppData Nella seguente immagine sono rappresentati i parametri HSCAppData nel Selettore di variabili. Vedere anche HSC a pagina 298 Tipo di dati HSCSTS 304 HSCSTSInfo (tipo di dati HSCSTS) visualizza lo stato dell'High-Speed Counter. Azioni dello stato HSCSTSInfo Durante il conteggio dell'HSC si verificano le seguenti azioni di stato HSC. · Se il blocco di funzione dell'HSC sta eseguendo il conteggio con il comando 0x01, lo stato dell'HSC viene aggiornato costantemente. · Se si verifica un errore, il flag Error_Detected viene attivato e viene impostato un codice di errore. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri CountEnable ErrorDetected CountUpFlag CountDwnFlag Mode1Done OVF UNF CountDir HPReached LPReached OFCauseInter UFCauseInter HPCauseInter LPCauseInter PlsPosition ErrorCode Accumulator HP LP HPOutput LPOutput Tipo di dati BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL UINT Modalità HSC 0...9 0...9 0...9 2...9 0 oppure 1 0...9 0...9 0...9 2...9 2...9 0...9 2...9 0...9 2...9 0...9 UINT 0...9 DINT DINT DINT UDINT UDINT Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Parametri HSCSTSInfo Accesso al Descrizione programma utente sola lettura lettura/scrittura sola lettura sola lettura lettura/scrittura lettura/scrittura lettura/scrittura sola lettura lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura sola lettura lettura/scrittura lettura/scrittura sola lettura sola lettura lettura/scrittura lettura/scrittura Conteggio abilitato. Diverso da zero indica un errore rilevato. Flag conteggio crescente. Flag conteggio decrescente. HSC è Mode 1A o Mode 1B; l'accumulatore conta fino al valore HP. Rilevato un overflow. Rilevato un underflow. 1: conteggio crescente; 0: conteggio decrescente. Raggiunto valore alto preimpostato. Raggiunto valore basso preimpostato. Overflow causato da interruzioni dell'HSC. Underflow causato da interruzioni dell'HSC. Raggiunto valore alto preimpostato che ha causato un'interruzione nell'HSC. Raggiunto valore basso preimpostato che ha causato un'interruzione nell'HSC. Posizione del interruttore di fine corsa programmabile. Il parametro PLSPosition viene reimpostato al termine di un ciclo completo e al raggiungimento del valore HP. Visualizza i codici di errore rilevati dal sottosistema dell'HSC. Lettura attuale accumulatore. Impostazione valore alto preimpostato più recente. Impostazione valore basso preimpostato più recente. Impostazione uscita valore alto preimpostato più recente. Impostazione uscita valore basso preimpostato più recente. Dettagli dei parametri HSCSTSInfo I parametri HSCSTSInfo (tipo di dati HSCSTS) sono utilizzati per determinare lo stato dell'High-Speed Counter. Parametri HSCSTS.CountEnable Parametri HSCSTS.ErrorDetected CountEnable Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 sola lettura Indica lo stato dell'High-Speed Counter, a prescindere che il conteggio sia abilitato (1) o disabilitato (0, impostazione predefinita). ErrorDetected Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 lettura/scrittura Rileva se è presente un errore nel sottosistema dell'HSC. Gli errori di configurazione sono i tipi di errore più comuni segnalati da ErrorDetectedr. Quando il bit è impostato (1), controllare lo specifico codice di errore nel parametro HSCSTS.ErrorCode, che è mantenuto dal controllore. Se necessario, è possibile cancellare il bit ErrorDetected. CountUpFlag Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 305 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Parametri Tipo di dati Modalità HSC Accesso al programma utente HSCSTS.CountUpFlag BOOL 0...9 sola lettura Utilizzato con tutti gli HSC (modalità 0...9). Se il bit HSCSTS.CountEnable è impostato, il bit Count Up è impostato (1). Se il bit HSCSTS.CountEnable è cancellato, il bit Count Up è cancellato (0). CountDownFlag Parametri Tipo di dati Modalità HSC Accesso al programma utente HSCSTS.CountDownFlag BOOL 2...9 sola lettura Utilizzato con i contatori bidirezionali (modalità 2...9). Se è impostato il bit HSCSTS.CountEnable, il bit Count Down è impostato (1). Se il bit HSCSTS.CountEnable viene cancellato, il bit Count Down è cancellato (0). Mode1Done Parametri Tipo di dati Modalità HSC Accesso al programma utente HSCSTS.Mode1Done BOOL 0 oppure 1 lettura/scrittura Parametri HSCSTS.OVF Il sottosistema dell'HSC imposta il flag di stato HSCSTS.Mode1Done su (1) quando l'HSC è configurato per il comportamento in modalità 0 oppure 1 e l'accumulatore esegue il conteggio a crescere fino al valore alto preimpostato. OVF Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 lettura/scrittura Parametri HSCSTS.UNF Il sottosistema dell'HSC imposta il flag di stato HSCSTS.OVF su (1) ogniqualvolta sia stato eseguito il conteggio del valore accumulato (HSCSTS.Accumulator) fino alla variabile di overflow (HSCAPP.OFSetting). Il bit è transitorio e viene impostato dal sottosistema dell'HSC. L'utilizzo, il tracciamento e la cancellazione (0) di una condizione di overflow sono gestiti dal programma di controllo. Le condizioni di overflow non generano errori del controllore. UNF Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 lettura/scrittura Parametri HSCSTS.CountDir Il sottosistema dell'HSC imposta il flag di stato HSCSTS.UNF su (1) ogniqualvolta venga eseguito il conteggio del valore accumulato (HSCSTS.Accumulator) fino alla variabile di underflow (HSCAPP.UFSetting). Il bit è transitorio e viene impostato dal sottosistema dell'HSC. L'utilizzo, il tracciamento e la cancellazione (0) di una condizione di underflow sono gestiti dal programma di controllo. Le condizioni di underflow non generano errori del controllore. CountDir Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 sola lettura 306 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri HSCSTS.HPReached Parametri HSCSTS.LPReached Parametri HSCSTS.OFCauseInter Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Il sottosistema dell'HSC controlla il flag di stato HSCSTS.CountDir. Quando l'accumulatore dell'HSC esegue il conteggio crescente, il flag di direzione è impostato (1). Quando l'accumulatore dell'HSC esegue il conteggio decrescente, il flag di direzione è cancellato (0). Se il valore accumulato si interrompe, il bit di direzione mantiene il valore. Il flag di direzione cambia solo se viene invertita la direzione del conteggio accumulato. Questo bit è costantemente aggiornato dal sottosistema dell'HSC se il controllore è in una modalità di esecuzione. HPReached Tipo di dati Modalità HSC Accesso al programma utente BOOL 2...9 lettura/scrittura Il sottosistema dell'HSC imposta il flag di stato HSCSTS.HPReached su (1) ogniqualvolta il valore accumulato (HSCSTS.Accumulator) sia superiore o uguale alla variabile del valore alto preimpostato (HSCAPP.HPSetting). Questo bit è costantemente aggiornato dal sottosistema dell'HSC ogniqualvolta il controllore si trovi in una modalità di esecuzione. La scrittura in questo elemento non è consigliata. LPReached Tipo di dati Modalità HSC Accesso al programma utente BOOL 2...9 sola lettura Il sottosistema dell'HSC imposta il flag di stato HSCSTS.LPReached su (1) ogniqualvolta il valore accumulato (HSCSTS.Accumulator) sia inferiore o uguale alla variabile del valore basso preimpostato (HSCAPP.LPSetting). Questo bit è costantemente aggiornato dal sottosistema dell'HSC ogniqualvolta il controllore si trovi in una modalità di esecuzione. La scrittura in questo elemento non è consigliata. OFCauseInter Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 lettura/scrittura Il bit di stato dell'interruzione per overflow è impostato (1) quando l'accumulatore dell'HSC esegue il conteggio fino al valore di overflow e l'interruzione dell'HSC viene attivata. Questo bit può essere utilizzato nel programma di controllo per identificare la variabile di overflow che ha causato l'interruzione dell'HSC. Se il programma di controllo deve eseguire un'azione di controllo specifica in base all'overflow, questo bit è utilizzato come logica condizionale. Questo bit può essere cancellato (0) dal programma di controllo e viene cancellato anche dal sottosistema dell'HSC in presenza delle seguenti condizioni: · Esecuzione dell'interruzione con valore basso preimpostato · Esecuzione dell'interruzione con valore alto preimpostato · Esecuzione dell'interruzione per underflow Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 307 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) UFCauseInter Parametri Tipo di dati Modalità HSC Accesso al programma utente HSCSTS.UFCauseInter BOOL 2...9 lettura/scrittura Parametri HSCSTS.HPCauseInter Il bit di stato dell'interruzione per underflow è impostato (1) quando l'accumulatore dell'HSC esegue il conteggio fino al valore di underflow e l'interruzione dell'HSC viene attivata. Questo bit può essere utilizzato nel programma di controllo per identificare la condizione di underflow che ha causato l'interruzione dell'HSC. Se il programma di controllo deve eseguire un'azione di controllo specifica in base all'underflow, questo bit è utilizzato come logica condizionale. Questo bit può essere cancellato (0) dal programma di controllo e viene cancellato anche dal sottosistema dell'HSC in presenza delle seguenti condizioni: · Verificarsi dell'interruzione con valore basso preimpostato · Verificarsi dell'interruzione con valore alto preimpostato · Verificarsi dell'interruzione per overflow HPCauseInter Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 lettura/scrittura Parametri HSCSTS.LPCauseInter Il bit di stato dell'interruzione con valore alto preimpostato è impostato (1) quando l'accumulatore dell'HSC raggiunge il valore alto preimpostato e l'interruzione dell'HSC viene attivata. Questo bit può essere utilizzato nel programma di controllo per identificare la condizione di valore alto preimpostato che ha causato l'interruzione dell'HSC. Se il programma di controllo deve eseguire un'azione di controllo specifica in base al valore alto preimpostato, questo bit è utilizzato come logica condizionale. Questo bit può essere cancellato (0) dal programma di controllo e viene cancellato anche dal sottosistema dell'HSC in presenza delle seguenti condizioni: · Verificarsi dell'interruzione con valore basso preimpostato · Verificarsi dell'interruzione per underflow · Verificarsi dell'interruzione per overflow LPCauseInter Tipo di dati Modalità HSC Accesso al programma utente BOOL 2...9 lettura/scrittura Il bit di stato dell'interruzione con valore basso preimpostato è impostato (1) quando l'accumulatore dell'HSC raggiunge il valore basso preimpostato e l'interruzione dell'HSC viene attivata. Questo bit può essere utilizzato nel programma di controllo per identificare la condizione di valore basso preimpostato che ha causato l'interruzione dell'HSC. Se il programma di controllo deve eseguire un'azione di controllo specifica in base al valore basso preimpostato, questo bit è utilizzato come logica condizionale. 308 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri HSCSTS.PLSPosition Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Questo bit può essere cancellato (0) dal programma di controllo e viene cancellato anche dal sottosistema dell'HSC in presenza delle seguenti condizioni: · Verificarsi dell'interruzione con valore alto preimpostato · Verificarsi dell'interruzione per underflow · Verificarsi dell'interruzione per overflow PlsPosition Tipo di dati Modalità HSC Accesso al programma utente UINT 0...9 sola lettura Parametri HSCSTS.ErrorCode Quando l'HSC è in modalità di conteggio ed è abilitata la funzione PLS, questo parametro indica l'elemento di PLS in uso per l'attuale configurazione dell'HSC. ErrorCode Tipo di dati Modalità HSC Accesso al programma utente BOOL 0...9 sola lettura Visualizza i codici di errore rilevati dal sottosistema dell'HSC. Sottoelemento del codice Codice di errore di errore conteggio HSC Bit 15-8 (byte alto) 0-255 Bit 7-0 (byte basso) 0x00 0x01 0x02 0x03 0x04 0x05 Accesso al programma utente Il valore non nullo per byte alto indica che l'errore HSC è causato dalle impostazioni dei dati PLS. Il valore del byte alto indica quale elemento dei dati PLS fa verificare l'errore. Nessun errore. Modalità conteggio HSC non valida. Valore alto preimpostato non valido. Overflow non valido. Underflow non valido. Nessun dato PLS. Accumulator Parametri Tipo di dati Accesso al programma utente HSCApp.Accumulator DINT lettura/scrittura Imposta il valore iniziale dell'accumulatore quando si attiva l'High-Speed Counter. Quando l'High-Speed Counter è in modalità conteggio, l'accumulatore viene automaticamente aggiornato dal sottosistema dell'HSC, per propagare il valore effettivo dell'accumulatore dell'HSC. HP Parametri Tipo di dati Accesso al programma utente HSCSTS.HP DINT sola lettura HSCSTS.HP è il SetPoint superiore (nei conteggi) che definisce quando il sottosistema dell'HSC genera un'interruzione. Il numero dei dati caricati nell'impostazione valore alto preimpostato deve essere inferiore o uguale ai dati residenti nel parametro di overflow (HSCAPP.OFSetting). In caso contrario, viene generato un errore di HSC. Questa è l'impostazione più recente del valore alto preimpostato che può essere aggiornata tramite la funzione PLS dal blocco di dati PLS. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 309 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) LP Parametri Tipo di dati Modalità HSC Accesso al programma utente HSCSTS.LP DINT sola lettura HSCSTS.LP è il SetPoint inferiore (nei conteggi) che definisce quando il sottosistema dell'HSC genera un'interruzione. Il numero dei dati caricati nell'impostazione valore basso preimpostato deve essere superiore o uguale ai dati residenti nel parametro di underflow (HSCAPP.UFSetting). In caso contrario, viene generato un errore di HSC. Se i valori di underflow e dell'impostazione valore basso preimpostato sono numeri negativi, il valore basso preimpostato deve essere un numero con un valore assoluto inferiore. Questa è l'impostazione più recente del valore basso preimpostato che può essere aggiornata tramite la funzione PLS dal blocco di dati PLS. HPOutput Parametri Tipo di dati Accesso al programma utente HSCApp.HPOutput UDINT lettura/scrittura Definisce lo stato (1 = ON oppure 0 = OFF) delle uscite del controllore quando viene raggiunto il valore alto preimpostato . Per maggiori informazioni su come impostare direttamente su On oppure Off in base al valore alto preimpostato. È possibile configurare il modello di bit uscita alta durante l'impostazione iniziale o utilizzare il blocco di funzione HSC per caricare i nuovi parametri durante il funzionamento del controllore. LPOutput Parametri Tipo di dati Accesso al programma utente HSCApp.LPOutput UDINT lettura/scrittura LPOutput (HSCApp.LPOutput) definisce lo stato (1 = "on" oppure 0 = "off") delle uscite del controllore quando viene raggiunto il valore basso preimpostato. Per maggiori informazioni su come impostare direttamente le uscite su ON oppure OFF in base al valore basso preimpostato. È possibile configurare il modello di bit uscita bassa durante l'impostazione iniziale o utilizzare il blocco di funzione HSC per caricare i nuovi parametri durante il funzionamento del controllore. 310 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Esempio di parametri HSCSTSInfo Istruzioni per l'High Speed Counter (HSC) Nella seguente immagine sono rappresentati i parametri HSCSTSInfo nel Selettore di variabili. Vedere anche HSC a pagina 298 Tipo di dati PLS PLSData (tipo di dati PLS) è utilizzato per configurare l'interruttore di fine corsa programmabile . Elemento HSCHP HSCLP HSCHPOutput HSCLPOutput Elementi della struttura PLSData La struttura dati PLS è un array flessibile con i seguenti elementi. Ordine elemento Tipo di dati Descrizione elemento Parola 0...1 Parola 2...3 Parola 4...5 Parola 6...7 DINT Valore alto preimpostato DINT Valore basso preimpostato UDINT Dati uscita valore alto UDINT Dati uscita valore basso Il numero totale degli elementi di una struttura dati PLS non deve superare 255. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 311 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Parametri PLSData Nella seguente tabella sono elencati i dettagli relativi ai parametri PLSData. Elemento HSCHP HSCLP HSCHPOutput HSCLPOutput Tipo di dati DINT DINT UDINT UDINT Formato dati Modalità HSC Intero con segno a 32 bit 0 Intero con segno a 32 bit 0 Binario a 32 bit 0 Binario a 32 bit 0 Accesso al programma utente Descrizione lettura/scrittura lettura/scrittura lettura/scrittura lettura/scrittura Valore alto preimpostato Valore basso preimpostato Dati uscita valore alto Dati uscita valore basso Impostazione HSCApp HSCAPP.HpSetting HSCAPP.LpSetting HSCAPP.HPOutput HSCAPP.LPOutput Confronto tra impostazioni HSCApp e impostazioni PLSData Quando la funzione PLS è abilitata, le impostazioni HSCApp pertinenti sono sostituite dalle impostazioni PLSData corrispondenti, come descritto nella seguente tabella. Impostazione PLSData HSCHP HSCLP HSCHPOutput HSCLPOutput Esempio di parametri PLSData Nella seguente figura sono rappresentati i parametri PLSData nel Selettore di variabili. Vedere anche Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Istruzioni per l'High-Speed Counter (HSC) a pagina 297 Tipo di dati HSCE_CHANNEL Descrive il tipo di dati the HSCE_CHANNEL: @typedef struct struct_HSCE_channel { 312 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Byte Tipo di modulo ID slot HSCID Capitolo 14 USINT ModuleType; USINT SlotID; USINT HSCID; } HSCE_CHANNEL; La descrizione è riportata di seguito: Descrizione 0x00: Incorporato 0x01: Espansione (sezionato) 0x02: Porta universale 0x00: Incorporato 0x01-0x1F: ID del modulo di espansione (sezionato) 0x01-0x05: ID della porta universale 0x00-0x0F: Incorporato 0x00-0x07: ID di HSC per espansione 0x00-0x01: ID di HSC per porta universale Istruzioni per l'High Speed Counter (HSC) Vedere anche HSC a pagina 298 Tipo di dati HSCE_STS Di seguito è riportata la descrizione del tipo di dati HSCE_STS: Parametro Tipo di dati Modalità HSC Descrizione CountEnable BOOL ErrorDetected BOOL CountUpFlag BOOL CountDwnFlag BOOL Mode1Done BOOL OVF BOOL UNF BOOL CountDir BOOL HPReached BOOL LPReached BOOL OFCauseInter BOOL UFCauseInter BOOL HPCauseInter BOOL LPCauseInter BOOL StateInfo USINT PlsPosition UINT ErrorCode UINT Accumulator DINT HP DINT LP DINT HPOutput UDINT LPOutput UDINT 0...13 0...13 0...13 2...13 0 oppure 1 0...13 0...13 0...13 2...13 2...13 0...13 2...13 0...13 2...13 0...9 0...13 Conteggio abilitato. Diverso da zero indica un errore rilevato. Flag conteggio crescente. Flag conteggio decrescente. HSC è Mode 1A o Mode 1B; l'accumulatore conta fino al valore HP. Rilevato un overflow. Rilevato un underflow. 1: conteggio crescente; 0: conteggio decrescente. Raggiunto valore alto preimpostato. Raggiunto valore basso preimpostato. Overflow causato da interruzioni dell'HSC. Underflow causato da interrupt di HSC. Raggiunto valore alto preimpostato che ha causato un'interruzione nell'HSC. Raggiunto valore basso preimpostato che ha causato un'interruzione nell'HSC. Informazioni macchina di istruzioni contatore HSCE Posizione del interruttore di fine corsa programmabile. Il parametro PLSPosition viene reimpostato al termine di un ciclo completo e al raggiungimento del valore HP. Visualizza i codici di errore rilevati dal sottosistema dell'HSC. Lettura attuale accumulatore. Impostazione valore alto preimpostato più recente. Impostazione valore basso preimpostato più recente. Impostazione uscita valore alto preimpostato più recente. Impostazione uscita valore basso preimpostato più recente. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 313 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Vedere anche HSC a pagina 298 Tipo di dati PLS_HSCE La funzione interruttore di fine corsa programmabile (PLS) è un insieme aggiuntivo di modalità operative per l'High Speed Counter. In queste modalità i valori dei dati preimpostati di uscita vengono aggiornati usando i dati forniti dall'utente ogni volta che viene raggiunto uno dei valori preimpostati. Per programmare queste modalità, utilizzare un file PLS con i set di dati da usare. La struttura di dati PLS_HSCE è un vettore flessibile in cui ciascun elemento è definito come segue: Elemento Tipo di dati Descrizione elemento HighPreset LowPreset LINT Impostazione valore alto preimpostato LINT Impostazione valore basso preimpostato HiPresetOutput LoPresetOutput UDINT Dati uscita valore alto preimpostato UDINT Dati uscita valore basso preimpostato // struttura per elemento PLS typedef struct PLS_HSCE_EleStruct { LINT HighPreset; // valore alto preimpostato HSC LINT LowPreset; HSC // valore basso preimpostato di UDINT HiPresetOutput; // uscita valore alto preimpostato di HSC UDINT LoPresetOutput; // uscita valore basso preimpostato di HSC } PLS_HSCE_EleStruct; Il numero totale degli elementi per una serie di dati PLS_HSCE non deve essere maggiore di 24 per plug-in HSC. Vedere anche HSC a pagina 298 HSC_SET_STS (stato di impostazione dell'HighSpeed Counter) HSC_SET_STS permette l'impostazione o il ripristino manuale dello stato del conteggio dell'HSC. Dettagli operazione: · Il blocco funzione dell'HSC deve essere interrotto (conteggio fermo) per consentire l'impostazione o il ripristino dello stato HTS da parte del blocco funzione HSC_SET_STC. Se la funzione HSC non viene interrotta, i parametri di ingresso continuano a essere aggiornati e le modifiche eseguite utilizzando che HSC_SET_STS verranno ignorate. 314 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830 e Micro850. Parametro Enable HscID Mode1Done HPReached LPReached OFOccurred UFOccurred Sts ENO Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: imposta/esegue il reset dello stato dell'HSC. FALSE: nessuna modifica allo stato HSC. UINT Permette l'impostazione o il ripristino manuale dello stato dell'HSC. BOOL Conteggio modalità 1A o 1B completato. Può essere impostato o ripristinato quando HSC non è in conteggio. BOOL Raggiunto valore alto preimpostato. Può essere impostato o ripristinato quando HSC non è in conteggio. BOOL Raggiunto valore basso preimpostato. Può essere impostato o ripristinato quando HSC non è in conteggio. BOOL Si è verificato un overflow. Può essere impostato o ripristinato quando HSC non è in conteggio. BOOL Si è verificato un underflow. Può essere impostato o ripristinato quando HSC non è in conteggio. UINT I codici di stato sono definiti nei codici di stato HSC (Sts). BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Codici di stato (Sts) dell'HSC Nella tabella seguente sono descritti i codici di stato relativi al blocco funzione HSC. Codice stato Descrizione stato 0x00 Nessuna azione intrapresa (non abilitato). 0x01 Esecuzione dell'HSC completata. 0x02 Comando HSC non valido. 0x03 ID HSC fuori intervallo. 0x04 Errore di configurazione HSC. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 315 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Esempio di programmazione a blocchi funzionali HSC_SET_STS Esempio di diagramma ladder HSC_SET_STS Esempio di testo strutturato HSC_SET_STS 316 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Istruzioni per l'High-Speed Counter (HSC) a pagina 297 Utilizzo delle istruzioni dell'High-Speed Counter a pagina 317 Utilizzo delle istruzioni dell'High-Speed Counter Questa sezione fornisce dettagli ed esempi specifici per l'utilizzo delle istruzioni dell'high-speed counter nei programmi logici, inclusi i seguenti argomenti: Aggiornamento dei dati dell'applicazione HSC a pagina 317 Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: come creare un'High-Speed Counter (HSC) a pagina 324 Esempio: come aggiungere una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Esempio: interruttore fine corsa programmabile (PLS) abilitato a pagina 335 Aggiornamento dei dati dell'applicazione HSC La configurazione dell'HSC è definita nei dati dell'applicazione HSC e di norma viene eseguita solo una volta prima di programmare l'istruzione dell'HSC. Mentre l'HSC sta eseguendo il conteggio, le modifiche apportate ai dati dell'applicazione HSC (parametro HSCAppData) vengono ignorate. Per aggiornare la configurazione dell'HSC 1. Aggiornare HSCAppData. 2. Chiamare l'istruzione dell'HSC con il comando 0x03 (set/reload). Vedere anche Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: come creare un programma High-Speed Counter (HSC) a pagina 324 Esempio: interruttore fine corsa programmabile (PLS) abilitato a pagina 335 HSC (High Speed Counter) a pagina 298 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 317 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Finestra di dialogo Interruzione da parte dell'utente dell'High-Speed Counter (HSC) Come aprire la finestra di dialogo Interruzione da parte dell'utente dell'High-Speed Counter (HSC) Tra i tipi di interruzione, selezionare Interruzione da parte dell'utente dell'HSC (High Speed Counter). La finestra di dialogo per l'interruzione dell'HSC può essere utilizzata per le seguenti operazioni: · Configurazione delle proprietà di interruzione, quali ID e programma da utilizzare. · Configurazione dei parametri dell'interruzione. Vedere anche Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Istruzioni per l'High-Speed Counter a pagina 297 Configurazione di un Interrupt utente dell'High Speed Counter (HSC) Un'interruzione da parte dell'utente causa la sospensione dell'attività in esecuzione nel controllore, l'esecuzione di un'attività diversa e infine il ritorno all'attività precedente, nel punto in cui era stata sospesa. 318 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) I controllori Micro830, Micro850 e Micro870 supportano fino a sei interrupt utente HSC utilizzabili per eseguire la logica selezionata dall'utente quando si verifica un evento preconfigurato. Vedere anche Aggiornamento dei dati dell'applicazione HSC a pagina 317 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: Come creare un programma per l'High Speed Counter (HSC) a pagina 324 Esempio: interruttore fine corsa programmabile (PLS) abilitato a pagina 335 HSC (High Speed Counter) a pagina 298 Aggiunta e configurazione di Per aggiungere e configurare un interrupt HSC dallo spazio di lavoro di configurazione del controllore, attenersi alla seguente procedura. un'interruzione da parte dell'utente dell'High-Speed Counter (HSC) Per aggiungere un'interruzione HSC: 1. In Organizzatore progetto fare doppio clic sul controllore per aprire lo spazio di lavoro del controllore. 2. Nella struttura ad albero del controllore, fare clic su Interrupt per visualizzare la pagina di configurazione Interrupt. 3. Fare clic con il pulsante destro del mouse su una riga vuota, quindi fare clic su Aggiungi per visualizzare la finestra di dialogo con le proprietà dell'Interrupt. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 319 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) 4. Per configurare un interrupt HSC: · Tra i tipi di interruzione, selezionare Interruzione da parte dell'utente dell'HSC (High Speed Counter). · Selezionare le proprietà interrupt HSC. · Selezionare i parametri interrupt HSC. 5. Chiudere la finestra di dialogo delle proprietà Interrupt. Vedere anche Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Istruzioni per l'High-Speed Counter a pagina 297 Proprietà interruzione HSC a pagina 320 Parametri interruzione HSC a pagina 321 Proprietà interruzione HSC I bit di stato nelle proprietà dell'interruzione HSC indicano gli stati di abilitazione/disabilitazione e di esecuzione e se la condizione dell'interruzione è perduta o meno. Parametri HSCO.Enabled Formato dati bit Abilitazione dell'interruzione da parte dell'utente (HSC0.Enabled) Modalità HSC Accesso al programma utente 0...9 sola lettura Il bit Enabled è utilizzato per indicare lo stato di abilitazione o disabilitazione dell'interruzione dell'HSC. Parametri HSCO.Ex 320 Formato dati bit Esecuzione dell'interruzione da parte dell'utente (HSC0.EX) Modalità HSC Accesso al programma utente 0...9 sola lettura Il bit EX (esecuzione interruzione da parte dell'utente) è impostato (1) ogniqualvolta il sottosistema dell'HSC inizi a elaborare la sottoroutine dell'HSC a causa di una delle seguenti condizioni: · Raggiunto valore basso preimpostato · Raggiunto valore alto preimpostato · Condizione di overflow - Conteggio crescente fino al valore di overflow · Condizione di underflow - Conteggio decrescente fino al valore di underflow Il bit EX dell'HSC può essere utilizzato nel programma di controllo come logica condizionale, per determinare se è in esecuzione un'interruzione dell'HSC. Il sottosistema dell'HSC cancella (0) il bit EX quando il controllore completa l'elaborazione della sottoroutine dell'HSC. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri HSCO.PE Formato dati bit Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Interruzione da parte dell'utente in attesa (HSC0.PE) Modalità HSC Accesso al programma utente 0...9 sola lettura Il flag di stato PE (interruzione da parte dell'utente in attesa) indica che un'interruzione è momentaneamente sospesa. È possibile monitorare il bit di stato PE o utilizzarlo per la logica nel programma di controllo, se è necessario determinare quando non è possibile eseguire immediatamente una sottoroutine. Il bit PE è mantenuto dal controllore e viene impostato e cancellato automaticamente. Parametri HSCO.LS Formato dati bit Interruzione da parte dell'utente persa (HSC0.LS) Modalità HSC Accesso al programma utente 0...9 sola lettura Il flag di stato LS (interruzione da parte dell'utente persa) indica che un'interruzione è andata persa. Il controllore può elaborare una condizione attiva di interruzione da parte dell'utente e mantiene un'interruzione in attesa prima dell'impostazione del bit di perdita. Il bit LS è impostato dal controllore. L'utilizzo e il monitoraggio di una condizione di perdita sono gestiti dal programma di controllo. Vedere anche Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Parametri interruzione HSC I parametri dell'interruzione HSC servono per configurare le opzioni relative a maschera e avvio. Avvio automatico (HSC0.AS) Parametri Formato dati Modalità HSC Accesso al programma utente HSCO.AS bit 0...9 sola lettura L'avvio automatico è configurato con il dispositivo di programmazione e memorizzato come parte del programma utente. Il bit di avvio automatico definisce se la funzione di interruzione dell'HSC viene avviata automaticamente ogniqualvolta che il controllore entra in qualsiasi modalità di esecuzione o di collaudo. Maschera overflow (HSCO.MV) Il bit di controllo MV (maschera di overflow) viene utilizzato per abilitare (consentire) o disabilitare (non consentire) il verificarsi di un interrupt per overflow. Se il bit è disabilitato (0) e l'HSC rileva una condizione di Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 321 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) raggiunto overflow, l'interruzione HSC da parte dell'utente non viene eseguita. Il bit MV è controllato dal programma utente e mantiene il proprio valore anche in caso di spegnimento e riaccensione. Il programma utente deve impostare e cancellare il bit MV. Parametri Formato dati Modalità HSC Accesso al programma utente HSCO.MV bit 0...9 sola lettura Maschera underflow (HSCO.MN) Parametri Formato dati Modalità HSC Accesso al programma utente HSCO.MN bit 2...9 sola lettura Il bit di controllo MN (maschera di underflow) viene utilizzato per abilitare (consentire) o disabilitare (non consentire) un interrupt per underflow. Se il bit è disabilitato (0) e l'HSC rileva una condizione di raggiunto underflow, l'interrupt utente HSC non viene eseguito. Il bit MN è controllato dal programma utente e mantiene il proprio valore anche in caso di spegnimento e riaccensione. Il programma utente deve impostare e cancellare il bit MN. Maschera preimpostata alta (HSCO.MH) Parametri Formato dati Modalità HSC Accesso al programma utente HSCO.MH bit 0...9 sola lettura Il bit di controllo MH (maschera del valore alto preimpostato) è utilizzato per abilitare (consentire) o disabilitare (non consentire) un interrupt per valore alto preimpostato. Se il bit viene cancellato (0) e l'HSC rileva una condizione di raggiunto valore alto preimpostato, l'interrupt utente HSC non viene eseguito. Il bit MH è controllato dal programma utente e mantiene il proprio valore anche in caso di spegnimento e riaccensione. Il programma utente deve impostare e cancellare il bit MH. Maschera preimpostata bassa (HSCO.MH) Parametri Formato dati Modalità HSC Accesso al programma utente HSCO.ML bit 2...9 sola lettura Il bit di controllo ML (maschera valore basso preimpostato) è utilizzato per abilitare (consentire) o disabilitare (non consentire) un interrupt per valore basso preimpostato. Se il bit viene cancellato (0) e viene rilevata dall'HSC una condizione di raggiunto valore basso preimpostato, l'interrupt utente HSC non viene eseguito. Il bit ML è controllato dal programma utente e mantiene il proprio valore anche in caso di spegnimento e riaccensione. Il programma utente deve impostare e cancellare il bit ML. 322 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Configurazione di un Interrupt utente dell'High Speed Counter (HSC) a pagina 318 Configurazione di un interruttore di fine corsa programmabile (PLS) L'high-speed counter prevede modalità operative aggiuntive per l'implementazione di un interruttore di fine corsa programmabile (PLS). La funzione PLS si utilizza per configurare l'High-Speed Counter in modo da farlo funzionare come un PLS o un commutatore rotativo a camme. La funzione PLS supporta fino a 255 coppie di valori alti e bassi preimpostati e può essere utilizzata quando è necessaria più di una coppia di questi valori. Abilitazione della PLS nell'HSC La modalità PLS è operativa solo insieme all'HSC del controllore Micro800 e deve essere abilitata nell'istruzione HSC impostando il parametro HSCAppData.PLSEnable su True. Il parametro PLSPosition viene ripristinato al termine di un ciclo completo e al raggiungimento del valore HSCSTS.HP. Il reset dell'istruzione HSC o lo spostamento dello 0 sul parametro PLSPosition non esegue il reset di PLSPosition. Operazione HSC con PLS abilitata La funzione PLS può operare con tutte le altre funzionalità dell'HSC, compresa la possibilità di selezionare gli eventi HSC che generano un'interruzione da parte dell'utente. Quando è abilitata la funzione PLS e il controllore è in modalità di esecuzione, l'HSC conta gli impulsi in ingresso e si verificano i seguenti eventi. · Quando il conteggio raggiunge il primo valore preimpostato (HSCHP or HSCLP) definito nei dati PLS, i dati di origine per l'uscita (HSCHPOutput o HSCLPOutput) sono scritti nella maschera dell'HSC (HSCAPP.OutputMask). · A questo punto i valori preimpostati successivi (HSCHP e HSCLP) definiti nei dati PLS diventano attivi. · Quando l'HSC esegue il conteggio fino al nuovo valore preimpostato, i nuovi dati di uscita vengono scritti nella maschera dell'HSC. · Questo processo continua fino al caricamento nel blocco dati PLS dell'ultimo elemento. · A questo punto l'elemento attivo nel blocco dati PLS viene ripristinato a zero. · Questo comportamento è definito operazione circolare. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 323 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) La differenza valore preimpostato PLS tra HSC integrato e modulo plug-in HSC I comportamenti preimpostati HSCHP e HSCLP PLS sono diversi tra modulo HSC integrato e modulo plug-in HSC. Il bit valore altro preimpostato HSC integrato verrà impostato solo quando viene eseguito l'ultimo PLS, mentre il bit valore alto preimpostato del modulo plug-in HSC verrà impostato quando viene eseguito il primo PLS. Ad esempio: · HSC PLS0-PLS23 integrato: Valore altro preimpostato verrà impostato quando il valore PLS23HP=Accumulator Valore basso preimpostato verrà impostato quando il valore PLS23LP=Accumulator · PLS0-PLS23 plug-in HSC: Valore altro preimpostato verrà impostato quando il valore PLS0HP=Accumulator Valore basso preimpostato verrà impostato quando il valore PLS0LP=Accumulator Vedere anche Configurazione degli interrupt da parte dell'utente dell'HighSpeed Counter (HSC) a pagina 318 Esempio: Come creare un programma High Speed Counter (HSC) a pagina 324 Esempio: interruttore fine corsa programmabile (PLS) abilitato a pagina 335 HSC (High Speed Counter) a pagina 298 Aggiornamento dei dati dell'applicazione HSC a pagina 317 Esempio: come creare un programma High-Speed Counter (HSC) Questo esempio illustra come creare un programma High-Speed Counter (HSC) che impiega un encoder in quadratura e include una funzione interruttore di fine corsa programmabile (PLS). Encoder in quadratura utilizzato nell'esempio Nell'esempio di programma, per l'High Speed Counter si utilizza un blocco funzione dell'HSC e un contatore in quadratura con ingressi in fase A e B. L'encoder in quadratura determina la direzione di rotazione e la posizione dello strumento rotante, ad esempio un tornio. Il contatore bidirezionale conta le rotazioni dell'encoder in quadratura. Il seguente encoder in quadratura è connesso agli ingressi 0 e 1. La direzione del conteggio è determinata dall'angolo di fase tra A e B: 324 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) · Se A porta a B, il contatore segna un incremento. · Se B porta ad A, il contatore segna un decremento. Creazione di un programma High-Speed Counter (HSC) Eseguire le seguenti attività per creare, compilare e testare il programma HSC, quindi aggiungere una funzione PLS. Intestazione tabella 1 2 Intestazione tabella Creazione di un ladder diagram e aggiunta di variabili a pagina 325 Assegnazione di valori alle variabili HSC a pagina 328 3 Assegnazione di variabili e compilazione del programma a pagina 329 4 Test del programma ed esecuzione dell'High-Speed Counter a pagina 331 5 Aggiunta di una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Creazione di un ladder diagram e aggiunta di variabili Vedere anche Aggiornamento dei dati dell'applicazione HSC a pagina 317 Configurazione degli interrupt da parte dell'utente dell'HighSpeed Counter (HSC) a pagina 318 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: interruttore fine corsa programmabile (PLS) abilitato a pagina 335 HSC (High Speed Counter) a pagina 298 Creare un diagramma ladder e aggiungere variabili locali al ramo. In questo programma esemplificativo si utilizza un controllore 2080-LC5024QVB. L'HSC è supportato da tutti i controllori Micro830 e Micro850, tranne i tipi di controllore 2080-LCxx-xxAWB. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 325 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Per creare un diagramma ladder e aggiungere variabili: 1. Nella Casella degli strumenti dispositivo espandere la scheda Catalogo per visualizzare le cartelle del dispositivo. 2. Espandere le cartelle Controllori e Micro830 per visualizzare tutti i controllori Micro830. Fare doppio clic su un controllore (2080LC50-24QVB) per aggiungerlo all'Organizzatore progetto. 3. Nell'Organizzatore progetto fare clic con il pulsante destro del mouse su Programmi, scegliere Aggiungi e quindi fare clic su Nuovo LD: ladder diagram per aggiungere un nuovo programma con logica ladder. 4. Fare clic con il pulsante destro del mouse su UntitledLD, quindi scegliere Apri. 5. Nella finestra di dialogo Casella degli strumenti. · Fare doppio clic su Contatto diretto per aggiungerlo al piolo oppure · Trascinare e rilasciare un Contatto diretto sul piolo. 6. Assegnare una variabile al contatto diretto: 326 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) · Fare doppio clic sul contatto diretto per visualizzare il Selettore di variabili, quindi fare clic sulla scheda I/O Micro830. · Fare clic su _IO_EM_DI_05 e quindi su OK per assegnare il contatto diretto all'ingresso 5. 7. Nella finestra di dialogo Casella degli strumenti, selezionare un blocco funzione e trascinarlo a destra del contatto diretto, come mostrato nella seguente immagine. 8. Fare doppio clic sul blocco funzione per visualizzare il Selettore blocco istruzione. 9. Nel Selettore blocco istruzione, selezionare HSC e fare clic su OK. 10. Verificare che il piolo del ladder risulti simile alla seguente figura. 11. Nell'Organizzatore progetto fare doppio clic su Variabili locali per visualizzare la pagina Variabili. 12. Nella pagina Variabili, aggiungere le variabili e i tipi di dati riportati di seguito. Nome variabile Tipo di dati MyCommand USINT MyAppData HSCAPP MyInfo HSCSTS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 327 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) MyPLS PLS MyStatus UINT Risultato La pagina Variabili deve corrispondere all'immagine seguente: Vedere anche Aggiunta di una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: Come creare un programma per l'High Speed Counter (HSC) a pagina 324 HSC (High Speed Counter) a pagina 298 Assegnazione di valori alle variabili HSC Una volta aggiunte le variabili, attenersi alla seguente procedura per aggiungere valori alle variabili utilizzando la colonna Valore iniziale nel Selettore di variabili. Un programma standard di norma utilizza una routine per assegnare valori alle variabili. Per assegnare valori alle variabili HSC: 1. Espandere MyAppData per visualizzare tutte le variabili. 2. Assegnare il valore della modalità HSC: · Nel campo Valore iniziale della variabile MyAppData.HSCMode digitare 6. · Per maggiori informazioni sulla descrizione di ciascun valore, vedere HSCMode in Tipo di dati HSCAPP. 328 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) 3. Assegnare il resto dei valori alle variabili MyAppData, come mostrato nella seguente figura. · Nel campo Valore iniziale immettere il valore. · Vedere tipo di dati HSCAPP per maggiori informazioni sulla descrizione di ciascun valore. 4. Assegnare il valore comando HSC: · Nel campo Valore iniziale della variabile MyCommand digitare 1. · Per maggiori informazioni sui valori del comando, vedere Valori HSCCmd a pagina 300. Vedere anche Aggiunta di una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Assegnazione di variabili e compilazione del programma a pagina 329 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: come creare un programma High-Speed Counter (HSC) a pagina 324 Tipo di dati HSCAPP a pagina 301 Assegnazione di variabili e compilazione del programma Una volta immessi i valori nelle variabili HSC, attenersi alla seguente procedura per assegnare le variabili al blocco funzione e compilare il programma. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 329 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Per assegnare variabili e compilare il programma: 1. Nell'editor di diagramma ladder, assegnare ciascuna variabile all'elemento di blocco funzione HSC come mostrato. 2. Nell'Organizzatore progetto, fare clic sul controllore per visualizzare la relativa struttura ad albero. 330 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) 3. Dalla struttura ad albero del controllore, fare clic su I/O integrato e selezionare i filtri di ingresso dell'encoder. 4. Verificare che l'encoder sia connesso al controllore Micro830. 5. Avviare il controllore Micro830 e connetterlo al computer. 6. Compilare il programma e scaricarlo nel controllore. Vedere anche Esempio: Come creare un programma per l'High Speed Counter (HSC) a pagina 324 Creazione di un ladder diagram e aggiunta di variabili a pagina 325 Assegnazione di valori alle variabili HSC a pagina 328 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Aggiunta di una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Test del programma ed esecuzione dell'High-Speed Counter Una volta scaricato il programma per l'HSC nel controllore, è possibile collaudarlo e quindi eseguire l'High-Speed Counter. Per collaudare il programma: 1. Connettersi al controllore. 2. Dall'Organizzatore progetto, fare doppio clic sul programma HSC, quindi doppio clic su Variabili locali. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 331 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) È possibile visualizzare i valori delle due uscite dell'HSC: STS (MyStatus) e HSCSTS (MyInfo). 3. Fare doppio clic sul contatto diretto _IO_EM_DI_05 per aprire la finestra Selettore di variabili. 4. Fare clic sulla scheda I/O Micro830, quindi sulla riga _IO_EM_DI_05. 5. Selezionare Blocco e Valore logico per forzare la posizione ON sull'ingresso. 6. Per visualizzare i risultati, fare clic sulla scheda Variabili locali per visualizzare le modifiche alle variabili. 7. Espandere l'elenco variabili MyAppData e MyInfo. 8. Accendere l'encoder per visualizzare il conteggio crescente/decrescente. Ad esempio, se l'encoder è installato in un albero motore, accendere il motore per attivare il conteggio dell'HSC. 9. Verificare che il Valore logico di nella variabile MyStatus sia 1, a indicare che l'HSC è in funzione. 10. Visualizzare il valore del conteggio in MyInfo.Accumulator. Vedere HSC (High Speed Counter) per l'elenco completo dei codici di stato. Risultati In questo esempio, quando MyInfo.Accumulator raggiunge un valore alto preimpostato di 40, l'uscita 0 passa a On e il flag HPReached 332 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) passa a On. Se MyInfo.Accumulator raggiunge un valore basso preimpostato di -40, l'uscita 1 si attiva e il flag LPReached si attivano. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 333 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Vedere anche Aggiunta di una funzione interruttore di fine corsa programmabile (PLS) a pagina 334 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: Come creare un programma per l'High Speed Counter (HSC) a pagina 324 HSC (High Speed Counter) a pagina 298 Add a Programmable Limit Switch (PLS) function L'esempio mostra come aggiungere una funzione Interruttore di fine corsa programmabile (PLS) al programma HSC. Valori delle variabili per le impostazioni del contatore: · MyAppData.PlsEnable serve per attivare e disattivare le impostazioni PLS. Deve essere impostato a FALSE (disabilitato) se viene utilizzata la variabile MyAppData. · MyAppData.HscID serve per specificare quale input viene utilizzato in base alla modalità e al tipo di applicazione. Vedere gli schemi dei cablaggi e degli input HSC, per riconoscere i diversi ID utilizzabili, così come gli input integrati e le relative caratteristiche. · Se viene utilizzato ID 0, ID 1 non può essere utilizzato nello stesso controllore, in quanto gli input sono utilizzati da Reset e Hold. · MyAppData.HscMode serve per specificare il tipo di operazione utilizzata da HSC per il conteggio. Vedere la modalità HSC (HSCAPP.HSCMode). Per abilitare la funzione PLS: 1. In Organizzatore progetto, fare doppio clic su Variabili locali per visualizzare la pagina Variabili. 2. Abilitare la funzione PLS: · Nel campo Valore iniziale della variabile MyAppData.PlsEnable selezionare TRUE. 3. Configurare le impostazioni di underflow e overflow: · Nel campo Valore iniziale di MyAppData.OFSetting digitare 50. · Nel campo Valore iniziale di MyAppData.UFSetting digitare - 50. 4. (facoltativo) Configurare la maschera di uscita se si tratta di un'uscita. I risultati in questo esempio: · La variabile PLS ha una dimensione di [1..4]. Ciò significa che l'HSC può avere quattro coppie di valori alto e basso preimpostati. 334 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) · I valori alti preimpostati devono sempre essere impostati su un valore inferiore rispetto a OFSetting, mentre i valori bassi preimpostati devono essere impostati su un valore superiore rispetto a UFSetting. · I valori HscHPOutPut e HscLPOutPut determinano le uscite che vengono attivate, al raggiungimento di un valore alto o basso preimpostato. Vedere anche Esempio: come creare un programma High-Speed Counter (HSC) a pagina 324 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: interruttore fine corsa programmabile (PLS) abilitato In questo esempio vengono descritti i risultati in caso di funzione PLS abilitata con specifici valori per i parametri HSC e PLSData. Valori del parametro HSC Questo esempio presuppone che i parametri HSC siano impostati sui seguenti valori: · HSCApp.OutputMask = 31 · HSCApp.HSCMode = 0 · L'HSC controlla solo l'uscita integrata 0...4 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 335 Capitolo 14 Istruzioni per l'High Speed Counter (HSC) Valori del parametro PLSData Nell'esempio si presuppone che i parametri PLSData relativi alla variabile (HSC_PLS) siano configurati nel modo indicato di seguito. Risultati abilitati dalla PLS Nell'esempio si verificano i seguenti eventi. · Alla prima esecuzione della logica ladder: HSCSTS.Accumulator = 1 significa che tutte le uscite sono disattivate. · Quando HSCSTS.Accumulator = 250, HSC_PLS[1].HSCHPOutput è inviato alla maschera HSCAPP.OutputMask e attiva le uscite 0 e 1. · Si ripete l'invio dell'uscita con valore alto preimpostato alla maschera delle uscite, finché HSCSTS.Accumulator raggiunge 500, 750 e 1000; il controllore attiva rispettivamente le uscite 0...2, 0...3 e 0...4. · Al termine del funzionamento, il ciclo viene reimpostato e ripetuto da HSCSTS.HP = 250. · Quando l'intero ciclo è completo e il valore HSCSTS.HP viene raggiunto, il parametro PLSPositon viene ripristinato. Vedere anche Aggiornamento dei dati dell'applicazione HSC a pagina 317 Configurazione delle interruzioni da parte dell'utente dell'HighSpeed Counter (HSC) a pagina 318 Configurazione di un interruttore di fine corsa programmabile (PLS) a pagina 323 Esempio: come creare un programma High-Speed Counter (HSC) a pagina 324 HSC (High Speed Counter) a pagina 298 336 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzione HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 HSCE_READ_STS a pagina 346 HSCE_SET_STS a pagina 337 HSCE Istruzioni HSCE Capitolo 15 Utilizzare le istruzioni HSCE per monitorare e controllare l'High Speed Counter. Descrizione HSCE: avvio, arresto e lettura del valore dell'accumulatore. HSCE_CFG è la configurazione dell'High Speed Counter. HSCE_CFG_PLS è la configurazione dell'interruttore di fine corsa programmabile (PLS) dell'High Speed Counter. HSCE_READ_STS legge lo stato dell'High Speed Counter. HSCE_SET_STS imposta/esegue il reset manuale dello stato dell'High Speed Counter. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Tipo di dati HSCE_CHANNEL a pagina 312 Tipo di dati HSCE_STS a pagina 313 Tipo di dati PLS_HSCE a pagina 314 HSCE è utilizzato per controllare e leggere il contatore HSC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 337 Capitolo 15 Istruzioni HSCE Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable Canale Run Reset Done Attivo Rate1 Rate2 TPValue OutputSts Stato Errore ErrorID Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso BOOL HSCE_CHANNEL BOOL TRUE: HSCE avvia il blocco funzione e il modulo plug-in HSC. Accumulatore = InitAcc. Verrà eseguito il reset di HSCE. Rate1 = 0, Rate2 = 0. FALSE: l'accumulatore viene aggiornato con la lettura dal modulo plug-in. Done, Active, Error = FALSE dove ErrorID = 0, Rate1, Rate2 = 0. Il canale HSCE. Permette a HSCE di conteggiare lo stato operativo. TRUE: HSCE conteggia gli impulsi. FALSE: HSCE arresta il conteggio. Ingresso BOOL Uscita BOOL Uscita BOOL Uscita REAL Uscita REAL Uscita LINT Uscita UINT Uscita UINT Uscita BOOL Uscita UINT True: tutte le uscite vengono cancellate e l'accumulatore. Anche Rate1 e Rate2 vengono cancellati e impostati su 0. Cancella lo stato del modulo plug-in HSC. La priorità di Reset input è maggiore del valore immesso per Run True: se HSCE Enable è True e non viene rilevato alcun errore False: se HSCE Enable è True ma Run è False. True: se HSCE Enable è True, Done è True e Run è False. False: se HSCE Enable è True ma Run è False. Frequenza di impulso corrente in unità utente al secondo (metodo Per impulso). Frequenza di impulso corrente in unità utente al secondo (metodo Ciclico). Acquisizione del valore accumulatore quando si attiva il tastatore. Stato uscita fisica e virtuale del plug-in HSC, applicabile solo al contatore HSC 0. Bit 0: Uscita 0 (stato uscita fisica) Bit da 1 a 15: Da Uscita 1 a Uscita 15 (stato uscita virtuale) Informazioni di stato dell'HSC. Indica che si è verificato un errore. Se si verifica un errore, ErrorID contiene il codice dell'errore. 338 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 15 Esempio di programmazione a blocchi funzionali HSCE Istruzioni HSCE Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 339 Capitolo 15 Istruzioni HSCE Esempio di diagramma ladder HSCE Esempio di testo strutturato HSCE 340 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 HSCE_CFG Vedere anche HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 HSCE_READ_STS a pagina 346 HSCE_SET_STS a pagina 348 Capitolo 15 Istruzioni HSCE HSCE_CFG è utilizzato per configurare l'High Speed Counter. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Execute Canale InitAccumulator OFSetting UFSetting HPSetting LPSetting PLS_Offset Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso BOOL Il fronte di salita avvia la configurazione dell'HSC. (HSCE Enable deve essere uguale a FALSE) Il fronte di discesa cancellerà tutti i valori di uscita. HSCE_CHANNE Il canale HSCE. L LINT Valore iniziale accumulatore. LINT Valore limite per overflow contatore. LINT Valore limite per underflow contatore. LINT Valore alto preimpostato (HP) di HSCE. LINT Valore basso preimpostato (LP) di HSCE. USINT Offset per l'avvio nel vettore dati PLS. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 341 Capitolo 15 Istruzioni HSCE OutputMask HPOutput LPOutput Done Errore ErrorID Ingresso Ingresso Ingresso Uscita Uscita Uscita USINT Maschera di uscita per la funzionalità PLS. UDINT Stato uscite valore alto preimpostato. UDINT Stato uscite valore basso preimpostato. BOOL Azione di configurazione dell'HSC (avviata da questa istruzione) eseguita correttamente. BOOL Indica che si è verificato un errore. UINT Se si verifica un errore, ErrorID contiene il codice dell'errore. Esempio di programmazione a blocchi funzionali HSCE_CGF 342 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder HSCE_CGF Capitolo 15 Istruzioni HSCE Esempio di testo strutturato HSCE_CGF Vedere anche Istruzioni HSCE a pagina 337 HSCE a pagina 337 HSCE_CFG_PLS a pagina 344 HSCE_READ_STS a pagina 346 HSCE_SET_STS a pagina 348 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 343 Capitolo 15 Istruzioni HSCE HSCE_CFG_PLS Utilizzare questa istruzione per la configurazione di HSC con interruttore di fine corsa programmabile (PLS). Questa funzione fornisce un insieme aggiuntivo di modalità operative per l'High Speed Counter. In queste modalità i valori dei dati preimpostati di uscita vengono aggiornati usando i dati forniti dall'utente ogni volta che viene raggiunto uno dei valori preimpostati. Per programmare queste modalità, utilizzare un file PLS con i set di dati da usare. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Execute Canale InitAccumulator OFSetting UFSetting PLS_Data PLS_Size PLS_Offset OutputMask Done Errore ErrorID Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di Tipo di dati parametro Ingresso BOOL Ingresso Ingresso Ingresso Ingresso Ingresso HSCE_CHANNEL LINT LINT LINT PLS2 Descrizione Il fronte di salita avvia la configurazione dell'HSC. (HSCE Enable deve essere uguale a FALSE) Il fronte di discesa cancellerà tutti i valori di uscita. Il canale HSCE. Valore iniziale accumulatore. Valore limite per overflow contatore. Valore limite per underflow contatore. Vettore di PLS (PLS_64) Ingresso USINT Ingresso USINT Ingresso USINT Uscita BOOL Uscita BOOL Uscita UINT Dimensioni dei dati PLS, con valore massimo di 24 per il plug-in. Offset per l'avvio nel vettore dati PLS. Maschera di uscita per la funzionalità PLS. Azione di configurazione dell'HSC (avviata da questa istruzione) eseguita correttamente. Indica che si è verificato un errore. Se si verifica un errore, ErrorID contiene il codice dell'errore. 344 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 15 Istruzioni HSCE Esempio di programmazione a blocchi funzionali HSCE_CGF_PLS Esempio di diagramma ladder HSCE_CGF_PLS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 345 Capitolo 15 Istruzioni HSCE Esempio di testo strutturato HSCE_CGF_PLS HSCE_READ_STS Vedere anche Istruzioni HSCE a pagina 337 HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_READ_STS a pagina 346 HSCE_SET_STS a pagina 348 L'istruzione viene usata per leggere lo stato corrente dell'HSC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable Canale Valid HSCEStsInfo Errore ErrorID Tipo di parametro Ingresso Ingresso Uscita Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL HSCE_CHANNEL BOOL LINT BOOL UINT Se Enable è True, HSC2StsInfo viene aggiornato. Il canale HSCE. HSC2StsInfo è Valid se TRUE. Valore limite per overflow contatore. Indica che si è verificato un errore. Se si verifica un errore, ErrorID contiene il codice dell'errore. 346 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 15 Istruzioni HSCE Esempio di programmazione a blocchi funzionali HSCE_READ_STS Esempio di diagramma ladder HSCE_READ_STS Esempio di testo strutturato HSCE_READ_STS Vedere anche Istruzioni HSCE a pagina 337 HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 HSCE_SET_STS a pagina 348 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 347 Capitolo 15 Istruzioni HSCE HSCE_SET_STS L'istruzione consente l'impostazione e il reset manuali dei flag di stato nel conteggio dell'HSC. Il blocco funzione dell'HSC deve essere interrotto per consentire l'impostazione o il reset dello stato HTS da parte del blocco funzione HSCE_SET_STC. Se non si interrompe il blocco funzione dell'HSC o non si configura il canale HSC, il blocco funzione HSC2_SET_STS genererà un errore. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable Canale HPReached LPReached OFOccurred UFOccurred 348 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita Ingresso Ingresso Ingresso BOOL HSCE_CHANNEL BOOL BOOL BOOL BOOL Abilita Blocco funzione. TRUE: imposta/esegue il reset dello stato dell'HSC. FALSE: nessuna modifica allo stato HSC. Il canale HSCE. Quando si raggiunge il valore alto preimpostato, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o reimpostare questo bit tramite il blocco funzione HSCE_SET_STS. Quando si raggiunge il valore basso preimpostato, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o reimpostare questo bit tramite il blocco funzione HSCE_SET_STS. Quando si verifica un overflow, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o eseguire il reset di questo bit tramite il blocco funzione HSCE_SET_STS. Quando si verifica un underflow, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o reimpostare questo bit tramite il blocco funzione HSCE_SET_STS. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 TouchProbe Conserva Preimposta Done Errore ErrorID Ingresso Ingresso Ingresso Uscita Uscita Uscita Capitolo 15 Istruzioni HSCE BOOL Quando si attiva il tastatore, questo bit viene impostato su TRUE dal modulo plug-in. BOOL Quando si attiva il mantenimento dell'HSC, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o eseguire il ripristino di questo bit tramite il blocco funzione HSCE_SET_STS. Questo parametro di ingresso è valido solo per il contatore 0. Per il contatore 1 è sempre Reset BOOL Quando si attiva Z ACC Reset, questo bit viene impostato su TRUE dal modulo plug-in. Impostare o reimpostare questo bit tramite il blocco funzione HSCE_SET_STS. Questo parametro di ingresso è valido solo per il contatore 0. Per il contatore 1 è sempre Reset. BOOL Azione di configurazione dell'HSC (avviata da questa istruzione) eseguita correttamente. BOOL Indica che si è verificato un errore. UINT Se si verifica un errore, ErrorID contiene il codice dell'errore. Esempio di programmazione a blocchi funzionali HSCE_SET_STS Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 349 Capitolo 15 Istruzioni HSCE Esempio di diagramma ladder HSCE_SET_STS Esempio di testo strutturato HSCE_SET_STS Vedere anche Istruzioni HSCE a pagina 337 HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 HSCE_READ_STS a pagina 346 350 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codici di errore HSCE Capitolo 15 Istruzioni HSCE Nella tabella seguente sono descritti i codici di errore dello stato per le istruzioni HSCE: Codice ErrorID Descrizione errore Azione correttiva 0 L'istruzione ha completato correttamente l'operazione. 1 File di configurazione HSC non validi. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Per le informazioni sui contatti, visitare: http://www.rockwellautomation.com/support 2 Tipo di modulo HSC non valido. Correggere il tipo di modulo. Ad esempio, selezionare il tipo di modulo come plug-in. 3 ID slot HSC non valido. Correggere l'ID slot nel canale di ingresso del blocco funzione. 4 ID HSC non valido. 5 Modalità non valida per il canale. 6 Dimensione PLS non valida. 7 Offset PLS non valido. Correggere l'ID HSC. Ad esempio, impostare 0 per contatore 0. Contattare il rappresentante del supporto tecnico di Rockwell Automation. La dimensione PLS deve essere 24 e la dimensione del vettore dati PLS deve essere rispetto alla dimensione PLS. Offset PLS + Dimensione PLS deve essere inferiore alla dimensione del vettore dati PLS. 8 Valore InitAccumulator non valido. 9 LP non valido. 10 OF non valido. 11 UF non valido. 12 HP non valido. 13 Nessuna configurazione per HSCE. 14 Stato HSCE non valido. Correggere il valore InitAccumulator. È possibile che ecceda il limite o sia esterno all'intervallo del limite LP o HP (LP InitACC HP). Correggere il valore LP. Può eccedere il limite. Correggere il valore OF. Correggere il valore UF. Correggere il valore HP. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Controllare il blocco funzione HSCE correlato per confermare lo stato di questo blocco funzione. 15 Modulo plug-in non valido 16 HSCE è in esecuzione. Controllare il modulo plug-in per confermare che è un modulo HSC. Quando HSC è in fase di conteggio, non è consentito alcuno stato di configurazione e impostazione. HSCE_CFG e HSCE_CFG_PLS vengono eseguiti mentre HSCE è in esecuzione. 17 Errore arresto plug-in HSC. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 18 Errore aggiornamento velocità di scrittura. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 19 Errore scrittura del numero di più. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 20 Errore scrittura Applica ACC. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 21 Errore scrittura ACC. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 22 Errore scrittura Applica. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 23 Errore scrittura numero di PLS. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 24 Errore scrittura under flow. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 25 Errore scrittura over flow. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 26 Errore scrittura valore basso preimpostato. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 27 Errore scrittura valore alto preimpostato. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 28 Errore scrittura uscita valore basso preimpostato. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 29 Errore scrittura uscita valore alto preimpostato. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 30 Errore scrittura maschera di uscita. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 31 Errore scrittura uscita valore basso preimpostato Contattare il rappresentante del supporto tecnico di Rockwell Automation. PLS. 32 Errore scrittura uscita valore alto preimpostato PLS. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 33 Errore scrittura valore basso preimpostato PLS. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 34 Errore scrittura uscita valore alto preimpostato PLS. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 35 Errore scrittura offset PLS. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 351 Capitolo 15 Codice ErrorID 36 37 38 39 40 41 42 43 44 45 46 Istruzioni HSCE Descrizione errore Errore scrittura numero PLS. Errore lettura stato. Errore lettura valore alto preimpostato. Errore lettura valore basso preimpostato. Errore lettura ACC. Errore lettura larghezza numero di impulsi. Errore lettura larghezza impulso. Errore lettura numero di impulsi. Errore lettura velocità di aggiornamento. Errore scrittura stato. Errore lettura uscita valore basso preimpostato. 47 Errore lettura uscita valore alto preimpostato. 48 Errore lettura numero PLS. 49 N.D. 50 Errore scrittura stato Applica. 51 Canale di ingresso non valido. 52 Errore lettura tastatore. 53 Errore scrittura ripristino ACC. 54 Errore avvio HSC. 55 Contatore disabilitato. 56 Valore maschera di uscita non valido. 57 Uscita valore alto preimpostato non valida. Azione correttiva Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Contattare il rappresentante del supporto tecnico di Rockwell Automation. Il contatore HSC è disabilitato. Controllare la configurazione canale per verificare se il contatore HSC è abilitato. Controllare se la maschera di uscita è interna all'intervallo valido. Per modulo HSC plug-in, l'intervallo è 0-65535. Controllare se l'uscita HP è interna all'intervallo valido. Per modulo HSC plug-in, l'intervallo è 0-65535. 58 Uscita valore basso preimpostato non valida. Controllare se l'uscita LP è interna all'intervallo valido. Per modulo HSC plug-in, l'intervallo è 0-65535. 59 Revisione UPM non supportata. 60 Nessun modulo HSC aggiunto. Controllare la configurazione revisione per il modulo plug-in HSC. Controllare se il modulo plug-in effettivo è un modulo HSC. 61 Il modulo plug-in HSCE non è configurato. Contattare il rappresentante del supporto tecnico di Rockwell Automation. 62 Un errore di scrittura plug-in UPM si verifica durante Contattare il rappresentante del supporto tecnico di Rockwell Automation. la modifica della modalità plug-in HSC in modalità Non in esecuzione. 63 Un errore di scrittura plug-in UPM si verifica durante Contattare il rappresentante del supporto tecnico di Rockwell Automation. la modifica della modalità plug-in HSC in modalità Esecuzione. 64 Un errore lettura plug-in UPM si verifica durante la Contattare il rappresentante del supporto tecnico di Rockwell Automation. lettura dello stato di uscita. Vedere anche HSCE a pagina 337 HSCE_CFG a pagina 341 HSCE_CFG_PLS a pagina 344 352 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 HSCE_READ_STS a pagina 346 HSCE_SET_STS a pagina 348 Capitolo 15 Istruzioni HSCE Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 353 Istruzioni ingresso/uscita Capitolo 16 Utilizzare le istruzioni ingresso/uscita per leggere o scrivere i dati verso o da un controllore oppure un modulo utilizzando i segnali inviati verso un dispositivo fisicamente connesso a un controllore logico programmabile. I relè ingresso trasferiscono i segnali ai relè interni, mentre i relè uscita trasferiscono i segnali ai dispositivi di uscita esterni. Istruzione Descrizione LCD a pagina 356 LCD_BKLT_REM a pagina 358 Solo Micro810. Visualizza una stringa o un numero su una schermata LCD. Imposta i parametri di retroilluminazione dell'LCD remoto all'interno di un programma utente. LCD_REM a pagina 360 Visualizza i messaggi definiti dall'utente per l'LCD remoto. RHC a pagina 364 RPC a pagina 365 DLG a pagina 366 IIM a pagina 368 IOM a pagina 370 KEY_READ a pagina 372 KEY_READ_REM a pagina 375 MM_INFO a pagina 377 MODULE_INFO a pagina 380 PLUGIN_INFO a pagina 392 PLUGIN_READ a pagina 394 PLUGIN_RESET a pagina 397 PLUGIN_WRITE a pagina 398 RCP a pagina 400 RTC_READ a pagina 403 RTC_SET a pagina 405 SYS_INFO a pagina 407 TRIMPOT_READ a pagina 410 Legge il valore high speed clock nel controllore Micro800. Legge il checksum del programma dell'utente dal controllore o dal modulo di memoria. Scrive i valori di variabile dal motore di runtime in un file di registrazione dati su una scheda SD. Aggiorna gli ingressi prima della normale scansione in uscita. Aggiorna le uscite prima della normale in uscita. Solo Micro810. Legge lo stato della chiave su un modulo LCD opzionale quando il display dell'utente è attivo. Solo Micro820. Legge lo stato della chiave su un modulo LCD remoto opzionale quando il display dell'utente è attivo. Legge le informazioni sull'intestazione del modulo di memoria. Legge le informazioni di modulo da un modulo plug-in o di espansione ad eccezione del modulo di memoria 2080-MEMBAK-RTC. Legge le informazioni di modulo da un modulo plug-in generico o di espansione ad eccezione del modulo di memoria 2080-MEMBAK-RTC. Legge i dati da un modulo plug-in generico ad eccezione del modulo di memoria 2080-MEMBAKRTC. Esegue il reset dell'hardware per un modulo plug-in generico ad eccezione del modulo di memoria 2080-MEMBAK-RTC. Scrive i dati su un modulo plug-in generico ad eccezione del modulo di memoria 2080-MEMBAKRTC. Legge e scrive dati Ricetta su e da una scheda di memoria SD. Legge le informazioni sul modulo real-time clock (RTC). Imposta i dati RTC sulle informazioni del modulo RTC. Legge il blocco dati dello stato per il controllore Micro800. Legge il valore TrimPot da un trimpot specifico. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 355 Capitolo 16 Istruzioni ingresso/uscita LCD Visualizza una stringa o un numero sullo schermo LCD opzionale. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810. Parametro Enable Line1 Line2 Line3 Line4 LCD Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL STRING STRING STRING STRING BOOL Abilitazione istruzioni. TRUE: l'LCD passa allo schermo definito dall'utente (le stringhe vengono visualizzate sullo schermo LCD) invece che alla schermata di stato I/O. FALSE: l'LCD visualizza il contenuto della schermata di stato I/O. Stringa visualizzare alla riga 1 dell'LCD. Stringa visualizzare alla riga 2 dell'LCD. Stringa visualizzare alla riga 3 dell'LCD. Stringa visualizzare alla riga 4 dell'LCD. TRUE: la funzione è abilitata. Esempio di programmazione a blocchi funzionali LCD 356 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Diagramma ladder LCD Capitolo 16 Istruzioni ingresso/uscita Esempio di testo strutturato LCD (* Equivalenza ST: *) TESTOUTPUT := LCD(LCDENABLE, LINE1, LINE2, LINE3, LINE4) ; Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 357 Capitolo 16 Istruzioni ingresso/uscita Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 KEY_READ a pagina 372 LCD_BKLT_REM (retroilluminazione LCD remoto) Imposta i parametri di retroilluminazione dell'LCD remoto all'interno del programma utente. Dettagli operazione: Le impostazioni di retroilluminazione definite in LCD_BKLT_REM vengono utilizzate quando il display LCD remoto è: · Una schermata definita dall'utente mediante LCD_REM. · La schermata predefinita dello stato I/O. · Per tutte le altre schermate, le impostazioni di retroilluminazione utilizzate sono quelle definite per mezzo dei menu disponibili nell'LCD remoto. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820. 358 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri Enable Colore Modalità LCD_BKLT_REM Sts Tipo di parametro Capitolo 16 Istruzioni ingresso/uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Ingresso Ingresso Ingresso Uscita Uscita BOOL Abilitazione istruzioni. TRUE: esegue REM_LCD_BKLT, le eventuali impostazioni di retroilluminazione correnti vengono sovrascritte. FALSE: REM_LCD_BKLT viene disattivato e le impostazioni di menu LCD remoto diventano effettive. UINT Codice colore retroilluminazione · 0: Bianco · 1: Blu · 2: Rosso · 3: Verde · 4-65535: Riservato UINT · 0: Definitivamente OFF · 1: Definitivamente ON · 2: Lampeggiamento (intervallo 1 sec) · 3-65535: Riservato BOOL TRUE: istruzione eseguita con successo. FALSE: si è verificato un errore durante l'esecuzione dell'istruzione. UINT Stato dell'operazione dell'LCD remoto. Codici di stato LCD_BKLT_REM: · 0: ingresso abilitazione è False. · 1: riuscito. · 2: LCD remoto non rilevato. Potrebbe verificarsi quando: · L'LCD remoto non è connesso fisicamente al controllore oppure il cablaggio non è corretto. · Le impostazioni della porta seriale sono diverse rispetto a quelle richieste per l'LCD remoto. · 3: errore di connessione. Potrebbe verificarsi quando è presente un errore interno dello stato macchina, come un'incompatibilità tra la versione FW del controllore e la versione FW RLCD. · 4: codice colore non valido. · 5: modalità non valida. · 6-65535: riservato. Esempi di programmazione a blocchi funzionali LCD_BKLT_REM Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 359 Capitolo 16 Istruzioni ingresso/uscita Esempio di diagramma ladder LCD_BKLT_REM Esempio di testo strutturato LCD_BKLT_REM Vedere anche Istruzioni ingresso/uscita a pagina 355 LCD_REM (LCD remoto) Visualizza i messaggi definiti dall'utente per l'LCD remoto. Dettagli operazione: · Da Line1 a Line8 la lunghezza massima della stringa è di 24 caratteri. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 360 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Questa istruzione vale per i controllori Micro820. Istruzioni ingresso/uscita Parametri Enable Carattere Line1 Line2 Line3 Line4 Line5 Line6 Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitare il blocco istruzione. TRUE: l'LCD remoto passa dalla schermata di stato I/O alla schermata definita dall'utente. FALSE: l'LCD remoto torna alla schermata di stato I/O. UDINT Dimensioni carattere per il messaggio di avvio: · 0: Predefinito (grande - 8x16) · 1: Piccolo (8x8) · 2: Grande (8x16) · 3: Molto grande (16x16) · Da 4 in poi: Riservato Le dimensioni dell'LCD remoto sono pari a 192x64 pixel. Se l'opzione selezionata per le dimensioni carattere del messaggio di avvio è Piccolo, l'LCD remoto visualizza: · Stringhe dalla riga 1 alla riga 8. · Un massimo di 24 caratteri per riga. Stringa Stringa Stringa Stringa Stringa Stringa Se l'opzione selezionata per le dimensioni carattere del messaggio di avvio è Grande o Molto grande, l'LCD remoto visualizza: · Stringhe dalla riga 1 alla riga 4. · Ignora le stringhe dalla riga 5 alla riga 8. · Un massimo di 12 caratteri per riga. Stringa visualizzare alla riga 1 del LCD. Da Line1 a Line8 la lunghezza massima della stringa è di 24 caratteri. Stringa visualizzare alla riga 2 dell'LCD. Stringa visualizzare alla riga 3 dell'LCD. Stringa visualizzare alla riga 4 dell'LCD. Stringa visualizzare alla riga 5 dell'LCD. Stringa visualizzare alla riga 6 dell'LCD. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 361 Capitolo 16 Line7 Line8 LCD_REM Istruzioni ingresso/uscita Ingresso Ingresso Uscita Stringa Stringa BOOL Sts Uscita UINT Stringa visualizzare alla riga 7 dell'LCD. Stringa visualizzare alla riga 8 dell'LCD. Abilita Blocco funzione. Quando Enable = TRUE, lo schermo dell'utente è attivo. Quando Enable = FALSE, lo schermo Stato/Menu IO è attivo. Stato dell'operazione dell'LCD remoto. Codici di stato LCD_REM: · 0: ingresso abilitazione è False. · 1: messaggio utente visualizzato correttamente. · 2: LCD remoto non rilevato. · 3: errore di connessione. Potrebbe verificarsi quando: · L'LCD remoto non è connesso fisicamente al controllore (o il cablaggio non è corretto). · Le impostazioni della porta seriale sono diverse rispetto a quelle richieste per l'LCD remoto. · 4: codice font non valido. · 5: 5-65535: riservati. Esempio di programmazione a blocchi funzionali LCD_REM 362 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esempio di diagramma ladder LCD_REM Istruzioni ingresso/uscita Esempio di testo strutturato LCD_REM Vedere anche Istruzioni ingresso/uscita a pagina 355 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 363 Capitolo 16 Istruzioni ingresso/uscita RHC (lettura high speed clock) Legge il valore high speed clock nel controllore Micro800. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN ENO RHC Tipo di parametro Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: lettura high speed clock. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. UDINT Valore high speed clock. Tipo di controllore Micro810 Micro820 Micro830 Micro850 Risoluzione del clock ad alta velocità Incrementi Timebase 4 ogni 40 microsecondi 1 ogni 10 microsecondi 10 microsecondi 10 microsecondi Risoluzione 40 microsecondi 10 microsecondi Esempio di programmazione a blocchi funzionali RHS Esempio di Diagramma ladder RHS 364 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di testo strutturato RHS Capitolo 16 Istruzioni ingresso/uscita (* Equivalenza ST: *) TESTOUTPUT2 := RHC() ; Vedere anche Istruzioni ingresso/uscita a pagina 355 RPC (lettura checksum del programma) Legge il checksum del programma dell'utente dal controllore o dal modulo di memoria. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro MemMod ENO RPC Tipo di parametro Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: il valore viene preso dal modulo di memoria. FALSE: il valore viene preso dal controllore Micro800. BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. UDINT Valore di checksum di un programma specificato dell'utente. Esempio di programmazione a blocchi funzionali RPC Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 365 Capitolo 16 Istruzioni ingresso/uscita Esempio di diagramma ladder RPC Esempio di testo strutturato RPC DLG (registro dati) (* Equivalenza ST: *) TESTOUTPUT2 := RPC(TESTINPUT) ; Vedere anche Istruzioni ingresso/uscita a pagina 355 Scrive i valori di variabile dal motore di runtime in un file di registrazione dati su una scheda SD. durante la scrittura in un registro dati è consentito un massimo di 50 cartelle di gruppo per giorno. Ogni cartella di gruppo contiene un massimo di 50 file con una dimensione compresa tra 4k e 8k. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 366 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri Enable Tipo di parametro Ingresso Tipo di dati BOOL TSEnable Ingresso BOOL CfgID Ingresso USINT ENO Uscita BOOL Stato Uscita USINT ErrorID Uscita UDINT Capitolo 16 Istruzioni ingresso/uscita Descrizione Abilitazione di scrittura per la registrazione dati. TRUE: abilitazione del fronte di salita rilevata, avvia l'operazione di registrazione dei dati quando le operazioni dell'istruzione precedente sono state completate. FALSE: fronte di salita non rilevato. TRUE: flag di abilitazione registrazione indicatore data e ora. Numero ID configurazione registrazione dati VA ID da 1 a 10. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Stato corrente dell'istruzione. Codici di stato registrazione dati: · 0: Idle · 1: Doing · 2: Succeed, indica che la registrazione dei dati è stata completata. · 3: Error, indica che la registrazione dei dati è stata completata con errore. Un codice di errore numerico univoco per DLG. Codice errore 0 1 2 3 4 5 6 7 8 9 Codici di errore DLG Nome errore DLG_ERR_NONE DLG_ERR_NO_SDCARD Commenti Nessun errore. Scheda SD assente. DLG_ERR_RESERVED DLG_ERR_DATAFILE_ACCESS Riservato. Errore accesso file registrazione dati. DLG_ERR_CFG_ABSENT DLG_ERR_CFG_ID DLG_ERR_RESOURCE_BUSY DLG_ERR_CFG_FORMAT DLG_ERR_RTC DLG_ERR_UNKNOWN Il file di configurazione registrazione dati è assente. L'ID di configurazione nel file di configurazione registrazione dati è assente L'operazione di registrazione dati collegata a questo ID di registrazione dati è utilizzata da un'altra operazione FB. Il formato del file di configurazione registrazione dati non è valido. Real-Time Clock non valido. Si è verificato un errore non specificato. Esempi di programmazione a blocchi funzionali DLG Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 367 Capitolo 16 Istruzioni ingresso/uscita Esempio di diagramma ladder DLG Esempio di testo strutturato DLG Vedere anche Istruzioni ingresso/uscita a pagina 355 IIM (ingresso immediato) Aggiornamento degli input prima della normale scansione in output. Dettagli operazione: · Usate di solito all'inizio di un programma di interrupt per selezionare o mascherare gli ingressi che sono immediatamente scansionati per ottenere gli ingressi correnti. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 368 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Enable InputType InputSlot Tipo di parametro Ingresso Tipo di dati BOOL Ingresso USINT Ingresso USINT Sts Uscita USINT ENO Uscita BOOL Capitolo 16 Istruzioni ingresso/uscita Descrizione Abilitazione del blocco istruzione. TRUE: esegue il blocco istruzione. FALSE: non viene eseguito. Identifica il tipo di ingresso. 0 - Ingresso incorporato. 1 - Ingresso plug-in. Identifica lo slot di ingresso. 0: ingresso integrato. 1, 2, 3, 4, 5: numero slot plug-in. (Gli slot sono numerati da sinistra a destra, a partire da numero 1.) Per ingresso incorporato, è sempre 0. Per ingresso plug-in, slot ingresso 1,2,3,4,5,(numero slot plug-in, inizia dal primo slot a sinistra = 1). Stato scansione ingresso immediato. Codici di stato (Sts) IIM: · 0x00: non abilitato (nessuna azione intrapresa). · 0X01: scansione ingresso/uscita riuscita. · 0x02: tipo ingresso/uscita non valido. · 0x03: slot ingresso/uscita non valido. Abilita uscita. TRUE: ingresso aggiornato. FALSE: ingresso non aggiornato. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali IIM Esempio di diagramma ladder IIM Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 369 Capitolo 16 Istruzioni ingresso/uscita Esempio di testo strutturato IIM Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 IOM (uscita istantanea) Aggiornare le uscite prima della scansione delle uscite normali. Dettagli operazione: · Usate di solito alla fine di un programma di interrupt per selezionare o mascherare le uscite che sono immediatamente scansionati e aggiornate. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 370 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870. Parametro Enable OutputType OutputSlot Sts ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue l'istruzione. FALSE: non viene eseguito. USINT Identifica il tipo di uscita: 0 - Uscita integrata. 1 - Uscita plug-in. USINT Identifica lo slot di uscita: 0: uscita integrata 1, 2, 3, 4, 5: numero slot plug-in. (Gli slot sono numerati da sinistra a destra, a partire da numero 1.) Per uscita integrata, è sempre 0. Per uscita plug-in, slot uscita 1,2,3,4,5 (numero slot plug-in, inizia dal primo slot a sinistra = 1). USINT Stato scansione uscita immediato. Codici di stato (sts) IOM: · 0x00: non abilitato (nessuna azione intrapresa). · 0X01: scansione ingresso/uscita riuscita. · 0x02: tipo ingresso/uscita non valido. · 0x03: slot ingresso/uscita non valido. BOOL Abilita uscita. TRUE: uscita aggiornata. FALSE: uscita non aggiornata. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali IOM Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 371 Capitolo 16 Istruzioni ingresso/uscita Esempio di diagramma ladder IOM Esempio di testo strutturato IOM Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 KEY_READ (lettura tasti su LCD) Legge lo stato della chiave su un modulo LCD opzionale quando il display dell'utente è attivo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 372 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione si applica ai controllori Micro810. Parametri Enable CKYL EKYL CKY EKY UKY DKY LKY RKY Tipo di parametro Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilita il blocco istruzione. TRUE: abilita i tasti di lettura sulla tastiera LCD remoto. FALSE: disabilitai tasti di lettura sulla tastiera LCD remoto. BOOL TRUE: tasto ESC premuto per più di 2 secondi. BOOL TRUE: tasto OK premuto per più di 2 secondi. BOOL TRUE: tasto ESC premuto. BOOL TRUE: tasto OK premuto. BOOL TRUE: tasto Su premuto. BOOL TRUE: tasto Giù premuto. BOOL TRUE: tasto Sinistra premuto. BOOL TRUE: tasto Destra premuto. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 373 Capitolo 16 Istruzioni ingresso/uscita Esempio di programmazione a blocchi funzionali KEY_READ Esempio di diagramma ladder KEY_READ 374 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esempio di testo strutturato KEY_READ Istruzioni ingresso/uscita (* Equivalenza ST: *) KEY_READ_1(KEYENABLE) ; KEY_EKYL := KEY_READ_1.EKYL ; KEY_CKY := KEY_READ_1.CKY ; KEY_EKY := KEY_READ_1.EKY ; KEY_UKY := KEY_READ_1.UKY ; KEY_DKY := KEY_READ_1.DKY ; KEY_RKY := KEY_READ_1.RKY ; KEY_LKY := KEY_READ_1.LKY ; Vedere anche Istruzioni ingresso/uscita a pagina 355 LCD a pagina 356 KEY_READ_REM (lettura chiavi per LCD remoto) Legge lo stato della chiave su un modulo LCD remoto opzionale quando il display dell'utente è attivo. Dettagli operazione: · Utilizzare l'istruzione LCD_REM per attivare il display dell'utente sul modulo LCD remoto. Se il display dell'utente non è attivo, si verifica un errore durante l'esecuzione di KEY_READ_REM. · La proprietà del TASTO P nel file delle funzioni 'LCD devono essere attivate; altrimenti, tutti gli stati della chiave saranno FALSE. · Sono supportate solo pressioni di tasti singoli per l'istruzione KEY_READ_REAM; le combinazioni di due tasti non sono supportate. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 375 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione vale per i controllori Micro820. Parametri Enable KEY_READ_REM Sts KeyData Tipo di parametro Ingresso Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: abilita FALSE: disabilita BOOL TRUE: dati chiave LCD remoto letti con successo. FALSE: l'abilitazione è false, è presente un errore di lettura. Dati chiave LCD remoto o display utente non attivi. UINT Stato dell'operazione KEY_READ_REM . Codici di stato KEY_READ_REM: · 0: ingresso abilitazione è False. · 1: dati chiave letti correttamente. · 2: LCD remoto non rilevato. Potrebbe verificarsi quando: · L'LCD remoto non è connesso fisicamente al controllore (o il cablaggio non è corretto). · Le impostazioni della porta seriale sono diverse rispetto a quelle richieste per l'LCD remoto. · 3: errore di connessione. Potrebbe verificarsi quando è presente un errore interno alla macchina a stati. Probabilmente causato da un'incompatibilità tra la versione FW del controllore e la versione FW RLCD. · 4: display utente non attivo. · 5-65535: riservato. UDINT Dati del tastierino LCD remoto. Le definizioni KeyData sono specificate nella tabella dei campi di bit KeyData. Tabella dei campi di bit KeyData Utilizzare questa tabella per determinare i campi di bit per KEY_READ_REM. N. bit in KeyData Nome Descrizione parametro 0 UKY TRUE = tasto su premuto. 1 DKY TRUE = tasto giù premuto. 2 LKY TRUE = tasto sinistra premuto. 3 RKY TRUE = tasto destra premuto. 4 F1KY TRUE = tasto F1 premuto. 5 F2KY TRUE = tasto F2 premuto. 6 F3KY TRUE = tasto F3 premuto. 7 F4KY TRUE = tasto F4 premuto. 8 F5KY TRUE = tasto F5 premuto. 9 F6KY TRUE = tasto F6 premuto. 376 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 N. bit in KeyData 10 11 12 13 14-31 Nome EKY CKY EKYL CKYL -- Descrizione parametro Capitolo 16 Istruzioni ingresso/uscita TRUE = tasto INVIO premuto. TRUE = tasto CANC premuto. TRUE = tasto INVIO premuto per più di 2 secondi. TRUE = tasto CANC premuto per più di 2 secondi. Riservato. Esempio di programmazione a blocchi funzionali KEY_READ_REM Esempio di diagramma ladder KEY_READ_REM Esempio di testo strutturato KEY_READ_REM MM_INFO (informazioni sul modulo di memoria) Vedere anche Istruzioni ingresso/uscita a pagina 355 Legge le informazioni dell'intestazione del modulo di memoria. Se non è presente un modulo di memoria, tutti i valori restituiscono zero (0). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 377 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Enable MMInfo ENO Tipo di parametro Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL MMINFO Abilitazione del blocco istruzione. TRUE: legge le informazioni sull'intestazione del modulo di memoria. FALSE: non c'è nessuna operazione di lettura e l'informazione sul modulo di memoria dell'uscita non è valida. Le informazioni sul modulo di memoria sono definite nel tipo di dati MMINFO. BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali MSG_INFO Esempio di Diagramma ladder MSG_INFO Esempio di Testo strutturato MSG_INFO 378 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 16 Istruzioni ingresso/uscita Per i controllori che utilizzano 2080-MEMBAK-RTC: Per i controllori che utilizzano una scheda SD: Vedere anche Tipo di dati MMINFO a pagina 380 Istruzioni ingresso/uscita a pagina 355 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 379 Capitolo 16 Istruzioni ingresso/uscita Tipo di dati MMINFO Nella tabella seguente sono descritti i parametri del tipo di dati MMINFO. Parametro Tipo di dati Descrizione MMCatalog Serie Revisione UPValid ModeBehavior LoadAlways LoadOnError FaultOverride MMPresent MMCATNUM UINT UINT BOOL BOOL BOOL BOOL BOOL BOOL Il codice del modulo di memoria. quando si utilizza l'istruzione MM_INFO su controllori con scheda SD, MMCatalog corrisponde a "SCHEDA SD". La serie del modulo di memoria. Quando si utilizza l'istruzione MM_INFO su controllori con scheda SD, la serie è 1. La revisione del modulo di memoria. Quando si utilizza MM_INFO su controllori con scheda SD, la revisione è 257. Programma utente presente (TRUE: trovato progetto potenzialmente valido). Nota: anche se TRUE, se in fase di download o ripristino risultano file mancanti o danneggiati, è comunque possibile che il progetto venga rilevato come non valido. Modalità di comportamento (TRUE: va a RUN all'accensione). Ripristina sempre il modulo di memoria al controllore all'accensione. Ripristina sempre il modulo di memoria al controllore in caso di errore all'accensione. Errore di sostituzione all'accensione. Il modulo di memoria è presente. Vedere anche MM_INFO a pagina 377 MODULE_INFO Legge le informazioni di modulo da un modulo plug-in o di espansione. Dettagli operazione: · Le informazioni sul modulo plug-in vengono lette durante la fase di esecuzione. · Il modulo plug-in di memoria 2080-MEMBAK-RTC non è supportato. · Le informazioni del Modulo di espansione vengono lette quando il modulo è alimentato. · Quando un modulo plug-in o di espansione non viene definito con un ModuleID, ProductType o ProductCode, l'operazione di MODULE_INFO restituisce 0 per il parametro di uscita interessato. · Le informazioni di identificazione modulo plug-in e di espansione sono definite da Allen-Bradley e vengono fornite sotto come parte della descrizione di MODULE_INFO. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 380 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. I moduli di espansione sono supportati solo dai controllori Micro850 e Micro870. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione Enable Ingresso ModuleType Ingresso SlotID Ingresso Done Presente Uscita Uscita ModID Uscita VendorID Uscita Tipo prodotto: Codice Prodotto ModRevision Errore Uscita Uscita Uscita Uscita ErrorID Uscita BOOL Abilitazione del blocco istruzione. TRUE: esegue l'operazione di lettura MODULE_INFO. FALSE: non esegue l'operazione di lettura. Tutti i valori dei dati di uscita sono ripristinati a 0. USINT Identifica il tipo di modulo: · 1: modulo di espansione 2085. · 2: modulo plug-in 2080. USINT Il numero degli slot dove si trovano i moduli plug-in o di espansione. Gli ID slot sono: 1, 2, 3, 4, 5 Lo slot 1 è all'estrema sinistra. BOOL TRUE: operazione completata correttamente. FALSE: l'operazione non è in esecuzione o si è verificato una condizione di errore. BOOL Rileva il modulo plug-in o di espansione nello slot del controllore. TRUE: il modulo è fisicamente presente. FALSE: il modulo non è fisicamente presente. UINT Identificazione per il modulo nello slot del controllore. · I moduli plug-in sono definiti con un identificatore modulo univoco. · I moduli di espansione non sono definiti con un identificatore modulo univoco, ModID restituisce 0. UINT ID fornitore del modulo plug-in o di espansione. Per i prodotti Allen-Bradley, l'ID fornitore è 1. UINT Tipo prodotto del modulo plug-in o di espansione. UINT Codice prodotto del modulo plug-in o di espansione. UINT Informazioni sulla revisione del modulo plug-in o di espansione. BOOL Indica la presenza di una condizione di errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. USINT Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore MODULE_INFO. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 381 Capitolo 16 Istruzioni ingresso/uscita Codici di errore MODULE_INFO Utilizzare questa tabella per determinare i codici di errore MODULE_INFO e le descrizioni. Codice errore Descrizione errore 1 Tipo di modulo non valido. Sostituire con un tipo di modulo valido. I tipi di modulo validi sono: · 1: modulo di espansione 2085. Supportato solo dai controllori Micro850. · 2: modulo plug-in 2080. Supportato dai controllori Micro820, Micro830 e Micro850. 2 Numero slot non valido. Sostituire con un numero slot valido. 3 Tipo di modulo di espansione non valido. 4 Errore irreversibile del modulo di espansione. 5 Le informazioni sulla lettura del modulo plug-in non sono supportate. 6 Si è verificato un errore nella lettura del modulo plug-in durante la lettura dell'ID modulo. 7 Si è verificato un errore nella lettura del modulo plug-in durante la lettura dell'ID fornitore. 8 Errore nella lettura del modulo plug-in durante la lettura del Tipo prodotto. 9 Si è verificato un errore nella lettura del modulo plug-in durante la lettura del Codice prodotto. 10 Si è verificato un errore nella lettura del modulo plug-in durante la lettura della Revisione modulo. Esempio di Programmazione a blocchi funzionali MODULE_INFO 382 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esempio di Diagramma ladder MODULE_INFO Istruzioni ingresso/uscita Esempio di Testo strutturato MODULE_INFO Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 383 Capitolo 16 Istruzioni ingresso/uscita Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 Diagrammi di temporizzazione dell'istruzione MODULE_INFO a pagina 386 MODULE_INFO - Informazioni sui moduli plug-in e di espansione a pagina 384 MODULE_INFO - Informazioni Le seguenti informazioni forniscono il tipo, l'ID modulo, l'ID fornitore e i Codici prodotto per i moduli plug-in e di espansione, oltre alle sui moduli plug-in e di descrizioni delle parole per la revisione dei moduli di espansione espansione definite da Allen-Bradley. Informazioni sul modulo a innesto Utilizzare questa tabella per determinare le informazioni sul modulo plug-in definite da Allen-Bradley. Modulo Plug-in 2080-IF2 2080-IF4 2080-OF2 2080-TC2 2080-RTD2 2080-DNET20 2080-SERIALISOL 2080-IQ4 2080-OB4 Tipo plug-in Analogico Analogico Analogico Analogico Analogico Comunicazione Comunicazione Digitale Digitale ID modulo 96 98 100 102 104 34 32 192 193 ID fornitore 1 1 1 1 1 1 1 1 1 Tipo prodotto 10 10 10 10 10 12 7 7 Codice prodotto 32 33 34 35 36 249 192 193 384 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 2080-OV4 2080-IQ4OB4 2080-IQ4OV4 2080-OW4I 2080-MOT-HSC 2080-TRIMPOT6 Digitale Digitale Digitale Digitale Speciale Speciale Capitolo 16 Istruzioni ingresso/uscita 194 1 7 194 195 1 7 195 196 1 7 196 197 1 7 197 48 1 43 48 72 1 - - Codice modello 2085-IF4 2085-IF8 2085-IRT4 2085-OF4 2085-IA8 2085-IM8 2085-IQ16 2085-IQ32T 2085-OA8 2085-OB16 2085-OV16 2085-OW16 2085-OW8 Informazioni sul modulo di espansione Utilizzare questa tabella per determinare le informazioni sul modulo di espansione definite da Allen-Bradley. Tipo di espansione ID modulo ID fornitore Tipo prodotto Codice prodotto Analogico - 1 10 208 Analogico - 1 10 206 Analogico - 1 10 213 Analogico - 1 10 214 Digitale - 1 7 1148 Digitale - 1 7 1152 Digitale - 1 7 1144 Digitale - 1 7 1145 Digitale - 1 7 1149 Digitale - 1 7 1146 Digitale - 1 7 1147 Digitale - 1 7 1151 Digitale - 1 7 1150 Descrizioni delle parole per la revisione del modulo di espansione Utilizzare questa tabella per determinare le informazioni sulle parole per la revisione dei moduli di espansione Allen-Bradley. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 385 Capitolo 16 Istruzioni ingresso/uscita Bit Nome Descrizione 15 Baud rate massimo (1:0) I bit identificano la frequenza massima per il Baud Rate massimo (1:0). 14 · 00 (bin) è 2 MB/s · 01 (bin) è 4 MB/s · 10 (bin) è 8 MB/s · 11 (bin) è 16 MB/s 13 Revisione secondaria (3:0) La Revisione secondaria (3:0) è la denominazione della revisione secondaria del prodotto. Questo campo 12 indica la revisione minore del numero del catalogo designato da ID fornitore, Tipo prodotto, Codice 11 prodotto, Serie e Revisione principale. 10 La Revisione secondaria è compresa tra 0 e 15. 9 Revisione principale (4:0) La Revisione principale (4:0) è la denominazione della revisione principale del prodotto. Questo campo 8 indica la revisione principale del numero del catalogo designato da ID fornitore, Tipo prodotto, Codice 7 prodotto e Serie. 6 La Revisione principale è compresa tra 0 e 31. 5 4 Serie (4:0) SERIE (4:0) è la denominazione delle serie del prodotto. Questo campo indica la lettera di serie del numero del catalogo designato da ID fornitore, Tipo prodotto e Codice prodotto. Serie Serie Serie Serie Serie Serie Serie Serie (4:0) (4:0) (4:0) (4:0) 0 A 8 I 16 Q 24 Y 1 B 9 J 17 R 25 Z 2 C 10 K 18 S 26 AA 3 D 11 L 19 T 27 AB 4 E 12 M 20 U 28 AC 5 F 13 N 21 V 29 AD 6 G 14 O 22 W 30 AE 7 H 15 P 23 X 31 >AE Vedere anche MODULE_INFO a pagina 380 Diagrammi di temporizzazione Gli esempi di diagramma di temporizzazione seguenti descrivono scenari di esecuzione per l'istruzione MODULE_INFO. dell'istruzione MODULE_INFO 386 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Completamento dell'esecuzione quando un modulo è fisicamente presente Utilizzare questa tabella per determinare i valori del parametro MODULE_INFO per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2, 3, 4 5. 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · ModuleType e SlotID sono validi. Un modulo fisico è presente. · I bit di uscita Completato e Presente sono TRUE. · Il bit di uscita Errore è FALSE. · Aggiornare di conseguenza le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo. Nessuna modifica nella condizione ramo. La condizione Ramo diventa FALSE quando il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. Nessuna modifica nella condizione ramo. Il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 387 Capitolo 16 Istruzioni ingresso/uscita Completamento dell'esecuzione quando il modulo non è fisicamente presente Utilizzare questa tabella per determinare i valori del parametro MODULE_INFO per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2, 3, 4 5. 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · ModuleType e SlotID sono validi. Non è presente un modulo fisico. · Il bit di uscita Completato è TRUE. · I bit di uscita Errore e Presente sono FALSE. · Aggiornare di conseguenza le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi e non è presente un modulo fisico. · Aggiornare di conseguenza i parametri di uscita. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Tutti i parametri di uscita vengono cancellati. Nessuna modifica nella condizione ramo. Il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. 388 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esecuzione di MODULE_INFO con errore Istruzioni ingresso/uscita Utilizzare questa tabella per determinare i valori del parametro MODULE_INFO per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2, 3, 4 5. 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · ModuleType e SlotID sono validi. Non è presente un modulo fisico. · I bit di uscita Completato e Presente sono TRUE. · Il bit di uscita Errore è TRUE. · Le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo sono deselezionate. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · ModuleType, SlotID o entrambi non sono validi. · Aggiornare di conseguenza i parametri di uscita. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Tutti i parametri di uscita vengono cancellati. Nessuna modifica nella condizione ramo. Il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 389 Capitolo 16 Istruzioni ingresso/uscita Completamento dell'esecuzione di MODULE_INFO con errore: nessun modulo fisico Utilizzare questa tabella per determinare i valori del parametro MODULE_INFO per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2 3, 4 5. 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · ModuleType o SlotID o entrambi non sono validi. Non è presente un modulo fisico. · I bit di uscita Completato e Presente sono FALSE. · Il bit di uscita Errore è TRUE. · Le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo sono deselezionate. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · ModuleType o SlotID o entrambi non sono validi. · Aggiornare di conseguenza i parametri di uscita. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · ModuleType e SlotID sono entrambi validi. Il modulo è fisicamente presente. · I bit di uscita Completato e Presente sono TRUE. · Il bit di uscita Errore è FALSE. · Aggiornare di conseguenza le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Tutti i parametri di uscita vengono cancellati. Nessuna modifica nella condizione ramo. Il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. 390 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Completamento dell'esecuzione di MODULE_INFO con errore quando è presente un modulo fisico Utilizzare questa tabella per determinare i valori del parametro MODULE_INFO per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2 3, 4 5. 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · ModuleType o SlotID o entrambi sono validi. Il modulo è fisicamente presente. · I bit di uscita Completato e Presente sono TRUE. · Il bit di uscita Errore è FALSE. · Aggiornare di conseguenza le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso del modulo sono validi e il modulo è fisicamente presente. · Aggiornare di conseguenza i parametri di uscita. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · ModuleType e SlotID sono entrambi non validi. Il modulo è fisicamente presente. · I bit di uscita Completato e Presente sono FALSE. · Il bit di uscita Errore è TRUE e deselezionato. · Aggiornare di conseguenza le informazioni sul modulo per ID modulo, ID fornitore, Tipo prodotto, codice prodotto e Revisione modulo. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Tutti i parametri di uscita vengono cancellati. Nessuna modifica nella condizione ramo. Il bit Abilita è FALSE. Tutti i parametri di uscita vengono cancellati. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 391 Capitolo 16 Istruzioni ingresso/uscita Vedere anche Istruzioni ingresso/uscita a pagina 355 MODULE_INFO a pagina 380 PLUGIN_INFO (informazioni sui plug-in) Leggere le informazioni del modulo da un modulo plug-in generico o di espansione. Dettagli operazione: · In Connected Components Workbench 10 o versione successive, l'istruzione PLUGIN_INFO consente di leggere qualsiasi informazione del modulo plug-in generico o di espansione, ad eccezione del modulo 2080-MEMBAK-RTC. · Se non è presente un modulo plug-in generico o di espansione, tutti i valori sono reimpostati su zero (0). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable SlotID ModID 392 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita BOOL Abilitazione del blocco istruzione. TRUE: esegue la lettura delle informazioni sui moduli plug-in o di espansione. FALSE: il blocco istruzione non viene eseguito. Tutti i valori dei dati di uscita sono ripristinati a 0. UINT Numero di slot del plug-in: ID slot = 1,2,3,4,5 (Inizia dal primo Slot a sinistra = 1). Numero di slot di espansione: ID slot = 101, 102, 103, 104 (Inizia dal primo Slot a sinistra = 101). UINT ID fisico del modulo generico plug-in. · Se il modulo di espansione non è supportato ModID = 0xFFF · Se un modulo plug-in o di espansione non è presente ModID = 0x0000 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 VendorID Uscita Tipo prodotto: Codice Prodotto ModRevision ENO Uscita Uscita Uscita Uscita Capitolo 16 Istruzioni ingresso/uscita UINT L'ID fornitore del modulo plug-in o di espansione generico. Per i prodotti Allen Bradley, ID fornitore = 1. Se un modulo plug-in o di espansione non è presente VendorID = 0x0000 UINT Tipo di prodotto del modulo plug-in o di espansione generico. Se un modulo plug-in o di espansione non è presente ProductType = 0x0000 UINT Codice prodotto del modulo plug-in o di espansione generico. Se un modulo plug-in o di espansione non è presente ProductCode = 0x0000 UINT Informazioni sulla revisione del modulo plug-in generico o di espansione. Se un modulo plug-in o di espansione non è presente ModRevision = 0x0000 BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Diagramma ladder aggiunge automaticamente l'uscita ENO. Esempio di Programmazione a blocchi funzionali PLUGIN_INFO Esempio di Diagramma ladder PLUGIN_INFO Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 393 Capitolo 16 Istruzioni ingresso/uscita Esempio di testo strutturato PLUGIN_INFO Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 PLUGIN_READ (lettura plugin) Legge i dati da un modulo plug-in generico. Dettagli operazione: · Qualsiasi modulo plug-in, eccetto i moduli 2080-MEMBAK-RTC. · Quando non è presente un modulo plug-in generico, tutti i valori tornano a zero (0). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 394 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable SlotID Offset DataLength DataArray Sts ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita BOOL Abilitazione del blocco istruzione. TRUE: esegue la lettura UPM. FALSE: nessuna lettura e i dati all'interno del vettore dati non sono validi. UINT Numero dello slot plug-in. ID slot = 1,2,3,4,5 (iniziando dal primo slot a sinistra = 1). UINT Offset indirizzo dei primi dati da leggere, calcolando dal primo byte del modulo generico plug-in. UINT Il numero di byte da leggere. USINT Un array usato per archiviare i dati letti dal modulo a innesto generico. UINT Codici di stato per PLUGIN_READ. Codici di stato (Sts): · 0x00 - Blocco funzione non abilitato (nessuna operazione). · 0x01 - Operazione plug-in riuscita. · 0x02 - Operazione plug-in non riuscita a causa di un ID slot non valido. · 0x03 - Operazione plug-in non riuscita perché non si tratta di un modulo plug-in generico valido. · 0x04 : - operazione plug-in non riuscita a causa di dati utilizzati fuori intervallo. · 0x05 - Operazione plug-in non riuscita a causa di un errore di parità in accesso dati. BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 395 Capitolo 16 Istruzioni ingresso/uscita Esempio di Programmazione a blocchi funzionali PLUGIN_READ Esempio di Diagramma ladder PLUGIN_READ Esempio di Testo strutturato PLUGIN_READ Vedere anche Istruzioni ingresso/uscita a pagina 355 396 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 PLUGIN_RESET (reset plugin) Capitolo 16 Istruzioni ingresso/uscita Ripristina qualsiasi hardware di modulo plug-in generico, ad eccezione dei moduli 2080-MEMBAK-RTC. Dopo il reset dell'hardware, il modulo plug-in generico è pronto per la configurazione e il funzionamento. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable SlotID Sts ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso UINT Abilitazione del blocco istruzione. TRUE: esegue il ripristino plug-in. FALSE: nessuna operazione di ripristino. Numero dello slot plug-in. ID slot = 1,2,3,4,5 (iniziando dal primo slot a sinistra = 1). Uscita UINT Uscita BOOL Codici di stato PLUGIN_RESET. Codici di stato (Sts): · 0x00 - Blocco funzione non abilitato (nessuna operazione). · 0x01 - Operazione plug-in riuscita. · 0x02 - Operazione plug-in non riuscita a causa di un ID slot non valido. · 0x03 - Operazione plug-in non riuscita perché non si tratta di un modulo plug-in generico valido. La configurazione del modulo -2080-MOT-HSC è in modalità Istruzioni High Speed Counter. · 0x04 : - operazione plug-in non riuscita a causa di dati utilizzati fuori intervallo. · 0x05 - Operazione plug-in non riuscita a causa di un errore di parità in accesso dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali PLUGIN_RESET Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 397 Capitolo 16 Istruzioni ingresso/uscita Esempio di Diagramma ladder PLUGIN_RESET Esempio di Testo strutturato PLUGIN_RESET Risultati Vedere anche Istruzioni ingresso/uscita a pagina 355 PLUGIN_WRITE (plug-in di scrittura) Scrive un blocco di dati su qualsiasi hardware di modulo plug-in generico, ad eccezione dei moduli 2080-MEMBAK-RTC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 398 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita Questa istruzione vale per i controllori Micro820, Micro830, Micro850 e Micro870. Parametro Enable SlotID AddrOffset DataLength DataArray Sts ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso UINT Ingresso UINT Ingresso UINT Ingresso USINT Uscita UINT Uscita BOOL Abilitazione del blocco istruzione. TRUE: esegue il plug-in di scrittura. FALSE: nessuna operazione di scrittura dati. Numero dello slot plug-in. ID slot = 1,2,3,4,5 (iniziando dal primo slot a sinistra = 1). Offset indirizzo dei primi dati da scrivere, calcolando dal primo byte del modulo generico plug-in. Il numero di byte da scrivere. Dati da scrivere nel modulo generico plug-in. Codici di stato PLUGIN_WRITE. Codici di stato (Sts): · 0x00 - Blocco funzione non abilitato (nessuna operazione). · 0x01 - Operazione plug-in riuscita. · 0x02 - Operazione plug-in non riuscita a causa di un ID slot non valido. · 0x03 - Operazione plug-in non riuscita perché non si tratta di un modulo plug-in generico valido. · 0x04 : - operazione plug-in non riuscita a causa di dati utilizzati fuori intervallo. · 0x05 - Operazione plug-in non riuscita a causa di un errore di parità in accesso dati. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 399 Capitolo 16 Istruzioni ingresso/uscita Esempio di Programmazione a blocchi funzionali PLUGIN_WRITE Esempio di Diagramma ladder PLUGIN_WRITE Esempio di Testo strutturato PLUGIN_WRITE RCP (ricetta) 400 Vedere anche Istruzioni ingresso/uscita a pagina 355 Legge i valori dei dati di una variabile dal file di dati ricetta che si trova nella cartella file di dati ricetta nella scheda SD e aggiorna il valore sul Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Istruzioni ingresso/uscita motore di runtime. Scrive il valore della variabile con il motore di runtime in un file di dati ricetta nella scheda SD. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820. Parametri Enable RWFlag CfgID FileName Stato ErrorID Tipo di parametro Ingresso Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL USINT STRING USINT UDINT Abilitare il blocco istruzione di lettura/scrittura della ricetta. TRUE: fronte di salita rilevato, esegue l'istruzione ricetta, se la precedente operazione è stata completata. FALSE: fronte di salita non rilevato, non esegue l'istruzione ricetta. TRUE: RWFlag (operazione di scrittura). La ricetta scrive i valori della variabile con il motore di runtime all'interno di un file di dati ricetta nella scheda SD. FALSE: RWFlag (operazione di lettura). La ricetta legge i valori della variabile dalla scheda SD e aggiorna il corrispondente valore della variabile sul motore di runtime. Numero configurazione della ricetta ID VA 1-10. Nome file di dati ricetta (lunghezza massima 30 caratteri). Stato corrente del blocco istruzione Ricetta. Codici di stato RCP: · 0 Idle · 1 Doing · 2 Succeed, completato senza errori. · 3 Error, completato senza errori. Codice di errore RCP numerico. Le definizioni sono definite nei codici di errore RCP. Codici di errore RCP Codice errore 0 1 2 3 4 5 6 7 Nome errore RCP_ERR_NONE RCP_ERR_NO_SDCARD RCP_ERR_DATAFILE_FULL RCP_ERR_DATAFILE_ACCESS Una scheda SD viene identificata come: · Interrotta. · Piena. · Sola lettura. RCP_ERR_CFG_ABSENT RCP_ERR_CFG_ID RCP_ERR_RESOURCE_BUSY RCP_ERR_CFG_FORMAT Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 401 Capitolo 16 Istruzioni ingresso/uscita Codice errore 8 9 10 11 12 13 14 Nome errore RCP_ERR_RESERVED Riservata per una possibile espansione futura. RCP_ERR_UNKNOWN RCP_ERR_DATAFILE_NAME RCP_ERR_DATAFOLDER_INVALID RCP_ERR_DATAFILE_ABSENT RCP_ERR_DATAFILE_FORMAT RCP_ERR_DATAFILE_SIZE La dimensione del file di dati ricetta è troppo grande (>4 kb). Esempio di programmazione a blocchi funzionali RCP Esempio di diagramma ladder RCP Esempio di testo strutturato RCP 402 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 16 Istruzioni ingresso/uscita a pagina 355 Istruzioni ingresso/uscita RTC_READ (lettura RealTime Clock) Legge le informazioni sul modulo real-time clock (RTC). Dettagli operazione: · Controllori Micro810 o Micro820 con RTC integrato: · RTCBatLow è sempre impostato su zero (0). · RTCEnabled è sempre impostato su (1). · Quando l'RTC integrato perde la carica/memoria a causa di una interruzione dell'alimentazione: · RTCData è impostato su 2000/1/1/0/0/0. · RTCEnabled è impostato su (1). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Enable RTCData RTCPresent RTCEnabled RTCBatLow ENO Tipo di parametro Ingresso Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue la lettura delle informazioni RTC. FALSE: non c'è nessuna operazione di lettura e i dati in uscita RTC non sono validi. RTC Informazioni sui dati RTC: aa/mm/gg, hh/mm/ss, settimana. L'uscita RTCData è definita con il tipo di dati RTC. BOOL TRUE: Free Running clock in uso oppure hardware RTC collegato. FALSE: Free Running clock non in uso oppure hardware RTC non collegato. BOOL TRUE: Free Running clock in uso oppure hardware RTC abilitato (temporizzazione). FALSE: Free Running clock non in uso, hardware RTC disabilitato (nessuna temporizzazione). BOOL TRUE - livello batteria RTC basso. FALSE - livello batteria RTC non è basso. BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 403 Capitolo 16 Istruzioni ingresso/uscita Parametri Year Month Day Hour Minute Second DayOfWeek Tipo di dati RTC Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati RTC. Tipo di dati UINT UINT UINT UINT UINT UINT UINT Descrizione L'impostazione anno per RTC. Valore a 16 bit, intervallo valido da 2000 (01 gen, 00:00:00) a 2098 (31 dic, 23:59:59) L'impostazione mese per RTC. L'impostazione giorno per RTC. L'impostazione ora per RTC. L'impostazione minuto per RTC. L'impostazione secondi per RTC. L'impostazione giorno della settimana per RTC. Questo parametro è ignorato per RTC_SET. Esempio di Programmazione a blocchi funzionali RTC_READ Esempio di Diagramma ladder RTC_READ 404 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esempio di Testo strutturato RTC_READ Istruzioni ingresso/uscita Vedere anche Istruzioni ingresso/uscita a pagina 355 RTC_SET (impostare RealTime Clock) Impostare i dati RTC (Real-Time Clock) sulle informazioni del modulo RTC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Enable RTCEnable RTCData RTCPresent Tipo di parametro Ingresso Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue RTC_SET con le informazioni su RTC dall'ingresso. Eseguito in genere per 1 scansione del programma durante l'aggiornamento di RTC. FALSE - non esegue RTC_SET. Impostare su FALSE per utilizzare RTC normalmente. BOOL TRUE - Per abilitare RTC i dati RTC specificati. FALSE - Per disabilitare RTC. RTC Informazioni sui dati RTC: aa/mm/gg, hh/mm/ss, settimana definita nel tipo di dati RTC. RTCData è ignorato quando RTCEnable = 0. BOOL TRUE: Free Running clock in uso oppure hardware RTC collegato. FALSE: Free Running clock non in uso oppure hardware RTC non collegato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 405 Capitolo 16 Istruzioni ingresso/uscita RTCEnabled Uscita BOOL RTCBatLow Uscita BOOL Sts Uscita USINT TRUE: Free Running clock in uso oppure hardware RTC abilitato (temporizzazione). FALSE: Free Running clock non in uso oppure hardware RTC disabilitato (nessuna temporizzazione). TRUE - livello batteria RTC basso. FALSE - livello batteria RTC non è basso. Stato dell'operazione di lettura. Valori di stato (Sts) RTC_Set: · 0x00: blocco funzione non abilitato (nessuna operazione). · 0x01: operazione di impostazione RTC riuscita. · 0x02: operazione di impostazione RTC non riuscita. Parametri Year Month Day Hour Minute Second DayOfWeek Tipo di dati RTC Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati RTC. Tipo di dati UINT UINT UINT UINT UINT UINT UINT Descrizione L'impostazione anno per RTC. Valore a 16 bit, intervallo valido da 2000 (01 gen, 00:00:00) a 2098 (31 dic, 23:59:59) L'impostazione mese per RTC. L'impostazione giorno per RTC. L'impostazione ora per RTC. L'impostazione minuto per RTC. L'impostazione secondi per RTC. L'impostazione giorno della settimana per RTC. Questo parametro è ignorato per RTC_SET. Esempio di Programmazione a blocchi funzionali RTC_SET 406 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 16 Esempio di Diagramma ladder RTC_SET Istruzioni ingresso/uscita Esempio di Testo strutturato RTC_SET SYS_INFO Vedere anche Istruzioni ingresso/uscita a pagina 355 Legge il blocco dati dello stato per il controllore Micro800. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable Sts ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Uscita Uscita BOOL SYSINFO BOOL Abilitazione del blocco istruzione. TRUE: esegue l'operazione di lettura. FALSE: non esegue la funzione. Blocco dati dello stato del sistema. L'uscita Sts è definita nel tipo di dati SYS_INFO. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 407 Capitolo 16 Istruzioni ingresso/uscita Esempio di Programmazione a blocchi funzionali SYS_INFO Esempio di Diagramma ladder SYS_INFO Esempio di Testo strutturato SYS_INFO 408 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 16 Istruzioni ingresso/uscita Vedere anche Istruzioni ingresso/uscita a pagina 355 Tipo di dati SYS_INFO a pagina 409 Tipo di dati SYS_INFO Nella tabella seguente è descritto il tipo di dati SYSINFO. Parametri Tipo di dati Descrizione BootMajRev UINT BootMinRev UINT Serie del sistema operativo: UINT Revisione maggiore boot. Revisione minore boot. Serie del sistema operativo: 0 indica un dispositivo di serie A 1 indica un dispositivo di serie B OSMajRev OSMinRev ModeBehaviour FaultOverride UINT Revisione maggiore OS. UINT Revisione minore OS. BOOL Modalità di comportamento (TRUE: va a RUN all'accensione). BOOL Fault Override (TRUE: errore di sostituzione all'accensione). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 409 Capitolo 16 Istruzioni ingresso/uscita Parametri Tipo di dati StrtUpProtect BOOL MajErrHalted BOOL MajErrCode UINT MajErrUFR BOOL UFRPouNum UINT MMLoadAlways BOOL MMLoadOnError BOOL MMPwdMismatch BOOL FreeRunClock UINT Descrizione Protezione all'avvio (TRUE: all'accensione, esegue programma di protezione in avvio). Per versioni future. Errore grave arrestato (TRUE: Errore grave arrestato). Codice di errore grave. Errore grave durante routine errore utente. Per versioni future. Numero programma routine errore utente. Ripristina sempre il modulo di memoria al controllore all'accensione (TRUE: Ripristina). Ripristina sempre il modulo di memoria al controllore in caso di errore all'accensione (TRUE: Ripristina). Mancata corrispondenza password del modulo memoria (TRUE: Mancata corrispondenza password del controllore e del modulo memoria). Free running clock con incrementi ogni 100 microsecondi da 0 a 65535 e successivo ritorno a 0. Il clock, accessibile a livello globale, può essere utilizzato in caso sia necessaria una risoluzione maggiore rispetto al timer standard da 1 millisecondo. Supportato solo dai controllori Micro830 e Micro850. Il valore per i controllori Micro810 resta 0. ForcesInstall EMINFilterMod BOOL Forces installato (TRUE: Attivato). BOOL Filtro incorporato modificato (TRUE: Modificato). Vedere anche SYS_INFO a pagina 407 TRIMPOT_READ (lettura trimpot) Legge il valore TrimPot da un trimpot specifico. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850 e Micro870. Parametro Enable TrimPotID Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitazione del blocco istruzione. TRUE: esegue la lettura di Trimpot. FALSE: nessuna operazione di lettura e il valore di uscita TrimPot non è valido. Ingresso UINT L'ID del Trimpot da leggere. TrimPotID è definito nelle definizioni ID Trimpot. 410 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 TrimPotValue Sts Uscita Uscita ENO Uscita Capitolo 16 Istruzioni ingresso/uscita UINT Valore trimpot corrente. UINT Stato dell'operazione di lettura Trimpot. Codici dello stato (Sts) TRIMPOT: · 0x00 - Blocco funzione non abilitato (nessuna operazione di lettura/scrittura). · 0x01 - Operazione di lettura/scrittura riuscita. · 0x02 - Operazione di lettura/scrittura non riuscita a causa di un ID Trimpot non valido. · 0x03 - Operazione di scrittura non riuscita a causa di un valore fuori intervallo. BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali TRIMPOT Esempio di Diagramma ladder TRIMPOT Esempio di Testo strutturato TRIMPOT Definizione ID Trimpot Vedere anche Istruzioni ingresso/uscita a pagina 355 Definizioni ID Trimpot a pagina 411 La tabella seguente descrive la definizione ID Trimpot utilizzata nell'istruzione TRIMPOT_read. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 411 Capitolo 16 Istruzioni ingresso/uscita Selezione uscita Bit Definizione ID Trimpot 15 - 13 12 - 8 7 - 4 3 - 0 Descrizione Modulo tipo di trimpot: · 0x00 - Integrato. · 0x01 - Espansione. · 0x02 - Porta plug-in. ID slot del modulo: · 0x00 - Integrato. · 0x01-0x1F - ID del modulo di espansione. · 0x01-0x05 - ID della porta plug-in. Tipo di trimpot: · 0x00 - Riservata. · 0x01 - Trimpot digitale tipo 1 (modulo LCD 1). · 0x02 - Modulo meccanico trimpot 1. ID trimport all'interno del modulo: · 0x00-0x0F - Integrato. · 0x00-0x07 - ID trimpot per espansione. · 0x00-0x07 - ID trimpot per porta plug-in. ID trimpot inizia da 0. Vedere anche TRIMPOT_READ a pagina 410 412 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni di interruzione Capitolo 17 Funzione STIS a pagina 413 UIC a pagina 415 UID a pagina 416 UIE a pagina 418 UIF a pagina 420 Utilizzare le istruzioni di interrupt per segnalare al processore la necessità di considerare un evento. Il segnale di interrupt, di solito, è utilizzato per condizioni di elevata priorità per cui è richiesta l'interruzione del codice corrente mentre il processore è in funzionamento. Descrizione Avvia il timer Selected Timed Interrupt (STI) utente dal programma di controllo invece che con l'avvio automatico. Annulla la perdita di bit per l'interrupt utente selezionato. Disabilita un interrupt utente specifico. Abilita un interrupt utente specifico. Scarica o rimuove un ingresso utente in sospeso. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 STIS (selezione avvio temporizzato) Avvia il timer Selectable Timed Interrupt (STI) utente dal programma di controllo invece che con l'avvio automatico. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione istruzioni. TRUE: avvia il timer STI dal programma di controllo. FALSE: non esegue la funzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 413 Capitolo 17 IRQType Istruzioni di interruzione Ingresso UDINT SetPoint Ingresso UINT STIS Uscita BOOL Utilizzare le parole STI definite. - IRQ_STI0 - IRQ_STI1 - IRQ_STI2 - IRQ_STI3 Intervallo di tempo (in ms) che deve trascorrere prima di eseguire l'interrupt temporizzato selezionabile. Il valore 0 disabilita la funzione STIS. Un valore compreso tra 1 e 65535 abilita la funzione STIS. Status del piolo (lo stesso di Abilita). Esempio di programmazione a blocchi funzionali STIS Esempio di diagramma ladder STIS Esempio di testo strutturato STIS (* Equivalenza ST: *) TESTOUTPUT := STIS(TESTENABLE, 2, 1000) ; 414 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 17 Istruzioni di interruzione Vedere anche Istruzioni di interrupt a pagina 413 UIC (bit clear interrupt lost) Cancella il bit perso per l'interrupt utente selezionato. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable IRQType UIC Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita BOOL Abilitazione istruzioni. TRUE: avvia l'operazione Cancella bit. FALSE: non esegue la funzione. UDINT Utilizzare le parole - IRQ_HSC3 STI definite. - IRQ_HSC4 - IRQ_EII0 - IRQ_HSC5 - IRQ_EII1 - IRQ_STI0 - IRQ_EII2 - IRQ_STI1 - IRQ_EII3 - IRQ_STI2 - IRQ_EII4 - IRQ_STI3 - IRQ_EII5 - IRQ_UFR - IRQ_EII6 - IRQ_UPM0 - IRQ_EII7 - IRQ_UPM1 - IRQ_HSC0 - IRQ_UPM2 - IRQ_HSC1 - IRQ_UPM3 - IRQ_HSC2 - IRQ_UPM4 BOOL Status del piolo (lo stesso di Abilita). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 415 Capitolo 17 Istruzioni di interruzione Esempio di programmazione a blocchi funzionali UIC Esempio di diagramma ladder UIC Esempio di testo strutturato UIC Risultati UID (disattivazione interrupt) Vedere anche Istruzioni di interrupt a pagina 413 Disabilita uno o più interrupt utente specifici. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 416 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 17 Istruzioni di interruzione Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro Tipo di parametro Tipo di dati Descrizione Enable IRQType Ingresso Ingresso UID Uscita BOOL Abilitazione istruzioni. TRUE: avvia l'operazione di disattivazione. FALSE: non esegue la funzione. UDINT Utilizzare le parole STI definite. - IRQ_HSC3 - IRQ_EII0 - IRQ_HSC4 - IRQ_EII1 - IRQ_HSC5 - IRQ_EII2 - IRQ_STI0 - IRQ_EII3 - IRQ_STI1 - IRQ_EII4 - IRQ_STI2 - IRQ_EII5 - IRQ_STI3 - IRQ_EII6 - IRQ_UFR - IRQ_EII7 - IRQ_UPM0 - IRQ_HSC0 - IRQ_UPM1 - IRQ_HSC1 - IRQ_UPM2 - IRQ_HSC2 - IRQ_UPM3 - IRQ_UPM4 BOOL Status del piolo (lo stesso di Abilita). Esempio di programmazione a blocchi funzionali UID Esempio di diagramma ladder UID Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 417 Capitolo 17 Istruzioni di interruzione Esempio di testo strutturato UID (* Equivalenza ST: *) TESTOUTPUT := UID(TESTENABLE, 2) ; Risultati Vedere anche Istruzioni di interrupt a pagina 413 UIE (abilitazione interrupt) Abilita un interrupt utente specifico. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 418 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Enable IRQType Tipo di parametro Tipo di dati Ingresso BOOL Ingresso UDINT UIE Uscita BOOL Descrizione Capitolo 17 Istruzioni di interruzione Abilitazione istruzioni. TRUE: avvia l'operazione di abilitazione. FALSE: non esegue la funzione. Utilizzare le parole STI definite. - IRQ_EII0 - IRQ_EII1 - IRQ_EII2 - IRQ_EII3 - IRQ_EII4 - IRQ_EII5 - IRQ_EII6 - IRQ_EII7 - IRQ_HSC0 - IRQ_HSC1 - IRQ_HSC2 Status del piolo (lo stesso di Abilita). - IRQ_HSC3 - IRQ_HSC4 - IRQ_HSC5 - IRQ_STI0 - IRQ_STI1 - IRQ_STI2 - IRQ_STI3 - IRQ_UFR - IRQ_UPM0 - IRQ_UPM1 - IRQ_UPM2 - IRQ_UPM3 - IRQ_UPM4 Esempio di programmazione a blocchi funzionali UIE Esempio di diagramma ladder UIE Esempio di testo strutturato UIE Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 419 Capitolo 17 Istruzioni di interruzione (* Equivalenza ST: *) TESTOUTPUT := UIE(TESTENABLE, 2) ; Risultati Vedere anche Istruzioni di interrupt a pagina 413 UIF (interrupt flush in attesa) Scarica o rimuove un interrupt utente in sospeso. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitazione istruzioni. TRUE: avvia l'operazione UIF. FALSE: non esegue la funzione. 420 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 IRQType UIF Ingresso UDINT Uscita BOOL Capitolo 17 Utilizzare le parole STI definite. - IRQ_EII0 - IRQ_EII1 - IRQ_EII2 - IRQ_EII3 - IRQ_EII4 - IRQ_EII5 - IRQ_EII6 - IRQ_EII7 - IRQ_HSC0 - IRQ_HSC1 - IRQ_HSC2 Status del piolo (lo stesso di Abilita). Istruzioni di interruzione - IRQ_HSC3 - IRQ_HSC4 - IRQ_HSC5 - IRQ_STI0 - IRQ_STI1 - IRQ_STI2 - IRQ_STI3 - IRQ_UFR - IRQ_UPM0 - IRQ_UPM1 - IRQ_UPM2 - IRQ_UPM3 - IRQ_UPM4 Esempio di programmazione a blocchi funzionali UIF Esempio di diagramma ladder UIF Esempio di testo strutturato UIF (* Equivalenza ST: *) TESTOUTPUT := UIF(TESTENABLE, 2) ; Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 421 Capitolo 17 Istruzioni di interruzione Risultati Vedere anche Istruzioni di interrupt a pagina 413 422 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Utilizzare le istruzioni Controllo movimento per programmare e progettare il movimento di un particolare asse. Controllo movimento richiede Connected Components Workbench 2.0 o versione successiva. Suggerimento: · le funzioni amministrative supportano il controllo assi PTO e Motion feedback. · Le istruzioni di controllo movimento che supportano un FBAxis sono: MC_ReadActualPosition e MC_ReadActualVelocity. Istruzione Administrative MC_AbortTrigger a pagina 434 MC_Power a pagina 457 MC_ReadAxisError a pagina 468 MC_ReadBoolParameter a pagina 473 MC_ReadParameter a pagina 475 MC_ReadStatus a pagina 478 MC_Reset a pagina 484 MC_SetPosition a pagina 486 MC_TouchProbe a pagina 492 MC_WriteBoolParameter a pagina 496 MC_WriteParameter a pagina 499 Controllo assi MC_Halt a pagina 437 MC_Home a pagina 440 MC_MoveAbsolute a pagina 445 MC_MoveRelative a pagina 448 MC_MoveVelocity a pagina 453 MC_ReadActualPosition a pagina 460 MC_ReadActualVelocity a pagina 464 MC_Stop a pagina 489 Descrizione Interrompe i blocchi funzione Controllo assi collegati agli eventi di attivazione. Controllo dello stato di alimentazione (ON o OFF). Legge gli errori dell'asse non in relazione ai blocchi funzione Controllo movimento. Restituisce il valore di un parametro specifico del produttore di tipo BOOL. Restituisce il valore di un parametro specifico del fornitore di tipo Real. Restituisce lo stato dell'asse rispetto al movimento attualmente in corso. Trasforma lo stato dell'asse da ErrorStop a StandStill ripristinando tutti gli errori interni legati all'asse. Sposta il sistema delle coordinate di un asse tramite la manipolazione della posizione effettiva. Registra una posizione dell'asse in corrispondenza di un evento di attivazione. Modifica il valore di un parametro specifico del fornitore di tipo BOOL. Modifica del valore di un parametro specifico del fornitore di tipo REAL. Comanda un arresto controllato del movimento in condizioni operative normali. Comanda l'asse per l'esecuzione della sequenza <search home>. Determina un movimento controllato verso una posizione assoluta specificata. Determina un movimento controllato di una distanza specificata rispetto alla posizione attuale nel momento dell'esecuzione. Determina un movimento controllato infinito a una velocità specificata. Restituisce la posizione effettiva dell'asse di feedback. Richiede Connected Components Workbench 8 o versione successiva. Ritorna alla velocità corrente dell'asse di feedback. Richiede Connected Components Workbench 8 o versione successiva. Comanda un arresto di movimento controllato e trasferisce lo stato dell'asse su Arresto in corso. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 423 Capitolo 18 Istruzioni di controllo del movimento Regole generali per i blocchi Le regole generali per i blocchi funzione di controllo movimento Micro800 seguono le specifiche di controllo movimento PLCopen. La funzione di controllo seguente tabella fornisce le regole generali sull'interfaccia dei blocchi movimento funzione di controllo movimento. La regola si applica a Regola Parametri di ingresso Con Execute: i parametri vengono utilizzati con il fronte di salita dell'input di esecuzione. Per modificare i parametri, cambiare i parametri di input e attivare o disattivare il movimento. se un'istanza di un blocco funzione riceve un nuovo comando Esegui prima del completamento (con una serie di comandi sulla stessa istanza), il nuovo comando Esegui viene ignorato e continua l'esecuzione dell'istruzione precedente. Con Enable: i parametri vengono utilizzati con il fronte di salita dell'input di abilitazione e possono essere modificati continuamente. Parametri di input mancanti Input che superano i limiti dell'applicazione Regole del segno per gli input Posizione e distanza Input di posizione/distanza Gli input mancanti verranno catturati durante la compilazione dell'applicazione utente. A livello di controllore la gestione degli errori di input mancanti non avviene. Se un blocco funzione riceve i comandi mediante parametri che provocano la violazione dei limiti dell'applicazione, l'istanza del blocco funzione genera un errore. In tal caso, viene contrassegnata la presenza di un errore, le cui informazioni verranno indicate dall'ID dell'errore di uscita. Nella gran parte dei casi il controllore rimane in modalità di esecuzione e non vengono riportati errori gravi per il controllore. Gli input di accelerazione, decelerazione e strappo sono sempre valori positivi. Input di velocità, posizione e distanza possono avere valori positivi e negativi. Il valore di posizione è definito in un sistema di coordinate. La distanza è una misura relativa rapportata alle unità tecniche. La distanza è la differenza tra due posizioni. I controllori Micro800 supportano solo il movimento lineare. Per il blocco funzione MC_MoveAbsolute, l'input di posizione rappresenta la posizione assoluta per i comandi sugli assi. Per MC_MoveRelative, l'input di distanza rappresenta la collocazione relativa (considerando la posizione attuale dell'asse come 0) rispetto alla posizione attuale. Input di velocità Input di direzione La velocità può essere un valore con segno, tuttavia è possibile utilizzare l'input di direzione per definire il segno della velocità (velocità negativa x direzione negativa = velocità positiva). La "direzione" del parametro E si riferisce all'ingresso e all'uscita di velocità per motivi di compatibilità. Per il movimento di distanza (posizione), per cui è definita la posizione di destinazione (assoluta o relativa), la direzione di movimento è univoca. L'input di direzione per il movimento di distanza viene ignorato. Per il movimento di velocità, il valore dell'input di direzione può essere 1 (direzione positiva), 0 (direzione attuale) o -1 (direzione negativa). Per gli altri valori, viene preso in considerazione solo il segno. Ad esempio, -3 indica una direzione negativa, +2 una direzione positiva e così via. Per il movimento di velocità (MC_MoveVelocity), il segno (velocità x direzione) determina la direzione effettiva del movimento se il valore è diverso da 0. Ad esempio, se velocità x direzione = +300, la direzione è positiva. Input di accelerazione, decelerazione e Jerk · Gli ingressi di accelerazione e decelerazione devono avere un valore positivo. Se decelerazione o accelerazione sono impostati con un valore non positivo, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE). · L'ingresso del jerk deve avere un valore non negativo. Se lo strappo è impostato a un valore negativo, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE). · Se il jerk massimo è configurato su zero, tutti i parametri del jerk per il blocco funzione del controllo movimento, inclusa l'impostazione jerk per MC_Stop, devono essere configurati su 0. In caso contrario, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE). · Se il jerk è impostato su un valore diverso da zero, viene generato un profilo di formato curva a S, mentre se il jerk è impostato su 0, viene generato un profilo trapezoidale. · La configurazione di jerk iniziale non è limitata alla configurazione di jerk massimo. · Se il motore movimento non riesce a generare il profilo di movimento stabilito dai parametri di ingresso dinamici, il blocco funzione riporta un errore (ID errore: MC_FB_ERR_PROFILE). 424 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 La regola si applica a Esclusività dell'output Regola Capitolo 18 Istruzioni di controllo del movimento Con Execute: quando Execute è TRUE, anche uno degli output Busy, Done, Error o CommandAborted deve essere TRUE. Le uscite si escludono a vicenda: su un blocco funzione solo una di esse può essere TRUE. È impostata solo uno degli output Active, Error, Done e CommandAborted per volta. Con Enable: gli output Valid ed Error si escludono a vicenda: su un blocco funzione solo una di esse può essere TRUE. Stato output Comportamento con l'output Done Comportamento dell'uscita Busy Comportamento dell' uscitaCommandAborted Output Active Stati Enable e Valid Gestione errori di uscita Con Execute: gli output Done, Error, ErrorID e CommandAborted sono reimpostati con il fronte di discesa dell'istruzione Execute. Tuttavia, il fronte di discesa di Execute non arresta né influisce sull'esecuzione del blocco funzione effettivo. Anche se Execute viene reimpostata prima che il blocco funzione sia completato, gli output corrispondenti sono impostati per almeno un ciclo. Se un'istanza di un blocco funzione riceve un nuovo comando Execute prima del completamento (con una serie di comandi sulla stessa istanza), il nuovo comando Execute viene ignorato e continua l'esecuzione dell'istruzione precedente. Con Enable: gli output Valid, Enabled, Busy, Error ed ErrorID vengono reimpostati appena possibile con il fronte di discesa di Enable. L'output Done viene impostato quando viene completata l'azione comandata. Quando sono in funzione più blocchi funzione in sequenza sullo stesso asse, si verifica quanto segue: · Quando un movimento su un asse viene interrotto con un altro movimento sullo stesso asse, senza aver raggiunto l'obiettivo finale, sul primo blocco funzione non viene impostato Done. Ciascun blocco funzione può avere un output Busy, che indica che il blocco funzione non è ancora terminato (per i blocchi funzione con un input Execute) o che non è in funzione ed è possibile aspettarsi nuovi valori di output (nel caso di input Enable). L'output Busy è impostato sul fronte di salita di Execute e viene reimpostato quando si imposta uno degli output Done, Aborted o Error. Si consiglia di tenere questo blocco funzione nel loop attivo del programma applicativo finché l'output Busy è TRUE, dato che gli output possono ancora cambiare. I blocchi funzione con la stessa istanza di quelli busy non possono essere eseguiti finché sono busy. I blocchi funzione con diverse istanze possono interrompere il blocco funzione in esecuzione. L'output CommandAborted viene impostato quando un movimento impartito viene interrotto da un altro comando di movimento. Il comportamento di reimpostazione di CommandAborted è simile a quello dell'output Done. Quando si verifica un CommandAborted, gli altri segnali di output quali InVelocity vengono reimpostati. L'output Active è necessario per i blocchi funzione in buffer, e viene impostato nel momento in cui il blocco funzione prende il controllo movimento dell'asse corrispondente. Per la modalità senza buffer, gli output Active e Busy possono avere lo stesso valore. L'input Enable è associato a un output Valid. Enable è sensibile al livello, Valid invece mostra che è disponibile un gruppo di output validi sul blocco funzione. L'output Valid è TRUE finché è disponibile un valore di output valido e l'input Enable è TRUE. Il relativo valore di output può essere aggiornato fino a quando l'input Enable è TRUE. Se si verifica un errore del blocco funzione, l'uscita non è valida (Valid impostato su FALSE). Quando la condizione di errore scompare, i valori ricompaiono e l'uscita Valid viene impostata di nuovo. Uscite utilizzate per definire gli errori Tutti i blocchi hanno le due uscite descritte di seguito, le quali gestiscono gli errori che potrebbero verificarsi durante l'esecuzione: · Error il fronte di salita di "Error" informa che si è verificato un errore durante l'esecuzione del blocco funzione. · ErrorID numero dell'errore. gli output Done e InVelocity servono per il completamento senza errori, pertanto dal punto di vista logico escludono Error. Gli errori delle istanze non sempre danno luogo a errori di assi (causando un ErrorStop dell'asse). Come ripristinare le uscite degli errori · Le uscite degli errori che riguardano importanti blocchi funzione vengono reimpostate con fronte di discesa Execute ed Enable. · Le uscite degli errori dei blocchi funzione con Enable possono essere reimpostate durante il funzionamento, senza dover reimpostare Enable. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 425 Capitolo 18 Istruzioni di controllo del movimento La regola si applica a Regola Convenzioni per la denominazione dei tipi ENUM Tipi di errori · Logica dei blocchi funzione (ad esempio, parametri fuori intervallo, tentativi di violazione dello stato e così via) · Limite HW o SW · Meccanismo/Motore · Unità A causa dei limiti nella denominazione previsti dallo standard IEC relativo alla univocità dei nomi delle variabili, per gli ENUM viene utilizzato il riferimento 'mc' allo spazio dei nomi per il controllo movimento PLCopen. In tal modo si evita il conflitto derivante dall'utilizzo dei tipi ENUM 'positive' e 'negative' per istanze con variabili con tali nomi per tutto il resto del progetto, dato che vengono denominate rispettivamente mcPositive e mcNegative. Vedere anche Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri I seguenti argomenti contengono dettagli sui parametri del controllo del movimento rilevanti per tutti i relativi blocchi funzione. del blocco funzione per il Stati asse di controllo movimento a pagina 426 controllo del movimento Numeri dei parametri del blocco funzione per il controllo del movimento a pagina 429 ID errori del blocco funzione di controllo movimento a pagina 430 Stati asse di controllo movimento Secondo la regola di base per il comportamento dell'asse ad alto livello, quando sono attivati più blocchi funzione per il controllo movimento, i comandi del movimento sono accettati sempre in modo sequenziale, anche se il controllore ha la capacità di elaborare contemporaneamente i valori reali. Qualsiasi comando di movimento è un transitorio che modifica lo stato dell'asse e, di conseguenza, modifica il modo in cui viene calcolato il movimento corrente. 426 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Diagramma di stato dell'asse di controllo movimento L'asse è sempre in uno degli stati definiti, come descritto nel seguente diagramma. No Nota Comportamento dello stato dell'asse di controllo movimento 1 Negli stati ErrorStop e Stopping, possono essere chiamati tutti i blocchi funzione (eccetto MC_Reset), ma non saranno eseguiti. MC_Reset genera una transizione allo stato StandStill. Se si verifica un errore mentre la macchina è nello stato Stopping, si verifica una transizione allo stato ErrorStop. 2 Power.Enable = TRUE ed è presente un errore nell'asse. 3 Power.Enable = TRUE e non sono presenti errori nell'asse. 4 MC_Stop.Done AND NOT MC_Stop.Execute. 5 Quando viene chiamato il blocco funzione MC_Power con Enable = False, lo stato dell'asse passa a Disabled per ogni stato, incluso ErrorStop. 6 Se si verifica un errore mentre la macchina è nello stato Stopping, si verifica una transizione allo stato ErrorStop. Valori dei codici di stato dell'asse di controllo movimento È possibile monitorare lo stato dell'asse tramite la funzione Monitoraggio asse. Nella seguente tabella sono identificati i valori utilizzati per definire ciascuno degli stati dell'asse predefiniti. Valore stato 0x00 0x01 0x02 Nome stato Disattivato Fermo Movimento discreto Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 427 Capitolo 18 Istruzioni di controllo del movimento 0x03 0x04 0x06 0x07 Movimento continuo Azzeramento Arresto in corso Arresto errore Aggiornamenti di stato degli assi All'esecuzione del movimento, l'aggiornamento di stato dell'asse dipende da quando il blocco funzione del movimento in questione viene chiamato dalla scansione POU. Questo vale anche quando il profilo di movimento è controllato dal Motore movimento come attività di background, indipendentemente dalla scansione POU. Ad esempio, su un asse in movimento di una scala POU (stato di un piolo = true) viene analizzato un blocco funzione MC_MoveRelative nel piolo e l'asse inizia a muoversi. Prima del completamento di MC_MoveRelative, lo stato del piolo passa a False e MC_MoveRelative non viene più scansionato. In questo caso lo stato dell'asse non può passare da Discrete Motion a StandStill, neanche dopo l'arresto completo dell'asse e la velocità a 0. Vedere anche Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 428 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Numeri dei parametri del blocco funzione per il controllo del movimento Capitolo 18 Istruzioni di controllo del movimento Durante la programmazione dei blocchi funzione i seguenti blocchi funzione utilizzano numeri di parametri specifici. · MC_ReadParameter · MC_ReadBoolParameter · MC_WriteParameter · MC_WriteBoolParameter Identificazione del numero del parametro I numeri del parametro tra 0 e 999 sono riservati ai parametri standard. Sono consentite anche aggiunte da parte di fornitori o utenti, tuttavia ciò potrebbe incidere sulla trasportabilità da una piattaforma all'altra. Se il numero del parametri è maggiore di 999, il parametro è specifico del fornitore. Numero parametro Nome parametro 1 Posizione comandata 2 SWLimitPos 3 SWLimitNeg 4 EnableLimitPos 5 EnableLimitNeg 8 MaxVelocitySystem 9 MaxVelocityAppl 11 CommandedVelocity 12 MaxAccelerationSystem 13 MaxAccelerationAppl 14 MaxDecelerationSystem 15 MaxDecelerationAppl 16 MaxJerk 1001 TargetPosition 1002 TargetVelocity1 1005 Ciclo di lavoro 1006 PulsePerRevolution 1007 TravelPerRevolution Tipo di R/W dati REAL R REAL R/W REAL R/W BOOL R/W BOOL R/W REAL R REAL R/W REAL R REAL R REAL R/W REAL R REAL R/W REAL R/W REAL R REAL R REAL R/W REAL R REAL R Descrizione Posizione comandata. Posizione interruttore limite software positivo. Posizione interruttore limite software negativo. Abilita interruttore limite software positivo. Abilita interruttore limite software negativo. Velocità massima consentita per l'asse nel sistema di movimento. Velocità massima consentita per l'asse nell'applicazione. Velocità comandata. Accelerazione massima consentita per l'asse nel sistema di movimento. Accelerazione massima consentita per l'asse nell'applicazione. Decelerazione massima consentita per l'asse nel sistema di movimento. Decelerazione massima consentita per l'asse nell'applicazione. Strappo massimo dell'asse consentito. La posizione di destinazione finale per il blocco funzione del movimento corrente attivo La velocità di destinazione finale per il blocco funzione del movimento corrente attivo Il ciclo di carico per un impulso. Il valore valido è compreso tra 0 e 100, per indicare l'intervallo 0% - 100%. (la funzione PWM può essere realizzata regolando questo valore). Questo parametro può essere configurato solo utilizzando questo blocco funzione. Il valore predefinito è impostato su 50.0 dal controllore. Nota: Per Ciclo di carico, il valore verrà sovrascritto dall'impostazione predefinita 50.0 quando il controllore passa dalla modalità RUN alla modalità PRG e nuovamente alla modalità RUN, o quando il controllore viene spento e riacceso. L'impostazione Impulsi per giro immessa dall'utente nell'interfaccia grafica CCW. L'impostazione Corsa per giro immessa dall'utente nell'interfaccia grafica CCW. Vedere anche Istruzioni di controllo del movimento a pagina 423 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 429 Capitolo 18 Istruzioni di controllo del movimento Regole generali per i blocchi funzione di controllo movimento a pagina 424 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione Quando un blocco funzione Controllo movimento termina con un errore e lo stato dell'asse è ErrorStop, utilizzare il blocco funzione MC_Reset di controllo movimento o MC_Power Off/On e MC_Reset per recuperare l'asse. L'asse può essere reimpostato sul movimento normale senza interrompere il funzionamento del controllore. Utilizzare questa tabella per determinare gli errori per i blocchi funzione Controllo movimento. Valore ID MACRO Descrizione 00 MC_FB_ERR_ NO Blocco funzione eseguito correttamente. 01 MC_FB_ERR_ WRONG_STATE 02 MC_FB_ERR_ RANGE Non è possibile eseguire il blocco funzione, in quanto l'asse non è nello stato corretto. Verificare lo stato dell'asse. Non è possibile eseguire il blocco funzione per via di parametri dinamici dell'asse non validi (velocità, accelerazione, decelerazione o strappo) impostati in un blocco funzione. Correggere l'impostazione dei parametri dinamici nel blocco funzione sulla pagina di configurazione Dinamica asse. 03 MC_FB_ERR_ PARAM 04 MC_FB_ERR_ AXISNUM 05 MC_FB_ERR_ MECHAN 06 MC_FB_ERR_ NOPOWER 07 MC_FB_ERR_ RESOURCE Non è possibile eseguire il blocco funzione per via di un parametro non valido che non riguarda velocità, accelerazione, decelerazione o strappo, impostato in un blocco funzione. Correggere l'impostazione dei parametri (ad es. modalità o posizione) per il blocco funzione. Non è possibile eseguire il blocco funzione perché l'asse non esiste, i dati di configurazione dell'asse sono danneggiati oppure la configurazione dell'asse non è corretta. Non è possibile eseguire il blocco funzione in quanto l'asse va in errore a causa di problemi meccanici o dell'unità. Controllare il collegamento tra unità e controllore (segnali Pronto unità e In posizione), quindi verificare che l'unità funzioni normalmente. Non è possibile eseguire il blocco funzione, in quanto l'asse non è alimentato. Alimentare l'asse con il blocco funzione MC_Power. Non è possibile eseguire il blocco funzione in quanto la risorsa richiesta dal blocco funzione è controllata da un altro blocco funzione o non è disponibile. Verificare che la risorsa richiesta dal blocco funzione sia disponibile per l'uso. Esempi: · MC_Power tenta di controllare lo stesso asse. · Sono eseguiti MC_Stop sullo stesso asse e nello stesso momento. · Sono eseguiti MC_TouchProbe sullo stesso asse e nello stesso momento. · Viene eseguito MC_TouchProbe quando l'ingresso della sonda a contatto non è abilitato in Configurazione movimento. 08 MC_FB_ERR_ PROFILE Non è possibile eseguire il blocco funzione, in quanto non è possibile ottenere il profilo di movimento definito nel blocco funzione. Correggere il profilo nel blocco funzione. 430 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Valore 09 ID MACRO MC_FB_ERR_ VELOCITY 0A MC_FB_ERR_ SOFT_LIMIT 0B MC_FB_ERR_ HARD_LIMIT 0C MC_FB_ERR_ LOG_LIMIT 0D MC_FB_ERR_ ERR_ENGINE 10 MC_FB_ERR_ NOT_HOMED 80 MC_FB_ERR_ PARAM_MODIFIED Descrizione Capitolo 18 Istruzioni di controllo del movimento Non è possibile eseguire il blocco funzione, in quanto non è possibile ottenere il profilo di movimento richiesto nel blocco funzione a causa della velocità attuale dell'asse. Esempi: · Il blocco funzione richiede che l'asse inverta la direzione mentre l'asse è in movimento. · Il profilo di movimento richiesto non è raggiungibile per via della velocità corrente, troppo ridotta o troppo elevata. Verificare l'impostazione del profilo di movimento nel blocco funzione e correggerlo oppure rieseguire il blocco funzione quando la velocità dell'asse è compatibile con il profilo di movimento richiesto. Non è possibile eseguire questo blocco funzione in quanto il movimento supererà il limite software, oppure il blocco funzione è stato interrotto a causa del raggiungimento del limite software. Controllare le impostazioni di velocità o posizione destinazione nel blocco funzione, oppure regolare il limite software. Il blocco funzione è stato interrotto in quanto è stato rilevato lo stato attivo dell'interruttore del limite hardware durante il movimento dell'asse o prima dell'avvio del movimento dell'asse. Spostare l'asse dall'interruttore del limite hardware, nella direzione opposta. Non è possibile eseguire questo blocco funzione in quanto il movimento supererà il limite logico dell'accumulatore PTO, oppure il blocco funzione è stato interrotto a causa del raggiungimento del limite logico dell'accumulatore PTO. Controllare le impostazioni di velocità o posizione destinazione per il blocco funzione. In alternativa, utilizzare il blocco funzione MC_SetPosition per regolare il sistema di coordinate dell'asse. È stato rilevato un errore di esecuzione del motore di movimento durante l'esecuzione di questo blocco funzione. Eseguire un ciclo di alimentazione dell'intero sistema di movimento, inclusi controllore, unità e attuatori e scaricare nuovamente l'applicazione utente. Se l'errore persiste, rivolgersi all'assistenza tecnica. Non è possibile eseguire il blocco funzione, perché è necessario porre prima l'asse in sede. Riposizionare nuovamente l'asse in sede usando il blocco funzione MC_Home. Avvertenza: la velocità richiesta per l'asse è stata regolata su un valore inferiore. Il blocco funzione è stato eseguito correttamente a una velocità ridotta. Vedere anche Istruzioni di controllo del movimento a pagina 423 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Stati asse di controllo movimento a pagina 426 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Scenari di errore asse Nella maggior parte dei casi, quando l'istruzione di un blocco funzione movimento trasmessa a un asse comporta un errore del blocco funzione, l'asse viene contrassegnato come in stato Error e il corrispondente elemento ErrorID è impostato sui dati AXIS_REF per l'asse. Nelle seguenti situazioni, l'asse non passa sempre allo stato di Errore ed è possibile per l'applicazione utente trasmettere un corretto blocco funzione movimento all'asse dopo che lo stato dell'asse cambia. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 431 Capitolo 18 Istruzioni di controllo del movimento Scenario Esempio Un blocco funzione movimento comanda un asse, ma l'asse si trova in uno stato in cui il blocco funzione non può essere eseguito correttamente. Un blocco funzione movimento comanda un asse, ma l'asse viene ancora controllato da un altro blocco funzione movimento. L'asse non può consentire che il movimento venga controllato dal nuovo blocco funzione senza raggiungere l'arresto completo. Quando un blocco funzione prova a controllare un asse, ma l'asse è ancora controllato da un altro blocco funzione movimento e il nuovo profilo movimento definito non può essere realizzato da un controllore. L'asse non ha potenza o l'asse si trova in una sequenza Homing oppure in uno stato Error Stop. Il nuovo blocco funzione specifica all'asse di cambiare la direzione di movimento. L'applicazione utente rilascia un blocco funzione curvato a S MC_MoveAbsolute su un asse, per diminuire la distanza fornita quando l'asse è in movimento. Vedere anche Regole generali per i blocchi funzione di controllo movimento a pagina 424 Tipo di dati AXIS_REF Parametri Axis_ID Flag di errore AxisHomed Il tipo di dati AXIS_REF è una struttura dati che contiene informazioni per il controllo assi e viene utilizzata come variabile di ingresso e uscita in tutti i blocchi funzione di controllo movimento. Un'istanza di un tipo di dati AXIS_REF viene creata automaticamente con l'aggiunta di un asse di movimento alla configurazione. Tipo di dati Descrizione AXIS_REF L'ID asse logico è assegnato automaticamente da Connected Components Workbench. Non è possibile né modificarlo né visualizzarlo. BOOL Indica se è presente un errore nell'asse. Se un asse è contrassegnato da un errore e l'ID errore non è zero, è necessario ripristinare l'asse tramite MC_Reset prima di attivare un altro blocco funzione di movimento. BOOL Indica se l'operazione di autoguida per l'asse è stata eseguita correttamente. Quando l'utente tenta di rieseguire l'autoguida per un asse per cui è già impostato AxisHomed (autoguida eseguita correttamente), e l'esito è negativo, lo stato AxisHomed viene cancellato. ConstVel BOOL AccFlag BOOL DecelFlag BOOL AxisState USINT ErrorID UINT ExtraData UINT TargetPos REAL Indica se il movimento dell'asse è in velocità costante. Un asse fermo non è considerato in velocità costante. Indica se il movimento dell'asse è in accelerazione. Indica se il movimento dell'asse è in decelerazione. Indica lo stato attuale dell'asse. Specifica la causa di un errore dell'asse quando ErrorFlag indica un errore. L'errore in genere deriva da un problema nell'esecuzione del blocco funzione di controllo movimento. Riservato. Indica la posizione di destinazione finale dell'asse per i blocchi funzione MoveAbsolute e MoveRelative. Per i blocchi funzione MoveVelocity, Stop e Halt, TargetPos è uguale a 0 tranne quando il valore TargetPos impostato da precedenti blocchi funzione di posizione non è stato eliminato. CommandPos REAL TargetVel REAL Durante il movimento, rappresenta la posizione attuale che il controllore comanda all'asse di assumere. Potrebbe verificarsi un leggero ritardo tra la posizione effettiva dell'asse e questo CommandPos. La velocità di destinazione massima impartita all'asse per un blocco funzione di movimento. Il valore di TargetVel nel blocco funzione corrente o un valore inferiore, a seconda degli altri parametri per lo stesso blocco funzione. 432 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 CommandVel REAL Capitolo 18 Istruzioni di controllo del movimento Durante il movimento, questo elemento indica la velocità corrente che il controllore comanda all'asse di utilizzare. Si tenga presente che potrebbe sussistere una leggera differenza tra la velocità effettiva dell'asse e CommandVel, a causa del ritardo dell'unità o della sua sovraelongazione di assestamento. Vedere anche Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Variabili dell'asse a pagina 434 Tipo di dati FB_AXIS_REF Il tipo di dati FB_AXIS_REF è una struttura dati contenente informazioni per un asse di retroazione di movimento. Viene utilizzato come variabile di input e output nei blocchi funzione di controllo movimento. Un'istanza di un tipo di dati FB_AXIS_REF viene creata automaticamente con l'aggiunta di un modulo HSC e la modalità viene configurata come modalità Asse di retroazione. IMPORTANTE se un asse di retroazione è contrassegnato da un errore e l'ID errore non è zero, è necessario ripristinare l'FBAxis tramite MC_Reset, prima di attivare un altro blocco funzione movimento. Parametro Axis_ID ErrorFlag ConstVel AccelFlag DecelFlag AxisState ErrorID ExtraData ActualPos ActualVel Tipo di dati FB_AXIS_REF BOOL BOOL BOOL BOOL USINT UINT UINT REAL REAL Descrizione L'ID asse logico è assegnato automaticamente da Connected Components Workbench. Non è possibile né modificarlo né visualizzarlo. Indica se è presente un errore nell'asse di retroazione. Indica se il movimento dell'asse di retroazione è a velocità costante o meno. Un asse fermo non è considerato in velocità costante. Indica se il movimento dell'asse di retroazione è in accelerazione o meno. Indica se il movimento dell'asse di retroazione è in decelerazione o meno. Indica lo stato attuale dell'asse di retroazione. Specifica la causa di un errore dell'asse quando ErrorFlag indica un errore. L'errore in genere deriva da un problema nell'esecuzione del blocco funzione di controllo movimento. Riservato. Lettura della posizione meccanica effettiva dal canale di retroazione movimento (HSC). Lettura della velocità meccanica effettiva dal canale di retroazione movimento (HSC). Vedere anche Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Variabili dell'asse a pagina 434 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 433 Capitolo 18 Istruzioni di controllo del movimento Variabili dell'asse Le variabili dell'asse servono per controllare posizione, velocità, accelerazione ed errori per uno specifico asse di controllo movimento. Assegnare una variabile a un parametro di output Axis · In un diagramma a blocchi funzionali Per comodità, connettere graficamente il parametro di output Axis di un blocco funzione per il controllo movimento al parametro di input AxisIn di un altro blocco funzione per il controllo movimento. Ad esempio, connettere il parametro di uscita MC_POWER Axis al parametro di ingresso MC_HOME AxisIn. · In un ladder diagram Non è possibile assegnare una variabile al parametro di output Axis di un blocco funzione per il controllo movimento in quanto è di sola lettura. Monitorare una variabile AXIS_REF Monitorare una variabile AXIS_REF o FBAXIS_REF nel software durante una connessione al controllore, quando il motore di movimento è attivo o nell'applicazione utente nell'ambito della logica utente. È possibile monitorare la variabile AXIS_REF o FBAXIS_REF anche da remoto tramite i diversi canali di comunicazione. Vedere anche Istruzioni di controllo del movimento a pagina 423 MC_AbortTrigger (trigger di interruzione del controllo movimento) Interrompe i blocchi funzione Controllo assi collegati agli eventi di attivazione. MC_AbortTrigger viene eseguito solo quando assegnato a un asse che viene controllato da MC_TouchProbe. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 434 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn TriggerInp Execute ENO Asse TriggerInput Finito Busy Errore ErrorID Parametri Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_AbortTrigger corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. AXIS_REF FB_AXIS_REF USINT BOOL Utilizzare il tipo di dati AXIS_REF per definire il parametro AxisIn. Se l'asse è un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire i parametri di AxisIn. Questo parametro è ignorato. Quando TRUE, interrompe l'evento di trigger durante il fronte di salita. BOOL AXIS_REF USINT BOOL BOOL BOOL UINT Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Questo parametro è ignorato. TRUE: quando l'evento di trigger viene interrotto. TRUE il blocco funzione non è finito. TRUE: è stato rilevato un errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 435 Capitolo 18 Istruzioni di controllo del movimento Esempi di programmazione a blocchi funzionali MC_AbortTrigger Esempio di diagramma ladder MC_AbortTrigger Esempio di testo strutturato MC_AbortTrigger 436 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 18 Istruzioni di controllo del movimento Vedere anche Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 MC_Halt (halt di controllo movimento) Comanda un arresto controllato del movimento in condizioni operative normali. Dettagli operazioni: · Lo stato dell'asse cambia a DiscreteMotion, fino a quando la velocità non è zero. Quando la velocità raggiunge lo zero, Done viene impostato su True e lo stato dell'asse cambia a StandStill. · Durante la decelerazione dell'asse è possibile eseguire un altro comando di controllo assi che interrompe MC_Halt. · Se MC_Halt viene rilasciato quando lo stato dell'asse è Homing, il blocco funzione riporta un errore e il processo di homing non viene interrotto. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 437 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. EN AxisIn Execute Deceleration Jerk BufferMode ENO Asse Finito Busy Attivo CommandAborted Errore ErrorID Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL AXIS_REF BOOL REAL REAL SINT BOOL AXIS_REF BOOL BOOL BOOL BOOL BOOL UINT Abilitazione del blocco istruzione. TRUE: esegue il calcolo di MC_Halt corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Indica quando avviare il movimento. TRUE: avviare il movimento durante il fronte di salita. FALSE: non avviare il movimento. l'esecuzione di MC_Halt durante il ritorno in posizione iniziale, MC_Halt è impostato su MC_FB_ERR_STATE e il processo di ritorno in posizione iniziale continua. Valore della decelerazione (sempre positivo) (energia in riduzione del motore). se Deceleration <= 0 e lo stato dell'asse non è StandStill, MC_Halt è impostato su MC_FB_ERR_RANGE. Valore Jerk (sempre positivo). se Deceleration <= 0 e lo stato dell'asse è StandStill, MC_Halt è impostato su MC_FB_ERR_RANGE. Non utilizzato. La modalità è sempre MC_Aborting. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Raggiungimento della velocità zero. Il blocco istruzione non è finito. Indica che il blocco istruzione ha il controllo sull'asse. Il comando è interrotto da un altro comando o arresto di errore. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. 438 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di programmazione a blocchi funzionali MC_Halt Esempio di diagramma ladder MC_Halt Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 439 Capitolo 18 Istruzioni di controllo del movimento Esempio di testo strutturato MC_Halt Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 ID errori del blocco funzione di controllo movimento a pagina 430 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 MC_Home (home del controllo movimento) Comanda l'asse per l'esecuzione della sequenza <search home>. I dettagli della sequenza dipendono dal produttore e possono essere impostati mediante i parametri degli assi. L'ingresso "Position" è usato per impostare la posizione assoluta quando viene rilevato un segnale di riferimento e raggiunto l'offset Azzeramento configurato. Dettagli operazione: · Dopo l'emissione di MC_Power, lo stato dell'asse Azzerato viene ripristinato a 0 (non azzerato). Nella maggior parte dei casi, dopo 440 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento che l'asse viene alimentato, il blocco funzione MC_Home deve essere eseguito per calibrare la posizione dell'asse e il riferimento di posizione iniziale. · Il blocco funzione MC_Home può essere interrotto solo usando i blocchi funzione MC_Stop o MC_Power. Se interrotto prima di essere completato, la posizione iniziale precedentemente cercata verrà considerata non valida e lo stato di posizione iniziale dell'asse sarà cancellato. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute Position HomingMode BufferMode ENO Asse Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue il calcolo corrente MC_Home. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita AXIS_REF BOOL REAL SINT SINT BOOL AXIS_REF Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Indica quando avviare il movimento. TRUE: avviare il movimento durante il fronte di salita. FALSE: non avviare il movimento. La posizione assoluta viene impostata quando viene rilevato il segnale di riferimento e raggiunto l'offset della posizione iniziale configurata. L'intervallo di valori per questo ingresso è -0x40000000 0x40000000 impulsi fisici, dopo che la posizione è convertita dall'unità di posizione utente all'impulso PTO. Impostare il valore del parametro Position entro Soft Limit. Un valore di ingresso non valido ha generato un errore. Error ID = MC_FB_ERR_PARAM. Ingresso numerale per la modalità Homing. Non utilizzato. La modalità è sempre mcAborting. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 441 Capitolo 18 Istruzioni di controllo del movimento Parametro Tipo di parametro Tipo di dati Finito Uscita BOOL Busy Uscita BOOL Attivo Uscita BOOL CommandAborted Uscita BOOL Errore Uscita BOOL ErrorID Uscita UNIT Descrizione TRUE: l'operazione di Homing è terminata con successo e lo stato dell'asse è impostato su Fermo. FALSE: l'operazione di Homing è in corso o è incompleta. TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. TRUE: indica che il blocco istruzione ha il controllo sull'asse. TRUE: il comando è stato interrotto da un altro comando, o da un arresto su errore. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. HomingModes Utilizzare questa tabella per determinare i valori per il parametro HomingMode nell'istruzione di controllo movimento MC_Home. Valore 0x00 0x01 0x02 0x03 0x04 Nome MC_HOME_ABS_SWITCH MC_HOME_LIMIT_SWITCH MC_HOME_REF_WITH_ABS MC_HOME_REF_PULSE MC_HOME_DIRECT Descrizione Processo Homing mediante ricerca dell'interruttore Home Absolute Processo Homing mediante ricerca dell'interruttore limite Processo Homing mediante ricerca dell'interruttore Home Absolute e uso dell'impulso di riferimento encoder Processo Homing mediante ricerca dell'interruttore limite e uso dell'impulso di riferimento encoder Processo Homing statico con forzatura diretta di una posizione iniziale da riferimento utente. Il blocco funzione imposterà la posizione corrente in cui si trova il meccanismo come posizione iniziale, con la sua posizione determinata dal parametro di ingresso "Position". Esempi di programmazione a blocchi funzionali MC_Home 442 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Esempio di diagramma ladder MC_Home Istruzioni di controllo del movimento Esempio di testo strutturato MC_Home Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 443 Capitolo 18 Istruzioni di controllo del movimento Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 ID errori del blocco funzione di controllo movimento a pagina 430 444 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 MC_MoveAbsolute (movimento assoluto del controllo movimento) Capitolo 18 Istruzioni di controllo del movimento Determina un movimento controllato verso una posizione assoluta specificata. Dettagli operazione: · Per il controllore Micro800, · il segno dell'ingresso Velocità per un blocco funzione MC_MoveAbsolute viene ignorato, in quanto la direzione del movimento è determinata dalla posizione corrente e dalla posizione di destinazione. · L'ingresso Direzione per un blocco funzione MC_MoveAbsolute viene ignorato, in quanto esiste solo una soluzione matematica per raggiungere la posizione di destinazione. · Se il blocco funzione MC_MoveAbsolute viene emesso quando lo stato dell'asse del controllore Micro800 è Fermo e la distanza relativa del movimento è zero, l'esecuzione del blocco funzione viene riportata immediatamente come Done. · Se un blocco funzione MC_MoveAbsolute viene emesso per un asse che non si trova in posizione azzerata, il blocco funzione riporterà un errore. · Il blocco funzione MoveAbsolute verrà completato con velocità zero se non viene interrotto da un altro blocco funzione. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 445 Capitolo 18 Istruzioni di controllo del movimento Parametro EN Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo corrente MC_MoveAbsolute. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. AxisIn Execute Position Ingresso Ingresso Ingresso AXIS_REF BOOL REAL Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Indica quando avviare il movimento. TRUE: avviare il movimento durante il fronte di salita. FALSE: non avviare il movimento. L'asse deve essere in posizione iniziale quando viene emesso il comando di esecuzione o quando si verifica un errore, MC_FB_ERR_NOT_HOMED. Posizione di destinazione per il movimento in unità tecnica (negativa o positiva). L'unità tecnica è definita nella pagina di configurazione Controllo assi - Generale per un asse. Velocity Acceleration Deceleration Jerk Direzione BufferMode ENO Asse Finito Busy Attivo CommandAborted Errore ErrorID Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita Uscita REAL REAL REAL REAL SINT SINT BOOL AXIS_REF BOOL BOOL BOOL BOOL BOOL UINT Valore della velocità massima. La velocità massima non può essere raggiunta se Jerk = 0. Il segno del parametro di velocità è ignorato, la direzione del moto è determinata dal valore di ingresso Position. Valore dell'accelerazione (sempre positiva - aumento dell'energia al motore). unità utente/sec2 Valore della decelerazione (sempre positiva - diminuzione dell'energia al motore). u/sec2 Valore Jerk (sempre positivo). u/sec3 quando il valore dello strappo in ingresso = 0, il profilo del Trapezoide è calcolato da Motion Engine. Quando Jerk > 0, viene calcolato il profilo S-Curve. Questo parametro non è usato. Questo parametro non è usato. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Se TRUE, raggiunta posizione di comando. Quando il parametro di ingresso In-Position per questo asse è configurato su Attivato, l'unità deve impostare il segnale di ingresso In-Position come attivo prima che il bit Done diventi True. Questa azione termina con velocità zero, a meno che non sia interrotta. Se TRUE, il blocco funzione non è terminato. Se TRUE, indica che il blocco funzione ha il controllo dell'asse Se TRUE, il comando è stato interrotto da un altro comando, o da un arresto su errore. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. 446 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempi di programmazione a blocchi funzionali MC_MoveAbsolute Esempio di diagramma ladder MC_MoveAbsolute Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 447 Capitolo 18 Istruzioni di controllo del movimento Esempio di testo strutturato MC_MoveAbsolute Risultati Vedere anche Istruzioni di controllo del movimento a pagina 423 Informazioni generali sulle istruzioni di controllo movimento a pagina 426 Tipo di dati AXIS_REF a pagina 432 ID errori del blocco funzione di controllo movimento a pagina 430 MC_MoveRelative (movimento relativo del controllo movimento) Determina un movimento controllato di una distanza specificata rispetto alla posizione attuale nel momento dell'esecuzione. Dettagli operazione: · Il segno della velocità viene ignorato, in quanto la direzione del movimento per MC_MoveRelative viene determinata dalla posizione corrente e dalla posizione di destinazione. · MoveRelative viene completato con velocità zero, se non viene interrotto da un altro blocco funzione. · Se viene emesso il comando MC_MoveRelative quando lo stato dell'asse del controllore Micro800 è Fermo e la distanza relativa 448 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento di movimento è zero, l'esecuzione del blocco funzione viene riportata immediatamente come Completata. · Per un controllore Micro800, il segno dell'ingresso Velocità per MC_MoveRelative viene ignorato, in quanto la direzione del movimento viene determinata dalla posizione corrente e dalla posizione di destinazione. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametri EN AxisIn Execute Distance Velocity Acceleration Deceleration Jerk Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Operazione MC_MoveRelative Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL AXIS_REF BOOL REAL REAL Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_MoveRelative corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Indica quando avviare il movimento. TRUE: avviare il movimento durante il fronte di salita. FALSE: non avviare il movimento. Distanza relativa del movimento (in unità tecnica [u]). Valore della velocità massima (non necessariamente raggiunta) [u/s]. Dato che la direzione del moto è determinata dal valore del parametro Position, il segno di Velocity è ignorato dal blocco funzione. La velocità massima non può essere raggiunta se Jerk = 0. Ingresso REAL Ingresso REAL Ingresso REAL Valore dell'accelerazione (aumento dell'energia al motore) [u/s2] Valore della decelerazione (diminuzione dell'energia al motore) [u/s2] Valore del jerk [u/s3] Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 449 Capitolo 18 Parametri BufferMode ENO Istruzioni di controllo del movimento Tipo di parametro Ingresso Tipo di dati SINT Uscita BOOL Asse Uscita AXIS_REF Finito Uscita BOOL Busy Uscita BOOL Attivo Uscita BOOL CommandAborted Uscita BOOL Errore Uscita BOOL ErrorID Uscita UINT Descrizione Questo parametro non è usato. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: raggiunta distanza comandata. Quando il parametro di ingresso In-Position per questo asse è abilitato, il segnale di ingresso In-Position deve essere impostato come attivo prima che Done = True. TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. TRUE: indica che il blocco istruzione ha il controllo sull'asse. TRUE: comando interrotto da un altro comando o da Arresto errore. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Esempi di programmazione a blocchi funzionali MC_MoveRelative 450 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di diagramma ladder MC_MoveRelative Esempio di testo strutturato MC_MoveRelative Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 451 Capitolo 18 Istruzioni di controllo del movimento Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 452 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 MC_MoveVelocity (velocità di movimento del controllo movimento) Capitolo 18 Istruzioni di controllo del movimento Determina un movimento controllato infinito a una velocità specificata. Dettagli operazione: · Se l'ingresso DirectionIn per MC_MoveVelocity è uguale a 0 e: · l'asse è in uno stato di movimento, il segno dell'ingresso Velocità viene ignorato, l'asse continua a muoversi nell'attuale direzione di movimento e vengono applicati i nuovi parametri dinamici. · L'asse non è in uno stato di movimento, MC_MoveVolecity riporta un errore. · Se durante l'esecuzione di MC_MoveVelocity viene raggiunto il limite di Impulso PTO, il valore Accumulatore PTO viene riportato a 0 (o, se è attivato il limite, al limite software opposto) e l'esecuzione continua. · Se l'asse è in stato di movimento e MC_MoveVelocity invia un movimento per cui la direzione (segno di velocità * direzione) è opposta all'attuale direzione di movimento, MC_MoveVelocity riporterà un errore. · Una volta impostato, il segnale "InVelocity" indica che MC_MoveVelocity è stato completato. Qualsiasi evento di movimento successivo non avrà effetto sulle uscite MC_MoveVelocity, ad eccezione del segnale "InVelocity". · L'uscita InVelocity di MC_MoveVelocity resta True dopo che la velocità dell'asse raggiunge la velocità comandata o finché il MC_MoveVelocity non viene interrotto. · Il segno di (Velocità * Direzione) determina la direzione del movimento di MC_MoveVelocity. Se il segno di Velocità e il segno di Direzione sono uguali, viene emesso un movimento positivo. Se il segno di Velocità e Direzione non sono uguali, viene emesso un movimento negativo. · Il segnale "InVelocity" viene reimpostato quando MC_MoveVelocity viene interrotto da un altro blocco funzione o evento di movimento o sul fronte di discesa di "Esegui". · Per arrestare o modificare il controllo assi iniziato da MC_MoveVelocity, il blocco istruzione deve essere interrotto o arrestato da un altro blocco istruzione, inclusa la ripetizione dell'esecuzione di MC_MoveVelocity con parametri differenti. · Se MC_MoveVelocity viene emesso con l'asse in stato Fermo (non controllato da un altro blocco funzione) e si verifica un errore nel blocco funzione, lo stato dell'asse passa a ErrorStop. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 453 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute Velocity Acceleration Deceleration Jerk DirectionIn BufferMode ENO Asse InVelocity Busy Attivo Direzione CommandAborted Errore ErrorID Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Ingresso Ingresso AXIS_REF BOOL Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita Uscita REAL REAL REAL REAL SINT SINT BOOL AXIS_REF BOOL BOOL BOOL SINT BOOL BOOL Uscita UINT Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_MoveVelocity corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Indica quando avviare il movimento. TRUE: avviare il movimento durante il fronte di salita. FALSE: non avviare il movimento. Valore della velocità massima [u/s]. Valore dell'accelerazione (aumento dell'energia al motore) [u/s2] Valore della decelerazione (diminuzione dell'energia al motore) [u/s2] Valore del jerk [u/s3] I valori validi sono: -1, 0, 1. Questo parametro non è usato. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: è stata raggiunta la velocità comandata (prima volta). TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. TRUE: indica che il blocco funzione ha il controllo sull'asse. I valori validi sono: -1, 0, 1. TRUE: comando interrotto da un altro comando o da Arresto errore. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. 454 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempi di programmazione a blocchi funzionali MC_MoveVelocity Esempio di diagramma ladder MC_MoveVelocity Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 455 Capitolo 18 Istruzioni di controllo del movimento Esempio di testo strutturato MC_MoveVelocity Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Regole generali per i blocchi funzione di controllo movimento a pagina 424 456 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 MC_Power (potenza del controllo movimento) Controlla lo stato di alimentazione, ON o OFF. Dettagli operazione: · Se si importa un progetto creato in CCW 7 in CCW 8, viene visualizzato il nuovo parametro di input Mc_Power chiamato __DTI_AxisIn. Se si verifica un errore di compilazione, riselezionare le istruzioni e ricompilare. · Dopo che l'asse è stato acceso, lo stato dell'asse Azzerato viene ripristinato a 0 (non azzerato). · Gli ingressi Enable_Positive ed Enable_Negative per MC_Power sono entrambi attivati su livello e vengono controllati quando l'ingresso di abilitazione passa da OFF a ON. Il passaggio in movimento dell'ingresso Enable_Positive e dell'ingresso Enable_Negative senza attivazione/disattivazione di Abilita ingresso, non è controllato. · Se si verifica un errore di alimentazione durante il funzionamento (quando viene rilevato Servo pronto), lo stato dell'asse passa a ErrorStop. · L'istruzione MC_Power ha un valore di timeout di 2 minuti. MC_Power restituisce un errore quando l'intervallo di timeout scade e l'ingresso pronto servomotore è FALSE. · Se il blocco funzione MC_Power con abilitazione impostata su True viene richiamato mentre lo stato dell'asse è Disabled, lo stato dell'asse passa a Fermo in assenza di errori rilevati, altrimenti lo stato dell'asse passa a ErrorStop in caso di errore. · Deve essere emesso un solo blocco di funzione MC_Power per asse. L'uso di un differente blocco funzione MC_ Power per controllare contemporaneamente lo stesso asse viene rifiutato da Motore movimento. · In presenza di un commutatore di stato accensione o spegnimento per un asse, la posizione assoluta dell'asse non viene reimpostata. · Se viene richiamato il blocco funzione MC_Power con Enable impostato su False, lo stato dell'asse passa a Disabled per ogni stato, incluso ErrorStop. · Il blocco funzione MC_Power può accendersi sull'asse se Enable è impostato su True e spegnere l'asse se Enable è impostato su False. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 457 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Enable Enable_Positive Enable_Negative ENO Asse Stato Busy Attivo Errore ErrorID Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo corrente MC_Power. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Uscita AXIS_REF FB_AXIS_REF BOOL BOOL BOOL BOOL AXIS_REF BOOL BOOL BOOL BOOL UINT Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Per un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: l'alimentazione è ON. FALSE: l'alimentazione è OFF TRUE: il controllo assi è consentito nella direzione positiva. TRUE: il controllo assi è consentito nella direzione negativa. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Tipo di dati AXIS_REF. Stato dello stadio di alimentazione: · TRUE: è stata effettuata l'accensione dell'unità. · FALSE: l'accensione dell'unità non è stata eseguita. TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. TRUE: indica che il blocco funzione ha il controllo sull'asse. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. 458 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di diagramma Blocco funzione MC_Power Esempio di diagramma ladder MC_Power Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 459 Capitolo 18 Istruzioni di controllo del movimento Esempio di testo strutturato MC_Power Risultati Vedere anche Istruzioni di controllo del movimento a pagina 423 Regole generali per i blocchi funzione di controllo movimento a pagina 424 ID errori del blocco funzione di controllo movimento a pagina 430 Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 MC_ReadActualPosition (posizione effettiva di lettura del controllo movimento) Restituisce la posizione effettiva dell'asse di feedback. MC_ReadActualPosition è applicabile solo al movimento di retroazione. Dettagli operazione: · Prima di eseguire MC_ReadActualPosition, verificare l'asse in uno dei seguenti stati dell'asse: · Disattivato · Fermo · Movimento discreto · Arresto errore 460 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento · La posizione effettiva per un asse di feedback non viene reimpostata su 0 dopo un download. Per eseguire il reset o cancellare la posizione per un asse di feedback, utilizzare l'istruzione MC_Home o l'istruzione MC_SetPosition. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro AxisIn Enable Asse Valid Busy Errore ErrorID Position Tipo di parametro Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione FB_AXIS_REF BOOL FB_AXIS_REF BOOL BOOL BOOL UNIT REAL Per un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottenere continuamente il valore del parametro quando abilitato. FALSE: non attivo. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. I parametri di uscita dell'asse sono definiti nel tipo di dati FB_AXIS_REF. TRUE: il blocco istruzione è attivo e sono previsti nuovi valori in uscita. FALSE: il blocco istruzione non è attivo. TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Valore della posizione assoluta effettiva per l'asse di movimento di retroazione (in unità dell'asse [u]). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 461 Capitolo 18 Istruzioni di controllo del movimento Esempio di Programmazione a blocchi funzionali MC_ReadActualPosition Esempio di Diagramma ladder MC_ReadActualPosition Esempio di Testo strutturato MC_ReadActualPosition 462 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 18 Istruzioni di controllo del movimento Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 463 Capitolo 18 Istruzioni di controllo del movimento Vedere anche Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 MC_ReadActualVelocity (velocità effettiva di lettura del controllo movimento) Restituisce il valore della velocità corrente dell'asse di feedback. MC_ReadActualVelocity è applicabile solo al movimento di retroazione. Prima di eseguire MC_ReadActualVelocity, verificare l'asse in uno dei seguenti stati dell'asse: · Fermo · Movimento discreto · Arresto errore Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro AxisIn Enable Asse Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione FB_AXIS_REF BOOL FB_AXIS_REF Per un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottiene continuamente il valore per la velocità effettiva. FALSE: i dati non sono più validi, tutte le uscite vengono ripristinate su 0 e il parametro Valid viene impostato su False. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. I parametri di uscita dell'asse sono definiti nel tipo di dati FB_AXIS_REF. 464 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Valid Busy Errore Tipo di parametro Uscita Uscita Uscita Tipo di dati BOOL BOOL BOOL ErrorID Uscita UNIT ActualVelocity Uscita REAL Descrizione Capitolo 18 Istruzioni di controllo del movimento TRUE: il blocco funzione è attivo e sono previsti nuovi valori in uscita. FALSE: la funzione non prevede nuovi valori in uscita. TRUE il blocco funzione non è finito. FALSE: la funzione non è attiva. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Il valore della velocità effettiva per l'asse Motion feedback (in unità dell'asse [u/s]). ActualVelocity è un valore con segno, che include le informazioni di direzione. Esempio di Programmazione a blocchi funzionali MC_ReadActualVelocity Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 465 Capitolo 18 Istruzioni di controllo del movimento Esempio di Diagramma ladder MC_ReadActualVelocity Esempio di Testo strutturato MC_ReadActualVelocity 466 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 18 Istruzioni di controllo del movimento Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 467 Capitolo 18 Istruzioni di controllo del movimento Vedere anche Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 MC_ReadAxisError (errore dell'asse di lettura del controllo movimento) Legge gli errori dell'asse non in relazione ai blocchi funzione Controllo movimento. Quando un asse è in stato Disabilitato, MC_ReadAxisError può ottenere o meno un ID errore diverso da zero per l'asse, in quanto un asse Disabilitato può contenere o meno errori. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Enable ENO 468 Tipo di parametro Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue il calcolo corrente MC_ReadAxisError. FALSE: Error, ErrorID e AxisErrorID vengono ripristinati su False (o 0). Applicabile solo alle programmazioni LD. Ingresso Ingresso Uscita AXIS_REF FB_AXIS_REF BOOL BOOL Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Per un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottenere continuamente il valore del parametro quando abilitato. FALSE: reimposta Error, ErrorID, e AxisErrorID uscite su 0. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Asse Valid Busy Errore ErrorID AxisErrorID Tipo di parametro Uscita Tipo di dati AXIS_REF Uscita BOOL Uscita BOOL Uscita BOOL Uscita UINT Uscita UINT Descrizione Capitolo 18 Istruzioni di controllo del movimento L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. I parametri di uscita dell'asse sono definiti nel tipo di dati FB_AXIS_REF. TRUE: il blocco istruzione è attivo e sono previsti nuovi valori in uscita. FALSE: il blocco istruzione non è attivo. TRUE il blocco istruzione non è finito. FALSE: il blocco istruzione è completato. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Numero univoco che identifica l'errore dell'asse. Gli errori per questa istruzione sono definiti nei codici di errore AxisErrorID. Esempio di Programmazione a blocchi funzionali MC_ReadAxisError Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 469 Capitolo 18 Istruzioni di controllo del movimento Esempio di Diagramma ladder MC_ReadAxisError Esempio di Testo strutturato MC_ReadAxisError Risultati 470 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 18 Istruzioni di controllo del movimento Tipo di dati AXIS_REF a pagina 432 Codici di errore AxisErrorID a pagina 471 Tipo di dati FB_AXIS_REF a pagina 433 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Codici di errore AxisErrorID Nella seguente tabella sono descritti i codici di errore degli assi identificati in AxisErrorID per MC_ReadAxisError. Valore ID MACRO Descrizione 00 MC_FB_ERR_ NO L'asse è in stato operativo (nulla da visualizzare). 01 MC_FB_ERR_ WRONG_STATE 02 MC_FB_ERR_ RANGE L'asse non funziona a causa di uno stato dell'asse non corretto rilevato durante l'esecuzione di un blocco funzione. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. L'asse non funziona a causa di un parametro dinamico dell'asse non valido (velocità, accelerazione, decelerazione o strappo), impostato in un blocco funzione. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Nel blocco funzione correggere tutte le impostazioni dei parametri dinamici in conflitto con le impostazioni della pagina di configurazione Dinamica asse. 03 MC_FB_ERR_ PARAM L'asse non funziona a causa di un parametro non valido (diverso da velocità, accelerazione, decelerazione o strappo), impostato in un blocco funzione. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Nel blocco funzione, correggere le impostazioni dei parametri, come modalità o posizione. 04 MC_FB_ERR_ AXISNUM 05 MC_FB_ERR_ MECHAN 06 MC_FB_ERR_ NOPOWER 07 MC_FB_ERR_ RESOURCE Errore interno movimento, ID errore = 0x04. Contattare il rappresentante del supporto tecnico di zona di Rockwell Automation. Per le informazioni sui contatti, visitare: http://www.rockwellautomation.com/support L'asse non funziona perché è stato rilevato un problema all'unità o meccanico. Controllare il collegamento tra unità e controllore (segnali Pronto unità e In posizione), quindi verificare che l'unità funzioni normalmente. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. L'asse non è alimentato. Alimentare l'asse con il blocco funzione MC_Power. Ripristinare lo stato dell'asse utilizzando il blocco funzione MC_Reset. L'asse non funziona in quanto esso o la risorsa relativa richiesta dal blocco funzione sono sotto controllo di un altro blocco funzione, o non disponibili. Verificare che l'asse o la relativa risorsa richiesta dal blocco funzione sia disponibile per l'uso. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Riesaminare e correggere l'applicazione in caso di istanze multiple dello stesso blocco funzione che tentano di controllare l'asse contemporaneamente. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 471 Capitolo 18 Istruzioni di controllo del movimento Valore ID MACRO 08 MC_FB_ERR_ PROFILE 09 MC_FB_ERR_ VELOCITY 10 MC_FB_ERR_ SOFT_LIMIT 11 MC_FB_ERR_ HARD_LIMIT 12 MC_FB_ERR_ LOG_LIMIT 13 MC_FB_ERR_ ERR_ENGINE 16 MC_FB_ERR_ NOT_HOMED 128 MC_FB_ERR_ PARAM_MODIFIED Descrizione L'asse non funziona in quanto un profilo di movimento definito in un blocco funzione non è valido. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Correggere il profilo nel blocco funzione. L'asse non funziona in quanto un profilo di movimento richiesto in un blocco funzione è in conflitto con la velocità corrente dell'asse. Possibili cause: · Il blocco funzione richiede che l'asse inverta la direzione mentre l'asse è in movimento. · La velocità corrente è troppo bassa o troppo alta per il profilo di movimento richiesto. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Correggere il profilo di movimento nel blocco funzione o rieseguire il blocco funzione quando la velocità dell'asse è compatibile con il profilo di movimento richiesto. L'asse non funziona per via di un errore di limite software rilevato o per un errore di limite software causato dall'esecuzione del blocco funzione. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Controllare le impostazioni di velocità o posizione destinazione per il blocco funzione, oppure regolare il Limite software. L'asse non funziona a causa del rilevamento di un errore Limite hardware. Reimpostare lo stato dell'asse utilizzando il blocco funzione MC_Reset, quindi spostare l'asse dall'interruttore Limite hardware in direzione opposta. L'asse non funziona per via di un errore limite logico dell'accumulatore PTO rilevato o per un errore di limite logico dell'accumulatore PTO causato dall'esecuzione del blocco funzione. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Controllare le impostazioni di velocità o posizione destinazione per il blocco funzione. Utilizzare il blocco funzione MC_SetPosition per regolare il sistema di coordinate dell'asse. L'asse non funziona in seguito al rilevamento di un errore di esecuzione del motore di movimento. Eseguire il ciclo di alimentazione dell'intera macchina e scaricare nuovamente l'applicazione utente nel controllore. Se l'errore persiste, contattare il rappresentante di assistenza tecnica di zona di Rockwell Automation. Per le informazioni sui contatti, visitare: http://www.rockwellautomation.com/support. L'asse non funziona in quanto l'asse non è in sede. Ripristinare lo stato dell'asse utilizzando i blocchi funzione MC_Reset e MC_Power. Riposizionare nuovamente l'asse in sede usando il blocco funzione MC_Home. Avviso interno movimento, ID avviso = 0x80. Contattare il rappresentante del supporto tecnico di zona di Rockwell Automation. Per le informazioni sui contatti, visitare: http://www.rockwellautomation.com/support. Vedere anche MC_ReadAxisError a pagina 468 472 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 MC_ReadBoolParameter (parametro BOOL di lettura del controllo movimento) Capitolo 18 Istruzioni di controllo del movimento Restituisce il valore di un parametro specifico del fornitore di tipo BOOL. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Enable ParameterNumber ENO Asse Valid Busy Errore ErrorID Valore Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_ReadBoolParameter corrente. FALSE: ripristina l'uscita del valore su 0. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita AXIS_REF FB_AXIS_REF BOOL DINT BOOL AXIS_REF BOOL BOOL Utilizzare il tipo di dati AXIS_REF per definire AxisIn. Per FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottenere continuamente il valore del parametro quando abilitato. FALSE: l'uscita del valore viene ripristinata su 0. Identificazione del parametro. Le definizioni dei numeri di parametro sono definite nei numeri dei parametri del blocco funzione Controllo movimento. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: il valore del parametro è disponibile. FALSE: il valore del parametro non è disponibile. TRUE: il blocco funzione è operativo e sono previsti nuovi valori in uscita. FALSE: la funzione non è attiva. Uscita BOOL Uscita UINT Uscita BOOL Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Valore del parametro specificato nel tipo di dato, come specificato dal fornitore. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 473 Capitolo 18 Istruzioni di controllo del movimento Esempio di Programmazione a blocchi funzionali MC_ReadBoolParameter Esempio di Diagramma ladder MC_ReadBoolParameter Esempio di Testo strutturato MC_ReadBoolParameter 474 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 18 Istruzioni di controllo del movimento Vedere anche Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 MC_ReadParameter (parametro di lettura del controllo movimento) Restituisce il valore di un parametro specifico del fornitore in un tipo Real. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 475 Capitolo 18 Istruzioni di controllo del movimento Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro EN Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_ReadParameter corrente. FALSE: l'uscita del valore viene ripristinata su 0. Applicabile solo alle programmazioni in Ladder Diagram. AxisIn Enable ParameterNumber Ingresso Ingresso Ingresso ENO Asse Valid Busy Errore Uscita Uscita Uscita Uscita Uscita ErrorID Valore Uscita Uscita AXIS_REF FB_AXIS_REF BOOL DINT BOOL AXIS_REF BOOL BOOL BOOL UINT REAL Utilizzare il tipo di dati AXIS_REF per definire AxisIn. Per FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottenere il valore del numero del parametro in modo continuo. FALSE: l'uscita del valore viene ripristinata su 0. Identificazione del parametro. Le definizioni dei numeri di parametro sono definite nei numeri dei parametri del blocco funzione Controllo movimento. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: sono disponibili valori validi in uscita. FALSE: non sono disponibili valori validi in uscita. TRUE: il blocco funzione è operativo e sono previsti nuovi valori in uscita. FALSE: il blocco funzione non è attivo. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Valore del parametro specificato nel tipo di dato, come specificato dal fornitore. Esempio di Programmazione a blocchi funzionali MC_ReadParameter 476 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Diagramma ladder MC_ReadParameter Esempio di Testo strutturato MC_ReadParameter Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 477 Capitolo 18 Istruzioni di controllo del movimento Vedere anche Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Istruzioni di controllo del movimento a pagina 423 MC_ReadStatus (stato di lettura del controllo movimento) Restituisce lo stato dell'asse rispetto al movimento attualmente in corso. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 478 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Enable ENO Asse Valid Busy Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL AXIS_REF FB_AXIS_REF BOOL BOOL AXIS_REF BOOL BOOL Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_ReadStatus corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Utilizzare i parametri del tipo di dati AXIS_REF per definire AxisIn. Per un FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ottiene continuamente lo stato dell'asse. FALSE: tutte le uscite dello stato sono ripristinate su 0. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: sono disponibili valori validi in uscita. FALSE: uscite non disponibili. TRUE: il blocco funzione è operativo e sono previsti nuovi valori in uscita. FALSE: il blocco funzione non è attivo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 479 Capitolo 18 Istruzioni di controllo del movimento Parametro Errore Tipo di parametro Uscita Tipo di dati BOOL ErrorID ErrorStop Uscita UINT Uscita BOOL Disattivato Arresto in corso Referenced Uscita BOOL Uscita BOOL Uscita BOOL StandStill Uscita BOOL DiscreteMotion Uscita BOOL ContinuousMotion Uscita BOOL SynchronizedMotion Uscita BOOL Azzeramento ConstantVelocity In accelerazione In decelerazione Uscita BOOL Uscita BOOL Uscita BOOL Uscita BOOL Descrizione Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. TRUE: lo stato dell'asse è ErrorStop. Gli stati dell'asse sono definiti nei nomi e nei valori di stato dell'asse controllo movimento. TRUE: lo stato dell'asse è Disabilitato. TRUE: lo stato dell'asse è Arresto. TRUE: lo stato dell'asse è in sede, la posizione del riferimento assoluto è nota per l'asse. TRUE: lo stato dell'asse è Fermo. TRUE: lo stato dell'asse è DiscreteMotion. TRUE: lo stato dell'asse è ContinuousMotion. Il movimento sincronizzato non è supportato dai controllori Micro800. TRUE: mai true. FALSE: sempre false. TRUE: lo stato dell'asse è Homing. TRUE: la velocità del motore è costante. TRUE: l'asse è in accelerazione, aumento dell'energia al motore. TRUE: l'asse è in decelerazione, diminuzione dell'energia al motore. 480 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Programmazione a blocchi funzionali MC_ReadStatus Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 481 Capitolo 18 Istruzioni di controllo del movimento Esempio di Diagramma ladder MC_ReadStatus 482 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_ReadStatus Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 483 Capitolo 18 Istruzioni di controllo del movimento MC_Reset (reset del controllo movimento) Trasforma lo stato dell'asse da ErrorStop a StandStill ripristinando tutti gli errori interni legati all'asse. Le uscite delle istanze del blocco di funzione non vengono cambiate. Dettagli operazione: · Se lo stato di allarme dell'asse non è stato modificato dopo aver eseguito MC_Reset, eseguire MC_Power quindi MC_Reset. · MC_Reset ripristina solo lo stato dell'asse da ErrorStop a Fermo. L'esecuzione di MC_Reset quando l'asse è in altri stati, incluso Disabilitato, comporta un errore e non influisce sul movimento in corso o sullo stato dell'asse. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute ENO Asse Finito Busy Errore ErrorID Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_Reset corrente. FALSE: il calcolo non viene eseguito. Applicabile solo alle programmazioni in Ladder Diagram. AXIS_REF FB_AXIS_REF BOOL BOOL AXIS_REF BOOL BOOL BOOL UINT Utilizzare il tipo di dati AXIS_REF per definire AxisIn. Per FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: ripristina l'asse al fronte di salita. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: lo stato dell'asse è Fermo o Disabilitato. TRUE il blocco funzione non è finito. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. 484 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Programmazione a blocchi funzionali MC_Reset Esempio di Diagramma ladder MC_Reset Esempio di Testo strutturato MC_Reset Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 485 Capitolo 18 Istruzioni di controllo del movimento Risultati Vedere anche Regole generali per i blocchi funzione di controllo movimento a pagina 424 Istruzioni di controllo del movimento a pagina 423 ID errori del blocco funzione di controllo movimento a pagina 430 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 MC_SetPosition (posizione impostazione del controllo movimento) Sposta il sistema di coordinate di un asse modificando la relativa posizione effettiva con lo stesso valore, senza causare alcun movimento. Dettagli operazione: · MC_SetPosition può essere completato correttamente solo quando lo stato dell'asse è Fermo, Movimento continuo (MC_ExecutionMode = 0) o quando il movimento in corso viene completato e termina con lo stato Fermo (MC_ExecutionMode = 1). · MC_SetPosition opera allo stesso modo di MC_Home quando HomingMode = MC_HOME_DIRECT (0x04), ad eccezione del fatto che il blocco funzione MC_Home imposta lo stato dell'asse su Azzerato. · Quando MC_ExecutionMode = 0 (mcImmediately), l'esecuzione del blocco di funzione MC_SetPosition riporterà un errore in caso di movimento in corso non continuo dell'asse. · Quando MC_ExecutionMode = 1 (mcQueued), l'impostazione della posizione corrente si verifica solo quando tutto il movimento precedente che è in corso si arresta. Ovvero, ciascun blocco funzione deve avere almeno una delle uscite Done, Aborted, o Error uguale a True. 486 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute Position Relative MC_ExecutionMode ENO Asse Finito Busy Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_SetPosition corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Ingresso AXIS_REF FB_AXIS_REF BOOL REAL BOOL SINT Utilizzare il tipo di dati AXIS_REF per definire AxisIn. Per FB_Axis (asse di feedback), utilizzare il tipo di dati FB_AXIS_REF per definire AxisIn. TRUE: avvia l'impostazione della posizione dell'asse. La posizione assoluta o la distanza relativa da impostare per l'asse. TRUE: imposta la distanza relativa per l'asse. FALSE: imposta la posizione assoluta per l'asse. I valori sono: · 0 (mcImmediately) - la funzionalità è immediatamente valida. · 1 (mcQueued) - la nuova funzionalità diventa valida quando: · tutti i comandi di movimento precedenti vengono impostati su uno dei seguenti parametri di uscita: Done, Aborted o Error. · l'asse non è in uno stato di movimento. Per (MC_ExecutionMode = 0), questo blocco funzione può essere completato con successo quando lo stato dell'asse è Disabilitato o Fermo. L'esecuzione di questo blocco funzione riporterà un errore in caso di movimento in corso non continuo con l'asse in questa modalità. Per (MC_ExecutionMode = 1), questo blocco di funzione può essere completato correttamente quando lo stato dell'asse è Disabilitato, Fermo o il movimento in corso può essere completato terminando con lo stato Fermo. Al momento gli altri valori di ingresso sono riservati e pertanto considerati come parametri non validi. Uscita Uscita Uscita Uscita BOOL AXIS_REF BOOL BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: la posizione ha un nuovo valore. TRUE il blocco funzione non è finito. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 487 Capitolo 18 Istruzioni di controllo del movimento Parametro Errore Tipo di parametro Uscita Tipo di dati BOOL ErrorID Uscita UINT Descrizione Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Esempio di Programmazione a blocchi funzionali MC_SetPosition Esempio di Diagramma ladder MC_SetPosition 488 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_SetPosition Risultati Vedere anche Regole generali per i blocchi funzione di controllo movimento a pagina 424 ID errori del blocco funzione di controllo movimento a pagina 430 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Istruzioni di controllo del movimento a pagina 423 MC_Stop (arresto del controllo movimento) Comanda un arresto di movimento controllato e trasferisce lo stato dell'asse su Arresto in corso. Tutti gli eventuali blocchi di funzione in esecuzione vengono interrotti. I comandi di movimento dei blocchi di funzione vengono tutti ignorati fino a che lo stato dell'asse non passa a StandStill. Dettagli operazione: · Fin quando l'ingresso Execute è alto, l'asse rimane nello stato di Stopping. Mentre l'asse è nello stato Arresto, nessun altro blocco funzione di movimento può eseguire un movimento sullo stesso asse. · Se Decelerazione è uguale a zero, i parametri MC_Stop vengono determinati dall'impostazione Arresto di emergenza della configurazione dell'asse, incluso tipo E-Stop, E-stop Deceleration e E-stop Jerk. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 489 Capitolo 18 Istruzioni di controllo del movimento · Quando non sono presenti errori durante la sequenza di arresto, lo stato dell'asse esegue una transizione a Fermo dopo che il bit Completato viene IMPOSTATO e l'ingresso Esegue passa a False. · Utilizzare MC_Stop per la funzione Arresto di emergenza o situazioni di eccezione. Utilizzare MC_Halt per il normale l'arresto del movimento. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute Deceleration Jerk ENO Asse Finito Busy Attivo CommandAborted Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_Stop corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita AXIS_REF BOOL REAL REAL BOOL AXIS_REF BOOL BOOL BOOL BOOL Utilizzare il tipo di dati AXIS_REF per definire i parametri per AxisIn. TRUE: avvia l'azione fronte di salita. FALSE: non è in esecuzione. Valore della decelerazione [u/s2]. Valore del jerk [u/s3]. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: la velocità zero è stata raggiunta senza errori durante la sequenza di arresto. TRUE il blocco funzione non è finito. TRUE: indica che il blocco funzione ha il controllo sull'asse. TRUE: il comando è stato interrotto dal blocco di funzione MC_Power(OFF) o da ErrorStop. 490 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Errore ErrorID Tipo di parametro Uscita Tipo di dati BOOL Uscita UINT Descrizione Capitolo 18 Istruzioni di controllo del movimento Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Esempio di Programmazione a blocchi funzionali MC_Stop Esempio di Diagramma ladder MC_Stop Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 491 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_Stop Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 Regole generali per i blocchi funzione di controllo movimento a pagina 424 MC_TouchProbe (sonda a contatto del controllo movimento) Registra una posizione dell'asse in corrispondenza di un evento di attivazione. Dettagli operazione: · Se la direzione della finestra (prima posizione --> ultima posizione) è opposta a quella del movimento, la finestra della sonda a contatto non viene attivata. · Se l'impostazione della finestra (FirstPosition o LastPosition) non è valida, il blocco di funzione MC_TouchProbe riporterà un errore. 492 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento · Se viene emessa una seconda istanza del blocco di funzione MC_TouchProbe sullo stesso asse e la prima istanza del blocco di funzione è in stato Busy, la seconda istanza del blocco di funzione riporterà un errore. · Solo un'istanza del blocco di funzione MC_TouchProbe deve essere inviata a un asse. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn TriggerInp Execute WindowOnly FirstPosition Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_TouchProbe corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Ingresso AXIS_REF FB_AXIS_REF USINT BOOL BOOL REAL Utilizzare il tipo di dati AXIS_REF per definire i parametri per AxisIn. Per un asse di feedback, utilizzare il tipo di dati FB_AXIS_REF per definire i parametri per AxisIn. Attualmente non supportato. Configurare trigger di ingresso nella configurazione Asse. TRUE: avvia la registrazione della sonda a contatto al fronte di salita. FALSE: non è in esecuzione. TRUE: utilizza la finestra solo per accettare eventi trigger. La risoluzione del movimento è limitata all'intervallo Motore di movimento, configurato dall'utente. Per la funzionalità WindowOnly di TouchProbe, esiste un massimo ritardo del tempo di risposta che è uguale all'intervallo Motore di movimento, per l'attivazione sia di FirstPosition sia di LastPosition. Il ritardo massimo possibile nell'attivazione della posizione (sia FirstPosition sia LastPosition) può essere calcolato con la formula (Intervallo motore di movimento * velocità di movimento). Posizione iniziale della finestra in cui gli eventi trigger vengono accettati (in unità tecniche [u]). Valore incluso nella finestra. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 493 Capitolo 18 Istruzioni di controllo del movimento Parametro LastPosition Tipo di parametro Ingresso Tipo di dati REAL ENO Uscita BOOL Asse TriggerInput Finito Busy CommandAborted Errore Uscita Uscita Uscita Uscita Uscita Uscita AXIS_REF FB_AXIS_REF USINT BOOL BOOL BOOL BOOL ErrorID Uscita UINT RecordedPosition Uscita REAL Descrizione Posizione di arresto della finestra in cui gli eventi trigger vengono accettati (in unità tecniche [u]). Valore incluso nella finestra. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. Attualmente non supportato. TRUE: l'evento trigger è stato registrato. TRUE il blocco funzione non è finito. TRUE: il comando è stato annullato da MC_Power(OFF) o dal blocco di funzione Error Stop. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Posizione in cui si è verificato l'evento trigger (in unità tecniche [u]) Motion è un movimento open-loop. Posizione dell'asse nell'istante in cui si verifica un evento di trigger. Se il controllo assi è un movimento a ciclo aperto, la posizione comandata (non la posizione corrente) nell'istante in cui si verifica un evento di trigger, presupponendo che non vi sia ritardo di movimento tra l'accensione e il motore. Ingresso/uscita movimento fisso Segnali di movimento PTO0 Impulso PTO PTO direction Interruttore limite inferiore (negativo) Interruttore limite superiore (positivo) Interruttore autoguida assoluto Interruttore ingresso sonda a contatto Output_0 Output_3 Input_0 Input_1 Input_2 Input_3 PTO1 Output_1 Output_4 Input_4 Input_5 Input_6 Input_7 PTO2 Output2 Output_5 Input_8 Input_9 Input_10 Input_11 494 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Programmazione a blocchi funzionali MC_TouchProbe Esempio di Diagramma ladder MC_TouchProbe Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 495 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_TouchProbe Risultati Vedere anche Regole generali per i blocchi funzione di controllo movimento a pagina 424 ID errori del blocco funzione di controllo movimento a pagina 430 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Istruzioni di controllo del movimento a pagina 423 MC_WriteBoolParameter Modifica il valore di un parametro specifico del fornitore di tipo BOOL. (parametro BOOL di scrittura I parametri impostati dal blocco di funzione MC_WriteBoolParameter sono applicati solo temporaneamente nell'applicazione. Essi vengono del controllo movimento) sovrascritti dalle impostazioni permanenti, configurate dall'utente nella configurazione del controllo assi di Connected Components Workbench, quando il controllore viene commutato dalla modalità PRG a RUN, oppure quando attiva e disattiva l'alimentazione del controllore. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 496 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute ParameterNumber Valore MC_ExecutionMode ENO Asse Finito Busy Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_WriteBoolParameter corrente. FALSE: l'uscita del valore viene ripristinata su 0. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita AXIS_REF FB_AXIS_REF BOOL DINT BOOL SINT BOOL AXIS_REF BOOL BOOL Utilizzare il tipo di dati AXIS_REF per definire i parametri per AxisIn. Per un asse di feedback, utilizzare il tipo di dati FB_AXIS_REF per definire i parametri per AxisIn. TRUE: scrive il valore del parametro al fronte di salita. Identificazione del parametro. Il numero del parametro definito nei dettagli relativi ai parametri del blocco funzione Controllo movimento. TRUE: il parametro specificato ha un nuovo valore. I valori sono: · 0 (mcImmediately) - la funzionalità è immediatamente valida. · 1 (mcQueued) - la nuova funzionalità diventa valida quando: · tutti i comandi di movimento precedenti impostano uno dei seguenti parametri di uscita: Done, Aborted o Error · l'asse non è in uno stato di movimento. quando (MC_ExecutionMode = 0) questo blocco di funzioni può essere completato con successo per tutti i parametri tranne Ciclo di lavoro (1005) solo quando lo stato dell'asse è Disattivato o Fermo. Quando (MC_ExecutionMode = 0), per Parametro ciclo di carico (1005), questo FB può essere completato correttamente tranne che l'asse si trova in uno stato Azzeramento o ErrorStop. Per (MC_ExecutionMode = 1), questo blocco di funzione può essere completato con successo solo quando lo stato dell'asse è Disabled, StandStill o il movimento in corso può essere completato terminando con lo stato StandStill Al momento gli altri valori di ingresso sono riservati e pertanto considerati come parametri non validi. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. TRUE: il parametro è stato scritto correttamente. TRUE il blocco funzione non è finito. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 497 Capitolo 18 Istruzioni di controllo del movimento Parametro Errore Tipo di parametro Uscita Tipo di dati BOOL ErrorID Uscita UINT Descrizione Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Esempio di Programmazione a blocchi funzionali MC_WriteBoolParameter Esempio di Diagramma ladder MC_WriteBoolParameter 498 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_WriteBoolParameter Risultati Vedere anche Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 ID errori del blocco funzione di controllo movimento a pagina 430 Regole generali per i blocchi funzione di controllo movimento a pagina 424 MC_WriteParameter (parametro di scrittura del controllo movimento) Modifica del valore di un parametro specifico del fornitore di tipo REAL. I parametri impostati dal blocco di funzione MC_WriteParameter sono applicati solo temporaneamente nell'applicazione. Essi vengono sovrascritti dalle impostazioni permanenti, configurate dall'utente nella configurazione del controllo assi di Connected Components Workbench, quando il controllore viene commutato da PRG a RUN, oppure quando attiva e disattiva l'alimentazione del controllore. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 499 Capitolo 18 Istruzioni di controllo del movimento Questa istruzione si applica ai controllori Micro830, Micro850 e Micro870 che supportano il controllo del movimento. Parametro EN AxisIn Execute Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. TRUE: esegue il calcolo MC_WriteParameter corrente. FALSE: il calcolo non avviene. Applicabile solo alle programmazioni in Ladder Diagram. Ingresso Ingresso AXIS_REF FB_AXIS_REF BOOL Utilizzare il tipo di dati AXIS_REF per definire i parametri per AxisIn. Per un asse di feedback, utilizzare il tipo di dati FB_AXIS_REF per definire i parametri per AxisIn. TRUE: scrive il valore del parametro al fronte di salita. ParameterNumber Valore MC_ExecutionMode ENO Asse Ingresso DINT Ingresso REAL Ingresso SINT Uscita Uscita BOOL AXIS_REF Identificazione del parametro. Il numero del parametro definito nei dettagli relativi ai parametri del blocco funzione Controllo movimento. Nuovo valore per il parametro specificato. I valori sono: · 0 (mcImmediately) - la funzionalità è immediatamente valida. · 1 (mcQueued) - la nuova funzionalità diventa valida quando: · tutti i comandi di movimento precedenti impostano uno dei seguenti parametri di uscita: Done, Aborted o Error · l'asse non è in uno stato di movimento. · implica che il parametro di uscita Busy è impostato su FALSE. Quando (MC_ExecutionMode = 0), questo blocco funzionale può essere completato con successo per tutti i parametri tranne Ciclo di lavoro (1005) solo quando lo stato dell'asse è Disattivato o Fermo. Quando (MC_ExecutionMode = 0), per Parametro ciclo di carico (1005), questo FB può essere completato correttamente tranne che l'asse si trova in uno stato Azzeramento o ErrorStop. Per (MC_ExecutionMode = 1), questo blocco di funzione può essere completato con successo solo quando lo stato dell'asse è Disabled, StandStill o il movimento in corso può essere completato terminando con lo stato StandStill Al momento gli altri valori di ingresso sono riservati e pertanto considerati come parametri non validi. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. L'uscita asse nelle programmazioni in Ladder Diagram è di sola lettura. 500 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Done Busy Errore ErrorID Tipo di parametro Uscita Uscita Uscita Tipo di dati BOOL BOOL BOOL Uscita UINT Capitolo 18 Descrizione Istruzioni di controllo del movimento TRUE: il parametro è stato scritto correttamente. TRUE: indica che il blocco funzione ha il controllo dell'asse. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Numero univoco che identifica l'errore. Gli errori per questa istruzione sono definiti negli ID errori del blocco funzione Controllo del movimento. Esempio di Programmazione a blocchi funzionali MC_WriteParameter Esempio di Diagramma ladder MC_WriteParameter Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 501 Capitolo 18 Istruzioni di controllo del movimento Esempio di Testo strutturato MC_WriteParameter Risultati Vedere anche Tipo di dati AXIS_REF a pagina 432 Tipo di dati FB_AXIS_REF a pagina 433 Istruzioni di controllo del movimento a pagina 423 Dettagli relativi ai parametri del blocco funzione per il controllo del movimento a pagina 426 Regole generali per i blocchi funzione Controllo movimento a pagina 424 502 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni di controllo dei processi Capitolo 19 Usare le istruzioni di controllo dei processi per monitorare e mantenere i cicli di processo per le quantità, quali pressione, temperatura, portata e livello dei fluidi. I controlli dei processi regolano il percorso inviando un segnale di uscita alla valvola di controllo. Istruzione Descrizione DERIVATE a pagina 503 FFL a pagina 505 FFU a pagina 515 HYSTER a pagina 520 INTEGRAL a pagina 522 LFL(LIFO load) a pagina 528 Differenzia un valore reale su una durata del ciclo definito. Carica i dati a 8 bit, 16 bit, 32 bit o 64 bit in un vettore creato dall'utente denominato stack FIFO. Scarica i dati a 8 bit, 16 bit, 32 bit o 64 bit da un vettore creato dall'utente denominato stack FIFO. I dati vengono scaricati nello stesso ordine in cui sono caricati usando l'istruzione FFL. Esegue unaisteresi booleana sulla differenza tra dati reali. Integra un valore real durante la durata del ciclo definito. Carica i dati a 8 bit, 16 bit, 32 bit o 64 bit in un vettore creato dall'utente denominato stack LIFO. LFU(LIFO unload) a pagina 530 PWM a pagina 533 SCALER a pagina 535 STACKINT a pagina 537 LIMIT a pagina 549 TND a pagina 547 Scarica i dati a 8 bit, 16 bit, 32 bit o 64 bit da un vettore creato dall'utente denominato stack LIFO. I dati vengono scaricati nello stesso ordine in cui sono caricati usando l'istruzione LFL. Attiva o disattiva l'uscita della la modulazione dell'ampiezza di un impulso (PWM) per un canale PWM configurato. Scala il valore di ingresso in base all'intervallo di uscita. Gestisce uno stack di valori interi. riduce i valori interi a un intervallo definito. Arresta il ciclo di scansione del programma utente in corso. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 DERIVATE Differenziazione di un valore reale su una durata del ciclo definito. Dettagli operazione: · Se il valore del parametro CYCLE è inferiore alla temporizzazione del ciclo di esecuzione del dispositivo, il periodo di campionamento viene forzato a questa temporizzazione del ciclo. · La derivata viene eseguita su una base di tempo espresso in millisecondi.Per esempio, la derivata di un ingresso di 1.000 che cambia in 2.000 in un intervallo di tempo di 1 secondo darà un valore pari a 1. Per convertire l'uscita dell'istruzione in secondi, moltiplicare il valore di uscita per 1000. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 503 Capitolo 19 Istruzioni di controllo dei processi Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri RUN XIN CYCLE XOUT ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Ingresso REAL Ingresso TIME Uscita REAL Uscita BOOL Descrizione Indica la modalità operativa dell'istruzione. TRUE: normale (esegue il calcolo) FALSE: reset Definisce il valore su cui eseguire il calcolo di derivazione. Il valore deve essere un valore REAL. Definisce il periodo di campionamento in cui raccogliere i valori. L'intervallo di valori del periodo di tempo possibile varia da 0 ms a 49 g 17 h 2 m 47 s 294 ms. Uscita derivata. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempi di programmazione a blocchi funzionali DERIVATE Esempio di diagramma ladder DERIVATE 504 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di testo strutturato DERIVATE Istruzioni di controllo dei processi (* Equivalenza ST: DERIVATE1 è un'istanza del blocco DERIVATE *) DERIVATE1(manual_mode, sensor_value, t#100ms); derivated_value := DERIVATE1.XOUT; Vedere anche Istruzioni di controllo dei processi a pagina 503 FFL (caricamento FIFO) Carica i dati a 8 bit, 16 bit, 32 bit o 64 bit in un vettore creato dall'utente denominato stack FIFO. Dettagli operazione: · Istruzione FFL: da modalità di non esecuzione in modalità di esecuzione · Quando Esegue passa da FALSE a TRUE: · Le condizioni di errore vengono verificate. · I contenuti di Src vengono caricati all'interno dello stack FIFO nella posizione disponibile e Posizione incrementa di 1 se Posizione è minore o uguale a zero e minore della Lunghezza. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. Il bit Pieno è FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. · Il bit Completato viene impostato quando l'istruzione viene eseguita correttamente. · Quando Esegue passa da FALSE a TRUE: · I bit Errore, Completato e ErrorID sono impostati su FALSE. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. Il bit Pieno è FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. · Le condizioni di errore FFL non sono verificate. · Quando Esegue passa da TRUE a TRUE: · Non viene eseguita alcuna operazione di caricamento. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. Il bit Pieno è Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 505 Capitolo 19 Istruzioni di controllo dei processi impostato su TRUE se la Lunghezza è uguale alla Posizione. · Le condizioni di errore FFL non sono verificate. · Quando Esegue passa da FALSE a FALSE: · I bit Errore, Completato e ErrorID sono impostati su FALSE. · I bit Pieno e Vuoto bit conservano i valori dallo stato di esecuzione precedente. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. Il bit Pieno è FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. · Le condizioni di errore FLL non sono verificate. · Istruzione FFL: dalla modalità in esecuzione alla modalità non in esecuzione: · I bit Errore, ErrorID, Completato, Vuoto e Pieno conservano lo stato modalità in esecuzione. · Per creare un singolo elemento per il parametro FIFO: · Non vettore: · L'indirizzo basato sulla variabile come Fifo1 è consentito per FIFO. · La lunghezza deve essere configurata come 1. · Vettore · L'indirizzo basato sulla variabile come Fifo1 o Fifo1[0] è consentito per FIFO. · La lunghezza deve essere configurata come 1. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Tipo di parametro Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione 506 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Execute Ingresso BOOL Src Ingresso ANY_ELEMENTARY FIFO Ingresso ANY_ELEMENTARY FIFOCon Ingresso FF_LF_CON Done Uscita BOOL Vuoto Uscita BOOL Completo Uscita BOOL Errore Uscita BOOL ErrorID Uscita USINT Capitolo 19 Istruzioni di controllo dei processi Abilitazione del blocco istruzione. TRUE: se viene rilevato il fronte di salita, avviare l'operazione FFL. FALSE: fronte di salita non rilevato. L'operando Src è l'indirizzo del valore utilizzato per riempire la posizione dello stack FIFO attualmente disponibile. Tipi di dati elementari supportati per Scr: · DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · La stringa non è supportata. · Gli elementi del vettore come Vettore[1] o Vettore[indice] sono supportati. L'indirizzo iniziale dello stack. FIFO deve essere configurato come per le istruzioni FFL e FFU. Tipi di dati elementari supportati per FIFO: DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · La stringa non è supportata. · È supportato solo il vettore unidimensionale per FIFO. Controllo e configurazione FIFO. La stessa configurazione deve essere configurata per le istruzioni FFL e FFU. Per configurare posizione e lunghezza, utilizzare il tipo di dati FF_LF_CON. Indica se l'operazione FFU è stata completata. TRUE: operazione completata correttamente. FALSE: l'operazione ha rilevato una condizione di errore o l'istruzione FFU non è in esecuzione. Indica se lo stack FIFO è vuoto. TRUE: quando la posizione è uguale a 0. FALSE: quando la posizione non è uguale a 0. Indica se lo stack FIFO è pieno. TRUE: quando lunghezza è uguale a posizione. FALSE: quando la posizione è maggiore o uguale a zero e minore della lunghezza. Indica la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione FFU non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore FFL. Parametri Lunghezza Position Tipo di dati UINT USINT Tipo di dati FF_LF_CON Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati FF_LF_CON. Descrizione Numero di elementi utilizzati per l'operazione FIFO. Il limite massimo è 1024. Determina la posizione disponibile successiva in FIFO per la rimozione o l'immissione di Src. La posizione è l'offset del vettore. Esempio 1: · Vettore configurato dall'utente, arr[0..5]. La posizione iniziale è configurata come 1. I dati sono inseriti in arr[1] e la posizione aumenta di + 1. Esempio 2: · Vettore configurato dall'utente come arr[1..5]. La posizione iniziale è configurata come 1. I dati sono inseriti in arr[2] e la posizione aumenta di + 1. Codici di errore FFL Utilizzare questa tabella per determinare i codici di errore FFL e FFU e le descrizioni. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 507 Capitolo 19 Istruzioni di controllo dei processi Codice errore Descrizione errore 0 Nessun errore. 1 Il tipo di dati Src FFL non è supportato. 2 Il tipo di dati Dest FFU non è supportato. 3 Il tipo di dati FIFO non è supportato. 4 I tipi di dati Src e Dest non corrispondono al tipo di dati FIFO. Azione correttiva: Il tipo di dati del parametro Src FFL e del parametro Dest FFU devono corrispondere al tipo di dati del vettore FIFO. 5 FIFO: la dimensione del vettore non è supportata. Azione correttiva: FIFO supporta solo vettori unidimensionali. 6 La lunghezza del controllo FIFOCon supera la dimensione del vettore FIFO. Azione correttiva: La lunghezza del controllo FIFOCon non supera la dimensione del vettore FIFO. 7 La lunghezza FIFOCon supera la lunghezza massima. 8 La lunghezza FIFOCon è zero. 9 La posizione FIFOCon supera la lunghezza FIFOCon. 10 La posizione e la lunghezza del controllo FFL sono uguali. 11 La posizione del controllo FFU è zero. 12 La dimensione del vettore FFL o FFU non è supportata. Azione correttiva: FFL e FFU supportano solo vettori unidimensionali. 13 FFL o FFU DestOffset supera la dimensione vettore Dest. Esempio di Programmazione a blocchi funzionali FFL 508 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di Diagramma ladder FFL Istruzioni di controllo dei processi Esempio di Testo strutturato FFL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 509 Capitolo 19 Istruzioni di controllo dei processi Risultati Vedere anche Diagrammi di temporizzazione istruzione FFL e FFU a pagina 510 Istruzioni di controllo dei processi a pagina 503 Diagrammi di temporizzazione istruzione FFL e FFU Gli esempi di diagramma di temporizzazione seguenti descrivono gli scenari di esecuzione per le istruzioni FFL (carico FIFO) e FFU (scarica FIFO). 510 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Il completamento dell'esecuzione FFL seguita dal completamento dell'esecuzione FFU Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1 La condizione ramo diventa TRUE quando: · Il bit di ingresso Esegue è TRUE. · Dati di carico (push) allo stack FIFO. · Il bit di uscita Completato è TRUE. 2, 3, 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · Il bit di uscita Completato è FALSE. 6, 7 Nessuna modifica nella condizione ramo. · Il bit Esegue è FALSE. · Il bit di uscita Completato è FALSE. 8 Il ramo passa a TRUE quando: · Il bit di ingresso Esegue è TRUE. · Scaricare i dati dallo stack FIFO. · Il bit di uscita Completato è TRUE. 9 Nessuna modifica nella condizione ramo. · Il bit Esegue è FALSE. · Il bit di uscita Completato è FALSE. 10, 11 Nessuna modifica nella condizione ramo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 511 Capitolo 19 Istruzioni di controllo dei processi Completamento dell'esecuzione quando il bit vuoto è TRUE Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1 La condizione ramo diventa TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · La Posizione è zero. Il bit Vuoto è TRUE. · Il bit di uscita Completato è TRUE. 2, 3, 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · Il bit Vuoto è TRUE. · Il bit di uscita Completato è FALSE. 6, 7 Nessuna modifica nella condizione ramo. 8 Il ramo passa a TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · Il bit Vuoto è TRUE. · Il bit di uscita Completato è TRUE. 9 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · Il bit Vuoto è TRUE. · Il bit di uscita Completato è FALSE. 10, 11 Nessuna modifica nella condizione ramo. 512 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Completamento dell'esecuzione quando il bit vuoto è TRUE Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1 La condizione ramo diventa TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · La Posizione è uguale alla Lunghezza, il bit Pieno è TRUE. · Il bit di uscita Completato è TRUE. 2, 3, 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · Il bit Pieno è TRUE. · Il bit di uscita Completato è FALSE. 6, 7 Nessuna modifica nella condizione ramo. 8 Il ramo passa a TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · Il bit Pieno è TRUE. · Il bit di uscita Completato è TRUE. 9 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · Il bit Pieno è TRUE. · Il bit di uscita Completato è FALSE. 10, 11 Nessuna modifica nella condizione ramo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 513 Capitolo 19 Istruzioni di controllo dei processi Errore durante l'esecuzione di FFL e FFU Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione La condizione ramo diventa TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · Il bit Errore è TRUE. 2, 3, 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · I bit Error ed ErrorID sono FALSE. 6, 7 Nessuna modifica nella condizione ramo. 8 Il ramo passa a TRUE quando: · Il bit di ingresso Esegue è TRUE. Avvio esecuzione. · Il bit Errore è TRUE. 9 La condizione ramo diventa FALSE quando: · Il bit Esegue è FALSE. · I bit Error ed ErrorID sono FALSE. 10, 11 Nessuna modifica nella condizione ramo. Vedere anche FFL a pagina 515 FFU a pagina 515 Istruzioni di controllo dei processi a pagina 503 514 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi FFU (Scarica FIFO) Scarica i dati a 8, 16, 32 e 64 bit da un vettore creato dall'utente denominato stack FIFO (First In First Out, primo a entrare primo a uscire) nello stesso ordine in cui i dati sono stati caricati usando l'istruzione FFL. Dettagli operazione: · Istruzione FFU: da modalità di non esecuzione in modalità di esecuzione: · Quando Esegue passa da FALSE a TRUE: · Le condizioni di errore FFU sono verificate. · Scarica i contenuti dello stack FIFO in corrispondenza della posizione zero se la Posizione è maggiore di zero e minore o uguale alla Lunghezza. · Gli elementi rimanenti si spostano di una posizione verso lo zero e l'elemento massimo dello stack FIFO viene impostato su zero, la Posizione diminuisce di 1. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Completato viene impostato quando l'istruzione viene eseguita correttamente. · Quando Esegue passa da FALSE a TRUE: · I bit Errore, Completato e ErrorID sono impostati su FALSE. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. Il bit Pieno è impostato su FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. · Le condizioni di errore FFU non sono verificate. · Quando Esegue passa da TRUE a TRUE: · Non viene eseguita alcuna operazione di scaricamento. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. · Le condizioni di errore FFU non sono verificate. · Quando Esegue passa da FALSE a FALSE: · I bit Errore, Completato e ErrorID sono impostati su FALSE. · Il bit Vuoto è impostato su TRUE se Posizione è uguale a zero. · Il bit Pieno è impostato su TRUE se la Lunghezza è uguale alla Posizione. Il bit Pieno è impostato su FALSE se la Posizione è minore o uguale a zero e minore della Lunghezza. · Le condizioni di errore FLU non sono verificate. · Istruzione FFU: dalla modalità in esecuzione alla modalità non in esecuzione: Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 515 Capitolo 19 Istruzioni di controllo dei processi · I bit Errore, ErrorID, Completato, Vuoto e Pieno conservano lo stato modalità in esecuzione. · Per creare un singolo elemento per il parametro FIFO: · Non vettore: · L'indirizzo basato sulla variabile come Fifo1 è consentito per FIFO. · La lunghezza deve essere configurata come 1. · Vettore · L'indirizzo basato sulla variabile come Fifo1 o Fifo1[0] è consentito per FIFO. · La lunghezza deve essere configurata come 1. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Execute Dest DestOffset Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL ANY_ELEMENTARY UINT Abilitazione del blocco istruzione. TRUE: se viene rilevato il fronte di salita rilevato, avviare l'operazione FFU. FALSE: fronte di salita non rilevato. Contiene il valore esistente nello stack FIFO. Tipi di dati elementari supportati per Dest: · DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · La stringa non è supportata. · Supporta solo vettori unidimensionali come Vettore[1] o Vettore[Indice]. Offset elemento di destinazione. Offset elemento se il tipo di destinazione è dati vettore, altrimenti impostare l'offset su 0. Per tipo di dati vettore, per scaricare nel primo elemento, impostare l'offset su 0. 516 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 FIFO Ingresso ANY_ELEMENTARY FIFOCon Ingresso FF_LF_CON Done Uscita BOOL Completo Uscita BOOL Vuoto Uscita BOOL Errore Uscita BOOL ErrorID Uscita USINT Capitolo 19 Istruzioni di controllo dei processi L'indirizzo iniziale dello stack. FIFO deve essere configurato come nelle istruzioni FFL e FFU. · Tipi di dati elementari supportati per FIFO: DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · La stringa non è supportata. · È supportato solo la singola dimensione per FIFO. Controllo e configurazione FIFO. La stessa configurazione deve essere configurata per le istruzioni FFL e FFU. Per configurare posizione e lunghezza, utilizzare il tipo di dati FF_LF_CON. Indica se l'operazione FFU è stata completata. TRUE: operazione completata correttamente. FALSE: l'operazione ha rilevato una condizione di errore o l'istruzione FFU non è in esecuzione. Indica se lo stack FIFO è pieno. TRUE: quando lunghezza è uguale a posizione. FALSE: quando la posizione è maggiore di zero e minore della lunghezza. Indica se lo stack FIFO è vuoto. TRUE: quando la posizione è uguale a 0. FALSE: quando la posizione non è uguale a 0. Indica la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione FFU non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore FFU. Parametri Lunghezza Position Tipo di dati UINT USINT Tipo di dati FF_LF_CON Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati FF_LF_CON. Descrizione Numero di elementi utilizzati per l'operazione FIFO. Il limite massimo è 1024. Determina la posizione disponibile successiva in FIFO per la rimozione o l'immissione di Src. La posizione è l'offset del vettore. Esempio 1: · Vettore configurato dall'utente, arr[0..5]. La posizione iniziale è configurata come 1. I dati sono inseriti in arr[1] e la posizione aumenta di + 1. Esempio 2: · Vettore configurato dall'utente come arr[1..5]. La posizione iniziale è configurata come 1. I dati sono inseriti in arr[2] e la posizione aumenta di + 1. Codici di errore FFU Utilizzare questa tabella per determinare i codici di errore FFL e FFU e le descrizioni. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 517 Capitolo 19 Istruzioni di controllo dei processi Codice errore Descrizione errore 0 Nessun errore. 1 Il tipo di dati Src FFL non è supportato. 2 Il tipo di dati Dest FFU non è supportato. 3 Il tipo di dati FIFO non è supportato. 4 I tipi di dati Src e Dest non corrispondono al tipo di dati FIFO. Azione correttiva: Il tipo di dati del parametro Src FFL e del parametro Dest FFU devono corrispondere al tipo di dati del vettore FIFO. 5 FIFO: la dimensione del vettore non è supportata. Azione correttiva: FIFO supporta solo vettori unidimensionali. 6 La lunghezza del controllo FIFOCon supera la dimensione del vettore FIFO. Azione correttiva: La lunghezza del controllo FIFOCon non supera la dimensione del vettore FIFO. 7 La lunghezza FIFOCon supera la lunghezza massima. 8 La lunghezza FIFOCon è zero. 9 La posizione FIFOCon supera la lunghezza FIFOCon. 10 La posizione e la lunghezza del controllo FFL sono uguali. 11 La posizione del controllo FFU è zero. 12 La dimensione del vettore FFL o FFU non è supportata. Azione correttiva: FFL e FFU supportano solo vettori unidimensionali. 13 FFL o FFU DestOffset supera la dimensione vettore Dest. Esempio di Programmazione a blocchi funzionali FFU 518 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di Diagramma ladder FFU Istruzioni di controllo dei processi Esempio di Testo strutturato FFU Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 519 Capitolo 19 Istruzioni di controllo dei processi Risultati HYSTER (isteresi) Vedere anche Diagrammi di temporizzazione istruzione FFL e FFU a pagina 510 Istruzioni di controllo dei processi a pagina 503 Isteresi booleana sulla differenza tra numeri reali. Confronta il valore corrente di un ingresso con il limite massimo stabilito aggiungendo la quantità storica di ritardo come misurato dalla isteresi al valore previsto per un ingresso e valutando se il valore corrente supera tale limite. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 520 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN XIN1 XIN2 EPS ENO Q Tipo di parametro Ingresso Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue il blocco istruzione. FALSE: non esegue il blocco istruzione. Applicabile solo alle programmazioni in Ladder Diagram. REAL Qualsiasi valore reale. REAL Per verificare se il valore di ingresso XIN1 ha superato il limite massimo definito per questo ingresso XIN2 + EPS. REAL Valore di isteresi (deve essere maggiore di zero). BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. BOOL Il risultato dell'istruzione HYSTER. TRUE: l'ingresso supera il limite superiore, ma non è inferiore al limite inferiore. FALSE: l'ingresso non ha superato il limite superiore. Esempio di diagramma di temporizzazione HYSTER Nel seguente diagramma, HYSTER viene utilizzato per verificare il ritardo di prestazioni a causa di attrito motore in un intervallo di tempo di 5 secondi. L'istruzione viene eseguita ogni 10 millisecondi. Durante la fase di avvio il motore ha funzionato in maniera efficiente. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 521 Capitolo 19 Istruzioni di controllo dei processi Esempio di programmazione a blocchi funzionali HYSTER Esempio di diagramma ladder HYSTER Esempio di testo strutturato HYSTER INTEGRAL 522 Vedere anche Istruzioni di controllo dei processi a pagina 503 Integra un valore real durante la durata del ciclo definito. Dettagli operazione: · Quando un blocco funzione INTEGRAL viene inizializzato per la prima volta, i valori iniziali non vengono considerati. Usare il parametro R1 per impostare i valori iniziali per il calcolo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi · Per evitare la perdita del valore incorporato, il valore di integrazione non viene cancellato automaticamente quando il controllore passa da PROGRAM a RUN o quando il parametro RUN passa da FALSE a TRUE. Usare il parametro R1 per cancellare il valore dell'integrale quando il controllore per la prima volta passa dalla modalità PROGRAM a RUN o quando si inizia una nuova integrazione. · Si raccomanda di non usare i parametri EN o ENO facoltativi con questo blocco funzione, in quanto il calcolo della durata del ciclo sarà interrotto quando EN è FALSE, con conseguente errore di integrazione. Se si utilizzano i parametri EN o ENO, commutare il parametro R1 con EN uguale a TRUE per cancellare il risultato corrente e assicurare una corretta integrazione. · L'integrazione viene eseguita su una base temporale in millisecondi (ovvero, integrando un input di 1 con un valore iniziale di 0 per 1 secondo il risultato sarà pari a 1000). Per convertire l'uscita dell'istruzione in secondi, il valore in uscita deve essere diviso per 1000. · Se il valore del parametro CYCLE è inferiore all'intervallo di tempo del ciclo di esecuzione del dispositivo, il periodo di campionamento viene forzato all'intervallo di tempo del ciclo. · L'esecuzione del campionamento XIN e del blocco funzione si verifica ad ogni durata del ciclo + Scan Time Jitter. · Per un dato programma utente, Scan Time Jitter varia da controllore a controllore. · La durata del ciclo determina la sensibilità del blocco funzione Integral. Le variazioni che si verificano in XIN tra due campionamenti (o all'interno della durata del ciclo) non vengono prese in considerazione quando viene calcolato il valore dell'integrale XOUT. · La durata del ciclo e il valore di Scan Time Jitter influiscono entrambi sull'imprecisione complessiva dell'uscita Integral come mostrato nel XIN in sincronia con l'esempio di esecuzione del blocco funzione e nel XIN non in sincronia con l'esecuzione del blocco funzione. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 523 Capitolo 19 Istruzioni di controllo dei processi Parametro RUN R1 XIN X0 CYCLE Q XOUT Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Tipo di dati BOOL BOOL REAL REAL TIME BOOL REAL Descrizione Modalità: TRUE = integra / FALSE = attesa. Ignora ripristino. Ingresso: qualsiasi valore reale. Valore iniziale. Periodo di camp. I valori possibili variano da 0ms a 49d17h2m47s294ms. Non R1. Uscita integrata. Esempio di programmazione a blocchi funzionali INTEGRAL Esempio di diagramma ladder integrale 524 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di testo strutturato integrale Istruzioni di controllo dei processi (* Equivalenza ST: INTEGRAL1 è un'istanza di un blocco INTEGRAL *) INTEGRAL1(manual_mode, NOT(manual_mode), sensor_value, init_value, t#100ms); controlled_value := INTEGRAL1.XOUT; Risultati Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 525 Capitolo 19 Istruzioni di controllo dei processi Esempio di XIN in sincronismo con l'esecuzione del blocco funzione Le figure seguenti mostrano l'effetto di Scan Time Jitter sul valore XOUT: 526 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Esempio di XIN non in sincronismo con l'esecuzione del blocco funzione Le figure seguenti mostrano un esempio in cui viene introdotto un errore nel valore di XOUT per un blocco funzione Integral: AND Vedere anche Istruzioni di controllo dei processi a pagina 503 Esegue un'operazione booleana AND tra due o più valori. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 527 Capitolo 19 Istruzioni di controllo dei processi Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri i1 i2 o1 Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Valore in tipo di dati Boolean. BOOL Valore in tipo di dati Boolean. BOOL Risultato dell'operazione booleana AND dei valori di ingresso. Esempio di testo strutturato AND (* Equivalenza ST: *) bo10 := bi101 AND NOT (bi102); bo5 := (bi51 AND bi52) AND bi53; Vedere anche Istruzioni booleane a pagina 159 LFL (carico LIFO) L'istruzione LFL viene utilizzata per caricare i dati (8 bit, 16 bit, 32 bit o 64 bit) in un vettore creato dall'utente denominato stack LIFO. Le istruzioni LFL e LFU vengono utilizzate in coppia. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. 528 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Execute Tipo di parametro Ingresso Src Ingresso LIFO Ingresso LIFOCon Completo Ingresso Uscita Vuoto Uscita Errore Uscita ErrorID Done Uscita Uscita Capitolo 19 Istruzioni di controllo dei processi Utilizzare questa tabella per determinare il valore del parametro per queste istruzioni. Tipo di dati Descrizione BOOL ANY_ELEMENTARY ANY_ELEMENTARY FF_LF_CON BOOL BOOL BOOL USINT BOOL Abilitazione del blocco istruzione. TRUE: se viene rilevato il fronte di salita, avviare l'operazione LFL. FALSE: fronte di salita non rilevato. L'operando Src è l'indirizzo del valore usato per compilare la posizione attualmente disponibile nello stack LIFO. Tipi di dati elemento supportati: · DWORD, REAL, TIME, DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT.\ · Elemento del vettore come Vettore [1] o Vettore[Indice]. · La stringa non è supportata L'indirizzo iniziale dello stack. LIFO deve essere configurato come per le istruzioni LFL e LFU. Tipi di dati elemento supportati: · DWORD, REAL, TIME, DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · È supportata solo la singola dimensione. · La stringa non è supportata. Controllo e configurazione LIFO. La stessa configurazione deve essere definita per le istruzioni LFL e LFU. Per configurare posizione e lunghezza, utilizzare il tipo di dati FF_LF_CON. Indica se lo stack LIFO è pieno. TRUE: quando lunghezza è uguale a posizione. FALSE: quando la posizione è maggiore o uguale a zero e minore della lunghezza. Indica se lo stack LIFO è vuoto. TRUE: quando la posizione è uguale a zero. FALSE: quando la posizione non è uguale a zero. Indicare la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore LFL. Indicare quando l'operazione è completata. TRUE: l'operazione è stata completata. FALSE: l'operazione ha rilevato una condizione di errore o l'istruzione FFU non è in esecuzione. Esempio di programmazione a blocchi funzionali LFL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 529 Capitolo 19 Istruzioni di controllo dei processi Esempio di Diagramma ladder LFL Esempio di Testo strutturato LFL Vedere anche Istruzioni di controllo dei processi a pagina 503 LFU (scarica LIFO) a pagina 530 LFU (scarica LIFO) 530 L'istruzione LFU scarica i dati (8 bit, 18 bit, 32 bit, 64 bit) da un vettore creato dall'utente denominato stack LIFO. Le istruzioni LFU e LFL vengono utilizzate in coppia. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Execute Tipo di parametro Ingresso Dest Ingresso DestOffset Ingresso LIFO Ingresso LIFOCon Completo Ingresso Uscita Errore Uscita ErrorID Done Uscita Uscita Utilizzare questa tabella per determinare il valore del parametro per queste istruzioni. Tipo di dati Descrizione BOOL ANY_ELEMENTARY UINT ANY_ELEMENTARY FF_LF_CON BOOL BOOL USINT BOOL Abilitazione del blocco istruzione. TRUE: se viene rilevato il fronte di salita, avvia l'operazione LFU. FALSE: fronte di salita non rilevato. Contiene il valore esistente nello stack LIFO. Tipi di dati elementari supportati per Dest: · DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · La stringa non è supportata. · Supporta solo vettori unidimensionali come Vettore[1] o Vettore[Indice]. Offset elemento di destinazione. Offset elemento se il tipo di destinazione è dati vettore, altrimenti impostare l'offset su 0. Per tipo di dati vettore, per scaricare nel primo elemento, impostare l'offset su 0. L'indirizzo iniziale dello stack. LIFO deve essere configurato come per le istruzioni LFL e LFU. Tipi di dati elemento supportati: · DWORD, REAL, TIME, DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT. · È supportata solo la singola dimensione. · La stringa non è supportata. Controllo e configurazione LIFO. La stessa configurazione deve essere definita per le istruzioni LFL e LFU. Per configurare posizione e lunghezza, utilizzare il tipo di dati FF_LF_CON. Indica se lo stack LIFO è pieno. TRUE: quando lunghezza è uguale a posizione. FALSE: quando la posizione è maggiore o uguale a zero e minore della lunghezza. Indicare la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore LFU. Indicare quando l'operazione è completata. TRUE: l'operazione è stata completata. FALSE: l'operazione ha rilevato una condizione di errore o l'istruzione LFU non è in esecuzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 531 Capitolo 19 Istruzioni di controllo dei processi Esempio di programmazione a blocchi funzionali LFU Esempio di Diagramma ladder LFU Esempio di Testo strutturato LFU 532 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 PWM (Pulse Width Modulation) Vedere anche Capitolo 19 Istruzioni di controllo dei processi Istruzioni di controllo dei processi a pagina 503 LFL (carico LIFO) a pagina 528 Attiva o disattiva l'uscita del PMW (Pulse Width Modulation) per un canale PWM configurato. Questo blocco istruzione viene utilizzato con i controllori Micro820 2080-LC20-20QBB e supporta un canale PWM utilizzando il canale di uscita 6 integrato. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale solo per il controllore 2080-LC20-20QBB Micro820. Parametri Enable Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Ingresso Tipo di dati BOOL Descrizione Abilitazione del blocco istruzione. Questo livello è attivato per il blocco istruzione. TRUE: aggiornare Sts. PWM viene attivato o disattivato a seconda del parametro di ingresso On e della configurazione valida. FALSE: Sts viene soltanto aggiornato. Lo stato (attivo o inattivo) di PWM non subisce variazioni. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 533 Capitolo 19 Istruzioni di controllo dei processi Parametri On Tipo di parametro Ingresso Freq DutyCycle ChType Ingresso Ingresso Ingresso ChSlot ChNum ENO Sts Ingresso Ingresso Uscita Uscita Tipo di dati BOOL UDINT UINT UINT UINT UINT BOOL UINT Descrizione Imposta l'uscita PVM su On/Attivo o Off/inattivo. TRUE: l'uscita PWM viene attivata o continua a essere attiva con la configurazione valida più recente. Il LED uscita è ON quando PWM è attivo, anche se il duty cycle è impostato su 0%. FALSE: l'uscita PWM viene disattivata se anche la configurazione è valida. Frequenza di impulso. · 1 100.000 Hz Ciclo di lavoro per impulso. · 0 - 1000 (0% - 100%) Tipo di canale · 0: integrato · 1: plug-in · 2: espansione Slot canale · 0: integrato Numero canale · 0 PWM CH0 Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Codici di stato PWM: · 00: blocco funzione non abilitato (nessuna operazione). · 01: configurazione PWM eseguita con successo. · 02: ciclo di carico non valido. · 03: frequenza non valida. · 04: tipo canale non valido. · 05: slot canale non valido. · 06: numero canale non valido. · 07: catalogo non valido. Nel catalogo in uso la funzionalità PWM non è supportata. Esempio di Programmazione a blocchi funzionali PWM 534 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di Diagramma ladder PWM Istruzioni di controllo dei processi Esempio di Testo strutturato PWM Vedere anche Istruzioni di controllo dei processi a pagina 503 SCALER (scala) Parametro EN Ingresso InputMin Tipo di parametro Ingresso Ingresso Ingresso Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator., Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue l'equazione per scalare. FALSE: nessuna equazione per scalare. Applicabile solo alle programmazioni in Ladder Diagram. REAL Ingresso segnale. L'ingresso non è limitato da InputMin e InputMax. Per limitare l'ingresso, è necessaria un'istruzione LIM_ALRM che definisca le condizioni dell'ingresso prima che venga inserito nell'istruzione SCALER. REAL Determina la pendenza e il valore dell'offset. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 535 Capitolo 19 Istruzioni di controllo dei processi Parametro InputMax OutputMin OutputMax Uscita ENO Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Tipo di dati REAL REAL REAL REAL BOOL Descrizione Determina la pendenza e il valore dell'offset. Determina la pendenza e il valore dell'offset. Determina la pendenza e il valore dell'offset. Uscita scalata. Uscita non limitata da OutputMin e OutputMax. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali SCALER Esempio di Diagramma ladder SCALER 536 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di Testo strutturato SCALER Istruzioni di controllo dei processi (* Equivalenza ST: SCALER1 è un'istanza del blocco SCALER *) SCALER1(Signal_In, 4.0, 20.0 , 0.0 , 150.0 ) ; Out_Temp := SCALER1.Output ; Risultati Vedere anche Istruzioni di controllo dei processi a pagina 503 STACKINT (valori interi dello stack) Gestisce uno stack di valori interi. Dettagli operazione: · STACKINT include un rilevamento di fronte di salita per entrambi i comandi PUSH e POP. La dimensione massima dello stack è 128. Il valore OFLO è valido solo dopo un ripristino (R1 è stato impostato su TRUE almeno una volta e quindi reimpostato su FALSE). · La dimensione (N) dello stack definita dall'applicazione non può essere minore di 1 o maggiore di 128. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 537 Capitolo 19 Istruzioni di controllo dei processi · Se N < 1, STACKINT assume una dimensione pari a 1. · se N > 128, STACKINT assume una dimensione pari a 128. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro PUSH POP R1 IN N EMPTY OFLO OUT Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso BOOL Ingresso BOOL Ingresso DINT Ingresso DINT Uscita BOOL Uscita BOOL Uscita DINT TRUE: fronte di salita rilevato, su comando PUSH. Aggiunge il valore IN all'inizio dello stack. FALSE: fronte di salita non rilevato su comando PUSH. TRUE: fronte di salita rilevato, su comando PUSH. Elimina l'ultimo valore inviato tramite push all'inizio dello stack. FALSE: fronte di salita non rilevato su comando POP. TRUE: esegue il reset dello stack allo stato vuoto. FALSE: nessun reset. Valore spinto. Dimensione dello stack definita dall'applicazione. La dimensione massima dello stack è 128. TRUE: se lo stack è vuoto. FALSE: lo stack contiene valori. TRUE: Overflow, lo stack è pieno e R1 è stato impostato su TRUE almeno una volta e di nuovo su FALSE. FALSE: la dimensione dello stack è 128 o meno. Nessun overflow. Valore in cima allo stack. OUT uguale a 0 quando OFLO è TRUE. 538 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Esempio di Programmazione a blocchi funzionali STACKINT Esempio di Diagramma ladder STACKINT Esempio di Testo strutturato STACKINT (* Equivalenza ST: STACKINT1 è un'istanza del blocco STACKINT *) STACKINT1(err_detect, acknowledge, manual_mode, err_code, max_err); Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 539 Capitolo 19 Istruzioni di controllo dei processi appli_alarm := auto_mode AND NOT(STACKINT1.EMPTY); err_alarm := STACKINT1.OFLO; last_error := STACKINT1.OUT; Risultati Vedere anche Istruzioni di controllo dei processi a pagina 503 SCL Converte un valore di ingresso REAL non scalato in un valore in virgola mobile REAL espresso in unità ingegneristiche e include allarmi e limiti dell'uscita. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 540 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable In InRawMax InRawMin InEUMax InEUMin Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: fronte di salita rilevato. · Se InRawMin >= InRawMax, Status.0 e Status.1 i bit sono impostati su 1. Done è cancellato, MaxAlarm e MinAlarm sono cancellati. Errore è impostato su TRUE ed ErrorID è impostato su 1. · Else Out è calcolato per primo. Vengono poi verificate le condizioni di allarme. Se MaxAlarm è impostato, MinAlarm è cancellato e viceversa. Quindi se la limitazione è impostata, Out sarà nell'intervallo di InEUMin e InEUMax. Quindi il bit Done è impostato su TRUE. I bit Stato sono impostati su 0. Errore ed ErrorID sono impostati su 0. · Il valore Out calcolato viene confrontato con NAN (non un numero). Se NAN è il valore Out, EnableOut è cancellato. Done è cancellato se la condizione di errore è impostata. FALSE: fronte di salita non rilevato. · L'istruzione non viene eseguita. · Le uscite non sono aggiornate. ma Error, ErrorID, EnableOut e Done sono impostati su 0. REAL Il segnale d'ingresso analogico. Valido = qualsiasi mobile Predefinito = 0,0 REAL Il valore massimo raggiungibile dall'ingresso all'istruzione. Se InRawMax<= InRawMin, l'istruzione imposta il bit appropriato in Stato; Error. ErrorID sono aggiornati. L'aggiornamento Out viene interrotto. Valido = InRawMax > InRawMin Predefinito =0,0 REAL Il valore minimo raggiungibile dall'ingresso all'istruzione. Se InRawMin >= InRawMax, l'istruzione imposta il bit appropriato in Stato ed Error. ErrorID sono aggiornati. L'aggiornamento Out viene interrotto. Valido = InRawMin < InRawMax Predefinito = 0,0 REAL Il valore scalato dell'ingresso corrispondente a InRawMax. Valido = qualsiasi valore reale Predefinito = 0,0 REAL Il valore scalato dell'ingresso corrispondente a InRawMin. Valido = qualsiasi valore reale Predefinito = 0,0 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 541 Capitolo 19 Parametro Limitazione Done Istruzioni di controllo dei processi Tipo di parametro Tipo di dati Ingresso BOOL Uscita BOOL EnableOut Uscita BOOL Out Uscita REAL MaxAlarm Uscita BOOL MinAlarm Uscita BOOL Stato Uscita DINT Errore Uscita BOOL ErrorID Uscita BOOL Descrizione Selettore di limitazione. TRUE: Out limitato tra InEUMin e InEUMax. Indica quando l'operazione viene completata. TRUE: operazione completata correttamente. FALSE: si è verificata una condizione di errore per l'operazione o Enable è impostato su FALSE. Indica che l'istruzione è abilitata. Imposta su False se Out è in overflow. Rappresenta il valore scalato dell'ingresso analogico. Indicatore di allarme ingresso massimo. Il valore è impostato su TRUE quando Ingresso > InRawMax. Indicatore di allarme ingresso minimo. Il valore è impostato su TRUE quando Ingresso < InRawMin. Stato del blocco funzione. InstructFault (Status.0) Verrà impostato dopo il rilevamento degli errori di esecuzione dell'istruzione. Non si tratta di un errore del controllore grave o di minore entità. Verificare i bit di stato rimanenti per determinare ciò che è accaduto. InRawRangeInv (Status.1) InRawMin >= InRawMax L'intervallo Status.3 - Status.31 è riservato a uso futuro e il relativo valore è 0. Indica la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore. Codice errore Codice ErrorID Descrizione errore 1 InRawMax<= InRawMin Esempio di programmazione a blocchi funzionali SCL 542 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Esempio di Diagramma ladder SCL Istruzioni di controllo dei processi Esempio di Testo strutturato SCL Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 543 Capitolo 19 Istruzioni di controllo dei processi Vedere anche Istruzioni di controllo dei processi a pagina 503 Diagrammi di temporizzazione dell'istruzione SCL a pagina 544 Esempi di diagrammi di temporizzazione dell'istruzione SCL Gli esempi di diagramma di temporizzazione seguenti descrivono scenari di esecuzione per l'istruzione SCL. Completamento dell'esecuzione SCL Ciclo di scansione 1 2, 3 4 5, 6, 7 8 Descrizione Se Enable è impostato su TRUE e i parametri di ingresso sono validi e compresi nell'intervallo, viene avviata l'esecuzione del blocco funzione. · Done ed EnableOut sono impostati su TRUE. · Out è calcolato in base agli ingressi forniti. · MaxAlarm, MinAlarm, ed Error sono impostati su FALSE. · Status ed ErrorID e Status sono impostati su 0 poiché non è stato generato alcun errore. Nessuna modifica nella condizione ramo. Se Enable è impostato su FALSE, viene arrestata l'esecuzione del blocco funzione. · Done, EnableOut ed Error sono impostati su FALSE. · ErrorID è impostato su 0. · Out, MaxAlarm, MinAlarm e Status mantiene l'ultimo valore. Nessuna modifica nella condizione ramo. · Se Enable è impostato su TRUE e i parametri di ingresso sono validi e compresi nell'intervallo, viene avviata l'esecuzione del blocco funzione. · Done ed EnableOut sono impostati su TRUE. · Out è calcolato in base agli ingressi forniti. · MaxAlarm, MinAlarm, ed Error sono impostati su FALSE. · ErrorID e Status sono impostati su 0 poiché non è stato generato alcun errore. 544 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Ciclo di scansione 9 10, 11 Descrizione Se Enable è impostato su FALSE, viene arrestata l'esecuzione del blocco funzione. · Done, EnableOut ed Error sono impostati su FALSE. · ErrorID è impostato su 0. · Out, MaxAlarm, MinAlarm e Status mantiene l'ultimo valore. Nessuna modifica nella condizione ramo. Capitolo 19 Istruzioni di controllo dei processi Esecuzione SCL non riuscita Nel seguente esempio, tutti i parametri di ingresso sono validi e compresi nell'intervallo, ma InRawMin >= InRawMax. Nel ciclo di scansione 1 e 8, se Enable è impostato su TRUE e viene avviata l'esecuzione del blocco funzione, Error è impostato su True ed ErrorID è impostato su 1. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 545 Capitolo 19 Istruzioni di controllo dei processi Generazione di MaxAlarm Nell'esempio del ciclo di scansione 8, tutti i parametri di ingresso sono validi e compresi nell'intervallo, ma In > InRawMax. Se Enable è impostato su TRUE e viene avviata l'esecuzione del blocco funzione, MaxAlarm è impostato su TRUE. Generazione di MinAlarm Nell'esempio del ciclo di scansione 8, tutti i parametri di ingresso sono validi e compresi nell'intervallo, ma In < InRawMin. Se Enable è impostato su TRUE e viene avviata l'esecuzione del blocco funzione, MinAlarm è impostato su TRUE. 546 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 19 Istruzioni di controllo dei processi Errore di configurazione ingresso e condizione di overflow uscita Nell'esempio del ciclo di scansione 3, tutti i parametri di ingresso del blocco funzione sono validi e compresi nell'intervallo, ma si verifica un overflow dell'uscita a causa dei parametri di ingresso. EnableOut è impostato su FALSE. Il valore di Out non è valido. Nell'esempio del ciclo di scansione 8, i parametri di ingresso del blocco funzione sono validi e rientrano nell'intervallo, ma si verifica un overflow dell'uscita a causa dei parametri di ingresso e di InRawMin >= InRawMax, Error è impostato su TRUE. ErrorID è impostato su 1 e Status è impostato su 3. Vedere anche SCL a pagina 540 TND (interruzione programma corrente) Arresta il ciclo di scansione del programma utente in corso Dopo la scansione dell'uscita e dell'ingresso e alcune operazioni di manutenzione, il programma dell'utente viene rieseguito dall'inizio della prima routine. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 547 Capitolo 19 Istruzioni di controllo dei processi Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro Tipo di parametro Tipo di dati Descrizione Enable Ingresso BOOL TND Uscita BOOL Abilitare funzione. Quando Enable = TRUE, esegue la funzione. Quando Enable = FALSE, non esegue la funzione. Se TRUE la funzione viene eseguita. se il monitoraggio delle variabili è attivo, il valore della variabile di monitoraggio viene assegnato all'uscita dell'istruzione. Se il monitoraggio delle variabili è inattivo, il valore della variabile di uscita viene assegnato all'uscita dell'istruzione. Esempio di programmazione a blocchi funzionali TND Esempio di diagramma ladder TND Esempio di testo strutturato TND (* Equivalenza ST: *) TESTOUTPUT := TND(TESTENABLE) ; 548 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 19 Istruzioni di controllo dei processi LIMIT (prova limite) Vedere anche Istruzioni di controllo dei processi a pagina 503 riduce i valori interi a un intervallo definito. I valori interi compresi tra il minimo e il massimo non sono modificati. I valori interi superiori al massimo sono sostituiti con il valore massimo. I valori interi inferiori al minimo sono sostituiti con il valore minimo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN MIN IN MAX LIMIT ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso DINT Ingresso DINT Ingresso DINT Uscita DINT Abilitare funzione. TRUE: esegue il calcolo corrente LIMIT. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Valore minimo supportato. Qualunque valore intero con segno. Valore massimo supportato. Valore di ingresso vincolato all'intervallo supportato. Uscita BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 549 Capitolo 19 Istruzioni di controllo dei processi Esempio di programmazione a blocchi funzionali LIMIT Esempio di diagramma ladder LIMIT Esempio di testo strutturato LIMIT (* Equivalenza ST: *) nuovo_valore := LIMIT (valore_min, valore, valore_max); (* vincola il valore al gruppo [valore_min..valore_max] *) 550 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 19 Istruzioni di controllo dei processi Vedere anche Istruzioni di controllo dei processi a pagina 503 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 551 Capitolo 20 Istruzione per il controllo del programma Istruzione AFI a pagina 553 NOP a pagina 553 SUS a pagina 554 Usare l'istruzione per il controllo del programma per controllare le istruzioni contemporaneamente da un programma utente e da un dispositivo dell'interfaccia operatore. Descrizione Disabilita un ramo. Funziona come segnaposto. Sospende l'esecuzione del controllore Micro800. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 AFI (sempre false) All'inizio di un ramo, utilizzare le istruzioni AFI per disabilitare temporaneamente un ramo quando si esegue il debug senza necessità di cancellarlo dal programma. L'uscita di questa istruzione è sempre FALSE. Linguaggi supportati: Diagramma ladder. Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Vedere anche Istruzione per il controllo del programma a pagina 553 NOP (nessuna operazione) L'istruzione NOP funziona come segnaposto. È possibile posizionare l'istruzione NOP in qualsiasi punto del ramo. Linguaggi supportati: Diagramma ladder. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 553 Capitolo 20 Istruzione per il controllo del programma Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Vedere anche Istruzione per il controllo del programma a pagina 553 SUS (sospensione) Sospende l'esecuzione del <controllore M800>. Il controllore resta in modalità RUN ma l'esecuzione viene sospesa indefinitamente. La sospensione serve a trovare gli errori del programma utente e aiuta nel monitoraggio del programma utente. Mettere l'istruzione SUS nelle sezioni del programma utente in cui bloccare condizioni inusuali. In modalità sospensione, RUN LED è impostato su OFF per indicare che lo scan del programma è Idle. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable SusID ENO Tipo di parametro Ingresso Ingresso Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue la funzione. FALSE: non esegue la funzione. UINT ID sospensione. BOOL Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali SUS 554 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 20 Esempio di Diagramma ladder SUS Istruzione per il controllo del programma Esempio di Testo strutturato SUS Risultati Vedere anche Istruzione per il controllo del programma a pagina 553 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 555 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Utilizzare le istruzioni PID (Proportional-Integral-Derivative) per controllare il processo con maggiore precisione tramite la funzionalità PID. Istruzione Descrizione IPIDCONTROLLER a pagina 557 Configurare e controllare gli ingressi e le uscite utilizzate per la logica proporzionaleintegrale-derivativa (PID). PID a pagina 586 Configura e controlla le uscite che controllano le proprietà fisiche come la temperatura, la pressione, il livello dei liquidi o la portata tramite cicli di processo. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Che cos'è il controllo proporzionale integrale derivativo (PID)? Il controllo proporzionale integrale derivativo (PID) permette al controllo di processo di mantenere in modo accurato il setpoint regolando le uscite del controllo. Un blocco funzione PID combina tutta la logica necessaria all'esecuzione del controllo proporzionale integrale derivativo (PID). Vedere anche Istruzione proporzionale integrale derivativa (PID) a pagina 557 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 IPIDCONTROLLER (controllore proporzionale integralederivativo) Configurare e controllare gli ingressi e le uscite utilizzate per la logica proporzionale-integrale-derivativa (PID). La logica PID serve per controllare le proprietà fisiche quali temperatura, pressione, liquido, livello o portata tramite cicli di processo che calcolano un valore di errore come la differenza tra un setpoint desiderato e una variabile di processo misurata. Il controllore tenta di ridurre al minimo l'errore nel tempo attraverso la regolazione di una variabile di controllo. Il calcolo Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 557 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) include termini proporzionali (P), integrali (I) e derivativi (D) che vengono utilizzati come segue: P: valori di errore presenti. I: valori di errore passati. D: possibili valori di errori futuri in base alla velocità corrente di modifica che controlla proprietà fisiche quali temperatura, pressione, livello dei liquidi o portata tramite cicli di processo. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Process SetPoint Feedback Auto Inizializza 558 Tipo di parametro Ingresso Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Se TRUE, abilita il blocco istruzione. TRUE: esegue il calcolo PID. FALSE: il blocco istruzione non è attivo. Applicabile alle programmazioni in Ladder Diagram. REAL Valore di processo, ovvero il valore misurato all'uscita del processo. REAL Set point. REAL Segnale di feedback, ovvero il valore della variabile di controllo applicato al processo. Ad esempio, il feedback può essere l'uscita IPIDCONTROLLER. Ingresso BOOL Ingresso BOOL La modalità operativa del controllore PID: · TRUE: il controllore funziona in modalità normale. · FALSE: il controllore provoca la reimpostazione R alla traccia (F-GE). Una modifica del valore (da TRUE a FALSE o da FALSE a TRUE) causa l'eliminazione di qualsiasi guadagno proporzionale da parte del controllore durante quel ciclo. Inoltre, inizializza le sequenze AutoTune. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Gains AutoTune Tipo di parametro Ingresso Ingresso Tipo di dati GAIN_PID BOOL ATParameters Uscita AbsoluteError ATWarnings Ingresso Uscita Uscita Uscita AT_Param REAL REAL DINT OutGains ENO Uscita Uscita GAIN_PID BOOL Capitolo 21 Descrizione Istruzione proporzionale integrale derivativa (PID) Guadagni PID per IPIDController. Utilizzare il tipo di dati GAIN_PID per definire i parametri per l'ingresso Gains. TRUE: se Auto è TRUE e Auto e Initialize sono su FALSE, la sequenza AutoTune è stata avviata. FALSE: Autotune non avviato. Parametri Auto Tune. Utilizzare il tipo di dati AT_Param per definire i parametri per l'ingresso ATParameters. Valore di uscita dal controllore. Errore assoluto (Process SetPoint) dal controllore. (ATWarning) Avviso per la sequenza Auto Tune. I possibili valori sono: · 0: nessuna sintonizzazione automatica eseguita. · 1 - In modalità auto tuning. · 2 - Auto tuning eseguito. · -1 - ERROR 1, ingresso impostato automaticamente su TRUE, nessun auto tuning possibile. · -2 - ERROR 2, errore auto tune, ATDynaSet scaduto. Guadagni calcolati dopo le sequenze AutoTune. Utilizzare il tipo di dati GAIN_PID per definire l'uscita OutGains. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di Programmazione a blocchi funzionali IPIDCONTROLLER Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 559 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Esempio di diagramma ladder IPIDCONTROLLER Esempio di Testo strutturato IPIDCONTROLLER (* Equivalenza ST: IPIDController1 è un'istanza del blocco IPIDController *) IPIDController1(Proc, SP, FBK, Auto, Init, G_In, A_Tune, A_TunePar, Err ); Out_process := IPIDController1.Output ; A_Tune_Warn := IPIDController1.ATWarning ; Gain_Out := IPIDController1.OutGains ; 560 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Vedere anche Tipo di dati AT_Param a pagina 562 Tipo di dati GAIN_PID a pagina 561 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Che cos'è il controllo proporzionale integrale derivativo (PID)? a pagina 557 Tipo di dati GAIN_PID La tabella seguente descrive il tipo di dati GAIN_PID per l'istruzione IPIDCONTROLLER. Parametro Tipo di dati Descrizione DirectActing BOOL Tipo di azionamento: · TRUE: azionamento diretto, l'uscita si sposta nella stessa direzione dell'errore. Ovvero, il valore attuale del processo è maggiore del SetPoint e l'azione appropriata del controllore è di incrementare l'uscita, ad esempio: raffreddamento. · FALSE: azionamento inverso, l'uscita si sposta nella direzione opposta all'errore. Ovvero, il valore attuale del processo è maggiore del SetPoint e l'azione appropriata del controllore è di diminuire l'uscita, ad esempio: riscaldamento. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 561 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Parametro Tipo di dati Descrizione ProportionalGain REAL TimeIntegral REAL TimeDerivative REAL DerivativeGain REAL Guadagno proporzionale per PID (>= 0,0001). Quando ProportionalGain è (< 0,0001), ProportionalGain = 0,0001 Guadagno proporzionale per PID (P_Gain) Un guadagno proporzionale maggiore provoca una modifica maggiore nell'uscita in base alla differenza tra il PV (valore di processo misurato) e SV (valore punto preimpostato). Maggiore è il guadagno, più rapidamente l'errore diminuisce, ma ciò potrebbe comportare instabilità come oscillazioni. Minore è il guadagno, più lentamente l'errore diminuisce, ma il sistema è più stabile e meno sensibili a grandi errori. Il P_Gain è in genere il guadagno più importante per regolare e il primo guadagno da regolare durante la regolazione. Valore integrale di tempo per PID in secondi (>= 0,0001). Quando TimeIntegral è (< 0,0001), TimeIntegral = 0,0001 Valore integrale di tempo per PID Una costante di tempo integrale minore provoca una modifica più rapida nell'uscita in base alla differenza tra il PV (valore di processo misurato) e SV (valore punto preimpostato) integrato questo periodo di tempo. Una costante di tempo integrale minore diminuisce l'errore stabile (errore quando SV non viene modificato) ma aumenta le possibilità di instabilità come oscillazioni. Una costante di tempo integrale maggiore rallenta la risposta del sistema e lo rende più stabile, ma PV si avvicina a SV a una velocità inferiore. Valore derivativo di tempo per PID in secondi (> 0,0). Quando TimeDerivative è (< = 0,0), TimeDerivative = 0,0 Quando TimeDerivative è = 0, IPID agisce come PI. Valore derivativo di tempo per PID (Td). Una costante di tempo derivativa minore provoca una modifica più rapida nell'uscita basata sulla velocità di modifica della differenza tra PV (valore di processo misurato) e SV (valore punto preimpostato). Una costante di tempo derivativa minore rende un sistema più efficiente nel reagire a modifiche improvvise in caso di errore (SV viene modificato) ma aumenta le possibilità di instabilità, come oscillazioni. Una costante di tempo maggiore rende un sistema meno efficiente nel rispondere alle modifiche improvvise in caso di errore, ma il sistema è meno soggetto a modifiche nel PV dovute a rumore e passaggi. TimeDerivative (Td) è correlato al guadagno derivativo, ma consente di regolare il contributo derivativo al PID mediante l'ora in modo che il tempo di campionamento venga preso in considerazione. Guadagno derivativo per PID (> 0,0). Quando DerivativeGain è (< 0,0), DerivativeGain = 0,1 Guadagno derivativo per PID (D_Gain) Un guadagno derivativo maggiore provoca una modifica maggiore nell'uscita basata sulla velocità di modifica della differenza tra PV (valore di processo misurato) e SV (valore punto preimpostato). Un guadagno maggiore rende un sistema più efficiente nel rispondere a modifiche improvvise in caso di errore, ma aumenta le possibilità di instabilità, come oscillazioni. Un guadagno minore rende un sistema meno efficiente nel rispondere alle modifiche improvvise in caso di errore, ma rende il sistema meno soggetto a modifiche nel PV dovute a rumore e passaggi. Vedere anche IPIDCONTROLLER a pagina 557 Tipo di dati AT_Param Parametri Load Deviation Passo ATDynamSet Nella tabella seguente sono descritti i parametri del tipo di dati AT_Param. Tipo di dati Descrizione REAL Parametro di carico per auto tuning. Valore di uscita quando si avvia AutoTune. REAL Deviazione per auto tuning. Deviazione standard usata per calcolare la noise band necessaria per AutoTune. REAL Valore del passo per AutoTune. Deve essere maggiore della noise band e minore di ½ Load. REAL Tempo di attesa in secondi prima di abbandonare auto tune. 562 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri ATReset Tipo di dati Descrizione Capitolo 21 Istruzione proporzionale integrale derivativa (PID) BOOL Indica se il valore di uscita viene ripristinato a zero dopo una sequenza di AutoTune: · TRUE - Ripristina l'uscita a zero. · FALSE: lascia l'uscita sul valore Load. Vedere anche IPIDCONTROLLER a pagina 557 Creazione di un ciclo di feedback per il valore manipolato a pagina 579 Modalità di implementazione Il blocco funzione IPIDController, disponibile nel set di istruzioni di Connected Components Workbench, si basa sulla teoria del controllo del controllo PID da parte PID e combina tutta la logica necessaria all'esecuzione del blocco funzione IPIDController dell'elaborazione del canale di ingresso analogico e del controllo proporzionale integrale derivativo (PID). In HMI, il faceplate IPID è disponibile per l'uso con il blocco di funzione IPIDController. Descrizione del blocco di funzione IPIDController Il blocco di funzione IPIDController utilizza i seguenti componenti per il blocco di funzione: · R: Azionamento (+/- 1) · PG: Guadagno proporzionale · DG: Guadagno filtro derivato · td: ãD · ti: ãI Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 563 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Prevenzione della carica integrale Se la differenza tra il valore del setpoint e del processo è ampia, il valore dell'uscita aumenterà in modo significativo e durante il tempo che impiega a diminuire il processo non sarà sotto controllo. Il blocco di funzione IPIDController traccia il feedback in modo interattivo e previene la carica integrale. Quando l'uscita è satura, il termine integrale nel controllore viene rielaborato, in modo che il nuovo valore fornisca un'uscita al limite della saturazione. Vedere anche Istruzione proporzionale integrale derivativa (PID) a pagina 557 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Operazione del blocco funzione IPIDController Quando Input Auto è TRUE, IPIDController funziona in modalità normale automatica. Quando Input Auto è FALSE, causa il ripristino di R per il tracciamento (F-GE), forzando l'uscita IPIDController a tracciare il feedback entro i limiti di IPIDController. A questo punto il controllore ritorna in modalità automatica senza l'incremento dell'uscita. Per il parametro di ingresso Initialize, il passaggio da FALSE a TRUE o da TRUE a FALSE quando AutoTune è FALSE, comporta che IPIDController elimini qualsiasi azione di guadagno proporzionale durante il dato ciclo (ad esempio, Initialize). Utilizzare questo processo per prevenire il bumping dell'uscita quando si effettuano modifiche al SetPoint mediante un blocco funzione dell'interruttore. 564 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Per eseguire una sequenza AutoTune: Per eseguire una sequenza AutoTune, ATParameters di ingresso devono essere completati. I parametri Input Gain e DirectActing devono essere impostati in base al processo e all'impostazione di DerivativeGain (di solito 0,1). La sequenza AutoTune viene avviata con la seguente sequenza: 1. Impostare il parametro di ingresso Initialize su TRUE. 2. Impostare il parametro di ingresso Autotune su TRUE. 3. Cambiare il parametro di ingresso Initialize su FALSE. 4. Attendere finché il parametro di uscita ATWarning non passa a 2. 5. Trasferire i valori del parametro di uscita OutGains al parametro di ingresso Gains. Per finalizzare la regolazione, potrebbe essere necessario eseguire una regolazione fine in funzione dei requisiti e dei processi. Quando si imposta TimeDerivative a 0,0, IPIDController forza DerivativeGain a 1,0 e quindi funziona come un controllore PI. Vedere anche Istruzione proporzionale integrale derivativa (PID) a pagina 557 Che cos'è il controllo proporzionale integrale derivativo? a pagina 557 Modalità di implementazione del controllo PID da parte del blocco funzione IPIDController a pagina 563 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Utilizzo dell'istruzione proporzionale integrale derivativa Questa sezione fornisce dettagli ed esempi specifici per l'utilizzo dell'istruzione proporzionale integrale derivativa, inclusi i seguenti argomenti: Esempio: come creare un ciclo di feedback per il valore manipolato L'aggiunta di un ciclo di feedback per il valore manipolato previene la sovraelongazione eccessiva fornendo un valore minimo e massimo per MV. Esempio ciclo di feedback sulla temperatura All'inizio del processo di controllo della temperatura la differenza tra il valore di processo (PV) e il valore setpoint (SP) è ampia, come mostrato nel seguente grafico. In questo esempio di ciclo di feedback sulla temperatura, PV inizia con 0 gradi Celsius e si sposta verso il Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 565 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) valore SP di 40 gradi Celsius. Tenere anche presente che la fluttuazione tra il valore alto e basso manipolato (MV) scende e si stabilizza nel tempo. Il comportamento di MV dipende dai valori usati in ciascuno dei parametri P, I e D. IPIDController con ciclo di feedback Il seguente diagramma a blocchi funzionali include un ciclo di feedback per il valore manipolato che previene la sovraelongazione eccessiva fornendo un valore minimo e massimo per MV. Esempio: come implementare l'auto tuning in un blocco funzione IPIDController Utilizzare il parametro AutoTune del blocco funzione IPIDController per implementare l'auto tuning nel programma di controllo. 566 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Requisiti e raccomandazioni per l'auto tuning Di seguito è riportato un riepilogo dei requisiti e delle raccomandazioni per la corretta implementazione dell'auto tuning. · L'auto tuning deve causare l'oscillazione dell'uscita del ciclo di controllo, vale a dire che l'IPIDController deve essere richiamato con una certa frequenza per una campionatura adeguata dell'oscillazione. · Il blocco funzione IPIDController deve essere eseguito con un intervallo relativamente costante. · Configurare il tempo di scansione del programma alla metà dell'intervallo di oscillazione. · Considerare l'utilizzo di un blocco di istruzioni Interruzione testo strutturato (STI) per controllare il blocco di istruzioni IPIDController. Esempio: come aggiungere un UDFB a un programma PID Aggiungere UDFB esternamente al programma principale per eseguire funzioni specializzate, come conversione di unità o trasferimento di valori. Trasferimento del valore di guadagno con auto tuning Questo UDFB trasferisce il valore del guadagno AutoTune a My_GainTransfer per l'utilizzo da parte del controllore. Conversione di un valore manipolato in un'uscita digitale Questo UDFB converte un valore manipolato (MV) in un'uscita digitale (DO) in modo che sia possibile usarlo per controllare un ingresso digitale n(DI). Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 567 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Conversione di un valore manipolato in un'uscita analogica Questo UDFB converte un valore manipolato (MV) in un'uscita analogica (AO) in modo che sia possibile usarlo per controllare un ingresso analogico (AI). Vedere anche Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Istruzione proporzionale integrale derivativa (PID) a pagina 557 Che cos'è il controllo proporzionale integrale derivativo? a pagina 557 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Utilizzo dell'auto tuning con il blocco funzione IPIDController Utilizzare il parametro AutoTune del blocco funzione IPIDController per implementare l'auto tuning nel programma di controllo. Requisiti e raccomandazioni per l'auto tuning Di seguito è riportato un riepilogo dei requisiti e delle raccomandazioni per la corretta implementazione dell'auto tuning. · L'auto tuning deve causare l'oscillazione dell'uscita del ciclo di controllo, vale a dire che l'IPIDController deve essere richiamato con una certa frequenza per una campionatura adeguata dell'oscillazione. · Il blocco funzione IPIDController deve essere eseguito con un intervallo relativamente costante. · Configurare il tempo di scansione del programma alla metà dell'intervallo di oscillazione. · Considerare l'utilizzo di un blocco istruzione STI (Selectable Timed Interrupt) per controllare il blocco istruzione IPIDController. Vedere anche Istruzione proporzionale integrale derivativa (PID) a pagina 557 568 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Che cos'è il controllo proporzionale integrale derivativo? a pagina 557 Operazione del blocco funzione IPIDController a pagina 564 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Auto tuning in sistemi di primo e secondo ordine Utilizzare l'auto tuning in un sistema di primo ordine in cui è utilizzato un solo elemento oppure in un sistema di secondo ordine in cui sono utilizzati due elementi indipendenti. Un sistema di primo ordine prevede un solo elemento indipendente di accumulazione di energia. Gli esempi includono: · Raffreddamento di un serbatoio per fluidi, con accumulazione di energia termica. · Flusso o fluido da un serbatoio, con accumulazione di energia potenziale. · Un motore a coppia costante che controlla un volano, con accumulazione di energia cinetica rotazionale. · Una rete elettrica RC ad anticipo di fase, con accumulazione di energia capacitiva. In un sistema di primo ordine la funzione può essere scritta in forma standard, come f(t) = dy/dt + y(t) Dove: Variabile t f y Descrizione Costante di tempo del sistema Forzatura della funzione Variabile di stato del sistema Esempio: Raffreddamento di un serbatoio per fluidi utilizzando l'energia termica come elemento di accumulazione È uguale a RC Dove R = resistenza termica delle pareti del serbatoio C = capacità termica del fluido È la temperatura ambiente È la temperatura del fluido Un sistema di secondo ordine prevede due elementi per l'accumulazione di energia che scambiano l'energia accumulata. Gli esempi includono: · Un motore che comanda un volano disco con motore accoppiato al volano mediante un albero con rigidità torsionale; energia cinetica rotazionale ed energia della molla torsionale sono le unità di memorizzazione. · Un circuito elettrico composto da un generatore di corrente che alimenta un induttore e un resistore in serie (LR) con un condensatore (C) in derivazione. Vengono accumulate l'energia induttiva e l'energia capacitiva. I sistemi azionati a motore e i sistemi di riscaldamento di norma possono essere modellati in base a un circuito elettrico LR e C. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 569 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Vedere anche Utilizzo dell'auto tuning con il blocco funzione IPIDController a pagina 568 Configurazione dell'auto tuning Seguire questa procedura generale per l'implementazione dell'auto tuning utilizzando la funzione IPIDController. N. Passo 1 Ripristinare il setpoint su zero. Esempio 570 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 N. Passo Esempio 2 Impostare la modalità automatica su False. Capitolo 21 Istruzione proporzionale integrale derivativa (PID) 3 Impostare i parametri Gains. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 571 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) N. Passo Esempio 4 Impostare i parametri di auto tuning. Impostare i parametri di auto tuning, compresi il valore di carico iniziale, la variazione del passo dell'uscita, il tempo previsto per il completamento dell'auto tuning e ripristino dell'auto tuning. 572 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 N. Passo 5 Impostare i parametri Initialize e Auto-Tune su True. Esempio Capitolo 21 Istruzione proporzionale integrale derivativa (PID) 6 Notare che l'uscita viene impostata sul valore di carico quando si imposta il parametro Auto-Tune su True. 7 Osservare l'incremento rapido del valore di processo, finché non si avvicina al punto di saturazione. 8 Osservare la stabilizzazione del valore di processo e la sua fluttuazione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 573 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) N. Passo 9 Impostare la deviazione. Esempio 10 Impostare Initialize su False. 574 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 N. Passo 11 Il controllore avvia l'auto tuning. Attendere l'impostazione di ATWarning su 2. Esempio Capitolo 21 Istruzione proporzionale integrale derivativa (PID) 12 Impostare AutoTune su False. 13 Osservare i valori presenti in OutGains dopo l'auto tuning. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 575 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) N. Passo Esempio 14 Trasferire il parametro da OutGain a My_Gains. 15 Osservare se il controllore è aggiornato con il parametro del guadagno ottenuto dopo l'auto tuning. 576 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Utilizzo dell'auto tuning con il blocco funzione IPIDController a pagina 568 Utilizzo di un STI (Selectable Timed Interrupt) con auto tuning Sebbene un'istruzione PID funzioni anche se non è controllata da STI (Selectable Timed Interrupt), l'utilizzo di un STI aumenta la percentuale di successo dell'auto tuning perché quest'ultimo funziona in base a un ciclo fisso. Vedere anche Utilizzo dell'auto tuning con il blocco funzione IPIDController a pagina 568 Esempio: IPIDController con Nel programma dell'esempio seguente sono illustrate le variabili impiegate per configurare i parametri di auto tuning. auto tuning Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 577 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Parametri di auto tuning Nella tabella seguente sono descritte le variabili utilizzate con ciascun parametro dell'esempio per configurare l'auto tuning. Parametri di ingresso Variabile AutoMode Parametri Auto Descrizione La modalità operativa del controllore PID: TRUE: il controllore funziona in modalità normale. FALSE: il termine derivativo è ignorato, forzando il tracciamento del feedback nei limiti del controllore a livello di uscita e consentendo al controllore di tornare alla modalità automatica senza il bumping dell'uscita. Initialize My_Gains My_Gains.DirectActing My_Gains.ProportionalGain My_Gains.TimeIntegral My_Gains.TimeDerivative My_Gains.DerivativeGain AutoTune ATParameters Load Deviation Passo ATDynaSet ATReset Parametri di uscita Parametri AbsoluteError ATWarning OutGains Initialize Inizializza la sequenza AutoTune. In caso di modifica del valore da TRUE a FALSE o da FALSE a TRUE, il controllore elimina qualsiasi guadagno proporzionale durante il ciclo. Gains Stabilisce i guadagni PID per IPIDController. DirectActing Definisce il tipo di azionamento dell'uscita. TRUE - Azionamento diretto in cui l'uscita si sposta nella stessa direzione dell'errore. Ovvero, il valore attuale del processo è maggiore del SetPoint e l'azione appropriata del controllore è di incrementare l'uscita. Ad esempio, raffreddamento. FALSE - Azionamento inverso in cui l'uscita si sposta nella direzione opposta all'errore. Ovvero, il valore attuale del processo è maggiore del SetPoint e l'azione appropriata del controllore è di diminuire l'uscita. Ad esempio, riscaldamento. ProportionalGain Guadagno proporzionale per PID (>= 0,0001). TimeIntegral Valore integrale di tempo per PID (>= 0,0001). La tendenza all'oscillazione aumenta con la diminuzione dell'integrale del tempo. TimeDerivative Valore derivativo di tempo per PID (> 0,0). Lo smorzamento aumenta all'aumentare della derivata del tempo, ma si riduce se il valore della derivata del tempo è eccessivo. Guadagno derivativo per PID (> 0,0). Se impostato su TRUE e Auto e Initialize sono su FALSE, la sequenza AutoTune è stata avviata. · Valore iniziale dell'uscita durante l'auto tuning. · Permette al valore di processo di stabilizzarsi sul valore di carico. · La deviazione standard per una serie di valori di processo stabilizzati. Ad esempio, se il valore di processo è stabilizzato tra 31,4 e 32,0, il valore di deviazione sarà (32,0-31,4)/2 = 0,3. · Alcuni valori di processo, tipo quello della temperatura, richiedono molto tempo per stabilizzarsi. · Il processo di auto tuning deriva i parametri Gain in base a come il valore di processo cambia in seguito alla modifica del valore del passo. · Tempo allocato per il completamento dell'auto tuning. Deve essere maggiore rispetto al tempo richiesto per il processo di auto tuning. · Un valore comune per molti sistemi è 600 secondi, ma per alcuni può essere necessario più tempo. · Se TRUE, l'uscita verrà ripristinata a "0" dopo il completamento dell'auto tuning. · Se FALSE, l'uscita resterà sul valore di carico una volta completato l'auto tuning. Descrizione Errore assoluto (Process SetPoint) dal controllore. Avviso per la sequenza Auto Tune. I possibili valori sono: · 0: nessuna sintonizzazione automatica eseguita. · 1 - In modalità auto tuning. · 2 - Auto tuning eseguito. · -1 - ERROR 1, ingresso impostato automaticamente su TRUE, nessun auto tuning possibile. · -2 - ERROR 2, errore auto tuning, ATDynaSet scaduto Guadagni calcolati dopo le sequenze AutoTune. 578 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Esempio: come creare un ciclo di feedback per il valore manipolato L'aggiunta di un ciclo di feedback per il valore manipolato previene la sovraelongazione eccessiva fornendo un valore minimo e massimo per MV. Esempio ciclo di feedback sulla temperatura All'inizio del processo di controllo della temperatura la differenza tra il valore di processo (PV) e il valore setpoint (SP) è ampia, come mostrato nel seguente grafico. In questo esempio di ciclo di feedback sulla temperatura, PV inizia con 0 gradi Celsius e si sposta verso il valore SP di 40 gradi Celsius. Tenere anche presente che la fluttuazione tra il valore alto e basso manipolato (MV) scende e si stabilizza nel tempo. Il comportamento di MV dipende dai valori usati in ciascuno dei parametri P, I e D. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 579 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) IPIDController con ciclo di feedback Il seguente diagramma a blocchi funzionali include un ciclo di feedback per il valore manipolato che previene la sovraelongazione eccessiva fornendo un valore minimo e massimo per MV. Vedere anche Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Esempio: come aggiungere un UDFB a un programma PID Per i programmi PID, utilizzare i blocchi funzione definiti dall'utente (UDFB) esternamente al programma principale per eseguire funzioni specializzate, come conversione di unità o trasferimento di valori. Di seguito vengono forniti degli esempi di UDFB: Trasferimento del valore di guadagno con auto tuning Questo UDFB trasferisce il valore del guadagno AutoTune a My_GainTransfer per l'utilizzo da parte del controllore. Conversione di un valore manipolato in un'uscita digitale Questo UDFB converte un valore manipolato (MV) in un'uscita digitale (DO) in modo che sia possibile usarlo per controllare un ingresso digitale n(DI). 580 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Conversione di un valore manipolato in un'uscita analogica Questo UDFB converte un valore manipolato (MV) in un'uscita analogica (AO) in modo che sia possibile usarlo per controllare un ingresso analogico (AI). Vedere anche Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Esempio: come creare un programma IPIDController per controllare la temperatura Il programma di controllo della temperatura mantiene la temperatura entro la zona di controllo. Setpoint, processo e valori manipolati Nella tabella seguente viene definita la modalità di utilizzo dei valori SP, PV e MV nel programma di controllo della temperatura. Elemento Setpoint (SP) Valore di processo (PV) Valore manipolato (MV) Descrizione Misurazione della temperatura in gradi Celsius; definisce la temperatura per la zona di controllo. È necessario convertirlo nella stessa unità di SP; la misura è in gradi Celsius. È necessario convertirlo in un valore analogico, in modo da essere inviato alla PWM per il controllo dell'elemento riscaldatore. Sistema di controllo della temperatura Il diagramma e la tabella seguenti definiscono i componenti del sistema di controllo della temperatura che sono gestiti dal programma di Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 581 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) controllo della temperatura e descrivono gli eventi che si verificano durante l'esecuzione del programma di controllo. Sequenza di eventi per il programma di controllo della temperatura Nella seguente tabella sono identificati i componenti del sistema di controllo della temperatura e sono descritti, in sequenza, gli eventi che si verificano durante l'esecuzione del programma di tale sistema. No Elemento Uscita controllore Modulazione di larghezza degli impulsi (controllore temperatura PWM) Elemento riscaldante Termometro a resistenza (RTD) Descrizione Invia il MV alla PWM (On/Off). Relè a stato solido che controlla l'elemento riscaldante. Aumenta la temperatura nella zona di controllo. Misura la temperatura nella zona di controllo e invia il PV (segnale RTD) all'ingresso del controllore. Ingresso controllore Programma PLC Riceve il PV (segnale RTD). Converte il PV (segnale RTD) alla stessa unità del SP (gradi Celsius), determina la differenza tra il PV e il SP e regola il MV in base ai valori definiti nei parametri P, I e D. 582 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Esempio: diagramma a blocchi funzionali per il controllo della temperatura Questo diagramma a blocchi funzionali illustra i blocchi funzione predefiniti e definiti dall'utente e utilizzati nell'applicazione per il controllo della temperatura in una zona di controllo. Vedere anche Esempio: come creare un programma IPIDController per controllare il livello di erogazione dell'acqua a pagina 583 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 Esempio: come creare un programma IPIDController per controllare il livello di erogazione dell'acqua Nell'esempio di programma di controllo per il livello di erogazione dell'acqua, viene mantenuta una quantità d'acqua sufficiente in un serbatoio di erogazione dell'acqua dotato di deflusso. Una valvola solenoide controlla l'acqua in ingresso riempiendo il serbatoio con una portata preimpostata; anche l'acqua che defluisce è controllata in base a una portata preimpostata. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 583 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Informazioni dell'esempio di programma Il programma per il livello di erogazione dell'acqua include le seguenti informazioni. · La sequenza degli eventi che si verificano nel processo di controllo · Modalità di utilizzo nel programma di controllo del setpoint e dei valori manipolati e di processo · Un diagramma a blocchi funzionali di esempio che illustra l'IPIDController e altri blocchi di istruzioni Elemento Setpoint (SP) Valore di processo (PV) Valore manipolato (MV) Setpoint, processo e valori manipolati Nella tabella seguente è definita la modalità di utilizzo dei valori SP, PV e MV nel programma di controllo del livello di erogazione dell'acqua. Descrizione Misurazione dell'altezza che definisce il livello di erogazione dell'acqua. Il valore 4 - 20 mA deve essere convertito nella stessa unità di SP, una misura di altezza. È necessario convertirlo in un valore analogico, in modo da poter essere inviato all'unità per il controllo della pompa. Sistema per il livello di erogazione dell'acqua Nel seguente diagramma sono illustrati i componenti del sistema di controllo del livello di erogazione dell'acqua che sono comandati dal programma di tale sistema. Nella tabella riportata di seguito al diagramma sono descritti gli eventi che si verificano durante l'esecuzione del programma di controllo. Sequenza degli eventi nel sistema per il livello di erogazione dell'acqua Nella seguente tabella sono identificati i componenti del sistema di controllo del livello di erogazione dell'acqua e sono descritti, in sequenza, gli eventi che si verificano durante l'esecuzione del programma di tale sistema. 584 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 No Elemento Uscita controllore Unità PowerFlex Pompa dell'acqua Dispositivo di trasferimento delle uscite Ingresso controllore Programma PLC Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Descrizione Invia il MV all'unità PowerFlex (0 - 10 V). Controlla la pompa dell'acqua (0 - 50 Hz). Controlla il livello dell'acqua nel serbatoio di erogazione. Misura l'altezza del livello dell'erogazione dell'acqua (4 - 20 mA) e invia il PV al controllore. Riceve il PV (livello di erogazione dell'acqua 4 - 20 mA). Converte il PV alla stessa unità del SP (misura dell'altezza), determina la differenza tra il PV e il SP e regola il MV in base ai valori definiti nei parametri P, I e D. Esempio: diagramma a blocchi funzionali per il controllo del livello di erogazione dell'acqua Nel seguente diagramma a blocchi funzionali sono illustrati i blocchi funzione del programma predefiniti e definiti dall'utente per il controllo del livello di erogazione dell'acqua. Blocchi funzione e UDFB usati nell'FBD del livello dell'acqua Questa applicazione, sviluppata in linguaggio Diagramma a blocchi funzionali, utilizza i blocchi istruzione descritti nella seguente tabella. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 585 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Function block Blocco funzione IPIDController UDFB PID_OutputRegulator UDFB PID_Feedback UDFB PID_PWM UDFB SIM_WATERLVL Descrizione Fornisce il controllo del processo PID. Regola l'uscita di IPIDCONTROLLER in un intervallo sicuro per garantire che l'hardware impiegato nel processo non sia danneggiato. Codice campione: IF RMIN RIN RMAX, then ROUT = RIN, IF RIN < RMIN, then ROUT = RMIN, IF RIN > RMAX, then ROUT = RMAX Agisce come un multiplexer. Codice campione: IF "FB_RST" is false, FB_OUT=FB_IN; If "FB_RST" is true, then FB_OUT=FB_PREVAL. Fornisce una funzione PWM convertendo un valore reale in un'uscita ON/OFF dipendente dal tempo. Simula il processo nell'esempio dell'applicazione. Vedere anche Esempio: come creare un programma IPIDController per controllare la temperatura a pagina 581 Utilizzo dell'istruzione proporzionale integrale derivativa a pagina 565 PID (proporzionale integrale Un'istruzione di uscita che controlla le proprietà fisiche come la temperatura, la pressione, il livello dei liquidi o la portata tramite cicli di derivativa) processo. Dettagli operazione: · Quando abilitato, PID controlla il processo utilizzando i parametri di ingresso inclusi SP e guadagni del controllore PID. · Esegue la transizione dalla modalità Run alla modalità Programmazione, l'istruzione PID è disabilitato, i valori dei parametri vengono memorizzati. · Esegue la transizione dalla modalità Programmazione alla modalità Run, istruzione PID resta disabilitata fino a quando un utente ripristina da Abilita a True. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 586 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Questa istruzione vale per i controllori Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro Enable PV SP AutoManual CVManual CVMin CVMax Gains Controllo Attivo CV Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL REAL REAL BOOL REAL REAL REAL PID_GAINS BOOL BOOL REAL Istruzione Abilita. TRUE: avvia l'esecuzione con i parametri di ingresso correnti. FALSE: PID non viene eseguito. Impostare CV su 0 e calcolare AbsoluteError. Valore processo. Questo valore è in genere letto da un modulo di ingresso analogico. L'unità SI deve essere la stessa di Setpoint. Il valore del punto preimpostato per il processo. Selezione della modalità automatica o manuale. TRUE: CV è controllato da PID. FALSE: esegue PID e CV è controllato dall'ingresso CVManual. Ingresso del valore di controllo definito per l'operazione modalità manuale. L'intervallo valido per CVManual è: CVMin < CVManual < CVMax Limite minimo del valore di controllo. Se CV < CVMin, quindi CV = CVMin. Se CVMin > CVMax, si verifica un errore. Limite massimo del valore di controllo. Se CV > CVMax, quindi CV = CVMax. Se CVMax < CVMin, si verifica un errore. Guadagni PID per il controllore. Per configurare il parametro Guadagni, utilizzare il tipo di dati PID_GAINS. Direzione di controllo del processo: TRUE: azionamento diretto, ad esempio raffreddamento. FALSE: azionamento inverso, ad esempio riscaldamento. Stato del controllore PID. TRUE: PID è attivo. FALSE: PID viene interrotto. Uscita del valore di controllo. Se si è verificato un errore, CV è 0. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 587 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) AbsoluteError Uscita REAL L'errore assoluto è la differenza tra il valore del processo (PV) e il valore del punto preimpostato (SP). Errore ErrorID Uscita BOOL Uscita USINT Indica la presenza di una condizione di errore. TRUE: l'operazione ha riscontrato un errore. FALSE: l'operazione è stata completata o l'istruzione FFU non è in esecuzione. Numero univoco che identifica l'errore. Gli errori sono definiti nei codici di errore PID. Parametri Kc Ti Td FC Tipo di parametro Ingresso Ingresso Ingresso Ingresso Tipo di dati PID_GAINS Nella tabella seguente è descritto il tipo di dati PID_GAINS per l'istruzione PID. Tipo di dati Descrizione REAL Guadagno controllore per PID. Proporzionale e integrale dipendono da questo guadagno. (>= 0,0001). L'aumento di Kc migliora il tempo di risposta ma aumenta anche il superamento e oscillazione del PID. Se Kc non è valido, si verifica un errore. REAL Costante integrale di tempo in secondi (> = 0,0001). L'aumento di Ti diminuisce il superamento e oscillazione del PID. Se Ti non è valido, si verifica un errore. REAL Costante derivativa di tempo in secondi (> = 0,0). Quando Td è uguale 0, non c'è nessuna azione derivata e PID diventa un controllore PI. L'aumento di Td riduce il superamento e rimuove l'oscillazione del controllore PID. Se Td non è valido, si verifica un errore. REAL Costante del filtro (> = 0,0). L'intervallo consigliato per FC è da 0 a 20. L'aumento di FC uniforma la risposta del controllore PID. Se FC non è valido, si verifica un errore. Codici di errore PID Utilizzare questa tabella per determinare i codici di errore PID e le descrizioni. Codice errore Descrizione errore 0 PID funziona normalmente. 1 Kc non è valido. 2 Ti non è valido. 3 Td non è valido. 4 FC non è valido. 5 CVMin > CVMax o CVMax < CVMin 6 CVManual < CVMin CVManual non è valido. 7 CVManual > CVMax CVManual non è valido. 588 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Esempio di Programmazione a blocchi funzionali PID Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 589 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Esempio di Diagramma ladder PID Esempio di Testo strutturato PID 590 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati PID Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Vedere anche Diagrammi di temporizzazione dell'istruzione PID a pagina 592 Stato della macchina di istruzione PID a pagina 591 Istruzioni proporzionali integrali derivative (PID) a pagina 557 Stato della macchina di istruzione PID Nel diagramma dello stato della macchina PID sono descritti gli stati di elaborazione per l'istruzione PID. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 591 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Vedere anche Istruzione PID a pagina 586 Diagrammi di temporizzazione dell'istruzione PID a pagina 592 Diagrammi di temporizzazione dell'istruzione PID Gli esempi di diagramma di temporizzazione seguenti descrivono scenari di esecuzione per l'istruzione PID (proporzionale-integralederivativa). Completamento dell'esecuzione PID. Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi. · Il bit Attivo è TRUE. · Il bit Errore è FALSE. 2, 3, 4 Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi. · Aggiorna i parametri di uscita del PID. 5, 9 La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. 592 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Ciclo di scansione Descrizione Capitolo 21 Istruzione proporzionale integrale derivativa (PID) 6, 7, 10, 11 Nessuna modifica nella condizione ramo. · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Esecuzione di PID con errore Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2, 3, 4 5, 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso non sono validi. · Il bit Attivo è FALSE. · Il bit Errore è TRUE. L'uscita ErrorID è impostata. · L'uscita CV uscita è impostata su 0. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso non sono validi. · Aggiorna i parametri di uscita del PID. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Nessuna modifica nella condizione ramo. · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 593 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Esecuzione del PID con errore e completamento dell'esecuzione Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2 3, 4 5, 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso non sono validi. · Il bit Attivo è FALSE. · Il bit Errore è TRUE. L'uscita ErrorID è impostata. · L'uscita CV uscita è impostata su 0. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso non sono validi. · Aggiorna i parametri di uscita del PID. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi. · Il bit Attivo è TRUE. · Il bit Errore è FALSE. · Aggiorna i parametri di uscita del PID. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Nessuna modifica nella condizione ramo. · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. 594 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Completamento dell'esecuzione PID ed Errore Utilizzare questa tabella per determinare i valori del parametro per ogni ciclo di scansione. Ciclo di scansione Descrizione 1, 8 2 3, 4 5, 9 6, 7, 10, 11 La condizione ramo diventa TRUE quando: · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi. · Il bit Attivo è TRUE. · Il bit Errore è FALSE. · Aggiornare i parametri di uscita del PID. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso sono validi. · Aggiornare i parametri di uscita del PID. Nessuna modifica nella condizione ramo. · Il bit di ingresso Abilita è TRUE. · I parametri di ingresso non sono validi. · Il bit Errore è TRUE. L'uscita ErrorID è impostata. · L'uscita CV uscita è impostata su 0. · AbsoluteError calcola in base ai valori di ingresso PV e SP. La condizione ramo diventa FALSE quando: · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Nessuna modifica nella condizione ramo. · Il bit Abilita è FALSE. · Cancella i parametri di uscita del PID tranne AbsoluteError. · AbsoluteError calcola in base ai valori di ingresso PV e SP. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 595 Capitolo 21 Istruzione proporzionale integrale derivativa (PID) Vedere anche PID a pagina 586 Stato della macchina di istruzione PID a pagina 591 596 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni Real Time Clock (RTC) Capitolo 22 Utilizzare le istruzioni Real Time Clock per configurare il calendario e l'orologio. Istruzione Descrizione RTC_READ a pagina 403 RTC_SET a pagina 405 Legge le informazioni sul modulo real-time clock (RTC). Imposta i dati Real-Time Clock sulle informazioni del modulo RTC. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 RTC_READ (lettura RealTime Clock) Legge le informazioni sul modulo real-time clock (RTC). Dettagli operazione: · Controllori Micro810 o Micro820 con RTC integrato: · RTCBatLow è sempre impostato su zero (0). · RTCEnabled è sempre impostato su (1). · Quando l'RTC integrato perde la carica/memoria a causa di una interruzione dell'alimentazione: · RTCData è impostato su 2000/1/1/0/0/0. · RTCEnabled è impostato su (1). Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 597 Capitolo 22 Istruzioni Real Time Clock (RTC) Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Parametro Tipo di parametro Tipo di dati Descrizione Enable Ingresso BOOL RTCData Uscita RTC RTCPresent Uscita BOOL RTCEnabled Uscita BOOL RTCBatLow Uscita BOOL ENO Uscita BOOL Abilitazione del blocco istruzione. TRUE: esegue la lettura delle informazioni RTC. FALSE: non c'è nessuna operazione di lettura e i dati in uscita RTC non sono validi. Informazioni sui dati RTC: aa/mm/gg, hh/mm/ss, settimana. L'uscita RTCData è definita con il tipo di dati RTC. TRUE: Free Running clock in uso oppure hardware RTC collegato. FALSE: Free Running clock non in uso oppure hardware RTC non collegato. TRUE: Free Running clock in uso oppure hardware RTC abilitato (temporizzazione). FALSE: Free Running clock non in uso, hardware RTC disabilitato (nessuna temporizzazione). TRUE - livello batteria RTC basso. FALSE - livello batteria RTC non è basso. Abilita uscita. Applicabile solo alle programmazioni in Ladder Diagram. Parametri Year Month Day Hour Minute Second DayOfWeek Tipo di dati RTC Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati RTC. Tipo di dati UINT UINT UINT UINT UINT UINT UINT Descrizione L'impostazione anno per RTC. Valore a 16 bit, intervallo valido da 2000 (01 gen, 00:00:00) a 2098 (31 dic, 23:59:59) L'impostazione mese per RTC. L'impostazione giorno per RTC. L'impostazione ora per RTC. L'impostazione minuto per RTC. L'impostazione secondi per RTC. L'impostazione giorno della settimana per RTC. Questo parametro è ignorato per RTC_SET. Esempio di Programmazione a blocchi funzionali RTC_READ 598 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 22 Esempio di Diagramma ladder RTC_READ Istruzioni Real Time Clock (RTC) Esempio di Testo strutturato RTC_READ Vedere anche Istruzioni ingresso/uscita a pagina 355 RTC_SET (impostare RealTime Clock) Impostare i dati RTC (Real-Time Clock) sulle informazioni del modulo RTC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 599 Capitolo 22 Istruzioni Real Time Clock (RTC) Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Enable RTCEnable RTCData RTCPresent RTCEnabled RTCBatLow Sts Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: esegue RTC_SET con le informazioni su RTC dall'ingresso. Eseguito in genere per 1 scansione del programma durante l'aggiornamento di RTC. FALSE - non esegue RTC_SET. Impostare su FALSE per utilizzare RTC normalmente. BOOL TRUE - Per abilitare RTC i dati RTC specificati. FALSE - Per disabilitare RTC. RTC Informazioni sui dati RTC: aa/mm/gg, hh/mm/ss, settimana definita nel tipo di dati RTC. RTCData è ignorato quando RTCEnable = 0. BOOL TRUE: Free Running clock in uso oppure hardware RTC collegato. FALSE: Free Running clock non in uso oppure hardware RTC non collegato. BOOL TRUE: Free Running clock in uso oppure hardware RTC abilitato (temporizzazione). FALSE: Free Running clock non in uso oppure hardware RTC disabilitato (nessuna temporizzazione). BOOL TRUE - livello batteria RTC basso. FALSE - livello batteria RTC non è basso. USINT Stato dell'operazione di lettura. Valori di stato (Sts) RTC_Set: · 0x00: blocco funzione non abilitato (nessuna operazione). · 0x01: operazione di impostazione RTC riuscita. · 0x02: operazione di impostazione RTC non riuscita. Parametri Year Month Day Hour Minute Second DayOfWeek Tipo di dati RTC Utilizzare questa tabella per determinare i valori dei parametri del tipo di dati RTC. Tipo di dati UINT UINT UINT UINT UINT UINT UINT Descrizione L'impostazione anno per RTC. Valore a 16 bit, intervallo valido da 2000 (01 gen, 00:00:00) a 2098 (31 dic, 23:59:59) L'impostazione mese per RTC. L'impostazione giorno per RTC. L'impostazione ora per RTC. L'impostazione minuto per RTC. L'impostazione secondi per RTC. L'impostazione giorno della settimana per RTC. Questo parametro è ignorato per RTC_SET. 600 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 22 Istruzioni Real Time Clock (RTC) Esempio di Programmazione a blocchi funzionali RTC_SET Esempio di Diagramma ladder RTC_SET Esempio di Testo strutturato RTC_SET Vedere anche Istruzioni ingresso/uscita a pagina 355 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 601 Istruzioni socket Capitolo 23 Utilizzare il protocollo del socket per le comunicazioni Ethernet verso i dispositivi che non supportano TCP Modbus ed Ethernet/IP. I socket supportano client, server, protocollo TCP (Transmission Control) e protocollo UDP (User Datagram). Le applicazioni tipiche comprendono le comunicazioni con stampanti, lettori di codici a barre e PC. Comportamento delle istruzioni del socket in modalità Modifica in modalità Run: · Se un'operazione di eliminazione viene eseguita su un'istruzione SOCKET_OPEN, SOCKET_ACCEPT, SOCKET_READ o SOCKET_WRITE durante la modalità Modifica in modalità Run, il Socket istanza viene eliminato. · Nella modalità Modifica in modalità Run, qualsiasi modifica a un ingresso SOCKET_READ durante il funzionamento nello stato OCCUPATO genera un errore e il pacchetto ricevuto viene ignorato. I parametri di ingresso SOCKET_READ sono: Length, Offset, Data Array Size, Data Array Variable. · SOCKET_READ è l'unica istruzione SOCKET che supporta operazioni di aggiunta o modifica durante la modalità Modifica in modalità Run. · Se vengono modificate le impostazioni IP Ethernet utilizzando Modifica in modalità Run, tutte le istanze del socket create vengono eliminate, come per SOCKET_DELETEALL. Elaborazione di istruzioni e aggiornamenti di uscite per le istruzioni del socket: · Asincrono: Le istruzioni corrispondenti in cui tutte le uscite vengono aggiornate in modo asincrono con la scansione del programma utente, ad esempio una scansione ladder. L'uscita asincrona non può essere utilizzata per il rilevamento dell'attivazione sul fronte. I parametri dell'uscita asincrona non sono bloccati e possono essere aggiornati dopo il completamento delle rispettive istruzioni del socket. · Sincrono: Le istruzioni corrispondenti in cui ogni uscita viene aggiornata in modo sincrono con le scansioni del programma utente. I parametri dell'uscita sincrona sono bloccati e non possono essere modificati dopo il completamento delle rispettive istruzioni del socket. · Ibrido: Le istruzioni corrispondenti in cui alcune uscite vengono aggiornate in modo sincrono con la scansione del programma utente. Le uscite rimanenti vengono aggiornate in modo asincrono con la scansione del programma utente. · Esecuzione immediata dell'istruzione: L'istruzione completa la funzione desiderata prima di passare all'istruzione successiva. · Esecuzione non immediata dell'istruzione: L'istruzione richiede più scansioni del programma per completare la funzione Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 603 Capitolo 23 Istruzioni socket desiderata. Le istruzioni catturano un'istantanea dei parametri di ingresso quando viene rilevata una transizione False > True. Utilizzare questa tabella per determinare l'utilizzo di istruzioni del socket. Istruzione Descrizione Client TCP Server UDP con UDP senza Elaborazione TCP apertura apertura istruzioni SOCKET_ACCEPT a pagina 604 Accetta una richiesta di connessione TCP da NO SÌ una destinazione remota e restituisce un'istanza di socket utilizzata per inviare e ricevere dati sulla connessione appena creata. NO NO SOCKET_CREATE a pagina 607 Crea un'istanza del Socket e restituisce un SÌ SÌ SÌ SÌ numero di istanza che utilizza le operazioni socket successive. SOCKET_DELETE a pagina 612 Elimina un'istanza di socket creata. Le SÌ SÌ SÌ SÌ connessioni TCP vengono chiuse prima dell'eliminazione. SOCKET_DELETEALL a pagina Elimina tutte le istanze socket create. SÌ SÌ SÌ SÌ 615 SOCKET_INFO a pagina 618 Restituisce le informazioni per il socket SÌ SÌ SÌ SÌ come codici di errore e lo stato di esecuzione. SOCKET_OPEN a pagina 623 Le connessioni TCP vengono aperte con SÌ NO SÌ NO l'indirizzo di destinazione specificato. Le connessioni UDP associano un numero di porta e un indirizzo IP di destinazione al socket specificato. SOCKET_READ a pagina 628 Legge i dati su un socket. Tenta di ricevere SÌ SÌ SÌ SÌ il numero di byte specificato e restituisce il numero dei byte ricevuti. SOCKET_WRITE a pagina 632 Invia dati su un socket. Tenta di inviare il SÌ SÌ SÌ SÌ numero di byte richiesto e restituisce il numero di byte inviati. Non immediato Immediato Non immediato Non immediato Immediato Non immediato Non immediato Non immediato Aggiornamento uscita dell'istruzione Ibrido Sincrono Sincrono Sincrono Sincrono Sincrono Ibrido Ibrido Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Diagrammi di temporizzazione dell'istruzione Socket a pagina 641 Diagrammi di transazione dell'istruzione Socket a pagina 649 Diagrammi di stato della macchina per TCP a pagina 651 Diagrammi dello stato della macchina per UDP a pagina 654 SOCKET_ACCEPT 604 Solo per connessioni Transmission Control Protocol (TCP). Accetta una richiesta di connessione TCP da una destinazione remota e restituisce un'istanza di socket utilizzata per inviare e ricevere dati sulla connessione appena creata. Dettagli operazione: Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket · Prima di eseguire Socket_Accept, eseguire SOCKET_CREATE e specificare il numero di porta locale per accettare la connessione. · L'uscita viene aggiornata in modo sincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Istanza Timeout Done Busy Errore Tipo di parametro Ingresso Ingresso Ingresso Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato, blocco istruzione non avviato. UDINT Identifica l'istanza del socket. Copia il Socket Handler restituito da un'istruzione SOCKET_CREATE . UDINT Timeout per le istanze del blocco istruzione SOCKET_ACCEPT. Il blocco funzione restituisce un errore se il valore di timeout è inferiore al valore minimo. Intervallo timeout: 1000-86400000 millisecondi Impostare il timeout su 0 per usare il valore predefinito 10.000 (10 secondi). BOOL Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. BOOL TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. BOOL Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 605 Capitolo 23 Istruzioni socket Parametro Stato Tipo di parametro Uscita AcceptInst Uscita AcceptAddr Uscita Tipo di dati SOCK_STATUS UDINT SOCKADDR_CFG Descrizione Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Contiene l'istanza Accept per questa istanza Socket. Utilizzare il numero di istanza Accept univoco con i successivi SOCKET_READ e SOCKET_WRITE per la connessione. L'output viene aggiornato in modo sincrono alla scansione del programma. Una struttura dei dati che contiene l'indirizzo Accept per il socket. Per maggiori informazioni fare riferimento al Tipo di dati SOCKADDR_CFG. Per specificare l'indirizzo IP 192.168.2.100 e Porta = 12000: · AcceptAddr.IPAddress[0]=192 · AcceptAddr.IPAddress[1]=168 · AcceptAddr.IPAddress[2]=2 · AcceptAddr.IPAddress[3]=100 · AcceptAddr.Port = 12000 L'output viene aggiornato in modo sincrono alla scansione del programma. Esempio di Programmazione a blocchi funzionali SOCKET_ACCEPT Esempio di Diagramma ladder SOCKET_ACCEPT 606 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Esempio di Testo strutturato SOCKET_ACCEPT Istruzioni socket Risultati Server TCP SOCKET_CREATE Vedere anche Istruzioni socket a pagina 603 Tipo di dati SOCK_STATUS a pagina 637 Bit di stato per l'istruzione del socket a pagina 641 Codici di errore del socket a pagina 637 Tipo di dati SOCKADDR_CFG a pagina 636 Crea un'istanza del socket e restituisce un numero di istanza che viene usato come ingresso nelle operazioni socket successive. Dettagli operazione: · Le istruzioni Socket supportano la comunicazione Full Duplex con i dispositivi remoti. · Le connessioni User Datagram Protocol (UDP) supportano un massimo di otto pacchetti di datagrammi UDP in coda. La coda contiene i pacchetti più recenti. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 607 Capitolo 23 Istruzioni socket · I controllori Micro820 e Micro850 versione 9 o successiva supportano fino a otto istanze Socket. Le istanze Socket supportano i socket UDP e TCP: · Usare tutte le otto istanze per la connessione del client Transmission Control Protocol (TCP). · Usare tutte le otto istanze per ascoltare le connessioni TCP in entrata, quindi accettare le otto connessioni da altri dispositivi. · Eseguire le operazioni client e server TCP. · Eseguire le operazioni TCP e UDP. · Per accettare le connessioni TCP in entrata sulla stessa porta, creare una nuova istanza Socket. · Connessione TCP persa: · Il programma applicativo dell'utente deve rilevare la perdita di connessioni TCP e gestire l'evento. A seconda dell'applicazione utente, prendere in considerazione l'opzione di un guasto al controllore. · Guasto al controllore. · Provare a ristabilire la connessione. · Per ristabilire le comunicazioni con un altro dispositivo: · Eliminare l'istanza Socket per la connessione persa. · Se la connessione è un client TCP, creare una nuova istanza Socket usando SOCKET_CREATE ed eseguire SOCKET_OPEN sul dispositivo di destinazione. · Se la connessione è un server TCP, creare una nuova istanza Socket usando SOCKET_CREATE ed eseguire SOCKET_ACCEPT per attendere un'altra connessione dal dispositivo remoto. · Messaggi applicativi per le connessioni TCP: · Una connessione TCP è un flusso di byte tra due applicazioni. Il protocollo applicativo determina i formati del messaggio. · I messaggi possono avere dimensioni fisse o variabili. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. 608 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Tipo SockAddr Tipo di parametro Ingresso Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL USINT SOCKADDR_CFG Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. Specificare il tipo di Socket: · Transmission Control Protocol (TCP). · User Datagram Protocol (UDP). Specificare la configurazione dell'indirizzo del socket. Il modulo EtherNet/IP per selezionare il numero di porta locale, impostare SockAddr su 0. Specificare un numero di porta locale in cui un'applicazione è in ascolto e riceve i dati, oppure: · Gli elementi array devono essere tutti zero · Per le operazioni client TCP, specificare 0 a meno che non si desideri utilizzare un numero di porta locale specifico. · Per la comunicazione del server TCP, specificare il numero di porta che dovrà accettare le richieste di connessione in entrata. · Per UDP, specificare un numero di porta locale che dovrà ricevere i datagrammi. Intervallo porte locali: da 1 a 65535. Se il numero di porta locale specificato è già utilizzato dal controllore Micro820 o Micro850, viene generato un errore. Il controllore usa i seguenti numeri di porta: Porte TCP: · EtherNet/IP: 44818 · ModbusTCP: 502 · Server DHCP: 67 · Client DHCP: 68 Porte UDP: · EtherNet/IP: 2222 · Server DHCP: 67 · Client DHCP: 68 Vedere Tipo di dati SOCKADDR_CFG. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 609 Capitolo 23 Istruzioni socket Parametro Tipo di parametro Timeout Ingresso Tipo di dati UDINT Done Busy Errore Stato Istanza Uscita Uscita Uscita Uscita Uscita BOOL BOOL BOOL SOCK_STATUS UDINT Descrizione Specificare il Timeout per inattività Socket. Se un'istanza Socket non riceve alcuna richiesta entro il timeout di inattività specificato, l'istanza Socket verrà eliminata. Se viene inviata una richiesta dopo l'eliminazione dell'istanza socket, viene restituito l'errore "istanza Socket non supportata". Il blocco istruzione restituisce un errore quando il valore di timeout è inferiore al valore minimo. Impostare il timeout in modo che sia maggiore dell'intervallo più lungo tra le operazioni del socket. Se il timeout di inattività è troppo breve, le istanze Socket potrebbero scadere. Intervallo timeout: 1000 - 86400000 millisecondi Impostare Timeout su 0 per usare il valore predefinito 300000 (5 minuti). Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. TRUE: l'operazione non è completata. FALSE: l'operazione è completata. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. Vedere tipo di dati SOCK_STATUS, bit di stato istruzione Socket e codici di errore Socket. Contiene Socket Handler. Usare il parametro Instance per le istruzioni Socket successive. Esempio di Programmazione a blocchi funzionali SOCKET_CREATE 610 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Esempio di Diagramma ladder SOCKET_CREATE Istruzioni socket Esempio di Testo strutturato SOCKET_CREATE Risultati Esempio di client TCP Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 611 Capitolo 23 Istruzioni socket Esempio di server TCP Esempio di UDP SOCKET_DELETE 612 Vedere anche Codici di errore del socket a pagina 637 Istruzioni socket a pagina 603 Tipo di dati SOCK_STATUS a pagina 637 Bit di stato per l'istruzione del socket a pagina 641 Tipo di dati SOCKADDR_CFG a pagina 636 Elimina un'istanza di socket creata. Per le connessioni Transmission Control Protocol (TCP), SOCKET_DELETE chiude anche (chiusura Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket passiva) la connessione prima di eliminare l'istanza. L'uscita viene aggiornata in modo sincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Istanza Done Busy Errore Stato Tipo di parametro Ingresso Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL UDINT BOOL BOOL BOOL SOCK_STATUS Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. Copia il Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT per eliminare il rispettivo socket. · Per i tipi di socket client TCP e UDP, copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE. · Per il tipo di socket server TCP, copiare il Socket Handler restituito da un'istruzione SOCKET_ACCEPT. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 613 Capitolo 23 Istruzioni socket Esempio di Programmazione a blocchi funzionali SOCKET_DELETE Esempio di Diagramma ladder SOCKET_DELETE Esempio di Testo strutturato SOCKET_DELETE 614 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 23 Istruzioni socket SOCKET_DELETEALL Vedere anche Istruzioni socket a pagina 603 Bit di stato per l'istruzione del socket a pagina 641 Tipo di dati SOCK_STATUS a pagina 637 Codici di errore del socket a pagina 637 Elimina tutte le istanze socket create. Dettagli operazione: · Se il cavo Ethernet viene disconnesso dal controllore o l'indirizzo IP del controllore viene modificato, è possibile eseguire SOCKET_DELETEALL per eliminare tutte le istanze del socket precedentemente create. · L'uscita viene aggiornata in modo sincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 615 Capitolo 23 Istruzioni socket Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Done Busy Errore Stato Tipo di parametro Ingresso Uscita Uscita Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL BOOL BOOL BOOL SOCK_STATUS Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Questo campo è impostato su TRUE quando viene rilevata una condizione di errore durante l'esecuzione del blocco funzione. Per maggiori informazioni fare riferimento ai codici di errore del Socket. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Esempio di Programmazione a blocchi funzionali SOCKET_DELETEALL 616 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Esempio di Diagramma ladder SOCKET_DELETEALL Esempio di Testo strutturato SOCKET_DELETEALL Risultati Vedere anche Istruzioni socket a pagina 603 Tipo di dati SOCK_STATUS a pagina 637 Bit di stato per l'istruzione del socket a pagina 641 Codici di errore del socket a pagina 637 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 617 Capitolo 23 Istruzioni socket SOCKET_INFO Restituisce informazioni per un'istanza socket come codici di errore e stato di esecuzione. Le uscite vengono aggiornate in modo asincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Istanza Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. UDINT Copia il Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT per eliminare il rispettivo socket. · Per i tipi di socket client TCP e UDP, copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE. · Per il tipo di socket server TCP, copiare il Socket Handler restituito da un'istruzione SOCKET_ACCEPT. Se Instance è 0, restituisce un riepilogo di tutte le istanze Socket. 618 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro ClrDiagCnt Tipo di parametro Ingresso Tipo di dati BOOL Done Uscita BOOL Busy Errore Uscita BOOL Uscita BOOL Stato Uscita SocketType Uscita SOCK_STATUS USINT StreamType Uscita USINT TxQueCnt Uscita USINT RxQueCnt Uscita USINT SocketState Uscita USINT LocalAddr Uscita RemoteAddr Uscita SOCKETADDR_CFG SOCKETADDR_CFG Descrizione Capitolo 23 Istruzioni socket TRUE: cancella le informazioni sul contatore di diagnostica Transmission Control Protocol (TCP) o User Datagram Protocol (UDP). FALSE: nessuna cancellazione delle informazioni del contatore TCP o UDP. Come TCP e UDP, l'indice del vettore OtherInfo da 1 a 6. Se l'Istanza è 0, cancellare l'indice del vettore OtherInfo da 7 a 14. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Tipo di istanza Socket: · 0 - Non utilizzato · 1 - TCP · 2 - UDP Se l'Istanza Socket_Info è 0, SocketType viene visualizzato come 0. Tipo di Socket Stream: · 0 - Nessuno · 1 - Server TCP · 2 - Client TCP Se l'Istanza Socket_Info è 0, StreamType viene visualizzato come 0. Numero di messaggi Tx attualmente in coda. Se l'Istanza Socket_Info è 0, TxQueCnt viene visualizzato come 0. Numero di messaggi Rx attualmente in coda. Se l'Istanza Socket_Info è 0, RxQueCnt viene visualizzato come 0. Informazioni sullo stato dell'istruzione Socket. Per maggiori informazioni fare riferimento a Stato macchina Socket. Se l'Istanza Socket_Info è 0, SocketState viene visualizzato come 0. Indirizzo locale per il socket. Per maggiori informazioni fare riferimento al Tipo di dati SOCKADDR_CFG. Se l'Istanza Socket_Info è 0, LocalAddr viene visualizzato come 0. Indirizzo remoto per il socket. Per maggiori informazioni fare riferimento al Tipo di dati SOCKADDR_CFG. RemoteAddr viene visualizzato come 0 nei casi seguenti: · L'istanza Socket_Info è 0 · Connessioni User Datagram Protocol (UDP) senza SOCKET_OPEN · UDP con SOCKET_OPEN e RxFilter disattivato. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 619 Capitolo 23 Istruzioni socket Parametro OtherInfo Tipo di parametro Tipo di dati UDINT[1..15] Descrizione L'Istanza socket è configurata come TCP, la descrizione dell'indice del vettore è: · 1 - Pacchetto inviato: Numero totale di pacchetti TCP inviati su un Socket. · 2 - Byte inviati: Numero totale di byte TCP inviati su un Socket. · 3 - Pacchetto ricevuto: Numero totale di pacchetti TCP ricevuti per un Socket. · 4 - Byte ricevuti: Numero totale di byte TCP ricevuti su un Socket. · 5 - Pacchetti ritrasmessi: Numero totale di ritrasmissioni del pacchetto TCP. · 6 - Errori Checksum: Numero totale di pacchetti TCP con errori Checksum su un Socket. · 7 - Stato TCP: Stato corrente di un Socket. · (Da 8 a 11): OtherInfo non è supportato per TCP, viene visualizzato come 0. · 12 ,13,14,15 - Visualizzato come 0. Istanza Socket configurata come UDP, la descrizione dell'indice Array è: · 1 - Pacchetto inviato: Numero totale di pacchetti UDP inviati su un Socket. · 2 - Byte inviati: Numero totale di byte UDP inviati su un Socket. · 3 - Pacchetto ricevuto: Numero totale di pacchetti UDP ricevuti su un Socket. · 4 - Byte ricevuti: Numero totale di byte UDP ricevuti su un Socket. · 5 - Pacchetti scartati: Numero totale di pacchetti UDP ricevuti e scartati per un Socket perché è stato superato il limite di dimensione massima della coda pari a 8. · 6 - Errori Checksum: Numero totale di pacchetti UDP con errori checksum su Socket. · Da 7 a 15 - Visualizzato come 0. Istanza Socket configurata come 0, la descrizione dell'indice Array è: · 1 - Numero istanze Socket disponibili. Numero massimo di socket supportati. · 2 - Numero istanze Socket usate. Numero di socket creati correttamente. · 3 - Numero di istanze Socket create come TCP. · 4 - Numero di istanze Socket create come client TCP. · 5 - Numero di istanze Socket create come server TCP. · 6 - Numero di istanze Socket create come UDP. · 7 - Numero di SOCKET_READ completate correttamente quando l'istanza Socket è configurata come TCP. · 8 - numero di SOCKET_WRITE completate correttamente quando l'istanza Socket è configurata come TCP. · 9 - numero di SOCKET_READ non riuscite quando l'istanza Socket è configurata come TCP. · 10 - numero di SOCKET_WRITE non riuscite quando l'istanza Socket è configurata come TCP. · 11 - numero di SOCKET_READ completate correttamente quando l'istanza Socket è configurata come UDP. · 12 - numero di SOCKET_WRITE completate correttamente quando l'istanza Socket è configurata come UDP. · 13 - numero di SOCKET_READ non riuscite quando l'istanza Socket è configurata come UDP. · 14 - Numero di SOCKET_WRITE non riuscite quando l'istanza Socket è configurata come UDP. · 15 - Visualizzato come 0. 620 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Esempio di Programmazione a blocchi funzionali SOCKET_INFO Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 621 Capitolo 23 Istruzioni socket Esempio di Diagramma ladder SOCKET_INFO 622 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di Testo strutturato SOCKET_INFO Capitolo 23 Istruzioni socket Risultati SOCKET_OPEN Vedere anche Istruzioni socket a pagina 603 Bit di stato per l'istruzione del socket a pagina 641 Codici di errore del socket a pagina 637 Tipo di dati SOCKADDR_CFG a pagina 636 Tipo di dati SOCK_STATUS a pagina 637 Apre la connessione per l'indirizzo di destinazione specificato per le connessioni Transmission Control Protocol (TCP). Per le connessioni User Datagram Protocol (UDP), associa un indirizzo IP di destinazione e il numero di porta al socket specificato. Dettagli operazioni: Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 623 Capitolo 23 Istruzioni socket · Per le connessioni User Datagram Protocol (UDP) che usano SOCKET_OPEN, l'indirizzo IP e il numero di porta non sono obbligatori ogni volta che i dati vengono inviati. · Per le connessioni UDP che non usano SOCKET_OPEN, è necessario specificare l'indirizzo di destinazione ogni volta che SOCKET_WRITE viene usato per inviare i dati. · Se si utilizza SOCKET_READ, oltre a ricevere i dati, viene restituito l'indirizzo del mittente. L'indirizzo dei mittenti può essere usato per inviare una risposta usando SOCKET_WRITE. · Potrebbe essere restituita un'operazione SOCKET_OPEN prima del timeout senza creare una connessione Transmission Control Protocol (TCP). Se si verifica questa condizione, significa che il dispositivo di destinazione è in esecuzione ma non è in ascolto delle connessioni sul numero di porta specificato, SOCKET_OPEN restituisce un errore prima del timeout. · Le uscite vengono aggiornate in modo asincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Istanza Tipo di parametro Ingresso Ingresso Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. UDINT Copiare dal Socket Handler restituito da un blocco funzione SOCKET_CREATE. 624 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Timeout Tipo di parametro Ingresso Tipo di dati UDINT Descrizione Capitolo 23 Istruzioni socket Timeout per il blocco funzione SOCKET_OPEN. Il blocco funzione restituisce un errore se il valore di timeout è inferiore al valore minimo. Intervallo timeout: 1000 - 1800000 millisecondi Impostare Timeout su 0 per utilizzare il valore predefinito 10.000 (10 secondi). DestAddr Ingresso SOCKADDR_CFG L'indirizzo della connessione di destinazione. È necessario indicare una connessione tra l'indirizzo IP e il numero di porta dell'host remoto. I seguenti indirizzi IP non sono supportati per DestAddr: · Indirizzo IP automatico · Indirizzo Loopback · 0.0.0.0 · Indirizzo di trasmissione (supportato solo per TCP), indirizzi di eccezione: · Indirizzo multicast Class D (224.x.x.x) · Indirizzo di collegamento locale (169.254.x.x) Esempio per indirizzo IP 192.168.2.100 e Porta 12000: · DestAddr.IPAddress[0]=192 · DestAddr.IPAddress[1]=168 · DestAddr.IPAddress[2]=2 · DestAddr.IPAddress[3]=100 · DestAddr.Port = 12000 EnUDPRxFilter Ingresso BOOL Done Busy Errore Stato Uscita BOOL Uscita BOOL Uscita BOOL Uscita SOCK_STATUS Per il socket UDP, se vengono usati SOCKET_OPEN e Abilita EnUDPRxFilter, non è necessario ogni volta un filtro del pacchetto per l'indirizzo IP specifico e il numero di porta per leggere i dati. · Viene creato un socket UDP con apertura. DestAddr come IP 192.168.1.157/Porta 161. Abilita EnUDPRxFilter, esegue Socket_Read. · Quando il controllore riceve dati da DestAddr (192.168.1.157 / 161), Socket_Read completa l'operazione. Se il controllore riceve dati da un altro IP o un'altra Porta, socket_Read ignora tale pacchetto e attende il pacchetto DestAddr. EnUDPRxFilter disattivato: · Eseguire SOCKET_READ. Il controllore riceve dati sulla porta UDP di configurazione, SOCKET_READ completa l'operazione. · L'applicazione controlla se il pacchetto in entrata arriva dal dispositivo previsto o no. · L'applicazione gestisce i filtri in base all'UDPAddr del parametro di output SOCKET_READ. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 625 Capitolo 23 Istruzioni socket Esempio di Programmazione a blocchi funzionali SOCKET_OPEN Esempio di Diagramma ladder SOCKET_OPEN Esempio di Testo strutturato SOCKET_OPEN 626 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Esempio di TCP Capitolo 23 Istruzioni socket Esempio di UDP Vedere anche Istruzioni socket a pagina 603 Tipo di dati SOCKADDR_CFG a pagina 636 Tipo di dati SOCK_STATUS a pagina 637 Bit di stato per l'istruzione del socket a pagina 641 Codici di errore del socket a pagina 637 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 627 Capitolo 23 Istruzioni socket SOCKET_READ Legge i dati su un socket e restituisce il numero di byte specificato. Per Transmission Control Protocol (TCP), restituisce fino al numero di byte richiesti quando si ricevono dati. Per User Datagram Protocol (UDP), verrà completato quando un datagram è disponibile. Dettagli operazione: Il seguente comportamento SOCKET_READ può influenzare le comunicazioni esistenti inclusa la comunicazione non-socket. · Se l'operazione SOCKET_READ non viene eseguita in sincronia con il dispositivo remoto, il controllore continua a fare in modo che il dispositivo remoto riceva pacchetti fino a quando non si verifica una delle seguenti condizioni: · Viene eseguita l'istruzione SOCKET_READ. · Il timeout del Socket scade. · Viene ricevuta l'istruzione RST da un dispositivo remoto. · Viene eseguita l'istruzione SOCKET_DELETE o SOCKET_DELETEALL. · L'utente esegue una Modifica in modalità Run che elimina tutte le istanze Socket create. · Il controllore passa dalla modalità Run alla modalità di programmazione e tutte le istanze Socket create vengono eliminate. · Il controllore passa dalla modalità Run alla modalità di programmazione e le informazioni sul contatore di diagnostica del socket e sul contatore di ogni Socket vengono cancellate. · Se il valore del parametro Length o Offset viene modificato mentre l'operazione SOCKET_READ è in corso (BUSY = True), si verifica un errore e il pacchetto ricevuto viene ignorato. · L'istruzione SOCKET_READ può restituire meno byte di quelli richiesti. RxLength contiene il numero di byte di dati ricevuti. Scrivere programmi per controllare RxLength e generare richieste di lettura aggiuntive per ricevere un intero messaggio dell'applicazione. · Nella modalità Modifica in modalità Run, la modifica a un ingresso SOCKET_READ durante il funzionamento nello stato OCCUPATO genera un errore e il pacchetto ricevuto viene ignorato. · Le uscite vengono aggiornate in modo asincrono dalla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. 628 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Parametro Execute Istanza Timeout Lunghezza Offset Dati Done Busy Errore Stato RxLength Tipo di parametro Ingresso Ingresso Ingresso Ingresso Ingresso Uscita Uscita Uscita Uscita Uscita Uscita Tipo di dati Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Descrizione BOOL UDINT UDINT UINT UNIT USINT[1..1] BOOL BOOL BOOL SOCK_STATUS UNIT Abilitazione istruzioni. TRUE: quando viene rilevato fronte di salita, avvia l'istruzione, ammesso che l'ultima operazione sia stata completata. FALSE: non avvia l'istruzione. Copiare dal Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT. · Per i tipi di socket client TCP e UDP, copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE. · Per il tipo di socket server TCP, copiare il Socket Handler restituito da un'istruzione SOCKET_ACCEPT. Timeout per SOCKET_READ. Il blocco istruzione restituisce un errore se il valore di timeout è inferiore al valore minimo. Intervallo timeout: 1000-86400000 millisecondi Impostare il timeout su 0 per usare il valore predefinito 10.000 (10 secondi). Definisce il numero di byte da leggere. Controllare RxLength per il numero effettivo di byte letti. SOCKET_READ può restituire meno byte di quelli richiesti. Supporta fino a 256 byte. Offset nel vettore di Dati. Avviare la lettura dei dati letti da questa posizione. Un vettore usato per memorizzare i dati letti da SOCKET_READ. · La dimensione del vettore di dati deve essere >= (Offset + Length). · Il vettore di dati può essere maggiore di Length del socket letto. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Contiene il numero di byte di dati ricevuti. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 629 Capitolo 23 Parametro UDPAddr Istruzioni socket Tipo di parametro Uscita Tipo di dati SOCKADDR_CFG Descrizione L'indirizzo del dispositivo che invia i dati User Datagram Protocol (UDP). L'esempio definisce un UDPAddr di 192.168.2.100 e Porta 12000: UDPAddr.IPAddress[0]=192 UDPAddr.IPAddress[1]=168 UDPAddr.IPAddress[2]=2 UDPAddr.IPAddress[3]=100 UDPAddr.Port = 12000 Per Transmission Control Protocol (TCP), questa struttura non viene usata e conterrà tutti zero. La connessione TCP trasmette le informazioni di indirizzo remoto. Esempio di Programmazione a blocchi funzionali SOCKET_READ Esempio di Diagramma ladder SOCKET_READ 630 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Esempio di Testo strutturato SOCKET_READ Istruzioni socket Risultati Esempio di TCP: Esempio di UDP: Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 631 Capitolo 23 Istruzioni socket Vedere anche Codici di errore del socket a pagina 637 Istruzioni socket a pagina 603 Bit di stato per l'istruzione del socket a pagina 641 Tipo di dati SOCK_STATUS a pagina 637 Tipo di dati SOCKADDR_CFG a pagina 636 SOCKET_WRITE Invia dati su un socket. Dettagli operazione: · SOCKET_WRITE prova a inviare il numero richiesto di byte di dati specificato nel parametro Length. Quando l'operazione di invio viene completata, SOCKET_WRITE restituisce il numero di byte di dati scritti al parametro TxLength. · L'output viene aggiornato in modo asincrono rispetto alla scansione del programma. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione si applica ai controllori Micro820, Micro850 e Micro870. Per Micro800 Simulator, questa istruzione può essere aggiunta a un programma ma si tratta solo di un segnaposto per impedire che l'istruzione venga eliminata durante la modifica del controllore. Se l'istruzione è applicata al controllore simulato (2080-LC50-48QWBSIM) le uscite vengono sempre ripristinate. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 632 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro Execute Tipo di parametro Ingresso Tipo di dati BOOL Istanza Ingresso UDINT Timeout Ingresso UDINT UDPAddr Ingresso SOCKADDR_CFG Dati Ingresso USINT[1..1] Lunghezza Ingresso UINT Offset Ingresso UNIT Done Uscita BOOL Busy Errore Uscita BOOL Uscita BOOL Stato TxLength Uscita Uscita SOCK_STATUS UNIT Descrizione Capitolo 23 Istruzioni socket Abilitazione del blocco istruzione. TRUE: quando viene rilevato fronte di salita, avvia il blocco istruzione ammesso che l'ultima operazione sia stata completata. FALSE: nessun fronte di salita rilevato. Copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE o SOCKET_ACCEPT. · Per i tipi di socket client TCP e UDP, copiare il Socket Handler restituito da un'istruzione SOCKET_CREATE. · Per il tipo di socket server TCP, copiare dal Socket Handler restituito da un'istruzione SOCKET_ACCEPT. Timeout per istanze SOCKET_WRITE. L'istruzione restituisce un errore se il valore di timeout è inferiore al valore minimo. Intervallo timeout: 1000-1800000 millisecondi Impostare il timeout su 0 per usare il valore predefinito 10000 (10 secondi). L'indirizzo di destinazione UDP su cui vengono scritti i dati se non sono state eseguite istruzioni SOCKET_OPEN dopo la creazione del socket. Per TCP, o quando l'istruzione SOCKET_OPEN è stata eseguita per UDP, questa struttura non viene usata e deve contenere tutti zero. La connessione TCP e l'istruzione SOCKET_OPEN per UDP comunica tutte le informazioni sugli indirizzi remoti. Esempio per un UDPAddr di 192.168.2.100 e Porta 12000: UDPAddr.IPAddress[0]=192 UDPAddr.IPAddress[1]=168 UDPAddr.IPAddress[2]=2 UDPAddr.IPAddress[3]=100 UDPAddr.Port = 12000 Usare il tipo di dati SOCKADDR_CFG per definire UDPAddr. Un vettore usato per memorizzare i dati scritti nella relativa istanza socket usando l'istruzione SOCKET_WRITE. · La dimensione del vettore di dati deve essere >= (Offset + Length). · Il vettore di dati può essere maggiore della lunghezza di SOCKET_WRITE. Il numero di byte di dati da scrivere. Il valore massimo è 256 byte. Offset nel vettore di Dati. I dati scritti da SOCKET_WRITE iniziano da questa posizione. Indica se l'operazione è stata completata. TRUE: l'operazione è stata completata correttamente. FALSE: l'operazione è in corso oppure è stato generato un errore. L'output viene aggiornato in modo sincrono alla scansione del programma. TRUE: l'operazione non viene terminata. FALSE: l'operazione è completata. L'output viene aggiornato in modo sincrono alla scansione del programma. Indica che si è verificato un errore. TRUE - È stato rilevato un errore. FALSE - Nessun errore. L'output viene aggiornato in modo sincrono alla scansione del programma. Stato definito utilizzando il tipo di dati SOCK_STATUS che contiene informazioni su ErrorID, SubErrorID e StatusBits. L'output viene aggiornato in modo sincrono alla scansione del programma. Il numero di byte dei dati scritti. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 633 Capitolo 23 Istruzioni socket Esempio di Programmazione a blocchi funzionali SOCKET_WRITE Esempio di Diagramma ladder SOCKET_WRITE Esempio di Testo strutturato SOCKET_WRITE 634 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Esempio di TCP: Capitolo 23 Istruzioni socket Esempio di UDP senza apertura: Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 635 Capitolo 23 Istruzioni socket Esempio di UDP con apertura: Vedere anche Istruzioni socket a pagina 603 Bit di stato per l'istruzione del socket a pagina 641 Tipo di dati SOCKADDR_CFG a pagina 636 Tipo di dati SOCK_STATUS a pagina 637 Codici di errore del socket a pagina 637 Tipo di dati SOCKADDR_CFG La tabella seguente descrive il tipo di dati SOCKADDR_CFG. Parametri Tipo di dati Descrizione Porta UINT Indirizzo IP[4] USINT Specificare un numero di porta locale in cui un'applicazione è in ascolto e riceve i dati. Specificare un indirizzo IP. Esempio di indirizzo IP 192.168.2.100: · IPAddress[0]=192 · IPAddress[1]=168 · IPAddress[2]=2 · IPAddress[3]=100 Vedere anche Codici di errore del socket a pagina 637 Tipo di dati SOCK_STATUS a pagina 637 636 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Tipo di dati SOCK_STATUS La tabella seguente descrive il tipo di dati SOCK_STATUS. Parametri Tipo di dati Descrizione ErrorID USINT Valore codice di errore. SubErrorID UINT Valore codice di errore secondario. StatusBits UINT Bit dello stato di esecuzione per le istruzioni del socket. Vedere anche Codici di errore del socket a pagina 637 Tipo di dati SOCKADDR_CFG a pagina 636 Bit di stato per l'istruzione del socket a pagina 641 Codici di errore del socket La tabella seguente descrive i codici di errore dello stato per le istruzioni del socket: Codice ErrorID 0 1 2 Codice SubErrorID 3 4 1 Descrizione errore L'istruzione del socket ha completato correttamente l'operazione. L'istruzione del socket è in sospeso. L'istanza del socket non è disponibile. L'operazione SOCKET_DELETEALL è in corso. Parametro non valido, canale non valido. Azione correttiva La conferma dell'istanza del socket non è stata eliminata o è stato superato il valore di timeout. Per terminare, attendere il completamento dell'operazione di SOCKET_DELETEALL in attesa. Nessuna azione. Riservato per uso futuro. 4 2 Parametro non valido, indirizzo IP del socket non valido. · L'errore si verifica quando SOCKET_CREATE contiene un SockAddr con valori diversi da zero. · SOCKET_OPEN o SOCKET_WRITE vengono eseguiti con un indirizzo IP di destinazione non valido. Gli indirizzi IP di destinazione non validi sono: · Indirizzo IP automatico · 0.0.0.0 · Indirizzo loopback (127.x.x.x) · Indirizzo Multicast Class D (224.x.x.x) · Indirizzo di collegamento locale (169.254.x.x) · Indirizzo di trasmissione (applicabile solo per l'istanza del socket TCP) Sostituire con un indirizzo IP valido. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 637 Capitolo 23 Codice ErrorID 4 4 4 4 4 4 5 6 Istruzioni socket Codice SubErrorID 3 4 5 6 7 Descrizione errore Azione correttiva Parametro non valido, indirizzo della porta del socket non valido. L'errore si verifica quando le seguenti porte vengono specificate in SOCKET_CREATE, SOCKET_OPEN o SOCKET_WRITE: · Porte TCP · 44818 - Ethernet/IP · 502 -ModbusTCP · 67 - Server DHCP · 68 - Client DHCP · 0 - Porta non valida · Porte UDP · 2222 Ethernet/IP · 67 Server DHCP · 68 Client DHCP · 0 Porta non valida Parametro non valido, tipo di socket non valido. I tipi di socket validi sono: · TCP - 1 · UDP - 2 Parametro non valido, valore di timeout del socket non valido. I valori di timeout validi sono: · SOCKET_CREATE, SOCKET_ACCEPT e SOCKET_READ: · 0 (predefinito) o qualsiasi valore tra 1000 e 86400000 ms. · SOCKET_OPEN e SOCKET_WRITE: · 0 (predefinito) o qualsiasi valore tra 1000 e 86400000 ms. Parametro non valido, istanza del socket non valida. · Tipo di socket del server TCP: · Utilizzare l'istanza del socket restituita in SOCKET_ACCEPT per SOCKET_WRITE, SOCKET_READ, SOCKET_DELETE e SOCKET_INFO. · Socket UDP e tipi di socket del client TCP: · Utilizzare l'istanza del socket restituita in SOCKET_CREATE per SOCKET_OPEN, SOCKET_WRITE, SOCKET_READ, SOCKET_DELETE e SOCKET_INFO. Parametro non valido, lunghezza dell'array non valida. Modificare l'indirizzo della porta. Modificare il tipo di socket. Modificare il valore di timeout con un valore valido. Utilizzare il numero dell'istanza restituita nelle istruzioni SOCKET_CREATE e SOCKET_ACCEPT dopo il completamento dell'esecuzione. Aumentare la dimensione dell'array utilizzato per contenere i dati di lettura e scrittura del socket. 8 Parametro non valido, dimensione dell'array non valida. Utilizzare l'array unidimensionale per contenere i dati di lettura e scrittura del socket. Il socket richiede l'annullamento dell'operazione. Si verifica un errore quando: · Il collegamento Ethernet è disattivato o il cavo Ethernet è disconnesso Riavviare l'operazione del socket in base al tipo di socket. Consultare lo stato della macchina corrispondente per riavviare l'operazione del socket. · L'operazione SOCKET_DELETE viene eseguita quando l'operazione SOCKET_OPEN, SOCKET_ACCEPT, SOCKET_READ o SOCKET_WRITE è in corso. · L'operazione Modifica in modalità Run viene eseguita quando l'operazione SOCKET_OPEN, SOCKET_ACCEPT, SOCKET_READ o SOCKET_WRITE è in corso. · La collisione dell'indirizzo IP rilevata quando l'operazione SOCKET_OPEN, SOCKET_ACCEPT, SOCKET_READ o SOCKET_WRITE è in corso. 1 Sequenza del socket non valida, operazione apertura socket in corso o Utilizzare l'esecuzione unidirezionale SOCKET_OPEN per connesso. l'istanza del socket corrispondente. Non eseguire l'operazione Si verifica un errore quando: SOCKET_ACCEPT per la stessa istanza del socket. · SOCKET_OPEN è in corso (stato BUSY) e l'utente esegue un'altra istanza SOCKET_OPEN con la stessa istanza del socket. · SOCKET_OPEN è in corso (stato BUSY) e l'utente esegue SOCKET_ACCEPT con la stessa istanza del socket. 638 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codice ErrorID 6 Codice SubErrorID 2 6 3 6 4 6 5 6 6 6 7 7 8 9 1 9 2 9 3 9 4 9 5 10 1 10 2 10 3 10 4 10 5 10 6 10 7 11 1 Descrizione errore Capitolo 23 Azione correttiva Istruzioni socket Sequenza del socket non valida, operazione accettazione socket in corso o connesso. Si verifica un errore quando: · SOCKET_ACCEPT è in corso (stato BUSY) e l'utente esegue un'altra istanza SOCKET_ACCEPT con la stessa istanza del socket. · SOCKET_ACCEPT è in corso (stato BUSY) e l'utente esegue SOCKET_OPEN con la stessa istanza del socket. Sequenza del socket non valida, socket configurato come client TCP. Sequenza del socket non valida, socket configurato come server TCP. Sequenza del socket non valida, il socket è connesso. Utilizzare l'esecuzione unidirezionale SOCKET_ACCEPT per l'istanza del socket corrispondente. Non eseguire l'operazione SOCKET_OPEN per la stessa istanza del socket. Verificare che il socket non sia ancora connesso con un dispositivo remoto prima di eseguire nuovamente SOCKET_OPEN o SOCKET_ACCEPT. Sequenza del socket non valida, socket configurato come UDP. Sequenza del socket non valida, il socket non è connesso. Timeout dell'istanza del socket. Il modulo del socket non viene inizializzato. Errore irreversibile dell'istruzione del socket, istanza del socket mancante. Errore irreversibile dell'istruzione del socket, istanza del socket non valida. Errore irreversibile dell'istruzione del socket, istanza del socket di blocco non valida. Errore irreversibile dell'istruzione del socket, tipo di socket non valido. Errore irreversibile dell'istruzione del socket, gestore annullamento mancante. Errore di elaborazione del socket in background, indirizzo in uso. Verificare che le istanze del socket UDP non vengano utilizzate con SOCKET_ACCEPT. Confermare che il socket sia connesso alla destinazione. Di conseguenza, configurare i valori di timeout per SOCKET_ACCEPT, SOCKET_OPEN, SOCKET_READ e SOCKET_WRITE. Verificare che il collegamento Ethernet sia abilitato o che il cavo Ethernet del controllore sia connesso alla rete o risolvere il conflitto dell'indirizzo IP del controllore. Errore di elaborazione del socket in background, UDP ha ricevuto un pacchetto che supera la lunghezza del socket di lettura. Errore di elaborazione del socket in background, TCP ha ricevuto un pacchetto che supera la lunghezza del socket di lettura. Errore di elaborazione del socket in background, RST ricevuto o Disconnessione dal dispositivo remoto. Errore di elaborazione del socket in background, pacchetto UDP ricevuto da un dispositivo diverso, pacchetto scartato. Riservato per uso futuro. Errore di elaborazione del socket in background, la coda è piena. Si verifica un errore quando: · SOCKET_READ o SOCKET_WRITE eseguono quattro istruzioni per la stessa istanza del socket nella stessa scansione. · Eseguire un SOCKET_READ quando le quattro istruzioni SOCKET_READ sono nello stato BUSY per stessa istanza del socket. Errore di elaborazione del socket in background, modifica al parametro SOCKET_READ (Length, Offset, Data Array Size e Data Array Variable). Errore irreversibile di elaborazione del socket in background, puntatore dati mancanti. Verificare che la lunghezza SOCKET_READ sia maggiore o uguale alla dimensione del pacchetto ricevuto. È consigliata la dimensione di lettura massima. La dimensione massima per SOCKET_READ è 256. Verificare che la lunghezza SOCKET_READ sia maggiore o uguale alla dimensione del pacchetto ricevuto. Dato che il client potrebbe inviare dati fino alla dimensione massima di 256, 256 è il valore consigliato. Riavviare il server o il client TCP del controllore come mostrato nel diagramma dello stato. Verificare il dispositivo di destinazione che ha inviato l'RST e assicurarsi che la destinazione venga riavviata con lo stato corretto. Attendere la disponibilità della coda per SOCKET_READ e SOCKET_WRITE per le rispettive istanze del socket. Quando lo stato SOCKET_READ è BUSY, non modificare i parametri di ingresso. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 639 Capitolo 23 Codice ErrorID 11 11 11 11 11 11 11 11 11 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 Istruzioni socket Codice SubErrorID 2 3 4 5 Descrizione errore Azione correttiva Errore irreversibile di elaborazione del socket in background, puntatore sessioni mancanti. Errore irreversibile di elaborazione del socket in background, puntatore socket TCP o UDP non valido. Errore irreversibile di elaborazione del socket in background, tipo di istanza del socket non valido. Errore irreversibile di elaborazione del socket in background, istanza del socket mancante. 6 Errore irreversibile di elaborazione del socket in background, istanza del socket non valida. 7 Errore irreversibile di elaborazione del socket in background, stato del socket non valido. 8 Errore irreversibile di elaborazione del socket in background, tipo di socket non valido. 9 Errore irreversibile di elaborazione del socket in background, errore di eliminazione del TCP. 10 Errore irreversibile di elaborazione del socket in background, errore di eliminazione dell'UDP. 1 Nessun pacchetto disponibile per il messaggio di disconnessione. 2 Spazio insufficiente per anteporre l'intestazione TCP. 3 Puntatore per l'aggiunta del pacchetto non valido. 7 Puntatore socket non valido. 10 Opzione tipo di servizio, frammento o durata non valida. 17 Chiamante non valido per questo servizio. 18 Pacchetto non valido. 20 Questo componente non è stato attivato. 21 Questo componente è già stato attivato. 22 Ascolto non abilitato per la porta specificata. 26 La sospensione richiesta è stata annullata. 33 Indirizzo IP del server non valido. 34 Questo socket è associato a un'altra porta. 35 La porta è associata a un socket diverso. 36 Il socket non è associato. 38 Il socket non è stato associato durante l'attesa sospesa di un pacchetto di ricezione. 39 Il socket non è stato creato. 51 Nessuna ulteriore struttura di richiesta di ascolto disponibile. 52 Esiste già una richiesta di attesa attiva per questa porta. 53 Il socket non ha uno stato chiuso. 54 Il socket del server fornito non è in stato di ascolto. 55 Nessun tempo di attesa specificato, il tentativo di connessione è in corso. 56 Connessione non riuscita. 57 La richiesta supera la dimensione in byte della finestra annunciata del destinatario. 64 Un altro thread è stato sospeso. È consentito un solo thread. 65 La disconnessione non è stata completata nell'intervallo di timeout. 66 Il socket è associato. 69 Nessuna porta disponibile 70 Porta non valida. 71 Esiste già un puntatore del socket valido per questa porta o per la porta specificata non è presente una richiesta di ascolto attiva. 640 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Codice ErrorID 128 Codice SubErrorID 72 128 73 Descrizione errore Capitolo 23 Azione correttiva Come per NX_SUCCESS, con l'unica differenza che durante la chiamata è stata elaborata una richiesta di connessione in coda. Errore per superamento della coda di trasmissione del TCP. Istruzioni socket Vedere anche Bit di stato per l'istruzione del socket Istruzioni socket a pagina 603 Tipo di dati SOCK_STATUS a pagina 637 Bit di stato per l'istruzione del socket a pagina 641 La tabella seguente descrive l'esecuzione dei Bit dello stato per le istruzioni del socket. Numero di bit Nome Descrizione 0 EN - Abilita bit Il bit EN viene impostato quando l'istruzione è abilitata a causa di una transizione da False a True, ma non è ancora stata completata o ha generato errori. 1 EW - Abilita bit nella Il bit EW viene impostato quando il controllore rileva che una richiesta di istruzioni del coda Attesa socket è stata inserita in coda. Il controllore esegue il reset del bit EW quando viene impostato il bit ST. 2 ST - Avvia bit Il bit ST viene impostato durante l'esecuzione dell'istruzione in coda. Quando viene impostato il bit DN o ER, viene eseguito il reset del bit ST. 3 ER - Errore bit Indica che si è verificato un errore durante l'esecuzione dell'istruzione. Viene eseguito il reset del bit ER al successivo passaggio in cui si verifica la condizione di transizione da False a True. 4 DN - Bit completato Il bit DN viene impostato quando l'istruzione del socket viene completata correttamente. Viene eseguito il reset del bit DN al successivo passaggio in cui si verifica la condizione di transizione da False a True. Vedere anche Codici di errore del socket a pagina 637 Tipo di dati SOCKADDR_CFG a pagina 636 Diagrammi di temporizzazione dell'istruzione Socket Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 641 Capitolo 23 Istruzioni socket Esecuzione corretta delle istruzioni del socket quando il processo è immediato Condizione A: La condizione ramo è TRUE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 1 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket completano l'esecuzione correttamente. · L'uscita per il bit DN e DONE viene impostata. 2, 3, 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando il bit EN viene cancellato. 6,7 Nessuna modifica nella condizione ramo. 642 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Condizione B: La condizione ramo è FALSE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 8 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Le istruzioni del socket completano l'esecuzione correttamente. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · L'uscita per il bit DN e DONE viene impostata. 9 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 10,11 Nessuna modifica nella condizione ramo. Esecuzione corretta delle istruzioni del socket quando il processo non è immediato Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 643 Capitolo 23 Istruzioni socket Condizione A: La condizione ramo è TRUE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 1 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket eseguono l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 2 Le istruzioni del socket avviano l'esecuzione quando: · Il bit EW è cancellato. · Il bit ST viene impostato. 3 Le istruzioni del socket completano l'esecuzione correttamente quando: · L'uscita per il bit ST e BUSY viene cancellata. · L'uscita per il bit DN e DONE viene impostata. 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 6,7 Nessuna modifica nella condizione ramo. Condizione B: La condizione ramo diventa FALSE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 8 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket inviano l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 9 Le istruzioni del socket avviano l'esecuzione quando: · Il bit EW è cancellato. · Il bit ST viene impostato. · La condizione ramo diventa FALSE. 10 Le istruzioni del socket completano l'esecuzione correttamente quando: · L'uscita per il bit ST e BUSY viene cancellata. · L'uscita per il bit DN e DONE viene impostata. · La condizione ramo è FALSE. · Il bit EN è cancellato. 644 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Errore delle istruzioni del socket quando EN è TRUE ed EW e ST sono FALSE Condizione A: La condizione ramo è TRUE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 1 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket consentono di completare l'esecuzione con errore. · L'uscita per il bit ER e l'errore viene impostata. 2,3 Nessuna modifica nella condizione ramo. 4 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 5,6 Nessuna modifica nella condizione ramo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 645 Capitolo 23 Istruzioni socket Condizione B: La condizione ramo diventa FALSE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 7 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket consentono di completare l'esecuzione con errore. · L'uscita per il bit ER e l'errore viene impostata. 8 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 9 Nessuna modifica nella condizione ramo. Errore delle istruzioni del socket quando EW è TRUE e il processo dell'istruzione non è immediato 646 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Condizione A: La condizione ramo è TRUE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 1 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket inviano l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 2 Le istruzioni del socket completano l'esecuzione con errore quando: · L'uscita per il bit EW e BUSY viene cancellata. · L'uscita per il bit ER e l'errore viene impostata. 3,4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 6,7 Nessuna modifica nella condizione ramo. Condizione B: La condizione ramo diventa FALSE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 8 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket inviano l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 9 Le istruzioni del socket completano l'esecuzione con errore quando: · L'uscita per il bit EW e BUSY viene cancellata. · L'uscita per il bit ER e l'errore viene impostata. · La condizione ramo diventa FALSE. · Il bit EN è cancellato. 10,11 Nessuna modifica nella condizione ramo. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 647 Capitolo 23 Istruzioni socket Errore delle istruzioni del socket quando ST è TRUE e il processo dell'istruzione non è immediato Condizione A: La condizione ramo è TRUE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 1 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket inviano l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 2 Le istruzioni del socket avviano l'esecuzione quando: · Il bit EW è cancellato. · Il bit ST viene impostato. 3 Le istruzioni del socket completano l'esecuzione con errore quando: · L'uscita per il bit ST e l'uscita BUSY viene cancellata. · L'uscita per il bit ER e l'errore viene impostata. 4 Nessuna modifica nella condizione ramo. 5 La condizione ramo diventa FALSE quando: · Il bit EN è cancellato. 6,7 Nessuna modifica nella condizione ramo. 648 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket Condizione B: La condizione ramo diventa FALSE durante l'esecuzione delle istruzioni Condizione ramo Descrizione 8 La condizione ramo diventa TRUE quando: · L'esecuzione delle istruzioni del socket è abilitata. · Viene impostato il bit EN e tutti gli altri bit vengono cancellati. · Le istruzioni del socket inviano l'elaborazione in background. · L'uscita per il bit EW e BUSY viene impostata. · Parametro ingresso delle istruzioni del socket bloccato per l'elaborazione in background. 9 Le istruzioni del socket avviano l'esecuzione quando: · Il bit EW viene cancellato e il bit ST impostato. 10 Le istruzioni del socket completano l'esecuzione con errore quando: · L'uscita per il bit ST e BUSY viene cancellata. · L'uscita per il bit ER e l'errore viene impostata. · La condizione ramo diventa FALSE. · Il bit EN è cancellato. 11 Nessuna modifica nella condizione ramo. Diagrammi di transazione dell'istruzione Socket Transazioni per client TCP Vedere anche Istruzioni socket a pagina 603 Bit di stato per l'istruzione del socket a pagina 641 Il diagramma seguente mostra una sequenza tipica di transazioni dell'interfaccia del socket con il controllore che opera come client TCP. Transazioni per server TCP Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 649 Capitolo 23 Istruzioni socket Il diagramma seguente mostra una sequenza tipica di transazioni dell'interfaccia del socket con il controllore come un server TCP. Transazioni per UDP con connessione aperta Il diagramma seguente mostra una sequenza tipica di transazioni dell'interfaccia del socket per le comunicazioni UDP quando si utilizza il servizio di connessione aperta per specificare l'indirizzo di destinazione. Transazioni per UDP senza connessioni aperte Il diagramma seguente mostra una sequenza tipica di transazioni dell'interfaccia del socket per le comunicazioni UDP senza utilizzare il servizio di connessione aperta per specificare l'indirizzo di destinazione. In questo caso, il controllore specifica la destinazione per 650 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Istruzioni socket ogni datagramma e riceve l'indirizzo del mittente insieme a ogni datagramma ricevuto. Diagrammi di stato della macchina per TCP Vedere anche Istruzioni socket a pagina 603 Diagrammi di temporizzazione dell'istruzione Socket a pagina 641 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 651 Capitolo 23 Istruzioni socket Client TCP tramite leistruzioni del socket 652 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Server TCP tramite le istruzioni del socket Capitolo 23 Istruzioni socket Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 653 Capitolo 23 Istruzioni socket Diagramma dello stato del TCP Vedere anche Istruzioni socket a pagina 603 Diagrammi di temporizzazione dell'istruzione Socket a pagina 641 Diagrammi di stato della macchina per UPD a pagina 654 Diagrammi dello stato della macchina per UDP 654 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 23 Datagramma UDP con istruzione SOCKET_OPEN Istruzioni socket Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 655 Capitolo 23 Istruzioni socket Datagramma UDP senza istruzione SOCKET_OPEN Vedere anche Istruzioni socket a pagina 603 Diagrammi di temporizzazione dell'istruzione Socket a pagina 641 Diagrammi di stato della macchina per TCP a pagina 651 656 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 ASCII Capitolo 24 Istruzioni di elaborazione della stringa Istruzione ASCII a pagina 657 CHAR a pagina 659 Le istruzioni di elaborazione della stringa si utilizzano per alterare una sequenza di simboli scelti da una serie o dall'alfabeto al fine di modificare lo stato delle uscite. per leggere correttamente le stringhe di ingresso contenenti caratteri speciali, inserire i caratteri delle stringhe quando il programma che contiene l'istanza del blocco funzione è online. Descrizione Restituire il codice ASCII per i caratteri in una stringa. Carattere -> codice ASCII. Restituisce una stringa di un carattere per un codice ASCII. Codice ASCII -> Carattere. DELETE a pagina 661 FIND a pagina 663 INSERT a pagina 664 LEFT a pagina 667 MID a pagina 668 MLEN a pagina 671 REPLACE a pagina 674 RIGHT a pagina 672 Elimina i caratteri da una stringa. individua e fornisce la posizione delle sottostringhe nelle stringhe. inserisce sottostringhe in posizioni definite dall'utente all'interno delle stringhe. Estrae i caratteri dal lato sinistro di una stringa. Estrae i caratteri dal centro di una stringa. Calcola la lunghezza di una stringa. Sostituisce le parti di una stringa con nuovi set di caratteri. Estrae i caratteri dal lato destro di una stringa. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Restituisce il codice ASCII per i caratteri nelle stringhe. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 657 Capitolo 24 Istruzioni di elaborazione della stringa Parametro EN Tipo di parametro Ingresso Tipo di dati BOOL IN Ingresso STRING Pos Ingresso DINT ASCII Uscita DINT ENO Uscita BOOL Descrizione Abilitazione istruzioni. TRUE: visualizza il codice ASCII per i caratteri. FALSE: nessuna operazione di visualizzazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa non vuota. Posizione del carattere selezionato nel set [1.. len] (len rappresenta la lunghezza della stringa IN) Codice ASCII del carattere selezionato (nel set [0 .. 255]) produce 0 se Pos non rientra nella stringa. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali ASCII Esempio di diagramma ladder ASCII Esempio di testo strutturato ASCII (* Equivalenza ST: *) FirstChr := ASCII (message, 1); (* FirstChr è il codice ASCII del primo carattere della stringa *) 658 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 24 Istruzioni di elaborazione della stringa Vedere anche Istruzioni di elaborazione della stringa a pagina 657 CHAR (codice ASCII a carattere della stringa) Restituisce una stringa di un carattere per un codice ASCII. Codice ASCII -> Carattere. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN Codice CHAR ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita BOOL DINT STRING Abilitazione istruzioni. TRUE: fornisce una stringa con un solo carattere. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Codice ASCII nel set [0 .. 255]. Stringa con un carattere. Il carattere è dotato del codice ASCII dato nel codice di ingresso. Uscita BOOL Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 659 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di programmazione a blocchi funzionali CHAR Esempio di diagramma ladder CHAR Esempio di testo strutturato CHAR (* Equivalenza ST: *) Display := CHAR ( value + 48 ); (* il valore è nel set [0..9] *) (* 48 è il codice ascii di '0' *) (* il risultato è una stringa con un carattere da '0' a '9' *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 660 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 DELETE (eliminare una sottostringa) Capitolo 24 Istruzioni di elaborazione della stringa Elimina i caratteri da una stringa. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbC Pos DELETE ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso Ingresso Ingresso Uscita STRING DINT DINT STRING Uscita BOOL Abilitazione istruzioni. TRUE: eliminare parti specifiche di una stringa. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa non vuota. Numero di caratteri da eliminare. Posizione del primo carattere eliminato (il primo carattere della stringa è in posizione 1). Il risultato è: · Una stringa modificata. · Una stringa vuota (se Pos < 1). · La stringa iniziale (se Pos > lunghezza stringa IN). · La stringa iniziale (se NbC <= 0). Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali DELETE Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 661 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di diagramma ladder DELETE Esempio di testo strutturato DELETE (* Equivalenza ST: *) stringa_completa := INSERT ('ABCD ', 'EFGH', 5); (* stringa_completa è 'ABCDEFGH ' *) sotto_stringa := DELETE (stringa_completa, 4, 3); (* sotto_stringa è 'ABGH '*) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 662 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 FIND (trova sottostringa) Capitolo 24 Istruzioni di elaborazione della stringa individua e fornisce la posizione delle sottostringhe nelle stringhe. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN In Pat FIND ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Uscita BOOL STRING STRING DINT Uscita BOOL Abilitazione istruzioni. TRUE: individua la posizione all'interno delle stringhe. FALSE: nessuna operazione di individuazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa non vuota. Qualunque stringa non vuota (pattern). Il risultato è: · 0 se la sottostringa Pat non è stata trovata. · la posizione del primo carattere della prima occorrenza della sottostringa Pat (la prima posizione è 1) Questa istruzione fa distinzione tra maiuscole e minuscole. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali FIND Esempio di diagramma ladder FIND Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 663 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di testo strutturato FIND (* Equivalenza ST: *) stringa_completa := 'ABCD' + 'EFGH'; (* stringa_completa è 'ABCDEFGH ' *) trovato := FIND (stringa_completa, 'CDEF'); (* trovato è 3 *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 INSERT (inserimento stringa) inserisce sottostringhe in posizioni definite dall'utente all'interno delle stringhe. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 664 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 24 Istruzioni di elaborazione della stringa Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN Str Pos INSERT ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Ingresso Uscita Uscita BOOL STRING STRING DINT STRING BOOL Abilitazione istruzioni. TRUE: inserisce sottostringhe in una stringa. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Stringa iniziale. Stringa da inserire. Posizione di inserimento l'inserimento avviene prima della posizione (la prima posizione valida è 1). Stringa modificata. Può essere: · stringa vuota se Pos <= 0 · concatenamento di entrambe le stringhe se Pos è maggiore della lunghezza della stringa IN Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali INSERT Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 665 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di diagramma ladder INSERT Esempio di testo strutturato INSERT (* Equivalenza ST: *) MyName := INSERT ('Mr JONES', 'Frank ', 4); (* MyName è 'Mr Frank JONES' *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 666 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 LEFT (estrae a sinistra di una stringa) Capitolo 24 Istruzioni di elaborazione della stringa Estrarre i caratteri dal lato sinistro di una stringa. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbC LEFT ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Uscita Uscita BOOL STRING DINT STRING BOOL Abilitazione istruzioni. TRUE: calcola il numero di caratteri della stringa partendo da sinistra. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa non vuota. Numero di caratteri da estrarre. Questo numero non può essere maggiore della lunghezza della stringa IN. Parte sinistra della stringa IN (lunghezza = NbC). Può essere: · stringa vuota se NbC <= 0 · una stringa IN completa se NbC >= lunghezza stringa IN Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali LEFT Esempio di diagramma ladder LEFT Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 667 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di testo strutturato LEFT (* Equivalenza ST: *) stringa_completa := RIGHT ('12345678', 4), LEFT ('12345678', 4), 5; (* la stringa_completa è '56781234' il valore restituito dalla chiamata a RIGHT è '5678' il valore ottenuto dalla chiamata LEFT è '1234'*) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 MID (estrae dal centro di una Estrarre i caratteri dal centro di una stringa. Utilizzare la posizione e il numero di caratteri forniti per calcolare le parti richieste delle stringhe. stringa) Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. 668 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 24 Istruzioni di elaborazione della stringa Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN NbC Pos MID ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitazione istruzioni. TRUE: genera la porzione di una stringa. FALSE: nessuna operazione di generazione. Applicabile alle programmazioni in Ladder Diagram. Ingresso Ingresso Ingresso Uscita Uscita STRING DINT DINT STRING BOOL Qualsiasi stringa non vuota. Il numero di caratteri da estrarre non può essere superiore alla lunghezza della stringa IN. Posizione della sottostringa. Il primo carattere della sottostringa è il primo a cui Pos fa riferimento (la prima posizione valida è 1). Parte centrale della stringa (lunghezza = NbC). Quando il numero di caratteri da estrarre supera la lunghezza della stringa IN, NbC è ricalcolato automaticamente per ottenere solo il resto della stringa. Quando i valori di NbC o Pos sono uguali a zero o numeri negativi, viene restituita una stringa vuota. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali MID Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 669 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di diagramma ladder MID Esempio di testo strutturato MID (* Equivalenza ST: *) sotto_stringa := MID ('abcdefgh', 2, 4); (* sotto_stringa è 'de' *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 670 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 MLEN (lunghezza della stringa) Capitolo 24 Istruzioni di elaborazione della stringa Calcola la lunghezza di una stringa. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN IN MLEN ENO Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Uscita Uscita BOOL STRING DINT BOOL Abilitazione istruzioni. TRUE: calcola la lunghezza della stringa. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa. Numero di caratteri nella stringa IN. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali MLEN Esempio di diagramma ladder MLEN Esempio di testo strutturato MLEN Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 671 Capitolo 24 Istruzioni di elaborazione della stringa (* Equivalenza ST: *) nbchar := MLEN (stringa_completa); SE (nbchar < 3) Then Return; End_if; prefix := LEFT (stringa_completa, 3); (* questo programma estrae i 3 caratteri a sinistra della stringa e posiziona il risultato nella variabile della stringa di prefisso. Se la lunghezza della stringa è inferiore a 3 caratteri non viene eseguita alcuna operazione *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 RIGHT (estrazione a destra di una stringa) Estrarre i caratteri dal lato destro di una stringa. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 672 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro EN Tipo di parametro Ingresso Tipo di dati BOOL IN Ingresso NbC Ingresso RIGHT Uscita ENO Uscita STRING DINT STRING BOOL Descrizione Capitolo 24 Istruzioni di elaborazione della stringa Abilitazione istruzioni. TRUE: estrae il numero di caratteri specificato dall'estremità destra della stringa. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Qualsiasi stringa non vuota. Numero di caratteri da estrarre. Questo numero non può essere maggiore della lunghezza della stringa IN. Parte destra della stringa (lunghezza = NbC). Può essere: · stringa vuota se NbC <= 0 · stringa completa se NbC >= lunghezza della stringa Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali RIGHT Esempio di diagramma ladder RIGHT Esempio di testo strutturato RIGHT (* Equivalenza ST: *) Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 673 Capitolo 24 Istruzioni di elaborazione della stringa stringa_completa := RIGHT ('12345678', 4), LEFT ('12345678', 4),5; (* la stringa_completa è '56781234' il valore restituito dalla chiamata a RIGHT è '5678' il valore restituito dalla chiamata a LEFT è '1234' *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 REPLACE (sostituisce la sottostringa) Sostituisce le parti di una stringa con nuovi set di caratteri. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN 674 Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Abilitare funzione. TRUE: sostituisce parti di stringhe con nuovi caratteri. FALSE: nessuna operazione. Applicabile alle programmazioni in Ladder Diagram. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametro IN Str NbC Pos REPLACE Tipo di parametro Ingresso Ingresso Ingresso Ingresso Tipo di dati STRING STRING DINT DINT Uscita STRING ENO Uscita BOOL Capitolo 24 Descrizione Istruzioni di elaborazione della stringa Qualsiasi stringa. Stringa da inserire (per sostituire i caratteri NbC). Numero di caratteri da eliminare. Posizione del primo carattere modificato (la prima posizione valida è 1). Stringa modificata. I caratteri NbC sono eliminati alla posizione Pos, quando in questa posizione viene inserita la sottostringa Str. Può essere: · stringa vuota se Pos <= 0 · una concatenazione di stringhe (IN+Str) se Pos è maggiore della lunghezza della stringa IN · stringa iniziale IN se NbC <= 0 Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. Esempio di programmazione a blocchi funzionali REPLACE Esempio di diagramma ladder REPLACE Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 675 Capitolo 24 Istruzioni di elaborazione della stringa Esempio di testo strutturato REPLACE Sostituzione di una parte di una stringa con un nuovo set di caratteri. (* Equivalenza ST: *) MyName := REPLACE ("Mr X JONES, "Frank", 1, 4); (* MyName è 'Mr Frank JONES' *) Risultati Vedere anche Istruzioni di elaborazione della stringa a pagina 657 676 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni del timer Capitolo 25 Istruzione TOF a pagina 678 TON a pagina 680 TONOFF a pagina 682 TP a pagina 685 RTO a pagina 687 DOY a pagina 689 Utilizzare istruzioni del Timer per controllare le operazioni in base al tempo. Descrizione Tempistica ritardo alla diseccitazione Incrementare un timer interno fino a un valore dato. Tempistica ritardo all'eccitazione Incrementare un timer interno fino a un valore dato. Ritardo di accensione di un'uscita in caso di ramo True, quindi ritardo di spegnimento di un'uscita in caso di ramo False. Tempistica impulsi. Sul fronte di salita, incrementa un timer interno fino a un valore dato. Tempo di ritrasmissione. Incrementa un timer interno quando l'ingresso è attivo, ma non ripristina il timer interno quando l'ingresso diventa inattivo. Attiva un output se il valore del real-time clock è compreso nell'intervallo dell'impostazione Ora dell'anno. TDF a pagina 691 TOW a pagina 693 Calcola la differenza di tempo tra TimeA e TimeB. Attiva un'uscita se il valore del real-time clock è compreso nell'intervallo dell'impostazione Ora della settimana. Vedere anche Istruzione impostate in ordine alfabetico a pagina 18 Configurazione delle istruzioni del timer La precisione temporale si riferisce al tempo trascorso tra l'abilitazione di un'istruzione del timer da parte del processore e il termine dell'intervallo temporizzato. Il processore utilizza le seguenti informazioni provenienti dall'istruzione del timer: · Timer - L'indirizzo di controllo del timer nell'area dell'archivio dati dedicata al timer. · Base di tempo - Determina la modalità di funzionamento del timer. · Valore preimpostato - Specifica il valore che il timer deve raggiungere prima che il processore imposti il bit Done. · Valore accumulato - Il numero di incrementi temporali contati dall'istruzione. Quando abilitato, il timer aggiorna continuamente questo valore. Vedere anche Istruzioni del timer a pagina 677 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 677 Capitolo 25 Istruzioni del timer TOF (timer, ritardo alla diseccitazione) Incrementa un timer interno fino a un valore dato. Dettagli operazione: · Se si usa il parametro EN con questo blocco istruzione, il timer inizia a incrementare quando EN è impostato su TRUE e continua a incrementare anche se EN è impostato su FALSE. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri IN PT Q ET Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso TIME Uscita BOOL Uscita TIME Controllo ingresso. TRUE: fronte di discesa rilevato, il timer interno inizia ad incrementare. FALSE: fronte di salita rilevato, il timer interno si arresta e viene ripristinato. Tempo massimo programmato. Vedere Tipo di dati Durata. TRUE: il tempo totale non è trascorso. FALSE: il tempo totale è trascorso. Tempo trascorso. I valori possibili variano da 0ms a 1193h2m47s294ms. Diagramma di temporizzazione TOF 678 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Capitolo 25 Istruzioni del timer Esempio di Programmazione a blocchi funzionali TOF Esempio di Diagramma ladder TOF Esempio di Testo strutturato TOF Risultati Vedere anche Configurazione delle istruzioni del timer a pagina 677 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 679 Capitolo 25 Istruzioni del timer Istruzioni del timer a pagina 677 TON (timer, ritardo all'eccitazione) Incrementa un timer interno fino a un valore dato. Dettagli operazione: · Non usare un salto per superare un blocco istruzione TON in un Diagramma ladder (LD). Se si utilizza un jump, il timer TON continuerà dopo il tempo trascorso. · Ad esempio: Ramo 1 contiene un salto; ramo 2 contiene un blocco istruzione TON con un tempo trascorso di 10 secondi; abilita il salto da ramo 1 a ramo 3; disabilita il salto dopo 30 secondi; il tempo trascorso sarà di 30 secondi, non 10 secondi come definito dal tempo trascorso. · Se si usa il parametro EN con TON, il timer inizia a incrementare quando EN è impostato su TRUE e continua a incrementare anche se EN è impostato su FALSE. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri IN PT Q ET Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Controllo ingresso. TRUE: se fronte di salita, il timer interno inizia a incrementare. FALSE: se fronte di discesa, il timer interno si arresta e viene ripristinato. Ingresso TIME Tempo massimo programmato definito utilizzando il tipo di dati Durata. Uscita Uscita BOOL TRUE: il tempo programmato è trascorso. FALSE: il tempo programmato non è trascorso. TIME Tempo trascorso. I valori possibili variano da 0ms a 1193h2m47s294ms. 680 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Diagramma di temporizzazione TON Capitolo 25 Istruzioni del timer Esempio di Programmazione a blocchi funzionali TON Esempio di Diagramma ladder TON Esempio di Testo strutturato TON Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 681 Capitolo 25 Istruzioni del timer Risultati Vedere anche Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 TONOFF (ritardo, on, off) Ritarda l'attivazione di un'uscita su un ramo True, quindi ritarda la disattivazione dell'uscita su ramo False. Dettagli operazione: · Se si usa il parametro EN con TONOFF, il timer inizia a incrementare quando EN è impostato su TRUE e continua a incrementare anche se EN è impostato su FALSE. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. 682 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Parametri IN Tipo di parametro Ingresso Tipo di dati BOOL PT Ingresso TIME PTOF Ingresso TIME Q Uscita BOOL ET Uscita TIME Descrizione Capitolo 25 Istruzioni del timer Controllo ingresso. TRUE: fronte di salita rilevato (IN passa da 0 a 1): · avvia il timer Ritardo all'eccitazione (PT). · Se la durata ritardo off programmato (PTOF) non è trascorsa, riavviare il timer Ritardo all'eccitazione (PT). FALSE: fronte di discesa rilevato (IN passa da 1 a 0): · Se non è trascorso il tempo di Ritardo all'eccitazione (PT) programmato, arrestare il timer PT e ripristinare ET. · Se è trascorso il tempo di Ritardo all'eccitazione (PT) programmato, avvia il timer Ritardo alla diseccitazione (PTOF). L'impostazione del tempo di Ritardo all'eccitazione definito utilizzando il tipo di dati Time. L'impostazione del tempo di Ritardo alla diseccitazione definito utilizzando il tipo di dati Time. TRUE: il tempo del Ritardo all'eccitazione programmato è trascorso e il tempo del ritardo alla diseccitazione non è trascorso. Tempo trascorso. I valori possibili variano da 0ms a 1193h2m47s294ms. Se il tempo del ritardo all'eccitazione programmato è trascorso e il timer del ritardo alla diseccitazione non è stato avviato, il tempo trascorso (ET) rimane al valore del ritardo all'eccitazione (PT). Se il tempo Off-delay programmato è trascorso e il timer Off-delay non parte, il tempo trascorso (ET) resta al valore di off-delay (PTOF) fino a che si verifica nuovamente il fronte di salita. Esempio di Programmazione a blocchi funzionali TONOFF Esempio di Diagramma ladder TONOFF Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 683 Capitolo 25 Istruzioni del timer Esempio di Testo strutturato TONOFF Risultati Vedere anche Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 684 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 TP (tempo impulsi) Capitolo 25 Istruzioni del timer Sul fronte di salita, incrementa un timer interno fino a un valore dato. Se il timer è trascorso, il tempo interno viene ripristinato. Dettagli operazione: · Se si usa il parametro EN con TP, il timer inizia a incrementare quando EN è impostato su TRUE e continua a incrementare anche se EN è impostato su FALSE. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri IN PT Q ET Tipo di parametro Ingresso Ingresso Uscita Uscita Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di dati Descrizione BOOL TRUE: se fronte di salita, il timer interno inizia a incrementare (se non sta già aumentando). FALSE: se il tempo del timer è trascorso, il timer interno viene ripristinato. Qualsiasi modifica a IN durante il conteggio non ha alcun effetto. TIME Tempo massimo programmato definito utilizzando il tipo di dati Time. BOOL TRUE: il timer sta contando. FALSE: il timer non sta contando. TIME Tempo trascorso. I valori possibili variano da 0ms a 1193h2m47s294ms. Diagramma di temporizzazione TP Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 685 Capitolo 25 Istruzioni del timer Esempio di Programmazione a blocchi funzionali TP Esempio di Diagramma ladder TP Esempio di Testo strutturato TP Risultati Vedere anche Configurazione delle istruzioni del timer a pagina 677 686 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Istruzioni del timer a pagina 677 Capitolo 25 Istruzioni del timer RTO (timer di ritrasmissione, Incrementa un timer interno quando l'ingresso è attivo, ma non ripristina il timer interno quando l'ingresso diventa inattivo. Ritardo all'eccitazione) Dettagli operazione: · Controllori <Micro810> o <Micro820>, il timer RTO interno non persiste per tutta la durata del ciclo di alimentazione. Per tenere attivo il timer interno, impostare il parametro di configurazione Memorizzato su True. · Controllore <Micro830> o <Micro850>, il timer RTO interno persisterà per tutto il ciclo di alimentazione. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri IN RST PT Q ET Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Controllo ingresso. TRUE: fronte di salita, inizia ad aumentare il timer interno. FALSE: fronte di discesa, si arresta e non viene eseguito il timer interno. Ingresso BOOL TRUE: fronte di salita, viene eseguito il reset del timer interno. FALSE: non viene eseguito il timer interno. Ingresso TIME Tempo di Ritardo all'eccitazione massimo programmato. PT è definito con i dati ora Durata. Uscita BOOL TRUE: il tempo del ritardo all'eccitazione programmato è trascorso. FALSE: il tempo del ritardo all'eccitazione del programma non è trascorso. Uscita TIME Tempo trascorso. I valori variano da 0 ms a 1193 h 2 m 47 s 294 ms. ET è definito con il tipo di dati Time. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 687 Capitolo 25 Istruzioni del timer Esempio di diagramma di temporizzazione RTO Esempio di Programmazione a blocchi funzionali RTO Esempio di Diagramma ladder RTO Esempio di Testo strutturato RTO 688 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Vedere anche Capitolo 25 Istruzioni del timer Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 DOY (anno di controllo per Real-Time clock) Attiva un'uscita se il valore Real-Time Clock (RTC) è compreso nell'intervallo dell'impostazione Ora dell'anno. Dettagli operazione: · Se non è presente un RTC, l'uscita è sempre OFF. · Configurare i parametri di inserimento della durata con intervalli validi, secondo quanto specificato nella tabella Tipo di dati DOYDATA. Un valore non valido porta in errore il controllore se TimeX.Enable è impostato su TRUE ed è presente, e abilitato, un RTC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametro EN TimeA TimeB TimeC TimeD DOY Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso Ingresso Ingresso Ingresso Ingresso Uscita BOOL DOYDATA DOYDATA DOYDATA DOYDATA BOOL Abilitazione istruzioni. TRUE: esegue l'operazione. FALSE: non esegue l'operazione. Impostazione di Year Time del Canale A: Per configurare TimeA, utilizzare il tipo di dati DOYDATA. Impostazione di Year Time del Canale B. Per configurare TimeB, utilizzare il tipo di dati DOYDATA. Impostazione di Year Time del Canale C. Per configurare TimeC, utilizzare il tipo di dati DOYDATA. Impostazione di Year Time del Canale D. Per configurare TimeD, utilizzare il tipo di dati DOYDATA. Se TRUE, il valore del Real Time Clock rientra nel range dell'impostazione Year Time di uno dei quattro canali. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 689 Capitolo 25 Istruzioni del timer Parametri Enable YearlyCenturial YearOn MonthOn DayOn YearOff MonthOff DayOff Tipo di dati DOYDATA Nella tabella seguente è descritto il tipo di dati DOYDATA. Tipo di dati Descrizione BOOL TRUE:Enable; FALSE:Disable BOOL Tipo di timer (0:timer Yearly; 1:Centurial timer). UINT Valore Year On (deve essere nel set [2000...2098]). USINT Valore Month On (deve essere nel set [1...12]). USINT Valore Day On (deve essere nel set [1..31], determinato dal valore "MonthOn"). UINT Valore Year Off (deve essere nel set [2000...2098]). USINT Valore Month Off (deve essere nel set [1...12]). USINT Valore Day Off (deve essere nel set [1..31], determinato dal valore "MonthOff"). Esempio di programmazione a blocchi funzionali DOY Esempio di diagramma ladder DOY 690 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di testo strutturato DOY Capitolo 25 Istruzioni del timer (* Equivalenza ST: *) TESTOUTPUT := DOY(TIMEA1, TIMEB1, TIMEC1, TIMED1) ; Vedere anche Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 TDF (differenza di tempo) Calcola la differenza di tempo tra TimeA e TimeB. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Parametri EN TimeA TimeB ENO TDF Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Tipo di parametro Tipo di dati Descrizione Ingresso BOOL Ingresso TIME Ingresso TIME Uscita BOOL Uscita TIME Abilitazione istruzioni. TRUE: esegue il calcolo corrente. FALSE: il calcolo non avviene. Applicabile alle programmazioni in Ladder Diagram. Il tempo di avvio per il calcolo della differenza di tempo. Il tempo di fine per il calcolo della differenza di tempo. Abilita uscita. Applicabile alle programmazioni in Ladder Diagram. La differenza di tempo tra le due ore in ingresso. TDF è il nome o ID PIN Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 691 Capitolo 25 Istruzioni del timer Esempio di programmazione a blocchi funzionali TDF Esempio di diagramma ladder TDF Esempio di testo strutturato TDF (* Equivalenza ST: *) TESTTIMEDIFF := TDF(TESTTIME1, TESTTIME2) ; 692 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Risultati Capitolo 25 Istruzioni del timer Vedere anche Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 TOW (settimana di controllo Attiva un'uscita se il valore del Real-Time Clock (RTC) è compreso nell'intervallo dell'impostazione Ora della settimana. per Real Time Clock) Dettagli operazione: · Se non è presente un RTC, l'uscita è sempre OFF. · Configurare i parametri di ingresso Time con intervalli validi, secondo quanto specificato nel Tipo di dati TOWDATA. Un valore non valido porta in errore il controllore se TimeX.Enable è impostato su TRUE ed è presente, e abilitato, un RTC. Lingue supportate: Programmazione a blocchi funzionali, Diagramma ladder, Testo strutturato. Questa istruzione vale per i controllori Micro810, Micro820, Micro830, Micro850, Micro870 e Micro800 Simulator. Utilizzare questa tabella per determinare i valori del parametro per questa istruzione. Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 693 Capitolo 25 Istruzioni del timer Parametro Tipo di parametro EN Ingresso Tipo di dati BOOL TimeA TimeB TimeC TimeD TOW Ingresso Ingresso Ingresso Ingresso Uscita TOWDATA TOWDATA TOWDATA TOWDATA BOOL Descrizione Abilitazione istruzioni. Se EN = TRUE esegue la funzione. Se EN = FALSE non esegue la funzione. Impostazione dell'ora del giorno per il canale A. Utilizzare il tipo di dati TOWDATA per definire TimeA. Impostazione dell'ora del giorno per il canale B. Utilizzare il tipo di dati TOWDATA per definire TimeB. Impostazione dell'ora del giorno per il canale C. Utilizzare il tipo di dati TOWDATA per definire TimeC. Impostazione dell'ora del giorno per il canale D. Utilizzare il tipo di dati TOWDATA per definire TimeD. Se TRUE, il valore del Real Time Clock è compreso nell'intervallo dell'Ora del giorno impostata per uno qualsiasi dei quattro canali. Tipo di dati TOWDATA La seguente tabella descrive i tipi di dati TOWDATA: Parametri Tipo di dati Descrizione Enable BOOL DailyWeekly BOOL DayOn USINT HourOn USINT MinOn USINT DayOff USINT HourOff USINT MinOff USINT TRUE: Abilita; FALSE: Disabilita. Tipo di timer (0:timer giornaliero; 1:timer settimanale). Valore Giorno della settimana il (deve essere in set [0 .. .6]). Valore Ora alle (deve essere in set [0 .. .23]). Valore Minuto alle (deve essere in set [0 .. .59]). Valore Giorno della settimana OFF (deve essere in set [0 .. .6]). Valore Ora OFF (deve essere in set [0 .. .23]). Valore Minuto OFF (deve essere in set [0 .. .59]). Esempio di programmazione a blocchi funzionali TOW 694 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Esempio di diagramma ladder TOW Capitolo 25 Istruzioni del timer Esempio di testo strutturato TOW (* Equivalenza ST: *) TESTOUTPUT := TOW(TIMEA, TIMEB, TIMEC, TIMED) ; Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 695 Capitolo 25 Istruzioni del timer Risultati Vedere anche Configurazione delle istruzioni del timer a pagina 677 Istruzioni del timer a pagina 677 696 Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Assistenza Rockwell Automation Utilizzare queste risorse per accedere alle informazioni di supporto. Centro supporto tecnico Knowledge base Numeri di telefono del supporto tecnico locale Trova assistenza per video, domande frequenti, chat, forum degli utenti e aggiornamenti delle notifiche dei prodotti. Articoli della Knowledge Base di Access. Individua il numero di telefono per il tuo paese. rok.auto/supporto rok.auto/knowledgebase rok.auto/supporto telefonico Literature Library Area compatibilità e download prodotti (PCDC) Trova istruzioni di installazione, manuali, brochure e pubblicazioni di dati tecnici. rok.auto/letteratura Ottieni assistenza per determinare il modo in cui i prodotti interagiscono, controllare le rok.auto/pcdc funzionalità e le funzionalità e trovare il firmware associato. Feedback documentazione I commenti ci consentono di migliorare le esigenze della documentazione. In caso di suggerimenti su come migliorare questo documento, completare il modulo all'indirizzo rok.auto/docfeedback. Rifiuti di apparecchiature elettriche ed elettroniche (WEEE) Al termine del ciclo di vita, queste attrezzature dovrebbero essere raccolte separatamente da eventuali rifiuti urbani non utilizzati. Rockwell Automation mantiene le attuali informazioni ambientali sul prodotto sul suo sito web all'indirizzo rok.auto/pec. Allen-Bradley, expanding human possibility, Logix, Rockwell Automation e Rockwell Software sono marchi di Rockwell Automation, Inc. Ethernet/IP è un marchio di ODVA, Inc. I marchi che non appartengono a Rockwell Automation sono di proprietà delle rispettive aziende.. Rockwell Otomayson Ticaret A.. Kar Plaza Merkezi E Blok Kat:6 34752, çerenkÖy, stanbul, Tel: +90 (216) 5698400 EEE YÖnetmeliine Uygundur Pubblicazione Rockwell Automation 2080-RM001J-IT-E - Marzo 2021 Sostituisce la pubblicazione -2080-RM001I-IT-E - Gennaio 2019 Copyright © 2021 Rockwell Automation Technologies, Inc. Tutti i diritti riservati. Stampato negli U.S.A.Rockwell Automation Adobe PDF Library 21.1.177