ESERCIZI (parte prima)aula42.altervista.org/sistemi/plc/Corso/Esercizi1.pdf1 OMRON Electronics SpA...

Post on 25-Mar-2021

4 views 0 download

Transcript of ESERCIZI (parte prima)aula42.altervista.org/sistemi/plc/Corso/Esercizi1.pdf1 OMRON Electronics SpA...

1

OMRON Electronics SpA

ESERCIZI(parte prima)

LDOUT

TIMCNTAND

2

OMRON Electronics SpA

• La serie CJ1 dispone di un set di oltre 400 istruzioni, cosìsuddiviso:

– 14 Istruzioni Base (schema a contatti)– circa 400 Istruzioni Avanzate (funzioni)

• All’interno del corso verranno presentate le istruzioni base etutta una serie di istruzioni avanzate, di rilevante utilità nellagrande maggioranza delle applicazioni di interesse generale

Le Istruzioni

3

OMRON Electronics SpA

AvantiIndietroSTOP

Finecorsa 1 Finecorsa 2

Indietro Avanti

AvantiIndietro

ESERCIZIO 1: Controllo di una macchina

4

OMRON Electronics SpA

ESERCIZIO 1: Controllo di una macchina

• Il pulsante ‘Puls_avanti’ finchè premuto determina la marcia inavanti del carrello fino al raggiungimento del finecorsa LS2 oalla pressione del comando di ‘Stop’

• Il pulsante ‘Puls_indietro’ finchè premuto determina la marciaindietro del carrello, fino al raggiungimento del finecorsa LS1o alla pressione del comando di ‘Stop’

• Se i due pulsanti di ‘Puls_avanti’ e di ‘Puls_indietro’ vengonopremuti simultaneamente il carrello non deve muoversi inalcuna direzione

5

OMRON Electronics SpA

ESERCIZIO 1: Soluzione

6

OMRON Electronics SpA

• Rappresentano quella serie di istruzioni per le quali non èprevisto sulla console di programmazione il corrispondentetasto dedicato

• Ad ogni funzione è associato, in modo univoco, un codicenumerico di tre cifre. E’ possibile richiamare una funzioneanche inserendone direttamente il codice

• Nel diagramma a relè le funzioni vengono rappresentate conun blocco funzionale in cui compare il nome dell’istruzione,insieme ai relativi parametri

Funzioni

7

OMRON Electronics SpA

Timer

• L’istruzione TIM (Timer) viene utilizzata per generare unritardo all’eccitazione rispetto al segnale di abilitazione ‘Start’

• Il ritardo SV (Set Value) può variare da 0 a 999,9 secondi ed èprogrammabile in unità di 0,1 secondi

• Quando il segnale di Start va ad ON il valore attuale PV(Present Value) del timer (inizialmente pari all’SV) inizia adecrementare

• Quando il PV (non ritentivo) diventa uguale a zero, lo statodel timer va ad uno

• Le famiglie di PLC CJ/CS dispongono di 4.096 timer (da 0 a4.095) identificati univocamente dal proprio numero

8

OMRON Electronics SpA

Esempio di utilizzo di un Timer

• Il segnale di Start 0.00 eccita l’uscita 1.00 dopo 3,2 secondi

9

OMRON Electronics SpA

• La funzione TIMH (timer ad alta velocità) serve per generareritardi all’eccitazione con una precisione maggiore rispettoalla funzione TIM

• Il ritardo (SV) può variare tra 0,00 e 99,99 secondi ed èprogrammabile in unità di centesimi di secondo.

LD 000.05TIMH(15) 007 DM 0030LD TIM 007OUT 100.01END (01)

000.05

TIMH(15)007

DM0030

100.01

TIM 007

La funzione TIMH (015)

10

OMRON Electronics SpA

• Se il tempo di scansione supera i 10 ms l’accuratezza per iTIMH diminuisce a meno che non si utilizzi un numero ditimer compreso tra 0 e 255

• Nelle famiglie di PLC CS1 e CJ1 il PV dei primi 256 timer èinfatti rinfrescato ‘ad interrupt’ ogni 10 ms e nonall’esecuzione dell’istruzione come invece avviene per i timersuccessivi

La funzione TIMH (015)

11

OMRON Electronics SpA

comando

operando

comando

operando

Le istruzioni di SET e RESET

• L’istruzione SET imposta ad 1 il bit indicato come operando

• L’istruzione RSET imposta ad 0 il bit indicato come operando

12

OMRON Electronics SpA

Fronte di salita e funzioni differenziate

• Con fronte di salita (discesa) di un segnale, si intende lacondizione per cui, nella scansione precedente quel segnale erastato letto ad OFF (ON) dal PLC, mentre nella scansioneattuale viene letto ad ON (OFF)

