ESERCIZI (parte seconda) - webalice.it · OMRON Electronics SpA L’uscita analogica della scheda...
Transcript of ESERCIZI (parte seconda) - webalice.it · OMRON Electronics SpA L’uscita analogica della scheda...
1
OMRON Electronics SpA
ESERCIZI(parte seconda)
LDOUT
TIMCNTAND
2
OMRON Electronics SpA
Ripasso sull’utilizzo dei timer
• I timer generano un ritardo all’eccitazione rispetto ad unsegnale di abilitazione.
• A seconda del tipo di timer, il ritardo (Set Value) può essereprogrammato in unità di decimi (TIM), centesimi (TIMH) omillesimi (TMHH) di secondo.
• A ciascun timer, affinchè possa essere identificato in modounivoco, deve essere assegnato un numero (da 0 a 4.095).
• I timer non sono ritentivi, dopo una caduta di alimentazione ilvalore attuale (PV) viene re-inizializzato all’ SV.
3
OMRON Electronics SpA
Esercizio 10: Processo di verniciatura
• Una fotocellula (ingresso 000.00) rileva la presenza di unpezzo per tutta la sua lunghezza, e ne comanda il processo diverniciatura (uscita 001.00).
• Il processo deve continuare anche per 1,8 secondi dalla finedella rilevazione del pezzo.
• Durante il processo di verniciatura, vengono erogati tregrammi di vernice ogni decimo di secondo. E’ necessariomemorizzare (canale D00000) il consumo totale di verniceutilizzato per la lavorazione dei vari pezzi.
• Utilizzare TIM, la funzione di somma BCD senza Carry+B(404) ed il clock di sistema ad 1 decimo di secondo P_0_1s
4
OMRON Electronics SpA
Esercizio 10: Soluzione /1
5
OMRON Electronics SpA
Esercizio 10: Soluzione /2
6
OMRON Electronics SpA
Ripasso sull’utilizzo dei contatori
• La funzione CNT simula un contatore sottraente apredisposizione il cui set value può variare tra 0 e 9999.
• Questo tipo di contatore ha due ingressi: l’ingresso di Clock el’ingresso di Reset.
• La funzione CNTR(012) simula invece un contatore ad‘anello’ (conteggio Up/Down).
• Questo tipo di contatore ha tre ingressi: l’ingresso di clockper l’incremento, l’ingresso per il decremento e l’ingresso diReset
7
OMRON Electronics SpA
Esercizio 11: Visualizzazione secondi
• Visualizzare nel D00000 lo scorrere dei secondi tra 0 a 59 se ilsegnale di abilitazione Start (000.00) è ad ON.
• Utilizzare le istruzioni CNTR(012), MOV(021), P_On, P_Offed il clock di sistema ad un secondo P_1s
8
OMRON Electronics SpA
Esercizio 11: Soluzione
9
OMRON Electronics SpA
L’istruzione BIN
• L’istruzione BIN converte un numero decimale (BCD) di 4cifre in un numero esadecimale (BIN) a 16 bit e trasferisce ildato convertito in un altro canale
• Se il valore convertito è 0000 allora il flag di uguale (P_EQ)viene posto ad ON.
• Se il valore da convertire non è BCD, il flag di errore (P_ER)viene posto ad ON
10
OMRON Electronics SpA
L’istruzione BCD
• L’istruzione BCD converte un numero esadecimale (BIN) a 16bit in un numero decimale (BCD) di 4 cifre e trasferisce il datoconvertito in un altro canale
• Se il valore convertito è 0 allora si alza il flag P_EQ• Il massimo valore convertibile è pari a 270F (HEX) che equivale
al valore 9999 (BCD)• Se il valore da convertire è maggiore di 270F il flag P_ER viene
posto ad ON
11
OMRON Electronics SpA
La gestione dei segnalianalogici
12
OMRON Electronics SpA
Utilizzo dei segnali analogici
• Nei PLC i segnali analogici vengono gestiti tramite schede diconversione A/D (ingressi) e D/A (uscite) che li traducono invalori numerici esadecimali secondo precise caratteristiche diconversione, proprie del tipo di scheda utilizzata.
• Esempio:
13
OMRON Electronics SpA
Configurazione di un modulo analogico
• I moduli analogici, essendo moduli speciali, sono provvisti diselettori rotativi per stabilire la locazione dei canali occupati:
14
OMRON Electronics SpA
Configurazione di un modulo analogico
• La configurazione del modulo CJ1W-MAD42 avviene siavia hardware, tramite appositi dip-switches, che via softwarenei relativi canali dell’area DM.
• Configurazione dei Dip-Switches:
15
OMRON Electronics SpA
Configurazione di un modulo analogico
• Impostazioni principali della scheda (area Data Memory)
16
OMRON Electronics SpA
Configurazione di un modulo analogico
• Area CIO e cablaggio:
17
OMRON Electronics SpA
L’uscita analogica della schedaCJ1W-MAD42 converte in modolineare un valore esadecimalecompreso tra 0000 e 0FA0(0.. 4000 decimale) in un valore ditensione compreso tra 0 e 10 V(vedi figura)
Esercizio 12: Comando uscita analogica
18
OMRON Electronics SpA
Esercizio 12: Comando uscita analogica
• Fare in modo che il valore dell’uscita analogica si incrementidel 10% (190 o 400 a seconda che si lavori in HEX o BCD)del valore di tensione massimo ogni volta che si chiude ilcontatto 000.00 e si decrementi della stessa quantità allachiusura del contatto 000.01
• Il canale 2001 (canale di uscita della scheda analogica) saràil canale di uscita dove impostare il valore esadecimale per ilcomando del segnale analogico
• Utilizzare il canale di appoggio D00000 per gestire ilcorrettamente il risultato dei calcoli prima di inviarlo sulcanale di uscita...
19
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in HEX)
20
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in HEX)
21
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in HEX)
22
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in BCD)
23
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in BCD)
24
OMRON Electronics SpA
Esercizio 12: Soluzione (calcoli in BCD)
25
OMRON Electronics SpA
Esercizio 13: Variazione del rapporto pausa/lavoro
Fare in modo che il potenziometrocollegato all’ingresso analogico dellascheda CJ1W-MAD42 (canale 2005)comandi il rapporto del tempo dipausa/lavoro dell’uscita 001.00 tra 0 e4,2 secondi.
26
OMRON Electronics SpA
Esercizio 13: Variazione del rapporto pausa/lavoro
• Agendo sul potenziometro, i valori di ingresso presenti nelcanale 2005 variano tra 0 e 4200 BCD (0 … 1068 HEX)
• Dividendo tali valori per 10 si ottiene una gamma di variabilicompresa tra 0 e 420 (BCD) ideale per comandare dueTIMH dedicati alla gestione del rapporto pausa/lavoro tra 0 e4,2 secondi
• Esempio:– Valore attuale nel canale 2005: 003C (HEX) = 60 (BCD)– Tempo di lavoro: Valore attuale/10 = 6 (BCD)– Tempo di pausa: Tempo totale - Tempo di lavoro = 420 - 6 = 414
27
OMRON Electronics SpA
Esercizio 13: Soluzione
28
OMRON Electronics SpA
Esercizio 13: Soluzione
29
OMRON Electronics SpA
Esercizio 13: Soluzione
30
OMRON Electronics SpA
Conversioni Lineari
• Tipicamente i dati gestiti dalle schede analogiche sono ditipo esedecimale.
• L’istruzione di scaling SCL(194) permette di eseguireconversioni lineari da dati esadecimali (BIN) a dati decimali(BCD)
• La conversione avviene linearmente, secondo una retta diconversione definita da due punti.
• Le quattro coordinate che definiscono i due punti della rettadi conversione devono essere specificate in una tabella, apartire dal canale P1.
31
OMRON Electronics SpA
Conversioni Lineari
AX S BX Sorgente (BIN)
Risultato(BCD)
BY
RAY
Retta di conversione
32
OMRON Electronics SpA
Esercizio 14 : Conversioni Lineari
• Lo scopo dell’esercizio è quello di visualizzare in due canalidel PLC la quantità volumetrica e quella percentuale delliquido contenuto in un serbatoio di forma cilindrica, in baseal segnale proveniente da un sensore di livello collegato a uningresso analogico del PLC.
Sonda(h max = 30m)
Carico
Scarico
Raggio = 10m
33
OMRON Electronics SpA
Esercizio 14 : Conversioni Lineari
• La formula per il calcolo volumetrico di un cilindro èV = h * ? r2 dove:
– V = Volume del cilindro– h = Altezza del cilindro– r = Raggio del cilindro
• Sapendo che il raggio della base del cilindro è di 10 m,il volume si calcolerà come segue: V=314*h
• Poichè l’altezza del cilindro è 30 m, il massimo volumedi liquido contenibile sarà allora di 9420 m3
34
OMRON Electronics SpA
Esercizio 14 : Conversioni Lineari
• Ma più semplicemente si può affermare che:
– Il volume del liquido èdirettamente proporzionaleal valore in ingressoproveniente dal sensore
– Lo stesso vale per lapercentuale di riempimentodel cilindro
0 1.068 Ingresso
V (m3)9420
0
0 1.068 Ingresso
V (%)100
0
35
OMRON Electronics SpA
Esercizio 14 : Conversioni Lineari
• Riassumendo, i dati del problema sono:
– INPUT:• CIO2005= Valore analogico del sensore di livello.
(min=0m=0000; max=30m=1068)
– OUTPUT• H000 = Volume del liquido presente (m3)
• H001 = Volume del liquido presente (%)
• Suggerimento: Stabilire per prima cosa quali sono lecoordinate dei punti che dovranno definire le rette diconversione utilizzate dalle due scaling...
36
OMRON Electronics SpA
Esercizio 14 : Soluzione
Converte il valore analogico di ingressocompreso tra 0000 e 1068 (CIO2005), in unvalore che rappresenta il volume in m3
(H00), linearmente sulla base della tabelladefinita a partire dal canale D00000.
Valori Tabella:D00000 = 0000D00001 = 0000D00002 = 9420D00003 = 1068
0 1.068 Ingresso
V (m3)9420
0
37
OMRON Electronics SpA
Esercizio 14 : Soluzione
Converte il valore analogico di ingressocompreso tra 0000 e 1068 (CIO2005), in unvalore che rappresenta la percentuale diriempimento (H00), sulla base della tabelladefinita a partire dal canale D00000.
Valori Tabella:D00004 = 0000D00005 = 0000D00006 = 0100D00007 = 1068
0 1.068 Ingresso
V (%)100
0
38
OMRON Electronics SpA
Esercizio 15: Controllo dell’uscita analogica
• Lo scopo dell’esercizio è quello di far raggiungereall’uscita analogica 1 (canale 2001) il valore target di 10, 5Volt (corrispondenti a 1068 Hex o 4200 BCD) in unnumero di secondi variabile e predefinito (1, 2, o 4 secondi)
• La pendenza del segnale di uscita dovrà quindi variare infunzione del numero di secondi (T) stabilito
0 4 tempo (sec)
D00010(HEX)
1068
0 2 tempo (sec)
D00010(HEX)
1068
39
OMRON Electronics SpA
Esercizio 15: Controllo dell’uscita analogica
• Verificare che il range di lavoro per l’uscita analogica 1 siacompreso tra 0 e 10V (D20001=0101)
• Utilizzare come clock di riferimento per l’incremento delvalore di uscita il clock di sistema a 0,02 secondi (in grado digenerare 50 impulsi al secondo)
• Sapendo che il valore da raggiungere è 4200 (BCD) econoscendo i secondi necessari (T) per raggiungerlo, èpossibile stabilire il coefficiente di incremento (I) dell’uscitaad ogni impulso di clock:
I= 4200/(50*T)=84/T
40
OMRON Electronics SpA
Esercizio 15: Controllo dell’uscita analogica
• Utilizzare l’ingresso 000.00 come comando di Start,l’ingresso 000.01 come comando di Reset ed i canali DMcome specificato di seguito:
– DM00000: Valore attuale dell’uscita (BCD)– DM00001: Valore di incremento dell’uscita (I)– DM00002: Non utilizzare (resto dell’operazione di divisione)– DM00003: Costante di tempo T (1,2,4, secondi)
• Convertire il valore attuale dell’uscita da formato BCD aformato HEX (istruzione BIN) prima di scriverlo nel canaledi uscita 2001
41
OMRON Electronics SpA
Sul fronte di salita del comando diStart calcola il valore BCD dasommare all’uscita ad ogni impulsodi clock, in modo tale daraggiungere il valore di riferimentonel tempo richiesto.
Se il comando di Start è ad ON, adogni impulso di clock il valore diincremento viene sommato alvalore attuale (BCD) dell’uscita.
Esercizio 15: Soluzione
42
OMRON Electronics SpA
Il valore corrente viene limitato al valoremassimo per evitare di inviare allascheda un dato fuori dalle specifiche
L’istruzione BIN(23) converte sulcanale 2001 il valore corrente BCD nelcorrispondente valore esadecimale.
Esercizio 15: Soluzione
43
OMRON Electronics SpA
Se il pulsante di comando è OFF,l’ingresso di Reset 001.01 resetta ilvalore corrente.
Esercizio 15: Soluzione
44
OMRON Electronics SpA
Indirizzamento Indiretto
• I parametri di un’istruzione possono contenere:– Una costante:
– Un indirizzo diretto ad una variabile:
Il Set Value del timer saràuguale al valore presente nelcanale D0.
Se D0=1234 allora SV=1234
45
OMRON Electronics SpA
Indirizzamento Indiretto
• E’ inoltre possibile specificare un puntatore ad un canale checontiene l’indirizzo in cui si trova la variabile (indirizzamentoindiretto):
– Con il prefisso ‘*’ il contenuto del canale verrà interpretato come undato BCD
DM 0 = 0050
DM 50 = 1234 SV = 1234
46
OMRON Electronics SpA
Indirizzamento Indiretto
– Con il prefisso ‘@’ il contenuto del canale verrà invece interpretatocome un dato esadecimale
DM 0 = 0050 (50Hex = 80dec.)
DM 80 = 1234 SV = 1234
47
OMRON Electronics SpA
Esercizio 16: Indirizzamento Indiretto
• E’ necessario memorizzare in una tabella i valori provenientidal campionamento dell’Ingresso Analogico 0 (canale 2005).
• Il campionamento deve iniziare quando viene attivato ilcomando esterno 000.00.
• Si vogliono registrare solo 10 campioni, con periodo dicampionamento di 1 secondo, a partire dal canale D00001.
t
CIO 2005 Valori da campionare nei 10 sec.
48
OMRON Electronics SpA
D00001=050FD00002=04C2D00003=0485D00004=04B0D00005=04B0
D00006=05D5D00007=05F2D00008=0529D00009=052FD00010=051C
Esercizio 16: Indirizzamento Indiretto
• La tabella memorizzata dopo i dieci campionamenti potrebbeessere ad esempio come quella che segue:
• Utilizzare le istruzioni MOV(021), SET, RSET, ++B(594),CMP(020), un bit di appoggio (p.es. W0.00) e i flag disistema P_First_Cycle, P_GT, P_On e P_1s
49
OMRON Electronics SpA
Esercizio 16: Soluzione
50
OMRON Electronics SpA
Esercizio 16: Soluzione
51
OMRON Electronics SpA
Subroutine
• Quando un insieme di istruzioni viene ripetuto più volteall’interno del programma, conviene definirlo come‘sottoprogramma’ o subroutine
• Utilizzando le subroutine si hanno due vantaggi importanti:
– Risparmio di memoria di programma (si eliminano ripetizioni inutili)– Organizzazione modulare (facilità di lettura e manutenzione)
• In totale si hanno a disposizione 1.024 subroutine, divisibili in:
– Subroutine Locali: richiamabili solo dal task in cui sono state create– Subroutine Globali: richiamabili da tutti i task del programma
52
OMRON Electronics SpA
Subroutine Locali
• Tutte le subroutine locali devono essere inserite dopo l’ultimaistruzione del task e prima dell’istruzione END(001)
• Ciascuna subroutine deve essere compresa tra le istruzioniSBN(092) e RET(093), e può essere richiamata tramitel’istruzione SBS(091):
– SBN(092) Subroutine Number: definisce l’inizio di una subroutine ene specifica il numero (da 0 a 1.023).
– RET(093) Return: definisce la fine di una subroutine– SBS(091) Subroutine Start: definisce la chiamata alla subroutine
specificata
53
OMRON Electronics SpA
Subroutine Locali
• Se necessario una subroutine puòessere richiamata più volte,utilizzando l’istruzione SBS in piùpunti del programma all’interno deltask.
• NB: Una subroutine non puòrichiamare sé stessa
END(001)Fine del Task 00
RET(93)
Subroutine
SBN(92) 000
Programmadel Task 00
SBS(91) 000
Programmadel Task 00
SBS(91) 000
Inizio programmadel Task 00
54
OMRON Electronics SpA
Subroutine Locali : Esempio /1
• L’ingresso 0.00 chiama lasubroutine n° 0
• Lingresso 0.01 chiama lasubroutine n° 1
• All’interno per esempio del task ciclico 00, inserisco lecondizioni di chiamata alle subroutine locali 1 e 2
• Successivamente, prima dell’istruzione END(001), definiscole due subroutine.
NB:
55
OMRON Electronics SpA
Subroutine Locali: Esempio /2Definizione della subroutine 000.
Chiamando la subroutine 000viene incrementato il DM0000.
Fine della subroutine 000.
Definizione della subroutine 001.
Chiamando la subroutine 001viene incrementato il DM0001.
Fine della subruotine 001.
Fine del Task 00.
56
OMRON Electronics SpA
Subroutine Globali
• Tutte le subroutine globali devono essere definite all’internodel task ad interrupt ‘00’
• Per creare il task ad interrupt 00 occorre:– Cliccare nella barra degli strumenti l’icona per aggiungere un
nuovo task al programma– Cliccare con il tasto destro sul nuovo task e selezionare ‘Proprietà’
per accedere alla finestra di impostazioni del task– Selezionare come tipo di task
“Task di interrupt 00” e premereINVIO per confermare.
57
OMRON Electronics SpA
Subroutine Globali
• Ciascuna subroutine globale deve essere compresa tra leistruzioni GSBN(751) e GRET(752) e può essere richiamatada qualsiasi altro task tramite l’istruzione GSBS(750):
– GSBN(092) Global Subroutine Number: definisce l’inizio di unasubroutine globale e ne specifica il numero (da 0 a 1.023).
– GRET(093) Global Subroutine Return: definisce la fine di unasubroutine
– GSBS(091) Global Subroutine Start: definisce la chiamata allasubroutine specificata
58
OMRON Electronics SpA
Subroutine Globali
• La stessa subroutine globale puòessere richiamata da task differentiutilizzando l’istruzione GSBS(750)relativa a quella subroutine
Fine Task adinterrupt 00
GRET(752)
Subroutine
GSBN(751) 000
Task adinterrupt 00
Fine Task 05
GSBS(750) 000
Inizio Task 05
Fine Task 00
GSBS(750) 000
Inizio Task 00
N.B.: Occorre prestare attenzione a non assegnaread una subroutine locale un numero già riservatoad una subroutine globale e viceversa. In casocontrario CX-Programmer genererà un errore infase di compilazione e non sarà possibile scaricareil programma nel PLC.
59
OMRON Electronics SpA
Subroutine globali: Esempio
• All’interno del task ad interrupt 00 definisco la subroutineglobale 03.
• Con l’istruzione GSBS(750) sarà possibile richiamare questasubroutine da tutti gli altri task (compresi quelli ad interrupt)
60
OMRON Electronics SpA
Gli Interrupt
• Di norma la gamma dei segnali rilevabili dal PLC è funzionedel tempo di scansione
• E’ possibile definire determinati ingressi come ingressi ‘adinterrupt’ gestiti dalla CPU in modo indipendente dalla duratadel tempo di scansione
• Segnali di interrupt possono essere anche generati direttamentedalla CPU, dai moduli speciali e dai moduli Bus CPU
• Al presentarsi di un interrupt, l’esecuzione del task ciclicocorrente viene interrotta temporaneamente e viene eseguito iltask ad interrupt associato all’interrupt stesso
61
OMRON Electronics SpA
I task ad Interrupt
• Oltre ai 32 task ciclici, esistono quattro tipologie di task adinterrupt:– 1 Task di spegnimento: Eseguito quando si spegne la CPU (Task
ad interrupt 01). Questo task deve essere attivato nella finestra diimpostazioni del PLC
– 2 Task Schedulati: Eseguiti ad intervalli di tempo prefissati (Taskad interrupt 02 e 03). L’intervallo di tempo può essere impostatonel setup del PLC in unità di decimi di millisecondo (solo CJ1M),millisecondi o decine di millisecondi
– 32 Task di I/O: Eseguiti quando va ad ON un ingresso di unmodulo di ingressi ad interrupt (Task ad interrupt da 100 a 131).
– 221 Task Esterni: Eseguiti quando richiesto da un modulo di I/Ospeciale o da un modulo Bus CPU
62
OMRON Electronics SpA
I task ad Interrupt
Esempio:
• L’interrupt associato al task adinterrupt 05 viene rilevato durantel’esecuzione del task ciclico 01.
• L’esecuzione del task ciclico 01viene sospesa e la CPU esegue iltask ad interrupt 05
• Terminata l’esecuzione del task adinterrupt 05 l’esecuzione del taskciclico 01 riprende esattamente dadove era stata interrotta
63
OMRON Electronics SpA
I task ad Interrupt
• Se mentre è in esecuzione un task ad interrupt si presenta unaltro interrupt, il task relativo verrà eseguito solo al terminedell’esecuzione del task ad interrupt iniziale.
64
OMRON Electronics SpA
I task ad Interrupt
• I task ad interrupt, a seconda del tipo, hanno diversa priorità:
Priorità task ad interrupt di I/O > Task ad interrupt esterni > Task ad interrupt schedulati.
• In caso di contemporaneità verrà eseguito per primo l’interrupta priorità più alta; tutti gli altri verranno accodati.
• Il task ad interrupt di spegnimento in ogni caso interrompel’esecuzione di tutti gli altri task ad interrupt
65
OMRON Electronics SpA
Gli Interrupt del CJ1M
• Le CPU CJ1M dispongono di:
– 4 Interrupt hardware integrati (solo CPU22/23)– 2 Interrupt schedulati– 2 Interrupt dei contatori ad alta velocità integrati (solo CPU22/23)
• Sono inoltre gestibili:
– Interrupt provenienti da moduli di ingresso ad interrupt (CJ1W-INT01,CS1W-INT01,..)
– Interrupt provenienti da schede di comunicazione– Interrupt provenienti da schede di conteggio veloce (CJ1W-CT021)– Interrupt provenienti da moduli Bus CPU
66
OMRON Electronics SpA
Gli Interrupt Hardware del CJ1M
• I primi quattro ingressi integrati delle CPU CJ1M-CPU22/23(da CIO2960.00 a CIO2960.03) possono essere definiti comeingressi ad interrupt dalla maschera ‘Impostazioni PLC’ delCX-Programmer.
• Una volta definiti ‘ad interrupt’ i quattro ingressi sonoassociati a quattro task ad interrupt, dal n° 140 al n°143rispettivamente.
• Gli interrupt hardware possono lavorare sul fronte di salita osul fronte di discesa in modalità diretta o in modalitàcontatore (SV nei canali A532, …, A535) a seconda deiparametri specificati nell’istruzione MSKS(690).
67
OMRON Electronics SpA
Gli Interrupt Hardware del CJ1M
• Specifiche:
• MSKS: Parametri per la rilevazione degli interrupt hardwaresul fronte di salita o sul fronte di discesa
68
OMRON Electronics SpA
Gli Interrupt Hardware del CJ1M
• MSKS: Parametri per la mascheratura/smascheratura degliinterrupt hardware e per l’impostazione della modalità
69
OMRON Electronics SpA
CJ1M: Esempio Interrupt Hardware
La rilevazione dell’ingresso ad interrupt 01avverrà sul fronte di discesa del segnale
L’ingresso ad interrupt 01 viene abilitato(smascherato) e gestito in modalità diretta
70
OMRON Electronics SpA
Gli Interrupt Schedulati del CJ1
• Due interrupt schedulati, programmabili in unità di 0,1 ms(solo CJ1M), 1 ms, o 10 ms, permettono di eseguire task adinterrupt ad intervalli prefissati.
• Anche questi interrupt sono gestiti dall’istruzione MSKS(690):
71
OMRON Electronics SpA
Gli Interrupt Schedulati del CJ1
• L’istruzione MSKS imposta l’intervallo di tempo dell’interruptschedulato ma non l’intervallo di tempo relativo alla sua primaesecuzione
• Per rendere accurato anche il primo intervallo di tempo ènecessario utilizzare l’istruzione CLI(691) subito primadell’istruzione MSKS
72
OMRON Electronics SpA
Gli Interrupt Schedulati del CJ1M
• Nelle sole CPU CJ1M l’istruzione MSKS(690) può essereutilizzata impostare l’SV degli interrupt schedulati e resettarneil timer interno evitando l’impiego dell’istruzione CLI(691):
73
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Il contatore veloce 0 conta gli impulsi sugli ingressi integrati08, 09 e 03 (fasi A, B e Z) del canale 2960 (PV:A270/A271)
• Il contatore veloce 1 conta gli impulsi sugli ingressi integrati06, 07 e 02 (fasi A, B e Z) del canale 2960 (PV:A272/A273)
• Entrambi i contatori possono lavorare su ingresso:– Differenziale (30 KHz 24V - 50 KHz Line Driver)
– Impulso più direzione (60 KHz 24V - 100 KHz Line Driver)
– Bidirezionale (UP/Down) (60 KHz 24V - 100 KHz Line Driver)
– Incrementale (60 KHz 24V - 100 KHz Line Driver)
• Vengono gestite modalità di conteggio Lineare e Circolare
74
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
Fasi differenziali:
Impulso più direzione:
Bidirezionale:
Incrementale:
75
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Modalità di conteggio Lineare
• Gli impulsi vengono conteggiati tra il limite inferiore ed illimite superiore propri del contatore veloce (32 bit)
• Se il valore di conteggio fuoriesce dai limiti si genera unerrore di Overflow/Underflow ed il conteggio si interrompe
76
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Modalità di conteggio Circolare
• Gli impulsi vengono conteggiati all’interno di un range adanello il cui limite massimo è fissato nel setup del PLC
• Conseguentemente errori di overflow e di underflow nonpossono verificarsi
77
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Metodo di Reset software
Bit di Reset:– A531.00 (HSC 0)– A531.01 (HSC 1)
• Metodo di Reset software più Fase-Z
78
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• La funzione di Gate permette di interromperetemporaneamente il conteggio anche se vengono ricevutidegli impulsi
• Per inibire il conteggio è sufficiente mettere ad ON il bit diGate relativo a ciascun contatore:– Gate Bit Contatore 0: A531.02– Gate Bit Contatore 1: A531.03
• Se il tipo di reset impostato è ‘Reset software più fase Z’, nelcaso in cui il bit di reset sia ad ON (attesa della fase Z per ilreset) il bit di Gate è disabilitato
79
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• L’istruzione PRV(881) permette di leggere il PV (valoreattuale di conteggio):
• E’ anche possibile (per il solo contatore zero) utilizzarel’istruzione PRV(881) per leggere la frequenza degli impulsi(da 0 a 186A0 HEX)
80
OMRON Electronics SpA
Esercizio 17(*): Velocità di rotazione dell’encoder
• Sapendo che, in modalità incrementale, l’encoder genera 360impulsi giro, realizzare un programma che ne calcoli lavelocità media di rotazione (in giri al minuto) e la rendadisponibile nel canale D00200
• Impostazioni:
(*): Esercizio realizzabile solo con il PLC fisicamente collegato
81
OMRON Electronics SpA
Esercizio 17(*): Velocità di rotazione dell’encoder
• Si utilizzi un interrupt schedulato che, una volta al secondolegga il valore del conteggio, calcoli il numero di impulsigenerati rispetto alla lettura precedente (salvata nei DM diappoggio D0 e D1) e stabilisca il numero di giri al minuto.
• Esempio:– Numero di impulsi precedenti (D0,D1)=50– Numero di impulsi attuali (D2,D3)=62– Numero di impulsi in un secondo (N) =62-50=12– Numero di giri al minuto= N*60/360=N/6=12/6=2
• Tenere presente che il valore di conteggio è in doppialunghezza...
(*): Esercizio realizzabile solo con il PLC fisicamente collegato
82
OMRON Electronics SpA
Esercizio 17: Soluzione
83
OMRON Electronics SpA
Esercizio 17: Soluzione
84
OMRON Electronics SpA
Esercizio 17: Soluzione
85
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• E’ possibile eseguire dei confronti tra il valore di conteggioattuale (PV) e valori target o range di valori, mandando inesecuzione i task ad interrupt associati.
• La registrazione della tabella di comparazione avviene permezzo dell’istruzione CTBL(882)
86
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Formato della tabella per valori di comparazione a target:
87
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Formato della tabella per valori di comparazione a range:
Nota: La tabella devecomunque conteneretutti e 8 i range previsti
88
OMRON Electronics SpA
CJ1M: Interrupt sul contatore veloce
• Se più di una condizione è soddisfatta all’interno di un ciclo,verrà eseguito solo il primo dei task ad interrupt relativi,presenti in tabella.
• Il secondo interrupt verrà eseguito nel ciclo successivo, e cosìvia.
• I flag che indicano in quale dei range si trova il PV (RangeComparison Condition Met Flags) sono:– Per il contatore 0 : da A274.00 a A274.07– Per il contatore 1: da A275.00 a A275.07
89
OMRON Electronics SpA
Esercizio 18(*): Utilizzo del contatore veloce
• Utilizzare il contatore veloce 0 per comandare l’ipoteticauscita analogica (D00100) secondo un dato profilo di tensionee per commutare una uscita digitale ad ogni passaggio dirange.
• 1- Impostare il contatore veloce 0 in modalità circolare (valoremassimo: 1440), reset software e tipo di ingresso differenziale
• 2- Trasferire sul canale CIO001 del PLC i flag di appartenenzaal range (canale A274) per intercettare in quale dei range sitrova il valore attuale di conteggio
(*): Esercizio realizzabile solo con il PLC fisicamente collegato
90
OMRON Electronics SpA
0 B0 200 300 3A0 400 4D0 500 5A0
5V
2.5V
Esercizio 18(*): Utilizzo del contatore veloce
• 3 -Realizzare per l’uscita analogica il seguente profilo:
• Impostazioni Contatore Veloce 0:
• 5V=834(HEX)• 2,5V=41A(HEX)
(*): Esercizio realizzabile solo con il PLC fisicamente collegato
91
OMRON Electronics SpA
Esercizio 18: Soluzione
Tabella di Range:
92
OMRON Electronics SpA
Esercizio 18: Soluzione
Task ad Interrupt 4:Scrive nel D00100 il valore esadecimale834
Task ad Interrupt 5:Scrive nel D00100 il valore esadecimale41A
93
OMRON Electronics SpA
CJ1M:
LE USCITE A TRENODI IMPULSI
94
OMRON Electronics SpA
Le uscite a treno di impulsi del CJ1M
• Le CPU 22 e 23 del CJ1M possono generare, dalle usciteintergrate, due treni di impulsi.
• Un treno di impulsi può essere per esempio associato ad unmotore passo-passo o ad un servoazionamento, per comandare ilposizionamento di un asse
• Il CJ1M permette di gestire sia un controllo di velocità (dove gliimpulsi vengono generati in modo continuo, a specificatefrequenze) che un controllo di posizione (generazione di unnumero di impulsi ben determinato)
95
OMRON Electronics SpA
Le uscite a treno di impulsi del CJ1M
• Caratteristiche principali:
– Modalità CW/CCW o Impulso più direzione: il metodo è selezionabiletramite l’operando di un istruzione e deve essere comune ad entrambele uscite
– Selezione automatica della direzione per il posizionamento inCoordiante assolute (quando cioè l’origine è stata determinata)
– Controllo di tipo triangolare in automatico nel caso in cui il numero diimpulsi specificato sia insufficiente per raggiungere la frequenza ditarget
– Modifica del target durante il posizionamento (Multiple Start Function)– Possibilità di passare, durante il posizionamento, da controllo di
velocità a controllo di posizione
96
OMRON Electronics SpA
Le uscite a treno di impulsi del CJ1M
• Le caratteristiche e le modalità di esecuzione delle uscite a trenodi impulsi vengono definite tramite l’esecuzione di istruzionidedicate, direttamente da programma ladder
97
OMRON Electronics SpA
Le uscite a treno di impulsi del CJ1M
• Allocazione dei bit:
• Specifiche: