Omron SYSMAC Series CS, SYSMAC Series CJ Programming Manual [it]

Advanced Industrial Automation
Cat. No. W394-IT2-07
Controllori programmabili
Serie SYSMAC CS CS1G/H-CPU■-EV1
CS1G/H-CPU■H CS1D-CPU■H CS1D-CPU■S
Serie SYSMAC CJ CJ1G-CPU
MANUALE DI PROGRAMMAZIONE
Informazioni generali in breve
1 Funzionamento della CPU
2 Programmazione
3 Funzioni di istruzione
4Task
Serie SYSMAC CS
CS1G/H-CPU@@-EV1 CS1G/H-CPU@@H CS1D-CPU@@H CS1D-CPU@@S
Serie SYSMAC CJ
CJ1G-CPU@@ CJ1G/H-CPU@@H CJ1G-CPU@@ P CJ1M-CPU@@
Controllori programmabili
Manuale di programmazione
Revisione: luglio 2004
iv
Avviso
r
I prodotti OMRON sono destinati all'uso da parte di un operatore qualificato secondo le procedure appropriate e solo per gli scopi descritti in questo manuale.
Nel presente manuale le precauzioni sono indicate e classificate in base alle convenzioni riportate di seguito Attenersi sempre alle istruzioni fornite. La mancata osservanza di tali precauzioni potrebbe causare lesioni a persone o danni a proprietà.
!PERICOLO Indica una situazione di immediato pericolo che, se non evitata, sarà causa di lesioni gravi o
mortali.
!AVVERTENZA Indica una situazione di potenziale pericolo che, se non evitata, può essere causa di lesioni
gravi o mortali.
!Attenzione Indica una situazione di potenziale pericolo che, se non evitata, può essere causa di lesioni
non gravi a persone o danni alla proprietà.
Riferimenti ai prodotti OMRON
Tutti i nomi di prodotti OMRON contenuti nel presente manuale iniziano con lettera maiuscola. Anche per la parola "Modulo" viene utilizzata l'iniziale maiuscola quando si riferisce a un prodotto OMRON, indipendentemente dal fatto che faccia o meno parte del nome proprio del prodotto.
L'abbreviazione "Ch", che compare su alcuni display e prodotti OMRON, spesso corrisponde a "canale", termine che viene in alcuni casi abbreviato come "Cnl" nella documentazione.
L'abbreviazione "PLC" indica un controllore programmabile. È tuttavia possibile che in alcuni dispositivi di programmazione venga visualizzata l'abbreviazione "PC" ad indicare il controllore programmabile.
Indicazioni visive
Nota Indica informazioni di particolare rilevanza per un efficiente e vantaggioso
1,2,3... 1. Indica un qualche tipo di elenco, quali procedure, elenchi di controllo, ecc.
OMRON, 2001
Tutti i diritti riservati. Nessuna parte della presente pubblicazione può essere riprodotta, memorizzata in un sistema, trasmessa in qualsiasi forma o con qualsiasi mezzo, meccanico, elettronico, tramite fotocopia, registrazione o altro, senza previo consenso scritto di OMRON.
OMRON non si assume alcuna responsabilità in merito all'uso delle informazioni contenute nel presente manuale. Inoltre, poiché OMRON è costantemente impegnata a migliorare la qualità dei propri prodotti, le informazioni fornite in questa sede sono soggette a modifiche senza preavviso. Nonostante OMRON abbia posto la massima cura nella realizzazione del presente manuale, non può essere ritenuta responsabile per eventuali errori od omissioni, né si assume alcuna responsabilità pe eventuali danni derivanti dall'uso delle informazioni in esso contenute.
Nella colonna sinistra del manuale sono riportate le seguenti intestazioni per facilitare l'individuazione dei diversi tipi di informazioni.
utilizzo del prodotto.
v
Versioni delle CPU della serie CS/CJ
Versioni delle CPU
Notazione delle versioni delle CPU sui prodotti
CPU della serie CS/CJ
Per gestire le CPU della serie CS/CJ in base alle differenze di funzionalità presenti negli aggiornamenti, è stato introdotto il concetto di "versione della CPU". Questo concetto si applica alle CPU CS1-H, CJ1-H, CJ1M e CS1D.
La versione della CPU è riportata a destra del numero di lotto, sulla targhetta dei prodotti per i quali vengono gestite le versioni, come illustrato di seguito.
Targhetta prodotto
CS1H-CPU67H
CPU UNIT
Lotto n.
Lotto n. . 040715 0000 Ver...3.0
OMRON Corporation MADE IN JAPAN
Versione della CPU Esempio per una CPU versione 3.0
• Le CPU CS1-H, CJ1-H e CJ1M (eccetto i modelli di base) prodotti entro il 4 novembre del 2003 non riportano alcun numero di versione, ovvero la posizione della versione della CPU sopra illustrata risulta vuota.
• La versione delle CPU CS1-H, CJ1-H e CJ1M nonché delle CPU CS1D per sistemi a singola CPU inizia dalla versione 2.0.
• La versione delle CPU CS1D per sistemi a due CPU inizia dalla versione 1.1.
• Le CPU per le quali non viene fornita una versione sono definite CPU precedenti alla versione @.@, ad esempio CPU precedenti alla versione 2.0 e CPU precedenti alla versione 1.1.
Verifica delle versioni delle CPU tramite software di supporto
Nota Non è possibile verificare le versioni utilizzando CX-Programmer versione 3.3
È possibile verificare la versione della CPU tramite CX-Programmer versione 4.0 utilizzando uno dei due metodi riportati di seguito.
• Utilizzo della finestra PLC Information (Informazioni sul PLC)
• Utilizzo della finestra Unit Manufacturing Information (Informazioni sulla produzione della CPU). Questo metodo può essere utilizzato anche per i Moduli di I/O speciale e i Moduli CPU bus.
o precedenti.
Informazioni sul PLC
• Se si conoscono il tipo di dispositivo e il tipo di CPU, selezionarli nella finestra di dialogo Change PLC (Cambia PLC), connettersi in linea e selezionare PLC - Edit - Information (PLC - Modifica - Informazioni) dai menu.
• Se non si conoscono il tipo di dispositivo e il tipo di CPU, ma si è connessi direttamente alla CPU tramite una linea seriale, selezionare PLC - Auto Online (PLC - Connessione in linea automatica) per stabilire una connessione in linea, quindi selezionare PLC - Edit - Information (PLC - Modifica - Informazioni).
In entrambi i casi, verrà visualizzata la finestra di dialogo PLC Information (Informazioni sul PLC) riportata di seguito.
vi
Versione della CPU
Utilizzare la finestra sopra illustrata per verificare la versione della CPU.
Informazioni sulla produzione della CPU
Nella finestra I/O Table (Tabella di I/O) fare clic con il pulsante destro del mouse e selezionare Unit Manufacturing information - CPU Unit. (Informazioni sulla produzione del modulo - CPU).
Verrà visualizzata la finestra di dialogo Unit Manufacturing information (Informazioni sulla produzione della CPU) riportata di seguito.
vii
Versione della CPU
Utilizzare la finestra sopra illustrata per verificare la versione della CPU connessa in linea.
Utilizzo delle etichette delle versioni delle CPU
Con la CPU vengono fornite le etichette delle versioni riportate di seguito.
Ver.
3.0
Ver.
3.0
Queste etichette possono essere utilizzate per gestire le differenze nelle funzioni disponibili nei diversi Moduli. Applicare l'etichetta appropriata sulla parte frontale del Modulo per indicare la versione attualmente in uso.
Ver.
Ver.
È possibile apporre queste etichette sulla parte frontale delle CPU precedenti per distinguerle da quelle di versioni differenti.
viii
Notazione delle versioni delle CPU
Nel presente manuale la versione di una CPU viene fornita come illustrato nella seguente tabella.
Targhetta prodotto
Descrizione
Designazione di singole CPU (ad esempio CS1H-CPU67H)
Designazione dei gruppi delle CPU (ad esempio le CPU CS1-H)
Designazione di un'intera serie di CPU (ad esempio le CPU della serie CS)
CPU su cui non viene fornita alcuna
versione
Lot No. XXXXXX XXXX
OMRON Corporation MADE IN JAPAN
CPU CS1-H precedenti alla versione 2.0 CPU CS1H-CPU67H versione @.@
CPU CS1-H precedenti alla versione 2.0 CPU CS1-H versione @.@
CPU della serie CS precedenti alla versione
2.0
CPU per le quali viene fornita una versione
Lot No. XXXXXX XXXX
OMRON Corporation MADE IN JAPAN
CPU della serie CS versione @.@
(Ver. @.@)
Ver. @ .@
ix
Versioni di CPU e numeri di lotto
Serie Modello Dati di produzione
Serie CSCPU CS1 CS1@-
CPU@@
Prece-
dente
Nessuna versione della CPU
Settembre
2003
Ottobre
2003
Novembre
2003
Dicembre
2003
Giugno
2004
Successiva
CPU CS1-V1 CS1@-
CPU CS1-H CS1@-
CPU CS1D
Serie CJCPU CJ1 CJ1G-
CPU CJ1-H CJ1@-
CPU per sistemi a due CPU
CPU per sistemi a singola CPU
CPU@@-V1
CPU@@H
CS1D­CPU@@H
CS1D­CPU@@S
CPU@@
CPU@@H
Nessuna versione della CPU
CPU precedenti alla versione 2.0
CPU precedenti alla versione 1.1
CPU precedenti alla versione 2.0
CPU precedenti alla versione 2.0
CPU versione 2.0 (N. lotto da 031105 in poi)
CPU versione 1.1 (N. lotto da 031120 in poi)
CPU versione 2.0 (N. lotto da 031215 in poi)
CPU versione 2.0 (N. lotto da 031105 in poi)
CPU versione
3.0 (N. lotto da 040622 in poi)
CPU versione
3.0 (N. lotto da 040623 in poi)
Sof­tware di sup­porto
CPU CJ1M eccetto modelli di base
CPU CJ1M, mod­elli di base
CX-Programmer WS02-
CJ1M­CPU@@
CJ1M­CPU11/21
CXPC1­EV@
CPU precedenti alla versione 2.0
CPU versione 2.0 (N. lotto da 031002 in poi)
Versione 3.2 Versione 3.3 Versione 4.0
CPU versione 2.0 (N. lotto da 031105 in poi)
CPU versione
3.0 (N. lotto da 040624 in poi)
CPU versione
3.0 (N. lotto da 040629 in poi)
Ver ­sione
5.0
x
Funzioni supportate dalla versione della CPU
CPU CS1-H (CS1@-CPU@@H)
Funzione Versione della CPU
CPU precedenti alla
versione 2.0
Scaricamento e caricamento di singoli task --- OK Protezione da lettura migliorata mediante password --- OK Protezione da scrittura dai comandi FINS inviati alle CPU tramite
reti Connessioni di rete in linea senza tabelle degli I/O --- OK Comunicazioni tramite un massimo di 8 livelli di rete --- OK Connessione in linea ai PLC tramite PT della serie NS OK a partire dal
Impostazione dei canali del primo slot OK per un massimo di
Trasferimento automatico all'accensione del sistema senza un file dei parametri
Rilevamento automatico del metodo di assegnazione degli I/O per il trasferimento automatico all'accensione del sistema
Ora di inizio/fine del funzionamento --- OK Nuove istruzioni
di applicazione
MILH, MILR, MILC --- OK =DT, <>DT, <DT, <=DT, >DT, >=DT --- OK BCMP2 --- OK GRY OK a partire dal
TPO --- OK DS W, T K Y, H K Y, M T R , 7 S E G -- - OK EXPLT, EGATR, ESATR, ECHRD, ECHWR --- OK Lettura/Scrittura da/su Moduli CPU bus tramite
IORD/IOWR PRV2 --- ---
--- OK
numero di lotto 030201
8 gruppi
--- OK
--- ---
numero di lotto 030201
OK a partire dal numero di lotto 030418
CPU versione 2.0
OK
OK per un massimo di 64 gruppi
OK
OK
xi
CPU CS1D
Funzione CPU CS1D per sistemi a due CPU (CS1D-
CPU precedenti alla
versione 1.1
Funzione esclusiva delle CPU CS1D
Scaricamento e caricamento di singoli task --- --- OK Protezione da lettura migliorata mediante
password Protezione da scrittura dai comandi FINS
inviati alle CPU tramite reti Connessioni di rete in linea senza tabelle degli
I/O Comunicazioni tramite un massimo di 8 livelli
di rete Connessione in linea ai PLC tramite PT della
serie NS Impostazione dei canali del primo slot --- --- OK per un massimo
Trasferimento automatico all'accensione del sistema senza un file dei parametri
Rilevamento automatico del metodo di assegnazione degli I/O per il trasferimento automatico all'accensione del sistema
Ora di inizio/fine del funzionamento --- OK OK Nuove
istruzioni di applicazione
A due CPU OK OK --­Sostituzione in linea OK OK OK Due Moduli di alimentazione OK OK OK Due Moduli Controller Link OK OK OK Due Moduli Ethernet --- OK OK
--- --- OK
--- --- OK
--- --- OK
--- --- OK
--- --- OK
--- --- OK
--- --- ---
MILH, MILR, MILC --- --- OK =DT, <>DT, <DT, <=DT, >DT,
>=DT BCMP2 --- --- OK GRY --- --- OK TPO --- --- OK DSW, TKY, HKY, MTR, 7SEG --- --- OK EXPLT, EGATR, ESATR,
ECHRD, ECHWR Lettura/Scrittura da/su Moduli
CPU bus tramite IORD/IOWR PRV2 --- --- ---
--- --- OK
--- --- OK
--- --- OK
CPU@@H)
CPU versione 1.1 CPU versione 2.0
CPU CS1D per
sistemi a singola
CPU
(CS1D-CPU@@S)
di 64 gruppi
xii
CPU CJ1-H/CJ1M
Funzione CPU CJ1-H
Scaricamento e caricamento di singoli task
Protezione da lettura migliorata mediante password
Protezione da scrittura dai comandi FINS inviati alle CPU tramite reti
Connessioni di rete in linea senza tabelle degli I/O
Comunicazioni tramite un massimo di 8 livelli di rete
Connessione in linea ai PLC tramite PT della serie NS
Impostazione dei canali del primo slot
Trasferimento automatico all'accensione del sistema senza un file dei parametri
Rilevamento automatico del metodo di assegnazione degli I/O per il trasferimento automa­tico all'accensione del sistema
Ora di inizio/fine del funzionamento
Nuove istruzioni di applica­zione
MILH, MILR, MILC --- OK --- OK OK =DT, <>DT, <DT,
<=DT, >DT, >=DT BCMP2 --- OK OK OK OK GRY OK a partire dal
TPO --- OK --- OK OK DSW, TKY, HKY,
MTR, 7SEG EXPLT, EGATR,
ESATR, ECHRD, ECHWR
Lettura/Scrittura da/su Moduli CPU bus tramite IORD/IOWR
PRV2 --- --- --- OK, ma solo per
(CJ1@-CPU@@H)
CPU
precedenti alla
versione 2.0
--- OK --- OK OK
--- OK --- OK OK
--- OK --- OK OK
OK, ma solo se all'accensione del sistema è impostata l'asse­gnazione delle tabelle degli I/O
OK per un mas­simo di 8 gruppi
OK a partire dal numero di lotto 030201
--- OK --- OK OK
--- OK --- OK OK
--- OK --- OK OK
--- OK --- OK OK
--- OK --- OK OK
numero di lotto 030201
--- OK --- OK OK
--- OK --- OK OK
--- OK --- OK OK
CPU versione
2.0
OK OK, ma solo se
OK per un mas­simo di 64 gruppi
OK OK a partire dal
OK OK a partire dal
precedenti alla
versione 2.0
all'accensione del sistema è impostata l'asse­gnazione delle tabelle degli I/O
OK per un mas­simo di 8 gruppi
numero di lotto 030201
numero di lotto 030201
CPU CJ1M,
eccetto modelli di base
(CJ1M-CPU@@)
CPU
CPU versione
2.0
OK OK
OK per un mas­simo di 64 gruppi
OK OK
OK OK
i modelli con I/O integrati
modelli di base
CPU versione
OK per un mas­simo di 64 gruppi
OK, ma solo per i modelli con I/O integrati
CPU CJ1M,
(CJ1M-
CPU11/21)
2.0
xiii
Funzioni supportate dalle CPU versione 3.0 o successiva
CPU CS1-H (CS1@-CPU@@H)
Funzione Versione della CPU
CPU precedenti alla
versione 2.0
Blocchi funzione (supportati da CX-Programmer versione 5.0 o suc­cessiva)
Gateway seriale (conversione dei comandi FINS in comandi Com­poWay/F a livello di porta seriale integrata)
Memoria dei commenti (nella memoria flash interna) --- OK Dati di backup semplice espansi --- OK Nuove istru-
zioni di applica­zione
Funzioni di istruzione addi­zionali
TXDU(256), RXDU(255) (supporto per la comuni­cazione senza protocollo tra Moduli di comunica­zione seriale e CPU della versione 1.2 o successiva)
Istruzioni di conversione del modello: XFERC(565), DISTC(566), COLLC(567), MOVBC(568), BCNTC(621)
Istruzioni speciali per blocchi funzione: GETID(286)
Istruzioni TXD(235) e RXD(236) (supporto per la comunicazione senza protocollo tra Schede di comunicazione seriale e CPU della versione 1.2 o successiva)
--- OK
--- OK
--- OK
--- OK
--- OK
--- OK
Versione 3.0
CPU CS1D Le CPU versione 3.0 non sono supportate. CPU CJ1-H/CJ1M (CJ1@-CPU@@H, CJ1G-CPU@@P, C J1 M - C P U @@)
Funzione Versione della CPU
CPU precedenti alla
versione 2.0
Blocchi funzione (supportati da CX-Programmer versione 5.0 o suc­cessiva)
Gateway seriale (conversione dei comandi FINS in comandi Com­poWay/F a livello di porta seriale integrata)
Memoria dei commenti (nella memoria flash interna) --- OK Dati di backup semplice espansi --- OK Nuove istru-
zioni di applica­zione
Funzioni di istruzione addi­zionali
TXDU(256), RXDU(255) (supporto per la comuni­cazione senza protocollo tra Moduli di comunica­zione seriale e CPU della versione 1.2 o successiva)
Istruzioni di conversione del modello: XFERC(565), DISTC(566), COLLC(567), MOVBC(568), BCNTC(621)
Istruzioni speciali per blocchi funzione: GETID(286)
Istruzioni PRV(881) e PRV2(883): aggiunti metodi ad alta frequenza per il calcolo della frequenza di impulsi (solo CPU CJ1M).
--- OK
--- OK
--- OK
--- OK
--- OK
--- OK
Versione 3.0
xiv
Versioni delle CPU e dispositivi di programmazione
Per consentire l'utilizzo delle funzioni aggiunte alla CPU versione 2.0, è necessario utilizzare CX-Programmer versione 4.0 o successiva.
Per consentire l'utilizzodei blocchi funzione aggiunti alle CPU versione 3.0, è necessario utilizzare CX-Programmer versione 5.0 o successiva.
Nelle seguenti tabelle è illustrata la relazione tra le versioni delle CPU e le versioni di CX-Programmer.
Versioni delle CPU e dispositivi di programmazione
CPU Funzioni CX-Programmer Console di
Ver-
sione 3.2
o prece-
dente
CPU CJ1M, modelli di base, versione della CPU 2.0
CPU CS1-H, CJ1­H e CJ1M, eccetto modelli di base, versione della CPU 2.0
CPU CS1D per sistemi a singola CPU, versione della CPU 2.0
CPU CS1D per sistemi a due CPU, versione della CPU 1.
CPU della serie CS/CJ versione
3.0
Funzioni aggiuntive della versione 2.0
Funzioni aggiuntive della versione 2.0
Funzioni aggiuntive della versione 2.0
Funzioni aggiuntive della versione 1.1
Blocchi funzione aggiunti per la versione 3.0
Con utilizzo delle nuove funzioni
Senza utilizzo delle nuove funzioni
Con utilizzo delle nuove funzioni
Senza utilizzo delle nuove funzioni
Con utilizzo delle nuove funzioni
Senza utilizzo delle nuove funzioni
Con utilizzo delle nuove funzioni
Senza utilizzo delle nuove funzioni
Con utilizzo dei blocchi funzione
Senza utilizzo dei bloc­chi funzione
--- --- OK OK Nessuna
--- OK OK OK
--- --- OK OK
OK OK OK OK
--- --- OK OK
--- --- OK OK
OK OK OK OK
--- --- --- OK
OK OK OK OK
Ver-
sione
3.3
Ver-
sione
4.0
Versione
5.0 o
succes-
siva
OK
program-
mazione
restrizione
Nota Come illustrato sopra, se non si utilizzano le funzioni aggiunte alla versione
2.0 o alla versione 1.1, non è necessario eseguire l'aggiornamento a CX-Pro­grammer versione 4.0.
Impostazione del tipo di dispositivo
La versione della CPU non influisce sull'impostazione effettuata per il tipo di dispositivo in CX-Programmer. Selezionare il tipo di dispositivo come illustrato nella seguente tabella, indipendentemente dalla versione della CPU.
Serie Gruppo CPU Modello CPU Impostazione del tipo di dispositivo
Serie CS CPU CS1-H CS1G-CPU@@H CS1G-H
CS1H-CPU@@H CS1H-H CPU CS1D per sistemi a due CPU CS1D-CPU@@H CS1D-H (o CS1H-H) CPU CS1D per sistemi a singola CPU CS1D-CPU@@S CS1D-S
Serie CJ CPU CJ1-H CJ1G-CPU@@H CJ1G-H
CJ1H-CPU@@H CJ1H-H CPU CJ1M CJ1M-CPU@@ CJ1M
in CX-Programmer versione 4.0 o
successiva
xv
Risoluzione dei problemi relativi alle versioni delle CPU in CX-Programmer
Problema Causa Soluzione
Controllare il programma o cambiare la CPU in cui si desidera scaricare il programma con una CPU versione 2.0 o successiva.
Controllare le impostazioni della configurazione del PLC o cambiare la CPU in cui si desidera scaricare le impostazioni con una CPU versione 2.0 o successiva.
Non è possibile caricare le nuove istruzioni utilizzando CX-Programmer versione 3.3 o precedente. Utilizzare CX-Programmer versione 4.0 o successiva.
Dopo la visualizzazione del messaggio sopra ripor­tato, verrà visualizzato un errore di compilazione nella scheda Compile (Compila) della finestra di output.
"????" viene visualizzato in un programma trasferito dal PLC a CX-Programmer.
Utilizzando CX-Programmer versione 4.0 o successiva, si è tentato di scaricare un programma che contiene istruzioni supportate solo dalle CPU versione 2.0 o successiva in una CPU precedente alla versione 2.0.
Utilizzando CX-Programmer versione 4.0 o successiva, si è tentato di scaricare una configurazione del PLC che contiene impostazioni supportate solo dalle CPU versione 2.0 o successiva, ovvero non impostate sui valori predefiniti, in una CPU precedente alla versione 2.0.
Si è utilizzato CX-Programmer versione 3.3 o precedente per caricare un programma che contiene istruzioni supportate solo dalle CPU versione 2.0 o successiva da una CPU versione 2.0 o successiva.
xvi

INDICE