• Quasi tutte le funzioni integrate nel set di istruzioni del PLCpossono essere eseguite in due modalità:

– ad ogni scansione se è presente il segnale di abilitazione della funzione– solo per una scansione sul fronte di salita (o di discesa) del segnale di

abilitazione della funzione (funzione differenziata)

13

OMRON Electronics SpA

Fronte di salita e funzioni differenziate

• Per differenziare una funzione è sufficiente inserire il carattere‘@’ prima di digitarne il nome

• Esempio:

– L’istruzione ‘MOV’ vieneeseguita ad ogni scansione se ilsegnale di abilitazione è ad ON

– L’istruzione ‘MOV’ vieneeseguita per una sola scansionesul fronte di salita del segnale diabilitazione è ad ON

14

OMRON Electronics SpA

Fronte di salita e funzioni differenziate

• Originariamente nel set di istruzioni del PLC erano previste duefunzioni utili per intercettare i fronti di salita (DIFU) o di discesa(DIFD) dei segnali, in modo da poter controllare con un bitl’esecuzione di tutte le istruzioni non differenziabili

• A partire dalle famiglie CS1/CJ1 è invece possibile differenziarei contatti direttamente durante il loro inserimento, o utilizzaredelle istruzioni intermedie (UP e DOWN) consentendo dirisparmiare memoria di programma

15

OMRON Electronics SpA

start

uscita5 secondi

start

uscita5 secondi

Esercizio 2: Timer Monostabile

• Realizzare un timer che fissi la durata dell’attivazione diun’uscita a 5 secondi, indipendentemente dalla durata delsegnale di Start

16

OMRON Electronics SpA

Esercizio 2: Soluzione con autoritenuta

17

OMRON Electronics SpA

Esercizio 2: Soluzione con SET e RESET

18

OMRON Electronics SpA

Esercizio 2: Soluzione con SET e RESET

19

OMRON Electronics SpA

t1 t2

112

2

3

4567

8

9

1011

Esercizio 3: Timer di Pausa/Lavoro

• Utilizzando due timer in combinazione tra loro, realizzare unonda con Duty Cycle variabile

20

OMRON Electronics SpA

Esercizio 3: Soluzione

21

OMRON Electronics SpA

I nuovi temporizzatori

• Le più recenti CPU delle famiglie di PLC CS1 e CJ1supportano una nuova gamma di temporizzatori non presentenelle serie di PLC precedenti

• La nuova gamma di temporizzatori comprende:

– Funzione di temporizzatore ritentivo TTIM(087)– Funzione di temporizzatore lungo TIML(542)– Funzione di temporizzatore multiplo MTIM(543)

22

OMRON Electronics SpA

I nuovi temporizzatori

• Nuovi temporizzatori:– Temporizzatore TTIM(087): Simula un temporizzatore ad incremento

con ritardo programmabile in unità di decimi di secondo. L’SV puòvariare tra 0 e 999,9 secondi ed il PV viene mantenuto in caso diinterruzione del segnale di abilitazione.

23

OMRON Electronics SpA

– Temporizzatore lungo TIML(542): Simula un temporizzatore adecremento, con ritardo programmabile in unità di decimi di secondo,il cui SV può variare tra 0 e 9999999,9 secondi (115 giorni circa)

– Temporizzatore multi uscita MTIM(543): Simula un temporizzatore adecremento con 8 set value ed 8 flag di completamento indipendenti. Ilritardo è programmabile in unità di decimi di secondo (da 0 a 999,9secondi)

I nuovi temporizzatori

24

OMRON Electronics SpA

• Durante la stesura del progetto è possibile definire se lamodalità di lavoro dei temporizzatori e dei contatori debbaessere BCD o Esadecimale (binaria).

• CX-Programmer compileràcorrettamente solo il set diistruzioni per temporizzatorie contatori relativo allamodalità specificata.

I nuovi temporizzatori

25

OMRON Electronics SpA

• Per visualizzare la finestra di impostazione della modalità dilavoro dei timer e counter è necessario cliccare con il tastodestro sull’icona del PLC nell’area di progetto ( )e selezionare la voce ’Proprietà’

I nuovi temporizzatori

26

OMRON Electronics SpA

La funzione Contatore

• La funzione contatore (CNT) simula un contatore sottraente apredisposizione. Il valore di predisposizione (SV) può variare tra0 e 9999

• Il contatore ha due ingressi:– Ingresso di conteggio impulsi– Ingresso di reset

• Se Rt è OFF, ogni fronte di salita di Cp determina il decrementodel PV. Quando il PV diventa uguale a zero lo stato del contatoreva ad ON.

27

OMRON Electronics SpA

La funzione Contatore

• I contatori sono ritentivi, ovvero il loro stato (bit di uscita e PV)viene mantenuto sia in caso di Power Off che di cambio dellamodalità operativa del PLC

