qui - PLC Forum
Transcript
qui - PLC Forum
Cat. N. OMW322-I1-1 Controllori Programmabili C200HX/C200HG/C200HE MANUALE DELL’OPERATORE C200HX-CPU-ZE C200HG-CPU-ZE C200HE-CPU-ZE Controllori programmabili Manuale dell’Operatore Febbraio 1998 ii Nota: I prodotti OMRON sono stati fabbricati per essere utilizzati, secondo le procedure appropriate, da operatori qualificati ed unicamente per gli scopi descritti nel presente manuale. Le convenzioni che seguono sono utilizzate nel presente manuale per indicare e classificare precauzioni. Prestare sempre molta attenzione alle informazioni qui contenute. Il mancato rispetto di tali convenzioni può provocare danni alle persone o danneggiare il prodotto. ! PERICOLO! Indica informazioni che, se non osservate, possono verosimilmente provocare la morte o gravi lesioni. Indica informazioni che, se non osservate, possono provocare la morte o gravi ! AVVERTENZA lesioni. ! Attenzione Indica informazioni che, se non osservate, possono provocare lesioni più o meno gravi, danni al prodotto o anomalie durante il funzionamento. Riferimenti ai prodotti OMRON Tutti i prodotti OMRON nel presente manuale sono riportati in maiuscolo. Anche il termine “Modulo” ha l’iniziale maiuscola quando si riferisce a un prodotto OMRON, indipendentemente dal fatto che appaia nel nome del prodotto. L’abbreviazione “Ch,” che appare in alcune visualizzazioni e su alcuni prodotti OMRON, spesso indica “canale” (“word”) e, in tal senso, è abbreviata “Wd” nella documentazione. L’abbreviazione “PLC” indica unicamente Controllore Programmabile (Programmable Controller) e non ha altro significato. Ausilio visivo Le seguenti intestazioni appaiono sul margine sinistro del manuale per poter individuare rapidamente i diversi tipi di informazione. Nota Indica informazioni di particolare interesse per un uso efficace e conveniente del prodotto. 1, 2, 3... 1. Indica elenchi di vario tipo, come procedure, liste di controllo, ecc. OMRON 1997, 1998 Tutti i diritti sono riservati. Nessuna parte del presente manuale può essere riprodotta, memorizzata in un sistema di recupero dati, o trasmessa in qualsiasi forma o con qualsiasi mezzo, meccanico o elettronico, incluso fotocopie, registrazioni, o altro, senza precedente autorizzazione scritta di OMRON. OMRON non si assume nessuna responsabilità per l’uso delle informazioni qui contenute. Inoltre, poichè OMRON è costantemente impegnata a migliorare l’alta qualità dei suoi prodotti, le informazioni contenute nel presente manuale sono soggette a modifica senza nessun preavviso. Tuttavia, OMRON non si assume nessuna responsabilità per errori o omissioni, nè per danni derivanti dall’uso delle informazioni contenute nel presente manuale. iii INDICE CAPITOLO 1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Origini della logica PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia del prodotto OMRON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Panoramica del funzionamento del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivi periferici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manuali disponibili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caratteristiche C200HX/HG/HE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 2 Considerazioni sull’hardware . . . . . . . . . . . . . . . . . . . . . . 2-1 2-2 2-3 2-4 2-5 2-6 Componenti della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configurazione del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caratteristiche della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cartucce di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funzionamento senza batteria di riserva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commutatore DIP della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 3 Aree di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3-10 3-11 3-12 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struttura dell’area dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area HR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area TC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area UM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area EM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 4 Scrittura e inserimento dei programmi . . . . . . . . . . . . . . . 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 4-11 4-12 4-13 Concetti elementari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capacità di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrammi a relè di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Console di Programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inserimento, modifica e controllo dei programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Controllo dello stato dei bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bit di lavoro (relè interni) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accorgimenti di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esecuzione del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmi interfaccia moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmazione del modulo temporizzatore analogico . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 5 Istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-2 5-3 Notazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formato delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aree dati, valori degli identificatori e flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 4 5 5 6 13 14 17 17 18 21 22 23 25 26 30 33 50 58 71 72 72 73 74 74 77 79 79 80 80 92 95 107 123 125 126 127 128 132 137 141 141 141 i 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 5-16 5-17 5-18 5-19 5-20 5-21 5-22 5-23 5-24 5-25 5-26 5-27 5-28 5-29 5-30 Istruzioni differenziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni estese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codifica delle istruzioni in codice mnemonico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabelle delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni del diagramma a relè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di controllo sui bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) . . . . . . . . . . . . . . . . . . . . . . JUMP e JUMP END – JMP(004) e JME(005) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . END – END(001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NO OPERATION – NOP(000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni Timer e Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di scorrimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di spostamento dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di comparazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conversione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni matematiche sui simboli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni aritmetiche in BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni in binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni matematiche speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subroutine e controllo di interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni per la comunicazione seriale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni I/O avanzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 6 Tempo di esecuzione del programma . . . . . . . . . . . . . . . . . 6-1 6-2 6-3 6-4 Tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcolo del tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempi di esecuzione delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempo di risposta degli I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 7 Monitoraggio ed esecuzione del programma . . . . . . . . . . 7-1 7-2 Monitoraggio del funzionamento e modifica dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni della Console di Programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 8 Comunicazioni seriali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 8-2 8-3 8-4 8-5 8-6 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicazione Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicazione RS–232C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connessioni PLC 1:1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NT Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funzione macro di protocollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPITOLO 9 Gestione degli errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 9-2 9-3 9-4 9-5 9-6 ii Indicatori di allarme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allarmi programmati e messaggi di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lettura e cancellazione degli errori e dei messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Messaggi di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flag di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errori Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 144 145 147 152 153 159 160 161 162 162 173 181 194 208 232 252 267 281 298 300 312 320 343 349 356 370 375 376 380 383 394 407 408 408 433 434 435 442 446 448 449 457 458 458 458 459 464 465 CAPITOLO 10 Comandi Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 Prospetto dei comandi host link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Codici di errore host link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 Comandi Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDICE A Modelli standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDICE B Istruzioni di programmazione . . . . . . . . . . . . . . . . . . . . . . APPENDICE C Errori e flag aritmetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDICE D Moduli di registrazione per l’assegnazione dei canali . . . APPENDICE E Foglio per la codificazione dei programmi . . . . . . . . . . . . APPENDICE F Tabelle di conversione dei dati . . . . . . . . . . . . . . . . . . . . . . APPENDICE G ASCII esteso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GLOSSARIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 468 469 472 515 531 539 543 549 551 553 555 iii Informazioni su questo manuale: Questo manuale descrive il funzionamento dei Controllori Programmabili C200HX/HG/HE versione ZE e comprende i capitoli descritti di seguito. In questo manuale, i Controllori programmabili C200HX/HG/HE versione ZE si riferiscono ai Controllori Programmabili C200HX/HG/HE (PLC) o semplicemente C200HX/HG/HE. Le informazioni sull’installazione sono riportate nella Guida per l’installazione del Controllore Programmabile C200HX/HG/HE. Nel Capitolo 1 Introduzione viene fornita una tabella di altri manuali che può essere utilizzata con questo manuale. Leggere integralmente questo manuale in modo da avere una comprensione approfondita del suo contenuto prima di tentare di attivare il C200HX/HG/HE. Leggere assolutamente le precauzioni nella sezione successiva. Il Capitolo 1 Introduzione descrive il contesto generale e alcuni termini fondamentali utilizzati nella programmazione in diagramma a relé. Fornisce, inoltre, una panoramica del processo di programmazione e di funzionamento di un PLC, e spiega la terminologia fondamentale utilizzata per i PLC OMRON. Sono, inoltre, riportate le descrizioni dei dispositivi periferici utilizzati con i PLC C200HX/HG/HE e un prospetto degli altri manuali utilizzabili insieme a questo manuale per applicazioni speciali del PLC. Il Capitolo 2 Considerazioni sull’hardware spiega le nozioni fondamentali relative alla configurazione complessiva del PLC, descrive i led a cui si fa riferimento in altri capitoli di questo manuale, e spiega come utilizzare la cartuccia di memoria per gestire i dati UM e IOM. Il Capitolo 3 Aree di memoria offre una panoramica generale delle modalità di divisione e allocazione della memoria e illustra i dati in essa contenuti per facilitare la programmazione. Esso spiega come viene gestito l’I/O nella memoria e come i bit in memoria corrispondono a punti di I/O specifici. Fornisce, inoltre, informazioni sul Sistema DM, un’area speciale nei PLC C200HX/HG/HE che consente all’utente un controllo flessibile dei parametri di funzionamento del PLC. Il Capitolo 4 Scrittura e inserimento dei programmi illustra i concetti fondamentali della programmazione in diagramma a relé, considerando gli elementi costituenti un programma in diagramma a relé e spiegando come viene controllata l’esecuzione di questo programma. Spiega anche come convertire i diagrammi a relé in codice mnemonico, in modo che i programmi possano essere inseriti utilizzando una console di programmazione. Il Capitolo 5 Istruzioni descrive tutte le istruzioni usate nella programmazione. Il Capitolo 6 Tempo di esecuzione del programma illustra il processo di scansione usato per eseguire il programma e spiega come coordinare ingressi e uscite in modo che si verifichino nei tempi opportuni. Il Capitolo 7 Monitoraggio ed esecuzione del programma spiega le procedure della console di programmazione usate per l’inserimento e il debug del programma e per monitorare e controllare il funzionamento. Il Capitolo 8 Comunicazioni offre una panoramica delle caratteristiche delle comunicazioni fornite dal C200HS. Il Capitolo 9 Gestione degli errori fornisce informazioni sulle indicazioni di errore e su come ridurre i tempi di inattività. Le informazioni riportate in questo capitolo sono anche utili durante il debug dei programmi. Il Capitolo 10 Comandi Host Link illustra i comandi host link che possono essere utilizzati per le comunicazioni host link mediante le porte C200HX/HG/HE. Le Appendici riportano un prospetto dei prodotti OMRON standard disponibili per i PLC C200HX/ HG/HE, le tabelle di riferimento per le istruzioni, un foglio di codifica come supporto per la programmazione e l’inserimento dei parametri, e altre informazioni utili per il funzionamento del PLC. ! AVVERTIMENTO La mancata lettura e comprensione delle informazioni riportate in questo manuale può causare lesioni fisiche o la morte, danni o guasti al prodotto. Leggere ogni capitolo integralmente in modo da avere una comprensione approfondita del suo contenuto e di quello dei capitoli ad esso correlati prima di tentare qualsiasi procedura o operazione descritta. v PRECAUZIONI Questo capitolo illustra le precauzioni generali per l’uso del Controllore Programmabile (PLC) e dei dispositivi collegati. Le informazioni contenute in questo capitolo sono importanti per la sicurezza e l’affidabilità d’uso del PLC. Leggere questo capitolo in modo da avere una comprensione approfondita del suo contenuto prima di tentare di configurare o di far funzionare un sistema PLC. 1 Destinatari del manuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Precauzioni generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Precauzioni per la sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Precauzioni per l’ambiente operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Precauzioni per l’utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Conformità alle norme CE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x x x x xi xii vii Precauzioni per l’ambiente operativo 1 4 Destinatari del manuale Questo manuale è destinato al personale indicato di seguito, che deve avere competenze anche nel campo degli impianti elettrici (periti elettrotecnici o equivalenti). • Personale incaricato di installare i sistemi FA. • Personale incaricato di progettare i sistemi FA. • Personale incaricato di gestire i sistemi e gli impianti FA. 2 Precauzioni generali L’utente deve utilizzare il prodotto secondo le specifiche relative alle prestazioni descritte in questo manuale. Prima di utilizzare il prodotto in condizioni non descritte nel manuale o di impiegarlo in sistemi di controllo nucleari, sistemi ferroviari e aeronautici, veicoli, sistemi di combustione, apparecchiature mediche, giochi, apparecchiatura di sicurezza e altri sistemi, macchine e apparecchiature che possono danneggiare gravemente persone o cose, se utilizzate impropriamente, rivolgersi al rappresentante OMRON. Assicurarsi che i limiti di impiego e le caratteristiche delle prestazioni del prodotto siano adeguati per i sistemi, le macchine e le apparecchiature, e di dotare i sistemi, le macchine e le apparecchiature di doppi meccanismi di sicurezza. Questo manuale fornisce le informazioni per la programmazione e il funzionamento dei PLC OMRON. Leggere questo manuale prima di tentare di utilizzare il software e tenerlo sempre a portata di mano come riferimento durante l’utilizzo. ! AVVERTENZA E’ estremamente importante che un PLC e tutti i moduli del PLC siano utilizzati per gli scopi e nelle condizioni specificate, soprattutto nelle applicazioni che possono mettere a rischio, direttamente o indirettamente, la vita delle persone. Rivolgersi al rappresentante OMRON prima di utilizzare un sistema PLC nelle applicazioni sopra citate. 3 Precauzioni per la sicurezza ! AVVERTENZA Non tentare di smontare i moduli con l’alimentazione collegata. Potrebbero derivarne gravi shock elettrici o elettrocuzioni. ! AVVERTENZA Non toccare nessun terminale con l’alimentazione collegata. Potrebbero derivarne gravi shock elettrici o elettrocuzioni. 4 Precauzioni per l’ambiente operativo Non utilizzare il sistema di controllo negli ambienti in cui: • il PLC è esposto alla luce diretta del sole. • la temperatura ambiente è inferiore a 0°C o superiore a 55°C. • il PLC può essere danneggiato dalla condensa dovuta a notevoli sbalzi termici. • l’umidità relativa è inferiore al 10% o superiore al 90%. • è presente gas corrosivo o infiammabile. • polvere, aria salmastra o polvere metallica sono in quantità eccessive. • il PLC è sottoposto a vibrazioni o urti. viii Precauzioni per l’utilizzo 5 • acqua, olio o sostanze chimiche possono venire a contatto con il PLC. ! Attenzione 5 L’ambiente operativo del sistema PLC può condizionare notevolmente la durata e l’affidabilità del sistema. Ambienti operativi non adeguati possono provocare malfunzionamenti, guasti e altri problemi imprevedibili. Assicurarsi che l’ambiente operativo rispetti le condizioni specificate durante l’installazione e continui a rispettarle durante tutto il ciclo di vita del sistema. Precauzioni per l’utilizzo Rispettare le seguenti precauzioni per l’utilizzo del PLC. ! AVVERTENZA Il mancato rispetto delle seguenti precauzioni potrebbe provocare gravi lesioni o anche la morte. Tali precauzioni vanno tassativamente rispettate. • Mettere sempre a terra il sistema a 100 Ω o meno durante l’installazione per evitare shock elettrici. • Scollegare sempre l’alimentazione dal PLC prima di effettuare le seguenti operazioni. In caso contrario, possono verificarsi shock elettrici: – montare o rimuovere qualsiasi modulo (per es., moduli I/O, modulo CPU, ecc.) o cartucce di memoria. – assemblare qualsiasi dispositivo o rack. – collegare o scollegare qualsiasi cavo o filo. ! Attenzione Il mancato rispetto delle seguenti precauzioni potrebbe provocare guasti al PLC o al sistema o danneggiare il PLC o i moduli del PLC. Tali precauzioni vanno tassativamente rispettate. • Utilizzare i moduli solo con l’alimentazione e le tensioni specificate nei manuali operativi. Alimentazione e tensioni diverse possono danneggiare i moduli. • Adottare misure adeguate per stabilizzare l’alimentazione, se instabile, in modo che sia conforme ai valori nominali. • Predisporre interruttori automatici e altre misure di sicurezza contro i cortocircuiti nel cablaggio esterno. • Non applicare tensioni superiori alla tensione d’ingresso nominale sui moduli d’ingresso. I moduli di ingresso possono essere distrutti. • Non applicare tensioni superiori alla capacità di commutazione massima sui moduli di uscita. I moduli di uscita possono essere distrutti. • Scollegare sempre il terminale LG quando si eseguono i controlli della tensione. • Installare tutti i moduli secondo le istruzioni riportate nei manuali operativi. Un’installazione scorretta può provocare malfunzionamenti. • Predisporre una schermatura adeguata durante l’installazione nei seguenti ambienti: – ambienti soggetti a elettricità statica o altre fonti di disturbo. – ambienti soggetti a forti campi elettromagnetici. – ambienti potenzialmente esposti a radiazioni. – ambienti vicini a linee di alimentazione. • Assicurarsi di aver serrato a fondo le viti del rack, dei terminali e dei connettori dei cavi. • Non tentare di smontare i moduli, di ripararli o di modificarli in alcun modo. ix Conformità alle norme CE ! Attenzione Capitolo 6 Le seguenti precauzioni sono indispensabili per garantire la sicurezza generale del sistema. Tali precauzioni vanno tassativamente rispettate. • Predisporre doppi meccanismi di sicurezza per la gestione di segnali scorretti che possono essere generati da linee di segnale non continue o da interruzioni momentanee dell’alimentazione. • Predisporre circuiti a interlock esterni, circuiti limitatori ed altri circuiti di sicurezza, oltre a quelli presenti all’interno del PLC, per garantire la sicurezza. • Durante il cablaggio, lasciare l’etichetta adesiva sui fori per la circolazione dell’aria presenti sull’unità, per evitare che i cavi entrino nell’unità danneggiandosi. Rimuovere l’etichetta dopo aver completato il cablaggio e prima dell’accensione dell’unità, per evitare che questa possa surriscaldarsi. 6 Conformità alle norme CE Osservare le seguenti precauzioni durante l’installazione dei PLC C200HX/HG/ HE in conformità alle norme CE. Predisporre un rivestimento isolante rinforzato o doppio per la fonte di alimentazione c.c. collegata al modulo I/O e per il modulo di alimentazione. Utilizzare per il modulo I/O c.c. una fonte di alimentazione separata dall’alimentazione esterna per il modulo di uscita a relè. x CAPITOLO 1 Introduzione Questo capitolo presenta una breve panoramica della storia dei Controllori Logici Programmabili, introducendo i termini utilizzati comunemente nella programmazione in diagramma a relè. Viene inoltre brevemente descritto il processo di programmazione e il funzionamento di un PLC, insieme alla terminologia di base utilizzata nei PLC OMRON. Sono inoltre presentati i dispositivi periferici utilizzati con i PLC C200HX/HG/HE, una tabella di altri manuali utilizzabili per applicazioni PLC speciali e le nuove caratteristiche dei PLC C200HX/HG/HE. 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Origini della logica PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia del prodotto OMRON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Panoramica del funzionamento del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivi periferici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manuali disponibili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caratteristiche C200HX/HG/HE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8-1 Potenziamento di C200HX/HG/HE versione ZE . . . . . . . . . . . . . . . . . . . . . . . . . 1-8-2 Funzionalità di C200HS e C200HX/HG/HE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8-3 Compatibilità dei programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 4 5 5 6 6 7 8 1 Capitolo 1-2 Origini della logica PLC 1-1 Panoramica Un PLC (Controllore Logico Programmabile) è di fatto una CPU (unità centrale di elaborazione) contenente un programma, collegata a dispositivi di ingresso e di uscita (I/O). Il programma controlla il PLC in modo che quando un segnale di ingresso proveniente da un dispositivo di ingresso va ON, si ottiene la risposta appropriata. La risposta comprende di solito l’attivazione di un segnale di uscita per qualche dispositivo di uscita. I dispositivi di ingresso possono essere sensori fotoelettrici, pulsanti su pannelli di controllo, interruttori di fine corsa o qualsiasi altro dispositivo in grado di produrre segnali che entrano nel PLC. I dispositivi di uscita possono essere solenoidi, switch che attivano spie, relè che accendono motori o altri dispositivi attivabili dai segnali prodotti dal PLC. Per esempio, un sensore che rileva un prodotto in movimento attiva un ingresso nel PLC. Il PLC risponde mandando ON un’uscita che attiva un dispositivo di spinta, che a sua volta sposta il prodotto su un altro trasportatore per la successiva lavorazione. Un altro sensore, posto più in alto del primo, manda ON un ingresso diverso per segnalare che il prodotto è troppo alto. Il PLC risponde attivando un altro dispositivo di spinta, posto prima di quello menzionato, che sposta il prodotto troppo alto in un contenitore per rifiuti. Anche se questo esempio comprende soltanto due ingressi e due uscite, si tratta di una tipica operazione di controllo realizzabile con i PLC. In realtà, anche questo esempio è molto più complesso di quanto può apparire, a causa della sincronizzazione necessaria, e cioè: “Come stabilisce il PLC quando attivare un dispositivo di spinta?” Anche operazioni molto più complicate, comunque, sono possibili. Il problema è come ottenere al momento giusto i segnali di controllo desiderati dagli ingressi disponibili. Per ottenere un controllo corretto, i PLC C200HX/HG/HE utilizzano un tipo di logica PLC, detta programmazione in diagramma a relè. Il presente manuale descrive la programmazione in diagramma a relè, preparando il lettore alla programmazione e all’utilizzo del PLC. 1-2 Origini della logica PLC I PLC derivano storicamente dai sistemi di controllo a relè. Anche se i circuiti integrati e la logica interna del PLC hanno sostituito relè, temporizzatori, contatori e simili dispositivi separati, il PLC in realtà funziona come se esistessero ancora tali dispositivi. Il controllo del PLC, comunque, assicura funzioni e precisione tali da ottenere una maggiore flessibilità e affidabilità rispetto ai relè. Anche i simboli e gli altri termini usati per descrivere il funzionamento del PLC derivano dal controllo a relè e costituiscono la base del metodo di programmazione in diagramma a relè. La maggior parte dei termini usati per descrivere tali simboli e concetti, comunque, fa parte della terminologia dei computer. Terminologia relè e PLC La terminologia utilizzata in tutto il manuale è piuttosto diversa da quella usata per i relè, ma i concetti sono gli stessi. La seguente tabella mostra la differenza tra terminologia per relè e quella per PLC usata per i PLC OMRON. Relè Equivalente PLC contatto ingresso o condizione bobina uscita o bit di lavoro relè NA contatto normalmente aperto relè NC contatto normalmente chiuso In realtà, non vi è un’equivalenza completa tra questi termini. Il termine ”condizione” è usato soltanto per descrivere in generale i programmi in diagramma a relè e, nello specifico, è equivalente a uno dei set di istruzioni base. I termini ”ingresso” e ”uscita” non sono tipici della programmazione, eccetto che in riferimento ai bit di I/O assegnati ai segnali di ingresso e di uscita del PLC. I contatti normalmente aperto e normalmente chiuso sono illustrati in 4-4 Diagrammi a relè di base. 2 Terminologia del prodotto OMRON 1-3 Capitolo 1-4 Terminologia PLC Anche se presenti nel Glossario alla fine di questo manuale, i seguenti concetti sono essenziali per capire funzionamento del PLC. PLC Poiché i PLC C200HX/HG/HE sono dotati di rack, non esiste un unico prodotto PLC C200HX/HG/HE. E’ questo il motivo per cui si parla di configurazione del PLC, che è appunto una configurazione di moduli più piccoli. Per poter utilizzare un PLC funzionale, sarebbe necessario avere un rack CPU con almeno un modulo installato, in grado di fornire i punti di I/O. Quando parliamo di PLC, comunque, ci riferiamo in genere alla CPU e a tutti i moduli direttamente controllati mediante il programma. Non sono compresi i dispositivi di I/O collegati agli ingressi e alle uscite del PLC. Se i termini riportati nella descrizione di un PLC non sono sufficientemente noti, fare riferimento al Capitolo 2 Considerazioni sull’hardware per ulteriori spiegazioni. Ingressi e uscite Un dispositivo collegato al PLC che invia un segnale al PLC è detto dispositivo di ingresso; il segnale inviato è detto segnale di ingresso. Un segnale entra nel PLC attraverso i terminali o i pin su un connettore di un modulo. Il punto in cui un segnale entra nel PLC è detto punto di ingresso. Tale punto di ingresso è assegnato a una locazione in memoria che ne riflette lo stato, e cioè ON o OFF. Tale locazione di memoria è detta bit di ingresso. La CPU, nel ciclo di elaborazione normale, controlla lo stato di tutti i punti di ingresso e attiva o disattiva di conseguenza i corrispondenti bit di ingresso. In memoria ci sono anche i bit di uscita, assegnati ai punti di uscita sui moduli, attraverso cui i segnali di uscita sono inviati ai dispositivi di uscita; un bit di uscita è attivato quindi per inviare un segnale a un dispositivo di uscita attraverso un punto di uscita. La CPU attiva o disattiva periodicamente i punti di uscita in base allo stato dei bit di uscita. Questi termini sono utilizzati nella descrizione di diversi aspetti del funzionamento del PLC. Durante la programmazione, ci si occupa delle informazioni contenute in memoria e quindi ci si riferisce a bit di I/O. Quando si parla dei moduli che collegano il PLC al sistema controllato e dei punti su tali moduli attraverso cui i segnali entrano ed escono dal PLC, si ci riferisce ai punti di I/O. Durante il cablaggio dei punti di I/O, ci si riferisce alla loro controparte fisica, siano essi terminali o pin del connettore. Quando si parla dei segnali che entrano o escono dal PLC, ci si riferisce ai segnali di ingresso e di uscita o, talvolta, solo agli ingressi e alle uscite. Dipende dagli aspetti del funzionamento del PLC considerati al momento. Sistema controllato e sistema di controllo 1-4 Il sistema di controllo comprende il PLC e tutti i dispositivi di I/O utilizzati per controllare un sistema esterno. Un sensore che fornisce informazioni per ottenere il controllo è un dispositivo di ingresso che fa parte chiaramente del sistema di controllo. Il sistema controllato è il sistema esterno controllato dal programma del PLC mediante tali dispositivi di I/O. Talvolta, i dispositivi di I/O possono essere considerati parte del sistema controllato, per es. un motore usato per azionare un nastro trasportatore. Terminologia del prodotto OMRON I prodotti OMRON si suddividono in vari gruppi funzionali che hanno nomi generici. L’appendice A Modelli standard elenca i prodotti in base a tali gruppi. Il termine modulo è usato per tutti i prodotti PLC OMRON. Anche se un modulo è uno qualsiasi dei blocchi che formano un PLC C200HX/HG/HE, il suo significato è in genere, ma non sempre, limitato al contesto, riferendosi ai moduli installati su un rack. La maggior parte di questi prodotti, ma non tutti, hanno nomi che comprendono la parola Modulo. Il gruppo maggiore dei prodotti OMRON è rappresentato dai moduli di I/O. Questi comprendono tutti i moduli installati su rack che forniscono punti di ingresso o di uscita non dedicati per applicazioni generali. I moduli di I/O hanno vari collegamenti e caratteristiche. 3 Panoramica del funzionamento del PLC Capitolo 1-5 I moduli di I/O ad alta densità sono progettati per fornire funzioni di I/O ad alta densità e comprendono i moduli di I/O ad alta densità gruppo 2 e i moduli di I/O ad alta densità speciali. I moduli di I/O speciali sono moduli dedicati progettati per soddisfare esigenze specifiche. Sono compresi i moduli di I/O ad alta densità, i moduli di controllo posizione, i moduli contatore veloce e i moduli di I/O analogici. I moduli di comunicazione sono utilizzati per creare sistemi che collegano più PLC o un singolo PLC ai punti di I/O remoti. I moduli di comunicazione comprendono i moduli di I/O remoti, i moduli di comunicazione PLC, i moduli Host Link, i moduli SYSMAC NET e i moduli SYSMAC LINK. Altri gruppi di prodotti comprendono i dispositivi di programmazione, i dispositivi periferici e i prodotti per guida DIN. 1-5 Panoramica del funzionamento del PLC Segue la descrizione delle fasi fondamentali della programmazione e del funzionamento di un PLC C200HX/HG/HE. Presupponendo di avere già acquistato uno o più PLC, occorre conoscere sufficientemente le fasi uno e due, illustrate brevemente in seguito. Il presente manuale spiega le fasi da tre a sei, otto e nove. Per ogni fase sono elencati i capitoli del manuale contenenti maggiori informazioni. 1, 2, 3... 1. Stabilire cosa deve fare il sistema controllato, in che ordine e quando. 2. Definire i rack e i moduli necessari. Fare riferimento alla Guida di installazione PLC C200HX/HG/HE. Se è necessario un sistema di comunicazione, fare riferimento al Manuale di sistema specifico. 3. Sulla carta, assegnare tutti i dispositivi di ingresso e di uscita ai punti di I/O sui moduli e stabilire quali bit di I/O saranno assegnati a ognuno. Se il PLC comprende moduli di I/O speciali o sistemi di comunicazione, fare riferimento ai Manuali Operativi o ai Manuali di sistema per i dettagli sull’assegnazione dei bit di I/O. (Capitolo 3 Aree di memoria) 4. Utilizzando i simboli dei relè, scrivere un programma che rappresenta la sequenza delle operazioni necessarie e le loro interrelazioni. Programmare interventi appropriati per tutte le situazioni di emergenza possibili. (Capitolo 4 Scrittura e inserimento dei programmi, Capitolo 5 Istruzioni, Capitolo NO TAG Tempo di esecuzione del programma) 5. Inserire il programma e tutti i parametri operativi richiesti nel PLC. (4-7 Inserimento, modifica e controllo dei programmi.) 6. Eseguire il debug del programma, prima per eliminare tutti gli errori sintattici, e poi per individuare errori di esecuzione. (4-7, Inserimento, modifica e controllo dei programmi, Capitolo NO TAG Monitoraggio ed esecuzione del programma e Capitolo NO TAG Gestione degli errori). 7. Collegare il PLC al sistema controllato. Questa fase in realtà può essere avviata non appena è stata completata la fase 3. Fare riferimento alla Guida di installazione PLC C200HX/HG/HE e ai Manuali Operativi e ai Manuali di sistema per i dettagli sui singoli moduli. 8. Esaminare il programma in una situazione di controllo reale ed eseguire, se necessario, gli aggiustamenti di dettaglio. (Capitolo NO TAG Monitoraggio ed esecuzione del programma e Capitolo NO TAG Gestione degli errori) 9. Registrare due copie complete del programma su master e conservarle in un posto sicuro. (4-7 Inserimento, modifica e controllo dei programmi) Progettazione del sistema di controllo La progettazione del sistema di controllo è la prima fase nell’automazione di qualsiasi processo. Un PLC può essere programmato e azionato soltanto dopo aver approfondito l’intero sistema di controllo. La progettazione del sistema di controllo richiede, prima di tutto, una conoscenza precisa del sistema da controllare. Perciò, la prima fase nella progettazione di un sistema di controllo è costituita dalla definizione dei requisiti del sistema controllato. Requisiti di ingresso/uscita La prima cosa da considerare è il numero dei punti di ingresso e di uscita richiesti dal sistema controllato. A questo scopo, occorre identificare ogni dispositivo 4 Capitolo 1-7 Manuali disponibili che deve inviare un segnale di ingresso al PLC o che deve ricevere un segnale di uscita proveniente dal PLC. Va ricordato che il numero dei punti di I/O disponibili dipende dalla configurazione del PLC. Fare riferimento a 3-3 Area IR per i dettagli sulle funzioni di I/O e sull’assegnazione dei bit di I/O ai punti di I/O. Sequenza, sincronizzazione e relazioni Successivamente, deve essere definita la sequenza delle operazioni di controllo e la relativa sincronizzazione. Devono essere identificate le relazioni fisiche tra i dispositivi di I/O e i tipi di risposta presumibili. Per esempio, dal punto di vista funzionale, un interruttore fotoelettrico potrebbe essere collegato a un motore mediante un contatore all’interno del PLC. Quando il PLC riceve un ingresso da un interruttore di start, può avviare il motore. Il PLC può quindi arrestare il motore quando il contatore ha ricevuto un numero specifico di segnali di ingresso dall’interruttore fotoelettrico. Ogni compito correlato deve essere definito in modo analogo, dall’inizio alla fine dell’operazione di controllo. Requisiti dei moduli I moduli reali che saranno installati o collegati ai rack del PLC devono essere definiti in base ai requisiti dei dispositivi di I/O. Devono essere considerate le caratteristiche hardware reali, come i livelli di tensione e di corrente, e le caratteristiche funzionali, come quelle richieste dai moduli di I/O speciali o dai sistemi di comunicazione. In molti casi, i moduli di I/O speciali, i moduli di I/O intelligenti o i sistemi di comunicazione possono ridurre enormemente il carico di programmazione. Ulteriori dettagli sui moduli e sui sistemi di comunicazione sono contenuti nei Manuali Operativi e nei Manuali di sistema. Al termine della progettazione del sistema di controllo, inizia la programmazione, il debug e il funzionamento, come descritto nei restanti capitoli del presente manuale. 1-6 Dispositivi periferici Nella programmazione, possono essere utilizzati i seguenti dispositivi periferici, per inserire/monitorare il programma del PLC o per eliminarne gli errori, oppure per fungere da interfaccia tra il PLC e i dispositivi esterni per la generazione del programma o dei dati dell’area di memoria. I numeri dei modelli di tutti i dispositivi elencati sono contenuti nell’Appendice A Modelli standard. Nelle seguenti descrizioni, i nomi dei prodotti OMRON sono riportati in grassetto. Console di Programmazione La Console di Programmazione è la forma più semplice di dispositivo di programmazione per i PLC OMRON. Tutte le Console di Programmazione sono collegate direttamente alla CPU senza interfaccia. Software di supporto SYSWIN 1-7 Il SYSWIN è il Software di supporto attualmente compatibile con i PLC C200HX/ HG/HE. Questo software è stato realizzato per essere eseguito su PC/AT IBM o compatibili e consente di effettuare tutte le operazioni della Console di programmazione. I programmi del PLC possono essere scritti su schermo in forma di diagramma a relè o in forma mnemonica. Durante la redazione, il programma è visualizzato su un display, semplificando così le operazioni di conferma e modifica. Anche i controlli della sintassi sono eseguiti nei programmi prima di essere trasferiti nel PLC. Manuali disponibili La seguente tabella elenca altri manuali che potrebbero essere utili per programmare e/o utilizzare il PLC C200HX/HG/HE. Ai singoli moduli sono allegati anche i Manuali Operativi e/o le Guide operative, necessari per il cablaggio e altre operazioni. Nome N. Man. Guida operativa Console di accesso dati W173 Manuali operativi Modulo di controllo posizione NC111: W137 NC112: W128 NC211: W166 Guida operativa Moduli di I/O ad alta densità e multiplex W133 Contenuto Procedure di monitoraggio dell’area dati e di modifica dati per la Console di accesso dati Informazioni sul modulo di controllo posizione Informazioni sui moduli di controllo ad alta densità 5 Capitolo 1-8 Caratteristiche C200HX/HG/HE Nome Guida operativa Moduli di I/O analogici N. Man. W127 W325 Contenuto Informazioni sui moduli di I/O analogici C200H-AD001 e C200H-DA001 Informazioni sui moduli di I/O analogici C200H-AD003, C200H-DA003, C200-DA004 e C200H-MAD01 Manuale operativo Modulo di ingresso analogico W229 Guida operativa Modulo sensore di temperatura W124 Informazioni sul modulo di ingresso analogico C200H-AD002 Informazioni sul modulo sensore di temperatura Manuale operativo Modulo di controllo temperatura Manuale operativo Modulo contatore veloce W225 Informazioni sul modulo di controllo temperatura W141 Informazioni sul modulo contatore veloce Manuale operativo Modulo ASCII W165 Informazioni sul modulo ASCII Manuale operativo Modulo vocale W172 Informazioni sul modulo vocale Guida operativa Modulo sensore ID W153 Informazioni sul modulo sensore ID Manuale operativo Modulo logico fuzzy W208 Informazioni sul modulo logico fuzzy Manuale operativo software di supporto fuzzy W210 Manuale operativo Modulo posizionatore camma W224 Informazioni sul software di supporto fuzzy che supporta i moduli logici fuzzy Informazioni sul modulo posizionatore camma Manuale operativo Modulo di comunicazione SYSMAC NET W114 Manuale di sistema SYSMAC LINK W174 Manuale di sistema I/O remoti cablati (SYSMAC BUS) Manuale di sistema I/O remoti ottici (SYSMAC BUS) Manuale di sistema di comunicazione PLC W120 Manuale di sistema Host Link (SYSMAC WAY) Manuale operativo di comunicazione unità di controllo W143 Manuale operativo Modulo scheda PLC W313 Manuale operativo Modulo di controllo PID W241 Manuale operativo Modulo di controllo temperatura caldo/freddo W240 1-8 W136 W135 W309 Informazioni sulla creazione di un sistema di comunicazione SYSMAC NET e quindi una LAN ottica che integra i PLC con i computer e altri dispositivi periferici Informazioni sulla creazione di un Sistema SYSMAC LINK per abilitare il trasferimento automatico dei dati, la programmazione e il trasferimento dei dati programmati tra i PLC del Sistema Informazioni sulla creazione di un Sistema I/O remoti cablati per abilitare la funzione I/O remoti Informazioni sulla creazione di un Sistema I/O remoti ottici per abilitare la funzione I/O remoti Informazioni sulla creazione di un Sistema di comunicazione PLC per il trasferimento automatico dei dati tra i PLC Informazioni aulla creazione di un Sistema Host Link per gestire i PLC da un computer ‘host’ Informazioni sulla creazione di un Sistema di comunicazione PLC per trasferire automaticamente/manualmente i dati tra i PLC Informazioni sull’utilizzo di un modulo scheda PLC per utilizzare le schede PLC Informazioni sul modulo di controllo PID Informazioni sul modulo di controllo temperatura caldo/freddo Caratteristiche C200HX/HG/HE I nuovi moduli CPU C200HX/HG/HE-ZE versione ZE-dispongono di una serie di istruzioni più vasta rispetto a quella dei moduli CPU C200HX/HG/HE originali e tali istruzioni vengono identificate nei nuovi moduli CPU con numeri di funzione di tre cifre. 1-8-1 Potenziamento di C200HX/HG/HE versione ZE Istruzioni La seguente tabella riporta le istruzioni aggiunte ai moduli CPU C200HX/HG/ HE versione ZE. Istruzioni Istruzioni di controllo bit Istruzioni speciali 6 BIT TEST: TST(350) and TSTN(351) EM BANK TRANSFER: BXFR(125) Capitolo 1-8 Caratteristiche C200HX/HG/HE Istruzioni Istruzioni di i comparazione ingressi Istruzioni di matematica i simbolic simbolica Altri potenziamenti Uguaglianza: =(300), =L(301), =S(302), =SL(303) Disuguaglianza: <>(305), <>L(306), <>S(307), <>SL(308) Minore di: <(310), <L(311), <S(312), <SL(313) Minore uguale di: <=(315), <=L(316), <=S(317), <=SL(318) Maggiore di: >(320), >L(321), >S(322), >SL(323) Maggiore uguale di: >=(325), >=L(326), >=S(327), >=SL(328) Addizione binaria: +(400)/+L(401)/+C(402)/+CL(403) Addizione in BCD: +B(404)/ +BL(405)/+BC(406)/+BCL(407) Sottrazione binaria: –(410)/ –L(411)/–C(412)/–CL(413) Sottrazione in BCD: –B(414)/ –BL(415)/–BC(416)/–BCL(417) Moltiplicazione binaria: *(420)/ *L(421)/*U(422)/*UL(423) Moltiplicazione in BCD: *B(424)/ *BL(425) Divisione binaria: /(430)/ /L(431)//U(432)//UL(433) Divisione in BCD: /B(434)/ /BL(435) I seguenti potenziamenti sono stati effettuati anche per i moduli CPU versione ZE. • I numeri di funzione sono stati trasformati in tre cifre in modo da poter utilizzare quasi tutte le istruzioni senza dover allocare numeri di funzione. • Gli indirizzi dell’Area EM possono essere direttamente riportati negli operandi delle istruzioni. Ciò raddoppia essenzialmente la memoria del canale a cui è possibile accedere direttamente dal programma (i canali dell’area DM 6,655 più i canali dell’Area EM 6,143). • La capacità massima della memoria utente può essere raddoppiata da 32K canali a 64K canali. 1-8-2 Funzionalità di C200HS e C200HX/HG/HE La seguente tabella mostra le nuove funzionalità dei PLC C200HX/HG/HE, confrontandole con quelle del C200HS. Funzione Memoria Assegnazione di I/O Memoria utente (UM) Funzionalità C200HX/HG/HE DM normale C200HE–CPU11–ZE: 3.2K canali C200HE–CPU2–ZE: 7.2K canali C200HG–CPU3–ZE: 15.2K canali C200HX–CPU4–ZE: 31.2K canali C200HX–CPU5–ZE: 63.2K canali 6.144 canali (DM 0000... DM 6143) DM fissa (Il C200HE–CPU11–E non ha DM 4000... DM 5999.) 512 canali (DM 6144... DM 6655) DM di espansione 0... 3.000 canali (DM 7000... DM 9999) Data Memory estesa (EM) 6.144 canali (EM 0000... EM 6143) Rack di espansione 3 rack C200HS 15.2K canali 6.144 canali (DM 0000... DM 6143) 512 canali (DM 6144... DM 6655) 0... 3.000 canali (DM 7000... DM 9999) Nessuno C200HE: nessuno C200HG: 6.144 canali × 1 banco C200HX: 6.144 canali × 3 banchi 2 rack (2 rack nel C200HE–CPU–ZE o C200HX/HG–CPU3–ZE/4–ZE ) Moduli di I/O multipunto Gruppo 2 Moduli di I/O speciali Numeri di modulo da 0 a 9, da A a F (Incompatibile con il C200HE–CPU11–E.) (Numeri di modulo da 0 a 9 con il C200HE–CPU2–E, C200HX/HG–CPU3–ZE/4–ZE.) Numeri di modulo 0 a 9, da A a F (Numeri di modulo da 0 a 9 con C200HE–CPU–ZE o C200HX/HG–CPU3–ZE/4–ZE.) Numeri di modulo da 0 a 9 Numeri di modulo da 0 a 9 7 Capitolo 1-8 Caratteristiche C200HX/HG/HE Funzione Tempo di esecuzione Funzionalità C200HX/HG/HE Istruzioni base (LD) 0.104 µs (C200HX) 0.156 µs (C200HG) 0.313 µs (C200HE) 0.375 µs MOV(021) 0.417 µs (C200HX) 0.625 µs (C200HG) 1.250 µs (C200HE) 19.00 µs ADD(030) 16.65 µs (C200HX/HG) 31.45 µs (C200HE) C200HX/HG: da 1/3 a 2/3 del tempo C200HS C200HE: da 3/4 a 4/5 del tempo C200HS 0.7 ms (C200HX/HG) 2.1 ms (C200HE) Uguale al C200HS, anche se parte del rinfresco di I/O speciale richiede da 1/2 a 2/3 del tempo del C200HS. 40.10 µs Porta RS-232C Disponibile in C200HX/HG/HE-CPU4-ZE/6-ZE/8-ZE Funzione di clock Disponibile in tutti eccetto nel C200HE–CPU11–ZE Le schede di comunicazione possono essere installate in tutti i PLC eccetto nel C200HE–CPU11–ZE. (Numeri di modello scheda: C200HW–COM01/04–E) Disponibile in C200HS-CPU2-E /3-E Disponibile in tutti i modelli Disponibile nel C200HS–CPU3–E Altre istruzioni Processi comuni (elaborazione END(001)) Tempo di rinfresco I/O Funzioni del modulo CPU Funzioni SYSMAC NET e SYSMAC LINK Schede di comunicazione C200HS --- Le schede di comunicazione possono essere installate in tutti i PLC, ad eccezione del C200HE-CPU11-ZE. Queste schede possono fornire le seguenti funzioni: --0.7 ms --- --- SYSMAC NET Link e SYSMAC LINK, Le porte di comunicazione (Porte 1 e 2) e le funzioni macro di protocollo Moduli I/O speciali --- Le istruzioni IORD(222) e IOWR(223) consentono di trasferire i dati a/da moduli I/O speciali. --- Interrupt Moduli di ingresso ad interrupt Interrupt scheda di comunicazione Caratteristiche risposta 2 moduli (16 ingressi) 1 modulo (8 ingressi) Può essere impostato --- Uguali al C200HS, anche se nel C200HW-SLK è possibile una risposta di 1 ms Modalità normale: 10 ms Modalità veloce: 1 ms PT SYSMAC LINK --- NT Link (1:1) o NT Link (1:N) Tempo di servizio (Possono essere collegati fino a 8 PT dalla porta RS–232C mediante adattatore di collegamento RS–422/485. Quando è utilizzato il C200HE–CPU–E con una scheda di comunicazione, possono essere collegati soltanto 3 PT) 3.5 ms. max (1 livello operativo) Programmazione remota Effetto sul tempo di risposta Possibile dalla porta periferiche o dalle porte RS–232C (incl. schede di comunicazione). Nessuno (Sempre 0 ms quando è usato SYSMAC NET o SYSMAC LINK.) NT Link (1: 1) 10.8 ms max. (1 livello operativo) Possibile dalla porta periferiche. 10 ms in qualsiasi modalità 1-8-3 Compatibilità dei programmi I programmi sviluppati per C200H, C200HS e C200HX/HG/HE possono essere utilizzati nei PLC C200HX/HG/HE(-ZE). Le procedure dettagliate delle singole 8 Capitolo 1-8 Caratteristiche C200HX/HG/HE fasi di trasferimento dei programmi sono descritte nel Manuale Software SYSWIN. Precauzioni per C200HX/HG/HE Osservare le seguenti precauzioni nel trasferire i programmi C200H in un PLC C200HX/HG/HE. • Se un programma del C200H comprendente l’istruzione SET SYSTEM (SYS(49)) viene trasferito nel C200HX/HG/HE, i parametri operativi impostati da questa istruzione saranno trasferiti nell’area di setup del PLC del C200HX/ HG/HE (DM 6600, DM 6601 e DM 6655) e sovrascriveranno tutti i parametri correnti. E’ necessario confermare la correttezza dei parametri in tali canali prima di di utilizzare il PLC dopo il trasferimento del programma. • Se il programma del C200H accede al registro degli errori del C200H in DM 0969... DM 0999, gli indirizzi dei canali devono essere modificati in DM 6030... DM 6000, che è l’area del registro degli errori per il C200HX/HG/HE. • Tutti i programmi dipendenti dal tempo di scansione (cioè dal tempo necessario per eseguire qualsiasi parte del programma) devono essere regolati se utilizzati sul C200HX/HG/HE, che ha un tempo di scansione molto più rapido. Precauzioni per C200HX/HG/HE versione ZE Osservare le seguenti precauzioni utilizzando un modulo PLC C200HX/HG/ HE-CPU-ZE. • I moduli CPU C200HX/HG/H versione ZE non supportano il formato differenziale dell’istruzione TEN KEY (@TKY). Non utilizzare questa istruzione. • Fare attenzione nel convertire le istruzioni di espansione nei programmi C200HX/HG/HE quando queste vengono importate, copiate o incollate nei programmi C200HX/HG/HE versione ZE. Se vengono utilizzati numeri di funzione dell’istruzione di espansione di default, questi verranno automaticamente convertiti in numeri di funzione di tre cifre. Le istruzioni elencate nella colonna a destra della seguente tabella non verranno convertite in modo adeguato, quindi verrà visualizzato un messaggio indicante che non esiste alcun numero di funzione per esse. Utilizzare le istruzioni elencate nella colonna a destra oppure correggere il programma dopo la conversione (è’ possibile utilizzare persino le istruzioni che non vengono convertite, assegnando ad esse numeri di funzione come istruzioni di espansione.) Istruzioni che non vengono convertite automaticamente Istruzioni consigliate ADBL +CL DBS / DBSL /L MBS * MBSL *L SBBL –CL BXF2 BXFR (Specifica DM di espansione direttamente come un operando.) XFR2 XFER (Specifica DM di espansione direttamente come un operando.) IEMS Nessuna (E’ possibile specificando DM di espansione direttamente come un operando.) Utilizzo della memoria interna La seguente procedura mostra le fasi di trasferimento dei programmi del C200H alla memoria utente all’interno del C200HX/HG/HE. 1, 2, 3... 1. Trasferire il programma e gli altri dati necessari nell’area di lavoro SSS. I dati possono provenire da una CPU C200H, da dischetto o da un modulo di memoria C200HS. Per il trasferimento da una CPU C200H, impostare il PLC sul C200H, collegare l’SSS al C200H, andare in modalità online e trasferire il programma e 9 Caratteristiche C200HX/HG/HE O 2. 3. 4. 5. 6. 7. 8. 9. Utilizzo delle cartucce di memoria 1, 2, 3... 10 Capitolo 1-8 tutti gli altri dati necessari nell’area di lavoro SSS. Probabilmente dovranno essere trasferiti i dati DM e la tabella I/O, se è stata creata tale tabella per il C200H. Per il trasferimento da un hard disk, impostare l’SSS sulla modalità offline e caricare il programma, i dati DM e i dati della tabella I/O nell’area di lavoro SSS. Questi dovranno essere caricati separatamente. Probabilmente dovranno essere caricati i dati DM e la tabella I/O, se è stata creata tale tabella per il C200H. Andare in modalità offline se l’SSS non è già offline. Modificare l’impostazione del PLC per l’SSS. Se si desidera trasferire i commenti I/O con il programma al C200HX/ HG/HE, assegnare l’area UM ai commenti I/O. Collegare l’SSS al C200HX/HG/HE e andare in modalità online. Controllare che il pin 1 sulla CPU del C200HX/HG/HE sia OFF per permettere la scrittura nell’area UM. Trasferire il programma e gli altri dati necessari al C200HX/HG/HE. Probabilmente dovranno essere trasferiti i dati DM e la tabella I/O, se è stata creata tale tabella per il C200H. Spegnere e poi riaccendere il C200HX/HG/HE per resettarlo. Verificare l’esecuzione del programma prima di avviare le operazioni reali. La seguente procedura mostra le fasi di trasferimento dei programmi del C200H al C200HX/HG/HE mediante le cartucce di memoria EEPROM o EPROM. Ciò permette la lettura automatica dei dati del programma dalla cartuccia di memoria al momento dell’avvio del C200HX/HG/HE. Le prime quattro fasi di questa procedura sono uguali a quelle usate per il trasferimento diretto nella memoria interna del C200HX/HG/HE (area UM). 1. Trasferire il programma e i dati nell’area di lavoro SSS. I dati possono provenire da una CPU C200H, da un dischetto o da un modulo di memoria. Per il trasferimento da una CPU C200H, impostare l’SSS sul C200H, collegare l’SSS al C200H, andare in modalità online e trasferire il programma e tutti gli altri dati necessari nell’area di lavoro SSS. Probabilmente dovranno essere trasferiti i dati DM e la tabella I/O, se è stata creata tale tabella per il C200H. O Per il trasferimento da un hard disk, impostare l’SSS sulla modalità offline e caricare il programma, i dati DM e i dati della tabella I/O nell’area di lavoro SSS. Questi dovranno essere caricati separatamente. Probabilmente dovranno essere caricati i dati DM e la tabella I/O, se è stata creata tale tabella per il C200H. 2. Andare in modalità offline se l’SSS non è già offline. 3. Modificare l’impostazione del PLC per l’SSS. 4. Modificare l’impostazione del PLC per l’SSS sul C200HX/HG/HE. 5. Se si desidera trasferire i commenti I/O con il programma sul C200HX/ HG/HE, assegnare l’area UM ai commenti I/O. 6. Assegnare i canali DM di espansione da DM 7000 a DM 7999 nell’area UM, utilizzando l’operazione di assegnazione UM dall’SSS. 7. Copiare DM 1000... DM 1999 in DM 7000... DM 7999. 8. Scrivere “0100” in DM 6602 per trasferire automaticamente il contenuto di DM 7000... DM 7999 in DM 1000... DM 1999 al momento dell’avvio. 9. Per il trasferimento in una cartuccia di memoria EEPROM, applicare la seguente procedura. a) Collegare l’SSS al C200HX/HG/HE e andare in modalità online. b) Controllare che il pin 1 sulla CPU del C200HX/HG/HE sia OFF per permettere la scrittura nell’area UM. c) Trasferire il programma e tutti gli altri dati necessari nel C200HX/HG/ HE. Probabilmente dovranno essere trasferiti i dati DM e la tabella I/O, Caratteristiche C200HX/HG/HE Capitolo 1-8 se è stata creata tale tabella per il C200H. Specificare il trasferimento dell’area DM di espansione e, se si desidera, dell’area dei commenti I/O. d) Mandare ON SR 27000 dall’SSS per trasferire i dati UM nella cartuccia di memoria e continuare con la fase 10. 10. Mandare ON il pin 2 sul commutatore DIP del C200HX/HG/HE per consentire il trasferimento automatico dei dati dalla cartuccia di memoria nella CPU al momento dell’avvio. 11. Spegnere e poi riaccendere il C200HX/HG/HE per resettarlo e trasferire i dati dalla cartuccia di memoria alla CPU. 12. Verificare l’esecuzione del programma prima di avviare le operazioni reali. 11 Caratteristiche C200HX/HG/HE 12 Capitolo 1-8 CAPITOLO 2 Considerazioni sull’hardware Questo capitolo contiene informazioni sugli aspetti hardware del C200HX/HG/HE relativi alla programmazione e al funzionamento del software. Sono inclusi i componenti della CPU, la configurazione di base del PLC, le caratteristiche della CPU e le cartucce di memoria. Tali informazioni sono trattate in dettaglio nella Guida di installazione C200HX/HG/HE. 2-1 2-2 2-3 2-4 2-5 2-6 Componenti della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1-1 Spie della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1-2 Collegamento dei dispositivi periferici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configurazione del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caratteristiche della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cartucce di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4-1 Impostazioni hardware e software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4-2 Scrittura/lettura dati UM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4-3 Scrittura/lettura dati IOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funzionamento senza batteria di riserva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commutatore DIP della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 15 17 17 18 18 19 20 21 22 13 Capitolo 2-1 Componenti della CPU 2-1 Componenti della CPU La figura seguente mostra i componenti principali della CPU. La CPU ha uno scomparto per il collegamento alla cartuccia di memoria. La cartuccia di memoria funziona come una RAM insieme alla RAM incorporata della CPU. Porta periferica Alla porta periferica può essere collegato un dispositivo periferico. Porta RS–232C La CPU ha una porta RS–232C incorporata. Scheda di comunicazione La CPU ha uno scomparto per il collegamento alla scheda di comunicazione. Commutatore DIP Il PLC funziona secondo le impostazioni del commutatore DIP della CPU. Il commutatore DIP della CPU per il C200HX/HG/HE ha sei pin. Fare riferimento alla seguente tabella per la funzione di ogni pin. (I sei pin sono OFF al momento della consegna del PLC.) 6 5 4 3 2 1 Cartuccia di memoria SU OFF⇔ON Pin 1 2 3 4 5 Funzione Impostazione ON OFF ON OFF ON OFF ON OFF ON I dati non possono essere scritti nell’area UM. I dati possono essere scritti nell’area UM. I dati della cartuccia di memoria sono automaticamente letti all’avvio. I dati della cartuccia di memoria non sono automaticamente letti all’avvio. La Console di Programmazione visualizza i messaggi in inglese. La Console di Programmazione visualizza i messaggi in giapponese. Le istruzioni estese possono essere impostate. Le istruzioni estese non possono essere impostate (default). Imposta le seguenti condizioni per la porta di comunicazione (incluso quando un CQM1-CIF02 è collegato alla porta periferiche): 1 bit di start, 7 bit di dati, parità pari, 2 bit di stop, 9.600 bps baud rate 6 OFF ON OFF Annulla le impostazioni precedenti. La Console di Programmazione è in modalità terminale di espansione (AR 0712 è ON). La Console di Programmazione è in modalità normale (AR 0712 è OFF). 2-1-1 Spie della CPU Le spie della CPU forniscono informazioni visive sul funzionamento generale del PLC. Anche se non sostituiscono la vera e propria programmazione degli errori che utilizza flag e altri indicatori di errore presenti nelle aree dati di memoria, tali spie permettono l’immediata conferma di un funzionamento corretto. Spia Significato RUN (verde) Accesa quando il PLC è normalmente operativo. ERR (rosso) Lampeggiante se il PLC individua un errore non fatale nel funzionamento. Il PLC continua a funzionare. Accesa se il PLC individua un errore fatale nel funzionamento. Il PLC si interrompe. Dopo l’arresto, la spia RUN risulterà spenta e tutti i segnali di uscita dei moduli di uscita saranno interrotti (spenti). INH (arancione) Accesa quando il flag carico OFF (bit AR) è ON; tutti i segnali di uscita dei moduli di uscita saranno interrotti (OFF). COMM Lampeggiante quando la CPU comunica con il dispositivo collegato alla porta periferiche o alla porta (arancione) RS–232C. 14 Capitolo 2-1 Componenti della CPU 2-1-2 Collegamento dei dispositivi periferici Una Console di Programmazione o un PLC/AT IBM con SSS o SYSWIN possono essere usati per programmare e monitorare i PLC C200HX/HG/HE. Console di Programmazione La Console di Programmazione C200H–PR027–E o CQM1–PRO01–E possono essere collegati come illustrato nella figura. Il C200H–PR027–E è collegato mediante il cavo di comunicazione della Console di Programmazione C200H-CN222 o C200H-CN422, che va acquistato separatamente. Un cavo di comunicazione è fornito con il CQM1–PRO01–E. Console di accesso dati Una console di accesso dati C200H-DAC01 può essere collegata mediante il cavo di comunicazione della Console di Programmazione C200H-CN222 o C200H-CN422, che va acquistato separatamente. Le seguenti operazioni non sono disponibili quando il C200H-DAC01 è utilizzato con il C200HX/HG/HE: Lettura e modifica del valore di predisposizione Visualizzazione messaggi di errore. 15 Capitolo 2-1 Componenti della CPU Un computer PLC/AT IBM o compatibile, con SYSMAC Support Software o SYSWIN può essere collegato come mostrato nella figura. PLC/AT IBM con SSS/SYSWIN C200H-LK201-V1 C200HX/HG/HE Montato direttamente Modulo Host Link Porta RS232-C Cavi di collegamento C200H-CN222/422 (2 m/4 m) RS232-2CN220 Cavo di collegamento console di programmazione Cavo di collegamento Dispositivo periferico Porta periferica CQM1-CIF02 Cavo di collegamento Software di supporto PC IBM/AT o compatibile Console di programmazione per C200H C200H-PRO27-E Console di accesso dati per C200H C200H-DAC01 SYSWIN-V3.X Console di programmazione CQM1-PRO01-E Nota Il connettore del cavo di comunicazione è un terminale maschio a 25 pin. E’ necessario un adattatore per il terminale maschio sub–D a 9 pin su lato PLC/AT IBM o compatibile. 16 Capitolo 2-3 Caratteristiche della CPU 2-2 Configurazione del PLC La configurazione base del PLC è costituita da due tipi di rack: un rack della CPU e i rack di espansione I/O. I rack di espansione I/O non sono parte integrante del sistema di base e sono utilizzati per aumentare il numero dei punti di I/O. In 3-3 Area IR è riportata una figura di tali rack. Un terzo tipo di rack, il rack slave, può essere utilizzato quando il PLC viene fornito insieme a un sistema di I/O remoti. Rack della CPU Un rack della CPU C200HX/HG/HE è costituito da tre componenti: (1) Backplane della CPU, in cui sono installati la CPU e altri moduli. (2) La CPU, che esegue il programma e controlla il PLC. (3) Altri moduli, come i moduli di I/O, i moduli di I/O speciali e i moduli di comunicazione, che forniscono ai terminali di I/O fisici i corrispondenti punti di I/O. Un rack della CPU C200HX/HG/HE può essere utilizzato da solo o può essere collegato ad altri rack per fornire altri punti di I/O. Il rack della CPU contiene tre, cinque, otto o dieci slot in cui installare altri moduli in base al backplane utilizzato. Rack di espansione I/O Un rack di espansione I/O può essere considerato un’estensione del PLC perché fornisce slot supplementari per altri moduli. E’ incorporato in un backplane di espansione I/O in cui si trova l’alimentazione e fino ad altri dieci moduli. Un rack di espansione I/O è sempre collegato alla CPU mediante connettori su backplane, consentendo la comunicazione tra i due rack. Al rack della CPU possono essere collegati in serie fino a tre rack di espansione I/O (due con PLC C200HE). Soltanto i moduli di I/O e i moduli di I/O speciali possono essere installati su rack slave. Tutti i moduli di I/O, i moduli di I/O speciali, i moduli di I/O ad alta densità gruppo 2, i moduli master di I/O remoti, i moduli PLC e Host Link possono essere installati in qualsiasi slot su tutti gli altri rack. I moduli di ingresso ad interrupt devono essere installati su backplane con suffisso “–V2” nel numero di modello. Posizione installazione moduli Fare riferimento alla Guida di installazione C200HX/HG/HE per i dettagli sugli slot da utilizzare per i moduli e sulla configurazione del PLC. Il tipo di allocazione dei punti di I/O sui moduli è descritto in 3-3 Area IR. 2-3 Caratteristiche della CPU La seguente tabella mostra le caratteristiche delle CPU C200HX/HG/HE. Le CPU del CPU4-E e del CPU6-E sono dotate di porte RS–232C. Item C200HE- C200HG- C200HX- Capacità di programmazione Capacità DM CPU11-ZE CPU32-ZE/ CPU33-ZE/ CPU53-ZE/ CPU34-ZE/ CPU54-ZE/ CPU65-ZE/ 42-ZE 43-ZE 63-ZE 44-ZE 64-ZE 85-ZE 3.2K 7.2K canali 15.2K canali 31.2K canali 63.2K canali canali 4K canali 6K canali 6K canali 6K canali Capacità EM Nessuno 6K canali × 1 banco CPU4-ZE: 6K canali × 3 banchi CPU65-ZE: 6K canali × 8 banchi CPU85-ZE: 6K canali × 16 banchi Tempo di esecuzione istruzioni base Max. numero di rack di espansione I/O Max. numero di moduli di I/O ad alta densità gruppo 2 0.3 µs min. 0.15 µs min. 0.1 µs min. 2 rack 2 rack 3 rack 2 rack 3 rack 10 moduli 16 moduli 10 moduli 16 moduli Max. numero di moduli di I/O speciali Funzione di clock* 10 moduli 10 moduli 16 moduli 10 moduli 16 moduli No Sì Sì Sì Slot scheda di comunicazione No Sì Sì Sì None 10 moduli 0.1 µs min. 17 Capitolo 2–4 Cartucce di memoria 2-4 Cartucce di memoria Il C200HX/HG/HE è dotato di una RAM incorporata per il programma utente, così che un programma normale può essere creato anche senza installare una cartuccia di memoria. Può essere usata una cartuccia di memoria opzionale per memorizzare il programma, per il setup del PLC, per i commenti I/O, per l’area DM e gli altri contenuti dell’area dati. Fare riferimento alla Guida di installazione C200HX/HG/HE per ulteriori dettagli sull’installazione di cartucce di memoria. Funzioni delle cartucce di memoria 1, 2, 3... Cartucce di memoria compatibili La cartuccia di memoria può essere utilizzata per memorizzare e recuperare i dati UM e IOM; i dati UM memorizzati nella cartuccia di memoria possono anche essere confrontati con i dati UM nel PLC. 1. Il contenuto dell’area UM (user memory) può essere memorizzato nella cartuccia di memoria per un recupero o una verifica successiva. Se il pin 2 del commutatore DIP della CPU è impostato su ON, il contenuto della cartuccia di memoria viene automaticamente recuperato quando il PLC è acceso. L’area UM contiene il programma a relè, l’area DM fissa (come il setup del PLC), l’area DM di espansione, i commenti I/O, la tabella I/O e le informazioni di allocazione dell’area UM. 2. Il contenuto della memoria I/O del PLC (IOM) può essere memorizzato nella cartuccia di memoria per un recupero successivo. I dati IOM comprendono l’area IR, l’area SR, l’area LR, l’area HR, l’area AR, i PV temporizzatore e contatore, DM 0000... DM 6143 e EM 0000... EM 6143. I dati UM e IOM sono del tutto compatibili tra il PLC C200HX/HG/HE e gli altri PLC C200HX/HG/HE, ad eccezione delle nuove istruzioni (matematica con simboli e le istruzioni di comparazione ingresso) che non vengono supportate dalle CPU C200HX/HG/HE originali. Sono disponibili due tipi di cartucce di memoria: EEPROM e EPROM. La seguente tabella mostra le cartucce utilizzabili con i PLC C200HX/HG/HE. Fare riferimento all’Appendice A Modelli standard per i numeri di modello della cartuccia di memoria attuali e le specifiche. Memoria Capacità EEPROM 4K, 8K, 16K, 32K o 64K canali EPROM 16K o 32K canali Commenti La cartuccia di memoria EEPROM può essere usata per scrivere e leggere i dati UM e di I/O nella CPU. Non richiede alimentazione di riserva e conserva i dati anche dopo la rimozione della CPU. La cartuccia di memoria EPROM può essere utilizzata solo per il backup e la lettura dei dati UM. Utilizzare il un registratore di PROM standard per scrivere il programma nella cartuccia di memoria EPROM. Note 1. I dati memorizzati nella EEPROM non sono affidabili dopo che il contenuto è stato sovrascritto più di 50.000 volte. 2. Il chip EPROM non viene fornito con la cartuccia di memoria; esso deve essere acquistato separatamente. 2-4-1 Impostazioni hardware e software Segue la descrizione delle impostazioni hardware e software relative alle operazioni della cartuccia di memoria. Impostazioni switch Lo switch 1 sulla cartuccia di memoria è OFF al momento della consegna. Controllare l’impostazione dello switch 1 prima dell’installazione. Cartuccia di memoria EEPROM EPROM Switch 1 ON OFF ON OFF 18 Funzione I dati nella cartuccia di memoria sono protetti in scrittura I dati nella cartuccia di memoria possono essere sovrascritti 27512 o equivalente ROM–KD–B EPROM (32K canali, tempo di accesso 150 ns) 27256 o equivalente ROM–JD–B EPROM (16K canali, tempo di accesso 150 ns) Capitolo 2–4 Cartucce di memoria In SR 269... SR 273 sono contenuti i flag e i bit di controllo relativi al contenuto e al funzionamento della cartuccia di memoria. Fare riferimento a 3-4 Area SR (relè speciali) per i dettagli. Flag e bit di controllo dell’area SR 2-4-2 Scrittura/lettura dati UM Applicare le seguenti procedure per trasferire i dati UM verso o da una cartuccia di memoria. Nota L’area UM contiene il programma a relè, l’area DM fissa (come il setup del PLC), l’area DM di espansione, i commenti I/O, la tabella I/O e le informazioni di allocazione dell’area UM. Scrittura dati UM in una cartuccia di memoria 1, 2, 3... Lettura dati UM da una cartuccia di memoria Applicare la seguente procedura per scrivere i dati UM in una cartuccia di memoria EEPROM. 1. Prima di attivare l’alimentazione del C200HX/HG/HE, controllare che lo switch 1 sulla cartuccia di memoria sia OFF. 2. Accendere il C200HX/HG/HE e scrivere il programma a relè o leggere un programma esistente da un disco dati. 3. Commutare il C200HX/HG/HE in modalità PROGRAM. 4. Utilizzare un computer host con SSS/SYSWIN o una Console di Programmazione per mandare SR 27000 ON (Salvataggio UM su bit cartuccia). I dati verranno scritti nella cartuccia di memoria dal PLC. SR 27000 andrà OFF automaticamente al termine del trasferimento dati. 5. Se si desidera proteggere in scrittura i dati sulla cartuccia di memoria, spegnere il PLC e impostare lo switch 1 della cartuccia di memoria su ON. Se tale switch è ON, i dati nella cartuccia di memoria saranno memorizzati anche se SR 27000 è ON. Esistono due modi per leggere i dati UM da una cartuccia di memoria: con trasferimento automatico al momento dell’avvio o con trasferimento mediante dispositivo periferico. (Non esiste una funzione che scrive automaticamente i dati nella cartuccia di memoria.) Trasferimento automatico al momento dell’avvio: 1, 2, 3... 1. Mandare ON il pin 2 del commutatore DIP della CPU. 2. Installare la cartuccia di memoria contenente i dati nel C200HX/HG/HE. 3. Attivare l’alimentazione del C200HX/HG/HE. Il contenuto della cartuccia di memoria sarà trasferito automaticamente alla CPU. Se i dati non possono essere trasferiti, si verificherà un errore di memoria. Trasferimento mediante dispositivo periferico: 1, 2, 3... 1. Installare nel C200HX/HG la cartuccia di memoria contenente i dati. 2. Accendere il C200HX/HG/HE e commutare in modalità PROGRAM. 3. Utilizzare un host computer con SSS/SYSWIN o una Console di Programmazione per mandare SR 27001 ON (Carico UM da bit cartuccia). I dati saranno letti dalla cartuccia di memoria nel PLC. SR 27001 andrà OFF automaticamente al termine del trasferimento dati. Confronto dati UM su una cartuccia di memoria 1, 2, 3... Applicare la seguente procedura per i dati UM su una cartuccia di memoria e sul PLC. 1. Commutare l’C200HX/HG/HE in modalità PROGRAM. 2. Utilizzare un host computer con il Software SYSWIN o una Console di programmazione per impostare su ON SR 27002 (Confronto UM su bit cartuccia). I dati saranno confrontati tra il PLC e la cartuccia di memoria. SR 27002 verrà impostato automaticamente su OFF dopo che il confronto dei dati è stato completato. 3. Utilizzare un computer host con il Software SYSWIN o una Console di programmazione per controllare lo stato di SR 27003 (Flag dei risultati di comparazione). 19 Capitolo 2–4 Cartucce di memoria 4. Utilizzare un host computer con SSS/SYSWIN o una Console di Programmazione per mandare SR 27002 ON (Confronto UM su bit cartuccia). Saranno confrontati i dati del PLC e della cartuccia di memoria. SR 27002 andrà OFF automaticamente al termine del confronto dei dati. 5. Utilizzare un host computer con SSS/SYSWIN o una Console di Programmazione per controllare lo stato di SR 27003 (flag Risultato del confronto). Nota Se la verifica dei dati è eseguita in una modalità diversa da PROGRAM, si verificherà un errore di continuità funzionamento (FAL90) e 27002 andrà ON (1). Anche se 27003 va ON, non verrà eseguito il confronto. Se viene eseguito il confronto dei dati senza installare la cartuccia di memoria, 27003 andrà ON (1). 2-4-3 Scrittura/lettura dati IOM Applicare le seguenti procedure per trasferire i dati IOM verso o da una cartuccia di memoria (è necessario un registratore di PROM per scrivere i dati in una cartuccia di memoria EPROM. Fare riferimento al Manuale Operativo SYSMAC Support Software per i dettagli). I dati IOM comprendono l’area IR, l’area SR, l’area LR, l’area HR, l’area AR, i PV temporizzatore e contatore, DM 0000... DM 6143 e EM 0000... EM 6143. La capacità della cartuccia di memoria deve corrispondere alla capacità della memoria della CPU quando i dati IOM sono trasferiti verso e da una cartuccia di memoria. I requisiti della memoria sono: Scrittura IOM: capacità CPU ≤ capacità cartuccia di memoria Lettura IOM: capacità CPU = quantità dati IOM nella cartuccia di memoria Nota Nei PLC C200HS, il trasferimento dati avverrà anche se le capacità della memoria non corrispondono, errore che facilmente può passare inosservato. La seguente tabella mostra la capacità della cartuccia di memoria necessaria per memorizzare 1 o più banchi di EM. Capacità cartuccia di memoria 4K word Numero di banchi EM 8K word Nessuno (una cartuccia di memoria da 4K word non è utilizzabile per memorizzare altri dati IOM.) Nessuno 16K word 1 banco (solo il banco EM 0 può essere memorizzato) 32K word 3 banchi (si possono memorizzare i banchi EM 0... 2) I bit da 08 a 15 di SR 273 indicano il numero di banchi EM dei dati IOM memorizzati nella cartuccia di memoria. Contenuto di Significato SR27308... SR27315 00 Non ci sono cartucce di memoria installate, dati IOM nella cartuccia di memoria o dati EM nella cartuccia di memoria. 01 La cartuccia di memoria contiene i dati IOM comprendenti soltanto il banco EM 0 (salvato con C200HG–CPU–E) 04 Scrittura dati IOM in una cartuccia di memoria 1, 2, 3... 20 La cartuccia di memoria contiene i dati IOM comprendenti banchi EM 0... 2 (salvato con C200HX–CPU–E) Applicare la seguente procedura per scrivere i dati IOM in una cartuccia di memoria EEPROM. 1. Prima di attivare l’alimentazione del C200HX/HG/HE, controllare che lo switch 1 sulla cartuccia di memoria sia OFF. 2. Accendere il C200HX/HG/HE e commutare in modalità PROGRAM. 3. Utilizzare un computer host con SSS/SYSWIN o una Console di Programmazione per mandare SR 27300 ON (Salvataggio IOM su bit cartuccia). I dati verranno scritti nella cartuccia di memoria dal PLC. SR 27300 andrà OFF automaticamente al termine del trasferimento dei dati. 4. Se si desidera proteggere in scrittura i dati sulla cartuccia di memoria, spegnere il PLC e impostare lo switch 1 della cartuccia di memoria su ON. Se tale switch è ON, i dati nella cartuccia di memoria saranno memorizzati anche se SR 27300 è ON. Capitolo 2–4 Cartucce di memoria Applicare la seguente procedura per leggere i dati IOM da una cartuccia di memoria. Il contenuto dell’area storica per gli errori (DM 6000... DM 6030) non può essere letto dalla cartuccia di memoria. Lettura dati IOM da una cartuccia di memoria Nota Non si può leggere automaticamente i dati IOM dalla cartuccia di memoria. 1, 2, 3... 2-5 1. Installare la cartuccia di memoria contenente i dati nel C200HX/HG. 2. Accendere il C200HX/HG/HE e commutare in modalità PROGRAM. 3. Utilizzare un host computer con SSS/SYSWIN o una Console di Programmazione per mandare SR 27301 ON (Carico IOM su bit cartuccia). I dati saranno letti dalla cartuccia di memoria nel PLC. SR 27301 andrà OFF automaticamente al termine del trasferimento dati. Funzionamento senza batteria di riserva I PLC C200HX/HG/HE versione ZE possono funzionare senza batteria di riserva se si verificano le seguenti condizioni. • Il programma utente viene memorizzato in una cartuccia di memoria (EPROM o EEPROM). • Il clock non viene utilizzato (per il clock interno deve essere utilizzata la batteria). • Nel Setup del PLC viene effettuata un’impostazione per non generare un errore di batteria. • Il sistema è stato realizzato per funzionare correttamente persino se vengono persi i dati dell’Area DM. • Il programma utente viene scritto in modo che SR 25215 (il Bit OFF di uscita) non è impostato su ON (lo stato di questo sarà instabile se non è presente una batteria.) • SR 25215 (Bit di mantenimento dello stato I/O) e SR 25211 (Bit di mantenimento dello stato forzato) vengono impostati per essere annullati nel Setup del PLC (lo stato di questi bit sarà instabile se non è presente una batteria.) • Il pin 1 sullo switch DIP della CPU viene impostato su OFF e il pin 1 su ON. Utilizzare la seguente procedura. 1, 2, 3... 1. Assegnare l’Area UM dal Software di supporto (questo passo è necessario quando l’Aera DM di espansione deve essere utilizzata dai Moduli I/O speciali o quando i commenti I/O devono essere memorizzati nella CPU.) 2. Creare il programma utente e trasferirlo nella CPU. Aggiungere le seguenti istruzioni al programma utente per accertarsi che il Bit OFF di uscita (SR 25215) non verrà impostato su ON. Nota Sebbene SR 25215 mantiene lo stato precedente quando viene disattivata l’alimentazione utilizzando una batteria, lo stato sarà instabile durante il funzionamento senza batteria. La riga seguente deve essere aggiunta al programma per accertarsi che questo resti impostato su OFF. 25314 25215 3. Apportare nel Setup del PLC le seguenti impostazioni. a) Impostare DM 6601 su 0000 in modo che IOM e lo stato forzato verrà resettato all’avvio. b) Impostare DM 6655 su 1x0x in modo che gli errori di batteria non vengano individuati (”x” indica le impostazioni non correlate in modo che possano essere 1 o 0.) c) Impostare DM 6600 e DM 6602 su DM 6654 come richiesto. 4. Impostare l’Area DM fissa, incluse le impostazioni per la scheda di comunicazione in DM 6144...DM 6599. 21 Capitolo 2-6 Commutatore DIP della CPU 5. 6. 7. 8. Impostare l’Area DM di espansione se necessaria. Confermare il funzionamento. Montare la cartuccia di memoria nella CPU e passare al modo PROGRAM. Impostare su ON SR 27000 per scrivere il programma, i dati DM fissi e il Setup del PLC nella cartuccia di memoria. Nota Quando viene utilizzata la Console di programmazione, questo bit verrà impostato automaticamente su OFF quando viene completata l’operazione di scrittura. Se viene utilizzato il Software di supporto, il bit verrà forzato e lo stato di set forzato verrà annullato prima che il bit verrà impostato su OFF.) 9. Impostare su ON lo switch di protezione scrittura sulla cartuccia di memoria. 2-6 Commutatore DIP della CPU I 6 pin sul commutatore DIP controllano 6 parametri operativi della CPU. Pin Item Imposta zione 1 Protezione memoria 2 Trasferimento automatico del co e o della de cartuccia c cc di d contenuto memoria 3 Lingua del messaggio ON OFF ON OFF ON OFF 4 5 Impostazione istruzioni estese ON Parametri di comunicazione OFF ON Funzione L’area UM1 non può essere sovrascritta da un dispositivo periferico. L’area UM1 può essere sovrascritta da un dispositivo periferico. Il contenuto della cartuccia di memoria sarà trasferito automaticamente alla RAM interna al momento dell’avvio. Il contenuto non sarà trasferito automaticamente. I messaggi della Console di Programmazione saranno visualizzati in inglese. I messaggi della Console di Programmazione saranno visualizzati nella lingua memorizzata nella ROM del sistema. (I messaggi saranno in giapponese con la versione giapponese della ROM) Istruzioni estese impostate dall’utente. Normalmente ON utilizzando un host computer per programmazione/monitoraggio. Istruzioni estese impostate per default. Parametri di comunicazione standard per le porte di comunicazione (incluso porta periferiche quando è collegato un CQM1-CIF01: Bit di start: 1; lunghezza dati: 7 bit; parità: pari; bit di stop: 2; baud rate: 9.600 bps 6 Impostazione modalità TERMINAL di d espansione es so e quando AR 0712 è O ON Note 22 OFF ON OFF Comunicazione non controllata da impostazioni default. Modalità TERMINAL di espansione (Console di Programmazione); AR 0712 ON. Modalità normale (Console di Programmazione); AR 0712: OFF 1. L’area UM contiene il programma a relè, l’area DM fissa (incluso il setup del PLC), l’area DM di espansione, i commenti I/O, la tabella I/O e le informazioni di allocazione dell’area UM. 2. Tutti e sei i pin sono OFF al momento della consegna del PLC. CAPITOLO 3 Aree di memoria Per ottenere un controllo efficace e corretto sono necessari vari tipi di dati. Per semplificare la gestione di questi dati, il PLC viene fornito con varie aree di memoria, ciascuna delle quali esegue una funzione differente. Le aree generalmente accessibili all’utente per l’utilizzo nella programmazione sono classificate come aree dati. L’altra area di memoria è l’Area UM, in cui il programma dell’utente è effettivamente memorizzato. Questo capitolo descrive tali aree singolarmente e fornisce informazioni necessarie per l’utilizzo. Per convenzione, l’area TR verrà descritta in questo capitolo, anche se non è effettivamente un’area di memoria. 3-1 3-2 3-3 3-4 3-5 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1-1 Panoramica dell’area dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1-2 Panoramica dell’area IR/SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struttura dell’area dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-1 Sistema SYSMAC NET/SYSMAC LINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-2 Sistemi I/O remoti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-3 Flag e bit di controllo del Sistema di collegamento . . . . . . . . . . . . . . . . . . . . . . . 3-4-4 Bit di mantenimento della forzatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-5 Bit di mantenimento dello stato I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-6 Bit OFF di uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-7 Area FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-8 Flag di batteria scarica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-9 Flag di errore del tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-10 Flag di errore della verifica I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-11 Flag di primo ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-12 Bit dell’impulso di clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-13 Flag del passo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-14 Flag di errore gruppo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-15 Flag di errore del modulo speciale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-16 Flag di errore di esecuzione dell’istruzione, ER . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-17 Flag aritmetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-18 Aree della subroutine di interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-19 Aree di comunicazione della porta RS-232C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-20 Aree di comunicazione per la porta periferica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-21 Aree della cartuccia di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-22 Bit di errore di trasferimento dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-23 Aree di memoria del diagramma a relè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-24 Flag di errore di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-25 Flag di salvataggio dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-26 Flag di errore di trasferimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-27 Flag di errore del Setup del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-28 Clock e mappatura della tastiera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-29 Flag di errore gruppo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-30 Bit di riavvio e flag di errore per i moduli I/O speciali . . . . . . . . . . . . . . . . . . . . . Area AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-1 Riavvio dei Moduli I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-2 Flag di errore rack slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-3 Flag di errore gruppo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-4 Flag di errore per i Moduli I/O ottici e i Terminali I/O . . . . . . . . . . . . . . . . . . . . . 3-5-5 Impostazioni per il collegamento dati del Sistema SYSMAC LINK . . . . . . . . . . 3-5-6 Bit di storia dell’errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-7 Flag di nodo attivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-8 Tempo di manutenzione del Sistema SYSMAC LINK/SYSMAC NET . . . . . . . . 3-5-9 Area e bit di calendario/clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-10 Bit dei tasti della modalità TERMINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 26 26 30 33 39 40 41 43 43 43 44 44 44 44 44 44 45 45 45 46 46 46 47 47 48 48 49 49 49 49 49 50 50 50 50 52 52 52 53 53 54 54 54 54 55 23 3-5-11 Contatore alimentazione OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-12 SYSMAC LINK – Flag del dispositivo periferico . . . . . . . . . . . . . . . . . . . . . . . . 3-5-13 Flag del tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-14 Flag di modulo di collegamento montato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-15 Flag di dispositivo montato sulla CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-16 Bit di trigger FPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-17 Flag di tracciamento dati e bit di controllo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-18 Indicatori del tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Area DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-1 Area DM di espansione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-2 Dati del modulo I/O speciale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-3 Moduli I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-4 Area storica dell’errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-5 Setup del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-6 Impostazioni per la scheda di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-7 Impostazioni per l’Area modulo I/O speciale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Area HR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Area TC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Area LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Area UM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Area TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 Area EM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-1 Utilizzo dell’Area EM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-2 Banco EM corrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 56 56 56 57 57 57 57 57 58 58 59 60 62 63 69 71 71 72 72 73 74 74 75 76 Capitolo 3-1 Introduzione 3-1 Introduzione 3-1-1 Panoramica dell’area dati I dettagli, che includono il nome, la dimensione e il range di ciascuna area, sono elencati nella seguente tabella. Le aree dati e di memoria vengono generalmente denominate con i rispettivi acronimi, ad esempio, l’Area IR, l’Area SR, ecc. Area Dimensione Range Commenti Area IR 1 3,776 bit IR 000...IR 235 Fare riferimento a 3-1-2 Panoramica dell’area IR/SR e 3-3 Area IR per ulteriori dettagli. Fare riferimento a 3-1-2 Panoramica dell’area IR/ R e 3-4 IR/SR 3 4 Area SR R per ulteriori l i i dettagli. d li Area SR 1 Area SR 2 Area IR 2 312 bit 704 bit 3,392 bit SR 236...SR 255 SR 256...SR 299 IR 300...IR 511 Area TR 8 bit TR 00...TR 07 Area HR 1,600 bit HR 00...HR 99 Area AR 448 bit AR 00...AR 27 Area LR 1,024 bit LR 00...LR 63 Utilizzata per il collegamento dei dati nel Sistema PLC Link. Questi bit possono essere utilizzati come canali o bit di lavoro quando non vengono utilizzati nel Sistema PLC Link. Area Temporizzatori/Contatori 512 contatori/ temporizzatori TC 000...TC 511 Utilizzata per definire i temporizzatori e i contatori e per accedere ai flag di completamento, PV e SV. Fare riferimento a 3-1-2 Panoramica dell’area IR/SR e 3-3 Area IR per ulteriori dettagli. Utilizzata per memorizzare e recuperare momentaneamente le condizioni di esecuzione relative ad alcuni tipi di rami dei diagrammi a relè. Utilizzata per memorizzare e conservare i valori dei dati quando si spegne il PLC. Contiene flag e bit per funzioni particolari. Conserva lo stato durante un’interruzione di alimentazione. TIM 000...015 sono rinfrescati mediante un processo di interrupt come temporizzatori ad alta velocità. Area DM Area DM fissa Area DM estesa 6,144 canali 1,000 canali 2,600 canali 3,400 canali 31 canali (44 canali) 512 canali 56 canali 6,144 canali DM 0000...DM 6143 DM 0000...DM 0999 DM 1000...DM 2599 DM 2600...DM 5999 DM 6000...DM 6030 DM 6100...DM 6143 DM 6144...DM 6599 DM 6600...DM 6655 EM 0000...EM 6143 Lettura/Scrittura DM normale. Area modulo I/O speciale DM normale. Area storica Area prova di collegamento (riservata) Area DM fissa (solo lettura) Setup del PLC La quantità di memoria dell’area EM dipende dal modello di PLC in uso. I PLC sono disponibili senza EM, con un banco di 6.144 canali o con tre banchi di 6.144 canali. Come per il DM, l’accesso alla memoria EM è possibile solo in unità di canali ed inoltre i dati dell’area EM vengono mantenuti quando si spegne il PLC. Bit e canali di lavoro Quando alcuni bit e canali di alcune aree dati non vengono utilizzati per lo scopo prefissato, è possibile utilizzarli durante la programmazione, se richiesto, per controllare altri bit. I canali e i bit disponibili per essere utilizzati in questa modalità vengono denominati canali di lavoro e bit di lavoro. La maggior parte dei bit non utilizzati, ma non tutti, possono essere usati come bit di lavoro. Questi verranno descritti, per singola area, successivamente in questo capitolo. L’applicazione attuale dei bit di lavoro e dei canali di lavoro sono descritti nel Capitolo 4 Scrittura e inserimento del programma. Flag e bit di controllo Alcune aree dati contengono flag e/o bit di controllo. I flag sono bit che passano automaticamente ad ON e OFF per indicare stati operativi particolari. Sebbene 25 Capitolo 3-2 Struttura dell’area dati l’utente può impostare alcuni flag su ON e OFF, la maggior parte di essi sono di sola lettura; tali flag non possono essere controllati direttamente. I bit di controllo sono bit impostati su ON e OFF dall’utente per controllare aspetti particolari del funzionamento. I bit a cui è stato dato un nome utilizzando il canale piuttosto che il flag del canale è un bit di controllo, ad esempio, i bit di riavvio sono bit di controllo. 3-1-2 Panoramica dell’area IR/SR Quando si indica un’area dati viene sempre richiesto l’acronimo corrispondente; ciò non vale per le aree IR e SR. Sebbene l’acronimo per le aree IR e SR viene fornito per agevolare la spiegazione del testo, non viene richiesto né viene inserito durante la programmazione. Le aree IR e SR vengono suddivise in due sezioni di 256 canali; il limite tra queste sezioni viene indicato nell’area SR tra SR 255 e SR 256. Quando l’area SR viene utilizzata come un operando di un’istruzione, l’operando non può oltrepassare questo limite. Inoltre, le istruzioni di base per l’accesso ai bit contenute nella seconda sezione (SR 25600...IR 51115) presentano tempi di esecuzione più lunghi. Area Intervallo Area IR 1 Area I/O 1 Commenti IR 000...IR 029 II canali I/O vengono allocati al Rack CPU e ai Rack I/O di espansione mediante la posizione dello slot. Area modulo I/O ad alta densità gruppo 2 e modulo interfaccia B7A IR 030...IR 049 Allocato ai Moduli I/O ad alta densità gruppo 2 e ai Moduli interfaccia B7A gruppo 2 da 0 a 9 Area SYSMAC BUS Area modulo I/O speciale 1 Area modulo I/O ottico e area terminale I/O Area di lavoro IR 050...IR 099 IR 100...IR 199 IR 200...IR 231 Allocato ai Rack slave I/O remoti da 0 a 4. Allocato ai Moduli I/O speciali da 0 a 9. Allocato ai Moduli I/O ottici e ai Terminali I/O. IR 232...IR 235 Per l’uso come bit di lavoro nel programma. Contiene clock di sistema, flag, bit di controllo e informazioni sullo stato. Contiene flag, bit di controllo e informazioni sullo stato. SR 290...SR 297 sono utilizzati come canali I/O mediante MCRO(099). Area SR 1 SR 23600...SR 25507 Area SR 2 SR 256...SR 299 Area IR 2 Area I/O 2 IR 300...IR 309 Area di lavoro Area 2 modulo ad alta densità gruppo 2 Area di lavoro Area 2 modulo I/O speciale Area di lavoro Note IR 310...IR 329 IR 330...IR 341 Questi canali I/O vengono allocati a un terzo Rack di espansione I/O mediante la posizione dello slot. Per un uso come bit di lavoro nel programma. Allocato ai Moduli I/O ad alta densità gruppo 2 IR 342...IR 349 IR 350...IR 399 IR 400...IR 459 IR 460...IR 511 Per l’uso come bit di lavoro nel programma. Non allocato. Allocato ai Moduli I/O speciali da A a F. Per l’uso come bit di lavoro nel programma. Fare riferimento a 3-3 Area IR per ulteriori dettagli sull’area IR. Fare riferimento a 3-4 Area SR per ulteriori dettagli sull’area SR. 3. I bit nell’Area IR 1 e nell’Area IR 2 possono essere utilizzati durante la programmazione come bit di lavoro quando non vengono utilizzati per lo scopo prefissato. 3-2 Struttura dell’area dati Quando viene indicata un’area dati, viene sempre richiesto l’acronimo corrispondente, ad eccezione delle aree IR e SR. Sebbene l’acronimo per le aree IR e SR viene sempre fornito per agevolare la spiegazione del testo, non viene richiesto né viene inserito durante la programmazione. Le aree dati non indicate dall’acronimo sono ovviamente relative all’area IR o SR. Dato che gli indirizzi IR e SR vengono eseguiti in modo consecutivo, gli indirizzi dei canali e dei bit sono sufficienti per differenziare queste due aree. 26 Capitolo 3-2 Struttura dell’area dati La posizione effettiva dei dati all’interno di qualsiasi area dati, ad eccezione dell’area TC, viene indicata dall’indirizzo corrispondente. L’indirizzo indica il bit o il canale all’interno dell’area in cui sono posizionati i dati desiderati. L’area TC è costituita dai numeri TC, ciascuno dei quali viene utilizzato per un temporizzatore o un contatore specifico definito nel programma. Fare riferimento a 3-8 Area TC per ulteriori dettagli sui numeri TC e a 5-14 Istruzioni Timer e Counter per informazioni sulle relative applicazioni. Il resto delle aree dati (ad esempio, le aree IR, SR, HR, DM, AR e LR) è costituito da canali, ciascuno dei quali è formato da 16 bit numerati da 00 a 15 a partire da destra verso sinistra. I canali IR 000 e 001 sono riportati di seguito con i numeri di bit. Inoltre il contenuto di ciascun canale viene indicato con zeri. Il Bit 00 viene denominato bit meno significativo, mentre il bit 15 bit più significativo. Il termine bit meno significativo viene spesso utilizzato per il bit più a destra, mentre quello più significativo per il bit più a sinistra. Questi termini non verranno utilizzati all’interno di questo manuale perché un singolo canale di dati viene spesso suddiviso in due o più parti e ciascuna parte è utilizzata per parametri o operandi differenti. Quando si verifica ciò, i bit meno significativi di un canale possono diventare i bit più significativi, cioè i bit più a sinistra di un altro canale, se combinati con altri bit per formare un nuovo canale. Numeri di bit 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Canale IR 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Canale IR 001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 L’area DM è accessibile da un solo canale; non è possibile indicare un singolo bit all’interno di un canale DM. I dati nelle aree IR, SR, HR, AR e LR sono accessibili mediante canali o bit, in base all’istruzione in cui i dati vengono utilizzati. Per indicare una di queste aree mediante il canale, è necessario l’acronimo (se richiesto) e l’indirizzo del canale di due, tre o quattro digit. Per indicare un’area mediante bit, l’indirizzo del canale viene combinato con il numero di bit come un indirizzo singolo di quattro o cinque digit. La seguente tabella riporta esempi di questo tipo. I due digit all’estrema destra relativi all’indicazione dei bit deve riportare un bit tra 00 e 15, cioè, il digit all’estrema destra deve essere 5 oppure minore di 5, mentre il digit successivo verso sinistra deve essere 0 o 1. Lo stesso numero TC può essere utilizzato per indicare sia il valore attuale (PV) del temporizzatore o del contatore, sia un bit che funziona come Flag di completamento per il temporizzatore o il contatore. Questo verrà descritto in modo più dettagliato in 3-8 Area TC. Area Struttura dei dati Contenuto Indicazione bit IR 000 00015 (bit più significativo nel canale 000) SR 252 25200 (bit meno significativo nel canale 252) DM DM 1250 Non possibile TC TC 215 (indica PV) TC 215 (indica il flag di completamento) LR LR 12 LR 1200 L’ingresso dei dati del canale come valori decimali viene memorizzato in BCD (Binary-Coded Decimal); i dati del canale inseriti come esadecimali vengono memorizzati in formato binario. Ciascuno dei quattro bit di un canale rappresenta un digit, sia esadecimale che decimale, numericamente equivalente al valore dei bit binari. In tal modo un canale di dati contiene quattro digit numerati da destra a sinistra. Questi digit e i numeri di bit corrispondenti per un canale sono illustrati di seguito. Numero di digit Numero di bit Indicazione canale 3 2 1 0 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Quando si fa riferimento ad un intero canale, il digit 0 viene denominato digit meno significativo, mentre 3 è il digit più significativo. 27 Capitolo 3-2 Struttura dell’area dati Quando i dati vengono inseriti nelle aree dati, questi devono essere inseriti nel formato corretto per lo scopo prestabilito. Ciò non costituisce alcun problema quando vengono indicati bit singoli impostati su ON (equivalente ad un valore binario di 1) o su OFF (un valore binario di 0). Quando si inseriscono dati del canale, è tuttavia importante inserirli come decimali o esadecimali, a seconda di ciò che è richiesto dall’istruzione per cui i dati devono essere utilizzati. Il Capitolo 5 Istruzioni specifica quando viene richiesto un particolare formato di dati per un’istruzione. Conversione di formati di dati differenti I numeri binari e esadecimali possono essere reciprocamente convertiti senza difficoltà, poiché quattro bit di un numero binario sono numericamente equivalenti a un digit di un numero esadecimale. Il numero binario 0101111101011111 viene convertito in esadecimale considerando ogni insieme di quattro bit a partire da destra. Il numero binario 1111 è F esadecimale; il numero binario 0101 è 5 esadecimale. Il numero esadecimale equivalente è quindi in decimale 5F5F o 24.415 (163 x 5 + 162 x 15 + 16 x 5 + 15). I numeri decimali e in BCD possono essere reciprocamente convertiti senza difficoltà. In questo caso, ciascun digit BCD (cioè, ciascun gruppo di quattro bit in BCD) è numericamente equivalente al digit decimale corrispondente. I bit in BCD 0101011101010111 vengono convertiti in decimali considerando ogni insieme di quattro bit a partire da destra. Il numero binario 0101 è 5 decimale; il numero binario 0111 è 7 decimale. Il numero decimale equivalente è quindi 5.757. Questo valore numerico non corrisponde a quello del numero esadecimale equivalente a 0101011101010111, che è 5.757 esadecimale o 22.359 in decimale (163 x 5 + 162 x 7 + 16 x 5 + 7). Dato che l’equivalente numerico di ogni insieme di quattro bit binari in BCD deve essere numericamente equivalente a un valore decimale, non è possibile utilizzare qualsiasi combinazione di quattro bit numericamente maggiore di 9, ad esempio 1011 non è consentito, poiché è numericamente equivalente a 11, che non può essere espresso come un singolo digit in notazione decimale. I bit binari 1011 sono naturalmente consentiti in esadecimale e sono equivalenti al digit esadecimale C. Esistono istruzioni fornite per convertire i dati in entrambe le direzioni in BCD e in esadecimale. Fare riferimento a 5-18 Conversione dei dati per ulteriori dettagli. Le tabelle dei numeri binari equivalenti ai digit esadecimali e in BCD sono riportate nelle appendici come riferimento. Punti decimali I punti decimali vengono utilizzati solo nei temporizzatori. Il digit meno significativo rappresenta i decimi di un secondo. Tutte le istruzioni aritmetiche operano solo sugli interi. Dati binari con segno e senza segno Questa sezione spiega i formati dei dati binari con segno e senza segno. Molte istruzioni possono utilizzare sia i dati con segno che senza segno, mentre solo alcune (CPS(114), CPSL(115), DBS(485), DBSL(483), MBS(484) e MBSL(482)) utilizzano esclusivamente dati con segno. Dati binari senza segno I dati binari senza segno rappresentano il formato standard utilizzato nei PLC OMRON. I dati presenti in questo manuale sono senza segno, se non diversamente indicato. I valori binari senza segno sono sempre positivi e vanno da 0 ($0000) a 65,535 ($FFFF). I valori di otto digit vanno da 0 ($0000 0000) a 4.294.967.295 ($FFFF FFFF). 163 Valore del digit Numero di bit Contenuto 28 162 161 160 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Capitolo 3-2 Struttura dell’area dati Dati binari con segno I dati binari con segno possono avere sia un valore positivo che negativo. Il segno è indicato dallo stato del bit 15. Se il bit 15 è OFF, il numero è positivo, mentre se è ON, il numero è negativo. I valori binari con segno positivo vanno da 0 ($0000) a 32.767 ($7FFF), mentre i valori binari con segno negativo vanno da –32.768 ($8000) a –1 ($FFFF). Indicatore di segno 163 Valore del digit Numero di bit Contenuto 162 161 160 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 I valori positivi di otto digit vanno da 0 ($0000 0000) a 2.147.483.647 ($7FFF FFFF), mentre i valori negativi di otto digit vanno da –2.147.483.648 ($8000 0000) a –1 ($FFFF FFFF). La seguente tabella mostra l’equivalenza tra i valori decimali, esadecimali a 16 bit e esadecimali a 32 bit. Decimale 2147483647 2147483646 . . . 32768 32767 32766 . . . 2 1 0 –1 –2 . . . –32767 –32768 –32769 . . . –2147483647 –2147483648 Conversione dei valori decimali in dati binari con segno Esa a 16 bit ––– ––– . . . ––– 7FFF 7FFE . . . 0002 0001 0000 FFFF FFFE . . . 8001 8000 ––– . . . ––– ––– Esa a 32 bit 7FFFFFFF 7FFFFFFE . . . 00008000 00007FFF 00007FFE . . . 00000002 00000001 00000000 FFFFFFFF FFFFFFFE . . . FFFF8001 FFFF8000 FFFF7FFF . . . 80000001 80000000 I dati binari con segno positivo sono identici ai dati binari senza segno (fino a 32.767) e non possono essere convertiti mediante BIN(023). La seguente procedura converte i valori decimali negativi tra –32.768 e –1 in dati binari con segno. In questo esempio –12345 viene convertito in CFC7. 29 Capitolo 3-3 Area IR 1. Prendere il valore assoluto (12345) e convertirlo in binario senza segno: Numero di bit Contenuto 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 2. Quindi prendere il complemento: Numero di bit Contenuto 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 3. Infine aggiungere uno: Numero di bit Contenuto 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 Invertire la procedura per convertire i dati binari con segno negativo in valori decimali. 3-3 Area IR L’area IR viene utilizzata sia per controllare i punti di I/O che come bit di lavoro per gestire e memorizzare i dati internamente. E’ accessibile sia mediante bit che canali. Nel PLC C200HX/HG/HE, l’area IR comprende i canali da IR 000 a IR 235 (area IR 1) e da IR 300 a IR 511 (area IR 2). Le istruzioni di base hanno tempi di esecuzione più lunghi quando accedono all’area IR 2 piuttosto che all’area IR 1. I canali nell’area IR utilizzati per controllare i punti di I/O vengono denominati canali I/O. I bit dei canali I/O vengono denominati bit di I/O. I bit nell’area IR che non sono assegnati come bit di I/O possono essere utilizzati come bit di lavoro. I bit di lavoro dell’area IR vengono resettati quando l’alimentazione viene interrotta o il PLC viene bloccato. Area Area IR 1 Area I/O 1 Area 1 modulo I/O ad alta densità gruppo 2 e Area modulo interfaccia B7A Area SYSMAC BUS Area modulo I/O speciale 1 Area modulo I/O ottico e Area Terminale I/O Area di lavoro Area IR 2 Area I/O 2 Area di lavoro Area 2 modulo I/O ad alta densità gruppo 2 Area di lavoro Area modulo I/O speciale 2 Area di lavoro Range IR 000...IR 029 IR 030...IR 049 IR 050...IR 099 IR 100...IR 199 IR 200...IR 231 IR 232...IR 235 IR 300...IR 309 IR 310...IR 329 IR 330...IR 341 IR 342...IR 349 IR 350...IR 459 IR 460...IR 511 Canali I/O Se un Modulo memorizza gli ingressi nel PLC, il bit ad esso assegnato è un bit di ingresso; se il Modulo invia un uscita dal PLC, il bit è un bit di uscita. Per attivare un’uscita, il bit di uscita ad esso assegnato deve essere impostato su ON. Quando viene attivato un ingresso, anche il bit in ingresso ad esso assegnato passa a ON. Queste operazioni possono essere eseguite nel programma per accedere allo stato di ingresso e controllare lo stato di uscita attraverso i bit di I/O. Utilizzo dei bit di ingresso I bit di ingresso possono essere utilizzati per inserire direttamente segnali esterni nel PLC e per la programmazione. Ciascun bit in ingresso può anche essere utilizzato in tutte le istruzioni desiderate per ottenere un controllo efficace 30 Capitolo 3-3 Area IR e corretto. Tuttavia essi non possono essere utilizzati in istruzioni che controllano lo stato dei bit, ad esempio le istruzioni OUTPUT, DIFFERENTIATION UP e KEEP. Utilizzo dei bit di uscita I bit di uscita vengono utilizzati per emettere i risultati di esecuzione del programma e per la programmazione. Poiché le uscite vengono rinfrescate solo una volta durante ciascun ciclo (cioè, ogni volta che il programma viene eseguito), qualsiasi bit di uscita può essere utilizzato in una sola istruzione che ne controlla lo stato, incluso OUT, KEEP(011), DIFU(013), DIFD(014) e SFT(010). Se un bit di uscita viene utilizzato in più istruzioni, dal PLC verrà emesso solo lo stato determinato dall’ultima istruzione. Vedere 5-15-1 Shift Register – SFT(010) per un esempio che utilizza un bit di uscita in due istruzioni ‘bit-control’. Allocazione dei canali per i rack I canali I/O vengono allocati al Rack della CPU e ai Rack di espansione I/O dalla posizione dello slot. Un canale I/O viene allocato a ciascun slot, come illustrato nella seguente tabella. Poiché a ciascun slot viene allocato solo un canale I/O, il rack a 3 slot utilizza solo i primi tre canali, il rack a 5 slot solo i primi 5 canali e il rack a 8 slot solo i primi 8. I canali allocati a slot non utilizzati o non esistenti sono disponibili come canali di lavoro. Lato destro del rack a10 slot → ← Lato sinistro del rack Slot 1 Slot 2 Slot 3 Slot 4 Slot 5 Slot 6 Slot 7 Slot 8 Slot 9 CPU Rack IR 000 IR 001 IR 002 IR 003 IR 004 IR 005 IR 006 IR 007 IR 008 IR 009 Slot 10 1 espansione IR 010 IR 011 IR 012 IR 013 IR 014 IR 015 IR 016 IR 017 IR 018 IR 019 2 espansione IR 020 IR 021 IR 022 IR 023 IR 024 IR 025 IR 026 IR 027 IR 028 IR 029 3 espansione IR 300 IR 301 IR 302 IR 303 IR 304 IR 305 IR 306 IR 307 IR 308 IR 309 Canali non utilizzati Qualsiasi canale allocato a un Modulo che non lo utilizza può essere usato durante la programmazione come canale e bit di lavoro. I moduli che non utilizzano i canali assegnati allo slot vengono montati per includere i Moduli di collegamento (ad esempio, Moduli Host Link, Moduli di collegamento PLC, Moduli di collegamento SYSMAC NET, ecc.), i Moduli master I/O remoti, i Moduli I/O speciali, i Moduli I/O ad alta densità gruppo 2, i Moduli interfaccia B7A gruppo 2 e i Moduli di alimentazione ausiliari. Allocazione per i Moduli I/O speciali e i Rack slave Nella maggior parte dei PLC C200HX/HG/HE, è possibile montare in un qualsiasi slot del Rack della CPU e dei Rack di espansione I/O fino a sedici moduli I/O speciali. Anche nei Rack slave I/O remoti può essere installato un numero limitato di Moduli I/O speciali. A ciascun Modulo I/O speciale vengono allocati dieci canali basati sul numero di modulo corrispondente (da 0 a F). Nei PLC C200HE-CPU-E e C200HG/HX-CPU3-E/4-E possono essere montati fino a dieci Moduli I/O speciali a ciascun Modulo vengono allocati dieci canali basati sul numero di modulo corrispondente (da 0 a 9). N. di modulo 0 1 2 3 4 5 6 7 8 9 Canali di I/O IR 100...IR 109 Restrizioni PLC Nessuna IR 110...IR 119 IR 120...IR 129 IR 130...IR 139 IR 140...IR 149 IR 150...IR 159 IR 160...IR 169 IR 170...IR 179 IR 180...IR 189 IR 190...IR 199 31 Capitolo 3-3 Area IR N. di modulo A B C D E F Canali di I/O IR 400...IR 409 IR 410...IR 419 Restrizioni PLC Non disponibile nei PLC C200HE-CPU-E e C200HG/HX CPU3 E/4 E C200HG/HX-CPU3-E/4-E. IR 420...IR 429 IR 430...IR 439 IR 440...IR 449 IR 450...IR 459 Nota I canali I/O che non sono allocati ai Moduli I/O speciali possono essere utilizzati come canali di lavoro. Se vengono utilizzati uno o due Master, possono essere usati fino a cinque Rack slave. I canali dell’area IR vengono allocati ai Rack slave mediante il numero di modulo sul Modulo, come illustrato nelle seguenti tabelle. N.ro di modulo Canali I/O 0 IR 050...IR 059 1 IR 060...IR 069 2 IR 070...IR 079 3 IR 080...IR 089 4 IR 090...IR 099 E’ possibile utilizzare il Rack slave I/O remoto C500-RT001/002-(P)V1; tuttavia esso richiede 20 canali I/O e non 10, e quindi occupa i canali I/O allocati a 2 Rack slave C200H, ovvero sia i canali allocati al numero di modulo impostato sul rack, sia i canali allocati al numero di modulo successivo. Quando si utilizza una CPU C200HX/HG/HE, non impostare il numero di modulo di un Rack slave C500 su 4, perché non esiste alcun numero di modulo 5. Con il Rack slave C500, i canali I/O vengono allocati solo ai moduli installati, da sinistra a destra, e non agli slot, come nei Rack C200HX/HG/HE. Allocazione per i Moduli I/O ottici e i Terminali I/O I canali I/O tra IR 200 e IR 231 vengono allocati ai Moduli I/O ottici e ai Terminali I/O mediante il numero di modulo. Il canale I/O allocato a ciascun modulo è IR 200+n, dove n è il numero di modulo impostato sul Modulo. Allocazione per i Moduli master I/O remoti e i Moduli di collegamento I Moduli master I/O remoti e i Moduli Host Link non utilizzano canali I/O, mentre i moduli di collegamento PLC utilizzano l’area LR, in modo che i canali allocati agli slot in cui vengono montati questi moduli sono disponibili come canali di lavoro. Allocazione di bit per i Moduli I/O Un modulo I/O può richiedere da 8 a 16 bit, a seconda del modello. Con la maggior parte dei Moduli I/O, i bit non utilizzati per l’ingresso e l’uscita sono disponibili come bit di lavoro. Tuttavia, i Moduli di uscita a transistor C200H-OD213 e C200H-OD411, come anche il Modulo di uscita triac C200H-OA221, utilizza il bit 08 per il Flag di fusibile guasto. Il Modulo di uscita a transistor C200H-OD214 utilizza i bit da 08 a 11 per il Flag di allarme. Quindi, i bit da 08 a 15 di qualsiasi canale allocato a questi Moduli non possono essere utilizzati come bit di lavoro. Allocazione di bit per i Moduli di ingresso ad interrupt Il Modulo di ingresso ad interrupt utilizza gli 8 bit del primo canale I/O allocato al relativo slot nel Rack della CPU. Un modulo di ingresso ad interrupt funzionerà come un Modulo di ingresso normale quando viene installato in un Rack di espansione I/O. Gli altri 24 bit allocati al relativo slot nel Rack della CPU possono essere utilizzati come bit di lavoro. 32 Capitolo 3-4 Area SR Allocazione per i Moduli I/O ad alta densità gruppo 2 e i Moduli interfaccia B7 I Moduli I/O ad alta densità gruppo 2 e i Moduli interfaccia B7A vengono allocati ai canali tra IR 030 e IR 049 in base alle relative impostazioni del numero I/O e non utilizzano i canali allocati agli slot in cui sono montati. Per i moduli a 32 punti, a ciascun modulo sono assegnati due canali; per moduli a 64 punti, a ciascun modulo sono assegnati quattro canali. I canali allocati per ciascun numero I/O sono riportati nelle seguenti tabelle. I canali o parte dei canali non utilizzati per I/O possono essere usati come canali o bit di lavoro durante la programmazione. Moduli a 32 punti Numero I/O Canali Moduli a 64 punti Numero I/O Canali 0 IR 30...IR 31 0 IR 30...IR 33 1 IR 32...IR 33 1 IR 32...IR 35 2 IR 34...IR 35 2 IR 34...IR 37 3 IR 36...IR 37 3 IR 36...IR 39 4 IR 38...IR 39 4 IR 38...IR 41 5 IR 40...IR 41 5 IR 40...IR 43 6 IR 42...IR 43 6 IR 42...IR 45 7 IR 44...IR 45 7 IR 44...IR 47 8 IR 46...IR 47 8 IR 46...IR 49 9 IR 48...IR 49 9 Non può essere utilizzato. Quando i numeri I/O vengono impostati sui Moduli I/O ad alta densità e sui Moduli interfaccia B7A, accertarsi che le impostazioni non siano tali da allocare gli stessi canali a più Moduli. Ad esempio, se il numero I/O 0 viene allocato ad un modulo a 64 punti, il numero I/O 1 non può essere usato per qualsiasi Modulo del sistema. I Moduli I/O ad alta densità gruppo 2 e i Moduli interfaccia B7A non sono considerati come Moduli I/O speciali e non influenzano il limite relativo al numero di Moduli I/O speciali consentiti dal sistema, indipendentemente dal numero utilizzato. I canali allocati ai Moduli I/O ad alta densità gruppo 2 corrispondono ai connettori sui Moduli, come illustrato nella seguente tabella. Modulo Moduli a 32 punti Moduli a 64 punti Canale Primo Secondo Primo Secondo Terzo Quarto Connettore/riga Riga A Riga B CN1, riga A CN1, riga B CN2, riga A CN2, riga B Note 1. I Moduli I/O ad alta densità gruppo 2 e i Moduli interfaccia B7A non possono essere montati sui Rack slave. 2. I Moduli I/O ad alta densità gruppo 2 non possono essere utilizzati con il modulo CPU C200HE-CPU11-(Z)E. I canali generalmente allocati a questi moduli possono essere utilizzati come canali di lavoro. 3-4 Area SR L’area SR contiene flag e bit di controllo utilizzati per verificare il funzionamento del PLC, accedere all’impulso di clock e segnalare gli errori. Gli indirizzi del canale dell’area SR vanno da 236 a 299, mentre gli indirizzi dei bit vanno da 23600 a 29915. Le aree SR sono suddivise in due sezioni. La prima sezione termina con SR 255, la seconda inizia con SR 256. Quando un canale dell’area SR viene utilizzato come un operando in un’istruzione, l’operando non deve oltrepassare questo 33 Capitolo 3-4 Area SR limite. Le istruzioni di base che accedono ai bit nell’Area SR 2 hanno un tempo di esecuzione più lungo. Area Range Area SR 1 SR 23600...SR 25507 Area SR 2 SR 25600...SR 29915 La seguente tabella elenca le funzioni dei flag e bit di controllo dell’area SR. La maggior parte di questi bit sono descritti in modo più dettagliato dopo la tabella. Le descrizioni sono ordinate per numero di bit, ad eccezione dei bit del Sistema di collegamento che sono raggruppati. Se non diversamente prestabilito, i flag sono impostati su OFF finché non si verificano le condizioni specificate; in tal caso sono impostati su ON. I bit di riavvio sono generalmente OFF, ma se vengono impostati dall’utente prima su ON e poi su OFF, il modulo di collegamento specificato verrà riavviato. Altri bit di controllo sono OFF, finché non vengono impostati dall’utente. Non tutti i canali e i bit SR sono disponibili per l’utente. Controllare la funzione di un bit o di un canale prima di tentare di utilizzarlo per la programmazione. Canali 236 Bit 00... 07 08... 15 237 00... 07 08... 15 238 e 241 00... 15 242 e 245 00... 15 246 247 e 248 00... 15 00... 07 08... 15 249 e 250 00 ... 07 08... 15 251 Scrittura crittur possibile 00 01... 02 03 04... 06 07 08... 15 34 Funzione Area di uscita dello stato del loop del nodo per il livello operativo 0 del Sistema SYSMAC NET Area di uscita dello stato del loop del nodo per il livello operativo 1 del Sistema SYSMAC NET Area di uscita del codice di completamento per il livello operativo 0 successivo all’esecuzione di SEND(090)/RECV(098) del Sistema SYSMAC LINK/SYSMAC NET Area di uscita del codice di completamento per il livello operativo 1 successivo all’esecuzione di SEND(090)/RECV(098) del Sistema SYSMAC LINK/SYSMAC NET Area di uscita dello stato di collegamento dati per il livello operativo 0 del Sistema SYSMAC LINK o SYSMAC NET Area di uscita dello stato di collegamento dati per il livello operativo 1 del Sistema SYSMAC LINK o SYSMAC NET Non utilizzato Flag di esecuzione del Modulo PLC Link per i Moduli da 16 a 31 o stato di collegamento dati per il livello operativo 1 Flag di errore del Modulo PLC Link per i Moduli da 16 a 31 o stato di collegamento dati per il livello operativo 1 Flag di esecuzione del Modulo PLC Link per i Moduli da 00 a 15 o stato di collegamento dati per il livello operativo 0 Flag di errore del Modulo PLC Link per i Moduli da 00 a 15 o stato di collegamento dati per il livello operativo 0 Bit di lettura errore di I/O remoto Non utilizzato Flag di errore di I/O remoto Numero di rack slave e numero di modulo del Modulo I/O remoto, Modulo I/O ottico o Terminale I/O con errore Non utilizzato Numero di modulo del master e canale allocato al Modulo I/O remoto, Modulo I/O ottico o Terminale I/O con errore (esadecimale) Capitolo 3-4 Area SR Canali 252 Bit 00 01 02 03 04 253 254 05 06 07 08 09 10 11 12 13 14 15 00... 07 08 09 10 11 12 13 14 15 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Funzione Flag di errore SEND(090)/RECV(098) per il livello operativo 0 del Sistema SYSMAC LINK o SYSMAC NET Flag di abilitazione SEND(090)/RECV(098) per il livello operativo 0 del Sistema SYSMAC LINK o SYSMAC NET Flag operativo del collegamento dati di livello operativo 0 Flag di errore SEND(090)/RECV(098) per il livello operativo 1 del Sistema SYSMAC LINK o SYSMAC NET Flag di abilitazione SEND(090)/RECV(098) per il livello operativo 1 del Sistema SYSMAC LINK o SYSMAC NET Flag operativo di collegamento dati di livello operativo 1 Flag di errore comunicazione di livello 1 del modulo Host Link montato su rack Bit di riavvio di livello 1 del modulo Host Link montato su rack Flag di errore per la porta RS-232C Bit di riavvio per la porta RS-232C Bit di cancellazione del Setup del PLC Bit di mantenimento della forzatura Bit di controllo della ritenzione dati Bit di riavvio di livello 0 del modulo Host Link montato su rack Non utilizzato. Bit OFF di uscita Area di uscita del numero FAL (vedere le informazioni sugli errori forniti altrove) Flag di batteria scarica Flag di errore del tempo di ciclo Flag di errore di verifica I/O Flag di errore comunicazione di livello 0 del modulo Host Link montato su rack Flag di errore di I/O remoto Flag sempre ON Flag sempre OFF Flag del primo ciclo Bit dell’impulso di clock di 1 minuto Bit dell’impulso di clock di 0,02 secondi Flag (N) negativo Flag di esecuzione MTR Flag di overflow (per calcoli binari con segno) Flag di underflow (per calcoli binari con segno) Flag di fine del controllo differenziale Flag del passo Flag di esecuzione HKY Flag di esecuzione 7SEG Flag di esecuzione DSW Flag di errore del modulo di ingresso ad interrupt Flag del primo ciclo Flag di errore del programma di interrupt Flag di errore gruppo 2 Flag di errore del modulo speciale (inclusi i moduli I/O speciali, PLC Link, Host Link, master I/O remoti) 35 Capitolo 3-4 Area SR Canali 255 Bit 00 01 02 03 256... 261 262 263 04 05 06 07 08... 15 00... 15 00... 15 00... 15 264 00... 03 04 05 06 07 08... 11 265 266 267 268 269 12 13 14 15 00...15 00... 15 00... 04 05 06... 12 13 14... 15 00... 15 00... 07 08... 10 11... 13 14 15 36 Funzione Bit dell’impulso di clock di 0,1 secondi Bit dell’impulso di clock di 0,2 secondi Bit dell’impulso di clock di 1,0 secondi Flag di errore di esecuzione Questi flag vengono impostati su OFF quando dell’istruzione (ER) l’istruzione s o e END(001) (00 ) viene e e eseguita, eseg , in modo odo che c e lo o ò essere controllato da una C stato non può Console di Flag del carry (CY) programmazione. progr mm zione Flag di maggiore di (GR) Fare F re riferimento all’Appendice ll’Appendice C per una n ttabella bell che Flag di uguale a (EQ) riporta ri orta le istr istruzioni zioni che influenzano infl enzano questi q esti flag. Flag di minore di (LE) Riservato dal sistema (utilizzato per bit TR) Riservato dal sistema Tempo massimo di esecuzione della subroutine di interrupt (azione) (moduli di 0,1 ms) Numero di subroutine di interrupt (azione) con tempo massimo di esecuzione (da 8000 a 8255) (Bit 15 è il flag di interrupt) Codice di errore per la porta RS-232C 0: Nessun errore 1: Errore di parità 2: Errore di frame 3: Errore di superamento di capacità 4: Errore FCS 5: Errore di timeout 6: Errore di checksum 7: Errore di comando Errore di comunicazione per la porta RS-232C Flag di pronto per la trasmissione per la porta RS-232C Flag di ricezione completata per la porta RS-232C Flag di overflow di ricezione per la porta RS-232C Codice di errore per la porta periferica nella modalità I/O generale 0: Nessun errore 1: Errore di parità 2: Errore di frame 3: Errore di superamento di capacità 4: Errore FCS 5: Errore di timeout 6: Errore di checksum 7: Errore di comando Errore di comunicazione per la porta periferica nella modalità I/O generale Errore di pronto per la trasmissione per la porta periferica nella modalità I/O generale Flag di ricezione completata per la porta periferica nella modalità I/O generale Flag di overflow di ricezione per la porta periferica nella modalità I/O generale Modalità NT Link (1:N) Bit da 00 a 07: Comunicazione con flag PT per i Moduli da 0 a 7 Bit da 08 a 15: Registrazione dei flag di priorità PT per i Moduli da 0 a 7 Modalità RS-232C BIt da 00 a 15: Contatore di ricezione per la porta RS-232C Contatore di ricezione periferica nella modalità RS-232C Riservato dal sistema (non accessibile dall’utente) Flag di pronto per la trasmissione di livello 0 all’Host Link Riservato dal sistema (non accessibile per l’utente) Flag di pronto per la trasmissione di livello 1 all’Host Link Non utilizzato. Informazioni sull’errore della scheda di comunicazione Contenuto della cartuccia di memoria 00: Niente; 01: UM; 02: IOM; 03: HIS Capacità della cartuccia di memoria 0: 0 kW (nessuna cartuccia); 2: 4 o 8 kW; 3: 16 kW; 4: 32 kW Riservato dal sistema (non accessibile per l’utente) Cartuccia di memoria EEPROM protetta o flag della cartuccia di memoria EPROM montata Flag della cartuccia di memoria Capitolo 3-4 Area SR Canali 270 Bit 00 01 02 03 04... 10 11 12 13 14 15 271 00... 07 Funzione Salvataggio UM nel bit della cartuccia Dati trasferiti quando il bit è ad ON nella modalità PROGRAM. verrà im impostato PROGR M. Il bit verr ostato su OFF automaticamente. Caricamento UM dal bit della Si verifica un errore non fatale se questi bit vengono cartuccia impostati su ON nelle modalità RUN o MONITOR. Confronto UM con il bit della cartuccia Risultati del confronto 0: Contenuti identici; 1: Contenuti differenti o confronto non possibile Non utilizzato. Flag di errore di trasferimento: I dati non verranno trasferiti dall’UM alla cartuccia di Trasferimento della tabella di memoria se si verifica un errore (ad eccezione collegamento dati SYSMAC NET su dell’errore di checksum sulla scheda). Le UM durante il collegamento attivo dei informazioni dettagliate sugli errori della checksum dati. che si verificano nella cartuccia di memoria non i hé lle iinformazioni f i i verranno emesse su SR 272 272, poiché Flag di errore di trasferimento: non sono necessarie. Ripetere la trasmissione se Nessuna modalità PROGRAM ON SR 27015 è ON. Flag di errore di trasferimento: Sola lettura Flag di errore di trasferimento: Capacità insufficiente o nessun UM Flag di errore di trasferimento: Errore di checksum sulla scheda Dimensione del programma a relè memorizzato nella cartuccia di memoria File solo a relè: 04: 4 kW; 08: 8 kW; 12: 12 kW; a (32: 32 kW) 08... 15 272 273 00... 10 11 12 13 14 15 00 01 02 03... 07 08... 11 12 13 14 15 00: Nessun programma a relè oppure è stato memorizzato un file diverso dal programma a relè. Dimensione e tipo del programma a relè nella CPU (le specifiche sono uguali a quelle per i bit da 00 a 07.) Non utilizzato. Flag di errore di memoria: Errore di checksum del Setup del PLC Flag di errore di memoria: Errore di checksum del programma a relè Flag di errore di memoria: Errore di checksum nell’area vettore di modifica dell’istruzione Flag di errore di memoria: Sconnessione in linea della cartuccia di memoria Flag di errore di memoria: Errore di avviamento automatico Salvataggio di IOM nel bit della I dati sono trasferiti nella cartuccia di memoria cartuccia quando il Bit viene impostato su ON nella modalità PROGRAM Il Bit viene impostato impost to automaticamente tom tic mente PROGRAM. Caricamento di IOM dal bit della su OFF. Si verifica un errore se impostato su ON in cartuccia qualsiasi altra modalità. Impostazione di questo bit su 0. Non utilizzato. Contiene il numero di banco EM quando la cartuccia di memoria contiene i dati IOM. Flag di errore di trasferimento: I dati non verranno trasferiti da IOM alla cartuccia di Nessuna modalità PROGRAM memoria errore eccezione e o se ssi verifica e c un e o e ((ad d ecce o e ) dell’errore di sola lettura). Flag di errore di trasferimento: Sola lettura Flag di errore di trasferimento: Capacità insufficiente o nessun IOM Sempre 0. 37 Capitolo 3-4 Area SR Canali 274 Bit 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Flag di riavvio #0 del modulo I/O speciale Flag di riavvio #1 del modulo I/O speciale Flag di riavvio #2 del modulo I/O speciale Flag di riavvio #3 del modulo I/O speciale Flag di riavvio #4 del modulo I/O speciale Flag di riavvio #5 del modulo I/O speciale Flag di riavvio #6 del modulo I/O speciale Flag di riavvio #7 del modulo I/O speciale Flag di riavvio #8 del modulo I/O speciale Flag di riavvio #9 del modulo I/O speciale Flag di riavvio #A del modulo I/O speciale Flag di riavvio #B del modulo I/O speciale Flag di riavvio #C del modulo I/O speciale Flag di riavvio #D del modulo I/O speciale Flag di riavvio #E del modulo I/O speciale Flag di riavvio #F del modulo I/O speciale Funzione Questi flag verranno impostati su ON durante il processo ocesso di d riavvio. o Questi Q es flag g non o verranno e o O per i moduli su rack slave. impostati su ON 275 00 01 02 03 04 05 06... 07 08... 15 Errore di setup del PLC (da DM 6600 a DM 6605) Errore di setup del PLC (da DM 6613 a DM 6623) Errore di setup del PLC (da DM 6635 a DM 6655) Non utilizzato. Modifica del flag di setup RS-232C Non utilizzato. Riservato dal sistema (non accessibile per l’utente) Non utilizzato. 276 00... 07 08... 15 Minuti (da 00 a 59) Ore (da 00 a 23) 277... 279 00... 15 Utilizzato per la mappatura della tastiera. Vedere pagina NO TAG. 280 00... 15 281 00... 15 Flag di errore del modulo I/O ad alta densità gruppo 2 per i Moduli da 0 a F (AR 0205...AR 0214 funzionano anche come flag di errore per i Moduli da 0 a 9.) Bit di riavvio del modulo I/O speciale per i Moduli da 0 a F (I moduli da 0 a 9 possono essere riavviati anche con i bit di riavvio del modulo I/O speciale da AR 0100 a AR 0109.) 282 00... 15 283... 286 00... 15 Flag di errore del modulo I/O speciale per i Moduli da 0 a F AR 0000...AR 0009 funzionano anche come Flag di errore per i Moduli da 0...9.) Area di controllo della scheda di comunicazione 287... 288 00... 15 Area dati di interrupt della scheda di comunicazione 289 00... 07 08 09... 10 11 12 13... 14 15 Area di controllo generale della scheda di comunicazione Flag di esecuzione dell’istruzione per la porta a della scheda di comunicazione Utilizzato dalle istruzioni della porta a della scheda di comunicazione Bit di arresto dell’istruzione per la porta a della scheda di comunicazione Flag di esecuzione dell’istruzione per la porta B della scheda di comunicazione Utilizzato dalle istruzioni della porta B della scheda di comunicazione Bit di arresto dell’istruzione per la porta B della scheda di comunicazione 38 Indica l’ora corrente in BCD. Capitolo 3-4 Area SR Canali 290... 293 294... 297 298... 299 Bit 00... 15 00... 15 00... 15 Funzione Ingressi dell’area macro. Uscite dell’area macro. Riservato dal sistema (non accessibile per l’utente) 3-4-1 Sistema SYSMAC NET/SYSMAC LINK Stato di loop SR 236 fornisce lo stato di loop del nodo locale per i Sistemi SYSMAC NET, come riportato di seguito. ––– Bit in SR 236 Livello 0 07 06 05 04 03 02 01 00 Livello 1 15 14 13 12 11 10 09 08 Stato/ 1 Significato 1 Alimentazione centrale 1 0: Collegato 1: Non collegato Codici di completamento Stato di loop Stato di ricezione 11: Loop normale 10: Downstream backloop 01: Upstream backloop 00: Errore di loop 0: Ricezione abilitata 1: Ricezione disabilitata 1 SR 23700...SR23707 forniscono il codice di completamento SEND/RECV per il livello operativo 0 e SR 23708...SR 23215 forniscono il codice di completamento SEND/RECV per il livello operativo 1. I codici di completamento sono riportati nelle seguenti tabelle. SYSMAC LINK Item Codice Significato 00 Fine normale 01 05 Errore di parametro I parametri per l’istruzione delle comunicazioni di rete non rientrano negli intervalli ammessi. Impossibile inviare Reset del modulo durante l’elaborazione del comando oppure il nodo locale non è in rete. Destinazione non Il nodo di destinazione non è in rete. in rete Errore di occupato Il nodo di destinazione sta elaborando dati e non può ricevere il comando. Timeout di risposta Il tempo di controllo della risposta è stato superato. 06 Errore di risposta 02 03 04 07 08 09 L’elaborazione è terminata regolarmente C’era un errore nella risposta ricevuta dal nodo di destinazione. Errore del gestore Si è verificato un errore nel gestore delle delle comunicazioni comunicazioni. Errore di Esiste un errore nelle impostazioni relative impostazione all’indirizzo del nodo. Errore PLC Si è verificato un errore nella CPU del nodo di destinazione. SYSMAC NET Codice Item Significato 00 Fine normale 01 Errore di parametro I parametri per l’istruzione delle comunicazioni di rete non rientrano negli intervalli ammessi. Errore di Esiste un errore nelle tabelle di instradamento per il instradamento collegamento ad una rete remota. Errore di occupato Il nodo di destinazione sta elaborando dati e non può ricevere il comando. Errore di Il Server di linea non ha ricevuto il token. trasmissione (token perso) 02 03 04 L’elaborazione è terminata correttamente. 05 Errore di loop Si è verificato un errore nel loop di comunicazione. 06 Nessuna risposta 07 Errore di risposta Il nodo di destinazione non esiste o il tempo di controllo della risposta è stato superato. Esiste un errore nel formato della risposta. 39 Capitolo 3-4 Area SR SR 238...SR 245 contengono lo stato del collegamento dati per i Sistemi SYSMAC LINK/SYSMAC NET. La struttura dei dati dipende dal sistema utilizzato per creare il collegamento dati. Flag di stato del collegamento dati SYSMAC LINK Bit Livello operativo i 0 Livello operativo i 1 SR 238 SR 242 da 12 a 15 Nodo 4 da 11 a 08 Nodo 3 da 04 a 07 Nodo 2 da 00 a 03 Nodo 1 SR 239 SR 243 Nodo 8 Nodo 7 Nodo 6 Nodo 5 SR 240 SR 244 Nodo 12 Nodo 11 Nodo 10 Nodo 9 SR 241 SR 245 Nodo 16 Nodo 15 Nodo 14 Nodo 13 Bit più significativo 1: Funzionamento del collegamento dati 1: Errore di comunicazione Bit meno significativo 1: Stato PLC RUN 1: Errore della CPU del PLC SYSMAC NET Livello operativo oper tivo 0 Bit (Numeri di nodo) Livello operativo oper tivo 1 15 14 13 12 SR 238 SR 242 8 7 6 5 SR 239 SR 243 16 15 14 SR 240 SR 244 24 23 22 SR 241 SR 245 32 31 30 11 10 09 08 07 06 05 04 03 02 01 00 4 3 2 1 8 7 6 5 4 3 2 1 13 12 11 10 9 16 15 14 13 12 11 10 9 21 20 19 18 17 24 23 22 21 20 19 18 17 29 28 27 26 25 32 31 30 29 28 27 26 25 1: Errore della CPU del PLC 1: Stato PLC RUN 3-4-2 Sistemi I/O remoti SR 25312 viene impostato su ON per indicare un errore verificatosi nei Sistemi I/O remoti. L’indicatore ALM/ERR lampeggia, ma il PLC continua a funzionare. SR 251 contiene informazioni sulla causa e il tipo di errore, e AR 0014 e AR 0015 contengono informazioni sullo stato del SYSMAC LINK. La funzione di ciascun bit verrà descritta di seguito. Fare riferimento ai Manuali del Sistema I/O remoto cablato e ottico per ulteriori dettagli. SR 25100 – Bit di controllo errore Se si verificano errori in più Moduli I/O remoti, le informazioni sull’errore contenute nel canale SR 251 saranno relative solo al primo modulo. I dati per i moduli restanti verranno memorizzati e per accedere ad essi occorre impostare il bit di controllo dell’errore su ON e OFF. Accertarsi di registrare i dati per il primo errore, poiché vengono cancellati quando sono visualizzati i dati per l’errore successivo. SR 25101 e SR 25102 Non utilizzati. SR 25103 Flag di errore I/O remoto: Il Bit 03 viene impostato su ON quando si verifica un errore in un Modulo I/O remoto. da SR 25104 a SR 25115 Il contenuto dei bit da 04 a 06 è un numero binario di 3 digit (04: 20, 05: 21, 06: 22) mentre quello dei bit da 08 a 15 è un numero esadecimale di 2 digit (da 08 a 11: 160, da 12 a 15: 161). Se il contenuto dei bit da 12 a 15 è B, significa che si è verificato un errore in un Modulo slave o Master I/O remoto, mentre il contenuto dei bit da 08 a 11 indica il numero di modulo, 0 o 1, del Master coinvolto. In questo caso, i bit da 04 a 06 contengono il numero di modulo del Rack slave coinvolto. Se il contenuto dei bit da 12 a 15 è un numero da 0 a 31, significa che si è verificato un errore in un Modulo I/O ottico o in un Terminale I/O. Il numero è il numero di modulo del Modulo I/O ottico o del Terminale I/O coinvolto, mentre il bit 04 sarà ON, se al Modulo vengono assegnati bit di canale più significativi (da 08 a 15), e OFF, se gli vengono assegnati bit di canale meno significativi (da 00 a 07). 40 Capitolo 3-4 Area SR 3-4-3 Flag e bit di controllo del Sistema di collegamento L’utilizzo dei seguenti bit SR dipende dalla configurazione dei Sistemi di collegamento a cui appartiene il PLC. Questi flag e bit di controllo vengono utilizzati quando i Moduli di collegamento, quali ad esempio i Moduli PLC Link, i Moduli I/O remoti o i moduli Host Link, sono montati sui Rack del PLC o sulla CPU. Consultare il Manuale del sistema per ulteriori informazioni sui Moduli particolari coinvolti. I seguenti bit possono essere utilizzati come bit di lavoro quando il PLC non appartiene al Sistema di collegamento associato ad essi. Sistemi Host Link Per i sistemi Host Link vengono forniti sia i flag di errore che i bit di riavvio. I flag di errore vengono impostati su ON per indicare errori nei Moduli Host Link. I bit di riavvio vengono impostati su ON e quindi su OFF per riavviare il Modulo Host Link. I bit SR utilizzati con i Sistemi Host Link sono riportati nella seguente tabella. I bit di riavvio del Modulo Host Link montato su rack non sono validi per i Moduli Host Link montati su rack multilivello. Fare riferimento al Manuale del Sistema Host Link per ulteriori dettagli. Bit Flag 25206 Flag di errore di livello 1 del Modulo Host Link montato su rack 25207 Bit di riavvio di livello 1 del Modulo Host Link montato su rack 25213 Bit di riavvio di livello 0 del Modulo Host Link montato su rack 25311 Flag di errore di livello 0 del Modulo Host Link montato su rack Sistemi PLC Link Errore del modulo PLC Link e flag di esecuzione Quando il PLC appartiene a un Sistema PLC Link, i canali da 247 a 250 vengono utilizzati per controllare lo stato operativo di tutti i Moduli PLC Link collegati al Sistema PLC Link. Ciò include un massimo di 32 Moduli PLC Link. Se il PLC è in un Sistema PLC Link multilivello, una metà dei Moduli PLC Link sarà in un SottoSistema PLC Link nel livello operativo 0, mentre l’altra metà, in un Sottosistema nel livello operativo 1. Le assegnazioni effettive dei bit dipendono dalla presenza del PLC in un Sistema PLC Link di livello singolo o in un Sistema PLC Link multilivello. Fare riferimento al Manuale del Sistema PLC Link per ulteriori dettagli. Le assegnazioni dei bit del flag di errore e di esecuzione verranno descritte di seguito. I bit da 00 a 07 di ciascun canale sono i flag di esecuzione, impostati su ON quando il Modulo PLC Link è nella modalità RUN. I bit da 08 a 15 sono i flag di errore, impostati su ON quando si verifica un errore nel Modulo PLC Link. La seguente tabella indica le assegnazioni dei bit per i Sistemi PLC Link di livello singolo e multilivello. 41 Capitolo 3-4 Area SR Sistemi PLC Link a un livello Tipo di flag N. bit Flag g di 00 esecuzione i 01 02 Flag g di errore Tipo di flag Flag di esecuzione SR 247 SR 248 SR 249 Modulo #24 Modulo #25 Modulo #26 Modulo #16 Modulo #17 Modulo #18 Modulo #8 Modulo #9 Modulo #10 Modulo #0 Modulo #1 Modulo #2 03 Modulo #27 Modulo #19 Modulo #11 Modulo #3 04 Modulo #28 Modulo #20 Modulo #12 Modulo #4 05 Modulo #29 Modulo #21 Modulo #13 Modulo #5 06 Modulo #30 Modulo #22 Modulo #14 Modulo #6 07 Modulo #31 Modulo #23 Modulo #15 Modulo #7 08 09 10 Modulo #24 Modulo #25 Modulo #26 Modulo #16 Modulo #17 Modulo #18 Modulo #8 Modulo #9 Modulo #10 Modulo #0 Modulo #1 Modulo #2 11 Modulo #27 Modulo #19 Modulo #11 Modulo #3 12 Modulo #28 Modulo #20 Modulo #12 Modulo #4 13 Modulo #29 Modulo #21 Modulo #13 Modulo #5 14 Modulo #30 Modulo #22 Modulo #14 Modulo #6 15 Modulo #31 Modulo #23 Modulo #15 Modulo #7 SR 247 SR 248 SR 249 N. bit 00 01 02 03 04 05 06 07 Flag di errore 08 09 10 11 12 13 14 15 Esempio di applicazione 42 Modulo #8, livello 1 Modulo #9, livello 1 Modulo #10, livello 1 Modulo #11, livello 1 Modulo #12, livello 1 Modulo #13, livello 1 Modulo #14, livello 1 Modulo #15, livello 1 Modulo #8, livello 1 Modulo #9, livello 1 Modulo #10, livello 1 Modulo #11, livello 1 Modulo #12, livello 1 Modulo #13, livello 1 Modulo #14, livello 1 Modulo #15, livello 1 Modulo #0, livello 1 Modulo #1, livello 1 Modulo #2, livello 1 Modulo #3, livello 1 Modulo #4, livello 1 Modulo #5, livello 1 Modulo #6, livello 1 Modulo #7, livello 1 Modulo #0, livello 1 Modulo #1, livello 1 Modulo #2, livello 1 Modulo #3, livello 1 Modulo #4, livello 1 Modulo #5, livello 1 Modulo #6, livello 1 Modulo #7, livello 1 Modulo #8, livello 0 Modulo #9, livello 0 Modulo #10, livello 0 Modulo #11, livello 0 Modulo #12, livello 0 Modulo #13, livello 0 Modulo #14, livello 0 Modulo #15, livello 0 Modulo #8, livello 0 Modulo #9, livello 0 Modulo #10, livello 0 Modulo #11, livello 0 Modulo #12, livello 0 Modulo #13, livello 0 Modulo #14, livello 0 Modulo #15, livello 0 SR 250 SR 250 Modulo #0, livello 0 Modulo #1, livello 0 Modulo #2, livello 0 Modulo #3, livello 0 Modulo #4, livello 0 Modulo #5, livello 0 Modulo #6, livello 0 Modulo #7, livello 0 Modulo #0, livello 0 Modulo #1, livello 0 Modulo #2, livello 0 Modulo #3, livello 0 Modulo #4, livello 0 Modulo #5, livello 0 Modulo #6, livello 0 Modulo #7, livello 0 Se il PLC è in un Sistema PLC Link multilivello e il contenuto del canale 248 è 02FF, i Moduli PLC Link da #0 a #7 del SottoSistema PLC Link assegnato al livello operativo 1 saranno nella modalità RUN e il Modulo PLC Link #1 nello stesso sottosistema avrà un errore. I digit esadecimali e i bit binari corrispondenti del canale 248 sono riportati di seguito. Capitolo 3-4 Area SR N. bit 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 00 Binario 0000 Esa 0 0010 1111 2 F 1111 F 3-4-4 Bit di mantenimento della forzatura SR 25211 determina se lo stato dei bit di set forzato o reset forzato viene mantenuto o meno, quando si commuta tra la modalità PROGRAM e MONITOR per avviare o interrompere il funzionamento. Se SR 25211 è ON, lo stato dei bit verrà mantenuto; se è OFF, tutti i bit ripristineranno lo stato di default una volta che il funzionamento viene avviato o interrotto. Il bit di mantenimento della forzatura è valido solo quando è abilitato nel Setup del PLC. Lo stato di SR 25211 non viene influenzato dall’interruzione di alimentazione, tranne se la tabella I/O viene registrata; in tal caso, SR 25211 diventerà OFF. SR 25211 non è valido quando si passa alla modalità RUN. SR 25211 può essere gestito da un Dispositivo periferico, ad esempio, una Console di programmazione o l’SSS/SYSWIN. Mantenimento dello stato durante l’avvio rLo stato di SR 25211 e quindi lo stato dei bit di set forzato e di reset forzato può essere mantenuto quando l’alimentazione viene attivata o disattivata abilitando il Bit di mantenimento della forzatura nel Setup del PLC. Se i Bit di mantenimento della forzatura sono abilitati, lo stato di SR 25211 viene mantenuto quando l’alimentazione viene attivata o disattivata. In tal caso e se SR 25211 è ON, lo stato dei bit di set forzato e di reset forzato sarà mantenuto, come riportato nella seguente tabella. Stato prima dello spegnimento SR 25211 ON OFF Stato all’avvio successivo SR 25211 ON OFF Bit di set/reset forzato Stato mantenuto Reset Nota Fare riferimento a 3-6-5 Setup del PLC per dettagli sull’abilitazione del Bit di mantenimento della forzatura. 3-4-5 Bit di mantenimento dello stato I/O SR 25212 determina se lo stato dei bit dell’area IR e LR viene mantenuto o meno quando il funzionamento viene avviato o interrotto, quando le operazioni hanno inizio dalla modalità PROGRAM alle modalità MONITOR o RUN. Se SR 25212 è ON, lo stato del bit verrà mantenuto, se è OFF, tutti i bit dell’area IR e LR verranno resettati. Il bit di mantenimento dello stato I/O è valido solo se abilitato nel Setup del PLC. Lo stato di SR 25212 non viene influenzato da un’interruzione di alimentazione tranne se la tabella I/O viene registrata; in tal caso, SR 25212 diventerà OFF. SR 25212 dovrebbe essere gestito da un Dispositivo periferico, ad esempio, una Console di programmazione o l’SSS. Stato di mantenimento durante l’avvio Lo stato di SR 25212 e quindi lo stato dei bit dell’area IR e LR può essere mantenuto quando l’alimentazione viene disattivata o attivata abilitando il Bit di mantenimento dello stato I/O nel Setup del PLC. Se il bit di mantenimento dello stato I/O è abilitato, lo stato di SR 25212 verrà conservato quando l’alimentazione viene attivata o disattivata. In tal caso e se SR 25212 è ON, anche lo stato dei bit dell’area IR e LR verrà mantenuto, come riportato nella seguente tabella. Stato prima dello spegnimento SR 25212 ON OFF Stato all’avvio successivo SR 25212 ON OFF Bit di IR e LR Stato mantenuto Reset Nota Fare riferimento a 3-6-5 Setup del PLC per dettagli sull’abilitazione dei Bit di mantenimento dello stato I/O. 3-4-6 Bit OFF di uscita Il bit SR 25215 viene impostato su ON per fare passare a OFF tutte le uscite dal PLC. L’indicatore OUT INHIBIT sul pannello anteriore della CPU lampeggerà. 43 Capitolo 3-4 Area SR Quando il Bit OFF di uscita è OFF, tutti i bit di uscita verranno rinfrescati nel modo consueto. Lo stato del Bit OFF di uscita viene mantenuto per le interruzioni di alimentazione oppure quando il funzionamento del PLC viene interrotto, tranne se la tabella I/O viene registrata e il Bit di mantenimento della forzatura o il Bit di mantenimento dello stato I/O non viene abilitato nel Setup del PLC. 3-4-7 Area FAL Il codice FAL in BCD di 2 digit viene emesso nei bit da 25300 a 25307 quando l’istruzione FAL o FALS viene eseguita. Questi codici sono definiti dall’utente per essere utilizzati per la diagnostica dell’errore, sebbene anche il PLC emetta i codici FAL in questi bit, come ad esempio quello provocato dallo scaricamento della batteria. Quest’area può essere resettata eseguendo l’istruzione FAL con un operando di 00 o eseguendo un’operazione di lettura non riuscita dalla Console di programmazione. 3-4-8 Flag di batteria scarica Il bit SR 25308 passa a ON se si scarica la batteria di riserva della CPU. L’indicatore ALM/ERR sulla parte anteriore della CPU lampeggerà. Questo bit può essere programmato per attivare un indicatore esterno di batteria scarica. Il funzionamento dell’allarme della batteria può essere disabilitato nel Setup del PLC, se desiderato. Fare riferimento a 3-6-5 Setup del PLC per ulteriori dettagli. 3-4-9 Flag di errore del tempo di ciclo Il bit SR 25309 passa a ON se il tempo di ciclo supera i 100 ms. L’indicatore ALM/ ERR sulla parte anteriore della CPU lampeggerà. Tuttavia, l’esecuzione del programma non si interrompe, tranne se viene superato il tempo limite massimo impostato per il watchdog timer. La temporizzazione diventa non affidabile se il tempo di ciclo supera i 100 ms. 3-4-10 Flag di errore della verifica I/O Il bit SR 25310 passa a ON quando i Moduli montati nel sistema non corrispondono alla tabella registrata nella CPU. L’indicatore ALM/ERR sulla parte anteriore della CPU lampeggia, ma il PLC continua a funzionare. Per assicurare un corretto funzionamento, il PLC dovrebbe essere bloccato, i Moduli controllati e la tabella I/O corretta quando questo flag diventa ON. 3-4-11 Flag di primo ciclo Il bit SR 25315 passa a ON quando il PLC viene attivato e quindi passa a OFF dopo un ciclo del programma. Il Flag di primo ciclo è utile per l’inizializzazione dei valori del contatore e per altre operazioni. Un esempio di questo tipo viene fornito in 5-14 Istruzioni Timer e Counter. 3-4-12 Bit dell’impulso di clock Per controllare la temporizzazione del programma, sono disponibili cinque impulsi di clock. Ciascun bit dell’impulso di clock è ON per la prima metà dell’impulso nominale, e quindi OFF per la seconda metà. In conclusione, ciascun impulso di clock ha un fattore di utilizzo del 50%. 44 Capitolo 3-4 Area SR Questi bit dell’impulso di clock vengono spesso utilizzati con le istruzioni Counter per creare i temporizzatori. Fare riferimento a 5-14 Istruzioni Timer e Counter per un esempio di questo tipo. Ampiezza dell’impulso Bit 1 min 0,02 s 0,1 s 0,2 s 1,0 s 25400 25401 25500 25501 25502 Bit 25400 Impulso di clock di 1 min 30 s 30 s Bit 25401 Impulso di clock di 0,02 s ,01 s 1 min. ,02 s Bit 25500 Impulso di clock di 0,1s ,05 s ,05 s 0,1 s Bit 25501 Impulso di clock di 0,2 s 0,1 s 0,1 s 0,2 s Bit 25502 Impulso di clock di 1,0 s 0,5 s ,01 s 0,5 s 1,0 s Nota: Poiché i bit dell’impulso di clock di 0,1 secondi e di 0,02 secondi hanno tempi ON di 50 e 10 ms, rispettivamente, la CPU potrebbe non leggere correttamente gli impulsi se il tempo di esecuzione del programma è troppo lungo. 3-4-13 Flag del passo Il bit SR 25407 passa a ON per un ciclo quando l’esecuzione del passo viene avviata con l’istruzione STEP(008). 3-4-14 Flag di errore gruppo 2 Il bit SR 25414 passa a ON per uno dei seguenti errori per i Moduli I/O ad alta densità gruppo 2 e i Moduli interfaccia B7A: lo stesso numero I/O impostato due volte, gli stessi canali allocati a più moduli, errori di rinfresco. Se si verifica uno di questi errori, il modulo si blocca e l’indicatore ALARM lampeggia, ma il PLC continua a funzionare. Quando il Flag di errore gruppo 2 è ON, il numero del modulo con l’errore verrà fornito tra AR 0205 e AR 0214. Se il Modulo non può essere avviato correttamente sebbene il numero I/O sia impostato correttamente e il modulo sia adeguatamente installato, è possibile che un fusibile sia guasto oppure che il Modulo abbia un componente hardware non funzionante. Se si verifica ciò, sostituire il Modulo e tentare di riavviare il sistema. Esiste anche un flag di errore per i Moduli I/O ad alta densità e i Moduli interfaccia B7A nell’area AR, AR 0215. 3-4-15 Flag di errore del modulo speciale Il bit SR 25415 passa a ON per indicare errori nei seguenti Moduli: Moduli I/O speciali, Moduli PLC Link, Host Link e Master I/O remoti. Il bit SR 25415 passa a ON se si verifica uno dei seguenti errori: • Quando più Moduli I/O speciali sono impostati sullo stesso numero di modulo. • Quando si verifica un errore nel rinfresco dei dati tra un Modulo I/O speciale e la CPU del PLC. • Quando si verifica un errore tra un Modulo Host Link e la CPU del PLC. • Quando si verifica un errore in un Modulo master I/O remoto. Sebbene il PLC continui a funzionare se SR 25415 passa a ON, i Moduli che causano l’errore interrompono il funzionamento e l’indicatore ALM lampeggia. 45 Capitolo 3-4 Area SR Controllare lo stato da AR 0000 a AR 0015 per ottenere i numeri dei Moduli per cui l’errore si è verificato e verificare le cause dell’errore. Il funzionamento del modulo può essere riavviato utilizzando i Bit di riavvio (da AR 0100 a AR 0115, SR 25207 e SR 25213), ma non sarà effettivo se per più moduli I/O speciali è impostato lo stesso numero di modulo. Scollegare l’alimentazione, correggere le impostazioni relative al numero di modulo e reinserire l’alimentazione. SR 25415 non passa a OFF anche se AR 0100...AR 0115 (Bit di riavvio) sono impostati su ON. Esso può essere impostato su OFF leggendo gli errori da un Dispositivo di programmazione o eseguendo FAL(006) 00 dal programma a relè. 3-4-16 Flag di errore di esecuzione dell’istruzione, ER Il bit SR 25503 passa a ON se viene effettuato un tentativo di eseguire un’istruzione con operandi non corretti. Le cause comuni di un errore di istruzione sono gli operandi non in BCD quando vengono richiesti dati in BCD, o un canale DM indirizzato indirettamente non esistente. Quando il Flag ER è ON, l’istruzione corrente non verrà eseguita. 3-4-17 Flag aritmetici I seguenti flag vengono utilizzati per lo scambio di dati, calcoli aritmetici e istruzioni di comparazione. Generalmente si fa riferimento a tali flag solo con la relativa abbreviazione di due lettere. Nota Questi flag vengono tutti resettati quando viene eseguita l’istruzione END(001) e quindi non possono essere controllati da un dispositivo di programmazione. Fare riferimento a 5-15 Istruzioni di scorrimento, 5-17 Istruzioni di comparazione, 5-20 Operazioni aritmetiche in BCD e 5-21 Operazioni aritmetiche in binario per ulteriori dettagli. Flag negativo, N Il bit SR 25402 passa a ON quando il risultato di un calcolo è negativo. Flag di overflow, OF Il bit SR 25404 passa a ON quando il risultato di un’addizione o sottrazione binaria supera 7FFF o 7FFFFFFF. Flag di underflow, UF Il bit SR 25405 passa a ON quando il risultato di un’addizione o sottrazione binaria con segno supera 8000 o 80000000. Flag del carry, CY Il bit SR 25504 passa a ON quando esiste un carry nel risultato di un’operazione aritmetica o quando un’istruzione di rotazione o di scorrimento sposta un “1” in CY. Il contenuto di CY viene utilizzato anche in alcune operazioni aritmetiche, ad esempio viene aggiunto o sottratto insieme ad altri operandi. Questo flag può essere impostato e cancellato dal programma utilizzando le istruzioni Set Carry e Clear Carry. Flag di maggiore di, GR Il bit SR 25505 passa a ON quando il risultato di una comparazione mostra che il primo di due operandi è maggiore del secondo. Flag di uguale a, EQ Il bit SR 25506 passa a ON quando il risultato di una comparazione mostra che due operandi sono uguali o quando il risultato di un’operazione aritmetica è zero. Flag di minore di, LE Il bit SR 25507 passa a ON quando il risultato di una comparazione mostra che il primo di due operandi è minore del secondo. Nota I quattro flag aritmetici passano a OFF quando l’istruzione END(001) viene eseguita. 3-4-18 Aree della subroutine di interrupt Le seguenti aree vengono utilizzate nelle elaborazioni delle subroutine di interrupt. Area tempo massimo di elaborazione della subroutine di interrupt 46 I bit da SR 26200 a 26215 vengono utilizzati per impostare il tempo massimo di elaborazione della subroutine di interrupt. I tempi di elaborazione sono misurati in incrementi di 0,1 ms. Capitolo 3-4 Area SR Area numero di subroutine di interrupt per tempo massimo di elaborazione I bit da SR 26300 a 26315 contengono il numero di subroutine di interrupt per il tempo massimo di elaborazione. Il bit 15 sarà ON se si verifica un’interruzione. 3-4-19 Aree di comunicazione della porta RS-232C Codice di errore porta RS-232C I bit SR da 26400 a 26403 vengono impostati quando si verifica un errore per la porta RS-232C. Impostazione Tipo di errore 0 Nessun errore 1 Errore di parità 2 Errore di frame 3 Errore di overrun 4 Errore FCS 5 Errore di timeout 6 Errore di checksum 7 Errore di comando Bit di errore di comunicazione porta RS-232C Il bit SR 26404 passa a ON quando esiste un errore di comunicazione per la porta RS-232C. Flag di pronto per la trasmissione porta RS-232C Il bit SR 26405 passa a ON quando il PLC è pronto per trasmettere i dati. Flag di ricezione completata porta RS-232C Il bit SR 26406 passa a ON quando il PLC ha completato la lettura dei dati da un dispositivo RS-232C. Flag di overflow di ricezione porta RS-232C Il bit SR 26407 passa a ON quando si verifica un overflow dopo la ricezione di dati. Contatore di ricezione RS-232C SR 26500...SR 26515 contengono il numero di ricezioni della porta RS-232C nella Modalità I/O generale. Flag di pronto per la trasmissione di livello 0 all’Host Link Il bit SR 26705 passa a ON quando il PLC è pronto per la trasmissione al Modulo Host Link. Flag di pronto per la trasmissione di livello 1 all’Host Link Il bit SR 26713 passa a ON quando il PLC è pronto per la trasmissione all’Host Link. 3-4-20 Aree di comunicazione per la porta periferica Codice di errore porta periferica I bit SR da 26408 a 26411 vengono impostati quando esiste un errore per la porta periferica nella Modalità I/O generale. Impostazione Tipo di errore 0 Nessun errore 1 Errore di parità 2 Errore di frame 3 Errore di overrun 4 Errore FCS 5 Errore di timeout 6 Errore di checksum 7 Errore di comando Bit di errore di comunicazione per la porta periferica Il bit SR 26412 passa a ON quando esiste un errore di comunicazione per la porta periferica (valido nella Modalità I/O generale). Flag di pronto per la trasmissione per la porta periferica Flag di ricezione completata per la porta periferica Il bit SR 26413 passa a ON quando il PLC è pronto per trasmettere i dati nella Modalità I/O generale. Il bit SR 26414 passa a ON quando il PLC ha completato la lettura dei dati da un dispositivo periferico. Valido nella Modalità I/O generale. 47 Capitolo 3-4 Area SR Flag di overflow di ricezione per la porta periferica Il bit SR 26415 passa a ON quando si verifica un sovraccarico di dati dopo la ricezione. Valido nella Modalità I/O generale. Contatore di ricezione per le periferiche SR 26600...SR 26615 contengono il numero di ricezioni della porta periferica nella modalità I/O generale (BCD). Flag di pronto per la trasmissione di livello 0 all’Host Link Il bit SR 26705 passa a ON quando il PLC è pronto per la trasmissione al Modulo Host Link. Flag di pronto per la ricezione di livello 1 dall’Host Link Il bit SR 26713 passa a ON quando il PLC è pronto per ricevere i dati dall’Host Link. 3-4-21 Aree della cartuccia di memoria Contenuto della cartuccia di memoria SR 26900...SR 26907 indicano il tipo di memoria utilizzato per la Cartuccia di memoria. Tipo di memoria Capacità della cartuccia di memoria Codice Nessuno 00 UM 01 IOM 02 HIS 03 SR 26908...SR 26910 indicano la capacità di memoria della Cartuccia di memoria. Capacità Codice 0 kW (nessuna scheda montata) 0 4 kW/8 kW 2 16 kW 3 32 kW 4 Flag di cartuccia di memoria EEPROM/EPROM montata Il bit SR 26914 passa a ON quando la Cartuccia di memoria EEPROM è protetta oppure quando la Cartuccia di memoria EPROM è montata. Flag della cartuccia di memoria Il bit SR 26915 passa a ON quando la Cartuccia di memoria è montata. Flag di salvataggio UM sulla cartuccia Il bit SR 27000 passa a ON quando i dati UM vengono letti in una Cartuccia di memoria nella modalità Program. Il bit passa automaticamente a OFF. Se viene impostato a ON in un’altra modalità, si verificherà un errore. Flag di caricamento UM dalla cartuccia Il bit SR 27001 passa a ON quando i dati vengono caricati nell’UM da una Cartuccia di memoria nella modalità Program. Il bit verrà impostato automaticamente su OFF. Se viene impostato su ON in un’altra modalità, si verificherà un errore. Confronto (tra il DM e la cartuccia di memoria) Il bit SR 27002 passa a ON quando i dati sono stati confrontati tra il DM e una Cartuccia di memoria. Il bit SR 27003 passa a OFF se i dati nella Cartuccia di memoria corrispondono, mentre passa a ON se i dati non corrispondono. 3-4-22 Bit di errore di trasferimento dati I dati non verranno trasferiti dall’UM alla Cartuccia di memoria se si verifica un errore (ad eccezione dell’errore di checksum sulla scheda). Le informazioni dettagliate sugli errori di checksum che si verificano nella Cartuccia di memoria non verranno emessi in SR 272 dato che le informazioni non sono necessarie. Ripetere la trasmissione se SR 27015 è ON. Flag di errore di trasferimento: Collegamento dati attivo Il bit SR 27011 passa a ON quando viene effettuato un tentativo di trasferire l’UM utilizzato per la tabella di collegamento dati SYSMAC NET se il collegamento dei dati è attivo. Flag di errore di trasferimento: Modalità non PROGRAM Il bit SR 27012 passa a ON quando il PLC non è nella modalità Program e si è tentato di trasferire i dati. Flag di errore di trasferimento: Solo lettura Il bit SR 27013 passa a ON quando il PLC è nella modalità di sola lettura e si è tentato di trasferire i dati. 48 Capitolo 3-4 Area SR Flag di errore di trasferimento: Capacità insufficiente o nessun UM Il bit SR 27014 passa a ON se si è tentato di trasferire i dati e l’UM disponibile non è sufficiente. Flag di errore di trasferimento: Errore di checksum sulla scheda Il bit SR 27015 passa a ON quando si è tentato di trasferire i dati e si verifica un errore di checksum sulla scheda. 3-4-23 Aree di memoria del diagramma a relè Area dimensioni del diagramma a relè sulla cartuccia di memoria SR 27100...SR 27107 indicano la quantità di programmi a relè memorizzata in una Cartuccia di memoria. Solo file ladder: 04: 4 kW; 08: 8 kW; 12: 12 kW; ... (32: 32 kW) 00:La Cartuccia di memoria non contiene l’UM oppure non vi è alcun file. Tipo e dimensione del diagramma a relè della CPU SR 27108...SR 27115 indicano le dimensioni e il tipo di programma a relè della CPU. Le specifiche sono le stesse per i bit da 00 a 07. 3-4-24 Flag di errore di memoria Flag di errore di memoria: Errore di Setup del PLC Il bit SR 27211 passa a ON quando si verifica un errore di checksum sul Setup del PLC. Flag di errore di memoria: Errore di checksum sul programma a relè Il bit SR 27212 passa a ON quando si verifica un errore di checksum sul programma a relè. Flag di errore di memoria: Errore di modifica dell’istruzione Il bit SR 27213 passa a ON quando si verifica un errore dell’area del vettore di modifica dell’istruzione. Flag di errore di memoria: Errore di sconnessione della cartuccia di memoria Il bit SR 27214 passa a ON quando una Cartuccia di memoria viene collegata o scollegata durante il funzionamento. Flag di errore di memoria: Errore di avviamento automatico Il bit SR 27215 passa a ON quando si verifica un errore di avviamento automatico. 3-4-25 Flag di salvataggio dei dati I dati vengono trasferiti nella Cartuccia di memoria quando il bit viene impostato su ON nella modalità PROGRAM. Il bit viene impostato automaticamente su OFF. Se viene impostato su ON in un’altra modalità, si verificherà un errore. Salvataggio di IOM nel bit della cartuccia Il bit SR 27300 passa a ON quando IOM viene salvato in una Cartuccia di memoria. Caricamento di IOM dal bit della cartuccia Il bit SR 27301 passa a ON quando viene caricato in IOM da una Cartuccia di memoria. 3-4-26 Flag di errore di trasferimento I dati non verranno trasferiti da IOM alla Cartuccia di memoria se si verifica un errore (ad eccezione dell’Errore di sola lettura). Il bit SR 27312 passa a ON quando si tenta di trasferire i dati in una modalità Flag di errore di trasferimento: Modalità non diversa dalla modalità Program. PROGRAM Flag di errore di trasferimento Il bit SR 27313 passa a ON quando si tenta di trasferire i dati nella Modalità solo lettura. Flag di errore di trasferimento Il bit SR 27314 passa a ON quando si tenta di trasferire i dati e la capacità IOM non è sufficiente. 3-4-27 Flag di errore del Setup del PLC Errore di riavvio del Setup del PLC Il bit SR 27500 passa a ON quando si verifica un errore di riavvio del Setup del PLC (da DM6600 a DM6605). 49 Capitolo 3-5 Area AR Errore di RUN del Setup del PLC Il bit SR 27501 passa a ON quando si verifica un errore di esecuzione del Setup del PLC (da DM6613 a DM6623). Errore di comunicazione di Setup del PLC/Errore di impostazione/Errore eterogeneo Il bit SR 27502 passa a ON quando si verifica un errore di comunicazione del Setup del PLC, un errore di impostazione o un errore eterogeneo (da DM6635 a DM6655). 3-4-28 Clock e mappatura della tastiera Clock (SR 276) SR 276 contiene l’ora corrente. I bit SR da 27600 a 27607 contengono i minuti (da 00 a 59) e i bit SR da 27608 a 27615 contengono le ore (da 0 a 23). Mappatura della tastiera (SR 277) SR 277... SR 279 sono utilizzati per la mappatura della tastiera. 3-4-29 Flag di errore gruppo 2 I bit da SR 28000 a SR 28015 vengono utilizzati come Flag di errore per i Moduli I/O ad alta densità gruppo 2 con numeri di modulo da 0 a F. Il flag di errore corrispondente viene impostato su ON quando si verifica un errore in quel Modulo. Inoltre dieci bit nell’area AR (da AR 0205 a AR 0214) vengono utilizzati come flag di errore per i Moduli da 0 a 9. 3-4-30 Bit di riavvio e flag di errore per i moduli I/O speciali I bit da SR 28100 a SR 28115 vengono utilizzati come Bit di riavvio per i Moduli I/O speciali con numeri di modulo da 0 a F. Impostare il bit corrispondente su ON e OFF per riavviare un Modulo I/O speciale. Inoltre nell’area AR (da AR 0100 a AR 0109) vengono utilizzati dieci bit come bit di riavvio per i moduli da 0 a 9. I bit da SR 28200 a SR 28215 vengono utilizzati come Flag di errore per i Moduli I/O speciali con numeri di modulo da 0 a F. Il Flag di errore corrispondente viene impostato su ON quando si verifica un errore in quel Modulo. Inoltre dieci bit nell’area AR (da AR 0000 a AR 0009) vengono utilizzati come Flag di errore per i Moduli da 0 a 9. 3-5 Area AR Gli indirizzi dei canali AR vanno da AR 00 a AR 27; gli indirizzi dei bit AR vanno da AR 0000 a AR 2715. La maggior parte dei canali e dei bit AR vengono utilizzati per fini specifici, quali ad esempio la gestione dei contatori di trasmissione, dei flag e dei bit di controllo, mentre i canali da AR 00 a AR 07 e da AR 23 a AR 27 non possono essere utilizzati per altri scopi. I canali e i bit da AR 08 a AR 17 sono disponibili come canali e bit di lavoro se non vengono utilizzati per i seguenti scopi assegnati. Canale Utilizzo da AR 08 a AR 15 Modulo SYSMAC LINK AR 16, AR 17 Moduli SYSMAC LINK e SYSMAC NET L’area AR conserva lo stato durante l’interruzione dell’alimentazione, quando si passa dalla modalità MONITOR o RUN alla modalità PROGRAM oppure quando il PLC non funziona. Le allocazioni dei bit sono riportate nella seguente tabella e descritte nelle pagine seguenti secondo i numeri di bit. Flag e bit di controllo dell’area AR Canali 00 50 Bit 00... 09 Funzione 10 Flag di errore per i Moduli I/O speciali da 0 a 9 e i Moduli PLC Link da 0 a 9 (la funzione di questi flag viene duplicata tra SR 28200 e SR 28209) Flag di errore per il livello operativo 1 del Sistema SYSMAC LINK o SYSMAC NET 11 Flag di errore per il livello operativo 0 del Sistema SYSMAC LINK o SYSMAC NET 12 Flag di errore di livello 1 Host Computer sul modulo Host Link montato su rack 13 Flag di errore di livello 0 Host Computer sul modulo Host Link montato su rack 14 Flag di errore del modulo 1 master I/O remoto 15 Flag di errore del modulo 0 master I/O remoto Capitolo 3-5 Area AR Canali 01 Bit 10 Bit di riavvio per i moduli I/O speciali da 0 a 9 e i Moduli PLC Link da 0 a 9 (la funzione di questi bit viene duplicata tra SR 28100 e SR 28109.) Bit di riavvio per il livello operativo 1 del Sistema SYSMAC LINK o SYSMAC NET 11 Bit di riavvio per il livello operativo 0 del Sistema SYSMAC LINK o SYSMAC NET 12, 13 Non utilizzati. 14 Bit di riavvio del modulo 1 master I/O remoto. 15 Bit di riavvio del modulo 0 master I/O remoto. 02 00... 04 Flag di errore rack slave (da #0 a #4) 03 05... 14 15 00... 15 Flag di errore gruppo 2 (i bit da 05 a 14 corrispondono ai Moduli da 0 a 9) Flag di errore gruppo 2 Flag di errore per i moduli I/O ottici e i Terminali I/O da 0 a 7 04 00... 15 Flag di errore per i Moduli I/O ottici e i Terminali I/O da 8 a 15 05 00... 15 Flag di errore per i Moduli I/O ottici e i Terminali I/O da 16 a 23 06 07 00... 15 Flag di errore per i Moduli I/O ottici e i Terminali da 24 a 31 08... 11 00... 03 04... 07 08 09... 11 12 13 14 15 00... 15 Configurazione del collegamento dati per il livello operativo 0 del Sistema SYSMAC LINK Configurazione del collegamento dati per il livello operativo 1 del Sistema SYSMAC LINK Bit di cancellazione ingresso della modalità TERMINAL Non utilizzati. Uguale allo stato del pin 6 sul commutatore DIP della CPU Bit di sovrascrittura della storia dell’errore Bit di reset della storia dell’errore Bit di abilitazione della storia dell’errore Flag di nodo attivo per i nodi del Sistema SYSMAC LINK di livello operativo 0 12... 15 00... 15 Flag di nodo attivo per i nodi del Sistema SYSMAC LINK di livello operativo 1 16 00... 15 17 00... 15 18 21 00... 07 08... 15 00... 07 08... 15 00... 07 08... 15 00... 07 22 08... 12 13 14 15 00... 15 Tempo di manutenzione per ciclo di livello operativo 0 del Sistema SYSMAC LINK/SYSMAC NET Tempo di manutenzione per ciclo di livello operativo 1 del Sistema SYSMAC LINK/SYSMAC NET Secondi: da 00 a 59 Minuti: da 00 a 59 Ore: da 00 a 23 (sistema di 24 ore) Giorno del mese: da 01 a 31 (regolato per mese e per anno bisestile) Mese: da 1 a 12 Anno: da 00 a 99 (le ultime due cifre dell’anno) Giorno della settimana: da 00 a 06 (00: Domenica; 01: Lunedì; 02: Martedì; 03: Mercoledì; 04: Giovedì; 05: Venerdì; 06: Sabato) Non utilizzati. Bit di compensazione di 30 secondi Bit di arresto del clock Bit di impostazione del clock Mappatura della tastiera 23 00... 15 Contatore spento (BCD) 19 20 00... 09 Funzione 51 Capitolo 3-5 Area AR Canali 24 Bit Funzione 25 00 01 02 03 04 05 06 07 08 09 10... 12 13 14 15 00... 07 26 08 09 10 11 12 13 14 15 00... 15 SYSMAC LINK – Flag del dispositivo periferico RS-232C SYSMAC LINK – Flag del dispositivo periferico della porta A SYSMAC LINK – Flag del dispositivo periferico della porta B SYSMAC LINK – Bit di inizializzazione del dispositivo periferico Non utilizzato. Flag del tempo di ciclo Flag del parametro di rete del Sistema SYSMAC LINK per il livello operativo 1 Flag del parametro di rete del Sistema SYSMAC LINK per il livello operativo 0 Flag per il livello 1 del modulo SYSMAC LINK/SYSMAC NET montato Flag per il livello 0 del modulo SYSMAC LINK/SYSMAC NET montato Non utilizzati. Flag per il livello 1 del modulo Host Link montato su rack Flag per il livello 0 del modulo Host Link montato su rack Flag del dispositivo montato sulla CPU Password per l’accesso al bit di disabilitazione di editing in linea (il bit di disabilitazione di editing in linea è valido quando questo byte contiene 5A.) Bit di trigger FPD(269) Bit di disabilitazione di editing in linea Flag di Standby di editing in linea Non utilizzato. Flag di fine tracciamento Flag di tracciamento Bit di trigger di tracciamento (scrittura possibile) Bit di avvio di tracciamento (scrittura possibile) Tempo di ciclo massimo (0,1 ms) 27 00... 15 Tempo di ciclo attuale (0,1 ms) 3-5-1 Riavvio dei Moduli I/O speciali I bit da AR 0100 a AR 0109 corrispondono ai numeri di modulo dei Moduli I/O speciali da 0 a 9. Per riavviare i Moduli I/O speciali (incluso i Moduli PLC Link) impostare il bit corrispondente su ON e OFF (oppure attivare o disattivare l’alimentazione). Non accedere ai dati rinfrescati per i Moduli I/O speciali durante il processo di riavvio (vedere da SR 27400 a SR 27409 a pagina 38). Nota I bit da SR 28100 a SR 28115 agiscono anche come bit di riavvio per i Moduli I/O speciali da 0 a F. 3-5-2 Flag di errore rack slave I bit da AR 0200 a AR 0204 corrispondono ai numeri di modulo dei Moduli slave I/O remoti da #0 a #4. Questi flag verranno impostati su ON se a più Slave viene allocato lo stesso numero oppure se si verifica un errore di trasmissione quando si avvia il sistema. Fare riferimento a SR 251 per gli errori che si verificano dopo che il Sistema è stato avviato regolarmente. 3-5-3 Flag di errore gruppo 2 I bit da AR 0205 a AR 0215 corrispondono ai Moduli I/O ad alta densità gruppo 2 e ai Moduli interfaccia B7A da 0 a 9 (numeri I/O). Essi verranno impostati su ON quando è impostato lo stesso numero per più moduli, quando viene allocato lo stesso canale per più moduli, quando il numero I/O 9 è impostato per un modulo a 64 punti oppure quando il fusibile si brucia in un Modulo I/O ad alta densità a 52 Capitolo 3-5 Area AR transistor. Il bit AR 0215 verrà impostato su ON quando un Modulo non viene riconosciuto come Modulo I/O ad alta densità gruppo 2. Nota I bit da SR 28000 a SR 28015 agiscono anche come Flag di errore per i Moduli I/O ad alta densità gruppo 2 con numeri di modulo da 0 a F. 3-5-4 Flag di errore per i Moduli I/O ottici e i Terminali I/O AR 03...AR 06 contengono i Flag di errore per i Moduli I/O ottici e i Terminali I/O. Un errore indica la duplicazione di un numero di modulo. Al PLC possono essere collegati fino a 64 Moduli I/O ottici e Terminali I/O. I moduli si distinguono per numero di modulo, da 0 a 31, e una lettera, L o H. I bit vengono allocati come riportato nella seguente tabella. Flag di errore del Modulo I/O ottico e del Terminale I/O Bit Allocazione di AR03 Allocazione di AR04 Allocazione di AR05 Allocazione di AR06 00 0L 8L 16 L 24 L 01 0H 8H 16 H 24 H 02 1L 9L 17 L 25 L 03 1H 9H 17 H 25 H 04 2L 10 L 18 L 26 L 05 2H 10 H 18 H 26 H 06 3L 11 L 19 L 27 L 07 3H 11 H 19 H 27 H 08 4L 12 L 20 L 28 L 09 4H 12 H 20 H 28 H 10 5L 13 L 21 L 29 L 11 5H 13 H 21 H 29 H 12 6L 14 L 22 L 30 L 13 6H 14 H 22 H 30 H 14 7L 15 L 23 L 31 L 15 7H 15 H 23 H 31 H 3-5-5 Impostazioni per il collegamento dati del Sistema SYSMAC LINK AR 0700...AR 0703 e AR 0704...AR 0707 vengono utilizzati per indicare le assegnazioni dei canali per i livelli operativi 0 e 1 del Sistema SYSMAC LINK. L’allocazione può essere effettuata sia secondo le impostazioni da SSS che automaticamente nelle aree LR e/o DM. Se viene indicata l’allocazione automatica, viene indicato anche il numero di canali allocato a ciascun nodo. Queste impostazioni vengono riportate di seguito. Allocazione esterna/automatica Canali per nodo Livello operativo 0 AR 0700 AR 0701 Livello operativo 1 AR 0704 AR 0705 Impostazione 0 0 0 0 1 0 1 0 Canali impostati esternamente (SSS/SYSWIN) Allocazione Solo area LR 0 1 0 1 automatica 1 1 1 1 Solo area DM Aree LR e DM La seguente impostazione è necessaria se è stata impostata l’allocazione automatica. Livello operativo 0 AR 0702 AR 0703 Livello operativo 1 AR 0706 AR 0707 Canali per nodo Area LR Area DM N. max di nodi 0 0 0 0 4 8 16 1 0 1 0 8 16 8 0 1 0 1 16 32 4 1 1 1 1 32 64 2 53 Capitolo 3-5 Area AR Le precedenti impostazioni vengono lette dopo ogni ciclo quando il Sistema SYSMAC LINK è in funzione. 3-5-6 Bit di storia dell’errore AR 0713 (Bit di sovrascrittura della storia dell’errore) viene impostato su ON o OFF dall’utente per controllare la sovrascrittura dei record nell’area storica dell’errore nell’area DM. Impostare AR 0713 su ON per sovrascrivere il record di errore più vecchio ogni volta che si verifica un errore dopo che ne sono stati registrati 10. Impostare AR 0713 su OFF per memorizzare solo i primi 10 record ogni volta che la storia dell’errore viene cancellata. AR 0714 (Bit di reset della storia dell’errore) viene impostato dall’utente su ON e quindi su OFF per resettare il Puntatore dei record di errore (DM 6000) e quindi riavviare la registrazione dei record di errore dall’inizio dell’area storica. AR 0715 (Bit di abilitazione della storia dell’errore) viene impostato dall’utente su ON per abilitare la registrazione della storia dell’errore e su OFF per disabilitarla. Fare riferimento a 3-6 Area DM per ulteriori dettagli sull’Area storica dell’errore. I bit di storia dell’errore vengono rinfrescati dopo ogni ciclo. 3-5-7 Flag di nodo attivo AR 08...AR 11 e AR 12...AR 15 forniscono i flag che indicano i nodi attivi nel Sistema SYSMAC LINK in quel momento. Questi flag vengono rinfrescati ad ogni ciclo quando il Sistema SYSMAC LINK è in funzione. La seguente tabella riporta il numero di nodo assegnato a ciascun bit. Se il bit è ON, il nodo è attivo. Livello 0 Livello 1 Bit (la tabella riporta i numeri di nodo) 00 01 02 03 04 09 10 AR 08 AR 12 1 2 3 4 5 6 05 7 06 8 07 9 08 10 11 12 11 13 12 14 13 15 14 16 15 AR 09 AR 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 AR 10 AR 14 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 AR 11 AR 15 49 50 51 52 53 54 55 56 57 58 59 60 61 62 * ** *Flag di errore del regolatore delle comunicazioni **Flag di errore EEPROM 3-5-8 Tempo di manutenzione del Sistema SYSMAC LINK/SYSMAC NET AR 16 fornisce il tempo allocato alla manutenzione di livello operativo 0 del Sistema SYSMAC LINK e/o del Sistema SYSMAC NET durante ciascun ciclo quando un Modulo SYSMAC LINK e/o un Modulo SYSMAC NET è montato su un Rack. AR 17 fornisce il tempo allocato alla manutenzione di livello operativo 1 del Sistema SYSMAC LINK e/o del Sistema SYSMAC NET durante ciascun ciclo quando il Modulo SYSMAC LINK e/o il Modulo SYSMAC NET è montato su un Rack. Questi tempi sono registrati in BCD a quattro digit in decimi di millisecondo (da 000,0 ms a 999,9 ms) e vengono rinfrescati dopo ogni ciclo. Bit 15...12 102 11...08 101 07...04 100 03...00 10–1 3-5-9 Area e bit di calendario/clock Area calendario/clock 54 Un clock viene realizzato nelle CPU C200HX/HG/HE. Se AR 2114 (Bit di arresto del clock) è OFF, la data, il giorno e l’ora saranno disponibili in BCD tra AR 18 e AR 20 e tra AR 2100 e AR 2108 come riportato di seguito. Quest’area può anche essere controllata con AR 2113 (Bit di compensazione di 30 secondi) e AR 2115 (Bit di impostazione del clock). Capitolo 3-5 Area AR Bit di calendario/clock Bit AR 1800...AR 1807 AR 1808...AR 1815 AR 1900...AR 1907 AR 1908...AR 1915 AR 2000...AR 2007 AR 2008...AR 2015 AR 2100...AR 2107 Contenuto Secondi Minuti Ore Giorno del mese Mese Anno Giorno della settimana Valori possibili da 00 a 59 da 00 a 59 da 00 a 23 (sistema 24 ore) da 01 a 31 (regolato per mese e per anno bisestile) da 1 a 12 da 00 a 99 (le due ultime cifre dell’anno) da 00 a 06 (00: Domenica; 01: Lunedì; 02: Martedì; 03: Mercoledì; 04: Giovedì; 05: Venerdì; 06: Sabato) Bit di compensazione di 30 secondi AR 2113 viene impostato su ON per arrotondare i secondi dell’Area calendario/ clock a zero, ad esempio se i secondi sono 29 o meno di 29, esso è impostato su 00; se i secondi sono 30 o più di 30, i minuti vengono incrementati di 1 e i secondi sono impostati su 00. Bit di arresto del clock AR 2114 viene impostato su OFF per abilitare il funzionamento dell’area calendario/clock e su ON per interrompere il funzionamento. Bit di impostazione del clock AR 2115 viene utilizzato per impostare l’Area calendario/clock come descritto di seguito. Questi dati devono essere in BCD ed impostati entro i limiti relativi all’Area calendario/clock forniti sopra. 1, 2, 3... 1. Impostare AR 2114 su ON (Bit di arresto). 2. Impostare la data, il giorno e l’ora desiderati, facendo attenzione a non impostare AR 2114 su OFF (Bit di arresto del clock) quando si imposta il giorno della settimana (essi sono nello stesso canale). Sulla Console di programmazione, le operazioni di monitoraggio di bit/digit e di set/reset forzato rappresentano il modo più semplice per impostare questi dati. 3. Impostare AR 2115 su ON (Bit di impostazione del clock). Il calendario/clock verrà avviato automaticamente con le impostazioni indicate e quindi AR 2114 e AR 2115 verranno impostati su OFF. I bit e l’area calendario/clock vengono rinfrescati dopo ogni ciclo durante il funzionamento. 3-5-10 Bit dei tasti della modalità TERMINAL Se la Console di programmazione viene montata sul PLC ed è nella modalità TERMINAL, le immissioni sui tasti da 0 a 9 (inclusi i caratteri da A a F, cioè i tasti da 0 a 5 con SHIFT) imposteranno a ON un bit corrispondente in AR 22. La modalità TERMINAL viene attivata mediante la Console di programmazione. 55 Capitolo 3-5 Area AR I bit in AR 22 corrispondono agli ingressi per la Console di programmazione come riportato di seguito: Bit AR 2200 AR 2201 AR 2202 AR 2203 AR 2204 AR 2205 AR 2206 AR 2207 AR 2208 AR 2209 AR 2210 AR 2211 AR 2212 AR 2213 AR 2214 AR 2215 Ingressi per la Console di programmazione 0 1 2 3 4 5 6 7 8 9 A B C D E F Fare riferimento al Capitolo NO TAG Monitoraggio ed esecuzione del programma per i dettagli sulla modalità TERMINAL. 3-5-11 Contatore alimentazione OFF AR 23 fornisce in BCD a quattro digit il numero di volte in cui il PLC è stato spento. Questo contatore può essere resettato, se necessario, utilizzando l’operazione PV Change 1 dalla Console di programmazione. Fare riferimento a NO TAG Modifica dei dati esadecimali BCD per ulteriori dettagli. Il Contatore di alimentazione OFF viene rinfrescato ogni volta che l’alimentazione viene attivata. 3-5-12 SYSMAC LINK – Flag del dispositivo periferico Un Dispositivo periferico può essere utilizzato mediante il Sistema SYSMAC LINK da una sola porta alla volta. Quando si modifica la porta da cui il Dispositivo periferico viene utilizzato, impostare su ON SYSMAC LINK – Bit di inizializzazione del dispositivo periferico (AR 2403). Bit Funzione AR 2400 SYSMAC LINK – Flag del dispositivo periferico RS-232C (questo flag viene impostato su ON quando un Dispositivo periferico viene utilizzato con il Sistema SYSMAC LINK dalla porta RS-232C.) AR 2401 SYSMAC LINK – Flag del dispositivo periferico della porta A (questo flag viene impostato su ON quando un Dispositivo periferico viene utilizzato con il Sistema SYSMAC LINK dalla porta A della Scheda di comunicazione.) AR 2402 SYSMAC LINK – Flag del dispositivo periferico della porta B (questo flag viene impostato su ON quando un Dispositivo periferico viene utilizzato con il Sistema SYSMAC LINK dalla porta B della Scheda di comunicazione.) AR 2403 SYSMAC LINK – Bit di inizializzazione del dispositivo periferico (impostare questo bit su ON per inizializzare l’uso di un Dispositivo periferico con il Sistema SYSMAC LINK.) 3-5-13 Flag del tempo di ciclo AR 2405 viene impostato su ON quando il tempo di ciclo impostato con SCAN(018) è minore del tempo di ciclo attuale. AR 2405 viene rinfrescato ad ogni ciclo quando il PLC è nella modalità RUN o MONITOR. 56 Capitolo 3-5 Area AR 3-5-14 Flag di modulo di collegamento montato I seguenti flag indicano quando i Moduli di collegamento specificati sono montati sui Rack (fare riferimento a 3-5-15 Flag di dispositivo montato sulla CPU per i Moduli Host Link montati sulla CPU.) Questi flag vengono rinfrescati dopo ogni ciclo. Nome Flag per il livello 1 del modulo SYSMAC LINK/SYSMAC NET montato Bit AR 2408 Modulo di collegamento Modulo SYSMAC LINK/SYSMAC NET nel livello operativo 1 Flag per il livello 0 del modulo SYSMAC LINK/SYSMAC NET montato AR 2409 Modulo SYSMAC LINK/SYSMAC NET nel livello operativo 0 Livello 1 del modulo Host Link montato su rack Livello 0 del modulo Host Link montato su rack AR 2413 Modulo Host Link montato su rack nel livello operativo 1 AR 2414 Modulo Host Link montato su rack nel livello operativo 0 3-5-15 Flag di dispositivo montato sulla CPU AR 2415 viene impostato su ON quando il dispositivo viene montato direttamente sulla CPU. Questo include i Moduli Host Link montati sulla CPU, la Console di programmazione e Moduli interfaccia. Questo flag viene rinfrescato dopo ogni ciclo. 3-5-16 Bit di trigger FPD AR 2508 viene utilizzato per regolare automaticamente il tempo di monitoraggio del FPD(269). Fare riferimento a NO TAG FAILURE POINT DETECT – FPD(269) per ulteriori dettagli. 3-5-17 Flag di tracciamento dati e bit di controllo I seguenti bit e flag di controllo vengono utilizzati durante il tracciamento dei dati con TRSM(045). Il Flag di tracciamento verrà impostato su ON durante le operazioni di tracciamento. Il Flag di tracciamento completato verrà impostato su ON quando sono stati tracciati dati sufficienti per riempire la Memoria di tracciamento. Bit Nome AR 2512 Flag di tracciamento completato AR 2513 Flag di tracciamento AR 2514 Bit di trigger di tracciamento (scrittura possibile) AR 2515 Bit di avvio del campionamento (scrittura possibile) Nota Fare riferimento a NO TAG TRACE MEMORY SAMPLING – TRSM(045) per ulteriori dettagli. 3-5-18 Indicatori del tempo di ciclo AR 26 contiene il tempo di ciclo massimo dal momento in cui è stata avviata l’esecuzione del programma. AR 27 contiene il tempo di ciclo attuale. Entrambi i tempi sono in decimi di millisecondo in 4 digit BCD (da 000,0 ms a 999,9 ms) e vengono rinfrescati dopo ogni ciclo. 57 Capitolo 3-6 Area DM 3-6 Area DM L’area DM è suddivisa in varie parti come riportato nella seguente tabella. Una parte di UM (fino a 3.000 canali in incrementi di 1.000 canali) può essere allocata come DM di espansione. Indirizzi DM 0000...DM 0999 Lettura/ scrittura utente Lettura/ Scrittura DM 1000...DM 2599 DM 2600...DM 5999 DM 6000...DM 6030 DM 6100...DM 6143 DM 6144...DM 6599 DM 6600...DM 6655 DM 7000...DM 9999 Solo lettura Utilizzo DM normale. Area del modulo I/O speciale1 DM normale Storico Riservato Impostazioni del sistema Setup del PLC DM2 di espansione Note 1. Il Setup del PLC può essere impostato per utilizzare DM 7000...DM 8599 come Area I/O speciale invece che utilizzare DM 1000...DM 2599. Fare riferimento a 3-6-5 Setup del PLC per ulteriori dettagli. 2. L’operazione della Console di programmazione per l’allocazione dell’area UM può essere utilizzata per allocare fino a 3000 canali di UM come DM di espansione. Sebbene siano composti da canali a 16 bit come qualsiasi altra area dati, i dati nell’area DM non possono essere specificati da bit per essere utilizzati nelle istruzioni con operandi di bit. DM 0000...DM 6143 possono essere scritti dal programma, ma DM 6144...DM 6655 possono essere sovrascritti solo da un Dispositivo periferico, come una Console di programmazione o un computer host con SSS. L’area DM mantiene lo stato durante un’interruzione di alimentazione. Indirizzamento indiretto Generalmente, quando il contenuto di un canale dell’area dati viene specificato per un’istruzione, questa viene eseguita direttamente sul contenuto di quel canale. Ad esempio, si supponga che MOV(021) viene eseguito con DM 0100 come primo operando e LR 20 come secondo operando. Quando questa istruzione viene eseguita, il contenuto di DM 0100 viene spostato in LR 20. Nota Il DM di espansione non può essere utilizzato per l’indirizzamento indiretto. E’ possibile, tuttavia, utilizzare indirizzi DM indiretti come operandi per molte istruzioni. Per indicare un indirizzo DM indiretto, DM viene inserito con l’indirizzo dell’operando. Con un indirizzo indiretto, il contenuto di questo operando non presenta i dati attuali da utilizzare. Invece, il contenuto mantiene l’indirizzo di un altro canale DM, il cui contenuto verrà effettivamente utilizzato nell’istruzione. Se DM 0100 è stato utilizzato nell’esempio sopra riportato e il contenuto di DM 0100 è 0324, DM 0100 significa che il contenuto di DM 0324 deve essere utilizzato come operando nell’istruzione e verrà spostato su LR 00. MOV(021) DM 0100 LR 00 Indirizzo indiretto Canale DM 0099 DM 0100 DM 0101 Contenuto 4C59 0324 F35A DM 0324 DM 0325 DM 0326 5555 2506 D541 Indica DM 0324 5555 spostato su LR 00. 3-6-1 Area DM di espansione L’area DM di espansione fornisce spazio di memoria per memorizzare i parametri operativi ed altri dati per i Moduli di collegamento e i Moduli I/O speciali. E’ 58 Capitolo 3-6 Area DM possibile allocare fino a 3.000 canali di UM come DM di espansione (in incrementi di 1K canale) utilizzando l’operazione UM ALLOCATION nella Console di programmazione o in SSS/SYSWIN. Gli indirizzi dell’area DM di espansione vanno da DM 7000 a DM 9999. I dati nell’area DM di espansione possono essere trasferiti nell’Area di default del Modulo I/O speciale (da DM 1000 a DM 1999) quando il PLC viene avviato o mediante istruzioni di programmazione per facilitare la modifica dei parametri operativi, abilitando lo scambio rapido tra i processi di controllo. L’area DM di espansione può anche essere utilizzata per memorizzare i parametri per gli altri dispositivi collegati nel sistema PLC, ad esempio, la stringa di caratteri o le tabelle numeriche del Terminale programmabile o le tabelle numeriche. L’area DM di espansione viene utilizzata per memorizzare i parametri operativi e non può essere utilizzata durante la programmazione come l’area DM normale. L’area DM di espansione può essere sovrascritta solo da un Dispositivo periferico, mantiene lo stato durante le interruzioni di alimentazione e non può essere utilizzata per l’indirizzamento indiretto. L’area UM può essere allocata come area DM di espansione in incrementi di 1K canali. Una volta che l’area DM di espansione è stata creata, viene salvata e trasferita come parte del programma, cioè non viene richiesta alcuna procedura speciale quando si salva o si trasferisce il programma. Operazione UM ALLOCATION La procedura per l’operazione UM ALLOCATION della Console di programmazione verrà descritta di seguito. Fare riferimento a 4-6-3 Cancellazione della memoria per ulteriori dettagli sulle istruzioni DATA CLEAR e UM ALLOCATION. 1, 2, 3... 1. Cancellazione della memoria. CLR SET NOT RESET EXT MONTR Nota L’allocazione di UM non è possibile, a meno che la memoria non venga prima cancellata. 2. L’area DM di espansione può essere impostata su 0, 1, 2 o 3 K canali. La sequenza di tasti sotto riportata crea un’area DM di espansione di 2kW (da DM 7000 a DM 8999). CLR FUN VER CHG 2 SET 9 7 1 3 WRITE Premere il tasto 0 per eliminare l’area DM di espansione (0 kW). o Premere il tasto 1 per allocare DM 7000...DM 7999 (1 kW). o Premere il tasto 2 per allocare DM 7000...DM 8999 (2 kW). o Premere il tasto 3 per allocare DM 7000...DM 9999 (3 kW). 3-6-2 Dati del modulo I/O speciale Ai moduli I/O speciali vengono associati 1000 o 1600 canali nell’Area DM a seconda del valore impostato nel canale DM 6602 del Setup del PLC. L’impostazione di DM 6602 stabilisce se l’area Dati del modulo I/O speciale è impostata per 10 o 16 moduli e se i dati vengono memorizzati nel DM di lettura/scrittura (da 59 Capitolo 3-6 Area DM DM 1000 a DM 2599) o nel DM di sola lettura (da DM 7000 a DM 8599). Fare riferimento a Appendice E per ulteriori dettagli. Unità Indirizzi 0 da DM 1000 a DM 1099 o da DM 7000 a DM 7099 1 da DM 1100 a DM 1199 o da DM 7100 a DM 7199 2 da DM 1200 a DM 1299 o da DM 7200 a DM 7299 3 da DM 1300 a DM 1399 o da DM 7300 a DM 7399 4 da DM 1400 a DM 1499 o da DM 7400 a DM 7499 5 da DM 1500 a DM 1599 o da DM 7500 a DM 7599 6 da DM 1600 a DM 1699 o da DM 7600 a DM 7699 7 da DM 1700 a DM 1799 o da DM 7700 a DM 7799 8 da DM 1800 a DM 1899 o da DM 7800 a DM 7899 9 da DM 1900 a DM 1999 o da DM 7900 a DM 7999 A da DM 2000 a DM 2099 o da DM 8000 a DM 8099 B da DM 2100 a DM 2199 o da DM 8100 a DM 8199 C da DM 2200 a DM 2299 o da DM 8200 a DM 8299 D da DM 2300 a DM 2399 o da DM 8300 a DM 8399 E da DM 2400 a DM 2499 o da DM 8400 a DM 8499 F da DM 2500 a DM 2599 o da DM 8500 a DM 8599 Nota Questi canali DM possono essere utilizzati per altri scopi quando non vengono allocati ai Moduli I/O speciali. 3-6-3 Moduli I/O speciali La seguente tabella mostra i Moduli I/O speciali che possono essere utilizzati e i relativi numeri di modulo. Moduli I/O ad d alta l densità (vedere nota)) Nome Numero modello Intervallo numero modulo Moduli di ingresso g CC C200H-ID501 C200H-ID215 C200H-OD215 C200H-OD501 C200H-MD215 C200H-MD501 C200H-MD115 da 0 a 9 C200H-AD001 C200H-AD002 da 0 a 9 da 0 a F (Vedere nota 1) da 0 a F (Vedere nota 2) da 0 a 9 Moduli di uscita transistor i Moduli di ingresso g CC/di uscita i tr nsistor transistor Moduli I/O analogici l i i Moduli di ingresso g analogici l i i C200H-AD003 Moduli di uscita analogici l i i C200H-DA001 C200H-DA002 C200H-DA003 C200H-DA004 Moduli I/O analogici misti 60 C200H-MAD01 da 0 a F (Vedere nota 1) da 0 a F (Vedere nota 2) da 0 a F (Vedere nota 2) da 0 a F (Vedere nota 2) Capitolo 3-6 Area DM Nome Moduli di controllo PID Moduli sensore di temperatura Moduli di controllo temperatura Moduli di controllo temperatura caldo/freddo ld /f dd Moduli contatore veloce Numero modello Intervallo numero modulo C200H-PID01 C200H-PID02 C200H-PID03 C200H-TS001 C200H-TS002 C200H-TS101 C200H-TS102 da 0 a 9 C200H-TC001 C200H-TC002 C200H-TC003 C200H-TC101 C200H-TC102 C200H-TC103 C200H-TV001 C200H-TV002 C200H-TV003 C200H-TV101 C200H-TV102 C200H-TV103 C200H-CT001-V1 C200H-CT002 C200H-CT021 Moduli di controllo posizione C200H-NC111 C200H-NC112 C200H-NC211 Modulo di controllo movimento Modulo posizionatore camma Console di impostazione dati Modulo ASCII C200H-MC221 C200H-CP114 Modulo logico fuzzy Modulo vocale Moduli sensore ID C200H-FZ001 C200H-OV001 C200H-IDS01-V1 C200H-IDS21 da 0 a 9 da 0 a F (Vedere nota 4) da 0 a 9 da 0 a 8, da A a E (Vedere nota 3) da 0 a 8, da A a E da 0 a 9 C200H-DSC01 C200H-ASC02 Note 1. I numeri di modulo da A a F possono essere impostati solo per i moduli CPU C200HX-CPU54/CPU64-ZE o C200HG-CPU53/63-ZE fabbricati a o dopo Gennaio 1996 (numero di fabbricazione **16). Per i moduli CPU possono essere impostati solo i numeri di modulo da 0 a 9. 2 I numeri di modulo da A a F possono essere impostati solo per i moduli CPU C200HX-CPU5/CPU6-ZE o C200HG-CPU5/6-ZE. Per gli altri moduli CPU possono essere impostati solo i numeri di modulo da 0 a 9. 3 I numeri di modulo da A a E possono essere impostati solo per i moduli CPU C200HX-CPU54/CPU64-ZE o C200HG-CPU53/63-ZE fabbricati a o dopo Dicembre 1995 (numero di fabbricazione **16). Per gli altri moduli CPU possono essere impostati solo i numeri di modulo da 0 a 9. 4 I numeri di modulo da 0 a F possono essere impostati per il C200HX/ HG/HE. 5 I numeri di modulo possono essere impostati anche per i Moduli di comunicazione PLC che sono considerati come Moduli I/O speciali; tuttavia ad essi non è assegnato alcun canale. 61 Capitolo 3-6 Area DM 6 7 I Moduli contatore veloce, il Modulo di controllo posizione e i Moduli I/O analogici sono canali allocati nell’Area DM. Gli altri moduli non sono canali allocati nell’Area DM. C200H-NC221 e C200H-MC221 sono canali allocati per due Moduli I/O speciali (cioè, per due numeri di modulo). 3-6-4 Area storica dell’errore DM 6000...DM 6030 vengono utilizzati per memorizzare fino a 10 record che indicano il tipo, l’ora e la data degli errori che si sono verificati nel PLC. L’Area storica dell’errore memorizza i codici di errore generati dal sistema o da FAL(006)/FALS(007) quando AR 0715 (Bit di abilitazione della storia dell’errore) è ON. Fare riferimento al Capitolo NO TAG Gestione degli errori per ulteriori dettagli sui codici di errore. Struttura dell’area I record di errore occupano tre canali, ciascuno, memorizzati tra DM 6001 e DM 6030. L’ultimo record memorizzato può essere ottenuto dal contenuto del DM 6000 (Puntatore del record di errore). Il numero di record, i canali DM e il valore del puntatore per ciascuno dei dieci record sono i seguenti: Record Nessuno 1 2 3 4 5 6 7 8 9 10 Indirizzi N.A. da DM 6001 a DM 6003 da DM 6004 a DM 6006 da DM 6007 a DM 6009 da DM 6010 a DM 6012 da DM 6013 a DM 6015 da DM 6016 a DM 6018 da DM 6019 a DM 6021 da DM 6022 a DM 6024 da DM 6025 a DM 6027 da DM 6028 a DM 6030 Valore del puntatore 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A Sebbene ciascuno di essi contenga un record differente, la struttura di ciascun record è sempre la stessa: il primo canale contiene il codice di errore, il secondo e il terzo canale la data e l’ora. Il codice di errore sarà o quello generato dal sistema o quello generato da FAL(006)/FALS(007); la data e l’ora saranno la data e l’ora di AR 18 e AR 19 (Area calendario/data). Oltre alla registrazione del codice di errore, è presente l’indicazione di errore fatale (08) o non fatale (00). Questa struttura è riportata di seguito. Canale Primo Secondo Terzo 62 Bit da 00 a 07 da 08 a 15 da 00 a 07 da 08 a 15 da 00 a 07 da 08 a 15 Contenuto Codice di errore 00 (non fatale) o 80 (fatale) Secondi Minuti Ore Giorno del mese Capitolo 3-6 Area DM La seguente tabella elenca i codici di errore possibili e gli errori corrispondenti. Severità dell’errore Errori fatali Errori non fatali Funzionamento Codice di errore Errore da 01 a 99 o 9F Errore di sistema (FALS) da C0 a C2 Errore di bus I/O E0 Errore di tabella I/O ingresso–uscita E1 Troppi moduli F0 Nessuna istruzione END(001) F1 Errore di memoria da 01 a 99 Errore di sistema (FAL) 8A Errore di ingresso ad interrupt 8B Errore di programma ad interrupt 9A Errore I/O ad alta densità gruppo 2 9B Errore di Setup del PLC 9C Errore di scheda di comunicazione 9D da B0 a B1 Errore di trasferimento della cartuccia di memoria UM Errore I/O remoto D0 Errore I/O speciale E7 Errore di verifica della tabella I/O F7 Errore di batteria F8 Overrun del tempo di ciclo Quando viene generato il primo codice di errore con AR 0715 (Bit di abilitazione della storia dell’errore) impostato su ON, i dati rilevanti saranno collocati nel record di errore immediatamente successivo a quello indicato dal Puntatore di record storico (inizialmente sarà il record 1) e quindi il Puntatore sarà incrementato. Tutti gli altri codici di errore generati saranno collocati in record consecutivi finché non viene utilizzato l’ultimo record. L’elaborazione di ulteriori record di errore si baserà sullo stato di AR 0713 (Bit di sovrascrittura della storia dell’errore). Se AR 0713 è ON e il Puntatore contiene 000A, l’errore successivo verrà scritto nel record 10, il contenuto del record 10 verrà spostato nel record 9, e così via, finché il contenuto del record 1 verrà eliminato, quindi l’area funziona come un registro di scorrimento. Il Puntatore del record rimarrà impostato su 000A. Se AR 0713 è OFF e il Puntatore raggiunge 000A, il contenuto dell’Area storica dell’errore resta invariato e i codici di errore generati successivamente non verranno registrati finché AR 0713 non viene impostato su OFF o l’Area storica di errore viene resettata. L’Area storica di errore può essere resettata impostando AR 0714 su ON e quindi su OFF AR 0714 (Bit di reset della storia dell’errore). Quando si verifica ciò, il Puntatore del record verrà resettato su 0000, l’Area storica dell’errore verrà resettata (cioè, cancellata) e gli ulteriori codici di errore verranno registrati dall’inizio dell’area storica dell’errore. AR 0715 (Bit di abilitazione della storia dell’errore) deve essere ON per resettare l’Area storica dell’errore. 3-6-5 Setup del PLC Il Setup del PLC (da DM 6600 a DM 6655) contiene le impostazioni che determinano il funzionamento del PLC. I dati nel Setup del PLC possono essere modificati con una Console di programmazione o SSS se UM non è protetto da scrittura mediante il pin 1 dell’interruttore DIP della CPU. Fare riferimento alla pagina 22 per ulteriori dettagli sulla modifica delle impostazioni dei pin del commutatore DIP. I dati tra DM 6600 e DM 6634 possono essere impostati o modificati solo quando il PLC è nella modalità PROGRAM. I dati tra DM 6635 e DM 6655 possono essere impostati o modificati quando il PLC è nella modalità PROGRAM o MONITOR. I seguenti canali possono essere modificati dal menu di Setup del 63 Capitolo 3-6 Area DM PLC del SYSMAC Support Software. Il PLC deve essere nella modalità PROGRAM. 1, 2, 3... 1. Modalità di avvio (DM 6600) 2. Indicazione della modalità di avvio (DM 6601) 3. Tempo di monitoraggio del ciclo (DM 6618) 4. Impostazione del tempo di ciclo (DM 6619) 5. Impostazioni della porta RS-232C (da DM 6645 a DM 6649) 6. Impostazioni della porta periferica (da DM 6650 a DM 6654) Il PLC può funzionare con il Setup del PLC di default, che richiede di essere modificato solo quando si personalizza l’ambiente operativo del PLC in base alle necessità di applicazione. I parametri del Setup del PLC sono descritti nella seguente tabella. Canali Bit Funzione Default Procedura di avvio (da DM 6600 a DM 6612) Si accede alle seguenti impostazioni solo una volta quando il PLC viene impostato su ON. DM 6600 00...07 08...15 DM 6601 00...07 08...11 12...15 DM 6602 00...07 08...15 Modalità di avvio (effettiva quando i bit da 08 a 15 sono impostati su 02). 00: PROGRAM; 01: MONITOR 02: RUN Indicazione della modalità di avvio 00: Switch della Console di programmazione 01: Continua la modalità operativa utilizzata l’ultima volta prima dello spegnimento 02: Impostazione tra 00 e 07 PROGRAM Riservato Stato del bit di mantenimento IOM (SR 25212) 0: Reset; 1: Mantenimento Stato del bit di mantenimento della forzatura (SR 25211) 0: Reset; 1: Mantenimento --Reset Non utilizzati. Area modulo I/O speciale (vedere 3-4-8 Impostazioni dell’area I/O speciale per ulteriori dettagli.) --DM 1000...DM 2599 Switch della console di programmazione 00: Modalità RAM compatibile con C200H (Default) Utilizza DM 1000...DM 2599 per l’Area modulo I/O speciale. 01: Modalità ROM 1 compatibile con C200H Trasferisce il contenuto di DM 7000...DM 7999 in DM 1000...DM 1999 all’avvio e utilizza DM 1000...DM 1999. 02: Modalità lineare DM 1 Utilizza DM 7000...DM 7999 per l’Area modulo I/O speciale. 11: Modalità ROM 2 compatibile con C200H Trasferisce il contenuto di DM 7000...DM 8599 in DM 1000...DM 2599 all’avvio e utilizza DM 1000...DM 2599. 12: Modalità lineare DM 2 Utilizza DM 7000...DM 8599 per l’Area modulo I/O speciale. DM 6603...DM 6 604 00...15 Non utilizzati. --- DM 6605 00...07 Periodo di interruzione temporanea dell’alimentazione (da 0 a 10 ms) Imposta il periodo di interruzione temporanea dell’alimentazione da 00 a 10 in BCD. 0 ms 08...15 Non utilizzati. --- 00...15 Non utilizzati. --- DM 6606...DM 6 612 64 Capitolo 3-6 Area DM Canali Bit Funzione Default Impostazione del tempo di ciclo e di comunicazione (da DM 6613 a DM 6619) E’ possibile accedere alle seguenti impostazioni solo una volta quando inizia l’esecuzione del programma. DM 6613 00...07 Tempo di manutenzione per la porta B della scheda di comunicazione Nessuna impo(valido quando i bit da 08 a 15 sono impostati su 01) stazione (0000) da 00 a 99 (BCD): Percentuale del tempo di ciclo utilizzato per la manutenzione della porta B. Minimo: 0,228 ms; massimo 58,254 ms 08...15 DM 6614 00...07 Abilitazione dell’impostazione per la manutenzione della porta B della scheda di comunicazione 00: Non impostare il tempo di manutenzione (fissato al 5%, 0,228 ms min.) 01: Utilizzare il tempo da 00 a 07. Il tempo di manutenzione è di 10 ms quando il funzionamento viene interrotto, indipendentemente da questa impostazione. Tempo di manutenzione per la porta A della scheda di comunicazione (valido quando i bit da 08 a 15 sono impostati su 01) da 00 a 99 (BCD): Percentuale del tempo di ciclo utilizzato per la manutenzione della porta A. Nessuna impostazione (0000) Minimo: 0,228 ms; massimo 58,254 ms 08...15 DM 6615 DM 6616 00...15 00...07 Abilitazione dell’impostazione per la manutenzione della porta A della scheda di comunicazione 00: Non impostare il tempo di manutenzione (fissato al 5%, 0.228 ms min.) 01: Utilizza il tempo da 00 a 07. Il tempo di manutenzione è di 10 ms quando il funzionamento viene interrotto, indipendentemente da questa impostazione. Riservato Tempo di manutenzione per la porta RS–232C (valido quando i bit da 08 a 15 sono impostati su 01) da 00 a 99 (BCD): Percentuale del tempo di ciclo utilizzato per la manutenzione della porta RS–232C. --Nessuna impostazione (0000) Minimo: 0,228 ms; massimo 58,254 ms 08...15 (abilitazione dell’impostazione per la manutenzione della porta RS–232C) 00: Non impostare il tempo di manutenzione (fissato al 5%, 0,228 ms min.) 01: Utilizzare il tempo da 00 a 07. Il tempo di manutenzione è di 10 ms quando il funzionamento viene interrotto, indipendentemente da questa impostazione. DM 6617 00...07 Tempo di manutenzione per la porta periferica (valido quando i bit da 08 a 15 sono impostati su 01) da 00 a 99 (BCD): Percentuale del tempo di ciclo utilizzato per la manutenzione della porta periferica. Nessuna impostazione (0000) Minimo: 0,228 ms; massimo 58,254 ms 08...15 Abilitazione dell’impostazione per la manutenzione della porta periferica 00: Non impostare il tempo di manutenzione (fissato al 5%, 0,228 ms min.) 01: Utilizzare il tempo da 00 a 07. Il tempo di manutenzione è di 10 ms quando il funzionamento viene interrotto, indipendentemente da questa impostazione. DM 6618 DM 6619 00...07 Tempo di monitoraggio del ciclo (valido quando i bit da 08 a 15 sono impostati su 01, 02 o 03) da 00 a 99 (BCD) × impostazione unità (vedere da 08 a 15) 00 08...15 Abilitazione di monitoraggio del ciclo (impostazione da 00 a 07 × impostazione unità; max. 99 s) 00: 120 ms (impostazione nei bit da 00 a 07 disabilitata) 01: Impostazione unità: 10 ms 02: Impostazione unità: 100 ms 03: Impostazione unità: 1 s Tempo di ciclo 0000: Variabile (nessun minimo) da 0001 a 9999 (BCD): Tempo minimo in ms 00: 120 ms 00...15 Variabile 65 Capitolo 3-6 Area DM Canali Bit Funzione Default Procedura di Interrupt/Refresh (da DM 6620 a DM 6623) Si accede alle seguenti impostazioni solo una volta quando inizia l’esecuzione del programma. DM 6620 00...09 Refresh ciclico del Modulo I/O speciale (Il numero di bit corrisponde al numero di modulo, inclusi i Moduli PLC Link) 0: Abilitazione del refresh ciclico e I/O REFRESH (IORF(097)) dal programma principale 1: Disabilitazione (refresh solo per I/O REFRESH dai programmi di interrupt) 10...11 12...15 L’impostazione di 01 (Disabilitazione) è valida solo quando la risposta di interrupt è impostata nella modalità di risposta veloce. Non è valida per la risposta di interrupt normale o per i Moduli I/O speciali montati sui Rack slave. Riservato Risposta di interrupt 0: Abilitazione --Normale Normale (Compatibile con C200H) Gli interrupt non possono essere ricevuti quando viene effettuata la manutenzione Host Link, l’esecuzione di una singola istruzione, l’elaborazione I/O remota o l’elaborazione I/O speciale. La subroutine di interrupt verrà eseguita dopo che l’elaborazione è stata completata. 1: DM 6621 DM 6622 DM 6623 DM 6624...DM 6 644 66 00...07 08...15 00...07 Risposta veloce (C200HS o C200HX/HG/HE) Gli interrupt verranno ricevuti quando viene effettuata la manutenzione Host Link, l’esecuzione di una singola istruzione, l’elaborazione I/O remota o l’elaborazione I/O speciale. Se esiste un ingresso di interrupt, l’elaborazione in corso verrà interrotta e la subroutine di interrupt verrà eseguita. Riservato Refresh del Modulo I/O speciale (Moduli di PLC Link inclusi) 00: Abilitazione del refresh per i Moduli I/O speciali 01: Disabilitazione del refresh per tutti i Moduli I/O speciali (ma non valido sui Rack slave) L’impostazione su 1 (Disabilitazione) non è valida per i Moduli I/O speciali montati sui Rack slave. Unità di interrupt a tempo 00: 10 ms 01: 1 ms 08...15 Abilitazione dell’unità di interrupt a tempo 00: Disabilitazione (10 ms) 01: Abilitazione dell’impostazione da 00 a 07 00...15 Refresh ciclico del Modulo I/O speciale (Moduli PLC Link inclusi) (I numeri di bit da 00 a 15 corrispondono ai numeri di modulo da 0 a F.) 0: Abilitazione del refresh ciclico e I/O REFRESH (IORF(097)) dal programma principale 1: Disabilitazione (refresh solo per I/O REFRESH dai programmi di interrupt) 00...15 L’impostazione di 01 (Disabilitazione) è valida solo quando la risposta di interrupt è impostata sulla modalità di risposta veloce. Non è valida per la risposta di interrupt normale o per i Moduli I/O speciali montati sui Rack slave. Riservato --Abilitazione 10 ms (0000) Abilitazione --- Capitolo 3-6 Area DM Canali Bit Funzione Default Impostazioni per la porta RS-232C (da DM 6645 a DM 6649) Si accede continuamente alle seguenti impostazioni quando il PLC è ON. DM 6645 00...03 Impostazioni per la porta 0: Standard (1 bit di avvio, dati a 7 bit, parità pari, 2 bit di stop, 9.600 bps) 1: Impostazioni in DM 6646 Standard 04...07 Impostazione del controllo CTS 0: Disabilitazione del controllo CTS 1: Abilitazione del controllo CTS Disabilitazione 08...11 Canali collegati per la connessione 1:1 0: da LR 00 a LR 63; 1: da LR 00 a LR 31; 2: da LR 00 a LR 15 LR 00...LR 63 12...15 DM 6646 00...07 08...15 Numero di nodo PT massimo per 1:N NT Link da 1 a 7 BCD (da 1 a 3 con un PLC C200HE-CPU-E) Modalità di comunicazione 0: Host Link; 1: RS-232C; 2: slave di connessione 1 a 1; 3: master di connessione 1 a 1; 4: NT Link (1:1); 5: Collegamento NT (1:N) Velocità in baud 00: 1.2K, 01: 2.4K, 02: 4.8K, 03: 9.6K, 04: 19.2K Formato frame Avvio Lunghezza Stop 00: 1 bit 7 bit 1 bit 01: 1 bit 7 bit 1 bit 02: 1 bit 7 bit 1 bit 03: 1 bit 7 bit 2 bit 04: 1 bit 7 bit 2 bit 05: 1 bit 7 bit 2 bit 06: 1 bit 8 bit 1 bit 07: 1 bit 8 bit 1 bit 08: 1 bit 8 bit 1 bit 09: 1 bit 8 bit 2 bit 10: 1 bit 8 bit 2 bit 11: 1 bit 8 bit 2 bit Host Link 1.2 K Parità Pari Dispari Nessuna Pari Dispari Nessuna Pari Dispari Nessuna Pari Dispari Nessuna 1 bit di avvio, dati a 7 bit, 1 bit di stop, parità pari DM 6647 00...15 Ritardo di trasmissione da 0000 a 9999: BCD in unità di 10 ms. 0 ms DM 6648 00...07 Numero di nodo (Host link) da 00 a 31 (BCD) Abilitazione del codice di avvio (RS-232C) 0: Disabilitazione; 1: Impostazione Abilitazione del codice di errore (RS-232C) 0: Disabilitazione (numero di byte ricevuti) 1: Impostazione (codice di errore specificato) 2: CR, LF 0 Codice di avvio (RS-232C) da 00 a FF (binario) da 12 a 15 di DM 6648 impostato su 0: Numero di byte ricevuti 00: Impostazione di default (256 byte) da 01 a FF: da 1 a 255 byte Non utilizzato (0000) 08...11 12...15 DM 6649 00...07 08...15 Disabilitato Disabilitato da 12 a 15 di DM 6648 impostato su 1: codice di errore (RS-232C) da 00 a FF (binario) Impostazioni per la porta periferica (da DM 6650 a DM 6654) Si accede continuamente alle impostazioni quando il PLC è ON. DM 6650 00...03 Impostazioni per la porta 0: Standard (1 bit di avvio, dati a 7 bit, parità pari, 2 bit di stop, 9.600 bps) 1: Impostazioni in DM 6651 Standard 04...11 12...15 Riservato Modalità di comunicazione 0: Host link; 1: RS-232C --Host Link 67 Capitolo 3-6 Area DM Canali DM 6651 Bit 00...07 08...15 DM 6652 00...15 DM 6653 00...07 08...11 12...15 DM 6654 00...07 08...15 Funzione Velocità in baud 00: 1.2K, 01: 2.4K, 02: 4.8K, 03: 9.6K, 04: 19.2K Formato frame Avvio Lunghezza Stop 00: 1 bit 7 bit 1 bit 01: 1 bit 7 bit 1 bit 02: 1 bit 7 bit 1 bit 03: 1 bit 7 bit 2 bit 04: 1 bit 7 bit 2 bit 05: 1 bit 7 bit 2 bit 06: 1 bit 8 bit 1 bit 07: 1 bit 8 bit 1 bit 08: 1 bit 8 bit 1 bit 09: 1 bit 8 bit 2 bit 10: 1 bit 8 bit 2 bit 11: 1 bit 8 bit 2 bit Ritardo di trasmissione (Host Link) da 0000 a 9999: in unità di 10 ms. Numero di nodo (Host link) da 00 a 31 (BCD) Abilitazione del codice di avvio (RS-232C) 0: Disabilitazione; 1: Impostazione Abilitazione del codice di fine (RS-232C) 0: Disabilitazione (numero di byte ricevuti) 1: Codice di fine specificato 2: CR, LF Codice di avvio (RS-232C) da 00 a FF (binario) da 12 a 15 di DM 6653 impostato su 0: Numero di byte ricevuti 00: Impostazione di default (256 byte) da 01 a FF: da 1 a 255 byte Default 1.2 K Parità Pari Dispari Nessuna Pari Dispari Nessuna Pari Dispari Nessuna Pari Dispari Nessuna 1 bit di avvio, dati a 7 bit, 1 bit di stop, parità pari 0 ms 0 Disabilitazione Disabilitazione 0000 da 12 a 15 di DM 6653 impostato su 1: Codice di errore (RS-232C) da 00 a FF (binario) Impostazioni per l’errore (DM 6655) Si accede continuamente alle seguenti impostazioni quando il PLC è ON. DM 6655 00...03 Abilitazione dell’errore di programmazione di interrupt 0: Rilevamento degli errori di programmazione di interrupt 1: Nessun rilevamento 68 Rilevamento 04...07 08...11 Riservato Abilitazione del monitoraggio del tempo di ciclo 0: Rilevamento di cicli lunghi come errori non fatali 1: Nessun rilevamento di cicli lunghi --Rilevamento 12...15 Abilitazione dell’errore di batteria scarica 0: Rilevamento di batteria scarica come errore non fatale 1: Nessun rilevamento di batteria scarica Rilevamento Capitolo 3-6 Area DM 3-6-6 Impostazioni per la scheda di comunicazione DM 6550...DM 6554 contengono le impostazioni per la porta B della Scheda di comunicazione e DM 6555...DM 6559 contengono le impostazioni per la porta A della scheda di comunicazione. Canali Bit Funzione Default Impostazione per la porta B della scheda di comunicazione (da DM 6550 a DM 6554) Si può accedere continuamente alle seguenti impostazioni quando il PLC è ON. DM 6550 00...03 Impostazioni per la porta 0: Standard (1 bit di avvio, dati a 7 bit, parità pari, 2 bit di stop, 9.600 bps) 1: Impostazioni in DM 6551 Standard 04...07 Impostazione del controllo CTS 0: Disabilitazione del controllo CTS 1: Abilitazione del controllo CTS Disabilitazione 08...11 Canali collegati per la connessione 1:1 (Modifica impossibile una volta impostato nel Master di connessione 1:1.) 0: da LR 00 a LR 63; 1: da LR 00 a LR 31; 2: da LR 00 a LR 15 LR 00...LR 63 Numero massimo di nodi PT per il 1:N NT Link da 1 a 7 BCD (da 1 a 3 con un PLC C200HE-CPU-E) 12...15 DM 6551 00...07 08...15 DM 6552 00...15 DM 6553 00...07 08...11 12...15 DM 6554 00...07 08...15 Modalità di comunicazione 0: Host link; 1: RS-232C; 2: slave di connessione 1 a 1; 3: master di connessione 1 a 1; 4: NT Link (1:1); 5:NT Link (1:N); 6: Protocollo macro Velocità in baud 00: 1.2K, 01: 2.4K, 02: 4.8K, 03: 9.6K, 04: 19.2K Formato frame Avvio Lunghezza Stop Parità 00: 1 bit 7 bit 1 bit Pari 01: 1 bit 7 bit 1 bit Dispari 02: 1 bit 7 bit 1 bit Nessuno 03: 1 bit 7 bit 2 bit Pari 04: 1 bit 7 bit 2 bit Dispari 05: 1 bit 7 bit 2 bit Nessuno 06: 1 bit 8 bit 1 bit Pari 07: 1 bit 8 bit 1 bit Dispari 08: 1 bit 8 bit 1 bit Nessuno 09: 1 bit 8 bit 2 bit Pari 10: 1 bit 8 bit 2 bit Dispari 11: 1 bit 8 bit 2 bit Nessuno Ritardo di trasmissione da 0000 a 9999: BCD in unità di 10 ms. Numero di nodo (Host link) da 00 a 31 (BCD) Abilitazione del codice di avvio (RS-232C) 0: Disabilitazione; 1: Impostazione Abilitazione del codice di fine (RS-232C) 0: Disabilitazione (numero di byte ricevuti) 1: Codice di fine specificato 2: CR, LF Codice di avvio (RS-232C) da 00 a FF (binario) da 12 a 15 di DM 6553 impostato su 0: Numero di byte ricevuti 00: Impostazione di default (256 byte) da 01 a FF: da 1 a 255 byte Host Link 1.2 K 1 bit di avvio, dati a 7 bit, 1 bit di stop, parità pari 0 ms 0 Disabilitato Disabilitato 0000 da 12 a 15 di DM 6553 impostato su 1: Codice di errore (RS-232C) da 00 a FF (binario) 69 Capitolo 3-6 Area DM Canali Bit Funzione Default Impostazioni per la porta A della Scheda di comunicazione (da DM 6555 a DM 6559) Si accede continuamente alle seguenti impostazioni quando il PLC è ON. DM 6555 00...03 Impostazioni per la porta 0: Standard (1 bit di avvio, dati a 7 bit, parità pari, 2 bit di stop, 9.600 bps) 1: Impostazioni in DM 6556 Standard 04...07 Impostazione di controllo CTS 0: Disabilitazione del controllo CTS 1: Abilitazione del controllo CTS Disabilitazione 08...11 Canali collegati per la connessione 1:1 (Modifica impossibile una volta impostato nel master di connessione 1:1.) 0: da LR 00 a LR 63; 1: da LR 00 a LR 31; 2: da LR 00 a LR 15 LR 00...LR 63 Numero massimo dei nodi PT per il 1:N NT Link da 1 a 7 BCD (da 1 a 3 con un PLC C200HE-CPU-E) 12...15 DM 6556 00...07 08...15 DM 6557 00...15 DM 6558 00...07 08...11 12...15 DM 6559 00...07 08...15 Modalità di comunicazione 0: Host link; 1: RS-232C; 2: slave di connessione 1 a 1; 3: master di connessione 1 a 1; 4: NT Link (1:1); 5: NT Link (1:N); 6: Macro protocollo Velocità in baud 00: 1.2K, 01: 2.4K, 02: 4.8K, 03: 9.6K, 04: 19.2K Formato frame Avvio Lunghezza Stop Parità 00: 1 bit 7 bit 1 bit Pari 01: 1 bit 7 bit 1 bit Dispari 02: 1 bit 7 bit 1 bit Nessuno 03: 1 bit 7 bit 2 bit Pari 04: 1 bit 7 bit 2 bit Dispari 05: 1 bit 7 bit 2 bit Nessuno 06: 1 bit 8 bit 1 bit Pari 07: 1 bit 8 bit 1 bit Dispari 08: 1 bit 8 bit 1 bit Nessuno 09: 1 bit 8 bit 2 bit Pari 10: 1 bit 8 bit 2 bit Dispari 11: 1 bit 8 bit 2 bit Nessuno Ritardo di trasmissione da 0000 a 9999: BCD in unità di 10 ms. Numero di nodo (Host link) da 00 a 31 (BCD) Abilitazione del codice di avvio (RS-232C) 0: Disabilitazione; 1: Impostazione Abilitazione del codice di fine (RS-232C) 0: Disabilitazione (numero di byte ricevuti) 1: Codice di fine specificato 2: CR, LF Codice di avvio (RS-232C) da 00 a FF (binario) da 12 a 15 di DM 6558 impostato su 0: Numero di byte ricevuti 00: Impostazione di default (256 byte) da 01 a FF: da 1 a 255 byte da 12 a 15 di DM 6558 impostato su 1: Codice di errore (RS-232C) da 00 a FF (binario) 70 Host Link 1.2 K 1 bit di avvio, dati a 7 bi, 1 bit di stop, parità pari 0 ms 0 Disabilitato Disabilitato 0000 Capitolo 3-7 Area HR 3-6-7 Impostazioni per l’Area modulo I/O speciale L’impostazione nei bit da 08 a 15 di DM 6602 determina la dimensione e l’ubicazione dell’Area modulo I/O speciale, come riportato nella seguente tabella. Impostazione 00 01 Modalità Modalità RAM compatibile con C200H Modalità ROM 1 compatibile con C200H Funzione DM 1000...DM 2599 vengono utilizzati per l’Area modulo I/O speciale. • I dati nell’Area modulo I/O speciale possono essere sovrascritti. • I dati non possono essere convertiti in ROM. Il contenuto di DM 7000...DM 7999 viene trasferito in DM 1000...DM 1999 all’avvio e DM 1000...DM 1999 sono utilizzati per l’Area modulo I/O speciale. • L’operazione di allocazione dell’Area UM deve essere eseguita in anticipo. • Nel C200H, questa modalità è compatibile con le applicazioni EEPROM e EPROM. 02 11 Modalità lineare DM 1 Modalità ROM 2 compatibile con C200H • I dati possono essere convertiti indirettamente in ROM convertendo DM 7000...DM 7999. DM 7000...DM 7999 vengono utilizzati per l’Area modulo I/O speciale. • DM 1000...DM 1999 possono essere utilizzati come DM regolare. • DM 7000...DM 7999 possono essere convertiti in ROM. Il contenuto di DM 7000...DM 8599 viene trasferito in DM 1000...DM 2599 all’avvio e DM 1000...DM 2599 sono utilizzati per l’Area modulo I/O speciale. • L’operazione di allocazione dell’area UM deve essere eseguita in anticipo. • I dati possono essere convertiti indirettamente in ROM convertendo DM 7000...DM 8599. 12 Modalità lineare DM 2 DM 7000...DM 8599 sono utilizzati per l’Area modulo I/O speciale. • DM 1000...DM 2599 può essere utilizzato come DM regolare. • DM 7000...DM 8599 può essere convertito in ROM. DM 7000...DM 9999 non possono essere letti o sovrascritti direttamente dal programma. Per leggere questi dati dal programma, essi devono essere copiati in un’altra area dati o DM regolare utilizzando l’istruzione EXPANSION DM READ – XDMR(280). Quando è impostata la modalità ROM compatibile con C200H o la modalità lineare DM, l’operazione di Allocazione dell’area UM deve essere eseguita in anticipo per allocare parte dell’area del programma a relè che verrà utilizzata come DM di espansione. Se la memoria non viene allocata come DM di espansione, si verifica un errore di sistema (FAL 9B). Fare riferimento a NO TAG Allocazione dell’area UM per ulteriori dettagli sull’operazione di allocazione dell’area UM. Quando viene impostata la Modalità lineare DM, l’area dati del Modulo I/O speciale inizierà da DM 7000 invece che da DM 1000, perciò aggiungere 6000 agli indirizzi DM presenti nel Manuale dell’operatore del Modulo I/O speciale. Quando l’impostazione dell’Area modulo I/O speciale è 01, 02, 11 o 12 e il DM di espansione superiore a DM 8000 non è stato allocato, si verificherà un errore per un Modulo con un numero da A a F quando esso accede all’area che gli è associata. 3-7 Area HR L’area HR viene utilizzata per memorizzare/gestire vari tipi di dati ed è possibile accedere ad essa mediante canali o bit. Gli indirizzi dei canali vanno da HR 00 a HR 99, gli indirizzi dei bit da HR 0000 a HR 9915. I bit HR possono essere utilizzati in qualsiasi ordine e possono essere programmati tutte le volte che lo si desidera. L’area HR conserva lo stato quando la modalità operativa del sistema viene modificata, quando l’alimentazione viene interrotta oppure quando il PLC viene bloccato. I bit e i canali dell’area HR possono essere utilizzati per conservare i dati ogni volta che il funzionamento del PLC viene interrotto. I bit HR hanno anche varie applicazioni speciali, quali ad esempio la creazione di latch a relè mediante l’istruzione Keep e la formazione di uscite di autoritenuta. Queste verranno descritte nel Capitolo 4 Scrittura e inserimento dei programmi e nel Capitolo 5 Istruzioni. 71 Capitolo 3-9 Area LR Nota Il numero richiesto di canali viene allocato tra HR 00 e HR 42 per le tabelle di instradamento e per controllare i temporizzatori quando si utilizzano i Sistemi SYSMAC NET. 3-8 Area TC L’area TC viene utilizzata per creare e programmare i tempificatori e i contatori e mantiene i flag di completamento, i valori di predisposizione (SV) e i valori correnti (PV) per tutti i temporizzatori e i contatori. L’accesso ad essi avviene mediante i numeri TC che vanno da TC 000 a TC 511. Ciascun numero TC viene definito o come temporizzatore o come contatore utilizzando una delle seguenti istruzioni: TIM, TIMH, CNT, CNTR(012) e TTIM(087). Non viene richiesto alcun prefisso quando si utilizza un numero TC in un’istruzione Timer o Counter. Una volta che il numero TC è stato definito utilizzando una di queste istruzioni, non è possibile ridefinirlo in un altro punto del programma utilizzando sia la stessa istruzione che un’istruzione differente. Se lo stesso numero TC viene definito in più istruzioni o due volte nella stessa istruzione, durante la verifica del programma si verificherà un errore. Non esistono limitazioni all’ordine in cui i numeri TC possono essere utilizzati. Una volta definito, un numero TC può essere indicato come operando in uno o in più set di istruzioni oltre a quelli sopra elencati. Quando viene definito come un temporizzatore, il numero TC indicato come operando prende un prefisso TIM. Il prefisso TIM viene utilizzato indipendentemente dall’istruzione Timer utilizzata per definire il temporizzatore. Una volta definito come contatore, il numero TC indicato come operando prende un prefisso CNT. Anche il CNT viene utilizzato indipendentemente dall’istruzione Counter utilizzata per definire il contatore. I numeri TC possono essere indicati per operandi che richiedono i dati di bit o di canale. Se indicato come un operando che richiede i dati di bit, il numero TC accede al flag di completamento del temporizzatore o del contatore. Se indicato come un operando che richiede i dati canale, il numero TC accede all’area di memoria che contiene il PV del temporizzatore e del contatore. I numeri TC vengono anche utilizzati per accedere al SV dei temporizzatori e dei contatori da un Dispositivo di programmazione. Le procedure per effettuare ciò utilizzando la Console di programmazione sono descritte in NO TAG Monitoraggio e modifica dei dati. L’area TC conserva gli SV dei temporizzatori e dei contatori durante le interruzioni di alimentazione. I PV dei temporizzatori vengono resettati quando il PLC viene attivato e durante il reset nelle sezioni del programma interbloccate, mentre i PV dei contatori vengono mantenuti. Fare riferimento a 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) per dettagli sul funzionamento del temporizzatore e del contatore nelle sezioni del programma interbloccate. I PV dei contatori non vengono attualmente resettati. Notare che nella programmazione “TIM 000” viene utilizzato per indicare quanto segue: l’istruzione Timer definita con il numero TC 000, il flag di completamento per questo temporizzatore e il PV di questo temporizzatore. Il significato dovrebbe essere chiaro dal contesto, cioè il primo è sempre un’istruzione, il secondo è sempre un bit e il terzo è sempre un canale. Questo è valido anche per tutti gli altri numeri TC con prefisso TIM o CNT. 3-9 Area LR L’area LR viene utilizzata come area dati comune per trasferire le informazioni tra i PLC. Questo trasferimento dati viene realizzato attraverso un Sistema PLC Link. Alcuni canali verranno allocati come canali di scrittura di ciascun PLC. Questi canali sono scritti mediante il PLC e trasferiti automaticamente agli stessi canali LR negli altri PLC del Sistema. I canali di scrittura degli altri PLC sono trasferiti come canali di lettura in modo che ciascun PLC possa accedere ai dati scritti dagli altri PLC nel Sistema PLC Link. Solo i canali di scrittura assegnati ad un PLC particolare saranno disponibili per la scrittura; tutti gli altri canali sono disponibili solo per la lettura. Fare riferimento a Manuale del Sistema PLC Link per ulteriori dettagli. 72 Capitolo 3-10 Area UM L’area LR è accessibile mediante bit o canale. Gli indirizzi dei canali dell’area LR vanno da LR 00 a LR 63; gli indirizzi dei bit dell’area LR vanno da LR 0000 a LR 6315. Tutte le parti dell’area LR non utilizzate dal Sistema PLC Link possono essere utilizzate come canali di lavoro o per i sistemi SYSMAC NET o SYSMAC LINK. I dati dell’area LR non vengono mantenuti quando l’alimentazione viene interrotta, quando il PLC passa nella modalità PROGRAM o quando viene resettato in una sezione del programma interbloccata. Fare riferimento a 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) per i dettagli sugli interblocchi. 3-10 Area UM Per i PLC C200HX/HG/HE, l’area UM contiene il programma a relè. Parte dell’area UM può essere utilizzata come DM di espansione o area di commento I/O. La dimensione utilizzabile dell’area UM va da 3.2 kW in C200HE-CPU11-E a 31.2 kW in C200HX-CPU4-E. Per allocare il DM di espansione è possibile utilizzare la Console di programmazione o il SYSMAC Support Software (SSS) può essere utilizzata, ma l’area di commento I/O può essere allocata solo con l’SSS. La struttura delle aree DM e UM viene illustrata di seguito. DM 0000 DM 6144 DM 6600 DM 6655 Setup del PLC Area di default del modulo I/O speciale da DM 1000 a DM 1999 Area DM normale DM 7000 Riservato DM 9999 Area DM di espansione (da 0 a 3 kW) Area di commento I/O Programma a relè Dimensione variabile Area DM fissa Area UM (32 kW max.) Area convertibile in ROM 73 Capitolo 3-12 Area EM Nota Fare riferimento al Manuale SYSMAC Support Software (SSS) per dettagli sull’utilizzo di SSS per l’allocazione di UM per il DM di espansione o i commenti I/O. Fare riferimento a NO TAG Allocazione dell’area UM per dettagli sull’utilizzo della Console di programmazione per l’allocazione di UM per il DM di espansione. Area DM normale Setup del PLC Riservato DM di espansione Commento I/O Programma a relè Funzione Quest’area può essere utilizzata liberamente per i calcoli e le istruzioni di programmazione. E’ possibile accedere al DM solo nei moduli canale. DM 1000...DM 2599 sono assegnati ai Moduli I/O speciali quando questi vengono utilizzati, ma possono essere utilizzati come DM normale quando l’Area modulo I/O speciale è stata impostata su DM 7000...DM 8599 nel Setup del PLC (DM 6602). Il Setup del PLC contiene varie impostazioni che controllano il funzionamento del PLC. Quest’area viene riservata per l’utilizzo del sistema. Non è accessibile da parte dell’utente. Quest’area contiene dati di inizializzazione, quali ad esempio i dati del Modulo I/O speciale, le tabelle numeriche o di stringhe di caratteri per i PT e i dati di calcolo. I dati non possono essere letti direttamente dall’area DM di espansione come avviene dal DM normale. Il DM di espansione può essere sovrascritto eseguendo l’operazione di modifica dei dati esadecimali/BCD dalla Console di programmazione oppure trasferendo i dati DM editati dal SYSMAC Support Software. Quest’area viene utilizzata per memorizzare i commenti I/O, che possono essere salvati con il programma. I commenti I/O possono essere controllati senza eseguire l’operazione di recupero del commento I/O. Quest’area viene utilizzata per memorizzare il programma a relè creato dall’utente. I canali dell’area UM allocati al DM di espansione e/o all’Area di commento I/O vengono presi dall’area del programma a relè. Note 1. Il programma a relè viene ridotto proporzionalmente quando i canali dell’area UM vengono allocati al DM di espansione e/o all’Area di commento I/O. Accertarsi che vi sia spazio a sufficienza nell’area del programma a relè prima di allocare la memoria al DM di espansione e/o all’Area di commento I/O. 2. L’impostazione di default per l’area UM non presenta alcuna memoria allocata al DM di espansione o all’Area di commento I/O. Questa memoria deve essere allocata dall’utente, se richiesto. 3-11 Area TR L’area TR fornisce otto bit che vengono utilizzati solo con le istruzioni LD e OUT per abilitare certi tipi di programmazione in diagramma a relè. L’utilizzo dei bit TR viene descritto nel Capitolo 4 Scrittura e inserimento dei programmi. Gli indirizzi TR vanno da TR 0 a TR 7. Ciascuno di questi bit può essere utilizzato più volte, se richiesto, e in qualsiasi ordine, purché lo stesso bit LR non sia utilizzato due volte nello stesso blocco di istruzioni. 3-12 Area EM Oltre all’area DM ad alta capacità, i PLC C200HG e C200HX sono dotati di un’area EM che può memorizzare fino a 18K canali di dati. L’area EM è suddivisa in banchi, ciascuno dei quali contiene 6.144 canali (da EM 0000 a EM 6143). I PLC C200HG hanno un solo banco (0), mentre i PLC C200HX-CPU4-ZE hanno tre banchi (0, 1 e 2), il C200HX-CPU65-ZE ha otto banchi (da 0 a 7) e il 200HX-CPU85-ZE ha sedici banchi (da 0 a F). Il banco attivo è detto banco corrente. 74 Capitolo 3-12 Area EM 3-12-1 Utilizzo dell’Area EM Sebbene gli indirizzi nel banco corrente dell’Area EM possano essere utilizzati come operandi nelle istruzioni di programmazione, è possibile accedere direttamente agli altri banchi dell’Area EM. Per accedere ai dati contenuti negli altri banchi, i PLC vengono forniti con le istruzioni EMBC(281), XFR2(––), BXF2(––) e IEMS(––). Istruzione EMBC(281) XFR2(––) BXF2(––) IEMS(––) Esempio 1 Funzione Modifica il banco corrente nel numero di banco specificato. Trasferisce i dati nel banco EM corrente o tra il banco EM corrente e quello delle aree dati regolari. Trasferisce i dati tra il banco EM specificato e un altro banco EM o un’area dati regolare. Passa la destinazione di indirizzamento indiretto (DM) al banco EM specificato. E’ possibile anche riportare la destinazione al DM. Il seguente esempio utilizza EMBC(281) per impostare il banco corrente sul banco 1 e XFR2(––) per trasferire il contenuto di EM 2000...EM 2999 in DM 0000...DM 0999. Dopo l’esecuzione di una sezione del programma, il contenuto di DM 0000...DM 0999 viene riportato in EM 2000...EM 2999. EMBC #0001 XFR2 #1000 #2000 D0000 L’elaborazione eseguita con i dati da DM 0000 a DM 0999. XFR2 #1000 D0000 #2000 Nota Se BXF2(––) è stato utilizzato per eseguire il trasferimento dati, è possibile specificare qualsiasi banco EM e EMBC(281) non è necessario per selezionare il banco EM 1. Esempio 2 Il seguente esempio utilizza IEMS(––) per modificare la destinazione per l’indirizzamento indiretto (DM) al banco EM 1. Dopo l’esecuzione di questa istruzione, gli operandi DM accedono ai canali nel banco EM 1 e non all’area DM. In questo caso, il secondo operando nell’istruzione MOV(021) trasferisce #1234 in un canale nel banco EM. Ad esempio, #1234 verrà spostato in EM 0100 se DM 0000 contiene 0100. 75 Capitolo 3-12 Area EM Più avanti nel programma nel programma, la destinazione per l’indirizzamento indiretto (DM) viene riportata nell’area DM eseguendo IEMS(––) con un operando di 000. IEMS #E0B1 MOV #1234 ∗D0000 IEMS 000 Note 1. Accertarsi di riportare la destinazione di indirizzamento indiretto al valore di default (l’area DM) quando necessario. La destinazione verrà riportata automaticamente nell’area DM all’inizio del ciclo successivo. 2. La destinazione per l’indirizzamento indiretto ritorna nell’area DM all’inizio delle subroutine di interrupt, ma può essere modificata all’interno di una subroutine. La destinazione è ripristinata sull’impostazione originaria quando il controllo ritorna al programma principale. 3-12-2 Banco EM corrente Il banco EM corrente viene impostato sul banco 0 quando il PLC viene acceso e il banco EM corrente può essere modificato con EMBC(281) o IEMS(––). Diversamente dalla destinazione per l’indirizzamento indiretto, il numero di banco corrente non viene inizializzato all’avvio di un ciclo o di una subroutine di interrupt. Dopo che il PLC è stato acceso, lo stato del banco commutato verrà ripristinato dopo che la modalità PLC è stata modificata o l’esecuzione di una subroutine di interrupt è stata completata. 76 CAPITOLO 4 Scrittura e inserimento dei programmi Questo capitolo descrive i passi principali e i concetti relativi alla programmazione in diagramma a relè, all’inserimento del programma in memoria e all’esecuzione. Vengono anche introdotte le istruzioni che definiscono la struttura base di un diagramma a relè e ne controllano l’esecuzione. Il set di istruzioni completo viene descritto in 5 Istruzioni. 4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 4-11 4-12 4-13 Concetti elementari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capacità di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrammi a relè di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-1 Termini base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-2 Codice mnemonico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-3 Istruzioni in diagramma a relè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-4 OUTPUT e OUTPUT NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-5 L’istruzione END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-6 Istruzioni dei blocchi logici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-7 Come codificare più istruzioni a destra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Console di Programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-1 Tastiera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-2 Modalità del PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-3 Visualizzazione messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-1 Inserimento password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-2 Cicalino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-3 Cancellazione della memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-4 Registrazione della tabella di I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-5 Cancellazione messaggi di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-6 Verifica della tabella di I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-7 Lettura della tabella di I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-8 Cancellazione della tabella di I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6-9 Trasferimento della tabella SYSMAC NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inserimento, modifica e controllo dei programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-1 Impostazione e lettura dall’indirizzo di memoria di programma . . . . . . . . . . . . . 4-7-2 Inserimento e modifica di programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-3 Controllo del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-4 Visualizzazione del tempo di scansione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-5 Ricerche nel programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-6 Inserimento e cancellazione delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-7 Diramazione delle righe circuitali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7-8 Salti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Controllo dello stato dei bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8-1 DIFFERENTIATE UP e DIFFERENTIATE DOWN . . . . . . . . . . . . . . . . . . . . . . 4-8-2 KEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8-3 Circuito di autoritenuta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bit di lavoro (relè interni) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accorgimenti di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esecuzione del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmi interfaccia moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12-1 Riavvio dei moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12-2 Programma di elaborazione degli errori dei moduli di I/O speciali . . . . . . . . . . . 4-12-3 Modifica delle impostazioni dei moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . 4-12-4 Intervallo di rinfresco I/O dei moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . 4-12-5 Riduzione del tempo di scansione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmazione del modulo temporizzatore analogico . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13-1 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13-2 Allocazione bit e impostazioni commutatore DIP . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 80 80 81 81 83 85 85 86 92 92 93 94 95 95 95 96 96 99 100 101 102 105 106 107 107 108 111 113 114 115 118 122 123 123 124 124 125 126 127 128 128 128 129 130 130 132 132 132 77 4-13-3 Esempio di programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 133 Capitolo 4-2 Terminologia 4-1 Concetti elementari Ci sono diversi passi basilari richiesti per la scrittura di un programma. Nelle appendici F Moduli di assegnazione dei canali e G Modulo di codifica del programma vi sono alcune tabelle che possono essere fotocopiate per aiutare il programmatore. 1, 2, 3... 4-2 1. Definire l’elenco di tutti i dispositivi di I/O e dei punti di /O che sono stati loro associati e preparare una tabella che mostri la corrispondenza tra i bit di I/O e i dispositivi di I/O. 2. Se il PLC dispone di alcuni moduli a cui sono associati dei canali differenti dagli IR oppure sono associati dei canali in cui la funzione di ogni bit viene specificata dal modulo, si rende necessaria la preparazione di tabelle che mostrino quali canali sono utilizzati da ciascun modulo e quale funzione viene svolta da ogni bit del canale. Questi moduli comprendono i moduli di I/O speciali e i moduli di comunicazione. 3. Definire quali canali sono disponibili come bit di lavoro e preparare una tabella in cui viene definito il loro significato. 4. Preparare anche le tabelle contenenti i numeri TC oltre ai numeri associati alle istruzioni di salto. La stessa funzione di TC può essere attribuita soltanto una volta all’interno del programma; i numeri di jump da 01 a 99 possono essere utilizzati anch’essi una sola volta. (I numeri assegnati ai TC sono descritti in 5-14 Istruzioni Timer e Counter; i numeri associati all’istruzione di salto sono invece descritti più avanti in questo capitolo.) 5. Disegnare il diagramma a relè. 6. Inserire il programma nella CPU. Quando si utilizza la Console di Programmazione, questo comporta la conversione del programma in codice mnemonico. 7. Verificare se il programma presenta errori di sintassi e correggerli. 8. Eseguire il programma verificando se si presentano errori di esecuzione e correggerli. 9. Dopo che è stato installato l’intero sistema di controllo e questo è pronto per venire utilizzato, eseguire il programma ed effettuare gli aggiustamenti di dettaglio se necessario. 10. Fare una copia di backup del programma. I concetti base del diagramma a relè e della conversione in codice mnemonico sono descritti in 4-4 Diagrammi a relè di base. Ci si prepari a introdurre il programma attraverso la Console di Programmazione come descritto in 4-5 Console di Programmazione fino a 4-7, Inserimento, modifica e controllo dei programmi. La parte rimanente del capitolo 4 riguarda la programmazione più avanzata, le precauzioni di programmazione e l’esecuzione del programma. Tutte le istruzioni di applicazione speciali sono riportate nel Capitolo 5 Istruzioni. L’eliminazione degli errori è descritta nel Capitolo NO TAG Monitoraggio ed esecuzione del programma. Il Capitolo NO TAG Gestione degli errori fornisce inoltre le informazioni necessarie per il debug. Terminologia Esistono fondamentalmente due tipi di istruzioni utilizzate nella programmazione in diagramma a relè: le istruzioni che corrispondono a simboli del diagramma a relè e che sono utilizzate sotto forma di istruzioni soltanto quando si procede alla conversione in codice mnemonico, e le istruzioni che sono scritte a destra del diagramma a relè, eseguite in base alle istruzioni che le precedono. La maggior parte delle istruzioni dispone di almeno uno o due operandi ad esse associati. Questi operandi costituiscono o indicano i dati che l’istruzione deve utilizzare. Si tratta talvolta di valori correnti, o più spesso di indirizzi delle aree dati in formato canale o bit contenenti i dati da utilizzare. Per esempio, l’istruzione MOVE che ha IR 000 come operando sorgente sposterà il contenuto del canale IR 000 in un altro registro. La destinazione è specificata come secondo operando. Un bit il cui indirizzo è designato come operando è chiamato bit; un 79 Capitolo 4-4 Diagrammi a relè di base canale il cui indirizzo è designato come operando è chiamato canale. Se un valore corrente è inserito come costante, sarà preceduto dal carattere # per indicare che non è un indirizzo. Altri termini usati nella descrizione delle istruzioni verranno introdotti nel Capitolo 5 Istruzioni. 4-3 Capacità di programmazione Le dimensioni massime del programma utente variano con la quantità di UM assegnata all’area DM di espansione e all’area dei commenti I/O. Sono disponibili circa 10,1 kW per il programma a relè quando 3 kW sono assegnati all’area DM di espansione e 2 kW sono assegnati ai commenti I/O, come sotto indicato. Fare riferimento a 3-10 Area UM per ulteriori informazioni sull’assegnazione dell’area UM. DM 6144 DM 6600 DM 6655 Setup PLC DM 7000 DM 9999 Area DM di espansione Riservato Area commenti I/O Programma a relè Dimensioni variabili Area DM fissa 4-4 Area del programma a relè (15,1 kW) Diagrammi a relè di base Un diagramma a relè consiste di una barra verticale posta sul lato sinistro e di un insieme di diramazioni orizzontali che partono dalla linea verticale. La barra verticale è chiamata ”bus”; le diramazioni vengono chiamate ”righe circuitali”. Sulle righe circuitali vengono posti vengono posti i vari contatti che si collegano alla parte destra. La combinazione logica di questi contatti determina quando e come le istruzioni poste a destra devono venire eseguite. Qui sotto viene riportato un circuito in diagramma a relè. 00000 06315 25208 HR 0109 LR 2503 24400 24401 Istruzione 00001 00100 00002 00501 00003 HR 0050 00502 00007 TIM 001 LR 0515 00503 00504 00403 00405 Istruzione 00010 21001 21002 00011 21005 21007 Come si può osservare, le righe circuitali possono avere a loro volta diverse diramazioni che poi si collegano nuovamente. Ogni coppia di tratti verticali viene chiamato contatto. I contatti privi di tratti diagonali sono detti contatti normalmente aperto e corrispondono alle istruzioni LOAD, AND o OR. I contatti con tratti diagonali sono detti contatti normalmente chiuso e corrispondono alle istruzioni LOAD NOT, AND NOT o OR NOT. Il numero in corrispondenza di ogni contatto indica l’operando dell’istruzione. Lo stato del bit associato a ogni contatto definisce la condizione di esecuzione per l’istruzione seguente. Il modo in cui opera ogni istruzione in base allo stato dei contatti viene descritta successivamente. Prima di analizzarlo, però, è bene chiarire altri termini base. Nota Quando viene visualizzato un programma in diagramma a relè utilizzando l’SSS, sullo schermo viene visualizzata una seconda barra verticale a destra che sarà collegata a tutte le istruzioni a destra. Questo, comunque, non com- 80 Capitolo 4-4 Diagrammi a relè di base porta alcuna variazione funzionale del programma. Non può venire posto alcun contatto tra le istruzioni poste a destra e la barra verticale destra, e cioè tutte le istruzioni a destra devono essere collegate direttamente alla barra destra. Fare riferimento al Manuale Operativo SSS: serie C per maggiori dettagli. 4-4-1 Termini base Contatto aperto e chiuso Ogni contatto in un diagramma a relè può essere ON o OFF in funzione dello stato del bit ad esso associato. Un contatto normalmente aperto è ON se il bit è ON; OFF se il bit è OFF. Un contatto normalmente chiuso è ON se il bit è OFF; OFF se il bit è ON. In generale, viene utilizzato un contatto normalmente aperto quando si vuole che accada qualcosa quando il bit è ON, mentre si usa un contatto normalmente chiuso quando si vuole che accada qualcosa quando il bit è OFF. 00000 Istruzione Contatto aperto 00000 Istruzione Contatto chiuso L’istruzione viene eseguita quando il bit IR 00000 è ON. L’istruzione viene eseguita quando il bit IR 00000 è OFF. Condizioni per l’esecuzione Nella programmazione in diagramma a relè, la combinazione logica di condizioni ON e OFF prima di un’istruzione determina la condizione necessaria affinché l’istruzione venga eseguita. Questa condizione, che sia ON o OFF, viene chiamata condizione per l’esecuzione dell’istruzione. Tutte le istruzioni, a parte LOAD, richiedono una condizione per l’esecuzione. Operandi Gli operandi possono essere, per ciascuna istruzione, qualsiasi bit delle aree HR, AR, LR, IR, SR o TC. Ciò significa che un contatto, in un diagramma a relè, può essere dato dallo stato degli I/O, dei flag, dei bit di lavoro, dei temporizzatori/ contatori, ecc. Le istruzioni LOAD e OUTPUT possono anche utilizzare i relè temporanei TR, ma questi vengono usati soltanto in casi speciali. Fare riferimento per maggiori dettagli al paragrafo 4-7-7 Istruzioni di controllo delle diramazioni. Blocchi logici Il modo in cui i contatti influenzano le istruzioni è determinato dalle relazioni tra i vari contatti presenti all’interno delle singole righe circuitali. Ogni gruppo di contatti che definisce un risultato logico è detto blocco logico. Sebbene i diagrammi a relè possano venire scritti senza analizzare i singoli blocchi logici, è necessario comprenderne bene il significato per realizzare una programmazione efficace, quando si programma in lista istruzioni. 4-4-2 Codice mnemonico Il diagramma a relè non può essere inserito direttamente nel PLC mediante una Console di Programmazione; occorre adoperare il software SSS/SYSWIN. Per scrivere da una Console di Programmazione, è necessario convertire il diagramma a relè in codice mnemonico. Il codice mnemonico fornisce esattamente le stesse istruzioni del diagramma a relè, ma in una forma che può essere subito digitata nel PLC. Effettivamente è possibile programmare direttamente in codice mnemonico, sebbene non sia raccomandabile ai principianti o nella stesura di programmi complessi. Inoltre, indipendentemente dal dispositivo di programmazione utilizzato, il programma viene conservato nella memoria in forma mnemonica, e questo fa sì che sia importante conoscere il codice mnemonico. Data l’importanza della Console di Programmazione come dispositivo periferico e del codice mnemonico per la comprensione completa del programma, introdurremo e descriveremo il codice mnemonico insieme al diagramma a relè. Si ricordi che non è necessario utilizzare il codice mnemonico se il programma viene sviluppato con l’SSS/SYSWIN (sebbene è possibile impiegarlo anche con l’SSS/SYSWIN, se si desidera). Struttura della memoria di programma Il programma viene scritto negli indirizzi della memoria di programma. Gli indirizzi della memoria di programma sono leggermente diversi da quelli di altre 81 Capitolo 4-4 Diagrammi a relè di base aree di memoria perché ogni indirizzo non contiene necessariamente la stessa quantità di dati. Invece, ogni indirizzo contiene un’istruzione e tutti gli identificatori e operandi necessari per quella istruzione (descritti più dettagliatamente in seguito). Dato che alcune istruzioni non richiedono operandi, mentre altre possono richiederne fino a tre, gli indirizzi della memoria di programma possono essere composti da uno a quattro canali. Gli indirizzi della memoria di programma iniziano a 00000 e continuano finché la capienza della memoria di programma non si esaurisce. Il primo canale di ogni indirizzo definisce l’istruzione. Anche qualsiasi identificatore usato dall’istruzione viene contenuto nel primo canale. Inoltre, se una istruzione richiede soltanto un unico bit (senza identificatore), anche il bit dell’operando viene programmato sulla stessa linea circuitale dell’istruzione. I canali restanti necessari all’istruzione contengono gli operandi che specificano quali dati devono essere utilizzati. Convertendo in codice mnemonico, tutte le istruzioni tranne quelle in diagramma a relè sono scritte nella stessa forma, un canale in ogni linea, come appaiono nei simboli del diagramma a relè. Un esempio di codice mnemonico viene mostrato sotto. Le istruzioni utilizzate verranno descritte più avanti nel manuale. Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD AND OR LD NOT AND AND LD MOV(021) Dati HR DM 00007 00008 00009 00010 00011 00012 00013 0001 00001 00002 00100 00101 00102 000 0000 CMP(020) DM HR 0000 00 25505 00501 DM DM 0000 0500 00502 00005 00503 LD OUT MOV(021) DIFU(013) AND OUT Le colonne degli indirizzi e istruzioni relative della tabella dei codici mnemonici sono riempite solo per il canale dell’istruzione. Per tutte le altre linee, le due colonne a sinistra sono lasciate in bianco. Se l’istruzione non richiede alcun identificatore o bit di operando, la riga per la colonna dell’operando è lasciata in bianco. È una buona idea scorrere tutti gli spazi in bianco di una colonna dati (per le istruzioni che non richiedono dati) in modo da verificare velocemente se qualche indirizzo è stato dimenticato. Durante la programmazione, gli indirizzi vengono visualizzati automaticamente e non devono essere inseriti, a meno che per qualche motivo non si desideri una posizione diversa per l’istruzione. Quando si effettua una conversione in codice mnemonico, è meglio iniziare dall’indirizzo 00000 del programma di memoria, a meno che non si abbia una ragione specifica per iniziare da un altro punto. 82 Capitolo 4-4 Diagrammi a relè di base 4-4-3 Istruzioni in diagramma a relè Le istruzioni in diagramma a relè sono quelle istruzioni che corrispondono ai singoli contatti sul diagramma a relè. Tali istruzioni, da sole o in combinazione con le istruzioni dei blocchi logici, descritte successivamente, costituiscono le condizioni operative su cui sono basate tutte le altre istruzioni. LOAD e LOAD NOT Il primo contatto che inizia qualsiasi blocco logico in un diagramma a relè corrisponde a una istruzione LOAD o LOAD NOT. Ciascuna di queste istruzioni richiede una linea del codice mnemonico. Il termine ”istruzione” è utilizzato nella tabella che segue e identifica una qualsiasi istruzione che potrebbe essere inserita nella parte destra del diagramma. 00000 Istruzione LOAD. 00000 Istruzione LOAD NOT. Indirizzo Istruzione 00000 00001 00002 00003 LD Istruzione LD NOT Istruzione Dati 00000 00000 Quando questo è il solo contatto di una riga circuitale, la condizione operativa per l’istruzione posta sul lato destro è ON quando il contatto è ON. Per l’istruzione LOAD (contatto normalmente aperto), la condizione operativa è ON se IR 00000 è ON; viceversa per l’istruzione LOAD NOT (contatto normalmente chiuso), la condizione operativa è ON se 00000 è OFF. AND e AND NOT Quando due o più contatti sono collegati in serie nella stessa riga circuitale, il primo corrisponde a un’istruzione LOAD o LOAD NOT; gli altri contatti alle istruzioni AND o AND NOT. Il seguente esempio mostra tre contatti che corrispondono, a partire da sinistra, alle istruzioni LOAD, AND NOT e infine AND. Ciascuna di queste istruzioni richiede una linea del codice mnemonico. 00000 00100 LR 0000 Istruzione Indirizzo Istruzione 00000 00001 00002 00003 LD AND NOT AND Istruzione Dati LR 00000 00100 0000 L’istruzione avrà una condizione operativa ON soltanto quando tutte e tre le condizioni saranno ON, cioè quando IR 00000 è ON, IR 00100 è OFF e LR 0000 è ON. In conclusione, le istruzioni AND devono essere considerate in serie, e ognuna è il risultato dell’AND logico tra la condizione operativa (somma di tutte le condizioni operative che precedono quel punto) e lo stato del bit associato all’istruzione AND. Se entrambi sono ON, allora il risultato è una nuova condizione operativa ON valida per la successiva istruzione. Se uno dei due è OFF, anche il risultato sarà OFF. La condizione operativa per il primo AND di una serie è la prima condizione della riga circuitale. Ciascuna istruzione AND NOT di una serie è il risultato dell’AND logico tra la condizione operativa e lo stato negato del bit operando. 83 Capitolo 4-4 Diagrammi a relè di base OR e OR NOT Quando due o più contatti sono collegati in parallelo, il primo contatto corrisponde a un’istruzione LOAD o LOAD NOT; gli altri contatti corrispondono alle istruzioni OR o OR NOT. Il seguente esempio mostra tre contatti che corrispondono a un’istruzione LOAD NOT, OR NOT e OR (procedendo dall’alto). Ciascuna di queste istruzioni richiede una linea del codice mnemonico. 00000 Istruzione 00100 LR 0000 Indirizzo Istruzione 00000 00001 00002 00003 LD NOT OR NOT OR Istruzione Dati LR 00000 00100 0000 L’istruzione posta a destra ha una condizione operativa uguale a ON quando almeno uno dei contatti è ON, ad esempio IR 00000 è OFF, quando IR 00100 è OFF o quando LR 0000 è ON. Le istruzioni OR e OR NOT possono venire considerate singolarmente, ognuna essendo il risultato dell’OR logico tra la condizione operativa e lo stato del bit associato all’OR. Se almeno uno di essi è ON, si genera una condizione operativa ON per la successiva istruzione. Combinazione di istruzioni AND e OR Quando in diagrammi più complicati sono combinate insieme delle istruzioni AND e OR, ciascuna può venire considerata singolarmente, e ciascuna segue un’operazione logica tra la condizione operativa e lo stato del bit associato ad essa. Quello che segue ne è un esempio. Lo si osservi attentamente per convincersi che il codice mnemonico segue fedelmente il diagramma a relè. 00000 00001 00002 00003 Istruzione 00200 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 LD AND OR AND AND NOT Istruzione Dati 00000 00001 00200 00002 00003 In questo esempio, viene eseguito un AND tra lo stato dei bit IR 00000 e IR 00001 per determinare la condizione operativa posta in OR con lo stato di IR 00200. Il risultato di questa operazione determina, a sua volta, la condizione operativa dell’AND con lo stato di IR 00002, che definisce la condizione operativa dell’AND (e AND NOT) con lo stato di IR 00003. Nei diagrammi più complicati, tuttavia, è necessario analizzare i blocchi logici prima di poter arrivare a determinare la condizione operativa per l’istruzione finale e dove utilizzare le istruzioni AND LOAD e OR LOAD. Prima di considerare diagrammi più complicati, comunque, vedremo le istruzioni necessarie per completare un semplice programma di I/O. 84 Capitolo 4-4 Diagrammi a relè di base 4-4-4 OUTPUT e OUTPUT NOT Il modo più semplice per ottenere i risultati della combinazione delle condizioni operative è produrle direttamente con OUTPUT e OUTPUT NOT. Queste istruzioni vengono usate per controllare lo stato dei bit in base alla condizione operativa. Con l’istruzione OUTPUT, il bit operando sarà ON finché la condizione operativa resta ON e sarà OFF finché la condizione operativa resta OFF. Con l’istruzione OUTPUT NOT, il bit operando sarà ON finché la condizione operativa resta OFF e sarà OFF finché la condizione operativa resta ON. Ciò si rappresenta come segue. Ciascuna di queste istruzioni richiede una linea del codice mnemonico. Indirizzo 00000 00200 00000 00001 Istruzione Dati LD OUT 00000 00200 00001 00201 Indirizzo Istruzione 00000 00001 LD OUT NOT Dati 00001 00201 Nell’esempio precedente, IR 00200 sarà ON finché IR 00000 è ON e IR 00201 sarà OFF finché IR 00001 è ON. In questo caso, IR 00000 e IR 00001 rappresentano i bit di ingresso e IR 00200, IR 00201 i bit di uscita assegnati dal PLC, ovvero i segnali che arrivano ai punti di ingresso assegnati a IR 00000 e IR 00001 controllano rispettivamente i punti di uscita IR 00200 e IR 00201. Il periodo in cui un bit resta ON o OFF può essere controllato combinando opportunamente OUTPUT o OUTPUT NOT con l’istruzione TIMER. Fare riferimento agli esempi presenti in 5-14-1 – TIMER – TIM per i dettagli. 4-4-5 L’istruzione END L’ultima istruzione di qualunque programma deve essere l’istruzione END. La CPU esegue tutte le istruzioni fino al primo END, quindi torna ad eseguire la prima istruzione del programma. Sebbene una istruzione END possa essere posta in qualunque punto del programma, utile in fase di debug, nessuna istruzione successiva ad essa può venire eseguita fino a quando non viene eliminata. Il numero che segue l’istruzione END nel codice mnemonico rappresenta il codice funzione dell’istruzione stessa e viene utilizzato quando il programma viene inserito nel PLC. Questi verranno descritti successivamente. L’istruzione END non richiede operandi e sulla stessa riga circuitale non può essere inserita nessun’altra istruzione. 00000 00001 Istruzione END(001) Indirizzo Istruzione 00000 00001 00002 00003 LD AND NOT Istruzione END (001) L’esecuzione del programma termina qui. Dati 00000 00001 --- Se non è stata programmata alcuna istruzione END, il programma non può essere eseguito. Abbiamo terminato le istruzioni che servono per scrivere un semplice programma di I/O. Prima di terminare con la programmazione in diagramma a relè e passare all’inserimento del programma nel PLC, vediamo le istruzioni dei blocchi logici (AND LOAD e OR LOAD), che sono spesso utili anche in programmi di grande semplicità. 85 Capitolo 4-4 Diagrammi a relè di base 4-4-6 Istruzioni dei blocchi logici Le istruzioni dei blocchi logici non corrispondono a un contatto in diagramma a relè, ma descrivono le relazioni tra i blocchi logici. L’ istruzione AND LOAD esegue l’AND logico tra le condizioni operative risultanti da due blocchi logici. L’istruzione OR LOAD esegue l’OR logico tra le condizioni operative risultanti da due blocchi logici. AND LOAD Sebbene semplice in apparenza, il diagramma riportato qui sotto richiede un’istruzione AND LOAD. 00000 00002 00001 00003 Istruzione Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 LD OR LD OR NOT AND LD Istruzione Dati 00000 00001 00002 00003 --- I due blocchi logici sono evidenziati dalle linee tratteggiate. Lo studio di questo esempio mostra che si genera una condizione operativa ON quando entrambe le condizioni nel blocco logico sinistro sono ON (es.: IR 00000 o IR 00001 sono ON) e quando entrambe le condizioni nel blocco logico destro sono ON (es. IR 00002 è ON o IR 00003 è OFF). Il precedente diagramma a relè non può essere convertito in codice mnemonico utilizzando unicamente le istruzioni AND e OR. Se si tenta un AND tra IR 00002 e i risultati di un OR tra IR 00000 e IR 00001, l’istruzione OR NOT tra IR 00002 e IR 00003 viene persa e OR NOT termina essendoci un OR NOT tra IR 00003 e i risultati di un AND tra IR 00002 e il primo OR. Ciò di cui abbiamo bisogno è un modo per eseguire indipendentemente OR (NOT) e poi combinarne i risultati. A questo scopo, possiamo utilizzare l’istruzione LOAD o LOAD NOT al centro di una riga circuitale. Quando queste istruzioni vengono utilizzate in questo modo, la condizione di esecuzione corrente viene salvata in un buffer speciale e il processo logico viene avviato. Per combinare il risultato della condizione di esecuzione corrente con quella precedente “non utilizzata”, bisogna utilizzare un’istruzione AND LOAD o OR LOAD. Qui “LOAD” si riferisce al caricamento dell’ultima condizione operativa non utilizzata. Una condizione operativa non utilizzata viene prodotta usando l’istruzione LOAD o LOAD NOT per qualsiasi condizione su una riga circuitale eccetto la prima. Analizzando i circuito in termini di istruzioni, il contatto IR 00000 è un’istruzione LOAD mentre il contatto sottostante è un’istruzione OR tra lo stato di IR 00000 e quello di IR 00001. Il contatto IR 00002 è ancora un’istruzione LOAD mentre il contatto sottostante è un’istruzione OR NOT, tra lo stato di IR 00002 e lo stato negato di IR 00003. Per poter eseguire l’istruzione posta a destra, deve venire eseguito l’AND logico tra le condizioni operative risultanti da questi due blocchi logici. L’istruzione AND LOAD permette di eseguire proprio questo. Il codice mnemonico per il diagramma a relè viene mostrato di seguito. L’istruzione AND LOAD non richiede operandi propri, in quanto opera con condizioni operative pregresse. Anche in questo caso i trattini indicano che non devono essere inseriti o designati operandi. OR LOAD 86 Il diagramma seguente richiede un’istruzione OR LOAD tra il blocco logico superiore e quello inferiore. Una condizione operativa ON, utilizzabile dall’istruzione posta a destra, risulta quando IR 00000 è ON e IR 00001 è OFF o quando IR 00002 e IR 00003 sono entrambi ON. Il funzionamento di OR LOAD e del suo Capitolo 4-4 Diagrammi a relè di base codice mnemonico è lo stesso dell’istruzione AND LOAD, tranne che la condizione operativa corrente è OR con l’ultima condizione operativa non utilizzata. 00000 00001 Istruzione 00002 00003 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 LD AND NOT LD AND OR LD Istruzione Dati 00000 00001 00002 00003 --- Naturalmente, in alcuni circuiti è necessario adottare sia l’istruzione AND LOAD sia l’istruzione OR LOAD. Istruzioni di blocchi logici in serie Per codificare i circuiti con istruzioni di blocchi logici in serie, il circuito deve essere suddiviso in blocchi logici. Ogni blocco viene codificato utilizzando un’istruzione LOAD per codificare il primo contatto, si usa quindi AND LOAD o OR LOAD per combinare in modo logico i blocchi. Sia con AND LOAD che con OR LOAD ci sono due metodi per fare questo. Uno è quello di codificare l’istruzione del blocco logico che si trova dopo i primi due blocchi ed in seguito quella dopo ciascun blocco aggiuntivo. L’altro è quello di codificare tutti i blocchi da collegare, iniziando ciascun blocco con LOAD o LOAD NOT, e quindi codificare le istruzioni di blocco logico che li collegano. In questo caso, si devono combinare per prima le istruzioni dell’ultimo paio di blocchi e poi tutti i blocchi precedenti procedendo a ritroso fino al primo. Sebbene entrambi i metodi producano esattamente lo stesso risultato, il secondo metodo, quello relativo alla codifica di tutte le istruzioni di blocco logico insieme, può essere utilizzato soltanto se si stanno collegando otto o un numero minore di blocchi, cioè se sono richieste sette, o meno, istruzioni di blocco logico. Il diagramma seguente richiede che AND LOAD sia convertito in codice mnemonico perché contiene tre paia di contatti paralleli in serie. Nell’illustrazione sono anche contenute le due opzioni per la codifica del programma. 00000 00002 00004 00500 00001 00003 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD OR NOT LD NOT OR AND LD LD OR AND LD OUT 00005 Dati 00000 00001 00002 00003 — 00004 00005 — 00500 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD OR NOT LD NOT OR LD OR AND LD AND LD OUT Dati 00000 00001 00002 00003 00004 00005 — — 00500 Si ricordi ancora che con il metodo a destra è possibile collegare solo un massimo di otto blocchi, mentre non vi è limite nel numero di blocchi collegabili con il primo metodo. 87 Capitolo 4-4 Diagrammi a relè di base Il diagramma seguente richiede che le istruzioni OR LOAD siano convertite in codice mnemonico perché le tre coppie di contatti sono collegate in parallelo. 00000 00001 00501 00002 00003 00040 00005 Il primo contatto di ogni coppia viene convertito in LOAD con il contatto associato e quindi posto in AND con l’altro contatto. I primi due blocchi possono essere codificati per primi, seguiti da OR LOAD, dall’ultima coppia di contatti blocco e da un altro OR LOAD; oppure si possono codificare prima i tre blocchi seguiti da due OR LOAD. La figura seguente mostra i codici mnemonici per entrambi i metodi. Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD AND NOT LD NOT AND NOT OR LD LD AND OR LD OUT Dati 00000 00001 00002 00003 — 00004 00005 — 00501 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD AND NOT LD NOT AND NOT LD AND OR LD OR LD OUT Dati 00000 00001 00002 00003 00004 00005 — — 00501 Si ricordi ancora che con il metodo a destra è possibile collegare solo un massimo di otto blocchi, mentre non c’è limite nel numero dei blocchi collegabili con il primo metodo. Accoppiamento di AND LOAD con OR LOAD Entrambi i metodi di codifica suddetti possono essere utilizzati anche quando sono utilizzati AND LOAD e OR LOAD, se i blocchi da accoppiare non superano gli otto. Il diagramma seguente contiene soltanto due blocchi logici. Non è necessario separare ulteriormente i componenti del blocco b, in quanto possono essere codificati direttamente utilizzando soltanto AND e OR. 00000 00001 00002 00003 00501 00201 00004 Blocco a Blocco b Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 LD AND NOT LD AND OR OR AND LD OUT Dati 00000 00001 00002 00003 00201 00004 — 00501 Sebbene il diagramma seguente sia simile al precedente, il blocco b nel diagramma qui sotto non può essere codificato senza separarlo in due blocchi accoppiati con OR LOAD. In questo esempio, prima sono stati codificati i tre 88 Capitolo 4-4 Diagrammi a relè di base blocchi e poi è stato usato OR LOAD per accoppiare gli ultimi due blocchi, seguito da AND LOAD per combinare la condizione operativa prodotta da OR LOAD con la condizione operativa del blocco a. Quando si codificano tutte le istruzioni di blocco logico alla fine dei blocchi logici che devono essere accoppiati, questi devono essere codificati in ordine inverso, cioè per prima è inserita l’istruzione di blocco logico per gli ultimi due blocchi, seguita da quella per unire la condizione di esecuzione che risulta dalla prima istruzione di blocco logico e dal terzo blocco logico a partire dalla fine, e così via fino al primo blocco logico che si deve accoppiare. Blocco b1 00000 00001 00002 00003 00502 00004 00202 Blocco b2 Blocco a Blocco b Diagrammi complicati Blocco a1 00000 00001 00004 00005 00503 00006 00007 Blocco a2 Blocco b2 Blocchi a1 e a2 Blocco a Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD NOT AND LD AND NOT LD NOT AND OR LD AND LD OUT Dati 00000 00001 00002 00003 00004 00202 — — 00502 Nella determinazione di quali istruzioni di blocco logico sono richieste per codificare un diagramma, è necessario talvolta spezzare il diagramma in blocchi e poi continuare a spezzare questi blocchi fino a ottenere blocchi logici che possono essere codificati senza che siano necessarie istruzioni di blocco logico. Questi blocchi sono poi codificati, accoppiando prima i blocchi piccoli, e poi quelli più grandi. Sia AND LOAD che OR LOAD vengono usati per accoppiare i blocchi, cioè AND LOAD o OR LOAD uniscono sempre le ultime due condizioni di esecuzione esistenti, indipendentemente se le condizioni di esecuzione risultano da una condizione singola, da blocchi logici oppure da istruzioni di blocco logico precedenti. Quando si lavora con diagrammi complicati, i blocchi saranno definitivamente codificati partendo dall’alto a sinistra e spostandosi in basso prima di spostarsi lateralmente. Generalmente ciò significa che, quando può esserci la scelta, OR LOAD viene codificato prima di AND LOAD. Il diagramma seguente deve essere spezzato in due blocchi, ognuno dei quali deve essere a sua volta spezzato in due prima che possa essere codificato. Come qui esposto, i blocchi a e b richiedono un AND LOAD. Comunque, prima che AND LOAD possa essere utilizzata, si deve usare OR LOAD per accoppiare i blocchi di testa e coda su entrambi i lati, cioè per accoppiare a1 con a2 e b1 con b2. Blocco b1 00002 00003 Indirizzo Blocco b Blocchi b1 e b2 Blocchi a e b Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 LD AND NOT LD NOT AND OR LD LD AND LD AND OR LD AND LD OUT Dati 00000 00001 00002 00003 — 00004 00005 00006 00007 — — 00503 Questo tipo di diagramma può essere codificato facilmente se ogni blocco è codificato in ordine: prima dall’alto in basso e poi da sinistra a destra. Nel diagramma seguente, i blocchi a e b sono accoppiati utilizzando AND LOAD come sopra illustrato, successivamente viene codificato il blocco c e verrà utilizzato un secondo AND LOAD per accoppiarlo con la condizione di esecuzione dal primo AND LOAD. Poi viene codificato il blocco d, viene usato un terzo AND LOAD per 89 Capitolo 4-4 Diagrammi a relè di base accoppiare la condizione operativa dal blocco d con la condizione operativa dal secondo AND LOAD, e così via fino al blocco n. 00500 Blocco a Blocco b Blocco c Blocco n Il diagramma che segue richiede prima un OR LOAD e un AND LOAD per codificare la parte superiore dei tre blocchi, e poi altri due OR LOAD per completare il codice mnemonico. 00000 00001 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 LD LD LD AND NOT OR LD AND LD LD NOT AND OR LD LD NOT AND OR LD OUT Dati LR 0000 00002 00004 00005 00006 00007 00003 00000 00001 00002 00003 –– –– 00004 00005 –– 00006 00007 –– 0000 LR Sebbene il programma venga eseguito come è scritto, questo diagramma potrebbe essere disegnato come sotto indicato per eliminare la necessità del primo OR LOAD e dell’AND LOAD, semplificando il programma e utilizzando minor spazio in memoria. 00002 00003 00000 LR 0000 00001 00004 00005 00006 00007 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 LD AND NOT OR AND LD NOT AND OR LD LD NOT AND OR LD OUT Dati LR 00002 00003 00001 00000 00004 00005 –– 00006 00007 –– 0000 Il diagramma seguente richiede cinque blocchi, che sono qui codificati in ordine prima di utilizzare OR LOAD e AND LOAD per accoppiarli partendo dagli ultimi due blocchi e retrocedendo. OR LOAD all’indirizzo 00008 accoppia i blocchi d 90 Capitolo 4-4 Diagrammi a relè di base ed e, il successivo AND LOAD accoppia la condizione operativa risultante con quella del blocco c, ecc. 00000 00001 Indirizzo 00002 LR 0000 Blocco b Blocco a Blocco c 00003 Blocco d 00004 00005 00006 00007 Blocchi d ed e Blocco c con il risultato del precedente Blocco e Blocco b con il risultato del precedente Blocco a con il risultato del precedente 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 Istruzione LD LD AND LD AND LD LD AND OR LD AND LD OR LD AND LD OUT Dati 00000 00001 00002 00003 00004 00005 00006 00007 –– –– –– –– 0000 LR Ed ancora, questo diagramma può essere riscritto come segue per semplificare la struttura del programma, la codifica e per utilizzare minor spazio in memoria. 00006 00007 00003 00004 Indirizzo 00000 LR 0000 00005 00001 00002 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 Istruzione LD AND OR AND AND LD AND OR LD AND OUT Dati 00006 00007 00005 00003 00004 00001 00002 –– 00000 0000 LR L’esempio successivo, l’ultimo, può dapprima sembrare molto complicato ma può essere codificato utilizzando soltanto due istruzioni di blocco logico. Il diagramma appare così: Blocco a 00000 00001 01000 01001 00002 00003 00004 00005 00500 00006 00500 Blocco b Blocco c La prima istruzione di blocco logico è usata per accoppiare le condizioni di esecuzioni risultanti dai blocchi a e b, la seconda per accoppiare la condizione di esecuzione del blocco c con quella risultante dal contatto normalmente chiuso IR 00003. Il resto del diagramma può essere codificato con le istruzioni OR, 91 Capitolo 4-5 Console di Programmazione AND e AND NOT. Il suo andamento logico ed il codice risultante sono illustrati di seguito. Blocco a Blocco b 00000 00001 01000 01001 LD AND 00000 00001 LD AND 01000 01001 OR LD Blocco c 00500 00004 00005 00004 00005 OR 00500 LD AND 00002 00003 00006 AND 00002 AND NOT 00003 LD 00006 AND LD Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 LD AND LD AND OR LD OR AND AND NOT LD AND OR AND LD OUT Dati 00000 00001 01000 01001 –– 00500 00002 00003 00004 00005 00006 –– 00500 00500 4-4-7 Come codificare più istruzioni a destra Se c’è più di un’istruzione di uscita eseguita con la stessa condizione operativa, queste devono essere inserite consecutivamente seguendo l’ultima condizione sulla riga circuitale. Nell’esempio seguente, l’ultima riga circuitale contiene una condizione in più che corrisponde a un AND con IR 00004. 00000 00003 HR 0001 00001 00500 00002 00004 00506 HR 0000 4-5 Indirizzo 00000 00001 00002 00003 00004 00005 00006 00007 00008 Istruzione LD OR OR OR AND OUT OUT AND OUT Dati HR HR 00000 00001 00002 0000 00003 0001 00500 00004 00506 Console di Programmazione Il presente paragrafo e il successivo descrivono la Console di Programmazione e le operazioni necessarie per preparare l’inserimento del programma. 4-7 Inserimento, modifica e controllo dei programmi descrive le procedure reali per inserire il programma in memoria. Sebbene la Console di Programmazione può essere usata per scrivere i programmi a relè, viene usata principalmente per supportare le operazioni SSS ed è molto utile per la modifica e la manutenzione in loco. Segue l’elenco delle funzioni principali della Console di Programmazione. 1, 2, 3... 92 1. Visualizzazione di messaggi operativi e dei risultati dei controlli diagnostici. 2. Scrittura e lettura di programmi a relè, inserimento e cancellazione di istruzioni, ricerca di dati o istruzioni e monitoraggio dello stato dei bit di I/O. 3. Monitoraggio dello stato di I/O, bit di set/reset forzato. 4. La Console di Programmazione può essere collegata o scollegata dal PLC con l’alimentazione inserita. Console di Programmazione Capitolo 4-5 5. La Console di Programmazione può essere utilizzata con PLC serie C. 6. Supporta la modalità TERMINAL, per la visualizzazione di un messaggio a 32 caratteri, e la funzione di mappatura tastiera. Fare riferimento a NO TAG – MODALITA’ TERMINAL – TERM(048) per i dettagli. Nota La Console di Programmazione non supporta tutte le operazioni SSS, ma solo quelle necessarie per la modifica e la manutenzione in loco. 4-5-1 Tastiera La tastiera della Console di Programmazione è suddivisa, dal punto di vista funzionale, in quattro zone contraddistinte da colori: Bianco: tasti numerici I dieci tasti bianchi sono usati per inserire dati numerici del programma, come gli indirizzi del programma, gli indirizzi dell’area dati e i valori dell’operando. I tasti numerici sono usati anche in combinazione con il tasto funzione (FUN) per inserire istruzioni con codici funzione. Rosso: tasto CLR Il tasto CLR cancella la visualizzazione e annulla le operazioni correnti della Console di Programmazione. Esso viene utilizzato anche quando viene inserita la password all’inizio della programmazione. Qualsiasi operazione della Console di Programmazione può essere annullata premendo il tasto CLR, sebbene tale tasto deve essere premuto due o tre volte per annullare l’operazione e cancellare la visualizzazione. Giallo: tasti di funzionamento I tasti gialli sono usati per scrivere e correggere i programmi. Spiegazioni dettagliate delle loro funzioni sono fornite successivamente in questo capitolo. Grigio: tasti istruzioni e area dati Eccetto per il tasto SHIFT in alto a destra, i tasti grigi sono usati per inserire le istruzioni e per indicare i prefissi dell’area dati quando viene inserito o modificato un programma. Il tasto SHIFT è simile al tasto SHIFT di una macchina da scrivere e viene usato per modificare la funzione del tasto premuto subito dopo. (Basta premere il tasto SHIFT una volta e poi il tasto prescelto.) 93 Capitolo 4-5 Console di Programmazione I tasti grigi (tranne il tasto SHIFT) riportano il nome mnemonico dell’istruzione o l’abbreviazione dell’area dati. Segue la descrizione delle funzioni dei tasti. Utilizzato prima del codice funzione quando viene inserita un’istruzione mediante codice funzione. Utilizzato per inserire SFT (istruzione Registro a scorrimento). Utilizzato dopo un codice funzione per designare la forma differenziale di un’istruzione o dopo un’istruzione ladder per indicare una condizione negata. Utilizzato per inserire AND (istruzione AND) o usato con NOT per inserire AND NOT. Utilizzato per inserire OR (istruzione OR) o usato con NOT per inserire OR NOT. Utilizzato per inserire CNT (istruzione Counter) o per indicare un numero TC che è già stato definito come contatore. Utilizzato per inserire LD (istruzione Load) o utilizzato con NOT per inserire LD NOT. Usato anche per indicare un bit di ingresso. Utilizzato per inserire OUT (istruzione Output) o utilizzato con NOT per inserire OUT NOT. Usato anche per indicare un bit di uscita. Utilizzato per inserire TIM (istruzione Timer) o per indicare un numero TC già definito come temporizzatore. Utilizzato prima di indicare un indirizzo nell’area TR. Utilizzato prima di indicare un indirizzo nell’area LR. Utilizzato prima di indicare un indirizzo nell’area HR. Utilizzato prima di indicare un indirizzo nell’area AR. Utilizzato prima di indicare un indirizzo indiretto nell’area DM. Utilizzato prima di indicare un indirizzo nell’area EM. Utilizzato prima di indicare un indirizzo nell’area DM. Utilizzato prima di indicare un indirizzo del canale. Utilizzato prima di indicare un operando come costante. Utilizzato prima di indicare un indirizzo del bit. Utilizzato prima dei codici funzione per le istruzioni di programmazione dei blocchi, cioè quelle tra parentesi angolari <>. 4-5-2 Modalità del PLC La Console di Programmazione è dotata di un selettore di modalità del PLC. Per selezionare una modalità operativa –RUN, MONITOR o PROGRAM– utilizzare tale selettore. La modalità selezionata determinerà il funzionamento del PLC e le procedure possibili dalla Console di Programmazione. La modalità RUN è la modalità usata per l’esecuzione normale del programma. Quando lo switch è su RUN e l’ingresso di START sul modulo di alimentazione della CPU è ON, la CPU inizierà l’esecuzione del programma in base a quanto scritto nella memoria di programma. Sebbene il monitoraggio del funzionamento del PLC dalla Console di Programmazione è possibile in modalità RUN, non possono essere inseriti o modificati i dati nelle aree di memoria. 94 Capitolo 4-6 Operazioni preliminari La modalità MONITOR permette di monitorare l’esecuzione del programma in corso controllando lo stato degli I/O, modificando il PV (valore corrente) o l’SV (valore di predisposizione), ecc. Con MONITOR, l’elaborazione degli I/O è gestita come nella modalità RUN. La modalità MONITOR è usata generalmente per il funzionamento di prova del sistema e per gli aggiustamenti finali del programma. In PROGRAM, il PLC non esegue il programma. La modalità PROGRAM serve per creare e modificare i programmi, cancellare le aree di memoria e registrare e modificare la tabella di I/O. Nella modalità PROGRAM, è inoltre disponibile una speciale operazione di debug che permette il controllo di un programma prima del funzionamento. Attenzione ! Non lasciare la Console di Programmazione in modalità RUN collegata al PLC con una prolunga. I disturbi ricevuti dalla prolunga possono essere trasmessi al PLC, influenzando il programma e il sistema controllato. 4-5-3 Visualizzazione messaggi Il pin 3 del commutatore DIP della CPU determina la visualizzazione dei messaggi in giapponese o in inglese sulla Console di Programmazione. L’impostazione di fabbrica è ON, che indica la visualizzazione in lingua inglese. 4-6 Operazioni preliminari Questo paragrafo descrive le procedure necessarie per iniziare le operazioni con la Console di Programmazione. Sono comprese l’inserimento password, la cancellazione della memoria, l’eliminazione dei messaggi di errore e le operazioni della tabella di I/O. Le operazioni della tabella di I/O sono necessarie anche in altri momenti, per es. quando devono essere apportate modifiche nei moduli utilizzati nella configurazione del PLC. ! Attenzione Controllare sempre che la Console di Programmazione sia in modalità PROGRAM quando il PLC viene acceso con una Console di Programmazione collegata, a meno che non si desideri specificamente un’altra modalità. Se la Console di Programmazione è in modalità RUN quando l’alimentazione è accesa, qualsiasi programma in memoria sarà eseguito, avviando probabilmente il funzionamento di un sistema controllato dal PLC. Eseguire le seguenti operazioni prima di iniziare l’inserimento del programma. 1, 2, 3... 1. Inserire il tasto modalità nella Console di Programmazione. 2. Impostare il selettore di modalità su PROGRAM. (Il tasto modalità non può essere eliminato se impostato su PROGRAM.) 3. Accendere il PLC. Nota Accendere anche i moduli di I/O, se installati. La Console di Programmazione non funzionerà se tali moduli non sono accesi. 4. Controllare che il LED POWER della CPU sia acceso e che siano visualizzati i seguenti display sulla Console di Programmazione (se il LED ALM/ ERR è acceso o lampeggia o se appare un messaggio di errore, eliminare l’errore). <PROGRAM> PASSWORD! 5. Inserire la password. Fare riferimento a 4-6-1 Inserimento password per i dettagli. 6. Cancellare la memoria. Saltare questo passo se il programma non deve essere cancellato. Fare riferimento a 4-6-3 Cancellazione della memoria per i dettagli. 4-6-1 Inserimento password Per avere accesso alle funzioni di programmazione del PLC, è necessario inserire prima la password. La password impedisce l’accesso non autorizzato al programma. 95 Capitolo 4-6 Operazioni preliminari Il PLC richiede una password quando l’alimentazione viene accesa o, se l’alimentazione del PLC è già ON, dopo il collegamento della Console di Programmazione al PLC. Per avere accesso al sistema quando appare il messaggio “Password!”, premere CLR e poi MONTR. Premere quindi CLR per cancellare il display. Se la Console di Programmazione è collegata al PLC quando l’alimentazione è già ON, il primo display che appare indicherà la modalità del PLC prima del collegamento alla Console. Controllare che il PLC sia in modalità PROGRAM prima di inserire la password. Dopo l’inserimento della password, il PLC passerà alla modalità impostata sul selettore di modalità, avviando il funzionamento se la modalità è RUN o MONITOR. La modalità può essere modificata in RUN o MONITOR con il selettore di modalità dopo l’inserimento della password. <PROGRAM> PASSWORD! <PROGRAM> BZ Indica la modalità impostata dal selettore di modalità. 4-6-2 Cicalino Subito dopo l’inserimento della password o subito dopo la modifica della modalità, si può utilizzare SHIFT e il tasto 1 per attivare o disattivare il cicalino collegato ai tasti della Console di Programmazione. Se BZ è visualizzato nell’angolo in alto a destra, il cicalino è operativo. Se BZ non è visualizzato, il cicalino non è operativo. Il cicalino si attiva anche quando si verifica un errore durante il funzionamento del PLC. In tal caso, le impostazioni suddette non hanno effetto. 4-6-3 Cancellazione della memoria Mediante l’operazione di cancellazione della memoria è possibile cancellare del tutto o in parte l’area UM (RAM o EEPROM) e le aree IR, HR, AR, DM, EM e TC. Se non espressamente specificato, l’operazione di cancellazione cancellerà tutte le suddette aree di memoria. L’area UM non sarà cancellata se lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) è ON. Prima di iniziare la programmazione per la prima volta o quando viene installato un nuovo programma, tutte le aree dovrebbero risultare cancellate. Prima di cancellare la memoria, controllare se è già caricato un programma necessario. Se tale programma è necessario, cancellare soltanto le aree di memoria non necessarie e controllare il programma esistente con la sequenza di tasti di controllo programma prima del’utilizzo. La sequenza di controllo è illustrata successivamente in questo capitolo. Altri metodi di debug sono contenuti in NO TAG Monitoraggio ed esecuzione del programma. Per cancellare tutte le aree di memoria, premere CLR finché non sono visualizzati solo zeri, e poi premere i tasti riportati nella prima riga della sequenza di tasti successiva. Le diramazioni mostrate nella sequenza sono utilizzate soltanto quando viene eseguita una cancellazione di memoria parziale, descritta in seguito. La memoria può essere cancellata solo in modalità PROGRAM. La tabella seguente mostra le aree di memoria che saranno cancellate per le 3 operazioni (cancella tutto, cancellazione parziale, cancellazione memoria). 96 Capitolo 4-6 Operazioni preliminari Area di memoria Note Cancella tutto Cancella tutto Canali di I/O Cancellata Cancellazione parziale Cancellata Cancellazione memoria Cancellata Canali di lavoro Cancellata --- Cancellata HR, AR, TC, DM, DM fissa Cancellata Cancellata Cancellata DM di espansione Cancellata --- Cancellata EM Cancellata Cancellata Cancellata Commenti I/O Cancellata --- --- Programma a relè Cancellata Cancellata Cancellata Informazioni assegnazione area UM Cancellata --- --- 1. L’area storica degli errori (DM 6000... DM 6030) non viene cancellata quando viene cancellata l’area DM. 2. Quando l’area di setup del PLC (DM 6600... DM 6655 nell’area DM fissa) viene cancellata, viene ripristinata l’impostazione di fabbrica. 3. Quando viene eseguita l’operazione Cancella tutto, l’area del programma a relè sarà interamente assegnata al programma a relè. (L’area DM di espansione e le aree di commenti I/O saranno impostati su 0 kW.) Inoltre, saranno eliminati tutti i banchi EM. Sequenza di tasti per Cancella tutto: La procedura seguente cancella completamente la memoria. MEMORY ERR I/O VER ERR Continuare a premere il tasto CLR per ogni messaggio di errore finché non appare “00000” sul display 00000 00000 00000MEMORY CLR? HR CNT DM EM~ 00000MEM ALLCLR? Cancella tutto 00000MEM ALLCLR END Cancellazione parziale È possibile conservare i dati in aree particolari o parte del programma a relè. Per conservare i dati nelle aree HR e AR, TC, DM e/o EM, premere il tasto specifico dopo REC/RESET. HR viene utilizzato per indicare sia le aree HR che AR. In altri termini, se si specifica che HR deve essere conservata, viene conservata anche l’area AR. In caso contrario, le due aree saranno cancellate. CNT è usato per tutta l’area TC. Premere SHIFT + DM per specificare l’area EM. Il display mostrerà le aree da cancellare. È possibile conservare alcuni banchi EM e cancellarne altri. Fare riferimento alla spiegazione in “Cancellazione di banchi EM selezionati” a pagina 99. 97 Capitolo 4-6 Operazioni preliminari È possibile inoltre conservare parte del programma a relè dall’inizio fino a un indirizzo specificato. Dopo avere indicato le aree dati da conservare, specificare il primo indirizzo da cancellare. Per esempio, per conservare gli indirizzi da 00000 a 00122, e per cancellare gli indirizzi da 00123 alla fine, inserire 00123. Sequenza di tasti per la cancellazione parziale: [Indirizzo] Memoria di programma cancellata dall’indirizzo indicato. Aree AR e HR Conservati se premuti Area TC Area DM Area EM Per non cancellare l’area TC, e conservare gli indirizzi della memoria di programma da 00000 a 00122, procedere come segue: 00000 00000 00000 00000MEMORY CLR? HR CNT DM EM~ 00000MEMORY CLR? HR DM EM~ 00123MEMORY CLR? HR DM EM~ 00000MEMORY CLR END HR DM EM 98 Capitolo 4-6 Operazioni preliminari Cancellazione di banchi EM selezionati Quando viene eseguita un’operazione di cancellazione parziale, possono essere selezionati banchi specifici invece di tutta l’area EM. Nell’esempio seguente, sono selezionati i banchi EM 0 e 2. La Console di Programmazione visualizzerà i seguenti display: 00000 00000 00000 00000MEMORY CLR? HR CNT DM EM 00000 EM CLR ? 012 00000 EM CLR ? 02 00000 EM CLR 02 Cancellazione memoria L’operazione di cancellazione memoria cancella tutte le aree di memoria ad eccezione dei commenti I/O e delle informazioni sull’assegnazione area UM. La Console di Programmazione visualizzerà i seguenti display : 00000 00000 00000 00000MEMORY CLR? HR CNT DM EM~ 00000MEMORY CLR END Nota Quando lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) è ON, l’area UM (da DM 6144 al programma a relè) non sarà cancellata. Altre aree dati, come HR, AR, CNT e DM da DM 0000 a DM 6143, saranno cancellate. 4-6-4 Registrazione della tabella di I/O La registrazione della tabella di I/O registra i tipi di moduli di I/O controllati dal PLC e le posizioni dei rack dei moduli di I/O. Cancella anche tutti i bit di I/O. Non è assolutamente necessario registrare la tabella di I/O con il C200HX/ HG/HE. Se la tabella di I/O non è stata registrata, il PLC funzionerà secondo i moduli di I/O installati quando è attiva l’alimentazione. Non si verificherà la verifica/impostazione degli errori di I/O. È necessario registrare la tabella di I/O se i moduli di I/O vengono modificati, altrimenti apparirà un messaggio di errore di verifica “I/O VER ERR” o “I/O SET ERROR”, quando vengono avviate le operazioni di programmazione. 99 Capitolo 4-6 Operazioni preliminari La registrazione della tabella di I/O può essere eseguita soltanto in modalità PROGRAM con lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) su OFF (OFF=“WRITE”). Sequenza di tasti Registrazione tabella di I/O iniziale 00000 00000 FUN (??) 00000IOTBL ? ? -?U= 00000IOTBL WRIT ???? Registrazione tabella di I/O 00000IOTBL WRIT 9713 00000IOTBL WRIT OK 4-6-5 Cancellazione messaggi di errore Dopo la registrazione della tabella di I/O, tutti i messaggi di errore in memoria dovrebbero essere cancellati. Si presuppone che siano già state considerate le cause dei messaggi di errore visualizzati. Se si attiva un segnale acustico tentando di cancellare un messaggio di errore, eliminare la causa dell’errore, e cancellare quindi il messaggio (fare riferimento al Capitolo NO TAG Gestione degli errori). Per visualizzare qualsiasi messaggio di errore registrato, premere CLR, FUN e poi MONTR. Apparirà il primo messaggio. Premendo di nuovo MONTR, verrà cancellato il messaggio corrente e apparirà il successivo messaggio di errore. Continuare a premere MONTR finché non sono cancellati tutti i messaggi. Sebbene si possa accedere ai messaggi di errore fatale in qualsiasi modalità, essi possono essere cancellati soltanto in modalità PROGRAM. Sequenza di tasti 100 Capitolo 4-6 Operazioni preliminari 4-6-6 Verifica della tabella di I/O L’operazione di verifica della tabella di I/O viene usata per controllare la tabella di I/O registrata in memoria e per vedere se corrisponde alla sequenza reale di moduli di I/O installati. La prima incoerenza riscontrata sarà visualizzata come sotto illustrato. L’utilizzo successivo di VER visualizza le altre incoerenze. Nota Questa operazione può essere eseguita soltanto quando è stata registrata la tabella di I/O. Sequenza di tasti Esempio 00000 00000 FUN (??) 00000IOTBL ? ? -?U= 00000IOTBL CHK OK (Nessun errore) 00000IOTBL CHK 0–1U=O***I*** (Errore di verifica) Canali di I/O reali Canali della tabella di I/O registrata Numero di slot di I/O Numero di rack Significato dei display Il display seguente indica che C500, C1000H, o C2000H e C200H, C200HS, o C200HX/HG/HE hanno lo stesso numero di moduli su un rack slave di I/O remoti. 00000I/OTBL CHK *-*U=–––– Il display seguente indica una duplicazione dei numeri di moduli di I/O ottici. 00000I/OTBL CHK 2**HU=R*–I R*–W Indica duplicazione 101 Capitolo 4-6 Operazioni preliminari 4-6-7 Lettura della tabella di I/O L’operazione di lettura della tabella di I/O è usata per accedere alla tabella di I/O correntemente registrata nella memoria della CPU. Questa operazione può essere eseguita in qualsiasi modalità del PLC. Sequenza di tasti [da 0 a 3] [da 0 a 9] Numero di rack Numero di moduli Premere il tasto EXT per selezionare i rack slave di I/O remoti o i moduli di I/O ottici. Esempio 00000 00000 FUN (??) 00000IOTBL ? ?-?U= (Rack principale) (Moduli rack slave) 00000IOTBL ? R??-?U= (Moduli di I/O ottici) 00000IOTBL ? 2??LU= 00000IOTBL ? ?-?U= 00000IOTBL ? 0-?U= 00000IOTBL ? 0-5U= 00000IOTBL READ 0-5U=i*** 005 00000IOTBL READ 0-4U=o*** 004 00000IOTBL READ 0-5U=i*** 005 102 (Rack principale) Capitolo 4-6 Operazioni preliminari Significato dei display Designazioni moduli di I/O per i display (Fare riferimento a Moduli di I/O installati in rack slave remoti, pagina 104) Moduli di I/O C500, 1000H/C2000H N. di punti Modulo di uscita Modulo di ingresso *I** II** O*** 32 64 IIII OOOO 16 OO** Moduli di I/O C200H, C200HS N. di punti Modulo di uscita Modulo di ingresso 8 i(*) ** ii** 16 o*** oo** Nota: (∗) rappresenta un errore non fatale o F_ Moduli di I/O 00000IOTBL READ *-*U=**** *** Numero canali di I/O Tipo di I/O: i: (input), o: (output) Numero di moduli (da 0 a 9) Numero di rack (da 0 a 3) Moduli di ingresso ad interrupt 00000IOTBL READ *-*U=**** INT0 o INT1: Installato nella CPU o in rack di espansione I/O. Moduli di I/O speciali 00000IOTBL READ *-*U=$*** Vuoto: W: Esclusivamente modulo 1 Esclusivamente modulo 2 C: Contatore veloce Tipo modulo N: Modulo contr. posiz. di I/O speciali: A: Altro Numero di moduli (da 0 a F) Indica modulo di I/O speciale Moduli master di I/O remoti 00000IOTBL READ *-*U=RMT* N. master di I/O remoti (da 0 a 1) 103 Capitolo 4-6 Operazioni preliminari Rack slave di I/O remoti 00000IOTBL READ R**-*U=**** *** Numero canali di I/O Tipo di I/O: I, O i, o (v. tabelle su pag. precedente) Numero di moduli (da 0 a 9) Numero moduli slave di I/O remoti (da 0 a 4) Numero moduli master di I/O remoti (da 0 a 1) Indica un rack di I/O remoti Moduli di I/O ad alta densità gruppo 2 00000IOTBL READ *-*U=#*** 2: 4: 2 canali (32 punti) 4 canali (64 punti) I: O: Modulo di ingresso Modulo di uscita Numero di moduli (da 0 a F) Indica modulo di I/O ad alta densità Gruppo 2 Moduli di I/O ottici e terminali remoti 00000IOTBL READ 2**HU=R*-* Tipo di I/O: I (input), O (output), o W (input/output) Numero moduli master di I/O (0... 1) Canale (H: 8 bit più a sinistra; L: 8 bit più a destra) Numero canale di I/O (200... 231) 104 Capitolo 4-6 Operazioni preliminari 4-6-8 Cancellazione della tabella di I/O L’operazione di cancellazione della tabella di I/O è usata per eliminare il contenuto della tabella di I/O correntemente registrata nella memoria della CPU. Il PLC sarà impostato per l’operazione in base ai moduli di I/O installati quando viene eseguita l’operazione di cancellazione della tabella di I/O. L’operazione di cancellazione della tabella di I/O ripristinerà tutti i moduli di I/O speciali e tutti i moduli di comunicazione installati al momento. Non eseguire l’operazione di cancellazione della tabella di I/O quando sono in funzione un modulo Host Link, un modulo di comunicazione PLC, un modulo master di I/O remoti, un modulo contatore veloce, un modulo di controllo posizione o altri moduli di I/O speciali. Nota Questa operazione può essere eseguita soltanto in modalità PROGRAM con lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) su OFF (OFF=“WRITE”). Sequenza di tasti Esempio 00000 00000 FUN (??) 00000IOTBL ? -?U= 00000IOTBL WRIT ???? 00000IOTBL CANC ???? 00000IOTBL CANC 9713 00000IOTBL CANC OK 105 Capitolo 4-6 Operazioni preliminari 4-6-9 Trasferimento della tabella SYSMAC NET L’operazione di trasferimento della tabella SYSMAC NET trasferisce una copia della tabella data link SYSMAC NET alla memoria di programma dell’area UM. Questo permette la scrittura del programma utente e della tabella SYSMAC NET nella EPROM. Prima di copiare la tabella nella memoria di programma, la tabella data link deve essere creata con il SYSMAC Support Software e trasferita al PLC. La tabella data link è memorizzata nella RAM quando viene trasferita al PLC dal SYSMAC Support Software, e quindi andrà perduta se le batterie di riserva della CPU si esauriscono. Per evitare ciò, si consiglia di convertire il programma (con la tabella data link) nella EPROM o di memorizzare il programma in una cartuccia di memoria EEPROM. Nota Quando viene attivata l’alimentazione di un PLC con la copia di una tabella SYSMAC NET presente nella memoria di programma, la tabella SYSMAC NET della CPU verrà sovrascritta. Le modifiche apportate alla tabella SYSMAC NET non hanno effetto sulla copia di tale tabella nella memoria di programma; il trasferimento della tabella SYSMAC NET deve essere ripetuto per modificare la copia nella memoria di programma. Il trasferimento della tabella SYSMAC NET non avverrà se: • Il modulo di memoria non è una RAM o una EEPROM o lo switch di protezione scrittura non è su WRITE. • Non è presente un’istruzione END(001). • Il contenuto della memoria di programma supera 14,7 kW. La capacità del programma viene ridotta quando la memoria è assegnata all’area DM di espansione o all’area commenti I/O. Sono necessari circa 0,5 kW di memoria di programma, oltre l’istruzione END(001), per memorizzare la tabella data link. Il trasferimento della tabella SYSMAC NET può avvenire solo in modalità PROGRAM. Sequenza di tasti Esempio 00000 00000 FUN(??) 00000LINK TBL~UM (SYSMAC–NET)???? 00000LINK TBL~UM (SYSMAC–NET)9713 00000LINK TBL~UM OK Viene qui indicato che la tabella di I/O non può essere trasferita. 00000LINK TBL~UM DISABLED 106 Capitolo 4-7 Inserimento, modifica e controllo dei programmi 4-7 Inserimento, modifica e controllo dei programmi Quando un programma viene scritto in codice mnemonico, può essere inserito direttamente nel PLC da una Console di Programmazione. Il codice mnemonico è codificato negli indirizzi della memoria di programma dalla Console di Programmazione. Il controllo del programma comprende il controllo della sintassi del programma. Dopo la correzione degli errori sintattici, può iniziare l’esecuzione di prova e, alla fine, può essere apportata la correzione nelle condizioni operative reali. Le operazioni necessarie per inserire un programma sono illustrate di seguito. In questo capitolo, sono illustrate anche le operazioni di modifica dei programmi già esistenti in memoria, insieme alla procedura per ottenere il tempo di scansione corrente. Prima di iniziare a inserire un programma, controllare la preesistenza di un programma già caricato. Se è già presente un programma non necessario, questo deve essere eliminato con la sequenza di tasti per la cancellazione memoria di programma; inserire quindi il nuovo programma. Se il programma preesistente è necessario, deve essere controllato con la sequenza di tasti per il controllo programma, ed eventualmente corretto. Altri metodi di eliminazione degli errori sono contenuti in Capitolo NO TAG Monitoraggio ed esecuzione del programma. 4-7-1 Impostazione e lettura dall’indirizzo di memoria di programma Quando viene inserito un programma per la prima volta, viene di solito scritto nella memoria di programma iniziando dall’indirizzo 00000. Poiché tale indirizzo viene visualizzato automaticamente, non è necessario specificarlo. Quando viene inserito un programma iniziando non da 00000 o se si vuole leggere o modificare un programma già esistente in memoria, deve essere indicato l’indirizzo desiderato. Per indicare un indirizzo, premere CLR e inserire l’indirizzo. Gli zeri non significativi non devono essere inseriti, quindi, specificando un indirizzo come 00053, basta inserire soltanto 53. Il contenuto dell’indirizzo desiderato non sarà visualizzato fino a quando non viene premuto il tasto freccia in basso. Utilizzando il tasto freccia in basso per visualizzare il contenuto dell’indirizzo, è possibile utilizzare i tasti direzionali per spostarsi nella memoria di programma. Premendo uno di questi tasti, sarà visualizzato il canale successivo o precedente nella memoria di programma. Se la memoria di programma è letta in modalità RUN o MONITOR, verrà visualizzato anche lo stato ON/OFF di ogni bit visualizzato. Sequenza di tasti [Indirizzo] 107 Capitolo 4-7 Inserimento, modifica e controllo dei programmi Esempio Se il seguente codice mnemonico è già stato inserito nella memoria di programma, i tasti indicati genererebbero i seguenti display. 00000 Indirizzo 00200 00200 00201 00202 LD AND TIM 00203 LD Istruzione Dati # 00000 00001 000 0123 00100 00200READ OFF LD 00000 00201READ ON AND 00001 00202READ OFF TIM 000 00202 TIM #0123 00203READ LD 00100 ON 4-7-2 Inserimento e modifica di programmi I programmi possono essere inseriti e modificati solo in modalità PROGRAM con lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) su OFF (OFF=“WRITE”). La stessa procedura è usata per inserire un programma per la prima volta oppure per modificare un programma già esistente. In entrambi i casi, il contenuto della memoria di programma corrente viene sovrascritto, cioè, in assenza di un programma precedente, l’istruzione NOP(000), scritta in ogni indirizzo, verrà sovrascritta. Per inserire un programma, inserire il codice mnemonico prodotto dal diagramma a relè passo–passo, controllando, prima di iniziare, che sia impostato l’indirizzo corretto. Dopo la visualizzazione dell’indirizzo corretto, inserire il primo canale di istruzione e premere WRITE. Inserire quindi gli operandi richiesti premendo WRITE dopo ognuno, e cioè alla fine di ogni linea del codice mnemonico. A questo punto, l’istruzione o l’operando desiderato è inserito e appare il display successivo. Se l’istruzione richiede due o più canali, il display successivo indicherà il successivo operando necessario, fornendo un valore default. Se l’istruzione richiede soltanto un canale, sarà visualizzato l’indirizzo successivo. Continuare a inserire ogni linea del codice mnemonico fino a completare l’intero programma. Quando sono inseriti valori numerici per gli operandi, non è necessario inserire zeri non significativi. Questi sono necessari soltanto quando sono inseriti i codici funzione (vedi sotto). Quando vengono indicati gli operandi, accertarsi di avere indicato l’area dati per tutti, tranne che per gli indirizzi IR e SR, premendo il tasto dell’area dati corrispondente e di aver indicato ogni costante premendo CONT/#. CONT/# non è necessario per i SV del temporizzatore o contatore (vedi sotto). L’area AR viene indicata premendo SHIFT e poi HR. I numeri TC come contatti (cioè flag di completamento) vengono indicati premendo TIM o CNT prima dell’indirizzo, a seconda se il numero TC è stato usato per definire un temporizzatore o un contatore. Per indicare un indirizzo DM indiretto, premere CH/∗ prima dell’indirizzo (l’utilizzo di DM non è necessario per un indirizzo DM indiretto). 108 Capitolo 4-7 Inserimento, modifica e controllo dei programmi Inserimento dell’SV per contatori e temporizzatori L’SV (set value – valore di predisposizione) per un temporizzatore o contatore viene inserito di solito come costante, anche se è possibile inserire l’indirizzo di un canale contenente l’SV. Inserendo SV come costante, CONT/# non è necessario; inserire solo il valore numerico e premere WRITE. Per indicare un canale, premere CLR e inserire quindi l’indirizzo del canale come sopra descritto. Indicazione delle istruzioni La maggior parte delle istruzioni base sono inserite con i tasti della Console di Programmazione. Tutte le altre istruzioni sono inserite utilizzando i codici funzione. Tali codici funzione sono scritti sempre dopo il codice mnemonico dell’istruzione. Se non è indicato nessun codice funzione, dovrebbe esserci per quella istruzione un tasto della Console di Programmazione. Per indicare la forma differenziale di un’istruzione, premere NOT dopo il codice funzione. Per inserire un’istruzione con un codice funzione, impostare l’indirizzo, premere FUN, inserire il codice funzione incluso gli zeri non significativi, premere NOT se si desidera la forma differenziale dell’istruzione, inserire i contatti o gli identificatori necessari per l’istruzione, e quindi premere WRITE. ! Attenzione Inserire i codici funzione con cautela e premere SHIFT quando è necessario. Sequenza di tasti [Indirizzo visualizzato] [Canale istruzione] [Operando] 109 Capitolo 4-7 Inserimento, modifica e controllo dei programmi Esempio Il programma seguente può essere inserito utilizzando i tasti qui riportati. Appariranno i seguenti display. 00000 Indirizzo Istruzione 00200 00201 LD TIM 00202 TIMH(015) 00200 Dati # # 00200 LD 00002 000 0123 000 0500 00002 00201READ NOP (000) 00201 TIM 000 00201 TIM DATA #0000 00201 TIM #0123 00202READ NOP (000) 00202 FUN (??) 00202 TIMH (015) 000 00202 TIMH DATA #0000 00202 TIMH #0500 00203READ NOP (000) Messaggi di errore Messaggio ****REPL ROM ****PROG OVER ****ADDR OVER ****SETDATA ERR ****I/O NO. ERR 110 I seguenti messaggi di errore possono essere visualizzati quando si inserisce un programma. Correggere l’errore secondo le indicazioni e continuare con l’inserimento. Nella visualizzazione reale, gli asterischi nella tabella saranno sostituiti da dati numerici che rappresentano di solito un indirizzo. Causa e correzione Si è tentato di scrivere su RAM o EEPROM protetta in scrittura. Assicurarsi che lo switch di protezione scrittura sia OFF. L’istruzione nell’ultimo indirizzo in memoria non è NOP(000). Cancellare tutte le istruzioni inutili alla fine del programma. E’ stato impostato un indirizzo maggiore dell’indirizzo di memoria più alto dell’area UM. Inserire un indirizzo più piccolo. Sono stati inseriti dati nel formato sbagliato oppure oltre i limiti definiti; per es. è stato inserito un valore esadecimale per BCD. Reinserire i dati. Questo errore genererà un errore FALS 00. E’ stato indicato un indirizzo dell’area dati che ha superato i limiti, l’indirizzo quindi è troppo grande. Confermare i requisiti per l’istruzione e reinserire l’indirizzo. Inserimento, modifica e controllo dei programmi Capitolo 4-7 4-7-3 Controllo del programma Dopo l’inserimento di un programma, dovrebbe essere controllata la sintassi per non violare nessuna norma di programmazione. Tale controllo dovrebbe essere eseguito anche se il programma è stato modificato in un punto che potrebbe generare un errore sintattico. Per controllare il programma, inserire la sequenza di tasti riportata sotto. I numeri indicano il livello di controllo desiderato (vedi sotto). Dopo l’inserimento del livello, inizierà il controllo del programma. Se viene individuato un errore, il controllo si interrompe e un display indica il tipo di errore. Premere SRCH per continuare il controllo. Se non vengono riscontrati errori, il programma viene controllato fino alla prima END(001), mentre un display segnala il controllo di ognuna delle 64 istruzioni (per es. il display #1 dell’esempio dopo la seguente tabella). CLR può essere premuto per annullare il controllo dopo l’avvio; apparirà un display simile al #2 nell’esempio. Quando il controllo ha raggiunto la prima END, apparirà un display simile al #3. Il controllo della sintassi di un programma può avvenire soltanto in modalità PROGRAM. Sequenza di tasti Per controllare fino a END(001) Per terminare (Livelli di controllo 0, 1, 2,) Livelli di controllo e messaggi di errore Sono disponibili tre livelli di controllo del programma. Il livello desiderato corrisponde al tipo di errori da individuare. La seguente tabella presenta i tipi di errore, i display e la descrizione di tutti gli errori sintattici. Il livello 0 controlla gli errori di tipo A, B e C; il livello 1 controlla gli errori di tipo A e B; il livello 2 controlla gli errori solo di tipo A. Viene inoltre visualizzato l’indirizzo in cui è stato generato l’errore. 111 Inserimento, modifica e controllo dei programmi Capitolo 4-7 Molti degli errori riportati si riferiscono a istruzioni non ancora descritte. Fare riferimento a 4-8 Controllo dello stato dei bit o al Capitolo 5 Istruzioni per ulteriori dettagli. Tipo Tipo A Messaggio ????? NO END INSTR CIRCUIT ERR LOCN ERR DUPL SBN UNDEFD JME UNDEFD OPERAND ERR STEP ERR Tipo B E’ stata programmata SBS(091) per un numero di subroutine che non esiste. Correggere il numero di subroutine o programmare la subroutine necessaria. L’istruzione JME(004) manca per JMP(005). Correggere il numero di jump o inserire la JME(004) corretta. Una costante inserita per l’istruzione non rientra nei valori definiti. Modificare la costante in modo da rientrare nei valori previsti. STEP(008) con numero di sezione e STEP(008) senza numero di sezione sono state utilizzate correttamente. Controllare i requisiti di programmazione STEP(008) e correggere il programma. IL(002) e ILC(003) non sono utilizzate in coppia. Correggere il programma in modo che ogni IL(002) corrisponda a un’unica ILC(003). Sebbene questo messaggio di errore appare se è utilizzata più di una IL(002) con la stessa ILC(003), il programma sarà eseguito come è scritto. Prima di procedere, accertarsi che il programma sia scritto nel modo desiderato. JMP–JME ERR JMP(004) 00 e JME(005) 00 non sono utilizzate in coppia. Sebbene questo messaggio di errore appare se è utilizzata più di una JMP(004) 00 con la stessa JME(005) 00, il programma sarà eseguito come è scritto. Prima di procedere, accertarsi che il programma sia scritto nel modo desiderato. Se l’indirizzo visualizzato è quello di SBN(092), sono state definite due diverse subroutine con lo stesso numero. Modificare uno dei numeri o cancellare una delle subroutine. Se l’indirizzo visualizzato è quello di RET(093), RET(093) non è stata utilizzata correttamente. Controllare i requisiti per RET(093) e correggere il programma. JMP UNDEFD JME(005) è stato utilizzata senza JMP(004) con lo stesso numero di jump. Aggiungere una JMP(004) con lo stesso numero o cancellare la JME(005) non utilizzata. SBS UNDEFD Esiste una subroutine non chiamata da SBS(091). Programmare la chiamata della subroutine nel punto giusto o cancellare la subroutine non necessaria. Lo stesso bit è controllato (cioè attivato e/o disattivato) da più di un’istruzione (per es. OUT, OUT NOT, DIFU(013), DIFD(014), KEEP(011), SFT(010)). Anche se ciò è possibile per alcune istruzioni, controllare i requisiti dell’istruzione per confermare il programma o riscrivere il programma in modo che ogni bit sia controllato da una sola istruzione. COIL DUPL 112 Istruzione in un punto errato nel programma. Controllare i requisiti dell’istruzione e correggere il programma. Lo stesso numero di jump o subroutine è stato utilizzato due volte. Correggere il programma in modo che lo stesso numero sia usato soltanto una volta per ognuno. (Il numero di jump 00 può essere utilizzato tutte le volte che è necessario.) IL–ILC ERR SBN–RET ERR Tipo C Significato e intervento appropriato Il programma si è perso. Reinserire il programma. Nessuna istruzione END(001) nel programma. Scrivere END(001) nell’indirizzo finale nel programma. Il numero di blocchi logici e delle istruzioni di blocco logico non coincide, è stato usato cioè LD o LD NOT per avviare un blocco logico la cui condizione operativa non è stata usata da un’altra istruzione, oppure è stata utilizzata un’istruzione di blocco logico priva del numero di blocchi logici necessario. Controllare il programma. Capitolo 4-7 Inserimento, modifica e controllo dei programmi Esempio L’esempio seguente mostra alcuni display risultanti dal controllo di un programma. 00000 00000PROG CHK CHKLVL (0–2)? 00064PROG CHK Display #1 Interrompe il controllo del programma 00699CHK ABORTD Display #2 Il controllo continua fino a END(001) 02000PROG CHK END (001)(02.7kW) Display #3 In caso di errore 00178CIRCUIT ERR OUT 00200 00200IL-ILC ERR ILC (003) 02000NO END INST END 4-7-4 Visualizzazione del tempo di scansione Dopo l’eliminazione degli errori sintattici dal programma, dovrebbe essere controllato il tempo di scansione. Ciò è possibile soltanto in modalità RUN o MONITOR durante l’esecuzione del programma. Fare riferimento a Capitolo NO TAG Tempo di esecuzione del programma per ulteriori dettagli sul tempo di scansione. Per visualizzare il tempo di scansione medio corrente, premere CLR e poi MONTR. Il tempo visualizzato con questa operazione è un tipico tempo di scansione. Le differenze nei valori visualizzati dipendono dalle condizioni operative esistenti quando MONTR viene premuto. Esempio 00000 00000SCAN TIME 054.1MS 00000SCAN TIME 053.9MS 113 Capitolo 4-7 Inserimento, modifica e controllo dei programmi 4-7-5 Ricerche nel programma E’ possibile ricercare nel programma le occorrenze di qualsiasi istruzione o indirizzo dell’area dati utilizzato in un’istruzione. Le ricerche possono essere eseguite da qualsiasi indirizzo visualizzato o da un display cancellato. Per indicare un indirizzo di bit, premere SHIFT e poi CONT/#, inserire quindi l’indirizzo, incluso ogni indicazione di area dati richiesta e premere SRCH. Per indicare un’istruzione, inserire l’istruzione solo quando viene inserito il programma e premere SRCH. Quando viene trovata l’occorrenza di un’istruzione o di indirizzo di bit, si possono cercare tutte le altre occorrenze della stessa istruzione o bit premendo di nuovo SRCH. Sarà visualizzato SRCH’G mentre la ricerca è in corso. Quando viene visualizzato il primo canale di un’istruzione multicanale per un’operazione di ricerca, gli altri canali dell’istruzione possono essere visualizzati premendo il tasto freccia in basso prima di continuare la ricerca. Se la memoria di programma è letta in modalità RUN o MONITOR, verrà visualizzato anche lo stato ON/OFF di ogni bit visualizzato. Sequenza di tasti [Istruzione] [Indirizzo] 114 Capitolo 4-7 Inserimento, modifica e controllo dei programmi Esempio: Ricerca di un’istruzione 00000 00000 LD 00000 00200SRCH LD 00000 00202SRCH LD 00000 02000SRCH END (001)(02.7kW) 00000 00100 00100 TIM 001 00203SRCH TIM 001 00203 TIM DATA #0123 Esempio: Ricerca di un bit 00000 00000CNT CONT 00005 00200CONT SRCH LD 00005 00203CONT SRCH AND 00005 02000 END(001) (02.7K) 4-7-6 Inserimento e cancellazione delle istruzioni In modalità PROGRAM, ogni istruzione correntemente visualizzata può essere cancellata oppure è possibile inserire un’altra istruzione prima di essa. Tali operazioni sono possibili soltanto in modalità PROGRAM con lo switch di protezione scrittura (pin 1 del commutatore DIP della CPU) su OFF (OFF=“WRITE”). Per inserire un’istruzione, visualizzare l’istruzione che deve seguire la nuova istruzione, inserire il canale di istruzione allo stesso modo in cui di viene inserito un programma all’inizio, e premere quindi INS e il tasto freccia in basso. Se sono necessari altri canali per l’istruzione, questi devono essere inseriti allo stesso modo in cui è stato inserito il programma all’inizio. Per cancellare un’istruzione, visualizzare il canale dell’istruzione da cancellare e poi premere DEL e il tasto freccia in alto. Tutti i canali dell’istruzione indicata saranno cancellati. 115 Capitolo 4-7 Inserimento, modifica e controllo dei programmi ! Attenzione Non cancellare involontariamente le istruzioni; non c’è altro modo di recuperarle se non reinserendole completamente. Sequenze di tasti Individuare la posizione nel programma [Istruzione] e inserire quindi: Istruzione correnemente visualizzata Quando un’istruzione viene inserita o cancellata, tutti gli indirizzi successivi nella memoria di programma vengono regolati automaticamente in modo che non ci siano indirizzi vuoti o istruzioni senza indirizzo. Esempio Il seguente codice mnemonico mostra le modifiche ottenute in un programma con le sequenze di tasti e i display sotto riportati. Programma originale 00101 00103 00104 00201 00201 00102 LD AND LD AND NOT OR LD AND AND NOT OUT END(001) 00100 Dati 00100 00101 00201 00102 –– 00103 00104 00201 –– END(001) 00101 00103 00105 00104 00201 00201 00105 116 Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 Prima della cancellazione: Prima dell’inserimento: 00100 Indirizzo 00102 Cancellazione END(001) Capitolo 4-7 Inserimento, modifica e controllo dei programmi I seguenti tasti e display mostrano la procedura per ottenere le modifiche di programma indicate. Inserimento di un’istruzione 00000 00000 OUT 00000 00000 OUT 00201 00207SRCH OUT 00201 00206READ AND NOT 00104 00206 AND 00000 00206 AND 00105 Trovare l’indirizzo che precede il punto di inserimento Programma dopo l’inserimento Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 LD AND LD AND NOT OR LD AND AND AND NOT OUT END(001) Dati 00100 00101 00201 00102 –– 00103 00105 00104 00201 –– 00206INSERT? AND 00105 00207INSERT END AND NOT 00104 Inserire l’istruzione 00206READ AND 00105 Cancellazione di un’istruzione 00000 Trovare l’istruzione che richiede la cancellazione. 00000 OUT 00000 00000 OUT 00201 00208SRCH OUT 00201 00207READ AND NOT 00104 00207 DELETE? AND NOT 00104 00207DELETE END OUT 00201 Programma dopo la cancellazione Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD AND NOT LD AND NOT OR LD AND AND OUT END(001) Dati 00100 00101 00201 00102 –– 00103 00105 00201 –– Confermare che questa è l’istruzione da cancellare. 00206READ AND 00105 117 Capitolo 4-7 Inserimento, modifica e controllo dei programmi 4-7-7 Diramazione delle righe circuitali Quando una riga circuitale si dirama in due o più linee, per preservare la condizione operativa esistente in un punto di diramazione è necessario talvolta usare gli interblocchi o i relè TR. Ciò è dovuto al fatto che le righe circuitali sono eseguite fino all’istruzione posta a destra prima di ritornare al punto di diramazione ed eseguire le istruzioni dell’altro ramo. Se esiste un contatto su una delle righe circuitali dopo il punto di diramazione, la condizione operativa potrebbe cambiare dopo l’esecuzione delle istruzioni poste dopo la diramazione circuitale, rendendo impossibile un’esecuzione corretta. I diagrammi seguenti mostrano tale situazione. In entrambi, l’istruzione 1 viene eseguita prima che il controllo torni al punto di diramazione e venga eseguita l’istruzione 2. 00000 Indirizzo Istruzione Istruzione 2 00000 00001 00002 00003 LD Istruzione 1 AND Istruzione 2 Istruzione 1 Indirizzo Istruzione 00000 00001 00002 00003 00004 LD AND Istruzione 1 AND Istruzione 2 Punto di diramazione Istruzione 1 00002 Diagramma A: codifica corretta Dati 00000 00002 Punto di diramazione 00001 00000 00002 Istruzione 2 Diagramma B: codifica errata Dati 00000 00001 00002 Se, come indicato nel diagramma A, la condizione operativa esistente nel punto di diramazione non viene modificata prima di ritornare alla diramazione (le istruzioni a destra non modificano la condizione operativa), la diramazione sarà eseguita correttamente e non sono necessari accorgimenti speciali di programmazione. Se, come indicato nel diagramma B, esiste un contatto tra il punto di diramazione e l’istruzione sulla riga superiore, la condizione operativa nel punto di diramazione e quella dopo l’esecuzione dell’istruzione saranno molto probabilmente diverse, rendendo impossibile un’esecuzione corretta della diramazione. Esistono due modi per programmare le diramazioni preservando la condizione operativa: utilizzando i relè TR oppure gli interblocchi (IL(002)/IL(003)). Bit TR L’area TR contiene otto bit, TR 0... TR 7, che possono essere utilizzati per salvare temporaneamente le condizioni operative. Se un relè TR si trova in un punto di diramazione, la condizione operativa corrente viene memorizzata nel relè TR indicato. Ritornando al punto di diramazione, il relè TR ripristina lo stato operativo salvato quando il punto di diramazione è stato raggiunto per la prima volta nell’esecuzione del programma. Il diagramma B precedente può essere scritto come sotto indicato per ottenere un’esecuzione corretta. Nel codice mnemonico, la condizione operativa viene memorizzata nel punto di diramazione utilizzando il relè TR come operando dell’istruzione OUTPUT. Tale condizione operativa viene poi ripristinata dopo l’esecuzione dell’istruzione a destra, utilizzando lo stesso relè TR come operando di un’istruzione LOAD. TR 0 00000 00001 Istruzione 1 00002 Istruzione 2 Diagramma B: utilizzo corretto di un relè TR 118 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD OUT AND Istruzione 1 LD AND Istruzione 2 Dati TR TR 00000 0 00001 0 00002 Capitolo 4-7 Inserimento, modifica e controllo dei programmi In termini di istruzioni, il diagramma diventa: lo stato di IR 00000 viene caricato (un’istruzione LOAD) per stabilire la condizione operativa iniziale. Tale condizione viene quindi memorizzata in TR 0 utilizzando un’istruzione OUTPUT in corrispondenza del punto di diramazione. La condizione operativa è poi posta in AND con lo stato di IR 00001 ed infine viene eseguita l’istruzione 1. La condizione operativa memorizzata nel punto di diramazione viene quindi ricaricata (un’istruzione LOAD con TR 0 come operando), posta in AND con lo stato di IR 00002 e infine viene eseguita l’istruzione 2. L’esempio seguente mostra un’applicazione di due relè TR. TR 0 00000 TR 1 00001 00002 Istruzione 1 00003 Istruzione 2 00004 Istruzione 3 00005 Istruzione 4 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 LD OUT AND OUT AND Istruzione 1 LD AND Istruzione 2 LD AND Istruzione 3 LD AND NOT Istruzione 4 Dati TR TR 00000 0 00001 1 00002 TR 1 00003 TR 0 00004 TR 0 00005 In questo esempio, TR 0 e TR 1 sono usati per memorizzare le condizioni operative nei punti di diramazione. Dopo che è stata eseguita l’istruzione 1, la condizione presente in TR 1 è utilizzata per eseguire un AND con lo stato di IR 00003. La condizione memorizzata in TR 0 viene utilizzata due volte, la prima per eseguire un AND con lo stato di IR 00004 e la seconda per eseguire un AND con lo stato negato di IR 00005. I relè TR possono essere utilizzati tutte le volte che è necessario, purché lo stesso relè TR non venga utilizzato più di una volta nello stesso blocco. Un nuovo blocco inizia sempre con un contatto collegato alla barra verticale sinistra. Se, in un singolo blocco, è necessario avere più di otto punti di diramazione che richiedono il salvataggio della condizione operativa, è necessario utilizzare gli interblocchi (descritti successivamente). Quando si disegna un diagramma a relè, non utilizzare i relè TR a meno che non sia necessario. Spesso, il numero di istruzioni necessarie per un programma può essere ridotto e il programma può diventare molto più leggibile ridisegnando opportunamente il diagramma. Nei due esempi di diagrammi, la versione in basso richiede un numero inferiore di istruzioni e non richiede i relè TR. Nel primo esempio, ciò si ottiene riorganizzando le parti del blocco: nel secondo esempio, separando la seconda istruzione OUTPUT e usando un’altra istruzione LOAD per creare la condizione operativa adatta. Nota Sebbene la semplificazione dei programmi è sempre utile, la sequenza delle istruzioni talvolta è importante. Per esempio, un’istruzione MOVE potrebbe essere necessaria prima dell’esecuzione di un’istruzione BINARY ADD per posizionare i dati corretti nel canale dell’operando richiesto. Prima di riorganiz- 119 Capitolo 4-7 Inserimento, modifica e controllo dei programmi zare un programma e semplificarlo, occorre tener conto dell’ordine di esecuzione delle istruzioni. TR 0 00000 00001 Istruzione 1 Istruzione 2 00000 Istruzione 2 00001 Istruzione 1 00000 00003 Istruzione 1 TR 0 00001 00002 00004 Istruzione 2 00001 00002 00003 Istruzione 1 00000 00001 00004 Istruzione 2 Nota I relè TR sono utilizzati soltanto con la programmazione in codice mnemonico. Non sono necessari quando i diagrammi a relè vengono inseriti direttamente. Le limitazioni riportate riguardo il numero di diramazioni che richiedono i relè TR e le considerazioni sui metodi per ridurre del numero delle istruzioni di programmazione rimangono comunque valide. Interblocchi 120 Il problema della memorizzazione delle condizioni operative nei punti di diramazione può essere risolto anche utilizzando le istruzioni INTERLOCK (IL(002)) e INTERLOCK CLEAR (ILC(003)), che eliminano completamente il punto di diramazione e permettono che una condizione operativa specifica controlli un gruppo di istruzioni. Le istruzioni INTERLOCK e INTERLOCK CLEAR sono utilizzate sempre insieme. Quando un’istruzione INTERLOCK si trova prima di una sezione di un programma a relè, la condizione operativa per l’istruzione INTERLOCK controllerà l’esecuzione di tutta l’istruzione fino alla successiva istruzione INTERLOCK CLEAR. Se la condizione operativa per l’istruzione INTERLOCK è OFF, tutte le istruzioni a destra fino alla successiva istruzione INTERLOCK CLEAR ricevono una condizione OFF, per ripristinare l’intera sezione del diagramma a relè. L’effetto risultante sulle istruzioni particolari è descritto in 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003). Il diagramma B può essere modificato anche con un interblocco. Il questo caso, i contatti che conducono al punto di diramazione si trovano su una riga circuitale per l’istruzione INTERLOCK, tutte le righe provenienti dal punto di diramazione sono scritte come righe circuitali separate e un’altra riga circuitale deve essere prevista per l’istruzione INTERLOCK CLEAR. Non sono ammessi contatti sulla Capitolo 4-7 Inserimento, modifica e controllo dei programmi riga circuitale per INTERLOCK CLEAR. Si osservi che INTERLOCK e INTERLOCK CLEAR non richiedono operandi. 00000 IL(002) Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD IL(002) LD Istruzione 1 LD Istruzione 2 ILC(003) 00001 Istruzione 1 00002 Istruzione 2 ILC(003) Dati 00000 --00001 00002 --- Se IR 00000 è ON nella versione corretta del diagramma B (v. sopra), lo stato di IR 00001 e quello di IR 00002 determinerebbero rispettivamente le condizioni operative per le istruzioni 1 e 2. Poiché IR 00000 è ON, si otterrebbe lo stesso risultato utilizzando AND per accoppiare lo stato di questi bit. Se IR 00000 è OFF, l’istruzione INTERLOCK produrrebbe una condizione operativa OFF per le istruzioni 1 e 2 e quindi l’esecuzione continuerebbe con la riga circuitale successiva all’istruzione INTERLOCK CLEAR. Come illustrato nel diagramma seguente, può essere utilizzata più di un’istruzione INTERLOCK all’interno di un blocco; ognuna è operativa fino alla successiva istruzione INTERLOCK CLEAR. 00000 IL(002) 00001 Istruzione 1 00002 IL(002) 00003 00004 Istruzione 2 00005 Istruzione 3 00006 Istruzione 4 ILC(003) Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 LD IL(002) LD Istruzione 1 LD IL(002) LD AND NOT Istruzione 2 LD Istruzione 3 LD Istruzione 4 ILC(003) Dati 00000 --00001 00002 --00003 00004 00005 00006 --- Se nel diagramma precedente IR 00000 è OFF (cioè se la condizione operativa per la prima istruzione INTERLOCK è OFF), le istruzioni da 1 a 4 vengono eseguite con le condizioni operative OFF e l’esecuzione riprende dopo l’istruzione INTERLOCK CLEAR. Se IR 00000 è ON, lo stato di IR 00001 diviene condizione operativa per l’istruzione 1 e quindi lo stato di IR 00002 diviene condizione operativa per la seconda istruzione INTERLOCK. Se IR 00002 è OFF, le istruzioni da 2 a 4 vengono eseguite con condizioni operative OFF. Se IR 00002 è ON, IR 00003, IR 00005 e IR 00006 definiscono la prima condizione operativa sulle nuove righe circuitali. 121 Capitolo 4-7 Inserimento, modifica e controllo dei programmi 4-7-8 Salti Una parte specifica di un programma può essere saltata in base a una condizione operativa. Sebbene ciò è simile a quanto accade quando la condizione operativa per un’istruzione INTERLOCK è OFF, con le istruzioni di salto gli operandi di tutte le istruzioni mantengono il loro stato. Le istruzioni di salto possono essere usate quindi per controllare i dispositivi che richiedono un’uscita ritentiva, come i dispositivi pneumatici e idraulici, mentre gli interblocchi possono essere usati per controllare i dispositivi che non richiedono la ritenzione delle uscite, come le strumentazioni elettroniche. I salti si ottengono con le istruzioni JUMP (JMP(004)) e JUMP END (JME(005)). Se la condizione operativa per un’istruzione JUMP è ON, il programma viene eseguito normalmente come se l’istruzione di salto non esistesse. Se la condizione operativa per l’istruzione JUMP è OFF, l’esecuzione del programma passa immediatamente a un’istruzione JUMP END senza modificare in nessun punto lo stato tra l’istruzione JUMP e JUMP END. A tutte le istruzioni JUMP e JUMP END sono assegnati dei numeri compresi tra 0 e 99. Esistono due tipi di istruzioni di salto. Il numero di jump utilizzato ne identifica il tipo. Una istruzione di salto può essere definita utilizzando i numeri di jump da 01 a 99 solo una volta, cioè ognuno di questi numeri può essere utilizzato una volta in un’istruzione JUMP e una volta in un’istruzione JUMP END. Quando viene eseguita un’istruzione JUMP, il controllo passa immediatamente all’istruzione JUMP END con lo stesso numero, come se non esistessero altre istruzioni tra di esse. Il diagramma B usato negli esempi con relè TR e interblocchi potrebbe essere modificato come sotto indicato utilizzando una istruzione di salto. Sebbene 01 è stato usato come numero di salto, potrebbe essere utilizzato qualsiasi numero compreso tra 01 e 99 fino a quando non viene utilizzato in un’altra parte del programma. JUMP e JUMP END non richiedono altri operandi e JUMP END non presenta mai contatti sulla sua riga circuitale. 00000 JMP(004) 01 00001 Istruzione 1 00002 Istruzione 2 JME(005) 01 Diagramma B: modificato con una istruzione di salto Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD JMP(004) LD Istruzione 1 LD Istruzione 2 JME(005) Dati 00000 01 00001 00002 015 Rispetto alle altre versioni, questa versione del diagramma B avrebbe un tempo di esecuzione minore quando 00000 è OFF. L’altro tipo di istruzione di salto viene creata con il numero di jump 00. In questo caso possono essere create tutte le istruzioni di salto che si desiderano e si possono utilizzare istruzioni JUMP 00 consecutive senza alcun JUMP END tra di esse. È possibile anche che tutte le istruzioni JUMP 00 spostino l’esecuzione del programma alla stessa JUMP END 00, e quindi una sola istruzione JUMP END 00 risulterebbe necessaria per tutte le istruzioni JUMP 000 nel programma. Quando 00 è usato come numero di jump per un’istruzione JUMP, l’esecuzione del programma passa all’istruzione che si trova dopo la successiva istruzione JUMP END con numero di jump 00. Sebbene, come in tutte le istruzioni di salto, lo stato non viene modificato e non viene eseguita nessun’istruzione tra JUMP 00 e JUMP END 00, la ricerca dell’istruzione JUMP END 00 comporta un leggero prolungamento del tempo di esecuzione. L’esecuzione dei programmi che contengono più istruzioni JUMP 00 per una sola JUMP END 00 è simile a quella delle sezioni interbloccate. Il diagramma seguente è uguale a quello usato nel precedente esempio con interblocco, ma ridisegnato con le istruzioni di salto. Il funzionamento è comunque diverso da quello del diagramma sopra descritto (per es., nel diagramma precedente, gli 122 Capitolo 4-8 Controllo dello stato dei bit interblocchi ripristinano alcune parti della sezione interbloccata, mentre le istruzioni di salto non influenzano lo stato dei bit tra le istruzioni JUMP e JUMP END). 00000 JMP(004) 00 00001 Istruzione 1 00002 JMP(004) 00 00003 00004 Istruzione 2 00005 Istruzione 3 00006 Istruzione 4 JME(005) 00 4-8 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 LD JMP(004) LD Istruzione 1 LD JMP(004) LD AND NOT Istruzione 2 LD Istruzione 3 LD Istruzione 4 JME(005) Dati 00000 00 00001 00002 00 00003 00004 00005 00006 00 Controllo dello stato dei bit Esistono cinque istruzioni che in genere possono essere utilizzate per controllare lo stato individuale dei bit. Queste sono le istruzioni OUTPUT, OUTPUT NOT, DIFFERENTIATE UP, DIFFERENTIATE DOWN e KEEP. Tutte queste istruzioni appaiono come ultima istruzione in una riga circuitale e usano un indirizzo di bit come operando. Ulteriori dettagli sono contenuti in 5-9 Istruzioni di controllo dei bit, ma, a causa della loro importanza, tali istruzioni (eccetto OUTPUT e OUTPUT NOT che sono già state presentate) sono descritte nella maggior parte dei programmi. Sebbene queste istruzioni sono usate per mandare ON e OFF i bit di uscita nell’area IR (cioè, per inviare o interrompere i segnali di uscita nei dispositivi esterni), esse vengono utilizzate anche per controllare lo stato di altri bit nell’area IR o in altre aree dati. 4-8-1 DIFFERENTIATE UP e DIFFERENTIATE DOWN Le istruzioni DIFFERENTIATE UP e DIFFERENTIATE DOWN sono utilizzate per mandare ON il bit operando per la durata di una scansione. L’istruzione DIFFERENTIATE UP manda il bit operando ON per una scansione se la sua condizione operativa passa da OFF a ON; l’istruzione DIFFERENTIATE DOWN manda ON il bit operando per una scansione dopo che la sua condizione operativa passa da ON a OFF. Le due istruzioni richiedono soltanto una linea del codice mnemonico. 00000 DIFU(013) 00200 Indirizzo Istruzione 00000 00001 LD DIFU(013) Indirizzo Istruzione 00000 00001 LD DIFD(014) Dati 00000 00200 00001 DIFD(014) 00201 Dati 00001 00201 Qui, IR 00200 va ON per una scansione dopo che IR 00000 è diventato ON. Quando DIFU(013) 00200 sarà eseguito la volta successiva, IR 00200 andrà OFF, indipendentemente dallo stato di IR 00000. Con l’istruzione DIFFERENTIATE DOWN, IR 00201 andrà ON per una scansione dopo che IR 00001 andrà OFF (fino ad allora, IR 00201 rimarrà OFF) e andrà OFF quando DIFD(014) 00201 verrà eseguito la volta successiva. 123 Capitolo 4-8 Controllo dello stato dei bit 4-8-2 KEEP L’istruzione KEEP è usata per mantenere lo stato del bit operando in base a due condizioni operative. A questo scopo, l’istruzione KEEP è collegata a due righe circuitali. Quando la condizione operativa alla fine della prima riga è ON, il bit operando dell’istruzione KEEP è ON. Quando la condizione operativa alla fine della seconda riga è ON, il bit operando dell’istruzione KEEP è OFF. Il bit operando per l’istruzione KEEP manterrà il suo stato ON e OFF anche se si trova all’interno di un interblocco. Nell’esempio seguente, HR 0000 va ON quando IR 00002 è ON e IR 00003 è OFF. HR 0000 rimarrà quindi ON fino quando IR 00004 o IR 00005 non diventano ON. Con KEEP, come con tutte le istruzioni che richiedono più di una linea, le righe circuitali sono codificate prima di quelle da loro controllate. 00002 00003 S: ingresso di set KEEP(011) HR 0000 00004 R: ingresso di reset 00005 Indirizzo Istruzione 00000 00001 00002 00003 00004 LD AND NOT LD OR KEEP(011) Dati 00002 00003 00004 00005 0000 HR 4-8-3 Circuito di autoritenuta Sebbene l’istruzione KEEP può essere usata per creare i circuiti di autoritenuta, talvolta è necessario creare tali bit in modo diverso, in modo da poter andare OFF in una sezione interbloccata di un programma. Per creare un circuito di autoritenuta, il bit operando di un’istruzione OUTPUT è usato come contatto della stessa istruzione OUTPUT in un setup OR, in modo che il bit operando dell’istruzione OUTPUT rimanga ON o OFF fino a quando non si verificano modifiche in altri bit. Deve essere presente almeno un altro contatto prima dell’istruzione OUTPUT che agisca da reset. In caso contrario, non ci sarebbe modo di controllare l’esecuzione dell’istruzione OUTPUT. Il diagramma precedente per l’istruzione KEEP può essere riscritto come sotto indicato. L’unica differenza si presenta quando il diagramma viene eseguito all’interno di un interblocco, quando la condizione operativa per l’istruzione INTERLOCK è ON. Qui, come nello stesso diagramma che utilizza l’istruzione KEEP, sono utilizzati due bit di reset, e cioè HR 0000 diventa OFF quando IR 00004 e IR 00005 diventano ON. 00002 00003 00004 00005 HR 0000 HR 0000 124 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 LD AND NOT OR AND NOT AND NOT OUT Dati HR HR 00002 00003 0000 00004 00005 0000 Capitolo 4-9 Bit di lavoro (relè interni) 4-9 Bit di lavoro (relè interni) Nella programmazione, la combinazione di contatti per produrre direttamente condizioni operative è spesso estremamente difficile. Per questo motivo, si usano dei bit di appoggio, che pilotano indirettamente altre istruzioni: si tratta dei bit di lavoro. Talvolta, si usano interi canali, detti canali di lavoro. I bit di lavoro non sono trasferiti verso o dal PLC. Sono bit scelti dal programmatore per facilitare la programmazione. I bit di I/O e altri bit speciali non possono essere usati come bit di lavoro. Sono disponibili come bit di lavoro tutti i bit nell’area IR che non sono allocati come bit di I/O e alcuni bit non utilizzati nell’area AR. E’ opportuno conservare una lista aggiornata dei bit utilizzati per facilitare la pianificazione e la stesura del programma e, successivamente, la ricerca errori (debug). Applicazione dei bit di lavoro Gli esempi riportati qui di seguito mostrano i due modi di impiego più comuni dei bit di lavoro. Questi sono solo alcuni tra i numerosissimi tipi di utilizzo dei bit di lavoro. Si tenga presente che l’uso dei bit di lavoro permette di semplificare sostanzialmente sezioni complesse di programma. I bit di lavoro sono utilizzati con le istruzioni OUTPUT, OUTPUT NOT, DIFFERENTIATE UP, DIFFERENTIATE DOWN e KEEP. Un bit di lavoro è usato prima come operando per una di queste istruzioni in modo da essere usato poi come contatto che permette l’esecuzione delle altre istruzioni. I bit di lavoro possono essere utilizzati anche con altre istruzioni, per es. con l’istruzione SHIFT REGISTER (SFT(010)). Un esempio di utilizzo di canali e bit di lavoro con l’istruzione SHIFT REGISTER è contenuto in 5-15-1 SHIFT REGISTER – SFT(010). Anche se non sempre denominati bit di lavoro, molti bit utilizzati negli esempi in Capitolo 5 Istruzioni sono bit di lavoro. La perfetta comprensione dell’uso di questi bit è essenziale per realizzare una programmazione efficace. Riduzione di condizioni complesse 00000 I bit di lavoro possono essere usati per semplificare il programma quando certe combinazioni di contatti devono essere messe in relazione con altri contatti. Nell’esempio seguente, IR 00000, IR 00001, IR 00002 e IR 00003 sono combinati in un blocco logico che memorizza la condizione operativa risultante come stato di IR 24600. IR 24600 viene quindi combinato con altri contatti per determinare le condizioni di uscita per IR 00100, IR 00101 e IR 00102, associati a loro volta ad altrettante uscite. 00001 24600 00002 00003 24600 00004 00005 00100 24600 00005 00101 00004 24600 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 LD AND NOT OR OR NOT OUT LD AND AND NOT OUT LD OR NOT AND OUT LD NOT OR OR OUT Dati 00000 00001 00002 00003 24600 24600 00004 00005 00100 24600 00004 00005 00101 24600 00006 00007 00102 00102 00006 00007 125 Capitolo 4-10 Accorgimenti di programmazione Condizioni differenziali I bit di lavoro possono essere utilizzati anche dove occorre un trattamento ”differenziato” per alcune condizioni operative di una certa istruzione. In questo esempio, IR 00100 deve rimanere a ON fino a quando IR 00001 è ON ed entrambi i contatti IR 00002 e IR 00003 sono OFF, oppure quando IR 00004 è ON e il contatto IR 00005 è OFF. Deve andare a ON per una sola scansione ogni volta che IR 00000 va ON (a meno che una delle precedenti condizioni non lo mantengano a ON). Questa azione viene facilmente programmata tramite il bit di lavoro IR 22500 usato come bit operando dell’istruzione DIFFERENTIATE UP (DIFU(013)). Quando IR 00000 va ON, IR 22500 diventa ON per una scansione e torna OFF nella scansione successiva con DIFU(013). Supponendo che le altre condizioni che controllano IR 00100 non lo mantengano ON, il bit di lavoro IR 22500 manderà IR 00100 ON per una sola scansione. 00000 DIFU(013) 22500 22500 00100 00001 00002 00004 00003 00005 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 LD DIFU(013) LD LD AND NOT AND NOT OR LD LD AND NOT OR LD OUT Dati 00000 22500 22500 00001 00002 00003 --00004 00005 --00100 4-10 Accorgimenti di programmazione Il numero di contatti utilizzabili in serie o in parallelo è illimitato, fino a quando non viene superata la capacità di memoria del PLC. Si consiglia quindi di utilizzare tutti i contatti necessari per creare un diagramma chiaro. Sebbene possano essere creati diagrammi molto complicati, non è possibile posizionare nessun contatto sulle righe verticali che uniscono due righe circuitali. Il diagramma A qui riportato, per esempio, non è possibile e deve essere ridisegnato come il diagramma B. Solo per il diagramma B viene fornito un codice mnemonico; la codifica del diagramma A non può essere effettuata. 00000 00002 Istruzione 1 00004 00001 00003 Istruzione 2 Diagramma A 00001 00004 00002 Istruzione 1 00000 00000 00004 00003 Istruzione 2 00001 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 LD AND OR AND Istruzione 1 LD AND OR AND NOT Istruzione 2 Dati 00001 00004 00000 00002 00000 00004 00001 00003 Diagramma B Non vi è limitazione numerica all’uso di un particolare contatto all’interno del programma; utilizzare quindi i bit tutte le volte che è necessario per semplificare il programma. Spesso, programmi complicati sono il risultato dei tentativi di ridurre la frequenza di utilizzo di un bit. 126 Capitolo 4-11 Esecuzione del programma Eccetto che per le istruzioni che non ammettono contatti (per es., INTERLOCK CLEAR e JUMP END, vedi sotto), ogni riga circuitale deve avere almeno un contatto per definire la condizione operativa dell’istruzione posta a destra. Anche in questo caso, il diagramma A deve essere ridisegnato come il diagramma B. Se un’istruzione deve essere eseguita sempre (per es. un’uscita sempre ON durante l’esecuzione del programma), si può utilizzare il flag SR 25313 che è normalmente ON. Istruzione Diagramma A: scorretto 25313 Indirizzo Istruzione 00000 00001 LD Istruzione Dati Istruzione Diagramma B 25313 Esistono alcune eccezioni a questa regola, che comprendono INTERLOCK CLEAR, JUMP END e le istruzioni di step. Ognuna di queste istruzioni è usata come secondo elemento di una coppia ed è controllata dalla condizione operativa della prima istruzione della coppia. Le condizioni non devono essere poste sulle righe circuitali in cui si trovano queste istruzioni. Fare riferimento a 5 Istruzioni per ulteriori dettagli. Disegnando i diagrammi a relè, è importante ricordare il numero di istruzioni necessarie. Nel successivo diagramma A, un’istruzione OR LOAD è necessaria per combinare le due righe circuitali. Ciò si può evitare disegnando il diagramma B, in modo che le istruzioni AND LOAD o OR LOAD non siano necessarie. Fare riferimento a 5-8-2 AND LOAD e OR LOAD per ulteriori dettagli e al Capitolo NO TAG Monitoraggio ed esecuzione del programma per altri esempi. Indirizzo 00000 00207 00001 00207 Diagramma A 00000 00001 00002 00003 00004 Indirizzo 00001 00207 00207 00000 00000 00001 00002 00003 Istruzione Dati LD LD AND OR LD OUT Istruzione LD AND OR OUT 00000 00001 00207 --00207 Dati 00001 00207 00000 00207 Diagramma B 4-11 Esecuzione del programma Quando viene attivata l’esecuzione, la CPU scandisce il programma dall’alto verso il basso, testando tutte le condizioni ed eseguendo tutte le istruzioni. È importante che le istruzioni si trovino nell’ordine corretto in modo che, per esempio, i dati prescelti siano trasferiti in un canale prima che questo sia usato come operando per un’istruzione. Si ricordi che una riga circuitale viene completata fino all’istruzione posta a destra e poi vengono eseguite le istruzioni sulle diramazioni. L’esecuzione del programma è soltanto uno dei compiti svolti dalla CPU come parte della scansione. Fare riferimento a Capitolo NO TAG Tempo di esecuzione del programma per ulteriori dettagli. 127 Capitolo 4-12 Programmi interfaccia moduli di I/O speciali 4-12 Programmi interfaccia moduli di I/O speciali Questo capitolo descrive i metodi di programmazione e gli accorgimenti per il funzionamento dei moduli di I/O speciali. 4-12-1 Riavvio dei moduli di I/O speciali Quando viene riavviato un modulo di I/O speciale, l’esecuzione di IORF(097) è disabilitata fino a quando non viene completata l’inizializzazione di tale modulo. SR 28100 (Bit di riavvio modulo #0) ON OFF ON SR 27400 (Flag di riavvio modulo #0) OFF Esecuzione di IORF(097) Abilitato per modulo #0 Inizializzazione Modulo speciale Disabilitato Abilitato Mentre il flag di riavvio (SR 27400) è ON, viene eseguito il normale rinfresco dell’END e il modulo di I/O speciale viene inizializzato. Tale elaborazione avviene indipendentemente dalle impostazioni in DM 6620 e DM 6621 relative al rinfresco dei moduli di I/O speciali. Le istruzioni IORF(097) nel programma non saranno eseguite per il modulo di inizializzazione fino a quando l’inizializzazione non viene completata. I dati dei moduli di I/O speciali che devono essere rinfrescati potrebbero perdersi durante l’inizializzazione. Quando viene scritto un programma per riavviare i moduli di I/O speciali, disabilitare la programmazione legata ai dati, come i dati utilizzati nei calcoli, dalla inizializzazione del modulo di I/O speciale, mentre il flag di riavvio (SR 27400... SR 27415) è ON. Le normali operazioni del programma possono proseguire per i moduli che non inizializzano. Il flag di riavvio non andrà ON per i moduli di I/O speciali installati su rack slave. Il tempo di riavvio standard dei moduli di I/O speciali è (20× il tempo di scansione). 4-12-2 Programma di elaborazione degli errori dei moduli di I/O speciali Utilizzare un programma simile a quello seguente per riavviare un modulo di I/O speciale in cui si è verificato un errore. Il programma di questo esempio riavvia il modulo 1. AR 0001 (Flag di errore modulo #0) AR0001 DIFU(013) AR0101 Riavvio JMP(004) 00 Disabilita i calcoli durante l’inizializzazione. SR 27401 (Flag di riavvio modulo #1) 27401 Calcoli che utilizzano i dati del modulo di I/O speciale 1 JME(005) 00 128 Capitolo 4-12 Programmi interfaccia moduli di I/O speciali 4-12-3 Modifica delle impostazioni dei moduli di I/O speciali Nel C200HX/HG/HE, le istruzioni ladder possono essere usate per scrivere i dati nelle aree dei moduli di I/O speciali (DM 1000... DM 2599) e per modificare le relative impostazioni. La modifica delle impostazioni è utile quando sono necessarie diverse impostazioni per diversi processi di produzione. In questo esempio, ci sono due processi di produzione che richiedono impostazioni diverse dei moduli di I/O speciali. Le impostazioni per il primo processo sono memorizzate in DM 7000... DM 7999 e le impostazioni per il secondo processo sono memorizzate in DM 8000... DM 8999. Operazioni della Console di Programmazione 1, 2, 3... I passi da 1 a 5 nella seguente procedura non sono necessari quando XFER(070) è usata per sovrascrivere DM 1000... DM 1999 direttamente dal programma con il contenuto dell’area DM fissa (DM 6144... DM 6599). In questo caso, riavviare semplicemente il modulo dal programma dopo avere sovrascritto DM 1000... DM 1999. 1. Cancellare la memoria (cancella tutto). L’operazione di assegnazione dell’area UM non può essere eseguita se la memoria non viene cancellata. 2. Eseguire l’operazione di assegnazione dell’area UM per assegnare 2K canali all’area DM di espansione (DM 7000... DM 8999). CLR FUN VER PLAY SET CHG B 9 7 D 1 3 WRITE 3. Eseguire l’operazione di modifica dati esadecimali/BCD per impostare la modalità dei moduli di I/O speciali su “modalità 1 ROM C200H compatibile”, impostando DM 6602 su #0100. Tale modalità trasferisce il contenuto di DM 7000... DM 7999 in DM 1000... DM 1999 all’avvio del PLC. Questa nuova impostazione di setup del PLC non sarà operativa fino a quando il PLC non viene riavviato spegnendolo e poi riaccendendolo. 4. Impostare su ON il pin 4 del commutatore DIP della CPU. Questa impostazione consente all’utente di assegnare i codici funzione dell’istruzione estesa. 5. Eseguire l’operazione di assegnazione del codice funzione dell’istruzione estesa per XDMR(––). 6. Inserire il programma. 129 Capitolo 4-12 Programmi interfaccia moduli di I/O speciali Esempio di programma (modulo di I/O speciale 2) Il programma seguente modifica le impostazioni dell’area dei moduli di I/O speciali per il modulo 2, riavvia il modulo e disabilita i calcoli utilizzando i dati del modulo 2 durante l’inizializzazione. Fine del processo 1. 40000 @XDMR(280) Trasferisce il contenuto di DM 8200... 8299 in DM 1200... 1299. #0100 #8200 DM1200 DIFU(013) AR0102 Riavvia il modulo 2. JMP(004) 00 Disabilita i calcoli durante l’inizializzazione. Flag di riavvio modulo #2 27402 Calcoli che utilizzano i dati del modulo di I/O speciale 2 JME(005) 00 4-12-4 Intervallo di rinfresco I/O dei moduli di I/O speciali Quando l’intervallo tra i rinfreschi I/O è troppo breve, l’elaborazione nel modulo di I/O speciale può subire un ritardo, provocando degli errori o interferendo con il funzionamento corretto del modulo. In questo caso, applicare i seguenti metodi per ripristinare il funzionamento normale. Esistono due modi per ampliare l’intervallo tra i rinfreschi I/O. Possono essere utilizzati entrambi i metodi. Intervallo breve tra rinfreschi END 1, 2, 3... 1. Disabilitare il rinfresco ciclico dei moduli di I/O speciali nel setup del PLC (DM 6621) e utilizzare IORF(097) per rinfrescare gli I/O dei moduli di I/O speciali soltanto se necessario. Per disabilitare il rinfresco ciclico per tutti i moduli di I/O speciali installati sul rack della CPU o sui rack di espansione I/O, impostare DM 6621 su #0100. 2. Aumentare il tempo di scansione del PLC impostando un tempo minimo nel setup del PLC (DM 6619) o eseguendo SCAN(018) nel programma. Intervallo breve tra rinfresco IORF(097) ed END Modificare il programma per utilizzare il rinfresco IORF(097) o il rinfresco END. È possibile anche aumentare il tempo di scansione del PLC impostando un tempo minimo nel setup del PLC (DM 6619) o eseguendo SCAN(018) nel programma. Intervallo breve tra istruzioni IORF(097) Modificare il programma per aumentare l’intervallo tra le istruzioni IORF(097) oppure utilizzare una sola istruzione IORF(097). 4-12-5 Riduzione del tempo di scansione Quando in un PLC C200HX/HG/HE è installato un modulo di I/O speciale, il rinfresco END è eseguito automaticamente ad ogni scansione senza necessità di impostazioni particolari. Quando sono utilizzati vari moduli di I/O speciali, il tempo di scansione potrebbe diventare troppo lungo a causa del tempo necessario per tale rinfresco I/O automatico. Per ridurre il tempo dedicato al rinfresco I/O, disabilitare il rinfresco ciclico dei moduli di I/O speciali nel setup del PLC (DM 6621) e utilizzare invece IORF(097) per rinfrescare i moduli di I/O speciali. Il rinfresco I/O per tutti i moduli di I/O speciali installati nel rack della CPU o nei rack di espansione I/O può essere disabilitato nel setup del PLC impostando DM 6621 su #0100. Il programma nell’esempio seguente riduce il tempo di rinfresco dei moduli di I/O speciali per un PLC con quattro moduli, effettuando il rinfresco di un solo modulo 130 Capitolo 4-12 Programmi interfaccia moduli di I/O speciali Modulo 3 Modulo 2 Modulo 1 Modulo 0 in ogni scansione. I moduli sono rinfrescati nell’ordine: modulo 0, modulo 1, modulo 2, modulo 3, modulo 0, ecc. C200HX/HG/HE Il programma nell’esempio seguente è interessante solo per i moduli di I/O speciali installati sul rack della CPU o sui rack di espansione I/O, perché il rinfresco END viene eseguito sempre sui moduli di I/O speciali installati su rack slave, indipendentemente dalle impostazioni nel setup del PLC. 30000 30001 30002 30003 30000 30000 30001 30002 30003 30001 30000 30001 30002 30003 30002 30000 30001 30002 30003 30003 30001 30002 30003 30000 30000 IORF(097) 100 100 Rinfresca il modulo 0. 30001 IORF(097) 1 scansione 110 110 Rinfresca il modulo 1. 30002 IORF(097) 120 Rinfresca il modulo 2. 120 30003 IORF(097) 130 130 Rinfresca il modulo 3. Nota IR 30000 è utilizzato due volte in un’istruzione OUT in questo programma. Anche se accettabile nell’esempio precedente, questo tipo di duplicazione di solito non è ammesso, a meno che non ci sia un motivo particolare e sia comunque assicurato un funzionamento corretto. 131 Capitolo 4-13 Programmazione del modulo temporizzatore analogico 4-13 Programmazione del modulo temporizzatore analogico L’SV di un modulo temporizzatore analogico può essere modificato facilmente senza una Console di Programmazione. Il modulo è dotato di un connettore per resistore esterno variabile, in modo che il resistore possa essere installato nel pannello di controllo e collegato al modulo del temporizzatore analogico per impostare o regolare manualmente l’SV temporizzatore. 4-13-1 Funzionamento Quando l’ingresso di avvio temporizzatore è ON, i bit di impostazione assegnati al modulo temporizzatore analogico (bit 00... 03 di n) sono ON, il temporizzatore analogico inizia a funzionare e la spia SET sul modulo si accende. Quando il valore del temporizzatore scade, (impostato internamente o esternamente), i flag di completamento del modulo (bit 08... 11 di n) e l’uscita Time–up sono ON. Inoltre, la spia TIME UP sul modulo si accende. Fare riferimento al Manuale Operativo del modulo temporizzatore analogico per i dettagli sulla commutazione tra impostazioni interne ed esterne dell’SV temporizzatore, sul collegamento di un resistore variabile e sulle impostazioni dello switch. Bit di impostazione temporizzatore (Bit 00... 03 di n) Ingresso di avvio temporizzatore Bit 08... 11 di n Uscita Time–up Flag di completamento Ingresso di avvio temporizzatore Uscita Time–up Intervallo temporizzatore 4-13-2 Allocazione bit e impostazioni commutatore DIP La tabella seguente mostra l’utilizzo dei canali assegnati al modulo temporizzatore analogico. Questo indirizzo di canale dipende dallo slot in cui è installato il modulo. Bit 00 01 02 03 04 05 06 07 08 09 10 11 12... 15 132 Classe I/O Uscita Funzione Bit di impostazione temporizzatore 0 Bit di impostazione temporizzatore 1 Bit di impostazione temporizzatore 2 Bit di impostazione temporizzatore 3 Bit di stop temporizzatore 0 Bit di stop temporizzatore 1 Bit di stop temporizzatore 2 Bit di stop temporizzatore 3 Ingresso g Flag di completamento temporizzatore 0 Flag di completamento temporizzatore 1 Flag di completamento temporizzatore 2 Flag di completamento temporizzatore 3 --Non utilizzato Commenti ON quando q il temporizzatore i è impost to impostato. OFF: abilita il funzionamento temporizzatore i ON: interrompe il funziof nzionamento temporizzatore tem orizzatore ON quando q il tempo è scaduto. d --- Capitolo 4-13 Programmazione del modulo temporizzatore analogico Impostazione gamma temporizzatore Impostare la gamma del temporizzatore con il commutatore DIP in alto sulla parte anteriore del modulo. La gamma di ogni temporizzatore può essere impostata in modo indipendente. Gamma Temporizzatore 0 Pin 8 OFF ON OFF ON 0.1... 1 s 1... 10 s 10... 60 s 1... 10 minuti Selezione impostazione interna/esterna dell’SV temporizzatore Pin 7 OFF OFF ON ON Temporizzatore 1 Pin 6 OFF ON OFF ON Temporizzatore 2 Pin 5 OFF OFF ON ON Pin 4 OFF ON OFF ON Pin 3 OFF OFF ON ON Temporizzatore 3 Pin 2 OFF ON OFF ON Pin 1 OFF OFF ON ON Selezionare l’impostazione interna o esterna con il commutatore DIP in basso sulla parte anteriore del modulo. Impostazione Interna Esterna Temporizzatore 0 (pin 4) ON OFF Temporizzatore 1 (pin 3) ON OFF Temporizzatore 2 (pin 2) ON OFF Temporizzatore 3 (pin 1) ON OFF 4-13-3 Esempio di programma Configurazione del modulo La tabella seguente mostra le allocazioni dei canali per i moduli di questo esempio. Item Canale IR assegnato al modulo temporizzatore analogico Canale IR assegnato al modulo di ingresso Canale IR assegnato al modulo di uscita Canale IR 002 IR 000 IR 005 Seguono le impostazioni dell’SV del modulo temporizzatore analogico e i collegamenti di controllo del resistore variabile esterno. Temporizzatore Valore di predisposizione (SV) 0 0.6 s 1 3s 2 20 s 3 8 minuti Gamma 0.1... 1 s Impostazione resistore variabile 60% in orario 1... 10 s 30% in orario 10... 60 s 20% in orario 1... 10 minuti 80% in orario Controllo resistore variabile senso Interno senso Interno senso Esterno senso Esterno 133 Capitolo 4-13 Programmazione del modulo temporizzatore analogico Impostazioni e cablaggio del modulo La figura seguente mostra le impostazioni e i collegamenti elettrici necessari per ottenere la configurazione del modulo indicata. Le impostazioni su questi due controlli del resistore variabile sono valide perché i temporizzatori 0 e 1 sono impostati per le impostazioni SV interne. Utilizzare il cacciavite fornito con il modulo per impostare il resistore variabile. Le impostazioni su questi due controlli del resistore variabile non sono valide perché i temporizzatori 2 e 3 sono impostati esternamente per SV. Le impostazioni della gamma temporizzatore sono: Temporizzatore 0: 0.1... 1 secondo Temporizzatore 1: Temporizzatore 2: 1... 10 secondi 10... 60 secondi Temporizzatore 3: 1... 10 minuti Pin 8 Pin 7 Pin 6 Pin 5 Pin 4 Pin 3 Pin 2 Pin 1 OFF OFF ON OFF OFF ON ON ON Le impostazioni SV interne/esterne sono: Temporizzatore 0 Temporizzatore 1 Temporizzatore 2 Temporizzatore 3 Pin 4 Pin 3 Pin 2 Pin 1 Interna Interna Esterna Esterna ON ON OFF OFF Non collegare questi connettori. I temporizzatori 0 e 1 sono impostati per le impostazioni SV interne, in modo che i controlli del resistore variabile in alto nel modulo siano utilizzati per impostare i relativi SV. Impostazioni SV esterne (0... 20 kW) Collegare il resistore variabile per i temporizzatori 2 e 3 a questi connettori. Fare riferimento al Manuale Operativo del modulo temporizzatore analogico per ulteriori dettagli su queste impostazioni. 134 Capitolo 4-13 Programmazione del modulo temporizzatore analogico Programma a relè La figura seguente mostra un esempio di programma a relè. 1, 2, 3... 1. L’uscita IR 00500 andrà ON circa 0,6 s (T0) dopo che l’ingresso IR 00002 è ON. 2. L’uscita IR 00501 andrà ON circa 3 s (T1) dopo che l’ingresso IR 00003 è ON. 3. L’uscita IR 00502 andrà ON circa 20 s (T2) dopo che l’ingresso IR 00004 è ON e IR 00503 andrà ON circa 8 minuti (T3) dopo che l’ingresso IR 00004 è ON. 4. I temporizzatori 2 e 3 sono interrotti dall’ingresso IR 00005. Bit di stop temporizzatore 00005 Flag di completamento Temporizzatore 0 00206 T2 I temporizzatori 2 e 3 interrompono il funzionamento quando l’ingresso di arresto di emergenza va ON. 00207 T3 Bit di impostazione temporizzatore 0 00002 00200 00208 Flag di completamento Temporizzatore 0 00003 Il temporizzatore 0 (00200) avvia il funzionamento e la spia SET del modulo si accende quando IR 00002 va ON. Quando il tempo impostato sul potenziometro interno scade, il flag di completamento 00500 (00208) va ON e la spia TIME UP del modulo si accende. L’uscita IR 00500 va ON contemporaneamente. Bit di impostazione temporizzatore 1 00201 00209 T0 T1 Il temporizzatore 1 (00201) inizia a funzionare e la spia SET del modulo si accende quando IR 00003 va ON. Quando il tempo impostato sul controllo del resistore variabile interno scade, il flag di completamento (00209) va ON e la spia TIME UP del modulo si accende. L’uscita IR Bit di impostazione temporizzatore 2 00501 va ON contemporaneamente. 00501 Flag di completamento Temporizzatore 1 00004 00202 T2 I temporizzatori 2 (00202) e 3 (00203) iniziano a funzionare e la spia SET del modulo si accende quando IR 00004 va ON. 00203 00210 00502 Flag di completamento Temporizzatore 2 00211 00503 Flag di completamento Temporizzatore 3 T3 Quando scade il tempo sul controllo del resistore esterno variabile, il flag di completamento (00210) va ON e la spia TIME UP del modulo si accende. L’uscita IR 00502 va ON contemporaneamente. Quando il tempo impostato sul controllo del resistore variabile esterno scade, il flag di completamento (00211) va ON e la spia TIME UP del modulo si accende. L’uscita IR 00503 va ON contemporaneamente. 135 Programmazione del modulo temporizzatore analogico 136 Capitolo 4-13 CAPITOLO 5 Istruzioni I PLC C200HX/HG/HE sono caratterizzati da un ampio set di istruzioni che facilitano la programmazione di processi di controllo complessi. Questo capitolo descrive in dettaglio le varie istruzioni e illustra la simbologia in diagramma a relè, le aree dati e i flag utilizzati. I PLC C200HX/HG/HS sono in grado di elaborare più di 100 istruzioni che richiedono codici di funzione; tuttavia, soltanto 100 codici di funzione (da 00 a 99) sono disponibili. Alcune istruzioni, chiamate istruzioni estese, non hanno codici di funzione fissi; ad esse devono pertanto essere assegnati i 18 codici di funzione destinati alle istruzioni estese, prima che sia possibile utilizzarle. Le numerose istruzioni a disposizione con i PLC C200HX/HG/HE sono descritte in sottocapitoli organizzati per gruppi funzionali. Questi gruppi comprendono le istruzioni del diagramma a relè, le istruzioni di controllo dei bit, le istruzioni Timer e Counter, le istruzioni di scorrimento, di spostamento, di comparazione e di conversione dei dati, le operazioni in BCD e in binario, le istruzioni logiche, le subroutine, le istruzioni speciali, di rete, per le comunicazioni seriali, le istruzioni I/O avanzate, e le istruzioni dei moduli I/O speciali. Alcune istruzioni, come quelle di Timer e Counter, sono utilizzate per controllare l’esecuzione di altre istruzioni, per es.: un flag di fine conteggio TIM può abilitare un bit quando il periodo di tempo predisposto per il timer è trascorso. Benché queste altre istruzioni siano usate spesso per controllare i bit di uscita mediante l’istruzione di uscita, esse possono essere utilizzate anche per controllare l’esecuzione di altre istruzioni. Le istruzioni di uscita utilizzate negli esempi in questo manuale possono quindi essere in genere sostituite con altre istruzioni per modificare il programma in caso di applicazioni specifiche diverse dal controllo diretto dei bit di uscita. 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11 5-12 5-13 5-14 5-15 5-16 Notazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formato delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aree dati, valori degli identificatori e flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni differenziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni estese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codifica delle istruzioni in codice mnemonico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabelle delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7-1 Codici di funzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7-2 Elenco alfabetico per codice mnemonico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni del diagramma a relè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8-1 LOAD, LOAD NOT, AND, AND NOT, OR e OR NOT . . . . . . . . . . . . . . . . . . . 5-8-2 AND LOAD e OR LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di controllo sui bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9-1 OUTPUT e OUTPUT NOT – OUT e OUT NOT . . . . . . . . . . . . . . . . . . . . . . . . . 5-9-2 DIFFERENTIATE UP e DOWN – DIFU(013) e DIFD(014) . . . . . . . . . . . . . . . . 5-9-3 SET e RESET – SET e RSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9-4 KEEP – KEEP(011) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9-5 BIT TEST: TST(350) e TSTN(351) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) . . . . . . . . . . . . . . . . . . . . . . JUMP e JUMP END – JMP(004) e JME(005) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . END – END(001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NO OPERATION – NOP(000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni Timer e Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14-1 TIMER – TIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14-2 HIGH–SPEED TIMER - TIMH(015) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14-3 TOTALIZING TIMER – TTIM(087) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14-4 COUNTER – CNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14-5 REVERSIBLE COUNTER – CNTR (012) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di scorrimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-1 SHIFT REGISTER – SFT(010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-2 REVERSIBILE SHIFT REGISTER – SFTR(084) . . . . . . . . . . . . . . . . . . . . . . . . 5-15-3 ARITHMETIC SHIFT LEFT – ASL(025) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-4 ARITHMETIC SHIFT RIGHT – ASR(026) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-5 ROTATE LEFT – ROL(027) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-6 ROTATE RIGHT – ROR(028) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-7 ONE DIGIT SHIFT LEFT – SLD(074) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-8 ONE DIGIT SHIFT LEFT – SRD(075) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-9 WORD SHIFT – WSFT(016) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15-10 ASYNCHRONOUS SHIFT REGISTER – ASFT(017) . . . . . . . . . . . . . . . . . . . . Istruzioni di spostamento dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-1 MOVE – MOV(021) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-2 MOVE NOT – MVN(022) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-3 BLOCK SET – BSET(071) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 141 141 142 136 144 145 147 149 152 152 152 153 153 154 155 156 158 159 160 161 162 162 163 166 167 168 171 173 173 175 177 177 177 178 178 179 179 180 181 181 182 182 137 5-17 5-18 5-19 5-20 138 5-16-4 BLOCK TRANSFER – XFER(070) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-5 DATA EXCHANGE – XCHG(073) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-6 SINGLE WORD DISTRIBUTE – DIST(080) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-7 DATA COLLECT – COLL(081) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-8 MOVE BIT – MOVB(082) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-9 MOVE DIGIT – MOVD(083) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-10 TRANSFER BITS – XFRB(062) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-11 EM BLOCK TRANSFER – XFR2(––) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-12 EM BANK TRANSFER – BXF2(––) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16-13 EM BANK TRANSFER – BXFR(125) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Istruzioni di comparazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-1 MULTI–WORD COMPARE - MCMP(019) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-2 COMPARE – CMP(020) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-3 DOUBLE COMPARE – CMPL(060) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-4 BLOCK COMPARE – BCMP(068) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-5 TABLE COMPARE – TCMP(085) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-6 AREA RANGE COMPARE – ZCP(088) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-7 DOUBLE AREA RANGE COMPARE – ZCPL(116) . . . . . . . . . . . . . . . . . . . . . 5-17-8 SIGNED BINARY COMPARE – CPS(114) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17-9 DOUBLE SIGNED BINARY COMPARE – CPSL(115) . . . . . . . . . . . . . . . . . . . 5-17-10 Istruzioni di comparazione di ingresso (da 300 a 328) . . . . . . . . . . . . . . . . . . . . . Conversione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-1 BCD–TO–BINARY - BIN(023) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-2 DOUBLE BCD–TO–BINARY - BINL(058) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-3 BINARY– TO–BCD – BCD(024) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-4 DOUBLE BINARY–TO–DOUBLE BCD - BCDL(059) . . . . . . . . . . . . . . . . . . . 5-18-5 HOURS–TO–SECONDS – SEC(065) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-6 SECONDS–TO–HOURS - HMS(066) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-7 4–TO–16/8–TO–256 DECODER - MLPX(076) . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-8 16–TO–4/256–TO–8 ENCODER - DMPX(077) . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-9 7–SEGMENT DECODER - SDEC(078) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-10 ASCII CONVERT – ASC(086) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-11 ASCII–TO–HEXADECIMAL – HEX(162) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-12 SCALING – SCL(194) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-13 COLUMN TO LINE – LINE(063) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-14 LINE TO COLUMN – COLM(064) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-15 2’S COMPLEMENT – NEG(160) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18-16 DOUBLE 2’S COMPLEMENT – NEGL(161) . . . . . . . . . . . . . . . . . . . . . . . . . . . Istrzioni marematiche sui simboli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19-1 Addizione Binaria +(400)/+L(401)/+C(402)/+CL(403) . . . . . . . . . . . . . . . . . 5-19-2 Addizione in BCD: +B(404)/ +BL(405)/+BC(406)/+BCL(407) . . . . . . . . . 5-19-3 Sottrazione binaria: -(410)/ -L(411)/-C(412)/-CL(413) . . . . . . . . . . . . . . 5-19-4 Sottrazione in BCD: -B(414)/ -BL(415)/-BC(416)/-BCL(417 . . . . . . . . . 5-19-5 Moltiplicazione binaria: *(420)/ *L(421)/*U(422)/*UL(423) . . . . . . . . . . . . . 5-19-6 Moltiplicazione in BCD: *B(424)/ *BL(425) . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19-7 Divisione binaria: /(430)/ /L(431)//U(432)//UL(433) . . . . . . . . . . . . . . . . . . . . 5-19-8 Divisione in BCD: /B(434)/ /BL(435) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni aritmetiche in BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-1 INCREMENT – INC(038) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-2 DECREMENT – DEC(039) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-3 SET CARRY – STC(040) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-4 CLEAR CARRY – CLC(041) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-5 BCD ADD – ADD(030) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-6 DOUBLE BCD ADD – ADDL(054) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-7 BCD SUBTRACT – SUB(031) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-8 DOUBLE BCD SUBTRACT – SUBL(055) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-9 BCD MULTIPLY – MUL(032) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-10 DOUBLE BCD MULTIPLY – MULL(056) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-11 BCD DIVIDE – DIV(033) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-12 DOUBLE BCD DIVIDE – DIVL(057) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20-13 FLOATING POINT DIVIDE – FDIV(079) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 184 185 186 186 189 190 191 192 193 194 194 195 197 199 200 201 202 203 204 204 208 208 209 209 210 211 212 213 216 219 222 223 226 228 229 230 231 232 232 234 237 241 245 247 249 251 252 253 253 253 253 254 255 256 258 259 260 261 262 263 5-20-14 SQUARE ROOT– ROOT(072) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Operazioni in binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-1 BINARY ADD – ADB(050) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-2 BINARY SUBTRACT – SBB(051) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-3 BINARY MULTIPLY – MLB(052) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-4 BINARY DIVIDE – DVB(053) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-5 DOUBLE BINARY ADD – ADBL(480) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-6 DOUBLE BINARY SUBTRACT – SBBL(481) . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-7 SIGNED BINARY MULTIPLY – MBS(484) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-8 DOUBLE SIGNED BINARY MULTIPLY – MBSL(482) . . . . . . . . . . . . . . . . . . 5-21-9 SIGNED BINARY DIVIDE – DBS(485) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21-10 DOUBLE SIGNED BINARY DIVIDE – DBSL(483) . . . . . . . . . . . . . . . . . . . . . 5-22 Istruzioni matematiche speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-1 FIND MAXIMUM – MAX(182) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-2 FIND MINIMUM – MIN(183) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-3 AVERAGE VALUE – AVG(195) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-4 SUM – SUM(184) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-5 ARITHMETIC PROCESS – APR(069) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22-6 PID CONTROL – PID(190) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23 Istruzioni logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23-1 COMPLEMENT – COM(029) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23-2 LOGICAL AND – ANDW(034) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23-3 LOGICAL OR – ORW(035) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23-4 EXCLUSIVE OR – XORW(036) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23-5 EXCLUSIVE NOR – XNRW(037) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24 Subroutine e controllo di interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24-1 Subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24-2 Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24-3 SUBROUTINE ENTER – SBS(091) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24-4 SUBROUTINE DEFINE e RETURN – SBN(092)/RET(093) . . . . . . . . . . . . . . . 5-24-5 MACRO – MCRO(099) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24-6 INTERRUPT CONTROL – INT(089) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 Istruzioni di step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25-1 STEP DEFINE e STEP START–STEP(008)/SNXT(009) . . . . . . . . . . . . . . . . . . 5-26 Istruzioni speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-1 FAILURE ALARM – FAL(006) e SEVERE FAILURE ALARM – FALS(007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-2 CYCLE TIME – SCAN(018) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-3 TRACE MEMORY SAMPLING – TRSM(045) . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-4 MESSAGE DISPLAY – MSG(046) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-5 LONG MESSAGE – LMSG(047) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-6 TERMINAL MODE – TERM(048) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-7 WATCHDOG TIMER REFRESH – WDT(094) . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-8 I/O REFRESH – IORF(097) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-9 GROUP–2 HIGH – DENSITY I/O REFRESH - MPRF(061) . . . . . . . . . . . . . . . 5-26-10 BIT COUNTER – BCNT(067) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-11 FRAME CHECKSUM – FCS(180) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-12 FAILURE POINT DETECTION – FPD(269) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-13 DATA SEARCH – SRCH(181) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-14 EXPANSION DM READ – XDMR(280) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-15 INDIRECT EM ADDRESSING – IEMS(––) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-16 SELECT EM BANK – EMBC(281) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26-17 PCMCIA CARD MACRO – CMCR(261) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27 Istruzioni di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27-1 NETWORK SEND – SEND(090) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27-2 NETWORK RECEIVE – RECV(098) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27-3 Comunicazione di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Istruzioni per la comunicazione seriale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28-1 RECEIVE – RXD(235) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28-2 TRANSMIT – TXD(236) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28-3 CHANGE RS–232C SETUP - STUP(237) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 267 267 269 271 272 273 275 277 278 279 280 281 281 282 283 285 287 290 298 298 298 299 299 300 300 300 301 304 305 306 308 312 312 320 320 321 322 323 324 325 326 326 327 328 328 330 334 335 336 337 338 343 343 345 347 349 349 351 354 139 5-28-4 PROTOCOL MACRO – PMCR(260) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29 Istruzioni I/O avanzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29-1 DIGITAL SWITCH INPUT – DSW(210) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29-2 TEN KEY INPUT – TKY(211) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29-3 HEXADECIMAL KEY INPUT – HKY(212) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29-4 MATRIX INPUT – MTR(213) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29-5 7– SEGMENT DISPLAY OUTPUT - 7SEG(214) . . . . . . . . . . . . . . . . . . . . . . . . 5-30 Istruzioni moduli di I/O speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30-1 SPECIAL I/O UNIT READ – IORD(222) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30-2 SPECIAL I/O UNIT WRITE – IOWR(223) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 355 356 357 360 362 365 367 370 371 372 Aree dati, valori degli identificatori e flag 5-1 Capitolo 5-3 Notazione Nella restante parte di questo manuale, tutte le istruzioni verranno indicate con sigle mnemoniche. Per esempio, l’istruzione di uscita sarà chiamata OUT; l’istruzione AND Load, AND LD. Se non si è certi dell’istruzione a cui è stata associata una determinata codifica mnemonica, fare riferimento all’Appendice B Istruzioni di programmazione. Se ad un’istruzione è assegnato un codice di funzione, questo sarà indicato fra parentesi dopo la sigla. Questi codici, che sono numeri decimali a 2 cifre, sono usati per inserire la maggior parte delle istruzioni nella CPU; essi sono descritti brevemente di seguito e più dettagliatamente in 4-7 Inserimento, modifica e verifica del programma. Nell’Appendice B è riportata anche una tabella di istruzioni, elencate secondo i codici di funzione. Il segno @ prima di un’istruzione ne indica la versione differenziale. Le istruzioni differenziali sono illustrate nel Capitolo 5-4. 5-2 Formato delle istruzioni La maggior parte delle istruzioni ha almeno uno o più operandi associati. Gli operandi indicano o forniscono i dati con cui un’istruzione deve essere eseguita. Questi valori possono essere numerici (costanti), ma più generalmente sono indirizzi di canali o bit dell’area dati che contengono i dati da utilizzare. Un bit il cui indirizzo è designato come operando è detto bit operando; un canale il cui indirizzo è designato come operando è detto canale operando. In alcune istruzioni, il canale–indirizzo designato in un’istruzione indica il primo di una serie di canali contenenti i dati richiesti. Ogni istruzione occupa uno o più canali della memoria di programma. Il primo canale è occupato dall’istruzione stessa, che specifica l’istruzione e contiene qualsiasi identificatore (descritto di seguito) o bit operando richiesto dall’istruzione. Altri operandi richiesti dall’istruzione sono contenuti nei canali successivi, un operando per ogni canale. Alcune istruzioni richiedono fino a quattro canali. Un identificatore è un operando associato a un’istruzione e contenuto nello stesso canale dell’istruzione stessa. Tali operandi definiscono l’istruzione invece di indicare i dati da utilizzare. Esempi di identificatori sono i numeri TC, che sono usati nelle istruzioni Timer e Counter per creare temporizzatori e contatori, nonché i numeri di salto (che definiscono quale istruzione Jump va accoppiata a quale Jump End). I bit operandi sono contenuti anche nello stesso canale dell’istruzione stessa, sebbene non siano considerati identificatori. 5-3 Aree dati, valori degli identificatori e flag In questo capitolo, ogni descrizione di istruzioni include la rappresentazione simbolica in diagramma a relè, le aree dati utilizzabili dagli operandi e i valori che possono essere usati come identificatori. I valori per le aree dati sono specificati anche dai nomi degli operandi e dal tipo di dati richiesto per ogni operando (es.: canale o bit e, per canali, esadecimale o BCD). Non tutti gli indirizzi delle aree dati specificate sono permessi per un operando, cioè se un operando richiede due canali, l’ultimo canale di un’area dati non può essere scelto come primo canale dell’operando, perché tutti i canali dell’operando devono appartenere alla stessa area dati. Inoltre, non tutti i canali nelle aree SR e DM possono essere scritti come operandi (vedere Capitolo 3 Aree di memoria per i dettagli). Altre limitazioni specifiche sono indicate nel sottocapitolo Limitazioni. Per le convenzioni di indirizzamento e per gli indirizzi di flag e bit di controllo fare riferimento al Capitolo 3 Aree di memoria. ! Attenzione Le aree IR e SR sono considerate come aree dati separate. Se un operando ha accesso a un’area, ciò non significa necessariamente che lo stesso operando avrà l’accesso all’altra area. Il confine tra l’area IR e SR può comunque essere attraversato da un singolo operando, cioè l’ultimo bit dell’area IR può essere specificato per un operando che richiede più di un canale, permettendo perciò che anche l’area SR sia presa in considerazione per quell’operando. 141 Capitolo 5-4 Istruzioni differenziali Il sottocapitolo Flag elenca i flag che vengono influenzati durante l’esecuzione di un’istruzione. Questi includono i flag dell’area SR indicati di seguito. Abbreviazione ER CY GR EQ LE N OF UF Nome Flag di errore dell’esecuzione dell’istruzione Flag di riporto Flag di maggiore Flag di uguale Flag di minore Flag negativo Flag di overflow Flag di underflow Bit 25503 25504 25505 25506 25507 25402 25404 25405 ER è il flag più comunemente usato per controllare l’esecuzione di un’istruzione. Quando ER si abilita (ON), significa che si è verificato un errore nell’esecuzione dell’istruzione in atto. Il sottocapitolo Flag di ogni istruzione elenca i possibili motivi di errore. ER sarà ON se gli operandi non sono inseriti correttamente. Le istruzioni non vengono eseguite con ER in stato ON. Una tabella contenente le istruzioni e i relativi flag influenzati è fornita in Appendice C Errori e flag aritmetici. Indirizzamento indiretto Quando l’area DM viene specificata come operando, si può utilizzare l’indirizzamento indiretto. L’indirizzamento indiretto DM è specificato inserendo un asterisco prima di DM: DM. Quando è specificato un indirizzamento DM indiretto, il canale DM selezionato conterrà l’indirizzo del canale DM contenente i dati che saranno usati come operando dell’istruzione. Se, per esempio, DM 0001 fosse designato come primo operando e LR 00 come secondo operando di MOV(021), il contenuto di DM 0001 fosse 1111 e DM 1111 contenesse 5555, il valore 5555 sarebbe spostato in LR 00. MOV(021) DM 0001 LR 00 Indirizzo indiretto Canale Contenuto DM 0000 4C59 DM 0001 1111 DM 0002 F35A DM 1111 DM 1113 DM 1114 5555 2506 D541 Indica DM 1111. 5555 spostato in LR 00. Quando si utilizza l’indirizzamento indiretto, l’indirizzo del canale desiderato deve essere in BCD e deve specificare un canale all’interno dell’area DM. Nell’esempio precedente, il contenuto di DM 0000 dovrebbe essere in BCD compreso tra 0000 e 6655. L’istruzione IEMS(––) può essere usata per cambiare la destinazione di DM dall’area DM a uno dei banchi nell’area EM. Fare riferimento a NO TAG INDIRECT EM ADDRESSING – IEMS(––) per i dettagli. Definizione delle costanti 5-4 Sebbene gli indirizzi dell’area dati siano spesso degli operandi, molti operandi e tutti gli identificatori sono inseriti come costanti. I valori disponibili per un dato identificatore o operando dipendono dalla particolare istruzione che li utilizza. Le costanti devono inoltre essere inserite nella forma richiesta dall’istruzione, cioè in BCD o in esadecimale. Istruzioni differenziali La maggior parte delle istruzioni è utilizzabile sia in forma diretta che differenziale. Le istruzioni differenziali sono contraddistinte da @ prima della sigla dell’istruzione. Un’istruzione diretta viene eseguita ad ogni scansione fino a che la sua condizione di esecuzione è ON. Un’istruzione differenziale è eseguita solo una volta, 142 Capitolo 5-4 Istruzioni differenziali dopo che la sua condizione di esecuzione passa da OFF a ON. Se la condizione di esecuzione non è cambiata, oppure è cambiata da ON a OFF da quando è stata eseguita l’ultima volta, l’istruzione non verrà eseguita. I due esempi che seguono ne mostrano il funzionamento con MOV(021) e @MOV(021), che sono usate per spostare i dati nell’indirizzo designato dal primo operando all’indirizzo designato dal secondo operando. 00000 MOV(021) HR 10 Diagramma A DM 0000 Indirizzo Istruzione 00000 00001 LD MOV(021) Operandi 00000 HR DM 10 0000 00000 Diagramma B @MOV(021) Indirizzo HR 10 00000 00001 DM 0000 Istruzione Operandi LD @MOV(021) 00000 HR DM 10 0000 Nel diagramma A, la MOV(021) non differenziale sposterà il contenuto di HR 10 a DM 0000 ogniqualvolta viene eseguita con 00000. Se il tempo di scansione è 80 ms e 00000 rimane ON per 2,0 secondi, l’operazione di spostamento sarà eseguita 25 volte e solo l’ultimo valore spostato in DM 0000 sarà conservato. Nel diagramma B, la @MOV(021) differenziale sposterà il contenuto di HR 10 in DM 0000 solo una volta dopo che 00000 ha commutato a ON. Anche se 00000 rimane a ON per 2,0 secondi con lo stesso tempo di scansione di 80 ms, l’operazione di spostamento sarà eseguita solo una volta durante la prima scansione in cui 00000 è passato da OFF a ON. Poiché il contenuto di HR 10 potrebbe variare durante i 2 secondi mentre 00000 è ON, il contenuto finale di DM 0000 dopo i 2 secondi potrebbe essere differente a seconda se è stata usata MOV(021) o @MOV(021). Tutti gli operandi, i simboli del diagramma a relè e le altre specifiche delle istruzioni sono uguali in entrambe le modalità. Durante l’inserimento vengono usati gli stessi codici di funzione, ma si inserisce NOT dopo il codice di funzione per segnalare la forma differenziale di un’istruzione. Molte istruzioni, ma non tutte, hanno forma differenziale. Fare riferimento a 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e IL(003) per gli effetti degli interlock sulle istruzioni differenziali. I PLC C200HX/HG/HE forniscono anche le istruzioni differenziali: DIFU(013) e DIFD(014). DIFU(013) opera allo stesso modo di un’istruzione differenziale, ma è utilizzata per attivare un bit per una scansione. Anche DIFD(014) attiva un bit per una scansione, ma lo fa quando la condizione di esecuzione è cambiata da ON a OFF. Fare riferimento a 5-9-2 DIFFERENTIATE UP e DOWN - DIFU(013) e DIFD(014) per i dettagli. Nota Non utilizzare SR 25313 e SR 25315 per le istruzioni differenziali. Questi bit non cambiano mai lo stato e non attivano le istruzioni differenziali. 143 Capitolo 5-5 Istruzioni estese 5-5 Istruzioni estese Le istruzioni di espansione sono un gruppo di istruzioni che non hanno codici di funzione fissi. I codici di funzione impostati per le istruzioni di espansione possono essere riassegnati a qualsiasi istruzione di espansione, se lo si desidera. I codici di funzione di default vengono forniti per le istruzioni che li posseggono. Un’istruzione di espansione può essere assegnata a uno dei codici di funzione disponibile mediante l’operazione di assegnazione dei codici di funzione alle istruzioni di espansione della Console di programmazione. I codici di funzione sono: 017, 018, 019, 047, 048, 060...069, 087, 088, 089, 114, 115, 116, 160, 161, 162, 180...184, 190, 194, 195, 210...214, 222, 223, 235, 236, 237, 260, 261, 269, 280 e 281. Fare riferimento a NO TAG Assegnazioni dei codici di funzione alle istruzioni di espansione per dettagli sull’assegnazione dei codici di funzione. Fare riferimento ai manuali per il Software di supporto SYSMAC-CPT e SYSMAC per dettagli sull’impostazione dei codici di funzione mediante il Software di supporto SYSMAC-CPT e SYSMAC. Codice 144 Nome Mnemonica Pag. 017 (@)ASFT ASYNCHRONOUS SHIFT REGISTER 180 018 (@)SCAN CYCLE TIME 019 (@)MCMP MULTI-WORD COMPARE 047 (@)LMSG 32-CHARACTER MESSAGE NO TAG 048 (@)TERM TERMINAL MODE NO TAG 060 CMPL DOUBLE COMPARE 061 (@)MPRF GROUP-2 HIGH-DENSITY I/O REFRESH 062 (@)XFRB TRANSFER BITS 190 063 (@)LINE COLUMN TO LINE 228 064 (@)COLM LINE TO COLUMN 229 065 (@)SEC HOURS TO SECONDS 211 066 (@)HMS SECONDS TO HOURS 067 (@)BCNT BIT COUNTER 068 (@)BCMP BLOCK COMPARE 199 069 (@)APR ARITHMETIC PROCESS 287 087 TTIM TOTALIZING TIMER 167 088 ZCP AREA RANGE COMPARE 201 089 (@)INT INTERRUPT CONTROL 308 114 CPS SIGNED BINARY COMPARE 203 115 CPSL DOUBLE SIGNED BINARY COMPARE 204 116 ZCPL DOUBLE AREA RANGE COMPARE 202 160 (@)NEG 2’S COMPLEMENT 230 161 (@)NEGL DOUBLE 2’S COMPLEMENT 231 162 (@)HEX ASCII-TO-HEX CONVERSION 180 (@)FCS FCS CALCULATE NO TAG 181 (@)SRCH DATA SEARCH NO TAG 182 (@)MAX FIND MAXIMUM 281 183 (@)MIN FIND MINIMUM 282 184 (@)SUM SUM CALCULATE 285 190 PID PID CONTROL 290 194 (@)SCL SCALING 226 195 AVG AVERAGE VALUE 283 210 DSW DIGITAL SWITCH INPUT NO TAG 211 (@)TKY TEN KEY INPUT NO TAG 212 HKY HEXADECIMAL KEY INPUT NO TAG 213 MTR MATRIX INPUT NO TAG 214 7SEG 7-SEGMENT DISPLAY OUTPUT NO TAG NO TAG 194 197 NO TAG 212 NO TAG 223 Capitolo 5-6 Codifica delle istruzioni in codice mnemonico Codice Nome Mnemonica Pag. 222 (@)IORD SPECIAL I/O UNIT READ NO TAG 223 (@)IOWR SPECIAL I/O UNIT WRITE NO TAG 235 (@)RXD RECEIVE NO TAG 236 (@)TXD TRANSMIT NO TAG 237 (@)STUP CHANGE RS-232C SETUP NO TAG 260 (@)PMCR PROTOCOL MACRO NO TAG 269 FPD FAILURE POINT DETECT NO TAG 280 (@)XDMR EXPANSION DM READ NO TAG 281 (@)EMBC SELECT EM BANK NO TAG E’ possibile utilizzare anche le seguenti istruzioni di espansione se a queste vengono assegnate i codici di funzione sopra riportati da sostituire con le istruzioni di default. Mnemonica 5-6 Nome Pag. (@)ADBL DOUBLE BINARY ADD 273 (@)SBBL DOUBLE BINARY SUBTRACT 275 (@)MBSL DOUBLE SIGNED BINARY MULTIPLY 278 (@)DBSL DOUBLE SIGNED BINARY DIVIDE 280 (@)MBS SIGNED BINARY MULTIPLY 277 (@)DBS SIGNED BINARY DIVIDE 279 (@)BXF2 EM BANK TRANSFER 192 (@)IEMS INDIRECT EM ADDRESSING (@)XFR2 EM BLOCK TRANSFER NO TAG 191 Codifica delle istruzioni in codice mnemonico La scrittura del codice mnemonico per le istruzioni a relè è descritta nel Capitolo 4 Scrittura e inserimento dei programmi. La conversione delle informazioni nei simboli per il diagramma a relè, per tutte le altre istruzioni, segue lo stesso modello, descritto in seguito, e non viene specificato individualmente per ogni istruzione. Il primo canale di ogni istruzione definisce l’istruzione stessa e fornisce tutti gli identificatori. Se l’istruzione richiede soltanto un bit operando senza nessun identificatore, anche il bit operando trova posto sulla stessa linea del codice mnemonico. Tutti gli altri operandi trovano posto sulle righe successive alla riga dell’istruzione, un operando per ogni riga e nello stesso ordine nel quale si trovano rappresentati nell’istruzione espressa coi simboli per il diagramma a relè. Le colonne Indirizzi e Istruzioni della tabella dei codici mnemonici sono compilate solo per il canale dell’istruzione. Per tutte le altre righe, le due colonne di sinistra sono lasciate libere. Se l’istruzione non richiede identificatori o bit operandi, la colonna dati è lasciata libera per la prima riga. E’ bene controllare se esistono spazi nella colonna dati (per tutti i canali relativi ad istruzioni che non necessitano di dati), così la colonna dati può essere controllata rapidamente per vedere se qualche indirizzo è stato dimenticato. Se nella colonna dati si utilizza un indirizzo IR o SR, il lato sinistro della colonna è lasciato vuoto. Se si utilizza una qualsiasi altra area dati, l’abbreviazione dell’area dati è sistemata sul lato sinistro della colonna mentre l’indirizzo è sistemato sul lato destro. Se deve essere inserita una costante, viene sistemato sul lato sinistro della colonna dati il simbolo di numero (#) mentre il numero trova posto sul lato destro. Qualsiasi numero inserito come identificatore nel canale dell’istruzione non richiede l’inserimento del simbolo di numero sul lato destro. I bit TC, una volta definiti come temporizzatori o contatori, prendono il prefisso TIM (temporizzatore) oppure CNT (contatore). Quando si codifica un’istruzione provvista di codice di funzione, accertarsi di inserire il codice di funzione che sarà indispensabile quando verrà inserita l’istruzione mediante la console di programmazione. Inoltre bisogna accertarsi di designare l’istruzione differenziale con il simbolo @. 145 Capitolo 5-6 Codifica delle istruzioni in codice mnemonico Il diagramma seguente e i codici mnemonici corrispondenti illustrano i punti precedentemente descritti. 00000 Indirizzo Istruzione 00001 DIFU(013) 22500 00002 00100 00200 22500 BCNT(067) 01001 01002 LR 6300 Dati 00000 LD 00000 00001 AND 00001 00002 OR 00002 00003 DIFU(013) 22500 00004 LD 00100 00005 AND NOT 00200 00006 LD 01001 00007 AND NOT 00008 AND NOT 00009 OR LD 00010 AND 00011 BCNT(067) #0001 004 HR 00 00005 TIM 000 01002 LR 6300 –– 22500 #0150 TIM 000 –– # MOV(021) 0001 004 HR 00 HR LR 00 HR 0015 00012 LD 00013 TIM 000 # 00500 00014 LD 00015 MOV(021) TIM Righe multiple di istruzioni 00000 SFT(010) P HR 00 01001 01002 22500 R HR 00 00500 146 00 LR 00 HR 0015 00500 Dati 00000 LD 00000 00001 AND 00001 00002 LD 00002 00003 LD 00100 00004 AND NOT 00200 00005 LD 01001 00006 AND NOT 00007 AND NOT 00008 OR LD 00009 AND 00010 SFT(010) LR 6300 HR 0015 END(001) OUT NOT Indirizzo Istruzione I 00002 00200 00017 000 Se un’istruzione rappresentata come nella precedente tabella richiede più righe di istruzioni (ad esempio KEEP(011)), vengono inserite prima della stessa tutte le righe di istruzioni. Ognuna delle righe dell’istruzione è codificata, a partire da LD o LD NOT, per costituire dei ‘blocchi logici’ che sono incentrati su quella istruzione. Un esempio relativo all’istruzione SFT(010) è illustrato sotto. 00001 00100 LD 0150 –– HR 00016 00 00005 00011 LD 00012 OUT NOT 01002 LR 6300 –– 22500 –– HR 00 HR 00 HR 0015 00500 Quando la codifica del programma sarà conclusa, accertarsi di aver inserito l’istruzione END(001) sull’ultimo indirizzo. Capitolo 5-7 Tabelle delle istruzioni 5-7 Tabelle delle istruzioni Questo paragrafo contiene le tabelle delle istruzioni utilizzabili con il C200HX/ HG/HE. La prima tabella può essere usata per trovare le istruzioni per mezzo del codice di funzione, mentre la seconda può essere usata per trovare l’istruzione per mezzo del codice mnemonico. In entrambe le tabelle, il simbolo @ indica istruzioni con variazioni differenziali. 5-7-1 Codici di funzione La tabella seguente elenca le istruzioni che hanno codici di funzione fissi. Ogni istruzione è elencata per codice mnemonico e per nome. Utilizzare i numeri nella colonna a sinistra per la cifra a sinistra e il numero nell’intestazione della colonna per la cifra a destra del codice di funzione. Digit meno significativi Digit più pi signifi cativi 0 1 2 3 4 5 6 7 8 9 00 NOP NO OPERATION END END IL INTERLOCK ILC INTERLOCK CLEAR JMP JUMP JME JUMP END (@) FAL FAILURE ALARM AND RESET FALS SEVERE FAILURE ALARM STEP STEP DEFINE SNXT STEP START 01 SFT SHIFT REGISTER KEEP KEEP CNTR REVERSIBLE COUNTER DIFU DIFFERENTIATE UP DIFD DIFFERENTIATE DOWN TIMH HIGHSPEED TIMER (@) WSFT WORD SHIFT (@) ASFT ASYNCHRONOUS SHIFT REGISTER (@) SCAN CYCLE TIME (@) MCMP MULTIWORD COMPARE 02 CMP COMPARE (@) MOV MOVE (@) MVN MOVE NOT (@) BIN BCD TO BINARY (@) BCD BINARY TO BCD (@) ASL SHIFT LEFT (@) ASR SHIFT RIGHT (@) ROL ROTATE LEFT (@) ROR ROTATE RIGHT (@) COM COMPLEMENT 03 (@) ADD BCD ADD (@) SUB BCD SUBTRACT (@) MUL BCD MULTIPLY (@) DIV BCD DIVIDE (@) ANDW LOGICAL AND (@) ORW LOGICAL OR (@) XORW EXCLUSIVE OR (@) XNRW EXCLUSIVE NOR (@) INC INCREMENT (@) DEC DECREMENT 04 (@) STC SET CARRY (@) CLC CLEAR CARRY --- --- --- TRSM TRACE MEMORY SAMPLE (@) MSG MESSAGE DISPLAY (@) LMSG LONG MESSAGE (@) TERM TERMINAL MODE --- 05 (@) ADB BINARY ADD (@) SBB BINARY SUBTRACT (@) MLB BINARY MULTIPLY (@) DVB BINARY DIVIDE (@) ADDL DOUBLE BCD ADD (@) SUBL DOUBLE BCD SUBTRACT (@) MULL DOUBLE BCD MULTIPLY (@) DIVL DOUBLE BCD DIVIDE (@) BINL DOUBLE BCD-TODOUBLE BINARY (@) BCDL DOUBLE BINARY-TODOUBLE BCD 06 CMPL DOUBLE COMPARE (@) MPRF GROUP-2 HIGH-DENSITY I/O REFRESH (@) XFRB TRANSFER BITS (@) LINE COLUMN TO LINE (@) COLM LINE TO COLUMN (@) SEC HOURS-TOSECONDS (@) HMS SECONDSTO-HOURS (@) BCNT BIT COUNTER (@) BCMP BLOCK COMPARE (@) APR ARITHMETIC PROCESS 07 (@) XFER BLOCK TRANSFER (@) BSET BLOCK SET (@) ROOT SQUARE ROOT (@) XCHG DATA EXCHANGE (@) SLD ONE DIGIT SHIFT LEFT (@) SRD ONE DIGIT SHIFT RIGHT (@) MLPX 4-TO-16/ 8-TO-256 DECODER (@) DMPX 16-TO-4/ 256-TO-8 ENCODER (@) SDEC 7-SEGMENT DECODER (@) FDIV FLOATING POINT DIVIDE 08 (@) DIST SINGLE WORD DISTRIBUTE (@) COLL DATA COLLECT (@) MOVB MOVE BIT (@) MOVD MOVE DIGIT (@) SFTR REVERSIBLE SHIFT REGISTER (@) TCMP TABLE COMPARE (@) ASC ASCII CONVERT TTIM TOTALIZING COUNTER ZCP AREA RANGE COMPARE (@) INT INTERRUPT CONTROL 09 (@) SEND NETWORK SEND (@) SBS SUBROUTINE ENTRY SBN SUBROUTINE DEFINE RET SUBROUTINE RETURN (@) WDT WATCHDOG TIMER REFRESH --- --- (@) IORF I/O REFRESH (@) RECV NETWORK RECEIVE (@) MCRO MACRO 11 --- --- --- --- (@) CPS SIGNED BINARY COMPARE (@) CPSL DOUBLE SIGNED BINARY COMPARE (@) ZCPL DOUBLE AREA RANGE COMPARE --- --- --- 16 (@) NEG 2’S COMPLEMENT (@) NEGL DOUBLE 2’S COMPLEMENT (@) HEX ASCII-TOHEXADECIMAL --- --- --- --- --- --- --- 18 (@) FCS FRAME CHECKSUM (@) SRCH DATA SEARCH (@) MAX FIND MAXIMUM (@) MIN FIND MINIMUM (@) SUM SUM --- --- --- --- --- 19 (@) PID PID CONTROL --- --- --- (@) SCL SCALING (@) AVG AVERAGE VALUE --- --- --- --- 21 DSW DIGITAL SWITCH INPUT TKY TEN KEY INPUT HKY HEXADEC. KEY INPUT MTR MATRIX INPUT 7SEG 7-SEGMENT DISPLAY OUTPUT --- --- --- --- --- 22 --- --- (@) IORD SPECIAL I/O UNIT READ (@) IOWR SPECIAL I/O UNIT WRITE --- --- --- --- --- --- 23 --- --- --- --- --- (@) RXD RECEIVE (@) TXD TRANSMIT (@) STUP CHANGE RS-232C SETUP --- --- 26 (@) PMCR PROTOCOL MACRO (@) CMCR PCMCIA CARD MACRO --- --- --- --- --- --- --- FPD FAILURE POINT DETECTION 147 Capitolo 5-7 Tabelle delle istruzioni Digit più signifi cativi Digit meno significativi 0 1 (@) EMBC SELECT EM BANK 2 28 (@) XDMR EXPANSION DM READ --- 30 INPUT COMPARISON INSTRUCTIONS 3 4 5 6 7 8 9 --- --- --- --- --- --- --- 31 32 35 TST BIT TEST TSTN BIT TEST --- --- --- --- --- --- --- --- 40 (@) + SIGNED BINARY ADD (@) +L DOUBLE SIGNED BINARY ADD (@) +C SIGNED BINARY ADD W/CARRY (@) +CL DOUBLE SIGNED BINARY ADD W/CARRY (@) +B SIGNED BCD ADD (@) +BL DOUBLE BCD ADD (@) +BC BCD ADD W/CARRY (@) +BCL DOUBLE BCD ADD W/CARRY --- --- 41 (@) – SIGNED BINARY SUBTRACT (@) –L DOUBLE SIGNED BINARY SUBTRACT (@) –C SIGNED BINARY SUBTRACT W/CARRY (@) –CL DOUBLE SIGNED BINARY SUBTRACT W/CARRY (@) –B BCD SUBTRACT (@) –BL DOUBLE BCD SUBTRACT (@) –BC BCD SUBTRACT W/CARRY (@) –BCL DOUBLE BCD SUBTRACT W/CARRY --- --- 42 (@) * SIGNED BINARY MULTIPLY (@) *L DOUBLE SIGNED BINARY MULTIPLY (@) *U UNSIGNED BINARY MULTIPLY (@) *UL DOUBLE UNSIGNED BINARY MULTIPLY (@) *B BCD MULTIPLY (@) *BL DOUBLE BCD MULTIPLY --- --- --- --- 43 (@) / SIGNED BINARY DIVIDE (@) /L DOUBLE SIGNED BINARY DIVIDE (@) /U UNSIGNED BINARY DIVIDE (@) /UL DOUBLE UNSIGNED BINARY DIVIDE (@) /B BCD DIVIDE (@) /BL DOUBLE BCD DIVIDE --- --- --- --- 48 (@) ADBL DOUBLE BINARY ADD (@) SBBL DOUBLE BINARY SUBTRACT (@) MBSL DOUBLE SIGNED BINARY MULTIPLY (@) DBSL DOUBLE SIGNED BINARY DIVIDE (@) MBS SIGNED BINARY MULTIPLY (@) DBS SIGNED BINARY DIVIDE --- --- --- --- 148 Capitolo 5-7 Tabelle delle istruzioni 5-7-2 Elenco alfabetico per codice mnemonico La seguente tabella elenca le istruzioni C200HX/HG/HE in ordine alfabetico. I codici di funzione di default per le istruzioni di espansione sono racchiusi tra parentesi (per le istruzioni di espansione viene riportato un codice di (–––) senza i codici di funzione di default.) Mnemonica Codice Canali Nome Pagina 7SEG (214) 5 7-SEGMENT DISPLAY OUTPUT NO TAG ADB (@) 050 4 BINARY ADD 267 ADBL (@) (–––) 4 DOUBLE BINARY ADD 273 ADD (@) 030 4 BCD ADD 254 ADDL (@) 054 4 DOUBLE BCD ADD 255 AND ––– 1 AND 152 AND LD ––– 1 AND LOAD 152 AND NOT ––– 1 AND NOT 152 ANDW (@) 034 4 LOGICAL AND 298 APR (@) (069) 4 ARITHMETIC PROCESS 287 ASC (@) 086 4 ASCII CONVERT 222 ASFT(@) (017) 4 ASYNCHRONOUS SHIFT REGISTER 180 ASL (@) 025 2 ARITHMETIC SHIFT LEFT 177 ASR (@) 026 2 ARITHMETIC SHIFT RIGHT 177 AVG (@) (195) 5 AVERAGE VALUE 283 BCD (@) 024 3 BINARY TO BCD 209 BCDL (@) 059 3 DOUBLE BINARY-TO-DOUBLE BCD 210 BCMP (@) (068) 4 BLOCK COMPARE 199 BCNT (@) (067) 4 BIT COUNTER NO TAG BIN (@) 023 3 BCD-TO-BINARY 208 BINL (@) 058 3 DOUBLE BCD-TO-DOUBLE BINARY 209 BSET (@) 071 4 BLOCK SET 182 BXF2 (@) (–––) 4 EM BLOCK TRANSFER 191 CLC (@) 041 1 CLEAR CARRY 253 CMCR (@) 261 5 PCMCIA CARD MACRO NO TAG CMP 020 3 COMPARE 195 CMPL (060) 4 DOUBLE COMPARE 197 CNT ––– 2 COUNTER 168 CNTR 012 3 REVERSIBLE COUNTER 171 COLL (@) 081 4 DATA COLLECT 186 COLM(@) (064) 4 LINE TO COLUMN 229 COM (@) 029 2 COMPLEMENT 298 CPS (114) 4 SIGNED BINARY COMPARE 203 CPSL (115) 4 DOUBLE SIGNED BINARY COMPARE 204 DBS (@) (–––) 4 SIGNED BINARY DIVIDE 279 DBSL (@) (–––) 4 DOUBLE SIGNED BINARY DIVIDE 280 DEC (@) 039 2 BCD DECREMENT 253 DIFD 014 2 DIFFERENTIATE DOWN 154 DIFU 013 2 DIFFERENTIATE UP 154 DIST (@) 080 4 SINGLE WORD DISTRIBUTE 185 DIV (@) 033 4 BCD DIVIDE 261 DIVL (@) 057 4 DOUBLE BCD DIVIDE 262 DMPX (@) 077 4 16-TO-4/256-TO-8 ENCODER 216 DSW (210) 5 DIGITAL SWITCH NO TAG DVB (@) 053 4 BINARY DIVIDE 272 EMBC (@) 281 2 SELECT EM BANK NO TAG END 001 1 END 161 149 Capitolo 5-7 Tabelle delle istruzioni Mnemonica Codice Canali Nome Pagina FAL (@) 006 2 FAILURE ALARM AND RESET NO TAG FALS 007 2 SEVERE FAILURE ALARM NO TAG FCS (@) (180) 5 FCS CALCULATE NO TAG FDIV (@) 079 4 FLOATING POINT DIVIDE 263 FPD (269) 5 FAILURE POINT DETECT NO TAG HEX (@) 162 5 ASCII-TO-HEXADECIMAL 223 HKY (212) 5 HEXADECIMAL KEY INPUT NO TAG HMS (@) 066 4 SECONDS TO HOURS 212 IEMS (@) (–––) 4 INDIRECT EM ADDRESSING NO TAG IL 002 1 INTERLOCK 159 ILC 003 1 INTERLOCK CLEAR 159 INC (@) 038 2 INCREMENT 253 INT (@) (089) 4 INTERRUPT CONTROL 308 IORD (@) 222 5 SPECIAL I/O UNIT READ NO TAG IORF (@) 097 3 I/O REFRESH NO TAG IOWR (@) 223 5 SPECIAL I/O UNIT WRITE NO TAG JME 005 2 JUMP END 160 JMP 004 2 JUMP 160 KEEP 011 2 KEEP 156 LD ––– 1 LOAD 152 LD NOT ––– 1 LOAD NOT 152 LINE (@) (063) 4 COLUMN TO LINE 228 LMSG (@) (047) 4 32-CHARACTER MESSAGE NO TAG MAX (@) (182) 5 FIND MAXIMUM 281 MBS (@) (–––) 4 SIGNED BINARY MULTIPLY 277 MBSL (@) (–––) 4 DOUBLE SIGNED BINARY MULTIPLY 278 MCMP (@) (019) 4 MULTI-WORD COMPARE 194 MCRO (@) 099 4 MACRO 306 MIN (@) (183) 5 FIND MINIMUM 282 MLB (@) 052 4 BINARY MULTIPLY 271 MLPX (@) 076 4 4-TO-16/8-TO-256 DECODER 213 MOV (@) 021 3 MOVE 181 MOVB (@) 082 4 MOVE BIT 189 MOVD (@) 083 4 MOVE DIGIT 189 MPRF (@) (061) 4 GROUP-2 HIGH-DENSITY I/O REFRESH NO TAG MSG (@) 046 2 MESSAGE NO TAG MTR (213) 5 MATRIX INPUT NO TAG MUL (@) 032 4 BCD MULTIPLY 259 MULL (@) 056 4 DOUBLE BCD MULTIPLY 260 MVN (@) 022 3 MOVE NOT 182 NEG (@) (160) 4 2’S COMPLEMENT 230 NEGL (@) (161) 4 DOUBLE 2’S COMPLEMENT 231 NOP 000 1 NO OPERATION 162 OR ––– 1 OR 152 OR LD ––– 1 OR LOAD 152 OR NOT ––– 1 OR NOT 152 ORW (@) 035 4 LOGICAL OR 299 OUT ––– 2 OUTPUT 153 OUT NOT ––– 2 OUTPUT NOT 153 PID (@) (190) 5 PID CONTROL 290 PMCR (@) 260 5 PROTOCOL MACRO NO TAG RECV (@) 098 4 NETWORK RECEIVE NO TAG 150 Capitolo 5-7 Tabelle delle istruzioni Mnemonica Codice Canali Nome Pagina RET 093 1 SUBROUTINE RETURN 305 ROL (@) 027 2 ROTATE LEFT 177 ROOT (@) 072 3 SQUARE ROOT 265 ROR (@) 028 2 ROTATE RIGHT 178 RSET ––– 2 RESET 155 RXD(@) (235) 5 RECEIVE NO TAG SBB (@) 051 4 BINARY SUBTRACT 269 SBBL (@) (–––) 4 DOUBLE BINARY SUBTRACT 275 SBN 092 2 SUBROUTINE DEFINE 305 SBS (@) 091 2 SUBROUTINE ENTRY 304 SCAN (@) (018) 4 CYCLE TIME NO TAG SCL (@) (194) 5 SCALING 226 SDEC (@) 078 4 7-SEGMENT DECODER 219 SEC (@) (065) 4 HOURS TO SECONDS 211 SEND (@) 090 4 NETWORK SEND NO TAG SET ––– 2 SET 155 SFT 010 3 SHIFT REGISTER 173 SFTR (@) 084 4 REVERSIBLE SHIFT REGISTER 175 SLD (@) 074 3 ONE DIGIT SHIFT LEFT 178 SNXT 009 2 STEP START NO TAG SRCH (@) (181) 5 DATA SEARCH NO TAG SRD (@) 075 3 ONE DIGIT SHIFT RIGHT 179 STC (@) 040 1 SET CARRY 253 STEP 008 2 STEP DEFINE NO TAG STUP (@) 237 4 CHANGE RS-232C SETUP NO TAG SUB (@) 031 4 BCD SUBTRACT 256 SUBL (@) 055 4 DOUBLE BCD SUBTRACT 258 SUM (@) (184) 5 SUM CALCULATION 285 TCMP (@) 085 4 TABLE COMPARE 200 TERM (@) (048) 4 TERMINAL MODE NO TAG TIM ––– 2 TIMER 163 TIMH 015 3 HIGH-SPEED TIMER 166 TKY (211) 5 TEN KEY INPUT NO TAG TRSM 045 1 TRACE MEMORY SAMPLE NO TAG TST 350 5 BIT TEST 158 TSTN 351 5 BIT TEST NOT 158 TTIM 087 4 TOTALIZING TIMER 167 TXD (@) (236) 5 TRANSMIT NO TAG WDT (@) 094 2 WATCHDOG TIMER REFRESH NO TAG WSFT (@) 016 3 WORD SHIFT 179 XCHG (@) 073 3 DATA EXCHANGE 184 XDMR (@) (280) 5 EXPANSION DM READ NO TAG XFER (@) 070 4 BLOCK TRANSFER 183 XFR2 (@) (–––) 4 EM BLOCK TRANSFER 191 XFRB (@) (062) 4 TRANSFER BITS 190 XNRW (@) 037 4 EXCLUSIVE NOR 300 XORW (@) 036 4 EXCLUSIVE OR 299 ZCP (088) 4 AREA RANGE COMPARE 201 ZCPL (116) 5 DOUBLE AREA RANGE COMPARE 202 151 Capitolo 5-8 Istruzioni del diagramma a relè 5-8 Istruzioni del diagramma a relè Le istruzioni del diagramma a relè includono istruzioni a relè e istruzioni a blocco logico e corrispondono alle condizioni nel diagramma a relè. Le istruzioni a blocco logico sono usate per mettere in relazione parti più complesse. 5-8-1 LOAD, LOAD NOT, AND, AND NOT, OR e OR NOT Simboli per il diagramma a relè Aree dati operando B B: Bit LOAD – LD IR, SR, AR, HR, TC, LR, TR B: Bit B LOAD NOT – LD NOT IR, SR, AR, HR, TC, LR B: Bit B AND – AND IR, SR, AR, HR, TC, LR B: Bit B AND NOT – AND NOT IR, SR, AR, HR, TC, LR B: Bit OR – OR B OR NOT – OR NOT B IR, SR, AR, HR, TC, LR B: Bit IR, SR, AR, HR, TC, LR Limitazioni Non ci sono limitazioni al numero delle istruzioni o restrizioni all’ordine in cui queste devono essere utilizzate, posto come limite la capacità di memoria del PLC. Descrizione Queste sei istruzioni di base corrispondono alle condizioni di un diagramma a relè. Come descritto nel Capitolo 4 Scrittura e inserimento dei programmi, lo stato dei bit assegnati ad ogni istruzione determina le condizioni di esecuzione per tutte le altre istruzioni. Ognuna di queste istruzioni e ogni indirizzo di bit possono essere utilizzati tutte le volte che è necessario. Ciascuno può essere usato in tutte le istruzioni che si desidera. Lo stato del bit operando (B) assegnato a LD o LD NOT determina la prima condizione di esecuzione. AND prende l’AND logico fra la condizione di esecuzione e lo stato del suo bit operando; AND NOT, l’AND logico fra la condizione di esecuzione e l’inverso dello stato del suo bit operando. OR prende l’OR logico fra la condizione di esecuzione e lo stato del suo bit operando; OR NOT, l’OR logico fra la condizione di esecuzione e l’inverso dello stato del suo bit operando. Il simbolo a relè per caricare i bit TR è diverso da quello sopra descritto. Fare riferimento a 4-4-3 Istruzioni per il diagramma a relè per i dettagli. Flag Non ci sono flag influenzati da queste istruzioni. 5-8-2 AND LOAD e OR LOAD AND LOAD – AND LD Simbolo per il diagramma a relè OR LOAD – OR LD 00000 00002 00001 00003 00000 00001 00002 00003 Simbolo per il diagramma a relè 152 Capitolo 5-9 Istruzioni di controllo sui bit Descrizione Quando le istruzioni sono combinate in blocchi che non possono essere uniti logicamente usando solo operazioni OR e AND, vengono utilizzate AND LD e OR LD. Poiché le operazioni AND e OR uniscono logicamente lo stato di un bit a una condizione di esecuzione, AND LD e OR LD uniscono logicamente due condizioni di esecuzione, quella in corso e l’ultima non utilizzata. Per stilare i diagrammi a relè non sono necessarie le istruzioni AND LD e OR LD, né sono necessarie per inserire direttamente diagrammi a relè, come è possibile da LSS. Esse sono invece necessarie per convertire il programma ed inserirlo in forma mnemonica. Le relative procedure, le limitazioni per le diverse procedure e gli esempi sono riportati in 4-7 Inserimento, modifica e verifica del programma. Per ridurre il numero delle istruzioni di programmazione richieste, occorre avere una conoscenza di base delle istruzioni dei blocchi logici. Per un’introduzione ai blocchi logici, fare riferimento a 4-4-6 Istruzioni dei blocchi logici. Flag 5-9 Non ci sono flag influenzati da queste istruzioni. Istruzioni di controllo sui bit Le istruzioni che possono essere generalmente utilizzate per controllare lo stato di singoli bit sono cinque: OUT, OUT NOT, DIFU(013), DIFD(014) e KEEP(011). Queste istruzioni consentono di operare cambiamenti di stato sui bit con modalità differenti. 5-9-1 OUTPUT e OUTPUT NOT – OUT e OUT NOT OUTPUT – OUT Simbolo per il diagramma a relè Aree dati operando B: Bit B OUTPUT NOT – OUT NOT IR, SR, AR, HR, TC, LR, TR Simbolo per il diagramma a relè Aree dati operando B: Bit B IR, SR, AR, HR, TC, LR Limitazioni Un bit di uscita può essere generalmente utilizzato solo in un’istruzione che ne controlla lo stato. Fare riferimento a 3-3 Area IR per i dettagli. Descrizione OUT e OUT NOT sono utilizzate per controllare lo stato del bit designato a seconda della condizione di esecuzione. OUT attiva il bit designato a ON a fronte di una condizione di esecuzione ON, e a OFF per una condizione di esecuzione OFF. Con un bit TR, OUT appare a un punto di diramazione piuttosto che alla fine di una riga di istruzione. Fare riferimento a 4-7-7 Diramazione delle righe di istruzione per i dettagli. OUT NOT attiva il bit designato a ON a fronte di una condizione di esecuzione OFF, e a OFF per una condizione di esecuzione ON. OUT e OUT NOT possono essere utilizzati per controllare l’esecuzione forzando a ON e poi a OFF i bit che sono assegnati alle condizioni sul diagramma a relè, determinando quindi le condizioni di esecuzione per altre istruzioni. Ciò è particolarmente utile e permette di utilizzare una serie complessa di condizioni per controllare lo stato di un singolo bit di lavoro; questo bit di lavoro, poi, può essere usato per controllare altre istruzioni. Il periodo in cui un bit è ON o OFF può essere controllato dalla combinazione di OUT o OUT NOT con TIM. Fare riferimento agli esempi riportati in 5-14-1 TIMER – TIM per i dettagli. Flag Non ci sono flag influenzati da queste istruzioni. 153 Capitolo 5-9 Istruzioni di controllo sui bit 5-9-2 DIFFERENTIATE UP e DOWN – DIFU(013) e DIFD(014) Simboli per il diagramma a relè DIFU(013) B Aree dati operando B: Bit IR, AR, HR, LR DIFD(014) B B: Bit IR, AR, HR, LR Limitazioni Un bit di uscita può essere generalmente utilizzato solo in un’istruzione che ne controlla lo stato. Fare riferimento a 3-3 Area IR per i dettagli. Descrizione DIFU(013) e DIFD(014) sono utilizzate per attivare il bit designato a ON solo per una scansione. Ad ogni esecuzione, DIFU(013) confronta la condizione di esecuzione corrente con quella precedente. Se quest’ultima era OFF e quella corrente è ON, DIFU(013) attiverà il bit designato a ON. Se la condizione di esecuzione precedente era ON e quella corrente è ON o OFF, DIFU(013) attiverà il bit designato a OFF o lo lascerà OFF (cioè se il bit designato è già OFF). Il bit designato, pertanto, non sarà mai ON per un periodo superiore a una scansione, presupponendo che sia eseguito ad ogni scansione (vedere Precauzioni più avanti). Ad ogni esecuzione, DIFD(014) confronta la condizione di esecuzione corrente con quella precedente. Se quest’ultima era ON e quella corrente è OFF, DIFD(014) attiverà il bit designato a ON. Se la condizione di esecuzione precedente era OFF e quella corrente è ON o OFF, DIFD(014) attiverà il bit designato a OFF o lo lascerà OFF. Il bit designato, pertanto, non sarà mai ON per un periodo superiore a una scansione, presupponendo che sia eseguito ad ogni scansione (vedere Precauzioni più avanti). Queste istruzioni vengono utilizzate quando le istruzioni differenziali (cioè, quelle precedute da @) non sono disponibili e si richiede l’esecuzione di una particolare istruzione per una sola scansione. Esse possono anche essere usate con forme non differenziali di istruzioni che hanno forme differenziali, se il loro uso semplifica la programmazione. Degli esempi sono riportati più avanti. Flag Non ci sono flag influenzati da queste istruzioni. Precauzioni L’operazione DIFU(013) e DIFD(014) può essere incerta quando le istruzioni sono programmate tra IL e ILC, tra JMP e JME o nelle subroutine. Fare riferimento a 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003), 5-11 JUMP e JUMP END – JMP(004) e JME(005), e 5-24 Subroutine e controllo di interrupt per i dettagli. Esempio 1: Quando manca un’istruzione differenziale Nel diagramma A riportato sotto, ogni volta che CMP(020) viene eseguita con una condizione di esecuzione ON, essa confronterà il contenuto dei due canali dell’operando (HR 10 e DM 0000) e imposterà di conseguenza i flag aritmetici (GR, EQ, e LE). Se la condizione di esecuzione resta ON, lo stato del flag può essere cambiato ad ogni scansione se cambia il contenuto di uno o di entrambi gli operandi. Il diagramma B, tuttavia, è un esempio di come può essere utiliz- 154 Capitolo 5-9 Istruzioni di controllo sui bit zato DIFU(013) per accertarsi che CMP(020) venga eseguita solo una volta ogni volta che si attiva la condizione di esecuzione desiderata. 00000 CMP(020) HR 10 Diagramma A DM 0000 Indirizzo Istruzione 00000 00001 LD CMP(020) Operandi 00000 HR DM 10 0000 00000 DIFU(013) 22500 22500 CMP(020) HR 10 Diagramma B Esempio 2: Come semplificare la programmazione DM 0000 22500 MOV(021) 00003 HR 10 DM 0000 00004 00000 00001 00002 00003 LD DIFU(013) LD CMP(020) Operandi 00000 22500 22500 10 0000 Benché sia disponibile una forma differenziale di MOV(021), sarebbe molto complicato stilare il diagramma seguente utilizzandola, perché soltanto una delle condizioni che determinano la condizione di esecuzione per MOV(021) richiede un trattamento differenziale. DIFU(013) 22500 00002 Istruzione HR DM 00000 00001 Indirizzo 00005 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 LD DIFU(013) LD LD AND NOT AND NOT OR LD LD AND NOT OR LD MOV(021) Operandi 00000 22500 22500 00001 00002 00003 --00004 00005 --HR DM 10 0000 5-9-3 SET e RESET – SET e RSET Simboli per il diagramma a relè SET B Aree dati operando B: Bit IR, SR, AR, HR, LR RSET B B: Bit IR, SR, AR, HR, LR Descrizione SET commuta il bit operando ad ON quando la condizione di esecuzione è ON, e non influenza lo stato del bit operando quando la condizione di esecuzione è OFF. RSET commuta il bit operando ad OFF quando la condizione di esecuzione è ON e non influenza lo stato del bit operando quando la condizione di esecuzione è OFF. L’operazione SET differisce da quella di OUT perché questa commuta il bit operando ad OFF quando la sua condizione di esecuzione è ad OFF. Parimenti, RSET differisce da OUT NOT perché quest’ultima commuta ad ON il bit operando quando la sua condizione di esecuzione è ad OFF. Precauzioni Lo stato dei bit operandi per le istruzioni SET e RSET programmate tra IL(002) e ILC(003) oppure tra JMP(004) e JME(005) non cambierà quando si incontra l’interlock o una condizione di salto (cioè quando IL(002) o JMP(004) sono eseguite con una condizione di esecuzione OFF). 155 Capitolo 5-9 Istruzioni di controllo sui bit Flag Non ci sono flag influenzati da queste istruzioni. Esempi Gli esempi che seguono mostrano la differenza tra OUT e SET/RSET. Nel primo esempio (diagramma A), IR 10000 sarà commutato ad ON o ad OFF ogni volta che IR 00000 va a ON o a OFF. Nel secondo esempio (diagramma B), IR 10000 sarà commutato ad ON quando IR 00001 diventa ON e rimarrà ad ON (anche se IR 00001 va ad OFF) finché IR 00002 non va ad ON. 00000 10000 Indirizzo 00000 00001 Diagramma A Istruzione Operandi LD OUT 00000 10000 00001 SET 10000 Indirizzo 00000 00001 00002 00003 00002 RSET 10000 Diagramma B Istruzione Operandi LD SET LD RSET 00001 10000 00002 10000 5-9-4 KEEP – KEEP(011) Simbolo per il diagramma a relè Aree dati operando S KEEP(011) B R B: Bit IR, AR, HR, LR Limitazioni Un bit di uscita può essere generalmente utilizzato solo in un’istruzione che ne controlla lo stato. Fare riferimento a 3-3 Area IR per i dettagli. Descrizione KEEP(011) è usata per mantenere lo stato del bit designato appoggiandosi a due condizioni di esecuzione. Queste condizioni di esecuzione sono contrassegnate con S e R. S è l’ingresso di attivazione (set), R è quello di reset. KEEP(011) funziona come un relè di blocco che è attivato da S e resettato da R. Quando S si abilita (ON), il bit designato verrà posto ad ON fino al ripristino, indipendentemente dai successivi stati di S che possono essere sia ON che OFF. Quando R si abilita, il bit designato verrà posto ad OFF fino al ripristino, indipendentemente dai successivi stati di R che possono essere sia ON che OFF. La relazione tra le condizioni di esecuzione e lo stato del bit KEEP(011) è illustrata qui di seguito. Condizione di esecuzione S Condizione di esecuzione R Stato di B KEEP(011) funziona come il bit di autoritenuta descritto in 4-8-3 Bit di autoritenuta. I due diagrammi seguenti funzionerebbero in modo identico, sebbene 156 Capitolo 5-9 Istruzioni di controllo sui bit quello che utilizza KEEP(011) richieda la programmazione di un’istruzione in meno e conservi lo stato anche in una sezione interbloccata del programma. 00002 00003 00500 00500 00002 Indirizzo Istruzione 00000 00001 00002 00003 LD OR AND NOT OUT Operandi 00002 00500 00003 00500 S KEEP(011) 00500 00003 R Indirizzo Istruzione 00000 00001 00002 LD LD KEEP(011) Operandi 00002 00003 00500 Flag Non c’è nessun flag interessato da questa istruzione. Precauzioni Fare attenzione quando si utilizza una riga di reset KEEP controllata da un dispositivo esterno normalmente chiuso. Non utilizzare mai un bit di ingresso in condizione negata per il reset (R) per KEEP(011) quando il dispositivo di ingresso utilizza alimentazione in CA. Il ritardo nello spegnimento dell’alimentazione in CC del PLC (relativo all’alimentazione in CA del dispositivo di ingresso) può causare il ripristino del bit designato di KEEP(011). Questa situazione è illustrata di seguito. Unità di ingresso A S KEEP(011) MAI B A R I bit utilizzati in KEEP non vengono resettati negli interblocchi. Fare riferimento a 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) per i dettagli. Esempio Se si utilizza un bit HR o AR, lo stato del bit resterà memorizzato anche durante un’interruzione dell’alimentazione. KEEP(011) può pertanto essere usato per programmare i bit che conserveranno lo stato dopo il riavvio del PLC in seguito a un’interruzione dell’alimentazione. Di seguito è riportato un esempio utilizzabile per produrre una visualizzazione di avvertimento susseguente a una disattivazione del sistema per una situazione di emergenza. I bit 00002, 00003 e 00004 sarebbero attivati ad ON per indicare qualunque tipo di errore. Il bit 00005 passerebbe a ON per resettare la visualizzazione di avvertimento. HR 0000, che passa a ON quando uno qualsiasi dei tre bit indica una situazione di emergenza, è usato per attivare a ON la spia di avvertimento fino a 00500. 00002 S KEEP(011) 00003 Indica situazione di emergenza HR 0000 00004 R Ingresso di reset 00005 HR 0000 00500 Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD OR OR LD KEEP(011) LD OUT Operandi HR HR 00002 00003 00004 00005 0000 0000 00500 Attiva visualizzazione di avvertimento KEEP(011) può anche essere combinato con TIM per produrre ritardi nel passaggio dei bit tra ON e OFF. Fare riferimento a 5-14-1 TIMER – TIM per i dettagli. 157 Capitolo 5-9 Istruzioni di controllo sui bit 5-9-5 BIT TEST: TST(350) e TSTN(351) Simboli per il diagramma a relè Aree dati operando TST(350) TSTN(351) S: Canale origine S S IR, SR, AR, DM, EM, HR, LR N N N: Numero bit --- --- IR, SR, AR, DM, EM, HR, TC, LR, # Limitazioni Qualsiasi bit di uscita può generalmente essere utilizzato in un’unica istruzione che ne controlla lo stato. Fare riferimento a 3-3 Area IR per dettagli. Descrizione TST(350) imposta la condizione di esecuzione su ON quando il bit specificato nel canale specificato è ON e su OFF quando il bit è OFF. TSTN(351) imposta la condizione di esecuzione su OFF quando il bit specificato nel canale specificato è ON e su ON quando il bit è OFF. La posizione del bit è designata in N tra 0000 e 0015 in BCD. Precauzioni TST(350) e TSTN(351) non possono essere utilizzati come istruzioni meno significative, cioè deve apparire tra esse un’altra istruzione e la le istruzioni successive. N deve essere in BCD tra 0000 e 0015. Flag ER: N non è in BCD da 0000 a 0015. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Esempio Nella prima riga di istruzione di seguito riportata, quando IR 00000 è impostato su ON, TST(350) controlla se il bit specificato (bit 00 in DM 0010) è ON o OFF. In tal caso, poiché è ON, IR 05000 viene impostato su ON. Nella seconda riga di istruzione di seguito riportata, quando IR 00001 viene impostato su ON, TST(350) controlla se il specificato (bit 05 in DM 0020) è ON o OFF. In tal caso, poiché è OFF, IR 05001 viene impostato su ON. Indirizzo Istruzione 00000 LD 00001 TST(350) Operandi 00000 DM 0010 #0000 00002 OUT 05000 00003 LD 00001 00004 TSTN(351) DM 0020 #0005 00005 OUT DM 0010 Bit designato DM 0020 Bit designato 158 05001 Capitolo 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) 5-10 INTERLOCK e INTERLOCK CLEAR – IL(002) e ILC(003) Descrizione Simbolo per il diagramma a relè IL(002) Simbolo per il diagramma a relè ILC(003) IL(002) è usata sempre abbinata a ILC(003) per creare interblocchi che sono utilizzati per effettuare diramazioni allo stesso modo dei bit TR, ma il trattamento delle istruzioni tra IL(002) e ILC(003) differisce da TR quando la condizione di esecuzione di IL(002) è OFF. Se la condizione di esecuzione di IL(002) è ON, il programma sarà eseguito come scritto, con una condizione di esecuzione ON usata per far partire ogni riga di istruzione dal punto in cui è situata IL(002) fino alla successiva ILC(003). Per le descrizioni generali di entrambi i metodi, fare riferimento a 4-7-7 Diramazione delle righe di istruzione. Se la condizione di esecuzione per IL(002) è OFF, la sezione interbloccata tra IL(002) e ILC(003) sarà trattata come mostrato nella tabella seguente: Istruzione Trattamento OUT e OUT NOT Bit designato passato ad OFF. SET e RSET Stato del bit mantenuto. TIM e TIMH(015) Reset. TTIM(087) PV mantenuto. CNT, CNTR(012) PV mantenuto. KEEP(011) Stato del bit mantenuto. DIFU(013) e DIFD(014) Non eseguite (vedere la sezione successiva DIFU(013) e DIFD(014) in interblocchi). Non eseguite. Tutte le altre Non è necessario che IL(002) e ILC(003) siano accoppiate. IL(002) può essere utilizzata spesso in una riga, ed ogni IL(002) crea una sezione interbloccata fino alla successiva ILC(003). ILC(003) non può essere utilizzata se non in combinazione con almeno una IL(002) posta fra essa e la precedente ILC(003). DIFU(013) e DIFD(014) in interblocchi I cambiamenti nella condizione di esecuzione per DIFU(013) o DIFD(014) non sono registrati se DIFU(013) o DIFD(014) si trovano in una sezione interbloccata e la condizione di esecuzione per IL(002) è OFF. Quando DIFU(013) o DIFD(014) è in esecuzione in una sezione interbloccata immediatamente dopo l’abilitazione della condizione di esecuzione per IL(002), la condizione di esecuzione per DIFU(013) o DIFD(014) verrà paragonata alla condizione di esecuzione esistente prima che divenisse operativo l’interblocco (cioè prima che la condizione di interblocco per IL(002) diventasse OFF). Il diagramma a relè e le variazioni di stato dei bit sono illustrati di seguito. L’interblocco è effettivo mentre 00000 è OFF. Si noti che 01000 non è a ON al punto contrassegnato A anche se 00001 è stato messo a OFF e poi a ON. 00000 IL(002) 00001 DIFU(013) 01000 ILC(003) A Indirizzo Istruzione 00000 00001 00002 00003 00004 LD IL(002) LD DIFU(013) ILC(003) Operandi 00000 00001 01000 ON 00000 OFF ON 00001 OFF ON 01000 OFF Precauzioni Una ILC(003) deve sempre seguire una o più IL(002). 159 Capitolo 5-11 JUMP e JUMP END – JMP(004) e JME(005) Sebbene possano essere usate tutte le istruzioni IL(002) richieste con un solo ILC(003), le istruzioni ILC(003) non possono essere utilizzate consecutivamente senza l’interposizione di almeno una IL(002): non è pertanto possibile l’annidamento. Ogniqualvolta viene eseguita una ILC(003), saranno cancellati tutti gli interblocchi tra la ILC(003) attiva e la ILC(003) precedente. Quando si utilizza più di una IL(002) con una sola ILC(003), all’esecuzione del programma di controllo apparirà un messaggio di errore, ma l’esecuzione procederà normalmente. Flag Non ci sono flag influenzati da queste istruzioni. Esempio Nel diagramma seguente si può vedere che IL(002) viene usata due volte con una sola ILC(003). Indirizzo 00000 IL(002) 00001 TIM TIM511 511 #0015 001,5 s Istruzione 00000 00001 00002 00003 LD IL(002) LD TIM 00004 00005 00006 00007 00008 00009 LD IL(002) LD AND NOT LD CNT 00010 00011 00012 LD OUT ILC(003) 00002 00100 00000 # IL(002) 00003 Operandi 00004 CP R CNT 001 IR 010 00005 00502 ILC(003) 00001 511 0015 00002 00003 00004 00100 001 010 00005 00502 Quando la condizione di esecuzione della prima IL(002) è OFF, TIM 511 sarà posizionato su 1,5 s, CNT 001 non cambierà e 00502 sarà OFF. Quando la condizione di esecuzione della prima IL(002) è ON e quella della seconda IL(002) è OFF, TIM 511 verrà eseguito a seconda dello stato di 00001, CNT 001 non cambierà e 00502 sarà OFF. Quando le condizioni di esecuzione per entrambe le IL(002) saranno ON, il programma sarà eseguito integralmente. 5-11 JUMP e JUMP END – JMP(004) e JME(005) Simboli per il diagramma a relè JMP(004) N Valori dell’identificatore N: numero di salto # (da 00 a 99) JME(005) N N: numero di salto # (da 00 a 99) Limitazioni I numeri di salto da 01 a 99 possono essere utilizzati solo una volta sia per JMP(004) che per JME(005), cioè ogni valore può definire solo un salto. Il numero di salto 00 può essere usato illimitatamente. Descrizione JMP(004) è sempre usata abbinata a JME(005) per creare salti, cioè per passare da un punto all’altro del diagramma a relè. JMP(004) definisce il punto da cui il salto verrà eseguito; JME(005) definisce il punto di destinazione del salto. Quando la condizione di esecuzione di JMP(004) è ON, non vengono fatti salti e il programma viene eseguito in sequenza come scritto. Quando la condizione di esecuzione di JMP(004) è OFF, viene eseguito un salto all’istruzione JME(005) con lo stesso valore, e l’istruzione che segue JME(005) viene successivamente eseguita. 160 Capitolo 5–12 END – END (001) Se il numero di salto per JMP(004) è compreso tra 01 e 99, i salti, quando eseguiti, vanno immediatamente alla JME(005) con lo stesso numero di salto senza, nel frattempo, eseguire alcuna istruzione. Lo stato dei timer, dei counter, dei bit usati in OUT, dei bit usati in OUT NOT e di tutti gli altri bit di stato controllati dalle istruzioni tra JMP(004) e JMP(005), non verrà modificato. Ognuno di questi numeri di salto può essere usato per definire soltanto un salto. Poiché tutte le istruzioni tra JMP(004) e JME(005) sono omesse, i numeri di salto fra 01 e 99 possono essere usati per ridurre il tempo di scansione. Se il numero di salto per JMP(004) è 00, la CPU cercherà la successiva JME(005) con un numero di salto 00. Per far ciò deve cercare nel programma, causando un tempo di scansione maggiore (quando la condizione di esecuzione è OFF) che non per gli altri salti. Lo stato dei timer, counter, bit usati in OUT, bit usati in OUT NOT e tutti gli altri stati controllati dalle istruzioni tra JMP(004) 00 e JMP(005) 00 non verrà variato. Il numero di salto 00 può essere usato tutte le volte che si desidera. Un salto da JMP(004) 00 andrà sempre alla successiva JME(005) 00 del programma. E’ quindi possibile utilizzare JMP(004) 00 consecutivamente o accoppiarli tutti con lo stesso JME(005) 00. Non ha significato, tuttavia, usare JME(005) 00 consecutivamente, perché tutti i salti finiscono alla prima JME(005) 00. DIFU(013) e DIFD(014) nei salti Anche se DIFU(013) e DIFD(014) hanno il compito di porre a ON il bit designato per una scansione, non lo faranno necessariamente quando sono scritti tra JMP(004) e JME(005). Una volta che DIFU(013) o DIFD(014) ha posto un bit a ON, rimarrà ON fino alla successiva esecuzione di DIFU(013) o DIFD(014). Nella programmazione normale, questo significa alla scansione successiva. In un salto, questo significa la volta successiva in cui non viene eseguito il salto da JMP(004) a JME(005), es.: se un bit è abilitato (ON) da DIFU(013) o DIFD(014) e un salto è fatto alla scansione successiva, cosicché l’esecuzione di DIFU(013) o DIFD(014) è omessa, il bit designato rimarrà ON fino a quando la condizione di esecuzione per JMP(004), che controlla il salto, è ON. Precauzioni Quando JMP(004) e JME(005) non vengono utilizzate accoppiate, all’esecuzione del controllo di programma apparirà un messaggio di errore. Sebbene questo messaggio appaia anche se JMP(004) 00 e JME(005) 00 non sono usate in coppia, il programma sarà eseguito esattamente come scritto. Flag Non ci sono flag influenzati da queste istruzioni. Esempi Esempi di programmi di salto sono riportati nel paragrafo 4-7-8 Salti. 5-12 END – END(001) Simbolo per il diagramma a relè Descrizione END(001) END(001) deve essere l’ultima istruzione in ogni programma. Se ci sono subroutine, END(001) è situata dopo l’ultima subroutine. Nessuna istruzione scritta dopo END(001) sarà eseguita. END(001) può trovarsi dovunque nel programma per eseguire tutte le istruzioni fino a quel punto, come talvolta accade per eliminare gli errori da un programma, ma deve essere rimossa per eseguire il resto del programma. Se nel programma manca END(001), nessuna istruzione verrà eseguita e apparirà il messaggio di errore “NO END INST”. Flag END(001) fa passare a OFF i flag ER, CY, GR, EQ e LE. 161 Capitolo 5-14 Istruzioni Timer e Counter 5-13 NO OPERATION – NOP(000) Descrizione NOP(000) generalmente non è richiesta nella programmazione e non esiste per essa una simbologia del diagramma a relè. Quando in un programma si incontra NOP(000), non viene eseguito niente e l’esecuzione del programma passa all’istruzione successiva. Quando si cancella la memoria prima della programmazione, NOP(000) viene scritta in tutti gli indirizzi. NOP(000) può essere inserita con il codice di funzione 000. Flag Non ci sono flag influenzati da NOP(000). 5-14 Istruzioni Timer e Counter TIM e TIMH sono istruzioni di decremento di un temporizzatore con ritardo all’eccitazione, richiedono un numero TC e un valore di predisposizione (SV). CNT è un’istruzione di decremento del contatore e CNTR è un’istruzione di contatore reversibile. Entrambe necessitano di un numero TC e di un valore SV. Inoltre, entrambe sono collegate a righe di istruzioni multiple che servono come segnali di ingresso e di ripristino. Un numero TC non può essere definito due volte, cioè una volta che è stato usato come identificatore in una istruzione Timer o Counter, non può essere utilizzato ancora. Quando sono definiti, i numeri TC possono essere utilizzati quanto si vuole come operandi in altre istruzioni, oltre che in quelle Timer e Counter. I numeri TC vanno da 000 a 511. Non occorre il prefisso quando si usano come identificatori in istruzioni Timer o Counter. Una volta che il numero TC è stato definito come timer, gli si può assegnare il prefisso TIM per utilizzarlo come un operando in determinate istruzioni. Questo prefisso è usato indipendentemente dall’istruzione Timer che è stata usata per definire il timer. Una volta che un numero TC è stato definito come counter, gli si può assegnare il prefisso CNT per utilizzarlo come un operando in determinate istruzioni. Anche questo prefisso è utilizzato indipendentemente dall’istruzione di counter che è stata usata per definire il counter. I numeri TC possono essere designati come operandi di istruzioni che richiedono sia dati di tipo bit sia dati di tipo canale. Quando il numero TC è definito come un operando che richiede dati di tipo bit, fornisce un bit che ha il significato di “flag di fine conteggio”, per indicare quando il tempo/conteggio è finito; il bit, che è normalmente OFF, si posizionerà a ON quando il valore SV predisposto sarà trascorso. Quando il numero TC è designato come un operando che richiede dati di tipo canale, fornisce una locazione di memoria che contiene il valore corrente (PV) del timer o counter. Il valore PV di un timer o counter può quindi essere usato come un operando in CMP(020), o in qualsiasi altra istruzione per la quale è ammessa l’area TC. Ciò è fatto designando il numero TC utilizzato per definire l’accesso di quel timer o counter alla locazione di memoria dove è contenuto il valore PV. Si noti che “TIM 000” viene usato per designare l’istruzione Timer definita con il numero TC 000, per designare il flag di fine conteggio per questo timer, e per designare il valore PV di questo timer. Nel contesto il significato del termine dovrebbe essere chiaro: il primo è sempre un’istruzione, il secondo è sempre un bit operando e il terzo è sempre un canale operando. Lo stesso vale per tutti gli altri numeri TC con prefisso TIM o CNT. Un valore SV può essere inserito come costante o canale in un’area dati. Se un canale dell’area IR assegnato ad un’Unità di Ingresso è designato come indirizzo canale, l’Unità di Ingresso può essere collegata in modo tale che il valore SV può essere predisposto esternamente per mezzo di contraves o simili. In modalità RUN o MONITOR i timer e counter collegati in questo modo possono essere predisposti solo esternamente. Tutti i valori SV, compresi quelli predisposti esternamente, devono essere in BCD. 162 Capitolo 5-14 Istruzioni Timer e Counter 5-14-1 TIMER – TIM Valori dell’identificatore N: numero TC Simbolo per il diagramma a relè # (da 000 a 511) TIM N Aree dati operando SV SV: valore impostato (canale, BCD) IR, AR, DM, HR, LR, # Limitazioni Il valore SV è compreso tra 000,0 e 999,9. Il punto decimale non è inserito. Ogni numero TC può essere usato come identificatore in una sola istruzione di timer o counter. I numeri da TC 000 a TC 015 non dovrebbero essere usati in TIM se sono necessarie le istruzioni TIMH(015). Fare riferimento a 5-14-2 HIGH–SPEED TIMER – TIMH(015) per i dettagli. Descrizione Un timer è attivato quando la sua condizione di esecuzione diventa ON ed è ripristinato (al valore SV) quando la condizione di esecuzione diventa OFF. Una volta attivato, TIM decrementa il SV in unità di 0,1 secondo. Se la condizione di esecuzione rimane a ON sufficientemente a lungo perché il tempo di TIM si azzeri, il flag di fine conteggio per il numero TC usato si abiliterà e rimarrà a ON fino a che TIM non sarà ripristinato (cioè fino a che la sua condizione di esecuzione diventa OFF). La seguente illustrazione mostra la relazione fra la condizione di esecuzione di TIM e il flag di fine conteggio ad esso assegnato. ON Condizione di esecuzione OFF Flag di fine conteggio OFF ON SV Precauzioni SV I timer nelle sezioni interbloccate del programma sono ripristinati quando la condizione di esecuzione per IL(002) è OFF. Anche le interruzioni dell’alimentazione ripristinano i timer. Se viene richiesto un timer che non sia azzerato da queste condizioni, gli impulsi dei bit dei clock interni dell’area SR possono essere conteggiati usando l’istruzione CNT. Fare riferimento a 5-14-4 COUNTER – CNT per i dettagli. L’esecuzione del programma continuerà anche se viene utilizzato un valore SV non BCD, ma la temporizzazione non sarà precisa. Flag ER: Il valore SV non è in BCD. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, o è stato superato il confine dell’area DM). Esempi Tutti gli esempi seguenti utilizzano OUT nei diagrammi che generalmente verrebbero usati per controllare i bit di uscita nell’area IR. Non c’è ragione, tuttavia, perché questi diagrammi non possano essere modificati per controllare l’esecuzione di altre istruzioni. Esempio 1: Applicazione base L’esempio seguente mostra due temporizzatori, uno impostato con una costante e uno impostato con il canale di ingresso 005. 00200 sarà attivato a ON dopo che 00000 passa a ON e resta tale per almeno 15 secondi. Quando 00000 va ad OFF, il temporizzatore sarà resettato e 00200 verrà passato ad OFF. Quando 00001 si attiva a ON, TIM 001 è avviato dal SV fornito attraverso il canale IR 005. Anche il bit 00201 è passato a ON quando 00001 va a ON. Quando SV in 005 è trascorso, 00201 è passato a OFF. Anche questo bit sarà 163 Capitolo 5-14 Istruzioni Timer e Counter passato a OFF quando TIM 001 viene resettato, indipendentemente dal fatto che SV è trascorso o meno. 00000 Address TIM 000 #0150 015.0 s Instruction 00000 00001 LD TIM 00002 00003 00004 00005 LD OUT LD TIM 00006 00007 AND NOT OUT Operands 00000 000 #0150 TIM 000 00200 00001 001 005 TIM 001 00200 TIM 000 00200 00001 TIM 001 IR 005 IR 005 TIM 001 00201 Esempio 2: Temporizzatori estesi Sono due i modi per ottenere temporizzatori che funzionano per più di 999,9 secondi. Un metodo consiste nel programmare temporizzatori consecutivi, con il flag di fine conteggio di ciascun temporizzatore utilizzato per attivare il temporizzatore successivo. Di seguito è riportato un semplice esempio con due temporizzatori a 900,0 secondi (15 minuti) accoppiati a formare dal punto di vista funzionale un temporizzatore a 30 minuti. 00000 Indirizzo TIM 001 #9000 Istruzione 900,0 s 00000 00001 LD TIM 900,0 s 00002 00003 LD TIM 00004 00005 LD OUT TIM 001 TIM 002 #9000 TIM 002 00200 Operandi # TIM # TIM 00000 001 9000 001 002 9000 002 00200 In questo esempio, 00200 verrà passato ad ON 30 minuti dopo che 00000 va a ON. TIM può anche essere combinato con CNT oppure CNT può essere usato per contare i bit dell’impulso di clock dell’area SR per ottenere temporizzatori con una maggiore durata. Un esempio è riportato in 5-14-4 COUNTER – CNT. Esempio 3: Ritardi ON/OFF TIM può essere combinato con KEEP(011) per ritardare il passaggio di un bit tra ON e OFF in riferimento a una condizione di esecuzione richiesta. KEEP(011) è descritta in 5-9-4 KEEP – KEEP(011). Per creare i ritardi, i flag di fine conteggio per due TIM sono usati per definire le condizioni di esecuzione per la configurazione e il reset del bit designato per KEEP(011). Il bit il cui trattamento deve essere ritardato è utilizzato in KEEP(011). Commutando tra ON e OFF il bit designato per KEEP(011) viene pertanto ritardato da SV per due TIM. I due SV possono naturalmente essere gli stessi se richiesto. Nell’esempio seguente, 00500 viene passato a ON 5,0 secondi dopo che 00000 viene attivato a ON e poi passato a OFF 3,0 secondi dopo che 00000 va a OFF. E’ necessario usare sia 00500 che 00000 per definire la condizione di esecuzione per TIM 002; 00000 in una condizione inversa è necessario per resettare 164 Capitolo 5-14 Istruzioni Timer e Counter TIM 002 quando 00000 va a ON e 00500 è necessario per attivare TIM 002 (quando 00000 è a OFF). 00000 Indirizzo TIM 001 #0050 Istruzione 005,0 s 00000 00001 LD TIM 003,0 s 00002 00003 00004 LD AND NOT TIM 00005 00006 00007 LD LD KEEP(011) 00500 00000 # TIM 002 #0030 TIM 001 S KEEP(011) 00500 TIM 002 Operandi R # TIM TIM 00500 00000 001 0050 00500 00000 002 0030 001 002 00000 00500 5,0 s Il tempo durante il quale un bit è tenuto a ON o OFF può essere controllato combinando TIM con OUT o OUT NOT. Il diagramma seguente mostra come ciò sia possibile. In questo esempio, 00204 resta a ON per 1,5 secondi dopo che 00000 passa a ON indipendentemente dal tempo in cui 00000 resta a ON. Questo risultato viene raggiunto usando 01000 come bit di autoritenuta attivato da 00000 e passando a ON 00204 attraverso di esso. Quando TIM 001 si attiva a ON (cioè quando il valore SV di TIM 001 è trascorso), 00204 sarà passato a OFF tramite TIM 001 (cioè TIM 001 passa a ON, il che, come condizione inversa, crea una condizione di esecuzione OFF per OUT 00204). Esempio 4: Bit passo–passo 01000 3,0 s TIM 001 01000 00000 01000 TIM 001 #0015 001,5 s Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 LD AND NOT OR OUT LD TIM 00006 00007 00008 LD AND NOT OUT Operandi TIM # 01000 TIM 001 00204 TIM 01000 001 00000 01000 01000 001 0015 01000 001 00204 00000 00204 1,5 s 1,5 s Il seguente temporizzatore passo–passo può essere usato per risparmiare memoria. 00000 Indirizzo TIM 001 #0015 00100 TIM 001 001,5 s Istruzione 00000 00001 00002 LD OR TIM 00003 00004 AND NOT OUT 00100 Operandi # TIM 00000 00100 001 0015 001 00100 165 Capitolo 5-14 Istruzioni Timer e Counter I bit possono essere programmati per passare a ON e OFF a intervalli regolari mentre una condizione di esecuzione designata si trova a ON utilizzando TIM due volte. Un TIM consente di attivare a ON e OFF un bit specificato, cioè il flag di fine conteggio di questo TIM fa passare il bit specificato a ON e OFF. L’altro TIM consente di controllare il funzionamento del primo TIM, cioè quando il flag di fine conteggio del primo TIM va a ON, viene avviato il secondo TIM e quando il flag di fine conteggio del secondo TIM va a ON, viene avviato il primo TIM. Esempio 5: Bit intermittente 00000 TIM 002 Indirizzo TIM 001 #0010 1,0 s TIM 001 TIM 002 #0015 TIM 001 Istruzione 00000 00001 00002 LD AND TIM 00003 00004 LD TIM 00005 00006 LD OUT Operandi 00000 002 001 0010 001 002 0015 001 00205 TIM # TIM 1,5 s 00205 # TIM 00000 00205 1,0 s 1,5 s 1,0 s 1,5 s Un metodo più semplice ma meno flessibile per creare un bit intermittente è quello di effettuare l’AND di uno dei bit dell’impulso di clock dell’area SR con la condizione di esecuzione che deve essere ON quando il bit intermittente è operativo. Benché questo metodo non utilizzi TIM, viene qui riportato per confronto. Questo metodo è più limitato perché i tempi di ON e OFF devono essere gli stessi e dipendono dai bit dell’impulso di clock disponibili nell’area SR. Nell’esempio seguente, l’impulso di clock di 1 secondo (25502) è utilizzato in modo che 00206 passi a ON e OFF ogni secondo, cioè è ON per 0,5 secondi e OFF per 0,5 secondi. Una precisa temporizzazione e lo stato iniziale di 00206 dipendono dallo stato dell’impulso di clock quando 00000 va a ON. Indirizzo 00000 25502 00206 00000 00001 00002 Istruzione Operandi LD AND OUT 00000 25502 00206 5-14-2 HIGH–SPEED TIMER - TIMH(015) Valori dell’identificatore Simbolo per il diagramma a relè TIMH (015) N N: numero TC # (da 000 a 511, anche se preferibilmente da 000 a 015) SV Aree dati operando SV: valore impostato (canale, BCD) IR, AR, DM, HR, LR, # Limitazioni 166 Il valore SV è compreso fra 00,00 e 99,99. (Anche se 00,00 e 00,01 possono essere impostati, 00,00 disabiliterà il temporizzatore, cioè attiverà immediatamente il flag di fine conteggio e 00,01 non sarà scandito in modo affidabile). Il punto decimale non deve essere inserito. Ogni numero TC può essere usato come identificatore solo in una istruzione TIMER o COUNTER. Se il tempo di scansione è maggiore di 10 ms, utilizzare i numeri TC da 000 a 015. I PV e i flag di fine conteggio dei temporizzatori da 000 a 015 sono rinfre- Capitolo 5-14 Istruzioni Timer e Counter scati ogni 10 ms, mentre i PV dei temporizzatori da 016 a TC 511 sono rinfrescati ogni volta che TIMH(015) viene eseguito nel programma. Descrizione TIMH(015) funziona nello stesso modo di TIM salvo che TIMH misura in unità di 0,01 secondi. Il tempo di scansione influisce sulla precisione di TIMH(015) se si utilizzano i numeri TC da 016 a 511. Se il tempo di scansione è maggiore di 10 ms, utilizzare i numeri TC da 000 a 015. Fare riferimento a 5-14-1 TIMER – TIM per i dettagli operativi e gli esempi. Ad eccezione di quanto sopra riportato, tutti gli aspetti dell’operazione sono gli stessi. Precauzioni I temporizzatori nelle sezioni interbloccate del programma sono resettati quando la condizione di esecuzione per IL(002) è OFF. Anche le interruzioni dell’alimentazione causano il reset dei temporizzatori. Se è richiesto un timer che non è resettato in queste condizioni, i bit dell’impulso di clock dell’area SR possono essere contati per produrre temporizzatori utilizzando CNT. Fare riferimento a 5-14-4 COUNTER – CNT per i dettagli. Quando si passa tra le istruzioni TIM e TIMH(015) durante le operazioni di modifica in linea, resettare il Flag di completamento per l’istruzione TIM. L’istruzione TIM non verrà eseguita in modo adeguato, a meno che non viene resettato il Flag di completamento. E’ necessario essere nella modalità PROGRAM per passare tra queste istruzioni. Il programma continuerà ad essere eseguito anche se si utilizza un SV non BCD, ma la temporizzazione non sarà precisa. Flag ER: Il valore SV non è in BCD. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, o è stato superato il confine dell’area DM). 5-14-3 TOTALIZING TIMER – TTIM(087) Valori dell’identificatore Simbolo per il diagramma a relè N: numero TC # (da 000 a 511) TTIM (087) N SV RB Aree dati operando SV: valore impostato (canale, BCD) IR, AR, DM, HR, LR RB: Bit di reset IR, SR, AR, HR, LR Limitazioni Il valore SV è compreso fra 0000 e 9999 (000,0 e 999,9 s) e deve essere in BCD. Il punto decimale non è inserito. Ogni numero TC può essere usato come identificatore in una sola istruzione TIMER o COUNTER. Descrizione TTIM(087) è usato per creare un temporizzatore che incrementa PV ogni 0,1 s a un valore tra 0,1 e 999,9 s. TTIM(087) aumenta a partire da zero in unità di 0,1 secondi. L’accuratezza TTIM(087) è +0,0/–0,1 secondi. Un temporizzatore TTIM(087) esegue la temporizzazione quando la sua condizione di esecuzione è ON finché raggiunge il valore SV o finché RB passa a ON per resettare il temporizzatore. I temporizzatori TTIM(087) eseguiranno la temporizzazione solo se vengono eseguiti ad ogni ciclo, cioè non segnano il tempo, ma mantengono il valore PV corrente, nelle sezioni interbloccate del programma o quando vengono saltati nel programma. I PV e i flag di fine conteggio dei temporizzatori da 000 a 015 sono rinfrescati ogni 10 ms, ma i PV dei temporizzatori da 016 a TC 511 sono rinfrescati ogni volta che TTIM(087) viene eseguito nel programma. 167 Capitolo 5-14 Istruzioni Timer e Counter Precauzioni I valori PV dei temporizzatori totalizzatori nelle sezioni interbloccate del programma sono mantenuti quando la condizione di esecuzione per IL(002) è OFF. Diversamente dai temporizzatori e dai temporizzatori ad alta velocità, i temporizzatori totalizzatori nelle sezioni del programma saltate non continuano la temporizzazione, ma conservano il valore PV. Le interruzioni dell’alimentazione resetteranno i temporizzatori. I temporizzatori totalizzatori non si riavvieranno dopo il time out a meno che il PV non sia modificato in un valore inferiore a SV o l’ingresso di reset sia passato ad ON. Un ritardo di una scansione è talvolta necessario perché un flag di fine conteggio vada a ON dopo che il temporizzatore è passato in time out. Flag ER (SR 25503): Il contenuto del canale DM non è in BCD quando configurato per BCD. Il valore SV non è in BCD. Esempio La figura seguente illustra la relazione tra le condizioni di esecuzione per un temporizzatore totalizzatore con un valore impostato di 2 s, il suo PV e il flag di fine conteggio. 00000 TTIM(087) TIM000 #0020 Indirizzo Istruzione 00000 00001 LD TTIM(087) Operandi 00000 TIM # LR LR 2100 000 0020 2100 Ingresso temporizzatore (I: IR 00000) Bit di reset (RB: LR 2100) Flag di fine conteggio (TIM 000) Valore corrente: 0020 0000 5-14-4 COUNTER – CNT Valori dell’identificatore Simbolo per il diagramma a relè N: numero TC # (000 fino a 511) CP R CNT N SV Aree dati operando SV: valore impostato (canale, BCD) IR, AR, DM, HR, LR, # Limitazioni Ogni numero TC può essere usato come identificatore in una sola istruzione TIMER o COUNTER. Descrizione CNT è usato per decrementare il valore SV quando la condizione di esecuzione dell’impulso di conteggio (CP) da OFF diventa ON, cioè il valore corrente (PV) sarà diminuito di uno ogni volta che sarà eseguita l’istruzione CNT con una condizione di esecuzione ON per CP e una condizione OFF per l’ultima esecuzione. Se non è cambiata la condizione di esecuzione o se è passata da ON a OFF, il valore PV del CNT non cambia. Il flag di fine conteggio di un counter è abilitato (ON) quando il valore PV raggiunge zero e rimane ON fino a che il counter non è resettato. CNT è ripristinato con un ingresso di reset (R). Quando R va da OFF a ON, il valore PV è ripristinato al valore SV. Il valore PV non sarà decrementato mentre 168 Capitolo 5-14 Istruzioni Timer e Counter R è ON. Il conteggio decrescente dal valore SV ricomincerà quando R diventerà OFF. Il valore PV per il CNT non sarà azzerato nelle sezioni di programma interbloccate o in caso di interruzioni di alimentazione. Le variazioni nelle condizioni di esecuzione, i flag di fine conteggio ed il valore PV sono illustrati qui di seguito. La differenza di altezza della linea del valore PV ha unicamente un valore indicativo delle variazioni del PV. Condizione di esecuzione sull’impulso di conteggio (CP) ON Condizione di esecuzione sul reset (R) ON OFF OFF ON Flag di completamento OFF SV SV PV 0002 SV – 1 0001 SV – 2 0000 Precauzioni Se il valore SV non è in BCD, l’esecuzione del programma prosegue, ma il valore potrebbe non essere esatto. Flag ER: Il valore SV non è in BCD. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD o è stato superato il confine dell’area DM). Esempio 1: Applicazione base Nell’esempio seguente, il valore PV sarà decrementato quando sia 00000 che 00001 sono su ON, ammesso che 00002 sia OFF e 00000 o 00001 siano stati OFF quando CNT 004 è stato eseguito l’ultima volta. Quando 150 impulsi sono stati contati (cioè quando PV raggiunge zero), 00205 sarà attivato a ON. 00000 00001 Indirizzo CP Istruzione Operandi CNT 004 00002 R #0150 CNT 004 00000 00001 00002 00003 LD AND LD CNT 00004 00005 LD OUT 00205 # CNT 00000 00001 00002 0004 0150 004 00205 Qui, 00000 può essere usato per verificare quando CNT è operativo e 00001 può essere usato come bit per il quale vengono contati i passaggi da OFF a ON. Il CNT precedentemente mostrato può essere modificato per ripartire da SV ogni volta che l’alimentazione viene collegata al PLC. Questo risultato si ottiene utilizzando il flag del primo ciclo nell’area SR (25315) per il reset di CNT come è mostrato sotto. 00000 00001 Indirizzo CP Istruzione Operandi CNT 004 00002 R #0150 25315 CNT 004 00000 00001 00002 00003 00004 LD AND LD OR CNT 00005 00006 LD OUT 00205 # CNT 00000 00001 00002 25315 004 0150 004 00205 169 Capitolo 5-14 Istruzioni Timer e Counter Esempio 2: Contatore esteso 00000 00001 I contatori in grado di superare 9.999 possono essere programmati usando un CNT per contare il numero di volte che un altro CNT ha contato fino a zero da SV. Nell’esempio seguente, 00000 è usato per verificare quando CNT 001 è operativo. CNT 001, quando 00000 è ON, esegue il conteggio decrescente del numero di passaggi da OFF a ON in 00001. CNT 001 è resettato dal suo flag di fine conteggio, cioè riprende il conteggio appena il valore PV raggiunge zero. CNT 002 conta il numero di volte in cui il flag di fine conteggio per CNT 001 va ad ON. Il bit 00002 consente il ripristino di tutto il contatore esteso, resettando sia CNT 001 che CNT 002 quando è su OFF. Il flag di fine conteggio per CNT 002 viene anche utilizzato per resettare CNT 001 e inibire il suo funzionamento, una volta che è stato raggiunto il valore SV per CNT 002, finché tutto il contatore esteso non viene resettato mediante 00002. Poiché in questo esempio il valore SV per CNT 001 è 100 e per CNT 002 è 200, il flag di fine conteggio per CNT 002 passa a ON quando in 00001 sono stati contati 100 x 200 o 20.000 passaggi da OFF a ON. Questo porterà 00203 a ON. Indirizzo CP CNT 001 00002 R #0100 CNT 001 Istruzione 00000 00001 00002 00003 00004 00005 LD AND LD NOT OR OR CNT 00006 00007 00008 LD LD NOT CNT 00009 00010 LD OUT CNT 002 CNT 001 CP CNT 002 00002 R #0200 Operandi CNT CNT # CNT # CNT 00000 00001 00002 001 002 001 0100 001 00002 002 0200 002 00203 CNT 002 00203 CNT può essere utilizzato in sequenza ogni volta che si desidera per ottenere contatori in grado di contare tutti i valori richiesti. Esempio 3: Temporizzatori estesi 170 CNT può essere usato per creare temporizzatori estesi in due modi: combinando TIM con CNT e contando i bit dell’impulso di clock dell’area SR. Nell’esempio seguente, CNT 002 conta il numero di volte in cui TIM 001 raggiunge zero dal valore SV. Il flag di fine conteggio per TIM 001 è usato per resettare TIM 001 in modo che sia sempre operativo e che CNT 002 conti il numero di volte in cui il flag di fine conteggio per TIM 001 va ad ON (CNT 002 verrà eseguito una volta ogni volta nell’intervallo tra il passaggio a ON del flag di fine conteggio per TIM 001 e il reset di TIM 001 dovuto al suo flag di fine conteggio). TIM 001 è anche resettato dal flag di fine conteggio per CNT 002 in modo che il temporizzatore esteso non si riavvierà finché CNT 002 non viene resettato da 00001, il che determina il reset di tutto il temporizzatore esteso. Capitolo 5-14 Istruzioni Timer e Counter Poiché in questo esempio il valore SV per TIM 001 è 5,0 secondi e per CNT 002 è 100, il flag di fine conteggio per CNT 002 passa a ON quando sono trascorsi 5 secondi x 100 volte, cioè 500 secondi (oppure 8 minuti e 20 secondi). Questo porterà 00201 a ON. 00000 TIM 001 CNT 002 TIM 001 #0050 TIM 001 005,0 s CP CNT 002 Indirizzo Istruzione 00000 00001 00002 00003 LD AND NOT AND NOT TIM 00004 00005 00006 LD LD CNT 00007 00008 LD OUT 00001 #0100 R CNT 002 00201 Operandi 00000 001 002 001 0050 001 00001 002 0100 002 00201 TIM CNT # TIM # CNT Nell’esempio seguente, CNT 001 conta il numero di volte in cui il bit dell’impulso di clock da 1 secondo (25502) passa da OFF a ON. Anche qui, 00000 è utilizzato per controllare le volte in cui CNT è operativo. Poiché in questo esempio il valore SV per CNT 001 è 700, il flag di fine conteggio per CNT 002 passa a ON quando sono trascorsi 1 secondo x 700 volte, oppure 11 minuti e 40 secondi. Questo porterà 00202 a ON. 00000 25502 Indirizzo CP CNT 001 00001 R #0700 CNT 001 Istruzione 00000 00001 00002 00003 LD AND LD NOT CNT 00004 00005 LD OUT 0202 Operandi # CNT 00000 25502 00001 001 0700 001 00202 Nota L’utilizzo di impulsi molto brevi non garantisce maggiore accuratezza nella temporizzazione poiché il basso tempo di attivazione potrebbe non essere rilevato durante i cicli più lunghi. In particolare gli impulsi di clock da 0,02 e 0,1 s non devono essere utilizzati per generare temporizzatori con l’istruzione CNT. 5-14-5 REVERSIBLE COUNTER – CNTR (012) Valori dell’identificatore Simbolo per il diagramma a relè N: numero TC II DI R CNTR (012) N SV # (da 000 a 511) Aree dati operando SV: valore impostato (canale, BCD) IR, AR, DM, HR, LR, # Limitazioni Ogni numero TC può essere usato come identificatore in una sola istruzione di timer o counter. Descrizione Il CNTR(012) è un counter reversibile, circolare (up/down), ed è utilizzato per contare da zero al valore SV seguendo le variazioni delle due condizioni di esecuzione, quelle all’ingresso a incremento (II) e quelle all’ingresso a decremento (DI). Il valore corrente (PV) sarà incrementato di uno ogni volta che viene eseguita CNTR(012) con una condizione di esecuzione ON per (II) e la sua ultima condizione di esecuzione era OFF. Il valore corrente (PV) sarà decrementato di uno ogni volta che viene eseguita CNTR(012) con una condizione di esecuzione ON 171 Capitolo 5-14 Istruzioni Timer e Counter per (DI) e la sua ultima condizione di esecuzione era OFF. Se dall’ultima esecuzione sono avvenute variazioni da OFF a ON sia in (II) che in (DI), il valore PV non verrà cambiato. Se le condizioni di esecuzione non sono cambiate o se sono cambiate da ON a OFF sia per (II) che per (DI), il valore PV di CNT non verrà cambiato. Quando è decrementato da 0000, il valore corrente è predisposto al valore SV ed il flag di fine conteggio è abilitato (ON) fino a quando il valore PV sarà decrementato di nuovo. Quando l’incremento supera il valore SV, il valore PV è predisposto a 0000 ed il flag di fine conteggio è abilitato (ON) fino a quando il valore PV sarà incrementato di nuovo. CNTR(012) è ripristinato con un ingresso di reset (R). Quando R va da OFF a ON, il valore PV è resettato. Mentre R è abilitato, il valore PV non sarà né incrementato né decrementato. Il conteggio ricomincerà quando R verrà posto a OFF. Il valore PV per CNTR(012) non sarà resettato in sezioni di programma interbloccate o in seguito ad interruzioni di alimentazione. Le variazioni nelle condizioni di esecuzione di (II) e (DI), dei flag di fine conteggio e dei valori PV sono illustrate qui di seguito (dopo il reset il conteggio inizia da zero). L’altezza della linea del valore PV ha unicamente un valore indicativo per le variazioni del valore PV. Condizione di esecuzione all’incremento (II) ON Condizione di esecuzione al decremento (DI) ON OFF OFF ON Flag di completamento OFF SV PV SV SV – 1 SV – 1 0001 SV – 2 0000 SV – 2 0000 Precauzioni L’esecuzione del programma proseguirà anche se viene usato un valore SV non in BCD, ma il valore SV non risulterà corretto. Flag ER: Il valore SV non è in BCD. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure è stato superato il confine dell’area DM). 172 Capitolo 5-15 Istruzioni di scorrimento 5-15 Istruzioni di scorrimento Tutte le istruzioni descritte in questa sezione sono utilizzate per le istruzioni di scorrimento, ma in diverse quantità e direzioni. La prima istruzione di scorrimento, SFT(010), fa scorrere una condizione di esecuzione in un registro a scorrimento; le restanti istruzioni fanno scorrere quelle che sono già in memoria. 5-15-1 SHIFT REGISTER – SFT(010) Simboli per il diagramma a relè Aree dati operando St: canale iniziale I SFT(010) IR, SR, AR, HR, LR P St R E E: canale finale IR, SR, AR, HR, LR Limitazioni Il canale St deve essere minore o uguale a E e sia St sia E devono essere nella stessa area dati. Se un bit di uno dei canali utilizzati in un registro a scorrimento viene utilizzato anche per un’istruzione che controlla lo stato dei bit individuali (per es., OUT, KEEP(011)), sulla console di programmazione o su altri dispositivi di programmazione sarà generato un errore (“COIL DUPL”) di sintassi. Il programma, comunque, sarà eseguito come scritto. Per un esempio di programmazione vedere Esempio 2: Controllo dei bit nei registri a scorrimento. Descrizione L’istruzione SFT(010) è controllata da tre condizioni di esecuzione, I, P ed R. Se SFT(010) viene eseguita e 1) la condizione di esecuzione P è ON ed era OFF all’ultima scansione e 2) R è OFF, la condizione di esecuzione di I è fatta scorrere nel bit più a destra di un registro a scorrimento definito tra St ed E, ovvero, se I è ON, viene fatto scorrere un 1 nel registro; se I è OFF, viene fatto scorrere uno 0. Quando è fatto scorrere I nel registro, tutti i bit precedentemente contenuti nel registro sono fatti scorrere a sinistra ed il bit più a sinistra del registro è perso. E St+1, St+2, ... Dati persi St Condizione di esecuzione di I Su P la condizione di esecuzione funziona come un’istruzione differenziale, cioè, I sarà fatto scorrere nel registro solo quando P è ON ed era OFF l’ultima volta che SFT(010) è stata eseguita. Se la condizione di esecuzione P non è cambiata o è andata da ON a OFF, il registro a scorrimento non sarà influenzato. St designa il canale più a destra del registro a scorrimento; E designa quello più a sinistra. Il registro a scorrimento include entrambi questi canali e tutti i canali compresi. Lo stesso canale può essere designato per St ed E per creare un registro a scorrimento a 16 bit (cioè, 1 canale). Quando la condizione di esecuzione R va a ON, tutti i bit del registro a scorrimento saranno posizionati a OFF (cioè, predisposti su 0) ed il registro a scorrimento non funzionerà finché R non ritornerà a OFF. Flag Non ci sono flag influenzati da SFT(010). 173 Capitolo 5-15 Istruzioni di scorrimento Esempio 1: Applicazione base L’esempio seguente utilizza il clock interno di 1 secondo (25502) cosicché la condizione di esecuzione prodotta da 00005 è fatta scorrere ogni secondo in un registro a 3 canali tra IR 010 e IR 012. 00005 Indirizzi I SFT(010) 25502 P 010 00006 R 012 00000 00001 00002 00003 Istruzioni Operandi LD LD LD SFT(010) 00005 25502 00006 010 012 Esempio 2: Controllo dei bit nei registri a scorrimento 00200 00201 Il programma seguente è utilizzato per controllare lo stato del diciassettesimo bit di un registro a scorrimento che esegue AR da 00 a 01. Quando il diciassettesimo bit deve essere configurato, 00004 è ON. Questo fa sì che per quel ciclo non venga eseguito il salto per JMP(004) 00, e AR 0100 (il diciassettesimo bit) sarà ON. Quando 12800 è OFF (cioè, tutte le volte tranne durante il primo ciclo dopo che 00004 è passato da OFF a ON), il salto viene eseguito e lo stato di AR 0100 non sarà cambiato. I Indirizzi SFT(010) 00202 P AR 00 00203 AR 01 R 00000 00001 00002 00003 00004 Istruzioni Operandi LD AND LD LD SFT(010) 00200 00201 00202 00203 AR AR 00004 DIFU(013) 12800 12800 JMP(004) 00 12800 AR 0100 00005 00006 00007 00008 00009 00010 00011 LD DIFU(013) LD JMP(004) LD OUT JME(005) AR 00 01 00004 12800 12800 00 12800 0100 00 JME(005) 00 Quando un bit che è parte di un registro a scorrimento viene utilizzato in OUT (o qualche altra istruzione che controlla lo stato dei bit), verrà generato un errore di sintassi durante il controllo del programma, ma il programma verrà eseguito correttamente (cioè, come scritto). Esempio 3: Azione di controllo 174 Il programma seguente controlla la linea di trasporto illustrata qui di seguito in modo che i prodotti difettosi individuati dal sensore siano spinti in uno scivolo. A tale scopo, la condizione di esecuzione definita dagli ingressi dal primo sensore (00001) viene memorizzata in un registro a scorrimento: ON per i prodotti non difettosi; OFF per quelli difettosi. La velocità di trasporto è stata regolata in modo tale che HR 0003 del registro a scorrimento possa essere utilizzato per attivare un dispositivo di spinta (00500) quando viene raggiunto da un prodotto difettoso, cioè, quando HR 0003 è ON, 00500 viene portato su ON per attivare il dispositivo di spinta. Capitolo 5-15 Istruzioni di scorrimento Il programma è predisposto in modo che un codificatore rotante (00000) controlli l’esecuzione di SFT(010) tramite un’istruzione DIFU(013), il codificatore rotante è predisposto per passare su ON e OFF ogni volta che un prodotto supera il primo sensore. Un altro sensore (00002) è utilizzato per individuare i prodotti difettosi nello scivolo cosicché l’uscita del dispositivo di spinta e HR 0003 del registro a scorrimento possano essere resettati come richiesto. Sensore (00001) Dispositivo di spinta (00500) Codificatore rotante (00000) 00001 Indirizzi I SFT(010) 00000 P HR 00 00003 R HR 01 00000 00001 00002 00003 Sensore (00002) Scivolo Istruzioni 00001 00000 00003 HR 0003 00500 00002 00500 00004 00005 00006 00007 00008 Operandi LD LD LD SFT(010) LD OUT LD OUT NOT OUT NOT HR HR HR HR 00 01 0003 00500 00002 00500 0003 HR 0003 5-15-2 REVERSIBILE SHIFT REGISTER – SFTR(084) Aree dati operando Simboli per il diagramma a relè C: canale di controllo IR, AR, DM, HR, LR SFTR(084) @SFTR(084) C C St St E E St: canale iniziale Limitazioni IR, SR, AR, DM, HR, LR E: canale finale IR, SR, AR, DM, HR LR St ed E devono essere nella stessa area dati e St deve essere minore o uguale a E. 175 Capitolo 5-15 Istruzioni di scorrimento Descrizione L’istruzione SFTR(084) è utilizzata per creare un registro a scorrimento a canali singoli/multipli che possa far scorrere dati sia a destra che a sinistra. Per creare un registro a singolo canale, si deve designare lo stesso canale per St ed E. Il canale di controllo fornisce la direzione di scorrimento, lo stato del bit che deve essere inserito nel registro, l’impulso di scorrimento e l’ingresso di reset. Il canale di controllo è allocato come segue: 15 14 13 12 Non utilizzato. Direzione Scorrimento 1 (ON): Sinistra (da LSB a MSB) 0 (OFF): Destra (da MSB a LSB) Stato del bit che deve essere inserito nel registro Bit impulso di scorrimento Reset Ogni qualvolta la funzione SFTR(084) è eseguita con una condizione di esecuzione ON, il bit di reset a OFF e il bit 14 a ON, i dati nel registro a scorrimento saranno fatti scorrere di un bit nella direzione indicata dal bit 12, spostando un bit fuori da CY ed inserendo lo stato del bit 13 nella parte opposta. Se SFTR(084) viene eseguita con una condizione di esecuzione OFF, oppure se SFTR(084) viene eseguita con il bit 14 OFF, il registro a scorrimento rimarrà invariato. Se SFTR(084) viene eseguita con una condizione di esecuzione ON e il bit di reset (bit 15) è OFF, l’intero registro a scorrimento e CY saranno settati a zero. Flag ER: St ed E non sono nella stessa area dati o ST è maggiore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) CY: Esempio Riceve lo stato del bit 00 di ST o il bit 15 di E, a seconda della direzione di scorrimento. Nell’esempio seguente, IR 00005, IR 00006, IR 00007 e IR 00008 vengono utilizzati per controllare i bit di C utilizzati in @SHIFT(84). Il registro a scorrimento è tra LR 20 ed LR 21, ed è controllato tramite IR 00009. Indirizzi 00005 Stato del bit da inserire 00006 05013 Impulso di scorrimento 00007 05014 00008 05015 Operandi 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 LD OUT LD OUT LD OUT LD OUT LD @SFT(010) 00005 05012 00006 05013 00007 05014 00008 05015 00009 Reset LR LR 00009 @SFTR(084) 050 LR 20 LR 21 176 Istruzioni Direzione 05012 050 20 21 Capitolo 5-15 Istruzioni di scorrimento 5-15-3 ARITHMETIC SHIFT LEFT – ASL(025) Simboli per il diagramma a relè Descrizione ASL(025) @ASL(025) Wd Wd Aree dati operando Wd: canale di scorrimento IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ASL(025) non viene eseguita. Quando la condizione di esecuzione è ON, ASL(025) porta uno 0 nel bit 00 di Wd, muove di una posizione a sinistra i bit di Wd e porta lo stato del bit 15 in CY. Bit Bit 15 00 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 CY 0 Flag ER: CY: EQ: N: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Riceve lo stato del bit 15. ON quando il contenuto di Wd è zero; altrimenti OFF. ON quando viene portato un 1 nel bit 15 di Wd. 5-15-4 ARITHMETIC SHIFT RIGHT – ASR(026) Simboli per il diagramma a relè Descrizione ASR(026) @ASR(026) Wd Wd Aree dati operando Wd: canale di scorrimento IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ASR(026) non viene eseguita. Quando la condizione di esecuzione è ON, ASR(026) porta uno 0 nel bit 15 di Wd, muove di una posizione a destra i bit di Wd e porta lo stato del bit 00 in CY. Bit Bit 15 00 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 CY 0 Flag ER: CY: EQ: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Riceve i dati del bit 00. ON quando il contenuto di Wd è zero; altrimenti OFF. 5-15-5 ROTATE LEFT – ROL(027) Simboli per il diagramma a relè Descrizione ROL(027) @ROL(027) Wd Wd Aree dati operando Wd: canale di rotazione IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ROL(027) non viene eseguita. Quando la condizione di esecuzione è ON, ROL(027) muove di una posizione a sinistra tutti i bit di Wd, portando CY nel bit 00 di Wd e il bit 15 di Wd in CY. CY Bit 15 Bit 00 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 177 Capitolo 5-15 Istruzioni di scorrimento Precauzioni Utilizzare STC(041) per predisporre lo stato di CY oppure CLC(041) per cancellare lo stato di CY prima di effettuare un’operazione di rotazione per assicurarsi che CY contenga lo stato appropriato prima di eseguire ROL(027). Lo stato di CY viene cancellato alla fine di ogni ciclo (quando END(001) viene eseguita). Flag ER: CY: EQ: N: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Riceve i dati del bit 15. ON quando il contenuto di Wd è zero; altrimenti OFF. ON quando viene portato un 1 nel bit 15 di Wd. 5-15-6 ROTATE RIGHT – ROR(028) Simboli per il diagramma a relè Descrizione ROR(028) @ROR(028) Wd Wd Aree dati operando Wd: canale di rotazione IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ROR(028) non viene eseguita. Quando la condizione di esecuzione è ON, ROR(028) muove di una posizione a destra tutti i bit di Wd, portando CY nel bit 15 di Wd e il bit 00 di Wd in CY. CY Bit 15 Bit 00 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 Precauzioni Utilizzare STC(041) per predisporre lo stato di CY oppure CLC(041) per cancellare lo stato di CY prima di effettuare un’operazione di rotazione per assicurarsi che CY contenga lo stato appropriato prima di eseguire ROR(028). Lo stato di CY viene cancellato alla fine di ogni ciclo (quando END(001) viene eseguita). Flag ER: CY: EQ: N: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) ROR(028) riceve i dati del bit 00. ON quando il contenuto di Wd è zero; altrimenti OFF. ON quando viene portato un 1 nel bit 15 di Wd. 5-15-7 ONE DIGIT SHIFT LEFT – SLD(074) Simboli per il diagramma a relè Aree dati operando St: canale iniziale SLD(074) @SLD(074) St St E E IR, SR, AR, DM, HR, LR E: canale finale IR, SR, AR, DM, HR, LR Limitazioni St ed E devono essere nella stessa area dati e St deve essere minore o uguale a E. Descrizione Quando la condizione di esecuzione è OFF, SLD(074) non viene eseguita. Quando la condizione di esecuzione è ON, SLD(074) sposta i dati tra St ed E (inclusi) di un digit (quattro bit) a sinistra. Nel digit più a destra di St viene scritto 0 mentre il digit a sinistra di E viene perso. E 178 ... St 8 F C 5 D 7 9 1 Dato perso 0 Capitolo 5-15 Istruzioni di scorrimento Precauzioni Se si verifica un’interruzione di alimentazione durante un’operazione di spostamento tra più di 50 canali, è possibile che l’operazione non venga completata. Flag ER: I canali St e E sono in aree diverse oppure St è maggiore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-15-8 ONE DIGIT SHIFT LEFT – SRD(075) Simboli per il diagramma a relè Aree dati operando E: canale finale SRD(075) @SRD(075) E E St St IR, SR, AR, DM, HR, LR St: canale iniziale IR, SR, AR, DM, HR, LR Limitazioni St ed E devono essere nella stessa area dati e St deve essere minore o uguale a E. Descrizione Quando la condizione di esecuzione è OFF, SRD(075) non viene eseguita. Quando la condizione di esecuzione è ON, SRD(075) sposta i dati tra St ed E (inclusi) di un digit (quattro bit) a destra. Nel digit più a sinistra di St viene scritto 0 mentre il digit a destra di E viene perso. St 3 4 5 2 ... E F 8 C 1 Dato perso 0 Precauzioni Se si verifica un’interruzione di alimentazione durante un’operazione di spostamento tra più di 50 canali, è possibile che l’operazione non venga completata. Impostare l’intervallo tra E ed St a un massimo di 50 canali. Flag ER: I canali St e E sono in aree diverse o St è minore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-15-9 WORD SHIFT – WSFT(016) Simboli per il diagramma a relè Aree dati operando St: canale iniziale WSFT(016) @WSFT(016) St St E E IR, SR, AR, DM, HR, LR E: canale finale IR, SR, AR, DM, HR, LR Limitazioni St ed E devono essere nella stessa area dati e St deve essere minore o uguale a E. Descrizione Quando la condizione di esecuzione è OFF, WSFT(016) non viene eseguita. Quando la condizione di esecuzione è ON, WSFT(016) sposta i dati tra St ed E un canale alla volta. Il contenuto di St è azzerato e quello di E è perso. E F 0 St + 1 C 2 3 4 5 St 2 1 0 2 9 Perso 0000 E 3 4 St + 1 5 2 1 0 2 St 9 0 0 0 0 179 Capitolo 5-15 Istruzioni di scorrimento Flag ER: I canali St ed E sono in aree diverse o St è maggiore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-15-10 ASYNCHRONOUS SHIFT REGISTER – ASFT(017) Aree dati operando Simboli per il diagramma a relè C: canale di controllo IR, SR, AR, DM, HR, LR ASFT(017) @ASFT(017) St: canale iniziale C C IR, SR, AR, DM, HR, LR St St E E E: canale finale IR, SR, AR, DM, HR, LR Limitazioni St ed E devono essere nella stessa area dati e St deve essere minore o uguale a E. ASFT(017) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 017 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, ASFT(017) non viene eseguita e il programma passa all’istruzione successiva. Quando la condizione di esecuzione è ON, ASFT(017) è utilizzata per creare e controllare un registro reversibile per scorrimento asincrono dei canali tra St ed E. Questo registro fa scorrere soltanto i canali quando il canale successivo nel registro è zero, per es., se nel registro non c’è nessun canale a zero, non viene fatto scorrere niente. Inoltre, soltanto un canale viene fatto scorrere per ogni canale nel registro che contiene zero. Quando i contenuti di un canale sono fatti scorrere nel canale successivo, i contenuti del canale di partenza vengono sostituiti con degli zeri. In sostanza, quando il registro viene fatto scorrere, ogni canale a zero nel registro sostituisce il contenuto del canale successivo con il nuovo canale. (Vedere Esempio sotto.) La direzione dello scorrimento (cioè se il “canale successivo” è il successivo più alto o più basso) è stabilizzata da C. C, inoltre, è utilizzata per resettare il registro. Il registro può essere resettato tutto o in parte indicando la posizione desiderata con St ed E. Canale di controllo I bit da 00 a 12 di C non sono utilizzati. Il bit 13 è la direzione dello scorrimento: commutare il bit 13 ad ON per avere uno scorrimento verso il basso (verso i canali con indirizzo inferiore) e ad OFF per avere uno scorrimento verso l’alto (verso i canali con indirizzo superiore). Il bit 14 è il Bit Abilitazione Scorrimento: commutare il bit 14 ad ON per abilitare il funzionamento del registro a scorrimento, secondo quanto indicato dal bit 13, e ad OFF per disabilitare il registro. Il bit 15 è il bit di reset: il registro sarà resettato (impostato a zero) tra St ed E quando ASFT(017) è eseguita con il bit 15 ON. Commutare il bit 15 per il funzionamento normale. Valori del canale di controllo #4000 #6000 #8000 Funzione Scorrimento verso l’alto (verso i canali con indirizzo superiore). Scorrimento verso il basso (verso i canali con indirizzo inferiore). Cancellazione dei contenuti di St tramite E a #0000. Flag ER: Esempio L’esempio seguente mostra l’istruzione ASFT(017) utilizzata per far scorrere canali in un registro a scorrimento a 11 canali creato tra DM 0100 e DM 0110 con 180 I canali St e E sono in aree diverse o St è maggiore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Capitolo 5-16 Istruzioni di spostamento dati un valore del canale di controllo C=#6000 (bit 13 e 14 ON). Sono illustrate, inoltre, le modifiche dei dati che si sarebbero verificate per il registro dato e i contenuti del canale di controllo. 00000 ASFT(017) #6000 DM 0100 Indirizzi Istruzioni 00100 00101 LD ASFT(017) DM 0100 DM 0101 DM 0102 DM 0103 DM 0104 DM 0105 DM 0106 DM 0107 DM 0108 DM 0109 DM 0110 00000 # DM DM DM 0110 Prima dell’ esecuzione 1234 0000 0000 2345 3456 0000 4567 5678 6789 0000 789A Operandi Dopo la prima esecuzione 1234 0000 2345 0000 3456 4567 0000 5678 6789 789A 0000 6000 0100 0110 Dopo la settima esecuzione 1234 2345 3456 4567 5678 6789 789A 0000 0000 0000 0000 5-16 Istruzioni di spostamento dati In questa sezione sono descritte le istruzioni utilizzate per spostare dati tra diversi indirizzi nelle aree dati. Questi spostamenti possono essere programmati nell’ambito della stessa area dati o tra aree dati diverse. Lo spostamento dati è essenziale per utilizzare tutte le aree dati del PLC. Anche le comunicazioni effettive nei sistemi di collegamento richiedono lo spostamento dati. Tutte queste istruzioni modificano soltanto il contenuto dei canali in cui si spostano i dati, cioè, il contenuto dei canali sorgente è uguale prima e dopo l’esecuzione di qualsiasi istruzione di spostamento dati. 5-16-1 MOVE – MOV(021) Simboli per il diagramma a relè Aree dati operando S: canale sorgente MOV(021) @MOV(021) S S D D IR, SR, AR, DM, HR, TC, LR, # D: canale di destinazione Descrizione IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, MOV(021) non viene eseguita. Quando la condizione di esecuzione è ON, MOV(021) copia il contenuto di S in D. Canale sorgente Canale di destinazione Lo stato dei bit non è cambiato. Precauzioni I numeri TC non possono essere designati come D per cambiare il valore PV del temporizzatore o contatore. E’, comunque, possibile variare facilmente il valore PV di un temporizzatore o di un contatore utilizzando l’istruzione BSET(071). Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 181 Capitolo 5-16 Istruzioni di spostamento dati EQ: ON quando tutti gli zeri sono trasferiti in D. N: ON quando il bit 15 di D è impostato a 1. 5-16-2 MOVE NOT – MVN(022) Simboli per il diagramma a relè Aree dati operando S: canale sorgente MVN(022) @MVN(022) S S D D IR, SR, AR, DM, HR, TC, LR, # D: canale di destinazione Descrizione IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, MVN(022) non viene eseguita. Quando la condizione di esecuzione è ON, MVN(022) trasferisce il contenuto invertito di S (canale specificato o costante a quattro cifre esadecimale) in D, cioè, per ogni bit ON in S, il bit corrispondente in D è posto a OFF e, per ogni bit OFF in S, il bit corrispondente in D è abilitato (ON). Canale sorgente Canale di destinazione Lo stato dei bit è invertito. Precauzioni I numeri TC non possono essere designati come D per cambiare il valore PV del temporizzatore o contatore. E’, comunque, possibile variare facilmente tale valore utilizzando l’istruzione BSET(071). Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) EQ: ON quando tutti gli zeri sono trasferiti in D. N: ON quando il bit 15 di D è impostato a 1. 5-16-3 BLOCK SET – BSET(071) Aree dati operando Simboli per il diagramma a relè S: dati sorgente IR, SR, AR, DM, HR, TC, LR, # BSET(071) @BSET(071) S S St St E E St: canale iniziale Limitazioni 182 IR, SR, AR, DM, HR, TC, LR E: canale finale IR, SR, AR, DM, HR, TC, LR St deve essere minore o uguale a E, ed St ed E deve essere nella stessa area dati. Capitolo 5-16 Istruzioni di spostamento dati Descrizione Quando la condizione di esecuzione è OFF, BSET(071) non viene eseguita. Quando la condizione di esecuzione è ON, BSET(071) copia il contenuto di S in tutti i canali da St a E. S St 3 4 5 2 3 4 5 2 St+1 3 4 5 2 St+2 3 4 5 2 E 3 4 5 2 L’istruzione BSET(071) può essere utilizzata per variare il valore PV dei contatori e temporizzatori. (Ciò non può essere fatto con MOV(021) o MVN(022).) BSET(071) può essere utilizzata anche per azzerare parte di un’area dati, come l’area DM, per prepararla all’esecuzione di altre istruzioni. Flag ER: St ed E non sono nella stessi area dati o St è maggiore di E. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Esempio 00003 L’esempio seguente mostra come utilizzare BSET(071) per variare il valore PV di un temporizzatore a seconda dello stato di IR 00003 e IR 00004. Quando IR 00003 è ON, TIM 010 funzionerà come un temporizzatore a 50 secondi; quando IR 00004 è ON, TIM 010 funzionerà come un temporizzatore a 30 secondi. 00004 Indirizzi @BSET(071) 00000 00001 00002 #0500 TIM 010 Istruzioni TIM 010 00004 00003 @BSET(071) #0300 00003 00004 00005 TIM 010 TIM 010 TIM 010 #9999 00006 00007 00008 00003 00004 # TIM TIM 0500 010 010 00004 00003 # TIM TIM 0300 010 010 00003 00004 010 9999 LD AND NOT @BSET(071) 00003 00004 Operandi LD AND NOT @BSET(071) LD OR TIM # 5-16-4 BLOCK TRANSFER – XFER(070) Aree dati operando Simboli per il diagramma a relè N: numero di canali (BCD) IR, SR, AR, DM, HR, TC, LR, # XFER(070) @XFER(070) N N S S D D S: canale iniziale sorgente IR, SR, AR, DM, HR, TC, LR D: canale iniziale di destinazione IR, SR, AR, DM, HR, TC, LR 183 Capitolo 5-16 Istruzioni di spostamento dati Limitazioni S e D possono essere nella stessa area dati, ma le rispettive aree non devono sovrapporsi. S ed S+N devono essere nella stessa area dati, come pure D e D+N. N deve essere in BCD tra 0000 e 6144. Descrizione Flag Quando la condizione di esecuzione è OFF, XFER(070) non viene eseguita. Quando la condizione di esecuzione è ON, XFER(070) copia il contenuto di S, S+1, ..., S+N in D, D+1, ..., D+N. ER: S D 3 4 5 2 3 4 5 2 S+1 D+1 3 4 5 1 3 4 5 1 S+2 D+2 3 4 2 2 3 4 2 2 S+N D+N 6 4 5 2 6 4 5 2 N non è in BCD tra 0000 e 2000. S ed S+N oppure D e D+N non sono nella stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-16-5 DATA EXCHANGE – XCHG(073) Simboli per il diagramma a relè Aree dati operando E1: canale di scambio 1 XCHG(073) @XCHG(073) E1 E1 E1 E1 IR, SR, AR, DM, HR, TC, LR E2: canale di scambio 2 Descrizione IR, SR, AR, DM, HR, TC, LR Quando la condizione di esecuzione è OFF, XCHG(073) non viene eseguita. Quando la condizione di esecuzione è ON, XCHG(073) scambia il contenuto di E1 e di E2. E1 E2 Se si desidera scambiare il contenuto dei blocchi la cui dimensione è maggiore di 1 canale, utilizzare tre volte XFER(070) utilizzando i canali di lavoro come un buffer intermedio. Flag 184 ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Capitolo 5-16 Istruzioni di spostamento dati 5-16-6 SINGLE WORD DISTRIBUTE – DIST(080) Aree dati operando Simboli per il diagramma a relè S: dati sorgente IR, SR, AR, DM, HR, TC, LR, # DIST(080) @DIST(080) S S DBs DBs C C DBs: canale base di destinazione IR, SR, AR, DM, HR, TC, LR C: canale di controllo (BCD) IR, SR, AR, DM, HR, TC, LR, # Limitazioni C deve essere in BCD. Se C≤6655, DBs deve essere nella stessa area dati di DBs+C. Se C≥9000, DBs deve essere nella stessa area dati di DBs+C–9000. Descrizione In base al valore di C, l’istruzione DIST(080) può essere utilizzata come istruzione di distribuzione dati o come istruzione di stack. Se C è tra 0000 e 6655, DIST(080) funzionerà come istruzione di distribuzione dati e copierà il contenuto di S in DBs+C. Se il digit più a sinistra di C è 9, DIST(080) funzionerà come istruzione di stack e creerà uno stack con il numero di canali specificato nei 3 digit di C più a destra. Precauzioni L’operazione su stack sarà inattendibile se la lunghezza dello stack specificata è diversa da quella specificata nell’ultima esecuzione di DIST(080) o di COLL(081). Operazione di distribuzione dati (C=+0000... – 6655) Quando la condizione di esecuzione è OFF, DIST(080) non viene eseguita. Quando la condizione di esecuzione è ON, DIST(080) copia il contenuto di S in DBs+C, cioè, C viene aggiunto a DBs per determinare il canale di destinazione. Operazione su stack (C=+9000... – 9999) S DBs + C 3 4 5 2 3 4 5 2 Quando la condizione di esecuzione è OFF, DIST(080) non viene eseguita. Quando la condizione di esecuzione è ON, DIST(080) crea uno stack da DBs a DBs+C–9000. DBs è il puntatore dello stack, quindi il contenuto di S è copiato nel canale indicato da DBs e DBs è incrementato di 1. Anche il flag negativo varia. Digit di C: 3 2 1 0 Specifica la lunghezza dello stack (da 000 a 999). Un valore di 9 indica l’operazione su stack. I dati possono essere aggiunti allo stack finché è pieno. DIST(080) viene utilizzato normalmente con COLL(081), che può essere impostato per la lettura dallo stack su una base FIFO o LIFO. Per ulteriori dettagli fare riferimento a 5-16-7 DATA COLLECT – COLL(081). Esempio di operazione su stack Nell’esempio seguente, il contenuto di C (LR 10) è 9010 e DIST(080) è utilizzato per trasferire i dati numerici #00FF nello stack a 10 canali da HR 20 ad HR 29. Durante il primo ciclo quando IR 00001 è ON, i dati sono trasferiti in DBs+1 (HR 185 Capitolo 5-16 Istruzioni di spostamento dati 21) e il puntatore dello stack è incrementato di 1. Nel secondo ciclo, i dati sono trasferiti in DBs+2 (HR 22) e il puntatore dello stack è incrementato, e così via. 00001 DIST(080) # 00FF HR 20 Indirizzi Istruzioni 00000 00001 LD DIST(080) 00001 # HR LR LR 10 Dopo la prima esecuzione Puntatore dello stack Operandi Dopo la seconda esecuzione HR 20 HR 20 0 0 0 1 0 0 0 2 HR 21 0 0 F F HR 22 00FF 20 10 Il puntatore dello HR 21 stack è stato 0 0 F F incrementato HR 22 0 0 F F Area di stack HR 29 Flag ER: EQ: HR 29 Il contenuto di C non è in BCD o 6655<C<9000. Quando C≤6655, DBs e DBs+C non sono nella stessa area dati. Quando C≥9000, DBs e DBs+C–9000 sono nella stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) ON quando il contenuto di S è zero; altrimenti OFF. 5-16-7 DATA COLLECT – COLL(081) Aree dati operando Simboli per il diagramma a relè SBs: canale base sorgente IR, SR, AR, DM, HR, TC, LR COLL(081) @COLL(081) SBs SBs C C D D C: dati di offset (BCD) IR, SR, AR, DM, HR, TC, LR, # D: canale di destinazione IR, SR, AR, DM, HR, TC, LR Limitazioni C deve essere in BCD. Se C≤6655, SBs deve essere nella stessa area dati di SBs+C. Se il digit più a sinistra di C è 8 o 9, DBs deve essere nella stessa area dati di SBs+N (N=i 3 digit di C più a destra). Descrizione In base al valore di C, COLL(081) può essere utilizzata come istruzione di raccolta dati, istruzione di stack in FIFO o LIFO. Se C è tra 0000 e 6655, COLL(081) funzionerà come istruzione di raccolta dati e copierà il contenuto di SBs+C in D. Se il digit più a sinistra di C è 9, COLL(081) funzionerà come istruzione di stack in FIFO. Se il digit più a sinistra di C è 8, COLL(081) funzionerà come istruzione di stack in LIFO. Entrambe le operazioni su stack utilizzano uno stack che inizia in SBs con una lunghezza specificata nei 3 digit di C più a destra. Precauzioni L’operazione su stack sarà inattendibile se la lunghezza dello stack specificata è diversa dalla lunghezza specificata nell’ultima esecuzione di DIST(080) o COLL(081). 186 Capitolo 5-16 Istruzioni di spostamento dati Operazione di raccolta dati (C=da 0000 a 6655) Operazione su stack in FIFO (C=da 9000 a 9999) Quando la condizione di esecuzione è OFF, COLL(081) non viene eseguita. Quando la condizione di esecuzione è ON, COLL(081) copia il contenuto di SBs+C in D, cioè, C è aggiunto in SBs per determinare il canale sorgente. SBs + C D 3 4 5 2 3 4 5 2 Quando la condizione di esecuzione è OFF, COLL(081) non viene eseguita. Quando la condizione di esecuzione è ON, COLL(081) copia i dati dal più vecchio canale registrato nello stack in D. Il puntatore dello stack, SBs, è quindi decrementato di 1. Digit di C: 3 2 1 0 Specifica la lunghezza dello stack (da 000 a 999). Un valore di 9 indica l’operazione su stack in FIFO. COLL(081) può essere utilizzato con DIST(080). Per ulteriori dettagli fare riferimento a 5-16-6 SINGLE WORD DISTRIBUTE – DIST(080). Nota FIFO sta per First–In–First–Out. Esempio Nell’esempio seguente, il contenuto di C (HR 00) è 9010 e COLL(081) è utilizzato per copiare gli elementi più vecchi da uno stack a 10 canali (IR da 001 a 010) in LR 20. 00001 DIST(080) 001 HR 00 Indirizzi Istruzioni 00000 00001 LD COLL(081) Operandi 00001 001 00 20 LR 20 HR LR Puntatore dello stack Dopo la prima Dopo la seconda Prima dell’eseesecuzione Il puntatore dello esecuzione cuzione stack è decreIl puntatore dello IR 001 IR 001 IR 001 mentato stack è decremen0 0 0 2 tato 0 0 0 1 0 0 0 0 IR 002 IR 002 1 2 3 4 A B C D IR 002 IR 003 IR 003 IR 003 IR 010 IR 010 A B C D Area di stack IR 010 Uscita Uscita LR 20 LR 20 1 2 3 4 A B C D 187 Capitolo 5-16 Istruzioni di spostamento dati Quando la condizione di esecuzione è OFF, COLL(081) non viene eseguita. Quando la condizione di esecuzione è ON, COLL(081) copia gli ultimi dati registrati nello stack in D. Il puntatore dello stack, SBs, è quindi decrementato di 1. Operazione su stack in LIFO (C=da 8000 a 8999) Digit di C: 3 2 1 0 Specifica la lunghezza dello stack (da 000 a 999). Un valore di 8 indica l’operazione su stack in LIFO. I dati possono essere aggiunti allo stack finché è pieno. L’operazione su stack dell’istruzione DIST(080) può essere utilizzata con l’operazione su stack di lettura COLL(081). COLL(081) può essere impostata su una base FIFO o LIFO. Per ulteriori dettagli fare riferimento a 5-16-6 SINGLE WORD DISTRIBUTE (80). Nota LIFO sta per Last–In–First–Out. Esempio Nell’esempio seguente, il contenuto di C (HR 00) è 8010 e COLL(081) è utilizzata per copiare gli ultimi elementi da uno stack a 10 canali (IR da 001 a 010) in LR 20. 00001 COLL(081) 001 HR 00 Indirizzi Istruzioni 00000 00001 LD COLL(081) Operandi 00001 LR 20 HR LR Puntatore dello stack Area di stack Prima dell’esecuzione Il puntatore dello IR 001 stack è decrementato 0 0 0 2 Dopo la prima Dopo la seconda esecuzione Il puntatore dello esecuzione stack è decrementato IR 001 IR 001 0 0 0 1 0 0 0 0 IR 002 IR 002 IR 002 1 2 3 4 1 2 3 4 IR 003 IR 003 IR 003 IR 010 IR 010 A B C D IR 010 Uscita Flag 001 00 20 Uscita LR 20 LR 20 A B C D 1 2 3 4 ER: Il contenuto di C non è in BCD o 6655<C<8000. Quando C≤6655, DBs e DBs+C non sono nella stessa area dati. Quando C ≥8000, l’inizio e la fine dello stack non sono nella stessa area dati o il valore del puntatore dello stack supera la lunghezza dello stack. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) EQ: 188 ON quando i dati trasferiti sono zero; altrimenti OFF. Capitolo 5-16 Istruzioni di spostamento dati 5-16-8 MOVE BIT – MOVB(082) Aree dati operando S: canale sorgente Simboli per il diagramma a relè IR, SR, AR, DM, HR, LR, # MOVB(082) @MOVB(082) S S Bi Bi D D Bi: identificatore dei bit (BCD) IR, SR, AR, DM, HR, TC, LR, # D: canale di destinazione IR, SR, AR, DM, HR, LR Limitazioni I due digit più a destra e i due più a sinistra di Bi devono essere tra 00 e 15. Descrizione Quando la condizione di esecuzione è OFF, MOVB(082) non viene eseguita. Quando la condizione di esecuzione è ON, MOVB(082) copia il bit indicato di S nel bit indicato di D. I bit in S e in D sono specificati da Bi. I due digit più a destra di Bi definiscono il bit di partenza; i due digit più a sinistra definiscono il bit di destinazione. Bit 15 Bi Bi MSB 1 2 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 Bit 15 LSB S Bit 00 1 2 0 1 Bit 00 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 Bit sorgente (da 00 a 15) Bit 15 Bit di destinazione (da 00 a 15) D Flag ER: Bit 00 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 C non è in BCD o indica un bit non–esistente (cioè, il numero di bit deve essere compreso tra 00 e 15). Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) N: ON se il bit più a sinistra del contenuto del canale D è 1, altrimenti OFF. 5-16-9 MOVE DIGIT – MOVD(083) Aree dati operando Simboli per il diagramma a relè S: canale sorgente IR, SR, AR, DM, HR, TC, LR, # MOVD(083) @MOVD(083) S S Di Di D D Di: identificatore dei digit (BCD) IR, SR, AR, DM, HR, TC, LR, # D: canale di destinazione IR, SR, AR, DM, HR, TC, LR Limitazioni Ciascuno dei tre digit più a destra di Di deve essere un valore tra 0 e 3. Descrizione Quando la condizione di esecuzione è OFF, MOVD(083) non viene eseguita. Quando la condizione di esecuzione è ON, MOVD(083) copia il contenuto dei digit indicati in S nei digit specificati in D. E’ possibile trasferire al massimo quattro digit per volta. Il primo digit da copiare, il numero di digit da copiare e il primo digit che deve ricevere la copia vengono indicati in Di come illustrato sotto. I digit provenienti da S verranno copiati in digit consecutivi di D iniziando dal primo digit 189 Capitolo 5-16 Istruzioni di spostamento dati indicato fino all’esaurimento del numero di digit designati. Se si raggiunge l’ultimo digit in S o D, si utilizzano altri digit ripartendo da 0. Numero digit: 3 2 1 0 Primo digit di S (da 0 a 3) Numero di digit (da 0 a 3) 0: 1 digit 1: 2 digit 2: 3 digit 3: 4 digit Primo digit di D (da 0 a 3) Non utilizzato. Identificatore di digit Nella figura sono illustrati degli esempi di spostamento dati per vari valori di Di. Di: 0010 Di: 0030 S D S D 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 S D S D 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 Di: 0031 Flag ER: Di: 0023 Almeno uno dei tre digit più a destra di Di non è tra 0 e 3. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-16-10 TRANSFER BITS – XFRB(062) Aree dati operando Simboli per il diagramma a relè C: canale di controllo IR, SR, AR, DM, TC, HR, LR, # XFRB(062) @XFRB(062) C C S S D D S: primo canale sorgente Limitazioni IR, SR, AR, DM, HR, TC, LR D: primo canale di destinazione IR, SR, AR, DM, HR, LR I bit specificati come sorgente devono essere nella stessa area dati. I bit specificati come destinazione devono essere nella stessa area dati. XFRB(062) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 062 ad un’altra istruzione di espansione. Descrizione 190 Quando la condizione di esecuzione è OFF, XFRB(062) non viene eseguita. Quando la condizione di esecuzione è ON, XFRB(062) copia i bit indicati come Capitolo 5-16 Istruzioni di spostamento dati sorgenti nei bit indicati come destinazione. I due digit più a destra di C indicano i bit iniziali in S e D e i due digit più a sinistra indicano il numero di bit da copiare. C MSB LSB Primo bit di S (da 0 a F) Primo bit di D (da 0 a F) Numero di bit (da 01 a FF) Nota E’ possibile copiare al massimo 255 (FF) bit in una volta. Esempio Nell’esempio seguente, XFRB(062) è utilizzato per trasferire 5 bit da IR 020 a LR 21 quando IR 00001 è ON. Il bit iniziale in IR 020 è 0 e il bit iniziale in LR 21 è 4, così IR da 02000 a 02004 è copiato in LR da 2104 a 2108. 00001 XFRB(062) #0540 IR 020 Indirizzi Istruzioni 00000 00001 LD XFRB(062) Operandi 00001 # LR 21 LR Bit 15 S (IR 020) Bit 00 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 Bit 15 D (LR 21) Flag ER: 0540 020 21 Bit 00 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 I bit indicati come sorgenti non sono tutti nella stessa area dati. I bit indicati come destinazione non sono tutti nella stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) 5-16-11 EM BLOCK TRANSFER – XFR2(––) Aree dati operando Simboli per il diagramma a relè N: numero di canali (BCD) IR, SR, AR, DM, HR, TC, LR, # XFR2(––) @XFR2(––) N N S S D D S: canale iniziale sorgente IR, SR, AR, DM, HR, TC, LR, # D: canale iniziale di destinazione IR, SR, AR, DM, HR, TC, LR, # Limitazioni S ed S+N devono essere nella stessa area dati, come pure D e D+N. N deve essere in BCD. XFR2(––) è un’istruzione di espansione. E’ necessario utilizzare un dispositivo periferico per assegnare un numero di funzione a XFR2(––) in modo da utilizzare questa istruzione. Descrizione Quando la condizione di esecuzione è OFF, XFR2(––) non viene eseguita. Quando la condizione di esecuzione è ON, XFR2(––) copia i contenuti di S, S+1, ..., S+N in D, D+1, ..., D+N. Se una costante è utilizzata per S o D, la costante indica un indirizzo nel banco EM corrente. 191 Capitolo 5-16 Istruzioni di spostamento dati Flag ER: N non è in BCD. S ed S+N o D e D+N non sono nella stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Esempio L’esempio seguente copia i contenuti dei 300 canali da DM 0000 a DM 0299 in EM da 2000 a 2299 nel banco EM corrente. Indirizzi 00000 XFR2(––) #0300 00200 00201 Istruzioni Operandi LD XFR2(––) 00000 # DM # DM 0000 #2000 0300 0000 2000 5-16-12 EM BANK TRANSFER – BXF2(––) Aree dati operando Simboli per il diagramma a relè C: primo canale di controllo IR, SR, AR, DM, HR, TC, LR, # BXF2(––) @BXF2(––) C C S S D D S: canale iniziale sorgente IR, SR, AR, DM, HR, TC, LR, # D: canale iniziale di destinazione IR, SR, AR, DM, HR, TC, LR, # Limitazioni Il valore in C+1 deve essere in BCD da 1 a 6144. S ed S+N devono essere nella stessa area dati, come pure D e D+N. BXF2(––) è un’istruzione di espansione. E’ necessario utilizzare un dispositivo periferico per assegnare un numero di funzione a BXF2(––) in modo da poter utilizzare questa istruzione. Descrizione Quando la condizione di esecuzione è OFF, BXF2(––) non viene eseguita. Quando la condizione di esecuzione è ON, BXF2(––) copia il contenuto di S, S+1, ..., S+N in D, D+1, ..., D+N. Il banco può essere specificato (in C) se viene utilizzato un indirizzo dell’area EM per S o D. Se viene utilizzata una costante per S o D, la costante specifica un indirizzo nel banco EM sorgente o di destinazione specificato in C. Canali di controllo C contiene i numeri di banco sorgente o di destinazione se i dati sono trasferiti in EM o da EM. I numeri di banco sono ignorati a meno che per S o D viene utilizzata una costante. C+1 contiene il numero di canali da trasferire e deve essere in BCD (da 1 a 6144). Canale di controllo C C+1 Flag ER: Bit da 0 a 7 da 8 a 15 da 0 a 15 Funzione Specifica il numero di banco sorgente (da 00 a 02). Specifica il numero di banco di destinazione (da 00 a 02). Specifica il numero di canali da trasferire (da 1 a 6144). N non è in BCD. S ed S+N o D e D+N non sono nella stessa area dati. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD oppure il limite dell’area DM/EM è stato superato. Il banco indicato da C non esiste quando si utilizza un indirizzo dell’area EM. 192 Capitolo 5-16 Istruzioni di spostamento dati Esempio L’esempio seguente copia i contenuti dei 300 canali da DM 0000 a DM 0299 in EM da 2000 a 2299 nel banco EM 01. (Il banco EM 00 non è utilizzato come sorgente perché S non è una costante.) Indirizzi 00000 00200 00201 BXF2(––) DM 1000 Istruzioni Operandi LD BXF2(––) 00000 DM DM # DM 0000 #2000 C: DM 1000 0 1 0 1000 0000 2000 C+1: DM 1001 0 0 Numero di banco sorgente (00) 3 0 0 Numero dei canali (300) Numero di banco di destinazione (01) 5-16-13 EM BANK TRANSFER – BXFR(125) Aree dati operando Simboli per il diagramma a relè C: Primo canale di controllo IR, SR, AR, DM, EM, HR, TC, LR BXFR(125) @BXFR(125) C C S S D D S: Canale iniziale sorgente IR, SR, AR, DM, EM, HR, TC, LR D: Canale iniziale di destinazione IR, SR, AR, DM, EM, HR, TC, LR Limitazioni Il valore in C+1 deve essere in BCD tra 1 e 6144. S e S+N devono essere nella stessa area dati, come pure D e D+N. Descrizione Quando la condizione di esecuzione è OFF, BXFR(125) non viene eseguito. Quando la condizione di esecuzione è ON, BXFR(125) copia il contenuto di S, S+1, ..., S+N in D, D+1, ..., D+N. Il banco può essere specificato (in C) se l’indirizzo dell’area EM viene utilizzato per S o D. Canali di controllo C contiene i numeri di banco sorgente e di destinazione se i dati sono trasferiti a o da EM. I numeri di banco sono ignorati a meno che per S o D viene utilizzato un indirizzo dell’area EM o una costante. C+1 contiene il numero di canali da trasferire e deve essere in BCD (da 1 a 6144). Canale di controllo Flag Bit C da 0 a 7 da 8 a 15 C+1 da 0 a 15 ER: Funzione Specifica il numero di banco sorgente (da 00 a 0F). Specifica il numero di banco di destinazione (da 00 a 0F). Specifica il numero di canali da trasferire (da 1 a 6144). N non è in BCD. S e S+N o D e D+N non sono nella stessa area dati. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Il banco indicato da C non esiste quando si utilizza un indirizzo dell’area EM. 193 Capitolo 5-17 Istruzioni di comparazione Esempio L’esempio seguente copia i contenuti dei 300 canali da DM 0000...DM 0299 da EM 2000...EM 2299 nel banco EM 01 (il numero di banco sorgente viene ignorato perché non è stato utilizzato per esso un indirizzo dell’area EM.) 00000 BXFR(125) DM 1000 Indirizzi Istruzioni 00200 00201 LD BXFR(125) Operandi 00000 DM 1000 DM 0000 EM 2000 DM 0000 EM2000 C: DM 1000 0 1 0 C+1: DM 1001 0 0 Numero di banco sorgente (00) 3 0 0 Numero di canali (300) Numero di banco di destinazione (01) 5-17 Istruzioni di comparazione 5-17-1 MULTI–WORD COMPARE - MCMP(019) Aree dati operando Simboli per il diagramma a relè TB1: primo canale della tabella 1 IR, SR, AR, DM, HR, TC, LR MCMP(019) @MCMP(019) TB1 TB1 TB2 TB2 R R TB2: primo canale della tabella 2 Limitazioni IR, SR, AR, DM, HR, TC, LR R: risultato IR, AR, DM, HR, TC, LR TB1 e TB1+15 deve essere nella stessa area dati, come pure TB2 e TB2+15. MCMP(019) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 019 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, MCMP(019) non viene eseguita. Quando la condizione di esecuzione è ON, MCMP(019) confronta il contenuto di TB1 al contenuto di TB2, quello di TB1+1 a quello di TB2+1, quello di TB1+2 a quello di TB2+2, ..., e quello di TB1+15 a quello di TB2+15. Se il primo paio è uguale, il primo bit in R viene abilitato OFF, ecc., cioè, se il contenuto di TB1 è uguale a quello di TB2, il bit 00 viene abilitato OFF, se il contenuto di TB1+1 è uguale a quello di TB2+1, il bit 01 viene abilitato OFF, ecc. I restanti bit in R verranno abilitati ON. Flag ER: Una delle tabelle (cioè, da TB1 a TB1+15 o da TB2 a TB2+15) supera l’area dati. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. 194 Capitolo 5-17 Istruzioni di comparazione Esempio L’esempio seguente mostra le comparazioni effettuate e i risultati ottenuti con MCMP(019). In questo caso, la comparazione viene eseguita durante ogni ciclo quando 00000 è ON. 00000 MCMP(019) 100 DM 0200 Indirizzi Istruzioni 00000 00001 LD MCMP(019) Operandi 00000 DM 0300 DM DM TB1: IR 100 IR 100 IR 101 IR 102 IR 103 IR 104 IR 105 IR 106 IR 107 IR 108 IR 109 IR 110 IR 111 IR 112 IR 113 IR 114 IR 115 TB2: DM 0200 0100 0200 0210 ABCD ABCD ABCD ABCD 0800 0900 1000 ABCD ABCD ABCD 1400 0210 1212 DM 0200 DM 0201 DM 0202 DM 0203 DM 0204 DM 0205 DM 0206 DM 0207 DM 0208 DM 0209 DM 0210 DM 0211 DM 0212 DM 0213 DM 0214 DM 0215 0100 0200 0210 0400 0500 0600 0210 0800 0900 1000 0210 1200 1300 1400 0210 1600 100 0200 0300 R: DM 0300 DM 030000 DM 030001 DM 030002 DM 030003 DM 030004 DM 030005 DM 030006 DM 030007 DM 030008 DM 030009 DM 030010 DM 030011 DM 030012 DM 030013 DM 030014 DM 030015 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 5-17-2 COMPARE – CMP(020) Simboli per il diagramma a relè Aree dati operando Cp1: primo canale di comparazione CMP(020) IR, SR, AR, DM, HR, TC, LR, # Cp1 Cp2: secondo canale di comparaz. Cp2 IR, SR, AR, DM, HR, TC, LR, # Limitazioni Quando si paragona un valore al valore corrente PV di un temporizzatore o di un contatore, questo deve essere espresso in BCD. Descrizione Quando la condizione di esecuzione è OFF, CMP(020) non viene eseguita. Quando la condizione di esecuzione è ON, CMP(020) confronta Cp1 e Cp2 e assegna il risultato ai flag di GR, EQ, e LE dell’area SR. Precauzioni Inserendo altre istruzioni tra CMP(020) e l’operazione che assegna i flag di EQ, LE, e GR è possibile che lo stato di questi flag sia variato. Accertarsi di gestirli prima che ne venga modificato lo stato. CMP(020) non può essere utilizzato per confrontare i dati binari con segno. Utilizzare invece CPS(114). Per ulteriori dettagli fare riferimento a 5-17-8 SIGNED BINARY COMPARE – CPS(114). 195 Capitolo 5-17 Istruzioni di comparazione Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) EQ: ON si Cp1 è è uguale a Cp2. LE: ON se Cp1 è minore di Cp2. GR: ON se Cp1 è maggiore di Cp2. Flag Esempio 1: Salvataggio dei risultati di CMP(020) Indirizzi C1 < C2 C1 = C2 C1 > C2 GR 25505 OFF OFF ON EQ 25506 OFF ON OFF LE 25507 ON OFF OFF L’esempio seguente illustra come salvare immediatamente il risultato di comparazione. Se il contenuto di HR 09 è maggiore di quello di 010, 00200 è abilitato (ON); se i due contenuti sono uguali, 00201 è abilitato (ON); se il contenuto di HR 09 è minore di quello di 010, 00202 è abilitato (ON). In alcune applicazioni, sarà necessario solo uno dei tre OUT, facendo diventare inutile l’uso di TR 0. Con questo tipo di programmazione, 00200, 00201 e 00202 sono aggiornati solo quando viene eseguita CMP(020). 00000 TR 0 CMP(020) HR 09 010 25505 00200 Maggiore 00201 Uguale 00202 Minore 25506 25507 Indirizzi 00000 00001 00002 00003 00004 Esempio 2: Indicazioni durante il funzionamento del temporizzatore 196 Istruzioni LD OUT CMP(020) LD E Operandi TR HR TR 00000 0 010 09 0 25505 Indirizzi 00005 00006 00007 00008 00009 00010 00011 Istruzioni OUT LD AND OUT LD AND OUT Operandi TR 25506 TR 00200 0 00201 0 25507 00202 L’esempio seguente utilizza TIM, CMP(020) e il flag LE (25507) per determinare le uscite in particolari momenti nel conto alla rovescia del temporizzatore. Il temporizzatore si avvia con ON 00000. Quando 00000 è OFF, TIM 010 è resettato e le altre due CMP(020) non vengono eseguite (cioè, eseguite con le condizioni di esecuzione OFF). L’uscita 00200 è prodotta dopo 100 secondi; quella 00201, dopo 200 secondi; quella 00202, dopo 300 secondi; e quella 00204, dopo 500 secondi. Capitolo 5-17 Istruzioni di comparazione La struttura ad albero di questo diagramma è importante al fine di assicurare che 00200, 00201 e 00202 siano controllate correttamente appena il temporizzatore inizia il conto alla rovescia. Poiché tutte le comparazioni, in questo caso, utilizzano il valore PV del temporizzatore come riferimento, l’altro operando per ogni CMP(020) deve essere in BCD a 4 digit. 00000 TIM 010 #5000 500,0 s CMP(020) TIM 010 #4000 25507 00200 Uscita a 100 s. 00200 CMP(020) TIM 010 #3000 25507 00201 Uscita a 200 s. 00201 CMP(020) TIM 010 #2000 25507 00202 Uscita a 300 s. 00204 Uscita a 500 s. TIM 010 Indirizzi Istruzioni 00000 00001 LD TIM 00002 CMP(020) Operandi # TIM # 00003 00004 00005 00006 AND OUT LD CMP(020) TIM # 00000 010 5000 010 4000 25507 00200 00200 Indirizzi 00007 00008 00009 00010 Istruzioni Operandi AND OUT LD CMP(020) 25507 00201 00201 TIM # 00011 00012 00013 00014 AND OUT LD OUT TIM 010 2000 25507 00202 010 00204 010 3000 5-17-3 DOUBLE COMPARE – CMPL(060) Simboli per il diagramma a relè Aree dati operando Cp1: primo canale 1 coppia canali di compar. CMPL(060) IR, SR, AR, DM, HR, TC, LR Cp1 Cp2: primo canale 2 coppia canali di compar. Cp2 IR, SR, AR, DM, HR, TC, LR ___ Limitazioni Cp1 e Cp1+1 devono essere nella stessa area dati, come pure Cp2 e Cp2+1. CMPL(060) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 060 ad un’altra istruzione di espansione. 197 Capitolo 5-17 Istruzioni di comparazione Descrizione Quando la condizione di esecuzione è OFF, CMPL(060) non viene eseguita. Quando la condizione di esecuzione è (ON), CMPL(060) unisce il contenuto esadecimale a 4 digit di Cp1+1 con quello di Cp1 e quello di Cp2+1 con quello di Cp2 per creare due numeri esadecimali a 8 digit, CP+1,Cp1 e Cp2+1,Cp2. I due numeri di 8 digit vengono quindi confrontati e il risultato della comparazione agisce sui flag GR, EQ, ed LE nell’area SR. Precauzioni L’inserimento di altre istruzioni tra CMPL(060) e l’operazione che fornisce i flag EQ, LE, e GR può far cambiare lo stato di questi flag. Accertarsi di gestirli prima che ne venga modificato lo stato. CMPL(060) non può essere utilizzato per confrontare i dati binari con segno. Utilizzare invece CPSL(115). Per ulteriori dettagli fare riferimento a 5-17-9 DOUBLE SIGNED BINARY COMPARE – CPSL(115). Flag Esempio: Salvataggio dei risultati di CMPL(060) ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) GR: ON se Cp1+1,Cp1 è maggiore di Cp2+1,Cp2. EQ: ON se Cp1+1,Cp1 è uguale a Cp2+1,Cp2. LE: ON se Cp1+1,Cp1 è minore di Cp2+1,Cp2. L’esempio seguente illustra come salvare immediatamente il risultato di comparazione. Se il contenuto di HR 10, HR 09 è maggiore di quello di 011, 010, 00200 è abilitato (ON); se il due contenuto è uguale, 00201 è abilitato (ON); se il contenuto di HR 10, HR 09 è minore di quello di 011, 010, 00202 è abilitato (ON). In alcune applicazioni sarà necessario solo uno dei tre OUT, facendo diventare inutile l’uso di TR 0. Con questo tipo di programmazione, 00200, 00201 e 00202 sono aggiornati solo quando viene eseguita CMPL(060). 00000 TR 0 CMPL(060) HR 09 010 ––– 25505 00200 Maggiore 00201 Uguale 25506 25507 00202 Indirizzi 00000 00001 00002 Istruzioni LD OUT CMPL(060) Operandi TR HR 00003 198 AND Indirizzi 00000 0 09 010 25505 00004 00005 00006 00007 00008 00009 00010 Istruzioni OUT LD AND OUT LD AND OUT Minore Operandi TR TR 00200 0 25506 00201 0 25507 00202 Capitolo 5-17 Istruzioni di comparazione 5-17-4 BLOCK COMPARE – BCMP(068) Aree dati operando CD: dati di comparazione Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # BCMP(068) @BCMP(068) CD CD CB CB R R CB: 1 canale blocco di comparaz. Limitazioni IR, DM, HR, TC, LR R: risultato IR, SR, AR, DM, HR, TC, LR Ogni canale del limite inferiore del blocco di comparazione deve essere minore o uguale al limite superiore. BCMP(068) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 068 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, BCMP(068) non viene eseguita. Quando la condizione di esecuzione è ON, BCMP(068) confronta CD agli intervalli definiti da un blocco composto da CB, CB+1, CB+2, ..., CB+31. Ciascun intervallo è definito da due canali, il primo determina il limite inferiore ed il secondo quello superiore. Se CD dovesse trovarsi entro uno qualsiasi di questi intervalli (inclusi i limiti superiore e inferiore), viene attivato (ON) il corrispondente bit in R. Qui di seguito sono illustrate le comparazioni che vengono effettuate ed i corrispondenti bit in R. I restanti bit in R verranno abilitati OFF. CB≤ CD≤ CB+1 CB+2≤ C D≤ CB+3 CB+4≤ C D≤ CB5 CB+6≤ C D≤ CB+7 CB+8≤ C D≤ CB+9 CB+10≤ C D≤ CB+11 CB+12≤ C D≤ CB+13 CB+14≤ C D≤ CB+15 CB+16≤ C D≤ CB+17 CB+18≤ C D≤ CB+19 CB+20≤ C D≤ CB+21 CB+22≤ C D≤ CB+23 CB+24≤ C D≤ CB+25 CB+26≤ C D≤ CB+27 CB+28≤ C D≤ CB+29 CB+30≤ C D≤ CB+31 Bit 00 Bit 01 Bit 02 Bit 03 Bit 04 Bit 05 Bit 06 Bit 07 Bit 08 Bit 09 Bit 10 Bit 11 Bit 12 Bit 13 Bit 14 Bit 15 Normalmente il primo canale dell’intervallo è inferiore al secondo, ma se il primo canale dell’intervallo è maggiore del secondo, il corrispondente bit in R sarà abilitato OFF quando CD è fuori dell’intervallo definito dai due canali, come illustrato nel diagramma seguente. ÉÉÉÉÉÉÉÉÉÉ ÉÉÉÉÉÉÉÉÉÉ CB 0000 ÉÉÉÉÉÉ ÉÉÉÉÉÉ CB+1 0000 Flag ER: CB + 1 9999 ÉÉÉÉÉÉ ÉÉÉÉÉÉ CB 9999 Il blocco di comparazione (cioè, da CB a CB+31) supera l’area dati. 199 Capitolo 5-17 Istruzioni di comparazione Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) Esempio L’esempio seguente mostra le comparazioni effettuate e i risultati ottenuti con BCMP(068). In questo caso, la comparazione viene effettuata durante ogni ciclo quando 00000 è ON. 00000 BCMP(068) Indirizzi Istruzioni 00000 00001 LD BCMP(068) 001 HR 10 Operandi 00000 HR 05 HR HR CD 001 001 Limiti inferiori 0210 HR 10 HR 12 HR 14 HR 16 HR 18 HR 20 HR 22 HR 24 HR 26 HR 28 HR 30 HR 32 HR 34 HR 36 HR 38 HR 40 Dati di comparazione IR 001 (che contiene 0210) con gli intervalli dati. Limiti superiori 0000 0101 0201 0301 0401 0501 0601 0701 0801 0901 1001 1101 1201 1301 1401 1501 HR 11 HR 13 HR 15 HR 17 HR 19 HR 21 HR 23 HR 25 HR 27 HR 29 HR 31 HR 33 HR 35 HR 37 HR 39 HR 41 001 10 05 R: HR 05 0100 0200 0300 0400 0500 0600 0700 0800 0900 1000 1100 1200 1300 1400 1500 1600 HR 0500 HR 0501 HR 0502 HR 0503 HR 0504 HR 0505 HR 0506 HR 0507 HR 0508 HR 0509 HR 0510 HR 0511 HR 0512 HR 0513 HR 0514 HR 0515 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 5-17-5 TABLE COMPARE – TCMP(085) Aree dati operando Simboli per il diagramma a relè CD: dati di comparazione IR, SR, AR, DM, HR, TC, LR, # TCMP(085) @TCMP(085) CD CD TB TB R R TB: 1 canale tabella di comparaz. IR, AR, DM, HR, TC, LR R: risultato IR, SR, AR, DM, HR, TC, LR Limitazioni TB e TB+15 devono essere nella stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, TCMP(085) non viene eseguita. Quando la condizione di esecuzione è ON, TCMP(085) confronta CD al contenuto di TB, TB+1, TB+2, ..., e TB+15. Se CD è uguale al contenuto di uno qualsiasi di questi canali, viene predisposto il corrispondente bit in R, per es., se CD è uguale al contenuto di TB, il bit 00 viene abilitato ON, se è uguale a quello di TB+1, il bit 01 viene abilitato ON, ecc. I restanti bit in R verranno abilitati OFF. Flag ER: La tabella di comparazione (cioè, da TB a TB+15) supera l’area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) EQ: 200 ON se nessuno dei canali nella tabella di comparazione è uguale a CD, cioè, tutti i bit in R sono abilitati OFF. Capitolo 5-17 Istruzioni di comparazione Esempio L’esempio seguente illustra le comparazioni effettuate e i risultati ottenuti con TCMP(085). In questo caso, la comparazione viene effettuata durante ogni ciclo quando 00000 è ON. 00000 TCMP(085) 001 Indirizzi Istruzioni 00000 00001 LD TCMP(085) Operandi 00000 HR 10 HR 05 CD: 001 001 0210 Dati di comparazione IR 001 con gli intervalli dati. HR HR Limiti superiori R: HR 05 HR 10 HR 11 HR 12 HR 13 HR 14 HR 15 HR 16 HR 17 HR 18 HR 19 HR 20 HR 21 HR 22 HR 23 HR 24 HR 25 HR 0500 HR 0501 HR 0502 HR 0503 HR 0504 HR 0505 HR 0506 HR 0507 HR 0508 HR 0509 HR 0510 HR 0511 HR 0512 HR 0513 HR 0514 HR 0515 0100 0200 0210 0400 0500 0600 0210 0800 0900 1000 0210 1200 1300 1400 0210 1600 001 10 05 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 5-17-6 AREA RANGE COMPARE – ZCP(088) Aree dati operando CD: dati di comparazione Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # ZCP(088) @ZCP(088) CD CD LL LL UL UL LL: limite inferiore dell’intervallo Limitazioni IR, SR, AR, DM, HR, TC, LR, # UL: limite superiore dell’intervallo IR, SR, AR, DM, HR, TC, LR, # LL deve essere minore o uguale a UL. ZCP(088) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 088 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, ZCP(088) non viene eseguita. Quando la condizione di esecuzione è ON, ZCP(088) confronta CD con l’intervallo definito fra i limiti inferiore LL e superiore UL e fornisce il risultato nei flag GR, EQ, e LE dell’area SR. I risultati rappresentati dai flag sono illustrati nella tabella seguente. Stato dei flag Risultato di comparazione p CD < LL GR (SR 25505) EQ (SR 25506) 0 0 LE (SR 25507) 1 LL≤ CD≤ UL 0 1 0 UL < CD 1 0 0 201 Capitolo 5-17 Istruzioni di comparazione Precauzioni L’inserimento di altre istruzioni tra ZCP(088) e l’operazione che fornisce i flag EQ, LE, e GR può far cambiare lo stato di questi flag. Accertarsi di gestirli prima che ne venga modificato lo stato. Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) LL è maggiore di UL. ON se LL≤ CD ≤ UL ON se CD < LL. ON se CD > UL. EQ: LE: GR: Esempio: Salvataggio dei risultati di ZCP(088) L’esempio seguente mostra come salvare immediatamente il risultato di comparazione. Se IR 100 > AB1F, IR 00200 viene abilitato (ON); se #0010 ≤ IR 100 ≤ AB1F, IR 00201 viene abilitato (ON); se IR 100 < 0010, IR 00202 viene abilitato (ON). 00000 TR 0 ZCP(088) IR 100 #0010 #AB1F 25505 00200 Maggiore (al di sopra dell’intervallo) 00201 Uguale (entro l’intervallo) 25506 25507 00202 Indirizzi Istruzioni 00000 00001 00002 LD OUT ZCP(088) 00003 00004 Operandi TR IR # # LD AND 00000 0 100 0010 AB1F 25505 Indirizzi 00005 00006 00007 00008 00009 00010 00011 Istruzioni OUT LD AND OUT LD AND OUT Minore al di sotto dell’intervallo) Operandi TR 25506 TR 00200 0 00201 0 25507 00202 5-17-7 DOUBLE AREA RANGE COMPARE – ZCPL(116) Aree dati operando Simboli per il diagramma a relè CD: dati di comparazione IR, SR, AR, DM, HR, LR ZCPL(116) LL: limite inferiore dell’intervallo CD LL UL Limitazioni 202 IR, SR, AR, DM, HR, LR UL: limite superiore dell’intervallo IR, SR, AR, DM, HR, LR Il valore di 8 digit contenuto in LL+1, LL deve essere minore o uguale al valore contenuto in UL+1, UL. CD e CD+1 devono essere nella stessa area dati, come pure LL ed LL+1 e UL e UL+1. ZCPL(116) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 116 ad un’altra istruzione di espansione. Capitolo 5-17 Istruzioni di comparazione Descrizione Quando la condizione di esecuzione è OFF, ZCPL(116) non viene eseguita. Quando la condizione di esecuzione è ON, ZCPL(116) confronta il valore di 8 digit in CD, CD+1 con l’intervallo delimitato dai limiti inferiore LL+1, LL e superiore UL+1, UL e fornisce nei flag GR, EQ, ed LE dell’area SR. I risultati rappresentati dai flag sono illustrati nella tabella seguente. Stato dei flag Risultato di comparazione p GR (SR 25505) EQ (SR 25506) LE (SR 25507) CD, CD+1< LL+1, LL 0 0 1 LL+1, LL≤ CD, CD+1≤ UL+1, UL 0 1 0 UL+1, UL < CD, CD+1 1 0 0 Precauzioni L’inserimento di altre istruzioni tra ZCPL(116) e l’operazione che fornisce i flag EQ, LE, e GR può far cambiare lo stato di questi flag. Accertarsi di gestirli prima che ne venga modificato lo stato. Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) LL+1, LL è maggiore di UL+1, UL. Esempio EQ: ON se LL+1, LL ≤ CD, CD+1 ≤ UL+1, UL LE: ON se CD, CD+1 < LL+1, LL. GR: ON se CD, CD+1 > UL+1, UL. Per un esempio fare riferimento 5-17-6 AREA RANGE COMPARE – ZCP(088). L’unica differenza tra ZCP(088) e ZCPL(116) è il numero di digit nei dati di comparazione. 5-17-8 SIGNED BINARY COMPARE – CPS(114) Aree dati operando Simboli per il diagramma a relè Cp1: primo canale di comparazione IR, SR, AR, DM, HR, TC, LR, # CPS(114) Cp2: secondo canale di comparaz. Cp1 Cp2 000 IR, SR, AR, DM, HR, TC, LR, # Terzo operando: impostato a 000. ––– Limitazioni CPS(114) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 114 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, CPS(114) non viene eseguita. Quando la condizione di esecuzione è ON, CPS(114) confronta i 16 bit (4 digit) binari con segno contenuti in Cp1 e Cp2 e fornisce il risultato nei flag GR, EQ, ed LE dell’area SR. Note 1. Per ulteriori dettagli sui 16 bit binari con segno fare riferimento alla pagina 28. 2. Per ulteriori dettagli sul salvataggio dei risultati di comparazione fare riferimento a 5-17-2 Compare – CMP(020). Precauzioni L’inserimento di altre istruzioni tra CPS(114) e l’operazione che fornisce i flag EQ, LE, e GR può far cambiare lo stato di questi flag. Accertarsi di gestirli prima che ne venga modificato lo stato. 203 Capitolo 5-17 Istruzioni di comparazione Flag ER: EQ: LE: GR: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) ON se Cp1 è uguale a Cp2. ON se Cp1 è minore di Cp2. ON se Cp1 è maggiore di Cp2. Stato dei flag Risultato di comparazione p Cp1 < Cp2 GR (SR 25505) EQ (SR 25506) 0 0 LE (SR 25507) 1 Cp1 = Cp2 0 1 0 Cp1 > Cp2 1 0 0 5-17-9 DOUBLE SIGNED BINARY COMPARE – CPSL(115) Aree dati operando Simboli per il diagramma a relè Cp1: primo canale di comparazione IR, SR, AR, DM, HR, TC, LR CPSL(115) Cp2: secondo canale di comparaz. Cp1 IR, SR, AR, DM, HR, TC, LR Cp2 Terzo operando: impostato a 000. 000 ––– Limitazioni Cp1 e Cp1+1 devono essere nella stessa area dati, come pure Cp2 e Cp2+1. CPSL(115) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 115 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, CPSL(115) non viene eseguita. Quando la condizione di esecuzione è ON, CPSL(115) confronta i 32 bit (8 digit) binari con segno contenuti in Cp1+1, Cp1 e Cp2+1 e fornisce il risultato nei flag GR, EQ, ed LE dell’area SR. Precauzioni L’inserimento di altre istruzioni tra CPSL(115) e l’operazione che fornisce i flag EQ, LE, e GR può far cambiare lo stato di questi flag. Accertarsi di gestirli prima che ne venga modificato lo stato. Flag ER: EQ: LE: GR: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM non è in BCD o il confine dell’area DM è stato superato.) ON se Cp1+1, Cp1 è uguale a Cp2+1, Cp2. ON se Cp1+1, Cp1 è minore di Cp2+1, Cp2. ON se Cp1+1, Cp1 è maggiore di Cp2+1, Cp2. Stato dei flag Risultato di comparazione p Cp1+1, Cp1 < Cp2+1, Cp2 GR (SR 25505) EQ (SR 25506) 0 0 LE (SR 25507) 1 Cp1+1, Cp1 = Cp2+1, Cp2 0 1 0 Cp1+1, Cp1 > Cp2+1, Cp2 1 0 0 5-17-10 Istruzioni di comparazione di ingresso (da 300 a 328) Simboli per il diagramma a relè Aree dati operando S1: Dati di comparazione 1 Mnem(Codice) IR, SR, AR, DM, EM, HR, TC, LR, # S1 S2: Dati di comparazione 2 S2 --- 204 IR, SR, AR, DM, EM, HR, TC, LR, # Capitolo 5-17 Istruzioni di comparazione Nota “Mnem” nel simbolo per il diagramma a relè sopra riportato viene sostituito con il codice mnemonico dell’istruzione specifica; “code” viene sostituito con il numero di funzione dell’istruzione specifica. Descrizione Quando la condizione di esecuzione è OFF, le istruzioni di comparazione di ingresso non vengono eseguite, quindi l’esecuzione continua con il resto della riga di istruzione. Quando l’esecuzione è ON, le istruzioni di comparazione di ingresso confrontano le costanti e/o il contenuto dei canali specificati per i dati con segno o senza segno e creano una condizione di esecuzione ON, quando viene rispettata la condizione di comparazione. Se la condizione di comparazione non viene rispettata, il resto della riga di istruzione verrà ignorato e l’esecuzione si sposterà alla riga di istruzione successiva. E’ disponibile un totale di 24 istruzioni di comparazione di ingresso. Queste possono essere inserite utilizzando varie combinazioni di simboli e opzioni. Se non viene specificata alcuna opzione, la comparazione dati senza segno a un canale. Simbolo = (Uguale) <> (Non uguale) < (Minore di) <= (Minore di o uguale) > (Maggiore di) >= (Maggiore di o uguale) Opzione (formato dati) S (dati con segno) Opzione (lunghezza dati) L (doppia lunghezza) Le istruzioni di comparazione di ingresso senza segno (vale a dire, le istruzioni senza l’opzione S) possono gestire dati binari senza segno o BCD. Le istruzioni di comparazione di ingresso con segno (vale a dire, le istruzioni con l’opzione S) gestiscono i dati binari con segno. Quando si utilizzano le istruzioni di comparazione di ingresso, seguire ciascuna istruzione nel programma con un’altra istruzione sulla stessa riga di istruzione. 205 Capitolo 5-17 Istruzioni di comparazione La tabella seguente mostra i numeri di funzione, i codici mnemonici, i nomi e le funzioni delle istruzioni di comparazione di ingresso. N. Codice mnemonico Nome Funzione 300 301 302 303 = =L =S =SL EQUAL DOUBLE EQUAL SIGNED EQUAL DOUBLE SIGNED EQUAL TRUE WHEN S1 = S2 305 306 307 308 <> <>L <>S <>SL NOT EQUAL DOUBLE NOT EQUAL SIGNED NOT EQUAL DOUBLE SIGNED NOT EQUAL TRUE WHEN S1 ≠ S2 310 311 312 313 < <L <S <SL LESS THAN DOUBLE LESS THAN SIGNED LESS THAN DOUBLE SIGNED LESS THAN TRUE WHEN S1 < S2 315 316 317 318 <= <=L <=S <=SL LESS THAN OR EQUAL DOUBLE LESS THAN OR EQUAL SIGNED LESS THAN OR EQUAL DOUBLE SIGNED LESS THAN OR EQUAL TRUE WHEN S1 S2 320 321 322 323 > >L >S >SL TRUE WHEN S1 > S2 GREATER THAN DOUBLE GREATER THAN SIGNED GREATER THAN DOUBLE SIGNED GREATER THAN 325 326 >= >=L 327 >=S 328 >=SL GREATER THAN OR EQUAL TRUE WHEN S1 S2 DOUBLE GREATER THAN OR EQUAL SIGNED GREATER THAN OR EQUAL DOUBLE SIGNED GREATER THAN OR EQUAL Precauzioni Le istruzioni di comparazione di ingresso non possono essere utilizzate come istruzioni meno significative, vale a dire che è necessario che tra esse venga utilizzata un’altra istruzione e e quelle successive. Esempio < (310) Quando nell’esempio seguente IR 00000 è ON, i contenuti di DM 0100 e DM 0200 vengono comparati come dati binari. Se il contenuto di DM 0100 è minore rispetto a quello di DM 0200, IR 05000 viene impostato su ON e l’esecuzione procede alla riga successiva. Se il contenuto di DM 0100 non è minore rispetto a quello di DM 0200, il resto della riga di istruzione viene ignorato e l’esecuzione si sposta verso la riga di istruzione successiva. Quando IR 00000 è OFF, IR 05000 è impostato su OFF. <S(312) Quando nell’esempio seguente IR 00001 è ON, i contenuti di DM 0110 e DM 0210 vengono comparati come dati binari. Se il contenuto di DM 0110 è minore di quello di DM 0210, IR 05001 viene impostato su ON e l’esecuzione procede alla riga successiva. Se il contenuto di DM 0110 non è minore di quello di DM 0210, il resto della riga di istruzione viene ignorato e l’esecuzione si sposta alla riga di istruzione successiva. 206 Capitolo 5-17 Istruzioni di comparazione Quando IR 00001 è OFF, IR 05001 è impostato su OFF. Indirizzo Istruzione 00000 LD 00001 <(310) Operandi 00000 DM 0100 DM 0200 OUT 05000 00002 LD 00001 00003 <S(312) DM 0110 DM 0210 OUT Comparazione senza segno (<) S1: DM 0100 05001 S2: DM 0200 8714 3A1C Decimale: 34580 Decimale: 14876 34580 > 14876 (Non procederà alla riga successiva.) Comparazione con segno (<S) S1: DM 0110 S2: DM 0210 8714 3A1C Decimale: -n30956 Decimale: 14876 -30956 < 14876 (Procederà alla riga successiva.) 207 Capitolo 5-18 Conversione dei dati 5-18 Conversione dei dati Le istruzioni di conversione convertono il formato dei dati dei canali, e lo riportano in canali risultato specifici. E’ possibile la conversione tra binario (esadecimale) e BCD, in display 7 segmenti, in ASCII e tra dati multiplexati e non multiplexati. Tutte queste istruzioni modificano soltanto il contenuto dei canali in cui sono trasferiti i dati convertiti, e quindi il contenuto dei canali sorgente rimane uguale prima e dopo l’esecuzione delle istruzione di conversione. 5-18-1 BCD–TO–BINARY - BIN(023) Simboli per il diagramma a relè Aree dati operando S: Dato da convertire (BCD) BIN(023) @BIN(023) S S R R IR, SR, AR, DM, HR, TC, LR R: Risultato Descrizione IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, BIN(023) non è eseguita. Quando la condizione di esecuzione è ON, BIN(023) converte il contenuto in BCD di S nell’equivalente binario e pone il valore binario in R. Viene cambiato soltanto il contenuto di R, mentre quello di S viene lasciato invariato. BCD S Binario R BIN(023) può essere usata per convertire da BCD in binario, così che il dato convertito apparirà in esadecimale invece che in decimale sul display della Console di Programmazione o qualsiasi altro dispositivo di programmazione. Può essere usata anche per eseguire operazioni aritmetiche in binario invece che in BCD, per es. quando devono essere addizionati BCD e valori binari. Flag ER: Il contenuto di S non è in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 208 EQ: ON quando il risultato è zero. N: 25402 è sempre OFF. Capitolo 5-18 Conversione dei dati 5-18-2 DOUBLE BCD–TO–BINARY - BINL(058) Simboli per il diagramma a relè Aree dati operando S: Primo canale sorgente (BCD) BINL(058) @BINL(058) S S R R IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato Descrizione Flag IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, BINL(058) non è eseguita. Quando la condizione di esecuzione è ON, BINL(058) converte un numero a otto digit in S e S+1 in un dato binario a 32 bit e pone il dato convertito in R e R+1. ER: BCD S+1 S Binario R+1 R I contenuti di S e/o S+1 non sono in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale DM* non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato è zero. N: 25402 è sempre OFF. 5-18-3 BINARY– TO–BCD – BCD(024) Simboli per il diagramma a relè Aree dati operando S: Canale sorgente (binario) BCD(024) @BCD(024) S S R R IR, SR, AR, DM, HR, LR R: Canale risultato Descrizione IR, SR, AR, DM, HR, LR BCD(024) converte il contenuto binario (esadecimale) di S nell’equivalente BCD e pone i bit BCD in R. Viene cambiato soltanto il contenuto di R, mentre quello di S viene lasciato invariato. Binario S BCD R BCD(024) può essere usata per convertire da binario in BCD, così che il dato convertito apparirà in decimale invece che in esadecimale sul display della Console di Programmazione o qualsiasi altro dispositivo di programmazione. Può essere usata anche per eseguire operazioni aritmetiche in BCD invece che in binario, per es. quando devono essere addizionati BCD e valori binari. Nota Se il contenuto di S supera 270F, il canale risultato convertito supererà 9999 e BCD(024) non sarà eseguita. Quando l’istruzione non è eseguita, il contenuto di R rimane invariato. Dati binari con segno BCD(024) non può essere utilizzata per convertire i dati binari con segno direttamente in BCD. A tal fine, stabilire prima se i dati sono positivi o negativi. Se positivi, BCD(024) può essere utilizzata per convertire i dati in BCD. Se negativi, uti- 209 Capitolo 5-18 Conversione dei dati lizzare l’istruzione 2’s COMPLEMENT – NEG(160) per convertire i dati in binario senza segno prima di eseguire BCD(024). Fare riferimento a pagina 28 per i dettagli sui dati binari con segno. Flag ER: S è maggiore di 270F. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato è zero. 5-18-4 DOUBLE BINARY–TO–DOUBLE BCD - BCDL(059) Simboli per il diagramma a relè Aree dati operando S: Primo canale sorgente (binario) BCDL(059) @BCDL(059) S S R R IR, SR, AR, DM, HR, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Se il contenuto di S supera 05F5E0FF, il risultato convertito supererà 99999999 e BCDL(059) non sarà eseguita. Quando l’istruzione non è eseguita, il contenuto di R e di R+1 rimane invariato. S e S+1 devono trovarsi nella stessa area dati di R e R+1. Descrizione BCDL(059) converte il contenuto binario a 32 bit di S e S+1 nelle corrispondenti otto cifre in BCD e pone il dato convertito in R e R+1. Binario S+1 S BCD R+1 R Dati binari con segno BCD(024) non può essere usata per convertire i dati binari con segno direttamente in BCD. A tal fine, stabilire prima se i dati sono positivi o negativi. Se positivi, BCD(024) può essere usata per convertire i dati in BCD. Se negativi, utilizzare l’istruzione DOUBLE 2’s COMPLEMENT – NEGL(161) per convertire i dati in binario senza segno prima di eseguire BCD(024). Fare riferimento a pagina 28 per i dettagli sui dati binari con segno. Flag ER: Il contenuto di R e R+1 supera 99999999. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: 210 ON quando il risultato è zero. Capitolo 5-18 Conversione dei dati 5-18-5 HOURS–TO–SECONDS – SEC(065) Aree dati operando S: Primo canale sorgente (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR SEC(065) @SEC(065) S S R R 000 000 R: Primo canale risultato (BCD) IR, SR, AR, DM, HR, TC, LR 000: impostato a 000. --- Limitazioni S e S+1 devono appartenere alla stessa area dati. R e R+1 devono appartenere alla stessa area dati. S e S+1 si devono essere in BCD e devono essere nel formato ore/minuti/secondi. Descrizione S(065) è utilizzata per convertire valori di tempo espressi in ore/minuti/secondi nei secondi equivalenti. Nel canale sorgente, i secondi sono specificati nei bit da 00 a 07 ed i minuti nei bit da 08 a 15 di S. Le ore si trovano nel canale S+1. Il massimo è 9.999 ore, 59 minuti e 59 secondi. I risultati sono posti in R e R+1. Il valore massimo ottenibile è 35.999.999 secondi. Flag ER: S e S+1 o R e R+1 non appartengono alla stessa area dati. S e/o S+1 non contengono valori BCD. Il numero di secondi e/o di minuti supera 59. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: Esempio ON quando il risultato è zero. Quando 00000 è OFF (cioè quando la condizione di esecuzione è ON), l’istruzione seguente converte le ore, i minuti e i secondi contenuti in HR 12 e HR 13 nei secondi equivalenti e memorizza il risultato nei DM 0100 e DM 0101. 00000 Indirizzo SEC(065) HR 12 DM 0100 000 HR 12 3 2 0 7 HR 13 2 8 1 5 DM 0100 5 9 2 7 DM 0101 1 0 1 3 2,815 hrs, 32 min, 07 s 00000 00001 Istruzione LD NOT SEC(065) Operandi 00000 HR 12 DM 0100 000 10,135,927 s 211 Capitolo 5-18 Conversione dei dati 5-18-6 SECONDS–TO–HOURS - HMS(066) Aree dati operando S: Primo canale sorgente (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR HMS(066) @HMS(066) S S R R 000 000 R: Primo canale risultato (BCD) IR, SR, AR, DM, HR, TC, LR 000: impostato a 000. --- Limitazioni S e S+1 devono appartenere alla stessa area dati. R e R+1 devono appartenere alla stessa area dati. S e S+1 devono essere in BCD e devono contenere un valore compreso tra 0 e 35.999.999 secondi. HMS(066) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo di espansione per riassegnare il numero di funzione 066 ad un’altra istruzione di espansione. Descrizione HMS(066) è utilizzata per convertire valori di tempo espressi in secondi nel formato ore/minuti/secondi equivalente. Il numero di secondi definito in S e S+1 è convertito nelle ore/minuti/i secondi e posto in R e R+1. Nel risultato, i secondi si trovano nei bit da 00 a 07 e i minuti nei bit da 08 a 15 di R. Le ore sono specificate in R+1. Il massimo sarà 9.999 ore, 59 minuti e 59 secondi. Flag ER: S e S+1 oppure R e R+1 non appartengono alla stessa area dati. S e/o S+1 non contengono valori BCD o superano 36.000.000 secondi. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: Esempio ON quando il risultato è zero. Quando 00000 è OFF (cioè quando la condizione di esecuzione è ON), l’istruzione seguente convertirà i secondi contenuti in HR 12 e HR 13 nelle ore, minuti e secondi equivalenti e memorizzerà i risultati nei DM 0100 e DM 0101 come illustrato. 00000 HMS(066) HR 12 DM 0100 000 212 HR 12 5 9 2 7 HR 13 1 0 1 3 DM 0100 3 2 0 7 DM 0101 2 8 1 5 10,135,927 s 2,815 hrs, 32 min, 07 s Indirizzo Istruzione 00000 00001 LD NOT HMS(066) Operandi 00000 HR 12 DM 0100 000 Capitolo 5-18 Conversione dei dati 5-18-7 4–TO–16/8–TO–256 DECODER - MLPX(076) Aree dati operando Simboli per il diagramma a relè S: Canale sorgente IR, SR, AR, DM, HR, TC, LR MLPX(076) @MLPX(076) S S C C R R C: Canale di controllo IR, SR, AR, DM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Quando il digit più a sinistra di C è 0, i due digit più a destra di C devono essere compresi tra 0 e 3. Quando il digit più a sinistra di C è 1, i due digit più a destra di C devono essere compresi tra 0 e 1. Tutti i canali risultato devono appartenere alla stessa area dati. Descrizione Secondo il valore di C, MLPX(076) funziona come decodificatore da 4 a16 bit o come decodificatore da 8 a 256 bit. Decodificatore da 4 a 16 bit MLPX(076) funziona come decodificatore da 4 a 16 bit quando il digit più a sinistra di C è 0. Il valore esadecimale dei digit in S è utilizzato per specificare i bit contenuti fino a 4 canali risultato. Il bit specificato in ogni canale risultato è ON e gli altri 15 bit in ogni canale sono OFF. Quando la condizione di esecuzione è OFF, MLPX(076) non è eseguita. Quando la condizione di esecuzione è ON, MLPX(076) converte fino a 4 digit esadecimali, contenuti in S, in valori decimali da 0 a 15, ciascuno dei quali è utilizzato per indicare la posizione del bit. Il bit la cui posizione corrisponde a ogni valore convertito è ON nel canale risultato. Se è specificato più di un digit, allora verrà abilitato (ON) un bit in ogni canale consecutivo iniziando con R. (Vedi esempi seguenti.) Canale di controllo I digit di C sono impostati come sotto illustrato. Impostare il digit più a sinistra di C su 0 per specificare un’operazione di decodifica da 4 a 16 bit. N. di digit: 3 2 1 0 Specifica il primo digit da convertire (0... 3) Numero di digit da convertire (0... 3) 0: 1 digit 1: 2 digit 2: 3 digit 3: 4 digit Non utilizzato. Impostato a 0. Un valore 0 specifica la decodifica da 4 a 16 bit. 213 Capitolo 5-18 Conversione dei dati Sono qui illustrati alcuni esempi di valori di C e le conversioni digit–canale che producono. C: 0010 C: 0030 S S 0 R 0 R 1 R+1 1 R+1 2 2 R+2 3 3 R+3 S C: 0031 S C: 0023 0 R 0 R 1 R+1 1 R+1 2 R+2 2 R+2 3 R+3 3 Segue un esempio di operazione di decodifica del digit n. 1 di S, cioè qui C è 0001. Canale sorgente C Bit C (bit numero 12) ON. Primo canale risultato 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Il primo digit e il numero di digit da convertire sono indicati in C. Se sono designati più digit di quelli che rimangono in S (contando dal primo digit dei digit designati), verranno convertiti anche i digit rimanenti ripartendo dall’inizio di S. Il canale finale necessario per memorizzare il risultato convertito (R più il numero di digit da convertire) deve appartenere alla stessa area dati di R. Per es., se due digit devono essere convertiti, non può essere specificato l’ultimo indirizzo di un’area dati; se tre digit devono essere convertiti, non possono essere definiti gli ultimi due canali di un’area dati. Decodificatore da 8 a 256 bit MLPX(076) funziona come decodificatore da 8 a 256 bit quando il digit più a sinistra di C è impostato su 1. Il valore esadecimale dei due byte in S è usato per specificare un bit in uno o due gruppi di 16 canali risultato consecutivi (256 bit). Il bit specificato in ogni gruppo è ON e gli altri 255 bit nel gruppo sono OFF. Canale di controllo I digit di C sono impostati come sotto illustrato. Impostare su 1 il digit più a sinistra di C per specificare la decodifica a da 8 a 256 bit. N. di digit: 3 2 1 0 Specifica il primo byte da convertire (0 o 1). 0: il byte a destra 1: il byte più a sinistra Numero di byte da convertire (0 o 1). 0: 1 byte 1: 2 byte Non utilizzato. Posto a 0. Un valore 1 specifica la decodifica da 8 a 256 bit. 214 Capitolo 5-18 Conversione dei dati I 4 possibili valori di C e le conversioni che producono sono illustrati sotto. (In S, 0 indica il byte più a destra e 1 indica il byte più a sinistra.) C: 1000 C: 1001 S S 0 R... R+15 0 R... R+15 1 R+16... R+31 1 R+16... R+31 C: 1010 S S C: 1011 0 R... R+15 0 R... R+15 1 R+16... R+31 1 R+16... R+31 Segue un esempio di operazione di decodifica a 1 byte partendo dal byte più a destra di S (in questo caso C è 1000). Canale sorgente 2 Bit 15 0 0 0 Bit 00 . . . 0 0 0 Bit 15 . . . Bit Bit 00 15 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R+2 R+15 Flag Bit 2C (cioè, dodicesimo bit del terzo canale) impostato su ON. C ER: Bit Bit 00 15 . . . R+1 0 0 0 0 0 0 Bit 00 . . . 0 0 0 R Canale di controllo non definito. I canali risultato non appartengono tutti alla stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 215 Capitolo 5-18 Conversione dei dati Il programma seguente converte tre digit a partire da LR 20 in posizioni di bit ed abilita (ON) i bit corrispondenti in tre canali consecutivi iniziando con HR 10. Esempio: Decodifica da 4 a 16 bit 00000 MLPX(076) Indirizzo Istruzione DM 0020 00000 00001 LD MLPX(076) #0021 DM 00 DM 01 DM 02 DM 03 DM 04 DM 05 DM 06 DM 07 DM 08 DM 09 DM 10 DM 11 DM 12 DM 13 DM 14 DM 15 R: HR 10 1 1 1 1 0 1 1 0 0 0 0 0 20 21 22 23 20 21 22 23 20 21 22 23 20 21 22 23 Non Convertito 1 2 3 15 6 0 HR 1000 HR 1001 HR 1002 HR 1003 HR 1004 HR 1005 HR 1006 HR 1007 HR 1008 HR 1009 HR 1010 HR 1011 HR 1012 HR 1013 HR 1014 HR 1015 R+1: HR 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00000 LR # HR HR 10 S: LR 20 Dati HR 1100 HR 1101 HR 1102 HR 1103 HR 1104 HR 1105 HR 1106 HR 1107 HR 1108 HR 1109 HR 1110 HR 1111 HR 1112 HR 1113 HR 1114 HR 1115 20 0021 10 R+2: HR 12 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 HR 1200 HR 1201 HR 1202 HR 1203 HR 1204 HR 1205 HR 1206 HR 1207 HR 1208 HR 1209 HR 1210 HR 1211 HR 1212 HR 1213 HR 1214 HR 1215 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5-18-8 16–TO–4/256–TO–8 ENCODER - DMPX(077) Aree dati operando Simboli per il diagramma a relè S: Primo canale sorgente IR, SR, AR, DM, HR, TC, LR DMPX(077) @DMPX(077) S S R R C C R: Canale risultato IR, SR, AR, DM, HR, LR C: Canale di controllo IR, SR, AR, DM, HR, TC, LR, # Limitazioni Quando il digit più a sinistra di C è 0, i due digit più a destra di C devono essere compresi tra 0 e 3. Quando il digit più a sinistra di C è 1, i due digit più a destra di C devono essere compresi tra 0 e 1. Tutte i canali sorgente devono appartenere alla stessa area dati. Descrizione Secondo il valore di C, MLPX(076) funziona come codificatore da 16 a 4 bit o come codificatore da 256 a 8 bit. 216 Capitolo 5-18 Conversione dei dati Codificatore da 16 a 4 bit DMPX(077) funziona come codificatore da 16 a 4 bit quando il digit più a sinistra di C è 0. Quando la condizione di esecuzione è OFF, DMPX(077) non è eseguita. Quando la condizione di esecuzione è ON, DMPX(077) determina la posizione del bit più significativo abilitato in S, lo codifica nel valore esadecimale a un digit corrispondente, trasferisce quindi il valore esadecimale nel digit specificato in R. I digit che devono ricevere i risultati sono specificati in C, che indica anche il numero di digit da codificare. Canale di controllo I digit di C sono impostati come sotto illustrato. Impostare il digit più a sinistra di C su 0 per specificare la codifica da 16 a 4 bit. N. di digit: 3 2 1 0 Specifica il primo digit in R che riceve i dati convertiti (0... 3). Numero di canali da convertire (0... 3). 0: 1 canale 1: 2 canali 2: 3 canali 3: 4 canali Non utilizzato. Posto a 0. Un valore 0 specifica la codifica da 16 a 4 bit. Seguono alcuni esempi di valori C e di conversioni canale–digit che producono. C: 0011 C: 0030 R R S 0 S 0 S+1 1 S+1 1 2 S+2 2 3 S+3 3 C: 0013 C: 0032 R S S+1 R 0 S 0 1 S+1 1 2 S+2 2 3 S+3 3 Segue un esempio di operazione di codifica a un digit per il digit numero 1 di R, es. qui C è 0001. Primo canale sorgente 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 C trasferito per indicare il numero di bit 12 come il bit più significativo abilitato. Canale risultato C Possono essere codificati fino a quattro digit da quattro canali sorgente consecutivi a partire da S, i digit codificati sono scritti in R a partire dal primo digit specificato. Se sono designati più digit di quanti rimasti in R (contando dal primo digit designato), i digit rimanenti saranno posti in R ripartendo dall’inizio del canale. Il canale finale da convertire (S più il numero di digit da convertire) deve appartenere alla stessa area dati di SB. 217 Capitolo 5-18 Conversione dei dati Codificatore da 256 a 8 bit DMPX(077) funziona come codificatore da 256 a 8 bit quando il digit più a sinistra di C è impostato su 1. Quando la condizione di esecuzione è OFF, DMPX(077) non è eseguita. Quando la condizione di esecuzione è ON, DMPX(077) determina la posizione del bit più significativo (quello più a sinistra) abilitato nel gruppo di 16 canali sorgente da S a S+15 o da S+16 a S+31, lo codifica nel valore esadecimale a due digit corrispondente alla posizione del bit fra i 256 nel gruppo, trasferisce quindi il valore esadecimale in un byte di R. Il byte che deve ricevere il risultato è specificato in C, che indica anche il numero di byte da codificare. Canale di controllo I digit di C sono impostati come sotto illustrato. Impostare il digit più a sinistra di C su 1 per specificare la decodifica da 256 a 8 bit. N. di digit: 3 2 1 0 Specifica il primo byte in R che riceve i dati convertiti (0 o 1). 0: Byte più a destra 1: Byte più a sinistra Numero di byte da codificare (0 o 1). 0: 1 byte 1: 2 byte Non utilizzato. Posto a 0. Un valore 1 specifica la codifica da 256 a 8 bit. Sono illustrati di seguito tre possibili valori di C e le conversioni prodotte. (In R, 0 indica il byte più a destra e 1 indica il byte più a sinistra.) C: 1000 C: 1010 R C: 1011 R R S... S+15 0 S... S+15 0 S... S+15 0 S+16... S+31 1 S+16... S+31 1 S+16... S+31 1 Segue un esempio di operazione di codifica a un byte per il byte più a destra di R (in questo caso C è 1000 ). Bit 15 Bit Bit 00 15 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 S+15 Bit 00 . . . 0 1 0 Bit 15 . . . S+14 1 1 1 Bit 00 . . . 0 0 0 S Canale risultato F Flag B ER: Bit FB (bit 251 di 0...255) è il bit ON più significativo del gruppo di 16 canali, per cui FB è scritto nel bit meno significativo di R. Canale di controllo non definito. I canali sorgente non appartengono tutti alla stessa area dati. Il contenuto dei canali sorgente è zero (non c’è un bit ON nei canali sorgente). Il canale DM indirizzato indirettamente non esiste (il contenuto del canale * DM non è in BCD oppure è stato superato il limite dell’area DM). 218 Conversione dei dati Capitolo 5-18 Esempio: Codifica da 16 a 4 bit Quando 00000 è ON, il diagramma seguente codifica i canali IR 010 e 011 nei primi due digit di HR 20 e poi codifica LR 10 e 11 negli ultimi due digit di HR 20. Sebbene lo stato di ogni bit del canale sorgente non sia descritto, si desume che il bit indicato con stato 1 (ON) sia il bit più significativo del canale. 00000 DMPX(077) Indirizzo Istruzione 010 00000 00001 LD DMPX(077) HR 20 Dati 00000 HR # 010 20 0010 LR HR # 10 20 0012 #0010 DMPX(077) LR 10 IR 010 IR 011 01000 01100 : : HR 20 #0012 01011 1 01109 01012 0 01110 0 : : : : : : 01015 0 01115 0 HR 20 LR 11 LR 1000 LR 1100 LR 1001 1 : LR 1002 0 LR 1108 1 : : : LR 1109 0 : : : : : DMPX(077) 1 LR 10 LR 1015 0 00002 Digit 0 B Digit 1 9 Digit 2 1 Digit 3 8 : LR 1115 0 5-18-9 7–SEGMENT DECODER - SDEC(078) Aree dati operando Simboli per il diagramma a relè S: Canale sorgente (binario) IR, SR, AR, DM, HR, TC, LR SDEC(078) @SDEC(078) S S Di Di D D Di: Identificatore del digit IR, SR, AR, DM, HR, TC, LR, # D: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Di deve essere compreso nei valori riportati. Tutti i canali risultato devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, SDEC(078) non è eseguita. Quando la condizione di esecuzione è ON, SDEC(078) converte i digit di S negli 8 bit equivalenti del codice per display a 7 segmenti e li pone nei canali risultato iniziando con D. 219 Capitolo 5-18 Conversione dei dati Un digit di S oppure tutti i digit di S possono essere convertiti in sequenza cominciando dal primo digit identificato. Il primo digit, il numero di digit da convertire e la metà di D che deve ricevere il primo codice display a 7 segmenti (i primi 8 bit a destra o a sinistra) sono tutti identificati in Di. Se vengono selezionati molti digit, questi verranno collocati in sequenza iniziando dalla metà di D definita. Ciascun digit richiederà due digit nella destinazione. Se sono designati più digit di quelli che rimangono in S (contando dal primo dei digit designati), verranno convertiti anche gli altri digit ripartendo dall’inizio di S. Identificatore del digit I digit di Di sono predisposti come sotto illustrato. Numero digit: 3 2 1 0 Specifica il primo digit che riceve i dati convertiti (0... 3). Numero di digit da convertire (0... 3) 0: 1 digit 1: 2 digit 2: 3 digit 3: 4 digit Prima metà di D da utilizzare. 0: 8 bit più a destra (prima metà) 1: 8 bit più a sinistra (seconda metà) Non utilizzato; Posto a 0. Seguono gli esempi di alcuni valori di Di e delle conversioni da binario a 4 bit in display a 7 segmenti che producono. Di: 0011 Digit S 0 1 Di: 0030 D Digit S D 1 metà 0 1 metà 2 metà 1 2 metà 2 2 3 3 D+1 1 metà 2 metà Di: 0112 Digit S D 0 1 metà 1 2 metà 2 3 D+1 Di: 0130 Digit S 0 1 2 3 D 1 metà 2 metà D+1 1 metà 1 metà 2 metà 2 metà D+2 1 metà 2 metà 220 Capitolo 5-18 Conversione dei dati Esempio L’esempio seguente mostra i dati necessari per produrre un 8. Le lettere minuscole indicano quali bit corrispondono ai rispettivi segmenti del display a 7 segmenti. La tabella successiva mostra i dati originali e il codice convertito per tutti i digit in esadecimale. Di Bit 00 o bit 08 f 1 a 1 1 b 22 0 1 c 0 23 0 1 d 0 20 0 1 e 21 0 1 f 0 22 0 1 g 1 23 1 0 20 0 21 1 22 1 1 23 1 1 20 1 0 21 0 1 22 1 1 23 1 0 20 0 1 21 0 x100 0 x101 1 x102 1 x103 1: Secondo digit 0 0: Un digit 1 2 0 o 1: bit 00... 07 o 08... 15. 3 Non utilizzato. Digit Flag a D S 8 Bit 07 o bit 15 Dati originali Bit – e b c d 0 Codice convertito (segmenti) g f e d c b Display a 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 2 0 0 1 0 0 1 0 1 1 0 1 1 3 0 0 1 1 0 1 0 0 1 1 1 1 4 0 1 0 0 0 1 1 0 0 1 1 0 5 0 1 0 1 0 1 1 0 1 1 0 1 6 0 1 1 0 0 1 1 1 1 1 0 1 7 0 1 1 1 0 0 1 0 0 1 1 1 8 1 0 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 0 1 1 0 1 1 1 1 A 1 0 1 0 0 1 1 1 0 1 1 1 B 1 0 1 1 0 1 1 1 1 1 0 0 C 1 1 0 0 0 0 1 1 1 0 0 1 D 1 1 0 1 0 1 0 1 1 1 1 0 E 1 1 1 0 0 1 1 1 1 0 0 1 F 1 1 1 1 0 1 1 1 0 0 0 1 ER: g Identificatore del digit non corretto o area dati di destinazione superata. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 221 Capitolo 5-18 Conversione dei dati 5-18-10 ASCII CONVERT – ASC(086) Aree dati operando S: Canale sorgente Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR ASC(086) @ASC(086) S S Di Di D D Di: Identificatore del digit IR, SR, AR, DM, HR, TC, LR, # D: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Di deve rientrare nei valori qui di seguito riportati. Tutti i canali risultato devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, ASC(086) non è eseguita. Quando la condizione di esecuzione è ON, ASC(086) converte i digit designati da S nel codice ASCII a 8 bit equivalente e li sposta nel/i canale/i risultato iniziando con D. Possono essere convertiti uno o più digit in S, partendo dal primo digit designato. Il primo digit, il numero di digit da convertire e la metà di D che riceve il primo codice ASCII (8 bit più a destra o più a sinistra) sono definiti in Di. Se sono designati molti digit, saranno posti in sequenza iniziando dalla metà di D definita. Ciascun digit richiederà due digit nella destinazione. Se sono designati più digit di quelli che rimangono in S (contando dal primo dei digit designati), saranno utilizzati altri digit ripartendo dall’inizio di S. Fare riferimento all’Appendice I per la tabella di codici ASCII estesi. Identificatore dei digit I digit di Di sono predisposti come sotto illustrato. Numero digit: 3 2 1 0 Specifica il primo digit da convertire (0... 3). Numero di digit da convertire (0... 3) 0: 1 digit 1: 2 digit 2: 3 digit 3: 4 digit Prima metà di D da utilizzare. 0: 8 bit più a destra (prima metà) 1: 8 bit più a sinistra (seconda metà) Parità 222 0: nessuno, 1: pari, 2: dispari Capitolo 5-18 Conversione dei dati Seguono alcuni esempi di valori Di e delle conversioni da binario a 4 bit in ASCII a 8 bit che producono. Di: 0011 S 0 1 Di: 0030 D S D 1 metà 0 1 metà 2 metà 1 2 metà 2 2 3 3 D+1 1 metà 2 metà Di: 0112 S Di: 0130 D 0 1 metà 1 2 metà 2 3 D+1 S 0 1 2 3 D 1 metà 2 metà D+1 1 metà 1 metà 2 metà 2 metà D+2 1 metà 2 metà Parità Il bit più a sinistra di ogni carattere ASCII (2 digit) può essere regolato automaticamente per la parità pari o dispari. Se non è definita alcuna parità, il bit più a sinistra sarà sempre zero. Quando viene definita la parità pari, il bit più a sinistra sarà regolato in modo che il numero totale di bit abilitati (ON) è pari, cioè quando ASCII “31” (00110001) è definito per parità pari, sarà “B1” (10110001: bit di parità abilitato – ON – per un numero pari di bit ON); ASCII “36” (00110110) sarà “36” (00110110: bit di parità posto su OFF perché il numero di bit è già pari). Lo stato del bit di parità non influenza il significato del codice ASCII. Quando viene definita la parità dispari, il bit più a sinistra di ogni carattere ASCII sarà regolato in modo che ci sia un numero dispari di bit ON. Flag ER: Identificatore di digit non corretto o area dati di destinazione superata. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 5-18-11 ASCII–TO–HEXADECIMAL – HEX(162) Aree dati operando Simboli per il diagramma a relè S: Primo canale sorgente IR, SR, AR, DM, HR, TC, LR HEX(162) @HEX(162) S S Di Di D D Di: Identificatore del digit Limitazioni IR, SR, AR, DM, HR, TC, LR D: Canale risultato IR, SR, AR, DM, HR, LR Di deve rientrare nei valori riportati. Tutte i canali sorgente devono appartenere alla stessa area dati. I byte nei canali sorgente devono contenere i codici ASCII equivalenti ai caratteri esadecimali, cioè 30... 39 (0... 9), 41... 46 (A... F) o 61... 66 (a... f). 223 Capitolo 5-18 Conversione dei dati Descrizione Quando la condizione di esecuzione è OFF, HEX(162) non è eseguita. Quando la condizione di esecuzione è ON, HEX(162) converte i codici ASCII dei byte designati nei corrispondenti numeri esadecimali e li pone in D. Possono essere convertiti fino a 4 codici ASCII iniziando con il primo byte designato di S. I valori esadecimali convertiti sono poi posti in D a partire dal digit specificato. Il primo byte (8 bit più a destra o più a sinistra), il numero di byte da convertire e il digit di D che riceve il primo valore esadecimale sono indicati in Di. Se sono designati molti byte, saranno convertiti iniziando dalla metà designata di S e continuando con il canale S+1 e S+2, se necessario. Se vengono designati più digit di quelli che restano in D (contando dal primo digit designato), saranno utilizzati altri digit ripartendo dall’inizio di D. I digit in D che non ricevono dati convertiti non vengono alterati. Identificatore del digit I digit di Di sono predisposti come sotto illustrato. Numero di digit: 3 2 1 0 Specifica il primo digit di D da utilizzare (0... 3). Numero di byte da convertire (0... 3) 0: 1 byte (codice ASCII a 2 digit) 1: 2 byte 2: 3 byte 3: 4 byte Primo byte di S da utilizzare. 0: 8 bit più a destra (1. byte) 1: 8 bit più a sinistra (2. byte) Parità 224 0: nessuno 1: pari 2: dispari Capitolo 5-18 Conversione dei dati Qui di seguito sono illustrati alcuni esempi di valori di Di e delle conversioni da ASCII a 8 bit in valori esadecimali a 4 bit che essi producono. Di: 0011 Di: 0030 S D 1 byte 0 D 1 byte 0 2 byte 1 2 byte 1 S 2 2 S+1 3 3 1 byte 2 byte Di: 0023 Di: 0133 D S S 1 byte 0 1 byte D 2 byte 1 2 byte 0 2 S+1 1 S+1 3 1 byte 1 byte 2 byte 2 byte 2 3 S+2 1 byte 2 byte Tabella dei codici ASCII La seguente tabella illustra i codici ASCII prima della conversione e i valori esadecimali dopo la conversione. Fare riferimento all’Appendice H per la tabella dei codici ASCII. Dato iniziale Codice ASCII Dato convertito Stato del bit (vedi nota) Digit Bit 30 * 0 1 1 0 0 0 0 0 0 0 0 0 31 * 0 1 1 0 0 0 1 1 0 0 0 1 32 * 0 1 1 0 0 1 0 2 0 0 1 0 33 * 0 1 1 0 0 1 1 3 0 0 1 1 34 * 0 1 1 0 1 0 0 4 0 1 0 0 35 * 0 1 1 0 1 0 1 5 0 1 0 1 36 * 0 1 1 0 1 1 0 6 0 1 1 0 37 * 0 1 1 0 1 1 1 7 0 1 1 1 38 * 0 1 1 1 0 0 0 8 1 0 0 0 39 * 0 1 1 1 0 0 1 9 1 0 0 1 41 * 1 0 1 0 0 0 1 A 1 0 1 0 42 * 1 0 1 0 0 1 0 B 1 0 1 1 43 * 1 0 1 0 0 1 1 C 1 1 0 0 44 * 1 0 1 0 1 0 0 D 1 1 0 1 45 * 1 0 1 0 1 0 1 E 1 1 1 0 46 * 1 0 1 0 1 1 0 F 1 1 1 1 Nota Il bit più a sinistra di ogni codice ASCII è impostato in base alla parità. Parità Il bit più a sinistra di ogni carattere ASCII (2 digit) è automaticamente impostato per soddisfare la parità pari o dispari. Se non è definita alcuna parità, il bit più a sinistra è sempre zero. Con parità pari o dispari, tale bit di ogni carattere ASCII dovrebbe essere regolato in modo che ci sia un numero dispari o pari di bit ON. Se la parità dei codici ASCII in S non coincide con quanto specificato in Di, il flag ER (SR 25503) andrà ON e l’istruzione non sarà eseguita. Flag ER: Identificatore di digit non corretto o area dati di destinazione superata. 225 Capitolo 5-18 Conversione dei dati Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Esempio Nell’esempio seguente, il 2° byte di LR 10 e il 1° byte di LR 11 sono convertiti in valori esadecimali scritti rispettivamente nel primo e nel secondo byte di IR 010. 00000 @HEX(162) LR 10 HR 10 Indirizzo Istruzione 00000 00001 LD @HEX(162) Dati 00000 LR HR 010 10 10 010 HR 10 0 1 1 0 LR 12 3 5 3 4 LR 11 4 2 3 2 LR 10 010 0 0 2 1 3 1 3 0 Conversione in esadecimale 5-18-12 SCALING – SCL(194) Simboli per il diagramma a relè Aree dati operando S: Canale sorgente SCL(194) @SCL(194) S S P1 P1 R R IR, SR, AR, DM, HR, TC, LR, # P1: Primo canale parametri IR, SR, AR, DM, HR, TC, LR R: Canale risultato IR, SR, AR, DM, HR, LR Limitazioni P1 e P1+2 devono essere in BCD. Da P1 a P1+3 devono trovarsi nella stessa area dati. P1+1 e P1+3 non possono essere impostati per lo stesso valore. Descrizione SCL(194) è utilizzata per convertire in modo lineare un valore esadecimale a 4 digit in un valore BCD a 4 digit. Diversamente da BCD(024), che converte un valore esadecimale a 4 digit negli equivalenti 4 digit in BCD (Shex → SBCD), SCL(194) può convertire il valore esadecimale secondo un determinato rapporto lineare. La retta di conversione è definita da due punti specificati nei canali parametri P1 – P1+3. Quando la condizione di esecuzione è OFF, SCL(194) non è eseguita. Quando la condizione di esecuzione è ON, SCL(194) converte il valore esadecimale a 4 digit contenuto in S in un valore BCD a 4 digit sulla retta indicata dai punti (P1, P1+1) e (P1+2, P1+3) e fornisce i risultati in R. I risultati sono arrotondati per difetto all’intero più prossimo. Se il risultato è inferiore a 0000, in R viene registrato il valore 0000, e se il risultato è maggiore di 9999, in R viene registrato il valore 9999. 226 Capitolo 5-18 Conversione dei dati La seguente tabella illustra le funzioni e le gamme dei canali parametri: Parametro Funzione Gamma Commenti P1 BCD punto #1 (AY) 0000... 9999 --- P1+1 Esadecimale punto #1 (AX) BCD punto #2 (BY) 0000... FFFF Non impostare P1+1=P1+3. --- Esadecimale punto #2 (BX) 0000... FFFF P1+2 P1+3 0000... 9999 Non impostare P1+3=P1+1. Il seguente diagramma mostra il canale sorgente, S, convertito in D secondo la retta definita dai punti (AY, AX) e (BY, BX). Valore dopo la conversione (BCD) B Y R A Y A S Valore prima della conversione (esadecimale) BX X I risultati possono essere calcolati prima di tutto convertendo tutti i valori in BCD e poi utilizzando la seguente formula. Risultato = BY – [(BY – AY)/(BX – AX) X (BX – S)] Flag ER: Il valore contenuto in P1+1 è uguale al valore contenuto in P1+3. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) P1 e P1+3 non sono nella stessa area dati oppure c’è un altro errore di impostazione. EQ: Esempio ON quando il risultato R è uguale a 0000. In questo esempio, quando 00000 è commutato ad ON, il dato sorgente BCD contenuto in DM 0100 (#0100) è convertito in esadecimale secondo i parametri contenuti in DM 0150... DM 0153. Il risultato (#0512) viene registrato in DM 0200. 00000 @SCL(194) DM 0100 DM 0150 Indirizzo Istruzione 00000 00001 LD @SCL(194) Dati 00000 DM DM DM DM 0200 DM 0150 DM 0151 DM 0152 DM 0153 0010 0005 0050 0019 DM 0100 0100 DM 0200 0512 0100 0150 0200 227 Capitolo 5-18 Conversione dei dati 5-18-13 COLUMN TO LINE – LINE(063) Aree dati operando S: Primo di un insieme di 16 canali sorgente Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR LINE(063) @LINE(063) S S C C D D C: Identificatore colonna di bit (BCD) IR, SR, AR, DM, HR, TC, LR, # D: Canale risultato IR, SR, AR, DM, HR, TC, LR Limitazioni S e S+15 devono appartenere alla stessa area dati. C deve essere compreso tra #0000 e #0015. Descrizione Quando la condizione di esecuzione è OFF, LINE(063) non è eseguita. Quando la condizione di esecuzione è ON, LINE(063) copia i bit della colonna C dall’insieme dei 16 canali definiti (S... S+15) nei 16 bit del canale D (00... 15). C Bit 15 Bit 00 S S+1 S+2 S+3 . . . 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 S+15 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . Bit 15 D Flag ER: 0 Bit 00 . . . 0 1 1 1 L’identificatore della colonna di bit C non è in BCD o sta indicando un bit inesistente (cioè l’indicazione del bit deve essere compresa tra 00 e 15). Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: Esempio ON quando il contenuto di D è zero; altrimenti OFF. L’esempio seguente mostra come utilizzare LINE(063) per trasferire i bit della colonna 07 da (IR 100 a IR 115) a DM 0100. 00000 LINE(063) 100 #0007 Indirizzo Istruzione 00000 00001 LD LINE(063) Dati 00000 DM 0100 # DM 228 100 0007 0100 Capitolo 5-18 Conversione dei dati 5-18-14 LINE TO COLUMN – COLM(064) Aree dati operando S: Canale sorgente Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR COLM(064) @COLM(064) S S D D C C D: Primo di un insieme di canali risultato IR, AR, DM, HR, TC, LR C: Identificatore della colonna (BCD) IR, SR, AR, DM, HR, TC, LR, # Limitazioni D a D+15 devono appartenere alla stessa area dati. C deve essere compreso tra #0000 e #0015. Descrizione Quando la condizione di esecuzione è OFF, COLM(064) non è eseguita. Quando la condizione di esecuzione è ON, COLM(064) copia i 16 bit del canale S (00... 15) nella colonna di bit C dell’insieme dei 16 canali indicati (D... D+15). Bit 15 0 S Bit 00 . . . . . . ER: 0 1 1 1 C Bit 15 Flag . Bit 00 D D+1 D+2 D+3 . . . 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 D+15 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . L’identificatore del bit espresso con C non è in BCD oppure sta indicando un bit inesistente (cioè l’identificatore di bit deve essere un valore tra 00 e 15). Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: Esempio ON quando il contenuto di S è zero; altrimenti OFF. L’esempio seguente mostra come utilizzare COLM(064) per trasferire il contenuto del canale DM 0100 (00... 15) sul quindicesimo bit della colonna dell’insieme DM 0200... DM 0215. 00000 COLM(064) DM 0100 DM 0200 #0015 Indirizzo Istruzione 00000 00001 LD COLM(064) Dati 00000 DM DM # 0100 0200 0015 229 Capitolo 5-18 Conversione dei dati 5-18-15 2’S COMPLEMENT – NEG(160) Aree dati operando Simboli per il diagramma a relè NEG(160) @NEG(160) S: Canale sorgente S S IR, SR, AR, DM, HR, TC, LR, # R R R: Canale risultato IR, SR, AR, DM, HR, LR Descrizione Converte il contenuto del canale sorgente (S) espresso da quattro digit in esadecimale nel suo complemento a 2 e fornisce il risultato nel canale indicato da R. Questa operazione fornisce lo stesso risultato che si ottiene sottraendo S da 0000 e fornendo il risultato in R. Se il contenuto di S è 0000, dopo l’esecuzione anche il contenuto di R sarà 0000 e EQ (SR 25506) sarà commutato ad ON. Se il contenuto di S è 8000, dopo l’esecuzione anche il contenuto di R sarà 8000 e UF (SR 25405) sarà commutato ad ON. Nota Fare riferimento a pagina 28 per i dettagli sui dati binari con segno a 16 bit. Flag Esempio ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il contenuto di S è 0000; altrimenti OFF. UF: ON quando il contenuto di S è 8000; altrimenti OFF. N: ON quando il bit 15 di R è posto a 1; altrimenti OFF. L’esempio seguente mostra come utilizzare NEG(160) per trovare il complemento a 2 del valore esadecimale 001F e fornire il risultato in DM 0020. 00000 NEG(160) #001F DM 0020 Indirizzo Istruzione 00000 00001 LD NEG(160) 00000 # DM --- #0000 – #001F #FFE1 230 Dati Uscita verso DM 0020. 001F 0020 Capitolo 5-18 Conversione dei dati 5-18-16 DOUBLE 2’S COMPLEMENT – NEGL(161) Aree dati operando Simboli per il diagramma a relè NEGL(161) @NEGL(161) S: Primo canale sorgente S S IR, SR, AR, DM, HR, TC, LR R R R: Primo canale risultato --- --- IR, SR, AR, DM, HR, LR Limitazioni S e S+1 devono trovarsi nella stessa area dati, come anche R e R+1. Descrizione Converte il contenuto dei canali sorgente (S e S+1) espressi da un valore esadecimale a otto digit nel suo complemento a 2 e fornisce il risultato nei canali (R e R+1). Questa operazione fornisce lo stesso risultato che si ottiene sottraendo gli 8 digit contenuti in S e S+1 da $0000 0000 e fornendo il risultato in R e R+1. Se il contenuto di S è 0000 0000, dopo l’esecuzione anche il contenuto di R sarà 0000 0000 e EQ (SR 25506) verrà commutato a ON. Se il contenuto di S è 8000 0000, dopo l’esecuzione anche il contenuto di R sarà 8000 0000 e UF (SR 25405) verrà commutato a ON. Nota Fare riferimento a pagina 28 per i dettagli sui dati binari con segno a 32 bit. Flag Esempio ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il contenuto di S+1, S è 0000 0000; altrimenti OFF. UF: ON quando il contenuto di S+1, S è 8000 0000; altrimenti OFF. N: ON quando il bit 15 di R+1 è impostato a 1; altrimenti OFF. L’esempio seguente mostra come utilizzare NEGL(161) per trovare il complemento a 2 del valore esadecimale contenuto in LR 21, LR 20 (001F FFFF) e fornire il risultato in DM 0021, DM 0020. 00000 NEG(161) LR20 DM 0020 Indirizzo Istruzione 00000 00001 LD NEGL(161) 00000 LR DM --- 0000 S+1: LR 21 – Dati 001f R+1: DM 0021 FFE0 20 0020 0000 S: LR 20 FFFF R: DM 0020 0001 231 Capitolo 5-19 Istruzioni matematiche sui simboli 5-19 Istruzioni matematiche sui simboli Le istruzioni matematiche sui simboli eseguono operazioni aritmetiche sui dati in formato BCD, binario o a virgola mobile. 5-19-1 Addizione Binaria: +(400)/+L(401)/+C(402)/+CL(403) SIGNED BINARY ADD WITHOUT CARRY: +(400) Simboli per il diagramma a relè +(400) @+(400) Au Au Ad Ad R R Aree dati operando Au: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # Ad: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY ADD WITHOUT CARRY: +L(401) Simboli per il diagramma a relè +L(401) @+L(401) Au Au Ad Ad R R Aree dati operando Au: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR Ad: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR SIGNED BINARY ADD WITH CARRY: +C(402) Simboli per il diagramma a relè +C(402) @+C(402) Au Au Ad Ad R R Aree dati operando Au: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # Ad: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY ADD WITH CARRY: +CL(403) Simboli per il diagramma a relè +CL(403) @+CL(403) Au Au Ad Ad R R Aree dati operando Au: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR Ad: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR 232 Capitolo 5-19 Istruzioni matematiche sui simboli Descrizione SIGNED BINARY ADD WITHOUT CARRY Quando la condizione di esecuzione è OFF, +(400) non viene eseguita. Quando la condizione di esecuzione è ON, +(400) addiziona il contenuto di Au e Ad e pone il risultato in R. CY verrà impostato se il risultato è maggiore di FFFF. + C Y A u A d R DOUBLE SIGNED BINARY ADD WITHOUT CARRY Quando la condizione di esecuzione è OFF, +L(401) non viene eseguito. Quando la condizione di esecuzione è ON, +L(401) addiziona il contenuto di 8 digit di Au+1 e Au e quello di Ad+1 e Ad e pone il risultato in R e R + 1. CY verrà impostato se il risultato è maggiore di FFFF FFFF. + Au +1 Ad + 1 A u A d R+ 1 R C Y SIGNED BINARY ADD WITH CARRY Quando la condizione di esecuzione è OFF, +C(402) non viene eseguito. Quando la condizione di esecuzione è ON, +C(402) addiziona il contenuto di Au, Ad e CY e pone il risultato in R. CY verrà impostato se il risultato è maggiore di FFFF. A u A d + C Y C Y R DOUBLE SIGNED BINARY ADD WITH CARRY Quando la condizione di esecuzione è OFF, +CL(403) non viene eseguito. Quando la condizione di esecuzione è ON, +CL(403) addiziona il contenuto di 8 digit di Au+1, Au, quello di Ad+1 e Ad e CY e pone il risultato in R e R + 1. CY verrà impostato se il risultato è maggiore di FFFF FFFF. Au +1 Ad + 1 A u A d R+ 1 R + C Y Flag C Y ER: Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. CY: Il risultato è maggiore di FFFF o FFFF FFFF. EQ: Il risultato è 0. OF: Au (Au +1) e Ad (Ad +1) sono entrambi numeri positivi e il risultato è negativo. 233 Capitolo 5-19 Istruzioni matematiche sui simboli UF: Au (Au +1) e Ad (Ad +1) sono entrambi numeri negativi e il risultato è positivo. N: Mostra lo stato del bit 15 di R o R+1. Utilizzo delle istruzioni sulle addizioni binarie con segno L’intervallo per i dati con segno è –32,768...32,767 in decimale (–2,147,483,648...2,147,483,647 per istruzioni “doppie”) e 8000...FFFF e 0000...7FFF in esadecimale (8000 0000...FFFF FFFF e 0000 0000...7FFF FFFF per istruzioni “doppie”). I numeri negativi sono espressi come complementi di 2. Se il risultato dell’addizione è compreso tra 8000...FFFF, questo rappresenta un numero negativo con segno e il Flag negativo (SR 25402) viene impostato su ON. Quando Au e Ad sono entrambi numeri positivi e il risultato dell’addizione è negativo, il flag di overflow (SR 25404) viene impostato su ON. Quando Au e Ad sono entrambi numeri negativi e il risultato dell’addizione è positivo, il flag di underflow (SR 25405) viene impostato su ON. Se il risultato dell’addizione è un riporto, il Flag del carry viene impostato su ON. L’intervallo per i dati binari senza segno è 000...FFFF (0000 0000...FFFF FFFF per le istruzioni “doppie”), per cui l’intervallo decimale è 0...65,535 (0...4,294,967,295). 5-19-2 Addizione in BCD: +B(404)/ +BL(405)/+BC(406)/+BCL(407) BCD ADD WITHOUT CARRY: +B(404) Simboli per il diagramma a relè +B(404) @+B(404) Au Au Ad Ad R R Aree dati operando Au: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # Ad: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD ADD WITHOUT CARRY: +BL(405) Simboli per il diagramma a relè +BL(405) @+BL(405) Au Au Ad Ad R R Aree dati operando Au: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR Ad: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR 234 Capitolo 5-19 Istruzioni matematiche sui simboli BCD ADD WITH CARRY: +BC(406) Simboli per il diagramma a relè Aree dati operando +BC(406) @+BC(406) Au Au Ad Ad R R Au: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # Ad: Canale addendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD ADD WITH CARRY: +BCL(407) Simboli per il diagramma a relè Aree dati operando +BCL(407) @+BCL(407) Au Au Ad Ad R R Au: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR Ad: Primo canale addendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione BCD ADD WITHOUT CARRY Quando la condizione di esecuzione è OFF, +B(404) non viene eseguito. Quando la condizione di esecuzione è ON, +B(404) addiziona il contenuto di Au e Ad e pone il risultato in R. CY verrà impostato se il risultato è maggiore di 9999. + C Y A u A d R DOUBLE BCD ADD WITHOUT CARRY Quando la condizione di esecuzione è OFF, +BL(405) non viene eseguito. Quando la condizione di esecuzione è ON, +BL(405) addiziona il contenuto di 8 digit di Au+1 e Au e quello di Ad+1 e Ad e pone il risultato in R e R + 1. CY verrà impostato se il risultato è maggiore di 9999 9999. + C Y Au +1 Ad + 1 A u A d R+ 1 R BCD ADD WITH CARRY Quando la condizione di esecuzione è OFF, +BC(406) non viene eseguito. Quando la condizione di esecuzione è ON, +BC(406) addiziona il contenuto di 235 Capitolo 5-19 Istruzioni matematiche sui simboli Au, Ad e CY e pone il risultato in R. CY verrà impostato se il risultato è maggiore di 9999. A u A d + C Y C Y R DOUBLE BCD ADD WITH CARRY Quando la condizione di esecuzione è OFF, +BCL(407) non viene eseguito. Quando la condizione di esecuzione è ON, +BCL(407) addiziona il contenuto di 8 digit di Au+1, Au, quello di Ad+1 e Ad e CY, quindi pone il risultato in R e R + 1. CY verrà impostato se il risultato è maggiore di 9999 9999. Au +1 Ad + 1 A u A d R+ 1 R + C Y C Y Precauzioni Au e Ad (o Au, Au+1, Ad e Ad+1) deve essere in BCD. Se viene utilizzato qualsiasi altro dato, il Flag di errore (SR 25503) verrà impostato su ON e l’istruzione non verrà eseguita. Flag ER: Au e Ad (o Au, Au+1, Ad e Ad+1) non sono in BCD. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Esempio CY: Il risultato supera i digit. EQ: Il risultato dopo l’operazione di addizione è tutti zeri. Operazione +BL Quando nell’esempio seguente IR 00000 è ON, il contenuto di DM 0101 e DM 0100 viene addizionato al contenuto di DM 0111 e DM 0110 e il risultato viene emesso in BCD di 8 digit in DM 0121 e DM 0120. Operazione +BCL Quando nell’esempio seguente IR 00001 è ON, il contenuto di DM 0201 e DM 0200 è addizionato al contenuto di DM 0211 e DM 0210 e il risultato che include il riporto viene emesso in BCD di 8 digit in DM 0221 e DM 0220. 00000 +BL(405) Indirizzo Istruzione DM 0100 00000 LD DM 0110 00001 +BL(405) operando 00000 DM 0100 DM 0120 DM 0110 00001 DM 0120 +BCL(407) DM 0200 00002 LD DM 0210 00003 +BCL(407) DM 0220 00001 DM 0200 DM 0210 DM 0220 236 Capitolo 5-19 Istruzioni matematiche sui simboli 5-19-3 Sottrazione binaria: –(410)/ –L(411)/–C(412)/–CL(413) SIGNED BINARY SUBTRACT WITHOUT CARRY: –(410) Simboli per il diagramma a relè Aree dati operando Mi: Canale minuendo –(410) @–(410) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR, # Su: Canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY: –L(411) Simboli per il diagramma a relè Aree dati operando Mi: Primo canale minuendo –L(411) @–L(411) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR Su: Primo canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR SIGNED BINARY SUBTRACT WITH CARRY: –C(412) Simboli per il diagramma a relè Aree dati operando Mi: Canale minuendo –C(412) @–C(412) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR, # Su: Canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY SUBTRACT WITH CARRY: –CL(413) Simboli per il diagramma a relè Aree dati operando Mi: Primo canale minuendo –CL(413) @–CL(413) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR Su: Primo canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione SIGNED BINARY SUBTRACT WITHOUT CARRY Quando la condizione di esecuzione è OFF, –(410) non viene eseguito. Quando la condizione di esecuzione è ON, –(410) sottrae il contenuto di Su da Mi e pone il risultato in R. Se la sottrazione produce un prestito, viene impostato CY. Per 237 Capitolo 5-19 Istruzioni matematiche sui simboli ottenere la risposta corretta quando il risultato è negativo, il complemento a 2 posto in R deve essere sottratto da 0000. Mi – Su CY R DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY Quando la condizione di esecuzione è OFF, –L(411) non viene eseguito. Quando la condizione di esecuzione è ON, –L(411) sottrae il valore di 8 digit in Su e Su+1 dal valore di 8 digit in Mi e Mi+1 e pone il risultato in R e R+1. Se la sottrazione produce un prestito, viene impostato CY. – CY Mi + 1 Mi Su + 1 Su R+1 R SIGNED BINARY SUBTRACT WITH CARRY Quando la condizione di esecuzione è OFF, –C(412) non viene eseguito. Quando la condizione di esecuzione è ON, –C(412) sottrae il contenuto di Su e CY da Mi e pone il risultato in R. Se la sottrazione produce un prestito, viene impostato CY. Mi – Su – CY CY R DOUBLE SIGNED BINARY SUBTRACT WITH CARRY Quando la condizione di esecuzione è OFF, –CL(413) non viene eseguito. Quando la condizione di esecuzione è ON, –CL(413) sottrae CY e il valore di 8 digit in Su e Su+1 dal valore di 8 digit in Mi e Mi+1 e pone il risultato in R e R+1. Se la sottrazione produce un prestito, viene impostato CY. Mi + 1 Mi Su + 1 Su – CY Flag 238 CY R+1 R ER: Il contenuto di un canale che presenta un indirizzo DM/EM non è in BCD o il limite dell’area DM/EM è stato superato. CY: La sottrazione produce un riporto. EQ: Il contenuto del canale R (o canale R e R+1 per istruzioni “doppie”) dopo l’operazione di sottrazione è tutti zero OF: Mi è un numero positivo, Su è negativo e il risultato della sottrazione è negativo. UF: Mi è un numero negativo, Su è positivo e il risultato della sottrazione è positivo. N: Il bit più significativo (MSB) del canale R (o canale R+1 per istruzioni “doppie”) dopo l’operazione di sottrazione è “1.” Capitolo 5-19 Istruzioni matematiche sui simboli Utilizzo delle istruzioni SIGNED BINARY SUBTRACT L’intervallo per i dati con segno è –32,768...32,767 in decimale (–2,147,483,648...2,147,483,647 per le istruzioni “doppie”) e 8000...FFFF e 0000...7FFF in esadecimale (8000 0000...FFFF FFFF e 0000 0000...7FFF FFFF per istruzioni “doppie”). I numeri negativi sono espressi come complementi di 2. Se il risultato della sottrazione è compreso tra 8000...FFFF, esso rappresenta un numero negativo con segno e il Flag negativo (SR 25402) viene impostato su ON. Quando Mi è un numero positivo, Su è negativo e il risultato della sottrazione è negativo, il Flag di overflow (SR 25404) viene impostato su ON. Quando Mi è un numero negativo, Su è positivo e il risultato della sottrazione è positivo, il flag di underflow Flag (SR 25405) viene impostato su ON. Se la sottrazione produce un prestito, il Flag del carry viene impostato su ON. L’intervallo per i dati senza segno è 0000...FFFF (0000 0000...FFFF FFFF per le istruzioni “doppie”), per cui l’intervallo decimale è 0...65,535 (0...4,294,967,295). Quando i dati sono senza segno, il Flag del carry viene impostato su ON e indica che il risultato della sottrazione è negativo. Il risultato è espresso come complemento a 2, per cui, al fine di trovare la risposta corretta, il complemento a 2 deve essere sottratto da 0. Esempio numerico 1 Dati con segno –) FFFFH 0001H –) FFFEH Dati senza segno –1 +1 –) –2 (Nota 1) 65535 1 65534 (Nota 2) Flag negativo ON Flag del carry OFF Esempio numerico 2 Dati con segno –) FFFDH FFFFH FFFEH –) –3 –1 –2 (Nota 1) Dati senza segno –) 65533 65535 –2 (Nota 3) Flag negativo ON Flag del carry ON Note 1.. Poiché il Flag negativo è ON, il risultato (FFFE) è un numero negativo (complemento a 2) ed è espresso come –2. 2. Il Flag del carry è OFF e il risultato (FFFE) è un numero positivo senza segno (65,534). 3. Il Flag del carry è ON, quindi il risultato (FFFE) è un numero negativo senza segno (complemento a 2) e se convertito diventa –2. Esempio di programma 1 –Operazione L Nell’esempio seguente, quando IR 00000 è ON, il contenuto di DM 0111 e DM 0110 viene sottratto dal contenuto di DM 0101 e DM 0100 e il risultato viene emesso in valore binario di 8 digit in DM 0121 e DM 0120. Se la sottrazione produce un prestito viene impostato CY. Operazione –CL Nell’esempio seguente, quando IR 00001 è ON, il contenuto di DM 0211 e DM 0210 viene sottratto dal contenuto di DM 0201 e DM 0200 e il risultato viene emesso in valore binario di 8 digit in DM 0221 e DM 0220. Se la sottrazione produce un prestito viene impostato CY. 239 Capitolo 5-19 Istruzioni matematiche sui simboli 00000 –L(411) Indirizzo DM 0100 00000 LD Istruzione DM 0110 00001 –L(411) Operandi 00000 DM 0120 DM 0100 –CL(413) DM 0120 DM 0110 00001 DM 0200 00002 LD DM 0210 00003 –CL(413) 00001 DM 0200 DM 0220 DM 0210 DM 0220 Esempio di programma 2 00002 TR0 Esempio (dati senza segno): 20F55A10 – B8A360E3 = –97AE06D3. In questo esempio, il valore binario di 8 digit in IR 121 e IR 120 viene sottratto dal valore in IR 201 e IR 200 e il risultato viene emesso in valore binario di 8 digit in DM 0101 e DM 0100. Se il risultato è negativo, verrà eseguita l’istruzione (2) e il risultato attuale verrà emesso in DM 0101 e DM 0100. Il Flag del carry (SR 25504) verrà impostato su ON, quindi il numero attuale è –97AE06D3. Poiché il contenuto di DM 0101 e DM 0100 è negativo, CY viene utilizzato per impostare su ON un bit di autoritenuta che a sua volta imposta su ON un bit che indica un valore negativo. Indirizzo (411) –L SR 255 04 (CY) 200 120 DM 0100 1 (411) –L DM 0000 DM 0100 DM 0100 Istruzione 00000 LD 00001 OUT 00002 –L(411) 2 Operandi 00002 TR0 200 120 SR 255 04 (CY) DM 0100 02100 “–” display 02100 00003 LD 00004 AND 00005 –L(411) TR0 SR 25504 DM 0000 DM 0100 DM 0100 00006 LD TR0 00007 AND 00008 OR 02100 00009 OUT 02100 SR 25504 Sottrazione 1 Mi+1: IR 201 2 0 F 5 Su+1: IR 121 – CY 1 B8 A3 Mi: IR 200 5 A1 0 Su: IR 120 6 0 E3 R+1: DM 0101 R+1: DM 0100 6 8 5 1 F9 2D Il Flag del carry (SR 25504) è ON, quindi il risultato viene sottratto da 0000 0000 (il contenuto di DM 0000 e DM 0001) per ottenere il risultato attuale. 240 Capitolo 5-19 Istruzioni matematiche sui simboli Sottrazione 2 Mi+1: DM 0001 Mi: DM 0000 0 0 0 0 Su+1: DM 0101 – 0 0 0 0 Su: DM 0100 6 8 5 1 F9 2D R+1: DM 0101 R+1: DM 0100 CY 1 9 7 AE 0 6 D3 Risultato finale della sottrazione Mi+1: IR 201 Mi: IR 200 2 0 F 5 5 A1 0 Su+1: DM 0101 – CY 1 6 8 5 1 Su: DM 0100 F9 2D R+1: DM 0101 R+1: DM 0100 9 7 AE 0 6 D3 5-19-4 Sottrazione in BCD: –B(414)/ –BL(415)/–BC(416)/–BCL(417) BCD SUBTRACT WITHOUT CARRY: –B(414) Simboli per il diagramma a relè Aree dati operando Mi: Canale minuendo –B(414) @–B(414) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR, # Su: Canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD SUBTRACT WITHOUT CARRY: –BL(415) Simboli per il diagramma a relè Aree dati operando Mi: Primo canale minuendo –BL(415) @–BL(415) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR Su: Primo canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR 241 Capitolo 5-19 Istruzioni matematiche sui simboli BCD SUBTRACT WITH CARRY: –BC(416) Simboli per il diagramma a relè Aree dati operando Mi: Canale minuendo –BC(416) @–BC(416) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR, # Su: Canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD SUBTRACT WITH CARRY: –BCL(417) Simboli per il diagramma a relè Aree dati operando Mi: Primo canale minuendo –BCL(417) @–BCL(417) Mi Mi Su Su R R IR, SR, AR, DM, EM, HR, TC, LR Su: Primo canale sottraendo IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione BCD SUBTRACT WITHOUT CARRY Quando la condizione di esecuzione è OFF, –B(414) non viene eseguito. Quando la condizione di esecuzione è ON, –B(414) sottrae il contenuto in BCD di Su da Mi e pone il risultato in R. Se il risultato è negativo, viene impostato CY e il complemento a 10 del risultato attuale viene posto in R. Per convertire il complemento a 10 nel risultato corretto, sottrarre il contenuto di R da 0000. Mi – Su CY R DOUBLE BCD SUBTRACT WITHOUT CARRY Quando la condizione di esecuzione è OFF, –BL(415) non viene eseguito. Quando la condizione di esecuzione è ON, –BL(415) sottrae il contenuto in BCD di 8 digit in Su e Su+1 da quello in Mi e Mi+1 e pone il risultato in R e R+1. Se il risultato è negativo, viene impostato CY e il complemento a 10 del risultato attuale viene posto in R. Per convertire il complemento a 10 in risultato corretto, sottrarre il contenuto di R da 0000 0000. – CY Mi + 1 Mi Su + 1 Su R+1 R BCD SUBTRACT WITH CARRY Quando la condizione di esecuzione è OFF, –BC(416) non viene eseguito. Quando la condizione di esecuzione è ON, –BC(416) sottrae il contenuto in BCD di Su e CY da Mi e pone il risultato in R. Se il risultato è negativo, viene impostato CY e il complemento a 10 del risultato attuale viene posto in R. Per convertire il complemento a 10 nel risultato corretto, sottrarre il contenuto di R da 0000. Mi 242 – Su – CY CY R Capitolo 5-19 Istruzioni matematiche sui simboli DOUBLE BCD SUBTRACT WITH CARRY Quando la condizione di esecuzione è OFF, –BCL(417) non viene eseguito. Quando la condizione di esecuzione è ON, –BCL(417) sottrae CY e il contenuto in BCD di 8 digit in Su e Su+1 da quello in Mi e Mi+1 e pone il risultato in R e R+1. Se il risultato è negativo, viene impostato CY e il complemento a 10 del risultato attuale viene posto in R. Per convertire il complemento a 10 nel risultato corretto, sottrarre il contenuto di R da 0000 0000. Mi + 1 Mi Su + 1 Su – CY CY R+1 R Precauzioni Mi e Su (o Mi, Mi+1, Su e Su+1) devono essere in BCD. Se viene utilizzato qualsiasi altro dato, il Flag di errore (SR 25503) verrà impostato su ON e l’istruzione non verrà eseguita. Flag ER: Mi e Su (o Mi, Mi+1, Su e Su+1) non sono in BCD. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Esempio CY: Il risultato supera i digit. EQ: Il risultato dopo l’operazione di sottrazione è tutti zeri. Operazione –BL Nell’esempio seguente, quando IR 00000 è impostato su ON, il contenuto di DM 0111 e DM 0110 viene sottratto dal contenuto di DM 0101 e DM 0100 e il risultato viene emesso in BCD di 8 digit in DM 0121 e DM 0120. Se il risultato è negativo, viene impostato CY Operazione –BCL Nell’esempio seguente, quando IR 00001 è ON, il contenuto di DM 0211 e DM 0210 viene sottratto dal contenuto di DM 0201 e DM 0200 e il risultato che include il riporto viene emesso in BCD di 8 digit in DM 0221 e DM 0220. Se il risultato è negativo, viene impostato CY 00000 –BL(415) DM 0100 DM 0110 Indirizzo Istruzione 00000 LD 00001 –BL(415) Operandi 00000 DM 0120 DM 0100 –BCL(417) DM 0120 DM 0110 00001 DM 0200 00002 LD DM 0210 00003 –BCL(417) DM 0220 00001 DM 0200 DM 0210 DM 0220 Esempio di programma Esempio: 9,583,960 – 17,072,641 = –7,488,681. In questo esempio, il contenuto in BCD di 8 digit di IR 121 e IR 120 viene sottratto da quello di IR 201 e IR 200 e il risultato viene emesso in BCD di 8 digit in DM 0101 e DM 0100. Il risultato è negativo, quindi verrà eseguita l’istruzione (2) e il valore corretto verrà emesso in DM 0101 e DM 0100. Il Flag del carry (SR 25504) verrà impostato su ON, quindi il numero attuale è –7,488,681. Poiché il contenuto di DM 0101 e DM 0100 è negativo, viene utilizzato CY per impostare su ON un bit di autoritenuta che a sua volta imposta su ON un bit che indica un valore negativo. 243 Capitolo 5-19 Istruzioni matematiche sui simboli 00002 TR0 Indirizzo (415) –BL SR 255 04 (CY) 200 120 DM 0100 1 (415) –BL DM 0000 DM 0100 DM 0100 Istruzione 00000 LD 00001 OUT 00002 –BL(415) 2 Operandi 00002 TR0 200 120 SR 255 04 (CY) DM 0100 02100 “–” display 02100 00003 LD 00004 AND 00005 –BL(415) TR0 SR 25504 DM 0000 DM 0100 DM 0100 00006 LD 00007 AND TR0 00008 OR 02100 00009 OUT 02100 SR 25504 Sottrazione 1 Mi+1: IR 201 Mi: IR 200 0 9 5 8 Su+1: IR 121 – 3 9 6 0 Su: IR 120 1 7 0 7 2 6 4 1 09583960 + (100000000 – 17072641) CY R+1: DM 0101 R+1: DM 0100 1 9 2 5 1 1 3 19 Il Flag del carry (SR 25504) è ON, quindi il risultato viene sottratto da 0000 0000. Sottrazione 2 Mi+1: DM 0001 Mi: DM 0000 0 0 0 0 0 0 0 0 Su+1: DM 0101 – Su: DM 0100 9 2 5 1 1 3 19 00000000 + (100000000 – 92511319) CY R+1: DM 0101 R+1: DM 0100 1 0 7 4 8 8 6 81 Risultato finale della sottrazione Mi+1: IR 201 2 0 F 5 Su+1: DM 0101 – CY 1 244 6 8 5 1 Mi: IR 200 5 A1 0 Su: DM 0100 F9 2D R+1: DM 0101 R+1: DM 0100 0 7 4 8 8 6 8 1 Capitolo 5-19 Istruzioni matematiche sui simboli 5-19-5 Moltiplicazione binaria: *(420)/ *L(421)/*U(422)/*UL(423) SIGNED BINARY MULTIPLY: *(420) Simboli per il diagramma a relè Aree dati operando Md: Canale moltiplicando *(420) @*(420) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR, # Mr: Canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY MULTIPLY: *L(421) Simboli per il diagramma a relè Aree dati operando Md: Primo canale moltiplicando *L(421) @*L(421) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR, # Mr: Primo canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR UNSIGNED BINARY MULTIPLY: *U(422) Simboli per il diagramma a relè Aree dati operando Md: Canale moltiplicando *U(422) @*U(422) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR, # Mr: Canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE UNSIGNED BINARY MULTIPLY: *UL(423) Simboli per il diagramma a relè Aree dati operando Md: Primo canale moltiplicando *UL(423) @*UL(423) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR Mr: Primo canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione SIGNED BINARY MULTIPLY Quando la condizione di esecuzione è OFF, *(420) non viene eseguito. Quando la condizione di esecuzione è ON, *(420) moltiplica il contenuto con segno di Md 245 Capitolo 5-19 Istruzioni matematiche sui simboli per il contenuto con segno di Mr, pone i quattro digit meno significativi del risultato in R e quelli più significativi in R+1. Md X R +1 Mr R DOUBLE SIGNED BINARY MULTIPLY Quando la condizione di esecuzione è OFF, *L(421) non viene eseguito. Quando la condizione di esecuzione è ON, *L(421) moltiplica il contenuto di 8 digit con segno di Md e Md+1 per il contenuto con segno di Mr e Mr+1 e pone il risultato in R...R+3. x R+3 R+2 Md + 1 Md Mr + 1 Mr R+1 R UNSIGNED BINARY MULTILPY Quando la condizione di esecuzione è OFF, *U(422) non viene eseguito. Quando la condizione di esecuzione è ON, *U(422) moltiplica il contenuto senza segno di Md per il contenuto senza segno di Mr, pone i quattro digit meno significativi del risultato in R e quelli più significativi in R+1. Md X R +1 Mr R DOUBLE UNSIGNED BINARY MULTIPLY Quando la condizione di esecuzione è OFF, *UL(423) non viene eseguito. Quando la condizione di esecuzione è ON, *UL(423) moltiplica il contenuto di 8 digit senza segno di Md e Md+1 per il contenuto senza segno di Mr e Mr+1 e pone il risultato in R...R+3. x R+3 Flag Esempio 246 R+2 Md + 1 Md Mr + 1 Mr R+1 R ER: Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. EQ: Il risultato della moltiplicazione è tutti zeri. N: Il bit meno significativo (MSB) del canale R+1 (o canale R+3 per istruzioni “doppie”) dopo l’operazione di moltiplicazione è “1.” *Operazione L Nell’esempio seguente, quando IR 00000 è ON, il contenuto di DM 0101 e DM 0100 viene moltiplicato per il contenuto di DM 0111 e DM 0110, in valore binario di 8 digit con segno e il risultato viene emesso in DM 0123 ...DM 0120. Capitolo 5-19 Istruzioni matematiche sui simboli *Operazione UL Nell’esempio seguente, quando IR 00001 è ON, il contenuto di DM 0201 e DM 0200 viene moltiplicato per il contenuto di DM 0211 e DM 0210, in valore binario di 8 digit senza segno e il risultato viene emesso in DM 0223...DM 0220. 00000 Indirizzo ∗L(421) Istruzione DM 0100 00000 LD DM 0110 00001 *L(421) Operandi 00000 DM 0120 DM 0100 ∗UL(423) DM 0120 DM 0110 00001 DM 0200 00002 LD DM 0210 00003 *UL(423) 00001 DM 0200 DM 0220 DM 0210 DM 0220 5-19-6 Moltiplicazione in BCD: *B(424)/ *BL(425) BCD MULTIPLY: *B(424) Simboli per il diagramma a relè Aree dati operando Md: Canale moltiplicando *B(424) @*B(424) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR, # Mr: Canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD MULTIPLY: *BL(425) Simboli per il diagramma a relè Aree dati operando Md: Primo canale moltiplicando *BL(425) @*BL(425) Md Md Mr Mr R R IR, SR, AR, DM, EM, HR, TC, LR Mr: Primo canale moltiplicatore IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione BCD MULTIPLY Quando la condizione di esecuzione è OFF, *B(424) non viene eseguito. Quando la condizione di esecuzione è ON, *B(424) moltiplica il contenuto in BCD di Md per il contenuto in BCD di Mr e pone il risultato in R e R+1. Md X R +1 Mr R 247 Capitolo 5-19 Istruzioni matematiche sui simboli DOUBLE BCD MULTIPLY Quando la condizione di esecuzione è OFF, *BL(425) non viene eseguito. Quando la condizione di esecuzione è ON, *BL(425) moltiplica il contenuto in BCD di 8 digit di Md e Md+1 per il contenuto in BCD di Mr e Mr+1 e pone il risultato in R...R+3. x R+3 R+2 Md + 1 Md Mr + 1 Mr R+1 R Precauzioni Md (Md+1) e Mr (Mr+1) devono essere in BCD. Se viene utilizzato qualsiasi altro dato, il Flag di errore (SR 25503) verrà impostato su ON e l’istruzione non verrà eseguita. Flag ER: Il contenuto di Md (Md+1) o Mr (Mr+1) non è in BCD. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. EQ: Esempio Il risultato della moltiplicazione è tutti zeri. *Operazione BL Nell’esempio seguente, quando IR 00000 è ON, il contenuto di DM 0101 e DM 0100 viene moltiplicato per il contenuto di DM 0111 e DM 0110, in BCD di otto digit, e il risultato viene emesso in DM 0123...DM 0120. 00000 ∗BL(425) Indirizzo Istruzione DM 0100 00000 LD DM 0110 00001 *BL(425) DM 0120 Operandi 00000 DM 0100 DM 0110 DM 0120 248 Capitolo 5-19 Istruzioni matematiche sui simboli 5-19-7 Divisione binaria: /(430)/ /L(431)//U(432)//UL(433) SIGNED BINARY DIVIDE: /(430) Simboli per il diagramma a relè Aree dati operando Dd: Canale dividendo /(430) @/(430) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR, # Dr: Canale divisore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE SIGNED BINARY DIVIDE: /L(431) Simboli per il diagramma a relè Aree dati operando Dd: Primo canale dividendo /L(431) @/L(431) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR Dr: Primo canale divisore IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR UNSIGNED BINARY DIVIDE: /U(432) Simboli per il diagramma a relè Aree dati operando Dd: Canale dividendo /U(432) @/U(432) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR, # Dr: Canale divisore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE UNSIGNED BINARY DIVIDE: /UL(433) Simboli per il diagramma a relè Aree dati operando Dd: Primo canale dividendo /UL(433) @/UL(433) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR Dr: Primo canale divisore IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione SIGNED BINARY DIVIDE Quando la condizione di esecuzione è OFF, /(430) non viene eseguito. Quando la condizione di esecuzione è ON, /(430) divide il contenuto binario con segno di 249 Capitolo 5-19 Istruzioni matematiche sui simboli Dd per quello di Dr e il risultato viene posto in R e R+1: il quoziente R, il resto in R+1. Quoziente R Dr Resto R+1 Dd DOUBLE SIGNED BINARY DIVIDE Quando la condizione di esecuzione è OFF, /L(431) non viene eseguito. Quando la condizione di esecuzione è ON, /L(431) divide il contenuto di 8 digit con segno di Dd e Dd+1 per il contenuto con segno di Dr e Dr+1 e il risultato viene posto in R...R+3: il quoziente in R e R+1 il resto in R+2 e R+3. Resto R+3 Quoziente R+2 Dr+1 Dr R+1 R Dd+1 Dd UNSIGNED BINARY DIVIDE Quando la condizione di esecuzione è OFF, /U(432) non viene eseguito. Quando la condizione di esecuzione è ON, /U(432) divide il contenuto senza segno di Dd per quello di Dr e il risultato viene posto in R e R+1: il quoziente in R, il resto in R+1. Quoziente R Dr Resto R+1 Dd DOUBLE UNSIGNED BINARY DIVIDE Quando la condizione di esecuzione è OFF, /UL(433) non viene eseguito. Quando la condizione di esecuzione è ON, /UL(433) divide il contenuto senza segno di 8 digit di Dd e Dd+1 per il contenuto senza segno di Dr e Dr+1 e il risultato viene posto in R...R+3: il quoziente in R e R+1 e il resto in R+2 e R+3. Resto R+3 Dr+1 Quoziente R+2 Dr R+1 R Dd+1 Dd Precauzioni Dr (o Dr e Dr+1) non deve essere tutti zeri. Le istruzioni non verranno eseguite quando ER (Flag di errore) è ON. Flag ER: Dr (o Dr e Dr+1) è tutti zeri. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Esempio 250 EQ: Il risultato della divisione è tutti zeri nel quoziente. N: Il bit più significativo (MSB) del canale R (o canale R+1 per istruzioni “doppie”) dopo l’operazione di divisione è “1.” Operazione /L Nel seguente esempio, quando IR 00000 è ON, il contenuto con segno di DM 0101 e DM 0100 viene diviso per il contenuto con segno di DM 0111 e DM 0110, Capitolo 5-19 Istruzioni matematiche sui simboli in valore binario di 8 digit. Quando si ottiene il risultato, il quoziente viene emesso in DM 0121 e DM 0120 e il resto in DM 0123 e DM 0122. Operazione /UL Nel seguente esempio, quando IR 00001 è ON, il contenuto senza segno di DM 0201 e DM 0200 viene diviso per quello di DM 0211 e DM 0210, in valore binario di 8 digit. Quando si ottiene il risultato, il quoziente viene emesso in DM 0221 e DM 0220 e il resto in DM 0223 e DM 0222. 00000 /L(431) Indirizzo DM 0100 00000 LD Istruzione DM 0110 00001 /L(431) Operandi 00000 DM 0120 DM 0100 /UL(433) DM 0120 DM 0110 00001 DM 0200 00002 LD DM 0210 00003 /UL(433) 00001 DM 0200 DM 0220 DM 0210 DM 0220 5-19-8 Divisione in BCD: /B(434)/ /BL(435) BCD DIVIDE: /B(434) Simboli per il diagramma a relè Aree dati operando Dd: Canale dividendo /B(434) @/B(434) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR, # Dr: Canale divisore IR, SR, AR, DM, EM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR DOUBLE BCD DIVIDE: /BL(435) Simboli per il diagramma a relè Aree dati operando Dd: Primo canale dividendo /BL(435) @/BL(435) Dd Dd Dr Dr R R IR, SR, AR, DM, EM, HR, TC, LR Dr: Primo canale divisore IR, SR, AR, DM, EM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, EM, HR, LR Descrizione BCD DIVIDE Quando la condizione di esecuzione è OFF, /B(434) non viene eseguito e il programma si sposta verso l’istruzione successiva. Quando la condizione di esecu- 251 Capitolo 5–20 Operazioni aritmetiche in BCD zione è ON, il contenuto in BCD di Dd viene diviso per quello di Dr e il risultato viene posto in R e R + 1: il quoziente in R e il resto in R + 1. Resto Quoziente R+1 Dr R Dd DOUBLE BCD DIVIDE Quando la condizione di esecuzione è OFF, /BL(435) non viene eseguito. Quando la condizione di esecuzione è ON, il contenuto in BCD di 8 digit di Dd e Dd+1 viene diviso per quello di Dr e Dr+1 e il risultato viene posto in R...R+3: il quoziente in R e R+1 e il resto in R+2 e R+3. Resto R+3 Dr+1 Quoziente R+2 Dr R+1 R Dd+1 Dd Precauzioni Dd e Dr (o Dd, Dd+1, Dr e Dr+1) devono essere in BCD. Se viene utilizzato qualsiasi altro dato, il Flag di errore (SR 25503) verrà impostato su ON e l’istruzione non verrà eseguita. Flag ER: Dd e Dr (o Dd, Dd+1, Dr e Dr+1) non sono in BCD. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. EQ: Esempio Il risultato della divisione è tutti zeri. Operazione /BL Nell’esempio seguente, quando IR 00001 è ON, il contenuto di DM 0201 e DM 0200 viene diviso per quello di DM 0211 e DM 0210, in BCD di 8 digit. Quando si ottiene il risultato, il quoziente viene emesso in DM 0221 e DM 0220 e il resto in DM 0223 e DM 0222. 00000 /BL(435) DM 0200 DM 0210 DM 0220 Indirizzo Istruzione 00000 LD 00001 /BL(435) Operandi 00000 DM 0200 DM 0210 DM 0220 5-20 Operazioni aritmetiche in BCD Le istruzioni delle operazioni in BCD – INC(038), DEC(039), ADD(030), ADDL(054), SUB(031), SUBL(055), MUL(032), MULL(056), DIV(033), DIVL(057), FDIV(079) e ROOT(072) – eseguono operazioni aritmetiche sui dati BCD. Per INC(038) e DEC(039) il canale sorgente e risultato sono uguali. Cioè il contenuto del canale sorgente viene sovrascritto dal risultato dell’istruzione. Tutte le altre istruzioni modificano soltanto il contenuto dei canali in cui si trovano i risultati, e cioè il contenuto dei canali sorgente è uguale prima e dopo l’esecuzione di una qualsiasi altra istruzione di operazione in BCD. STC(040) e CLC(041), che impostano e cancellano il Flag del carry, fanno parte di questo gruppo perché la maggior parte delle operazioni in BCD fanno uso del 252 Capitolo 5–20 Operazioni aritmetiche in BCD flag di riporto (CY) nei risultati. Anche le operazioni in binario e le operazioni di scorrimento utilizzano CY. Le istruzioni di addizione e sottrazione comprendono CY nella operazione e nel risultato. Eliminare CY se il suo stato precedente non è necessario nella operazione e per utilizzare il risultato posto in CY, se necessario, prima che venga modificato con l’esecuzione di una qualsiasi altra istruzione. 5-20-1 INCREMENT – INC(038) Simboli per il diagramma a relè INC(038) @INC(038) Wd Wd Aree dati Wd: Canale dI incremento (BCD) IR, SR, AR, DM, HR, LR Descrizione Quando la condizione di esecuzione è OFF, INC(038) non è eseguita. Quando la condizione di esecuzione è ON, INC(038) incrementa Wd, senza influenzare il Carry (CY). Flag ER: Wd non è in BCD Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato incrementato è 0. 5-20-2 DECREMENT – DEC(039) Simboli per il diagramma a relè DEC(039) @DEC(039) Wd Wd Aree dati Wd: Canale di decremento (BCD) IR, SR, AR, DM, HR, LR Descrizione Quando la condizione di esecuzione è OFF, DEC(039) non è eseguita. Quando la condizione di esecuzione è ON, DEC(039) riduce Wd, senza influenzare CY. DEC(039) funziona come INC(038), eccetto per il fatto che riduce il valore invece di incrementarlo. Flag ER: Wd non è in BCD Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato decrementato è 0. 5-20-3 SET CARRY – STC(040) Simboli per il diagramma a relè STC(040) @STC(040) Quando la condizione di esecuzione è OFF, STC(040) non è eseguita. Quando la condizione di esecuzione è ON, STC(040) manda a ON CY (SR 25504). Nota Fare riferimento all’Appendice C Flag di errore e aritmetici per la tabella delle istruzioni che influenzano il flag CY. 5-20-4 CLEAR CARRY – CLC(041) Simboli per il diagramma a relè CLC(041) @CLC(041) 253 Capitolo 5–20 Operazioni aritmetiche in BCD Quando la condizione di esecuzione è OFF, CLC(041) non è eseguita. Quando la condizione di esecuzione è ON, CLC(041) manda a OFF CY (SR 25504). CLEAR CARRY è utilizzata per resettare (OFF) su “0” CY (SR 25504). CY è resettato automaticamente su “0” quando END(001) è eseguita alla fine di ogni scansione. Nota Fare riferimento all’ Appendice C Flag di errore e aritmetici per la tabella delle istruzioni che influenzano il flag CY. 5-20-5 BCD ADD – ADD(030) Aree dati Au: Canale addendo (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # ADD(030) @ADD(030) Au Au Ad Ad R R Ad: Canale addendo (BCD) Descrizione R: Canale risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ADD(030) non è eseguita. Quando la condizione di esecuzione è ON, ADD(030) addiziona il contenuto di Au, Ad e CY e pone il risultato in R. CY sarà forzato a ON se il risultato è maggiore di 9999. Au + Ad + CY Flag IR, SR, AR, DM, HR, TC, LR, # ER: CY R Au e/o Ad non è in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Esempio CY: ON quando c’è un riporto nel risultato. EQ: ON quando il risultato è 0. Se 00002 è ON, il programma rappresentato dal seguente diagramma cancella CY con CLC(041), addiziona il contenuto di LR 25 ad una costante (6103), pone il risultato in DM 0100, e sposta tutti gli zeri o 0001 in DM 0101 a seconda dello stato di CY (25504). Questo assicura che qualsiasi riporto dall’ultimo digit è mantenuto in R+1, così che l’intero risultato può essere trattato in seguito come un dato a otto digit. TR 0 00002 CLC(041) ADD(030) Indirizzo Istruzione 00000 00001 00002 00003 LR OUT CLC(041) ADD(030) LR 25 #6103 DM 0100 25504 MOV(021) 00004 00005 25504 MOV(021) #0000 DM 0101 254 00006 00007 00008 TR LD AND NOT MOV(021) 00002 0 LR # DM 25 6103 0100 25504 # DM TR 0001 0101 0 25504 # DM 0000 0101 AND MOV(021) #0001 DM 0101 Dati Capitolo 5–20 Operazioni aritmetiche in BCD Sebbene possano essere utilizzate due ADD(030) per eseguire l’addizione BCD a otto digit, ADDL(054) è specificamente designata per questo scopo. 5-20-6 DOUBLE BCD ADD – ADDL(054) Aree dati Au: Primo canale addendo (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR ADDL(054) @ADDL(054) Au Au Ad Ad R R Ad: Primo canale addendo (BCD) IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Ognuna delle seguenti coppie deve appartenere alla stessa area dati: Au e Au+1, Ad e Ad+1 e R e R+1. Descrizione Quando la condizione di esecuzione è OFF, ADDL(054) non è eseguita. Quando la condizione di esecuzione è ON, ADDL(054) addiziona il contenuto di CY al valore a 8 digit contenuto in Au e Au+1, e al valore a 8 digit contenuto in Ad e Ad+1 , ponendo il risultato in R e R+1. CY sarà forzato a ON se il risultato è maggiore di 99999999. Au + 1 Au Ad + 1 Ad + CY Flag ER: CY R+1 R Au e/o Ad non è in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Esempio CY: ON quando c’è un riporto nel risultato. EQ: ON quando il risultato è 0. Quando 00000 è ON, il programma seguente addiziona due numeri a 12 digit, il primo contenuto in LR 20... LR 22 e il secondo in DM 0012. Il risultato è posto in LR 10... HR 13. Nella seconda addizione (utilizzando ADD(030)), è incluso qualsiasi riporto della prima addizione. Il riporto della seconda addizione è posto in HR 255 Capitolo 5–20 Operazioni aritmetiche in BCD 13 utilizzando @ADB(050) (Fare riferimento a 5-21-1 BINARY ADD – ADB(050)) con due costanti zero per porre indirettamente il contenuto di CY in HR 13. 00000 Indirizzo Istruzione Dati CLC(041) @ADDL(054) LR 20 00000 00001 00002 LD CLC(041) @ADDL(054) DM 0010 HR 10 @ADD(030) 00003 DM 0012 HR 12 00004 LR DM HR 20 0010 10 LR DM HR 22 0012 12 # # HR 0000 0000 13 @ADD(030) LR 22 @ADB(050) 00000 @ADB(050) #0000 #0000 HR 13 5-20-7 BCD SUBTRACT – SUB(031) Aree dati Mi: Canale minuendo (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # SUB(031) @SUB(031) Mi Mi Su Su R R Su: Canale sottraendo (BCD) Descrizione IR, SR, AR, DM, HR, TC, LR, # R: Canale risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, SUB(031) non è eseguita. Quando la condizione di esecuzione è ON, SUB(031) sottrae il contenuto di Su e CY da Mi e pone il risultato in R. Se il risultato è negativo, CY è portato a ON ed il complemento a 10 del risultato corrente è posto in R. Per convertire il complemento a 10 in risultato valido, sottrarre il valore posto in R da zero (vedi esempio seguente). Mi – Su – CY CY R Nota L’istruzione COMPLEMENT – NEG(160) a 2 può essere usata per convertire solo i dati binari, non può essere utilizzata con i dati BCD. Flag ER: Mi e/o Su non è in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) ! Attenzione 256 CY: ON quando il risultato è negativo, cioè quando Mi è inferiore a Su + CY. EQ: ON quando il risultato è 0. Accertarsi di cancellare il flag di riporto con CLC(041) prima di eseguire SUB(031) se il suo stato precedente non è richiesto e controllare lo stato di CY dopo avere effettuato una sottrazione con SUB(031). Se CY è ON come risultato dell’esecuzione di SUB(031) (risultato negativo), il risultato è il complemento a 10 della risposta valida. Per convertire il risultato in uscita in valore valido, sottrarre il valore posto in R da 0. Capitolo 5–20 Operazioni aritmetiche in BCD Esempio Quando 00002 è ON, il seguente programma a relè cancella CY, sottrae il contenuto di DM 0100 e CY dal contenuto di 010 e pone il risultato in HR 20. Se CY è posto a ON eseguendo SUB(031), il risultato in HR 20 è sottratto da zero (si noti che CLC(041) è richiesta ancora per ottenere un risultato corretto), il risultato è posto nuovamente in HR 20 e HR 2100 è abilitato (ON) per indicare un risultato negativo. Se CY non è attivato eseguendo SUB(031), il risultato è positivo, la seconda sottrazione non viene effettuata e HR 2100 non è posto su ON. HR 2100 è programmato come bit di autoritenuta, così che una variazione nello stato di CY non lo manderà a OFF quando sarà effettuata un’altra scansione del programma. In questo esempio, sono utilizzate le forme differenziate di SUB(031), in modo che l’operazione di sottrazione è effettuata soltanto una volta, ogni volta che 00002 è posto a ON. Quando deve essere effettuata un’altra operazione di sottrazione, occorrerà porre 00002 a OFF per almeno una scansione (ripristinando HR 2100) e poi riportarlo a ON. TR 0 00002 CLC(041) @SUB(031) 010 Prima sottrazione Indirizzo Istruzione 00000 00001 00002 00003 LD OUT CLC(041) @SUB(031) Dati TR DM 0100 DM HR HR 20 25504 CLC(041) @SUB(031) #0000 Seconda sottrazione 00004 00005 00006 AND CLC(041) @SUB(031) HR 20 HR 20 25504 HR 2100 HR 2100 Posizionato su ON per indicare risultato negativo. 00007 00008 00009 00010 LD AND OR OUT # HR HR TR HR HR 00002 0 010 0100 20 25504 0000 20 20 0 25504 2100 2100 Per questo diagramma, la prima e la seconda sottrazione sono illustrate qui di seguito, usando i dati di esempio per 010 e DM 0100. Nota L’operazione effettiva SUB(031) implica la sottrazione di Su e CY da 10.000 + Mi. Per risultati positivi, il digit più a sinistra è troncato. Per risultati negativi, è ottenuto il complemento a 10. La procedura per stabilire il risultato corretto è riportata qui di seguito. Prima sottrazione IR 010 1029 DM 0100 – 3452 CY –0 HR 20 7577 (1029 + (10000 – 3452)) CY 1 (risultato negativo) Seconda sottrazione 0000 HR 20 –7577 CY –0 HR 20 2423 (0000 + (10000 – 7577)) CY 1 (risultato negativo) Nel caso suddetto, il programma posizionerà HR 2100 su ON per indicare che il valore contenuto in HR 20 è negativo. 257 Capitolo 5–20 Operazioni aritmetiche in BCD 5-20-8 DOUBLE BCD SUBTRACT – SUBL(055) Aree dati Mi: Primo canale minuendo (BCD) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR SUBL(055) @SUBL(055) Mi Mi Su Su R R Su: Primo canale sottraendo (BCD) IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Ognuna delle seguenti coppie deve appartenere alla stessa area dati: Mi e Mi+1, Su e Su+1 e R e R+1. Descrizione Quando la condizione di esecuzione è OFF, SUBL(055) non è eseguita. Quando la condizione di esecuzione è ON, SUBL(055) sottrae CY e il contenuto a 8 digit di Su e Su+1 dal valore a 8 digit contenuto in Mi e Mi+1 e pone il risultato in R e R+1. Se il risultato è negativo, CY è forzato a ON e il complemento a 10 del risultato reale è posto in R. Per convertire il complemento a 10 in risultato valido, sottrarre il contenuto di R da zero. Poiché una costante a 8 digit non può essere inserita direttamente, utilizzare l’istruzione BSET(071). (Fare riferimento a 5-16-3 BLOCK SET - BSET(071)) per creare una costante a 8 digit. Mi + 1 Mi Su + 1 Su – CY CY R+1 R Nota L’istruzione DOUBLE 2’s COMPLEMENT – NEGL(161) può essere utilizzata solo per convertire i dati binari, non può essere utilizzata con dati BCD. Flag ER: Mi, M+1, Su e Su+1 non sono in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) CY: ON quando il risultato è negativo, cioè quando Mi è inferiore a Su. EQ: ON quando il risultato è 0. L’esempio seguente è molto simile a quello della sottrazione di un canale singolo. In questo esempio, comunque, BSET(071) è richiesta per cancellare il contenuto DM 0000 e DM 0001, in modo che possa essere sottratto da 0 un risultato negativo (l’inserimento di una costante a 8 digit non è possibile). 258 Capitolo 5–20 Operazioni aritmetiche in BCD Esempio TR 0 00003 CLC(041) Prima sottrazione @SUBL(055) HR 20 120 DM 0100 25504 @BSET(071) #0000 DM 0000 DM 0001 CLC(041) Seconda sottrazione @SUBL(055) DM 0000 DM 0100 DM 0100 25504 HR 2100 HR 2100 Indirizzo 00000 00001 00002 00003 Posizionato su ON per indicare il risultato negativo. Istruzione Dati LD OUT TR CLC(041) @SUBL(055) HR 0003 0 20 120 0100 25504 DM 00004 00005 Indirizzo AND @BSET(071) # DM DM 00006 00007 00008 00009 00010 00011 Istruzione Dati CLC(041) @SUBL(055) DM DM DM TR LD AND OR OUT HR HR 0000 0100 0100 0 25504 2100 2100 0000 0000 0001 5-20-9 BCD MULTIPLY – MUL(032) Aree dati Simboli per il diagramma a relè Md: Moltiplicando (BCD) IR, SR, AR, DM, HR, TC, LR, # MUL(032) @MUL(032) Md Md Mr Mr R R Mr: Moltiplicatore (BCD) Limitazioni IR, SR, AR, DM, HR, TC, LR, # R: Primo canale risultato IR, SR, AR, DM, HR LR R e R+1 devono appartenere alla stessa area dati. 259 Capitolo 5–20 Operazioni aritmetiche in BCD Descrizione Quando la condizione di esecuzione è OFF, MUL(032) non è eseguita. Quando la condizione di esecuzione è ON, MUL(032) moltiplica Md per il contenuto di Mr e pone il risultato in R e R+1. Md X R +1 Esempio Mr R Con il programma seguente, quando IR 00000 è ON, i contenuti di IR 013 e DM 0005 sono moltiplicati ed il risultato è posto in HR 07 e HR 08. I dati di esempio e i calcoli sono illustrati sotto il programma. 00000 MUL(032) 013 DM 0005 HR 07 X 0 Flag R+1: HR 08 0 0 8 ER: Indirizzo Istruzione 00000 00001 LD MUL(032) Dati 00000 DM HR 3 Md: IR 013 3 5 6 0 Mr: DM 0005 0 2 5 3 R: HR 07 9 0 013 00005 07 0 Md e/o Mr non è in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato è 0. 5-20-10 DOUBLE BCD MULTIPLY – MULL(056) Aree dati Simboli per il diagramma a relè Md: Primo canale moltiplicando (BCD) IR, SR, AR, DM, HR, TC, LR MULL(056) @MULL(056) Md Md Mr Mr R R Mr: Primo canale moltiplicatore (BCD) IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, HR LR Limitazioni 260 Md e Md+1 devono appartenere alla stessa area dati, come Mr e Mr+1. R... R+3 devono appartenere alla stessa area dati. Capitolo 5–20 Operazioni aritmetiche in BCD Descrizione Quando la condizione di esecuzione è OFF, MULL(056) non è eseguita. Quando la condizione di esecuzione è ON, MULL(056) moltiplica il contenuto a otto digit di Md e Md+1 per il contenuto di Mr e Mr+1 e pone il risultato in R... R+3. x R+3 Flag ER: R+2 Md + 1 Md Mr + 1 Mr R+1 R Md, Md+1, Mr o Mr+1 non sono in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: ON quando il risultato è 0. 5-20-11 BCD DIVIDE – DIV(033) Aree dati Simbolo per il diagramma a relè Dd: Canale dividendo (BCD) IR, SR, AR, DM, HR, TC, LR, # DIV(033) Dr: Canale divisore (BCD) Dd IR, SR, AR, DM, HR, TC, LR, # Dr R: Primo canale risultato (BCD) R IR, SR, AR, DM, HR, LR Limitazioni R e R+1 devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, DIV(033) non è eseguita e il programma passa all’istruzione successiva. Quando la condizione di esecuzione è ON, Dd è diviso per Dr e il risultato è posto in R e R + 1: il quoziente in R e il resto in R + 1. Resto R+1 Dr Flag ER: Quoziente R Dd Dd o Dr non è in BCD o Dr è #0000. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM). EQ: ON quando il risultato è 0. 261 Capitolo 5–20 Operazioni aritmetiche in BCD Esempio Con il programma seguente, quando IR 00000 è ON, il contenuto di IR 020 è diviso per il contenuto di HR 09 e il risultato è posto in DM 0017 e DM 0018. I dati di esempio e i calcoli sono illustrati sotto il programma. 00000 Indirizzo DIV(033) 00000 00001 020 Istruzione Dati LD DIV(033) 00000 HR 09 DM 0017 Quoziente 1 0 R: DM 0017 1 5 0 Dd: HR 09 0 0 3 3 HR DM Resto 020 09 0017 R + 1: DM 0018 0 0 0 2 Dd: IR 020 4 5 2 5-20-12 DOUBLE BCD DIVIDE – DIVL(057) Aree dati Simboli per il diagramma a relè Dd: Primo canale dividendo (BCD) IR, SR, AR, DM, HR, TC, LR DIVL(057) @DIVL(057) Dd Dd Dr Dr R R Dr: Primo canale divisore (BCD) IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Dd e Dd+1 devono appartenere alla stessa area dati, come Dr e Dr+1. R... R+3 devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, DIVL(057) non è eseguita. Quando la condizione di esecuzione è ON, il contenuto a otto digit di Dd e D+1 è diviso per il contenuto di Dr e Dr+1 e il risultato è posto nell’area da R a R+3: il quoziente in R e R+1, il resto in R+2 e R+3. Resto R+3 Dr+1 Flag ER: Quoziente R+2 Dr R+1 R Dd+1 Dd IDr e Dr+1 contengono 0. Dd, Dd+1, Dr o Dr+1 non sono in BCD. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) EQ: 262 ON quando il risultato è 0. Capitolo 5–20 Operazioni aritmetiche in BCD 5-20-13 FLOATING POINT DIVIDE – FDIV(079) Aree dati Simboli per il diagramma a relè Dd: Primo canale dividendo (BCD) IR, SR, AR, DM, HR, TC, LR FDIV(079) @FDIV(079) Dd Dd Dr Dr R R Dr: Primo canale divisore (BCD) IR, SR, AR, DM, HR, TC, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni Dr e Dr+1 non possono contenere zero. Dr e Dr+1 devono appartenere alla stessa area dati, come Dd e Dd+1; R e R+1. Il dividendo e il divisore devono essere compresi tra 0,0000001 x 10–7 e 0,9999999 x 10 7. I risultati devono essere compresi tra 0,1 x 10–7 e 0,9999999 x 107. Descrizione Quando la condizione di esecuzione è OFF, FDIV(079) non è eseguita. Quando la condizione di esecuzione è ON, FDIV(079) divide il valore in virgola mobile contenuto in Dd e Dd+1 per quello contenuto in Dr e il Dr+1 e pone il risultato in R e R+1. Quoziente Dr+1 Dr R+1 R Dd+1 Dd Per rappresentare i valori in virgola mobile, i sette digit più a destra sono usati per la mantissa e il digit più a sinistra è usato per l’esponente, come sotto illustrato. La mantissa è espressa come valore inferiore a uno, cioè a sette posti decimali. Primo canale 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 Esponente (0... 7) Segno dell’esponente 0: + 1: – Mantissa (3 digit più a sinistra) Secondo canale 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 Mantissa (4 digit più a sinistra) = 0.1111111 x 10–2 Flag ER: IDr e Dr+1 contengono 0. Dd, Dd+1, Dr o Dr+1 non sono in BCD. Il risultato non è compreso tra 0,1 x 10–7 e 0,999999 x 10 7. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM). EQ: Esempio ON quando il risultato è 0. L’esempio seguente mostra come dividere due numeri interi a quattro digit (numeri non frazionari) in modo da ottenere un valore in virgola mobile. Prima di tutto, i numeri originari devono essere espressi con virgola mobile. Poiché tali numeri sono in origine senza virgola decimale, l’esponente sarà 4 263 Capitolo 5–20 Operazioni aritmetiche in BCD (per es. 3452 è uguale a 0,3452 x 104). Tutti gli spostamenti devono posizionare i dati corretti nei canali consecutivi per la divisione finale, incluso l’esponente e gli zeri. Gli spostamenti dei dati per Dd e Dd+1 sono illustrati qui di seguito. Gli spostamenti per Dr e Dr+1 sono sostanzialmente gli stessi. I valori originari da dividere sono in DM 0000 e DM 0001. Viene inoltre illustrata la divisione finale. 00000 @MOV(021) HR 01 #0000 HR 00 0 0 0 0 HR 00 @MOV(021) 0000 #0000 HR 02 @MOV(021) HR 01 4 0 0 0 #4000 HR 01 HR 00 0 0 0 0 @MOV(021) 4000 #4000 HR 03 DM 0000 3 4 5 2 @MOVD(083) DM 0000 #0021 HR 01 4 3 4 5 HR 01 0 HR 00 0 0 0 @MOVD(083) DM 0000 3 4 5 2 DM 0000 #0300 HR 00 @MOVD(083) HR 01 4 3 4 5 2 HR 00 0 0 0 HR 01 4 3 4 5 2 HR 00 0 0 0 HR 03 4 0 0 7 9 HR 02 0 0 0 DM 0003 2 4 3 6 9 DM 0001 #0021 HR 03 @MOVD(083) DM 0001 #0300 HR 02 @FDIV(079) ÷ HR 00 HR 02 DM 0002 Indirizzo Istruzione 00000 00001 LD @MOV(021) 00002 00003 00004 00005 264 Dati 0.4369620 Indirizzo 00000 # HR 0000 00 # HR 0000 02 # HR 4000 01 # HR 4000 03 DM # HR 0000 0021 01 @MOV(021) 00006 00007 Istruzione 00009 DM # HR 0000 0300 00 DM # HR 0001 0021 03 DM # HR 0001 0300 02 HR HR DM 00 02 0002 @MOVD(083) @MOVD(083) @MOV(021) @MOVD(083) Dati @MOVD(083) @MOV(021) 00008 DM 0002 6 2 0 x 102 @FDIV(079) Capitolo 5–20 Operazioni aritmetiche in BCD 5-20-14 SQUARE ROOT– ROOT(072) Simboli per il diagramma a relè Aree dati Sq: Primo canale sorgente (BCD) ROOT(072) @ROOT(072) Sq Sq R R IR, SR, AR, DM, HR, TC, LR R: Canale risultato IR, SR, AR, DM, HR, LR, Limitazioni Sq e Sq+1 devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, ROOT(072) non è eseguita. Quando la condizione di esecuzione è ON, ROOT(072) calcola la radice quadrata del contenuto a otto digit di Sq e Sq+1 e pone il risultato in R. La parte frazionaria è troncata. R Sq+1 Flag ER: Sq Sq o Sq+1 non sono in BCD. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM). EQ: Esempio ON quando il risultato è 0. L’esempio seguente mostra come ricavare la radice quadrata di un numero a quattro digit e come arrotondare il risultato. Prima di tutto, i canali da utilizzare sono azzerati, quindi il valore da cui estrarre la radice quadrata è spostato in Sq+1. Il risultato, che ha un numero di digit doppio rispetto a quello richiesto dalla risposta (perché il numero di digit nel valore originario è stato raddoppiato), è posto in DM 0102 e i digit sono divisi in due canali diversi, i due digit più a sinistra in IR 011 per la risposta e i due digit più a destra in DM 0103, in modo che, se necessario, la risposta in IR 011 possa essere arrotondata. L’ultima fase è il confronto con il valore in DM 0103, in modo che IR 011 possa essere incrementato con il flag Maggiore di. 265 Capitolo 5–20 Operazioni aritmetiche in BCD In questo esempio, √6017 = 77,56 e 77,56 è arrotondato a 078. 00000 @BSET(071) DM 0101 0 0 0 #0000 0 0 DM 0100 0 0 0 DM 0100 DM 0101 0000 0000 010 6 0 1 @MOV(021) 010 7 DM 0101 DM 0101 6 0 1 7 @ROOT(072) 0 DM 0100 0 0 0 DM 0100 60170000= 77.56932 DM 0102 @MOV(021) #0000 DM 0103 0 0 0 011 0 0 IR 011 0 0 0 @MOV(021) 0000 #0000 0000 DM 0103 @MOVD(083) DM 0102 7 7 5 6 DM 0102 #0012 011 @MOVD(083) 0 0 DM 0102 IR 011 7 7 5 DM 0103 6 0 0 #0210 DM 0103 @CMP(020) 5600 > 4900 DM 0103 #4900 25505 @INC(038) 0 0 011 Indirizzo 00000 00001 00002 00003 00004 00005 Istruzione Dati LD @BSET(071) 00000 # DM DM 0000 0100 0101 DM 010 0101 DM DM 0100 0102 # 0000 011 Indirizzo Istruzione 00006 @MOVD(083) 00007 @ROOT(072) 00008 @MOV(021) @MOV(021) 0000 0103 00009 00010 Dati DM # 0102 0012 011 DM # DM 0102 0210 0103 DM # 25505 0103 4900 @MOVD(083) @MOV(021) # DM 266 IR 011 7 8 @CMP(020) LD @INC(038) 011 Capitolo 5-21 Operazioni in binario 5-21 Operazioni in binario Le istruzioni delle operazioni in binario — ADB(050), SBB(051), MLB(052), DVB(053), ADBL(480), SBBL(481), MBS(484), MBSL(482), DBS(485), e DBSL(483) — eseguono le operazioni aritmetiche su dati esadecimali. Quattro istruzioni (ADB(050), SBB(051), ADBL(480), e SBBL(481)) possono agire sia sui dati normali che con segno, due (MLB(052) e DVB(053)) agiscono solo sui dati normali, e quattro (MBS(484), MBSL(482), DBS(485), e DBSL(483)) agiscono solo sui dati binari con segno. Le istruzioni di addizione e sottrazione includono CY nell’operazione e nel risultato. Accertarsi di cancellare CY se il suo precedente stato non è richiesto nell’operazione, e di utilizzare il risultato in CY, se richiesto, prima che venga variato dall’esecuzione di qualche altra istruzione. STC(040) e CLC(041) possono essere utilizzate per controllare CY. Fare riferimento a 5-20 Operazioni in BCD. Le istruzioni di addizione e sottrazione in binario con segno utilizzano i flag di underflow e overflow (UF e OF) per segnalare se il risultato supera l’intervallo accettabile per i dati binari con segno a 16 o 32 bit. Per ulteriori dettagli in merito fare riferimento alla pagina 28. 5-21-1 BINARY ADD – ADB(050) Aree dati operando Au: primo addendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # ADB(050) @ADB(050) Au Au Ad Ad R R Ad: secondo addendo (binario) Descrizione IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ADB(050) non viene eseguita. Quando la condizione di esecuzione è ON, ADB(050) aggiunge i contenuti di Au, Ad, e CY, e pone il risultato in R. CY verrà impostato se il risultato è maggiore di FFFF. Au + Ad + CY CY R ADB(050) può anche essere utilizzata per addizionare dei dati binari con segno. I flag di overflow e underflow (SR 25404 e SR 25405) segnalano se il risultato supera i limiti inferiore e superiore dell’intervallo di dati binari con segno a 16 bit. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). CY: ON quando il risultato è maggiore di FFFF. EQ: ON quando il risultato è 0. OF: ON quando il risultato è maggiore di +32.767 (7FFF). UF: ON quando il risultato è minore di –32.768 (8000). N: ON quando il bit 15 del risultato è impostato a 1. 267 Capitolo 5-21 Operazioni in binario Esempio 1: Addizione di dati normali L’esempio seguente illustra un’addizione a 4 cifre con CY utilizzato per memorizzare #0000 o #0001 in R+1. Indirizzi TR 0 00000 00000 00001 00002 00003 CLC(041) ADB(050) Istruzioni LD OUT CLC(041) ADB(050) Operandi TR 010 DM 0100 HR 10 DM HR =R 25504 00004 00005 MOV(021) #0000 HR 11 AND NOT MOV(021) = R+1 25504 MOV(021) #0001 HR 11 = R+1 00006 00007 00008 LD AND MOV(021) 00000 0 010 0100 10 25504 # HR TR 0000 11 0 25504 # HR 00001 11 Nell’esempio, A6E2 + 80C5 = 127A7. Il risultato è un numero a 5 cifre, il CY (SR 25504) = 1, e il contenuto di R + 1 diventa #0001. + 0 R+1: HR 11 0 0 1 A Au: IR 010 6 E 2 8 Ad: DM 0100 0 C 5 2 R: HR 10 7 A 7 Nota In quest’addizione i flag UF e OF dovrebbero andare ad ON, ma possono essere ignorati poiché sono importanti solo nell’addizione di dati binari con segno. Esempio 2: Addizione di dati binari con segno 268 Nell’esempio seguente, ADB(050) è utilizzata per addizionare due valori binari con segno a 16 bit (il complemento a due è utilizzato per esprimere valori negativi). L’effettivo intervallo per i valori binari con segno a 16 bit comprende da –32.768 (8000) a +32.768 (7FFF). Il flag di overflow (OF: SR 25404) va ad ON se il risul- Capitolo 5-21 Operazioni in binario tato è maggiore di +32.767 (7FFF) e il flag di underflow (UF: SR 25405) va ad ON se il risultato è minore di –32.768 (8000). Indirizzi 00000 00000 00001 00002 CLC(041) ADB(050) Istruzioni Operandi LD CLC(041) ADB(050) LR 20 00000 LR DM DM DM 0010 DM 0020 20 0010 0020 Nell’esempio, 25.321 +(–13.253) = 12.068 (62E9 + CC3B = 2F24). Nè OF nè UF vanno ad ON. 6 + Au: LR 20 2 E 9 Ad: DM 0010 C C 3 B 2 Ad: DM 0010 F 2 4 Nota Nell’addizione di dati binari con segno lo stato del flag CY può essere ignorato poiché è importante solo nell’addizione di valori esadecimali normali. 5-21-2 BINARY SUBTRACT – SBB(051) Aree dati operando Mi: minuendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # SBB(051) @SBB(051) Mi Mi Su Su R R Su: sottraendo (binario) Descrizione IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, SBB(051) non viene eseguita. Quando la condizione di esecuzione è ON, SBB(051) sottrae i contenuti di Su e CY da Mi e pone il risultato in R. Se il risultato è negativo, CY viene impostato e il complemento a due del risultato viene memorizzato in R. Mi – Su – CY CY R SBB(051) può anche essere utilizzata per sottrarre dati binari con segni. I flag di overflow e underflow (SR 25404 e SR 25405) segnalano se il risultato supera i limiti inferiore e superiore dell’intervallo di dati binari con segno a 16 bit. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). CY: ON quando il risultato è negativo, cioè, quando Mi è minore di Su più CY. EQ: ON quando il risultato è 0. OF: ON quando il risultato è maggiore di +32.767 (7FFF). UF: ON quando il risultato è minore di –32.768 (8000). N: ON quando il bit 15 del risultato è impostato a 1. 269 Capitolo 5-21 Operazioni in binario Esempio 1: Dati normali L’esempio seguente illustra una sottrazione a 4 cifre con CY utilizzato per memorizzare #0000 o #0001 in R+1. Indirizzi TR 1 00001 00000 00001 00002 00003 CLC(041) SBB(051) Istruzioni LD OUT CLC(041) SBB(051) Operandi TR 001 LR20 HR 21 LR HR =R 25504 00004 00005 MOV(021) #0000 HR 22 AND NOT MOV(021) = R+1 25504 MOV(021) #0001 HR 22 = R+1 00006 00007 00008 LD AND MOV(021) NEG(160) HR21 00009 00001 1 001 20 21 25504 # HR TR 0000 22 1 25504 # HR 0001 22 HR HR 21 21 NEG(160) HR 21 Nell’esempio, il contenuto di LR 20 (#7A03) e CY sono sottratti dal contenuto dell’IR 001 (#F8C5). Il risultato viene scritto nell’HR 21 e il contenuto di HR 22 (#0000) segnala che il risultato è positivo. Nel caso di risultato negativo, CY viene impostato, #0001 viene memorizzato in HR 22, e il risultato viene convertito mediante il complemento a due. 0 F Mi: IR 001 8 C 5 – 7 Su: LR 20 A 0 3 – 0 R+1: HR 22 0 0 0 7 0 0 R: HR 21 E C CY = 0 (da CLC(041)) 0 2 Nota Lo stato dei flag UF e OF può essere ignorato poiché è importante solo nella sottrazione di dati binari con segno. Esempio 2: Dati binari con segno Nell’esempio seguente, SBB(051) è utilizzata per sottrarre un valore binario con segno a 16 bit da un altro (il complemento a due è utilizzato per esprimere valori negativi). L’effettivo intervallo per i valori binari con segno a 16 bit comprende da –32.768 (8000) a +32.768 (7FFF). Il flag di overflow (OF: SR 25404) va ad ON se il risultato è maggiore di +32.767 (7FFF) e il flag di underflow (UF: SR 25405) va ad ON se il risultato è minore di –32.768 (8000). Indirizzi 00000 CLC(041) SBB(051) LR 20 DM 0010 DM 0020 00000 00001 00002 Istruzioni Operandi LD CLC(041) SBB(051) 00000 LR DM DM 20 0010 0020 Nell’esempio, 30.020 – (–15.238) = 45.258 (7544 – C47A = 60CA). Il flag OF dovrebbe andare ad ON per segnalare che il risultato è al di fuori del limite superiore dell’intervallo dei dati binari con segno a 16 bit (in altre parole, il risultato è 270 Capitolo 5-21 Operazioni in binario un valore positivo maggiore di 32.767 (7FFF), non un numero negativo espresso come dato binario con segno). 7 Mi: LR 20 5 4 4 Su: DM 0010 C 4 7 A – B R: DM 0020 0 C A Nell’esempio, –30.000 – 3.000 = –33.000 (8AD0 – 0BB8 = 7F18). Il flag UF dovrebbe andare ad ON per segnalare che il risultato è al di fuori del limite inferiore dell’intervallo dei dati binari con segno a 16 bit (in altre parole, il risultato è un valore negativo minore di –32.768 (8000), non un numero positivo espresso come dato binario con segno). 8 – Mi: LR 20 A D 0 0 Su: DM 0010 B B 8 7 R: DM 0020 F 1 8 Il valore assoluto del reale risultato (80E8=33.000) si può ottenere prendendo il complemento a due di 7F18 con NEG(160). Nota Nell’addizione di dati binari con segno lo stato del flag CY può essere ignorato poichè è importante solo nell’addizione di valori esadecimali normali. 5-21-3 BINARY MULTIPLY – MLB(052) Aree dati operando Md: moltiplicando (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # MLB(052) @MLB(052) Md Md Mr Mr R R Mr: moltiplicatore (binario) IR, SR, AR, DM, HR, TC, LR, # R: primo risultato IR, SR, AR, DM, HR LR Limitazioni R ed R+1 devono essere nella stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, MLB(052) non viene eseguita. Quando la condizione di esecuzione è ON, MLB(052) moltiplica il contenuto di Md per i contenuti di Mr, pone in R le quattro cifre di destra del risultato, e in R+1 le quattro cifre di sinistra. Md X R +1 Mr R Precauzioni MLB(052) non può essere utilizzata per moltiplicare dati binari con segno. Utilizzare, invece, MBS(484). Per ulteriori dettagli fare riferimento a 5-21-7 SIGNED BINARY MULTIPLY – MBS(484). Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). 271 Capitolo 5-21 Operazioni in binario EQ: ON quando il risultato è 0. N: ON quando il bit 15 di R+1 è impostato a 1. 5-21-4 BINARY DIVIDE – DVB(053) Aree dati operando Dd: dividendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # DVB(053) @DVB(053) Dd Dd Dr Dr R R Dr: divisore (binario) Descrizione IR, SR, AR, DM, HR, TC, LR, # R: primo risultato IR, SR, AR, DM, HR LR Quando la condizione di esecuzione è OFF, DVB(053) non viene eseguita. Quando la condizione di esecuzione è ON, DVB(053) divide il contenuto di Dd per il contenuto di Dr e il risultato è posto in R ed R+1: il quoziente viene messo in R mentre il resto viene memorizzato in R+1. Quoziente R Dr Resto R+1 Dd Precauzioni DVB(053) non può essere utilizzata per dividere dati binari con segno. Utilizzare invece DBS(485). Per ulteriori dettagli fare riferimento a 5-21-9 SIGNED BINARY DIVIDE – DBS(485). Flag ER: Dr contiene 0. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). 272 EQ: ON quando il risultato è 0. N: ON quando il bit 15 di R è impostato a 1. Capitolo 5-21 Operazioni in binario Esempio Indirizzi 00000 00000 00001 DVB(053) 001 Istruzioni Operandi LD DVB(053) 00000 LR 20 LR HR HR 05 0 R+1: HR 06 0 0 2 1 Dd: IR 001 0 F 7 0 Dr: LR 20 0 0 3 0 R: HR 05 5 A 7 Resto (2) 001 0020 05 Quoziente (1447) 5-21-5 DOUBLE BINARY ADD – ADBL(480) Aree dati operando Au: primo addendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, LR ADBL(480) @ADBL(480) Au Au Ad Ad R R Ad: secondo addendo (binario) IR, SR, AR, DM, HR, LR R: primo risultato IR, SR, AR, DM, HR, LR Limitazioni Au e Au+1 devono essere nella stessa area dati, come pure Ad e Ad+1, ed R ed R+1. ADBL(480) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 480 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, ADBL(480) non viene eseguita. Quando la condizione di esecuzione è ON, ADBL(480) aggiunge i contenuti a otto cifre di Au+1 e Au, i contenuti a otto cifre di Ad+1 e Ad, e CY, e fornisce il risultato in R ed R+1. CY sarà impostato se il risultato è maggiore di FFFF FFFF. Au + 1 Au Ad + 1 Ad + CY CY R+1 R ADBL(480) può anche essere utilizzata per aggiungere dati binari con segno. I flag di overflow e underflow (SR 25404 e SR 25405) segnalano se il risultato supera i limiti inferiore e superiore dell’intervallo dei dati binari con segno a 32 bit. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). CY: ON quando il risultato è maggiore di FFFF FFFF. EQ: ON quando il risultato è 0. OF: ON quando il risultato è maggiore di +2.147.483.647 (7FFF FFFF). 273 Capitolo 5-21 Operazioni in binario Esempio 1: Dati normali UF: ON quando il risultato è minore di –2.147.483.648 (8000 0000). N: ON quando il bit 15 di R è impostato a 1. L’esempio seguente illustra un’addizione a otto cifre con CY (SR 25504) utilizzato per rappresentare lo stato della nona cifra. 00000 Indirizzi Istruzioni 00000 00001 00002 LD CLC(041) ADBL(480) CLC(041) ADBL(480) Operandi 00000 000 DM 0020 DM LR LR 21 000 0020 21 14020187 + 00A3F8C5 = 14A5FA4C Au + 1 : 001 1 4 0 2 Au : 000 0 1 8 Ad + 1 : DM 0021 Ad : DM 0020 F 8 C 5 0 0 A 3 7 + CY (Ripristinato con CLC(041)) 0 R + 1 : LR 22 1 4 A 5 R : LR 21 F A 4 C 0 CY (Nessun carry) Nota Lo stato dei flag UF e OF può essere ignorato poichè è importante solo nell’addizione di dati binari con segno. Esempio 2: Dati binari con segno Nell’esempio seguente, ADBL(480) è utilizzata per addizionare due valori binari con segno a 32 bit e fornire il risultato binario con segno a 32 bit in R ed R+1 (il complemento a due è utilizzato per esprimere valori negativi). L’effettivo intervallo per i valori binari con segno a 32 bit è compreso tra –2.147.483.648 (8000 0000) e +2.147.483.647 (7FFF FFFF). Il flag di overflow (OF: SR 25404) va ad ON se il risultato è maggiore di +2.147.483.647 (7FFF FFFF) e il flag di underflow (UF: SR 25405) va ad ON se il risultato è minore di –2.147.483.648 (8000 0000). 00000 CLC(041) ADBL(480) Indirizzi Istruzioni 00000 00001 00002 LD CLC(041) ADBL(480) LR 20 Operandi 00000 LR DM DM DM 0010 DM 0020 20 0010 0020 Nell’esempio, 1.799.100.099 + (–282.751.929) = 1.516.348.100 (6B3C167D + EF258C47 = 5A61A2C4). Nè OF nè UF vanno ad ON. Au + 1 : LR 21 6 B 3 C Au : LR 20 1 6 7 Ad + 1 : DM 0011 Ad : DM 0010 8 C 4 7 E F 2 5 + D CY (Ripristinato con CLC(041)) 0 R + 1 : DM 0021 5 A 6 1 R : DM 0020 A 2 C 4 0 UF (SR 25405) 0 OF (SR 25404) Nota Nell’addizione di dati binari con segno lo stato del flag CY può essere ignorato poichè è importante solo nell’addizione dei valori esadecimali normali. 274 Capitolo 5-21 Operazioni in binario 5-21-6 DOUBLE BINARY SUBTRACT – SBBL(481) Aree dati operando Mi: primo minuendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR SBBL(481) @SBBL(481) Mi Mi Su Su R R Su: primo sottraendo (binario) IR, SR, AR, DM, HR, TC, LR R: primo risultato IR, SR, AR, DM, HR, LR Limitazioni Mi e Mi+1 devono essere nella stessa area dati, come pure Su e Su+1, ed R ed R+1. SBBL(481) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare un numero di funzione 481 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, SBBL(481) non viene eseguita. Quando la condizione di esecuzione è ON, SBBL(481) sottrae CY ed il valore a otto cifre in Su e Su+1 dal valore a otto cifre in Mi e Mi+1, e pone il risultato in R ed R+1. Se il risultato è negativo, CY viene impostato ed il complemento a due del risultato viene fornito in R+1 ed R. Utilizzare le istruzioni del DOPPIO COMPLEMENTO A DUE per convertire il complemento a due al risultato reale. Mi + 1 Mi Su + 1 Su – CY CY R+1 R SBBL(481) può anche essere utilizzata per sottrarre dati binari con segno. I flag di overflow e di underflow (SR 25404 e SR 25405) segnalano se il risultato è al di fuori dei limiti inferiore o superiore dell’intervallo dei dati binari con segno a 32 bit. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). CY: ON quando il risultato è negativo, cioè, quando Mi è minore di Su più CY. EQ: ON quando il risultato è 0. OF: ON quando il risultato è maggiore di +2.147.483.647 (7FFF FFFF). UF: ON quando il risultato è minore di –2.147.483.48 (8000 0000). N: ON quando il bit 15 di R+1 è impostato a 1. 275 Capitolo 5-21 Operazioni in binario Esempio 1: Dati normali Nell’esempio, il numero a otto cifre in IR 002 e IR 001 è sottratto dal numero a otto cifre in DM 0021 e DM 0020, ed il risultato è fornito in LR 22 e LR 21. Se il risultato è negativo, CY (SR 25504) va ad ON. 00000 CLC(041) SBBL(481) Indirizzi Istruzioni 00000 00001 00002 LD CLC(041) SBBL(481) Operandi 00000 001 DM 0020 DM LR LR 21 001 0020 21 14020187 + 00A3F8C5 = 14A5FA4C Au + 1 : 002 1 4 0 2 Au : 001 0 1 8 Ad + 1 : DM 0021 Ad : DM 0020 F 8 C 5 0 0 A 3 – 7 CY (Ripristinato con CLC(041)) 0 R + 1 : LR 22 1 3 5 E R : LR 21 0 8 C 2 CY (Nessun carry) 0 Nota Lo stato dei flag UF e OF può essere ignorato poichè è importante solo nella sottrazione dei dati binari con segno. Esempio 2: Dati binari con segno Nell’esempio seguente, SBBL(481) è utilizzata per sottrarre un valore binario con segno a 32 bit da un altro e fornire il risultato binario con segno a 32 bit in R ed R+1. L’effettivo intervallo dei valori binari con segno a 32 bit è compreso tra –2.147.483.648 (8000 0000) e +2.147.483.647 (7FFF FFFF). Il flag di overflow (OF: SR 25404) va ad ON se il risultato è maggiore di +2.147.483.647 (7FFF FFFF) e il flag di underflow (UF: SR 25405) va ad ON se il risultato è minore di –2.147.483.648 (8000 0000). 00000 CLC(041) SBBL(481) Indirizzi Istruzioni 00000 00001 00002 LD CLC(041) SBBL(481) Operandi 00000 001 DM 0020 DM LR LR 21 001 0020 21 Nell’esempio, 1.799.100.099 – (–282.751.929) = 2.081.851.958 (6B3C 167D – {EF25 8C47 – 1 0000 0000} = 7C16 8A36). Nè OF nè UF vanno ad ON. – – Au + 1 : 001 6 B 3 C Au : 000 1 6 7 Ad + 1 : DM 0021 Ad : DM 0020 8 C 4 7 E F 2 5 D CY (Ripristinato con CLC(041)) 0 R + 1 : LR 22 7 C 1 6 R : LR 21 8 A 3 6 0 UF (SR 25405) 0 OF (SR 25404) Nota Nell’addizione di dati binari con segno lo stato del flag CY può essere ignorato poichè è importante solo nell’addizione dei valori esadecimali normali. 276 Capitolo 5-21 Operazioni in binario 5-21-7 SIGNED BINARY MULTIPLY – MBS(484) Aree dati operando Md: moltiplicando Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # MBS(484) @MBS(484) Md Md Mr Mr R R Mr: moltiplicatore IR, SR, AR, DM, HR, TC, LR, # R: primo risultato IR, SR, AR, DM, HR LR Limitazioni R ed R+1 devono essere nella stessa area dati. MBS(484) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 484 ad un’altra istruzione di espansione. Descrizione MBS(484) moltiplica il contenuto binario con segno dei due canali e fornisce il risultato binario con segno a 8 cifre in R+1 ed R. Le quattro cifre all’estrema destra del risultato sono poste in R, e le quattro cifre all’estrema sinistra in R+1. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Md X R +1 Flag Mr R ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il risultato è 0000 0000, altrimenti OFF. N: ON quando il bit 15 di R+1 è impostato a 1. 277 Capitolo 5-21 Operazioni in binario Esempio Nell’esempio seguente, MBS(484) è utilizzata per moltiplicare i contenuti binari con segno di IR 001 per i contenuti binari con segno di DM 0020 e fornire il risultato in LR 21 e LR 22. 00000 MBS(484) 001 Indirizzi Istruzioni 00000 00001 LD MBS(484) Operandi 00000 DM 0020 DM LR LR 21 1 X F F R+1: LR 22 F A A D Md: 001 5 B 1 (5.553) Mr: DM 0020 C 1 3 R: LR 21 8 2 001 0020 21 (–1.005) 3 (–5.580.765) 5-21-8 DOUBLE SIGNED BINARY MULTIPLY – MBSL(482) Aree dati operando Md: primo moltiplicando Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR MBSL(482) @MBSL(482) Md Md Mr Mr R R Mr: primo moltiplicatore Limitazioni IR, SR, AR, DM, HR, TC, LR R: primo risultato IR, SR, AR, DM, HR LR Md e Md+1 devono essere nella stessa area dati, come pure Mr e Mr+1, e da R ad R+3. MBSL(482) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 482 ad un’altra istruzione di espansione. Descrizione MBSL(482) moltiplica i dati binari con segno a 32 bit (8 cifre) in Md+1 e Md per i dati binari con segno a 32 bit in Mr+1 e Mr, e fornisce il risultato binario con segno a 16 digit da R+3 ad R. Per ulteriori dettagli in merito fare riferimento alla pagina 28. x R+3 Flag 278 R+2 Md + 1 Md Mr + 1 Mr R+1 R ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il risultato è zero (il contenuto della zona da R+3 ad R è pieno di zeri), altrimenti è OFF. N: ON quando il bit 15 di R+3 è impostato a 1. Capitolo 5-21 Operazioni in binario Esempio Nell’esempio seguente, MBSL(482) è utilizzata per moltiplicare i contenuti binari con segno di IR 101 e IR 100 per i contenuti binari con segno di DM 0021 e DM 0020 e fornire il risultato da LR 24 a LR 21. 00000 Indirizzi Istruzioni 00000 00001 LD MBSL(482) MBSL(482) 100 Operandi 00000 DM 0020 DM LR LR 21 Md+1: IR 101 0 0 8 7 Md: IR 100 9 3 8 Mr+1: DM 0021 F F F 0 A Mr: DM 0020 8 1 2 R+1: LR 22 C A 5 4 0 X F R+3: LR 24 F F F F R+2: LR 23 F 7 D F R: LR 21 5 F 100 0020 21 (555.320) (–1.005.550) (–558.402.026.000) 0 5-21-9 SIGNED BINARY DIVIDE – DBS(485) Aree dati operando Dd: dividendo Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # DBS(485) @DBS(485) Dd Dd Dr Dr R R Dr: divisore Limitazioni IR, SR, AR, DM, HR, TC, LR, # R: primo risultato IR, SR, AR, DM, HR LR R ed R+1 devono essere nella stessa area dati. DBS(485) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 485 ad un’altra istruzione di espansione. Descrizione DBS(485) divide il contenuto binario con segno di Dd per il contenuto binario con segno di Dr, e fornisce il risultato binario con segno a otto cifre in R+1 ed R. Il quoziente viene posto in R, ed il resto in R+1. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Quoziente R Dr Flag ER: Resto R+1 Dd Dr contiene 0. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il contenuto di R (il quoziente) è 0000, altrimenti OFF. N: ON quando il bit 15 di R è impostato a 1. 279 Capitolo 5-21 Operazioni in binario Esempio Nell’esempio seguente, DBS(485) è utilizzata per dividere i contenuti binari con segno di IR 001 per i contenuti binari con segno di DM 0020 e fornire il risultato da LR 21 a LR 22. Indirizzi 00000 Istruzioni 00000 00001 DBS(485) 001 Operandi LD DBS(485) 00000 DM 0020 DM LR LR 21 ÷ F R+1: LR 22 F F A D Dd: IR 001 D D A 0 Dr: DM 0020 0 1 A F Resto (–6) R: LR 21 E B 001 0020 21 (–8.742) (26) 0 (–336 e –6) Quoziente (–336) 5-21-10 DOUBLE SIGNED BINARY DIVIDE – DBSL(483) Aree dati operando Dd: dividendo (binario) Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR DBSL(483) @DBSL(483) Dd Dd Dr Dr R R Dr: divisore (binario) Limitazioni IR, SR, AR, DM, HR, TC, LR R: primo risultato IR, SR, AR, DM, HR LR Dd e Dd+1 devono essere nella stessa area dati, come pure Dr e Dr+1, e da R ad R+3. DBSL(483) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 483 ad un’altra istruzione di espansione. Descrizione DBS(483) divide i dati binari con segno a 32 bit (8 cifre) in Dd+1 e Dd per i dati binari con segno a 32 bit in Dr+1 e Dr, e fornisce il risultato binario con segno a 16 cifre da R+3 ad R. Il quoziente è posto in R+1 ed R, ed il resto in R+3 ed R+2. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Resto R+3 Dr+1 Flag ER: Quoziente R+2 Dr R+1 R Dd+1 Dd Dr+1 e Dr contengono 0. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). 280 EQ: ON quando il contenuto di R+1 ed R (il quoziente) è 0, altrimenti OFF. N: ON quando il bit 15 di R+1 è impostato a 1. Capitolo 5-22 Istruzioni matematiche speciali Esempio Nell’esempio seguente, DBSL(483) è utilizzata per dividere i contenuti binari con segno di IR 002 e IR 001 per i contenuti binari con segno di DM 0021 e DM 0020 e fornire il risultato da LR 24 a LR 21. 00000 Indirizzi Istruzioni 00000 00001 LD DBSL(483) DBSL(483) 001 Operandi 00000 DM 0020 DM LR LR 21 Dd+1: IR 002 F 7 A B Dd: IR 001 1 5 C Dr+1: DM 0021 0 0 0 0 0 Dr: DM 0020 0 1 A R+1: LR 22 F F A D F F R+3: LR 24 F F F F R+2: LR 23 F F C F Resto (–4) R: LR 21 F 7 0 001 0020 21 (–8.736.420) (26) (–336.016 e –4) Quoziente (–336.016) 5-22 Istruzioni matematiche speciali 5-22-1 FIND MAXIMUM – MAX(182) Simboli per il diagramma a relè Aree dati operando C: dati di controllo MAX(182) @MAX(182) C C R1 R1 D D IR, SR, AR, DM, HR, LR, # R1: primo canale del gruppo IR, SR, AR, DM, HR, TC, LR D: canale di destinazione IR, SR, AR, DM, HR, LR Limitazioni N in C deve essere in BCD e deve essere compreso tra 001 e 999. R1 ed R1+N–1 devono essere nella stessa area dati. MAX(182) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare un numero di funzione 182 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, MAX(182) non viene eseguita. Quando la condizione di esecuzione è ON, MAX(182) ricerca, nell’intervallo di memoria tra R1 ed R1+N–1, l’indirizzo contenente il valore massimo e pone tale valore massimo nel canale di destinazione (D). Se il bit 14 di C è ON, MAX(182) inserisce in D+1 l’indirizzo del canale contenente il valore massimo. Tale indirizzo viene identificato in modo differente per l’area DM: 1, 2, 3... 1. Per quanto riguarda l’area DM, l’indirizzo del canale viene scritto in D+1.Per esempio, se l’indirizzo contenente il valore massimo fosse DM 0114, in D+1 verrebbe scritto #0114. 2. Per quanto riguarda un indirizzo in un’altra area dati, in D+1 viene scritto il numero degli indirizzi a partire dal primo del gruppo in cui si effettua la ricerca. Per esempio, se l’indirizzo contenente il valore massimo fosse IR 114 ed il primo canale del gruppo in cui è stata eseguita la ricerca fosse IR 014, in D+1 verrebbe scritto #0100. Se il bit 14 di C è ON e più indirizzi contengono lo stesso valore massimo, in D+1 verrà indicata la posizione dell’indirizzo più basso. 281 Capitolo 5-22 Istruzioni matematiche speciali Il numero di canali compresi nell’intervallo (N) è contenuto nelle 3 cifre più a destra di C; esso deve essere espresso in BCD e deve essere compreso tra 001 e 999. Quando il bit 15 di C è posto a OFF, i dati compresi nell’intervallo specificato sono considerati come binari senza segno, mentre quando tale bit è posto a ON i dati sono considerati come binari con segno. C: 15 14 13 12 11 00 Numero di canali nell’intervallo (N) Non utilizzato – impostato a zero. Tipo di dati 1 (ON): binario con segno 0 (OFF): binario senza segno L’indirizzo viene posto in D+1? 1 (ON): Sì. 0 (OFF): No. ! Attenzione: Se il bit 14 di C è posto a ON, i valori superiori a #8000 vengono considerati come numeri negativi, in tal modo i risultati differiranno a seconda del tipo di dati specificato. Assicurarsi che sia stato specificato il tipo di dati corretto. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). Il numero di canali specificato in C non è in BCD (da 000 a 999). R1 ed R1+N–1 non sono nella stessa area dati. EQ: ON quando il valore massimo è #0000. N: ON quando il bit 15 di D è impostato a 1. 5-22-2 FIND MINIMUM – MIN(183) Simboli per il diagramma a relè Aree dati operando C: dati di controllo MIN(183) @MIN(183) C C R1 R1 D D IR, SR, AR, DM, HR, LR, # R1: primo canale del gruppo IR, SR, AR, DM, HR, TC, LR D: canale di destinazione IR, SR, AR, DM, HR, LR Limitazioni N in C deve essere in BCD e deve essere compreso tra 001 e 999. R1 ed R1+N–1 devono essere nella stessa area dati. MIN(183) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare un numero di funzione 183 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, MIN(183) non viene eseguita. Quando la condizione di esecuzione è ON, MIN(183) ricerca, nell’intervallo di memoria tra R1 ed R1+N–1, l’indirizzo contenente il valore minimo e pone tale valore minimo nel canale di destinazione (D). Se il bit 14 di C è ON, MIN(183) inserisce in D+1 l’indirizzo del canale contenente il valore minimo. Tale indirizzo viene identificato in modo differente per l’area DM: 1, 2, 3... 282 1. Per quanto riguarda l’area DM, l’indirizzo del canale viene scritto in D+1.Per esempio, se l’indirizzo contenente il valore minimo fosse DM 0114, in D+1 verrebbe scritto #0114. Capitolo 5-22 Istruzioni matematiche speciali 2. Per quanto riguarda un indirizzo in un’altra area dati, in D+1 viene scritto il numero degli indirizzi a partire dal primo del gruppo in cui si effettua la ricerca. Per esempio, se l’indirizzo contenente il valore minimo fosse IR 114 ed il primo canale del gruppo in cui è stata eseguita la ricerca fosse IR 014, in D+1 verrebbe scritto #0100. Se il bit 15 di C è ON e più indirizzi contengono lo stesso valore minimo, in D+1 verrà indicata la posizione dell’indirizzo più basso. Il numero di canali compresi nell’intervallo (N) è contenuto nelle 3 cifre più a destra di C; esso deve essere espresso in BCD e deve essere compreso tra 001 e 999. Quando il bit 15 di C è posto a OFF, i dati compresi nell’intervallo specificato sono considerati come binari senza segno, mentre quando tale bit è posto a ON i dati sono considerati come binari con segno. Per ulteriori dettagli in merito fare riferimento alla pagina 28. C: 15 14 13 12 11 00 Numero di canali nell’intervallo (N) Non utilizzato – impostato a zero. Tipo di dati 1 (ON): binario con segno 0 (OFF): binario senza segno L’indirizzo viene posto in D+1? 1 (ON): Sì. 0 (OFF): No. ! Attenzione: Se il bit 14 di C è posto a ON, i valori superiori a #8000 vengono considerati come numeri negativi, in tal modo i risultati differiranno a seconda del tipo di dati specificato. Assicurarsi che sia stato specificato il tipo di dati corretto. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). Il numero di canali specificato in C non è in BCD (da 000 a 999). R1 ed R1+N–1 non sono nella stessa area dati. EQ: ON quando il valore minimo è #0000. N: ON quando il bit 15 di D è impostato a 1. 5-22-3 AVERAGE VALUE – AVG(195) Simboli per il diagramma a relè AVG(195) @AVG(195) S S N N D D Aree dati operando S: canale sorgente IR, SR, AR, DM, HR, TC, LR, # N: numero di scansioni IR, SR, AR, DM, HR, TC, LR, # D: primo canale di destinazione IR, SR, AR, DM, HR, LR Limitazioni I dati di S devono essere esadecimali. N deve essere in BCD e deve essere compreso tra #0001 e #0064. D e D+N+1 devono essere nella stessa area dati. AVG(195) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 195 ad un’altra istruzione di espansione. Descrizione AVG(195) è utilizzata per calcolare il valore medio di S dopo aver effettuato N scansioni. 283 Capitolo 5-22 Istruzioni matematiche speciali Quando la condizione di esecuzione è OFF, AVG(195) non viene eseguita. Durante la prima esecuzione, quando la condizione di esecuzione è ON, AVG(195) scrive il contenuto di S in D. Ogni volta che AVG(195) viene eseguita, il contenuto di S viene memorizzato nei canali da D+2 a D+N+1. Ad ogni esecuzione le prime 2 cifre di D+1 sono incrementate e fungono da puntatori per segnalare la posizione in cui è memorizzato il precedente valore. Durante la prima esecuzione il bit 15 di D+1 rimane a OFF. Durante l’ennesima esecuzione, il precedente valore di S viene scritto nell’ultimo canale nell’intervallo compreso tra D+2 e D+N+1. Il valore medio di ciò che si trova da D+2 a D+N+1 viene calcolato e scritto in D, il bit 15 di D+1 va ad ON, ed il puntatore del precedente valore (le prime 2 cifre di D+1) viene nuovamente azzerato. Ogni volta che AVG(195) viene eseguita, il precedente valore di S sovrascrive il contenuto del canale segnalato dal puntatore ed il nuovo valore medio viene calcolato e scritto in D. Il puntatore verrà nuovamente resettato dopo N–1. Il diagramma seguente illustra la funzione dei canali compresi tra D e D+N+1. D D+1 D+2 D+3 Valore medio (dopo N o più scansioni) Puntatore precedente valore e indicatore ciclo Precedente valore #1 Precedente valore #2 D+N+1 Precedente valore #N La funzione dei bit di D+1 è illustrata nel diagramma seguente e spiegata in modo dettagliato di seguito. D+1: 15 14 08 07 Non utilizzato. Impostato a zero. 00 Puntatore precedente valore (esadecimale a 2 cifre da 0 a N–1). Indicatore del ciclo 0 (OFF): cicli dall’esecuzione di AVG(195) < N. 1 (ON): cicli dall’esecuzione di AVG(195) ≥ N. Puntatore precedente valore Il puntatore del precedente valore segnala la posizione in cui era memorizzato il valore più recente di S relativo a D+2, cioè, un valore del puntatore di 0 indica D+2, un valore di 1 indica D+3, ecc. Indicatore del ciclo L’indicatore del ciclo va ad ON dopo che AVG(195) è stata eseguita N volte. A questo punto, D calcolerà il valore medio dei contenuti dei canali da D+2 a D+N+1. Tale valore medio è un valore esadecimale a 4 cifre ed è arrotondato per difetto al valore intero più prossimo. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). Uno o più operandi sono stati impostati in modo errato. 284 Capitolo 5-22 Istruzioni matematiche speciali Esempio Nell’esempio seguente, il contenuto di IR 040 è impostato a #0000 e quindi incrementato di 1 ad ogni scansione. Per le prime due scansioni, AVG(195) sposta il contenuto di IR 040 in DM 1002 e DM 1003. Anche i contenuti di DM 1001 varieranno (ciò può essere utilizzato per confermare che i risultati di AVG(195) sono variati). Alla terza e all’ultima scansione AVG(195) calcola il valore medio dei contenuti da DM 1002 a DM 1004 e scrive il valore medio risultante in DM 1000. 00001 @MOV(021) Indirizzi Istruzioni Operandi #0000 00000 00001 040 LD @MOV(021) 00001 # AVG(195) 040 00002 AVG(195) #0003 # DM DM 1000 00003 00004 CLC(041) 0000 040 040 0003 1000 CLC(041) ADB(050) ADB(050) # 040 040 0001 040 #0001 040 IR 40 1a scans. 0000 2a scans. 0001 3a scans. 0002 4a scans. 0003 DM 1000 DM 1001 DM 1002 DM 1003 DM 1004 1a scans. 0000 0001 0000 ----- 2a scans. 0001 0002 0000 0001 --- 3a scans. 0001 8000 0000 0001 0002 4a scans. 0002 8001 0003 0001 0002 Media Puntatore 3 precedenti valori di IR 40 5-22-4 SUM – SUM(184) Simboli per il diagramma a relè SUM(184) @SUM(184) C C R1 R1 D D Aree dati operando C: dati di controllo IR, SR, AR, DM, HR, LR, # R1: primo canale del gruppo IR, SR, AR, DM, HR, TC, LR D: primo canale di destinazione IR, SR, AR, DM, HR, LR Limitazioni Le tre cifre più a destra di C devono essere in BCD e comprese tra 001 e 999. Se il bit 14 di C è OFF (impostazione dei dati in BCD), tutti i dati all’interno dell’intervallo da R1 ad R1+N–1 devono essere in BCD. SUM(184) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 184 ad un’altra istruzione di espansione. 285 Capitolo 5-22 Istruzioni matematiche speciali Descrizione Quando la condizione di esecuzione è OFF, SUM(184) non viene eseguita. Quando la condizione di esecuzione è ON, SUM(184) somma i contenuti dei canali da R1 ad R1+N–1 oppure i byte contenuti nei canali da R1 ad R1+N/2–1 e fornisce il risultato nei canali di destinazione (D e D+1). I dati possono essere sommati come binari o in BCD e saranno dati i risultati nello stesso formato. I dati binari possono essere con segno o senza segno. La funzione dei bit di C è illustrata nel diagramma seguente e spiegata in modo dettagliato di seguito. C: 15 14 13 12 11 00 Numero di elementi dell’intervallo (N, BCD) Numero di canali o numero di byte da 001 a 999 Primo byte di R1 (quando il bit 13 è ON) 1 (ON): il più a destra 0 (OFF): il più a sinistra Tipo di dati 1 (ON): binario 0 (OFF): in BCD Tipo di dati (quando il bit 14 è ON) 1 (ON): binario con segno 0 (OFF): binario senza segno Unità di somma 1 (ON): byte 0 (OFF): canali Numero di elementi dell’intervallo Il numero di elementi all’interno dell’intervallo (N) è contenuto nelle tre cifre più a destra di C, che devono essere espresse in BCD e comprese tra 001 e 999. Questo numero indicherà il numero di canali oppure il numero di byte in funzione del tipo di elementi da sommare. Unità di somma Se il bit 13 è OFF verranno sommati dei canali mentre se il bit 13 è ON verranno sommati dei byte. Se sono specificati i byte, l’intervallo può cominciare con il byte più a sinistra o a destra di R1. Il byte più a sinistra di R1 non sarà sommato se il bit 12 è ON. R1 R1+1 R1+2 R1+3 MSB 1 3 5 7 LSB 2 4 6 8 Quando il bit 12 è OFF i byte saranno sommati nel seguente ordine: 1+2+3+4.... Quando il bit 12 è ON i byte saranno sommati nel seguente ordine: 2+3+4.... Tipo di dati Quando il bit 14 di C è ON e il bit 15 è OFF, i dati all’interno dell’intervallo saranno considerati come binari senza segno mentre quando i bit 14 e 15 sono ON, i dati sono considerati come binari con segno. Per ulteriori dettagli in merito fare riferimento alla pagina 28. Quando il bit 14 di C è OFF, i dati all’interno dell’intervallo sono considerati in BCD, senza tener conto del bit 15. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). R1 ed R1+N–1 non sono nella stessa area dati. Il numero di elementi in C non è un valore in BCD compreso tra 001 e 999. Il dato è stato sommato come se non fosse in BCD pur essendo stato indicato BCD. 286 EQ: ON quando il risultato è zero. N: ON quando il bit 15 di D è impostato a 1. Capitolo 5-22 Istruzioni matematiche speciali Esempio Nell’esempio seguente, i contenuti in BCD di 10 canali fra DM 0000 e DM 0009 sono sommati quando IR 00001 è ON e il risultato è scritto in DM 0100 e DM 0101. 00001 @SUM(184) #4010 DM 0000 Indirizzi Istruzioni 00000 00001 LD @SUM(184) 00001 # DM DM DM 0100 DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 DM 0006 DM 0007 DM 0008 DM 0009 Operandi 3F2A 51C3 E02A 7C9F 2A20 A827 2A20 E02A C755 94DC DM 0100 DM 0101 4010 0000 0100 2678 0005 5-22-5 ARITHMETIC PROCESS – APR(069) Aree dati operando Simboli per il diagramma a relè C: canale di controllo APR(069) @APR(069) C C S S D D IR, SR, AR, DM, HR, TC, LR, # S: canale ingresso per dati sorgenti IR, SR, AR, DM, HR, TC, LR D: canale destinazione del risultato IR, SR, AR, DM, HR,TC, LR Limitazioni Per funzioni trigonometriche S deve essere in BCD da 0000 a 0900 (0°≤ ≤ 90°). APR(069) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 069 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, APR(069) non viene eseguita. Quando la condizione di esecuzione è ON, il funzionamento APR(069) dipende dal canale di controllo C. Se C è #0000 o #0001, APR(069) calcola il seno() oppure il coseno(). Il valore BCD di S specifica in decimi di grado. Se C è un indirizzo, APR(069) calcola f(x) della funzione inserita precedentemente all’inizio del canale C. La funzione è una serie di segmenti di linea (che possono approssimare una curva) determinati dall’operatore. Il valore BCD o esadecimale di S specifica x. Flag ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). Per funzioni trigonometriche, x > 0900 (x è il contenuto di S). E’ stata indicata per C una costante diversa da #0000 o #0001. L’approssimazione lineare del dato non è leggibile. EQ: Il risultato è 0000. N: ON quando il bit 15 di D è impostato a 1. 287 Capitolo 5-22 Istruzioni matematiche speciali Esempi Funzione Seno L’esempio seguente illustra l’uso di APR(069) funzione seno per calcolare il seno di 30°. La funzione seno è specificata quando C è #0000. Indirizzi 00000 APR(069) #0000 00000 00001 Istruzioni DM 0000 0 0 S: DM 0000 101 100 3 0 10–1 0 Inserire il dato in ingresso non superiore a #0900 in BCD. Funzione Coseno 10–1 5 D: DM 0100 10–2 10–3 0 0 10–4 0 Il risultato ha 4 cifre significative, la quinta e la più alta sono ignorate. Il risultato del seno(90) sarà 0,999 e non 1. L’esempio seguente illustra l’uso di APR(069) funzione coseno per calcolare il coseno di 30°. La funzione coseno è specificata quando C è #0001. Indirizzi APR(069) #0001 DM 0010 DM 0110 Dati in ingresso, x S: DM 0010 100 101 3 0 10–1 0 Inserire il dato in ingresso non superiore a #0900 in BCD. Approssimazione lineare 288 0000 0000 0100 Risultato 00000 0 0 00000 # DM DM DM 0100 Dati in ingresso, x Operandi LD APR(069) 00000 00001 Istruzioni Operandi LD APR(069) 00000 # DM DM 0001 0010 0110 Risultato 10–1 8 D: DM 0110 10–2 10–3 6 6 10–4 0 Il risultato ha 4 cifre significative, la quinta e la più alta sono ignorate. Il risultato del coseno(0) sarà 0,9999 e non 1. APR(069) approssimazione lineare è specificata quando C è un indirizzo di memoria. Il canale C è il primo canale del blocco continuo di memoria contenente il dato di approssimazione lineare. Il contenuto del canale C indica il numero di segmenti di linea con approssimazione e se gli ingressi e le uscite sono in formato BCD o BIN. I bit da 00 a 07 contengono il numero di segmenti di linea meno 1, m–1, come dato binario. I bit Capitolo 5-22 Istruzioni matematiche speciali 14 e 15 determinano, rispettivamente, i formati di ingresso e uscita: 0 indica BCD e 1 specifica BIN. C: 15 14 Non utilizzato 07 06 05 04 03 02 01 00 Numero delle coordinate meno uno (m–1) Formato di uscita Formato di ingresso Inserire le coordinate degli m+1 punti finali, che definiscono gli m segmenti di linea, come illustrato nella tabella che segue. Inserire tutte le coordinate in formato BIN. Inserire sempre le coordinate dal più basso valore di X (X1) al più alto (Xm). X0 è 0000, e non deve essere inserito. Y Ym Canale Coordinate C+1 Xm (max. valore X) C+2 Y0 C+3 X1 Y3 C+4 Y1 Y1 C+5 X2 C+6 Y2 Y4 ↓ Y2 Y0 X X0 X1 X2 X3 X4 ↓ C+(2m+1) Xm C+(2m+2) Ym Xm Se il bit 13 di C è impostato a 1, il grafico sarà riflesso da sinistra a destra come illustrato di seguito. Y Y X0 Xm X Xm X0 X L’esempio seguente dimostra la costruzione di una approssimazione lineare con 12 segmenti di linea. Il blocco di dati è continuo, come deve essere, da DM 289 Capitolo 5-22 Istruzioni matematiche speciali 0000 a DM 0026 (da C a C + (2 × 12 + 2)). I dati in ingresso sono presi da IR 010, e il risultato è fornito in IR 011. Indirizzi 00000 APR(069) 00000 00001 DM 0000 Istruzioni Operandi LD APR(069) 00000 010 DM 0000 010 011 011 Contenuto Bit Bit 15 00 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 Coordinate DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 DM 0006 $C00B $05F0 $0000 $0005 $0F00 $001A $0402 ↓ ↓ ↓ DM 0025 DM 0026 $05F0 $1F20 X12 Y12 X12 Y0 X1 Y1 X2 Y2 (Uscita ed ingresso BIN) (m–1 = 11: 12 segmenti di linea) In questo caso, il canale dati in ingresso, IR 010, contiene #0014, e f(0014) = #0726 è l’uscita verso R, IR 011. Y $1F20 $0F00 (x,y) $0726 $0402 (0,0) $0005 $0014 $001A $05F0 X 5-22-6 PID CONTROL – PID(190) Simboli per il diagramma a relè Aree dati operando S: canale di ingresso PID(190) IR, SR, AR, DM, HR, LR, S C D C: primo parametro IR, SR, DM, HR, LR D: canale di uscita IR, SR, AR, DM, HR, LR Limitazioni C e C+32 devono essere nella stessa area dati. PID(190) è un istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 190 ad un’altra istruzione di espansione. Nota Non programmare PID(190) nelle seguenti situazioni per non determinare un comportamento inaspettato: nei programmi di interrupt, nelle subroutine, tra IL(002) e ILC(003), tra JMP(004) e JME(005), e nei passi di programma (quando si utilizza STEP(008) e SNXT(009)). 290 Capitolo 5-22 Istruzioni matematiche speciali Descrizione PID(190) esegue il controllo PID in base ai parametri indicati. Prende l’intervallo di dati binari in ingresso specificato dai contenuti del canale di ingresso S ed esegue l’operazione PID in base ai parametri impostati. I risultati sono, quindi, memorizzati come valore finale dell’operazione nel canale di uscita D. I canali dei parametri PID vanno da C a C+32 e sono configurati nel modo seguente. Canale C da 11 a 8 da 7 a 4 da 3 a 0 C+1 Banda proporzionale (P) C+2 Tik = Tempo integrale T1/periodo di campionamento γ (V. nota 1). C+3 Tdk = Tempo derivativo Td/periodo di campionamento γ (V. nota 1). C+4 Periodo di campionamento γ C+5 Parametro 2-PID (α) (V. nota 2). C+6 C+7 – C+32 Note da 15 a 12 Valore impostato (SV) 0 Campo ingresso Indicazione avanti/indietro PID Unità di tempo Campo di uscita Area di lavoro (Non accessibile direttamente dal programma). 1 I reali tempi integrale e derivativo sono calcolati utilizzando i valori impostati in C+2 e C+3 e l’unità di tempo impostata in C+6. 2 Impostando il parametro 2-PID (α) a 000 si ottiene 0,65, il valore normale. Impostazioni dei parametri Elemento Contenuti Campo di impostazione Valore impostato (SV) E’ il valore di arrivo del processo che è stato controllato. Dati binari (dello stesso numero di bit specificati per il campo d’ingresso) Banda proporzionale E’ il parametro per il controllo P che esprime il campo di controllo proporzionale/totale. da 0001 a 9999 (4 cifre BCD); (da 0,1% a 999,9%, in unità di 0,1%) Tik E’ una costante che esprime la forza dell’operazione integrale. Quando questo valore aumenta, la forza integrale diminuisce. da 0001 a 8191 (4 cifre BCD); (9999 = nessuna operazione integrale) Il parametro dell’unità di tempo determina il metodo di impostazione. E’ una costante che esprime la forza dell’operazione derivativa. Quando questo valore aumenta, anche la forza derivativa aumenta. Tdk da 1× a 8191× quando unità di tempo = 0 o 1 da 0,1 a 819,1 s quando unità di tempo = 8 da 0,1 a 81,9 s quando unità di tempo = 9 da 0001 a 8191 (4 cifre BCD); (0000 = nessuna operazione derivativa) da 1× a 8191× quando unità di tempo = 0 o 1 da 0,1 a 819,1 s quando unità di tempo = 8 da 0,1 a 81,9 s quando unità di tempo = 9 Periodo di campionamento Il parametro dell’unità di tempo determina il metodo di impostazione. Imposta il periodo per eseguire l’operazione PID. Indicazione avanti/indietro PID E’ il parametro che determina la direzione dell’operazione proporzionale. 0: operazione indietro 1: operazione avanti (1 cifra BCD) Parametro 2-PID (α) E’ il coefficiente del filtro di ingresso. Utilizzare di solito 0,65 (cioè, un’impostazione di 000). L’efficienza del filtro diminuisce quando il coefficiente si avvicina a 0. 000: α = 0,65 L’impostazione da 100 a 199 significa che il valore delle due cifre più a destra è impostato da α= 0,00 ad α= 0,99. (3 cifre BCD) Campo di ingresso E’ il numero di bit dei dati in ingresso. Unità di tempo Specifica il metodo per l’impostazione dei parametri integrali/derivativi. 5: 13 bit 0: 8 bit 6: 14 bit 1: 9 bit 7: 15 bit 2: 10 bit 8: 16 bit 3: 11 bit (1 cifra BCD) 4: 12 bit 0, 1, 8, o 9 (1 cifra BCD) Campo di uscita Operazione PID CONTROL E’ il numero di bit dei dati in uscita. da 0001 a 9999 (4 cifre BCD); da 0,01 a 99,99 s, in unità di 0,01 s) 0 o 1: specificazione del tempo 8: specificazione del tempo (unità 100 ms) 9: costante di tempo (unità 10 ms) Uguale al campo di impostazione per il campo d’ingresso. Condizione di esecuzione OFF Tutti i dati che sono stati impostati vengono memorizzati. Quindi la condizione di esecuzione è OFF, il valore dell’operazione può essere scritto nel canale di uscita (D) per ottenere il controllo manuale. 291 Capitolo 5-22 Istruzioni matematiche speciali Fianco ascendente della condizione di esecuzione L’area di lavoro è inizializzata in base ai parametri PID che sono stati impostati e l’operazione di controllo PID è avviata. Le variazioni improvvise e radicali nel valore finale dell’operazione non vengono effettuate all’avvio dell’operazione per non influenzare negativamente il sistema controllato (operazione bumpless). Quando i parametri PID vengono modificati, diventano validi prima, quando la condizione di esecuzione varia da OFF a ON. Condizione di esecuzione ON L’operazione PID viene eseguita ad intervalli in base al periodo di campionamento, a seconda dei parametri PID impostati. Periodo di campionamento e tempistica di esecuzione PID Il periodo di campionamento è l’intervallo di tempo necessario per recuperare i dati di misurazione per eseguire un’operazione PID. PID(190), comunque, viene eseguita in base al periodo di campionamento della CPU, pertanto potrebbero verificarsi casi in cui tale periodo viene superato. In tali casi, si ridurrà l’intervallo di tempo fino al successivo campionamento. Metodo di controllo PID Le operazioni di controllo PID vengono eseguite tramite il controllo PID con regolazione anticipativa (due gradi di libertà). Quando si evita l’eccesso di correzione con il semplice controllo PID, la stabilizzazione dei disturbi viene rallentata (1). Se la stabilizzazione dei disturbi è accelerata, d’altra parte, si verifica un eccesso di correzione e la risposta verso il valore di arrivo viene rallentata (2). Con la regolazione anticipativa PID, non c’è eccesso di correzione, e la risposta verso il valore di arrivo e la stabilizzazione dei disturbi possono essere entrambe accelerate (3). Controllo PID semplice Regolazione anticipativa PID (1) Appena la risposta di arrivo viene rallentata, la risposta dei disturbi peggiora. Risposta di arrivo Risposta dei disturbi (2) Eccesso di correzione Operazioni di controllo Appena la risposta dei disturbi viene rallentata, la risposta di arrivo peggiora. Operazione proporzionale (P) L’operazione proporzionale è un’operazione in cui viene stabilita una banda proporzionale rispetto al valore impostato (SV), e all’interno di tale banda il valore dell’operazione (il valore finale di controllo) è reso proporzionale alla deviazione. Se il valore corrente (PV) è minore della banda proporzionale, il valore dell’operazione sarà 100%. Se all’interno della banda proporzionale il valore dell’operazione è reso proporzionale alla deviazione e diminuito gradatamente fino a quando SV e PV corrispondono (cioè, fino a quando la deviazione è 0), il valore dell’operazione ritornerà al valore precedente (operazione in avanti). La banda proporzionale viene espressa come percentuale rispetto al campo d’ingresso totale. Con l’operazione proporzionale si verifica un offset (devia- 292 Capitolo 5-22 Istruzioni matematiche speciali zione residua), e l’offset viene ridotto rendendo la banda proporzionale più piccola. Se, però, è troppo piccola si verificherà un’oscillazione indesiderata. Regolazione della banda proporzionale Operazione proporzionale (operazione in avanti) Valore dell’operazione Banda proporzionale troppo stretta (verificarsi di un’oscillazione indesiderata) 100% Offset SV 0% Banda proporzionale corretta SV Banda proporzionale troppo ampia (grande offset) Banda proporzionale Operazione integrale (I) La combinazione dell’operazione integrale con quella proporzionale riduce l’offset in base al tempo che è trascorso. La forza dell’operazione integrale è indicata dal tempo integrale, che è il tempo richiesto dal valore dell’operazione integrale per raggiungere lo stesso livello del valore dell’operazione proporzionale rispetto alla deviazione a gradino, come illustrato nella figura seguente. Minore è il tempo integrale, .maggiore sarà la correzione con l’operazione integrale. Se il tempo integrale è troppo breve, la correzione sarà troppo forte e provocherà un’oscillazione indesiderata. Operazione integrale Risposta a gradino Deviazione 0 0 Valore dell’operazione Operazione PI e tempo integrale Risposta a gradino Deviazione 0 Operazione PI Operazione I Operazione P 0 Valore dell’operazione Ti: tempo integrale Operazione derivativa (D) Le operazioni proporzionale e integrale eseguono entrambe correzioni rispetto ai risultati del controllo, pertanto è inevitabile un ritardo della risposta. L’operazione derivativa compensa tale ritardo. In risposta ad un improvviso disturbo essa restituisce un valore dell’operazione elevato e ripristina rapidamente lo stato originale. Una correzione viene eseguita con il valore dell’operazione proporzionale all’inclinazione (coefficiente derivativo) determinato dalla deviazione. La forza dell’operazione derivativa è indicata dal tempo derivativo, che è il tempo richiesto dal valore dell’operazione derivativa per raggiungere lo stesso livello del valore dell’operazione proporzionale rispetto alla deviazione a gra- 293 Capitolo 5-22 Istruzioni matematiche speciali dino, come illustrato nella figura seguente. Maggiore è il tempo derivativo, maggiore sarà la correzione con l’operazione derivativa. Operazione derivativa Risposta a gradino Deviazione 0 0 Valore dell’operazione Operazione PD e tempo derivativo Risposta a rampa Deviazione 0 Operazione PD Operazione P Operazione D 0 Valore dell’operazione Td: tempo derivativo Operazione PID L’operazione PID combina l’operazione proporzionale (P), l’operazione integrale (I), e l’operazione derivativa (D). Tramite essa si ottengono risultati di controllo superiori anche per gli oggetti di controllo con tempo morto. L’operazione proporzione viene utilizzata per fornire un controllo regolare senza oscillazioni indesiderate, l’operazione integrale per correggere automaticamente gli offset, e l’operazione derivativa per accelerare la risposta ai disturbi. Risposta a gradino uscita operazione PID Risposta a gradino Deviazione 0 Operazione PID Operazione I Operazione P Operazione D 0 Valore dell’operazione Risposta a rampa uscita operazione PID Deviazione 0 Risposta a rampa Operazione PID Operazione I Operazione P Operazione D 0 Valore dell’operazione Direzione dell’operazione Quando si utilizza l’operazione PID, selezionare una delle due seguenti direzioni di controllo. In entrambe le direzioni, il valore dell’operazione aumenta quando aumenta la differenza tra SV e PV. • Operazione in avanti: il valore di controllo è aumentato quando PV è maggiore di SV. • Operazione all’indietro: il valore di controllo è aumentato quando PV è minore di SV. Regolazione dei parametri PID La relazione generale tra i parametri PID e lo stato di controllo è illustrata di seguito. 294 Capitolo 5-22 Istruzioni matematiche speciali • Quando è irrilevante il valore di tempo richiesto per la stabilizzazione (tempo di assestamento), ma è importante non provocare eccessi di correzione, allargare la banda proporzionale. Controllo con il PID misurato SV Quando P è allargata • Quando l’eccesso di correzione non costituisce un problema ma è preferibile stabilizzare rapidamente il controllo, restringere la banda proporzionale. Se la banda proporzionale viene ristretta troppo, però, possono verificarsi oscillazioni indesiderate. Quando P è ristretta SV Controllo con il PID misurato • Quando si ha un’ampia oscillazione indesiderata, oppure quando l’operazione è bloccata da un eccesso o da un’insufficienza di correzione, probabilmente l’operazione è troppo forte. L’oscillazione indesiderata sarà ridotta aumentando il tempo integrale o allargando la banda proporzionale. Controllo con il PID misurato (in caso di oscillazione indesiderata debole) SV Allargare I o P. • Se il periodo è breve e si verifica un’oscillazione indesiderata, la risposta del sistema di controllo potrebbe essere rapida e l’operazione derivativa troppo forte. In tal caso, ridurre l’operazione derivativa. Controllo con il PID misurato (quando l’oscillazione indesiderata si verifica in un breve periodo) SV Ridurre D. Flag ER: Il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato. Un SV del parametro PID è al di fuori dell’intervallo. L’operazione PID è stata eseguita ma il tempo di ciclo è uguale a due volte il periodo di campionamento. PID(190) verrà eseguita solo per questo errore anche quando ER (SR25503) è ON. CY: L’operazione PID è stata eseguita. 295 Capitolo 5-22 Istruzioni matematiche speciali Esempio L’esempio seguente illustra un programma di controllo PID che utilizza PID(190). CPU AD001 DA001 #0 #1 Amplificatore (nota) Ventola (canale di uscita IR 111) Elemento termosensibile (canale di uscita IR 100) Amplificatore (nota) Riscaldatore (canale di uscita IR110) Nota Motori e riscaldatori non possono essere collegati direttamente da un modulo di uscita analogica. E’ necessario un amplificatore (cioè, un circuito di amplificazione della corrente). Creazione del programma 1, 2, 3... Programma 296 Seguire la procedura descritta di seguito per creare il programma. 1. Impostare il valore di arrivo (binario da 0000 a 0FFF) in DM 0000. 2. Inserire il PV dell’elemento termosensibile (binario da 000 a 0FFF) nei bit da 0 a 11 del canale 101. 3. Fornire il valore dell’operazione del riscaldatore ai bit da 0 a 11 del canale 110 tramite la prima istruzione PID(190) nel programma seguente. 4. Fornire il valore dell’operazione della ventola ai bit da 0 a 11 del canale 111 tramite la seconda istruzione PID(190) nel programma seguente. 5. Convertire il PV dell’elemento termosensibile (binario da 000 a FFF) nei dati della temperatura (da 0000°C a 0200°C) tramite SCL(194), e fornirlo in DM 0200. Capitolo 5-22 Istruzioni matematiche speciali 00000 25315 @MOV(021) Valore di arrivo #0F00 DM0000 @MOV(021) Canale principale del parametro per la prima istruzione PID(190) DM0000 HR00 @MOV(021) Canale principale del parametro per la seconda istruzione PID(190) DM0000 HR40 PV dell’elemento termosensibile PID(190) 101 Valore dell’operazione del riscaldatore HR00 110 PID(190) 101 Valore dell’operazione della ventola HR40 111 SCL(194) PV dell’elemento termosensibile (binario) 101 Canale principale del parametro convertito DM0100 Temperatura corrente dell’elemento termosensibile (°C) DM0200 END Nota Quando si utilizza PID(190) o SCL(194), eseguire le impostazioni dei dati in anticipo con un Dispositivo periferico come la Console di programmazione o LSS. Riscaldatore Valore di arrivo HR HR 00 (DM0000) HR 01 0080 Banda proporzionale HR 02 0200 Tempo integrale/periodo di campionamento HR 03 0100 Tempo derivativo/periodo di campionamento HR 04 0001 Periodo di campionamento HR 05 0000 Parametri PID/indicazione avanti/indietro HR 06 0404 Impostazioni campo I/O e unità di tempo Ventola Parametri SCL DM 0100 0000 HR 40 (DM0000) DM 0101 0000 HR 41 0060 DM 0102 0200 HR 42 0150 DM 0103 0FFF HR 43 0100 HR 44 0001 HR 45 0001 HR 46 0404 297 Capitolo 5-23 Istruzioni logiche 5-23 Istruzioni logiche Le istruzioni logiche – COM(029), ANDW(034), ORW(035), XORW(036), e XNRW(037) – eseguono operazioni logiche sui dati dei canali. 5-23-1 COMPLEMENT – COM(029) Simboli per il diagramma a relè Descrizione Aree dati operando COM(029) @COM(029) Wd: complemento Wd Wd IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, COM(029) non viene eseguita. Quando la condizione di esecuzione è ON, COM(029) cancella tutti i bit ON e imposta tutti i bit OFF in Wd. Quando la condizione di esecuzione è ON, COM(029) alternerà ciascun ciclo tra i complementi di Wd; utilizzare @COM(029), se necessario. 15 Esempio Valore originario 00 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 00 Complemento 0 Flag 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il risultato è 0. N: ON quando il bit 15 di Wd è impostato a 1. 5-23-2 LOGICAL AND – ANDW(034) Aree dati operando Simboli per il diagramma a relè I1: ingresso 1 IR, SR, AR, DM, HR, TC, LR, # Descrizione ANDW(034) @ANDW(034) I1 I1 I2 I2 R R I2: ingresso 2 IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ANDW(034) non viene eseguita. Quando la condizione di esecuzione è ON, ANDW(034) esegue, bit a bit, l’operazione logica di AND tra i canali I1 e I2 e pone il risultato in R. 15 Esempio I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 15 I2 0 00 15 R Flag 298 0 00 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 ER: Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il risultato è 0. N: ON quando il bit 15 di R è impostato a 1. Capitolo 5-23 Istruzioni logiche 5-23-3 LOGICAL OR – ORW(035) Aree dati operando I1: ingresso 1 Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # Descrizione ORW(035) @ORW(035) I1 I1 I2 I2 R R I2: ingresso 2 IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, ORW(035) non viene eseguita. Quando la condizione di esecuzione è ON, ORW(035) esegue, bit a bit, l’operazione logica di OR tra i canali I1 e I2 e pone il risultato in R. 15 Esempio I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Flag ER: 1 1 1 00 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). ON quando il risultato è 0. ON quando il bit 15 di R è impostato a 1. EQ: N: 5-23-4 EXCLUSIVE OR – XORW(036) Aree dati operando I1: ingresso 1 Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # Descrizione XORW(036) @XORW(036) I1 I1 I2 I2 R R I2: ingresso 2 IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, XORW(036) non viene eseguita. Quando la condizione di esecuzione è ON, XORW(036) esegue, bit a bit, l’operazione logica di OR esclusivo tra i canali I1 e I2 e pone il risultato in R. 15 Esempio I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Flag ER: EQ: N: 1 1 1 00 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). ON quando il risultato è 0. ON quando il bit 15 di R è impostato a 1. 299 Capitolo 5-24 Subroutine e controllo di interrupt 5-23-5 EXCLUSIVE NOR – XNRW(037) Aree dati operando I1: ingresso 1 Simboli per il diagramma a relè IR, SR, AR, DM, HR, TC, LR, # XNRW(037) @XNRW(037) I1 I1 I2 I2 R R I2: ingresso 2 Descrizione IR, SR, AR, DM, HR, TC, LR, # R: risultato IR, SR, AR, DM, HR, LR Quando la condizione di esecuzione è OFF, XNRW(037) non viene eseguita. Quando la condizione di esecuzione è ON, XNRW(037) esegue, bit a bit, l’operazione logica di OR esclusivo negato tra i canali I1 e I2 e pone il risultato in R. 15 I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Flag ER: 0 1 1 00 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). EQ: ON quando il risultato è 0. N: ON quando il bit 15 di R è impostato a 1. 5-24 Subroutine e controllo di interrupt 5-24-1 Subroutine Le subroutine suddividono i compiti di controllo complessi in più parti e consentono di riutilizzare un dato set di istruzioni. Quando il programma principale chiama una subroutine, il controllo viene trasferito a questa subroutine e le relative istruzioni vengono eseguite. Le istruzioni all’interno di una subroutine sono scritte nello stesso codice del programma principale. Una volta eseguite tutte le istruzioni della subroutine, il controllo ritorna al programma principale nel punto immediatamente successivo a quello da cui è stata attivata la subroutine (salvo indicazioni diverse nella subroutine). Le subroutine possono anche essere attivate da interrupt o dall’istruzione MCRO(099). Interrupt 300 Analogamente alle chiamate di subroutine, gli interrupt determinano un’interruzione nell’esecuzione del programma principale in modo che dopo il completamento della subroutine l’esecuzione possa essere ripresa da quel punto. Un interrupt può essere causato da una sorgente esterna, come un segnale in ingresso da un modulo di interrupt in ingresso, oppure da un interrupt a tempo. Nel caso di interrupt a tempo, il segnale di interrupt viene ripetuto ad intervalli regolari. Mentre le chiamate di subroutine sono controllate dall’interno del programma principale, le subroutine attivate da interrupt vengono avviate quando viene ricevuto il segnale di interrupt. Nel caso di interrupt a tempo, l’intervallo di tempo tra gli interrupt è impostato dall’utente e non è correlato alla tempistica dei cicli del PLC. Ciò è utile per l’esecuzione periodica del programma di supervisione o operativo. Capitolo 5-24 Subroutine e controllo di interrupt INT(089) viene utilizzata per controllare i segnali di interrupt ricevuti dal modulo di interrupt in ingresso, e anche per controllare la programmazione dell’interrupt a tempo. INT(089) fornisce funzioni come la mascheratura degli interrupt (in modo che vengano memorizzati ma ignorati) e la cancellazione degli interrupt. Per ulteriori dettagli sugli interrupt fare riferimento a 5-24-2 Interrupt. MCRO(099) L’istruzione MACRO consente ad una singola subroutine (schema di programmazione) di sostituire diverse subroutine aventi struttura identica ma operandi diversi. Poichè diverse sezioni simili di un programma possono essere gestite con una sola subroutine, il numero di passi del programma può essere notevolmente ridotto. Per ulteriori dettagli su questa istruzione fare riferimento a 5-24-5 MACRO – MCRO(099). 5-24-2 Interrupt I PLC C200HX/HG/HE supportano sia gli interrupt in ingresso che quelli a tempo. Gli interrupt arrestano l’esecuzione del programma per una subroutine che deve essere eseguita immediatamente (interrupt in ingresso da un modulo di interrupt in ingresso) o per delle subroutine che devono essere eseguite periodicamente (interrupt a tempo). Esistono due modalità di interrupt. Nella modalità normale la CPU attende il completamento del processo corrente prima di arrestare il programma principale. Nella modalità veloce la CPU interrompe il processo corrente. Nei PLC C200HX/HG/HE la modalità default è quella normale, ma quella veloce può essere selezionata nel Setup del PLC. Modalità interrupt normale L’impostazione seguente è utilizzata per la modalità interrupt normale. 0 DM 6620 0 0 0 Nella modalità interrupt normale, l’elaborazione seguente verrà completata una volta avviata anche se si verifica un interrupt. L’interrupt verrà elaborato non appena il processo in atto verrà completato. • Gestione Host Link • Gestione I/O remoti • Gestione modulo I/O speciale • Esecuzione istruzioni singole Utilizzare questa modalità ogni qualvolta si utilizzano le subroutine di interrupt C200H senza modifiche o è possibile considerare il tempo di risposta richiesto per gli interrupt. Nota Il C200HX/HG/HE è impostato per default alla modalità interrupt normale. Modalità interrupt veloce L’impostazione seguente è utilizzata per la modalità interrupt veloce. DM 6620 1 – – – Modalità interrupt (1 = veloce) Nella modalità interrupt veloce, l’elaborazione seguente verrà interrotta e la subroutine di interrupt verrà eseguita non appena sarà generato un interrupt. • Gestione Host Link • Gestione I/O remoti • Gestione modulo I/O speciale • Esecuzione istruzioni singole Utilizzare questa modalità ogni qualvolta il tempo di risposta dell’interrupt deve avere una precisione di 1,0 ms. I dati non saranno necessariamente simultanei se viene utilizzata la modalità interrupt veloce, poichè la gestione Host Link, degli I/O remoti, del modulo I/O speciale, e l’esecuzione delle singole istruzioni non saranno necessariamente completate una volta avviate. Il programma deve essere predisposto per con- 301 Capitolo 5-24 Subroutine e controllo di interrupt sentire ciò quando richiesto dall’applicazione (Per ulteriori dettagli vedere la sezione sulla simultaneità dei dati). Interrupt in ingresso Gli interrupt in ingresso vengono eseguiti quando gli ingressi esterni sono ricevuti tramite un modulo di interrupt in ingresso. Sul rack della CPU possono essere montati al massimo due moduli di interrupt in ingresso, ciascuno dei quali fornisce 8 ingressi numerati da IN0 a IN7. Gli ingressi da IN0 a IN7 sul primo modulo generano gli interrupt da #00 a #07 e quelli da IN0 a IN7 sul secondo modulo generano gli interrupt da #08 a #15. In generale, le subroutine da #00 a #15 sono eseguite quando vengono generati gli interrupt da #00 a #15. Interrupt a tempo Gli interrupt a tempo possono essere eseguiti ad intervalli impostati in incrementi di 10 ms o in incrementi di 1 ms. Viene utilizzato l’interrupt #99 e viene eseguita la subroutine #99. Il modulo utilizzato per impostare l’intervallo dell’interrupt a tempo viene impostato nel Setup del PLC in DM 6622. Bit 15 DM 6622 00 Abilitazione impostazione intervallo interrupt a tempo 00: impostazione disabilitata (intervallo a 10 ms) 01: impostazione nei bit da 00 a 07 abilitata Impostazione intervallo interrupt a tempo 00: 10 ms 01: 1 ms Priorità degli interrupt La subroutine specificata verrà eseguita quando sarà generato un interrupt. Se vengono generati altri interrupt durante l’esecuzione di una subroutine di interrupt, non verranno elaborati fino al completamento dell’esecuzione della subroutine di interrupt corrente. Se più interrupt vengono generati oppure attendono l’esecuzione contemporaneamente, le relative subroutine saranno eseguite nel seguente ordine di priorità. Interrupt ingresso 1 >interrupt ingresso 2 > ... >interrupt ingresso 7 > interrupt a tempo I/O speciale nelle subroutine di interrupt Gli I/O per i moduli I/O speciali possono essere rinfrescati dall’interno delle subroutine di interrupt utilizzando l’istruzione I/O REFRESH (IORF). Se si utilizza la modalità interrupt veloce, il rinfresco nel ciclo normale (rinfresco END e rinfresco IORF nel programma principale) deve essere disabilitato per il modulo I/O speciale che deve essere rinfrescato nella subroutine di interrupt. Se lo stesso I/O speciale viene rinfrescato sia all’interno di un programma di interrupt sia all’interno del ciclo normale, si verifica un errore di programmazione di interrupt (errore 8B del sistema FAL), e l’I/O speciale non sarà rinfrescato all’interno della subroutine di interrupt. Il Setup del PLC contiene le impostazioni in DM 6620 che disabilitano il rinfresco nel ciclo normale per specifici moduli I/O speciali. Tali impostazioni sono illustrate di seguito. DM6620 12 Bit 15 1 00 0 0 Modalità interrupt (1 = veloce) * * * * * * * * * * Modulo #0 Modulo #1 . . . Modulo #9 Nota La disabilitazione del rinfresco degli I/O speciali nel ciclo normale per rinfrescare gli I/O speciali in una subroutine di interrupt è necessario solo nella modalità 302 Capitolo 5-24 Subroutine e controllo di interrupt veloce. La disabilitazione del rinfresco del ciclo normale degli I/O speciali durante la modalità interrupt normale verrà ignorata e gli I/O speciali saranno rinfrescati sia nel ciclo normale sia nella subroutine di interrupt. Se viene utilizzata la modalità interrupt veloce e se vengono programmati i moduli I/O speciali, i moduli Host Link, o i moduli I/O remoti, il tempo di esecuzione delle subroutine di interrupt deve essere minore di 10 ms. Se il tempo di esecuzione è uguale o maggiore di 10 ms si verificherà un errore di programmazione dell’interrupt (errore 8B del sistema FAL). Il tempo di esecuzione della subroutine di interrupt con il tempo di esecuzione massimo è fornito in SR 262 e il numero della subroutine con il tempo di esecuzione massimo è fornito in SR 263. Esempio: 12,3 ms per la subroutine #80 SR 262 0 1 2 3 Tempo massimo di esecuzione della subroutine di interrupt (in 0,1 ms) SR 263 8 0 * * N. della subroutine di interrupt con il tempo massimo di esecuzione Nota Il suddetto limite di 10 ms non si applica quando si utilizza la modalità interrupt normale o quando non sono montati i suddetti moduli. Simultaneità dei dati Benché la simultaneità dei dati non costituisca un problema per l’esecuzione delle normali istruzioni aritmetiche o delle istruzioni di comparazione, potrebbe creare qualche problema per l’esecuzione di istruzioni più lunghe che gestiscono più canali, come le istruzioni di trasferimento di blocchi, quando viene utilizzata la modalità interrupt veloce e gli stessi dati sono gestiti sia nel programma principale sia in una subroutine di interrupt. I dati possono non essere simultanei in due diverse situazioni: 1) se viene interrotta un’operazione di scrittura dati nel programma principale e gli stessi dati sono letti in una subroutine di interrupt e 2) se viene interrotta un’operazione di lettura dati nel programma principale e gli stessi dati sono scritti in una subroutine di interrupt. Se si devono gestire gli stessi dati sia nel programma principale sia in una subroutine di interrupt, utilizzare una programmazione come quella illustrata di seguito per assicurarsi che venga conservata la simultaneità dei dati, cioè, mascherare gli interrupt durante la lettura/scrittura dei dati che vengono gestiti anche in una subroutine di interrupt. Maschera tutti gli interrupt. (@)INT(089) 100 000 Lettura e scrittura di canali di dati comuni 000 Smaschera tutti gli interrupt. (@)INT(089) 200 000 000 La simultaneità dei dati può costituire un problema anche se gli interrupt si verificano durante i trasferimenti di dati nella gestione di moduli I/O speciali, I/O remoti, o sistemi Host Link. In tutti questi casi, i dati possono non essere simultanei fino alle unità byte. Utilizzare uno dei metodi seguenti per conservare la simultaneità dei dati nelle suddette situazioni. Il secondo metodo si applica solo ai moduli I/O speciali. • Mascherare gli interrupt nel programma principale mentre si spostano i dati trasferiti in/dai moduli nei diversi canali e utilizzare questi canali alterni nella subroutine di interrupt. • Utilizzare l’istruzione I/O REFRESH nelle subroutine di interrupt per rinfrescare gli I/O richiesti dai moduli I/O speciali e mascherare gli interrupt nel programma principale durante la lettura/scrittura dei canali del modulo I/O speciale. 303 Capitolo 5-24 Subroutine e controllo di interrupt 5-24-3 SUBROUTINE ENTER – SBS(091) Simboli per il diagramma a relè SBS(091) N Aree dati identificatore N: Numero della subroutine @SBS(091) da 00 a 255 Limitazioni I numeri di subroutine da 00 a 15 sono utilizzati con gli interrupt in ingresso ed il numero di subroutine 99 è utilizzato per l’interrupt a tempo. Descrizione Una subroutine può essere eseguita inserendo SBS(091) nel programma principale nel punto in cui si desidera la subroutine. Il numero della subroutine utilizzato in SBS(091) indica la subroutine desiderata. Quando l’istruzione SBS(091) viene eseguita (cioè, quando la relativa condizione di esecuzione è ON), tutte le istruzioni comprese tra SBN(092) con lo stesso numero di subroutine e il primo RET(093) che segue verranno eseguite prima che l’esecuzione ritorni all’istruzione successiva a SBS(091) che ha effettuato la chiamata. Programma principale SBS(091) 00 Programma principale SBN(092) 00 Subroutine RET(093) END(001) L’istruzione SBS(091) può essere utilizzata più volte nel programma, cioè, è possibile effettuare una o più chiamate della stessa subroutine da diversi punti. Inoltre tale istruzione può essere inserita anch’essa in una subroutine per spostare l’esecuzione del programma da una subroutine ad un’altra, cioè, è possibile annidare le subroutine. Una volta completata la seconda subroutine (cioè, una volta raggiunto RET(093)), l’esecuzione del programma ritorna alla subroutine originaria che quindi è completata prima di ritornare al programma principale. Non ci sono limiti nel numero di livelli di annidamento, diversamente dai PLC C200HS per i quali il limite massimo d’annidamento è di 16 livelli. 304 Capitolo 5-24 Subroutine e controllo di interrupt Una subroutine non può chiamare se stessa (per es., SBS(091) 00 non può essere programmato all’interno della subroutine definita con SBN(092) 00). Il diagramma seguente illustra due livelli di annidamento. SBS(091) 10 SBN(092) 10 SBN(092) 11 SBS(091) 11 SBS(091) 12 RET(093) RET(093) SBN(092) 12 RET(093) Il diagramma seguente illustra il flusso di esecuzione del programma al variare delle condizioni per i due SBS(091). A SBS(091) Condizione di esecuzione OFF per le subroutine 00 e 01 00 A B Programma principale SBS(091) B C 01 Condizione di esecuzione ON solo per la subroutine 00 A C SBN(092) D B C Condizione di esecuzione ON solo per la subroutine 01 00 A B E C D Subroutine RET(093) SBN(092) Condizione di esecuzione ON per le subroutine 00 e 01 01 A D B E C E RET(093) END(001) Nota Se il tempo di esecuzione di una subroutine è maggiore di 10 ms, verrà generato un errore non fatale (codice di errore 8B). Flag ER: Non esiste nessuna subroutine con il numero specificato. Una subroutine ha chiamato se stessa. E’ stata chiamata una subroutine già in esecuzione. ! Attenzione la Se il flag di errore ER è ON, l’istruzione SBS(091) non verrà eseguita e subroutine non sarà chiamata. 5-24-4 SUBROUTINE DEFINE e RETURN – SBN(092)/RET(093) Simboli per il diagramma a relè SBN(092) N Aree dati identificatore N: numero della subroutine da 00 a 255 RET(093) Limitazioni Ciascun numero di subroutine può essere utilizzato solo una volta in SBN(092). 305 Capitolo 5-24 Subroutine e controllo di interrupt Descrizione L’istruzione SBN(092) viene utilizzata per identificare l’inizio di una subroutine; l’istruzione RET(093) per identificarne la fine. Ciascuna subroutine è identificata con un numero, N, che è programmato come identificatore per SBN(092). Lo stesso numero di subroutine viene utilizzato in qualsiasi SBS(091) che chiami la subroutine (vedere 5-24-3 SUBROUTINE ENTER – SBS(091)). Per l’istruzione RET(093) non è richiesto il numero di subroutine. Tutte le subroutine devono essere accodate al programma principale. Se una o più subroutine sono state programmate, il programma principale verrà eseguito fino alla prima SBN(092) prima di ritornare all’indirizzo 00000 per il ciclo successivo. La subroutine viene eseguita solo se viene chiamata da una SBS(091). END(001) deve trovarsi alla fine dell’ultima subroutine, cioè, dopo l’ultimo RET(093). Non è richiesta in nessun altro punto del programma. Precauzioni Se inavvertitamente viene scritta l’istruzione SBN(092) all’interno del programma principale, l’esecuzione del programma dopo quel punto sarà inibita, cioè, l’esecuzione del programma ritornerà all’inizio. Se le istruzioni DIFU(013) o DIFU(014) sono utilizzate all’interno di una subroutine, il bit operando non andrà ad OFF fino alla successiva riesecuzione della subroutine, cioè, il bit operando può rimanere ad ON per più di un ciclo. Flag Queste istruzioni non influenzano alcun flag. 5-24-5 MACRO – MCRO(099) Aree dati identificatore Simboli per il diagramma a relè N: numero della subroutine 00 to 255 MCRO(099) @MCRO(099) N N I1 I1 O1 O1 I1: primo canale in ingresso IR, SR, AR, DM, HR, TC, LR O1: primo canale in uscita IR, SR, AR, DM, HR, LR Limitazioni I1... I1+3 devono essere nella stessa area dati, come pure O1... O1+3. Descrizione L’istruzione MACRO consente di sostituire, con una singola subroutine, più subroutine che hanno una identica struttura ma operandi diversi. Ci sono 4 canali di ingresso, da SR 290 a SR 293, e 4 canali di uscita, da SR 294 a SR 297, assegnati all’istruzione MCRO(099). Questi 8 canali sono utilizzati nella subroutine e prendono i loro contenuti da I1 a I1+3 e da O1 a O1+3 durante l’esecuzione della subroutine. Quando la condizione di esecuzione è OFF, MCRO(099) non viene eseguita. Quando la condizione di esecuzione è ON, MCRO(099) copia i contenuti da I1 a I1+3 in SR 290... SR 293, e copia i contenuti da O1 a O1+3 in SR 294... SR 297, quindi chiama ed esegue la subroutine specificata in N. Quando la subroutine è completata, i contenuti da SR 294 a SR 297 sono poi ritrasferiti a O1... O1+3 prima che MCRO(099) sia completata. 306 Capitolo 5-24 Subroutine e controllo di interrupt Nell’esempio seguente, i contenuti da DM 0010 a DM 0013 sono copiati in SR 290... SR 293, i contenuti da DM 0020 a DM 0023 sono copiati in SR 294... SR 297, e viene chiamata ed eseguita la subroutine 10. Quando la subroutine è completata, i contenuti da SR 294 a SR 297 sono ricopiati in DM 0020... DM 0023. Programma principale MCRO(99) 10 DM 0010 DM 0020 Programma principale SBN(092) 10 Subroutine RET(93) END(01) Note 1 Le subroutine per le macro sono programmate come le altre subroutine, tranne per il fatto che i contenuti da SR 290 a SR 297 sono trasferiti dai canali di ingresso e di uscita specificati. 2 Per I1 e O1 possono essere utilizzati non solo canali I/O esterni, ma anche canali I/O interni. 3 SR 290... SR 297 possono essere utilizzati come bit di lavoro se non sono utilizzati per i programmi macro. 4 Le istruzioni MCRO(99) possono essere annidate, ma assicurarsi di conservare i dati di I/O poichè le istruzioni utilizzano gli stessi 8 canali I/O (da SR 290 a SR 297). Precauzioni L’istruzione MCRO(099) può essere utilizzata solo per le sezioni di programma che possono essere scritte utilizzando quattro canali di ingresso consecutivi o meno e/o quattro canali di uscita consecutivi o meno. E’ quindi necessario, in genere, considerare nello stesso tempo il sistema e la struttura del programma per poter usufruire pienamente della programmazione macro. Prestare attenzione affinché i canali di ingresso e di uscita corrispondano in modo adeguato ai canali di ingresso e di uscita macro. Flag ER: Non esiste nessuna subroutine con il numero specificato. Un operando ha superato il confine dell’area dati. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). Una subroutine ha chiamato se stessa. E’ stata chiamata una subroutine già in esecuzione. 307 Capitolo 5-24 Subroutine e controllo di interrupt Esempio L’esempio seguente illustra l’uso di quattro istruzioni MCRO(099) che gestiscono la stessa subroutine. La sezione di programma sulla sinistra illustra lo stesso programma senza l’uso di MCRO(099). 25313 00000 10001 MCRO(99) 10000 090 Sempre flag ON 10000 000 100 00001 00002 10001 MCRO(99) 090 00200 002 10501 10500 105 10500 MCRO(99) 00201 090 00202 005 10501 120 00500 MCRO(99) 12001 12000 090 12000 010 150 00501 00502 12001 01000 SBN(92) 29000 15001 29401 29400 15000 29400 15000 01001 090 29001 01002 29002 29401 15001 RET(93) 5-24-6 INTERRUPT CONTROL – INT(089) Aree dati operando Simboli per il diagramma a relè C: codice di controllo # (000, 001, 002, 100, o 200) Limitazioni INT(089) @INT(089) C C N N D D N: tipo di interrupt # (000, 001, o 004) D: dati di controllo IR, AR, DM, HR, TC, LR, # D deve essere tra #0000 e #00FF quando N=000 e C=000 o 001. D deve essere in BCD tra #0001 e #9999 quando N=004 e C=000 o 001. INT(089) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 089 ad un’altra istruzione di espansione. 308 Capitolo 5-24 Subroutine e controllo di interrupt Descrizione L’istruzione INT(089) è utilizzata per controllare gli interrupt ed eseguire una delle 11 funzioni in base ai valori di C ed N. Come illustrato dalla tabella seguente, sei funzioni operano sugli interrupt in ingresso, tre sull’interrupt a tempo, e le altre due mascherano o smascherano tutti gli interrupt. Interrupt C Interrupt in ingresso dal Modulo di interrupt in od o d e i (N 000) ingresso 0 (N=000) Interrupt in ingresso dal Modulo di interrupt in od o d e i (N 001) ingresso 1 (N=001) A tempo (N=004) ( ) Funzione INT(089) Commenti 000 Maschera/smaschera gli interrupt in ingresso 001 Annulla gli interrupt in ingresso I bit da 00 a 07 di D indiccano o gli g ingressi g ess da d 00 a 07 07. 002 Legge lo stato attuale della maschera Stato scritto in D. 000 Maschera/smaschera gli interrupt in ingresso 001 Annulla gli interrupt in ingresso I bit da 00 a 07 di D indiccano o gli g ingressi g ess da d 00 a 07 07. 002 Legge lo stato attuale della maschera Stato scritto in D. 000 Imposta l’intervallo dell’interrupt --- 001 Imposta il tempo per il primo interrupt --- 002 Legge l’intervallo dell’interrupt --- Le due funzioni seguenti variano in base al valore di C soltanto. Valore di C Funzione INT(089) 100 Maschera tutti gli interrupt 200 Smaschera tutti gli interrupt Maschera/smaschera gli interrupt in ingresso (N=000 o 001, C=000) Impostare N=000 per il modulo di interrupt in ingresso 0 ed N=001 per il modulo di interrupt in ingresso 1. Questa funzione viene utilizzata per mascherare e smascherare gli interrupt in ingresso da 00 a 07. Gli ingressi mascherati sono memorizzati, ma ignorati. Quando un ingresso viene mascherato, il programma di interrupt verrà lanciato non appena il bit sarà smascherato (a meno che l’interrupt non sia annullato anticipatamente eseguendo INT(089) con C=001 e N=000). Impostare il corrispondente bit in D a 0 per smascherare o a 1 per mascherare un interrupt I/O in ingresso. I bit da 00 a 07 corrispondono a 00... 07. Annulla gli interrupt in ingresso (N=000 o 001, C=001) Impostare N=000 per il modulo di interrupt in ingresso 0 e N=001 per il modulo di interrupt in ingresso 1. Questa funzione viene utilizzata per annullare gli interrupt I/O in ingresso da 00 a 07. Dal momento che gli interrupt in ingresso sono memorizzati, gli interrupt mascherati verranno trattati dopo che la maschera sarà stata annullata, a meno che questi interrupt non vengano prima annullati. Impostare il corrispondente bit in D a 1 per annullare un interrupt in ingresso. I bit da 00 a 07 corrispondono a 00... 07. Legge lo stato attuale della maschera (N=000 o 001, C=002) Impostare N=000 per il modulo di interrupt in ingresso 0 e N=001 per il modulo di interrupt in ingresso 1. Questa funzione viene utilizzata per scrivere lo stato attuale della maschera per gli interrupt in ingresso da 00 a 07 del canale D. Il bit corrispondente sarà ad ON se l’ingresso è mascherato (I bit da 00 a 07 corrispondono a 00... 07). Imposta l’intervallo dell’interrupt (N=004, C=000) Questa funzione viene utilizzata per impostare l’intervallo tra gli interrupt a tempo. Per ottenere l’intervallo dell’interrupt a tempo, il contenuto di D (BCD: da 0001 a 9999) viene moltiplicato per l’unità di tempo (1 ms o 10 ms) dell’interrupt a tempo. L’unità di tempo per l’interrupt a tempo è impostata in DM 6622 del Setup del PLC. Per ulteriori dettagli sull’impostazione di questa unità di tempo fare riferimento a 3-6-5 Setup del PLC. Imposta il tempo per il primo interrupt (N=004, C=001) Questa funzione viene utilizzata per impostare il tempo per il primo interrupt a tempo. Per ottenere il tempo per il primo interrupt a tempo, il contenuto di D (BCD: da 0001 a 9999) viene moltiplicato per l’unità di tempo (1 ms o 10 ms) dell’interrupt a tempo. L’unità di tempo per l’interrupt a tempo è impostato in DM 6622 del Setup del PLC. Per ulteriori dettagli sull’impostazione di questa unità di tempo fare riferimento a 3-6-5 Setup del PLC. 309 Capitolo 5-24 Subroutine e controllo di interrupt Assicurarsi di impostare il tempo per il primo interrupt. Se tale impostazione non viene effettuata, l’intervallo per il primo interrupt (impostato con N=004, C=000) sarà incerto. Utilizzare il flag di primo ciclo (SR 25315) per la condizione di esecuzione in INT(089) quando si imposta il tempo per il primo interrupt (C=001). L’interrupt a tempo potrebbe non verificarsi mai se l’impostazione C=001 fosse eseguita in modo continuo. Legge l’intervallo di interrupt (N=004, C=002) Questa funzione viene utilizzata per scrivere l’impostazione attuale per l’intervallo dell’interrupt a tempo nel canale D. Maschera/smaschera tutti gli interrupt (C=100/200) Questa funzione viene utilizzata per mascherare o smascherare tutte le elaborazioni degli interrupt. Gli ingressi mascherati sono memorizzati, ma ignorati. Gli ingressi mascherati verranno trattati non appena saranno smascherati. Questa funzione maschera o smaschera tutti gli interrupt contemporaneamente ed è indipendente dalle maschere create con altre funzioni. I dati di controllo, D, e il tipo di interrupt, N, non vengono utilizzati per questa funzione. Impostarli a #0000. Flag ER: Esempio 1: Interrupt in ingresso L’esempio seguente illustra come smascherare un particolare interrupt in ingresso. Le subroutine di interrupt in ingresso verranno eseguite quando la CPU riceverà il corrispondente interrupt in ingresso, senza tener conto della posizione nel ciclo della CPU. Questi interrupt sono utili quando si utilizzano le sezioni di programma di una certa lunghezza, come i programmi di evento. Tutti gli interrupt in ingresso vengono mascherati al momento dell’avvio dell’operazione, e l’interrupt in ingresso desiderato viene smascherato utilizzando INT(089) con N=000 e C=000. Come illustrato nel diagramma seguente, la subroutine sarà eseguita se ci sarà un ingresso dall’interrupt 00 del modulo di interrupt in ingresso 0 quando quell’ingresso è stato smascherato. Il canale DM indirizzato indirettamente non esiste (il contenuto del canale DM non è in BCD, oppure il confine dell’area DM è stato superato). C, e/o N non si trovano entro i limiti specificati. Tutti gli interrupt all’interno della subroutine sono mascherati o smascherati. Programma principale Flag primo ciclo Solo l’interrupt in ingresso 00 è smascherato. LD 25315 INT(089) 000 000 #00FE Programma principale SBN(092) Interrupt dall’ingresso 00 00 Subroutine RET(093) END(001) Nota In base all’impostazione di DM 6621 nel Setup del PLC, la gestione Host Link, la gestione degli I/O remoti, la gestione del modulo I/O speciale, e l’esecuzione di singole istruzioni saranno completate prima dell’esecuzione della subroutine. Per ulteriori dettagli fare riferimento alla pagina 36. Esempio 2: Interrupt a tempo 310 L’esempio seguente illustra come impostare l’intervallo tra gli interrupt a tempo. Le subroutine di interrupt a tempo saranno eseguite ad intervalli fissi, senza Capitolo 5-24 Subroutine e controllo di interrupt tener conto della posizione nel ciclo della CPU. Questo interrupt è utile per le sezioni di programma come i normali programmi di monitoraggio. L’interrupt a tempo viene disabilitato al momento dell’avvio dell’operazione (l’intervallo dell’interrupt a tempo è 0), quindi il tempo per il primo interrupt e l’intervallo dell’interrupt a tempo devono essere impostati utilizzando INT(089) con N=004 e C=001/000. Nel diagramma seguente, la subroutine sarà eseguita ogni 20 ms se l’unità di tempo dell’interrupt a tempo sarà impostato a 10 ms in DM 6622 del Setup del PLC. Programma principale LD 25315 INT(089) 001 004 #0002 000 Flag primo ciclo Imposta il tempo per il primo interrupt a 20 ms. Imposta l’intervallo dell’interrupt a tempo a 20 ms. INT(089) 004 #0002 Programma principale SBN(092) 99 Interrupt a tempo ogni 10 ms. Subroutine RET(093) END(001) Ritorna all’indirizzo di programma prima dell’interrupt. Nota In base all’impostazione di DM 6621 nel Setup del PLC, la gestione Host Link, la gestione degli I/O remoti, la gestione del modulo I/O speciale, e l’esecuzione di singole istruzioni saranno completate prima dell’esecuzione della subroutine. Per ulteriori dettagli fare riferimento alla pagina 36. 311 Capitolo 5-25 Istruzioni di step 5-25 Istruzioni di step Le istruzioni di step STEP(008) e SNXT(009) sono utilizzate insieme per definire delle interruzioni tra le sezioni in un programma, in modo che queste possano essere eseguite in modo autonomo ed essere ripristinate dopo il completamento. Una sezione di programma di solito dovrà corrispondere a un processo corrente nell’applicazione. (Vedere successivamente in questo capitolo gli esempi di applicazione.) Un passo è simile a un codice di programmazione normale, ma alcune istruzioni (IL(002)/ILC(003), JMP(004)/JME(005)) non possono essere incluse. 5-25-1 STEP DEFINE e STEP START–STEP(008)/SNXT(009) Simboli per il diagramma a relè STEP(008) B STEP(008) Aree dati identificatore B: Bit di controllo IR, SR, AR, HR, LR SNXT(009) B B: Bit di controllo IR, SR, AR, HR, LR Limitazioni Tutti i bit di controllo devono essere consecutivi nello stesso canale. Da IR 29800 a IR 29915 non possono essere utilizzati per B. Descrizione STEP(008) utilizza un bit di controllo nelle aree IR o HR per definire l’inizio di una sezione del programma (passo). STEP(008) non richiede una condizione di esecuzione, e cioè la sua esecuzione è controllata dal bit di controllo. Per avviare l’esecuzione del passo, è utilizzata SNXT(009) con lo stesso bit di controllo di STEP(008). Se SNXT(009) è eseguita con una condizione di esecuzione ON, viene eseguito il passo con lo stesso bit di controllo. Se la condizione di esecuzione è OFF, il passo non viene eseguito. L’istruzione SNXT(009) deve essere scritta nel programma in modo da essere raggiunta prima che il programma raggiunga il punto di avvio. Può essere usata in diverse posizioni prima del passo che viene così controllato secondo due diverse condizioni di esecuzione (vedi esempio 2). I passi nel programma che non sono stati avviati con SNXT(009) non verranno eseguiti. Quando SNXT(009) è utilizzata nel programma, l’esecuzione del passo continuerà fino a quando STEP(008) è eseguita senza un bit di controllo. STEP(008) senza un bit di controllo deve essere preceduta con un bit di controllo fittizio. Il bit di controllo fittizio può essere qualsiasi bit IR o HR non utilizzato. Non può essere un bit di controllo già utilizzato in STEP(008). 312 Capitolo 5-25 Istruzioni di step L’esecuzione di un passo viene completata o eseguendo la successiva SNXT(009) o passando a OFF il bit di controllo per il passo (vedi esempio 3). Quando il passo viene completato, tutti i bit IR e HR nel passo vanno OFF e tutti i temporizzatori, eccetto TTIM(087), vengono riportati ai rispettivi SV. TTIM(087), i contatori, i registri a scorrimento, i bit impostati o resettati con SET o RSET e i bit utilizzati in KEEP(011) conservano il loro stato. Vengono qui indicati due passi semplici. 00000 SNXT(009) LR 2000 Inizio esecuzione dei passi STEP(008) LR 2000 Passo controllato da .LR 2000 Primo passo 00001 SNXT(009) LR 2001 STEP(008) LR 2001 Passo controllato da .LR 2001 Secondo passo 00002 SNXT(009) LR 2002 STEP(008) Indirizzo Istruzione 00000 00001 00002 LD SNXT(009) STEP(008) Dati LR LR 00000 2000 2000 Passo controllato da .LR 2000 00100 00101 LD SNXT(009) LR 00001 2001 Indirizzo Istruzione 00102 STEP(008) Fine esecuzione dei passi Dati LR 2001 Passo controllato da .LR 2001 00200 00201 00202 LD SNXT(009) STEP(008) LR --- 00002 2002 I passi possono essere programmati in successione. Ciascun passo inizia normalmente con STEP(008) e termina con SNXT(009) (vedi esempio 3 per un’eccezione). Quando i passi sono programmati in serie, sono possibili tre tipi di esecuzione: sequenziale, con diramazione, parallela. Le condizioni di esecuzione e il posizionamento di SNXT(009) determinano come vengono eseguiti i passi. I tre esempi sotto riportati mostrano questi tre tipi di esecuzione. Precauzioni Gli interblocchi, i salti, SBN(092) e END(001) non possono essere utilizzati all’interno di passi di programma. I bit utilizzati come bit di controllo non devono essere utilizzati per scopi diversi dal controllo degli stessi passi di programma (vedi esempio 3). Tutti i bit di controllo devono trovarsi nello stesso canale e devono essere consecutivi. Se i bit IR o LR sono usati per i bit di controllo, il loro stato verrà perduto quando si verifica una caduta dell’alimentazione. Se è necessario conservare lo stato per riprendere l’esecuzione degli stessi passi, occorre utilizzare i bit dell’area HR. 313 Capitolo 5-25 Istruzioni di step Flag 25407: Flag di step start; va ON per una scansione quando viene eseguita l’istruzione STEP(008) e può essere utilizzata come nell’esempio seguente per resettare i contatori all’interno di un passo di programma. 00000 Start SNXT(009) 01000 01000 STEP(008) 01000 00100 CP CNT 01 25407 25407 R Indirizzo Istruzione 00000 00001 00002 00003 LD SNXT(009) STEP(008) LD Dati #0003 Indirizzo 00000 01000 01000 00100 00004 00005 1 scansione Istruzione Dati LD CNT # 25407 01 0003 Esempi I tre esempi seguenti mostrano tre tipi di controllo di esecuzione possibili con la programmazione dei passi. L’esempio 1 mostra l’esecuzione sequenziale; l’esempio 2, l’esecuzione con diramazione; e l’esempio 3, l’esecuzione parallela. Esempio 1: Esecuzione sequenziale Il seguente processo richiede che tre processi, il caricamento, l’installazione del componente e l’ispezione/scarto, siano eseguiti in sequenza con ogni processo ripristinato prima di continuare con il processo successivo. I vari sensori (SW1, SW2, SW3 e SW4) sono posizionati in modo da segnalare quando i processi devono partire e terminare. SW 1 SW 4 SW 2 SW 3 Caricamento 314 Installazione del componente Ispezione/scarto Capitolo 5-25 Istruzioni di step Il diagramma seguente mostra il flusso di elaborazione e gli switch utilizzati per il controllo dell’esecuzione. SW1 Processo A Caricamento SW2 Processo B Installazione componente SW3 Processo C Ispezione/scarto SW4 Il programma per il processo mostrato sotto utilizza il tipo base di programmazione dei passi: ogni passo è completato da un’istruzione SNXT(009) unica che avvia il passo successivo. Ogni passo inizia quando lo switch che indica il completamento del passo precedente va ON. 00001 (SW1) SNXT(009) 12800 Processo A iniziato. STEP(008) 12800 Processo A 00002 (SW2) SNXT(009) 12801 Processo A ripristinato. Processo B iniziato. STEP(008) 12801 Processo B 00003 (SW3) SNXT(009) 12802 Processo B ripristinato. Processo C iniziato. STEP(008) 12802 Processo C 00004 (SW4) SNXT(009) 12803 Processo C ripristinato. STEP(008) Indirizzo Istruzione 00000 00001 00002 LD SNXT(009) STEP(008) Dati Indirizzo 00001 12800 12800 Processo A 00100 00101 00102 LD SNXT(009) STEP(008) 00002 12801 12801 Istruzione Dati Processo B 00100 00101 00102 LD SNXT(009) STEP(008) 00003 12802 12802 Processo C 00200 00201 00202 LD SNXT(009) STEP(008) 00004 12803 --- 315 Capitolo 5-25 Istruzioni di step Esempio 2: Esecuzione con diramazione Il seguente processo richiede che un prodotto sia elaborato in uno dei due modi, secondo il suo peso, prima di essere stampato. Il processo di stampa è uguale, indipendentemente dal primo processo utilizzato. I vari sensori sono posizionati in modo da segnalare quando i processi devono partire e terminare. Stampante SW D SW A2 SW A1 Processo A Processo B SW B1 SW B2 Peso Processo C Il diagramma seguente mostra il flusso di elaborazione e gli switch utilizzati per il controllo dell’esecuzione. Qui, viene utilizzato o il processo A o il processo B, secondo lo stato di SW A1 e SW B1. SW A1 Processo A SW A2 Processo C SW D Fine 316 SW B1 Processo B SW B2 Capitolo 5-25 Istruzioni di step Il programma per il processo mostrato sotto inizia con due istruzioni SNXT(009) che avviano i processi A e B. A secondo del modo in cui 00001 (SW A1) e 00002 (SB B1) sono programmati, sarà eseguita soltanto una delle due istruzioni per avviare o il processo A o il processo B. I due passi per questi processi terminano con un’istruzione SNXT(009) che avvia il passo per il processo C. 00001 (SW A1) 00002 (SW B1) SNXT(009) HR 0000 00001 (SW A1) 00002 (SW B1) SNXT(009) HR 0001 STEP(008) HR 0000 Processo A iniziato. Processo A 00003 (SW A2) SNXT(009) HR 0002 Processo A ripristinato. Processo C iniziato. STEP(008) HR 0001 Processo B 00004 (SW B2) SNXT(009) HR 0002 Processo B ripristinato. Processo C iniziato. STEP(008) HR 0002 Processo C 00005 (SW D) SNXT(009) HR 0003 Processo C ripristinato STEP(008) Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD AND NOT SNXT(009) LD NOT AND SNXT(009) STEP(008) Dati HR HR HR Indirizzo 00001 00002 0000 00001 00002 0001 0000 Istruzione Dati Processo B 00100 00101 00102 LD SNXT(009) STEP(008) HR HR 00004 0002 0002 Processo C Processo A 00100 00101 00102 LD SNXT(009) STEP(008) HR HR 00003 0002 0001 00200 00201 00202 LD SNXT(009) STEP(008) HR --- 00005 0003 317 Capitolo 5-25 Istruzioni di step Il seguente processo richiede che due componenti di un prodotto passino contemporaneamente attraverso due processi prima di essere riuniti in un quinto processo. I vari sensori sono posizionati in modo da segnalare quando i processi devono partire e terminare. Esempio 3: Esecuzione parallela SW1 Processo A SW3 SW5 SW7 Processo B Processo E Processo D Processo C SW2 SW4 SW6 Il diagramma seguente mostra il flusso di elaborazione e gli switch utilizzati per il controllo dell’esecuzione. Qui, il processo A e il processo C sono avviati contemporaneamente. Quando il processo A termina, inizia il processo B; quando il processo C termina, inizia il processo D. Quando i processi B e D terminano, inizia il processo E. SW 1 e SW2 ON Processo A Processo C SW3 Processo B SW4 Processo D SW5 e SW6 ON Processo E SW7 Fine Il programma per l’operazione riportata sotto inizia con due istruzioni SNXT(009) che avviano i processi A e C. Queste istruzioni si diramano dalla stessa riga circuitale e sono sempre eseguite insieme, avviando i passi per A e C. Quando i passi per A e C sono terminati, i passi per i processi B e D iniziano immediatamente. Quando il processo B e il processo D sono terminati (cioè quando lo stato di entrambi è ”ON”, ma SW5 e SW6 sono ON), i processi B e D sono ripristinati dall’istruzione SNXT(009) al termine della programmazione per il processo B. Sebbene non ci siano SNXT(009) al termine del processo D, il suo bit di controllo diventa OFF eseguendo SNXT(009) LR 0004. Il motivo è che OUT per LR 0003 è ripristinato da SNXT(009) LR 0004, cioè LR 003 è OFF quando viene eseguita SNXT(009) LR 0004, perciò, prima dell’esecuzione del passo per il processo E, il processo B è ripristinato direttamente e il processo D è ripristinato indirettamente . 318 Capitolo 5-25 Istruzioni di step 00001 (SW1 e SW2)) SNXT(009) LR 0000 Processo A iniziato. Processo C iniziato. SNXT(009) LR 0002 STEP(008) LR 0000 Processo A 00002 (SW3) SNXT(009) LR 0001 Processo A ripristinato. Processo B iniziato. STEP(008) LR 0001 Processo B LR 0003 LR 0003 Utilizzato per mandare OFF il processo D 00004 (SW5 e SW6) SNXT(009) LR 0004 Processo E iniziato. STEP(008) LR 0002 Processo C 00003 (SW4) SNXT(009) LR 0003 Processo C ripristinato. Processo D iniziato. STEP(008) LR 0003 Processo D STEP(008) LR 0004 Processo E 00005 (SW7) SNXT(009) LR 0005 Processo E ripristinato. STEP(008) 319 Capitolo 5-26 Istruzioni speciali Indirizzo Istruzione 00000 00001 00002 00003 LD SNXT(009) SNXT(009) STEP(008) Dati LR LR LR 00001 0000 0002 0000 LD SNXT(009) STEP(008) Istruzione 00204 STEP(008) 00300 00301 00302 LR LR Dati LR 0002 LR LR 00003 0003 0003 LR 0004 LR 00005 0005 --- Processo C Processo A 00100 00101 00102 Indirizzo 00002 0001 0001 LD SNXT(009) STEP(008) Processo D 00400 STEP(008) Processo B Processo E 00200 00201 00202 00203 LD OUT AND SNXT(009) LR LR 0003 LR 0003 00004 0004 00500 00501 00502 LD SNXT(009) STEP(008) 5-26 Istruzioni speciali Le istruzioni in questo capitolo sono utilizzate per varie operazioni, incluso la programmazione di codici e messaggi di errore utente, il conto dei bit ON, l’impostazione del watchdog timer e l’aggiornamento I/O durante l’esecuzione del programma. 5-26-1 FAILURE ALARM – FAL(006) e SEVERE FAILURE ALARM – FALS(007) Simboli per il diagramma a relè FAL(006) N @FAL(006) N Aree dati identificatore N: Numero di FAL # (da 00 a 99) N: Numero di FAL FALS(007) N # (da 01 a 99) Limitazioni FAL(006) e FALS(007) condividono gli stessi numeri FAL. Accertarsi di utilizzare un numero in FAL(006) o in FALS(007), ma non in entrambe. Descrizione FAL(006) e FALS(007) sono utilizzate per produrre numeri di errore relativi al funzionamento, alla manutenzione e al debugging. Quando sono eseguite con una condizione di esecuzione ON, una di queste istruzioni invierà un numero FAL ai bit 00... 07 di SR 253. Il numero FAL che è prodotto può essere compreso tra 01 e 99 ed è inserito come identificatore per FAL(006) o FALS(007). FAL(006) con un identificatore di 00 è utilizzata per ripristinare quest’area (vedi sotto). Area FAL 25307 25300 X101 320 X100 Capitolo 5-26 Istruzioni speciali FAL(006) produce un errore non fatale e FAL(007) produce un errore fatale. Quando FAL(006) è eseguita con una condizione di esecuzione ON, l’indicatore ALARM/ERROR sulla parte anteriore della CPU lampeggerà, ma il PLC continuerà a funzionare. Quando FALS(007) è eseguita con una condizione di esecuzione ON, l’indicatore ALARM/ERROR si accenderà e il funzionamento del PLC si interrompe. Il sistema genera inoltre i codici di errore nell’area FAL. Reset degli errori E’ possibile mantenere in memoria tutti i codici di errore FAL, sebbene soltanto uno di questi è disponibile nell’area FAL. Per accedere agli altri codici FAL, occorre resettare l’area FAL tramite l’istruzione FAL(006) 00. Ogni volta che FAL(006) 00 viene eseguita, un altro errore FAL sarà spostato nell’area FAL, eliminando quello già presente. I codici di errore FAL sono registrati e saranno richiamati nell’ordine: primo codice generato, numero di FAL più basso maggiore del primo codice, numero di FAL più basso minore del primo codice. Cancellazione dei messaggi FAL(006) 00 è utilizzata anche per cancellare il messaggio programmato con l’istruzione MSG(046). Se l’area FAL non può essere cancellata, come accade generalmente quando FALS(007) è eseguita, rimuovere prima la causa dell’errore e poi eliminare l’area FAL utilizzando la Console di Programmazione (fare riferimento a 4-6-5 Cancellazione messaggi di errore). 5-26-2 CYCLE TIME – SCAN(018) Aree dati operando Simboli per il diagramma a relè Mi: Moltiplicatore (BCD) IR, SR, AR, DM, HR, TC, LR, # SCAN(018) @SCAN(018) Mi Mi 000 000 000 000 000: Non utilizzato. 000: Non utilizzato. Limitazioni Mi deve essere in BCD. Sono utilizzati solo i tre digit più a destra di Mi. SCAN(018) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 018 ad un’altra istruzione di espansione. Descrizione SCAN(018) è utilizzata per impostare un tempo di scansione minimo. Mi è il tempo di scansione minimo che sarà impostato in decimi di millisecondi, cioè se Mi è 1200, il tempo di scansione minimo sarà 120,0 ms. La gamma di impostazione possibile è 000,0... 999,0 ms. Se il tempo di scansione corrente è minore del tempo di scansione impostato con SCAN(018), la CPU aspetterà fino a quando non trascorre il tempo previsto, prima di avviare la scansione successiva. Se il tempo di scansione corrente è maggiore del tempo impostato, il tempo impostato sarà ignorato e il programma sarà eseguito fino al completamento. Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Mi non è in BCD. 321 Capitolo 5-26 Istruzioni speciali 5-26-3 TRACE MEMORY SAMPLING – TRSM(045) Per facilitare il debugging dei programmi, può essere utilizzata la funzione di memorizzazione dei dati. Per impostare e rileggere i dati è necessario disporre di un sistema host sui cui è in esecuzione il programma LSS; non è possibile effettuare la memorizzazione dei dati partendo da una Console di Programmazione. Ulteriori riferimenti sono riportati nel Manuale Operativo LSS. Questo capitolo illustra il simbolo per il diagramma a relè per TRSM(045) e fornisce un programma esemplificativo. Simbolo per il diagramma a relè TRSM(045) Descrizione TRSM(045) è utilizzata nel programma per contrassegnare la posizione in cui un determinato dato deve essere memorizzato nella memoria della CPU. Possono essere definiti fino a 12 bit e fino a 3 canali (fare riferimento per i dettagli al Manuale Operativo LSS). TRSM(045) non è controllata da una condizione di eseguibilità, ma bensì da due bit contenuti nell’area AR: AR 2515 e AR 2514. AR 2515 è il bit di inizio campionatura. Questo bit viene commutato ad ON per far partire i processi di campionatura. Il bit di inizio campionatura non deve essere commutato ad ON dal programma, ma solo dal dispositivo periferico. AR 2514 è il bit di inizio memorizzazione. Quando è impostato, i dati specificati sono memorizzati nella relativa memoria. Il bit di inizio memorizzazione può essere impostato sia dal programma sia dal dispositivo di programmazione. Può anche essere impostato un ritardo positivo o negativo, per modificare il punto corrente da cui partirà la memorizzazione. I dati possono essere memorizzati in uno dei tre modi che seguono. TRSM(045) può essere sistemata in uno o più punti nel programma per indicare dove devono essere memorizzati i dati. Se TRSM(045) non è utilizzata, i dati saranno memorizzati quando l’istruzione END(001) viene eseguita. Il terzo metodo comprende l’impostazione di un intervallo del temporizzatore a partire dai dispositivi periferici, in modo che i dati specificati saranno memorizzati a intervalli regolari, indipendentemente dal tempo di scansione (fare riferimento al Manuale Operativo LSS). TRSM(045) può essere inserita dovunque nel programma, tutte le volte che si vuole. I dati presenti in memoria potranno poi essere monitorati mediante una Console di Programmazione, un sistema host, ecc. Bit e flag di controllo AR I bit di controllo e i flag che seguono sono utilizzati durante la memorizzazione dei dati. Il flag di Trace sarà ON durante le operazioni di memorizzazione. Il flag di Trace Completato sarà commutato ad ON quando saranno stati memorizzati dati a sufficienza da riempire la memoria di tracciatura. Flag Funzione AR 2515 Bit inizio campionatura AR 2514 Bit inizio memorizzazione AR 2513 Flag di Trace AR 2512 Flag Trace Completato Precauzioni Quando la condizione di salto è OFF, un’eventuale istruzione TRSM(045) non sarà eseguita tra JMP(008) – JME(009). Esempio L’esempio seguente illustra il programma di base e il funzionamento della memorizzazione dei dati. Forzare l’impostazione del bit di inizio campionatura (AR 2515) per iniziare la campionatura. Il bit di inizio campionatura non deve essere commutato ad ON dal programma. I dati sono letti e memorizzati nella memoria di tracciatura. 322 Capitolo 5-26 Istruzioni speciali Quando IR 00000 è ON, il bit di inizio memorizzazione (AR 2514) viene anch’esso commutato ad ON e la CPU considera il ritardo e contrassegna la memoria di tracciatura. Questo può significare che alcune campionature già fatte saranno memorizzate come memoria di tracciatura (ritardo negativo) oppure che più campionature verranno eseguite prima di essere memorizzate (ritardo positivo). I dati campionati sono registrati nella memoria di tracciatura, saltando all’inizio dell’area di memoria una volta che è stata raggiunta la fine e continuando fino al contrassegno di inizio. Questo potrebbe significare che i dati memorizzati precedentemente (cioè appartenenti a questa campionatura che cadono prima del contrassegno iniziale) vengono sostituiti (questo è particolarmente vero se il ritardo è positivo). Il ritardo negativo non può essere tale che i dati richiesti siano eseguiti prima che inizi la campionatura. 00000 AR 2514 TRSM(045) AR 2513 ON durante la tracciatura Istruzione 00000 00001 00002 00003 LD OUT TRSM(045) LD Dati Indirizzo AR 0000 2514 AR 2513 00004 00005 00006 Indica il punto di tracciatura. 00200 Indica che la tracciatura è in corso. 00201 Indica che la tracciatura è stata completata. AR 2512 ON quando la tracciatura è completa Indirizzo Inizio tracciatura dati. Istruzione OUT LD OUT Dati 00200 2512 00201 AR 5-26-4 MESSAGE DISPLAY – MSG(046) Simboli per il diagramma a relè MSG(046) @MSG(046) FM FM Aree dati operando FM: Canale primo messaggio IR, SR, AR, DM, HR, LR Limitazioni FM e FM+7 devono appartenere alla stessa area dati. Descrizione Quando è eseguita con una condizione di esecuzione ON, MSG(046) legge otto canali del codice ASCII esteso da FM a FM+7 e visualizza il messaggio sulla Console di Programmazione. Il messaggio visualizzato può essere lungo fino a 16 caratteri, cioè ogni codice di carattere ASCII richiede otto bit (due digit). Fare riferimento all’Appendice I per i codici ASCII estesi. I caratteri giapponesi katakana sono inclusi in questo codice. Se non tutti gli otto canali sono necessari per il messaggio, può essere interrotto in qualsiasi punto inserendo “0D.” Quando 0D si trova in un messaggio, non saranno letti altri canali e i canali normalmente utilizzati per il messaggio possono essere utilizzati per altri scopi. Priorità e accodamento dei messaggi Si possono accodare, in memoria, al massimo tre messaggi. L’ordine in cui sono memorizzati nel buffer determina l’ordine in cui verranno visualizzati: il primo memorizzato è anche il primo visualizzato. Se all’interno della stessa scansione vengono eseguite più di tre MSG(046), per la selezione dei messaggi da acco- 323 Capitolo 5-26 Istruzioni speciali dare esiste uno schema di priorità in base all’area in cui i messaggi sono memorizzati. La priorità di visualizzazione delle aree dati è la seguente: LR > IR > HR > AR > TC > DM > SR All’interno della stessa area dati, hanno priorità più alta quelle con indirizzo minore. Fra i messaggi indirizzati indirettamente (cioè DM), hanno priorità più alta quelle con indirizzo DM minore. Cancellazione dei messaggi La cancellazione dei messaggi può avvenire sia con l’istruzione FAL(006) 00, sia tramite la Console di Programmazione utilizzando la procedura riportata in 4-6-5 Cancellazione messaggi di errore. Se i dati del messaggio cambiano, anche la visualizzazione cambierà. Flag ER: Esempio L’esempio seguente mostra cosa appare sul display quando 00000 è ON. Se 00001 va ON, il messaggio viene cancellato. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 00000 Indirizzo Istruzione 00000 00001 LD MSG(046) 00002 00003 LD FAL(006) Dati MSG(046) DM 0010 00001 DM FAL(006) 00 Contenuto DM DM 0010 4 1 4 2 Equivalente ASCII A B DM 0011 4 3 4 4 C D DM 0012 4 5 4 6 E F DM 0013 4 7 4 8 G H DM 0014 4 9 4 A I J DM 0015 4 B 4 C K L DM 0016 4 D 4 E M N DM 0017 4 F 5 0 O P 00000 0010 00001 00 MSG ABCDEFGHIJKLMNOP 5-26-5 LONG MESSAGE – LMSG(047) Aree dati operando Simboli per il diagramma a relè S: Primo canale sorgente (ASCII) IR, SR, AR, DM, HR, TC, LR LMSG(047) @LMSG(047) S S --- --- --- --- - - -: Non utilizzato. Limitazioni 324 Impostato a 000 - - -: Non utilizzato. Impostato a 000 Da S a S+15 devono appartenere alla stessa area dati e devono essere in ASCII. Il messaggio sarà troncato se tra S e S+15 è contenuto un carattere nullo (0D). Capitolo 5-26 Istruzioni speciali LMSG(047) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 047 ad un’altra istruzione di espansione. Descrizione LMSG(047) è utilizzata per inviare un messaggio a 32 caratteri a una Console di Programmazione. Il messaggio da produrre deve essere in ASCII iniziando dal canale S e terminando in S+15, a meno che non si desideri un messaggio più breve. Si può produrre un messaggio più breve ponendo un carattere nullo (0D) nella stringa; non saranno prodotti altri caratteri a partire dal carattere nullo. Per inviare alla Console di Programmazione, questa deve essere in modalità TERMINAL. Anche se LMSG(047) viene eseguita normalmente, il messaggio non apparirà correttamente sulla Console di Programmazione, se non viene impostata la modalità TERMINAL. Fare riferimento a 5-26-6 TERMINAL MODE – TERM(048) per i dettagli sulla commutazione in modalità TERMINAL. Quando il pin 6 del commutatore DIP della CPU è OFF, la Console di Programmazione può passare alla modalità TERMINAL premendo il tasto CHG o eseguendo TERM(048) nel programma. Quando il pin 6 del commutatore DIP della CPU è ON, la Console di Programmazione può passare alla modalità TERMINAL di espansione, mandando a ON il bit AR 0709. Flag ER: S e S+15 non si trovano nella stessa area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Esempio Sebbene la visualizzazione è più lunga e c’è una scelta di dispositivi di uscita, la codifica per LMSG(047) è uguale a quella di MSG(046). Vedere nel paragrafo precedente Esempio per l’utilizzo di MSG(046). 5-26-6 TERMINAL MODE – TERM(048) Simboli per il diagramma a relè TERM(048) @TERM(048) 000 000 000 000 000 000 Limitazioni TERM(048) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 048 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, TERM(048) non è eseguita. Quando la condizione di esecuzione è ON, TERM(048) commuta la Console di Programmazione in modalità TERMINAL. (Le istruzioni MSG(046), LMSG(047) e la funzione di mappatura tastiera sono eseguite in modalità TERMINAL.) La Console di Programmazione ritornerà in modalità CONSOLE quando il tasto CHG viene premuto di nuovo. Non ci sono istruzioni che riportano la Console di Programmazione alla modalità CONSOLE dal programma. La Console di Programmazione può essere commutata in modalità TERMINAL premendo il tasto CHG prima di inserire la password o quando è visualizzata la modalità, a condizione che il pin 6 del commutatore DIP della CPU sia OFF. La Console di Programmazione ritornerà alla modalità CONSOLE premendo di nuovo il tasto CHG. Quando il pin 6 del commutatore DIP della CPU è ON, la Console di Programmazione può essere commutata in modalità TERMINAL di espansione, mandando ON il bit AR 0709. 325 Capitolo 5-26 Istruzioni speciali Esempio Nell’esempio seguente, TERM(048) è utilizzata per commutare la Console di Programmazione in modalità TERMINAL quando 00000 è ON. Accertarsi che il pin 6 del commutatore DIP della CPU sia OFF. 00000 Indirizzo Istruzione 00000 00001 LD TERM(048) Dati TERM(048) 000 000 00000 000 000 000 000 5-26-7 WATCHDOG TIMER REFRESH – WDT(094) Simboli per il diagramma a relè WDT(094) T @WDT(094) T Aree dati identificatore T: Valore watchdog timer # (da 00 a 63) Descrizione Quando la condizione di esecuzione è OFF, WDT(094) non è eseguita. Quando la condizione di esecuzione è ON, WDT(094) prolunga il tempo di monitoraggio scansione (watchdog timer) impostato in DM 6618 del setup del PLC. L’impostazione default è 120 ms. Estensione temporizzatore = 100 ms x T. Precauzioni Il tempo di monitoraggio scansione (impostazione watchdog timer) può essere impostato con il setup del PLC da 10 a 640 ms. L’istruzione WDT(094) può essere utilizzata anche per prolungare il tempo di monitoraggio scansione fino a un valore massimo di 640 ms, ma solo la porzione di scansione utilizzata per l’esecuzione dell’istruzione viene prolungata. WDT(094) può essere eseguita più di una volta in una scansione, ma il tempo di scansione non può essere prolungato per più di 640 ms in totale. Ogni estensione maggiore di 640 ms sarà ignorata. Un’altra istruzione WDT(094) non sarà eseguita se il tempo di scansione è già stato prolungato di 640 ms. I temporizzatori possono non funzionare correttamente quando il tempo di scansione supera 100 ms. Quando si utilizza WDT(094), lo stesso temporizzatore dovrebbe essere ripetuto nel programma a intervalli inferiori a 100 ms. TIMH(015) dovrebbe essere utilizzata soltanto in una routine ad interrupt programmata eseguita a intervalli di 10 ms o meno. Flag Non ci sono flag influenzati da questa istruzione. 5-26-8 I/O REFRESH – IORF(097) Simbolo per il diagramma a relè Aree dati operando St: Canale iniziale IORF(097) St IR 000... IR 049, IR 100... IR 199, SR 400... SR 450 E E: Canale finale IR 000... IR 049, IR 100... IR 199, SR 400... SR 450 Limitazioni 326 IORF(097) può essere utilizzata per aggiornare i canali I/O assegnati ai moduli di I/O, ai moduli di I/O speciali e ai moduli di ingresso ad interrupt installati nella CPU o su rack di espansione I/O. Capitolo 5-26 Istruzioni speciali Non può essere utilizzata per altri canali I/O, come i moduli di I/O su rack slave o i moduli di I/O ad alta densità gruppo 2. St deve essere inferiore o uguale a E. Descrizione Per aggiornare i canali I/O assegnati alla CPU o ai rack di espansione I/O (IR 000... IR 029 o IR 300... IR 309), indicare semplicemente il canale iniziale (St) e il canale finale (E) da aggiornare. Quando la condizione di esecuzione per IORF(097) è ON, tutti i canali che si trovano tra St ed E vengono aggiornati. Questa costituisce un’ulteriore operazione rispetto al normale aggiornamento I/O eseguito durante la scansione della CPU. Per aggiornare i canali I/O assegnati ai moduli di I/O speciali da 0 a 9 (IR 100... IR 199), indicare IR 040... IR 049. Questi canali IR sono utilizzati proprio per identificare il corrispondente modulo di I/O speciale; l’esecuzione di IORF(097) non avrà alcun effetto sul contenuto di IR 040... IR 049. Per esempio, impostare St su IR 043 ed E su IR 045 per aggiornare i canali I/O assegnati ai moduli di I/O speciali 3, 4 e 5. I canali I/O assegnati a tali moduli (IR 130... IR 159) saranno aggiornati quando IORF(097) viene eseguita. Questa costituisce un’ulteriore operazione rispetto al normale aggiornamento I/O eseguito durante la scansione della CPU. Per specificare un’area particolare a 10 canali dei moduli di I/O speciali (IR 100... IR 190 o IR 400... IR 450), inserire il primo canale dell’area a 10 canali. (L’ultimo digit del canale IR deve essere 0.) Fare riferimento a 5-26-9 GROUP–2 HIGH DENSITY I/O REFRESH – MPRF(061) per i dettagli sull’aggiornamento di canali assegnati ai moduli di I/O ad alta densità gruppo 2. Flag ER: St e/o E non rientrano nei campi di impostazione corretti. (000... 029, 040... 040, 100... 190, 300... 309 o 400... 450). St e E non rientrano nello stesso campo di impostazione. St è maggiore di E. 5-26-9 GROUP–2 HIGH – DENSITY I/O REFRESH - MPRF(061) Simboli per il diagramma a relè Aree dati operando St: Modulo iniziale MPRF(061) @MPRF(061) St St E E 000 000 da #0000 a #000F E: Modulo finale da #0000 a #000F 000: Impostato su 000. --- Limitazioni MPRF(061) può essere utilizzata solo per aggiornare i canali I/O assegnati ai moduli di I/O ad alta densità gruppo 2. Non può essere utilizzata per altri canali I/O. St ed E devono essere compresi tra #0000 e #000F. St deve essere inferiore o uguale a E. MPRF(061) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 061 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, MPRF(061) non è eseguita. Quando la condizione di esecuzione è ON, i canali I/O assegnati ai moduli di I/O ad alta densità gruppo 2 con i numeri di I/O da St a E saranno aggiornati. Questa costituisce un’ulteriore operazione rispetto al normale aggiornamento I/O eseguito durante la scansione della CPU. 327 Capitolo 5-26 Istruzioni speciali Non è possibile specificare i canali I/O con l’indirizzo, ma solo con il numero I/O del modulo cui sono assegnati. Tempo di esecuzione Il tempo di esecuzione per MPRF(061) è calcolato come segue: Istruzione tempo di esecuzione TMPRF = +∑ (tempi di aggiornamento I/O moduli di I/O ad alta densità gruppo 2 Fare riferimento a NO TAG Tempo di scansione per una tabella contenente i tempi di aggiornamento I/O per i moduli di I/O ad alta densità gruppo 2. Flag ER: St o E non è in BCD compreso tra #0000 e #000F. St è maggiore di E. 5-26-10 BIT COUNTER – BCNT(067) Simboli per il diagramma a relè Aree dati operando N: Numero di canali (BCD) BCNT(067) @BCNT(067) N N SB SB D D IR, SR, AR, DM, HR, TC, LR, # SB: Canale sorgente iniziale IR, SR, AR, DM, HR, TC, LR D: Canale risultato IR, SR, AR, DM, HR, TC, LR Limitazioni N deve essere in BCD compreso tra 0000 e 6656. Descrizione Quando la condizione di esecuzione è OFF, BCNT(067) non è eseguita. Quando la condizione di esecuzione è ON, BCNT(067) conta il numero totale di bit che sono ON in tutti i canali tra SB e SB+(N–1) e pone il risultato BCD in D. Flag ER: N non è in BCD o N è 0; SB e SB+(N–1) non si trovano nella stessa area. Il valore risultante dal conto supera 9999. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) ON quando il conto (N) supera il limite dell’area dati. EQ: ON quando il risultato è 0. 5-26-11 FRAME CHECKSUM – FCS(180) Simboli per il diagramma a relè FCS(180) @FCS(180) C C R1 R1 D D Aree dati operando C: Dati di controllo IR, SR, AR, DM, HR, LR, # R1: Primo canale della gamma IR, SR, AR, DM, HR, TC, LR D: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni 328 FCS(180) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 180 ad un’altra istruzione di espansione. Capitolo 5-26 Istruzioni speciali Descrizione FCS(180) può essere utilizzata per rilevare gli errori durante il trasferimento dati tra le porte di comunicazione. Quando la condizione di esecuzione è OFF, FCS(180) non è eseguita. Quando la condizione di esecuzione è ON, FCS(180) calcola l’FCS di controllo dei dati indicati eseguendo un OR esclusivo o dei contenuti dei canali R1... R1 +N–1 oppure dei byte dei canali R1... R1+N–1. Il valore dell’FCS (esadecimale) è poi convertito in ASCII e inviato ai canali risultato (D e D+1). La funzione dei bit in C è illustrata nel diagramma seguente e spiegata più dettagliatamente in seguito. C: 15 14 13 12 11 00 Numero di elementi nella gamma (N, BCD) Canali o byte da 001 a 999 Primo byte (quando il bit 13 è ON) 1 (ON): Primo a destra 0 (OFF): Primo a sinistra Non utilizzato. Impostato a zero. Unità di calcolo 1 (ON): Byte 0 (OFF): Canali Numero di elementi nella gamma Il numero di elementi nella gamma (N) è contenuto nei primi 3 digit a destra di C, che devono essere in BCD e compresi tra 001 e il 999. Unità di calcolo L’FCS sarà calcolato sui canali, se il bit 13 è OFF e sui byte se il bit 13 è ON. Se sono indicati i byte, la gamma potrà iniziare con il primo byte a sinistra o con il primo a destra di R1. Il primo byte a sinistra di R1 non verrà considerato se il bit 12 è ad ON. R1 R1+1 R1+2 R1+3 MSB 1 3 5 7 LSB 2 4 6 8 Quando il bit 12 è OFF, l’operazione di OR sarà applicata sui byte nell’ordine: 1, 2, 3, 4,.... Quando il bit 12 è ON, l’operazione di OR sarà applicata nell’ordine: 2, 3, 4, 5,.... Conversione in ASCII Il calcolo dell’FCS sui byte produce un valore esadecimale a 2 digit che viene convertito nell’equivalente valore ASCII a 4 digit. Il calcolo dell’FCS sui canali produce un valore esadecimale a 4 digit che è convertito nell’equivalente ASCII a 8 digit, come illustrato di seguito. FCS sui canali FCS sui byte 4a D Flag ER: 3 4 4 1 F10B D+1 4 6 3 1 D 3 0 4 2 Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Il numero degli elementi non è compreso tra 001 e 999 BCD. La gamma del calcolo supera l’area dati. 329 Capitolo 5-26 Istruzioni speciali Esempio Quando, nell’esempio seguente, IR 00000 è ON, l’FCS (0008) viene calcolata per gli 8 canali di DM 0000... DM 0007 e l’equivalente valore in ASCII (30 30 30 38) viene registrato in DM 0011 e DM 0010. 00000 @FCS(180) #0008 DM 0000 Indirizzo Istruzione 00000 00001 LD @FCS(180) Dati 00000 # DM DM DM 0010 DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 DM 0006 DM 0007 0008 0000 0010 Calcolo FCS 0001 0002 0003 0004 0005 0006 0007 0008 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 8 Conversione in codice ASCII DM 0011 3 0 3 0 DM 0010 3 0 3 8 5-26-12 FAILURE POINT DETECTION – FPD(269) Simboli per il diagramma a relè Aree dati operando C: Dati di controllo FPD(269) # C T: Tempo di monitoraggio (BCD) T D IR, SR, AR, DM, HR, TC. LR, # D: Primo canale registro IR, AR, DM, HR, LR Limitazioni D e D+8 devono appartenere alla stessa area dati quando il bit 15 di C è ON. C deve essere inserita come costante. FPD(269) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 269 ad un’altra istruzione di espansione. Descrizione FPD(269) può essere utilizzata nel programma tante volte quante è necessario, ma ogni volta deve utilizzare un diverso parametro D. Viene utilizzata per monitorare il tempo tra l’esecuzione di FPD(269) e l’esecuzione di una uscita a scopo diagnostico. Se viene superato il tempo T, viene generato un errore non fatale FAL(006) contrassegnato dal numero specificato in C. Nel diagramma seguente, le sezioni del programma evidenziate dalle linee tratteggiate possono essere scritte secondo le necessità del particolare programma applicativo. La sezione di programma lanciata da CY è facoltativa e può utilizzare qualsiasi istruzione tranne LD e LD NOT. Le istruzioni logiche di 330 Capitolo 5-26 Istruzioni speciali diagnostica e la condizione di esecuzione possono consistere di qualsiasi combinazione desiderata di contatti NC o NA. Condizione di esecuzione Diramazione FPD(269) C T D SR 25504 (Flag CY) Elaborazione dopo il rilevamento di un errore Istruzioni logiche di diagnostica Uscita diagnostica Quando la condizione di esecuzione è OFF, FPD(269) non è eseguita. Quando la condizione di esecuzione è ON, FPD(269) controlla il tempo fino al momento in cui la condizione logica di diagnostica diventa ON, commutando a ON l’uscita diagnostica. Se si supera il tempo T, si verificano i seguenti fatti: 1, 2, 3... Dati di controllo 1. Viene generato un errore FAL(006) abbinato al numero specificato nei primi due digit di C. Se è stato indicato 00, comunque, non viene generato un errore. 2. Le istruzioni logiche di diagnostica sono cercate per la prima condizione OFF in ingresso e questo indirizzo del bit di condizione è inviato ai canali risultato a partire da D. 3. Il flag CY (SR 25504) è commutato a ON. Si può eseguire, se si desidera, una sezione di programma per il trattamento dell’errore utilizzando tale flag. 4. Se il bit 15 di C è ON, può essere visualizzato sul dispositivo periferico un messaggio predefinito costituito da un massimo di 8 caratteri ASCII con l’indirizzo del bit ricordato al punto 2. Le funzioni dei bit di controllo dati in C sono illustrate nel diagramma seguente. C: 15 14 08 07 Non utilizzato. Impostato a zero. 00 Numero FAL (2 digit BCD, da 00 a 99) Uscita diagnostica 0 (OFF): Uscita del bit indirizzo (binario) 1 (ON): Uscita del bit indirizzo e del messaggio (ASCII) Se il tempo perché la condizione logica di diagnostica vada a ON supera T, le istruzioni logiche di diagnostica sono cercate per la condizione OFF in ingresso. Se più di una condizione di ingresso è OFF, viene selezionata la condizione di ingresso sulla riga circuitale più alta e più vicina alla barra di collegamento sinistra. Istruzioni logiche di diagnostica 00000 00002 00001 00003 Uscita diagnostica Quando IR 00000... IR 00003 sono ON, il contatto normalmente chiuso IR 00002 dovrebbe essere indicato come causa del mancato ON per l’uscita diagnostica. Uscita diagnostica Ci sono due modi per fornire l’indirizzo del bit della condizione rilevata ad OFF nella condizione logica di diagnostica. 1, 2, 3... 1. Uscita dell’indirizzo del bit (utilizzato quando il bit 15 di C è OFF). 331 Capitolo 5-26 Istruzioni speciali Il bit 15 di D indica se l’indirizzo del bit è o meno memorizzato in D+1. Se è memorizzato, il bit 14 di D indica se il contatto di ingresso è normalmente aperto o chiuso. D: 15 14 13 00 Non utilizzati. Contatto di ingresso 0 (OFF): Normalmente aperto 1 (ON): Normalmente chiuso Informazione indirizzo bit 0 (OFF): Non memorizzato in D+1. 1 (ON): Memorizzato in D+1. D+1 contiene il codice di indirizzo del bit della condizione di ingresso, come indicato sotto. Gli indirizzi dei canali, i numeri dei bit e i numeri TC sono in binario. Area d ti dati Stato bit D+1 15 14 13 12 11 10 09 IR, SR (vedi nota c) 1 0 0 0 Indirizzo del canale 08 07 06 05 04 Numero del bit 03 02 01 1 0 1 0 Indirizzo del canale Numero del bit HR 1 0 0 1 1 Indirizzo del canale Numero del bit LR 1 0 0 1 0 0 Indirizzo del canale Numero del bit TC* 1 0 0 1 0 1 * 00 Numero di temporizzatore o di contatore Note a) *Per l’area TC, il bit 09 di D+1 indica se il numero è un temporizzatore o un contatore. (0 = temporizzatore, 1 = contatore). b) Lo stato del bit più a sinistra del numero di bit (bit 03) è al contrario. c) Sebbene le stesse designazioni dell’indirizzo del canale siano utilizzate per le due gamme, il bit 13 è mandato a OFF per indicare IR 00000... SR 25515 e ON per indicare SR 25600... IR 51115 Esempio: se D+1 contiene 1000 0110 0100 1000, IR 10000 dovrebbe essere indicato come segue: 1000 0110 0100 1000 IR $64 = 100 Bit 00 (stato di inversione del bit 03) 2. Indirizzo del bit e uscita del messaggio (selezionati quando il bit 15 di C è ON). Il bit 15 di D indica se c’è l’indirizzo di un bit memorizzato da D+1 a D+3 oppure no. Se è memorizzato, il bit 14 di D indica se il contatto di ingresso è normalmente aperto o chiuso. Consultare la seguente tabella. I canali da D+5 a D+8 contengono informazioni in codice ASCII che sono visualizzate su un dispositivo periferico insieme all’indirizzo del bit, quando FPD(269) viene eseguita. I canali da D+5 a D+8 contengono il messaggio predefinito dall’utente come illustrato nella seguente tabella. 332 Capitolo 5-26 Istruzioni speciali Canale Bit da 15 a 08 Bit da 07 a 00 D+1 20 = spazio Primo carattere ASCII dell’indirizzo del bit D+2 Secondo carattere ASCII dell’indirizzo del bit Terzo carattere ASCII dell’indirizzo del bit D+3 Quarto carattere ASCII dell’indirizzo del bit Quinto carattere ASCII dell’indirizzo del bit D+4 2D = “–” “0”=normalmente aperto, “1”=normalmente chiuso D+5 Primo carattere ASCII del messaggio Secondo carattere ASCII del messaggio D+6 Terzo carattere ASCII del messaggio Quarto carattere ASCII del messaggio D+7 Quinto carattere ASCII del messaggio Sesto carattere ASCII del messaggio D+8 Settimo carattere ASCII del messaggio Ottavo carattere ASCII del messaggio Nota Se per il messaggio non sono necessari 8 caratteri, occorre inserire il carattere “0D” dopo l’ultimo carattere. Determinazione tempo di monitoraggio 1, 2, 3... Esempio La seguente procedura può essere utilizzata per impostare automaticamente il tempo di monitoraggio, T, in condizioni operative reali, quando per T si indica come operando un canale. Questa operazione non può essere utilizzata se per T è impostata una costante. 1. Commutare il PLC in funzionamento modalità MONITOR. 2. Collegare un dispositivo periferico, come una Console di Programmazione. 3. Utilizzare il dispositivo periferico per commutare ad ON il bit di controllo AR 2508. 4. Eseguire il programma con AR 2508 commutato ad ON. Se viene superato il tempo di monitoraggio contenuto in T, l’effettivo tempo di monitoraggio per 1,5 sarà memorizzato in T. Mentre AR 2508 è ON, non si verificherà nessun errore FAL(006). 5. Quando un valore accettabile è stato memorizzato in T, commutare AR 2508 ad OFF. Nell’esempio seguente, FPD(269) è impostata per visualizzare l’indirizzo del bit e il messaggio (“ABC”) quando si supera un tempo di monitoraggio di 123,4 s. SR 25315 MOV(021) Indirizzo Istruzione 00000 00001 LD MOV(021) Dati #4142 HR 15 SR 25315 MOV(021) #430D HR 16 00002 00003 FPD(269) #1234 00004 00005 LD FPD(269) HR 10 SR 25504 (Flag CY) INC(038) DM 0100 10000 10001 00006 00007 AND INC(038) 00008 00009 00010 00011 00012 00013 LD OR LD NOT OR NOT AND LD OUT 10002 LR 0015 10003 # HR 4142 15 25315 # HR LR 430d 16 0000 # # HR 8010 1234 10 25504 DM 0100 10000 10001 10002 10003 LR 0015 LD MOV(021) LR 0000 #8010 25315 333 Capitolo 5-26 Istruzioni speciali FPD(269) è eseguita e inizia il monitoraggio quando LR 0000 va ad ON. Se LR 0015 non va ad ON entro 123,4 secondi e da IR 10000 a IR 10003 sono tutti ad ON, IR 10002 sarà indicato come causa di errore, verrà generato un errore FAL(006) con il numero 10 e l’indirizzo del bit e il messaggio predefinito (“10002–1ABC”) saranno visualizzati sul dispositivo periferico. HR 10 HR 11 HR 12 HR 13 HR 14 HR 15 HR 16 HR 17 HR 18 0000 0000 0000 0000 0000 4142 430d 0000 0000 Flag HR 10 HR 11 HR 12 HR 13 HR 14 HR 15 HR 16 HR 17 HR 18 ER: C000 2031 3030 3032 2d31 4142 430d 0000 0000 Indica informazioni, contatto NC “1” “00” “02” “–1” “AB” “C”, e codice CR Gli ultimi due canali sono ignorati. (Visualizzati come spazi.) T non è in BCD. C non è una costante o i primi due digit a destra di C non sono in BCD da 00 a 99. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) CY: ON quando il tempo tra l’esecuzione di FPD(269) e l’esecuzione dell’uscita diagnostica supera T. 5-26-13 DATA SEARCH – SRCH(181) Simboli per il diagramma a relè Aree dati operando N: Numero di canali SRCH(181) @SRCH(181) N N R1 R1 C C IR, SR, AR, DM, HR, TC, LR, # R1: Primo canale nella gamma IR, SR, AR, DM, HR, TC, LR C: Dati di confronto, canale risultato IR, SR, AR, DM, HR, LR Limitazioni N deve essere in BCD compreso tra 0001 e 6656. R1 e R1+N–1 devono appartenere alla stessa area dati. SRCH(181) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 181 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, SRCH(181) non è eseguita. Quando la condizione di esecuzione è ON, SRCH(181) ricerca la gamma di memoria fra R1 e R1+N–1 per gli indirizzi che contengono i dati da confrontare in C. Se più di un indirizzo contiene il dato da confrontare, il flag EQ (SR 25506) è commutato a ON e l’indirizzo inferiore contenente il dato da confrontare è individuato in C+1. L’indirizzo viene identificato in modo diverso per l’area DM: 1, 2, 3... 334 1. Per un indirizzo nell’area DM, l’indirizzo del canale viene scritto in C+1. Per esempio, se l’indirizzo più basso contenente il dato da confrontare è DM 0114, allora #0114 viene scritto in C+1. 2. Per un indirizzo in un’altra area dati, il numero degli indirizzi a partire dall’inizio della ricerca viene scritto in C+1. Per esempio, se l’indirizzo inferiore Capitolo 5-26 Istruzioni speciali contenente il dato da confrontare è IR 114 e il primo canale nella gamma di ricerca è IR 014, allora #0100 viene scritto in C+1. Se nessuno degli indirizzi della gamma contiene il dato da confrontare, il flag EQ (SR 25506) viene commutato ad OFF e C+1 rimane invariato. Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) N non è in BCD e non è compreso tra 0001 e 6655. EQ: Esempio ON quando il confronto ha dato esito positivo all’interno della gamma. Nell’esempio seguente, nella gamma di 10 canali da DM 0010 a DM 0019 vengono ricercati gli indirizzi che contengono gli stessi dati di DM 0000 (#FFFF). Poiché DM 0012 contiene gli stessi dati, il flag EQ (SR 25506) è commutato a ON e #0012 è scritto in DM 0001. 00001 Indirizzo @SRCH(181) 00000 00001 #0010 DM 0010 Dati LD @SRCH(181) 00001 # DM DM DM 0000 DM 0010 DM 0011 DM 0012 DM 0013 DM 0014 DM 0015 DM 0016 DM 0017 DM 0018 DM 0019 Istruzione 0000 9898 FFFF 9797 AAAA 9595 1414 0000 0000 FFFF DM 0000 DM 0001 0010 0010 0000 FFFF 0012 5-26-14 EXPANSION DM READ – XDMR(280) Simboli per il diagramma a relè Aree dati operando N: Numero di canali XDMR(280) @XDMR(280) N N S S D D IR, SR, AR, DM, HR, TC, LR, # S: Primo canale DM di espansione IR, SR, AR, DM, HR, TC, LR, # D: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni N deve essere in BCD compreso tra 0001 e 3000. S deve essere in BCD compreso tra 7000 e 9999. S e S+N–1 devono appartenere alla stessa area dati, come D e D+N–1. XDMR(280) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 280 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, XDMR(280) non è eseguita. Quando la condizione di esecuzione è ON, XDMR(280) copia il contenuto dei canali DM di espansione da S a S+N–1 nei canali risultato da D a D+N–1. 335 Capitolo 5-26 Istruzioni speciali Precauzioni L’area DM di espansione deve essere impostata nel setup del PLC prima di essere utilizzata nella programmazione. Non superare la gamma impostata dell’area DM di espansione. L’esecuzione di XDMR(280) ha la priorità quando si verifica un’interruzione dell’alimentazione. Flag ER: I canali DM di espansione specificati non esistono. Controllare che i canali specificati sono stati assegnati all’area DM di espansione. Fare riferimento a NO TAG Assegnazione area UM per i dettagli. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) N non è in BCD compreso tra 0001 e 3000. S non è in BCD compreso tra 7000 e 9999. Esempio Nell’esempio seguente, la gamma di 100 canali DM 7000... DM 7099 viene copiata in DM 0010... DM 0109 quando IR 00001 è ON. 00001 Indirizzo @XDMR(280) 00000 00001 #0100 #7000 Istruzione Dati LD @XDMR(280) 00001 # # DM DM 0010 0100 7000 0010 DM 7000... DM 7099 DM 7000 DM 9999 DM 0010... DM 0109 DM 0000 DM 6143 5-26-15 INDIRECT EM ADDRESSING – IEMS(––) Simboli per il diagramma a relè IEMS(––) @IEMS(––) C C Aree dati operando C: Canale di controllo 000, #E000 o da #E0B1 a #E0B3 Limitazioni C deve essere 000, #E000, #E0B0, #E0B1 o #E0B2. IEMS(––) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare un numero di funzione a IEMS(––) al fine di utilizzare questa istruzione. Descrizione Con una condizione di esecuzione ON, IEMS(––) modifica la destinazione dell’indirizzamento DM indiretto (*DM) in DM o nel banco EM specificato. Anche il numero del banco EM corrente può essere modificato quando l’indirizzamento indiretto viene modificato in EM. 336 Capitolo 5-26 Istruzioni speciali La destinazione per *DM viene commutata nell’area DM all’inizio di una subroutine di interrupt. Viene inoltre riportata nell’area DM all’inizio di ogni scansione. La seguente tabella mostra i valori ammessi per C e le relative funzioni: C 000 #E000 #E0B0 #E0B1 : : #E0BF Funzionamento IEMS(––) Commuta la destinazione di *DM nell’area DM. Commuta la destinazione di *DM nel banco corrente nell’area EM. Commuta la destinazione di *DM nel banco 0 nell’area EM. Commuta la destinazione di *DM nel banco 1 nell’area EM. : : Commuta la destinazione di DM nel banco F nell’area EM. Il contenuto di DM 6031 indica la destinazione *DM corrente e il numero di banco EM corrente come illustrato nella seguente tabella. Canale DM 6031 Bit da 00 a 07 Numero banco EM corrente (00... 0F) Bit da 08 a 15 Destinazione *DM (00: DM; 01: EM) Nota Inserire 000 per il secondo e terzo operando quando si utilizzano le istruzioni di sostituzione. Flag ER: C non è uno dei valori ammessi. Esempio Nell’esempio seguente, IEMS(––) modifica la destinazione per *DM nel banco EM 1 e utilizza l’indirizzamento indiretto per spostare #1234 in EM 0001 nel banco EM 1. 00000 IEMS3 #EOBI MOV #1234 D0000 DM0000 0001 EM0000 0001 1234 5-26-16 SELECT EM BANK – EMBC(281) Simboli per il diagramma a relè EMBC(281) @EMBC(281) N N Aree dati operando N: Numero di banco IR, SR, AR, DM, HR, LR, # Limitazioni N deve essere 0000, 0001 o 0002 e il numero di banco specificato da N deve esistere nella CPU. Descrizione Con una condizione di esecuzione ON, EMBC(281) modifica il banco EM corrente nel numero di banco specificato. La CPU può accedere soltanto al banco corrente, indicato nei bit 00... 07 di DM 6031. Se il numero di banco specificato non esiste nella CPU, si verificherà un errore e EMBC(281) non sarà eseguita. 337 Capitolo 5-26 Istruzioni speciali Flag ER: Il contenuto di un canale che presenta un indirizzo indiretto non è in BCD oppure il limite dell’area DM/EM è stato superato. Il numero di banco specificato, N, non esiste nella CPU. Esempio Nell’esempio seguente, EMBC(281) modifica il banco corrente nel banco numero 2 quando IR 00000 è ON. 00000 EMBC #0002 00001 @EMBC #1005 5-26-17 PCMCIA CARD MACRO – CMCR(261) Simboli per il diagramma a relè Aree dati operando C: Primo canale di controllo CMCR(261) @CMCR(261) C C S S D D IR, SR, AR, DM, EM, HR, TC, LR, # S: Primo canale di comando IR, SR, AR, DM, EM, HR, TC, LR, # D: Canale risposta IR, SR, AR, DM, EM, HR, TC, LR Limitazioni DM 6144...DM 6655 non possono essere utilizzati per D. Descrizione Quando la condizione di esecuzione è OFF, CMCR(261) non viene eseguito. Quando la condizione di esecuzione è ON, CMCR(261) esegue un processo di macro che scrive, legge, confronta e ricerca la memoria della Scheda nel Modulo di interfaccia scheda PCMCIA. Quando CMCR(261) scrive i dati in un file del tipo separato da virgola, tale file può essere scritto interamente su un’unica riga. I file del tipo separati da virgola creati in un PC devono essere scritti in uno dei seguenti formati (non è importante se la virgola è in un byte separato.) 4 byte, virgola, 4 byte, virgola, 4 byte, virgola ...... 8 byte, virgola, 8 byte, virgola, 8 byte, virgola ...... Un file può essere aggiunto solo se nella scheda esiste spazio disponibile e i dati possono essere sovrascritti solo quando è stato specificato un offset accettabile. I campi di un file del tipo separato da virgola non devono essere racchiusi tra delimitatori, come ad esempio i punti esclamativi. 338 Istruzioni speciali Capitolo 5-26 Canali di controllo Scrivere i dati di controllo nel primo canale di controllo utilizzando il formato riportato nel seguente diagramma. Livello operativo (OFF=livello 0, ON=livello 1) Impostare su 1 per trasmettere i codici di controllo in C+1...C+7 nel Modulo scheda PLC. La funzione del numero della porta dipende dal processo specificato. Impostare il numero di processo (da 1 a 4, vedere di seguito). Word 0/1 Porta Numero di processo Codice di controllo Codice di controllo Codice di controllo Codice di controllo Codice di controllo Codice di controllo Codice di controllo Immettere l’unità e il nome (in ASCII) del file da scrivere, leggere, confrontare o ricercare. Accertarsi di inserire tutti e tre i caratteri dell’estensione del nome file. E’ possibile specificare le directory se queste sono state create. Lo slot 1 è l’unità “G:” e lo slot 2 è l’unità “H:”. Numero di processo Il numero di processo (da 1 a 4) determina quale funzione CMCR(261) verrà eseguita. Numero processo 1 Scrittura file 2 Lettura file 3 Confronto file con memoria Ricerca file 4 Impostazioni della porta Numero processo proce o Nome processo Funzione Scrive i dati dalla memoria del PLC al file specificato nella scheda del Modulo scheda PLC. Legge i dati dal file specificato nella scheda del Modulo scheda PLC alla memoria del PLC. Confronta il file specificato nella scheda del Modulo scheda PLC con i dati nella memoria del PLC. Ricerca il file specificato nella scheda del Modulo scheda PLC. Le impostazioni della porta (bit 8, 9 e 10) specificano i dettagli sulle operazioni CMCR(261) e il formato dei file sulla scheda PLC. Imopstazioni della porta Bit 8 OFF: Sovrascrive il file esistente. ON: Creare un nuovo file. Bit 9 OFF: Crea un file del tipo separato da virgola. ON: Crea un file binario. Bit 10 OFF: Virgola delimitatrice di un canale. ON: Virgola delimitatrice di due canali. 2 OFF: Legge il file specificato. ON: Legge il numero di elementi nel file specificato. OFF: Legge come un file del tipo separato da virgola. ON: Leggere come un file binario. OFF: Virgola delimitatrice di un canale. ON: Virgola delimitatrice di due canali. 3 --- OFF: Confronta come un file del tipo separato da virgola. ON: Confronta come un file binario. OFF: Virgola delimitatrice di un canale. ON: Virgola delimitatrice di due canali. 4 --- OFF: Ricerca come un file del tipo separato da virgola. ON: Ricerca come un file binario. OFF: Virgola delimitatrice di un canale. ON: Virgola delimitatrice di due canali. 1 339 Capitolo 5-26 Istruzioni speciali I canali di comando I canali di comando sono costituiti dalla lunghezza dati, dall’offset e dai dati dei comandi. Per la lunghezza dati, specificare la lunghezza dei dati dei comandi +1. La lunghezza massima dei dati di comando è 1.000. Lunghezza dati Offset Dati dei comandi Dati dei comandi Dati dei comandi Dati dei comandi Le impostazioni della lunghezza dati, dell’offset e dei dati dei comandi dipendono dal numero di processo specificato, come riportato nella seguente tabella. Numero processo 1 Lunghezza dati Offset Numero di canali di dati (BCD: da 1 a 1001) Numero di elementi dei dati di scrittura (da 0 a FFFF) Specifica il numero di canali per la virgola delimitatrice di un canale e per il valore binario. Specifica il numero di elementi per la virgola delimitatrice di due canali. 2 3 Sempre impostato su 0003. Numero di canali di dati (BCD: da 1 a 1001) Specifica 3 per la virgola delimitatrice di un canale e per il valore binario. Specifica 4 per la virgola delimitatrice di due canali. Note 340 Dati da scrivere nel file Max. 999 canali per la virgola delimitatrice di un canale e per il valore binario. Max. 998 canali (449 elementi) per la virgola delimitatrice di due canali. Numero di elementi dei dati di lettura (da 0 a FFFF) Specifica il numero di canali da leggere in esadecimale, da 1 a 3E7). Specifica il numero di canali per la virgola delimitatrice di un canale e per il valore binario. Specifica il numero di elementi per la virgola delimitatrice di due canali. Max. 999 ($3E7) canali per la virgola delimitatrice di un canale e per il valore binario. Max. 449 ($1F3) elementi per la virgola delimitatrice di due canali. Numero di elementi dei dati di confronto (da 0 a FFFF) Dati da confrontare. Specifica il numero di canali per la virgola delimitatrice di un canale e per il valore binario. Specifica il numero di elementi per la virgola delimitatrice di due canali. 4 Dati comandi Numero di elementi dei dati di ricerca (da 0 a FFFF) Specifica il numero di canali per la virgola delimitatrice di un canale. Specifica il numero di elementi per la virgola delimitatrice due canali. Max. 999 canali. per la virgola delimitatrice di un canale e per il valore binario. Max. 998 canali (449 elementi) per la virgola delimitatrice di due canali. Dati di ricerca Specifica un canale dei dati di ricerca per la virgola delimitatrice di un canale e il valore binario. Specifica due canali dei dati di ricerca per la virgola delimitatrice di due canali. 1. Quando viene specificato un offset di 0 per il numero di processo 1 e il file con lo stesso nome già esiste, il file esistente verrà cancellato e verrà creato un nuovo file. Se la lunghezza dei dati è stata impostata su 1 (nessun dato di scrittura), l’istruzione cancella il file esistente. Se l’offset è stato impostato su 1, i dati verranno aggiunti alla fine del file esistente. 2. Un file del tipo delimitato da una virgola è un file in cui viene inserito un carattere di byte, come ad esempio una virgola, dopo ogni 4 byte o 8 byte di dati. Si verificherà un errore (codice di terminazione 2) se esistono delimitatori di 2 byte, come ad esempio CR+LF. Successivamente sostituire questi delimitatori di 2 byte con delimitatori di 1 byte. Capitolo 5-26 Istruzioni speciali Dati di risposta I dati di risposta dipendono dal numero di processo specificato, come riportato nella seguente tabella. Numeroprocesso Dati di risposta 1 Nessuno 2 Contiene i dati letti dal file specificato. Quando viene letto il numero di elementi, questo è contenuto in valore esadecimale di due canali. Nessuno (il risultato del confronto viene restituito nel codice di terminazione). Quando i dati di ricerca vengono trovati nel file, la relativa ubicazione vine restituita come numero di canali o elementi di dati (da 0 a FFFF) dall’ubicazione offset. 3 4 Inizio del file: 0000 Secondo canale (elemento): 0001 Terzo canale (elemento): 0002 Bit SR e codice di terminazione Il codice di terminazione dell’istruzione viene emesso in SR 237 dopo l’esecuzione di CMCR(261). Anche, SR 252 contiene flag che indicano lo stato di completamento dell’istruzione (normale/errore) e lo stato di esecuzione dei livelli operativi 0 e 1. La seguente tabella riporta la funzione di questi bit. Canale Bit SR 237 da 00 a 07 da 08 a 15 SR 252 00 01 03 04 Funzione Area di uscita del codice di terminazione per il livello operativo 0 dopo l’esecuzione di CMCR(261). Area di uscita del codice di terminazione per il livello operativo 1 dopo l’esecuzione di CMCR(261). Flag di errore per il livello operativo 0 dopo l’esecuzione di CMCR(261) ON quando CMCR(261) può essere eseguito per il livello operativo 0 Flag di errore per il livello operativo 1 dopo l’esecuzione di CMCR(261) ON quando CMCR(261) può essere eseguito per il livello operativo 1 La seguente tabella riporta il significato dei codici di terminazione. Codice Flag Significato 00 Completamento normale 01 02 Errore di parametro, quale ad esempio as offset, dimensione file o numero di canali da leggere Disco pieno, errore di I/O file o di tipo file 03 Nessun file esistente specificato 04 Confronto o ricerca falliti da 05 a FE FF Non definito ER: Errore di nuemero di processo Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. DM 6144...DM 6655 è stato utilizzato per D. Il flag abilitato di esecuzione per il livello operativo specificato (SR 25201 o SR 25204) era OFF. Il livello operativo specificato non era 0 o 1. 341 Capitolo 5-26 Istruzioni speciali Impostando IR 00000 su OFF → ON → OFF, nel file G:\DMSAVE.DAT (Scheda di memoria, slot 1) vengono scritti 100 canali dei dati DM partendo da DM 0100. Le impostazioni dell’area DM sono riportate dopo il diagramma a relè. Esempio 00000 25201 S KEEP 00100 SR 25201: Flag abilitato di esecuzione per il livello operativo 0. R 00101 00100 @MOV(021) #0901 DM 0000 @CMCR(261) DM 0000 Livello operativo 0 File di scrittura (Crea un nuovo file.) (File del tipo con virgola delimitatrice di un canale) Esegue l’istruzione con il numero di processo 1. (File di scrittura) DM0098 000 00100 25200 IR 00300: Uscita quando si verifica un errore di esecuzione di CMCR(261). 00300 00100 25200 DFU(013)00101 IR 00101: Termina l’esecuzione di CMCR(261). DM 0000...DM 0007 contiene i dati di controllo e DM 0098...DM 0199 contiene i dati di comando, come riportato di seguito. Canale Funzione --- Dati di controllo DM 0001 47 3A ASCII: “G :” DM 0002 5C 44 ASCII: “\ D” DM 0003 4D 53 ASCII: “M S” DM 0004 41 56 ASCII: “A V” DM 0005 45 2E ASCII: “E .” DM 0006 44 41 ASCII: “D A” DM 0007 54 ASCII: “T” Canale Contenuto Funzione DM 0098 0102 Lunghezza dei dati di scrittura: 102 (esadecimale) DM 0099 0000 Offset: 0 DM 0100 --- Dati da scrivere : : DM 0199 342 Contenuto DM 0000 : : --- : : Dati da scrivere Capitolo 5-27 Istruzioni di rete 5-27 Istruzioni di rete Le istruzioni di rete sono utilizzate per comunicare con altri PLC, moduli BASIC o con sistemi host collegati mediante i sistemi SYSMAC NET, SYSMAC LINK o Ethernet. 5-27-1 NETWORK SEND – SEND(090) Simboli per il diagramma a relè Aree dati operando S: Canale sorgente iniziale SEND(090) @SEND(090) S S D D C C IR, SR, AR, DM, HR, TC, LR D: Canale risultato iniziale IR, SR, AR, DM, HR, TC, LR C: Primo canale dati di controllo IR, SR, AR, DM, HR, TC, LR Limitazioni Da C a C+2 devono appartenere alla stessa area dati e devono rientrare nei valori specificati sotto. Per poter utilizzare SEND(090), il sistema deve avere installato un SYSMAC NET, un modulo SYSMAC LINK o un modulo scheda PLC. Descrizione Quando la condizione di esecuzione è OFF, SEND(090) non è eseguita. Quando la condizione di esecuzione è ON, SEND(090) trasferisce i dati iniziando con il canale S, negli indirizzi specificati con D nel nodo designato sul sistema SYSMAC NET, SYSMAC LINK o Ethernet. I canali di controllo, iniziando con C, specificano il numero di canali da inviare, il nodo di destinazione e altri parametri. Il contenuto dei dati di controllo dipende da se una trasmissione viene inviata in un sistema SYSMAC NET, SYSMAC LINK o Ethernet. Lo stato del bit 15 di C+1 determina se l’istruzione è valida per un sistema SYSMAC NET o SYSMAC LINK/Ethernet. Dati di controllo Sistemi ETHERNET Impostare a 0 il numero del nodo di destinazione per inviare i dati a tutti i nodi. Fare riferimento al Manuale Operativo Modulo scheda PLC per i dettagli. Canale C C+1 C+2 Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 1000 in esadecimale a 4 digit, cioè da 0000hex a 03E8hex) Limite tempo di risposta (0,1 e Bit 08... 11: 25,5 secondi in incrementi di 0,1 s N. di ripetizioni (da 0 a 15 in esadecimale a 2 digit senza in esadecimale, virgola decimale, cioè da 01hex a cioè da 0hex a Fhex) FFhex) Bit 12: ON: Indirizzamento indiretto Default è 00hex (2,2 secondi) OFF: Indirizzamento diretto Bit 13 ON: Risposta non riportata. OFF: Risposta riportata. Bit 14 ON: Livello operativo 0 OFF: Livello operativo 1 Bit 15: Impostato a 1. Nodo di destinazione (da 0 a 127 Bit 08... 12: in esadecimale a 2 digit, cioè da Indirizzo modulo del nodo 00hex a 7Ehex)* di destinazione. Impostato a 00hex. Bit 13... 15: Impostato a 0. 343 Capitolo 5-27 Istruzioni di rete Sistemi SYSMAC NET Il numero della porta di destinazione è sempre impostato a 0. Impostare il numero del nodo di destinazione a 0 per inviare i dati a tutti i nodi. Impostare il numero di rete a 0 per inviare i dati a un nodo sullo stesso sottosistema (rete). Fare riferimento al Manuale di sistema SYSMAC NET per i dettagli. Canale C C+1 C+2 Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 1000 in esadecimale a 4 digit, cioè da 0000hex a 03E8hex) Numero di rete (da 0 a 127 in Bit 14 ON: Livello operativo 0 esadecimale a 2 digit, cioè da 00hex OFF: Livello operativo 1 a 7Fhex) Bit 08... 13 e 15: Impostati a 0. Nodo di destinazione (da 0 a 126 in Porta di destinazione esadecimale a 2 digit, cioè da 00hex NSB: 00 a 7Ehex)* NSU: 01/02 *Il numero di nodo del PLC che esegue l’invio può essere impostato. Sistemi SYSMAC LINK Impostare a 0 il numero del nodo di destinazione per inviare i dati a tutti i nodi. Fare riferimento al Manuale di sistema SYSMAC LINK per i dettagli. Canale C C+1 C+2 Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 1000 in esadecimale a 4 digit, cioè da 0000hex a 03E8hex) Limite tempo di risposta (0,1 e Bit 08... 11: 25,4 secondi in esadecimale a 2 N. di ripetizioni (da 0 a 15 digit senza virgola decimale, cioè in esadecimale, da 00hex a FFhex) cioè, da 0hex a Fhex) Bit 12: Impostato a 0. Nota: Il tempo di risposta sarà 2 Bit 13 ON: Risposta non riportata. secondi se il limite è impostato a OFF: Risposta riportata. 0hex. Non ci sarà limite di tempo Bit 14 ON: Livello operativo 0 se è impostato a FFhex OFF: Livello operativo 1 Bit 15: Impostato a 1. Nodo di destinazione (da 0 a 62 in esadecimale a 2 digit, cioè da 00hex a 3Ehex)* Impostato a 0. *Il numero di nodo del PLC che esegue l’invio non può essere impostato. Esempi Questo esempio si riferisce a un sistema SYSMAC NET. Quando 00000 è ON, il programma seguente trasferisce il contenuto di IR 001... IR 005 in LR 20... LR 24 sul nodo 10. 00000 Indirizzo Istruzione 00000 00001 LD SEND(090) Dati SEND(090) 001 LR 20 DM 0010 15 DM 0010 0 0 0 DM 0011 0 0 DM 0012 0 0 344 LR DM Nodo 10 0 00000 5 IR 001 LR 20 0 0 IR 002 LR 21 0 A IR 003 LR 22 IR 004 LR 23 IR 005 LR 24 001 20 0010 Capitolo 5-27 Istruzioni di rete Flag ER: Il numero di nodo specificato è maggiore di 126 in un sistema SYSMAC NET, maggiore di 62 in un sistema SYSMAC LINK o maggiore di 127 in un sistema Ethernet. I dati inviati superano i limiti dell’area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Non è presente SYSMAC NET/SYSMAC LINK/modulo scheda PLC. 5-27-2 NETWORK RECEIVE – RECV(098) Simboli per il diagramma a relè Aree dati operando S: Canale sorgente iniziale RECV(098) @RECV(098) S S D D C C IR, SR, AR, DM, HR, TC, LR D: Canale risultato iniziale IR, SR, AR, DM, HR, TC, LR C: Primo canale dati di controllo IR, SR, AR, DM, HR, TC, LR Limitazioni Da C a C+2 devono appartenere alla stessa area dati e devono rientrare nei valori specificati sotto. Per poter utilizzare RECV(098), il sistema deve avere installato un SYSMAC NET, un modulo SYSMAC LINK o modulo scheda PLC. Descrizione Quando la condizione di esecuzione è OFF, RECV(098) non è eseguita. Quando la condizione di esecuzione è ON, RECV(098) trasferisce i dati, iniziando con S, da un nodo su un sistema SYSMAC NET, SYSMAC LINK, Ethernet nei canali, iniziando con D. I canali di controllo, iniziando con C, forniscono il numero dei canali da ricevere, il nodo sorgente e altri parametri di trasferimento. Lo stato del bit 15 di C+1 determina se l’istruzione è valida per un sistema SYSMAC NET o SYSMAC LINK/Ethernet. Dati di controllo Sistemi ETHERNET Fare riferimento al Manuale Operativo Modulo scheda PLC per i dettagli. Canale C C+1 C+2 Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 1000 in esadecimale, cioè da 0000hex a 03E8hex) Limite tempo di risposta (0,1 e Bit 08... 11: 25,5 secondi in incrementi di 0,1 s N. di ripetizioni (da 0 a 15 in esadecimale a 2 digit senza in esadecimale, virgola decimale, cioè da 01hex a cioè, da 0hex a Fhex) FFhex) Bit 12: ON: Indirizzamento indiretto Default è 00hex (2,2 secondi) OFF: Indirizzamento diretto Bit 13 ON: Risposta non riportata. OFF: Risposta riportata. Bit 14 ON: Livello operativo 0 OFF: Livello operativo 1 Bit 15: Impostato a 1. Nodo sorgente (da 0 a 127 in Bit 08... 12: esadecimale a 2 digit, cioè da Indirizzo modulo del nodo 00hex a 7Ehex)* sorgente. Impostato a 00hex. Bit 13... 15: Impostato a 0. 345 Capitolo 5-27 Istruzioni di rete Sistemi SYSMAC NET Il numero della porta sorgente è sempre impostato a 0. Impostare il numero di rete su 0 per ricevere i dati in un nodo sullo stesso sottosistema (rete). Fare riferimento al Manuale di sistema SYSMAC NET per i dettagli. Canale C C+1 C+2 Sistemi SYSMAC LINK Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 1000 in esadecimale, cioè da 0000hex a 03E8hex) Numero di rete (da 0 a 127 in Bit 14 ON: Livello operativo 0 esadecimale, cioè da 00hex a OFF: Livello operativo 1 7Fhex) Bit 08... 13 e 15: Impostato a 0. Nodo sorgente (da 1 a 126 in Porta sorgente esadecimale a 2 digit, cioè da 01hex NSB: 00 a 7Ehex) NSU: 01/02 Fare riferimento al Manuale di sistema SYSMAC LINK per i dettagli. Canale C C+1 C+2 Esempi Bit da 00 a 07 Bit da 08 a 15 Numero di canali (da 0 a 256 in esadecimale a 4 digit, cioè da 0000hex a 0100hex) Limite tempo di risposta (0,1 e Bit 08... 11: 25,4 secondi in esadecimale a 2 N. di ripetizioni (da 0 digit senza virgola decimale, cioè a 15 in esadecimale, da 00hex a FFhex) cioè da 0hex a Fhex) Nota: Il tempo di risposta sarà 2 Bit 12: Impostato a 0. Bit 13: Impostato a 0. secondi se il limite è impostato a Bit 14 ON: Livello operativo 0 0hex. Non ci sarà limite di tempo OFF: Livello operativo 1 se è impostato a FFhex. Bit 15: Impostato a 1. Nodo sorgente (da 0 a 62 in Impostato a 0. esadecimale, cioè da 00hex a 3Ehex) Questo esempio si riferisce a un sistema SYSMAC NET. Quando 00000 è ON, il programma seguente trasferisce il contenuto di IR 001... IR 005 in LR 20... LR 24 sul nodo 10. 00000 Indirizzo Istruzione 00000 00001 LD RECV(098) Dati RECV(098) 001 LR 20 DM 0010 15 LR DM 001 20 0010 Nodo 10 0 DM 0010 0 0 0 5 IR 001 LR 20 DM 0011 0 0 0 0 IR 002 LR 21 DM 0012 0 0 0 A IR 003 LR 22 IR 004 LR 23 IR 005 LR 24 Flag 00000 ER: Il numero di nodo specificato è maggiore di 126 in un sistema SYSMAC NET, maggiore di 62 in un sistema SYSMAC LINK o maggiore di 127 in un sistema Ethernet. I dati ricevuti superano i limiti dell’area dati. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Non è presente SYSMAC NET/SYSMAC LINK/modulo scheda PLC. 346 Capitolo 5-27 Istruzioni di rete 5-27-3 Comunicazione di rete SEND(090) e RECV(098) si basano sull’elaborazione comando/risposta. La trasmissione non è completa quindi fino a quando il nodo di invio riceve e riconosce una risposta proveniente dal nodo di destinazione. Si osservi che il flag di abilitazione SEND(090)/RECV(098) non è commutato a ON fino a quando non è completata la prima END(001) al termine della trasmissione. Fare riferimento al Manuale di sistema SYSMAC NET o al Manuale di sistema SYSMAC LINK per i dettagli relativi alle operazioni comando/risposta. Se sono utilizzate più operazioni SEND(090)/RECV(098), devono essere usati i seguenti flag per controllare che ogni operazione precedente sia terminata prima di tentare ulteriori operazioni di invio/ricezione SEND(090)/RECV(098). Flag SR Flag di abilitazione SEND(090)/RECV(098) (SR 25201, SR 25204) Flag di errore SEND(090)/RECV(098) (SR 25200, SR 25203) Funzioni OFF durante l’esecuzione SEND(090)/RECV(098) (incluso elaborazione comando risposta). Non avviare un’operazione SEND(090)/RECV(098) se questo flag non è ON. OFF dopo il completamento normale di SEND/RECV (cioè dopo la ricezione del segnale dI risposta) ON dopo un tentativo di SEND(090)/RECV(098) fallito. Lo stato di errore viene conservato fino alla successiva operazione SEND(090)/RECV(098). Tipi di errore: Errore time–out (tempo comando/risposta maggiore di 1 secondo) Errori trasmissione dati Temporizzazione Esecuzione invio/ricezione riuscita Errore invio/ricezione Istruzione ricevuta Trasmissione completata normalmente Istruzione Errore di ricevuta trasmissione Istruzione ricevuta Elaborazione dati per SEND(090)/RECV(098) Quando SEND(090)/RECV(098) è eseguita, iI dati sono trasmessi per SEND(090) e RECV(098) per tutti i PLC. L’elaborazione finale per le trasmissioni/ricezioni viene eseguita durante la manutenzione dei dispositivi periferici e dei moduli di comunicazione. Esempio di programmazione: SEND(090)/RECV(098) multipli Per garantire operazioni SEND(090)/RECV(098) con esito positivo, il programma deve utilizzare i flag di abilitazione SEND(090)/RECV(098) e i flag di errore SEND(090)/RECV(098) per confermare che l’esecuzione è possibile. Il programma seguente mostra come ottenere questo scopo per un sistema SYSMAC NET. 347 Capitolo 5-27 Istruzioni di rete 00000 25204 12802 Flag di abilitazione SEND(090)/RECV(098) S KEEP(011) 12801 12800 R 12800 impedisce l’esecuzione di SEND(090) fino a quando RECV(098) (sotto) non è completata. IR 00000 è ON per avviare la trasmissione. 12800 @MOV(021) #000A DM 0000 @MOV(021) #0000 DM 0001 @MOV(021) #0003 DM 0002 I dati sono posti nei canali dati di controllo per specificare i 10 canali da trasmettere al nodo 3 nel livello operativo 1 della rete 00 (NSB). XFER(070) #0010 000 DM 0010 @SEND(090) DM 0010 DM 0020 DM 0000 Flag di errore SEND(090)/RECV(098) 12800 25203 00200 12800 25204 DIFU(013) 00001 25204 12801 KEEP(011) 12803 12802 R 25204 Ripristina 12800, sopra. 12800 S 12802 ON per indicare un errore di trasmissione. 25203 12802 impedisce l’esecuzione di RECV(098) quando SEND(090) (sopra) non è terminata. IR 00001 è ON per avviare la trasmissione. XFER(070) I dati trasmessi sono stati trasferiti nei canali iniziando da DM 0030, per essere memorizzati. #0016 000 DM 0030 12802 @MOV(021) #0010 DM 0003 @MOV(021) #0000 DM 0004 I dati sono stati trasferiti nei canali dati di controllo per indicare i 16 canali da trasmettere dal nodo 126 nel livello operativo 1 di rete 00 (NSB). @MOV(021) #007E DM 0005 @RECV(098) HR 10 LR 10 Flag di errore SEND(090)/RECV(098) 12802 DM 0003 25203 00201 12802 25204 DIFU(013) 348 ON per indicare un errore di ricezione. 12803 Ripristina 12802, sopra. Capitolo 5-28 Istruzioni per la comunicazione seriale Indirizzo Istruzione 00000 00001 00002 00003 00004 00005 00006 LD AND AND NOT LD KEEP(011) LD @MOV(021) 00007 00008 00009 Dati 00000 25204 12802 12801 12800 12800 # DM 000a 0000 # DM 0000 0001 # DM 0003 00002 00019 00020 00021 00022 00023 00024 00025 AND NOT LD KEEP(011) LD AND AND NOT XFER(070) Dati 12800 12803 12802 12802 25204 25203 # DM 00026 00027 LD @MOV(021) @MOV(021) 00028 0010 000 0002 00029 LD AND OUT LD AND DIFU(013) LD AND 0010 0020 0000 12800 25203 00200 12800 25204 12801 00001 25204 00030 00031 00032 00033 00034 00035 00036 # DM 0010 0003 # DM 0000 0004 # DM 007e 0005 HR LR DM 10 10 0003 12802 25203 00201 12802 25204 12803 @MOV(021) @SEND(090) DM DM DM 0016 000 0030 12802 @MOV(021) @XFER(070) DM 00011 00012 00013 00014 00015 00016 00017 00018 Istruzione @MOV(021) # 00010 Indirizzo @RECV(098) LD AND OUT LD AND DIFU(013) 5-28 Istruzioni per la comunicazione seriale 5-28-1 RECEIVE – RXD(235) Simboli per il diagramma a relè Aree dati operando D: Primo canale risultato RXD(235) @RXD(235) D D C C N N IR, SR, AR, DM, HR, TC, LR C: Canale di controllo IR, SR, AR, DM, HR, TC, LR, # N: Numero di byte IR, SR, AR, DM, HR, TC, LR, # Limitazioni D e D+(N ÷2)–1 devono appartenere alla stessa area dati. N deve essere in BCD compreso tra #0000 e #0256. RXD(235) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 235 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, RXD(235) non è eseguita. Quando la condizione di esecuzione è ON, RXD(235) legge N byte di dati ricevuti alla porta periferiche, e poi scrive questi dati nei canali da D a D+(N ÷2)–1. Possono essere letti fino a 256 byte di dati in una sola volta. Se i byte ricevuti sono meno di N, sarà letto il numero di dati ricevuti. 349 Capitolo 5-28 Istruzioni per la comunicazione seriale Nota RXD(235) è necessaria solo per ricevere i dati attraverso la porta periferiche o la porta RS–232C. La trasmissione inviata da un sistema host a un modulo Host Link è elaborata automaticamente e non deve essere programmata. ! Attenzione Canale di controllo Numero di digit: Il PLC non potrà ricevere altri dati una volta che sono stati ricevuti 256 byte, fino a che i dati ricevuti non saranno letti utilizzando RXD(235). E’ bene leggere i dati il più presto possibile dopo che il flag Ricezione completa è stato commutato ad ON (SR 26414 per la porta periferiche, SR26406 per la porta RS–232C). Il valore del canale di controllo determina la porta attraverso cui saranno letti i dati e l’ordine in cui i dati saranno scritti in memoria. 3 2 1 0 Ordine dei byte 0: Per primo il byte più significativo 1: Per primo il byte meno significativo Monitoraggio segnale CTS e DSR 0: Non monitorare i segnali CTS e DSR. 1: Monitorare il segnale CTS. (uscita al bit 15 di D.) 2: Monitorare il segnale DSR. (uscita al bit 15 di D.) 3: Monitorare i segnali CTS e DSR. (uscita ai bit 15 e 14 di D.) Porta di ricezione ausiliaria (quando DR–15 è 0.) 0: Porta RS–232C interna 1: Porta di comunicazione A 2: Porta di comunicazione B Porta 0: Porta RS–232C 1: Porta periferiche L’ordine in cui i dati sono scritti in memoria dipende dal valore del digit 0 di C. Gli otto byte del dato 12345678.. saranno scritti nel modo seguente: Digit 0 = 0 D D+1 D+2 D+3 Flag ER: MSB 1 3 5 7 Digit 0 = 1 LSB 2 4 6 8 D D+1 D+2 D+3 MSB 2 4 6 8 LSB 1 3 5 7 La CPU non è dotata di porta RS232–C. Un altro dispositivo non è collegato alla porta specificata. C’è un errore nelle impostazioni di comunicazione (setup del PLC) oppure nell’impostazione degli operandi. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) I canali risultato (da D a D+(N ÷2)–1) superano l’area dati. Porta periferica 26414: SR 26414 verrà commutato ad ON quando i dati sono ricevuti normalmente alla porta periferica e saranno ripristinati quando i dati saranno letti eseguendo RXD(235). 266: SR 266 contiene il numero di byte ricevuti alla porta periferica ed è riportato a 0000 quando è eseguita RXD(235). Porta RS–232C 350 Capitolo 5-28 Istruzioni per la comunicazione seriale 26406: SR 26406 verrà commutato ad ON quando i dati sono ricevuti normalmente alla porta periferiche e saranno ripristinati quando i dati saranno letti eseguendo RXD(235). 265: SR 265 contiene il numero di byte ricevuti alla porta RS–232C ed è riportato a 0000 quando è eseguita RXD(235). Nota I flag di comunicazione ed i contatori possono essere riportati alle condizioni iniziali specificando 0000 per N oppure utilizzando i bit di Reset porta (SR 25208 per la porta periferiche e SR 25209 per la porta RS–232C). 5-28-2 TRANSMIT – TXD(236) Simboli per il diagramma a relè Aree dati operando S: Primo canale sorgente TXD(236) @TXD(236) S S C C N N IR, SR, AR, DM, HR, TC, LR C: Canale di controllo IR, SR, AR, DM, HR, TC, LR, # N: Numero di byte IR, SR, AR, DM, HR, TC, LR, # Limitazioni S e S+(N ÷2)–1 devono appartenere alla stessa area dati. N deve essere in BCD compreso tra #0000 e #0256. (Da #0000 a #0061 in modalità Host Link) TXD(236) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 236 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, TXD(236) non è eseguita. Quando la condizione di esecuzione è ON, TXD(236) legge N byte di dati dai canali compresi fra S e S+(N ÷2)–1, li converte in ASCII e li emette dalla porta specificata. TXD(236) funziona in modo diverso in modalità Host Link e RS–232C, perciò i due modi sono descritti separatamente. Nota I seguenti flag saranno ON per indicare che la comunicazione è possibile attraverso le varie porte. Accertarsi che il flag corrispondente sia ON prima di eseguire TXD(236). SR 26405: SR 26413: SR 26705: SR 26713: Porta RS–232C Porta periferiche Modulo Host Link #0 Modulo Host Link #1 351 Capitolo 5-28 Istruzioni per la comunicazione seriale Modalità Host Link N deve essere in BCD da #0000 a #0061 (cioè fino a 122 byte in ASCII). Il valore del canale di controllo determina la porta da cui i dati saranno emessi, come illustrato di seguito. Numero di digit: 3 2 1 0 Ordine dei byte 0: Per primo il byte più significativo 1: per primo il byte meno significativo Monitoraggio segnale CTS e DSR 0: Non monitorare i segnali CTS e DSR. 1: Monitorare il segnale CTS. (uscita al bit 15 di D.) 2: Monitorare il segnale DSR. (uscita al bit 15 di D.) 3: Monitorare i segnali CTS e DSR. (uscita ai bit 15 e 14 di D.) Porta di ricezione ausiliaria (quando DR–15 è 0.) 0: Porta RS–232C interna 1: Porta di comunicazione A 2: Porta di comunicazione B Porta 0: Porta RS–232C 1: Porta periferiche 2: Specifica il modulo Host Link #0 3: Specifica il modulo Host Link #1 Il numero di byte indicato sarà letto da S a S+(N/2)–1, convertito in ASCII e trasmesso attraverso la porta specificata. I byte dei dati sorgenti illustrati di seguito saranno trasmessi in questo ordine: 12345678.. S S+1 S+2 S+3 MSB 1 3 5 7 LSB 2 4 6 8 Il diagramma seguente mostra il formato per il comando Host Link (TXD) inviato dal PLC. Secondo le impostazioni, il C200 HX/HG/HE e il C200HS applicano automaticamente prefissi e suffissi, come il numero del nodo, il codice comando e l’FCS. X X X X Numero del Codice comando nodo (EX) Modalità RS–232C 352 X X ......... Dati (122 caratteri ASCII max.) X X X FCS ∗ CR Terminatore N deve essere in BCD compreso fra #0000 e #0256. Il valore del canale di controllo determina la porta da cui i dati saranno emessi e l’ordine in cui i dati saranno scritti in memoria. Capitolo 5-28 Istruzioni per la comunicazione seriale Canale di controllo Numero di digit: Il valore del canale di controllo determina la porta da cui i dati saranno letti e l’ordine in cui i dati saranno scritti in memoria. 3 2 1 0 Ordine dei byte 0: Per primo il byte più significativo 1: Per primo il byte meno significativo Monitoraggio segnale CTS e DSR 0: Non monitorare i segnali CTS e DSR. 1: Monitorare il segnale CTS. (uscita al bit 15 di D.) 2: Monitorare il segnale DSR. (uscita al bit 15 di D.) 3: Monitorare i segnali CTS e DSR. (uscita ai bit 15 e 14 di D.) Porta di ricezione ausiliaria 0: Porta RS–232C interna 1: Porta di comunicazione A 2: Porta di comunicazione B Porta 0: Porta RS–232C 1: Porta periferiche Il numero specificato di byte sarà letto fra S e S+(NP2)–1 e trasmesso attraverso la porta specificata. S S+1 S+2 S+3 MSB 1 3 5 7 LSB 2 4 6 8 Quando il digit 0 di C è 0, i byte dei dati sorgente mostrati sopra saranno trasmessi in questo ordine: 12345678.. Quando il digit 0 di C è 1, i byte dei dati sorgente mostrati sopra saranno trasmessi in questo ordine: 21436587.. Nota Quando i codici di inizio e fine sono specificati, la lunghezza totale dei dati dovrebbe essere max. 256 byte, incluso i codici di inizio e fine. Flag ER: Un altro dispositivo non è collegato alla porta periferiche. C’è un errore nelle impostazioni di comunicazione (setup del PLC) oppure nell’impostazione degli operandi. Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) I canali sorgente (da S a S+(N ÷2)–1) superano l’area dati. 26405: Flag di abilitazione comunicazione porta RS–232C 26413: Flag di abilitazione comunicazione porta periferiche 26705: Flag di abilitazione comunicazione modulo Host Link #0 26713: Flag di abilitazione comunicazione modulo Host Link #1 353 Capitolo 5-28 Istruzioni per la comunicazione seriale 5-28-3 CHANGE RS–232C SETUP - STUP(237) Aree dati operando Simboli per il diagramma a relè N: Specificatore porta RS–232C STUP(237) @STUP(237) N N S S IR 000, IR 001 o IR 002 S: Primo canale sorgente IR, SR, AR, DM, HR, TC, LR, # Limitazioni N deve essere IR 000, IR 001 o IR 002. S e S+4 devono appartenere alla stessa area dati. (S può essere impostato a #0000 per riportare le impostazioni RS–232C ai valori default.) STUP(237) non può essere eseguita per la porta RS–232C interna se il pin 2 del commutatore DIP è ON. STUP(237) non può essere eseguita all’interno di una subroutine di interrupt. Descrizione Quando la condizione di esecuzione è OFF, STUP(237) non è eseguita. Quando la condizione di esecuzione è ON, STUP(237) modifica le impostazioni del setup del PLC per la porta specificata da N. N determina quale parte del setup di RS–232C viene modificata. N Porta specificata IR 000 Porta RS–232C incorporata (setup del PLC: DM 6645... DM 6649) IR 001 Porta A scheda di comunicazione (setup del PLC: DM 6555... DM 6559) IR 002 Porta B scheda di comunicazione (setup del PLC: DM 6550... DM 6554) Se S è un indirizzo di canale, il contenuto da S a S+4 viene copiato nei 5 canali nel setup del PLC contenenti le impostazioni per la porta specificata da N. Se S è inserito come costante #0000, le impostazioni per la porta specificata sono riportate ai valori default. Esempio di applicazione S Funzione Indirizzo canale Costante (#0000) Il contenuto da S a S+4 viene copiato nella parte del setup del PLC contenente le impostazioni per la porta specificata da N. Le impostazioni per la porta specificata da N sono riportate ai valori default. Questo esempio mostra un programma che trasferisce il contenuto di DM 0100... DM 0104 all’area di setup del PLC per la porta A scheda di comunicazione (DM 6555... DM 6569). 00000 Indirizzo Istruzione Dati @STUP(237) 001 DM 0100 00000 00001 LD @STUP(237) 00000 DM 354 001 0100 Capitolo 5-28 Istruzioni per la comunicazione seriale Le impostazioni sono trasferite come sotto illustrato. Il flag di Modifica setup RS–232C (SR 27504) andrà ON al termine del trasferimento. DM 0100 1001 DM 6555 1001 DM 0101 0803 DM 6556 0803 DM 0102 0000 DM 6557 0000 DM 0103 2000 DM 6558 2000 DM 0104 0000 DM 6559 0000 La seguente tabella mostra la funzione dei dati di setup trasferiti. Canale Flag Contento Funzione DM 0100 1001 DM 0101 0803 Abilita le impostazioni di comunicazione in DM 0101 e imposta la modalità di comunicazione su RS–232C. Imposta i seguenti parametri di comunicazione: 9.600 bps, 1 bit di start, dati a 8 bit, 1 bit di stop, nessuna parità DM 0102 0000 Nessun ritardo di trasmissione (0 ms) DM 0103 2000 Abilita il codice di errore CR, LF. DM 0104 0000 --- ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) Lo specificatore porta (N) non è IR 000, IR 001 o IR 002. La porta A è stata specificata, ma il pin 2 del commutatore DIP è ON. Il setup del PLC è protetto in scrittura. (Pin 1 del commutatore DIP ON.) I canali sorgente specificati superano l’area dati. L’istruzione è stata eseguita da un programma di interrupt. 5-28-4 PROTOCOL MACRO – PMCR(260) Simboli per il diagramma a relè Aree dati operando C: Canale di controllo PMCR(260) @PMCR(260) C C S S D D IR, SR, AR, DM, HR, TC, LR, # S: Primo canale di uscita IR, SR, AR, DM, HR, TC, LR, # D: Primo canale di ingresso IR, SR, AR, DM, HR, TC, LR Limitazioni C deve essere in BCD compreso fra #1000 e #2999. L’area da DM 6144 a DM 6655 non può essere utilizzata per D. Descrizione Quando la condizione di esecuzione è OFF, PMCR(260) non è eseguita. Quando la condizione di esecuzione è ON, PMCR(260) richiama ed esegue la sequenza di comunicazione specificata (dati di protocollo) che è stata registrata nella scheda di comunicazione installata nel PLC. Il messaggio di invio/ricezione per la sequenza di comunicazione registrata nella scheda di comunicazione deve essere impostato per leggere o scrivere i dati del canale di scrittura quando DM non è specificato per S e D. Utilizzare una costante quando non è necessario impostare un canale per il primo canale di uscita. 355 Capitolo 5-29 Istruzioni I/O avanzate Quando la sequenza di comunicazione non richiede un canale di ingresso, specificare comunque un indirizzo di canale. I dati non saranno memorizzati nel canale specificato e il contenuto del canale sarà memorizzato. Quando la sequenza di comunicazione richiede canali di ingresso, occorre specificare i canali che non sono utilizzati per altri scopi nel programma. I canali di ingresso e di uscita (S e D) possono essere impostati anche nella sequenza di comunicazione registrata nella scheda di comunicazione. Nota Fare riferimento al Manuale Operativo scheda di comunicazione per i dettagli sulle schede di comunicazione e al Manuale Operativo software protocollo per i dettagli sulle sequenze di comunicazione. Canale di controllo Il primo digit del canale di controllo (1 o 2) specifica che la porta della scheda di comunicazione e gli ultimi tre digit specificano la sequenza di comunicazione (000... 999), come illustrato nel diagramma seguente. C: I digit da 2 a 4: Numero sequenza di comunicazione (000... 999) Digit 1: Specificatore porta 1: Porta di comunicazione A 2: Porta di comunicazione B Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) D non è in BCD o l’area da DM 6144 a DM 6655 è stata usata per D. Un’altra istruzione PMCR(260) era già in corso quando l’istruzione è stata eseguita. Lo specificatore porta non era 1 o 2. Esempio Quando IR 00000 è ON e SR 28908 (flag di esecuzione istruzione porta A scheda di comunicazione) è OFF, la sequenza di comunicazione 100 viene richiamata nella scheda di comunicazione e i dati sono trasferiti attraverso la porta A scheda di comunicazione. I dati inviati sono letti dalla gamma di canali iniziando con DM 0000 (il primo canale di uscita) e i dati di ricezione sono memorizzati nella gamma di canali iniziando con DM 0010 (primo canale di ingresso). 00000 28908 PMCR(260) #1100 DM0000 DM0010 Indirizzo Istruzione 00200 00201 00202 LD AND NOT PMCR(260) Dati 00000 28908 # DM DM 1100 0000 0010 5-29 Istruzioni I/O avanzate Le istruzioni I/O avanzate permettono il controllo, con un’unica istruzione, delle operazioni complesse precedenti, coinvolgendo dispositivi I/O esterni (commutatori digitali, display a 7 segmenti, ecc.). 356 Capitolo 5-29 Istruzioni I/O avanzate Ci sono cinque istruzioni I/O avanzate, come mostrato nella seguente tabella. Sono tutte istruzioni estese e devono essere assegnate ai codici funzione prima di essere utilizzate. Nome Codice mnemonico 7–SEGMENT DISPLAY OUTPUT 7SEG(210) DIGITAL SWITCH INPUT DSW(211) HEXADECIMAL KEY INPUT HKY(212) TEN–KEY INPUT TKY(213) MATRIX INPUT MTR(214) Funzione Uscita BCD al display a 7 segmenti Ingresso dati da commutatore digitale Ingresso esadecimale da tastierina a 16 tasti Ingresso BCD da tastierina a 10 tasti Ingresso dati da matrice 8 x 8 Sebbene TKY(211) sia utilizzata soltanto per semplificare la programmazione, le altre istruzioni I/O avanzate possono essere utilizzate per abbreviare il tempo di scansione, ridurre la necessità di moduli di I/O speciali e il costo del sistema. Ad eccezione di TKY(211), comunque, le istruzioni I/O avanzate possono essere utilizzate solo una volta nel programma e non possono essere utilizzate per i moduli di I/O installati su rack slave, dove vanno utilizzati moduli di I/O speciali. 5-29-1 DIGITAL SWITCH INPUT – DSW(210) Simboli per il diagramma a relè Aree dati operando IW: Canale di ingresso DSW(210) IR, SR, AR, DM, HR, LR IW OW: Canale di uscita OW R IR, SR, AR, DM, HR, LR R: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni DSW(210) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 210 ad un’altra istruzione di espansione. Descrizione DSW(210) è utilizzata per leggere il valore impostato su un commutatore digitale collegato a moduli di I/O. Quando la condizione di esecuzione è OFF, DSW(210) non è eseguita. Quando la condizione di esecuzione è ON, DSW(210) legge il valore a 8 digit impostato sul commutatore digitale a partire da IW e pone il risultato in R. Il valore a 8 digit è posto in R e R+1, con i digit più significativi in R+1. DSW(210) legge il valore a 8 digit in 20 esecuzioni, quindi inizia e continua a leggere i dati. Il commutatore digitale deve fornire quattro linee per i dati e una linea per segnale latch e deve leggere la linea dei segnali per ogni digit inserito. Precauzioni Il rinfresco I/O deve essere eseguito per tutti i punti di I/O usati da DSW(210) ogni volta che viene eseguita, per garantire un funzionamento efficace. L’istruzione I/O REFRESH deve essere perciò utilizzata con DSW(210), quando DSW(210) è utilizzata in una subroutine, affinché i punti di I/O siano aggiornati ad ogni esecuzione. Vedere a pagina 366 per un esempio di questo tipo di programmazione. DSW(210) sarà eseguita dalla prima scansione ogni volta che l’esecuzione del programma è avviata, anche in caso di riavvio dopo interruzione dell’alimentazione. 357 Capitolo 5-29 Istruzioni I/O avanzate Non utilizzare DSW(210) più di due volte nel programma. DSW(210) non può essere utilizzata per i moduli di I/O installati su rack slave. Nota I bit di ingresso e di uscita non utilizzati qui possono essere utilizzati come bit di ingresso e di uscita comuni. Hardware Con questa istruzione, i valori impostati BCD a 8 digit sono letti da un commutatore digitale. DSW(210) utilizza 5 bit di uscita e 8 bit di ingresso. Collegare il commutatore digitale e i moduli di ingresso e di uscita come illustrato nel diagramma seguente. Il punto di uscita 5 sarà commutato ad ON quando viene letto un ciclo di dati, ma non è necessario collegare il punto di uscita 5 a meno che non sia richiesto dall’applicazione. ID212 1 3 5 7 9 11 13 15 COM 0 2 4 6 8 10 12 14 Modulo di ingresso D0 D1 D2 D3 D0 D1 D2 D3 CS 0 CS 1 CS 2 CS 3 RD 3 5 7 9 11 13 15 COM 358 D0 D1 D2 D3 D0 D1 D2 D3 CS 0 CS 1 CS 2 CS 3 RD Digit più a destra linea dati A7E A7E Digit più a sinistra linea dati A7E Digit più a sinistra Digit più a destra Per selezione chip A7E Per terminale A7E RD COM Nota Per collegare un commutatore digitale A7E, è necessaria un’interfaccia per la conversione dei segnali da 5 V a 24 V. OD212 1 Interfaccia 0 2 4 6 8 10 12 14 COM Modulo di uscita Capitolo 5-29 Istruzioni I/O avanzate L’esempio seguente mostra i collegamenti per un commutatore contraves A7B. ID212 Modulo di ingresso 0 1 2 3 4 5 6 7 8 9 Commutatore contraves A7B 10 11 12 8 4 2 1 13 14 OD212 15 COM COM Comm. n. 8 7 6 5 4 3 2 1 C 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Modulo di uscita 15 C.C. COM Nota Il segnale di lettura dati non è necessario nell’esempio. Gli ingressi devono essere collegati a un modulo di ingresso C.C. con almeno 8 punti di ingresso e le uscite devono essere collegate da un modulo di uscita a transistor con almeno 8 punti di uscita. Utilizzo dell’istruzione Se il canale di ingresso per il collegamento del commutatore digitale è specificato per il canale A e il canale di uscita è specificato per il canale B, il funzionamento procederà come sotto illustrato quando il programma è in esecuzione. IW Quattro digit: da 00 a 03 100 Otto digit: da 00 a 03, da 04 a 07 Wd 0 101 102 103 Dati di ingresso 4 digit più a sinistra D+1 4 digit più a destra D 00 Quando sono letti soltanto 4 digit, è utilizzato solo il canale D. Segnale CS 01 02 03 04 Segnale RD (lettura) 05 Flag Ciclo 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 16 scansioni per completare un ciclo di esecuzione 359 Istruzioni I/O avanzate Capitolo 5-29 Esempio di applicazione Questo esempio mostra un programma per la lettura di 8 digit in BCD dal commutatore digitale. Si presuppone che il commutatore digitale sia collegato a IR 000 (ingresso) e a IR 100 (uscita). 00015 10005 05000 05000 05000 DSW 000 100 HR51 10005 @MOV(021) HR51 DM0000 Quando IR 00015 va ON, IR 05000 si manterrà ON fino a quando il flag Ciclo (IR 10005) va ON al termine di un ciclo di lettura mediante DSW(210). Il set di dati dal commutatore digitale mediante DSW(210) è memorizzato in HR 51. Quando il flag Ciclo (10005) va ON al termine della lettura, il numero memorizzato in HR 51 viene trasferito in DM 0000. Flag ER: Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. R e R+1 non sono nella stessa area dati. 25410: ON mentre DSW(210) è in esecuzione. 5-29-2 TEN KEY INPUT – TKY(211) Simboli per il diagramma a relè Aree dati operando IW: Canale di ingresso TKY(211) IR, SR, AR, DM, HR, LR IW D1: Primo canale registro D1 D2 IR, SR, AR, DM, HR, LR D2: Canale tasto in ingresso IR, SR, AR, DM, HR, LR Limitazioni D 1 e D devono appartenere alla stessa area dati. TKY(211) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 211 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, TKY(211) non è eseguita. Quando la condizione di esecuzione è ON, TKY(211) inserisce i dati da una tastierina a dieci tasti collegata all’ingresso indicato con IW. I dati sono inseriti in due modi: TKY(211) può essere utilizzata nelle vari locazioni nel programma modificando il canale di ingresso, IW. 1, 2, 3... 360 1. Viene creato un registro a scorrimento a 8 digit in D1 e D1+1. Quando si preme un tasto sulla tastierina numerica, il corrispondente digit BCD scorre nel digit meno significativo di D1. Gli altri digit di D1, D1+1 scorrono a sinistra e il digit più significativo di D1+1 viene perduto. Capitolo 5-29 Istruzioni I/O avanzate 2. I primi dieci bit di D2 indicano il tasto in ingresso. Quando uno dei tasti della tastierina (da 0 a 9) viene premuto, il corrispondente bit di D2 (da 00 a 09) viene commutato ad ON. Note Hardware 1. Quando uno dei tasti viene premuto, l’ingresso da altri tasti sarà disabilitato. 2. Se sono inseriti più di otto digit, i digit saranno cancellati iniziando dal digit più a sinistra. 3. I bit di ingresso non utilizzati possono essere utilizzati come bit di ingresso comuni. Questa istruzione inserisce 8 digit in BCD da una tastierina a 10 tasti e utilizza 10 punti di ingresso. Occorre preparare una tastierina a 10 tasti e collegarla in modo che i commutatori per i tasti numerici da 0 a 9 siano inseriti nei punti da 0 a 9, come indicato nel diagramma seguente. Possono essere utilizzati gli ingressi su un modulo di ingresso C.C. con almeno 16 punti di ingresso. ID212 0 0 1 2 3 4 5 6 7 8 9 10 9 11 12 13 10 tasti 14 15 COM COM 0V Modulo di ingresso c.c. Utilizzo dell’istruzione Se per IW è specificato il canale di ingresso per il collegamento alla tastierina a 10 tasti, il funzionamento procederà come sotto illustrato quando il programma è in esecuzione. IW D1 D 1+1 00 Prima dell’esecuzione 0 01 02 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Ingresso da 10 tasti a (1) 0 09 Tasto in ingresso “1” D2 (2) 0 0 0 0 0 0 (3) 0 0 0 0 0 1 00 01 ON i flag corrispondenti agli inserimenti con 10 tasti (i flag restano ON fino all’ingresso successivo.) 02 a 1 0 Tasto in ingresso “0” 0 2 Tasto in ingresso “2” 09 (4) 0 0 0 0 1 0 2 9 ON se viene premuto un tasto. 10 (1) (2) (3) (4) Tasto in ingresso “9” 361 Capitolo 5-29 Istruzioni I/O avanzate Flag ER: Il contenuto di un canale che presenta un indirizzo indiretto DM/EM non è in BCD o il limite dell’area DM/EM non è stato superato. D1 e D non si trovano nella stessa area dati. Esempio In questo esempio, viene illustrato un programma per l’inserimento dei numeri con i 10 tasti. Si presuppone che i 10 tasti siano collegati a IR 000. 25313 (sempre ON) TKY(211) 000 DM1000 DM1002 00015 @XFER(070) #0002 DM1000 DM 0000 Le informazioni dei 10 tasti inserite in IR 000 mediante TKY(211) sono convertite in BCD e memorizzate in DM 1000 e DM 1001. Le informazioni sui tasti sono memorizzate in DM 1002. IR 00015 è utilizzato come il “tasto ENTER” e quando IR 00015 va ON, i dati memorizzati in DM 1000 e DM 1001 sono trasferiti in DM 0000 e DM 0001. 5-29-3 HEXADECIMAL KEY INPUT – HKY(212) Simboli per il diagramma a relè Aree dati operando IW: Canale di ingresso HKY(212) IR, SR, AR, DM, HR, LR IW OW: Canale di uscita segnale di controllo OW D IR, SR, AR, DM, HR, LR D: Primo canale registro IR, SR, AR, DM, HR, LR Limitazioni D e D+2 devono appartenere alla stessa area dati. HKY(212) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 212 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, HKY(212) non è eseguita. Quando la condizione di esecuzione è ON, HKY(212) inserisce i dati da una tastierina esadecimale collegata all’ingresso indicato con IW. I dati sono inseriti in due modi: 1, 2, 3... Note 362 1. Viene creato un registro a scorrimento a 8 digit in D e D+1. Quando viene premuto un tasto sulla tastierina esadecimale, il corrispondente digit esadecimale viene fatto scorrere nel digit meno significativo di D. Gli altri digit di D, D+1 scorrono verso sinistra e il digit più significativo di D+1 viene perduto. 2. I bit di D+2 e il bit 4 di OW indicano il tasto in ingresso. Quando uno dei tasti sulla tastierina (da 0 a F) viene premuto, il corrispondente bit in D+2 (da 00 a 15) e il bit 4 di OW sono commutati ad ON. 1. Quando uno dei tasti sulla tastierina viene premuto, l’ingresso da altri tasti è disabilitato. 2. I bit di ingresso e di uscita non utilizzati qui possono essere utilizzati come bit di ingresso e di uscita comuni. Capitolo 5-29 Istruzioni I/O avanzate Con questa istruzione, un inserimento viene letto in un periodo tra le 4 e le 13 scansioni. E’ necessaria più di una scansione, perché i tasti ON possono essere determinati solo quando le uscite sono mandate ad ON per esaminarli. Il dispositivo di ingresso tasti esadecimali deve essere collegabile in una matrice 4 x 4. Precauzioni Il rinfresco I/O deve essere eseguito per tutti i punti di I/O utilizzati da HKY(212) ogni volta che viene eseguita, per garantire un funzionamento efficace. L’istruzione I/O REFRESH deve essere perciò utilizzata con HKY(212), quando HKY(212) è utilizzata in una subroutine, affinché i punti di I/O siano aggiornati ad ogni esecuzione. Vedere a pagina 366 per un esempio di questo tipo di programmazione. HKY(212) sarà eseguita dalla prima scansione ogni volta che l’esecuzione del programma è avviata, anche in caso di riavvio dopo interruzione dell’alimentazione. Non utilizzare HKY(212) più di due volte nel programma. HKY(212) non può essere utilizzata per i moduli di I/O installati su rack slave. Hardware Questa istruzione inserisce 8 digit esadecimali da una tastiera esadecimale. Utilizza 5 bit di uscita e 4 bit di ingresso. Occorre preparare la tastiera esadecimale e collegare i commutatori numerici da 0 a F, come sotto indicato, per i punti di ingresso da 0 a 3 e per i punti di uscita da 0 a 3. Il punto di uscita 4 sarà commutato a ON premendo qualsiasi tasto, ma non è necessario per il collegamento, a meno che non sia richiesto dall’applicazione. Modulo di uscita OD212 C D E F 8 9 A B 0 1 2 3 4 5 6 7 4 5 0 1 2 3 6 7 ID212 8 9 0 1 10 11 2 3 4 5 12 13 14 15 6 7 COM COM 8 9 10 11 12 13 14 15 COM COM Modulo di ingresso Gli ingressi collegati ai terminali di ingresso devono trovarsi su un modulo di ingresso C.C. con almeno 8 punti di ingresso e le uscite collegate ai terminali di uscita devono essere su un modulo di uscita a transistor con almeno 8 punti. 363 Capitolo 5-29 Istruzioni I/O avanzate Utilizzo dell’istruzione Se il canale di ingresso per il collegamento della tastiera esadecimale è specificato nel canale A e il canale di uscita è specificato nel canale B, l’operazione procederà come sotto illustrato quando il programma è in esecuzione. IW 00 01 02 03 16 tasti 0 a 9 a F Segnali di controllo selezione a 16 tasti Stato di 16 tasti D+2 00 a 09 a 15 OW 04 ON i flag corrispondenti ai tasti di ingresso (i flag restano ON fino all’ingresso successivo.) ON per un periodo di 12 scansioni se è premuto un tasto. 0 1 2 3 4 5 6 7 8 9 101112 Una volta per 12 scansioni Flag 0000 0000 0000 000f 0000 00f9 D+1 D D+1 D D+1 D ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) D e D+2 non sono nella stessa area dati. SR 25408: Esempio ON mentre HKY(212) è in esecuzione. Questo esempio mostra un programma per l’inserimento di numeri da una tastiera esadecimale. Si presuppone che la tastiera esadecimale sia collegata a IR 000 (ingresso) e a IR 100 (uscita). 25313 (Always ON) HKY(212) 000 100 DM1000 00015 @XFER(070) #0002 DM1000 DM0000 Le informazioni dei tasti esadecimali inseriti in IR 000 mediante HKY(212) sono convertite in esadecimale e memorizzate nei canali DM1000 e DM1001. IR 00015 è utilizzato come il “tasto ENTER” e quando IR 00015 va ON, i numeri memorizzati in DM 1000 e DM 1001 sono trasferiti in DM 0000 e DM 0001. 364 Capitolo 5-29 Istruzioni I/O avanzate 5-29-4 MATRIX INPUT – MTR(213) Simboli per il diagramma a relè Aree dati operando IW: Canale di ingresso MTR(213) IR, SR, AR, DM, HR, LR IW OW: Canale di uscita OW IR, SR, AR, DM, HR, LR D D: Primo canale risultato IR, SR, AR, DM, HR, LR Limitazioni D e D+3 devono appartenere alla stessa area dati. Descrizione Quando la condizione di esecuzione è OFF, MTR(213) non è eseguita. Quando la condizione di esecuzione è ON, MTR(213) inserisce i dati da una matrice 8 x 8 e registra tali dati da D a D+3. I dati per tutti i 64 punti nella matrice saranno registrati anche quando sono collegati meno di 64 tasti. 00 01 Bit OW da 00 a 07 (per le uscite dei moduli di uscita da 00 a 07) 02 03 04 05 06 07 Il bit 08 è commutato a ON per indicare che è stata letta tutta la matrice. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 08 00 01 02 03 04 05 06 07 Bit IW da 00 a 07 (per gli ingressi dei moduli di ingresso da 00 a 07) I dati dei tasti in ingresso sono trasferiti in D... D+3 (vedi tabella sotto). Un segnale di selezione è inviato ai bit OW da 00 a 07 consecutivamente per 3 scansioni. Soltanto un bit di uscita alla volta sarà commutato ad ON. Il bit 08 di OW è commutato ad ON per 3 scansioni dopo 07 per indicare quando viene completato ogni ciclo di lettura matrice. Quando è premuto uno dei 64 tasti, verrà ricevuto un ingresso in uno dei bit di ingresso. Il tasto premuto viene identificato confrontando il bit di uscita a cui è stato inviato il segnale e il bit di ingresso in cui è stato ricevuto. Quando viene individuato un tasto in ingresso, il corrispondente bit in D... D+3 è commutato ad ON. La seguente tabella mostra la corrispondenza di tasti e bit in D... D+3. Canale Bit Tasti corrispondenti D 00... 15 0... 15 D+1 00... 15 16... 31 D+2 00... 15 32... 47 D+3 00... 15 48... 63 365 Capitolo 5-29 Istruzioni I/O avanzate Hardware Questa istruzione inserisce fino a 64 segnali da una matrice 8 x 8 utilizzando 8 punti di ingresso e 8 punti di uscita. Può essere utilizzata qualsiasi matrice 8 x 8. Gli ingressi devono essere collegati mediante un modulo di ingresso C.C. con almeno 8 punti e le uscite devono essere collegate mediante un modulo di uscita a transistor con almeno 8 punti. I diagrammi di base dei collegamenti elettrici e della temporizzazione per MTR(213) sono illustrati sotto. Cablaggio Ottava fila Settima fila A8 A7 A6 A5 Ä Â À Á A0 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 Prima fila A9 A8 A7 A6 A5 Ä Â À Á A0 Modulo di I/O ID 211 Schema temporizzazione 00 01 02 03 04 05 06 07 00 32 64 00 32 64 06 Segnale selezione matrice Stato della matrice Bit che indicano lo stato di ingresso Flag Ciclo (bit 08 del canale di uscita) Ogni ciclo completato in 24 esecuzioni Precauzioni I 64 tasti si possono suddividere in 8 file (incluso una fila per il bit OW 08) che sono esplorati consecutivamente. Poiché ogni fila è esplorata per 3 scansioni, si può verificare un ritardo fino a 25 scansioni prima che una data fila di tasti sia esplorata per gli ingressi. Il rinfresco I/O deve essere eseguito per tutti i punti di I/O utilizzati da MTR(213) ogni volta che viene eseguita, per garantire un funzionamento efficace. L’istruzione I/O REFRESH deve essere perciò utilizzata con MTR(213) quando MTR(213) è utilizzata in una subroutine, affinché i punti di I/O siano aggiornati ad ogni esecuzione. MTR(213) sarà eseguita dalla prima scansione ogni volta che l’esecuzione del programma è avviata, anche in caso di riavvio dopo interruzione dell’alimentazione. SR 25403, che è mandato ON mentre MTR(213) viene eseguita, è ripristinato in una sezione di programma interbloccata e MTR(213) non viene eseguita in una sezione di programma interbloccata. Non utilizzare MTR(213) più di due volte nel programma. MTR(213) non può essere utilizzata per i moduli di I/O installati su rack slave. Esempio L’esempio che segue mostra la programmazione di MTR(213) in una subroutine programmata, dove IORF(097) è programmata per garantire che i canali di I/O 366 Capitolo 5-29 Istruzioni I/O avanzate utilizzati con MTR(213) siano aggiornati ogni volta che MTR(213) viene eseguita. INT(089) 001 004 # 0002 INT(089) 000 004 # 0002 SBN(092) 99 MTR(213) S D1 D2 IORF(097) D1 D2 RET(093) END(001) Flag ER: Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) 25403: SR 25403 è ON mentre MTR(213) è in esecuzione. 5-29-5 7– SEGMENT DISPLAY OUTPUT - 7SEG(214) Simboli per il diagramma a relè Aree dati operando S: Primo canale sorgente 7SEG(214) IR, SR, AR, DM, HR, TC, LR S O: Canale di uscita O IR, SR, AR, DM, HR, LR C C: Dati di controllo da 000 a 007 Limitazioni S e S+1 devono appartenere alla stessa area dati. L’area da DM 0000 a DM6143 può essere utilizzata per O. Non impostare C su valori diversi da 000... 007. 7SEG(214) è un’istruzione di espansione. E’ possibile utilizzare un dispositivo periferico per riassegnare il numero di funzione 214 ad un’altra istruzione di espansione. Descrizione Quando la condizione di esecuzione è OFF, 7SEG(214) non è eseguita. Quando la condizione di esecuzione è ON, 7SEG(214) legge i dati sorgente (4 o 8 digit), li converte in un dato visualizzabile a 7 segmenti ed emette quel dato su un display a 7 segmenti collegato ad un’uscita indicata da O. Il valore di C indica il numero di digit del dato sorgente e la logica per i moduli di ingresso e uscita, come illustrato nella seguente tabella. 367 Capitolo 5-29 Istruzioni I/O avanzate Dati sorgente 4 digit g ((S)) Logica del display per i dati in ingresso Identico al modulo di uscita Diverso dal modulo di uscita i 8 digit g ( S+1) (S, 1) Identico al modulo di uscita Diverso dal modulo di uscita i Logica del display per i dati in uscita Identico al modulo di uscita Diverso dal modulo di uscita Identico al modulo di uscita Diverso dal modulo di uscita Identico al modulo di uscita Diverso dal modulo di uscita Identico al modulo di uscita Diverso dal modulo di uscita C 000 001 002 003 004 005 006 007 Se ci sono 8 digit di dati sorgente, vengono sistemati in S e S+1, con il digit più significativo in S+1. Se ci sono 4 digit di dati sorgente, vengono posti in S. 7SEG(214) visualizza i dati a 4 o 8 digit in 12 scansioni, quindi inizia e continua a visualizzare i dati. Il display a 7 segmenti deve fornire quattro linee dati e una linea per il segnale dati in uscita per ogni digit visualizzato. Note 1. Quando viene progettato il sistema, considerare il tempo di scansione e le caratteristiche della visualizzazione a 7 segmenti. 2. I bit di uscita non utilizzati possono essere usati come bit di uscita comuni. Precauzioni Il rinfresco I/O deve essere eseguito per tutti i punti di I/O usati da 7SEG(214) ogni volta che viene eseguita, per garantire un funzionamento efficace. L’istruzione I/O REFRESH deve essere perciò utilizzata con 7SEG(214), quando 7SEG(214) è usata in una subroutine, affinché i punti di I/O siano aggiornati ad ogni esecuzione. Vedere a pagina 366 per un esempio di questo tipo di programmazione. 7SEG(214) sarà eseguita dalla prima scansione ogni volta che l’esecuzione del programma è avviata, anche in caso di riavvio dopo interruzione dell’alimentazione. Non utilizzare 7SEG(214) più di due volte nel programma. 7SEG(214) non può essere utilizzata per moduli di I/O installati su rack slave. Hardware Questa istruzione invia i dati dei canali a un display a 7 segmenti. Utilizza 8 bit di uscita per 4 digit oppure 12 bit di uscita per 8 digit. Il display a 7 segmenti è collegato a un modulo di uscita come illustrato nel diagramma seguente. Per la visualizzazione a 4 digit, i dati in uscita (da D0 a D3) sono collegati ai punti di uscita da 0 a 3 (canale allocato O) e i latch in uscita (da CS0 a CS3) sono collegati ai punti di uscita da 4 a 7. Il punto di uscita 12 (per display a 8 digit) o il punto di uscita 8 (per display a 4 digit) sarà commutato ad ON quando è visualizzato un ciclo di 368 Capitolo 5-29 Istruzioni I/O avanzate dati ma non è necessario il collegamento, a meno che non sia richiesto dall’applicazione. VDD (+) VSS (0) D0 D1 D2 D3 LE3 LE2 LE1 LE0 VDD (+) VSS (0) LE3 D0 D1 D2 D3 LE2 LE1 LE0 OD212 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 C.C. COM Le uscite devono essere collegate da un modulo di uscita con almeno 8 punti di uscita per quattro digit o almeno 16 punti di uscita per otto digit. Possono essere utilizzati l’uscita di base, i moduli di I/O speciali o i moduli di uscita ad alta densità. Note Utilizzo dell’istruzione 1. Le uscite dei moduli di uscita impiegano di solito la logica negativa. (Soltanto l’uscita tipo PNP impiega la logica positiva.) 2. Il display a 7 segmenti può richiedere la logica positiva o negativa, secondo il modello. 3. Il display a 7 segmenti deve disporre di 4 linee per il segnale dati e di 1 linea per segnale latch per ogni digit. Se il primo canale che conserva i dati da visualizzare è specificato in S, il canale di uscita è specificato in O, e l’SV tratto dalla tabella sottostante è specificato in C, il funzionamento procederà come sotto illustrato quando il programma è in esecuzione. Se sono visualizzati soltanto quattro digit, sarà utilizzato soltanto il canale S. Formato memorizzazione dati 4 digit più a sinistra S+1 4 digit più a destra S 369 Capitolo 5-30 Istruzioni moduli di I/O speciali Temporizzazione Funzione La temporizzazione dell’uscita dati è mostrata nella seguente tabella. “O” è il primo canale che conserva i dati della visualizzazione e “C” è il canale di uscita. Bit in O (4 digit, 1 blocco) Stato di uscita (dati ( e logica g di uscita dipendono p da C)) (4 digit, 2 blocchi) 00... 03 00... 03 04... 07 Latch in uscita 0 04 08 Latch in uscita 1 05 09 Latch in uscita 2 06 10 Latch in uscita 3 07 11 Flag Ciclo 08 12 Uscita dati 100 0 1 2 101 3 4 5 102 6 7 8 103 9 Nota Da 0 a 3: Uscita dati per canale S Da 4 a 7: Uscita dati per canale S+1 10 11 12 12 scansioni necessarie per completare un ciclo Esempio di applicazione Questo esempio mostra un programma per la visualizzazione di numeri BCD a 8 digit su un display LED a 7 segmenti. Si presuppone che il display a 7 segmenti sia collegato al canale di uscita 100 IR, che il modulo di uscita stia utilizzando la logica negativa e che anche la logica del display a 7 segmenti sia negativa per segnali dati e segnali latch. 25313 (Always ON) 7SEG(214) DM0120 100 004 I dati BCD a 8 digit in DM 0120 (4 digit più a destra) e DM 0121 (4 digit più a sinistra) sono visualizzati sempre mediante 7SEG(214). Quando il contenuto di DM 0120 e DM 0121 cambia, anche la visualizzazione cambierà. Flag ER: S e S+1 non si trovano nella stessa area dati. (Quando sono impostati per visualizzare dati a 8 digit.) Il canale DM indirizzato indirettamente non esiste. (Il contenuto del canale *DM non è in BCD oppure è stato superato il limite dell’area DM.) C’è un errore nell’impostazione degli operandi. 25409: SR 25409 sarà ON quando 7SEG(214) è in esecuzione. 5-30 Istruzioni moduli di I/O speciali Le istruzioni per i moduli di I/O speciali sono utilizzate per trasferire i dati verso e dalla memoria del modulo di I/O speciale specificato. 370 Capitolo 5-30 Istruzioni moduli di I/O speciali 5-30-1 SPECIAL I/O UNIT READ – IORD(222) Aree dati operando Simboli per il diagramma a relè C: Codice di controllo IORD(222) @IORD(222) C C S S D D IR, SR, AR, DM, HR, TC, LR, # S: Informazioni sorgente IR, SR, AR, DM, HR, TC, LR, # D: Primo canale risultato IR, SR, AR, DM, HR, TC, LR Limitazioni Possono essere specificati soltanto i moduli di I/O speciali installati sul rack CPU del PLC o sui rack di espansione I/O. Gli ultimi tre digit di S devono essere in BCD (da 001 a 128). Descrizione Quando la condizione di esecuzione è OFF, IORD(222) non è eseguita. Quando la condizione di esecuzione è ON, IORD(222) trasferisce i dati dalla memoria del modulo di I/O speciale specificato nei canali iniziando con D. Le informazioni sorgente forniscono il numero del nodo del modulo di I/O speciale e il numero di canali da leggere, come illustrato nel diagramma seguente. S: I digit da 2 a 4: Numero di canali da leggere (da 001 a 128) Digit 1: Numero di nodo del modulo di I/O speciale (da 0 a F) Il codice di controllo (C) dipende dal modulo di I/O speciale specificato. Fare riferimento al Manuale operativo del modulo per i dettagli. Esempio Quando IR 00000 passa da OFF a ON, l’istruzione seguente trasferisce 100 canali dall’area di memoria del numero 3 del modulo di I/O speciale in DM 0100... DM 0199. 00000 Indirizzo Istruzione Dati IORD(222) C #3100 00200 00201 LD @IORD(222) 00000 DM 0100 DM Flag ER: C #3100 0100 Gli ultimi tre digit di S (specificatore numero di canali) non sono in BCD o non rientrano nella gamma da 001 a 128. Il contenuto di un canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Il numero del modulo sorgente non è compreso fra 0 e F o è installato su un rack slave. Non è stato specificato un Modulo I/O speciale non compatibile con IORD(222). L’istruzione non è stata completata normalmente. Si è verificato un errore nel Modulo specificato o un errore di verifica con il Modulo specificato. Si è verificato un errore di handshake. I dati ricevuti superano il limite dell’area dati. EQ: ON se i dati sono letti con successo, altrimenti OFF. 371 Capitolo 5-30 Istruzioni moduli di I/O speciali 5-30-2 SPECIAL I/O UNIT WRITE – IOWR(223) Simboli per il diagramma a relè Aree dati operando C: Codice di controllo IOWR(223) @IOWR(223) C C S S D D IR, SR, AR, DM, HR, TC, LR, # S: Primo canale sorgente IR, SR, AR, DM, HR, TC, LR D: Informazioni di destinazione IR, SR, AR, DM, HR, TC, LR, # Limitazioni Possono essere specificati soltanto i moduli di I/O speciali installati sul rack CPU del PLC o su rack di espansione I/O. Gli ultimi tre digit di D devono essere in BCD (da 001 a 128). Descrizione Quando la condizione di esecuzione è OFF, IOWR(223) non è eseguita. Quando la condizione di esecuzione è ON, IOWR(223) trasferisce i dati dai canali iniziando con D nella memoria del modulo di I/O speciale specificato. Le informazioni di destinazione forniscono il numero di nodo del modulo di I/O speciale e il numero di canali da scrivere, come illustrato nel diagramma seguente. D: Digit da 2 a 4: Numero di canali da scrivere (da 001 a 128) Digit 1: Numero di nodo del modulo di I/O speciale (da 0 a F) Il codice di controllo (C) dipende dal modulo di I/O speciale che viene specificato. Fare riferimento al Manuale operativo del modulo per i dettagli. Utilizzare il “Bit abilitato di esecuzione dell’istruzione di lettura” del Modulo I/O speciale come condizione di esecuzione per IOWR(223). Questo Bit è nell’Area del Modulo I/O speciale dell’Unità. Quando l’esecuzione dell’istruzione non è abilitata e si tenta di eseguirla, l’handshaking verrà effettuato, il flag ER e EQ verranno impostati su OFF e non si verificherà alcun errore (quale ad esempio l’Errore del Modulo I/O speciale). Il primo canale sorgente e il numero di canali da trasferire vengono controllati quando l’istruzione viene eseguita. Se l’impostazione non è corretta, il flag ER verrà impostato su ON e l’handshaking non verrà effettuato. Quando si verifica un Errore di Bus I/O durante l’handshaking, l’esecuzione verrà interrotta e l’interprete terminerà immediatamente. Si verificherà un Errore di interruzione della subroutine FAL 8B (facendo impostare su ON SR 25413 e il Flag ER) se la risposta di interrupt è impostata su “High-speed Response” nel Setup del PLC e IOWR(223) viene eseguito in un programma ad interrupt per scrivere dati in un Modulo I/O speciale per cui viene abilitato il rinfresco di scansione. Questo errore si verificherà anche se la risposta di interrupt è impostata su “High-speed Response” e IOWR(223) viene eseguito nel programma principale per scrivere in un Modulo I/O speciale in cui il Rinfresco di scansione è disabilitato. Se i dati non vengono scritti con successo nel Modulo di destinazione, i flag EQ e ER (SR 25506 e SR 25503) verranno impostati su OFF e dal Modulo verrà trasmesso un errore di ricezione. 372 Capitolo 5-30 Istruzioni moduli di I/O speciali Esempio Quando IR 00000 passa da OFF a ON, l’istruzione seguente scrive il contenuto dei 10 canali da DM 0100 a DM 0109 nell’area di memoria del numero 2 del modulo di I/O speciale. 00000 Indirizzo Istruzione 00200 00201 LD @IOWR(223) Dati IOWR(223) C DM 0100 #2010 Flag ER: 00000 DM C 0100 #2010 Gli ultimi tre digit di D (specificatore numero di canali) non sono in BCD o non rientrano nella gamma da 001 a 128. Il contenuto del canale che presenta un indirizzo DM/EM indiretto non è in BCD o il limite dell’area DM/EM è stato superato. Il numero del modulo di destinazione non è compreso tra 0 e F oppure è montato su un Rack slave. E’ stato specificato un Modulo I/O speciale non compatibile con IOWR(223). L’istruzione non è stata completata normalmente. Si è verificato un errore nel Modulo specificato o un errore di verifica con il Modulo specificato. Si è verificato un errore di handshake. L’intervallo dei canali è stato superato nel modulo di destinazione. EQ: ON se i dati sono letti con successo, altrimenti OFF. 373 Istruzioni moduli di I/O speciali 374 Capitolo 5-30 CAPITOLO 6 Tempo di esecuzione del programma La tempistica delle varie operazioni deve essere considerata sia durante la scrittura che durante il debug di un programma. Il tempo richiesto per l’esecuzione del programma e di altre operazioni della CPU è importante, come lo è il tempo di ciascun segnale in ingresso e in uscita dal PLC per ottenere l’azione di controllo desiderata al momento giusto. Questo capitolo descrive il ciclo e mostra come calcolare il tempo di ciclo e i tempi di risposta degli I/O. 6-1 6-2 6-3 6-4 Tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcolo del tempo di ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–2–1 PLC solo con moduli I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–2–2 PLC con host link e moduli master I/O remoti . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempi di esecuzione delle istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tempo di risposta degli I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–4–1 Sistemi base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–4–2 Sistemi I/O remoti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–4–3 Sistemi host link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–4–4 Sistemi PLC Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6–4–5 Tempo di risposta degli I/O nei collegamenti punto–punto . . . . . . . . . . . . . . . . . . 6–4–6 Tempo di risposta dell’Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 380 381 382 383 394 394 395 398 398 401 403 375 Capitolo 6-1 Tempo di ciclo 6-1 Tempo di ciclo Per facilitare il funzionamento del PLC, i tempi di ciclo medi, massimi e minimi possono essere visualizzati sulla console di programmazione o su qualsiasi altro dispositivo di programmazione, e i valori del tempo di ciclo massimo e del tempo di ciclo corrente sono memorizzati in AR 26 e AR 27. Comprendere le operazioni che si verificano durante il ciclo e gli elementi che condizionano il tempo di ciclo è, comunque, essenziale per una programmazione efficace e il funzionamento del PLC. I fattori più importanti che determinano la tempistica del programma sono il tempo di ciclo e il tempo di risposta degli I/O. Si definisce ciclo l’insieme delle operazioni eseguite dalla CPU; si definisce tempo di ciclo il tempo richiesto per l’esecuzione di ciascun ciclo. Il flusso globale delle operazioni della CPU è illustrato nel diagramma di flusso che segue. 376 Capitolo 6-1 Tempo di ciclo Diagramma di flusso delle operazioni della CPU Accensione Azzera area IR e resetta tutti i temporizzatori Inizializzazione all’accensione Controlla collegamenti moduli I/O Resetta watchdog timer Controlla hardware e memoria di programma Processi di controllo sistema NO Controllo OK? SÌ Configura flag di errore e accende o fa lampeggiare led ERRORE/ ALLARME? ERRORE (acceso) Resetta watchdog timer e contatore indirizzo di programma Esecuzione del programma Esegue programma utente ALLARME (lampeggiante) Fine programma? Nota Un tempo di ciclo minimo può essere configurato in DM 6619 del setup del PLC o eseguendo SCAN(18). NO SÌ Tempo di ciclo minimo? NO SÌ Resetta watchdog timer e attende finché non è trascorso il tempo di ciclo configurato Calcolo tempo di ciclo Tempo di ciclo del PLC Calcola tempo di ciclo Resetta watchdog timer Rinfresco I/O Rinfresca bit di ingresso e segnali di uscita Gestisce porta RS–232C Gestione porta RS–232C Gestisce host link Gestione modulo host link Gestisce dispositivi periferici Gestione dispositivi periferici Gestisce scheda di comunicazione Gestione scheda di comunicazione Gestisce SYSMAC LINK e moduli SYSMAC NET Gestione SYSMAC LINK e modulo SYSMAC NET 377 Capitolo 6-1 Tempo di ciclo Le prime tre operazioni immediatamente dopo l’accensione sono eseguite soltanto una volta, al momento dell’accensione del PLC. Le altre operazioni vengono eseguite ciclicamente. Il tempo di ciclo è il tempo richiesto dalla CPU per completare uno di questi cicli. Questo ciclo comprende fondamentalmente 9 tipi di operazioni: controllo del sistema, esecuzione del programma, calcolo del tempo di ciclo, rinfresco I/O, gestione del modulo host link, gestione della porta RS–232C, gestione dei dispositivi periferici, gestione della scheda di comunicazione e gestione SYSMAC NET/SYSMAC LINK. Il tempo di ciclo è il tempo totale richiesto dal PLC per eseguire tutte queste operazioni. Il tempo richiesto per l’operazione 3, il calcolo del tempo di ciclo, è insignificante e può essere ignorato nei calcoli reali. Operazione 1. Controllo del sistema Tempo richiesto 0,7 ms (2,1 ms in C200HE–CPU11–E) Funzione Reset del watchdog timer. Controllo del bus I/O e della memoria di programma. Rinfresco dell’orologio. 2. Esecuzione del programma Il tempo di esecuzione totale per tutte le istruzioni varia in base alla dimensione del programma, alle istruzioni utilizzate e alle condizioni per l’esecuzione. Vedere 6-3 Tempi di esecuzione delle istruzioni per informazioni dettagliate. Insignificante, ma si può generare un’attesa per portare il tempo di ciclo al parametro minimo se ne è stato configurato uno. Esecuzione del programma. 3. Calcolo del tempo di ciclo 4. Rinfresco I/O Totale dei tempi seguenti: 0 µs per byte di ingresso (8 punti). 20 µs per byte di uscita (8 punti). (I moduli di uscita a 12 punti sono calcolati come 16 punti.) Tempo di rinfresco I/O del modulo PLC Link. Tempo di rinfresco del modulo I/O speciale. 1,1 ms per modulo master I/O remoto + 0,17 ms per canale I/O utilizzato sui rack slave. Calcolo del tempo di ciclo. Quando l’istruzione CYCLE TIME (SCAN(018)) viene eseguita, attende finché non è trascorso il tempo configurato e poi resetta il watchdog timer. Configurazione dei bit di ingresso secondo lo stato dei segnali di ingresso. I segnali di uscita vengono inviati secondo lo stato dei bit di uscita in memoria. Rinfresco degli ingressi e delle uscite nei sistemi I/O remoti. Gestione dei moduli I/O speciali. Gestione dei moduli I/O ad alta densità gruppo 2. Tempo di rinfresco del modulo I/O (ad alta densità) gruppo 2. 5. Gestione del modulo host link 6. Gestione della porta RS–232C 7. Gestione dei dispositivi periferici 378 Vedere le tabelle seguenti per i dettagli sui tempi di rinfresco del modulo PLC Link, sul modulo I/O speciale e sul modulo I/O ad alta densità gruppo 2. max 6 ms per modulo. 0 ms se non è collegato nessun dispositivo. minimo 0,26 ms o T× 0,05, dove T è il tempo di ciclo calcolato nell’operazione 3 0 ms se non è collegato nessun dispositivo. minimo 0,26 ms o T× 0,05, dove T è il tempo di ciclo calcolato nell’operazione 3 Elaborazione dei comandi dai computer collegati tramite i moduli host link sul rack. Elaborazione delle comunicazioni con i dispositivi collegati alla porta RS–232C. Elaborazione dei comandi dai dispositivi di programmazione (computer, console di programmazione, ecc.). Capitolo 6-1 Tempo di ciclo Operazione 8. Gestione della scheda di comunicazione 9. Gestione SYSMAC NET/ SYSMAC LINK Tempo richiesto 0,5 ms + il tempo di elaborazione per porta. Il tempo di elaborazione per porta è il seguente: minimo 0,26 ms o T× 0,05, dove T è il tempo di ciclo calcolato nell’operazione 3 0 ms se non è montato nessun modulo di comunicazione. Per C200HS-SLK o C200HS-SNT: 0.8 ms + max. 15 ms per modulo. Per C200HW-SLK: max. 3.5 ms per modulo. Per C200HW-PCU01/PCS01: max. 6 ms per modulo. Rinfresco degli I/O del modulo PLC Link Rinfresco dei moduli I/O speciali Tempi richiesti (ms) 512 7,4 256 4,1 128 2,7 64 1,7 Modulo C200H-ID501/215 C200H-OD501/215 C200H-MD501/215 Tempi richiesti per modulo 0,6 ms 0,6 ms se è impostato per 32 punti di I/O. 1,6 ms se è impostato per I/O dinamici C200H–CT001–V1/CT002 2,0 ms C200H-NC111/NC112 C200H-NC211 C200H-AD001 C200H-DA001 C200H-TS001/TS101 C200H-ASC02 C200H–IDS01–V1/IDS21 C200H-OV001 C200H-FZ001 2,1 ms 5,0 ms 1,1 ms 0,9 ms 1,2 ms 1,9 ms normalmente, 5,0 ms per il formato @ 2,0 ms normalmente, 5,5 ms per il trasferimento dei comandi 3,3 ms 2,0 ms 2,7 ms 2,0 ms 1,4 ms 2,3 ms 2,7 ms 1,0 ms 0,44 ms se il numero max degli Slave è impostato su 16. 0,88 ms se il numero max degli Slave è impostato su 32. 1,72 ms + 0.022 × il numero dei canali 0.7 ms 2 ms (normalmente) 3 ms (quando i dati vengono rinfrescati) C200H-PID C200H-DA002 C200HW-SRM21 C200HW-DRM21 C200H-CT021 C200H-MC221 Collegamenti NT Elaborazione dei comandi dai computer e dagli altri dispositivi collegati ai moduli SYSMAC NET/SYSMAC LINK. Punti di I/O da rinfrescare C200H–TC C200H-CP114 C200H-AD002 C200H-LS101 Rinfresco dei moduli I/O ad alta densità gruppo 2 Funzione Elaborazione dei comandi dalla scheda di comunicazione (RS–232C, RS–422 o RS–485). Modulo C200H-ID216 C200H-OD218 C200H-ID217 C200H-OD219 Tempi richiesti per modulo 0,18 ms 0,14 ms 0,31 ms 0,23 ms Se il PLC è connesso a un Terminale programmabile (PT) tramite un modulo interfaccia C200HX/HG/HE, per rinfrescare gli I/O per il PT saranno richiesti i tempi riportati nella tabella seguente. 379 Capitolo 6-2 Calcolo del tempo di ciclo Numero degli elementi della tabella per il PT Tempo di watchdog timer e tempo di ciclo lungo Impostazione minima: Tabella stringhe di caratteri: 0 Tabella dati numerici: 0 2,5 ms Impostazione massima: Tabella stringhe di caratteri: 32 Tabella dati numerici: 128 5,4 ms All’interno del PLC, il watchdog timer misura il tempo di ciclo e lo confronta con il valore impostato. Se il tempo di ciclo supera il valore impostato del watchdog timer, si genera un errore FALS 9F e la CPU interrompe l’esecuzione del programma. Per prolungare il valore impostato per il watchdog timer si può utilizzare WDT(094). Anche se il tempo di ciclo non supera il valore impostato del watchdog timer, un lungo tempo di ciclo può compromettere la precisione delle operazioni del sistema come è illustrato nella tabella seguente. Condizioni di funzionamento Tempo ciclo (ms) 10 o più TIMH(015) impreciso quando vengono utilizzati i TC da 016 a 511. (La precisione non viene compromessa per i TC da 000 a 0015.) 20 o più impulso di clock a 0,02 secondi (SR 25401) non perfettamente leggibile. impulso di clock a 0,1 secondi (SR 25500) non perfettamente leggibile e commutazione su ON del flag di errore del tempo di ciclo (SR 25309). 100 o più 200 o più 6.500 o più Modifica on line ! Attenzione 6-2 Tempo di rinfresco I/O impulso di clock a 0,2 secondi (SR 25501) non perfettamente leggibile. viene generato il codice FALS 9F indipendentemente dall’impostazione del watchdog timer ed il sistema si arresta. Quando viene eseguita una modifica on line da un dispositivo di programmazione, il funzionamento sarà interrotto per un tempo massimo di 80 ms e gli interrupt saranno mascherati per riscrivere il programma utente. Durante questo intervallo non saranno dati avvertimenti per i tempi di ciclo lunghi. Controllare gli effetti sul tempo di risposta degli I/O prima di modificare il programma on line. Quando i bit da 00 a 07 di AR 25 contengono il codice password di “5A,” la modifica on line sarà disabilitata e la CPU sarà nello stato di attesa mentre il bit di disabilitazione della modifica on line (AR 2509) è ON. Il flag di attesa della modifica on line (AR 2510) sarà ON mentre la CPU è nello stato di attesa. L’elaborazione sarà eseguita quando AR 2509 viene commutato su OFF. (Anche AR 2510 sarà su OFF.) La modifica del programma on line può provocare dei ritardi nelle risposte degli I/O e il sistema non avvertirà del tempo di ciclo lungo prodotto dalla modifica on line. Prima della modifica on line, assicurarsi che i ritardi nelle risposte degli I/O non creino una situazione pericolosa nel sistema controllato. Calcolo del tempo di ciclo Quando si calcola il tempo di ciclo devono essere presi in considerazione la configurazione del PLC, il programma e le condizioni per l’esecuzione del programma. Si deve, cioè, tener conto di fattori come il numero di punti di I/O, le istruzioni di programmazione utilizzate e se vengono impiegati dispositivi periferici. Questo capitolo descrive alcuni esempi base di calcolo del tempo di ciclo. Per semplificare gli esempi, si presuppone che tutte le istruzioni utilizzate nei programmi siano LD o OUT. Il tempo medio di esecuzione per le istruzioni è così di 0,156 µs. (I tempi di esecuzione sono riportati nella tabella in 1–3 Tempi di esecuzione delle istruzioni.) 380 Capitolo 6-2 Calcolo del tempo di ciclo 6-2-1 PLC solo con moduli I/O In questa sezione verrà calcolato il tempo di ciclo per un PLC semplice. La CPU controlla soltanto i moduli I/O, otto sul rack della CPU e cinque su un rack I/O di espansione a 5 slot. La configurazione del PLC è quella illustrata sotto. Si presuppone che il programma contenga 5.000 istruzioni, ciascuna delle quali richiede per l’esecuzione un tempo medio di 0,156 µs. Moduli di ingresso a 8 punti Moduli di uscita a 8 punti f Rack CPU Rack I/O di espansione Moduli di ingresso a 16 punti Moduli di uscita a 12 punti Modulo di uscita a 8 punti Calcoli L’equazione per il tempo di ciclo precedente è la seguente: Tempo di ciclo = tempo controllo sistema + tempo esecuzione programma + tempo rinfresco I/O + tempo gestione dispositivi periferici Processo Calcolo Con dispositivi periferici 0,7 ms Senza dispositivi periferici 0,7 ms Controllo del sistema Esecuzione del programma Rinfresco degli I/O Fisso 0,156 µs/istruzione × 5.000 istruzioni Vedere sotto. 0,78 ms 0,78 ms 0,34 ms 0,34 ms Gestione dei dispositivi periferici Tempo di ciclo Tempo minimo 0,26 ms 0,0 ms Totale 2,08 ms 1,82 ms Il tempo di rinfresco I/O è il seguente per due moduli di ingresso a 16 punti, quattro moduli di ingresso a 8 punti, due moduli di uscita a 12 punti (i moduli a 12 punti sono trattati come moduli a 16 punti) e cinque moduli di uscita a 8 punti controllati dal PLC: (16 punti × 2) + (8 punti × 4) 8 punti ×20 µs + (16 punti × 2) + (8 punti × 5) 8 punti ×20 µs = 0,34 ms 381 Capitolo 6-2 Calcolo del tempo di ciclo 6-2-2 PLC con host link e moduli master I/O remoti In questa sezione viene calcolato il tempo di ciclo per un PLC con un modulo host link e un modulo master I/O remoto. La configurazione del PLC potrebbe essere la seguente. La CPU controlla tre moduli di ingresso a 8 punti, tre moduli di uscita a 8 punti, un modulo host link e un modulo master I/O remoto collegato a un rack slave I/O remoto contenente quattro moduli di ingresso a 16 punti e quattro moduli di uscita a 12 punti. Si presuppone che il programma contenga 5.000 istruzioni, ciascuna delle quali richiede per l’esecuzione un tempo medio di 0,156 µs, e che non sia collegato nulla alla porta RS–232C e che non sia montato nessun modulo SYSMAC NET/ SYSMAC LINK. Modulo host link Modulo master I/O remoto Moduli di ingresso a 8 punti Moduli di uscita a 8 punti Rack CPU Computer Rack slave Moduli di ingresso a 16 punti Calcoli Moduli di uscita a 12 punti L’equazione per il tempo di ciclo è la seguente: Tempo di ciclo = tempo di controllo sistema + tempo di esecuzione programma + tempo di rinfresco I/O + tempo di gestione moduli host link + tempo di gestione dispositivi periferici Processo Calcolo Con dispositivi periferici 0,7 ms Senza dispositivi periferici 0,7 ms Controllo del sistema Esecuzione del programma Rinfresco degli I/O Fisso 0,156 µs/istruzione × 5.000 istruzioni Vedere sotto. 0,78 ms 0,78 ms 2,58 ms 2,58 ms Gestione host link Fisso 6,0 ms 6,0 ms Gestioni dei dispositivi periferici 0,7 + 0,78 + 2,58 + 6 = 10,06 0,50 ms 0,0 ms 10,56 ms 10,06 ms 10,06× 0,05 = 0,50 Tempo di ciclo Totale Il tempo di rinfresco I/O è il seguente per tre moduli di ingresso a 8 punti e tre moduli di uscita a 8 punti montati nel rack della CPU e otto moduli montati in un rack slave. (8 punti × 3) + (8 punti × 3) 8 punti 382 ×20 µs +1,1 ms + 8 moduli × 0,17 ms = 2,58 ms Capitolo 6-3 Tempi di esecuzione delle istruzioni 6-3 Tempi di esecuzione delle istruzioni La tabella seguente riporta i tempi di esecuzione di tutte le istruzioni disponibili per il C200HX/HG/HE. Vengono inoltre dati, se rilevanti, i tempi di esecuzione minimo e massimo e le cause che li condizionano. Quando nella colonna Condizioni si fa riferimento a “canale”, si intende il contenuto di qualsiasi canale, ad eccezione dei canali DM indirizzati in modo indiretto, che invece richiedono maggior tempo di esecuzione e che sono indicati con “DM.” I tempi di esecuzione per la maggior parte delle istruzioni variano a seconda se queste sono eseguite con una condizione di esecuzione ON o OFF. Fanno eccezione le istruzioni del diagramma a relè OUT e OUT NOT, che richiedono lo stesso tempo indipendentemente dalla condizione di esecuzione. Il tempo di esecuzione OFF per un’istruzione può anche variare a seconda delle circostanze, cioè, se si trova in una sezione interbloccata del programma e la condizione di esecuzione per IL è OFF, se si trova tra JMP(004) 00 e JME(005) 00 e la condizione di esecuzione per JMP(004) 00 è OFF, o se è resettata con una condizione di esecuzione OFF. “R”, “IL”, e “JMP” sono utilizzate per indicare questi tre tempi. Tutti i tempi di esecuzione sono in microsecondi salvo indicazioni differenti. Tempo di esecuzione ON (s) Tempo di esecuzione OFF (s) Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 C200HX 0,104 0,208 0,104 0,208 0,104 0,208 0,104 0,208 0,104 0,208 0,104 C200HG 0,156 0,313 0,156 0,313 0,156 0,313 0,156 0,313 0,156 0,313 0,156 C200HE 0,312 0,626 0,313 0,626 0,312 0,626 0,313 0,626 0,313 0,626 0,313 C200HX 0,104 0,104 0,104 0,104 0,104 0,104 0,104 0,104 0,104 0,104 0,104 C200HG 0,156 0,156 0,156 0,156 0,156 0,156 0,156 0,156 0,156 0,156 0,156 C200HE 0,313 0,313 0,313 0,313 0,313 0,313 0,313 0,313 0,313 0,313 0,313 Per SR da 25600 a 51115 0,208 0,313 0,626 0,104 0,156 0,313 AND LD --- 0,104 0,156 0,313 0,104 0,156 0,313 OR LD OUT --- 0,104 0,156 0,313 0,104 0,156 0,313 0,208 0,313 0,208 0,313 0,417 , 0,313 0,468 0,313 0,468 0,625 , 0,626 0,936 0,626 0,936 1,25 , NOP(000) Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Costante per SV DM per SV Per i canali previsti da 256 a 511 Costante per SV DM per SV Per i canali previsti da 256 a 511 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 --- 0,417 0,417 0,417 0,208 0,313 0,208 0,313 0,104 0,625 0,625 0,625 0,313 0,468 0,313 0,468 0,156 1,25 1,25 1,25 0,626 0,936 0,626 0,936 0,312 0,208 0,208 0,208 0,208 0,417 22,45 0,417 0,417 22,55 0,417 0,208 0,208 0,208 0,208 0,313 0,313 0,313 0,313 0,313 0,625 22,45 0,625 0,625 22,55 0,625 0,313 0,313 0,313 0,313 0,469 0,626 0,626 0,626 0,626 1,25 37,15 1,25 1,25 37,25 1,25 0,626 0,626 0,626 0,626 0,938 END(001) --- 24,75 39,45 0,313 0,469 0,938 IL(002) --- 7,55 22,25 0,313 0,469 0,938 ILC(003) --- 9,25 23,95 0,313 0,469 0,938 JMP(004) --- 7,65 22,35 0,313 0,469 0,938 JME(005) --- 7,95 22,65 0,313 0,469 0,938 Istruzione LD LD NOT AND AND NOT OR OR NOT OUT NOT TIM CNT SET RSET Condizioni 383 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione FAL(006) ( ) FALS(007) STEP(008) ( ) Condizioni Codici FAL da 01 a 99 Codice FAL 00 ----- Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE 88,6 86,6 --- 0,313 0,313 0,313 0,313 , 0,469 0,469 0,469 0,469 , 0,938 0,938 0,938 0,938 , 0,313 0,469 0,938 (nota 1) 88,6 86,6 (nota 2) 33,1 15,3 9,25 47,8 30 23,95 Con registro di scorrimento su 1 canale Con registro di scorrimento su 100 canali Con registro di scorrimento su 250 canali Per IR e SR da 23600 a 25515 Per SR da 25600 a 51115 Costante per SV 21,05 35,75 R: 8,05 IL: 8,05 JMP: 8,05 117,8 132,5 R: 8,05 IL: 8,05 JMP: 8,05 262,5 277,2 R: 8,05 IL: 8,05 JMP: 8,05 0,625 0,938 33,85 0,208 , 0,319 , 0,625 , R: 16,95 IL: 11,65 DM per SV 31,45 46,15 R: 16,95 IL: 11,65 DIFU(013) --- 13,75 28,45 IL: 13,65 DIFD(014) --- 13,65 28,35 TIMH(015) Costante dell’interrupt per SV 18,35 33,05 Normale: 13,75 Normale: 13,65 R: 25,05 Ciclo regolare 16,55 31,25 R: 21,95 IL: 21,05 Interrupt DM per SV 18,35 33,05 R: 37,1 IL: 36,5 Ciclo regolare 16,55 31,25 R: 34,1 IL: 33,3 Scorrimento su 1 canale Scorrimento su 6.144 canali utilizzando DM Reset di un canale Scorrimento su 1 canale utilizzando DM Scorrimento di 10 canali utilizzando DM Costante per SV 16,45 6,45 ms 31,15 (nota 2) 0,313 , 0,469 , JMP: 11,65 JMP: 11,65 JMP: 11,95 JMP: 11,85 JMP: 14,45 JMP: 11,25 JMP: 14,45 JMP: 11,25 0,938 , 24.95 29.05 39.65 43.75 0.313 0.469 0.938 39.9 54.6 18.65 33.35 0.313 0.469 0.938 DM per SV 30.45 45.15 Confronto tra 2 canali, canale di destinazione Confronto tra 2 DM, DM di destinazione Confronto tra una costante e un canale Confronto tra due canali Confronto tra due DM Trasferimento di una costante a un canale Confronto tra due canali Trasferimento di DM a DM Trasferimento di una costante a un canale Confronto tra due canali Trasferimento di DM a DM 60.3 75 0.313 0.469 0.938 93 107.7 SNXT(009) SFT(010) KEEP(011) CNTR(012) WSFT(016) ( ) ASFT(017) ( ) SCAN(018) MCMP(019) CMP(020) MOV(021) MVN(022) 384 --- 0,208 0,318 19,15 0,313 0,469 IL: 13,55 IL: 24,05 0,417 0,625 1,25 0,313 0,469 0,938 0,521 35,2 0,417 0,781 1,56 49,9 1,25 0,313 0,469 0,938 0,625 33,7 0,417 0,937 1,87 48,4 1,25 0,313 0,469 0,938 0,625 34,3 0,937 0,625 0,625 1,87 49 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione BIN(023) BCD(024) ASL(025) ( ) ASR(026) ( ) ROL(027) ( ) ROR(028) ( ) COM(029) ADD(030) SUB(031) MUL(032) DIV(033) ANDW(034) ORW(035) Condizioni Conversione di un canale in un canale Conversione di DM in DM Conversione di un canale in un canale Conversione di DM in DM Spostamento di un canale Spostamento di DM Spostamento di un canale Spostamento di DM Rotazione di un canale Rotazione di DM Rotazione di un canale Rotazione di DM Inversione di un canale 19,65 34,35 Tempo di esecuzione OFF (s) C200HX C200HG C200HE 0,313 0,469 0,938 40,5 18,25 55,2 32,95 0,313 0,469 0,938 39,1 12,25 23,35 11,95 22,95 13,15 24,25 13,15 24,25 11,45 53,8 26,95 38,05 26,65 37,65 27,85 38,95 27,85 38,95 26,15 0,313 , 0,469 , 0,938 , 0,313 , 0,469 , 0,938 , 0,313 , 0,469 , 0,938 , 0,313 , 0,469 , 0,938 , 0,313 0,469 0,938 Inversione di DM 22,65 37,35 Costante + canale → canale 16,65 31,35 0,313 0,469 0,938 Canale + canale → canale 18,45 33,15 DM + DM → DM 50,1 64,8 Costante – canale → canale 16,65 31,35 0,313 0,469 0,938 Canale – canale → canale 18,45 33,15 DM – DM → DM 50,1 64,8 Costante × canale → canale 31,15 45,85 0,313 0,469 0,938 Canale × canale → canale 32,95 47,65 DM × DM → DM 64,7 79,4 Canale ÷ costante → canale 30,15 44,85 0,313 0,469 0,938 Canale ÷ canale → canale 32,35 47,05 DM ÷ DM → DM 64,1 78,8 Costante AND canale → canale 14,35 29,05 0,313 0,469 0,938 Canale AND canale → canale 15,25 29,95 DM AND DM → DM 46,7 61,4 Costante OR canale → canale 14,35 29,05 0,313 0,469 0,938 Canale OR canale → canale 15,25 29,95 DM OR DM → DM 46,7 61,4 0,313 0,469 0,938 0,313 0,469 0,938 0,313 0,469 0,938 0,313 0,469 0,938 XORW(036) Costante XOR canale → canale Tempo di esecuzione ON (s) C200HX C200HG C200HE 14,35 29,05 Canale XOR canale → canale 15,25 29,95 DM XOR DM → DM 46,7 61,4 Costante XNOR canale → canale 14,55 29,25 Canale XNOR canale → canale 15,45 30,15 DM XNOR DM → DM 46,9 61,6 Incremento di un canale 11,55 26,25 Incremento di DM 22,45 37,15 Decremento di un canale 11,45 26,15 Decremento di DM 22,35 37,05 STC(040) --- 7,22 21,92 0,313 0,469 0,938 CLC(041) --- 7,22 21,92 0,313 0,469 0,938 TRSM(045) --- 18,65 33,35 0,313 0,469 0,938 MSG(046) Designazione come DM 12,05 26,75 0,313 0,469 0,938 LMSG(047) Canale per SV 17.95 32.65 0.313 0.469 0.938 DM per SV 27.65 42.35 --- 8.55 23.25 0.313 0.469 0.938 XNRW(037) INC(038) DEC(039) TERM(048) 385 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione ADB(050) SBB(051) MLB(052) DVB(053) ADDL(054) SUBL(055) MULL(056) DIVL(057) BINL(058) ( ) BCDL(059) ( ) CMPL(060) MPRF(061) XFRB(062) LINE(063) COLM(064) SEC(065) HMS(066) ( ) BCNT(067) ( ) BCMP(068) 386 Condizioni Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE Costante + canale → canale 19,15 33,85 0,313 0,469 0,938 Canale + canale → canale 20,05 34,75 DM + DM → DM 51,7 66,4 Costante – canale → canale 18,95 33,65 0,313 0,469 0,938 Canale – canale → canale 19,85 34,55 DM – DM → DM 51,7 66,4 Costante × canale → canale 16,95 31,65 0,313 0,469 0,938 Canale × canale → canale 17,85 32,55 DM × DM → DM 49,3 64 Canale ÷ costante → canale 17,15 31,85 0,313 0,469 0,938 Canale ÷ canale → canale 18,05 32,75 DM ÷ DM → DM 49,7 64,4 Canale + canale → canale 22,45 37,15 0,313 0,469 0,938 DM + DM → DM 53,9 68,6 Canale – canale → canale 22,45 37,15 0,313 0,469 0,938 DM – DM → DM 53,9 68,6 Canale × canale → canale 110,6 125,3 0,313 0,469 0,938 DM × DM → DM 142,6 157,3 Canale ÷ canale → canale 105,8 120,5 0,313 0,469 0,938 DM ÷ DM → DM 135,8 150,5 Conversione dai canali ai canali Conversione da DM a DM Conversione dai canali ai canali Conversione da DM a DM Confronto tra canali e canali 35,15 55,9 25,75 46,5 16.55 49,85 70,6 40,45 61,2 31.25 0,313 0,469 0,938 0,313 0,469 0,938 0.313 0.469 0.938 Confronto tra DM e DM 38.5 53.2 1 modulo 2.00 16.7 0.313 0.469 0.938 10 moduli 13.00 27.7 Invio di bit da canale a canale 22.45 37.15 0.313 0.469 0.938 Invio di FF bit da DM a DM 142.6 157.3 Trasferimento da canali a una costante Trasferimento da canali a un canale Trasferimento da DM a DM Trasferimento da una costante a canali Trasferimento da un canale a canali Trasferimento da DM a DM Da DM a DM 59.7 74.4 0.313 0.469 0.938 62.1 76.8 182.5 72.7 197.2 87.4 0.313 0.469 0.938 74.9 89.6 190.5 35.35 205.2 50.05 0.313 0.469 0.938 Da DM a DM 56.3 71 Da DM a DM Da DM a DM Costante per SV DM per SV Confronto tra costante e tabella dei canali A un canale dopo il confronto con un canale Confronto DM → tabella per DM 36.5 57.7 39.1 26.5 ms 62.1 51.2 72.4 53.8 (nota 2) 76.8 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 63.1 77.8 98.2 112.9 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione Condizioni Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE Designazione SIN DM per SV Trasferimento da 1 canale 24.25 473 45,3 38.95 487.7 44,2 0.313 0.469 0.938 0,313 0,469 0,938 Trasferimento da 1.024 canali utilizzando DM Trasferimento da 6.143 canali utilizzando DM Settaggio di una costante in 1 canale Settaggio di DM ms in 1.024 canali utilizzando DM Settaggio di DM ms in 6.144 canali utilizzando DM Radice quadrata di un valore contenuto in un canale e posizionamento del risultato in un altro canale Radice quadrata di 99.999.999 contenuto in un DM e posizionamento del risultato in un altro DM 655 653,9 3,66 ms (nota 3) 19,75 34,45 0,313 0,469 0,938 40,9 55,6 52,3 67 41,7 56,4 0,313 0,469 0,938 85,5 100,2 Tra canali 14,45 29,15 0,313 0,469 0,938 Tra DM 36,45 51,15 SLD(074) Scorrimento di 1 canale 15,65 30,35 0,313 0,469 0,938 2,72 ms (nota 2) 16,2 ms (nota 2) SRD(075) Scorrimento di 1.024 DM canali utilizzando DM Scorrimento di 6.144 DM canali utilizzando DM Scorrimento di 1 canale 15,65 30,35 0,313 0,469 0,938 2,72 ms (nota 2) 16,2 ms (nota 2) MLPX(076) Scorrimento di 1.024 canali DM utilizzando DM Scorrimento di 6.144 canali DM utilizzando DM Decodifica da canale a canale 47,3 62 0,313 0,469 0,938 Decodifica da DM a DM 103,8 118,5 Codifica da canale a canale 28,45 43,15 0,313 0,469 0,938 Codifica da DM a DM 111,8 126,5 Decodifica da canale a canale 26,95 41,65 0,313 0,469 0,938 Decodifica di 2 digit da DM a DM Decodifica di 4 digit da DM a DM 63,3 78 71,7 86,4 Canale ÷ canale → canale (uguale a 0) 62,3 77 0,313 0,469 0,938 Canale ÷ canale → canale (non uguale a 0) 499 513,7 DM ÷ DM → DM 843 857,7 Costante → (canale + (canale)) 27,65 42,35 0,313 0,469 0,938 DM → (DM + (DM)) 61,5 76,2 (Canale + (canale)) → canale 28,75 43,45 0,313 0,469 0,938 (DM + (DM)) → DM 64,3 79 Trasferimento da una costante a un canale Trasferimento da canale a canale Trasferimento da DM a DM 17,35 32,05 0,313 0,469 0,938 19,45 52,9 34,15 67,6 APR(069) ( ) XFER(070) BSET(071) ROOT(072) XCHG(073) DMPX(077) SDEC(078) FDIV(079) DIST(080) COLL(081) MOVB (08 (082)) 387 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione Condizioni MOVD(083) SFTR(084) ( ) TCMP(085) ASC(086) TTIM(087) Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE Trasferimento da una costante a un canale Trasferimento da canale a canale Trasferimento da DM a DM Scorrimento di 1 canale Scorrimento di 1.024 DM utilizzando DM Scorrimento di 6.144 DM utilizzando DM Confronto tra canali in una tabella designata Confronto tra canali in una tabella designata Confronto DM → tabella di DM Tra canali 16,95 31,65 0,313 0,469 0,938 18,25 54,3 20,05 1,1 ms 32,95 69 34,75 (nota 2) 0,313 0,469 0,938 6,37 ms (nota 2) 37,25 51,95 0,313 0,469 0,938 38,1 52,8 69,1 30,1 83,8 44,8 0,313 0,469 0,938 Tra DM 78,3 93 Impostazione di una costante 27.55 42.25 OFF ingresso costante: R: 24.15 JPM: 19.55 IL: 20.55 23.15 Impostazione su DM ZCP(088) INT(089) ( ) SEND(090) 35.5 50.2 Confronto tra una costante e un canale Confronto tra canale e canale Confronto tra DM e DM Canale per SV DM per SV Trasmissione di 1 canale 16.75 31.45 17.65 49.7 19.90 to 198.50 19.90 to 213.5 60,9 32.35 64.4 (nota 3) (nota 3) 75,6 IL: 32.7 JPM: 31.9 35.30 0.313 0.469 0.938 0.313 0.469 0.938 0,313 0,469 0,938 OFF ingresso costante: R: 36.3 Trasmissione di 1000 canali 99,2 113,9 SBS(091) --- 22,1 36,8 0,313 0,469 0,938 SBN(092) --- --- --- 0,313 0,469 0,938 RET(093) --- 20,9 35,6 0,313 0,469 0,938 WDT(094) --- 10,55 25,25 0,313 0,469 0,938 IORF(097) Rinfresco di 1 canale 110 (IN), 170 (OUT) 110 (IN), 170 (OUT) 0,313 0,469 0,938 Rinfresco di 30 canali 2002 2000,9 Rinfresco di 1 canale 67,1 67,1 0,313 0,469 0,938 Rinfresco di 1000 canali 105,8 105,8 Designazione di un parametro del canale Designazione di un parametro di DM Confronto tra due costanti Confronto tra DM Confronto tra DM e un DM Confronto tra due DM Confronto tra due DM Confronto tra due canali Confronto tra due DM Designazione canale (1 canale) Designazione DM (1.024 canali) Designazione DM (6.144 canali) 38,5 53,2 0,313 0,469 0,938 58,2 72,9 13,95 15,65 36,9 18,65 40,7 19,95 53,3 71,5 3,68 ms 8,75 ms 28,65 30,35 51,6 33,35 55,4 34,65 68 70,4 (nota 3) (nota 3) 0,313 0,469 0,938 0,313 0,469 0,938 0,313 0,469 0,938 0,313 0,469 0,938 RECV(098) MCRO(099) CPS(114) ( ) CPSL(115) ( ) ZCPL(116) ( ) BXFR(125) ( ) 388 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione NEG(160) NEGL(161) HEX(162) ( ) FCS(180) ( ) SRCH(181) MAX(182) MIN(183) SUM(184) ( ) PID(190) SCL(194) ( ) AVG(195) DSW(210) ( ) TKY(211) HKY(212) ( ) MTR(213) 7SEG(214) Condizioni Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE Conversione di una costante in un canale Conversione di un canale in un canale Conversione di DM in DM Conversione di un canale in un canale Conversione di DM in DM Conversione DM Conversione DM Addizione di un canale → canale Addizione di 999 canali → DM Costante per SV 15,05 29,75 0,313 0,469 0,938 16,85 31,55 37,1 18,15 51,8 32,85 0,313 0,469 0,938 39,7 36,95 102,6 26,75 1,05 ms 39,7 54,4 51,65 117,3 41,45 (nota 2) 54,4 0,313 0,469 0,938 0,313 0,469 0,938 0,313 0,469 0,938 DM per SV 1,35 ms (nota 2) DM per SV 7,73 ms (nota 2) Ricerca DM 31,75 46,45 0,313 0,469 0,938 Ricerca DM 1,31 ms (nota 2) Ricerca DM 31,75 46,45 0,313 0,469 0,938 Ricerca DM 1,31 ms (nota 2) Addizione DM Addizione DM Designazione di un canale 26,55 1,30 ms 48,1 41,25 (nota 2) 62,8 0,313 0,469 0,938 0,313 0,469 0,938 Designazione di DM 89,4 104,1 Canale per SV DM per SV Modifica di un’operazione 58,3 89,4 33,05 73 104,1 47,75 0,313 0,469 0,938 0,313 0,469 0,938 Modifica di 64 operazioni 133,8 148,5 DM per uscita CS DM per uscita RD DM per ingresso dati DM per uscita CS DM per uscita RD DM per ingresso dati Ingresso a DM 35 35 45 44 44 53 25,65 49,7 49,7 59,7 58,7 58,7 67,7 40,35 0,313 0,469 0,938 0,313 0,469 0,938 Ingresso a DM 46,7 61,4 Designazione di un canale Designazione di DM Ingresso a DM 23,55 44,3 da 29 a 34 38,25 59 (nota 2) 0,313 0,469 0,938 0,313 0,469 0,938 Ingresso a DM da 45 a 51 (nota 2) 4 cifre, canale da 19 a 22 (nota 2) 0,313 0,469 0,938 4 cifre, DM da 30 a 34 (nota 2) 8 cifre, canale da 19 a 22 (nota 2) 8 cifre, DM da 30 a 34 IORD(222) --- --- (nota 1) (nota 2) 0,313 0,469 0,938 IOWR(223) --- --- (nota 1) (nota 2) 0,313 0,469 0,938 RXD(235) Designazione di un canale 31,5 30,4 0,313 0,469 0,938 Designazione di DM 73,5 72,4 Designazione di un canale 56,1 70,8 0,313 0,469 0,938 Designazione di DM 99,4 114,1 Designazione default RS-232C Porta A scheda di comunicazione Designazione DM 30,9 61 29,8 59,9 0,313 0,469 0,938 TXD(236) STUP(237) ( ) (nota 2) 389 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione PMCR(260) Condizioni Tempo di esecuzione ON (s) C200HX C200HG C200HE Costante per porta & numero 41 sequenza, DM per canali di ingresso e di uscita 39,9 Costante per porta & numero sequenza, DM per canali di ingresso e di uscita DM per porta & numero sequenza, DM per canali di ingresso e di uscita 56 54,9 74,2 73,1 CMCR(261) (nota 4) (nota 1) FPD(269) da 74,60 a 89,40 da 105,0 a 142,2 (nota 2) CMT(277) Designazione canale, uscita codice Designazione DM, uscita messaggio Designazione costante 6.72 XDMR(280) Costante per SV 39,9 Canale per SV 1,44 ms (nota 2) DM per SV 4,19 ms (nota 2) Designazione costante Designazione canale Designazione DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM 18,45 19,95 33,45 18.3 33,15 34,65 48,15 33.0 39.8 21.3 EMBC(281) ( ) =(300) =L(301) =S(302) =LS(303) <>(305) <>L(306) <>S(307) <>SL(308) <(310) <L(311) <S(312) <SL(313) 390 Tempo di esecuzione OFF (s) C200HX C200HG C200HE 0,313 0,469 0,938 (nota 2) 0.313 0.469 0.938 (nota 2) 0,313 0,469 0,938 21.5 0.313 0.469 0.938 54,6 0,313 0,469 0,938 0,313 0,469 0,938 0.313 0.469 0.938 54.4 36.2 0.313 0.469 0.938 42.0 18.8 36.6 33.4 0.313 0.469 0.938 40.1 21.7 54.8 36.4 0.313 0.469 0.938 42.3 18.4 57.0 33.2 0.313 0.469 0.938 39.6 21.1 54.4 36.0 0.313 0.469 0.938 41.8 18.8 56.4 33.4 0.313 0.469 0.938 40.0 21.6 54.8 36.4 0.313 0.469 0.938 42.1 18.3 56.8 33.0 0.313 0.469 0.938 39.6 21.2 54.4 36.0 0.313 0.469 0.938 41.8 18.6 56.4 33.4 0.313 0.469 0.938 40.0 21.6 54.8 36.4 0.313 0.469 0.938 42.1 56.8 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione <=(315) <=L(316) <=S(317) <=SL(318) >(320) >L(321) >S(322) >SL(323) >=(325) >=L(326) >=S(327) >=SL(328) TST(350) TSTN(351) +(400) ( ) +L(401) ( ) +C(402) ( ) +CL(403) ( ) +B(404) ( ) +BL(405) ( ) Condizioni Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Confronto tra una costante e un canale Confronto tra DM e DM Impostazione di 1 bit di un canale su una costante Impostazione di 1 bit DM su DM Impostazione di 1 bit di un canale su una costante Impostazione di 1 bit DM su DM Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Tempo di esecuzione ON (s) C200HX C200HG C200HE 18.3 33.0 Tempo di esecuzione OFF (s) C200HX C200HG C200HE 0.313 0.469 0.938 39.8 21.4 54.4 36.2 0.313 0.469 0.938 41.9 18.6 56.6 33.4 0.313 0.469 0.938 40.1 21.8 54.8 36.4 0.313 0.469 0.938 42.3 18.4 57.0 33.2 0.313 0.469 0.938 39.6 21.3 54.4 36.0 0.313 0.469 0.938 41.8 18.8 56.4 33.4 0.313 0.469 0.938 40.0 21.6 54.8 36.4 0.313 0.469 0.938 42.1 18.4 56.8 33.2 0.313 0.469 0.938 39.8 21.4 54.4 36.2 0.313 0.469 0.938 41.9 18.8 56.6 33.4 0.313 0.469 0.938 40.1 21.8 54.8 36.4 0.313 0.469 0.938 42.3 20.6 57.0 35.4 0.313 0.469 0.938 42.9 57.6 20.8 35.4 0.313 0.469 0.938 43.0 57.8 17.0 49.1 19.6 50.5 19.2 51.3 26.1 58.5 15.6 48.5 21.6 52.3 31.9 64.0 34.6 65.6 34.0 66.4 41.2 73.6 30.4 63.6 36.6 67.4 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 391 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione +BC(406) ( ) +BCL(407) ( ) –(410) ( ) –L(411) ( ) –C(412) ( ) –CL(413) ( ) –B(414) ( ) –BL(415) ( ) –BC(416) ( ) –BCL(417) ( ) (420) ( ) L(421) ( ) U(422) ( ) UL(423) ( ) B(424) ( ) BL(425) ( ) /(430) ( ) /L(431) ( ) /U(432) ( ) /UL(433) ( ) /B(434) ( ) /BL(435) ( ) ADBL(480) SBBL(481) MBSL(482) 392 Condizioni Costante + canale → canale DM + DM → DM Costante + canale → canale DM + DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante – canale → canale DM – DM → DM Costante × canale → canale DM × DM → DM Costante × canale → canale DM × DM → DM Costante × canale → canale DM × DM → DM Costante × canale → canale DM × DM → DM Costante × canale → canale DM × DM → DM Costante × canale → canale DM × DM → DM Tempo di esecuzione ON (s) C200HX C200HG C200HE Costante ÷ canale→ canale 16.7 49.5 22.8 53.5 16.9 49.1 19.5 50.3 19.1 51.1 25.7 58.1 15.6 48.5 21.6 52.3 16.5 49.5 22.8 53.5 19.7 51.9 42.7 76.7 17.3 48.9 32.1 63.3 30.9 63.9 108.9 140.9 13.4 31.6 64.6 37.8 68.6 31.8 64.0 34.4 65.4 33.8 66.2 40.8 73.2 30.4 63.6 36.6 67.4 31.6 64.6 37.8 68.6 34.8 67.0 58.0 92.0 32.2 64.0 47.4 78.8 46.0 78.8 110.0 140.8 13.9 DM ÷ DM → DM 46.1 46.3 Costante ÷ canale→ canale 21.9 22.0 DM ÷ DM → DM 55.9 56.0 Costante ÷ canale→ canale 12.5 12.5 DM ÷ DM → DM 44.3 44.3 Costante ÷ canale→ canale 12.8 12.8 DM ÷ DM → DM 33.5 33.5 Costante ÷ canale→ canale 13.5 13.5 DM ÷ DM → DM 46.3 46.4 Costante ÷ canale→ canale 17.9 18.1 DM ÷ DM → DM 48.9 49.0 DM + DM → DM 27.35 42.05 DM + DM → DM 60.1 74.8 DM – DM → DM 26.95 41.65 DM – DM → DM 59.7 74.4 DM × DM → DM 45.3 60 DM × DM → DM 77.1 91.8 Tempo di esecuzione OFF (s) C200HX C200HG C200HE 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 0.313 0.469 0.938 Capitolo 6-3 Tempi di esecuzione delle istruzioni Istruzione DBSL(483) ( ) MBS(484) DBS(485) BXF2(––) ( ) IEMS(––) XFR2(––) ( ) Condizioni Tempo di esecuzione ON (s) C200HX C200HG C200HE Tempo di esecuzione OFF (s) C200HX C200HG C200HE DM ÷ DM → DM DM ÷ DM → DM Costante × canale → canale 86.6 118.6 20.85 101.3 133.3 35.55 0.313 0.469 0.938 0.313 0.469 0.938 DM × DM → DM 21.65 36.35 DM × DM → DM 53.5 68.2 Costante ÷ canale → canale 21.55 36.25 0.313 0.469 0.938 DM ÷ DM → DM 22.45 37.15 DM ÷ DM → DM 54.9 69.6 Designazione canale (1 canale) Designazione DM (1.024 canali) Designazione DM (6.144 canali) Designazione costante (Spostamento in un DM) Designazione canale (spostamento in un banco EM) Designazione canale (1 canale) Designazione DM (1.024 canali) Designazione DM (6.144 canali) 72,8 3,68 ms 8,75 ms 19,25 71,7 (nota 3) (nota 3) 18,15 0,313 0,469 0,938 0,313 0,469 0,938 24,95 23,85 46,4 656,2 3,66 ms 45,3 655,1 (nota 3) 0,313 0,469 0,938 Note 1. 2. 3. 4. Come il tempo di esecuzione dell’istruzione C200HX. Aggiungere 14,7 µs al tempo di esecuzione dell’istruzione C200HX. Aggiungere 1,1 µs al tempo di esecuzione dell’istruzione C200HX. Fare riferimento al Manuale operativo Modulo scheda PLC (W313). 393 Capitolo 6-4 Tempo di risposta degli I/O 6-4 Tempo di risposta degli I/O Il tempo di risposta degli I/O è il tempo impiegato dal PLC per inviare in uscita un segnale di controllo dopo aver ricevuto in ingresso un segnale. Il tempo impiegato per attuare la risposta dipende dal tempo di ciclo e dall’istante in cui la CPU riceve il segnale di ingresso rispetto alla fase di rinfresco dei punti di ingresso. I calcoli del tempo di risposta degli I/O minimo e massimo, descritti qui di seguito, sono relativi al bit d’ingresso IR 00000 che riceve il segnale e al bit d’uscita IR 00200 corrispondente al punto di uscita desiderato. 00000 00200 6-4-1 Sistemi base Tempo minimo di risposta degli I/O Il PLC risponde più rapidamente quando riceve un segnale in ingresso immediatamente prima della fase di rinfresco I/O nell’ambito del ciclo. Una volta commutato su ON il bit di ingresso corrispondente al segnale, il programma dovrà essere eseguito una volta per commutare su ON il bit di uscita per il segnale di uscita desiderato e poi l’operazione di rinfresco I/O dovrebbe essere ripetuta per rinfrescare il bit di uscita. In questo caso il tempo di risposta degli I/O si troverà aggiungendo il ritardo con ingresso ON, il tempo di ciclo e il ritardo con uscita ON. Questa situazione è illustrata sotto. Tempo di ciclo Ciclo Segnale di ingresso Ritardo con ingresso ON Esecuzione dell’istruzione Tempo di ciclo Esecuzione dell’istruzione Esecuzione dell’istruzione Rinfresco I/O CPU legge segnale di ingresso Ritardo con uscita ON Segnale di uscita Tempo di risposta I/O Tempo minimo di risposta degli I/O = Ritardo con ingresso ON + tempo di ciclo + ritardo con uscita ON 394 Tempo di risposta degli I/O Capitolo 6-4 Tempo massimo di risposta degli I/O Il PLC richiede un tempo maggiore per attuare la risposta quando riceve il segnale in ingresso immediatamente dopo la fase di rinfresco I/O nell’ambito del ciclo. In questo caso la CPU non riconosce il segnale in ingresso prima della fine del successivo ciclo. Il massimo tempo di risposta è quindi più lungo del minimo tempo di risposta I/O, eccetto che non occorrerebbe aggiungere il tempo di rinfresco I/O perché l’ingresso viene immediatamente dopo piuttosto che prima. Tempo di ciclo Esecuzione dell’istruzione Ciclo Segnale di ingresso Tempo di ciclo Tempo di ciclo Esecuzione dell’istruzione Esecuzione dell’istruzione Rinfresco I/O CPU legge segnale di ingresso Ritardo con ingresso ON Ritardo con uscita ON Segnale di uscita Tempo di risposta I/O Tempo massimo di risposta degli I/O = Ritardo con ingresso ON + (tempo di ciclo × 2) + ritardo con uscita ON Esempio di calcolo I dati nella tabella seguente determinerebbero il tempo di ciclo minimo e massimo illustrati qui di seguito. Item Tempo Ritardo con ingresso ON 1,5 ms Ritardo con uscita ON 15 ms Tempo di ciclo 20 ms Tempo minimo di risposta degli I/O = 1,5 + 20 + 15 = 36,5 ms Tempo massimo di risposta degli I/O = 1,5 + (20 x 2) +15 = 56,5 ms Nota In questo esempio, il tempo di rinfresco I/O è insignificante per cui non è stato incluso nel tempo minimo di risposta degli I/O. 6-4-2 Sistemi I/O remoti Con i sistemi I/O remoti, si deve considerare soltanto il tempo di ciclo del PLC calcolando i tempi di risposta degli I/O finché il tempo di trasmissione I/O remota è insignificante e inferiore al tempo di ciclo. Il tempo di ciclo, comunque, è aumentato dalla presenza del sistema I/O remoto. In questo paragrafo sono descritti l’elaborazione che determina e i metodi per calcolare i tempi di risposta minimo e massimo dall’ingresso all’uscita. I calcoli presuppongono che l’ingresso e l’uscita siano sui rack slave in un sistema I/O remoto, ma i calcoli sono uguali per i punti I/O su moduli ottici, i moduli di collegamento I/O, i terminali I/O, ecc. Ingresso sul rack slave Uscita sul rack slave X Benché siano possibili, all’occorrenza, equazioni più precise, le equazioni utilizzate per i calcoli seguenti non considerano frazioni di scansione. Guardando i diagrammi di funzionamento seguenti, è importante ricordare la sequenza in cui si verifica l’elaborazione durante la scansione del PLC, in modo 395 Capitolo 6-4 Tempo di risposta degli I/O particolare che gli input non produrranno azioni correttive programmate finché il programma non è stato eseguito. Calcolando i tempi di risposta relativi a ingressi e uscite da un’altra CPU collegata con un modulo di collegamento I/O, si devono considerare il tempo di ciclo della CPU di controllo e il tempo di ciclo del PLC in cui è montato il modulo di collegamento I/O. ! Attenzione Tempi di trasmissione I/O remota Il rumore può aumentare i ritardi I/O. Il tempo di trasmissione I/O remota è calcolato nel modo seguente: TRM = Tempo di trasmissione slave totale per un master = TRT = = ΣTRT + ΣTTT Tempo di trasmissione per ciascun slave 1,4 ms + (0,2 ms × n) Dove n = numero dei canali I/O sul rack slave TTT = = Tempo di trasmissione terminale I/O/modulo I/O ottico 2 ms × m Dove m = numero dei terminali I/O/moduli I/O ottici Tempo minimo di risposta degli I/O Il tempo di risposta minimo si ha quando tutti i segnali sono elaborati non appena vengono ricevuti. Si richiedono, a tale scopo, tre scansioni in modo tale che venga eseguito il programma, come illustrato nel diagramma seguente. Tempo = Ritardo con ingresso ON+tempo di ciclo × 3+ ritardo con uscita ON Tempo di ciclo > Tempi di trasmissione I/O remota Tempo di ciclo CPU Esecuzione programma Trasferimento alla CPU Master Trasferimento a Master Slave Rinfresco I/O slave Ingresso Uscita 396 Capitolo 6-4 Tempo di risposta degli I/O Tempo massimo di risposta Il tempo di risposta massimo si ha quando l’ingresso perde la fase di esecuzione degli I/O del programma della scansione, facendo sì che l’elaborazione debba attendere la successiva trasmissione e quindi la successiva (cioè, la quarta) scansione. Tempo = Ritardo con ingresso ON + tempo di ciclo × 4 + ritardo con uscita ON Tempo di ciclo > Tempi di trasmissione I/O remota Nota Utilizzare l’uscita del tempo di ciclo massimo ad AR 26 nel calcolo del tempo massimo di risposta degli I/O. Tempo di ciclo CPU Esecuzione programma Trasferimento alla CPU Master Rinfresco I/O slave Slave Trasferimento a Master Ingresso Uscita Esempio di calcolo Per un ritardo con ingresso ON di 1,5 ms, un ritardo con uscita ON di 15 ms e un tempo di ciclo di 20 ms, i calcoli sarebbero i seguenti: Tempo minimo di risposta degli I/O Tempo = 1,5 ms + (20 ms × 3) + 15 ms = 76,5 ms Tempo massimo di risposta degli I/O Tempo = 1,5 ms + (20 ms × 4) + 15 ms = 96,5 ms Note 1. Il tempo di ciclo può essere inferiore o uguale al tempo di trasmissione I/O remota quando ci sono moduli I/O speciali su rack slave. In questo caso, ci possono essere cicli in cui non si ha rinfresco degli I/O tra il master e la CPU del C200HX/HG/HE. 2 Il rinfresco per i master viene eseguito soltanto una volta per ciclo, e quindi soltanto dopo la conferma del completamento del ciclo remoto. 3. La durata breve dello stato ON/OFF determinato dalle istruzioni differenziali può provocare l’imprecisione dei segnali trattando i sistemi I/O remoti, a meno che non vengano prese misure di programmazione appropriate. 397 Capitolo 6-4 Tempo di risposta degli I/O 6-4-3 Sistemi host link Il diagramma seguente illustra l’elaborazione eseguita quando un ingresso su un PLC viene trasferito tramite il sistema host link per commutare su ON un’uscita su un altro PLC. Per ulteriori dettagli fare riferimento alla documentazione sul sistema host link. Uscita su #31 Ingresso su #0 X Comando/risposta per modulo # 0 Computer host Comando Comando/risposta per modulo # 31 Comando Risposta Buffer per modulo # 0 CPU scrive host link segnale di ingresso Risposta Tempo di elaborazione del computer host Tempo di ciclo PLC per modulo # 0 host link Rinfresco I/O CPU scrive segnale di uscita Gestione host link Buffer per modulo # 31 host link Tempo di ciclo PLC per modulo # 31 host link Gestione host link Rinfresco I/O Segnale d’ingresso Segnale d’uscita Ritardo con uscita ON Ritardo con ingresso ON Tempo di risposta I/O Le equazioni utilizzate per calcolare i tempi di ciclo minimo e massimo sono illustrate di seguito. Il numero dei cicli richiesti per ogni PLC dipende dalla quantità dei dati da leggere/scrivere. Tempo minimo di risposta = Ritardo con ingresso ON + Tempo di trasmissione del comando + (Tempo di ciclo del PLC per il modulo #0 × 3) + Tempo di trasmissione della risposta + Tempo di elaborazione del computer host + Tempo di trasmissione del comando + (Tempo di ciclo del PLC per il modulo #31 × 3) + Ritardo con uscita ON Tempo massimo di risposta = Ritardo con ingresso ON + Tempo di trasmissione del comando + (Tempo di ciclo del PLC per il modulo #0 × 10) + Tempo di trasmissione della risposta + Tempo di elaborazione del computer host + Tempo di trasmissione del comando + (Tempo di ciclo del PLC per il modulo #31 × 10) + Ritardo con uscita ON 6-4-4 Sistemi PLC Link In questo paragrafo sono descritti l’elaborazione che determina i tempi di risposta minimo e massimo dall’ingresso all’uscita e i metodi per calcolarli . In tutti gli esempi che seguono verranno utilizzati il sistema e le fasi del programma I/O seguenti. Questo sistema contiene otto moduli PLC Link. 398 Capitolo 6-4 Tempo di risposta degli I/O Guardando i diagrammi di funzionamento seguenti, è importante ricordare la sequenza in cui si verifica l’elaborazione durante la scansione del PLC, in modo particolare che gli ingressi non produrranno azioni correttive programmate finché il programma non è stato eseguito. Modulo 0 Modulo PLC Link Modulo PLC Link PLC PLC Ingresso Ingresso su PLC del modulo 0 Bit LR Uscita su PLC del modulo 7 Modulo 7 X Uscita X Ingresso LR XXXX LR XXXX Uscita X Nota Il rumore può aumentare i ritardi I/O. Condizioni PLC Link Tempo minimo di risposta Tempo di ciclo Il sistema PLC Link utilizzato in questo esempio consiste di: • N. dei PLC collegati: 8 • N. dei punti LR collegati: 128 per PLC • Max PLC: 8 • Punti LR utilizzati: 1.024 Qui di seguito è illustrato il flusso dei dati che determinerà il tempo di risposta minimo, cioè, il tempo che si ottiene quando tutti i segnali e le trasmissioni dei dati vengono elaborati non appena si verificano. Programma eseguito. Rinfresco I/O PLC con modulo 0 Buffer nel modulo 0 Tempo minimo di trasmissione Trasmissioni del modulo PLC Link Buffer nel modulo 7 Rinfresco I/O Programma eseguito. PLC con modulo 7 Tempo di ciclo Ingresso Uscita L’equazione per il tempo minimo di risposta degli I/O è il seguente: Tempo di risposta = Ritardo con ingresso ON + Tempo di ciclo del PLC del modulo 0 + Tempo minimo di trasmissione + (Tempo di ciclo del PLC del modulo 7× 2) + Ritardo con uscita ON Inserendo i valori seguenti in questa equazione si avrà un tempo minimo di risposta degli I/O di 149,3 ms. Ritardo con ingresso ON: 1,5 ms Ritardo con uscita ON: 15 ms Tempo di ciclo per il PLC del modulo 0: 20 ms Tempo di ciclo per il PLC del modulo 7: 50 ms Tempo minimo di trasmissione: 2,8 ms+10 ms=12,8 ms 399 Capitolo 6-4 Tempo di risposta degli I/O Tempo massimo di risposta Il diagramma seguente illustra il flusso dei dati che determinerà il massimo tempo di risposta. I ritardi si verificano perché i segnali o i dati sono ricevuti immediatamente dopo l’elaborazione o perché i dati sono inviati durante l’elaborazione. In entrambi i casi, l’elaborazione deve aspettare fino alla successiva scansione/ciclo di polling. La prima uscita verso il buffer nel modulo di polling è ritardata impostando il numero dei bit LR da rinfrescare ad ogni scansione. Un ritardo simile è presente quando i dati LR raggiungono il modulo 7. Il ritardo di polling è il risultato dei dati LR nel relativo PLC aggiornati immediatamente dopo l’invio dei precedenti al buffer nel modulo PLC Link, causando un ritardo fino al successivo ciclo di polling. Si richiede quindi un altro ciclo di polling prima che i dati raggiungano il buffer nel modulo 7 PLC Link. Tempo di ciclo Rinfresco I/O PLC con modulo 0 Buffer nel modulo 0 Ritardo di polling Trasmissioni del modulo PLC Link Buffer nel modulo 7 Tempo di polling PLC Link Tempo di elaborazione della sequenza di induzione Tempo massimo di trasmissione PLC con modulo 7 Tempo di ciclo Ingresso Uscita L’equazione per il tempo massimo di risposta degli I/O è il seguente: Tempo di risposta = ritardo con ingresso ON + [tempo di ciclo del PLC del modulo 0 × (numero dei bit di trasferimento LR ÷ bit di rinfresco I/O)] + α + (tempo di polling del PLC Link + tempo di elaborazione della sequenza di induzione) + {tempo di ciclo del PLC del modulo 7 × (numero dei bit di trasferimento LR ÷ bit di rinfresco I/O) × 2 + 1]} +β + ritardo con uscita ON Se tempo di ciclo del PLC del modulo 0 > tempo di polling del PLC Link, α = tempo di ciclo del PLC del modulo 0. Se tempo di ciclo del PLC del modulo 0 < tempo di polling del PLC Link, α = tempo di polling del PLC Link. Se tempo di ciclo del PLC del modulo 7 > tempo di polling del PLC Link, β = tempo di ciclo del PLC del modulo 7. Se tempo di ciclo del PLC del modulo 7 < tempo di polling del PLC Link, β = tempo di polling del PLC Link. L’inserimento dei valori seguenti in questa equazione determina un tempo massimo di risposta degli I/O di 661,3 ms. Ritardo con ingresso ON: 1,5 ms Ritardo con uscita ON: 15 ms Tempo di ciclo per PLC del modulo 0: 20 ms Tempo di ciclo per PLC del modulo 7: 50 ms Tempo di polling del PLC Link: 2,8 ms × 8 PLC + 10 ms = 32,4 ms Elaborazione sequenza di induzione: 15 ms × (8 PLC – 8 PLC) = 0 ms Bit di rinfresco I/O per il modulo 0 256 Bit di rinfresco I/O per il modulo 7 256 400 Capitolo 6-4 Tempo di risposta degli I/O Riduzione del tempo di risposta IORF(097) può essere utilizzato per ridurre al minimo il tempo di risposta degli I/O configurando un alto numero di bit di rinfresco. (Ricordare che l’aumento del numero dei bit di rinfresco configurati sul Led del pannello posteriore abbrevia il tempo di risposta, ma aumenta il tempo di ciclo del PLC.) I calcoli seguenti per il tempo massimo di ciclo utilizzano la stessa configurazione di sistema utilizzata nei tempi di risposta 5–2. Programmando i PLC per i moduli PLC Link #0 e #7, IORF (097) viene eseguito durante ogni scansione del PLC per i moduli PLC Link. L’equazione base per il tempo massimo di risposta degli I/O è la seguente: Tempo di risposta = ritardo con ingresso ON + [tempo di ciclo del PLC del modulo 0 × (numero dei bit di trasferimento LR ÷ numero dei bit di rinfresco I/O ÷ 2)] + α + tempo di polling del PLC Link + tempo di elaborazione della sequenza di induzione + {tempo di ciclo del PLC del modulo 7 × [(numero dei bit di trasferimento LR ÷ numero dei bit di rinfresco I/O ÷ 2) × 2 + 1]} + β + ritardo con uscita ON Se tempo di ciclo del PLC del modulo 0 > tempo di polling del PLC Link, α = tempo di ciclo del PLC del modulo 0. Se il tempo di ciclo del PLC del modulo 0 < tempo di polling del PLC Link, α = tempo di polling del PLC Link. Se tempo di ciclo del PLC del modulo 7 > tempo di polling del PLC Link, β = tempo di ciclo del PLC del modulo 7. Se il tempo di ciclo del PLC del modulo 7 < tempo di polling del PLC Link, β = tempo di polling del PLC Link. I dati richiesti dalla configurazione di sistema dell’esempio sono i seguenti: Ritardo con ingresso ON 1,5 ms Ritardo con uscita ON 15 ms Tempo di ciclo del PLC del modulo 0 20 ms + 5,7 ms = 25,7 (5,7 ms richiesti per l’esecuzione IORF) Tempo di ciclo del PLC del modulo 7 50 ms + 5,7 ms = 55,7 (5,7 ms richiesti per l’esecuzione IORF) Numero dei moduli PLC Link 8 Numero dei bit LR 1.024 Numero dei bit di rinfresco per il modulo 0 256 Numero dei bit di rinfresco per il modulo 7 256 Tempo di polling del PLC Link 2,8 ms × 8 PLC + 10 ms = 32,4ms Tempo di elaborazione sequenza d’induzione 15ms×(8 PLC – 8 PLC)=0 ms Posizionando questi valori nell’equazione si avrà un tempo massimo di risposta degli I/O di 466,9 ms, circa 200 ms in meno rispetto a quando IORF non viene utilizzato. 6-4-5 Tempo di risposta degli I/O nei collegamenti punto–punto Quando due C200HX/HG/HE sono collegati punto–punto, il tempo di risposta degli I/O è il tempo richiesto perchè un segnale in ingresso eseguito in uno dei C200HX/HG/HE sia trasferito verso l’altro C200HX/HG/HE per mezzo di collegamenti punto–punto. La comunicazione nel collegamento punto–punto viene eseguita reciprocamente tra master e slave. I rispettivi tempi di trasmissione sono illustrati qui di seguito, a seconda del numero di canali LR utilizzati. Numero di canali utilizzati Tempo di trasmissione 64 canali (LR da 00 a 63) 39 ms 32 canali (LR da 00 a 31) 20 ms 16 canali (LR da 00 a 15) 10 ms 401 Capitolo 6-4 Tempo di risposta degli I/O I tempi di risposta degli I/O minimo e massimo sono qui illustrati utilizzando come esempio le istruzioni seguenti eseguite nel master e nello slave. In questo esempio, la comunicazione procede dal master verso lo slave. Uscita (LR) Ingresso (LR) Ingresso Uscita Le condizioni seguenti sono prese come esempio per calcolare i tempi di risposta degli I/O. Ritardo con ingresso ON: 8 ms Tempo di ciclo master: 10 ms Tempo di ciclo slave: 14 ms Ritardo con uscita ON: 10 ms Numero di canali LR: 64 canali Tempo minimo di risposta in I/O 1, 2, 3... Il C200HX/HG/HE risponde il più rapidamente possibile nelle circostanze seguenti: 1. Il C200HX/HG/HE riceve un segnale in ingresso immediatamente prima della fase di rinfresco del ciclo. 2. La trasmissione da master verso slave inizia immediatamente. 3. Lo slave, dopo il completamento della comunicazione, elabora immediatamente le informazioni. Rinfresco I/O Punto di ingresso Ritardo con ingresso ON Funzioni generali, comunicazioni, ecc. Master Bit di ingresso Elaborazione CPU Tempo di ciclo Esecuzione dell’istruzione Collegamento punto–punto Esecuzione dell’istruzione Master verso slave Elaborazione CPU Slave Esecuzione dell’istruzione Esecuzione dell’istruzione Ritardo con uscita ON Punto di uscita Il tempo minimo di risposta in I/O è il seguente: Ritardo con ingresso ON: Tempo di ciclo master: Tempo di trasmissione: Tempo di ciclo slave: + Ritardo con uscita ON: Tempo minimo di risposta in I/O: 8 ms 10 ms 39 ms 15 ms 10 ms 82 ms Tempo massimo di risposta Il C200HX/HG/HE risponde più lentamente nelle circostanze seguenti: per I/O 1, 2, 3... 1. Il C200HX/HG/HE riceve un segnale di ingresso immediatamente dopo la fase di rinfresco del ciclo. 2. La trasmissione da master verso slave non inizia immediatamente. 402 Capitolo 6-4 Tempo di risposta degli I/O 3. La comunicazione avviene immediatamente dopo che lo slave ha finito l’aggiornamento della comunicazione. Punto di ingresso Rinfresco I/O Ritardo con ingresso ON Funzioni generali, comunicazione, ecc. Master Bit di ingresso Tempo di ciclo Elaborazione CPU Esecuzione dell’istruzione Comunicazione nel collegamento punto–punto Esecuzione dell’istruzione Master verso slave Elaborazione CPU Slave Esecuzione dell’istruzione Slave verso Master master verso slave Esecuzione dell’istruzione Esecuzione dell’istruzione Esecuzione dell’istruzione Ritardo con uscita ON Punto di uscita Il tempo massimo di risposta degli I/O è il seguente: Ritardo con ingresso ON: 8 ms Tempo di ciclo master: 10 ms × 2 Tempo di trasmissione: 39 ms × 3 Tempo di ciclo slave: 15 ms × 2 + Ritardo con uscita ON: 10 ms Tempo massimo di risposta per I/O: 185 ms 6-4-6 Tempo di risposta dell’Interrupt Questo paragrafo descrive il tempo di risposta dal momento in cui viene ricevuto l’ingresso dell’interrupt fino al momento in cui viene completata l’esecuzione della relativa subroutine. Interrupt in ingresso Segnale in ingresso di interrupt esterno Segnale di interrupt interno Esecuzione della subroutine dell’interrupt t1 t2 t1 = ritardo per l’interrupt con ingresso ON t2 = tempo di risposta dell’interrupt del software Tempo totale di risposta dell’interrupt = t1 + t2 Il ritardo per l’interrupt con ingresso ON è di 0,2 ms o meno. Il tempo di risposta dell’interrupt del software dipende dall’impostazione dei parametri della risposta dell’interrupt in DM 6620 del setup del PLC. Se DM 6620 viene impostato per la modalità C200H compatibile (0000), il tempo di risposta dell’interrupt del software è inferiore a 10 ms. Se DM 6620 viene impostato per la modalità C200HX/HG/HE (1xxx), il tempo di risposta dell’interrupt del software è inferiore a 1 ms. Il tempo totale di risposta dell’interrupt è illustrato nella tabella seguente. 403 Capitolo 6-4 Tempo di risposta degli I/O Impostazione risposta interrupt Tempo totale risposta interrupt Modalità C200H compatibile (Risposta normale) 0,2 ms + (Totale di: tempo di elaborazione I/O speciale, tempo di elaborazione I/O remoto, tempo di gestione host link, esecuzione dell’istruzione) Modalità C200HS (Risposta ad alta velocità) 1,2 ms o meno Interrupt a tempo Intervallo dell’interrupt a tempo Clock tempo hardware Esecuzione subroutine dell’interrupt a tempo t3 t3 t3 t3 t3 = tempo di risposta dell’interrupt del software Tempo totale di risposta dell’interrupt = t3 (tempo di risposta dell’interrupt del software) Il tempo di risposta dell’interrupt del software dipende dall’impostazione dei parametri della risposta dell’interrupt in DM 6620 del setup del PLC. Se DM 6620 viene impostato per la modalità C200H compatibile (0000), il tempo di risposta dell’interrupt del software è inferiore a 10 ms. Se DM 6620 viene impostato per la modalità C200HX/HG/HE (1xxx), il tempo di risposta dell’interrupt del software è inferiore a 1 ms. Il tempo totale di risposta dell’interrupt è illustrato nella tabella seguente. Impostazione risposta interrupt Tempo totale risposta interrupt Modalità a C200H compatibile (Risposta normale) Totale di: tempo di elaborazione I/O speciale, tempo di elaborazione I/O remoto, tempo di gestione host link, esecuzione dell’istruzione Modalità C200HS (Risposta ad alta velocità) 1,0 ms o meno Note 1. Se c’è un’istruzione nel programma la cui esecuzione richiede un tempo maggiore di 10 ms utilizzando la modalità C200H compatibile, il tempo totale di risposta dell’interrupt sarà uguale al tempo di esecuzione dell’istruzione che richiede un tempo maggiore di 10 ms. 2. Questi calcoli presuppongono la necessità di eseguire soltanto un interrupt alla volta. Se più interrupt sono generati contemporaneamente, l’esecuzione di tutti tranne il primo andrà in attesa, aumentando i tempi di risposta dati sopra. 3. Se un interrupt si verifica mentre si gestisce un C200HS-SLK o un C200HS-SNT, l’interrupt non sarà elaborato finché non verrà completata la gestione del modulo SYSMAC NET/SYSMAC LINK. I tempi di risposta saranno, in questo caso, quelli illustrati nella tabella seguente e non saranno interessati dall’impostazione della risposta dell’interrupt. Interrupt Tempo totale risposta interrupt Interrupt in ingresso max 10,2 ms. Interrupt a tempo max 10 ms. Questa restrizione non si applica utilizzando un C200HW-SLK con un PLC C200HX/HG/HE. Tempo di elaborazione dell’interrupt 404 Questo paragrafo descrive il tempo di elaborazione dal momento in cui viene ricevuto un ingresso di interrupt, attraverso l’esecuzione del programma, fino al momento in cui si ha un ritorno alla posizione originale del programma. Il limite della frequenza del conteggio derivante dall’uso del periodo di interrupt a tempo o degli interrupt in ingresso come ingresso del conteggio è determinato dal tempo di elaborazione dell’interrupt. Capitolo 6-4 Tempo di risposta degli I/O Tempo di elaborazione dell’interrupt = Tempo totale di risposta dell’interrupt + tempo di esecuzione del programma di interrupt + tempo di ritorno dell’interrupt Il tempo di esecuzione del programma di interrupt è determinato dal contenuto della subroutine dell’interrupt. Questo tempo è insignificante se vengono eseguiti soltanto SBN(092) e RET(093). Il tempo di ritorno dell’interrupt è di 0,04 ms. Note 1. Se ci sono diversi elementi che possono provocare gli interrupt o se il periodo di interrupt è più breve del tempo medio di elaborazione dell’interrupt, la subroutine dell’interrupt sarà eseguita mentre il programma principale non sarà eseguito. Questo farà sì che si superi il tempo di monitoraggio del ciclo e che si generi un errore FALS 9F, arrestando il funzionamento del PLC. 2. Il tempo massimo dell’esecuzione del programma di interrupt è contenuto in SR 262 e SR 263. Ampiezza dell’impulso dell’ingresso di interrupt L’ampiezza dell’impulso in ingresso verso i moduli dell’ingresso di interrupt deve essere impostata all’interno delle condizioni illustrate nel diagramma seguente. 0,5 ms min. 0,2 ms min. Tempo ON: Tempo OFF: 0,2 ms min. 0,5 ms min. 405 CAPITOLO 7 Monitoraggio ed esecuzione del programma Questo capitolo descrive le procedure per il monitoraggio e il controllo del PLC mediante una Console di Programmazione. Fare riferimento al Manuale Operativo SYSMAC Support Software per le procedure SSS se viene utilizzato un computer con l’SSS. 7-1 7-2 Monitoraggio del funzionamento e modifica dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni della Console di Programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-1 Monitoraggio bit/canali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-2 Set/reset forzato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-3 Cancellazione forzatura set/reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-4 Modifica dati esadecimali/BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-5 Conversione esadecimali/ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-6 Conversione esadecimali a 4 digit/decimali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-7 Conversione esadecimali a 8 digit/decimali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-8 Monitoraggio della variazione di stato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-9 Monitoraggio di 3 canali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-10 Modifica dati dei 3 canali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-11 Monitoraggio in binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-12 Modifica dati binari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-13 Modifica valore di predisposizione temporizzatore/contatore . . . . . . . . . . . . . . . 7-2-14 Assegnazioni codice funzione istruzioni estese . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-15 Assegnazione area UM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-16 Lettura e impostazione dell’orologio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-17 Mappatura tastiera di espansione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2-18 Mappatura tastiera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 408 408 411 413 414 415 416 417 418 419 419 420 422 423 426 426 428 428 429 407 Operazioni della Console di Programmazione 7-1 Capitolo 7-2 Monitoraggio del funzionamento e modifica dei dati Il modo più semplice per monitorare il funzionamento consiste nella visualizzazione dell’indirizzo, di cui lo stato dell’operando deve essere monitorato mediante la Lettura Programma o una delle operazioni di ricerca. Se il funzionamento si svolge in modalità RUN o MONITOR, sarà indicato lo stato di ogni bit visualizzato. Questo capitolo presenta altre procedure per il monitoraggio dati, come le procedure per la modifica di dati già esistenti in un’area. I dati che possono essere modificati comprendono il PV (valore corrente) e l’SV (valore di predisposizione) per ogni temporizzatore o contatore. Tutte le operazioni di monitoraggio di questo capitolo possono essere eseguite in modalità RUN, MONITOR o PROGRAM e possono essere annullate premendo CLR. Tutte le operazioni di modifica dati, eccetto le modifiche dell’SV temporizzatore/ contatore sono eseguite dopo una delle operazioni di monitoraggio. La modifica dati è possibile in modalità MONITOR o PROGRAM, ma non in modalità RUN. 7-2 7-2-1 Operazioni della Console di Programmazione Monitoraggio bit/canali Lo stato di ogni bit o canale in qualsiasi area dati può essere monitorato applicando la seguente procedura. Sebbene il funzionamento è possibile in qualsiasi modalità, la visualizzazione dello stato ON/OFF sarà possibile per i bit solo in modalità MONITOR o RUN. L’operazione di monitoraggio bit/digit può essere inserita da un display cancellato, indicando il primo bit o il primo canale da monitorare, o può essere inserita da qualsiasi indirizzo nel programma, visualizzando il bit o l’indirizzo di canale il cui stato deve essere monitorato, e premendo MONTR. Quando un bit è monitorato, sarà visualizzato lo stato ON/OFF (in modalità MONITOR o RUN); quando viene indicato un indirizzo di canale diverso da un temporizzatore o un contatore, sarà visualizzato il contenuto del digit del canale; e quando è indicato un numero di temporizzatore o contatore, sarà visualizzato il PV del temporizzatore; la presenza di un piccolo riquadro indicherà che il flag di completamento di un temporizzatore/contatore è ON. Quando sono monitorati più canali, apparirà un accento circonflesso sotto il digit più a sinistra della designazione indirizzo, per facilitare la distinzione tra indirizzi diversi. Lo stato dei relè TR e dei flag SR (flag aritmetici), cancellati quando è eseguita END(001), non può essere monitorato. Possono essere monitorati in una volta fino a sei indirizzi di memoria, o bit, canali o una combinazione di entrambi, sebbene ne siano visualizzati soltanto tre alla volta. Per monitorare più di un indirizzo, ritornare all’inizio della procedura e continuare a indicare gli indirizzi. Il monitoraggio di tutti gli indirizzi indicati continuerà, a meno che non vengano indicati più di sei indirizzi. In tal caso, l’indirizzo più a sinistra sarà annullato. Per visualizzare gli indirizzi che sono monitorati ma non appaiono sul display della Console di Programmazione, premere MONTR senza indicare un altro indirizzo. Gli indirizzi monitorati saranno spostati a destra. Premendo MONTR, gli indirizzi monitorati continueranno a spostarsi a destra finché l’indirizzo più a destra verrà visualizzato sul display da sinistra. Durante un’operazione di monitoraggio, i tasti freccia in alto e freccia in basso possono essere utilizzati per incrementare e decrementare l’indirizzo più a sinistra sul display e si può utilizzare CLR per annullare il monitoraggio dell’indirizzo più a sinistra sul display. Se l’ultimo indirizzo è annullato, il monitoraggio sarà annullato. L’operazione di monitoraggio può essere annullata con SHIFT e CLR anche indipendentemente dal numero di indirizzi monitorati. LD e OUT possono essere usati soltanto per indicare il primo indirizzo da visualizzare, ma non quando è già monitorato un indirizzo. 408 Capitolo 7-2 Operazioni della Console di Programmazione Sequenza di tasti [Indirizzo] Cancella l’indirizzo più a sinistra Annulla l’operazione di monitoraggio (Area EM) (Banco EM 0, 1 o 2.) Esempi Gli esempi seguenti mostrano varie applicazioni di monitoraggio. Lettura del programma e monitoraggio 00100 00100READ TIM 000 T000 1234 T001 o0000 Indica il flag di completamento ON 00100 TIM 001 L’operazione di monitoraggio è annullata 409 Capitolo 7-2 Operazioni della Console di Programmazione Monitoraggio bit 00000 00000 LD 00001 00001 ^ ON 00000 CONT 00001 Nota Lo stato dei flag SR dei relè TR SR 25503... 25507 (flag aritmetici), cancellati quando END(001) viene eseguita, non può essere monitorato. Monitoraggio canale 00000 00000 CHANNEL 000 00000 CHANNEL LR 01 cL01 FFFF cL00 0000 Monitoraggio canali area EM 00000 00000 CHANNEL e0-0000 410 00000 CHANNEL e1-0100 Specificare il banco EM e l’indirizzo da monitorare. e0100 10000 Il canale EM specificato e il suo contenuto sono visualizzati. Capitolo 7-2 Operazioni della Console di Programmazione Monitoraggio di più indirizzi 00000 00000 TIM 000 T000 0100 00000 T000 0100 00001 T000 0100 00001 T000 OFF 0100 D000000001 T000 ^OFF 0100 D000000001 T000 10FF^ OFF 0100 T000D000000001 0100 10FF^ OFF D000000001 10FF^ OFF 00001 ^ OFF 00000 CONT Annulla il monitoraggio dell’indirizzo più a sinistra 00001 00000 CHANNEL DM 0000 L’operazione di monitoraggio è annullata 0000000001 S ONR OFF Indica il reset forzato in funzione. Indica il set forzato in funzione. 7-2-2 Set/reset forzato Quando viene eseguita l’operazione di monitoraggio bit/digit e un bit, un temporizzatore o un indirizzo contatore è il più a sinistra sul display, può essere utilizzato PLAY/SET per mandare ON il bit, per avviare il temporizzatore o incrementare il contatore e REC/RESET per mandare OFF il bit o per resettare il temporizzatore o contatore. I temporizzatori non funzioneranno in modalità PROGRAM. I bit SR non possono essere mandati ON e OFF con questa operazione. Lo stato del bit resterà ON o OFF solo fino a quando il tasto rimane premuto; lo stato originario viene ripristinato quando il tasto viene rilasciato. Se è avviato un temporizzatore, il flag di completamento sarà ON quando viene raggiunto l’SV. 411 Capitolo 7-2 Operazioni della Console di Programmazione Per mantenere lo stato del bit dopo che il tasto è rilasciato, possono essere utilizzati SHIFT e PLAY/SET o SHIFT e REC/RESET. Il bit non ritornerà allo stato originario finché non viene premuto il tasto NOT o non viene soddisfatta una delle seguenti condizioni. 1, 2, 3... 1. Viene eseguita l’operazione di cancellazione forzatura. 2. Viene modificata la modalità del PLC. (Vedi nota.) 3. Arresto del funzionamento per errore fatale o per interruzione dell’alimentazione. 4. Viene eseguita l’operazione di registrazione tabella di I/O. Questa operazione può svolgersi in modalità MONITOR per controllare il cablaggio delle uscite dal PLC prima dell’esecuzione reale del programma. Non può essere eseguita in modalità RUN. Nota La forzatura set/reset sarà conservata passando dalla modalità PROGRAM a MONITOR se il bit di ritenuta forzatura è ON e DM 6601 del setup del PLC è stato impostato per conservare lo stato del bit. Fare riferimento a 3-6-5 Setup del PLC per i dettagli. Sequenza di tasti Bit o temporizzatore/ contatore correntemente monitorato a sinistra sul display Esempio L’esempio seguente mostra come i bit o i temporizzatori possono essere controllati con la forzatura set/reset. I display riportati si riferiscono alla seguente sezione del programma. 00100 TIM 000 012.3 s #0123 TIM 000 00500 Indirizzo Istruzione 00200 LD 00201 TIM Dati 00100 000 # 00202 LD 00203 OUT TIM 0123 000 00500 I seguenti display mostrano quanto accade quando TIM 000 è forzato a ON con 00100 OFF (cioè 00500 è ON) e quanto accade quando TIM 000 è resettato con 412 Capitolo 7-2 Operazioni della Console di Programmazione 00100 ON (cioè il temporizzatore inizia il funzionamento, mandando a OFF 00500, che ritorna ON quando il temporizzatore ha terminato il conteggio SV). (Questo esempio è eseguito in modalità MONITOR.) 0010000500 ^OFF^ OFF Monitoraggio 00100 e 00500. 0010000500 ON^ OFF Forzatura set del bit. Indica che la forzatura set/reset è in corso. 0010000500 OFF^ OFF Reset del bit con set forzato. T0000010000500 ^OFF^ OFF T0000010000500 0123^ OFF^ OFF T0000010000500 0000^ OFF^ ON Monitoraggio TIM 000. Forzatura TIM 000 manda ON 00500. T0000010000500 0123^ OFF^ OFF TIM 000 ritorna allo stato originario quando PLAY/SET è rilasciato. T0000010000500 o0000^ ON^ ON Display con 0010 originariamente ON. T0000010000500 0123^ ON^ OFF T0000010000500 0122^ ON^ OFF T0000010000500 o0000^ ON^ ON Il temporizzatore inizia il conteggio, mandando 00500 OFF.* Quando il tempo è scaduto, 00500 va di nuovo ON. Indica che il tempo è scaduto. *Temporizzazione non eseguita in modalità PROGRAM. 7-2-3 Cancellazione forzatura set/reset Questa operazione ripristina lo stato di tutti i bit nelle aree I/O, IR, TIM, CNT, HR, AR o LR sottoposte a set/reset forzato. E’ possibile in modalità PROGRAM o MONITOR. Sequenza di tasti Quando sono premuti i tasti PLAY/SET e REC/RESET, si attiverà un segnalatore acustico. Se viene premuto erroneamente il tasto sbagliato, premere CLR e iniziare daccapo. 413 Capitolo 7-2 Operazioni della Console di Programmazione Esempio L’esempio seguente mostra i display visualizzati durante l’esecuzione normale dello stato Restore. 00000 00000 00000FORCE RELE? 00000FORCE RELE END 7-2-4 Modifica dati esadecimali/BCD Quando è eseguita l’operazione di monitoraggio bit/digit e un valore esadecimale o BCD è il più a sinistra sul display, può essere utilizzato CHG per modificare il valore. I canali SR non possono essere modificati. Se un temporizzatore o un contatore è il più a sinistra sul display, il PV sarà visualizzato e il valore verrà modificato. Fare riferimento a 7-2-13 Modifica valore di predisposizione temporizzatore/contatore per la procedura di modifica dell’SV. Il PV può essere modificato in modalità MONITOR soltanto quando il temporizzatore o il contatore è in funzione. Per modificare il contenuto dell’indirizzo del canale più a sinistra, premere CHG, inserire il valore desiderato e premere WRITE. Sequenza di tasti Canale correntemente monitorato a sinistra sul display. 414 [ Dati ] Capitolo 7-2 Operazioni della Console di Programmazione Esempio L’esempio seguente mostra gli effetti della modifica del PV di un temporizzatore. Questo esempio è in modalità MONITOR 00000 00000 TIM Stato di monitoraggio del PV temporizzatore che sarà modificato. 000 T000 0122 Temporizzazione PRES VAL? T000 0119 ???? Decremento PV Temporizzazione PRES VAL? T000 0100 0200 Temporizzazione PV modificato. I PV temporizzatore/contatore possono essere modificati anche quando il temporizzatore/contatore è in funzione. T000 0199 Temporizzazione 7-2-5 Conversione esadecimali/ASCII Questa operazione trasforma la visualizzazione dei dati DM da esadecimali a 4 digit in ASCII e viceversa. Sequenza di tasti Canale correntemente visualizzato. Esempio 00000 00000 CH DM 0000 Monitorare canale DM desiderato. D0000 4412 D0000 “AB” Premere TR per modificare la visualizzazione in codice ASCII. D0000 4142 Premere di nuovo TR per riportare la visualizzazione in esadecimale. 415 Capitolo 7-2 Operazioni della Console di Programmazione 7-2-6 Conversione esadecimali a 4 digit/decimali Questa operazione trasforma la visualizzazione da esadecimale a 4 digit normale o con segno in rappresentazione decimale e viceversa. I valori decimali da 0 a 65.535 sono validi quando si inseriscono dati esadecimali a 4 digit normali e i valori decimali da –32,768 a +32.767 sono validi quando si inseriscono dati esadecimali a 4 digit con segno. Sequenza di tasti Monitoraggio canale singolo o 3 canali correntemente visualizzati. [Nuovi dati] TR TR Cancella i nuovi dati di ingresso. (NOT commuta tra dati normali e con segno.) Specifica i dati con segno positivo. Specifica i dati con segno negativo. Esempio cL01D000000001 CFC7 1234R OFF TR cL01 -12345 cL01 53191 Monitorare il canale desiderato. (Canale più a sinistra nel monitoraggio di 3 canali.) Premere SHIFT e TR per la conversione in decimali con segno. Premere NOT per commutare tra dati con segno e normali. cL01 -12345 PRES VAL? cL01-12345 Premere CHG per modificare il contenuto del canale visualizzato. PRES VAL? cL01+12345 Premere PLAY/SET per specificare i dati con segno positivo. PRES VAL? cL01+32767 Inserire il nuovo valore. cL01 +32767 TR 416 cL01D000000001 7FFF 1234R OFF Premere WRITE per inserire i nuovi dati nella memoria. Premere SHIFT e TR per la conversione della visualizzazione in esadecimale. Capitolo 7-2 Operazioni della Console di Programmazione 7-2-7 Conversione esadecimali a 8 digit/decimali Questa operazione trasforma la visualizzazione dei dati da esadecimali a 4 o 8 digit normale o con segno in decimali e viceversa. I valori decimali da 0 a 4.294.967.295 sono validi quando si inseriscono dati esadecimali a 8 digit normali, e i valori decimali da –2,147,483,648 a +2.147.483.647 sono validi quando si inseriscono dati esadecimali a 8 digit con segno. Sequenza di tasti Monitoraggio 3 canali correntemente visualizzati. [Nuovi dati] TR TR Cancella i nuovi dati di ingresso. (NOT commuta tra dati normali e con segno.) Specifica i dati con segno positivi. Specifica i dati con segno negativi. Esempio cL01D000000001 8000 1234R OFF TR Monitorare il primo canale desiderato. (Canale più a sinistra del monitoraggio di 3 canali.) cL01 -32768 Premere SHIFT e TR per la conversione in decimali con segno. cL02 cL01 -0000098304 Premere EXT per la conversione in decimali a 8 digit con segno. (In questo caso, LR 02 contiene FFFE.) cL02 cL01 4294868992 Premere NOT per commutare tra dati con segno e normali. cL02 cL01 -0000098304 [Nuovi dati] PRES VAL? cL02-0000098304 Premere CHG per modificare il contenuto dei canali visualizzati. PRES VAL? cL02+0000098304 Premere PLAY/SET per specificare i dati con segno positivo. PRES VAL? cL02+1234567890 Inserire il nuovo valore. (1234567890 in questo caso.) cL02 cL01 +1234567890 TR cL01D000000001 02D2 1234R OFF Premere WRITE per inserire i nuovi dati nella memoria. Premere SHIFT e TR per convertire nuovamente in esadecimali. I 4 digit più a destra 417 Capitolo 7-2 Operazioni della Console di Programmazione 7-2-8 Monitoraggio della variazione di stato Questa operazione può essere utilizzata per monitorare lo stato della differenziazione sul fronte di salita o di discesa dei bit delle aree IR, SR, AR, LR, HR e TC. A questo scopo, visualizzare il bit prescelto più a sinistra sul display di monitoraggio, e quindi premere SHIFT e il tasto freccia in alto/in basso. CLR riporta l’operazione di monitoraggio della variazione di stato in una normale visualizzazione di monitoraggio bit. Sequenza di tasti Monitoraggio bit in corso Esempio L000000108H2315 OFF OFF ON Monitorare il bit prescelto in modo che sia quello più a sinistra sullo schermo. L000000108H2315 U@OFF OFF ON Premere SHIFT e freccia in alto per specificare la differenziazione sul fronte di salita (U@). (Premere SHIFT e freccia in basso per specificare la differenziazione sul fronte di discesa (D@). Si attiverà un segnalatore acustico quando viene individuata la differenziazione U@ o D@. 418 L000000108H2315 OFF OFF ON Al termine del monitoraggio variazione di stato si ritorna al display monitoraggio bit originario. D0002 0123 Premere CLR per annullare il monitoraggio variazione di stato e ritornare al display monitoraggio bit originario. Capitolo 7-2 Operazioni della Console di Programmazione 7-2-9 Monitoraggio di 3 canali Per monitorare tre canali consecutivi insieme, specificare il canale con la numerazione più bassa, premere MONTR, e poi EXT per visualizzare il contenuto del canale specificato e dei due canali seguenti. CLR trasforma il monitoraggio di tre canali in visualizzazione di singolo canale. Sequenza di tasti Monitoraggio singolo canale in corso Esempio 00000 00000 CHANNEL DM 0000 Specificare il primo dei 3 canali da monitorare. D0000 89AB D0002D0001D0000 0123 4567 89AB D0003D0002D0001 ABCD 0123 4567 Premere i tasti freccia in alto/in basso per modificare gli indirizzi dei canali. D0004D0003D0002 EF00 ABCD 0123 D0005D0004D0003 1111 EF00 ABCD D0004D0003D0002 EF00 ABCD 0123 D0002 0123 7-2-10 Modifica dati dei 3 canali Questa operazione modifica il contenuto di un canale durante l’operazione di monitoraggio dei 3 canali. Il riquadro lampeggiante indica il punto di modifica dei dati. Dopo l’inserimento del nuovo valore e dopo aver premuto WRITE, i dati originari verranno sovrascritti con i nuovi. Se CLR viene premuto prima di WRITE, l’operazione di modifica sarà annullata e riprenderà l’operazione di monitoraggio di 3 canali. Questa operazione non può essere usata per modificare SR 253... SR 255. Possono essere modificati solo i canali visualizzati sul display monitoraggio di 3 canali. Sequenza di tasti 3 canali correntemente visualizzati [ Dati ] 419 Capitolo 7-2 Operazioni della Console di Programmazione Esempio D0002D0001D0000 0123 4567 89AB Monitoraggio 3 canali in corso. D0002 3CH CHG? 0123 4567 89AB Arresto durante il monitoraggio. D0002 3CH CHG? 0001 4567 89AB Inserire nuovi dati. D0002 3CH CHG? 0001 4567 89AB D0002 3CH CHG? 0001 2345 89AB D0002D0001D0000 0001 2345 89AB D0002D0001D0000 0123 4567 89AB 7-2-11 Riprende il monitoraggio precedente. Monitoraggio in binario E’ possibile specificare la visualizzazione in binario del contenuto di un canale monitorato premendo SHIFT e MONTR dopo l’inserimento dell’indirizzo del canale. I canali possono essere monitorati consecutivamente utilizzando i tasti direzionali per incrementare e decrementare l’indirizzo del canale visualizzato. Per cancellare la visualizzazione in binario, premere CLR. Sequenza di tasti [Canale] Cancellazione monitoraggio in binario Cancellazione completa monitoraggio (Area EM) (Banco EM 0, 1 o 2.) 420 Capitolo 7-2 Operazioni della Console di Programmazione Esempio 00000 00000 CHANNEL 000 c000 MONTR 0000000000001111 c001 MONTR 0000010101010100 00000 CHANNEL 001 00000 00000 CHANNEL DM 0000 D0000 FFFF D0000 MONTR 1111111111111111 D0000 FFFF 00000 CHANNEL DM 0000 0000S0100R0110SR Indica il reset forzato in atto Indica il set forzato in atto 421 Operazioni della Console di Programmazione Capitolo 7-2 7-2-12 Modifica dati binari Questa operazione assegna un nuovo valore binario a 16 digit a un canale IR, HR, AR, DM, EM o LR. Il cursore, che può essere spostato a sinistra con il tasto freccia in alto e a destra con il tasto freccia in basso, indica la posizione del bit da modificare. Dopo essersi posizionati sul bit desiderato, si può inserire 0 o 1 come nuovo valore. Il bit può essere anche un set o un reset forzato premendo SHIFT e PLAY/SET o REC/RESET. S o R appariranno quindi nella posizione del bit. Premendo il tasto NOT verrà eliminata la forzatura, S diventerà 1 e R diventerà 0. Dopo la modifica del valore di un bit, il riquadro lampeggiante apparirà nella posizione successiva a destra del bit modificato. Sequenza di tasti Canale correntemente visualizzato in binario. (Cancellazione forzatura) 422 Capitolo 7-2 Operazioni della Console di Programmazione Esempio 00000 00000 CHANNEL 000 00000 CHANNEL 001 c001 MONTR 0000010101010101 c001 CHG? 000010101010101 c001 CHG? 100010101010101 c001 CHG? 100010101010101 c001 CHG? 100010101010101 c001 CHG? 100S10101010101 c001 CHG? 100010101010101 c001 CHG? 10S010101010101 c001 CHG? 1RS010101010101 c001 MONTR 10RS010101010101 Bit IR 00115 Bit IR 00100 7-2-13 Modifica valore di predisposizione temporizzatore/contatore Ci sono due modi per modificare il valore di predisposizione di un temporizzatore o contatore: o inserendo un nuovo valore, o incrementando/decrementando il valore di predisposizione corrente. Entrambi i metodi possono essere utilizzati soltanto in modalità MONITOR o PROGRAM. In modalità MONITOR, il valore di predisposizione può essere modificato durante l’esecuzione del programma. L’incremento e il decremento del valore di predisposizione è possibile solo quando tale valore è inserito come costante. Per applicare uno dei due metodi, visualizzare prima l’indirizzo del temporizzatore o contatore il cui SV deve essere modificato, premere il tasto freccia in basso, e quindi CHG. Per modificare l’SV, il nuovo valore può essere inserito numericamente seguito da WRITE oppure, per incrementare e decrementare l’SV corrente, si può utilizzare EXT e i tasti direzionali. Nel caso di incremento e/o decremento, si può premere CLR una volta per modificare l’SV secondo il valore incrementato o decrementato conservando il display che appare quando EXT viene premuto, oppure si può premere CLR due volte per ritornare al display originario con il nuovo SV. Questa operazione può essere eseguita per modificare la designazione dell’SV da costante a indirizzo di canale e viceversa. 423 Capitolo 7-2 Operazioni della Console di Programmazione Sequenza di tasti Temporizzatore/contatore correntemente visualizzato [Nuovo SV] Esempio Inserimento nuovo valore di predisposizione e modifica in designazione di canale Gli esempi seguenti mostrano l’inserimento di una nuova costante, modificando la designazione da costante a indirizzo e incrementando una nuova costante. 00000 00000 TIM 000 00201SRCH TIM 000 00201 TIM DATA #0123 00201 TIM DATA T000 #0123 #???? 00201 TIM DATA T000 #0123 #0124 Inserimento nuovo SV 00201 TIM DATA #0124 00201 DATA? T000 #0123 c??? 00201 DATA? T000 #0123 c010 00201 TIM DATA 010 424 Modifica in designazione canale Capitolo 7-2 Operazioni della Console di Programmazione Incremento e decremento 00000 00000 TIM 000 00201SRCH TIM 000 00201 TIM DATA #0123 00201 TIM DATA T000 #0123 #???? 00201DATA ? U/D T000 #0123 #0123 SV corrente (durante la modifica) SV prima della modifica 00201DATA ? T000 #0123 #0122 00201DATA ? T000 #0123 #0123 00201DATA ? T000 #0123 #0124 00201DATA ? T000 #0124 #???? 00201 TIM DATA #0124 Ritorno alla visualizzazione originaria con il nuovo SV 425 Capitolo 7-2 Operazioni della Console di Programmazione 7-2-14 Assegnazioni codice funzione istruzioni estese Questa operazione viene eseguita per leggere o modificare i codici funzione assegnati alle istruzioni estese. Ci sono 18 codici funzione assegnabili alle istruzioni estese: 17, 18, 19, 47, 48, 60 a 69 e da 87 a 89. A un’istruzione estesa può essere assegnato più di un codice funzione. Nota Le assegnazioni dei codici funzione possono essere lette in qualsiasi modalità, ma possono essere modificate solo in modalità PROGRAM. Le assegnazioni dei codici funzione sono possibili solo quando il pin 1 del commutatore DIP è OFF e il pin 4 è ON. Sequenza di tasti Esempio 00000 Premere CLR per visualizzare il display iniziale. INST TBL READ FUN17: ASFT Premere EXT per iniziare a visualizzare le assegnazioni dei codici funzione. INST TBL READ FUN18: SCAN Premere i tasti freccia in alto/in basso per scorrere le assegnazioni dei codici funzione. INST TBL READ FUN17: ASFT Il tasto freccia in alto visualizza i codici funzione in ordine ascendente: 17, 18,..., 89, 17, 18,... INST TBL READ FUN18: SCAN Il tasto freccia in basso visualizza i codici funzione in ordine decrescente: 17, 89, 88,... 17, 89,... INST TBL CHG? FUN18: SCAN→???? Premere CHG per modificare l’assegnazione dei codici funzione visualizzati. INST TBL CHG? FUN18: SCAN →MCMP Premere i tasti in alto/in basso per scorrere nelle istruzioni. INST TBL CHG? FUN18: SCAN →PID INST TBL READ FUN18: PID Premere WRITE per registrare la modifica nella memoria. 00000 Premere CLR per ritornare al display iniziale. 7-2-15 Assegnazione area UM Questa operazione viene eseguita per assegnare parte dell’area UM come area DM di espansione ed è possibile solo in modalità PROGRAM. La memoria assegnata all’area DM di espansione è tratta dall’area del programma a relè. La quantità di memoria disponibile per il programma a relè dipende dalla quantità di RAM nella CPU. Sono disponibili circa 15,2 KW di memoria con una RAM 426 Capitolo 7-2 Operazioni della Console di Programmazione di 16 kW e circa 31,2 KW con una RAM di 32 KW e circa 63.2 KW con una RAM di 64 KW. Questa operazione non può essere eseguita per assegnare UM all’area commenti di I/O. UM può essere assegnata all’area commenti di I/O soltanto con un computer host dotato di LSS (V6 o maggiore). Sequenza di tasti Cancellazione memoria quando si modifica l’assegnazione FUN VER CHG [Nuovi dati] PLAY SET B 9 7 D 1 3 WRITE CLR Esempio VER 00000 Cancellare completamente la memoria se l’assegnazione dell’area UM è modificata. DM CM LAD 00 00 15.2 Viene visualizzata l’assegnazione dell’area UM corrente. “??” appare se le informazioni di assegnazione si sono perse. UMAREA CHG? INI DM SIZ:00kW Premere CHG per modificare l’assegnazione dell’area UM. UMAREA CHG? INI DM SIZ:02kW L’area DM di espansione può essere impostata a 00, 01, 02 o 03 kW. UMAREA SET: CHG ???? Inserire la password premendo PLAY/SET e 9713. UMAREA SET: CHG 9713 DM CM LAD 02 00 13.2 00000 La nuova assegnazione dell’area UM viene visualizzata. L’area UM assegnata a DM di espansione è tratta dal programma a relè. Premere CLR per ritornare al display iniziale. 427 Capitolo 7-2 Operazioni della Console di Programmazione 7-2-16 Lettura e impostazione dell’orologio Questa operazione viene eseguita per leggere o impostare l’orologio della CPU. L’orologio può essere letto in qualsiasi modalità, ma può essere impostato solo in modalità MONITOR o PROGRAM. La CPU respingerà le entrate che superano i limiti accettabili, cioè 01... 12 per il mese, 01... 31 per il giorno del mese, 00... 06 per il giorno della settimana o 00... 60 per i secondi, ma non riconoscerà date inesistenti, come 2/31. Esempio 00000 Premere CLR per visualizzare il display iniziale. FUN 0: TIM TIM 94–04–10 14: 25: 58 FRI(5) Il display monitorerà la data e l’ora corrente. TIM CHG?94–04–10 14: 25: 58 FRI(5) Premere CHG per modificare la data e/o l’ora. TIM CHG?94–04–10 14: 25: 58 FRI(5) TIM CHG?94–04–10 14: 25: 58 FRI(5) TIM CHG?94–04–10 14: 25: 50 FRI(5) “9” e “94” lampeggeranno, indicando una possibile modifica. Premere i tasti freccia in alto/in basso per spostare il cursore sui valori della data e dell’orario. Introdurre, se necessario, i nuovi valori per modificare le impostazioni. In questo caso, “0” è stato inserito per sostituire “8”. 0: TIM 00000 Premere CLR per ritornare al display iniziale. 7-2-17 Mappatura tastiera di espansione Questa operazione viene eseguita per controllare lo stato ON/OFF dei bit SR 27700... SR 27909 premendo i tasti della Console di Programmazione. Il C200HX/HG/HE supporta anche l’operazione di mappatura tastiera, che controlla lo stato dei bit in AR 22. Queste operazioni possono essere eseguite in qualsiasi modalità del PLC, ma la Console di Programmazione deve essere in modalità TERMINAL o TERMINAL di espansione. Per ottenere la mappatura tastiera di espansione, il pin 6 del commutatore DIP della CPU e AR 0709 devono essere ON e AR 0708 deve essere OFF. I bit mandati a ON con questa operazione possono essere disattivati modificando lo stato di funzionamento di AR 0708. Disattivare AR 0709 per interrom- 428 Capitolo 7-2 Operazioni della Console di Programmazione pere la mappatura tastiera di espansione e commutare la Console di Programmazione dalla modalità TERMINAL di espansione in modalità CONSOLE. Modalità TERMINAL La Console di Programmazione può essere posta in modalità TERMINAL premendo CHG o eseguendo TERM(048) nel programma. Il pin 6 del commutatore DIP della CPU deve essere OFF. PROGRAM BZ Modalità CONSOLE <MESSAGE> NO MESSAGE PROGRAM Commutare la Console di Programmazione in modalità TERMINAL premendo CHG o eseguendo TERM(048). BZ Premere CHG di nuovo per ritornare alla modalità CONSOLE. La Console di Programmazione può essere posta in modalità TERMINAL di espansione mandando ON AR 0709. Il pin 6 del commutatore DIP della CPU deve essere ON. Modalità TERMINAL di espansione PROGRAM BZ Modalità CONSOLE <MESSAGE> NO MESSAGE PROGRAM Commutare la Console di Programmazione in modalità TERMINAL di espansione mandando AR 0709 ON. BZ Mandare AR 0709 OFF per ritornare alla modalità CONSOLE. 7-2-18 Mappatura tastiera C200HX/HG/HE supporta la mappatura tastiera di espansione e la mappatura tastiera normale. La mappatura tastiera di espansione controlla lo stato dei 41 bit SR 27700... SR 27909, mentre la mappatura tastiera normale controlla solo i 16 bit in AR 22. Lo stato di questi bit può essere controllato con i tasti corrispondenti della Console di Programmazione quando questa è in modalità TERMINAL o TERMINAL di espansione. Il seguente diagramma mostra come commutare la Console di Programmazione tra la modalità CONSOLE (modalità operativa normale) e TERMINAL o TERMINAL di espansione. Premere CHG o eseguire TERM(048). Modalità TERMINAL (Pin 6 commutatore DIP OFF) Modalità CONSOLE Premere CHG. Modalità TERMINAL Mandare AR 0709 ON. Modalità TERMINAL di espansione (Pin 6 commutatore DIP ON) Mandare AR 0709 OFF o il pin 6 commutatore DIP La Console di Programmazione può essere posta in modalità TERMINAL premendo CHG o eseguendo TERM(048) nel programma. Il pin 6 del commutatore DIP della CPU deve essere OFF. Premere di nuovo CHG per ritornare alla modalità CONSOLE. Quando la Console di Programmazione è in modalità TERMINAL, può eseguire la mappatura tastiera normale e visualizzare i messaggi con MSG(046) o LMSG(047). Con la mappatura tastiera, i bit da 00 a 15 di AR 22 saranno ON quando sono premuti i tasti da 0 a F sulla tastiera della Console di Programmazione. Un bit resterà ON dopo che è stato rilasciato il tasto della Console di Programmazione. 429 Capitolo 7-2 Operazioni della Console di Programmazione Tutti i bit in AR 22 saranno OFF quando AR 0708 è ON. Gli inserimenti di mappatura tastiera sono disabilitati quando AR 0708 è ON. Oltre alla funzione di mappatura tastiera, la modalità TERMINAL permette la visualizzazione dei messaggi prodotti da MSG(046) e LMSG(047) sulla Console di Programmazione. Questi messaggi saranno cancellati se la Console di Programmazione ritorna in modalità CONSOLE. Modalità TERMINAL di espansione La Console di Programmazione può essere posta in modalità TERMINAL di espansione mandando ON AR 0709. Il pin 6 del commutatore DIP della CPU deve essere ON. Mandare OFF AR 0709 o il pin 6 del commutatore DIP della CPU per ritornare in modalità CONSOLE. Quando la Console di Programmazione è in modalità TERMINAL, può eseguire la mappatura tastiera di espansione e visualizzare i messaggi prodotti da MSG(046) o LMSG(047). Con la mappatura tastiera di espansione, i bit SR 27700... SR 27909 saranno ON quando viene premuto il tasto corrispondente sulla tastiera della Console di Programmazione. Un bit resterà ON dopo che è stato rilasciato il tasto della Console di Programmazione. Tutti i bit da SR 27700 a SR 27909 saranno OFF quando AR 0708 è ON. Gli inserimenti di mappatura tastiera di espansione sono disabilitati quando AR 0708 è ON. Oltre alla funzione mappatura tastiera, la modalità TERMINAL di espansione permette la visualizzazione dei messaggi prodotti da MSG(046) e LMSG(047) sulla Console di Programmazione. Questi messaggi saranno cancellati se la Console di Programmazione ritorna in modalità CONSOLE. Il seguente diagramma mostra la corrispondenza tra la posizione dei tasti della Console di Programmazione e i bit nell’area SR. Ogni tasto corrisponde 1 a 1 con un bit. Gli ingressi spostati non sono riconosciuti. I tasti da 0 a 15 corrispondono ai bit SR 27700... SR 27715, i tasti da 16 a 31 corrispondono ai bit SR 27800... SR 27815 e i tasti da 32 a 41 corrispondono ai bit SR 27900... SR 27909. Tasto FUN 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 La seguente tabella mostra la corrispondenza tra i tasti reali della Console di Programmazione e i bit SR 27700... SR 27909. Canale SR 277 Bit Tasto/i corrispondente/i 00 FUN 01 02 03 04 05 430 *1 *2 Capitolo 7-2 Operazioni della Console di Programmazione Canale SR 277 Bit Tasto/i corrispondente/i 06 07 08 09 10 11 12 13 14 15 278 00 01 02 03 04 05 06 07 08 09 10 11 12 13 431 Capitolo 7-2 Operazioni della Console di Programmazione Canale SR 278 Bit Tasto/i corrispondente/i 14 15 279 00 01 02 03 04 05 *3 06 07 VER 08 09 432 CAPITOLO 8 Comunicazioni seriali Questo capitolo presenta una panoramica delle comunicazioni seriali (Host Link, RS–232C, connessione 1:1, NT link e macro di protocollo) che funzionano mediante RS–232C, RS–422/485 e le porte periferiche. 8-1 8-2 8-3 8-4 8-5 8-6 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicazione Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2–1 Sintesi comandi Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2–2 Comunicazione Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2–3 Esempi di programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicazione RS–232C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3–1 Struttura frame di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3–2 Procedura di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3–3 Esempio di applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connessioni PLC 1:1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NT Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funzione macro di protocollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6–1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6–2 Impostazioni scheda di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6–3 Procedura di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6–4 Esempio di applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 435 435 438 440 442 443 443 445 447 448 449 449 451 453 456 433 Capitolo 8-1 Introduzione 8-1 Introduzione La porta RS–232C e la porta periferiche incorporate nella CPU del C200HX/ HG/HE supportano le seguenti funzioni di comunicazione: • Comunicazione con dispositivi di programmazione (Console di Programmazione, LSS o SSS.) • Comunicazioni Host Link con personal computer e altri dispositivi esterni. • Comunicazioni RS–232C (nessun protocollo) con personal computer e altri dispositivi esterni. • Comunicazioni con connessione 1:1 con un altro PLC. • Comunicazione NT link (1:1 o 1:N) con Terminali Programmabili (PT) dotati di interfaccia NT link. Oltre a queste funzioni di comunicazione, le schede di comunicazione opzionali che supportano le macro di protocollo possono essere installate nella maggior parte dei PLC C200HX/HG/HE. La seguente tabella riassume le funzioni di comunicazione. Funzione Host link Dispositivo collegato Sistema host o PT Connessione 1:1 o 1:N Sintesi Fornisce la comunicazione tra sistema host e PLC. Istruzioni correlate Comandi Host Link, TXD(236) La stato operativo del PLC e il contenuto delle aree dati possono essere monitorati dal sistema host. RS–232C (nessun protocollo) Sistema host o altro dispositivo RS–232C 1:1 Connessione 1:1 NT Link PLC 1:1 PT Macro di protocollo Altro dispositivo seriale 1:1 o 1:N 1:1 o 1:N TXD(236) può essere usata per trasmettere i dati dalle aree dati del PLC al sistema host. TXD(236) e RXD(235) possono essere usate per gestire sequenze di trasferimento di semplici dati, come gli ingressi da lettori di codici a barre o le uscite verso stampanti. I segnali di controllo RS, CS, ER e DR possono essere controllati con le istruzioni. Effettua una connessione 1:1 tra due PLC utilizzando le aree LR dei PLC. Fornisce i trasferimenti dati tra PLC e uno o più PT. La funzione macro di protocollo permette all’utente di definire le sequenze di trasferimento dati separate e di trasferire i messaggi. Possono essere registrate fino a 1.000 sequenze di comunicazione. Viene fornito un programma di supporto che semplifica la creazione di sequenze di comunicazione. 434 TXD(236), RXD(235) ----PMCR(260) Comunicazione Host Link 8-2 Capitolo 8-2 Comunicazione Host Link 8-2-1 Sintesi comandi Host Link La comunicazione Host Link è usata per trasferire i dati tra il PLC e un sistema host (personal computer o PT). È possibile monitorare lo stato operativo del PLC e il contenuto delle aree dati del PLC dal sistema host utilizzando i comandi Host Link. È possibile inoltre trasferire i dati dalle aree dati IOM del PLC (area IR, area SR, area LR, area HR, area AR, PV temporizzatore e contatore, DM 0000... DM 6143 e EM 0000... EM 6143) in un sistema host utilizzando l’istruzione TXD(236) nel programma a relè. Connessioni RS–232C (1:1) Soltanto un PLC può essere collegato al sistema host (connessione 1:1) quando l’Host Link è eseguito con connessioni RS–232C. Host link Sistema host Host link Host link PLC/AT IBM o compatibile Connessioni RS–422/485 (1:N) Al sistema host possono essere collegati fino a 32 PLC (connessione 1:N) quando l’Host Link è eseguito con connessioni RS–422/485. Nota Host link PLC/AT IBM o compatibile Nota Nota Nota max. 32 PLC. Cablaggio porte Nota: RS–232C ↔ Adattatore RS–422/485 Utilizzare i collegamenti elettrici riportati come guida per il cablaggio della porta con il dispositivo esterno. Fare riferimento alla documentazione allegata al computer o ad altro dispositivo esterno per i dettagli. 435 Comunicazione Host Link Capitolo 8-2 Segue un esempio di collegamento tra C200HX/HG/HE e un personal computer. C200HX/HG/HE Personal computer Segnale N. pin N. pin Segnale FG 1 1 – SD 2 2 RD RD 3 3 SD RS 4 4 DTR CS 5 5 SG – 6 6 DSR – 7 7 RS – 8 8 CS SG 9 9 – Cavo schermato Connettori applicabili Sono applicabili i seguenti connettori. La CPU è dotata di spina e cappuccio insonorizzante. Spina: XM2D-0901 (femmina) per PLC/AT IBM o compatibile (OMRON) o equivalente Cappuccio: XM2S-0911 o equivalente (OMRON) Nota Mettere a massa il terminale FG sul PLC e sul computer a 100Ω o meno. Fare riferimento al Manuale di installazione C200HX/HG/HE e alla documentazione del computer per i dettagli. Parametri Host Link Per permettere la comunicazione Host Link, devono essere preimpostati i seguenti parametri nel setup del PLC. Modalità di comunicazione Impostare la modalità di comunicazione in modalità Host Link (default). Porta RS–232C: impostare i bit 12... 15 di DM 6645 su 0. Porta periferiche: impostare i bit 12... 15 di DM 6650 su 0. Impostazione numero di nodo Con connessione 1:N, impostare un numero di nodo univoco da 00 a 31. Con connessione 1:1, impostare il numero di nodo del PLC su 00. Porta RS–232C: impostare i bit 00... 07 di DM 6648 (00... 31). Porta periferiche: impostare i bit 00... 07 di DM 6653 (00... 31). Impostazioni porta standard Per l’RS–232C e le porte periferiche possono essere usate impostazioni standard o modificabili dall’utente. Le impostazioni standard sono utilizzate quando i seguenti bit sono impostati su 0. (Le impostazioni modificabili dall’utente sono descritte in seguito.) Porta RS–232C: bit 00... 03 di DM 6645 (0: standard; 1: modificabile dall’utente). Porta periferiche: bit 00... 03 di DM 6650 (0: standard; 1: modificabile dall’utente). Le impostazioni standard sono riportate nella seguente tabella. Item 436 Impostazione Bit di start 1 Lunghezza dati 7 Bit di stop 2 Parità Pari Baud rate 9.600 bps Comunicazione Host Link Capitolo 8-2 Impostazioni porta modificabili dall’utente Le impostazioni standard o modificabili dall’utente possono essere usate per le porte RS–232C e le porte periferiche. Le impostazioni modificabili dall’utente sono utilizzate quando i seguenti bit sono impostati su 1. Porta RS–232C: Bit 00... 03 di DM 6645 (0: standard; 1: modificabile dall’utente). Porta periferiche: Bit 00... 03 di DM 6650 (0: standard; 1: modificabile dall’utente). Le impostazioni modificabili dall’utente per la porta RS–232C sono definite in DM 6646 e quelle per la porta periferiche sono definite in DM 6651. Le seguenti impostazioni sono valide soltanto quando il pin 5 sul commutatore DIP della CPU è OFF. Accertarsi che i parametri di comunicazione abbiano le stesse impostazioni in entrambe le estremità di comunicazione. Bit 15 0 DM 6646: Porta RS–232C DM 6651: Porta periferiche Formato frame di trasmissione (v. tabella sotto.) Baud rate (v. tabella sotto.) Parametro Formato frame di trasmissione i i Parametro Baud rate Impostazione 00 01 02 03 04 05 06 07 08 09 10 11 Bit di start 1 1 1 1 1 1 1 1 1 1 1 1 Impostazione 00 01 02 03 04 Lunghezza dati 7 7 7 7 7 7 8 8 8 8 8 8 Bit di stop 1 1 1 2 2 2 1 1 1 2 2 2 Parità Pari Dispari – Pari Dispari – Pari Dispari – Pari Dispari – Baud rate 1.200 bps 2.400 bps 4.800 bps 9.600 bps 19.200 bps Ritardo trasmissione A seconda dei dispositivi collegati alla porta RS–232C, potrebbe essere necessario aumentare il tempo per la trasmissione. In tal caso, impostare il ritardo di trasmissione per regolare il tempo ammesso. Il ritardo di trasmissione è impostato in unità di 10 ms. Porta RS–232C: Impostare DM 6647 su 0000... 9999 (ritardo 0... 99,99 s). Porta periferiche: Impostare DM 6652 su 000... 9999 (ritardo 0... 99,99 s). 437 Comunicazione Host Link Capitolo 8-2 Nota Se il pin 5 del commutatore DIP della CPU è ON, le impostazioni di comunicazione standard saranno utilizzate indipendentemente dalle impostazioni nel setup del PLC. Le impostazioni standard sono: Item Impostazione Numero di nodo 00 Bit di start 1 Lunghezza dati 7 Bit di stop 2 Parità Pari Baud rate 9.600 bps Ritardo trasmissione – 8-2-2 Comunicazione Host Link La comunicazione Host Link avviene mediante uno scambio di comandi e risposte tra il sistema host e il PLC. Il blocco di dati trasferito in una trasmissione è detto ”frame”. Un singolo frame può contenere fino a 131 caratteri dati. Segue la descrizione dei formati del frame per i comandi Host Link trasmessi dal sistema host e delle risposte restituite dal PLC. Il PLC riporta automaticamente una risposta in codice ASCII quando riceve un comando in codice ASCII dal sistema host. Il sistema host deve avere un programma che controlla la trasmissione e la ricezione di comandi e risposte. Formato del comando Quando viene trasmesso un comando dal sistema host, i dati dei comandi devono essere nel seguente formato. x 10 1 x 10 0 N. di nodo Codice comando Testo FCS ↵ Terminatore Il codice comando e il testo dipendono dal comando Host Link trasmesso. Quando viene trasmesso un comando composto, ci sarà un altro codice sotto– comando. Il codice FCS (Sequenza di Verifica del Frame) è calcolato nel sistema host ed è impostato nel frame comando. Il calcolo FCS è descritto successivamente in questo capitolo. Il frame comando può essere lungo max. 131 caratteri. Un comando con un numero di caratteri pari o maggiore a 132 deve essere suddiviso in più frame. Per suddividere il comando, utilizzare un delimitatore ritorno carrello (↵CHR$(13)) invece di un terminatore. Va utilizzato un terminatore alla fine dell’ultimo frame. Quando si suddividono comandi come WR, WL, WC o WD, che eseguono operazioni di scrittura, occorre stare attenti a non spezzare su frame diversi dati che devono essere scritti in un singolo canale. Occorre suddividere i frame in modo da farli coincidere con le suddivisioni tra i canali. Item Il simbolo @ deve essere posto all’inizio di ogni comando. N. di nodo Identifica il PLC con il numero di nodo impostato in DM 6648 del setup del PLC. Imposta il codice comando a 2 caratteri. Codice comando Testo 438 Funzione @ Definisce i parametri del comando. FCS Definisce il codice Sequenza di Verifica del Frame a 2 caratteri. Terminatore Definisce due caratteri, “” e ritorno carrello (CHR$(13)) per indicare la fine del comando. Comunicazione Host Link Formato della risposta La risposta del PLC viene restituita nel seguente formato. Occorre preparare un programma per poter interpretare ed elaborare i dati della risposta. x 10 1 x 10 0 N. di nodo Capitolo 8-2 x 16 1 x 16 0 Codice comando ↵ Codice fine Testo FCS Terminatore Il codice comando e il testo dipendono dal comando Host Link ricevuto. Il codice fine indica lo stato di completamento del comando (se si è verificato un errore). Quando la risposta è più lunga di 131 caratteri, sarà suddivisa in più di un frame. Invece di un terminatore, alla fine del frame sarà impostato automaticamente un delimitatore ritorno carrello (↵CHR$(13)). Un terminatore sarà impostato alla fine dell’ultimo frame. Item Funzione @ Il simbolo @ deve essere posto all’inizio di ogni risposta. N. di nodo Numero del nodo PLC impostato in DM 6648 del setup del PLC. Codice comando Testo Viene restituito il codice comando a 2 caratteri. FCS Viene restituito il codice Sequenza di Verifica del Frame a 2 caratteri. Due caratteri, “” e ritorno carrello (CHR$(13)) indicano la fine della risposta. Sono restituiti i risultati del comando. Terminatore FCS (Sequenza di Verifica del Frame Quando viene trasmesso un frame, un codice FCS viene posto immediatamente prima del delimitatore o del terminatore, per controllare se si è verificato un errore nella trasmissione. FCS è un dato di 8 bit convertito in due caratteri ASCII. Il dato di 8 bit è il risultato di un EXCLUSIVE OR eseguito sui dati dall’inizio del frame alla fine del testo del frame (cioè immediatamente prima del FCS). Ogni volta che viene ricevuto un frame, viene calcolato il relativo codice FCS; il confronto tra l’FCS calcolato e il FCS ricevuto ed incluso nel frame rende possibile il controllo degli errori sui dati del frame. 1 0 N. di nodo R R 0 0 Codice comando 0 Testo 1 4 2 FCS ↵ Terminatore Caratteri per il calcolo dell’FCS Codice ASCII Sequenza di comunicazione @ 40 1 31 0 30 R 52 1 Risultato del calcolo 31 0100 EOR 0011 EOR 0011 EOR 0101 0000 0011 0100 i 4 0001 0010 i Convertito in esadecimale. 2 Gestiti come caratteri ASCII. 0001 0000 0010 Il diritto di inviare un frame è detto “diritto di trasmissione”. Il modulo con diritto di trasmissione è quello che può inviare un frame in un determinato momento. Il diritto di trasmissione viene passato tra il sistema host e il PLC quando un frame viene trasmesso. Segue la descrizione di un esempio di sequenza di comunicazione tra sistema host e PLC. • Il sistema host imposta un delimitatore alla fine del primo frame comando e trasmette il frame. 439 Comunicazione Host Link Capitolo 8-2 • Quando il PLC riceve il delimitatore, lo restituisce al sistema host. • Dopo aver ricevuto il delimitatore dal PLC, il sistema host trasmette il frame successivo. • Il PLC imposta un delimitatore alla fine del primo frame risposta e trasmette il frame. • Quando il sistema host riceve il delimitatore, lo restituisce al PLC. • Dopo avere ricevuto il delimitatore dal sistema host, il PLC trasmette il frame successivo. • Le trasmissioni lunghe sono gestite scambiando i delimitatori in questo modo. L’ultimo frame termina con un terminatore. Frame2 (comando) Frame1 (comando) Frame3 (comando) @N. unità Codice comando Sistema host Testo Testo Testo FCS Delimitatore FCS Delimitatore FCS Terminatore PLC Delimitatore Delimitatore @N. unità Codice comando Codice fine Testo FCS Terminatore Frame (risposta) Utilizzo dell’istruzione TXD(236) L’istruzione TXD(236) può essere usata per trasmettere i dati dall’area dati del PLC al sistema host. Non c’è risposta dal sistema host. L’istruzione TXD(236) verrà eseguita dopo la trasmissione della risposta, se TXD(236) viene eseguita mentre viene restituita al sistema host una risposta a un comando Host Link. Sistema host Nessuna risposta @N. unità Codice comando PLC Testo FCS Terminatore 8-2-3 Esempi di programmi Trasmissione comando 440 Il seguente tipo di programma deve essere preparato nel sistema host per la ricezione dei dati. Questo programma permette la lettura e la visualizzazione da Comunicazione Host Link Capitolo 8-2 parte del computer dei dati ricevuti dal PLC, mentre viene eseguito un comando di lettura Host Link. 10 ’C200HX/HG/HE SAMPLE PROGRAM FOR EXCEPTION 20 CLOSE 30 CLS 40 OPEN ”COM:E73” AS #1 50 KEYIN 60 INPUT ”DATA ––––––––”,S$ 70 IF S$=” ” THEN GOTO 190 80 PRINT ”SEND DATA = ”;S$ 90 ST$=S$ 100 INPUT ”SEND OK? Y or N?=”,B$ 110 IF B$=”Y” THEN GOTO 130 ELSE GOTO KEYIN 120 S$=ST$ 130 PRINT #1,S$ ’Invia il comando al PLC 140 INPUT #1,R$ ’Riceve la risposta dal PLC 150 PRINT ”RECV DATA = ”;R$ 160 IF MID$(R$,4,2)=”EX” THEN GOTO 210 ’Identifica il comando dal PLC 170 IF RIGHT$(R$,1)<>”” THEN S$=” ”:GOTO 130 180 GOTO KEYIN 190 CLOSE 1 200 END 210 PRINT ”EXCEPTION!! DATA” 220 GOTO 140 Esempio di programma per FCS Questo esempio illustra una subroutine BASIC per l’esecuzione di un controllo FCS su un frame ricevuto da un sistema host. 400 *FCSCHECK 410 L=LEN(RESPONSE$) ’ . . . . . . . . . . . . Dati trasmessi e ricevuti 420 Q=0:FCSCK$=” ” 430 A$=RIGHT$(RESPONSE$,1) 440 PRINT RESPONSE$,AS,L 450 IF A$=”*” THEN LENGS=LEN(RESPONSE$)-3 ELSE LENGS=LEN(RESPONSE$)-2 460 FCSP$=MID$(RESPONSE$,LENGS+1,2) ’ Dati FCS ricevuti 470 FOR I=1 TO LENGS ’ . . . . . . . . . . . . . . Numero di caratteri in FCS 480 Q=ASC(MID$(RESPONSE$,I,1)) XOR Q 490 NEXT I 500 FCSD$=HEX$(Q) 510 IF LEN(FCSD$)=1 THEN FCSD$=”0”+FCSD$ ’Risultato FCS 520 IF FCSD$<>FCSP$ THEN FCSCK$=”ERR” 530 PRINT”FCSD$=”;FCSD$,”FCSP$=”;FCSP$,”FCSCK$=”;FCSCK$ 540 RETURN Note 1. Una normale ricezione dati comprende i codici FCS, un delimitatore o terminatore, ecc. Quando si verifica un errore di trasmissione, l’FCS o altri dati possono essere esclusi. Bisogna essere certi che il sistema tenga conto di questa eventualità. 2. Nel programma esemplificativo, il codice CR (CHR$(13)) non è compreso da RESPONSE$. Quando si include il codice CR, è necessario modificare le linee di programma 430 e 450. Esempio di applicazione TXD(236) Questo esempio mostra un programma che utilizza la porta RS–232C in modalità Host Link per trasmettere 10 byte di dati a un computer (DM 0000... DM 0004). Da DM 0000 a DM 0004, “1234” è memorizzato in tutti i canali. 441 Comunicazione RS–232C Capitolo 8-3 Si presuppongono valori default per tutto il setup del PLC (cioè la porta RS–232C è utilizzata in modalità Host Link, il numero di nodo è 00 e sono utilizzati i parametri di comunicazione standard.) 00100 SR 26405 @TXD DM 0000 #0000 Se SR 26405 (flag Pronto a trasmettere) è ON quando IR 00100 è ON, i dieci byte di dati (DM 0000... DM 0004) saranno trasmessi. #0010 8-3 Comunicazione RS–232C Questo capitolo descrive la comunicazione RS–232C. Le istruzioni TXD(236) e RXD(235) possono essere usate con la comunicazione RS–232C per produrre dati per una stampante, inserire dati provenienti da un lettore di codici a barre o trasmettere comandi Host Link ad altri dispositivi dotati di porta RS–232C. Connessione RS–232C Il seguente diagramma mostra la connessione RS–232C quando è utilizzata la porta RS–232C in modalità RS–232C (nessun protocollo). Dispositivo Modalità dotato di porta RS–232C RS–232C Parametri setup del PLC I seguenti parametri nel setup del PLC devono essere preimpostati per permettere la comunicazione in modalità RS–232C con le porte RS–232C o periferiche. Modalità di comunicazione Impostare la modalità di comunicazione su RS–232C. Porta RS–232C: Impostare i bit 12... 15 di DM 6645 su 1. Porta periferiche: Impostare i bit 12... 15 di DM 6650 su 1. Impostazioni porta standard Le impostazioni standard o modificabili dall’utente possono essere usate per le porte RS–232C e periferiche. Vedere a pagina 436 per i dettagli sulle impostazioni di comunicazione standard. Impostazioni porta modificabili dall’utente Le impostazioni standard o modificabili dall’utente possono essere usate per le porte RS–232C e periferiche. Vedere a pagina 437 per i dettagli sulle impostazioni di comunicazione modificabili dall’utente. Abilitazione codici inizio e fine DM 6648: Porta RS–232C DM 6653: Porta periferiche Bit 15 0 0 0 Utilizzo codice fine 0: non impostato (quantità dati di ricezione specificati.) 1: impostato (codice fine specificato.) 2: CR/LF Utilizzo codice inizio 0: non impostato 1: impostato (codice inizio specificato.) Default: nessun codice inizio; ricezione dati completa a 256 byte. 442 Comunicazione RS–232C Capitolo 8-3 Specificare se all’inizio deve essere impostato un codice inizio e se alla fine deve essere impostato un codice fine. Invece di impostare il codice fine, è possibile specificare il numero di byte da ricevere prima del completamento dell’operazione di ricezione. I codici e il numero di byte dati da ricevere sono impostati in DM 6649 o DM 6654. Impostazione codice inizio, codice fine e quantità dati di ricezione Bit 15 0 DM 6649: Porta RS–232C DM 6654: Porta periferiche Codice fine o numero di byte da ricevere Per codice fine (00... FF) Per quantità dati di ricezione: 2 digit esadecimali, 00... FF (00:256 byte) Codice inizio da 00 a FF Default: nessun codice inizio; ricezione dati completa a 256 byte. 8-3-1 Struttura frame di comunicazione Con l’esecuzione di un’istruzione TXD(236) o RXD(235) possono essere trasferiti fino a 259 byte di dati (compreso i codici inizio e fine). Quando ci sono due o più codici inizio, sarà utilizzato il primo. Allo stesso modo, quando ci sono due o più codici fine, sarà utilizzato il primo. Per il codice fine, evitare di usare caratteri comunemente utilizzati. Usare CR e LF per il codice fine se la trasmissione dati viene troncata perché il codice fine si trova all’interno dei dati di trasmissione. • Nessun codice inizio e nessun codice fine Dati (numero di byte specificato) • Solo codice inizio ST Dati (numero di byte specificato) • Solo codice fine Dati (256 byte o meno) ED • Codice inizio e codice fine ST Dati (257 byte o meno) ED • CR, LF specificati per il codice fine Dati (258 byte o meno) CR LF CR LF • Codice inizio (00... FF) e codice fine (CR, LF) ST Dati (259 byte o meno) 8-3-2 Procedura di comunicazione Successivamente sono descritte TXD(236) e RXD(235). Trasmissione (TXD(236)) 1, 2, 3... Fare riferimento a 5-28-2 TRASMIT – TXD(236) per ulteriori dettagli. Occorre includere sempre il flag Pronto a trasmettere della porta specificata come condizione per l’esecuzione per TXD(236), per accertarsi che tale flag sia ON prima che la trasmissione possa essere eseguita. 1. Controllare che SR 26405 (flag Pronto a trasmettere porta RS–232C), SR 26413 (flag Pronto a trasmettere porta periferiche), SR 28305 (flag Pronto a trasmettere porta A scheda di comunicazione) o SR 28313 (flag Pronto a trasmettere porta B scheda di comunicazione) siano ON. 443 Comunicazione RS–232C Capitolo 8-3 2. Utilizzare l’istruzione TXD(236) per trasmettere i dati. (I bit 08... 11 sono validi soltanto quando i bit 12... 15 sono su 0.) (@)TXD S: Indirizzo del primo canale dati da trasmettere S C N C: Dati di controllo Bit 00... 03 0: Prima byte più a sinistra 1: Prima byte più a destra Bit 04... 07 0: Trasmissione dati normale 1: Stato del bit 15 per il canale più a sinistra dei dati di trasmissione si riflette sull’RTS della porta corrispondente. 2: Stato del bit 15 per il canale più a sinistra dei dati di trasmissione si riflette sul DTR della porta corrispondente. 3: Stati dei bit 14 e 15 per il canale più a sinistra dei dati di trasmissione si riflettono su RTS e DTR della porta corrispondente. Bit 08... 11 0: Porta RS–232C incorporata 1: Porta A scheda di comunicazione 2: Porta B scheda di comunicazione Bit 12... 15 0: Porta RS–232C 1: Porta periferiche 2: Modulo Host Link #1 3: Modulo Host Link #2 N: Numero di byte da trasmettere (4 digit BCD), da 0000 a 0256 (bit inizio e fine) 3. Dal momento in cui questa istruzione viene eseguita fino al completamento della trasmissione dati, il flag Pronto a trasmettere (SR 26405, SR 26413, SR 28305 o SR 28313) resterà OFF. Diventerà ON al termine della trasmissione dei dati. Ricezione (RXD(235)) 1, 2, 3... Fare riferimento a 5-28-1 REICEVE – RXD(235) per ulteriori dettagli. 1. Controllare che SR 26406 (flag Ricezione completa porta RS–232C) o SR 26414 (flag Ricezione completa porta periferiche) siano ON. 2. Utilizzare l’istruzione RXD(235) per ricevere i dati. (I bit 08.... 11 sono validi soltanto quando i bit 12... 15 sono su 0.) (@)RXD D: N. canale principale per memorizzare i dati di ricezione D C N C: Dati di controllo Bit 00... 03 0: Prima byte più a sinistra 1: Prima byte più a destra Bit 04... 07 0: Ricezione dati normale 1: Legge lo stato CTS della porta corrispondente nel bit 15 per il canale più a sinistra della scrittura dati di ricezione. 2: Legge lo stato di DSR della porta corrispondente nel bit 15 per il canale più a sinistra della scrittura dati di ricezione. 3: Legge gli stati di CTS e DSR della porta corrispondente nei bit 14 e 15 per il canale più a sinistra della scrittura dati di ricezione Bit 08... 11 0: Porta PS–232C incorporata 1: Porta A scheda di comunicazione 2: Porta B scheda di comunicazione Bit 12... 15 0: Porta RS–232C 1: Porta periferiche N: Numero di byte memorizzato (4 digit BCD), da 0000 a 0256 (bit inizio e fine) 444 Comunicazione RS–232C Capitolo 8-3 3. Quando RXD(235) è eseguita, i dati ricevuti sono trasferiti nei canali specificati (senza codici di inizio e fine) e il flag Ricezione completa è OFF. L’inizio e la fine della ricezione sono: Inizio: Stato di ricezione continuo se il codice inizio non è abilitato. La ricezione inizia quando è ricevuto il codice inizio se abilitato. Fine: La ricezione termina quando è ricevuto il codice fine o 259 byte di dati sono stati ricevuti. 4. Lo stato risultante dalla lettura dei dati ricevuti sarà memorizzato nell’area SR. Controllare che l’operazione sia completata con successo. Il contenuto di questi bit sarà resettato ogni volta che viene eseguita RXD(235). RS–232C Periferiche SR 26400... SR 26403 SR 26408... SR 26411 SR 26404 SR 26412 SR 26407 SR 26415 SR 265 SR 266 Errore Codice di errore porta di comunicazione (1 digit BCD) 0: Completamento normale 1: Errore di parità 2: Errore di frame 3: Errore di overrun Flag errore di comunicazione Flag overrun ricezione (al termine della ricezione, i dati successivi sono ricevuti prima che i dati siano letti con l’istruzione RXD.) Numero di byte ricevuti (escluso bit inizio e fine) Nota Per resettare la porta RS–232C (cioè per ripristinare lo stato iniziale), mandare SR 25209 ON. Per resettare la porta A scheda di comunicazione, mandare SR 28900 ON. Per resettare la porta B scheda di comunicazione, mandare SR 28901 ON. Questi bit andranno automaticamente OFF dopo il reset. 8-3-3 Esempio di applicazione Questo esempio mostra un programma che utilizza la porta RS–232C in modalità RS–232C per trasmettere 10 byte di dati (DM 0100... DM 0104) al computer e che memorizza i dati ricevuti dal computer nell’area DM, iniziando con DM 0200. Prima di eseguire il programma, devono essere effettuate le seguenti impostazioni del setup del PLC. DM 6645: 1000 (porta RS–232C in modalità RS–232C; impostazioni standard) DM 6648: 2000 (nessun codice inizio; codice fine CR/LF) Si presuppongono valori default per tutte le altre impostazioni di setup del PLC. Il sistema host deve avere le stesse impostazioni di comunicazione e un programma che riceve i dati trasmessi dal PLC. I dati 3454 sono memorizzati in ogni canale da DM 0100 a DM 0104. 00100 DIFU(013) 00101 00101 SR 26405 @TXD DM 0100 #0000 Se SR 26405 (flag Pronto a trasmettere) è ON quando IR 00100 è ON, i dieci byte di dati (DM 0100... DM 0104) saranno trasmessi, prima i byte più a sinistra. #0010 SR 26406 @RXD DM 0200 #0000 265 Quando SR 26406 (flag Ricezione completa) va ON, il numero di byte dei dati specificati in SR 265 sarà letto dal buffer di ricezione del PLC e conservato in memoria iniziando da DM 0200, prima i byte più a sinistra. I dati saranno: “34543454345434543454CR LF” 445 Connessioni PLC 1:1 8-4 Capitolo 8-4 Connessioni PLC 1:1 Se due PLC sono collegati 1:1 mediante le porte RS–232C, possono condividere aree LR comuni. Quando due PLC sono collegati 1:1, uno di loro fungerà da master e l’altro da slave. Come illustrato nel seguente diagramma, quando i dati sono scritti in un canale dell’area LR di un modulo collegato, saranno riportati automaticamente nello stesso canale dell’altro modulo. Ogni PLC ha canali specifici in cui è possibile scrivere e canali specifici che vengono scritti dall’altro PLC. Ogni PLC può leggere, ma non scrivere, i canali scritti dall’altro PLC. Master Area master Slave Scrittura “1” 1 Area master Scritti automaticamente. Area slave Cablaggio 1 1 Scrittura Area slave Eseguire il cablaggio come riportato nel diagramma sottostante utilizzando il connettore elencato. Connettori applicabili Sono applicabili i seguenti connettori. La CPU è dotata di spina e di cappuccio insonorizzato. Gli stessi connettori possono essere usati per le due estremità del cavo. Spina: XM2A-0901 (OMRON) o equivalente Cappuccio: XM2S-0911 (OMRON) o equivalente C200HX/HG/HE Segnale N. pin C200HX/HG/HE, C200HS o CQM1 N. pin Segnale FG 1 1 FG SD 2 2 SD RD 3 3 RD RS 4 4 RS CS 5 5 CS – 6 6 – – 7 7 – – 8 8 – SG 9 9 SG Nota Mettere a terra il terminale FG del PLC a una resistenza di 100Ω o meno. Setup del PLC 446 Per utilizzare una connessione 1:1, le uniche impostazioni necessarie sono la modalità di comunicazione e i canali di collegamento. Impostare la modalità di comunicazione per un PLC su link master 1:1 e per l’altro PLC su un link slave 1:1, e impostare quindi i canali di collegamento nel PLC Connessioni PLC 1:1 Capitolo 8-4 indicato come master. I bit 08... 11 sono validi solo per il master per la connessione 1:1. Bit 15 0 DM 6645: Porta RS–232C Modalità di comunicazione 2: Link slave 1:1 3: Link master 1:1 Canali di collegamento per link 1:1 0: LR 00... LR 63 1: LR 00... LR 31 2: LR 00... LR 15 Impostazioni porta 00: Parametri di comunicazione standard Il canale usato da ogni PLC corrisponde a quelli riportati nella seguente tabella, secondo le impostazioni per il master, slave e i canali di collegamento. Impostazione DM 6645 LR 00... LR 63 LR 00... LR 31 LR 00... LR 15 Canali master LR00... LR31 LR00... LR15 LR00... LR07 Canali slave LR32... LR63 LR16... LR31 LR08... LR15 Procedura di comunicazione Se le impostazioni per il master e lo slave sono corrette, il link 1:1 si avvierà automaticamente quando i PLC sono accesi. Esempio di applicazione Questo esempio mostra un programma di controllo delle condizioni per l’esecuzione di una connessione 1:1 utilizzando le porte RS–232C. Prima di eseguire il programma, impostare i seguenti parametri del setup del PLC. Master: DM 6645:3200 (link master 1:1; canali di collegamento: LR 00... LR 15) Slave: DM 6645: 2000 (link slave 1:1) Quando sono eseguiti i programmi nel master e nello slave, lo stato di IR 001 di ogni modulo sarà riflesso in IR 100 dell’altro modulo. IR 001 è un canale di ingresso e IR 100 è un canale di uscita. Nel master 25313 (Always ON) MOV(21) 001 LR00 MOV(21) LR08 100 Nello slave 25313 (Always ON) MOV(21) 001 LR08 MOV(21) LR00 100 447 NT Link 8-5 Capitolo 8-5 NT Link Si può stabilire una connessione NT 1:1 che utilizza comandi NT Link collegando la porta RS–232C del PLC alla porta RS–232C di un Terminale Programmabile (PT). Si può stabilire una connessione NT 1:N che utilizza comandi NT Link collegando il PLC e il Terminale Programmabile (PT) con il cavo RS–422/485. NT Link 1:1 Il seguente diagramma mostra i collegamenti per un NT Link 1:1. NT Link 1:N Il seguente diagramma mostra i collegamenti per un NT link 1:N. Possono essere collegati fino a 8 Terminali Programmabili, a meno che il PLC non sia un C200HE–CPU–E. Con un C200HE–CPU–E possono essere collegati fino a 4 Terminali Programmabili (incl. collegamenti con scheda di comunicazione). Vedi nota Nota: Setup del PLC NT Link 1: N RS–422/485 RS–232C↔ Adattatore RS–422/485 Quando viene stabilito un NT Link effettuare le seguenti impostazioni. Link 1:1 1:N Porta Impostazione Porta RS–232C incorporata Porta B scheda di comunicazione Porta A scheda di comunicazione Porta RS–232C incorporata Porta B scheda di comunicazione Impostare i bit 12... 15 di DM 6645 su 4. Impostare i bit 12... 15 di DM 6550 su 4. Impostare i bit 12... 15 di DM 6555 su 4. Impostare i bit 12... 15 di DM 6645 su 5. Impostare i bit 12... 15 di DM 6550 su 5. Porta A scheda di comunicazione Impostare il numero max di nodi (1... 7) nei bit 08... 11 di DM 6550 Impostare i bit 12... 15 di DM 6555 su 5. Impostare il numero max. di nodi (1... 7) nei bit 08... 11 di DM 6555. Applicazioni 448 Fare riferimento alla documentazione allegata al modulo interfaccia NT Link per i dettagli sulle applicazioni NT Link reali. Funzione macro di protocollo 8-6 Capitolo 8-6 Funzione macro di protocollo Questo capitolo descrive l’utilizzo della funzione macro di protocollo. 8-6-1 Introduzione La funzione macro di protocollo è un protocollo di comunicazione che controlla il trasferimento dati con i vari dispositivi di comunicazione e i componenti pluriuso dotati di porte RS–232C o RS–422/485. L’utente può modificare facilmente le procedure di trasferimento dati (sequenze di comunicazione) con il software di supporto protocollo OMRON, ed eseguire le sequenze di comunicazione dal programma a relè con PMCR(260). Le schede di comunicazione dispongono di sette procedure di comunicazione. Tali sequenze standard possono essere utilizzate o modificate per soddisfare i requisiti di un’applicazione particolare. Nota Fare riferimento al Manuale Operativo Scheda di comunicazione per i dettagli sulle schede di comunicazione e al Manuale Operativo Software di supporto protocollo per i dettagli sul software. Connessione RS–232C (1:1) Soltanto un dispositivo può essere collegato con una connessione RS–232C. Il cavo RS–232C può essere lungo fino a 15 m. (RS–232) Porta B Protocollo di base RS–232C (RS–232) Porta A Protocollo di base 15 m RS–232C 15 m Dispositivo con interfaccia RS–232C Dispositivo con interfaccia RS–232C Connessione RS–422/485 (1: N) (RS–232) Porta B (RS–422/485) Porta A Una connessione RS–422/485 permette il collegamento di 2 o più dispositivi (connessione 1:N) con un cavo lungo max. 500 m. La connessione RS–422/485 è utile inoltre per le connessioni 1:1 su grandi distanze. RS–232C Adattatore RS–232C ↔ RS–422/485 RS–422/485 Adattatore 15 m conversione NT–AL001 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 RS–422/485 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 Termoregolatore con comunicazione RS–422/485 max. 500 m. max. 500 m. 449 Funzione macro di protocollo Cablaggio cavo di collegamento Capitolo 8-6 I seguenti diagrammi mostrano il cablaggio del cavo utilizzato con la funzione macro di protocollo. Collegamento adattatore RS–422/485 (NT–AL001) AL001 C200HX/HG/HE Collegamenti generali dispositivo/computer (flusso RS/CS, collegamento incrociato) Sistema host 450 C200HX/HG/HE Funzione macro di protocollo Capitolo 8-6 Collegamento modem (collegamento diretto) C200HX/HG/HE Modem Nota Collegare a massa i terminali FG sul PLC e sull’altro dispositivo a 100Ω o meno. Fare riferimento al Manuale di installazione C200HX/HG/HE e alla documentazione allegata all’altro dispositivo per i dettagli. 8-6-2 Impostazioni scheda di comunicazione Per utilizzare la funzione macro di protocollo mediante una scheda di comunicazione, devono essere preimpostati i seguenti parametri. Modalità di comunicazione Impostare la modalità di comunicazione su macro di protocollo. Porta B: Impostare i bit 12... 15 di DM 6550 su 6. Porta A: Impostare i bit 12... 15 di DM 6555 su 6. Impostazioni porta standard Le impostazioni standard o le impostazioni modificabili dall’utente possono essere usate per le porte A e B. Le impostazioni standard sono utilizzate quando i seguenti bit sono su 0. Porta B: bit... 03 di DM 6550 (0: standard; 1: modificabile dall’utente). Porta A: bit... 03 di DM 6555 (0: standard; 1: modificabile dall’utente). Le impostazioni standard sono riportate nella seguente tabella. Item Impostazione Bit di start 1 Lunghezza dati 7 Bit di stop 2 Parità Pari Baud rate 9.600 bps Impostazioni porta modificabili dall’utente Le impostazioni standard o modificabili dall’utente possono essere usate per le porte A e B. Le impostazioni modificabili dall’utente sono utilizzate quando i seguenti bit sono su 1. Porta B: Bit 00... 03 di DM 6550 (0: standard; 1: modificabile dall’utente. Porta A: Bit 00... 03 di DM 6555 (0: standard; 1: modificabile dall’utente). 451 Funzione macro di protocollo Capitolo 8-6 Le impostazioni modificabili dall’utente per la porta B sono definite in DM 6551 e le impostazioni modificabili dall’utente per la porta A sono definite in DM 6556. Bit 15 0 DM 6551: Porta B DM 6556: Porta A Formato frame di trasmissione (vedi tabella sotto.) Baud rate (vedi tabella sotto.) Parametro Bit di start Impostazione Formato frame di trasmissione i i Parametro 00 01 02 03 04 05 06 07 08 09 10 11 Lunghezza dati 7 7 7 7 7 7 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 00 01 02 03 04 1 1 1 2 2 2 1 1 1 2 2 2 Parità Pari Dispari – Pari Dispari – Pari Dispari – Pari Dispari – Baud rate Impostazione Baud rate Bit di stop 1.200 bps 2.400 bps 4.800 bps 9.600 bps 19.200 bps 8-6-3 Procedura di comunicazione Le sequenze di comunicazione della macro di protocollo devono essere create con il software di supporto protocollo e trasferite in anticipo sulla scheda di comunicazione. Nel PLC, l’istruzione PMCR(260) serve a eseguire una sequenza di comunicazione memorizzata nella scheda di comunicazione. Struttura della sequenza di comunicazione Con il software di supporto protocollo possono essere create fino a 1.000 sequenze di comunicazione con numeri progressivi da 000 a 999. Ogni sequenza di comunicazione è composta al massimo da 16 fasi. La seguente tabella mostra le impostazioni della sequenza di comunicazione. Item Impostazioni sequenz sequenza Controllo trasmissione Canali di collegamento Tempo di monitoraggio Comunicazione risposta 452 Funzione Parametri Imposta il metodo di controllo di trasmissione, come il controllo flusso X–on/X–off o il controllo flusso RS/CS. Imposta i canali di collegamento per il data link tra PLC e scheda di comunicazione. Imposta il tempo di monitoraggio (watchdog timer) per l’elaborazione della comunicazione. Imposta la temporizzazione per la scrittura dei dati ricevuti. X–on/X–off, RS/CS, controllo modem, controllo delimitatore o controllo conflitto Aree IR/SR, LR, HR, AR, DM e EM Attesa ricezione, ricezione completa, trasmissione completa unità da 0.01 s, 0,1 s, 1 s e 1 minuto Comunicazione scansione o interrupt Funzione macro di protocollo Impostazioni o fase se Capitolo 8-6 Item Funzione Contatore di ripetizione Imposta la frequenza di ripetizione della fase. Comando Imposta il comando di comunicazione. Numero di ripetizioni Imposta il numero di ripetizioni quando si verificano errori per il comando Send&Recv. Ritardo di trasmissione Imposta il tempo di attesa prima di inviare i dati al momento della trasmissione Messaggio di trasmis- Imposta i dati trasmissione per i sione comandi Send o Send&Recv. Messaggio di ricezione Imposta i dati di ricezione previsti per i comandi Recv o Send&Recv. Matrice di ricezione Imposta i dati di ricezione previsti per i comandi Recv o Send&Recv (fino a 15 tipi) e regola l’elaborazione secondo il tipo di dati. Comunicazione Stabilisce se scrivere i dati ricevuti. risposta Processo successivo Imposta la fase successiva quando la fase corrente è completata con successo. Elaborazione errore Imposta la fase successiva quando si è verificato un errore nella fase corrente. Struttura messaggio di ricezione/trasmissione Parametri Costante 0... 255 Aree IR/SR, LR, HR, AR, DM e EM Send, Recv o Send&Recv 0... 9 Unità da 0.01 s, 0,1 s, 1 s e 1 minuto Intestazione, indirizzo, lunghezza, dati, codice di controllo errore e terminatore Intestazione, indirizzo, lunghezza, dati, codice di controllo errore e terminatore Intestazione, indirizzo, lunghezza, dati, codice di controllo errore, terminatore e processo successivo Sì/no End, Goto, Next o Abort End, Goto, Next o Abort I messaggi di trasmissione/ricezione hanno la seguente struttura. Intestazione Indirizzo Item Lunghezza Dati Controllo errore Terminatore Funzione Intestazione Imposta i dati che indicano l’inizio del messaggio. Indirizzo Lunghezza Imposta il numero del nodo o altri identificatori che indicano la destinazione per il messaggio. Lunghezza dati (numero di byte) aggiunta automaticamente. Dati Imposta il contenuto del messaggio. Codice di controllo errore Imposta SUM, LRC o CRC come codice di controllo errore. Il codice di controllo errore specificato sarà aggiunto automaticamente durante la trasmissione. Durante la ricezione, il controllo errore sarà eseguito automaticamente in base al codice di controllo errore specificato nel messaggio, e la quantità specificata (lunghezza) di dati saranno ricevuti. Imposta i dati che indicano la fine del messaggio. Terminatore 453 Funzione macro di protocollo Capitolo 8-6 I seguenti attributi possono essere impostati per ogni elemento nel messaggio di trasmissione o ricezione. L’abbreviazione “R M” rappresenta il messaggio di ricezione e “T M” rappresenta il messaggio di trasmissione. Intestazione Attributo dati Costante Nessuna conversione variabile Conversione variabile ASC Conversione variabile HEX ASCII “” ESADECIMALE [] Caratteri speciali CR, STX, ecc. Equazione di primo grado che utilizza la variabile (N) Carattere jolly () Canale di lettura (R) Canale di scrittura (W) Variabile automatica: LNG Variabile automatica: SUM, LRC e CRC Equazione di primo grado che utilizza la variabile (N) Carattere jolly () Canale di lettura (R) Canale di scrittura (W) Variabile automatica: LNG Variabile automatica: SUM, LRC e CRC Equazione di primo grado che utilizza la variabile (N) Carattere jolly () Canale di lettura (R) Canale di scrittura (W) Variabile automatica: LNG Variabile automatica: SUM, LRC e CRC Indirizzo Lunghezza Dati Controllo errore Terminatore TM Sì RM Sì TM Sì RM Sì TM --- RM --- TM Sì RM Sì TM --- RM --- TM Sì RM Sì Sì Sì --- --- --- --- Sì Sì --- --- Sì Sì --- --- Sì Sì --- --- Sì Sì --- --- --- --- ------- ------- --Sì --- Sì Sì Sì ------- ------- --Sì --- Sì Sì Sì ------- ------- ------- ------- --- --- --- --- Sì Sì --- --- --- --- --- --- --- --- --- --- --- --- --- --- Sì Sì --- --- --- --- Sì Sì --- --- Sì Sì --- --- --- --- ------- ------- --Sì --- Sì Sì Sì ------- ------- --Sì --- Sì Sì Sì ------- ------- ------- ------- --- --- --- --- Sì --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- Sì --- --- --- --- --- Sì Sì --- --- Sì Sì --- --- --- --- ------- ------- --Sì --- Sì Sì Sì ------- ------- --Sì --- Sì Sì Sì ------- ------- ------- ------- --- --- --- --- --- Sì --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- Sì --- --- Canale di lettura (R) I dati del canale possono essere letti impostando gli attributi desiderati per “indirizzo” o “dati” nei messaggi di trasmissione e ricezione. Quando è impostato l’attributo, l’indirizzo o i dati dal canale specificato vengono letti. Esistono tre modi per specificare il canale: 1, 2, 3... 454 1. Può essere utilizzato il secondo operando dell’istruzione PMCR(260) (S, il primo canale di uscita). Esempio: R (1) Quando il comando è “Send” vengono letti i dati dal primo canale successivo al canale specificato per il secondo operando dell’istruzione PMCR(260). 2. Possono essere utilizzati canali di ingresso e di uscita nell’area dl collegamento della sequenza di comunicazione. Funzione macro di protocollo Capitolo 8-6 Esempio: R (I1+5) Specifica il quinto canale dall’inizio dei canali di ricezione nell’area di collegamento. Esempio: R (O2+1) Specifica il primo canale dal secondo canale di invio nell’area di collegamento. 3. Un indirizzo canale dell’area dati può essere specificato direttamente. Esempio: R (DM 0000 + 2) Specifica il secondo canale dopo DM 0000. Caratteri jolly (*) e canale di scrittura (W) Quando i dati vengono ricevuti, i caratteri jolly (*) e i canali di scrittura possono essere impostati per ”indirizzo” o “dati.” Le funzioni sono illustrate sotto: 1, 2, 3... 1. L’indirizzo del canale è specificato come terzo operando dell’istruzione PMCR(260) (primo canale di ingresso). 2. Un carattere jolly può essere impostato nell’indirizzo del messaggio di ricezione per ricevere qualsiasi messaggio indipendentemente dalla destinazione. Il risultato è una comunicazione di trasmissione. 3. Il carattere jolly può essere impostato nei dati del messaggio di ricezione per ricevere tutti i messaggi. 4. L’attributo Canale di scrittura può essere impostato nell’indirizzo del messaggio di ricezione per ricevere qualsiasi messaggio indipendentemente dalla destinazione e per scrivere il messaggio nell’area dati specificata dall’indirizzo del messaggio di ricezione. 5. L’attributo Canale di scrittura può essere impostato nei dati del messaggio di ricezione per ricevere tutti i messaggi e per scrivere il messaggio nell’area dati specificata dall’indirizzo del messaggio di ricezione. Equazione di primo grado che utilizza la variabile N Le equazioni di primo grado che comprendono la variabile N possono essere usate per l’indirizzo e per i dati. La variabile N è incrementata di 1 ogni volta che viene ripetuto dal contatore di ripetizione una fase specificata nella sequenza di comunicazione. L’utilizzo di un’equazione con N per l’indirizzo o i dati consente il tipo di caratteristiche dinamiche illustrate nell’esempio seguente: Esempio: R (2N+6) Specifica il sesto canale dopo il secondo operando dell’istruzione PMCR(260) per ”indirizzo” o “dati” e aggiunge alla caratteristica due canali ogni volta che viene ripetuta la fase. Informazioni comuni Dati di comunicazione Dati di comunicazione Dati di comunicazione Specificando il primo indirizzo con 2N+6 (equazione di primo grado utilizzando N). 6° canale (N=0) 8° canale (N=1) 10° canale (N=2) 12° canale (N=3) Dati di comunicazione 14° canale (N=4) Dati di comunicazione 16° canale (N=5) Codice controllo errore e lunghezza Un codice di controllo errore SUM, LRC o CRC e la lunghezza dati sono aggiunti automaticamente al messaggio durante la trasmissione. Quando il messaggio viene ricevuto, gli errori di trasmissione sono controllati mediante il codice di controllo errore e il numero di byte di dati specificati con la lunghezza dati vengono ricevuti. Matrice di ricezione Se nel messaggio di ricezione è impostata una matrice di ricezione, possono essere impostati fino a 15 tipi di messaggi di ricezione e possono essere assegnati a ogni tipo di messaggio diversi processi ed elaborazione di errori. 455 Funzione macro di protocollo Capitolo 8-6 8-6-4 Esempio di applicazione Le sequenze di comunicazione possono essere richiamate ed eseguite dall’istruzione PMCR(260). L’esempio seguente mostra una sequenza di comunicazione che trasmette cinque canali di dati uno dopo l’altro iniziando con il primo canale dopo il secondo operando dell’istruzione PMCR(260), e poi memorizza i dati ricevuti nel canale specificato nel terzo operando. 00000 28908 PMCR #1100 DM0000 DM0010 1, 2, 3... 456 1. Quando IR 00000 è ON e SR 28908 (flag di esecuzione istruzione porta A scheda di comunicazione) è OFF, le comunicazioni dati sono eseguite mediante la porta A della scheda di comunicazione. 2. DM 0000 è il primo canale dei dati di trasmissione, che sono trasmessi consecutivamente (5 volte), in base al contatore di ripetizione della sequenza di comunicazione. 3. I dati ricevuti sono scritti nell’area DM iniziando con il canale DM 0010. Il comando Send deve essere impostato nella fase di trasmissione e il contatore di ripetizione deve essere impostato su 5. L’attributo Canale di lettura deve essere usato con il secondo operando dell’istruzione PMCR(260) per i dati nel messaggio di trasmissione e deve essere impostata l’equazione di primo grado R(N+1). Per scrivere il messaggio di ricezione nell’indirizzo dell’area dati specificato dal secondo operando dell’istruzione PMCR(260), deve essere impostata la temporizzazione per la scrittura dati ricevuti nel parametro di comunicazione risposta delle impostazioni sequenza. Il comando Recv deve essere impostato in ogni fase di ricezione e deve essere impostato “sì” per il parametro di comunicazione risposta delle impostazioni fase. Impostare il carattere jolly () nel messaggio di ricezione per ricevere tutti i dati. Nel processo successivo, impostare “End” nella fase di trasmissione e ricezione. Nell’elaborazione degli errori, impostare “Abort” nella fase di trasmissione e di ricezione. CAPITOLO 9 Gestione degli errori Il C200HX/HG/HE dispone di funzioni auto–diagnostiche che consentono di identificare i vari tipi di condizioni anormali che possono verificarsi nel sistema. Queste funzioni riducono il tempo di fermo macchina e rendono possibile una rapida e veloce correzione degli errori. Questo capitolo fornisce informazioni sugli errori hardware e software che possono verificarsi durante il funzionamento del PLC. Gli errori di inserimento dei programmi sono descritti in 4-7 Inserimento, modifica e verifica dei programmi. Benché descritti nel Capitolo 3 Aree di memoria, i flag ed altre informazioni di errore fornite nelle aree SR e AR sono elencate nel paragrafo 9-5 Flag di errore. 9-1 9-2 9-3 9-4 9-5 9-6 Indicatori di allarme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allarmi programmati e messaggi di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lettura e cancellazione degli errori e dei messaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Messaggi di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flag di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Errori Host Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 458 458 459 464 465 457 Lettura e cancellazione degli errori e dei messaggi 9-1 Capitolo 9-3 Indicatori di allarme L’indicatore ALM/ERR situato sulla parte anteriore della CPU fornisce l’indicazione visiva di un’anomalia nel PLC. Quando l’indicatore è ON (ERRORE), si è verificato un errore fatale (vale a dire un errore che interromperà il funzionamento del PLC); quando l’indicatore lampeggia (ALLARME), si è verificato un errore non fatale. Questa spia è illustrata in 2-1-1 Indicatori della CPU. ! AVVERTENZA 9-2 Il PLC manderà a ON l’indicatore ALM/ERR, interromperà l’esecuzione del programma e manderà a OFF tutte le uscite dal PLC per la maggior parte degli errori hardware, per certi errori fatali software oppure quando viene eseguita l’istruzione FALS(007) (vedere le tabelle riportate nelle pagine seguenti). Il PLC continuerà a funzionare se dovessero verificarsi tutti gli altri errori. E’ cura dell’utente prendere provvedimenti adeguati sia per assicurarsi che l’arresto automatico dal sistema, dovuto al verificarsi di errori fatali, non provochi una situazione rischiosa, sia per cautelarsi dagli errori che non causano l’arresto automatico del sistema. E’ possibile utilizzare i flag di sistema ed altri errori di sistema e/o programmati dall’utente per programmare le azioni correttive adatte. Allarmi programmati e messaggi di errore Le istruzioni FAL(006), FALS(007) e MSG(046) possono essere utilizzate nel programma per fornire informazioni programmate dall’utente sulle condizioni di errore. Mediante queste tre istruzioni, l’utente può ottenere una diagnosi accurata dell’errore che può essere di valido aiuto nella gestione degli errori. L’istruzione FAL(006) viene utilizzata con un numero FAL diverso da 00, il quale viene inviato all’area SR quando viene eseguita l’istruzione FAL(006). L’esecuzione di FAL(006) non interromperà il funzionamento del PLC e non influenzerà direttamente nessuna uscita dal PLC. Anche l’istruzione FALS(007) viene utilizzata con un numero FAL, il quale viene inviato alla stessa locazione dell’area SR quando viene eseguita l’istruzione FALS(007). L’esecuzione di FALS(007) interromperà il funzionamento del PLC ma tutte le uscite dal PLC saranno mandate a OFF. Quando viene eseguita l’istruzione FAL(006) con numero di funzione 00, il numero FAL corrente contenuto nell’area SR viene cancellato e sostituito con un altro, qualora il sistema abbia memorizzato più numeri. Quando viene utilizzata l’istruzione MSG(046), un messaggio contenente i canali dell’area dati specificati viene visualizzato sulla console di programmazione o su un altro dispositivo di programmazione. L’utilizzo di queste istruzioni è descritto dettagliatamente nel Capitolo 5 Istruzioni. 9-3 Lettura e cancellazione degli errori e dei messaggi I messaggi di errore di sistema possono essere visualizzati sia sulla console di programmazione sia su un altro dispositivo di programmazione. Sulla console di programmazione, premere i tasti CLR, FUN e MONTR. Se il sistema ha memorizzato più messaggi di errore, premere di nuovo il tasto MONTR per visualizzare il messaggio successivo. Se il sistema è in modalità PROGRAM, il tasto MONTR cancellerà il messaggio di errore, pertanto è consigliabile annotare tutti i messaggi di errore nel momento in cui vengono letti. (Non è possibile cancellare un errore o un messaggio quando il PLC è in modalità RUN o MONITOR; per eseguire questa operazione il PLC deve essere in modalità PROGRAM.) Quando tutti i messaggi sono stati cancellati, verrà visualizzato “ERR CHK OK”. Per ulteriori dettagli su come accedere ai messaggi di errore dalla console di programmazione consultare il Capitolo 7-1 Monitoraggio delle operazioni e modifica dei dati. Per i procedimenti relativi al LSS o al SSS fare riferimento a LSS Manuale dell’Operatore o a SSS Manuale dell’Operatore: serie C. 458 Capitolo 9-4 Messaggi di errore 9-4 Messaggi di errore I messaggi di errore che vengono visualizzati si riferiscono sostanzialmente a tre tipi di errori: errori di inizializzazione, errori operativi non fatali ed errori operativi fatali. La maggior parte di questi errori vengono indicati anche dal numero FAL che viene trasferito all’area FAL dell’area SR. Gli indicatori presenti sulla CPU consentono di determinare velocemente il tipo di errore che si è verificato, come descritto nelle tabelle sottostanti relative ai tre tipi di errori. Se un indicatore non viene menzionato nella descrizione che segue, significa che il suo stato (acceso o spento) è totalmente ininfluente. Dopo avere eliminato la causa di un errore, cancellare il messaggio di errore dalla memoria prima di riprendere l’operazione. Gli asterischi presenti nei messaggi di errore illustrati nelle tabelle seguenti rappresentano dati numerici variabili. Il display visualizzerà il numero effettivo. 1, 2, 3... Errori di inizializzazione 1. Se l’indicatore POWER è acceso e RUN non è acceso, verificare la presenza di errori di inizializzazione. 2. Collegare la Console di programmazione al PLC e verificare che la modalità sia visualizzata. Se è visualizzata, spegnere e riaccendere l’alimentatore. 3. Se l’indicatore ALM/ERR lampeggia, verificare la presenza di errori operativi non fatali. 4. Cambiare la modalità RUN o MONITOR e verificare che l’indicatore RUN sia acceso. Se non è acceso e tutti i passi precedenti falliscono, sostituire la CPU. I messaggi di errore di seguito riportati vengono visualizzati prima dell’inizio dell’esecuzione di un programma. L’indicatore POWER sarà acceso mentre l’indicatore RUN sarà spento. Errore e messaggio In attesa di modulo I/O speciale o di modulo di ingresso ad interrupt N. FAL Nessuno CPU WAIT’G In attesa di I/O remoto CPU WAIT’G Errori operativi non fatali Nessuno Probabile causa Un modulo I/O speciale o un modulo di ingresso ad interrupt non è stato inizializzato. Il modulo I/O remoto non è alimentato o è impossibile trovare il terminatore. Possibile correzione Eseguire l’operazione di lettura della tabella I/O per verificare i numeri dei moduli. Sostituire il modulo se nella tabella I/O viene indicato solo da “$”. (Il display di lettura della tabella I/O non visualizzerà i moduli I/O speciali di tutti i dispositivi periferici.) Verificare l’alimentazione dei moduli I/O remoti, i collegamenti tra i moduli I/O remoti e l’impostazione del terminatore. I messaggi di errore di seguito riportati verranno visualizzati quando si verificano degli errori dopo l’inizio dell’esecuzione del programma. Il funzionamento del PLC e l’esecuzione del programma continueranno anche dopo il verificarsi di uno o più errori non fatali. Quando si verifica uno di questi errori, gli indicatori POWER e RUN rimarranno illuminati e l’indicatore ALM/ERR lampeggerà. 459 Capitolo 9-4 Messaggi di errore Errore e messaggio N. FAL E’ stata eseguita un’istruzione FAL(006) nel programma. Verificare il numero dell’istruzione FAL per determinare le condizioni che potrebbero causarne l’esecuzione (impostato dall’utente). Correggere in base alla causa indicata dal numero FAL (impostato dall’utente). 8A Si è verificato un errore nel trasferimento di dati tra il modulo di ingresso ad interrupt e la CPU. Sostituire il modulo di ingresso ad interrupt. 8B E’ stata eseguita una subroutine di interrupt maggiore di 10 ms durante il rinfresco I/O di un modulo I/O remoto o durante la manutenzione Host Link. Si è cercato di eseguire un tipo di rinfresco I/O diverso da quello impostato per il ciclo di rinfresco del modulo I/O speciale. 9A Si è verificato un errore nel trasferimento di dati tra un modulo I/O ad alta densità e la CPU. Controllare il contenuto di SR 262 e SR 263 e verificare che il tempo di elaborazione della subroutine di interrupt sia minore di 10 ms. Modificare il programma o le impostazioni del ciclo di rinfresco per il modulo I/O speciale in modo da utilizzare lo stesso metodo di rinfresco. Verificare da AR 0205 a AR 0214 per identificare il modulo che presenta il problema, quindi sostituirlo e riavviare il PLC. 9B E’ stato rilevato un errore nel setup del PLC. Questo errore viene generato quando l’impostazione viene letta o utilizzata per la prima volta. Verificare e correggere le impostazioni del setup del PLC. 9C Si è verificato un errore con una scheda di comunicazione. Per ulteriori dettagli fare riferimento al Manuale Operativo della scheda di comunicazione. 9D Si è verificato un errore durante la trasmissione dei dati tra la UM e la cartuccia di memoria perché: Accertarsi che il PLC sia in modalità PROGRAM. SYS FAIL FAL** SYS FAIL FAL8A Errore di subroutine di interrupt SYS FAIL FAL8B Errore nel modulo I/O ad alta densità SYS FAIL FAL9A Errore nel setup del PLC SYS FAIL FAL9B Errore nella scheda di comunicazione SYS FAIL FAL9C Errore di trasferimento nella cartuccia di memoria SYS FAIL FAL9D Il PLC non è in modalità PROGRAM. La UM o la cartuccia di memoria è per sola lettura. Capacità insufficiente della UM o della cartuccia di memoria. Un errore di checksum si è verificato nella cartuccia di memoria 460 Possibile correzione 01...99 Errore FAL Errore del modulo di ingresso ad interrupt Probabile causa (l’intervallo da SR 27500 a SR 27502 indica quale parte del setup del PLC è scorretta.) Accertarsi che la cartuccia di memoria non sia protetta in scrittura. Accertarsi che la UM e la cartuccia di memoria abbiano sufficiente capacità. Accertarsi che i collegamenti di dati SYSMAC NET non siano attivi durante il trasferimento. Trasferire di nuovo i dati. Capitolo 9-4 Messaggi di errore Errore e messaggio N. FAL Tempo di scansione superato Il watchdog timer ha superato i 100 ms. Il tempo di scansione del programma è maggiore di quanto raccomandato. Ridurre, se possibile, il tempo di scansione. E7 Il modulo è stato rimosso o sostituito con un modulo diverso, causando un errore nella tabella I/O. Eseguire un’operazione di verifica per controllare la tabella I/O, collegare i moduli fittizi oppure registrare di nuovo la tabella I/O. B0 o B1 Si è verificato un errore nelle trasmissioni tra moduli I/O remoti. Verificare la linea di trasmissione tra il PLC e il modulo master e tra i moduli I/O remoti. D0 Si è verificato un errore nel modulo PLC Link, modulo master I/O remoto, tra un modulo host link, SYSMAC LINK o SYSMAC NET e la CPU oppure nel rinfresco tra un modulo I/O speciale e la CPU. Definire il numero di unità del modulo che ha provocato l’errore (AR 00 o SR 282), correggere l’errore e cambiare lo stato di funzionamento del bit di riavvio appropriato in AR 01, SR 250 o SR 252. Se il modulo non riparte, sostituirlo. F7 Manca la batteria oppure la sua tensione si è ridotta. Controllare la batteria e, se necessario, sostituirla. I/O VER ERR Errore I/O remoto REMOTE ERR Numero del modulo master I/O remoto Errore modulo I/O speciale * SIOU ERR Errore di batteria BATT LOW Possibile correzione F8 CYCLE TIME OVER Errore di verifica della tabella I/O Probabile causa 461 Capitolo 9-4 Messaggi di errore Errori operativi fatali I messaggi di errore di seguito riportati vengono visualizzati quando si verificano degli errori dopo l’inizio dell’esecuzione del programma. Quando uno dei seguenti errori si verifica, il funzionamento del PLC e l’esecuzione del programma si interrompono e tutte le uscite dal PLC vengono commutate ad OFF. Per un errore di interruzione dell’alimentazione elettrica nessun indicatore della CPU verrà acceso. Per tutti gli altri errori operativi fatali, gli indicatori POWER e ALM/ERR si illumineranno. L’indicatore RUN sarà a OFF. Errore e messaggio Interruzione alimentazione elettrica Nessun messaggio. N. FAL Possibile correzione Nessuno L’alimentazione è stata Verificare la tensione interrotta per almeno 10 dell’alimentatore e i fili elettrici. ms. Tentare nuovamente l’accensione. F1 Errore di memoria Probabile causa MEMORY ERR SR 27211 ON: Verificare il setup del PLC. Si è verificato un errore di checksum nel setup del PLC (da DM 6600 a DM 6655). SR 27212 ON: Verificare il programma. Si è verificato un errore di checksum nel programma, che evidenzia un’istruzione errata. SR 27213 ON Si è verificato un errore di checksum in una modifica di un’istruzione estesa. SR 27214 ON: Installare correttamente la Una cartuccia di memoria cartuccia di memoria. F0 Istruzione END(001) mancante NO END INST C0...C3 Errore del bus I/O I/O BUS ERR * N. rack 462 è stata installata o rimossa quando il PLC era acceso. SR 27215 ON: Verificare se la memoria della CPU è protetta oppure se si è Errore Autoboot. verificato un errore di checksum nella cartuccia di memoria. Manca l’istruzione Scrivere END(001) alla fine del END(001) nel pro- programma. gramma. Si è verificato un errore La cifra più a destra del numero nella linea del bus tra la FAL rappresenta il numero del CPU e i moduli I/O. rack in cui è stato rilevato l’errore. Verificare i collegamenti tra i rack. Capitolo 9-4 Messaggi di errore Errore e messaggio Troppi moduli N. FAL E1 I/O UNIT OVER Errore nella tabella I/O ingresso–uscita E0 I/O SET ERROR Errore FALS SYS FAIL FALS** 01...99 o 9F Probabile causa Possibile correzione Due o più moduli I/O speciali oppure moduli I/O ad alta densità gruppo 2 sono stati impostati allo stesso numero di unità. Eseguire l’operazione di lettura della tabella I/O per verificare i numeri di unità ed eliminare le duplicazioni. Il numero d’unità di un modulo I/O speciale che richiede due canali è stato impostato al numero dell’ultima unità (9 o F). Il numero I/O di un modulo I/O ad alta densità gruppo 2 a 64 pt è stato impostato al numero dell’ultima unità (9 o F). Due moduli SYSMAC NET o SYSMAC LINK condividono lo stesso livello operativo. Sono stati installati tre o più moduli di ingresso ad interrupt. I numeri d’unità dei moduli che richiedono due canali non possono essere impostati al numero dell’ultima unità. Cambiare il numero d’unità con un’impostazione consentita. I numeri d’unità dei moduli I/O ad alta densità gruppo 2 a 64 pt non possono essere impostati al numero dell’ultima unità. Cambiare il numero d’unità con un’impostazione valida. Verificare i livelli operativi del modulo SYSMAC NET e SYSMAC LINK ed eliminare le duplicazioni. E’ possibile installare fino a un massimo di due moduli di ingresso ad interrupt. Il numero d’unità di un modulo I/O speciale o di modulo I/O ad alta densità non è compreso nella gamma di impostazioni consentite. Un terzo rack di espansione è stato collegato ad un PLC che può alloggiarne soltanto due. Le designazioni del canale di ingresso e uscita registrate nella tabella I/O non corrispondono ai canali di ingresso/uscita richiesti dai moduli effettivamente installati. Impostare il numero d’unità in modo da farlo rientrare nella gamma di impostazioni consentite. E’ stata eseguita un’istruzione FALS nel programma. Controllare il numero FAL per determinare le condizioni che potrebbero causarne l’esecuzione (impostato dall’utente o dal sistema). Scollegare il terzo rack a meno che il PLC non possa alloggiare tre rack. Controllare la tabella I/O mediante l’operazione di verifica della tabella I/O e verificare tutti i moduli per accertarsi che la loro configurazione sia corretta. Quando il sistema è stato confermato, registrare di nuovo la tabella I/O. Correggere in base alla causa indicata dal numero FAL. Se il numero FAL è 9F, verificare il watchdog timer e il tempo di scansione, che potrebbero essere troppo lunghi. Errori di comunicazione Se si verificano errori nella comunicazione, l’indicatore della porta periferica e della porta RS–232C (COMM) non si illuminerà. Verificare il collegamento, programmando su entrambi i lati (C200HX/HG/HE e periferiche), quindi resettare la porta utilizzando il bit di reset (porta RS–232C: SR 25209). Altri messaggi di errore All’interno di questo manuale è possibile trovare trattazioni dettagliate di molti altri messaggi di errore. Gli errori che si verificano durante l’inserimento e il debug dei programmi sono analizzati nel Capitolo 4 Scrittura e inserimento dei programmi. 463 Capitolo 9-5 Flag di errore 9-5 Flag di errore La tabella di seguito riportata elenca i flag e le altre informazioni fornite nelle aree SR e AR che possono essere utilizzate per la gestione degli errori. Per ulteriori dettagli, consultare 3-4 Area SR e 3-5 Area AR. Area SR Indirizzo/i 23600...23615 23700...23715 24700...25015 25100...25115 25200 25203 25206 25208 25300...25307 25308 25309 25310 25311 25312 25411 25413 25414 25415 25503 26400...26403 26404 26408...26411 26412 26800...26815 27011 27012 27013 27014 27015 27211 27212 27213 27214 27215 27312 27313 27314 27500 27501 27502 28000...28015 28200...28215 464 Funzione Stato di loop del nodo per il sistema SYSMAC NET Area di uscita del codice di errore/completamento per SEND(090)/RECV(098) in SYSMAC LINK/SYSMAC NET Gestione del modulo PLC Link e flag di errore Flag di errore I/O remoti Flag di errore SEND(090)/RECV(098) Livello 0 SYSMAC LINK/SYSMAC NET Flag di errore SEND(090)/RECV(098) Livello 1 SYSMAC LINK/SYSMAC NET Flag di errore Livello 1 del modulo host link da installare su rack Flag di errore della porta RS–232C Area di uscita del numero FAL Flag di batteria scarica Flag di errore del tempo di scansione Flag di errore della verifica I/O Flag di errore Livello 0 del modulo host link da installare su rack Flag di errore I/O remoto Flag di errore del modulo di ingresso ad interrupt Flag di errore della programmazione interrupt Flag di errore del modulo I/O ad alta densità gruppo 2 Flag di errore del modulo speciale (I/O speciale, PLC Link, Host Link, master I/O remoto, SYSMAC NET o flag di errore del modulo SYSMAC Link) Flag di errore (ER) dell’esecuzione di un’istruzione Codice di errore della porta RS–232C Errore di comunicazione della porta RS-232C Codice di errore della porta periferica (tranne modalità periferica) Flag di errore della comunicazione della porta periferica (tranne modalità periferica) Informazioni sull’errore della scheda di comunicazione Flag di errore trasferimento UM: collegamento dati SYSMAC NET attivo durante il trasferimento della tabella di collegamento dati. Flag di errore trasferimento UM: non modalità PROGRAM Flag di errore trasferimento UM: sola lettura Flag di errore trasferimento UM: capacità insufficiente o UM inesistente Flag di errore trasferimento UM: errore di checksum della scheda Flag di errore della memoria: errore di checksum nel setup del PLC Flag di errore della memoria: UM o errore di checksum del ladder Flag di errore della memoria: errore di checksum dell’area di modifica del codice dell’istruzione estesa Flag di errore della memoria: scollegamento on–line della cartuccia di memoria Flag di errore della memoria: errore Autoboot Flag di errore trasferimento IOM: non modalità PROGRAM Flag di errore trasferimento IOM: sola lettura Flag di errore trasferimento IOM: capacità insufficiente Errore nel setup del PLC (da DM 6600 a DM 6605) Errore nel setup del PLC (da DM 6613 a DM 6623) Errore nel setup del PLC (da DM 6635 a DM 6655) Flag di errore del modulo I/O ad alta densità gruppo 2 per moduli da 0 a F Flag di errore del modulo I/O speciale per moduli da 0 a F Capitolo 9-6 Errori Host Link Area AR Indirizzo/i 0000...0009 0010 0011 0012 0013 0014 0015 0200...0204 0205...0214 0215 0300...0315 0400...0415 0500...0515 0600...0615 0713...0715 1114 1115 1514 1515 9-6 Funzione Flag di errore del modulo PLC Link o del modulo I/O speciale Flag di errore del sistema di livello 1 SYSMAC LINK/SYSMAC NET Flag di errore del sistema di livello 0 SYSMAC LINK/SYSMAC NET Flag di errore di livello 1 del modulo host link da installare sul rack Flag di errore di livello 0 del modulo host link da installare sul rack Flag di errore 1 del modulo master I/O remoto Flag di errore 0 del modulo master I/O remoto Flag di errore per rack secondari da 0 a 4 Flag di errore del modulo I/O ad alta densità gruppo 2 (gli indirizzi da AR 0205 a AR 0214 corrispondono ai numeri I/O da 0 a 9) Flag di errore del modulo I/O ad alta densità gruppo 2 Flag di errore di moduli I/O ottici (da 0 a 7) Flag di errore di moduli I/O ottici (da 8 a 15) Flag di errore di moduli I/O ottici (da 16 a 23) Flag di errore di moduli I/O ottici (da 24 a 31) Bit della storia dell’errore Flag di errore livello 0 del controllore della comunicazione Flag di errore EEPROM per il livello operativo 0 Flag di errore livello 1 del controllore della comunicazione Flag di errore EEPROM per il livello operativo 1 Errori Host Link Questi codici rappresentano i codici di risposta (codici di errore) che possono essere riportati nella frame di risposta. Quando si verificano due o più errori, verrà riportato solo il codice del primo errore. Codi ce di error e 00 Contenuto Probabile causa Possibili soluzioni Completamento normale --- 01 Non eseguibile in modalità RUN Il comando inviato non può essere eseguito quando il PLC è in modalità RUN. 02 Non eseguibile in modalità MONITOR Il comando inviato non può essere eseguito quando il PLC è in modalità MONITOR. 03 UM protetta in scrittura 04 Indirizzo superato Spostare su OFF il pin 1 del commutatore DIP della CPU. Correggere l’impostazione dell’indirizzo di programma e trasferire di nuovo il comando. 13 Errore FCS 14 Errore di formato La UM del PLC è protetta in scrittura. L’impostazione dell’indirizzo di programma in un comando SV Change o SV Read supera il limite massimo di 65.535. Il FCS è errato. E’ possibile che il calcolo FCS sia sbagliato o che vi siano disturbi che causano un’influenza avversa. Il formato del comando è sbagliato oppure si è diviso un comando che non poteva essere diviso. 15 Errore nel numero di dati immesso I dati non sono compresi nell’intervallo specificato oppure sono troppo lunghi. Correggere i dati e trasferire di nuovo il comando. 16 Comando non supportato L’operando specificato in un comando SV Change o SV Read non esiste nel programma. Verificare il comando e il programma. --Verificare la relazione tra il comando e la modalità del PLC. Verificare il metodo di calcolo FCS. Se si tratta di disturbi, trasferire di nuovo il comando. Verificare il formato e trasferire di nuovo il comando. 465 Capitolo 9-6 Errori Host Link Codi ce di error e 18 Errore di lunghezza della frame La lunghezza massima della frame (132 byte) è stata superata. (Se la frame supera i 280 byte, il flag dell’overflow di ricezione verrà mandato a ON e non vi sarà alcuna risposta.) Verificare il comando e dividerlo in frame multiple se necessario. 19 Non eseguibile Gli elementi da leggere non sono registrati per il comando composito (QQ). Eseguire QQ per registrare gli elementi da leggere prima di tentare una lettura batch. 23 Memoria utente protetta in scrittura Interruzione causata da un errore FCS nella trasmissione dei dati Il pin 1 sul commutatore DIP del C200HX/HG/HE è ON. Si è verificato un errore FCS nella seconda frame o in una successiva. Spostare su OFF il pin 1 del commutatore DIP della CPU. Verificare il metodo di calcolo FCS. Se si tratta di disturbi, trasferire di nuovo il comando. A4 Interruzione causata da un errore di formato nella trasmissione dei dati Il formato del comando non corrisponde al numero di byte nella seconda frame o in una successiva. Verificare il formato e trasferire di nuovo il comando. A5 Interruzione causata da un errorenel numero di dati immesso nella trasmisisone dei dati Si è verificato un errore di dati nella seconda frame o in una successiva. Correggere i dati e trasferire di nuovo il comando. A8 Interruzione causata da un errore di lunghezza della frame nella trasmissione dei dati La lunghezza della seconda frame o Non superare la lunghezza masdi una successiva è maggiore di sima di 132 byte. 132 byte. A3 Contenuto Errori senza risposte Probabile causa Possibili soluzioni Gl