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à.
!PERICOLOIndica 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.
!AttenzioneIndica 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 CPUprecedenti alla versione @.@, ad esempioCPU 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 - AutoOnline (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 CorporationMADE 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 CorporationMADE IN JAPAN
CPU della serie CS versione @.@
(Ver. @.@)
Ver. @ .@
ix
Versioni di CPU e numeri di lotto
SerieModelloDati di produzione
Serie CSCPU CS1CS1@-
CPU@@
Prece-
dente
Nessuna versione
della CPU
Settembre
2003
Ottobre
2003
Novembre
2003
Dicembre
2003
Giugno
2004
Successiva
CPU CS1-V1CS1@-
CPU CS1-HCS1@-
CPU
CS1D
Serie CJCPU CJ1 CJ1G-
CPU CJ1-HCJ1@-
CPU per
sistemi a
due CPU
CPU per
sistemi a
singola
CPU
CPU@@-V1
CPU@@H
CS1DCPU@@H
CS1DCPU@@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)
Software
di supporto
CPU CJ1M eccetto
modelli di base
CPU CJ1M, modelli di base
CX-ProgrammerWS02-
CJ1MCPU@@
CJ1MCPU11/21
CXPC1EV@
CPU precedenti alla versione 2.0
CPU versione 2.0
(N. lotto da 031002 in poi)
Versione 3.2Versione 3.3Versione 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)
FunzioneVersione 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 NSOK a partire dal
Impostazione dei canali del primo slotOK 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
GRYOK 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
FunzioneCPU 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---OKOK
Nuove
istruzioni di
applicazione
A due CPUOKOK--Sostituzione in lineaOKOKOK
Due Moduli di alimentazioneOKOKOK
Due Moduli Controller LinkOKOKOK
Due Moduli Ethernet---OKOK
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 automatico all'accensione del sistema
Ora di inizio/fine del
funzionamento
Nuove
istruzioni
di applicazione
MILH, MILR, MILC ---OK---OKOK
=DT, <>DT, <DT,
<=DT, >DT, >=DT
BCMP2---OKOKOKOK
GRYOK a partire dal
TPO---OK---OKOK
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---OKOK
---OK---OKOK
---OK---OKOK
OK, ma solo se
all'accensione
del sistema è
impostata l'assegnazione delle
tabelle degli I/O
OK per un massimo di 8 gruppi
OK a partire dal
numero di lotto
030201
---OK---OKOK
---OK---OKOK
---OK---OKOK
---OK---OKOK
---OK---OKOK
numero di lotto
030201
---OK---OKOK
---OK---OKOK
---OK---OKOK
CPU versione
2.0
OKOK, ma solo se
OK per un massimo di 64 gruppi
OKOK a partire dal
OKOK a partire dal
precedenti alla
versione 2.0
all'accensione
del sistema è
impostata l'assegnazione delle
tabelle degli I/O
OK per un massimo di 8 gruppi
numero di lotto
030201
numero di lotto
030201
CPU CJ1M,
eccetto modelli di base
(CJ1M-CPU@@)
CPU
CPU versione
2.0
OKOK
OK per un massimo di 64 gruppi
OKOK
OKOK
i modelli con I/O
integrati
modelli di base
CPU versione
OK per un massimo 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)
FunzioneVersione della CPU
CPU precedenti alla
versione 2.0
Blocchi funzione (supportati da CX-Programmer versione 5.0 o successiva)
Gateway seriale (conversione dei comandi FINS in comandi CompoWay/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 applicazione
Funzioni di
istruzione addizionali
TXDU(256), RXDU(255) (supporto per la comunicazione senza protocollo tra Moduli di comunicazione 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 CS1DLe CPU versione 3.0 non sono supportate.
CPU CJ1-H/CJ1M (CJ1@-CPU@@H, CJ1G-CPU@@P, C J1 M - C P U @@)
FunzioneVersione della CPU
CPU precedenti alla
versione 2.0
Blocchi funzione (supportati da CX-Programmer versione 5.0 o successiva)
Gateway seriale (conversione dei comandi FINS in comandi CompoWay/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 applicazione
Funzioni di
istruzione addizionali
TXDU(256), RXDU(255) (supporto per la comunicazione senza protocollo tra Moduli di comunicazione 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
CPUFunzioniCX-ProgrammerConsole di
Ver-
sione 3.2
o prece-
dente
CPU CJ1M,
modelli di base,
versione della
CPU 2.0
CPU CS1-H, CJ1H 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 blocchi funzione
------OKOKNessuna
---OKOKOK
------OKOK
OKOKOKOK
------OKOK
------OKOK
OKOKOKOK
---------OK
OKOKOKOK
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-Programmer 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.
SerieGruppo CPUModello CPUImpostazione del tipo di dispositivo
Serie CSCPU CS1-HCS1G-CPU@@H CS1G-H
CS1H-CPU@@H CS1H-H
CPU CS1D per sistemi a due CPUCS1D-CPU@@HCS1D-H (o CS1H-H)
CPU CS1D per sistemi a singola CPUCS1D-CPU@@SCS1D-S
Serie CJCPU CJ1-H CJ1G-CPU@@H CJ1G-H
CJ1H-CPU@@H CJ1H-H
CPU CJ1MCJ1M-CPU@@CJ1M
in CX-Programmer versione 4.0 o
successiva
xv
Risoluzione dei problemi relativi alle versioni delle CPU in CX-Programmer
ProblemaCausaSoluzione
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 riportato, 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.
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.
ModuloSerie CSSerie CJ
CPUCPU 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: CS1DCPU@@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 CSModuli di I/O di base della serie CJ
Moduli di I/O
speciale
Moduli CPU busModuli CPU bus della serie CSModuli CPU bus della serie CJ
Moduli di
alimentazione
Moduli di I/O speciale della serie CSModuli di I/O speciale della serie CJ
Moduli di alimentazione della serie CSModuli 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)
NomeN. cat.Descrizione
Manuale di riferimento delle istruzioni dei controllori programmabili 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
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
W394Fornisce informazioni sulla programmazione e
altri metodi per l'utilizzo delle funzioni dei PLC
della serie CS/CJ (il presente manuale).
W339Fornisce informazioni generali sui PLC della serie
CS, ne descrive le caratteristiche di progettazione, le procedure di installazione e manutenzione nonché altre operazioni di base per l'utilizzo
dei PLC.
W393Fornisce informazioni generali sui PLC della serie
CJ, ne descrive le caratteristiche di progettazione,
le procedure di installazione e manutenzione nonché altre operazioni di base per l'utilizzo dei PLC
W395Descrive le funzioni degli I/O integrati delle CPU
CJ1M
W405Fornisce informazioni generali e descrive le carat-
teristiche di progettazione, le procedure di installazione e manutenzione nonché altre operazioni
di base per un sistema duplex basato sulla CPU
CS1D.
W340Fornisce una descrizione delle istruzioni di pro-
grammazione utilizzate nei diagrammi ladder supportate dai PLC della serie CS/CJ.
W341Fornisce informazioni sui metodi di programma-
zione e utilizzo dei PLC della serie CS/CJ
mediante una Console di programmazione.
W342Descrive i comandi di comunicazione FINS e dei
PLC della serie C (Host Link) utilizzati con i PLC
della serie CS/CJ.
W414Fornisce informazioni sull'utilizzo di CX-Program-
mer, un dispositivo di programmazione software
W425
W437
W438Descrive specifiche e metodi operativi relativi ai
che supporta i PLC della serie CS/CJ, e del programma CX-Net incluso in CX-Programmer.
blocchi funzione. Queste informazioni sono rilevanti solo se si utilizzano i blocchi funzione con
CX-Programmer versione 5.0 e CPU CJ1H/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
NomeN. 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
W336Descrive 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.
W344Fornisce informazioni sull'utilizzo di CX-Protocol
per la creazione di protocol macro, impiegate
come sequenze di comunicazione nella comunicazione con dispositivi esterni.
!AVVERTENZALa 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.
6-4Metodi di riduzione dei disturbi nelle uscite a relè. . . . . . . . . . . . . . xxxii
xxiii
Destinatari del manuale1
1Destinatari 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.
2Precauzioni 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, apparecchiature 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 applicazioni che implicano rischi diretti o indiretti per l'incolumità delle persone. Prima di
utilizzare il PLC per tali applicazioni, rivolgersi al proprio rappresentante OMRON.
3Precauzioni 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 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.
xxiv
!AVVERTENZA Non tentare di aprire un Modulo in presenza di alimentazione, in quanto ciò
implica il rischio di scosse elettriche.
Precauzioni per la sicurezza3
!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 massima 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 batteria 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 operativo4
!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 collegamento 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.
4Precauzioni 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'applicazione5
5Precauzioni 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 collegamento 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'alimentazione, 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 parametri nelle CPU CS1-H, CS1D, CJ1-H e CJ1M viene salvata nella memoria 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 programmazione. 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 Console 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 verificato le condizioni di sicurezza.
xxvii
Precauzioni relative all'applicazione5
• Quando si crea un file AUTOEXEC.IOM mediante un dispositivo di programmazione, quale una Console di programmazione o il software CXProgrammer, 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 terminali di uscita sui Moduli di uscita c.c. e altri Moduli vengono momentaneamente 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 schedina 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'indicatore BUSY si spenga prima di rimuoverla.
• Se il bit di ritenzione IOM è impostato su ON e si passa dalla modalità operativa 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 vengono 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 utilizzando 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 tensione del Modulo di alimentazione (tale operazione non è necessaria per
Moduli di alimentazione con gamme di tensione più ampie). Se il ponticello 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'applicazione5
• Adottare le misure necessarie per garantire che il sistema sia sempre alimentato nel rispetto delle specifiche di tensione e frequenza nominali.
Prestare particolare attenzione in ambienti in cui l'alimentazione è instabile. 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 eseguire 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'applicazione5
• 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 CJ1WCIF11. 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 precauzione 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 Europea6
• 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.
6Conformità alle direttive dell'Unione Europea
6-1Direttive applicabili
• Direttive sulla compatibilità elettromagnetica (EMC)
• Direttiva per le basse tensioni (LVD)
6-2Principi
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-3Conformità 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 Europea6
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 configurazione del pannello di controllo utilizzato, agli altri dispositivi collegati
al pannello di controllo, al cablaggio e ad altre condizioni specifiche. È pertanto necessario verificare che la macchina nel suo complesso o l'apparecchiatura utilizzata sia conforme alle Direttive dell'Unione Europea.
6-4Metodi 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 commutazione 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, è inferiore a 5 volte al minuto.
È necessario adottare contromisure per la riduzione dei disturbi se la frequenza 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 Europea6
CircuitoCorrenteCaratteristicaElemento necessario
c.a.c.c.
Metodo CR
C
Alimentazione
R
Metodo con diodo
Alimentazione
Metodo con varistore
Alimentazione
Carico
SìSì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.
NoSì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 (condensatoreresistore).
SìSì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 superiore 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 1Soluzione 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 Europea6
xxxiv
Funzionamento della CPU
In questo capitolo vengono descritti la struttura di base e il funzionamento della CPU.
Configurazione iniziale (solo CPU CS1)Capitolo 1-1
1-1Configurazione iniziale (solo CPU CS1)
Installazione della batteriaPrima 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
SETRESET
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 informazioni sulla procedura, consultare il Manuale dell'operatore di CX-Programmer.
Cancellazione degli erroriDopo 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
MONFUNMON
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 cancellazione 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-2Utilizzo 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 CPUCapitolo 1-3
1-3Struttura interna della CPU
1-3-1Informazioni generali
Lo schema seguente illustra la struttura interna della CPU.
CPU
Programma utente
Backup
automatico
Memoria
flash
(solo CPU CS1-H,
CS1D, CJ1-H o CJ1M)
Memoria file
nell'area EM
Backup
automatico
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 utenteIl 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.
Nota1. 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 SeriesOperation Manual.
6
Struttura interna della CPUCapitolo 1-3
Memoria I/OLa 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 PLCLa configurazione del PLC viene utilizzata per specificare diverse
impostazioni iniziali o altre impostazioni tramite parametri software.
DIP switchI DIP switch vengono utilizzati per configurare impostazioni iniziali o altre
impostazioni tramite interruttori hardware.
schedine di memoriaLe 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-2Schema 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 CPUCapitolo 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
Nota1. È 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-11Memoria flash.
8
Modalità operativeCapitolo 1-4
1-4Modalità operative
1-4-1Descrizione 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à PROGRAMIn 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à MONITORUtilizzando i dispositivi di programmazione è possibile effettuare le operazioni
descritte di seguito mentre il programma è in esecuzione in modalità MONITOR. 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'esecuzione del programma raggiunge il numero di task corrispondente. I task ad interrupt 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à operativeCapitolo 1-4
Modalità RUNQuesta modalità viene utilizzata per la normale esecuzione del programma.
L'indicatore RUN risulterà acceso. Alcune operazioni da dispositivo di programmazione, quali la modifica in linea, l'impostazione e il ripristino forzato e la modifica 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 Manualedell'operatore.
1-4-2Inizializzazione 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 → PROGRAMCancellata (nota 3)Mantenuta
PROGRAM → RUN/MONITORCancellata (nota 3)Mantenuta
RUN ↔ MONITORMantenutaMantenuta
Aree con ritenzione
(nota 2)
Nota1. 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à operativeCapitolo 1-4
1-4-3Modalità 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.
CondizioniCPU CS1CPU 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?
Sì
Console di
programmazione
collegata?
No
No
Sì
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 taskCapitolo 1-5
1-5Programmi 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 SeriesOperation Manual.
Programma A
Task
ciclico 0
Task
ciclico 1
Task
ciclico n
Aggiornamento degli I/O
Si verifica la condizione 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 taskCapitolo 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 taskCapitolo 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.
AttivataDisattivata
1-6Descrizione 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
Nota1. 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 taskCapitolo 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 ABCProgramma 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 taskCapitolo 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-Programmer (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 taskCapitolo 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 taskCapitolo 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.
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 baseCapitolo 2-1
2-1-2Informazioni 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 uscitaLe 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 complessiva delle istruzioni, e vengono generate dalle istruzioni riportate nella
tabella fornita di seguito. Le condizioni di istruzione hanno una priorità più elevata rispetto al flusso logico di alimentazione (P.F., Power Flow) e determinano
21
Concetti di baseCapitolo 2-1
se eseguire o meno una determinata istruzione. Un'istruzione può essere resa
non eseguibile o assumere un comportamento diverso a seconda delle condizioni 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
InterbloccoUn 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)
DescrizioneIstruzione di
Flag
In questo contesto, un flag corrisponde a un bit che funge da interfaccia tra le
istruzioni.
Flag di ingressoFlag 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 baseCapitolo 2-1
Tipi di operandiSimbolo
sorgenteSpecifica l'indirizzo dei dati da
Destinazione
(risultati)
NumeroSpecifica 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
SOperando di
origine
Cdati 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-3Posizione 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 istruzionePossibile
posizione
Istruzioni di
ingresso
Istruzioni di uscitaCollegate diretta-
Inizio logico
(istruzioni di
carico)
Istruzioni
intermedie
Collegate direttamente alla barra di
distribuzione sinistra 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 richiestaLD, LD TST(350),
RichiestaAND, OR, AND
RichiestaLa maggior parte
Non richiestaEND(001),
DiagrammaEsempi
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.
Nota1. 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 programmi 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 direttamente alla barra di distribuzione sinistra senza un'istruzione di inizio
logico, durante la verifica del programma da un dispositivo di programmazione (CX-Programmer o Console di programmazione) si verificherà un errore di programma.
23
Concetti di baseCapitolo 2-1
2-1-4Indirizzamento 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
151413121110080706050403090201
@@@@
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 baseCapitolo 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-5Specifica degli operandi
OperandoDescrizioneNotazioneEsempi 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 baseCapitolo 2-1
OperandoDescrizioneNotazioneEsempi 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 esadecimale 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 baseCapitolo 2-1
OperandoDescrizioneNotazioneEsempi 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 specificare 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
OperandoDescrizioneNota-
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 DRViene 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 binario 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.
Incremento
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.
Decremento
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 baseCapitolo 2-1
DatiOperandoFormato dei datiSimboloIntervalloEsempio 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ù piccolo) 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
DescrizioneSimboloEsempi---
#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
4500
'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
4500
4142
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.
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 6152 51 50 49 48 47 463210
EsponenteMantissa
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 baseCapitolo 2-1
FFFF
111111111111
1111
Numero effettivo
–)
+)
Complemento a 2
001
0000000000010011
FFEC
111111111110
000
0000000000000001
FFED
1111111111101101
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 esadecimale) – 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 utilizzato nelle applicazioni, non è definito in modo esplicito e dipende dall'applicazione specifica. I PLC delle serie CS e CJ supportano le seguenti istruzioni
32
Concetti di baseCapitolo 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).
+200020002
+100010001
000000000
–1Non può essere espresso. FFFF
–2FFFE
.
.
.
–32,7678001
–32,7688000
(esadecimale a 4 cifre)
.
.
.
.
.
.
Binario con segno
(esadecimale a 4 cifre)
33
Concetti di baseCapitolo 2-1
2-1-7Variazioni 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.
VariazioneSimboloDescrizione
DifferenziazioneON@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-8Condizioni 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 baseCapitolo 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 differenziazione 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 differenziazione 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 baseCapitolo 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 baseCapitolo 2-1
2-1-9Tempistica 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 baseCapitolo 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)
DIFU001000
(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 modificato quando l'istruzione viene saltata, vale a dire viene mantenuto il
valore precedente. Le istruzioni con differenziazione up e down genereranno 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 baseCapitolo 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 SeriesOperation 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
ModuliDati aggiornati
Moduli di I/O di base C200H (solo serie
CS)
Moduli di I/O di base CJ
150
CIO 0001
150
CIO 0002
150
CIO 0003
150
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 baseCapitolo 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
PosizioneSistema CPU o sistema di I/O di espansione (esclusi sistemi slave
SYSMAC BUS)
ModuliModuli di I/O di
base
Moduli di I/O specialeNon 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.
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)
PosizioneSistema CPU o sistema di I/O di espansione
(esclusi sistemi slave SYSMAC BUS)
ModuliModuli di I/O
di base
Moduli di I/O specialeAggiornati
Moduli CPU busNon aggiornati
Moduli di I/O di base serie CS/CJ Aggiornati
Moduli di I/O di base C200HAggiornati
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)
PosizioneSistema CPU o sistema di I/O di espansione (esclusi sistemi slave
SYSMAC BUS)
ModuliModuli di I/O di baseNon aggiornati
Moduli di I/O specialeNon 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 baseCapitolo 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 distep nel Manuale dell'operatore. La lunghezza di ciascuna istruzione viene
aumentata di uno step qualora di utilizzi un operando a doppia lunghezza.
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'operatore 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 baseCapitolo 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 programma è 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 collegamento
Istruzione
speciale
Bit di uscita
Barra di distribuzione destra
Rung
Blocco di istruzioni
Codici mnemoniciUn 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.
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
CD
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 baseCapitolo 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 distribuzione 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 baseCapitolo 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 baseCapitolo 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 baseCapitolo 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 baseCapitolo 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 LD000000
(a)
000201 AND000001
000202 LD001000
(b)
000203 AND001001
0000
02
03
Istruzione Operando
000204 OR LD---
(c)
000205 OR000500
000206 AND000002
(d)
000207 AND NOT 000003
000208 LD000004
(e)
000209 AND000005
(f)
000210 OR000006
000211 AND LD---
000212 OUT000500
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 baseCapitolo 2-1
2-1-14 Esempi di programmazione
1,2,3...1. Rung in parallelo/in serie
0000000000010000
0002
00
ab
Blocco ABlocco B
Programmare le istruzioni parallele nel blocco A e nel blocco B.
2. Rung in serie/in parallelo
0000
0000
00
01
ab
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 baseCapitolo 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
ab
Blocco ABlocco 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
ab
cn
Blocco ABlocco BBlocco CBlocco n
51
Concetti di baseCapitolo 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
BloccoBlocco
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.
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 baseCapitolo 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 diagramma 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 illustrato 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
PrecauzioniCapitolo 2-2
2-2Precauzioni
2-2-1Flag 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 diramazione 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 distribuzione, 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 fornito un esempio.
55
PrecauzioniCapitolo 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'istruzione A.
Flag di condizione
Esempio =
Flag di condizione
Esempio =
Istruzione A
Riflette i risultati di esecuzione dell'istruzione
A.
Istruzione B
56
PrecauzioniCapitolo 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
PrecauzioniCapitolo 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 successivo 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'esecuzione 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à inaspettatamente 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 differenziazione up (o down) per entrambe le istruzioni A e B, le quali verranno eseguite 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'istruzione non viene eseguita.
Rung precedente
Istruzione A
Riflette i risultati di esecuzione dell'istruzione A.
Esempio di flag di
condizione: =
Istruzione B
58
PrecauzioniCapitolo 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-seriesProgrammable Controllers Instructions Reference Manual (W340). È necessario 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 funzionamento 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'indirizzo 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'istruzione 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 uguaglianza 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.
Nota1. È 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 istruzione. 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
PrecauzioniCapitolo 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
Trasferiti
2-2-2Sezioni 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 programmaIstruzioniCondizione di istruzioneStato
SubroutineIstruzioni SBS, SBN e RETViene eseguito il programma
Sezione IL-ILCIstruzioni IL e ILCLa sezione viene
Sezione ladder con struttura
a step
Ciclo FOR-NEXTIstruzioni FOR e NEXTInterruzione in corso.Esecuzione di cicli
Sezione JMP0-JME0Istruzioni JMP0 e JME0Salto
Sezione di programma a
blocchi
Istruzioni STEP S e STEP
Istruzioni BPRG e BENDViene 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
PrecauzioniCapitolo 2-2
SubroutineSezione IL-ILC Sezione ladder
SubroutineNon consentitoNon consentito Non consentito Non consentito Non consentito Non consentito
IL-ILCOKNon consentito Non consentito OKOKNon consentito
Sezione ladder
con struttura a
step
Ciclo FORNEXT
JMP0-JME0OKOKNon consentito Non consentito Non consentito Non consentito
Sezione di programma a
blocchi
Non consentito OKNon consentito Non consentito OKNon consentito
OKOKNon consentito OKOKNon consentito
OKOKOKNon consentito OKNon 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.
SubroutineTutte le subroutine devono essere raggruppate e posizionate immediata-
mente prima dell'istruzione END(001), ma dopo una sezione di programmazione 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.
FunzioneCodice mnemonicoIstruzione
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 programma a blocchi resterà in stato di attesa al successivo richiamo.
61
PrecauzioniCapitolo 2-2
Istruzioni non disponibili
nelle sezioni di
programma ladder con
struttura a step
FunzioneCodice mnemonicoIstruzione
Controllo della
sequenza
SubroutineSBN(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
Nota1. È 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
PrecauzioniCapitolo 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 sequenzaFOR(512), NEXT(513) e
Ingresso sequenzaUP(521)CONDITION ON
Uscita sequenzaDIFUDIFFERENTIATE UP
Temporizzatore/contatoreTIMTIMER
SubroutineSBN(092) e RET(093)SUBROUTINE ENTRY e
Scorrimento di datiSFTSHIFT
Controllo degli step del
programma ladder
Controllo di datiPIDPID CONTROL
Programma a blocchiBPRG(096)BLOCK PROGRAM
Diagnosi dei danniFPD(269)FAILURE POINT
Codice mnemonicoIstruzione
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
DIFDDIFFERENTIATE DOWN
KEEPKEEP
OUTOUTPUT
OUT NOTOUTPUT NOT
Nota1. È 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 programmiCapitolo 2-3
2-3Verifica 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-1Errori 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 erroreCausa
CHK MEMIl pin 1 del DIP switch della CPU è posizionato su ON
IO No. ERRSi è tentato di immettere dati di I/O non validi.
CX-Programmer
Il programma viene automaticamente verificato da CX-Programmer durante le
seguenti fasi.
OperazioneContenuto controllato
Immissione di
diagrammi ladder
Caricamento dei fileTutti gli operandi per tutte le istruzioni e tutte le sequenze di
Scaricamento dei fileModelli supportati dalla serie CS/CJ e tutti gli operandi per
Modifica in lineaCapacità 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-2Verifica 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 programmiCapitolo 2-3
AreaVerifica
Dati non validi:
diagramma ladder
Istruzioni
supportate dal PLC
Intervalli degli
operandi
Capacità di
programma per il
PLC
SintassiVerifica delle chiamate per le istruzioni in coppia
Struttura del
diagramma ladder
Duplicazione di
uscite
TaskVerifica 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 programmiCapitolo 2-3
Operandi a più canaliDurante 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-ProgrammerConsole 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-3Verifica del programma in fase di esecuzione
I controlli relativi alla posizione degli operandi e delle istruzioni vengono eseguiti durante le operazioni di immissione dal dispositivo di programmazione
(Console di programmazione inclusa), nonché durante la verifica del programma 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 erroreFlag attivato in seguito all'erroreContinuazione/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 accessoFlag 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 illegaleFlag 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 possono 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 programmiCapitolo 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 informazioni, 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 determinare 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...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.