• Quando il PV è uguale a 0 tutti gli eventuali impulsi di ingressovengono ignorati

• Se Rt va ad ON il contatore si resetta (PV=SV, stato=OFF)• Accoppiato ad un clock di sistema, un contatore può essere

utilizzato per realizzare un timer ritentivo• Accoppiando due contatori in cascata tra loro, si ottiene un

conteggio pari al prodotto di SV1 e SV2

28

OMRON Electronics SpA

• Le famiglie di PLC CJ/CS dispongono di 4.096 contatori (da0 a 4.095) identificati univocamente dal proprio numero eseparati dall’area riservata ai 4.096 temporizzatori

• Nel caso di Timer e Counter è opportuno sottolineare che:– Il PV (valore attuale che decrementa) e il bit relativo alla condizione di

ON o di OFF del Timer (o Counter) si trovano nell’area dati– L’SV o valore di impostazione (valore iniziale di conteggio) si trova

nell’area di programma

Timer e Counter

29

OMRON Electronics SpA

Esercizio 4: Realizzare un Timer ritentivo

• Utilizzare un contatore abbinato ad un clock di sistema di unsecondo (P_1s)

• Nel PLC sono presenti molti flag di sistema (clock a variefrequenze, flag di errore, bit sempre ad ON o ad OFF, ecc)

• L’elenco completo è disponibile nella maschera di inserimentodi un nuovo contatto, cliccando sulla freccia di estensione dellatendina a scorrimento

30

OMRON Electronics SpA

Esercizio 4: Soluzione

31

OMRON Electronics SpA

1..2..3..4..5..4..3..2..1..0

La funzione CNTR

• Permette di realizzare un contatore reversibile ‘ad anello’• Questo tipo di contatore necessita di tre segnali di ingresso:

– Ingresso di incremento– Ingresso di decremento– Ingresso di reset

32

OMRON Electronics SpA

La funzione CNTR

• In fase di conteggio addizionante, quando il valore attuale diconteggio (PV) ha raggiunto il valore di preselezione (SV) alsuccessivo impulso il contatore va ad ON ed il PV diventauguale a zero

• In fase di conteggio sottraente, quando il valore attuale diconteggio (PV) è uguale a zero, al successivo impulso didecremento il contatore va ad ON e il PV diventa uguale all’SV

• Se l’ingresso di Reset è ad ON il PV diventa uguale a zero, lostato del contatore va ad OFF e gli impulsi di ingresso vengonoignorati

33

OMRON Electronics SpA

IIn (incremento)

DIn (decremento)

Bit di uscita(Stato del CNT)

Valore Attuale (PV) SV-3SV-2

SV-1SV SV

SV-1SV

SV-1SV-2

La funzione CNTR

34

OMRON Electronics SpA

Sensore di livello superiore

Sensore di livello inferiore

Motore

Valvola di svuotamento

Valvola di riempimento

StartReset

Led stop

Esercizio 5: Ciclo di riempimento-svuotamento

35

OMRON Electronics SpA

Esercizio 5: Ciclo di riempimento-svuotamento

• Alla pressione del pulsante di Start (0.00), si apre la valvola diriempimento (1.00) e si mette in moto il motore di miscelazione(1.02)

• Quando il livello raggiunge il sensore superiore (0.02), la valvoladi riempimento si chiude, il motore si ferma e si apre la valvoladi svuotamento (1.01)

• Quando il livello raggiunge il sensore inferiore (0.03) la valvoladi svuotamento si richiude e può iniziare un altro riempimento

• Quando il ciclo è stato ripetuto quattro volte, il led di stop (1.03)si accende e un ulteriore ciclo non può essere iniziato se nondopo aver premuto il pulsante di Reset (0.01)

36

OMRON Electronics SpA

Esercizio 5: Soluzione

37

OMRON Electronics SpA

Esercizio 5: Soluzione

38

OMRON Electronics SpA

• L’istruzione KEEP permette di realizzare un relè a ritenuta• Si hanno due ingressi:

– L’ingresso di Set– L’ingresso di Reset

• Se l’ingresso di Reset è ad OFF un impulso su S attiva inmodo permanente il bit programmato come operando dellafunzione

• Un impulso di Reset determina la disattivazione del bit diuscita

La funzione KEEP

001.05

100.00

001.07

39

OMRON Electronics SpA

ESERCIZIO 6: Toggle

• Fare in modo che l’uscita 001.01 del PLC si attivi e disattivialternativamente ad ogni fronte di salita del segnale di ingresso000.00

40

OMRON Electronics SpA

ESERCIZIO 6: Soluzione

41

OMRON Electronics SpA

La funzione MOV

• L’istruzione MOV realizza lo spostamento di un dato a 16 bitda un canale sorgente S ad un canale destinazione D