PRECAUZIONI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
1 Destinatari del manuale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
2 Precauzioni generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
3 Precauzioni per la sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
4 Precauzioni relative all'ambiente operativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
5 Precauzioni relative all'applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
6 Conformità alle direttive dell'Unione Europea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
CAPITOLO 1
Funzionamento della CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1-1 Configurazione iniziale (solo CPU CS1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1-2 Utilizzo dell'orologio interno (solo CPU CS1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1-3 Struttura interna della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1-4 Modalità operative. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1-5 Programmi e task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1-6 Descrizione dei task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CAPITOLO 2
Programmazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2-1 Concetti di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2-2 Precauzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2-3 Verifica dei programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
CAPITOLO 3
Funzioni di istruzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3-1 Istruzioni di ingresso sequenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3-2 Istruzioni di uscita sequenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3-3 Istruzioni di controllo sequenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3-4 Istruzioni di temporizzatore e contatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3-5 Istruzioni di confronto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3-6 Istruzioni di spostamento dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3-7 Istruzioni di scorrimento dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3-8 Istruzioni di incremento e decremento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3-9 Istruzioni matematiche con simboli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3-10 Istruzioni di conversione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3-11 Istruzioni logiche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3-12 Istruzioni matematiche speciali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3-13 Istruzioni matematiche a virgola mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3-14 Istruzioni a virgola mobile in doppia precisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3-15 Istruzioni di elaborazione dei dati delle tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3-16 Istruzioni di controllo dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3-17 Istruzioni di subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3-18 Istruzioni di controllo degli interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3-19 Istruzioni per contatore veloce e uscita a impulsi (solo CJ1M-CPU21/22/23). . . . . . . . . . . . . . 130
3-20 Istruzioni di step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3-21 Istruzioni per Moduli di I/O di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3-22 Istruzioni per la comunicazione seriale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3-23 Istruzioni di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3-24 Istruzioni relative alla memoria file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3-25 Istruzioni di visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3-26 Istruzioni per l'orologio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
xvii
INDICE
3-27 Istruzioni di debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3-28 Istruzioni per la diagnostica di funzionamento incorretto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
3-29 Altre istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3-30 Istruzioni di programmazione a blocchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
3-31 Istruzioni di elaborazione delle stringhe di testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3-32 Istruzioni di controllo dei task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
3-33 Istruzioni di conversione del modello (solo CPU versione 3.0 o successiva). . . . . . . . . . . . . . . 154
3-34 Istruzioni speciali per blocchi funzione: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
CAPITOLO 4
Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
4-1 Caratteristiche dei task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4-2 Uso dei task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
4-3 Task ad interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4-4 Operazioni dei dispositivi di programmazione relative ai task . . . . . . . . . . . . . . . . . . . . . . . . . . 190
CAPITOLO 5
Funzioni della memoria file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5-1 Memoria file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
5-2 Gestione dei file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5-3 Utilizzo della memoria file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
CAPITOLO 6
Funzioni avanzate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
6-1 Tempo di ciclo ed elaborazione veloce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
6-2 Registri indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6-3 Comunicazione seriale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
6-4 Modifica della modalità di aggiornamento dei valori attuali di temporizzatori e contatori . . . . 307
6-5 Utilizzo di un interrupt programmato come temporizzatore ad alta precisione (solo CJ1M). . . 315
6-6 Impostazioni di avvio e manutenzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
6-7 Funzioni di diagnostica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
6-8 Modalità di elaborazione della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
6-9 Modalità di gestione prioritaria delle periferiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
6-10 Funzionamento senza batteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
6-11 Altre funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
CAPITOLO 7 Trasferimento del programma, esecuzione di prova e debug 349
7-1 Trasferimento del programma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
7-2 Esecuzione di prova e debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Appendices
A Tavole di confronto dei PLC: PLC serie CJ, serie CS, C200HG/HE/HX,
CQM1H, CVM1 e serie CV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
B Differenze rispetto ai sistemi Host Link precedenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Storico delle revisioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
xviii

Informazioni sul manuale

Il presente manuale fornisce informazioni sulla programmazione delle CPU per il controllori programmabili (PLC) della serie CS/CJ e include i capitoli descritti nella pagina successiva. I prodotti della serie CS e della serie CJ sono suddivisi come illustrato nella seguente tabella.
Modulo Serie CS Serie CJ
CPU CPU CS1-H: CS1H-CPU@@H
CS1G-CPU@@H
CPU CS1: CS1H-CPU@@-EV1
CS1G-CPU@@-EV1
CPU CS1D: CPU CS1D per sistemi a due CPU: CS1D­CPU@@H CPU CS1D per sistemi a singola CPU: CS1D-CPU@@S CPU con processo CS1D: CS1D-CPU@@P
Moduli di I/O di base Moduli di I/O di base della serie CS Moduli di I/O di base della serie CJ Moduli di I/O
speciale Moduli CPU bus Moduli CPU bus della serie CS Moduli CPU bus della serie CJ Moduli di
alimentazione
Moduli di I/O speciale della serie CS Moduli di I/O speciale della serie CJ
Moduli di alimentazione della serie CS Moduli di alimentazione della serie CJ
CPU CJ1-H: CJ1H-CPU@@H
CJ1G-CPU@@H
CPU CJ1: CJ1G-CPU@@-EV1 CPU CJ1M: CJ1M-CPU@@
Leggere attentamente il presente manuale e tutti i manuali correlati elencati nella tabella riportata nella pagina seguente e accertarsi di avere ben compreso le informazioni fornite prima di procedere all'utilizzo o all'installazione delle CPU della serie CS/CJ in un sistema PLC.
Il manuale contiene i seguenti capitoli:
Capitolo 1 descrive la struttura di base e il funzionamento della CPU. Capitolo 2 fornisce informazioni di base sulla creazione, la verifica e l'immissione di programmi. Capitolo 3 fornisce una descrizione generale delle istruzioni che è possibile utilizzare per la creazione
di programmi utente.
Capitolo 4 descrive il funzionamento dei task. Capitolo 5 descrive le funzioni utilizzate per la gestione della memoria file. Capitolo 6 fornisce informazioni dettagliate sulle funzioni avanzate, quali tempo di ciclo ed
elaborazione veloce, registri indice, funzioni per la comunicazione seriale, di avvio e manutenzione, di diagnostica e debug, funzioni dei dispositivi di programmazione e impostazioni dei tempi di risposta di ingresso per i Moduli di I/O di base CJ.
Capitolo 7 descrive i processi utilizzati per il trasferimento del programma alla CPU e le funzioni per la verifica e il debug del programma.
Nelle Appendici viene effettuato il confronto tra i Moduli delle serie CS e della serie CJ e vengono inoltre fornite informazioni relative alle limitazioni di utilizzo dei Moduli di I/O speciale C200H e alle modifiche apportate ai sistemi Host Link.
xix
Informazioni sul manuale (continua)
Nome N. cat. Descrizione
Manuale di riferimento delle istruzioni dei controllori pro­grammabili per la serie SYSMAC CS/CJ CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1D-CPU@@H, CS1D-CPU@@S, CJ1G-CPU@@, CJ1G/H-CPU@@H, CJ1M-CPU@@
Manuale dell'operatore dei controllori programmabili per la serie SYSMAC CS CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H
Manuale dell'operatore dei controllori programmabili per la serie SYSMAC CJ CJ1G/H-CPU@@H, CJ1M-CPU@@, CJ1M-CPU@@ CJ1G-CPU@@
Manuale dell'operatore degli I/O integrati per la serie SYSMAC CJ CJ1M-CPU21/22/23
SYSMAC CS Series CS1D-CPU@@H CPU Units CS1D-CPU@@S CPU Units CS1D-DPL01 Duplex Unit CS1D-PA207R Power Supply Unit Duplex System Operation Manual
SYSMAC CS/CJ Series CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1D-CPU@@H, CS1D-CPU@@S, CJ1G-CPU@@, CJ1M-CPU@@, CJ1G-CPU@@P, CJ1G/H-CPU@@H Programmable Controllers Instructions Reference Manual
SYSMAC CS/CJ Series CQM1H-PRO01-E, C200H-PRO27-E, CQM1-PRO01-E Programming Consoles Operation Manual
SYSMAC CS/CJ Series CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1D-CPU@@H, CS1D-CPU@@S, CJ1G-CPU@@, CJ1G/H-CPU@@H, CJ1G-CPU@@P, C J 1 M - C PU @@, CS1W-SCB21-V1/41-V1, CS1W-SCU21-V1, CJ1W-SCU21-V1/41-V1 Communications Commands Reference Manual
SYSMAC WS02-CXP@@-E CX-Programmer Operation Manual Version 3.@
SYSMAC WS02-CXP@@-E CX-Programmer Operation Manual Version 4.@
SYSMAC WS02-CXP@@-E CX-Programmer Operation Manual Version 5.@
SYSMAC WS02-CXP@@-E CX-Programmer Operation Manual Function Blocks
W394 Fornisce informazioni sulla programmazione e
altri metodi per l'utilizzo delle funzioni dei PLC della serie CS/CJ (il presente manuale).
W339 Fornisce informazioni generali sui PLC della serie
CS, ne descrive le caratteristiche di progetta­zione, le procedure di installazione e manuten­zione nonché altre operazioni di base per l'utilizzo dei PLC.
W393 Fornisce informazioni generali sui PLC della serie
CJ, ne descrive le caratteristiche di progettazione, le procedure di installazione e manutenzione non­ché altre operazioni di base per l'utilizzo dei PLC
W395 Descrive le funzioni degli I/O integrati delle CPU
CJ1M
W405 Fornisce informazioni generali e descrive le carat-
teristiche di progettazione, le procedure di instal­lazione e manutenzione nonché altre operazioni di base per un sistema duplex basato sulla CPU CS1D.
W340 Fornisce una descrizione delle istruzioni di pro-
grammazione utilizzate nei diagrammi ladder sup­portate dai PLC della serie CS/CJ.
W341 Fornisce informazioni sui metodi di programma-
zione e utilizzo dei PLC della serie CS/CJ mediante una Console di programmazione.
W342 Descrive i comandi di comunicazione FINS e dei
PLC della serie C (Host Link) utilizzati con i PLC della serie CS/CJ.
W414 Fornisce informazioni sull'utilizzo di CX-Program-
mer, un dispositivo di programmazione software
W425
W437
W438 Descrive specifiche e metodi operativi relativi ai
che supporta i PLC della serie CS/CJ, e del pro­gramma CX-Net incluso in CX-Programmer.
blocchi funzione. Queste informazioni sono rile­vanti solo se si utilizzano i blocchi funzione con CX-Programmer versione 5.0 e CPU CJ1­H/CJ1M versione 3.0. Per informazioni su altre funzionalità di CX-Programmer versione 5.0, fare riferimento al manuale CX-Programmer Opera- tion Manual Version 5.@ (W437). 5.0.
xx
Nome N. cat. Descrizione
SYSMAC CS/CJ Series CS1W-SCB21-V1/41-V1, CS1W-SCU21-V1, CJ1W-SCU21-V1/41-V1 Serial Communications Boards/Units Operation Manual
SYSMAC WS02-PSTC1-E CX-Protocol Operation Manual
W336 Descrive l'utilizzo dei Moduli e delle Schede di
comunicazione seriale per la comunicazione seriale con i dispositivi esterni, incluso l'impiego dei protocolli di sistema standard per i prodotti OMRON.
W344 Fornisce informazioni sull'utilizzo di CX-Protocol
per la creazione di protocol macro, impiegate come sequenze di comunicazione nella comuni­cazione con dispositivi esterni.
!AVVERTENZA La mancata lettura o comprensione delle informazioni fornite in questo manuale può fare
insorgere condizioni di rischio e conseguenti lesioni personali, anche mortali, danneggiamento o funzionamento non corretto del prodotto. Leggere ogni capitolo per intero e accertarsi di avere compreso le informazioni in essa contenute e quelle correlate prima di eseguire una delle procedure o operazioni descritte.
xxi
xxii

PRECAUZIONI

In questo capitolo sono riportate le precauzioni generali per l'uso dei controllori programmabili (PLC) della serie CS/CJ e dei dispositivi collegati.
Le informazioni contenute in questo capitolo sono importanti per garantire un utilizzo sicuro e affidabile dei controllori programmabili. È necessario leggere il capitolo e comprenderne il contenuto prima di configurare o utilizzare un PLC.
1 Destinatari del manuale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
2 Precauzioni generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
3 Precauzioni per la sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
4 Precauzioni relative all'ambiente operativo. . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
5 Precauzioni relative all'applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
6 Conformità alle direttive dell'Unione Europea . . . . . . . . . . . . . . . . . . . . . . . . xxxi
6-1 Direttive applicabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
6-2 Principi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
6-3 Conformità alle direttive dell'Unione Europea . . . . . . . . . . . . . . . . . xxxi
6-4 Metodi di riduzione dei disturbi nelle uscite a relè. . . . . . . . . . . . . . xxxii
xxiii
Destinatari del manuale 1

1 Destinatari del manuale

Il presente manuale si rivolge al personale riportato di seguito, a cui sono richieste conoscenze in materia di sistemi elettrici (perito elettrotecnico o titolo equivalente).
• Responsabili dell'installazione di sistemi di automazione industriale.
• Responsabili della progettazione di sistemi di automazione industriale.
• Responsabili della gestione di sistemi di automazione industriale e delle relative infrastrutture.

2 Precauzioni generali

L'utente deve utilizzare il prodotto in base alle specifiche riportate nei manuali dell'operatore.
Prima di utilizzare il prodotto in condizioni non previste dal manuale o di applicarlo a sistemi di controllo nucleare, sistemi ferroviari, sistemi per aviazione, veicoli, sistemi di combustione, apparecchiature medicali, macchine da Luna Park, appa­recchiature di sicurezza e qualunque altro sistema, macchina o apparecchiatura il cui utilizzo improprio possa comportare il rischio di gravi lesioni a persone e danni alla proprietà, rivolgersi al proprio rappresentante OMRON.
Accertarsi che i valori nominali e le specifiche del prodotto siano sufficienti per i sistemi, le macchine e le apparecchiature che verranno utilizzati e dotare sempre tali sistemi, macchine e apparecchiature di doppi meccanismi di sicurezza.
Il presente manuale fornisce informazioni sulla programmazione e sul funzionamento del Modulo. Si raccomanda di leggere il manuale prima di utilizzare il Modulo per la prima volta e tenerlo sempre a portata di mano come riferimento durante le operazioni.
!AVVERTENZAÈ di fondamentale importanza che il PLC e tutti i relativi Moduli vengano utilizzati
per lo scopo specificato e nelle condizioni specificate, in particolare in applica­zioni che implicano rischi diretti o indiretti per l'incolumità delle persone. Prima di utilizzare il PLC per tali applicazioni, rivolgersi al proprio rappresentante OMRON.

3 Precauzioni per la sicurezza

!AVVERTENZALa CPU aggiorna gli I/O anche quando il programma non è in esecuzione, ovvero
anche in modalità PROGRAM. Verificare preliminarmente lo stato della sicurezza prima di modificare lo stato di qualunque parte della memoria assegnata ai Moduli di I/O, ai Moduli di I/O speciale o ai Moduli CPU bus. Qualunque modifica ai dati della memoria assegnata a un Modulo può provocare l'inattesa attivazione dei carichi collegati a tale Modulo. Una qualunque delle seguenti operazioni può determinare la modifica dello stato della memoria.
• Trasferimento di dati della memoria I/O da un dispositivo di programma­zione alla CPU.
• Modifica degli attuali valori in memoria da un dispositivo di programmazione.
• Impostazione/ripristino forzato di bit da un dispositivo di programmazione.
• Trasferimento di file della memoria I/O da una schedina di memoria o dall'area di memoria file nell'area EM alla CPU.
• Trasferimento di dati della memoria I/O da un computer host o da un altro PLC collegato in rete.
xxiv
!AVVERTENZA Non tentare di aprire un Modulo in presenza di alimentazione, in quanto ciò
implica il rischio di scosse elettriche.
Precauzioni per la sicurezza 3
!AVVERTENZA Non toccare i terminali o le morsettiere quando il sistema è alimentato, in
quanto ciò implica il rischio di scosse elettriche.
!AVVERTENZA Non tentare di smontare, riparare o modificare alcun Modulo. Qualsiasi inter-
vento in tal senso potrebbe provocare un funzionamento incorretto, incendi o scosse elettriche.
!AVVERTENZA Applicare adeguate misure di sicurezza ai circuiti esterni (cioè, esterni al con-
trollore programmabile), incluse quelle riportate di seguito, per garantire la mas­sima sicurezza del sistema in caso di anomalie dovute al funzionamento incorretto del PLC o ad altri fattori esterni che influiscono sul funzionamento del PLC. Disattendere queste precauzioni potrebbe essere causa di gravi incidenti.
• I circuiti di controllo esterni devono essere dotati di circuiti di arresto di emergenza, circuiti di interblocco, circuiti di finecorsa e altre misure di sicurezza analoghe.
• Il PLC disattiva tutte le uscite quando la funzione di autodiagnostica rileva un errore o viene eseguita un'istruzione FALS (allarme di guasto grave). Come contromisura in caso di tali errori, il sistema deve essere dotato di misure di sicurezza esterne.
• Le uscite del PLC potrebbero restare attivate o disattivate in caso di deposizione elettrolitica, bruciatura dei relè di uscita o distruzione dei transistor di uscita. Come contromisura per questo problema, il sistema deve essere dotato di misure di sicurezza esterne.
• In presenza di sovraccarico o cortocircuito sull'uscita a 24 Vc.c. (alimentazione di servizio del PLC), si potrebbe verificare un abbassamento di tensione e una conseguente disattivazione delle uscite. Come contromisura per questo problema, il sistema deve essere dotato di misure di sicurezza esterne.
!Attenzione Verificare lo stato di sicurezza prima di trasferire file di dati memorizzati nella
memoria file (schedina di memoria o area di memoria file nell'area EM) all'area degli I/O (CIO) della CPU utilizzando un dispositivo periferico. In caso contrario, è possibile che i dispositivi collegati al modulo di uscita non funzionino in modo corretto, indipendentemente dalla modalità operativa della CPU.
!Attenzione Il cliente è tenuto a implementare meccanismi di sicurezza per guasti ed errori
allo scopo di garantire la sicurezza in caso di segnali errati, mancanti o anomali provocati da guasti a carico delle linee di segnale, cadute di tensione temporanee o altre cause. Un funzionamento anomalo potrebbe implicare il rischio di gravi incidenti.
!Attenzione Le CPU CS1-H, CJ1-H, CJ1M e CS1D eseguono automaticamente il backup
del programma utente e dei dati di parametro nella memoria flash quando tali dati vengono scritti nella CPU. I dati della memoria I/O (comprese le aree DM, EM e HR) non vengono tuttavia scritti nella memoria flash. Un'apposita batte­ria consente di conservare i dati delle aree DM, EM e HR nel caso in cui si verifichino cadute di tensione. Se si verificano errori relativi alla batteria, i dati contenuti in queste aree potrebbero risultare non corretti dopo la caduta di tensione. Se i dati delle aree DM, EM e HR vengono utilizzati per il controllo di uscite esterne, impedire l'invio di dati non corretti quando il flag di errore della batteria (A40204) è attivato.
!Attenzione Eseguire modifiche in linea solo dopo aver verificato che l'estensione del
tempo di ciclo non provoca effetti negativi. In caso contrario, i segnali di ingresso potrebbe risultare illeggibili.
xxv
Precauzioni relative all'ambiente operativo 4
!Attenzione Verificare lo stato di sicurezza sul nodo di destinazione prima di trasferire un
programma o modificare il contenuto dell'area di memoria I/O. La mancata osservanza di questa precauzione prima di procedere a tali operazioni implica il rischio di lesioni.
!Attenzione Serrare le viti sulla morsettiera del Modulo di alimentazione c.a. applicando la
coppia specificata nel manuale dell'operatore. La presenza di viti allentate può provocare bruciature o il funzionamento incorretto.
!Attenzione Non toccare il Modulo di alimentazione mentre eroga corrente o
immediatamente dopo lo spegnimento, poiché la temperatura del Modulo di alimentazione potrebbe essere tale da provocare ustioni.
!Attenzione Prestare particolare attenzione durante il collegamento di PC o altri dispositivi
periferici a un PLC su cui sia installato un modulo non isolato (CS1W-CLK12/ 52(-V1) o CS1W-ETN01) collegato a un alimentatore esterno. Se l'estremità a 24 V dell'alimentatore esterno viene collegata a terra e l'estremità a 0 V della periferica viene collegata a terra, si creerà un corto circuito. Durante il collega­mento di una periferica a questo tipo di PLC, eseguire la messa a terra dell'estremintà a 0 V dell'alimentatore esterno oppure non eseguire affatto la messa a terra dell'alimentatore esterno.

4 Precauzioni relative all'ambiente operativo

!Attenzione Non utilizzare il sistema di controllo nei seguenti luoghi:
• Luoghi esposti alla luce solare diretta.
• Luoghi con temperature o tassi di umidità al di fuori della gamma di valori riportata nelle specifiche.
• Luoghi soggetti a formazione di condensa a causa di considerevoli escursioni termiche.
• Luoghi esposti a gas corrosivi o infiammabili.
• Luoghi esposti a polvere (in particolare polvere metallica) o agenti salini.
• Luoghi esposti ad acqua, oli o agenti chimici.
• Luoghi soggetti a urti o vibrazioni.
!Attenzione Applicare soluzioni di sicurezza adeguate e sufficienti quando si installano
sistemi nei seguenti luoghi:
• Luoghi soggetti a elettricità statica o altre forme di disturbi.
• Luoghi in cui sono presenti forti campi elettromagnetici.
• Luoghi potenzialmente esposti a radioattività.
• Luoghi prossimi a linee elettriche.
!Attenzione L'ambiente in cui opera il PLC può avere un grande impatto sulla durata e
sull'affidabilità del sistema. L'utilizzo in ambienti operativi non appropriati può essere causa di funzionamento incorretto, guasti e altri problemi non prevedibili. Accertarsi che l'ambiente operativo rispetti le condizioni richieste per l'installazione e che tali condizioni siano mantenute per l'intera durata di esercizio del sistema.
xxvi
Precauzioni relative all'applicazione 5

5 Precauzioni relative all'applicazione

Osservare le seguenti precauzioni nell'uso del PLC.
• Per la programmazione di più task, utilizzare CX-Programmer, il software di programmazione per Windows. La Console di programmazione può essere utilizzata per programmare un solo task ciclico e task ad interrupt. È tuttavia possibile utilizzare una Console di programmazione per modificare programmi composti da più task creati con CX-Programmer.
!AVVERTENZA Attenersi sempre alle seguenti precauzioni. Il mancato rispetto di tali
precauzioni può essere causa di lesioni gravi, anche mortali.
• Durante l'installazione dei Moduli, effettuare sempre un collegamento a terra con una resistenza di 100 o inferiore. Il mancato collegamento a terra a una resistenza di 100 o inferiore potrebbe determinare scosse elettriche.
• Se si collegano in cortocircuito i terminale di messa a terra della linea (LG) e di messa a terra (GR) sul Modulo di alimentazione, eseguire un collega­mento a terra con una resistenza di 100 o inferiore.
• Spegnere sempre il PLC e scollegare l'alimentazione prima di eseguire una delle operazioni riportate di seguito. La mancata interruzione dell'alimenta­zione, comporta il rischio di scosse elettriche o il funzionamento incorretto.
• Montaggio o smontaggio di Moduli di alimentazione, Moduli di I/O, CPU, schede interne o altri Moduli.
• Assemblaggio di Moduli.
• Impostazione di DIP switch o di selettori rotanti.
• Collegamento di cavi o cablaggio del sistema.
• Collegamento e scollegamento di connettori.
!Attenzione Il mancato rispetto delle seguenti precauzioni può causare il funzionamento
incorretto del PLC o del sistema o danni al PLC e ai relativi Moduli. Seguire sempre tali precauzioni.
• Una copia di backup del programma utente e dei dati dell'area dei para­metri nelle CPU CS1-H, CS1D, CJ1-H e CJ1M viene salvata nella memo­ria flash integrata. Durante l'esecuzione del backup, l'indicatore BKUP posto sulla parte anteriore della CPU si accende. Non spegnere la CPU quando l'indicatore BKUP è acceso. Se si interrompe l'alimentazione, il backup dei dati non verrà eseguito.
• Quando si utilizza una CPU CS1 per la prima volta, prima di procedere alla programmazione installare la batteria CS1W-BAT1 fornita con la CPU e cancellare tutte le aree di memoria utilizzando un dispositivo di pro­grammazione. Quando si utilizza l'orologio interno, accendere il sistema dopo aver installato la batteria e impostare l'orologio tramite un dispositivo di programmazione o utilizzando l'istruzione DATE(735). L'orologio non verrà avviato finché non viene impostata l'ora.
• Al momento dell'acquisto, il PLC è configurato in modo tale che la CPU venga avviata nella modalità operativa impostata tramite il selettore di modalità della Console di programmazione. Se non si collega una Con­sole di programmazione, le CPU CS1 della serie CS verranno avviate in modalità PROGRAM, mentre le CPU CS1-H, CS1D, CJ1, CJ1-H o CJ1M verranno avviate in modalità RUN, entrando immediatamente in funzione. Accertarsi che i Moduli non entrino in funzione senza avere prima verifi­cato le condizioni di sicurezza.
xxvii
Precauzioni relative all'applicazione 5
• Quando si crea un file AUTOEXEC.IOM mediante un dispositivo di pro­grammazione, quale una Console di programmazione o il software CX­Programmer, per il trasferimento automatico dei dati all'avvio, impostare il primo indirizzo di scrittura su D20000 e verificare che le dimensioni dei dati non superino la capacità dell'area DM. Quando all'avvio viene letto il file di dati dalla schedina di memoria, i dati vengono scritti nella CPU a partire dall'indirizzo D20000, anche se al momento della creazione del file AUTOEXEC.IOM è stato specificato un indirizzo diverso. Inoltre, se si supera la capacità dell'area DM, e tale possibilità può verificarsi quando si utilizza CX-Programmer, i dati rimanenti verranno scritti nell'area EM.
• Accendere sempre il PLC prima di accendere il sistema di controllo. Se il PLC viene acceso dopo il sistema di controllo, potrebbero verificarsi errori di segnale temporanei a livello del sistema di controllo, in quanto i termi­nali di uscita sui Moduli di uscita c.c. e altri Moduli vengono momentanea­mente sollecitati quando si accende il PLC.
• Il cliente è tenuto a implementare meccanismi di sicurezza per guasti ed errori allo scopo di garantire la sicurezza nel caso in cui le uscite dei Moduli di uscita rimangano attivate a seguito di guasti dei circuiti interni a carico di relè, transistor e altri elementi.
• Il cliente è tenuto a implementare meccanismi di sicurezza per guasti ed errori allo scopo di garantire la sicurezza in caso di segnali errati, mancanti o anomali provocati da guasti a carico delle linee di segnale, cadute di tensione temporanee o altre cause.
• È responsabilità del cliente dotare i circuiti esterni, ovvero esterni al controllore programmabile, di circuiti di interblocco, circuiti di finecorsa e altre misure di sicurezza analoghe.
• Non spegnere il PLC durante il trasferimento di dati. In particolare, non spegnere il PLC durante le operazioni di lettura o scrittura su una sche­dina di memoria e non rimuovere la schedina mentre l'indicatore BUSY è acceso. Per rimuovere una schedina di memoria, premere innanzitutto l'interruttore di alimentazione della schedina, quindi attendere che l'indi­catore BUSY si spenga prima di rimuoverla.
• Se il bit di ritenzione IOM è impostato su ON e si passa dalla modalità ope­rativa RUN o MONITOR alla modalità PROGRAM, le uscite del PLC non vengono disattivate e mantengono lo stato precedente. Accertarsi che i carichi esterni non instaurino condizioni pericolose quando ciò accade. Se il funzionamento viene interrotto a causa di un errore fatale, inclusi gli errori generati dall'istruzione FALS(007), tutte le uscite del Modulo di uscita ven­gono disattivate e viene mantenuto solo lo stato delle uscite interne.
• L'integrità del contenuto delle aree DM, EM e HR della CPU è assicurata da una batteria di backup. Se la batteria si scarica, i dati potrebbero andare persi. Adottare le soluzioni adeguate a livello di programma utiliz­zando il flag di errore della batteria (A40204) per la reinizializzazione dei dati o la segnalazione delle azioni da intraprendere nel caso in cui la carica della batteria si esaurisca.
• Quando si fornisce corrente a 200-240 Vc.a. con un PLC della serie CS, rimuovere sempre il ponticello di metallo dai terminali del selettore di ten­sione del Modulo di alimentazione (tale operazione non è necessaria per Moduli di alimentazione con gamme di tensione più ampie). Se il ponti­cello di metallo rimane collegato durante l'alimentazione a 200-240 Vc.a., il prodotto verrà distrutto.
• Utilizzare sempre tensioni di alimentazione specificate nei manuali dell'operatore. Una tensione errata può provocare un funzionamento incorretto o bruciature.
xxviii
Precauzioni relative all'applicazione 5
• Adottare le misure necessarie per garantire che il sistema sia sempre ali­mentato nel rispetto delle specifiche di tensione e frequenza nominali. Prestare particolare attenzione in ambienti in cui l'alimentazione è insta­bile. Un'alimentazione non adeguata può comportare un funzionamento incorretto.
• Installare interruttori esterni o altri dispositivi di sicurezza per evitare cortocircuiti nelle aree di cablaggio esterno. Misure insufficienti di protezione da cortocircuiti potrebbero causare bruciature.
• Non applicare ai Moduli di ingresso tensioni superiori alla tensione di ingresso nominale. Tensioni eccessivamente alte potrebbero essere causa di bruciature.
• Non applicare tensioni o collegare carichi ai Moduli di uscita superiori alla corrente di carico massima. Tensioni o carichi eccessivamente elevati potrebbero essere causa di bruciature.
• Separare il terminale di messa a terra della linea (LG) dal terminale di messa a terra funzionale (GR) sul Modulo di alimentazione prima di ese­guire test della tensione di tenuta o test della resistenza di isolamento. La mancata separazione dei terminali potrebbe causare danni.
• Installare i Moduli in modo appropriato, seguendo le istruzioni riportate nei manuali dell'operatore. L'installazione errata dei Moduli può comportare un funzionamento incorretto.
• Con i PLC della serie CS, accertarsi che tutte le viti di montaggio del Modulo e del rack siano serrate rispettando la coppia specificata nei relativi manuali. Una coppia di serraggio non appropriata può comportare un funzionamento incorretto.
• Accertarsi che tutte le viti dei terminali e le viti dei connettori dei cavi siano serrate rispettando la coppia specificata nei relativi manuali. Una coppia di serraggio non appropriata può comportare un funzionamento incorretto.
• Durante il cablaggio, lasciare l'etichetta attaccata al Modulo. La rimozione dell'etichetta può comportare la penetrazione di materiale estraneo nel Modulo e il conseguente funzionamento incorretto.
• Una volta completato il cablaggio, rimuovere l'etichetta per garantire un'appropriata dissipazione del calore. Se non si rimuove l'etichetta, il Modulo potrebbe non funzionare correttamente.
• Quando si procede al cablaggio, utilizzare terminali a crimpare. Non collegare direttamente ai terminali fili scoperti. Il collegamento diretto di fili scoperti può causare bruciature.
• Accertarsi di cablare correttamente tutti i collegamenti.
• Verificare a fondo l'intero cablaggio e le impostazioni degli interruttori prima di alimentare il Modulo. Un cablaggio errato può essere causa di bruciature.
• Installare i Moduli solo dopo aver verificato tutte le morsettiere e i connettori.
• Accertarsi che le morsettiere, i Moduli di memoria, le prolunghe e altri componenti dotati di dispositivi di bloccaggio siano correttamente bloccati in posizione. L'errato bloccaggio di questi componenti può causare un funzionamento incorretto.
• Verificare le impostazioni degli interruttori, il contenuto dell'area DM e ogni altro prerequisito prima di mettere in funzione il sistema. L'avvio in presenza di impostazioni o dati non corretti può provocare un funzionamento imprevisto.
xxix
Precauzioni relative all'applicazione 5
• Verificare la corretta esecuzione del programma utente prima di eseguirlo sul Modulo. La mancata verifica del programma può provocare un funzionamento imprevisto.
• Prima di eseguire le operazioni riportate di seguito, accertarsi che non abbiano effetti negativi sul sistema. Disattendere questa precauzione potrebbe dare luogo a un funzionamento imprevisto.
• Modifica della modalità operativa del PLC.
• Impostazione/ripristino forzato di qualunque bit in memoria.
• Modifica del valore attuale di qualsiasi canale o valore impostato in memoria.
• Non tirare o piegare i cavi oltre il limite di resistenza naturale. Ciò potrebbe provocarne la rottura.
• Non appoggiare alcun oggetto sui cavi. Ciò potrebbe provocarne la rottura.
• Non utilizzare cavi RS-232C per personal computer di terze parti. Utilizzare sempre i cavi speciali elencati in questo manuale o assemblare i cavi in conformità alle specifiche indicate. L'impiego di cavi di terze parti potrebbe causare danni ai dispositivi esterni o alla CPU.
• Non collegare mai il pin 6 (alimentazione a 5 V) della porta RS-232C di una CPU a un dispositivo diverso da un adattatore NT-AL001 o CJ1W­CIF11. Il dispositivo esterno o la CPU potrebbe subire danni.
• Quando si sostituiscono componenti, accertarsi sempre che le specifiche tecniche del nuovo componente siano appropriate. Disattendere questa precauzione può causare un funzionamento incorretto o bruciature.
• Prima di toccare un Modulo, toccare un oggetto metallico con messa a terra per scaricare l'elettricità statica accumulata. Disattendere questa precau­zione può causare un funzionamento incorretto o danneggiare il Modulo.
• Quando si trasportano o immagazzinano schede di circuiti stampati, coprirle sempre con materiale antistatico per proteggerle dall'elettricità statica e mantenere la temperatura appropriata.
• Non toccare le schede di circuiti stampati o i componenti montati sulle schede a mani nude. Sulle schede vi sono contatti appuntiti ed altre parti che, se toccate incautamente, potrebbero provocare lesioni.
• Non cortocircuitare i terminali della batteria né caricare, smontare, scaldare eccessivamente o incenerire la batteria. Non sottoporre la batteria a forti urti. Ciò potrebbe provocare dispersione, rottura, emissione di calore o combustione della batteria. Eliminare le batterie che hanno subito forti urti, ad esempio cadendo sul pavimento, in quanto potrebbero verificarsi perdite di elettroliti durante l'uso.
• Gli standard UL richiedono che le batterie vengano sostituite solo da tecnici esperti. Non consentire la sostituzione delle batterie da parte di personale non qualificato.
• Nei PLC della serie CJ, i dispositivi scorrevoli posti sulla parte superiore e inferiore del Modulo di alimentazione, della CPU, dei Moduli di I/O, dei Moduli di I/O speciale e dei Moduli CPU bus devono essere bloccati, facendoli scorrere finché non scattano in posizione. Se i dispositivi scorrevoli non vengono bloccati, il Modulo non funzionerà in modo corretto.
• Nei PLC della serie CJ, collegare sempre la piastrina di blocco al Modulo sul lato destro del PLC. Senza piastrina di blocco il PLC non funzionerà in modo corretto.
xxx
Conformità alle direttive dell'Unione Europea 6
• L'impostazione di tabelle data link o parametri non corretti può dare luogo a un funzionamento imprevisto. Anche se le tabelle data link e i parametri sono stati impostati correttamente, verificare che il sistema controllato non ne sia influenzato negativamente prima di avviare o interrompere i data link.
• Quando le tabelle di routing vengono trasferite da un dispositivo di programmazione alla CPU, i Moduli CPU bus vengono riavviati. Il riavvio di tali Moduli è necessario per la lettura e l'abilitazione delle nuove tabelle di routing. Verificare che il sistema non evidenzi problemi prima di consentire la reimpostazione dei Moduli CPU bus.

6 Conformità alle direttive dell'Unione Europea

6-1 Direttive applicabili
• Direttive sulla compatibilità elettromagnetica (EMC)
• Direttiva per le basse tensioni (LVD)
6-2 Principi
Direttive sulla compatibilità elettromagnetica (EMC)
I dispositivi OMRON conformi alle Direttive dell'Unione Europea sono altresì conformi agli standard EMC, in modo da poter essere facilmente integrati con altri dispositivi o macchine complesse. La conformità dei singoli prodotti agli standard EMC è stata verificata (vedere nota). Tuttavia, la conformità del prodotto agli standard, una volta installato nel sistema del cliente, deve essere verificata dal cliente stesso.
Le prestazioni relative agli standard EMC dei dispositivi OMRON conformi alle Direttive dell'Unione Europea variano a seconda della configurazione, del cablaggio e di altre condizioni dell'apparecchiatura o del pannello di controllo su cui i dispositivi OMRON sono installati. Pertanto, sarà cura del cliente effettuare i controlli finali per accertare che tali dispositivi e la macchina nel suo complesso siano conformi agli standard EMC.
Nota Gli standard di compatibilità elettromagnetica applicabili sono i seguenti:
EMS (suscettibilità elettromagnetica):
Serie CS: EN 61131-2 e EN 61000-6-2 Serie CJ: EN61000-6-2
EMI (interferenza elettromagnetica):
EN61000-6-4 (Emissione irradiata: norme 10 m)
Direttiva per le basse tensioni (LVD)
Accertarsi sempre che i dispositivi che operano nella gamma di tensioni 50-
1.000 Vc.a. o 75-1.500 Vc.c. soddisfino gli standard di sicurezza per il PLC (EN 61131-2).
6-3 Conformità alle direttive dell'Unione Europea
I PLC della serie CS/CJ sono conformi alle Direttive dell'Unione Europea. Per garantire che la macchina o il dispositivo in cui viene utilizzato il PLC della serie CS/CJ sia conforme alle Direttive dell'Unione Europea, è necessario soddisfare i seguenti requisiti di installazione del PLC:
1,2,3... 1. Il PLC della serie CS/CJ deve essere installato in un pannello di controllo.
xxxi
Conformità alle direttive dell'Unione Europea 6
2. È necessario utilizzare un isolamento rinforzato o un doppio isolamento per gli alimentatori c.c. collegati ai Moduli di alimentazione c.c. e ai Moduli di I/O.
3. I PLC della serie CS/CJ conformi alle Direttive dell'Unione Europea sono altresì conformi agli standard generici sulle emissioni (EN61000-6-4). Le caratteristiche per le emissioni irradiate possono variare a in base alla con­figurazione del pannello di controllo utilizzato, agli altri dispositivi collegati al pannello di controllo, al cablaggio e ad altre condizioni specifiche. È per­tanto necessario verificare che la macchina nel suo complesso o l'appa­recchiatura utilizzata sia conforme alle Direttive dell'Unione Europea.
6-4 Metodi di riduzione dei disturbi nelle uscite a relè
I PLC della serie CS/CJ sono conformi agli standard generici sulle emissioni (EN61000-6-4) delle Direttive EMC. Tuttavia, i disturbi generati dalla commu­tazione delle uscite a relè potrebbero non risultare conformi a questi standard. Qualora ciò si verifichi, è necessario applicare un filtro antidisturbo dal lato carico o adottare altre soluzioni equivalenti esterne al PLC.
Le soluzioni da adottare per soddisfare i requisiti posti dagli standard possono variare a seconda dei dispositivi collegati sul lato carico, del cablaggio, della configurazione delle macchine e così via. Di seguito sono riportati alcuni esempi di soluzioni per la riduzione dei disturbi generati.
Contromisure
Esempi di contromisure
Per ulteriori dettagli, fare riferimento alla norma EN61000-6-4. Non è necessaria alcuna contromisura per la riduzione dei disturbi se la fre-
quenza di commutazione del carico per l'intero sistema, incluso il PLC, è infe­riore a 5 volte al minuto.
È necessario adottare contromisure per la riduzione dei disturbi se la fre­quenza di commutazione del carico per l'intero sistema, incluso il PLC, è superiore a 5 volte al minuto.
Quando si commuta un carico induttivo, collegare un dispositivo di protezione da sovracorrente, diodi e così via in parallelo con il carico o contatto come mostrato di seguito.
xxxii
Conformità alle direttive dell'Unione Europea 6
Circuito Corrente Caratteristica Elemento necessario
c.a. c.c.
Metodo CR
C Alimen­tazione
R
Metodo con diodo
Alimen­tazione
Metodo con varistore
Alimen­tazione
Carico
Se il carico è un relè o solenoide, si
determina un ritardo tra l'apertura del circuito e il ripristino del carico.
Se la tensione di alimentazione è 24 o 48 V, collegare il dispositivo di
Carico
induttivo
protezione da sovracorrente in parallelo con il carico. Se la tensione di alimentazione è da 100 a 200 V, inserire il dispositivo di protezione da sovracorrente tra i contatti.
No L'energia accumulata nella bobina
viene trasformata in corrente dal diodo collegato in parallelo al carico, quindi la corrente che transita nella bobina viene assorbita e convertita in calore dalla
Carico
induttivo
resistenza del carico induttivo. Il ritardo tra l'apertura del circuito e il
ripristino del carico indotto da questo metodo è più lungo di quello ottenuto con il metodo CR (condensatore­resistore).
Il metodo con variatore impedisce
l'imposizione di tensioni elevate tra i contatti sfruttando la tensione costante caratteristica del variatore. Si determina un ritardo tra l'apertura del
induttivo
circuito e il ripristino del carico. Se la tensione di alimentazione è 24 o
48 V, collegare il variatore in parallelo con il carico. Se la tensione di alimentazione è da100 a 200 V, inserire il varistore tra i contatti.
La capacità del condensatore deve essere di 1-0,5 µF per una corrente di contatto pari a 1 A e la resistenza del resistore deve essere di 0,5-1 per una tensione di contatto pari a 1 V. Tuttavia, questi valori possono variare in base al carico e alle caratteristiche del relè. Definire tali valori sulla base di test, tenendo in considerazione il fatto che il condensatore sopprime la scarica della scintilla quando i contatti vengono separati, mentre il resistore limita il flusso di corrente verso il carico quando il circuito viene richiuso.
La rigidità dielettrica del condensatore deve essere di 200-300 V. Se il circuito è un circuito c.a., utilizzare un condensatore senza polarità.
La rigidità dielettrica inversa del diodo deve essere almeno 10 volte superiore alla tensione del circuito. La corrente diretta del diodo deve essere pari o superiore alla corrente di carico.
La rigidità dielettrica inversa del diodo deve essere da due a tre volte supe­riore alla tensione di alimentazione se ai circuiti elettronici con basse tensioni è applicato un dispositivo di protezione da sovracorrente.
---
Quando si commuta un carico con una forte corrente di picco, come in una lampada a incandescenza, ridurre la corrente come illustrato di seguito.
Soluzione 1 Soluzione 2
OUT
R
COM
Generando una corrente di riposo pari a circa un terzo del valore nominale della lampada a incandescenza
OUT
COM
Utilizzando un resistore per limitare il flusso di corrente
R
xxxiii
Conformità alle direttive dell'Unione Europea 6
xxxiv
Funzionamento della CPU
In questo capitolo vengono descritti la struttura di base e il funzionamento della CPU.
1-1 Configurazione iniziale (solo CPU CS1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1-2 Utilizzo dell'orologio interno (solo CPU CS1) . . . . . . . . . . . . . . . . . . . . . . . . 5
1-3 Struttura interna della CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1-3-1 Informazioni generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1-3-2 Schema a blocchi della memoria della CPU. . . . . . . . . . . . . . . . . . . 7
1-4 Modalità operative. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1-4-1 Descrizione delle modalità operative . . . . . . . . . . . . . . . . . . . . . . . . 9
1-4-2 Inizializzazione della memoria I/O. . . . . . . . . . . . . . . . . . . . . . . . . . 10
1-4-3 Modalità di avvio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1-5 Programmi e task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1-6 Descrizione dei task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CAPITOLO 1
1
Configurazione iniziale (solo CPU CS1) Capitolo 1-1

1-1 Configurazione iniziale (solo CPU CS1)

Installazione della batteria Prima di utilizzare una CPU CS1, è necessario installarvi la batteria
attenendosi alla seguente procedura.
1,2,3... 1. Per accedere all'alloggiamento della batteria, inserire la punta di un
cacciavite a taglio nella fessura alla base dell'alloggiamento e fare leva verso l'alto per aprire il coperchio.
2
Configurazione iniziale (solo CPU CS1) Capitolo 1-1
2. Tenere la batteria con il cavo rivolto verso l'esterno e inserirla nell'alloggiamento.
Vano batteria
3. Collegare il connettore della batteria agli appositi terminali. Collegare il filo rosso al terminale superiore e il filo bianco al terminale inferiore. È possibile utilizzare uno qualsiasi dei due gruppi di terminali per i connettori della batteria disponibili. La batteria funzionerà in modo corretto indipendentemente dal gruppo di terminali utilizzato.
Rosso
Terminali dei connettori della batteria (effettuare il collegamento a uno dei due gruppi)
Bianco
3
Configurazione iniziale (solo CPU CS1) Capitolo 1-1
4. Ripiegare il cavo e chiudere il coperchio.
Cancellazione della memoria
Dopo aver installato la batteria, cancellare la memoria utilizzando la procedura appropriata per inizializzare la RAM all'interno della CPU.
Console di programmazione
Attenersi alla procedura descritta utilizzando una Console di programmazione.
Schermo iniziale
NOT
SET RESET
MON
(o
0
0
1
MON
)
Nota Quando si cancella la memoria mediante una Console di programmazione, non
è possibile specificare più di un task ciclico. È possibile specificare un task ciclico e un task ad interrupt oppure un task ciclico senza task ad interrupt. Per ulteriori informazioni sull'operazione di cancellazione della memoria, consultare il Manuale dell'operatore. Per ulteriori informazioni sui task, fare riferimento a CAPITOLO 1 Funzionamento della CPU e CAPITOLO 4 Task.
CX-Programmer
È possibile cancellare la memoria anche con CX-Programmer. Per informa­zioni sulla procedura, consultare il Manuale dell'operatore di CX-Programmer.
Cancellazione degli errori Dopo aver cancellato la memoria, cancellare gli eventuali errori della CPU,
compreso l'errore di batteria scarica.
Console di programmazione
Attenersi alla procedura descritta utilizzando una Console di programmazione.
Schermo iniziale
MONFUN MON
L'errore visualizzato verrà cancellato
MON
Torna allo schermo iniziale
CX-Programmer
È possibile cancellare gli errori anche con CX-Programmer. Per informazioni sulla procedura, consultare il Manuale dell'operatore di CX-Programmer.
Nota Quando è installata una scheda interna, è possibile che l'eventuale errore
della scheda interna relativo alla tabella di routing persista anche dopo la can­cellazione dell'errore con CX-Programmer (lo stato di A42407 resterà ON per una scheda di comunicazione seriale). In tal caso, spegnere e riaccendere il sistema o riavviare la scheda interna, quindi cancellare nuovamente l'errore.
4
Utilizzo dell'orologio interno (solo CPU CS1) Capitolo 1-2

1-2 Utilizzo dell'orologio interno (solo CPU CS1)

Quando in una CPU della serie CS viene installata la batteria, l'orologio interno della CPU viene impostato su "anno 00, mese 01, giorno 01 (00-01-01), 00 ore, 00 minuti, 00 secondi (00:00:00) e domenica (SUN)".
Quando si utilizza l'orologio interno, ripristinare l'alimentazione dopo aver installato la batteria e 1) utilizzare un dispositivo di programmazione (Console di programmazione o CX-Programmer) per impostare l'ora, 2) eseguire l'istruzione CLOCK ADJUSTMENT (DATE) oppure 3) inviare un comando FINS per avviare l'orologio interno a partire dalla data e ora correnti.
Di seguito è illustrata la procedura utilizzata per impostare l'orologio interno con una Console di programmazione.
Sequenza di tasti
Schermo iniziale
FUN
SHIFT
MON
0
CHG
Dati
Specificare: anno mese data ore minuti secondi
WRITE
5
Struttura interna della CPU Capitolo 1-3

1-3 Struttura interna della CPU

1-3-1 Informazioni generali
Lo schema seguente illustra la struttura interna della CPU.
CPU
Programma utente
Backup automa­tico
Memoria flash
(solo CPU CS1-H, CS1D, CJ1-H o CJ1M)
Memoria file nell'area EM
Backup automa­tico
memoria I/O
Accesso
Configurazione del PLC e altri parametri
task 1
task 2
Task n
Schedina di memoria
DIP switch
Il programma è suddiviso in task, che vengono eseguiti in sequenza in base al relativo numero
La memoria I/O, la configurazione del PLC, i programmi e l'area EM possono essere salvati come file
Programma utente Il programma utente è composto da un massimo di 288 task di programma,
compresi i task ad interrupt. I task vengono trasferiti alla CPU dal software di programmazione CX-Programmer.
Esistono due tipi di task. Il primo è un task ciclico che viene eseguito una volta per ciclo (fino a un massimo di 32) e l'altro è un task ad interrupt che viene eseguito solo quando si verificano le condizioni di interrupt (fino a un massimo di 256). I task ciclici vengono eseguiti in ordine numerico.
Nota 1. Con una CPU CS1-H, CJ1-H, CJ1M o CS1D, è possibile eseguire i task ad
interrupt in maniera ciclica, in modo analogo ai task ciclici. Tali task vengono definiti "task ciclici supplementari". Il numero totale di task che è possibile eseguire ciclicamente deve essere inferiore o pari a 288.
2. Quando si utilizza CX-Programmer, utilizzare la versione 2.1 o successiva per una CPU CS1-H o CJ1-H e la versione 3.0 o successiva per una CPU CJ1M (fatta eccezione per i modelli di base) o CS1D per sistemi a due CPU. Se si impiega una CPU CJ1M di base (CJ1M-CPU11/CPU21), utilizzare CX-Programmer versione 3.3 o successiva. Se si impiega una CPU CS1-H, CJ1-H, CJ1M o CS1D versione 2.0 o successiva, utilizzare CX-Programmer versione 4.0 o successiva.
Le istruzioni di programma eseguono operazioni di lettura e scrittura nella memoria I/O e vengono eseguite in sequenza a partire dall'inizio del programma. Una volta eseguiti tutti i task ciclici, gli I/O di tutti i Moduli vengono aggiornati e il ciclo si ripete nuovamente a partire dal numero di task ciclico più basso.
Per ulteriori informazioni sull'aggiornamento degli I/O, consultare il manuale CS/CJ Series Operation Manual.
6
Struttura interna della CPU Capitolo 1-3
Memoria I/O La memoria I/O è l'area della RAM utilizzata per la lettura e scrittura da un
programma utente. È costituita da un'area che viene cancellata quando l'alimentazione viene interrotta e ripristinata e da un'altra area deputata alla conservazione dei dati.
La memoria I/O è inoltre suddivisa in due aree: una utilizzata per lo scambio dei dati con tutti i Moduli e un'altra ad esclusivo uso interno. I dati vengono scambiati con tutti i Moduli una volta ogni ciclo di esecuzione del programma, nonché quando vengono eseguite istruzioni specifiche.
Configurazione del PLC La configurazione del PLC viene utilizzata per specificare diverse
impostazioni iniziali o altre impostazioni tramite parametri software.
DIP switch I DIP switch vengono utilizzati per configurare impostazioni iniziali o altre
impostazioni tramite interruttori hardware.
schedine di memoria Le schedine di memoria vengono utilizzate all'occorrenza per memorizzare
dati quali programmi, dati della memoria I/O, la configurazione del PLC e i commenti degli I/O creati mediante dispositivi di programmazione. I programmi e varie impostazioni di sistema possono essere automaticamente letti dalla schedina di memoria e scritti nella CPU all'accensione del sistema (trasferimento automatico all'avvio).
Memoria flash (solo CPU CS1-H, CJ1-H, CJ1M o CS1D)
Per quanto riguarda le CPU CS1-H, CJ1-H, CJ1M o CS1D, ogni volta che l'utente procede alla scrittura di dati nella CPU, una copia di backup del programma utente e dei dati dell'area dei parametri, quale la configurazione del PLC, viene automaticamente salvata nella memoria flash integrata della CPU. In tal modo è possibile ottenere il funzionamento senza batteria e senza utilizzare una schedina di memoria. Si tenga presente che in assenza della batteria non viene eseguito il backup della memoria I/O, compresa la maggior parte dei dati dell'area DM.
1-3-2 Schema a blocchi della memoria della CPU
La memoria (RAM) delle CPU della serie CS/CJ è costituita dai seguenti blocchi:
• Area dei parametri (configurazione del PLC, tabella di I/O registrati, tabella di routing e impostazioni del Modulo CPU bus)
• Aree della memoria I/O
• Programma utente
L'integrità dei dati dell'area dei parametri e delle aree della memoria I/O è assicurata da una batteria di backup (serie CS: CS1W-BAT01, CJ1-H: CPM2A-BAT01). Se la batteria si scarica, i dati vengono persi.
Le CPU CS1-H, CJ1-H, CJ1M o CS1D sono invece dotate di una memoria flash integrata per il backup dei dati. Il backup dei dati del programma utente e dell'area dei parametri viene eseguito automaticamente nella memoria flash integrata ogni volta che l'utente procede alla scrittura di dati nella CPU mediante un dispositivo di programmazione (ad esempio, CX-Programmer o una Console di programmazione), incluse le operazioni di trasferimento di dati, modifica in linea, trasferimento da schedine di memoria e così via. In pratica, i dati dell'area dei parametri e il programma utente non vanno perduti anche in caso di scaricamento della batteria.
7
Struttura interna della CPU Capitolo 1-3
CPU
RAM integrata
Area della memoria I/O
Memoria flash (Solo CPU CS1-H, CJ1-H, CJ1M o CS1)
Programma utente
Area dei parametri
Area di memoria dei commenti
Area di memoria del programma FB
Scrittura automatica
Scrittura automatica
Unità 1: memoria file nell'area EM (vedere nota 2)
Programma utente
Area dei parametri (vedere nota 1)
Backup
La durata massima di una nuova batteria ad una temperatura ambiente di 25 °C è di 5 anni.
Unità 0: memory card (memoria flash)
Memoria file
Backup automatico nella memoria flash ogni volta che viene eseguita un'operazione di scrittura per l'area di memoria utente (programma utente o area dei parametri) da un dispositivo di programmazione.
Utilizzata per memorizzare i file delle tabelle dei simboli, i file di commento e i file di indice dei programmi. Sulle CPU versione 3.0 o successiva, è possibile selezionare memory card, memoria file nell'area EM o memoria dei commenti come destinazione quando si trasferiscono progetti da CX-Programmer versione 5.0.
Quando da CX-Programmer si trasferiscono progetti contenenti blocchi funzione per CPU versione 3.0 o successiva, le informazioni dei programmi dei blocchi funzione vengono automaticamente memorizzate nell'area di memoria dei programmi FB.
Batteria
Nota 1. È possibile proteggere da scrittura l'area dei parametri e il programma
utente, vale a dire la memoria utente, impostando su ON il pin 1 del DIP switch sul pannello frontale della CPU.
2. La memoria file nell'area EM è una porzione dell'area EM convertita in memoria file, come specificato nella configurazione del PLC. Ai fini della memorizzazione di file di dati e di programma, è possibile utilizzare tutti i banchi EM dal banco specificato alla fine dell'area EM esclusivamente come memoria file.
3. Prima di utilizzare una CPU CS1 per la prima volta, accertarsi di aver installato la batteria fornita (CS1W-BAT01). Dopo l'installazione della batteria, utilizzare un dispositivo di programmazione per cancellare la RAM del PLC (area dei parametri, area della memoria I/O e programma utente).
4. La batteria delle CPU CS1-H, CJ1, CJ1-H, CJ1M o CS1D viene già installata in fabbrica. Non è quindi necessario cancellare la memoria o impostare l'ora.
5. Durante la scrittura di dati nella memoria flash, l'indicatore BKUP posto sulla parte anteriore della CPU si illumina. Non spegnere la CPU fino al termine dell'operazione di backup, ovvero finché l'indicatore BKUP non si sarà spento. Per ulteriori informazioni, fare riferimento alla sezione 6-6-11 Memoria flash.
8
Modalità operative Capitolo 1-4

