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