• Le aree utilizzabili per il trasferimento sono:– CIO, W, HR, A, D, T, C

• Se S=0 il flag di uguale P_EQ va ad ON subito dopol’esecuzione dell’istruzione

• Esiste anche la funzione MVN che effettua uno spostamentodati NEGANDO però il dato stesso

42

OMRON Electronics SpA

ESERCIZIO 7: Zero macchina

• Fare in modo che all’accensione il canale 001 di uscita delPLC abbia il seguente aspetto: 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0sapendo che ad ogni bit di uscita corrisponde la posizioneavanzata (1) o arretrata (0) di un pistone

• Per poter manutenere la macchina si deve dare la possibilità,chiudendo ad esempio il contatto 000.01 di portare tutti ipistoni in posizione arretrata

• E’ necessario memorizzare la posizione dei pistoni primadella manutenzione (utilizzare il canale H0 come ‘memoriadella posizione’) per poterla ripristinare al termine dellamanutenzione (contatto 000.01 aperto)

43

OMRON Electronics SpA

ESERCIZIO 7: Soluzione

44

OMRON Electronics SpA

ESERCIZIO 7: Soluzione

45

OMRON Electronics SpA

La funzione SFT

• L’istruzione SFT realizza la funzione di registro a scorrimentocon un ingresso seriale

• Lo scorrimento avviene a bit, partendo dal meno significativoal più significativo

• La funzione SFT richiede tre ingressi:– L’ingresso Dati: lo stato di questo ingresso viene trasferito nel registro a

scorrimento sul fronte di salita dell’ingresso di clock– L’ingresso di Clock: il fronte di salita di questo ingresso determina lo

scorrimento dei dati e il trasferimento dell’ingresso dati– L’ingresso di Reset: determina il reset del canale (o dei canali) su cui avviene

lo scorrimento

• E’ necessario specificare come operandi della funzione ilprimo e l’ultimo canale del registro

46

OMRON Electronics SpA

La funzione SFT

• Il primo e l’ultimo canale del registro devono appartenere allastessa area

• Le aree utilizzabili sono: HR, W e A (da A448 ad A959)• Se si utilizzano canali di scorrimento appartenenti all’area HR

(ritentiva) i dati verranno mantenuti in caso di spegnimento

47

OMRON Electronics SpA

Sensore 2

Sensore 1

Difettosi Normali

Valvola

ESERCIZIO 8: Controllo di qualità

48

OMRON Electronics SpA

ESERCIZIO 8: Controllo di qualità

• Il sensore 1 (000.01) rileva i pezzi difettosi in transito su unnastro trasportatore, mentre il sensore 2 (000.02) rileva ilpassaggio di una tacca che misura lo scorrere dei pezzi (posti adeguale distanza)

• Quando un pezzo difettoso passa sopra lo sportello (posto ad unadistanza corrispondente a 5 pezzi dal sensore 1) una valvola(001.00) ne permette l’apertura ed il pezzo viene scartato

• Suggerimento: si utilizzi il canale H0 come registro ascorrimento per ‘mappare’ la posizione dei pezzi difettosi sulnastro trasportatore

49

OMRON Electronics SpA

ESERCIZIO 8: Soluzione

50

OMRON Electronics SpA

La funzione SFTR

• L’istruzione SFTR permette di realizzare la funzione di registroa scorrimento in modo bidirezionale

• Lo scorrimento può avvenire su uno o più canali (appartenentialla stessa area dati)

• Nella funzione devono essere specificati tre paramentri:

51

OMRON Electronics SpA

CH startCH intermedioCH end

Scorrimento a sinistra

DatoCY

CH startCH intermedioCH end

Scorrimento a destra

Dato CY

La funzione SFTR

• Lo scorrimento dei dati avviene nelle seguenti condizioni:– L’istruzione di SFTR è abilitata– Il bit 14 del canale di controllo (clock) fornisce un fronte di salita

• Il flag P_CY (Carry) riceve lo stato del bit ‘in uscita’ dalregistro a scorrimento

52

OMRON Electronics SpA

La funzione SFTR

• I vari ingressi (Direzione, Dato, Clocke Reset) vengono gestiti tramite uncanale di controllo

• I quattro bit più significativi del canaledefinito come canale di controlloassumono il seguente significato:

15 14 13 12 Non usati

Direzione di shift (0=dx; 1=sx).Ingresso Dato.Ingresso di Clock.Ingresso di Reset.

NB:

53

OMRON Electronics SpA

ESERCIZIO 9: Scorrimento Up/Down

• Si realizzi un programma che faccia scorrere in modoup/down un pacchetto di tre bit nel canale di uscita (001) conil ritmo di uno shift al secondo