1-4 Modalità operative

1-4-1 Descrizione delle modalità operative
La CPU presenta le modalità operative descritte di seguito. Tali modalità consentono di controllare l'intero programma utente e sono comuni a tutti i task.
Modalità PROGRAM In modalità PROGRAM l'esecuzione del programma viene interrotta e
l'indicatore RUN non è illuminato. Questa modalità viene utilizzata per la modifica del programma o altre operazioni preparatorie quali:
• Registrazione della tabella di I/O
• Modifica della configurazione del PLC e di altre impostazioni
• Trasferimento e verifica dei programmi
• Impostazione e ripristino forzato di bit per la verifica del cablaggio e dell'assegnazione dei bit
In questa modalità, tutti i task ciclici e ad interrupt hanno stato non eseguibile (INI), ossia vengono arrestati. Per ulteriori dettagli sui task, fare riferimento alla sezione 1-6 Descrizione dei task. L'aggiornamento degli I/O viene eseguito in modalità PROGRAM. Per informazioni sull'aggiornamento degli I/O, consultare il Manuale dell'operatore.
!AVVERTENZA La CPU aggiorna gli I/O anche quando il programma non è in esecuzione,
ovvero anche in modalità PROGRAM. Verificare preliminarmente lo stato della sicurezza prima di modificare lo stato di qualunque parte della memoria assegnata ai Moduli di I/O, ai Moduli di I/O speciale o ai Moduli CPU bus. Qualunque modifica ai dati della memoria assegnata a un Modulo può provocare l'inattesa attivazione dei carichi collegati a tale Modulo. Una qualunque delle seguenti operazioni può determinare la modifica dello stato della memoria.
• Trasferimento di dati della memoria I/O da un dispositivo di programmazione alla CPU.
• Modifica degli attuali valori in memoria da un dispositivo di programmazione.
• Impostazione/ripristino forzato di bit da un dispositivo di programmazione.
• Trasferimento di file della memoria I/O da una schedina di memoria o dall'area di memoria file nell'area EM alla CPU.
• Trasferimento di dati della memoria I/O da un computer host o da un altro PLC collegato in rete.
Modalità MONITOR Utilizzando i dispositivi di programmazione è possibile effettuare le operazioni
descritte di seguito mentre il programma è in esecuzione in modalità MONI­TOR. L'indicatore RUN risulterà acceso. Questa modalità viene utilizzata per esecuzioni di prova o altre rettifiche.
• Modifica in linea
• Impostazione e ripristino forzato di bit
• Modifica di valori nella memoria I/O
In questa modalità, i task ciclici specificati per l'esecuzione all'avvio (vedere la nota) e quelli resi eseguibili da TKON(820) vengono eseguiti quando l'esecu­zione del programma raggiunge il numero di task corrispondente. I task ad inter­rupt vengono eseguiti quando si verificano le rispettive condizioni di interrupt.
Nota I task eseguiti all'avvio vengono specificati nelle proprietà del programma
tramite CX-Programmer.
9
Modalità operative Capitolo 1-4
Modalità RUN Questa modalità viene utilizzata per la normale esecuzione del programma.
L'indicatore RUN risulterà acceso. Alcune operazioni da dispositivo di program­mazione, quali la modifica in linea, l'impostazione e il ripristino forzato e la modi­fica di valori della memoria I/O, sono disabilitate in questa modalità. Sono tuttavia abilitate altre operazioni come il monitoraggio dello stato di esecuzione del programma (monitoraggio programmi e monitoraggio memoria I/O).
Utilizzare questa modalità per il normale funzionamento del sistema. L'esecuzione dei task avviene in modo analogo all'esecuzione in modalità MONITOR.
Per informazioni dettagliate sulle operazioni disponibili in ciascuna modalità operativa, vedere il capitolo 10-2 Modalità operative della CPU nel Manuale dell'operatore.
1-4-2 Inizializzazione della memoria I/O
La tabella che segue mostra quali aree dati vengono cancellate quando la modalità operativa passa da PROGRAM a RUN/MONITOR o viceversa.
Cambio modalità Aree senza ritenzione
(nota 1)
RUN/MONITOR PROGRAM Cancellata (nota 3) Mantenuta PROGRAM RUN/MONITOR Cancellata (nota 3) Mantenuta RUN MONITOR Mantenuta Mantenuta
Aree con ritenzione
(nota 2)
Nota 1. Aree senza ritenzione: area CIO, area di lavoro, valori attuali del
temporizzatore, flag di completamento del temporizzatore, registri indice, registri dati, flag dei task e flag di condizione (Le informazioni di stato di alcuni indirizzi nell'area ausiliaria vengono ritenute, mentre altre vengono cancellate)
2. Aree con ritenzione: area di ritenzione, area DM, area EM, valori attuali del contatore, flag di completamento del contatore.
3. I dati presenti nella memoria I/O vengono mantenuti quando il bit di ritenzione IOM (A50012) è attivato. Quando il bit di ritenzione IOM (A50012) è attivato e il funzionamento si interrompe a causa di un errore fatale (incluso FALS(007)), il contenuto della memoria I/O verrà mantenuto ma le uscite del Modulo di uscita verranno disattivate.
10
Modalità operative Capitolo 1-4
1-4-3 Modalità di avvio
Per informazioni dettagliate sulla modalità di avvio, consultare il Manuale dell'operatore della CPU.
Nota Nel caso delle CPU CJ1, CS1-H, CJ1-H, CJ1M o CS1D, se non è collegata
una Console di programmazione, la CPU verrà avviata in modalità RUN. Questa caratteristica differisce dal funzionamento predefinito della CPU CS1, la quale viene avviata in modalità PROGRAM quando non è collegata una Console di programmazione.
Condizioni CPU CS1 CPU CJ1, CS1-H,
Il PLC è configurato per l'avvio in base alla modalità impostata sulla Console di programmazione, ma non è collegata alcuna Console di programmazione.
Accensione
Configurazione del
PLC impostata sulla moda-
lità della Console di pro-
grammazione?
Console di
programmazione
collegata?
No
No
CJ1-H, CJ1M o
CS1D
Modalità PROGRAM modalità RUN
La CPU verrà avviata nella modalità impostata nella configurazione del PLC.
La CPU verrà avviata nella modalità impostata sulla Console di programmazione.
CPU CJ1, CS1-H, CJ1-H o CJ1M: avviata in modalità RUN.
CPU CS1: avviata in modalità PROGRAM.
11
Programmi e task Capitolo 1-5

1-5 Programmi e task

I task specificano la sequenza e le condizioni di interrupt in base alle quali vengono eseguiti i singoli programmi. Possono essere suddivisi nelle seguenti categorie di massima:
1,2,3... 1. Task eseguiti in sequenza, denominati task ciclici.
2. Task eseguiti in base a condizioni di interrupt, denominati task ad interrupt.
Nota Con le CPU CS1-H, CJ1-H, CJ1M o CS1D, è possibile eseguire i task ad
interrupt in maniera ciclica, in modo analogo ai task ciclici. Tali task vengono definiti "task ciclici supplementari".
I programmi assegnati a task ciclici vengono eseguiti in sequenza in base al numero di task e gli I/O vengono aggiornati una volta per ciclo al termine dell'esecuzione di tutti i task, o più precisamente di tutti i task con stato eseguibile. Se durante l'elaborazione di un task ciclico si verifica una condizione di interrupt, il task ciclico verrà interrotto e verrà eseguito il programma assegnato al task ad interrupt.
Per ulteriori informazioni sull'aggiornamento degli I/O, consultare il manuale CS/CJ Series Operation Manual.
Programma A
Task ciclico 0
Task ciclico 1
Task ciclico n
Aggiornamento degli I/O
Si verifica la condi­zione di interrupt
Assegnazione
Assegnazione
Assegnazione
Task ad interrupt 100
Programma B
Assegnazione
Programma C
Programma D
Nell'esempio sopra riportato, la programmazione viene eseguita nel seguente ordine: avvio di A, B, porzione rimanente di A, C, quindi D. Si presume che durante l'esecuzione del programma A si sia verificata la condizione di interrupt per il task ad interrupt 100 e, pertanto, al termine dell'esecuzione del programma B viene eseguito il resto del programma A, a partire dal punto in cui l'esecuzione era stata interrotta.
Nei PLC OMRON meno recenti, un programma continuo è costituito da più parti continue. I programmi assegnati a ciascun task sono programmi singoli che terminano con un'istruzione END, esattamente come per il programma dei PLC meno recenti.
12
Programmi e task Capitolo 1-5
Una caratteristica dei task ciclici consiste nella possibilità di abilitare (stato eseguibile) e disabilitare (stato di attesa) il task tramite istruzioni di controllo. Ne consegue la possibilità di assemblare come task vari componenti di un programma e di eseguire all'occorrenza solo i programmi (task) specifici per il modello di prodotto in uso o la procedura in corso (cambio di step del programma). In questo modo si ottengono prestazioni (tempi del ciclo) nettamente migliori grazie all'esecuzione dei soli programmi richiesti quando necessario.
Sistema di una versione precedente
Un programma continuo
Aggiornamento degli I/O
Assegnazione
Un task che è stato eseguito verrà eseguito nei cicli successivi, mentre un task in attesa resterà in attesa nei cicli successivi a meno che la relativa esecuzione non venga richiamata da un altro task.
Serie CS/CJ
task 1
task 2
task 3
Aggiornamento degli I/O
È possibile porre i task in uno stato non eseguibile (di attesa)
Nota Diversamente dai programmi della generazione precedente, la cui
esecuzione può essere paragonata alla lettura di un testo continuo, l'esecuzione dei task è equiparabile alla lettura di una serie di schede singole.
• Tutte le schede vengono lette secondo un ordine prefissato, a partire da quella avente il numero più basso.
• Tutte le schede vengono contrassegnate come attive o non attive, e queste ultime vengono ignorate. L'attivazione o la disattivazione viene specificata utilizzando istruzioni di controllo dei task.
13
Descrizione dei task Capitolo 1-6
• Una scheda attivata resterà tale e verrà letta nelle sequenze successive. Una scheda disattivata resterà tale e verrà ignorata nelle sequenze successive, finché non verrà riattivata da un'altra scheda.
Programma di una versione precedente: come testo continuo
Programma per la serie CS/CJ: simile a un gruppo di schede che possono essere disattivate o attivate da altre schede.
Attivata Disattivata

1-6 Descrizione dei task

I task possono essere suddivisi nelle seguenti categorie di massima:
1,2,3... 1. Task ciclici (massimo 32)
Tali task verranno eseguiti una volta per ciclo qualora abbiano stato eseguibile. Se necessario, è possibile disabilitare l'esecuzione dei task ciclici.
2. Task ad interrupt Tali task vengono eseguiti quando si verifica una condizione di interrupt,
indipendentemente dal fatto che sia in corso l'esecuzione di un task ciclico. I task ad interrupt (vedere note 1 e 2) vengono raggruppati nei seguenti quattro tipi (cinque, se si considerano anche i task ciclici supplementari per le CPU CS1-H, CJ1-H, CJ1M o CS1D):
a) Task ad interrupt di spegnimento (non supportato dalle CPU CS1D per
sistemi a due CPU): viene eseguito quando l'alimentazione viene interrotta (massimo 1).
b) Task ad interrupt programmato (non supportato dalle CPU CS1D per
sistemi a due CPU): viene eseguito a intervalli prefissati (massimo 2).
c) Task ad interrupt di I/O (non supportato dalle CPU CS1D o CJ1 per
sistemi a due CPU): viene eseguito quando viene attivato un ingresso di un Modulo di interrupt di ingresso (massimo 32).
d) Task ad interrupt esterno (non supportato dalle CPU CJ1 o CS1D per
sistemi a due CPU): viene eseguito (massimo 256) quando richiesto da un Modulo di I/O speciale, un Modulo CPU bus o una scheda interna (solo serie CS).
e) Task ciclico supplementare (supportato solo dalle CPU CS1-H, CJ1-H,
CJ1M e CS1D)
Tali task ad interrupt che vengono trattati come task ciclici. I task ciclici supplementari vengono eseguiti una volta per ciclo finché hanno stato eseguibile.
È possibile creare e controllare tramite CX-Programmer un totale di 288 task con 288 programmi. In tale numero sono compresi 32 task ciclici al massimo e 256 task ad interrupt.
14
Nota 1. Le CPU CJ1 attualmente non supportano task ad interrupt esterni e task
ad interrupt di I/O. Il numero massimo di task per una CPU CJ1 è quindi 35, ovvero 32 task ciclici e 3 task ad interrupt. Pertanto, anche il numero massimo di programmi che è possibile creare e gestire è 35.
Descrizione dei task Capitolo 1-6
2. Le CPU CS1D non supportano alcun task ad interrupt. Tuttavia, è possibile utilizzare task ciclici supplementari.
Ciascun programma viene assegnato a un solo task mediante le impostazioni delle proprietà del programma definite con CX-Programmer.
Task ciclico 0
Task ad interrupt 5
Eseguiti in ordine, a partire da quello con numero più basso
Task ciclico 1
Task ciclico 2
Si verifica un interrupt
Nota I flag di condizione (ER, >, = e così via) e le condizioni
di istruzione (attivazione dell'interblocco e così via) vengono cancellati all'avvio di un task.
Aggiornamento
degli I/O
Elaborazione delle
periferiche
Struttura del programma È possibile creare programmi di subroutine standard e assegnarli ai task, in
base alle esigenze di creazione dei programmi. Ciò significa che è possibile creare moduli di programma (componenti standard) ed eseguire il debug dei singoli task.
Programmi di subroutine standard
Programma utente ABC Programma utente ABD
Task 1 (A)
Task 2 (B)
Task 1 (A)
Task 2 (B)
Task 3 (C)
Task 3 (D)
Durante la creazione di programmi modulari, è possibile specificare gli indirizzi per mezzo di simboli, in modo da facilitare la standardizzazione.
15
Descrizione dei task Capitolo 1-6
Stato eseguibile e stato di attesa
Programma
Task 0 (task di controllo)
task 1
task 2
task 3
È possibile eseguire le istruzioni TASK ON e TASK OFF (TKON(820) e TKOF(821)) all'interno di un task per impostare lo stato eseguibile o di attesa di un altro task.
Sebbene le istruzioni dei task in stato di attesa non vengano eseguite, il relativo stato degli I/O viene mantenuto. Quando lo stato di un task viene nuovamente impostato come eseguibile, le istruzioni vengono eseguite con lo stato degli I/O mantenuto.
Esempio programmazione con task di controllo
In questo esempio, il task 0 è un task di controllo che viene eseguito per primo all'avvio dell'operazione. È possibile impostare altri task con CX-Pro­grammer (ma non con una Console di programmazione) per l'avvio o meno all'inizio dell'operazione.
Una volta avviata l'esecuzione del programma, è possibile controllare i task tramite le istruzioni TKON(820) e TKOF(821).
task 0
task 0
task 1
task 2
task 3
task 0
task 1
task 2
task 3
Esempio
Il task 1 viene avviato quando a diventa ON.
I task 2 e 3 vengono avviati quando c diventa ON.
All'avvio viene eseguito il task 0 (come impostato nelle proprietà del programma tramite CX-Programmer). Il task 1 è eseguibile quando a diventa ON. Il task 1 viene posto in attesa quando b diventa ON. I task 2 e 3 sono eseguibile quando c diventa ON. I task 2 e 3 vengono posti in attesa quando d diventa ON.
Il task 1 viene posto in attesa quando b
task 0
task 1
task 2
task 3
task 0
task 1
task 2
task 3
diventa ON.
I task 2 e 3 vengono posti in attesa quando d diventa ON.
task 0
task 1
task 2
task 3
task 0
task 1
task 2
task 3
16
Descrizione dei task Capitolo 1-6
Esempio task controllati da altri task
In questo esempio, ciascun task è controllato da un altro task.
Programma
task 0
task 1
task 2
task 0
task 1
task 2
Il task 1 viene avviato quando a diventa ON.
Esempio
task 0
task 1
task 2
Programma per il task 0
Programma per il task 1
Per impostazione all'avvio viene eseguito il task 1, indipendentemente da qualsiasi altra condizione. Il task 1 è eseguibile quando a diventa ON. Il task 1 viene posto in attesa quando b diventa ON. Il task 2 è eseguibile quando c diventa ON e il task 1 è stato eseguito.
Il task 1 viene posto in attesa quando b diventa ON.
task 0
task 1
task 2
È possibile inserire l'istruzione TKOF(821)
Nota
all'interno di un task per porre tale task in attesa.
Se il task 1 viene eseguito
Il task 2 viene avviato quando c diventa ON.
task 0
task 1
task 2
17
Descrizione dei task Capitolo 1-6
Tempo di esecuzione dei task
Quando un task è in attesa, le istruzioni contenute in tale task non vengono eseguite e, pertanto, il tempo di esecuzione delle istruzioni disabilitate non viene aggiunto al tempo di ciclo.
Nota Da questo punto di vista, le istruzioni di un task in attesa equivalgono alle
istruzioni di una sezione del programma saltata (JMP-JME).
Poiché le istruzioni di un task non eseguito non determinano un aumento del tempo di ciclo, è possibile migliorare in modo considerevole le prestazioni complessive del sistema suddividendo il sistema in un task di controllo globale e in singoli task che vengono eseguiti solo quando necessario.
Sistema di una versione precedente
La maggiore parte delle istruzioni vengono eseguite (le istruzioni nelle subroutine e nei salti vengono eseguite solo quando necessario).
PLC della serie CS/CJ
task 0
task 1
task 2
task 3
Le istruzioni vengono eseguite solo quando necessario.
18
CAPITOLO 2
Programmazione
In questo capitolo vengono fornite informazioni di base sulla creazione, la verifica e l'immissione di programmi.
2-1 Concetti di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2-1-1 Programmi e task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2-1-2 Informazioni di base sulle istruzioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2-1-3 Posizione delle istruzioni e condizioni di esecuzione. . . . . . . . . . . . . . . . . . . . . . . . 23
2-1-4 Indirizzamento delle aree della memoria I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2-1-5 Specifica degli operandi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2-1-6 Formati dei dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2-1-7 Variazioni di istruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2-1-8 Condizioni di esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2-1-9 Tempistica delle istruzioni di I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2-1-10 Frequenza di aggiornamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2-1-11 Capacità di programma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2-1-12 Concetti di base sulla programmazione ladder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2-1-13 Immissione di codici mnemonici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2-1-14 Esempi di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2-2 Precauzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2-2-1 Flag di condizione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2-2-2 Sezioni di programma speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2-3 Verifica dei programmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2-3-1 Errori durante le operazioni di immissione da un dispositivo di programmazione . . . 64
2-3-2 Verifica del programma tramite CX-Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2-3-3 Verifica del programma in fase di esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2-3-4 Verifica degli errori fatali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
19
Concetti di base Capitolo 2-1

2-1 Concetti di base

2-1-1 Programmi e task
I PLC delle serie CS e CJ eseguono programmi a diagramma ladder contenuti in task. Analogamente ai PLC tradizionali, il programma a diagramma ladder all'interno di ciascun task termina con un'istruzione END(001).
I task vengono utilizzati per determinare l'ordine di esecuzione dei programmi a diagramma ladder e le condizioni per l'esecuzione degli interrupt.
Programma A
Assegnato
Task ciclico 1
Condizione di interrupt soddisfatta.
Task ad interrupt
Assegnato
Programma B
Tutti i programmi a diagramma ladder terminano con un'istruzione END(001).
Task ciclico n
Aggiornamento degli I/O
Assegnato
Programma C
In questo capitolo vengono illustrati i concetti di base relativi alla creazione di programmi per i PLC delle serie CS e CJ. Per ulteriori informazioni sui task e sulle relazioni tra task e programmi a diagramma ladder, vedere CAPITOLO 4
Task.
Nota Task e dispositivi di programmazione
La gestione dei task con i dispositivi di programmazione è descritta di seguito. Per informazioni più dettagliate, fare riferimento al capitolo 4-4 Operazioni dei
dispositivi di programmazione relative ai task, al manuale CS/CJ-series Pro- gramming Consoles Operation Manual (W341) e al manuale CX-Programmer Operation Manual.
CX-Programmer
CX-Programmer viene utilizzato per specificare i tipi di task e i numeri dei task come attributi per i singoli programmi.
Console di programmazione
È possibile accedere e modificare i programmi con una Console di programmazione specificando i task ciclici da CT00 a CT31 e i task ad interrupt da IT00 a IT255. Quando l'operazione di cancellazione della memoria viene eseguita mediante una Console di programmazione, è possibile scrivere in un nuovo programma solo il task ciclico 0 (CT00). Per creare i task ciclici da 1 a 31 (da CT01 a CT31), è necessario utilizzare CX-Programmer.
20
Concetti di base Capitolo 2-1
2-1-2 Informazioni di base sulle istruzioni
I programmi sono composti da istruzioni. La struttura concettuale degli ingressi e delle uscite di un'istruzione è illustrata nello schema riportato di seguito.
Flusso logico di alimentazione (P.F., condizione di esecuzione)
Condizione di istruzione
Flag
Operandi (sorgenti)
Istruzione
Operandi (destinazioni)
Memoria
Flusso logico di alimentazione (P.F., condizione di esecuzione)
Condizione di istruzione
Flag
*1: solo istruzioni di ingresso. *2: non tutte le istruzioni producono
un'uscita
*1
*2
Flusso logico di alimentazione
Il flusso logico di alimentazione è la condizione di esecuzione utilizzata per controllare l'esecuzione e le istruzioni quando i programmi vengono eseguiti in modo normale. In un programma ladder il flusso logico di alimentazione rappresenta lo stato della condizione di esecuzione.
Istruzioni di ingresso • Le istruzioni di carico indicano un inizio logico e inviano la condizione di
esecuzione.
Invio della condizione di esecuzione
• Le istruzioni intermedie consentono di immettere il flusso logico di alimentazione come condizione di esecuzione e di inviarlo a un'istruzione intermedia o di uscita.
Invio della condizione di esecuzione
=
D00000
#1215
Istruzioni di uscita Le istruzioni di uscita eseguono tutte le funzioni utilizzando il flusso logico di
alimentazione come condizione di esecuzione.
Flusso logico di alimentazione LD
Blocco di ingresso
Blocco di uscita
Flusso logico di alimentazione per l'istruzione di uscita
Condizioni di istruzione
Le condizioni di istruzione sono condizioni speciali relative all'esecuzione com­plessiva delle istruzioni, e vengono generate dalle istruzioni riportate nella tabella fornita di seguito. Le condizioni di istruzione hanno una priorità più ele­vata rispetto al flusso logico di alimentazione (P.F., Power Flow) e determinano
21
Concetti di base Capitolo 2-1
se eseguire o meno una determinata istruzione. Un'istruzione può essere resa non eseguibile o assumere un comportamento diverso a seconda delle condi­zioni di istruzione. Le condizioni di istruzione vengono reimpostate (annullate) all'avvio di ogni task, ovvero vengono reimpostate al cambio di task.
Le istruzioni riportate di seguito vengono utilizzate in coppia per impostare e annullare determinate condizioni di istruzione. È necessario che la coppia di istruzioni appartenga allo stesso task.
Condizione di
istruzione
Interblocco Un interblocco consente di disattivare parte del programma. Vengono
applicate condizioni speciali quali la disattivazione dei bit di uscita, il ripristino dei temporizzatori e la ritenzione dei contatori.
Esecuzione di BREAK(514)
Esecuzione di programmi a blocchi
Termina un ciclo FOR(512)-NEXT(513) durante l'esecuzione. Impedisce l'esecuzione di tutte le istruzioni fino all'istruzione NEXT(513).
Esegue un salto da JMP0(515) a JME0(516). JMP0(515) JME0(516) Esegue un blocco di programma da BPRG(096) a BEND(801). BPRG(096) BEND(801)
Descrizione Istruzione di
Flag
In questo contesto, un flag corrisponde a un bit che funge da interfaccia tra le istruzioni.
Flag di ingresso Flag di uscita
• Flag comparativi Flag dei risultati comparativi Lo stato di questi flag viene immesso automaticamente nell'istruzione per tutte le istruzioni di uscita differenziali up/down e le istruzioni DIFU(013) e DIFD(014).
• Flag di riporto (CY) Il flag di riporto viene utilizzato come operando non specificato nelle istruzioni di scorrimento dei dati e nelle istruzioni di addizione e sottrazione.
• Flag per istruzioni speciali Questi flag includono i flag di autoimpostazione per le istruzioni FPD(269) e i flag di abilitazione della comunicazione in rete.
• Flag comparativi Flag dei risultati comparativi Lo stato di questi flag viene determinato automaticamente dall'istruzione per tutte le istruzioni di uscita differenziali up/down e le istruzioni UP(521) e DOWN(522).
• Flag di condizione I flag di condizione includono i flag di attivazione e disattivazione permanente nonché i flag che vengono aggiornati in base ai risultati dell'esecuzione delle istruzioni. Nei programmi utente è possibile specificare tali flag per mezzo di etichette, quali ER, CY, >, =, A1, A0, anziché mediante indirizzi.
• Flag per istruzioni speciali Includono i flag delle istruzioni della schedina di memoria e i flag di completamento dell'esecuzione di MSG(046).
impostazione
IL(002) ILC(003)
BREAK(514) NEXT(513)
Istruzione di
annullamento
Operandi
22
Gli operandi specificano parametri di istruzione preimpostati (caselle dei diagrammi ladder) che vengono utilizzati per definire le costanti o il contenuto dell'area della memoria I/O. È possibile eseguire un'istruzione immettendo un indirizzo o una costante come operandi. Gli operandi vengono classificati come operandi di origine, di destinazione o di numero.
Esempio
S (sorgente)
D (destinazione)
N (numero)
Concetti di base Capitolo 2-1
Tipi di operandi Simbolo
sorgente Specifica l'indirizzo dei dati da
Destinazione (risultati)
Numero Specifica un determinato numero
leggere o una costante.
Specifica l'indirizzo in cui verranno scritti i dati.
utilizzato nell'istruzione, quale un numero di salto o di subroutine.
dell'operando
S Operando di
origine
C dati di
controllo
D (R) ---
N---
Descrizione
Operando di origine diverso dai dati di controllo (C)
Dati compositi di un operando di origine con significati differenti a seconda dello stato dei bit.
Nota Gli operandi vengono altresì definiti primo operando, secondo operando e
così via, a partire dall'inizio dell'istruzione.
Primo operando
Secondo operando
2-1-3 Posizione delle istruzioni e condizioni di esecuzione
La seguente tabella illustra le possibili posizioni per le istruzioni. Le istruzioni vengono raggruppate in istruzioni che richiedono condizioni di esecuzione e istruzioni che non ne richiedono. Per informazioni dettagliate sulle singole istruzioni, vedere CAPITOLO 3 Funzioni di istruzione.
Tipo di istruzione Possibile
posizione
Istruzioni di ingresso
Istruzioni di uscita Collegate diretta-
Inizio logico (istruzioni di carico)
Istruzioni intermedie
Collegate diretta­mente alla barra di distribuzione sini­stra o posizionate all'inizio di un blocco di istruzioni.
Tra un inizio logico e l'istruzione di uscita.
mente alla barra di distribuzione destra.
Condizione di
esecuzione
Non richiesta LD, LD TST(350),
Richiesta AND, OR, AND
Richiesta La maggior parte
Non richiesta END(001),
Diagramma Esempi
LD > (e altre istruzioni di confronto con simboli)
TEST(350), AND > (e altre istruzioni di confronto con simboli ADD), UP(521), DOWN(522), NOT(520) ecc.
delle istruzioni, incluse OUT e MOV(021)
JME(005), FOR(512), ILC(003) ecc.
Nota 1. Esiste un altro gruppo di istruzioni che eseguono una serie di istruzioni
mnemoniche sulla base di un singolo ingresso. Tali istruzioni sono definite istruzioni di programmazione a blocchi. Per ulteriori informazioni sui pro­grammi a blocchi, fare riferimento al manuale CS/CJ Series CPU Units In- struction Reference Manual.
2. Se un'istruzione che richiede una condizione di esecuzione è collegata di­rettamente alla barra di distribuzione sinistra senza un'istruzione di inizio logico, durante la verifica del programma da un dispositivo di programma­zione (CX-Programmer o Console di programmazione) si verificherà un er­rore di programma.
23
Concetti di base Capitolo 2-1
2-1-4 Indirizzamento delle aree della memoria I/O
Indirizzi di bit
@@@@ @@
Numero bit (da 00 a 15)
Indica l'indirizzo del canale.
Esempio l'indirizzo del bit 03 nel canale 0001 dell'area CIO si presenta come illustrato di seguito. In questo manuale tale indirizzo viene identificato come "CIO 000103".
0001 03
Numero bit (03)
Indirizzo del canale: 0001
Canale
0000 0001 0002
Indirizzi di canale
Bit: CIO 000103
15 14 13 12 11 10 08 07 06 05 04 0309 02 01
@@@@
Indica l'indirizzo del canale
Esempio l'indirizzo dei bit da 00 a 15 nel canale 0010 dell'area CIO si presenta come illustrato di seguito. In questo manuale tale indirizzo viene identificato come "CIO 0010".
0010
00
24
Indirizzo del canale
Gli indirizzi delle aree DM ed EM vengono forniti con il prefisso "D" o "E", come riportato di seguito per l'indirizzo D00200.
D00200
Indirizzo del canale
Concetti di base Capitolo 2-1
Esempio l'indirizzo del canale 2000 nel banco corrente della memoria dei dati
estesa si presenta nel seguente modo.
E00200
Indirizzo del canale
L'indirizzo del canale 2000 nel banco 1 della memoria dei dati estesa si presenta nel seguente modo.
E1_00200
Indirizzo del canale
Numero banco
2-1-5 Specifica degli operandi
Operando Descrizione Notazione Esempi di
Specifica degli indirizzi di bit
Specifica degli indirizzi di canale
Il canale e i numeri di bit vengono specificati direttamente per indicare un bit (bit di ingresso)
@@@@ @@
Numero bit (da 00 a 15)
Indica l'indirizzo del canale.
Vengono utilizzati gli stessi indirizzi per
Nota
accedere ai flag di completamento e ai valori attuali del temporizzatore/contatore. Per un flag di task è disponibile un solo indirizzo.
Il numero del canale viene specificato direttamente per indicare il canale a 16 bit.
@@@@
Indica l'indirizzo del canale.
0001 02
Numero bit (02)
Numero canale: 0001
0003
Numero canale: 0003
D00200
Numero canale: 00200
applicazione
0001 02
MOV 0003 D00200
25
Concetti di base Capitolo 2-1
Operando Descrizione Notazione Esempi di
applicazione
Specifica degli indirizzi DM/ EM indiretti in modalità binaria
Viene specificato l'offset dall'inizio dell'area. Il contenuto dell'indirizzo verrà trattato come dati in formato binario (da 0000 a 32767) per speci-ficare l'indirizzo del canale nella memoria dei dati (DM) e nella memoria dei dati estesa (EM). Aggiungere il simbolo @ davanti all'indirizzo per specificare un indirizzo indiretto in modalità binaria.
Contenuto
@D@@@@@
D
Da 00000 a 32767 (da 000 a esadeci­male a 7FFF esadecimale in binario)
1) Gli indirizzi da D00000 a D32767 vengono
specificati se @D(@@@@@) contiene valori esadecimali da 0000 a 7FFF (da 00000 a 32767).
2) Gli indirizzi da E0 _00000 a E0 _32767 del banco 0 nella memoria dei dati estesa (EM) vengono specificati se @D(@@@@@) contiene valori esadecimali da 8000 a FFFF (da 32768 a 65535).
@D00300
0 1 0 0
Binario: 256
Specifica D00256.
Aggiungere il simbolo @.
@D00300
8 0 0 1
Binario: 32769
Specifica E0 00001.
MOV #0001 @00300
Contenuto
Contenuto
3) Gli indirizzi da E@_00000 a E@_32767 nel banco specificato vengono specificati se @E@_@@@@@ contiene valori esadecimali da 0000 a 7FFF (da 00000 a
32767).
4) Gli indirizzi da E(@+1)_00000 a E(@+1)_32767 nel banco successivo al banco specificato @ vengono specificati se @E@_@@@@@ contiene valori esadecimali da 8000 a FFFF (da 32768 a
65535).
@E1_00200
0 1 0 1
Binario: 257
Specifica E1_00257.
@E1_00200
8 0 0 2
Binario: 32770
Specifica E2_00002.
Contenuto
Contenuto
MOV #0001 @E1_00200
Nota Quando si specifica un indirizzo indiretto in modalità binaria, considerare la memoria dei dati (DM)
e la memoria dei dati estesa (EM) (banchi da 0 a C) come una singola serie di indirizzi. Se il contenuto di un indirizzo con il simbolo @ è superiore a 32767, verrà considerato come indirizzo appartenente alla memoria dei dati estesa (EM) a partire da 00000 nel banco N. 0.
Esempio Se il canale della memoria dei dati (DM) contiene 32768, verrà specificato l'indirizzo
E1_00000 nel banco 0 della memoria dei dati estesa (EM).
Nota Se il numero di banco della memoria dei dati estesa (EM) viene specificato come "n" e il contenuto
del canale è superiore a 32767, l'indirizzo verrà considerato come appartenente alla memoria dei dati estesa (EM) a partire da 00000 nel banco N+1.
Esempio Se il banco 2 della memoria dei dati estesa (EM) contiene 32768, verrà specificato l'indirizzo
E3_00000 nel banco 3 della memoria dei dati estesa (EM).
26
Concetti di base Capitolo 2-1
Operando Descrizione Notazione Esempi di
applicazione
Specifica degli indirizzi DM/ EM indiretti in modalità BCD
Viene specificato l'offset dall'inizio dell'area. Il contenuto dell'indirizzo verrà trattato come dati in formato BCD (da 0000 a 9999) per specifi­care l'indirizzo del canale nella memoria dei dati (DM) e nella memoria dei dati estesa (EM). Aggiungere un asterisco (*) davanti all'indirizzo per specificare un indirizzo indiretto in modalità BCD.
Contenuto
D
*D
@@@@@
Da 00000 a 9999 (BCD)
*D00200
Specifica D0100
Operando Descrizione Nota-
0 1 0 0
Aggiungere un asterisco (*)
Contenuto
Esempi di applicazione
MOV #0001 *D00200
zione
Specifica diretta di un registro
Un registro indice (IR) o un registro dati (DR) viene specificato in modo diretto impostando IR@ (@: da 0 a 15) o DR@ (@: da 0 a 15).
IR0
IR1
MOVR 000102 IR0 Memorizza l'indirizzo di memoria del PLC per CIO 0010 in IR0.
MOVR 0010 IR1 Memorizza l'indirizzo di memoria del PLC per CIO 0010 in IR1.
Specifica di un indirizzo indiretto mediante un registro
Indirizzo indiretto (nessun offset)
Offset con costante
Viene specificato il bit o il canale con l'indirizzo di memoria del PLC contenuto in IR@.
Per specificare i bit e i canali per gli operandi di istruzione, specificare ,IR@.
Viene specificato il bit o il canale con l'indirizzo di memoria del PLC contenuto in IR@ + o – la costante.
Specificare +/– costante ,IR@. Gli offset con costante sono compresi tra –2048 e +2047 (decimale). L'offset viene conver-
,IR0
,IR1
+5,IR0
+31,IR1
LD ,IR0 Carica il bit con l'indirizzo di memoria del PLC contenuto in IR0.
MOV #0001 ,IR1 Memorizza #0001 nel canale con l'indirizzo di memoria del PLC contenuto in IR1.
LD +5 ,IR0 Carica il bit con l'indirizzo di memoria del PLC contenuto in IR0 + 5.
MOV #0001 +31 ,IR1 Memorizza #0001 nel canale con l'indirizzo
di memoria del PLC contenuto in IR1 + 31 tito in dato binario durante l'esecuzione dell'istruzione.
Offset DR Viene specificato il bit o il canale con
l'indirizzo di memoria del PLC contenuto in IR@ + il contenuto di DR@.
Specificare DR@ ,IR@. Il contenuto di DR (registro dati) viene considerato come dato binario con segno. Se il valore bina­rio con segno è negativo, al contenuto di
DR0 ,IR0
DR0 ,IR1
LD DR0 ,IR0
Carica il bit con l'indirizzo di memoria del
PLC contenuto in IR0 + il valore in DR0.
MOV #0001 DR0 ,IR1
Memorizza #0001 nel canale con l'indirizzo
di memoria del PLC contenuto in IR1 + il
valore in DR0. IR@ verrà assegnato un offset negativo.
Incre­mento automatico
Il contenuto di IR@ viene incrementato di +1 o +2 dopo avere associato il valore a un indirizzo di memoria del PLC.
+1: specificare ,IR@+ +2: specificare ,IR@ + +
,IR0 ++
,IR1 +
LD ,IR0 ++
Incrementa il contenuto di IR0 di un valore
pari a 2 dopo il caricamento del bit con l'indi-
rizzo di memoria del PLC contenuto in IR0.
MOV #0001 ,IR1 +
Incrementa il contenuto di IR1 di un valore
pari a 1 dopo la memorizzazione di #0001
nel canale con l'indirizzo di memoria del
PLC contenuto in IR1.
Decre­mento automatico
Il contenuto di IR@ viene diminuito di –1 o –2 dopo avere associato il valore a un indirizzo di memoria del PLC.
–1: specificare ,–IR@ –2: specificare ,– –IR@
,– –IR0
,–IR1
LD ,– –IR0
Dopo avere diminuito il contenuto di IR0 di
un valore pari a 2, viene caricato il bit con
l'indirizzo di memoria del PLC contenuto in
IR0.
MOV #0001 ,–IR1
Dopo avere diminuito il contenuto di IR1 di
un valore pari a 1, #0001 viene
memorizzato nel canale con l'indirizzo di
memoria del PLC contenuto in IR1.
27
Concetti di base Capitolo 2-1
Dati Operando Formato dei dati Simbolo Intervallo Esempio di applicazione
Costante a 16 bit
Costante a 32 bit
Stringa di testo
Tutti i dati binari o un intervallo limitato di dati binari
Tutti i dati in formato BCD o in un intervallo limitato di dati
Tutti i dati binari o un intervallo limitato di dati binari
Tutti i dati in formato BCD o in un intervallo limitato di dati
I dati delle stringhe di testo vengono memorizzati in formato ASCII (un byte per carattere, ad eccezione dei caratteri speciali) nel seguente ordine: dal byte all'estrema sinistra al byte all'estrema destra e dal canale all'estrema destra (il più pic­colo) al canale all'estrema sinistra.
Il valore esadecimale 00 (codice NUL) viene memorizzato nel byte all'estrema destra dell'ultimo canale, nel caso in cui sia presente un numero dispari di caratteri.
0000 esadecimale (2 codici NUL) viene memorizzato nei byte liberi all'estrema sinistra e all'estrema destra dell'ultimo canale + 1, nel caso in cui sia presente un numero pari di caratteri.
Binario senza segno
Decimale con segno
Decimale senza segno
BCD # Da #0000 a
Binario senza segno
Binario con segno
Decimale senza segno
BCD # Da #00000000 a
Descrizione Simbolo Esempi ---
# Da #0000 a
± Da –32768 a
& (vedere nota) Da &0 a &65535 ---
# Da #00000000 a
+ Da –2147483648
& (vedere nota) Da &0 a
---
#FFFF
+32767
#9999
#FFFFFFFF
a +2147483647
&429467295
#99999999
'ABCDE'
---
---
---
---
---
---
---
'A' 'B'
'D'
'C' 'E'
NUL
42
41 43
44
45 00
'ABCD'
'B'
'A' 'C'
'D'
NUL
NUL
42
41 43
44
00
00
MOV$ D00100 D00200
D00100 D00101 D00102
D00200 D00201 D00202
41
42
43
44
45 00
41 42 43
44 00
45
28
I caratteri ASCII che è possibile utilizzare in una stringa di testo includono caratteri alfanumerici, caratteri Katakana e simboli, ad eccezione dei caratteri speciali. I caratteri sono illustrati nella tabella riportata di seguito.
Nota La notazione decimale senza segno viene utilizzata solo in CX-Programmer.
Concetti di base Capitolo 2-1
Caratteri ASCII
Bit da 0 a 3 Bit da 4 a 7
Bina-
rio
0000 0 0001 1 ! 1AQaq !1AQ 0010 2 ” 2BRbr ”2BR 0011 3 # 3CScs #3CS 0100 4 $ 4DTdt $4DT 0101 5 % 5EUeu %5EU 0110 6 & 6FVfv &6FV 0111 7 ’ 7GWgw ’7GW 1000 8 ( 8HXhx (8HX 1001 9 ) 9IYiy )9IY 1010 A * :JZjz *:JZ 1011 B + ;K[k{ +;K[ 1100 C , <L\l| ,<L\ 1101 D - =M]m} -=M] 1110 E .>N^n~ .>N^ 1111 F /?O_o /?O_
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Esa­deci­male
0123456789ABCDEF
Spazio
0@P`p 0@P
29
Concetti di base Capitolo 2-1
2-1-6 Formati dei dati
Nella tabella riportata di seguito sono illustrati i formati dei dati che i PLC delle serie CS e CJ sono in grado di gestire.
Tipo di
dati
Binario senza segno
Binario con segno
BCD (decimale codificato in binario)
Binario Decimale
Esadecimale
Binario Decimale Esadecimale
Binario
Decimale
Formato dei dati Decimale Esadecimale
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1521421321221121029282726252423222120
2
3276816384 8192 4092 2048 1024 512 256 128 64 12 16 8 4 2
0
2322212
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1521421321221121029282726252423222120
2
3276816384 8192 4092 2048 1024 512 256 128 64 12 16 8 4
2322212
Bit di segno: 0: positivo, 1: negativo
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2322212
da 0 a 9 da 0 a 9 da 0 a 9 da 0 a 9
2322212
0
2322212
0
2322212
0
2322212
0
2322212
0
2322212
0
2322212
0
2322212
3222120
0
2
21
1
0
0
da 0 a 65535
da –32768 a +32767
da 0 a 9999
a 4 cifre
da 0000 a FFFF
da 8000 a 7FFF
da 0000 a 9999
30
Concetti di base Capitolo 2-1
Tipo di
dati
Decimale a virgola mobile in singola precisione
Decimale a virgola mobile in doppia precisione
Formato dei dati Decimale Esadecimale
31 30 29 23 22 21 20 19 18 17 3 2 10
Segno della mantissa
Nota Questo formato dei dati a virgola mobile in singola precisione è conforme agli
Segno della mantissa
Esponente
segno
Valore = (–1) Segno (bit 31)
Mantissa
Esponente
standard IEEE754 e viene utilizzato solo con istruzioni che convertono o utilizzano numeri a virgola mobile. Questo formato può essere utilizzato per eseguire impostazioni o monitoraggi dalla pagina di modifica e monitoraggio della memoria I/O di CX-Programmer, ma non è supportato dalle Console di programmazione. Gli utenti non devono necessariamente conoscere i dettagli relativi a questo formato, eccetto per il fatto che occupa 2 canali.
63 62 61 52 51 50 49 48 47 46 3 2 10
Esponente Mantissa
x 1.[Mantissa] x 2
Binario
1: negativo o 0: positivo
I 23 bit da 00 a 22 contengono la mantissa, cioè la parte del numero dopo la virgola decimale
1,@@@......, in formato binario.
Gli 8 bit da 23 a 30 contengono l'esponente espresso in formato binario come 127 più N in 2
Binario
Mantissa
Esponente
n
.
a 4 cifre
--- ---
--- ---
Valore = (–1) Segno (bit 63)
Mantissa
Esponente
Questo formato dei dati a virgola mobile in doppia precisione è conforme agli
Nota
standard IEEE754 e viene utilizzato solo con istruzioni che convertono o utilizzano numeri a virgola mobile. Questo formato può essere utilizzato per eseguire impostazioni o monitoraggi dalla pagina di modifica e monitoraggio della memoria I/O di CX-Programmer, ma non è supportato dalle Console di programmazione. Gli utenti non devono necessariamente conoscere i dettagli relativi a questo formato, eccetto per il fatto che occupa 4 canali.
Segno
x 1.[Mantissa] x 2
1: negativo o 0: positivo I 52 bit da 00 a 51 contengono la mantissa, cioè la
parte del numero dopo la virgola decimale
1,@@@......, in formato binario.
Gli 11 bit da 52 a 62 contengono l'esponente espresso in formato binario come 1023 più N in 2
Esponente
Dati binari con segno
Nei dati binari con segno il bit all'estrema sinistra indica il segno dei dati binari a 16 bit. Il valore è espresso in formato esadecimale a 4 cifre.
Numeri positivi. Un valore è positivo o pari a 0 se il bit all'estrema sinistra è 0 (OFF). Nel formato esadecimale a 4 cifre, tale valore viene espresso come valore compreso tra 0000 e 7FFF esadecimale.
Numeri negativi. Un valore è negativo se il bit all'estrema sinistra è 1 (ON). Nel formato esadecimale a 4 cifre, tale valore viene espresso come valore compreso tra 8000 e FFFF esadecimale. Il valore assoluto del valore negativo (decimale) viene espresso come complemento a 2.
Esempio Per indicare –19 in formato decimale come valore binario con segno, sottrarre il valore esadecimale 0013 (valore assoluto di 19) dal valore esadecimale FFFF e aggiungere 0001 esadecimale in modo da ottenere FFED esadecimale.
n
.
31
Concetti di base Capitolo 2-1
FFFF
1111 1111 1111
1111
Numero effettivo
–)
+)
Complemento a 2
001
0000 0000 0001 0011
FFEC
1111 1111 1110
000
0000 0000 0000 0001
FFED
1111 1111 1110 1101
3
1100
1
Complementi
In genere il complemento in base x indica un numero ottenuto dalla sottrazione di tutte le cifre di un determinato numero da x – 1 e dall'aggiunta di 1 alla cifra all'estrema sinistra. Ad esempio, il complemento a 10 di 7556 è 9999 – 7556 + 1 = 2444. Il complemento viene utilizzato per esprimere la sottrazione e altre funzioni, quali l'addizione.
Esempio 8954 – 7556 = 1398, 8954 + (complemento a 10 di 7556) = 8954 + 2444 = 11398. Se si ignora il bit all'estrema sinistra, il risultato della sottrazione sarà pari a 1398.
Complementi a 2
Un complemento a 2 è un complemento in base 2. In tal caso, si sottraggono tutte le cifre da 1 (2 – 1 = 1) e si aggiunge 1.
Ad esempio, Il complemento a 2 del numero binario 1101 è 1111 (F esadeci­male) – 1101 (D esadecimale) + 1 (1 esadecimale) = 0011 (3 esadecimale). Di seguito questo valore viene espresso in formato esadecimale a 4 cifre.
Il complemento a 2 b esadecimale di a esadecimale è FFFF esadecimale – a esadecimale + 0001 esadecimale = b esadecimale. Per determinare il complemento a 2 b esadecimale di "a esadecimale", calcolare b esadecimale = 10000 esadecimale – a esadecimale.
Ad esempio, per determinare il complemento a 2 del valore esadecimale 3039, calcolare 10000 esadecimale – 3039 esadecimale = CFC7 esadecimale.
Analogamente, per derivare il valore a esadecimale dal complemento a 2 b esadecimale, calcolare a esadecimale = 10000 esadecimale – b esadecimale.
Esempio Per derivare il valore reale dal complemento a 2 CFC7 esadecimale, calcolare 10000 esadecimale – CFC7 esadecimale = 3039 esadecimale.
Per le serie CS e CJ sono previste le istruzioni NEG(160) (2’S COMPLEMENT) e NEGL(161) (DOUBLE 2’S COMPLEMENT), che è possibile utilizzare per derivare il complemento a 2 dal numero reale o per derivare il numero reale dal complemento a 2.
Dati BCD con segno
I dati BCD con segno rappresentano un formato di dati speciale utilizzato per esprimere i numeri negativi in formato BCD. Sebbene tale formato venga uti­lizzato nelle applicazioni, non è definito in modo esplicito e dipende dall'appli­cazione specifica. I PLC delle serie CS e CJ supportano le seguenti istruzioni
32
Concetti di base Capitolo 2-1
per la conversione dei formati di dati: SIGNED BCD-TO-BINARY: BINS(470), DOUBLE SIGNED BCD-TO-BINARY: BISL(472), SIGNED BINARY-TO-BCD: BCDS(471) e DOUBLE SIGNED BINARY-TO-BCD: BDSL(473). Per ulteriori informazioni, fare riferimento al manuale CS/CJ-series Programmable Con- trollers Instructions Reference Manual (W340).
Decimale Esadecimale Binario BCD
0 0 0000 0000 1 1 0001 0001 2 2 0010 0010 3 3 0011 0011 4 4 0100 0100 5 5 0101 0101 6 6 0110 0110 7 7 0111 0111 8 8 1000 1000 9 9 1001 1001 10 A 1010 0001 0000 11 B 1011 0001 0001 12 C 1100 0001 0010 13 D 1101 0001 0011 14 E 1110 0001 0100 15 F 1111 0001 0101 16 10 10000 0001 0110
Decimale Binario senza segno
+65,535 FFFF Non può essere espresso. +65534 FFFE .
. .
+32,769 8001 +32,768 8000 +32,767 7FFF 7FFF +32,766 7FFE 7FFE .
. .
+2 0002 0002 +1 0001 0001 0 0000 0000 –1 Non può essere espresso. FFFF –2 FFFE .
. .
–32,767 8001 –32,768 8000
(esadecimale a 4 cifre)
. . .
. . .
Binario con segno
(esadecimale a 4 cifre)
33
Concetti di base Capitolo 2-1
2-1-7 Variazioni di istruzione
Per differenziare le condizioni di esecuzione e aggiornare i dati quando l'istruzione viene eseguita (aggiornamento immediato), sono disponibili le variazioni di istruzione riportate di seguito.
Variazione Simbolo Descrizione
Differenziazione ON @ L'istruzione viene differenziata quando la
condizione di esecuzione viene attivata.
OFF % L'istruzione viene differenziata quando la
Aggiornamento immediato ! I dati nell'area degli I/O specificati dagli
@
condizione di esecuzione viene disattivata.
operandi o i canali del Modulo di I/O speciale vengono aggiornati all'esecuzione dell'istruzione.
L'aggiornamento immediato non è supportato dalle CPU CS1D due CPU.
Istruzione (codice mnemonico) Simbolo di differenziazione
Simbolo di aggiornamento immediato
per sistemi a
2-1-8 Condizioni di esecuzione
I PLC delle serie CS e CJ utilizzano i seguenti tipi di istruzioni di base e speciali:
• Istruzioni non differenziate eseguite a ogni ciclo
• Istruzioni differenziate eseguite una sola volta
Istruzioni non differenziate
Le istruzioni di uscita che richiedono condizioni di esecuzione vengono eseguite una volta per ciclo quando la condizione di esecuzione è valida (ON o OFF).
Istruzione di uscita non differenziata
Le istruzioni di ingresso per la creazione di inizi logici e le istruzioni intermedie leggono lo stato dei bit, effettuano confronti, verificano i bit o eseguono altri tipi di elaborazione ad ogni ciclo. Se lo stato dei risultati è ON, il flusso logico di alimentazione viene inviato, ovvero viene attivata la condizione di esecuzione.
Istruzione non differenziata
Esempio
Esempio
34
Concetti di base Capitolo 2-1
Istruzioni a ingresso differenziato
Istruzioni con differenziazione up (istruzione preceduta da @)
Istruzioni di uscita. L'istruzione viene eseguita solo durante il ciclo in cui la condizione di esecuzione viene attivata (OFF ON) e non viene eseguita nei cicli successivi.
Esempio
Istruzione con diffe­renziazione up (@)
L'istruzione MOV viene eseguita una volta quando CIO 000102 passa da OFF a ON.
@MOV
Istruzioni di ingresso (inizi logici e istruzioni intermedie). L'istruzione legge lo stato dei bit, effettua confronti, verifica i test o esegue altri tipi di elaborazione a ogni ciclo e invia una condizione di esecuzione con stato ON (flusso logico di alimentazione) quando lo stato dei risultati passa da OFF a ON. La condizione di esecuzione viene disattivata al ciclo successivo.
Esempio
Istruzione di ingresso con differenziazione up
La condizione di esecuzione viene attivata per un solo ciclo quando CIO 000103 passa da OFF a ON.
Istruzioni di ingresso (inizi logici e istruzioni intermedie). L'istruzione legge lo stato dei bit, effettua confronti, verifica i test o esegue altri tipi di elaborazione a ogni ciclo e invia una condizione di esecuzione con stato OFF (interruzione del flusso logico di alimentazione) quando lo stato dei risultati passa da OFF a ON. La condizione di esecuzione viene attivata al ciclo successivo.
Esempio
Istruzione di ingresso con differenziazione up
0001 03
Istruzioni con differenziazione down (istruzione preceduta da %)
Istruzioni di uscita. L'istruzione viene eseguita solo durante il ciclo in cui la condizione di esecuzione viene disattivata (ON OFF) e non viene eseguita nei cicli successivi.
Istruzione con diffe­renziazione down (%)
Esempio
Condizione di esecuzione con stato OFF creata per un solo ciclo quando CIO 00103 passa da OFF a ON
%SET
L'istruzione SET viene eseguita una volta quando CIO 000102 passa da ON a OFF.
35
Concetti di base Capitolo 2-1
Istruzioni di ingresso (inizi logici e istruzioni intermedie). L'istruzione legge lo stato dei bit, effettua confronti, verifica i test o esegue altri tipi di elaborazione a ogni ciclo e invia la condizione di esecuzione (flusso logico di alimentazione) quando lo stato dei risultati passa da ON a OFF. La condizione di esecuzione viene disattivata al ciclo successivo.
Istruzione con differenziazione down
Nota A differenza delle istruzioni con differenziazione up, la variazione di
differenziazione down (%) può essere aggiunta solo alle istruzioni LD, AND, OR, SET e RSET. Per eseguire la differenziazione down con altre istruzioni, combinare tali istruzioni con un'istruzione DIFD o DOWN. È possibile aggiungere NOT alle istruzioni solo quando si utilizza una CPU CS1-H, CJ1-H, CJ1M o CS1D.
Istruzioni di ingresso (inizi logici e istruzioni intermedie). L'istruzione legge lo stato dei bit, effettua confronti, verifica i test o esegue altri tipi di elaborazione a ogni ciclo e invia una condizione di esecuzione con stato OFF (interruzione del flusso logico di alimentazione) quando lo stato dei risultati passa da ON a OFF. La condizione di esecuzione viene attivata al ciclo successivo.
Istruzione di ingresso con differenziazione down
Esempio
Viene attivata quando CIO 000103 passa da ON a OFF e disattivata dopo un ciclo.
Esempio
0001 03
Condizione di esecuzione con stato OFF creata per un solo ciclo quando CIO 00103 passa da ON a OFF
36
Concetti di base Capitolo 2-1
2-1-9 Tempistica delle istruzioni di I/O
Il diagramma riportato di seguito illustra la differente tempistica operativa di singole istruzioni in un programma composto esclusivamente da istruzioni LD e OUT.
Lettura
A
B1
Lettura ingresso
A
B2
Lettura ingresso
A
A
!
A
!
A
A
A
A
A
!
A
!
A
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
Lettura ingresso
Lettura ingresso
Lettura
!
ingresso
Lettura
!
!
!
!
!
ingresso
ingresso
Lettura ingresso
Lettura ingresso
Lettura ingresso
Lettura ingresso
Lettura ingresso
Istruzioni differenziate
Elaborazione CPU
Istruzione eseguita.
Aggiornamento degli I/O
• Un'istruzione differenziata dispone di un flag interno che indica se il valore precedente è impostato su ON o OFF. All'avvio del funzionamento, i flag di valore precedente relativi all'istruzione con differenziazione up (istruzioni DIFU e @) vengono impostati su ON e i flag di valore precedente relativi alle istruzioni con differenziazione down (istruzioni DIFD e %) vengono impostati su OFF. Ciò impedisce l'attivazione imprevista di uscite differenziali all'avvio del funzionamento.
• Un'istruzione con differenziazione up (istruzione DIFU o @) verrà attivata solo quando lo stato della condizione di esecuzione è ON e il flag di valore precedente è OFF.
37
Concetti di base Capitolo 2-1
Utilizzo negli interblocchi (istruzioni IL - ILC) Nell'esempio riportato di seguito, il flag di valore precedente per l'istruzione differenziata mantiene il valore di interblocco precedente e non attiverà un'uscita differenziale nel punto A in quanto il valore non viene aggiornato finché l'interblocco è in funzione.
0000
00
0000
01
(002) IL
(013) DIFU 001000
(003) ILC
IL è in esecuzione
IL è in esecuzione
Utilizzo nei salti (istruzioni JMP - JME). Analogamente agli interblocchi, il flag di valore precedente per un'istruzione differenziata non viene modi­ficato quando l'istruzione viene saltata, vale a dire viene mantenuto il valore precedente. Le istruzioni con differenziazione up e down genere­ranno la condizione di esecuzione solo dopo che lo stato dell'ingresso viene modificato rispetto allo stato indicato dal flag di valore precedente.
Nota a) Non utilizzare il flag di attivazione permanente o il flag A20011
(flag del primo ciclo) come bit di ingresso per un'istruzione con differenziazione up. L'istruzione non verrà mai eseguita.
b) Non utilizzare il flag di disattivazione permanente come bit di
ingresso per un'istruzione con differenziazione down. L'istruzione non verrà mai eseguita.
38
Concetti di base Capitolo 2-1
2-1-10 Frequenza di aggiornamento
Per aggiornare gli I/O esterni vengono utilizzati i seguenti metodi:
• Aggiornamento ciclico
• Aggiornamento immediato (istruzione preceduta da !, istruzione IORF)
Per ulteriori informazioni sull'aggiornamento degli I/O, fare riferimento al capitolo dedicato al funzionamento della CPU del manuale CS/CJ Series Operation Manual.
Aggiornamento ciclico
Ogni programma assegnato a un task ciclico pronto o a un task in cui viene soddisfatta la condizione di interrupt verrà eseguito a partire dall'indirizzo di inizio del programma e l'esecuzione continuerà fino all'istruzione END(001). Una volta eseguiti tutti i task ciclici pronti o i task in cui viene soddisfatta la condizione di interrupt, l'aggiornamento ciclico consentirà di aggiornare contemporaneamente tutti i punti di I/O.
Nota I programmi possono essere eseguiti in più task. In tal caso, gli I/O verranno
aggiornati dopo l'istruzione finale END(001) del programma assegnato al numero di task più alto (tra tutti i task ciclici pronti) e non dopo l'istruzione END(001) dei programmi assegnati ad altri task ciclici.
Se occorre procedere all'aggiornamento degli I/O in altri task, eseguire un'istruzione IORF per tutti i canali necessari prima dell'istruzione END(001).
Aggiornamento immediato
Istruzioni con variazione di aggiornamento (!)
Se si specifica un bit di I/O reale come operando gli I/O verranno aggiornati durante l'esecuzione di un'istruzione, come illustrato di seguito.
Inizio
! LD 000101
! OUT 000209
END
Inizio
! MOV 0003
END
Aggiornamento ciclico (elaborazione batch)
Aggiornamento degli I/O
Moduli Dati aggiornati
Moduli di I/O di base C200H (solo serie CS)
Moduli di I/O di base CJ
15 0
CIO 0001
15 0
CIO 0002
15 0
CIO 0003
15 0
CIO 0004
Tutti i dati reali
Gli I/O verranno aggiornati per i 16 bit contenenti il bit specificato.
Moduli a 16 bit
Moduli a 16 bit
39
Concetti di base Capitolo 2-1
• Quando per un'istruzione si specifica un operando di canale, i punti di I/O vengono aggiornati per i 16 bit specificati.
• Gli ingressi vengono aggiornati per l'operando di ingresso o di origine immediatamente prima dell'esecuzione di un'istruzione.
• Le uscite vengono aggiornate per gli operandi di uscita o di destinazione (D) immediatamente dopo l'esecuzione di un'istruzione.
Aggiungere un punto esclamativo (!) (opzione di aggiornamento immediato) prima dell'istruzione.
Nota Le CPU CS1D per sistemi a due CPU non supportano l'aggiornamento
immediato, tuttavia supportano l'aggiornamento tramite istruzioni IORF(097) e DLNK(226).
Aggiornamento dei Moduli tramite istruzione I/O REFRESH
Posizione Sistema CPU o sistema di I/O di espansione (esclusi sistemi slave
SYSMAC BUS)
Moduli Moduli di I/O di
base
Moduli di I/O speciale Non aggiornati
Moduli di I/O di base serie CS/CJ
Modulo di I/O di base C200H (vedere nota)
Moduli di I/O ad alta densità C200H gruppo 2 (vedere nota)
Aggiornati
Aggiornati
Non aggiornati
Nota Non è possibile installare i Moduli di I/O C200H nei PLC della serie CJ.
Inizio . . . !LD 000101 . . . !OUT 000209 . . . END
Inizio
Aggiorna-
.
mento degli I/O
. . !MOV . . . END
0003 0004
Aggiornamento immediato
Segnale di ingresso
CIO 0001
Uscita
CIO 0002
S
CIO 0003
D
CIO 0004
15 0
15 0
15 0
15 0
Moduli a 16 bit
Moduli a 16 bit
40
Aggiornamento degli I/O
Aggiornamento ciclico (elaborazione batch)
Tutto l'I/O effettivo
Concetti di base Capitolo 2-1
Aggiornamento dei Moduli tramite istruzione IORF(097) o DLNK(226)
L'istruzione I/O REFRESH (IORF(097)), che consente di aggiornare i dati di I/ O reali in un intervallo di canali specificato, è disponibile come istruzione speciale. Grazie a tale istruzione, durante un ciclo è possibile aggiornare tutti di dati di I/O reali o solo un intervallo specificato di dati. È inoltre possibile utilizzare l'istruzione IORF per aggiornare i canali assegnati ai Moduli di I/O speciali.
L'istruzione CPU BUS UNIT REFRESH (DLNK(226)) consente invece di aggiornare i canali assegnati ai Moduli CPU bus nelle aree CIO e DM nonché di eseguire un aggiornamento speciale per il Modulo, ad esempio l'aggiornamento dei data link. L'istruzione DLNK(226) è supportata solo dalle CPU CS1-H, CJ1-H, CJ1M o CS1D.
Aggiornamento dei Moduli tramite istruzione IORF(097)
Posizione Sistema CPU o sistema di I/O di espansione
(esclusi sistemi slave SYSMAC BUS)
Moduli Moduli di I/O
di base
Moduli di I/O speciale Aggiornati Moduli CPU bus Non aggiornati
Moduli di I/O di base serie CS/CJ Aggiornati Moduli di I/O di base C200H Aggiornati Moduli di I/O ad alta densità
Aggiornati
C200H gruppo 2
A
A
C
B
R1
E
D
R2
C
ACE
E
B
D
Aggiornamento dei Moduli tramite istruzione DLNK(226)
Posizione Sistema CPU o sistema di I/O di espansione (esclusi sistemi slave
SYSMAC BUS)
Moduli Moduli di I/O di base Non aggiornati
Moduli di I/O speciale Non aggiornati Moduli CPU bus Canali assegnati al Modulo nell'area CIO Canali assegnati al Modulo nell'area DM Aggiornamento speciale per il Modulo (data
link per i Moduli Controller Link e SYSMAC LINK o I/O remoti per i Moduli DeviceNet)
Canali assegnati nelle aree CIO e DM e qualsiasi aggiornamento
Aggiornati
R1
R2
DLNK
#F
Modulo CPU bus con numero di modulo F
41
Concetti di base Capitolo 2-1
2-1-11 Capacità di programma
Nella tabella riportata di seguito vengono fornite le capacità massime di programma relative alle CPU delle serie CS e CJ per tutti i programmi utente, ossia la capacità totale di tutti i task. Tutte le capacità sono indicate come numero massimo di step. Se si supera la capacità, la scrittura del programma verrà disattivata.
La lunghezza di ciascuna istruzione è compresa tra 1 e 7 step. Per informazioni sul numero specifico di step in ciascuna istruzione, fare riferimento al capitolo 10-5 Tempi di esecuzione delle istruzioni e numero di step nel Manuale dell'operatore. La lunghezza di ciascuna istruzione viene aumentata di uno step qualora di utilizzi un operando a doppia lunghezza.
Serie CPU Capacità massima di
programma
Serie CS CS1H-CPU67H/CPU67-E 250.000 step 5,120
CS1D-CPU67H 250.000 step CS1D-CPU67S 250.000 step CS1H-CPU66H/CPU66-E 120.000 step CS1H-CPU65H/CPU65-E 60.000 step CS1D-CPU65H 60.000 step CS1D-CPU65S 60.000 step CS1H-CPU64H/CPU64-E 30.000 step CS1H-CPU63H/CPU63-E 20.000 step CS1G-CPU45H/CPU45-E 60.000 step CS1G-CPU44H/CPU44-E 30.000 step 1,280 CS1D-CPU44S 30.000 step CS1G-CPU43H/CPU43-E 20.000 step 960 CS1G-CPU42H/CPU42-E 10.000 step CS1D-CPU42S 10.000 step
Serie CJ CJ1H-CPU67H 250.000 step 2,560
CJ1H-CPU66H 120.000 step CJ1H-CPU65H 60.000 step CJ1G-CPU45H/CPU45 60.000 step 1280 CJ1G-CPU44H/CPU44 30.000 step CJ1G-CPU43H 20.000 step 960 CJ1G-CPU42H 10.000 step CJ1M-CPU23/CPU13 20.000 step 640 CJ1M-CPU22/CPU12 10.000 step 320 CJ1M-CPU11/CPU21 5.000 step 160
Punti di I/
O
Nota La capacità di memoria per i PLC delle serie CS e CJ viene misurata in step,
mentre la capacità di memoria per i PLC OMRON precedenti, quali i PLC C200HX/HG/HE e della serie CV, veniva misurata in canali. Per indicazioni sulla conversione delle capacità di programma dei PLC OMRON precedenti, fare riferimento alle informazioni fornite nella parte finale del capitolo 10-5
Tempi di esecuzione delle istruzioni e numero di step nel Manuale dell'opera­tore del PLC in uso.
2-1-12 Concetti di base sulla programmazione ladder
Le istruzioni vengono eseguite nell'ordine elencato in memoria (ordine mnemonico). È necessario che i concetti di base sulla programmazione, così come l'ordine di esecuzione, siano corretti.
42
Concetti di base Capitolo 2-1
Struttura generale del diagramma ladder
Bit di ingresso Barra di distribuzione sinistra
Un diagramma ladder è costituito da barre di distribuzione a destra e sinistra, linee di collegamento, bit di ingresso e di uscita e istruzioni speciali. Un pro­gramma è costituito da uno o più rung di programma. Il rung di programma è un'unità che può essere ripartita quando il bus viene diviso in senso orizzontale e, dal punto di vista mnemonico, rappresenta tutte le istruzioni comprese tra un'istruzione LD/LD NOT e l'istruzione di uscita che precede immediatamente le istruzioni LD/LD NOT successive. Il rung di un programma è costituito da blocchi di istruzioni che iniziano con un'istruzione LD/LD NOT indicante un inizio logico.
Linea di collega­mento
Istruzione speciale
Bit di uscita
Barra di distribuzione destra
Rung
Blocco di istruzioni
Codici mnemonici Un programma mnemonico è dato da una serie di istruzioni ladder fornite in
forma mnemonica ed è costituito da indirizzi di programma. Un indirizzo di programma equivale a un'istruzione e contiene sei cifre, a partire da 000000.
Esempio
Indirizzo di programma Istruzione (codice
mnemonico)
000000 LD 000000 000001 AND 000001 000002 LD 000002 000003 AND NOT 000003 000004 LD NOT 000100 000005 AND 000101 000006 OR LD 000007 AND LD 000008 OUT 000200 000009 END
Operando
43
Concetti di base Capitolo 2-1
Concetti di base relativi ai programmi ladder
1,2,3... 1. Quando i diagrammi ladder vengono eseguiti dai PLC, il flusso del segnale
(flusso logico di alimentazione) è sempre da sinistra a destra. Non è possibile utilizzare una programmazione che richieda un flusso logico di alimentazione da destra a sinistra. Il flusso risulta quindi diverso rispetto a quando i circuiti sono costituiti da relè di controllo cablati. Ad esempio, se il circuito "a" viene implementato in un programma PLC, l'alimentazione fluisce come se i diodi tra parentesi fossero inseriti e la bobina R2 non potesse essere azionata tramite il contatto D incluso. L'effettivo ordine di esecuzione è indicato dai codici mnemonici sulla destra. Per ottenere un funzionamento senza tali diodi immaginari, è necessario riscrivere il circuito. Inoltre, neanche il flusso logico di alimentazione "b" può essere programmato direttamente e deve quindi essere riscritto.
Circuito "a"
(1)
A
Flusso del segnale
(2) ((3)) (4)
C
((8))
(6)
B
((5))
D
(9)
E
(7)
R1
(10)
R2
Ordine di esecuzione (codici mnemonici) (1) LD A (2) LD C (3) OUT TR0 (4) AND D (5) OR LD
(6) AND B (7) OUT R1 (8) LD TR0 (9) AND E (10) OUT R2
Circuito "b"
A
C D
B
R1
E
R2
Nel circuito "a" la bobina R2 non può essere azionata tramite il contatto D incluso.
Nel circuito "b" il contatto E incluso non può essere scritto in un diagramma ladder. È quindi necessario riscrivere il programma.
2. Non esistono limiti al numero di bit di I/O, bit di lavoro, temporizzatori e altri bit di ingresso che è possibile utilizzare. Tuttavia, è consigliabile mantenere i rung il più possibile semplici e chiari in modo da agevolarne la comprensione e la gestione, anche se ciò implica l'utilizzo di un maggior numero di bit di ingresso.
3. Non esistono limiti al numero di bit di ingresso che è possibile collegare in serie o in parallelo all'interno di rung anch'essi in serie o in parallelo.
4. È possibile collegare in parallelo due o più bit di uscita.
44
0000
00
0000
05
TIM 0000 #0100
0002
00
Concetti di base Capitolo 2-1
5. I bit di uscita possono anche essere utilizzati come bit di ingresso.
0002
00
0002
00
Restrizioni
1,2,3... 1. È necessario chiudere il programma ladder in modo da consentire il pas-
saggio dei segnali (flusso logico di alimentazione) dalla barra di distribu­zione sinistra alla barra di distribuzione destra. Se il programma non viene chiuso, si verificherà un errore di rung. Sarà tuttavia possibile eseguire il programma.
2. Non è possibile collegare bit di uscita, temporizzatori, contatori e altre istruzioni di uscita direttamente alla barra di distribuzione sinistra. Se uno di questi elementi viene collegato direttamente alla barra di distribuzione sinistra, durante la verifica del programma mediante un dispositivo di programmazione si verificherà un errore di rung. Sarà possibile eseguire il programma ma le istruzioni OUT e MOV(021) non verranno eseguite.
È necessario fornire la condizione di ingresso.
MOV
Se è necessario mantenere sempre attivato l'ingresso, inserire un bit di lavoro NC non utilizzato o un flag di condizione ON (flag di attivazione permanente).
Bit di lavoro inutilizzato
ON (flag di attivazione permanente)
MOV
45
Concetti di base Capitolo 2-1
3. È necessario che il bit di ingresso venga inserito sempre prima e mai dopo un'istruzione di uscita, al contrario dei bit di uscita. Se viene inserito dopo un'istruzione di uscita, durante la verifica del programma mediante un dispositivo di programmazione si verificherà un errore di posizione.
0000
00
0000
01
0002
01
0000
03
0002
01
0000
04
4. Non è possibile programmare lo stesso bit di uscita in un'istruzione di uscita più di una volta. Le istruzioni di un programma ladder vengono eseguite nell'ordine a partire dal primo rung in un singolo ciclo, in modo che il risultato dell'istruzione di uscita nei rung inferiori venga riflesso nel bit di uscita e che i risultati delle eventuali istruzioni precedenti che controllano il medesimo bit vengano sovrascritti e non emessi.
(Bit di uscita)
0000
00
(Bit di uscita)
0000
00
5. Non è possibile utilizzare un bit di ingresso in un'istruzione OUTPUT (OUT).
(Bit di ingresso)
0000
00
46
6. È necessario inserire un'istruzione END(001) al termine del programma in ogni task.
• Se viene avviata l'esecuzione di un programma privo di istruzione END(001), si verificherà un errore di programma indicante l'assenza dell'istruzione END, l'indicatore ERR/ALM sul pannello anteriore della CPU si accenderà e il programma non verrà eseguito.
• Se vengono inserite più istruzioni END(001), il programma verrà eseguito solo fino alla prima istruzione END(001).
Concetti di base Capitolo 2-1
• Per rendere più agevole il debug dei programmi, è possibile inserire un'istruzione END(001) in diversi punti di interruzione nella sequenza di rung, quindi eliminare le istruzioni END(001) intermedie dopo la verifica del programma.
Task (programma)
000000 000001
END
Task (programma)
000000 000001
END
Task (programma)
000000 000001
END
2-1-13 Immissione di codici mnemonici
Un inizio logico viene creato utilizzando un'istruzione LD/LD NOT. L'area compresa tra l'inizio logico e l'istruzione immediatamente precedente all'istruzione LD/LD NOT successiva viene considerata come singolo blocco di istruzioni.
Creare un singolo rung costituito da due blocchi di istruzioni e utilizzare un'istruzione AND LD per collegare i blocchi con un AND logico o un'istruzione OR LD per collegare i blocchi con un OR logico. La procedura di immissione dei codici mnemonici (ordine e riepilogo dei rung) è illustrata nell'esempio di rung complesso fornito di seguito.
Task (programma)
000000 000001
END
END
Task (programma)
000000 000001
END
END
Task (programma)
000000 000001
END
Non verrà eseguito.
Non verrà eseguito.
47
Concetti di base Capitolo 2-1
1,2,3... 1. Suddividere innanzitutto il rung in blocchi di piccole dimensioni da (a) a (f).
0000000000
01
0010
0010
00
01
0005
00
0000000000
(a)
0010000010
(b)
(c)
(1)
0005
(2)
0000
0000
03
02
01
01
(d)
0000
02
0000040000
0000
06
0000
03
05
0000040000
(e)
0005
00
05
(5)
0000
(f)
06
00
(4)
(3)
48
Concetti di base Capitolo 2-1
• Programmare i blocchi dall'alto verso il basso e da sinistra a destra.
0000
(a)
00
LD 000000 AND 000001
0000
01
OR LD
0010
(b)
00
LD 001000 AND 001001
0010
01
(1)
(2)
0005
(c)
00
OR 000500
0000
(a)
AND 000002 AND NOT 000003
Indirizzo
000200 LD 000000
(a)
000201 AND 000001 000202 LD 001000
(b)
000203 AND 001001
0000
02
03
Istruzione Operando
000204 OR LD ---
(c)
000205 OR 000500 000206 AND 000002
(d)
000207 AND NOT 000003 000208 LD 000004
(e)
000209 AND 000005
(f)
000210 OR 000006 000211 AND LD ---
000212 OUT 000500
AND LD
0005
00
OUT 000500
(3)
(1)
(c)
0000040000
LD 000004 AND 000005
(f)
OR 000006
(2)
0000
06
05
(5)
(4)
(3)
(5)
(4)
49
Concetti di base Capitolo 2-1
2-1-14 Esempi di programmazione
1,2,3... 1. Rung in parallelo/in serie
0000000000010000
0002
00
ab
Blocco A Blocco B
Programmare le istruzioni parallele nel blocco A e nel blocco B.
2. Rung in serie/in parallelo
0000
0000
00
01
a b
Blocco A
02
0000
02
0002
01
0000
04
Blocco B
0000
0000
03
03
0002
0002
01
00
Istruzione Operandi
LD AND OR AND AND NOT OUT
000000 000001 000200 000002 000003 000200
Istruzione Operandi
LD AND NOT
LD AND OR OR
000000 000001 000002 000003 000201 000004
a
b
a
b
AND LD --­OUT
000201
• Separare il rung nei blocchi A e B e programmare ciascuno blocco singolarmente.
• Collegare i blocchi A e B con un'istruzione AND LD.
• Programmare il blocco A.
b
1
Blocco B1
0000000000010000
02
0000
04
0000
0002
b
2
Blocco B2
ab
Blocco A
Blocco B
03
02
0002
02
Istruzione Operandi
LD NOT AND LD
AND NOT LD NOT AND
000000 000001
000002 000003 000004
000202
OR LD --­AND LD --­OUT
000202
• Programmare il blocco B1 e poi il blocco B2.
• Collegare i blocchi B1 e B2 con un'istruzione OR LD, quindi collegare i blocchi A e B con un'istruzione AND LD.
a
b
1
b
2
b1 + b a b
2
50
Concetti di base Capitolo 2-1
3. Esempio di collegamento in serie all'interno di un rung in serie
a
1
Blocco A1
0000
0000
01
00
0002
0000
03
02
a
2
b
1
Blocco B1
0000
0000
04
05
0002
0002
07
06
b
2
0002
03
Blocco A2 Blocco B2
a b
Blocco A Blocco B
Programmare il blocco A i blocchi A
e A2 con un'istruzione OR LD.
1
Programmare i blocchi B
, programmare il blocco A2, quindi collegare
1
e B2 nello stesso modo.
1
Collegare i blocchi A e B con un'istruzione AND LD.
Ripetere per tutti i blocchi, dal blocco A al blocco n.
Istruzione Operandi
LD AND NOT LD NOT AND
000000 000001
000002
000003 OR LD --­LD AND LD AND
000004
000005
000006
000007 OR LD --­AND LD --­OUT
000203
a
1
a
2
a1 + a
b
1
b
2
b1 + b a • b
2
2
0005
00
a b
c n
Blocco A Blocco B Blocco C Blocco n
51
Concetti di base Capitolo 2-1
4. Rung complessi
0000
00
0000
04
0000
06
0000
01
0000
02
0000
05
0000
07
0000
03
0002
04
Istruzione
Operando
LD LD
LD AND OR LD --­AND LD --­LD AND OR LD --­LD AND OR LD --­OUT
000000 000001 000002 000003
000004 000005
000006 000007
000204
0000
00
Z
Il secondo diagramma è basato sul primo.
0000
00
È possibile riscrivere un programma più semplice come illustrato di seguito.
0000
02
0000
01
0000
03
0000
0000
Z
01
0000
03
02
Z
0000
00
b
0000
00
ad
Blocco Blocco
Blocco
0000
01
0000
03
Blocco
0000
02
0000
04
c
0000
05
0000060000
07
e
0002 04
Blocco
È possibile riscrivere il rung precedente come illustrato di seguito.
0000
00
0000
00
0000
00
0000
01
0000
03
0000
03
0000
02
0000
04
0000
04
0000
05
0000
06
0000
07
0002
05
Istruzione
Operando
LD LD NOT AND LD AND NOT LD LD AND NOT OR LD ---
AND LD ---
OR LD --­AND LD --­OUT
000000 000001 000002 000003 000004 000005 000006 000007
000205
a
b
c
d
e
d + e (d + e) · c
(d + e) · c + b ((d + e) · c + b) · a
52
Concetti di base Capitolo 2-1
Ingresso di reset
0000
00
0000
01
0000
02
H00000
0000
03
Ingresso errore
TIM 0001 #0100
T0001
H00000
0002
06
10 sec
Istruzione
LD OR OR OR
AND NOT OUT
TIM
Operando
000000 000001 000002
H00000 000003 H00000 0001 0100
Visualizzazione errore
AND OUT
T0001 000206
Se si utilizza un bit a ritenzione, lo stato ON/OFF verrà mantenuto in memoria anche in caso di spegnimento e alla riaccensione il segnale di errore sarà ancora presente.
5. Rung che richiedono particolare cautela o riscrittura
Istruzioni OR e OL LD
Con un'istruzione OR o OR NOT, viene eseguito un OR dei risultati della logica ladder inviati dall'istruzione LD o LD NOT all'istruzione OR o OR NOT, in modo che i rung possano essere sovrascritti e che l'istruzione OR LD non sia necessaria.
0000
00
0002
07
0000
01
0002
07
0002
07
0000
01
0002
07
0000
00
Esempio Se i rung vengono programmati come indicato senza apportare alcuna modifica, sarà necessario usare un'istruzione OR LD. È possibile rimuovere alcuni step riscrivendo i rung come illustrato di seguito.
Diramazioni di istruzioni di uscita
È necessario usare un bit TR in presenza di una diramazione prima di un'istruzione AND o AND NOT. Non è però necessario ricorrere all'uso di un bit TR se il punto di diramazione è collegato direttamente alle istruzioni di uscita e l'istruzione AND o AND NOT o le istruzioni di uscita possono continuare senza modifiche.
Istruzione di uscita 1
0000
00
TR0
0000
01
0002
08
0002
09
0000
00
0000
01
0002
09
0002
08
Istruzione di uscita 2
Esempio Se i rung vengono programmati senza apportare alcuna modifica, nel punto di diramazione sarà necessario usare un'istruzione di caricamento (LD) e un'istruzione di uscita per il bit TR0 di memorizzazione temporanea. È possibile rimuovere alcuni step riscrivendo i rung.
53
Concetti di base Capitolo 2-1
Ordine di esecuzione in base ai codici mnemonici
I PLC eseguono i programmi ladder nell'ordine di immissione dei codici mnemonici, quindi le istruzioni potrebbero avere effetti inattesi, a seconda delle modalità di scrittura dei rung. Quando si scrivono diagrammi ladder, tenere sempre presente l'ordine di esecuzione dei codici mnemonici.
0000
00
0010
00
0010
00
0002
10
0000
00
0000
00
0010
00
0002
10
0010
00
Esempio Nel diagramma precedente non è possibile emettere CIO 000210, ma è possibile attivare CIO 000210 per un ciclo riscrivendo il rung, come illustrato sopra.
Rung che devono essere riscritti
I PLC eseguono le istruzioni nell'ordine di immissione dei codici mnemonici, quindi il flusso del segnale (flusso logico di alimentazione) risulta da sinistra a destra nel diagramma ladder. Non è possibile utilizzare una programmazione con flusso logico di alimentazione da destra a sinistra.
0000
00
0000
01
TR0
0000
02
0000
04
0000030002
11
0002
12
0000
01
0000
00
0000
01
0000
02
0000
04
0000
0002
03
11
0002
12
Esempio È però possibile scrivere il programma come illustrato nel dia­gramma a sinistra dove TR0 riceve il punto di diramazione. È tuttavia possibile ottenere il medesimo valore con i rung a destra, che risultano di più facile comprensione. È quindi consigliabile riscrivere i rung sulla sinistra come illu­strato a destra.
Riscrivere i rung illustrati di seguito sulla sinistra in quanto non è possibile eseguirli.
Le frecce illustrano il flusso del segnale (flusso logico di alimentazione) quando i rung sono costituiti da relè di controllo.
A
A
C
B
R1
E
D
R2
C
ACE
E
B
R1
D
R2
54
Precauzioni Capitolo 2-2

2-2 Precauzioni

2-2-1 Flag di condizione
Utilizzo dei flag di condizione
I flag di condizione sono condivisi da tutte le istruzioni e possono variare durante un ciclo a seconda dei risultati di esecuzione delle singole istruzioni. Assicurarsi pertanto di utilizzare i flag di condizione su un'uscita con dirama­zione avente la stessa condizione di esecuzione immediatamente dopo un'istruzione, in modo da riflettere i risultati di esecuzione di tale istruzione. Non collegare mai un flag di condizione direttamente a una barra di distribu­zione, in quanto verrebbero riflessi i risultati di esecuzione di altre istruzioni.
Esempio Utilizzo dei risultati di esecuzione dell'istruzione A
Utilizzo corretto
Codice mnemonico
Istruzione
LD a Istruzione
AND = Istruzione
Operando
A
B
Flag di condizione Esempio =
Istruzione A
Riflette i risultati di esecuzione dell'istruzione A.
Istruzione B
Affinché l'istruzione B venga eseguita sulla base dei risultati di esecuzione dell'istruzione A, viene utilizzata la stessa condizione di esecuzione (a) per le istruzioni A e B. In questo caso, l'istruzione B verrà eseguita in base al flag di condizione soltanto se viene eseguita l'istruzione A.
Utilizzo errato
Rung precedente
Istruzione A
Riflette i risultati di esecuzione del rung precedente se l'istru-
Flag di condizione Esempio =
zione A non è stata eseguita.
Istruzione B
Se il flag di condizione viene collegato direttamente alla barra di distribuzione sinistra, l'istruzione B verrà eseguita sulla base dei risultati di esecuzione di un rung precedente qualora l'istruzione A non venga eseguita.
Nota I flag di condizione vengono utilizzati da tutte le istruzioni all'interno di un sin-
golo programma (task) ma vengono cancellati quando si passa a un nuovo task. Pertanto, i risultati di esecuzione del task precedente non verranno riflessi nei task successivi. Poiché i flag di condizione sono condivisi da tutte le istruzioni, è essenziale garantire che non vi siano interferenze reciproche all'interno di un singolo programma a diagramma ladder. Di seguito viene for­nito un esempio.
55
Precauzioni Capitolo 2-2
Utilizzo dei risultati di esecuzione negli ingressi NA e NC
Sebbene i bit di ingresso NC e NA vengano eseguiti dallo stesso ramo di uscita, i flag di condizione assumeranno i risultati di esecuzione dell'istruzione B, come illustrato nell'esempio riportato di seguito.
Istruzione A
Utilizzo errato
Flag di condizione Esempio =
Flag di condizione Esempio =
Accertarsi che ciascun risultato venga assunto una sola volta da un'istruzione OUTPUT per garantire che non vengano assunti i risultati di esecuzione dell'istruzione B.
Riflette i risultati di esecuzione dell'istruzione A.
Istruzione B
Riflette i risultati di esecuzione dell'istruzione B.
Utilizzo corretto
Riflette i risultati di esecuzione dell'istru­zione A.
Flag di condizione Esempio =
Flag di condizione Esempio =
Istruzione A
Riflette i risultati di ese­cuzione dell'istruzione A.
Istruzione B
56
Precauzioni Capitolo 2-2
Ad esempio, Nell'esempio seguente #0200 viene spostato in D00200 se
D00100 contiene #0010, e #0300 viene spostato in D00300 se D00100 non contiene #0010.
Utilizzo errato
Riflette i risultati di esecuzione dell'istruzione CMP.
(1)
Riflette i risultati di esecuzione dell'istruzione MOV.
(2)
Se nel rung sopra indicato D00100 contiene #0010, viene attivato il flag di uguaglianza e #0200 viene spostato in D00200 per l'istruzione al punto (1). Successivamente, però, il flag di uguaglianza viene disattivato in quanto i dati di origine #0200 non corrispondono a 0000 esadecimale. L'istruzione MOV al punto (2) verrà quindi eseguita e #0300 verrà spostato in D0300. Per impedire che vengano assunti i risultati di esecuzione relativi alla prima istruzione MOVE, è pertanto necessario inserire un rung come illustrato di seguito.
Utilizzo corretto
Riflette i risultati di esecuzione dell'istruzione CMP.
57
Precauzioni Capitolo 2-2
Utilizzo dei risultati di esecuzione di istruzioni differenziate
Per quanto riguarda le istruzioni differenziate, i risultati di esecuzione delle istruzioni vengono riflessi nei flag di condizione solo quando viene soddisfatta la condizione di esecuzione, mentre nei flag di condizione del ciclo succes­sivo verranno riflessi i risultati relativi a un rung precedente anziché i risultati di esecuzione delle istruzioni differenziate. Occorre pertanto conoscere il comportamento dei flag di condizione nel ciclo successivo nel caso in cui sia necessario utilizzare i risultati di esecuzione delle istruzioni differenziate.
Nell'esempio riportato di seguito le istruzioni A e B verranno eseguite solo se viene soddisfatta la condizione di esecuzione C. Tuttavia, quando l'istruzione B assume i risultati di esecuzione dell'istruzione A, si verifica il seguente errore: se la condizione di esecuzione C rimane attiva nel ciclo successivo dopo l'ese­cuzione dell'istruzione A, quando lo stato del flag di condizione passa da OFF a ON a causa dei risultati riflessi da un rung precedente, l'istruzione B verrà ina­spettatamente eseguita (in base alla condizione di esecuzione).
Rung precedente
Rung precedente
Utilizzo errato
Istruzione A
Istruzione A
Riflette i risultati di esecuzione dell'istruzione
Riflette i risultati di esecuzione dell'istruzione A quando la condizione è soddisfatta.
A quando la condizione è soddisfatta. Riflette i risultati di esecuzione di un rung
Esempio di flag
Esempio di flag di condizione: =
di condizione: =
Riflette i risultati di esecuzione di un rung precedente nel ciclo successivo.
precedente nel ciclo successivo.
Istruzione B
Istruzione B
In questo caso, invece, le istruzioni A e B non sono istruzioni differenziate e viene quindi utilizzata l'istruzione DIFU (o DIFD) per determinare la differen­ziazione up (o down) per entrambe le istruzioni A e B, le quali verranno ese­guite per un solo ciclo.
Utilizzo corretto
Nota Le CPU CS1-H, CJ1-H, CJ1M o CS1D supportano istruzioni per il salvataggio
e il caricamento dello stato dei flag di condizione, rispettivamente CCS(282) e CCL(283). Tali istruzioni consentono di accedere allo stato dei flag di condizione da altre posizioni all'interno di un task o in un task diverso.
Principali condizioni di attivazione dei flag di condizione
Flag di errore
Il flag ER viene attivato in condizioni speciali, ad esempio quando i dati degli operandi di un'istruzione non sono corretti. Quando il flag ER è attivato, l'istru­zione non viene eseguita.
Rung precedente
Istruzione A
Riflette i risultati di esecuzione dell'istruzione A.
Esempio di flag di condizione: =
Istruzione B
58
Precauzioni Capitolo 2-2
Quando il flag ER è attivato, lo stato degli altri flag di condizione, quali i flag <, >, OF e UF, rimane invariato e lo stato dei flag = e N varierà in base alle istruzioni.
Per informazioni sulle condizioni che causano l'attivazione del flag ER, fare riferimento alla descrizione delle singole istruzioni nel manuale CS/CJ-series Programmable Controllers Instructions Reference Manual (W340). È neces­sario prestare particolare attenzione in quanto alcune istruzioni comportano la disattivazione del flag ER indipendentemente dalle condizioni.
Nota Le impostazioni di configurazione del PLC relative alle condizioni di errore
delle istruzioni determinano se il funzionamento debba essere interrotto quando il flag ER viene attivato. Per impostazione predefinita, il funziona­mento non viene interrotto all'attivazione del flag ER. Se viene specificato di interrompere il funzionamento all'attivazione del flag ER e il funzionamento si interrompe (comportamento considerato come errore di programma), l'indi­rizzo del programma corrispondente al punto in cui il funzionamento è stato interrotto verrà memorizzato in A298 e A299. Contemporaneamente, verrà attivato il flag A29508 (flag di errore di elaborazione istruzione).
flag di uguaglianza
Il flag di uguaglianza è un flag temporaneo per tutte le istruzioni, tranne quando i risultati di confronto sono uguali (=). Viene impostato automaticamente dal sistema e modificato di conseguenza. È possibile disattivare (o attivare) un flag di uguaglianza mediante un'istruzione dopo che è stato attivato (o disattivato) da un'istruzione precedente. Il flag di uguaglianza viene ad esempio attivato quando 0000 esadecimale viene spostato come dato di origine mediante l'istru­zione MOV o un'altra istruzione di spostamento, e viene disattivato in tutte le altre condizioni. Anche se il flag di uguaglianza viene attivato da un'istruzione, l'istruzione di spostamento verrà eseguita immediatamente e il flag di ugua­glianza verrà attivato o disattivato a seconda che i dati di origine per l'istruzione di spostamento corrispondano o meno a 0000 esadecimale.
Flag di riporto
Il flag CY viene utilizzato nelle istruzioni di scorrimento, nelle istruzioni di addizione e sottrazione con ingresso di riporto, nei prestiti e nei riporti delle istruzioni di addizione e sottrazione, nonché nelle istruzioni del Modulo di I/O speciale, nelle istruzioni PID e nelle istruzioni FPD. Osservare le precauzioni riportate di seguito.
Nota 1. È possibile che il flag CY rimanga attivato (o disattivato) in seguito ai
risultati di esecuzione di una determinata istruzione e venga successivamente utilizzato in altre istruzioni (un'istruzione di addizione e sottrazione con riporto o un'istruzione di scorrimento). Assicurarsi di cancellare il flag di riporto quando necessario.
2. Il flag CY può venire attivato (o disattivato) in base ai risultati di esecuzione di una determinata istruzione e venire disattivato (o attivato) da un'altra istruzio­ne. Accertarsi che il flag di riporto rifletta i risultati corretti quando lo si utilizza.
Flag < (minore di) e flag > (maggiore di)
I flag < e > vengono utilizzati nelle istruzioni di confronto, oltre che in LMT, BAND, ZONE, PID e in altre istruzioni. Il flag < o > può essere disattivato (o attivato) da un'altra istruzione anche se è stato attivato (o disattivato) in base ai risultati dell'esecuzione di una determinata istruzione.
Flag negativo
Il flag N viene disattivato quando il bit all'estrema sinistra del canale dei risultati di esecuzione di un'istruzione è "1" per determinate istruzioni e viene disattivato incondizionatamente per altre istruzioni.
59
Precauzioni Capitolo 2-2
Specifica degli operandi per più canali
Con i PLC delle serie CS e CJ, un'istruzione viene eseguita così come è stata scritta, anche se viene specificato un operando che richiede più canali e i canali si trovano in aree diverse. In questo caso, i canali verranno presi in base all'ordine degli indirizzi di memoria del PLC. Il flag di errore non verrà attivato.
Si considerino ad esempio i risultati dell'esecuzione di un trasferimento di blocchi mediante l'istruzione XFER(070), per il quale vengono specificati 20 canali a partire da W500. In tal caso, il limite dell'area di lavoro, che termina con il canale W511, viene superato, ma l'istruzione verrà eseguita senza attivare il flag di errore. Negli indirizzi di memoria del PLC i valori attuali dei temporizzatori vengono mantenuti in memoria nei canali successivi all'area di lavoro e, di conseguenza, in base all'istruzione, i valori nei canali da W500 a W511 verranno trasferiti negli indirizzi da D00000 a D00011 mentre i valori attuali dell'intervallo da T0000 a T0007 verranno trasferiti negli indirizzi da D00012 a D00019.
Nota Per informazioni su indirizzi di memoria specifici del PLC, fare riferimento
all'appendice Mappa degli indirizzi di memoria del PLC.
W500
a
a
a
a
&10
Numero di canali
Primo canale sorgente Primo canale di
destinazione
a
W511
T0000
a
a
a
Trasfe­riti
2-2-2 Sezioni di programma speciali
I programmi per i PLC delle serie CS e CJ contengono sezioni speciali che consentono di controllare le condizioni delle istruzioni. Di seguito sono riportate le sezioni di programma speciali disponibili.
Sezione di programma Istruzioni Condizione di istruzione Stato
Subroutine Istruzioni SBS, SBN e RET Viene eseguito il programma
Sezione IL-ILC Istruzioni IL e ILC La sezione viene Sezione ladder con struttura
a step
Ciclo FOR-NEXT Istruzioni FOR e NEXT Interruzione in corso. Esecuzione di cicli Sezione JMP0-JME0 Istruzioni JMP0 e JME0 Salto Sezione di programma a
blocchi
Istruzioni STEP S e STEP
Istruzioni BPRG e BEND Viene eseguito il programma
di subroutine.
interbloccata.
a blocchi.
Combinazioni di istruzioni
Nella tabella riportata di seguito vengono illustrati i tipi di istruzioni speciali che è possibile utilizzare all'interno di altre sezioni del programma.
Viene eseguita la sezione di programma di subroutine compresa tra le istruzioni SBN e RET.
I bit di uscita vengono disattivati e i temporizzatori reimpostati. Non verranno eseguite altre istruzioni e verrà mantenuto lo stato precedente.
Viene eseguito il programma a blocchi elencato nei codici mnemonici posizionati tra le istruzioni BPRG e BEND.
60
Precauzioni Capitolo 2-2
Subroutine Sezione IL-ILC Sezione ladder
Subroutine Non consentito Non consentito Non consentito Non consentito Non consentito Non consentito IL-ILC OK Non consentito Non consentito OK OK Non consentito
Sezione ladder con struttura a step
Ciclo FOR­NEXT
JMP0-JME0 OK OK Non consentito Non consentito Non consentito Non consentito
Sezione di pro­gramma a blocchi
Non consentito OK Non consentito Non consentito OK Non consentito
OK OK Non consentito OK OK Non consentito
OK OK OK Non consentito OK Non consentito
con struttura a
step
Ciclo
FOR-NEXT
Sezione
JMP0-JME0
Sezione di
programma a
blocchi
Nota Non è possibile utilizzare istruzioni che specificano aree di programma per
programmi all'interno di altri task. Per ulteriori informazioni, fare riferimento al capitolo 4-2-2 Limitazioni relative alle istruzioni dei task.
Subroutine Tutte le subroutine devono essere raggruppate e posizionate immediata-
mente prima dell'istruzione END(001), ma dopo una sezione di programma­zione diversa da una subroutine, in tutti i programmi. Pertanto, non è possibile inserire una subroutine all'interno di una sezione ladder con struttura a step, un programma a blocchi, un ciclo FOR–NEXT o una sezione JMP0-JME0. Se un programma diverso da una subroutine viene inserito dopo il programma di subroutine (da SBN a RET), tale programma non verrà eseguito.
Istruzioni non disponibili nelle subroutine
Programma
Subroutine
Programma
Subroutine
Non è possibile inserire in una subroutine le istruzioni riportate di seguito.
Funzione Codice mnemonico Istruzione
Controllo degli step di processo
STEP(008) Definizione di una sezione
ladder con struttura a step
SNXT(009) Esecuzione del programma
ladder con struttura a step un'istruzione alla volta
Nota Sezioni di programma a blocchi
Una subroutine può includere una sezione di programma a blocchi. Se tuttavia il programma a blocchi è in stato di attesa (WAIT) quando si passa dall'esecuzione della subroutine all'esecuzione del programma principale, la sezione di pro­gramma a blocchi resterà in stato di attesa al successivo richiamo.
61
Precauzioni Capitolo 2-2
Istruzioni non disponibili nelle sezioni di programma ladder con struttura a step
Funzione Codice mnemonico Istruzione
Controllo della sequenza
Subroutine SBN(092) e RET(093) SUBROUTINE ENTRY e
Programmi a blocchi IF(802) (NOT), ELSE(803) e
FOR(512), NEXT(513) e BREAK(514)
END (001) END IL(002) e ILC(003) INTERLOCK e INTERLOCK
JMP(004) e JME(005) JUMP e JUMP END CJP(510) e CJPN(511) CONDITIONAL JUMP e
JMP0(515) e JME0(516) MULTIPLE JUMP e
IEND(804) BPRG(096) e BEND(801) BLOCK PROGRAM BEGIN/
EXIT(806) (NOT) CONDITIONAL BLOCK EXIT
LOOP(809) e LEND(810) (NOT)
WAIT(805) (NOT) ONE CYCLE WAIT (NOT) TIMW(813) TIMER WAIT TMHW(815) HIGH-SPEED TIMER WAIT CNTW(814) COUNTER WAIT BPPS(811) e BPRS(812) BLOCK PROGRAM PAUSE e
FOR, NEXT e BREAK LOOP
CLEAR
CONDITIONAL JUMP NOT
MULTIPLE JUMP END
SUBROUTINE RETURN Istruzioni di diramazione
END
(NOT) Controllo dei cicli
RESTART
Nota 1. È possibile utilizzare una sezione di programma ladder con struttura a step
in una sezione di interblocco (tra IL e ILC). Quando l'interblocco viene attivato, la sezione ladder con struttura a step viene completamente reimpostata.
2. È possibile inserire una sezione di programma ladder con struttura a step tra le istruzioni MULTIPLE JUMP (JMP0) e MULTIPLE JUMP END (JME0).
62
Precauzioni Capitolo 2-2
Istruzioni non disponibili nelle sezioni di programma a blocchi
Non è possibile inserire nelle sezioni di programma a blocchi le istruzioni riportate di seguito.
Classificazione in base
alla funzione
Controllo della sequenza FOR(512), NEXT(513) e
Ingresso sequenza UP(521) CONDITION ON
Uscita sequenza DIFU DIFFERENTIATE UP
Temporizzatore/contatore TIM TIMER
Subroutine SBN(092) e RET(093) SUBROUTINE ENTRY e
Scorrimento di dati SFT SHIFT Controllo degli step del
programma ladder Controllo di dati PID PID CONTROL Programma a blocchi BPRG(096) BLOCK PROGRAM
Diagnosi dei danni FPD(269) FAILURE POINT
Codice mnemonico Istruzione
FOR, NEXT e BREAK
BREAK(514) END (001) END IL(002) e ILC(003) INTERLOCK e
JMP0(515) e JME0(516) MULTIPLE JUMP e
DOWN(522) CONDITION OFF
DIFD DIFFERENTIATE DOWN KEEP KEEP OUT OUTPUT OUT NOT OUTPUT NOT
TIMH HIGH-SPEED TIMER TMHH(540) ONE-MS TIMER TTIM(087) ACCUMULATIVE TIMER TIML(542) LONG TIMER MTIM(543) MULTI-OUTPUT TIMER CNT COUNTER CNTR REVERSIBLE COUNTER
STEP(008) e SNXT(009) STEP DEFINE e STEP
LOOP
INTERLOCK CLEAR
MULTIPLE JUMP END
SUBROUTINE RETURN
START
BEGIN
DETECTION
Nota 1. È possibile utilizzare programmi a blocchi in una sezione di programma
ladder con struttura a step.
2. È possibile utilizzare un programma a blocchi in una sezione di interblocco (tra IL e ILC). Quando l'interblocco viene attivato, la sezione del programma a blocchi non viene eseguita.
3. È possibile inserire una sezione di programma a blocchi tra le istruzioni MULTIPLE JUMP (JMP0) e MULTIPLE JUMP END (JME0).
4. È possibile utilizzare le istruzioni JUMP (JMP) e CONDITIONAL JUMP (CJP/CJPN) in una sezione di programma a blocchi. Le istruzioni JUMP (JMP) e JUMP END (JME), nonché le istruzioni CONDITIONAL JUMP (CJP/CJPN) e JUMP END (JME), possono essere utilizzate nella sezione di programma a blocchi esclusivamente se specificate in coppia. In caso contrario, il programma non verrà eseguito in modo corretto.
63
Verifica dei programmi Capitolo 2-3

2-3 Verifica dei programmi

È possibile verificare la correttezza dei programmi per i PLC delle serie CS e CJ nelle seguenti fasi:
• Verifica degli ingressi durante le operazioni di immissione dalla Console di programmazione
• Verifica del programma tramite CX-Programmer
• Verifica delle istruzioni durante l'esecuzione
• Verifica degli errori fatali (errori di programma) durante l'esecuzione
2-3-1 Errori durante le operazioni di immissione da un dispositivo di
programmazione
Console di programmazione
Durante l'immissione, sulla Console di programmazione vengono visualizzati gli errori riportati di seguito.
Visualizzazione errore Causa
CHK MEM Il pin 1 del DIP switch della CPU è posizionato su ON
IO No. ERR Si è tentato di immettere dati di I/O non validi.
CX-Programmer
Il programma viene automaticamente verificato da CX-Programmer durante le seguenti fasi.
Operazione Contenuto controllato
Immissione di diagrammi ladder
Caricamento dei file Tutti gli operandi per tutte le istruzioni e tutte le sequenze di
Scaricamento dei file Modelli supportati dalla serie CS/CJ e tutti gli operandi per
Modifica in linea Capacità ecc.
(protezione da scrittura).
Ingressi di istruzioni, ingressi di operandi, sequenze di programmazione
programmazione
tutte le istruzioni
I risultati della verifica vengono inviati alla scheda Text (Testo) della finestra di output. Inoltre, la barra di distribuzione sinistra corrispondente alle sezioni di programma non valide verrà visualizzata in rosso nella visualizzazione del diagramma ladder.
2-3-2 Verifica del programma tramite CX-Programmer
Nella tabella riportata di seguito sono elencati di errori rilevati dalla funzione di verifica dei programmi di CX-Programmer.
CX-Programmer non controlla gli errori di intervallo relativi agli operandi indirizzati in modo indiretto nelle istruzioni. Gli errori di indirizzamento indiretto verranno rilevati durante la verifica del programma in fase di esecuzione e verrà attivato il flag ER, come descritto nella sezione successiva. Per ulteriori informazioni, fare riferimento al manuale CS/CJ- series Programmable Controllers Instructions Reference Manual (W340).
Quando il programma viene verificato in CX-Programmer, l'operatore può impostare i livelli di verifica A, B e C (in ordine di gravità dell'errore) nonché un livello di verifica personalizzato.
64
Verifica dei programmi Capitolo 2-3
Area Verifica
Dati non validi: diagramma ladder
Istruzioni supportate dal PLC
Intervalli degli operandi
Capacità di programma per il PLC
Sintassi Verifica delle chiamate per le istruzioni in coppia
Struttura del diagramma ladder
Duplicazione di uscite
Task Verifica dei task impostati per l'avvio all'inizio del
Posizione delle istruzioni Linee di I/O Collegamenti Completezza delle istruzioni e delle operazioni Istruzioni e operandi supportati dal PLC Variazioni di istruzioni (NOT, !, @ e %) Integrità del codice oggetto Intervalli delle aree degli operandi Tipi di dati degli operandi Verifica dell'accesso ai canali di sola lettura Le verifiche eseguite sugli intervalli degli operandi includono:
• Costanti (#, &, +, –)
• Codici di controllo
• Verifica dei limiti di area per gli operandi a più canali
• Verifica delle dimensioni per gli operandi a più canali
• Sovrapposizione degli intervalli degli operandi
• Assegnazioni multicanale
• Operandi a doppia lunghezza
• Verifica dei limiti di area per gli offset Numero di step Capacità totale Numero di task
•IL–ILC
• JMP–JME, CJP/CJPN-JME
• SBS–SBN–RET, MCRO–SBN–RET
• STEP–SNXT
• BPRG–BEND
•IF–IEND
• LOOP–LEND Posizioni di programmazione non consentite per BPRG–BEND Posizioni di programmazione non consentite per SBN–RET Posizioni di programmazione non consentite per STEP–SNXT Posizioni di programmazione non consentite per FOR–NEXT Posizioni di programmazione non consentite per i task ad interrupt Posizioni di programmazione obbligatorie per BPRG–BEND Posizioni di programmazione obbligatorie per FOR–NEXT Annidamento non valido Istruzione END(001) Coerenza dei numeri Overflow dello stack
Verifica delle uscite duplicate
•Per bit
• Per canale
• Istruzioni del temporizzatore/contatore
• Canali lunghi (2 canali e 4 canali)
• Canali multipli assegnati
• Intervalli di inizio/fine
• Numeri di FAL
• Istruzioni con più operandi di uscita
funzionamento Assegnazione di programmi di task
Nota La duplicazione delle uscite non viene verificata tra più task ma solo
all'interno di singoli task.
65
Verifica dei programmi Capitolo 2-3
Operandi a più canali Durante la verifica del programma, vengono controllati anche i limiti delle aree
di memoria per gli operandi a più canali, come illustrato nella tabella riportata di seguito.
CX-Programmer Console di
Per gli operandi a più canali che superano il limite di un'area di memoria, CX-Programmer fornisce le seguenti opzioni:
• Il programma non può essere trasferito sulla CPU.
• Il programma non può essere letto dalla CPU.
• Per la verifica del programma vengono generati errori di compilazione.
• Durante la programmazione in modalità non in linea vengono visualizzati dei messaggi di avviso.
• Durante la modifica in linea in modalità PROGRAM o MONITOR vengono visualizzati dei messaggi di avviso.
programmazione
La verifica viene eseguita durante l'immissione dei programmi, ovvero non è possibile scrivere operandi che superano il limite di un'area di memoria.
2-3-3 Verifica del programma in fase di esecuzione
I controlli relativi alla posizione degli operandi e delle istruzioni vengono ese­guiti durante le operazioni di immissione dal dispositivo di programmazione (Console di programmazione inclusa), nonché durante la verifica del pro­gramma dal dispositivo di programmazione (Console di programmazione esclusa). Tuttavia, questi controlli non sono definitivi.
Durante l'esecuzione delle istruzioni vengono effettuati i seguenti controlli.
Tipo di errore Flag attivato in seguito all'errore Continuazione/interruzione del
1. Errore di elaborazione dell'istruzione Flag ER Il flag di errore di elaborazione
istruzione(A29508) verrà attivato anche se si è specificato di interrompere il funzionamento in seguito a un errore.
2. Errore di accesso Flag AER Il flag di errore di accesso (A29510)
verrà attivato se si è specificato di interrompere il funzionamento quando si verifica un errore.
3. Errore di istruzione illegale Flag di errore di istruzione illegale (A29514)
4. Errore di overflow UM
(memoria utente)
Flag di errore di overflow UM (A29515) Errore fatale (errore di programma)
Errori di elaborazione delle istruzioni
Se durante l'esecuzione di un'istruzione vengono forniti dati non corretti o si tenta di eseguire un'istruzione all'esterno di un task, verrà generato un errore di elaborazione dell'istruzione. In tali circostanze, i dati richiesti all'inizio dell'elaborazione dell'istruzione vengono controllati e, se incorretti, l'istruzione non viene eseguita, viene attivato il flag ER (flag di errore) e i flag EQ e N pos­sono essere mantenuti o venire disattivati a seconda dell'istruzione.
funzionamento
È possibile specificare se proseguire o interrompere il funzionamento in seguito a errori di elaborazione delle istruzioni nella configurazione del PLC. Per impostazione predefinita, il funzionamento non viene interrotto.
Verrà generato un errore di programma e il funzionamento si interromperà solo se esplicitamente specificato.
È possibile specificare se proseguire o interrompere il funzionamento in seguito a errori di elaborazione delle istruzioni nella configurazione del PLC. Per impostazione predefinita, il funzionamento non viene interrotto.
Verrà generato un errore di programma e il funzionamento si interromperà solo se esplicitamente specificato.
Errore fatale (errore di programma)
66
Verifica dei programmi Capitolo 2-3
Il flag ER (flag di errore) verrà disattivato se l'istruzione, escluse le istruzioni di ingresso, viene completata correttamente. Le condizioni che comportano l'attivazione del flag ER variano a seconda delle istruzioni. Per ulteriori infor­mazioni, fare riferimento alle descrizioni delle singole istruzioni nel manuale CS/CJ-series Programmable Controllers Programming Manual (W340).
Se il PLC è impostato per interrompere il funzionamento in caso di errore di istruzione, il funzionamento verrà interrotto (errore fatale) e il flag di errore di elaborazione istruzione (A29508) verrà attivato nel caso in cui si verifichi un errore di elaborazione dell'istruzione e venga attivato il flag ER.
Errori di accesso illegale
Gli errori di accesso illegale indicano che, durante l'accesso all'indirizzo in cui è specificato l'operando dell'istruzione, è stato eseguito l'accesso a un'area errata utilizzando uno dei seguenti metodi:
a) È stata eseguita un'operazione di lettura o scrittura per un'area dei
parametri.
b) È stata eseguita un'operazione di scrittura in un'area di memoria non
installata (vedere nota).
c) È stata eseguita un'operazione di scrittura in un'area EM specificata
come memoria file nell'area EM. d) È stata eseguita un'operazione di scrittura in un'area di sola lettura. e) Il valore specificato in un indirizzo DM/EM indiretto in modalità BCD
non era in formato BCD (ad esempio, *D000001 contiene #A000).
Se si verifica un errore di accesso, l'elaborazione delle istruzioni prosegue e non verrà attivato il flag di errore (flag ER) bensì il flag di errore di accesso (flag AER).
Nota Un errore di accesso si verifica nei seguenti casi:
• Quando un indirizzo EM specificato è superiore a 32767 (esempio: E32768) per il banco corrente.
• Il banco finale (esempio: C) viene specificato per un indirizzo EM indiretto in modalità binaria e il canale specificato contiene un valore esadecimale compreso nell'intervallo da 8000 a FFFF (esempio: @EC_00001 contiene #8000).
• Il banco corrente (esempio: C) viene specificato per un indirizzo EM indiretto in modalità binaria e il canale specificato contiene un valore esadecimale compreso nell'intervallo da 8000 a FFFF (esempio: @EC_00001 contiene #8000).
• Un registro IR contenente l'indirizzo di memoria interna di un bit viene utilizzato come indirizzo di canale o un registro IR contenente l'indirizzo di memoria interna di un canale viene utilizzato come indirizzo di bit.
Se il PLC è impostato per interrompere il funzionamento in caso di errore di istruzione, il funzionamento verrà interrotto (errore fatale) e il flag di errore di accesso illegale (A29510) verrà attivato nel caso in cui si verifichi un errore di accesso illegale e venga attivato il flag AER.
Nota Il flag di errore di accesso (flag AER) non verrà cancellato dopo l'esecuzione
di un task. Se il PLC è impostato per non interrompere il funzionamento in caso di errore di istruzione, sarà possibile monitorare lo stato di questo flag fino al punto immediatamente precedente all'istruzione END(001) per deter­minare se si è verificato un errore di accesso illegale nel programma del task. Se il flag AER viene monitorato su una Console di programmazione, sarà possibile verificare lo stato del flag AER finale dopo l'esecuzione dell'intero programma utente.
67
Loading...