• Utilizzare le istruzioni SFTR(084), MOV(021), KEEP(011)e i flag di sistema P_First_Cycle, P_On e P_1s

10 0 0 0 0 0 0 0 0 0 0 100 1CANALE 001

54

OMRON Electronics SpA

ESERCIZIO 9: Soluzione

55

OMRON Electronics SpA

ESERCIZIO 9: Soluzione

56

OMRON Electronics SpA

Istruzioni di Incremento e Decremento

• Istruzioni di incremento e decremento in esadecimale:– ++ : Incrementa in Esadecimale il contenuto di una word– -- : Decrementa in Esadecimale il contenuto di una word– ++L : Incrementa in Esadecimale il contenuto di due word– --L : Decrementa in Esadecimale il contenuto di due word

• Istruzioni di incremento e decremento in BCD:– ++B : Incrementa in BCD il contenuto di una word– --B : Decrementa in BCD il contenuto di una word– ++BL : Incrementa in BCD il contenuto di due word– --BL : Decrementa in BCD il contenuto di due word

57

OMRON Electronics SpA

Istruzioni di Incremento e Decremento

• Esempio Incremento Binario (++):

• Esempio Incremento BCD (++B):

58

OMRON Electronics SpA

La funzione CMP

• La funzione Compare (CMP) confronta i dati di un canale (16bit) o una costante, con i dati contenuti in un altro canale

• In relazione al risultato del confronto vengono attivati iseguenti flag di sistema:

– Maggiore (Greather -P_GT-)– Minore (Less -P_LE-)– Uguale (Equal -P_EQ-)

• Uno ed uno solo dei flag tra P_GT, P_LE e P_EQ verrà settatoal termine del confronto

59

OMRON Electronics SpA

La funzione CMP

• Poiché i flag P_GT, P_EQ, P_LT vengono gestiti da varieistruzioni (e comunque vengono resettati a fine scansione), ènecessario gestire il risultato del confronto con un ramocircuitale immediatamente successivo a quello che ha attivatola CMP

• Le costanti utilizzabili nella comparazione possono essere siaesadecimali (0…FFFF) che BCD (0…9999)

60

OMRON Electronics SpA

ESERCIZIO 9: Cronometro

• Realizzare un cronometro che gestisca isecondi e i decimi di secondo

• Un unico pulsante dovrà comandare loStart e lo Stop del cronometro

• Prevedere anche un pulsante di Reset

61

OMRON Electronics SpA

ESERCIZIO 9: Soluzione

62

OMRON Electronics SpA

ESERCIZIO 9: Soluzione

63

OMRON Electronics SpA

ESERCIZIO 9: Soluzione

64

OMRON Electronics SpA

• Come già sottolineato, le nuove famiglie di PLC CJ1 e CS1supportano un insieme di nuove istruzioni

• Tra queste, sono state introdotte anche alcune funzionicosiddette ‘intermedie’ che non si trovano al termine dellaRung come tutte le altre, bensì all’interno di essa, e richiedonoquindi anche un segnale di uscita

• L’utilizzo di queste istruzioni in alcuni casi semplificanotevolmente la stesura del programma

• Esempio:

Introduzione alle nuove istruzioni

65

OMRON Electronics SpA

• Istruzioni di ingresso differenziate:– Fronte di salita (@)– Fronte di discesa (%)

• Istruzioni di refresh immediato:– Refresh immediato di un ingresso o di un’uscita (!)– Possibile combinazione con la differenziazione

• Istruzioni UP e DOWN– Come DIFU e DIFD– Sono istruzioni intermedie che non richiedono di un bit di appoggio

Introduzione alle nuove istruzioni

66

OMRON Electronics SpA

Introduzione alle nuove istruzioni

• Istruzioni di comparazione:– Sono istruzioni intermedie (=, <>, <, <=, >, >=)– Suffisso S ( p.es: >S ): Confronto di dati binari con segno– Suffisso L ( p.es: >L ): Confronto di dati su doppia word

• Istruzioni di Set e Reset multiplo:– SETA(530) : Imposta ad 1 il numero specificato di bit consecutivi a

partire da un determinato bit del canale iniziale stabilito– RSTA(531) : Imposta a 0 il numero specificato di bit consecutivi a

partire da un determinato bit del canale iniziale stabilito

67

OMRON Electronics SpA

Esercizio

• Alla luce delle nuove istruzioni di comparazione e di gestionedei fronti di salita, studiare le soluzioni alternative per risolvereil problema del cronometro, discusso nell’esercizio precedente

• Valutare dove le nuove soluzioni rappresentano o meno unmiglioramento nella leggibilità, nella struttura e nella logica delprogramma.

68

OMRON Electronics SpA

La funzione WSFT

• L’istruzione WSFT permette di realizzare uno scorrimento datia livello di canale.

• Lo scorrimento può avvenire su uno o più canali appartenentialla stessa area dati

• Ad ogni esecuzione dell’istruzione si ha uno scorrimento datipari ad un intero canale

69

OMRON Electronics SpA

000.00

WSFT(16)

DM 0015

DM 0017

#0000

#1234

#5678

DM 0015

DM 0016

DM 0017

Dopo di WSFT(16)

#1234

#5678

#9012

DM 0015

DM 0016

DM 0017

Prima di WSFT(16)

#0000

Dato perso

La funzione WSFT

• Dopo lo scorrimento, nel canale di partenza viene scritto ilvalore 0 mentre il contenuto dell’ultimo canale viene perso

• Esempio:

70

OMRON Electronics SpA

• L’immagine di processo (IP) degli I/O viene normalmenteaggiornata a fine scansione.

• L’istruzione IORF (aggiornamento degli I/O) provoca,nell’istante in cui viene eseguita, l’aggiornamento reale deicanali allocati ai moduli di I/O standard o ai moduli di I/Ospeciali

La funzione IORF

71

OMRON Electronics SpA

La funzione IORF

• Questa istruzione può essere utilizzata per ovviare a problemilegati al campionamento a scansione della IP, nel caso in cui siabbiano tempi di scansione elevati

• L’IORF può essere utilizzata per campionare quindi il segnalecon una frequenza più elevata

72

OMRON Electronics SpA

I tipi di dati e leistruzioni aritmetiche

73

OMRON Electronics SpA

Tipo Dimensione Segno Formato Range Note

BOOL 1 Bit - Binary 0/1 Indirizzo di un Bit di ingresso o uscita, stati possibili 0OFF e 1 ON.

INT 1 word Sì Binary -32768 / +32767 Indirizzo di una word binaria con segno.

DINT 2 word Sì Binary -2147483648+2147483647

Indirizzo di una doppia word binaria con segno.

LINT 4 word Sì Binary -9,223372036855x1018

+9,223372036855x1018Indirizzo di un intero con segno quadruplo (4 wordbinarie).

UINT 1 word No Binary 0 / 65535 Indirizzo di una word binaria senza segno.

UDINT 2 word No Binary 0 / 429467295 Indirizzo di una doppia word binaria senza segno.

ULINT 4 word No Binary 0 / 1,844674407371x 1019 Indirizzo di un intero senza segno quadruplo (4 wordbinarie).

UINT_BCD 1 word No BCD 0 / 9999 Indirizzo di una word in formato BCD (4 digit)

UDINT_BCD 2 word No BCD 0 / 99999999 Indirizzo di una doppia word in formato BCD (8 digit)

ULINT_BCD 4 word No BCD 0 / 9999999999999999 Indirizzo di un intero in formato BCD a 16 digit.

REAL 2 word Sì IEEE -3.402823 x 1038

-1.175494 x 10-38

01.175494 x 10-38

3.402823 x 1038

Indirizzo di una doppia word (32Bit) gestita in formatofloating point IEEE. Questo formato viene usato per leoperazioni floating point dei CVM1-V2 e dei CS1.

CHANNEL 1 o più word - - - Indirizzo di una o più word. Su questo tipo nonvengono effettuati controlli ne conversioni.

NUMBER - No Decimal - Nome simbolico utilizzabile al posto di una costantenumerica.

Tipi di dati

74

OMRON Electronics SpA

• Ogni istruzione ha, per i propri operandi, dei Tipi di datipredefiniti.

• Questo rende possibile un potente controllo sui dati in quanto,alla compilazione, il Cx-Programmer effettua un confronto trail tipo dell’operando inserito e il tipo dell’operando accettabiledall’istruzione.

• Esempio: inserendo un dato definito UINT come operando diuna +B(400) (somma BCD senza carry), alla compilazioneviene generato un segnale di Warning.

• Serà comunque possibile trasferire il programma sul PLC.

Tipi di dati

75

OMRON Electronics SpA

Istruzioni di somma e sottrazione

• Storicamente le istruzioni aritmetiche più comunemente utilizzate(ADD, SUB,.. ecc) lavoravano in formato BCD ed erano quindisoggette a tutte le limitazioni derivanti da quel tipo di codifica

• Inoltre il flag di Carry (o riporto) CY veniva sempre sommato osottratto agli operandi, e doveva quindi essere trattato conparticolari istruzioni di Set Carry (STC) e Clear Carry (CLC) inmodo da gestire correttamente Overflow e risultati negativi

• Nella nuova generazione di PLC le istruzioni aritmetichelavorano invece di default in esadecimale (se non specificatodiversamente) ed il flag di Carry non influisce il risultato

76

OMRON Electronics SpA

Istruzioni di somma e sottrazione

• Istruzioni di somma e sottrazione binaria:– + (-) : Somma (sottrazione) binaria con segno senza CY– +L (-L) : Somma (sottrazione) binaria con segno senza CY (2 word)– +C (-C) : Somma (sottrazione) binaria con segno con CY– +CL(-CL) : Somma (sottrazione) binaria con segno con CY (2 word)

• Istruzioni di somma e sottrazione BCD:– +B (-B) : Somma (sottrazione) BCD senza CY– +BL (-BL) : Somma (sottrazione) BCD senza CY (2 word)– +BC (-BC) : Somma (sottrazione) BCD con CY– +BCL(-BCL): Somma (sottrazione) BCD con CY (2 word)

77

OMRON Electronics SpA

Istruzioni di moltiplicazione e divisione

• Istruzioni di moltiplicazione e divisione binaria:– * (/) : Moltiplicazione (divisione) binaria con segno– *L (/L) : Moltiplicazione (divisione) binaria con segno (2 word)– *U (/U) : Moltiplicazione (divisione) binaria senza segno– *UL(/UL) : Moltiplicazione (divisione) binaria senza segno (2 word)

• Istruzioni di moltiplicazione e divisione BCD:– *B (/B) : Moltiplicazione (divisione) BCD– *BL (/BL) : Moltiplicazione (divisione) BCD (2 word)

78

OMRON Electronics SpA

Tabella di comparazione

Tipo di operazione PLC serie CPM1/CPM2,CQM1, C200HAlpha

PLC serieCJ1/CS1

Somma (Sottrazione) BCD senza riporto -- +B (-B)

Somma (Sottrazione) BCD con riporto ADD (SUB) +BC (-BC)

Somma (Sottrazione) Binaria senza riporto -- + (-)

Somma (Sottrazione) Binaria con riporto ADB (SBB) +C (-C)

Somma (Sottrazione) BCD senza riporto (2 word) -- +BL

Somma (Sottrazione) BCD con riporto (2 word) ADDL (SUBL) +BCL

Somma (Sottrazione) Binaria senza riporto (2 word) -- +L (-L)

Somma (Sottrazione) Binaria con riporto (2 word) ADBL (SBBL) +CL (-CL)

Moltiplicazione (Divisione) BCD MUL (DIV) *B (/B)

Moltiplicazione (Divisione) Binaria con segno MBS (DBS) * (/)

Moltiplicazione (Divisione) Binaria senza segno MLB (DVB) *U (/U)

Moltiplicazione (Divisione) BCD (2 word) MULL (DIVL) *BL (/BL)

Moltiplicazione (Divisione) Binaria con segno (2 word) MBSL (DBSL) *L (/L)

Moltiplicazione (Divisione) Binaria senza segno (2 word) -- *UL (/UL)

79

OMRON Electronics SpA

L’istruzione di somma (+)

• L’istruzione di somma + (400) esegue la somma binaria consegno tra due dati a 16 bit (canali e/o costanti)

• Il bit di Carry NON viene sommato al risultato• Gli operandi dell’istruzione sono tre:

– Au e Ad: Addendi. Aree: CIO, W, H, A (da A0 ad A959), T, C, D, E, #,IR (da IR0 a IR15)

– R: Risultato. Aree: CIO, W, H, A (da A448 ad A959), T, C, D, E, #, IR(da IR0 a IR15)

80

OMRON Electronics SpA

L’istruzione di somma con Carry (+C)

• L’istruzione di somma con Carry +C (402) esegue la sommabinaria con segno tra due dati a 16 bit (canali e/o costanti)

• Il bit di Carry viene sommato al risultato• Gli operandi dell’istruzione sono tre:

– Au e Ad: Addendi. Aree: CIO, W, H, A (da A0 ad A959), T, C, D, E, #,IR (da IR0 a IR15)

– R: Risultato (A1+A2+P_CY). Aree: CIO, W, H, A (da A448 ad A959),T, C, D, E, #, IR (da IR0 a IR15)

81

OMRON Electronics SpA

Le istruzioni di somma

• Il flag di riporto P_CY=1 indica che la somma dei due addendiha superato il limite 7FFF (9999 per le somme BCD)

• Nel caso di somme con 8 o più cifre (somme combinate) ilriporto dovrà essere resettato solo per la prima somma

• Se il risultato dell’operazione di somma è 0, il flag di ugualeP_EQ andrà ad 1

• Nel caso di somme BCD, se entrambi gli addendi non sono informato BCD, l’operazione di somma non viene eseguita e siavrà il flag di errore P_ER=1

82

OMRON Electronics SpA

L’istruzione di sottrazione (-)

• L’istruzione di sottrazione - (410) esegue la sottrazione binariacon segno tra due dati a 16 bit (canali e/o costanti)

• Il bit di Carry NON viene sottratto al risultato• Gli operandi dell’istruzione sono tre:

– Mi e Su: Minuendo e sottraendo. Aree: CIO, W, H, A (da A0 ad A959),T, C, D, E, #, IR (da IR0 a IR15)

– R: Risultato. Aree: CIO, W, H, A (da A448 ad A959), T, C, D, E, #, IR(da IR0 a IR15)

83

OMRON Electronics SpA

L’istruzione di sottrazione con Carry (+C)

• L’istruzione di sottrazione con Carry -C (412) esegue lasottrazione binaria con segno tra due dati a 16 bit (canali e/ocostanti)

• Il bit di Carry viene sottratto al risultato• Gli operandi dell’istruzione sono tre:

– Mi e Su: Minuendo e sottraendo. Aree: CIO, W, H, A (da A0 ad A959),T, C, D, E, #, IR (da IR0 a IR15)

– R: Risultato (Mi-Su-P_CY). Aree: CIO, W, H, A (da A448 ad A959), T,C, D, E, #, IR (da IR0 a IR15)

84

OMRON Electronics SpA

Le istruzioni di sottrazione

• Il flag di riporto P_CY=1 indica che il risultato è negativo• In caso di risultato negativo, nel canale risultato si trova il

complemento a due (o a 10 nel caso di sottrazioni BCD) delrisultato corretto.

• Per ottenere il modulo del risultato (cioè il risultato corretto ameno del segno) si deve sottrarre 0 dal risultato stesso; peresempio è possibile utilizzare due sottrazioni in cascata edeseguire la seconda in base alla condizione del flag di riporto

• Nel caso di sottrazioni BCD, se entrambi gli addendi non sonoin formato BCD, l’operazione di somma non viene eseguita e siavrà il flag di errore P_ER=1

85

OMRON Electronics SpA

L’istruzione di moltiplicazione (*)

• L’istruzione di moltiplicazione *(420) esegue la moltiplicazionetra due dati binari con segno a 16 bit

• Gli operandi dell’istruzione sono tre:

– Md e Mr: Moltiplicando e Moltiplicatore. Aree: CIO, W, H, A (da A0 adA959), T, C, D, E, #, IR (da IR0 a IR15)

– R: Risultato. Aree: CIO, W, H, A (da A448 ad A959), T, C, D, E, #, IR(da IR0 a IR15)

86

OMRON Electronics SpA

L’istruzione di moltiplicazione (*)

• Il risultato della moltiplicazione verrà posto in due canaliconsecutivi

• Il canale specificato nell’istruzione come terzo parametro indicail canale meno significativo in cui verrà trasferito il risultato.

• Se il risultato della moltiplicazione è pari a 0 si alza il flag diuguale P_EQ

87

OMRON Electronics SpA

L’istruzione di divisione (/)

• L’istruzione di divisione /(420) esegue la divisione tra due datibinari con segno a 16 bit

• Gli operandi dell’istruzione sono tre:

– Dd e Dr: Dividendo e Divisore. Aree: CIO, W, H, A (da A0 ad A959), T,C, D, E, #, IR (da IR0 a IR15)

– R: Risultato. Aree: CIO, W, H, A (da A448 ad A959), T, C, D, E, #, IR(da IR0 a IR15)

88

OMRON Electronics SpA

L’istruzione di divisione (/)

• Il risultato della divisione verrà posto in due canali consecutivi esuddiviso in quoziente e resto

• Il canale successivo a quello specificato nell’istruzione cometerzo parametro viene riservato per il resto.

• Se il risultato della divisione è pari a 0 si alza il flag di ugualeP_EQ

• La divisione per zero non viene eseguita e si alza il flag di erroreP_ER

89

OMRON Electronics SpA

• Occorre prestare attenzione durante l’inserimento di costanticome operandi di istruzioni.

• Dalla tabella si nota che per operandi di istruzioni binarie, sonopossibili tre modi di inserimento di costanti (#, &, + e -).

• &,+,- si usano per inserire valori decimali mentre # denota unvalore esadecimale o BCD.

Uso delle costanti numeriche

90

OMRON Electronics SpA

SOMMA BINARIA RISULTATO+(400) &0010 &0010 D0 20 D0=0014 hex+(400) &0010 #0010 D1 26 D1=001A hex+(400) &0010 +10 D2 20 D2=0014 hex+(400) #0010 #0010 D3 32 D3=0020 hex+(400) #0010 +10 D4 26 D4=001A hex+(400) +10 +10 D5 20 D5=0014 hex+(400) - 10 +10 D6 0 D6=0000 hex+(400) - 10 - 10 D7 -20 D7=FFEC hex

Uso delle costanti numeriche

91

OMRON Electronics SpA

Costanti numeriche: esempio

92

OMRON Electronics SpA

Costanti numeriche: esempio