Академический Документы
Профессиональный Документы
Культура Документы
Funzioni di
combinazione a bit 1
SIMATIC 2
Funzioni tabellari
03/2000
Edizione 03
Avvertenze tecniche Il presente manuale contiene avvertenze tecniche relative alla sicurezza delle persone e alla
di sicurezza prevenzione dei danni materiali che vanno assolutamente osservate. Le avvertenze sono
contrassegnate da un triangolo e, a seconda del grado di pericolo, rappresentate nel modo seguente:
Pericolo di morte
! significa che la non osservanza delle relative misure di sicurezza provoca la morte, gravi lesioni alle
persone e ingenti danni materiali.
Pericolo
! significa che la non osservanza delle relative misure di sicurezza può causare la morte, gravi lesioni
alle persone e ingenti danni materiali.
Attenzione
! significa che la non osservanza delle relative misure di sicurezza può causare leggere lesioni alle
persone o lievi danni materiali.
Avvertenza
è una informazione importante sul prodotto, sull'uso dello stesso o su quelle parti della
documentazione su cui si deve prestare una particolare attenzione.
Personale qualificato La messa in servizio ed il funzionamento del dispositivo devono essere effettuati solo in base al
manuale.
Interventi nel dispositivo vanno effettuati esclusivamente da personale qualificato. Personale
qualificato ai sensi delle avvertenze di sicurezza contenute nella presente documentazione è quello
che dispone della qualifica a inserire, mettere a terra e contrassegnare, secondo gli standard della
tecnica di sicurezza, apparecchi, sistemi e circuiti elettrici.
Pericolo
! Il dispositivo deve essere impiegato solo per l'uso previsto nel catalogo e nella descrizione tecnica e solo
in connessione con apparecchiature e componenti esterni omologati dalla Siemens.
Per garantire un funzionamento ineccepibile e sicuro del prodotto sono assolutamente necessari un
trasporto, immagazzinamento, una installazione ed un montaggio conformi alle regole, nonché un uso
accurato ed una manutenzione appropriata.
Marchio di prodotto SIMATIC, SIMATIC NET e SIMATIC HMI sono marchi di prodotto della SIEMENS AG.
Tutte le altre sigle qui riportate possono corrispondere a marchi, il cui uso da parte di terzi, può violare i
diritti dei possessori.
La duplicazione e la cessione della presente documentazione Abbiamo controllato che il contenuto della presente
sono vietate, come pure l’uso improprio del suo contenuto, se documentazione corrisponda all’hardware e al software
non dietro autorizzazione scritta. Le trasgressioni sono passibili descritti. Non potendo tuttavia escludere eventuali differenze,
di risarcimento dei danni. Tutti i diritti sono riservati, in particolare non garantiamo una concordanza totale. Il contenuto della
quelli relativi ai brevetti e ai marchi registrati. presente documentazione viene tuttavia verificato
regolarmente, e le correzioni o modifiche eventualmente
necessarie sono contenute nelle edizioni successive. Saremo
lieti di ricevere qualunque tipo di proposta di miglioramento.
Siemens AG
Divisione Automazione Siemens AG 2000
Sistemi per l’automazione industriale Ci riserviamo eventuali modifiche
Postfach 4848, DĆ90327 Nürnberg
Siemens Aktiengesellschaft A5E00066870
Prefazione
Scopo del manuale Il presente manuale descrive e riporta esempi sulle funzioni S7 FC e sui blocchi
funzionali FB in linguaggio KOP (schema a contatti). Le FC e gli FB vengono
utilizzati per la programmazione dei controllori programmabili (PLC)
S7-300/S7-400. Il presente manuale può essere usato dall’utente come riferimento in
cui ricercare informazioni sulle funzioni disponibili.
Collocazione delle Le FC e gli FB descritti nel manuale sono memorizzati nella biblioteca standard di
funzioni S7 STEP 7 e possono essere copiati nella directory di destinazione del proprio
programma dal File Manager di STEP 7. Prima di procedere alla copia, ci si deve
assicurare che il programma non contenga FC o FB con lo stesso numero di quelli
che si vuole prelevare dalla biblioteca. In tal caso, si dovrà modificare il numero
delle FC o degli FB del programma o delle FC e degli FB che verranno copiati.
Come consultare il Nel manuale le FC e gli FB sono raggruppati nel seguente modo:
manuale
• funzioni di combinazione a bit (capitolo 1)
• funzioni tabellari (capitolo 2)
• funzioni di scorrimento (capitolo 3)
• funzione e blocco funzionale di spostamento (capitolo 4)
• funzione e blocchi funzionali di temporizzazione (capitolo 5)
• funzioni e blocco funzionale di conversione (capitolo 6)
• funzioni matematiche in virgola mobile (capitolo 7)
• blocchi funzionali di confronto (capitolo 8)
• glossario: elenca in ordine alfabetico le definizioni dei termini e dei concetti più
importanti nella programmazione KOP.
Documentazione Questo manuale fa parte del pacchetto di documentazione di STEP 7 che contiene i
di STEP 7 manuali elencati nella tabella qui riportata.
Titolo Contenuto
Primi passi ed esercitazioni Questo prontuario consente un facile approccio alle procedure di configurazione e
con STEP 7 programmazione dell’S7-300/400. E’ utile soprattutto a coloro che utilizzano il sistema di
automazione S7 per la prima volta.
Manuale Il manuale ”Software di sistema per S7-300/400 - Sviluppo di programmi” fornisce le
Programmazione con nozioni fondamentali relative alla configurazione del sistema operativo e del programma
STEP 7 utente di una CPU S7. Questo manuale è destinato agli utenti che non conoscono i sistemi
S7-300 e S7-400. Offre una panoramica delle procedure di programmazione e consente
quindi di eseguire la configurazione del programma utente.
Manuale di riferimento Il sistema operativo delle CPU dell’S-7 include funzioni di sistema e blocchi organizzativi
Software di sistema per che possono risultare utili durante la programmazione. Il manuale fornisce una panoramica
S7-300/400 – Funzioni delle funzioni di sistema, dei blocchi organizzativi e delle funzioni standard caricabili
standard e di sistema disponibili con l’S7, nonché, a titolo informativo, descrizioni dettagliate delle interfacce da
utilizzare nel programma utente.
Manuale Il manuale ”STEP 7” illustra l’utilizzo principale e le funzioni del software di automazione
Configurazione STEP 7. Il manuale fornisce, sia all’utente principiante di STEP 7 che all’esperto di STEP 5,
dell’hardware e una panoramica delle procedure di configurazione, programmazione e messa in servizio
progettazione di dell’S7-300/400. Durante l’esecuzione del software, è possibile consultare la guida online.
collegamenti STEP 7
Manualedi conversione Il manuale di conversione ”Da S5 a S7” è utile se si desidera convertire il programma STEP
Da S5 a S7 5 per poterlo eseguire sulle CPU S7. Esso fornisce una panoramica delle procedure del
programma di conversione. Per istruzioni dettagliate sull’uso delle funzioni di conversione,
consultare la guida online, che descrive anche le interfacce delle funzioni convertite
disponibili in STEP 7.
Titolo Contenuto
Manuali di riferimento I manuali dei linguaggi di programmazione AWL, KOP e SCL contengono sia le istruzioni
AWL, KOP, SCL1 per l’utente che la descrizione del linguaggio. Per la programmazione dell’S7-300/S7-400 è
sufficiente un solo linguaggio; tuttavia, all’occorrenza, è possibile utilizzare vari linguaggi
all’interno di un unico progetto. Se si usa per la prima volta un linguaggio, è consigliabile
leggere il manuale per acquisire familiarità con le procedure di sviluppo dei programmi.
Durante l’esecuzione del software è possibile consultare la guida online, che fornisce
informazioni dettagliate sull’uso dei vari editor/compilatori.
Manuali I linguaggi GRAPH, HiGraph e CFC offrono ulteriori possibilità: permettono di creare
S7-GRAPH1 , comandi sequenziali, comandi di stato o collegamenti grafici di blocchi. I manuali
S7-HiGraph1, CFC1 contengono sia le istruzioni per l’utente che la descrizione dei linguaggi. Se si usa per la
prima volta un linguaggio, è consigliabile leggere il manuale utente per acquisire familiarità
con le procedure di sviluppo dei programmi.
Durante l’esecuzione del software (ad eccezione di HiGraph) è possibile consultare la guida
online, che fornisce informazioni dettagliate sull’uso dei vari editor/compilatori.
1 Pacchetti opzionali per il software di sistema per S7-300/400
Ulteriori manuali Le diverse CPU S7-300 e S7-400, le unità modulari S7-300 e S7-400 e le istruzioni
della CPU sono illustrate nei seguenti manuali:
• Per il controllore programmabile S7-300 fare riferimento ai manuali:
Hardware e installazione (dati CPU, dati dell’unità modulare) e la Lista
istruzioni.
• Per il controllore programmabile S7-400 fare riferimento ai manuali:
Hardware e installazione (dati CPU, dati dell’unità modulare) e la Lista
istruzioni.
Per ulteriori informazioni consultare la guida online.
Ulteriore Se nonostante questo o altri manuali STEP 7 permangono dei dubbi, se si desidera
assistenza avere informazioni sull’ordinazione di ulteriore documentazione o dispositivi e sui
corsi di formazione, contattare il più vicino distributore o ufficio vendite Siemens.
1.1 Resetta stato delle uscite comprese nel campo (RSET): FC82
Descrizione La funzione ”Resetta stato delle uscite comprese nel campo” (RSET) azzera lo stato
dei bit di un dato campo quando il bit MCR assume il valore 1. Se il bit MCR vale 0,
lo stato dei bit non viene modificato. Il numero di bit che devono essere resettati è
indicato da N e l’inizio del campo è puntato da S_BIT.
Parametri I parametri della funzione ”Resetta stato delle uscite comprese nel campo” (RSET)
sono illustrati nella tabella 1-1.
Tabella 1-1 Parametri della funzione ”Resetta stato delle uscite comprese nel campo” (FC82)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se il puntatore S_BIT punta all’area di memoria esterna di ingresso e uscita E/A
(memoria P), lo stato dei bit compresi nel campo non viene modificato e l’uscita ENO
viene impostata a 0.
Esempio La figura 1-1 illustra il funzionamento della funzione RSET. Se l’ingresso E 0.0 vale
1 (attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportato
S_BIT punta al primo bit all’indirizzo M0.0. Il parametro N specifica che devono
essere resettati 10 bit. Una volta eseguita l’istruzione, tutti i 10 bit del campo da M0.0
a M1.1 vengono impostati a 0.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
RSET
E0.0 FC82 A4.0
EN ENO
Figura 1-1 Resetta stato delle uscite comprese nel campo (RSET)
1.2 Resetta direttamente stato delle uscite comprese nel campo (RSETI)
Descrizione La funzione ”Resetta direttamente stato delle uscite comprese nel campo” (RSETI)
imposta a 0 lo stato dei byte di un dato campo quando il bit MCR assume il valore 1.
Se il bit MCR vale 0, lo stato dei byte del campo non viene modificato. S_BYTE
punta al primo byte del campo e N specifica il numero di byte che devono essere
resettati. La dimensione del campo viene espressa specificando il numero di bit che vi
sono compresi; ad esempio, per indicare un campo di 2 byte, si attribuisce a N il
valore 16 (ovvero 16 bit).
Avvertenza
Il valore di N deve essere un multiplo di otto (ad es. 8, 16, 24 ecc.).
Avvertenza
Anche i bit corrispondenti della tabella dell’immagine di processo delle uscite
(memoria A) vengono impostati a 0.
Parametri I parametri della funzione ”Resetta direttamente stato delle uscite comprese nel
campo” (RSETI) sono illustrati nella tabella 1-2.
Tabella 1-2 Parametri della funzione ”Resetta direttamente stato delle uscite comprese nel campo” (FC100)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni indicate qui di seguito, lo stato dei bit del campo
non viene modificato e l’uscita ENO viene impostata a 0.
• Il puntatore S_BYTE punta ad un’area di memoria diversa dall’area di memoria
esterna di ingresso e uscita E/A (memoria P).
• Il puntatore S_BYTE punta ad un operando non allineato al byte.
• Il valore di N non è un multiplo di otto.
Esempio La figura 1-2 illustra il funzionamento della funzione RSETI. Se l’ingresso E 0.0 vale
1 (attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportato
S_BYTE punta al primo byte all’indirizzo P2.0. Il parametro N specifica che devono
essere resettati 16 bit (2 byte). Una volta eseguita l’istruzione, tutti i bit del campo da
P2.0 a P3.7 vengono impostati a 0.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
RSETI
E0.0 FC100 A4.0
EN ENO
P#P 2.0 S_BYTE
16 N
Figura 1-2 Resetta direttamente stato delle uscite comprese nel campo (RSETI)
1.3 Imposta stato delle uscite comprese nel campo (SET): FC83
Descrizione La funzione ”Imposta stato delle uscite comprese nel campo” (SET) imposta a 1 lo
stato dei bit di un dato campo quando il bit MCR assume il valore 1. Se il bit MCR
vale 0, lo stato dei bit del campo non viene modificato. Il numero di bit che devono
essere impostati è indicato da N e l’inizio del campo è puntato da S_BIT.
Parametri I parametri della funzione ”Imposta stato delle uscite comprese nel campo” (SET)
sono illustrati nella tabella 1-3.
Tabella 1-3 Parametri della funzione ”Imposta stato delle uscite comprese nel campo” (FC83)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se il puntatore S_BIT punta all’area di memoria esterna di ingresso e uscita E/A
(memoria P), lo stato dei bit compresi nel campo non viene modificato e l’uscita ENO
viene impostata a 0.
Esempio La figura 1-3 illustra il funzionamento della funzione SET. Se l’ingresso E 0.0 vale 1
(attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportato
S_BIT punta al primo bit dell’indirizzo M0.0. Il parametro N specifica che devono
essere impostati 10 bit. Una volta eseguita l’istruzione, tutti i 10 bit del campo da
M0.0 a M1.1 vengono impostati a 1.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
SET
E0.0 FC83 A4.0
EN ENO
Figura 1-3 Imposta stato delle uscite comprese nel campo (SET)
1.4 Imposta direttamente stato delle uscite comprese nel campo (SETI):
FC101
Descrizione La funzione ”Imposta direttamente stato delle uscite comprese nel campo” (SETI)
imposta a 1 lo stato dei byte di un dato campo quando il bit MCR assume il valore 1.
Se il bit MCR vale 0, lo stato dei byte del campo non viene modificato. S_BYTE
punta al primo byte del campo e N specifica la dimensione del campo. Quest’ultima
viene espressa specificando il numero di bit del campo; ad esempio, per indicare un
campo di 2 byte si attribuisce a N il valore 16 (ovvero 16 bit).
Avvertenza
Il valore di N deve essere un multiplo di otto (ad es. 8, 16, 24 ecc.).
Avvertenza
Anche i bit corrispondenti della tabella dell’immagine di processo delle uscite
(memoria A) vengono impostati a 0.
Parametri I parametri della funzione ”Imposta direttamente stato delle uscite comprese nel
campo” (SETI) sono illustrati nella tabella 1-4.
Tabella 1-4 Parametri della funzione ”Imposta direttamente stato delle uscite comprese nel campo” (FC101)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni riportate qui di seguito, lo stato dei bit del campo
non viene modificato e l’uscita ENO viene impostata a 0.
• Il puntatore S_BYTE punta ad un’area di memoria diversa dall’area di memoria
esterna di ingresso e uscita E/A (area P).
• Il puntatore S_BYTE si riferisce ad un operando che non è allineato al byte.
• Il valore di N non è un multiplo di otto.
Esempio La figura 1-4 illustra il funzionamento della funzione SETI. Se l’ingresso E 0.0 vale 1
(attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportato
S_BYTE punta al primo byte dell’indirizzo P2.0. Il parametro N specifica che devono
essere impostati 16 bit (2 byte). Una volta eseguita l’istruzione, tutti i bit del campo da
P2.0 a P3.7 vengono impostati a 1.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
SETI
E0.0 FC101 A4.0
EN ENO
Figura 1-4 Imposta direttamente stato delle uscite comprese nel campo (SETI)
Descrizione La funzione ”Aggiungi dati alla tabella” (ATT) consente di aggiungere il contenuto
del parametro DATA nel primo indirizzo disponibile della tabella e di incrementare di
uno il numero di dati immessi. La tabella è composta di parole. Questa funzione
consente di inserire nelle tabelle dati da utilizzare per le funzioni FIFO e LIFO.
• Il primo indirizzo delle tabelle FIFO e LIFO contiene il numero massimo di parole
che vi possono essere immesse, corrispondente alla sua lunghezza.
• Il secondo indirizzo della tabella contiene il numero di parole immesse.
• Il terzo indirizzo contiene la prima parola di dati.
Avvertenza
Quando si crea una tabella si devono inizializzare i primi due elementi.
Parametri I parametri della funzione ”Aggiungi dati alla tabella” (ATT) sono riportati nella
tabella 2-1.
Tabella 2-1 Parametri della funzione ”Aggiungi dati alla tabella” (FC84)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Esempio La figura 2-1 illustra il funzionamento della funzione ATT. Se l’ingresso E 0.0 vale 1
(attivato), la funzione ATT viene eseguita. Nell’esempio qui riportato, il parametro
DATA è la quinta parola inserita e il numero di parole incrementa da 4 a 5.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
ATT
E0.0 FC84 A4.0
EN ENO
W#16#0024 DATA
P#DB1.DBX10.0 TABLE
Prima dell’esecuzione:
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0004
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0000
DBW24 = W#16#0000
Dopo l’esecuzione:
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000
Descrizione La funzione ”Restituisci primo dato immesso in tabella” (FIFO) restituisce il dato
meno recente della tabella FIFO sotto forma di valore funzionale. Il numero di dati
immessi decrementa di uno e quelli eventualmente rimanenti vengono spostati verso il
basso. La tabella FIFO è composta di parole. Per aggiungere parole alla tabella FIFO
si utilizza la funzione ATT.
• Il primo indirizzo delle tabelle FIFO e LIFO contiene il numero massimo di parole
che possono essere immesse, corrispondente alla sua lunghezza.
• Il secondo indirizzo della tabella contiene il numero di parole immesse.
• Il terzo indirizzo contiene la prima parola di dati.
Parametri I parametri della funzione ”Restituisci primo dato immesso in tabella” (FIFO) sono
riportati nella tabella 2-2.
Tabella 2-2 Parametri della funzione ”Restituisci primo dato immesso in tabella” (FC85)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se la tabella FIFO è vuota (numero di parole immesse = 0), il parametro RET_VAL
non viene modificato e l’uscita ENO viene impostata a 0.
Esempio La figura 2-2 illustra il funzionamento della funzione FIFO. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, la parola meno recente
della tabella viene restituita sotto forma di valore funzionale (MW2). Il numero di
parole immesse viene decrementato da 5 a 4 e quelle rimanenti vengono spostate
verso il basso.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
FIFO
E0.0 FC85 A4.0
EN ENO
P#DB1.DBX10.0 TABLE
RET_VAL MW2
Prima dell’esecuzione:
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0000
Dopo l’esecuzione:
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0004
DBW14 = W#16#0029
DBW16 = W#16#0090
DBW18 = W#16#0002
DBW20 = W#16#0024
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0012
Avvertenza
Il primo elemento della tabella (che ne specifica la lunghezza) deve essere
inizializzato.
Parametri I parametri della funzione ”Ricerca dato in tabella” (TBL_FIND) sono riportati nella
tabella 2-3.
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.
Errori Se si verifica una delle condizioni descritte nella tabella 2-4, i dati della tabella non
vengono modificati. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il
valore appropriato (vedere la tabella 2-4):
RET_VAL Spiegazione
W#16#0008 Non è stato trovato alcun valore corrispondente.
W#16#0009 E_TYPE e/o CDM non ammesso.
Esempio La figura 2-3 illustra il funzionamento della funzione TBL_FIND. Essa viene eseguita
se l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, poiché E_TYPE è
uguale a 4, i dati della tabella vengono memorizzati in parole che iniziano
all’indirizzo indicato dal parametro SRC. Tali parole vengono confrontate con il
modello 5555 memorizzato nell’indirizzo indicato dal parametro PATRN. Poiché il
valore di CDM è 1, durante la ricerca verrà individuato il primo valore del parametro
SRC uguale al modello. Una volta eseguita l’istruzione, il valore di INDX visualizzerà
l’indirizzo della tabella in cui è stato individuato il dato richiesto dal comando di
confronto.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
TBL_FIND
E0.0 FC86 A4.0
EN ENO
Il primo indirizzo della tabella indica la
P#DB1.DBX0.0 SRC RET_VAL MW0 lunghezza dell’operazione di ricerca. Il
P#DB2.DBX10.0 PATRN valore 0004 indica che la ricerca verrà
effettuata nei 4 indirizzi successivi.
B#16#01 CMD
Il parametro INDX passa dal valore
B#16#04 E_TYPE DW0 (prima dell’operazione) al valore
DW6 (dopo l’operazione) poiché il
MW2 INDX
modello all’indirizzo DW6 è uguale al
modello 5555 all’indirizzo di puntatore
PATRN.
Prima dell’esecuzione:
SRC (lunghezza tabella) DBW0 = W#16#0004
DBW2 = W#16#1111
DBW4 = W#16#3333
DBW6 = W#16#5555
DBW8 = W#16#7777
Dopo l’esecuzione:
INDX MW2 = W#16#0003
Descrizione La funzione ”Visualizza ultimo dato immesso in tabella” (LIFO) restituisce l’ultimo
dato immesso nella tabella LIFO (ovvero il più recente) sotto forma di valore
funzionale e decrementa di uno il numero di dati immessi. La tabella LIFO è
composta di parole. Per aggiungervi altre parole si utilizza la funzione ATT.
• Il primo indirizzo della tabella contiene il numero massimo di parole che possono
essere immesse, corrispondente alla sua lunghezza.
• Il secondo indirizzo della tabella contiene il numero di parole immesse.
• Il terzo indirizzo contiene la prima parola di dati.
Parametri I parametri della funzione ”Visualizza ultimo dato immesso in tabella” (LIFO) sono
riportati nella tabella 2-5.
Tabella 2-5 Parametri della funzione ”Visualizza ultimo dato immesso in tabella” (FC87)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se la tabella LIFO è vuota (numero di parole immesse = 0), il parametro RET_VAL
non viene modificato e l’uscita ENO viene impostata a 0.
Esempio La figura 2-4 illustra il funzionamento della funzione LIFO. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, la parola più recente
della tabella viene restituita sotto forma di valore funzionale (MW2). Il numero di
parole immesse viene decrementato da 5 a 4.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
LIFO
E0.0 FC87 A4.0
EN ENO
P#DB1.DBX10.0 TABLE
RET_VAL MW2
Prima dell’esecuzione :
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0000
Dopo l’esecuzione :
TABLE (lunghezza tabella) DBW10 = W#16#0006
numero di parole immesse DBW12 = W#16#0004
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0024
Avvertenza
Quando si crea la tabella si deve inizializzare il primo elemento.
Parametri I parametri della funzione ”Esegui operazione in tabella” (TBL) sono riportati nella
tabella 2-6.
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se CMD o E_TYPE non sono ammessi o sono incompatibili, i dati della tabella non
vengono modificati. L’uscita ENO viene impostata a 0 e RET_VAL viene posto
uguale a W#16#0008.
Esempio La figura 2-5 illustra il funzionamento della funzione TBL. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato SCR punta agli indirizzi
del blocco dati che verranno elaborati dall’istruzione. Poiché E_TYPE è uguale a 4, i
dati della tabella vengono memorizzati in parole che iniziano all’indirizzo puntato dal
parametro SRC. Poiché il valore di CDM è 4 (azzera), quando viene eseguita
l’istruzione, tutte le parole della tabella vengono azzerate. Poiché come primo dato
della tabella è stata impostata una lunghezza pari a 5, verranno azzerati i cinque
indirizzi successivi.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
TBL
E0.0 FC88 A4.0
EN ENO
B#16#04 CMD
B#16#04 E_TYPE
Prima dell’esecuzione:
SRC (lunghezza tabella) DBW0 = W#16#0005
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000
DBW10 = W#16#6000
Dopo l’esecuzione:
SRC (lunghezza tabella) DBW0 = W#16#0005
DBW2 = W#16#0000
DBW4 = W#16#0000
DBW6 = W#16#0000
DBW8 = W#16#0000
DBW10 = W#16#0000
Descrizione La funzione ”Copia dato dalla tabella” (TBL_WRD) copia il dato a cui punta INDX
dalla tabella SRC nell’indirizzo indicato da DEST e incrementa il valore di INDX, a
condizione che esso sia inferiore alla lunghezza massima indicata nella prima parola
della tabella, SRC[0]. Se, quando si richiama l’operazione, INDX contiene l’ultimo
dato immesso nella tabella, dopo l’elaborazione il bit all’uscita A viene impostato a 0.
• Il primo indirizzo della tabella contiene il numero massimo di dati che vi possono
essere immessi, corrispondente alla sua lunghezza.
• Il secondo indirizzo della tabella contiene il primo dato.
Avvertenza
Quando si crea la tabella si deve inizializzare il primo elemento.
Parametri La tabella 2-7 descrive i parametri della funzione ”Copia dato dalla tabella”
(TBL_WRD).
Tabella 2-7 Parametri della funzione ”Copia dato dalla tabella” (FC89)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni descritte nella tabella 2-8, la funzione non viene
eseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valore
appropriato.
RET_VAL Spiegazione
W#16#0007 INDX vale 0.
W#16#0008 E_TYPE non ammesso.
W#16#0009 INDX punta al di fuori della tabella.
Esempio La figura 2-6 illustra il funzionamento della funzione TBL_WRD. Essa viene eseguita
se l’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 4, le parole
memorizzate nella tabella a partire dall’indirizzo puntato da SRC, verranno copiate
nell’indirizzo puntato da DEST. Il dato contenuto in INDX punta alla parola della
tabella che verrà copiata. Dopo che l’istruzione è stata eseguita correttamente, il
valore di INDX viene automaticamente incrementato di uno oltre al dato copiato.
Nell’esempio qui riportato, quando viene richiamata l’operazione, INDX non assume
l’ultimo valore immesso nella tabella, per cui dopo l’esecuzione A viene impostato
a 1.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
TBL_WRD
E0.0 FC89 A4.0
EN ENO
RET_VAL MW0
P#DB1.DBX0.0 SRC
Q M2.0
P#DB2.DBX20.0 DEST
B#16#04 E_TYPE
MW1 INDX
Prima dell’esecuzione:
SRC (lunghezza tabella) DBW0 = W#16#0004
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000
Dopo l’esecuzione:
INDX MW1 = W#16#0002
DEST DBW20 = W#16#2000
Avvertenza
Quando si crea la tabella si deve inizializzare il primo elemento.
Parametri La tabella 2-9 descrive i parametri della funzione ”Combina e memorizza logicamente
il valore con l’elemento della tabella” (WRD_TBL).
Tabella 2-9 Parametri della funzione ”Combina e memorizza logicamente il valore con l’elemento della tabella” (FC91)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni descritte nella tabella 2-10, la funzione non viene
eseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valore
appropriato.
Tabella 2-10 Condizioni di errore di FC91
RET_VAL Spiegazione
W#16#0007 INDX vale 0.
W#16#0008 CMD o E_TYPE non ammessi oppure incompatibili.
W#16#0009 INDX punta oltre la fine della tabella.
Esempio La figura 2-7 illustra il funzionamento della funzione WRD_TBL. Essa viene eseguita
se l’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 6, i dati a doppia
parola della tabella vengono memorizzati a partire dall’indirizzo di memoria puntato
da TABLE. La lunghezza impostata nella prima parola indica che la tabella contiene
tre doppie parole. INDX punta all’indirizzo della tabella che verrà elaborato. Poiché il
valore di CMD vale 8, l’istruzione esegue una combinazione OR utilizzando il valore
puntato dal parametro INDX. Poiché INDX vale 2, la seconda doppia parola
(66665544) viene combinata mediante OR con il valore indicato dal parametro SCR
(11111111). Una volta eseguita l’operazione combinatoria OR, ne viene copiato il
risultato (77775555) nella tabella e il valore di INDX viene automaticamente
incrementato di un indirizzo. Se, quando si richiama l’operazione, INDX è impostato
all’ultimo elemento della tabella, dopo l’esecuzione della funzione, il bit dell’uscita A
viene impostato a 0. Nell’esempio qui riportato, al richiamo dell’operazione, INDX
non è impostato all’ultimo elemento della tabella per cui dopo l’operazione A viene
impostato a 1.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
WRD_TBL
E0.0 FC91 A4.0
EN ENO
P#DB2.DBX20.0 SRC RET_VAL MW0
P#DB1.DBX0.0 TABLE Q M 2.0
B#16#08 CMD
B#16#06 E_TYPE
MW1 INDX
Prima dell’esecuzione:
SRC DBD20 = DW#16#11111111
TABLE (lunghezza tabella) DBW0 = W#16#0003
DBD2 = DW#16#99998877
DBD6 = DW#16#66665544
DBD10 = DW#16#33332222
INDX MW1 = W#16#0002
Dopo l’esecuzione:
TABLE (lunghezza tabella) DBW0 = W#16#0003
DBD2 = DW#16#99998877
DBD6 = DW#16#77775555
DBD10 = DW#16#33332222
INDX MW1 = W#16#0003
Figura 2-7 Combina e memorizza logicamente il valore con l’elemento della tabella
(WRD_TBL)
Descrizione La funzione ”Tabelle con dati correlati” (CDT) confronta un valore di ingresso (IN)
con una tabella di valori preesistente (IN_TBL) e ricerca il primo valore maggiore o
uguale ad esso. Se lo individua, ricerca nella tabella di uscita (OUT_TBL) il valore
collocato nel corrispondente indirizzo e lo copia nell’indirizzo puntato da OUT.
• I valori della tabella di ingresso devono essere disposti in ordine crescente. Il
valore più piccolo deve cioè trovarsi nel primo indirizzo della tabella e quello più
grande nell’ultima.
• La dimensione del valore di ingresso, i valori della tabella e il valore di uscita sono
determinati da E_TYPE.
• Il primo indirizzo contiene il numero di dati immessi della tabella, corrispondente
alla sua lunghezza.
• Il secondo indirizzo contiene il primo dato immesso nella tabella.
• Il numero di dati delle due tabelle deve essere uguale o maggiore di zero.
Avvertenza
Quando si crea la tabella si deve inizializzare il primo elemento.
Parametri I parametri della funzione ”Tabelle con dati correlati” (CDT) sono illustrati dalla
tabella 2-11.
Tabella 2-11 Parametri della funzione ”Tabelle con dati correlati” (CTD): FC103
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni descritte nella tabella 2-12, la funzione non viene
eseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valore
appropriato.
Tabella 2-12 Condizioni di errore di FC103
RET_VAL Spiegazione
W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametro
funzionale.
W#16#0002 E_TYPE non ammesso.
W#16#0003 La lunghezza della tabella di ingresso e di quella di uscita non
coincidono.
W#16#0004 La lunghezza della tabella è 0.
W#16#0007 IN_TBL non contiene valori maggiori o uguali al valore di ingresso.
Esempio La figura 2-8 illustra il funzionamento della funzione CDT. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato sia IN_TBL che
OUT_TBL contengono cinque elementi, come indicato dalla prima parola di entrambe
le tabelle. Il tipo di dati degli elementi della tabella è INTEGER, come indicato da
E_TYPE e il valore puntato da IN è 22. Il valore di IN_TBL maggiore o uguale a 22 è
64 ed occupa l’indirizzo 5. Poiché il valore di OUT_TBL correlato è 25, nell’indirizzo
puntato da OUT verrà scritto il valore 25.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
CDT
E0.0 FC103 A4.0
EN ENO
P#DB1.DBX0.0 IN_TBL RET_VAL MW0
P#DB1.DBX100.0 OUT_TBL
P#DB1.DBX200.0 IN
P#DB1.DBX210.0 OUT
B#16#05 E_TYPE
Prima dell’esecuzione:
IN_TBL (lunghezza tabella) DBW0 = W#16#0005
DBW2 = 2
DBW4 = 4
DBW6 = 8
DBW8 = 16
DBW10 = 64
OUT_TBL (lunghezza tabella) DBW100= W#16#0005
DBW102= 5
DBW104= 10
DBW106= 15
DBW108= 20
DBW110= 25
IN DBW200= 22
OUT DBW210= 0
Dopo l’esecuzione:
OUT DBW210= 25
Avvertenza
Quando si creano le tabelle si deve inizializzare il primo elemento.
Parametri I parametri della funzione ”Da tabella origine a tabella di destinazione” (TBL_TBL)
sono illustrati dalla tabella 2-13.
Tabella 2-13 Parametri della funzione ”Da tabella di origine a tabella di destinazione” (FC104)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni descritte nella tabella 2-14, la funzione non viene
eseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valore
appropriato.
Tabella 2-14 Condizioni di errore di FC104
RET_VAL Spiegazione
W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametro
funzionale.
W#16#0002 E_TYPE non ammesso.
W#16#0003 La lunghezza della tabella di ingresso e di quella di uscita non
coincidono.
W#16#0004 La lunghezza della tabella è pari a 0.
W#16#0005 E_TYPE e CMD non sono compatibili.
W#16#0006 CMD non ammesso.
Esempio La figura 2-9 illustra il funzionamento della funzione TBL_TBL. Essa viene eseguita
se l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, tutte le tabella
contengono tre elementi, come indicato dalla prima parola di ciascuna tabella. Il tipo
di dati dei valori è WORD, come indicato da E_TYPE. Il comando da eseguire in
TBL1 e TBL2 è AND come indicato da CMD.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
TBL_TBL
E0.0 FC104 A4.0
EN ENO
P#DB1.DBX0.0 TBL1 RET_VAL MW0
P#DB1.DBX20.0 TBL2
P#DB1.DBX40.0 DEST_TBL
B#16#07 CMD
B#16#04 E_TYPE
Prima dell’esecuzione:
TBL1 (lunghezza tabella) DBW0 = W#16#0003
DBW2 = W#16#00FF
DBW4 = W#16#FF00
DBW6 = W#16#FFFF
TBL2 (lunghezza tabella) DBW20 = W#16#0003
DBW22 = W#16#1111
DBW24 = W#16#2222
DBW26 = W#16#3333
DEST_TBL (lunghezza tabella) DBW40 = W#16#0003
DBW42 = W#16#0000
DBW44 = W#16#0000
DBW46 = W#16#0000
Dopo l’esecuzione:
DEST_TBL (lunghezza tabella) DBW40 = W#16#0003
DBW42 = W#16#0011
DBW44 = W#16#2200
DBW46 = W#16#3333
Descrizione La funzione ”Inserisci e sposta dati nel registro di scorrimento” (WSR) fa scorrere i
dati dall’origine indicata in un registro di scorrimento. Ciascun dato viene spostato
nella posizione successiva. LENGTH specifica il numero di posizioni da spostare.
Dopo l’operazione di scorrimento, i dati contenuti nell’ultima posizione del registro
vanno persi. Ogni volta che si esegue l’operazione i nuovi dati vengono letti da
un’origine (puntata da S_DATA) e spostati nella posizione iniziale del registro di
scorrimento (START) quando l’ingresso RESET viene impostato a 0. Se tale ingresso
è impostato a 1, quando viene eseguita l’operazione le posizioni di registro vengono
impostate a zero. L’uscita A viene attivata quando il registro di scorrimento è vuoto o
ha valore 0 (ovvero dopo un riset o dopo che sono stati inseriti tutti gli zeri).
Parametri I parametri della funzione ”Inserisci e sposta dati nel registro di scorrimento” (WSR)
sono descritti nella tabella 3-1.
Tabella 3-1 Parametri della funzione ”Inserisci e sposta dati nel registro di scorrimento” (FC 90)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se viene utilizzato un E_TYPE non ammesso, la funzione non viene eseguita e ENO
viene impostato a 0.
Esempio La figura 3-1 illustra il funzionamento della funzione WSR. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 4, i dati a parola
vengono memorizzati nella tabella a partire dalla locazione puntata da START. Poiché
il parametro LENGTH è impostato a 4, verranno spostate 4 parole a partire dalla
prima puntata da START. Dopo che il primo valore della tabella è stato spostato nella
posizione successiva, la prima posizione viene riempita con i dati puntati dal
puntatore D_DATA. L’ultimo valore della tabella va perso. Se l’ingresso RESET
viene impostato a 1, le posizioni della tabella vengono impostate a 0 invece che
spostate.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
WSR
E0.0 FC90 A4.0
EN ENO
P#DB2.DBX6.0 S_DATA
P#DB1.DBX0.0 START
B#16#04 LENGTH
B#16#04 E_TYPE
Prima dell’esecuzione
START DW0 = W#16#1111
DW2 = W#16#2222
DW4 = W#16#3333
DW6 = W#16#4444
S_DATA DW6 = W#16#1234
RESET M1.0 = FALSE
Dopo l’esecuzione
START DW0 = W#16#1234
DW2 = W#16#1111
DW4 = W#16#2222
DW6 = W#16#3333
Descrizione La funzione ”Inserisci bit nel registro di scorrimento” (SHRB) inserisce il bit
specificato nell’origine DATA in un registro di scorrimento. Ogni volta che si esegue
l’operazione i nuovi dati vengono letti dal registro di scorrimento e spostati nella
posizione iniziale (puntata da S_BIT) mentre l’ingresso RESET ha valore 0. Tutti i bit
successivi vengono spostati di una posizione. Dopo lo spostamento il bit contenuto
nell’ultima posizione (S_BIT + N) va perso. Se l’ingresso RESET è impostato a 1, le
posizioni della tabella, invece di essere spostate, assumono valore 0.
Parametri I parametri della funzione ”Inserisci bit nel registro di scorrimento” (SHRB) sono
descritti nella tabella 3-2.
Tabella 3-2 Parametri della funzione ”Inserisci bit nel registro di scorrimento” (FC92)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Esempio La figura 3-2 illustra il funzionamento della funzione SHRB. Essa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Nel presente esempio il parametro N è impostato a
14 (corrispondente a E in notazione esadecimale) e indica che verranno spostate 14
posizioni di bit, a partire dal bit puntato da S_BIT. Dopo lo spostamento dei bit, la
prima posizione viene riempita con i dati presenti su DATA e l’ultimo bit va perso.
Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.
SHRB
E0.0 FC92 A4.0
EN ENO
0 DATA
0 RESET
P#DB1.DBX1.4 S_BIT
B#16#0E N
Parametri I parametri della funzione ”Sposta un blocco dati” con indirizzamento indiretto
(IBLKMOV) sono descritti nella tabella 4-1.
Tabella 4-1 Parametri della funzione ”Sposta un blocco dati” con indirizzamento indiretto (FC81)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.
Errori Se si specifica un E_TYPE non ammesso, la funzione non viene eseguita e l’uscita
ENO viene impostata a 0.
Esempio La figura 4-1 illustra il funzionamento della funzione ”Sposta un blocco dati con
indirizzamento indiretto”. Essa viene eseguita se l’ingresso E 0.0 vale 1 (attivato).
S_DATA punta a DB1.DBX10.0 che contiene il puntatore DB1.DBX50.0
(corrispondente alla posizione iniziale dei dati di origine). D_DATA punta a
DB1.DBX20.0 che contiene il puntatore DB2.DBX10.0 (corrispondente alla posizione
iniziale dei dati di destinazione). Dopo l’esecuzione della funzione, viene spostato un
blocco di due parole.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1.
IBLKMOV
E0.0 FC81 A4.0
EN ENO
P#DB1.DBX0.0 S_DATA
P#DB1.DBX10.0 LENGTH
P#DB1.DBX20.0 D_DATA
B#16#04 E_TYPE
Prima dell’esecuzione:
S_DATA DBX0.0 = P#DB1.DBX50.0
DBW50 = W#16#2424
DBW52 = W#16#2525
LENGTH DBW10 = W#16#0002
Dopo l’esecuzione:
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525
Parametri I parametri del blocco funzionale ”Impacchetta e distribuisci dati” (PACK) sono
descritti nella tabella 4-2.
Tabella 4-2 Parametri del blocco funzionale ”Impacchetta e distribuisci dati” (FB86)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni descritte nella tabella 4-3, il blocco funzionale non
viene eseguito. L’uscita ENO viene impostata a 0 e viene impostato il relativo
ERR_CODE.
Tabella 4-3 Condizioni di errore di FC86
ERR_CODE Spiegazione
W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametro
funzionale.
W#16#0002 E_TYPE non ammesso.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB86
PACK
E0.0 FB86 A4.0
EN ENO
Prima dell’esecuzione:
TABLE DBB0 = B#16#00
DBB1 = B#16#00
DBB2 = B#16#00
DBB3 = B#16#00
DBB4 = B#16#00
DBB4 = B#16#00
P_DATA1 M200.0 = TRUE
M200.1 = TRUE
P_DATA2 M210.0 = B#16#FF
P_DATA3 M300.0 = TRUE
M300.1 = TRUE
P_DATA4 MW330 = B#16#FFFF
DB86 di istanza
DIR DBX58.0 = FALSE
Dopo l’esecuzione:
TABLE DBB0 = B#16#03
DBB1 = B#16#FF
DBB2 = B#16#03
DBB3 = B#16#00
DBB4 = B#16#FF
DBB4 = B#16#FF
Descrizione La funzione ”Temporizzatore software con memoria per ritardo a inserzione” (TONR)
accumula il tempo finché il valore ET (tempo trascorso) non diventa uguale o
superiore al valore PV (tempo preimpostato). Poiché per accumulare il tempo, la
funzione TONR si serve del tempo di esecuzione dell’ultimo ciclo dell’OB (blocco
organizzativo) in cui viene eseguita, essa viene utilizzata solo negli OB con ciclo
ripetitivo, quali l’OB1 e gli OB ciclici.
Avvertenza
Il tempo di scansione dell’OB deve essere copiato dalle variabili locali iniziali nella
variabile globale DELTA_T della tabella di dichiarazione delle variabili dell’OB.
Parametri I parametri della funzione ”Temporizzatore software per ritardo a inserzione con
memoria” (TONR) sono illustrati nella tabella 5-1.
Tabella 5-1 Parametri della funzione ”Temporizzatore software per ritardo a inserzione con memoria” (FC80)
Esempio La figura 5-1 illustra il funzionamento dell’istruzione TONR. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato). Se E 0.1 vale 1, E 0.2 vale 0 e ET vale meno di
0, DELTA _T viene sommato a ET. Se ET è inferiore a PV, il valore di A 1.1 resterà 0.
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
TONR
I 0.0 FC80 Q 4.0
EN ENO
I 0.1 Q 1.1
TMR_EN Q
I 0.2
RESET
L#1000 PV
#OB1_PREV_CYCLE DELTA_T
MD100 ET
Figura 5-1 Temporizzatore software per ritardo a inserzione con memoria (TONR)
Descrizione Il blocco funzionale ”Allarme a tempo con controllo” (DCAT) accumula il tempo a
partire dalla transizione del comando di apertura o di chiusura in ingresso finché non
supera il tempo preimpostato (PT) oppure finché l’ingresso di reazione (O_FB o
C_FB) non indica che il dispositivo si è aperto (o chiuso) entro il tempo previsto. Se il
tempo preimpostato viene superato prima che venga ricevuta la controreazione, viene
attivato l’allarme. Se il comando di ingresso azzera i valori prima del tempo
preimpostato, il tempo viene riavviato.
• Quando l’ingresso CMD passa da 0 a 1, A viene impostata a 1, ET a 0, le uscite di
allarme (OA, CA) a 0 e CDM_HIS a 1.
• Quando l’ingresso CMD passa da 1 a 0, A viene impostata a 0, ET a 0, le uscite di
allarme (OA, CA) a 0 e CDM_HIS a 0.
• Quando sia CMD che CMD_HIS valgono 1 e O_FB vale 0, il tempo delta (msec)
trascorso dall’esecuzione dell’OB viene sommato a ET. Se ET è superiore a PT,
OA viene impostato a 1, in caso contrario viene impostato a 0. CDM_HIS viene
posto uguale a CMD.
• Quando sia CMD che CMD_HIS valgono 1, O_FB vale 1, e C_FB vale 0, OA
viene impostato a 0. ET è posto uguale a PT in modo che, se O_FB viene
successivamente impostato a 0, l’allarme viene impostato alla successiva
esecuzione del blocco funzionale. CDM_HIS viene posto uguale a CMD.
• Quando sia CMD che CMD_HIS valgono 0 e O_FB vale 0, il tempo delta (msec)
trascorso dall’esecuzione dell’OB viene sommato a ET. Se ET è superiore a PT,
CA viene impostato a 1, in caso contrario viene impostato a 0. CDM_HIS viene
posto uguale a CMD.
• Quando sia CMD che CMD_HIS valgono 0, O_FB vale 0, e C_FB vale 1, CA
viene impostato a 0, ET è posto uguale a PT in modo che, se C_FB viene
successivamente impostato a 0, l’allarme viene impostato alla successiva
esecuzione del blocco funzionale. CDM_HIS viene posto uguale a CMD.
• Se sia O_FB che C_FB valgono 1, si verifica una condizione di errore ed entrambe
le uscite di allarme vengono impostate a 1.
Parametri I parametri del blocco funzionale ”Allarme a tempo con controllo” (DCAT) sono
illustrati nella tabella 5-2.
Tabella 5-2 Parametri del blocco funzionale ”Allarme a tempo con controllo” (FB81)
Esempio La figura 5-2 illustra il funzionamento del blocco funzionale DCAT. Esso viene
eseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato
l’ingresso CMD sta transitando da 0 a 1 come indicato da CMD_HIS e CMD. In
seguito a tali condizioni viene attribuito a A e CMD_HIS il valore 1. ET viene
impostato a 0 ed entrambe le uscite di allarme OA e CA ricevono il valore 0.
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB81
DCAT
E0.0 FB81 A4.0
EN ENO
M0.0
CMD Q A 2.0
M1.0
O_FB OA A 3.0
M1.1
C_FB CA A 3.1
Prima dell’esecuzione:
CMD M0.0 = TRUE
O_FB M1.0 = FALSE
C_FB M1.1 = FALSE
Q M2.0 = FALSE
OA M3.0 = FALSE
CA M3.1 = FALSE
DB81 di istanza
ET DBD4 = L#12
PT DBD8 = L#222
CMD_HIS DBX16.0 = FALSE
Dopo l’esecuzione:
Q M2.0 = TRUE
OA M3.0 = FALSE
CA M3.1 = FALSE
DB81 di istanza
ET DBD4 = L#0
CMD_HIS DBX16.0 = TRUE
Descrizione Il blocco funzionale ”Allarme a tempo per controllo motori” (MCAT) accumula
tempo a partire dall’attivazione di uno dei comandi di ingresso (apri o chiudi) finché
non viene superato il tempo preimpostato (PT) oppure finché l’ingresso di reazione
non indica che l’operazione indicata dal comando è stata eseguita entro il tempo
previsto. Se il tempo preimpostato viene superato prima che venga ricevuta la
controreazione, viene attivato l’allarme. La descrizione della reazione MCAT nelle
varie condizioni di ingresso è riportata nella Tabella di verità MCAT (vedere la tabella
5-3).
Ingressi Uscite
ET O_HIS C_HIS O_CMD C_CMD S_CMD O_FB C_FB OO CO OA CA ET O_HIS C_HIS Q STATO
X 1 1 X X X X X 0 0 1 1 PT 0 0 0 Allarme
X X X X X X 1 1 0 0 1 1 PT 0 0 0 Allarme
X X X X X 1 X X 0 0 0 0 X 0 0 1 Arresto
X X X 1 1 X X X 0 0 0 0 X 0 0 1 Arresto
X 0 X 1 0 0 X X 1 0 0 0 0 1 0 1 Inizio apertura
X 1 0 X 0 0 1 0 0 0 0 0 PT 1 0 1 Aperto
X X 0 0 1 0 X X 0 1 0 0 0 0 1 1 Inizio chiusura
X 0 1 0 X 0 0 1 0 0 0 0 PT 0 1 1 Chiuso
X 0 0 0 0 0 X X 0 0 0 0 X 0 0 1 Arresto
Legenda:
INC = Somma a ET il tempo delta (msec) trascorso dall’ultima esecuzione dell’OB.
PT = PT è posto uguale a ET
X = Non applicabile
<PT = ET < PT
>= PT = ET >= PT
Parametri I parametri del blocco funzionale ”Allarme a tempo per controllo motori” (MCAT)
sono illustrati nella tabella 5-4.
Tabella 5-4 Parametri del blocco funzionale ”Allarme a tempo per controllo motori” (FB82)
Esempio La figura 5-3 illustra il funzionamento del blocco funzionale MCAT. Esso viene
eseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato, in base
al valore degli ingressi, il blocco funzionale MCAT è in stato di APERTURA e le
uscite sono impostate di conseguenza.
Se durante l’esecuzione del blocco funzionale non si verifica alcun errore, ENO e
A 4.0 vengono impostati a 1.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB82
MCAT
E0.0 FB82 A4.0
EN ENO
M0.0
O_CMD OO M2.0
M0.1
C_CMD CO M2.1
M0.2
S_CMD OA M3.0
M1.0
O_FB CA M3.1
M1.1
C_FB Q M4.0
Prima dell’esecuzione:
O_CMD M0.0 = TRUE
C_CMD M0.1 = FALSE
S_CMD M0.2 = FALSE
O_FB M1.0 = FALSE
C_FB M1.1 = FALSE
OO M2.0 = FALSE
CO M2.1 = FALSE
OA M3.0 = FALSE
CA M3.1 = FALSE
Q M4.0 = FALSE
DB82 di istanza
ET DBD4 = L#2
PT DBD8 = L#22
O_HIS DBX16.0 = TRUE
C_HIS DBX16.1 = FALSE
Dopo l’esecuzione:
OO M2.0 = TRUE
CO M2.1 = FALSE
OA M3.0 = FALSE
CA M3.1 = FALSE
Q M4.0 = TRUE
DB82 di istanza
ET DBD4 = L#4
O_HIS DBX16.0 = TRUE
CMD_HIS DBX16.1 = FALSE
Descrizione Il blocco funzionale ”Drum mascherabile a evento” (DRUM) pilota i bit di uscita
programmati (OUT1 e OUT16) e la parola in uscita (OUT_WORD) con i valori
programmati (OUT_VAL) del passo appropriato, condizionato dalle relative maschere
di abilitazione (S_MASK), mentre DRUM resta sullo stesso passo. Esso avanza al
passo successivo quando l’evento del passo è vero e il tempo programmato per esso è
trascorso oppure quando l’ingresso jog passa da 1 a 0. Quando RESET ha valore 1, il
DRUM viene resettato e di conseguenza il passo corrente viene posto uguale al passo
preimpostato (DSP).
Il tempo trascorso in un passo è determinato dal prodotto della base temporale
preimpostata di DRUM (DTBP) e dai valori di conteggio preimpostati/del passo
(S_PRESET) corrispondenti ai singoli passi. All’inizio di un nuovo passo, il valore
calcolato viene caricato in DCC che contiene il tempo rimanente per il passo
considerato. Ad esempio, se DTBP è uguale a 2 e il valore preimpostato del passo 1 è
100 (100 msec), DCC sarà uguale a 200 (200 msec).
Un passo può essere programmato con un valore temporale, con un evento o con
entrambi. I passi con un bit di evento e un valore temporale pari a 0 avanzano al passo
successivo quando il bit di evento assume il valore 1. I passi che hanno un solo valore
temporale iniziano il conteggio direttamente. I passi con un bit di evento ed un valore
temporale maggiore di 0 iniziano il conteggio quando lo stato di segnale del bit di
evento è 1. I bit di evento vengono inizializzati su un valore di 1.
Quando il puntatore si trova sull’ultimo passo programmato (LST_STEP) e il tempo
di tale passo è trascorso, l’uscita (A) viene impostata a 1, in caso contrario viene
impostata a 0. Una volta impostata A, DRUM resta sul passo fino all’esecuzione di un
reset.
La maschera configurabile (S_MASK) consente di selezionare singoli bit nella parola
in uscita (OUT_WORD) e fa sì che i bit di uscita (da OUT1 a OUT16) vengano
impostati/resettati dai valori di uscita (OUT_VAL). Se un bit della maschera
configurabile ha valore 1, il valore OUT_VAL imposta/resetta il bit corrispondente.
Se il bit della maschera configurabile ha valore 0, il bit corrispondente non viene
modificato. Tutti i bit della maschera per i 16 passi vengono inizializzati sul valore 1.
Il bit di uscita OUT1 corrisponde al bit meno importante della parola di uscita
OUT_WORD. Il bit di uscita OUT16 corrisponde al bit più importante della parola di
uscita OUT_WORD.
Parametri I parametri del blocco funzionale ”Drum mascherabile a evento” (DRUM) sono
illustrati nella tabella 5-5.
Tabella 5-5 Parametri del blocco funzionale ”Drum mascherabile a evento” (FB85)
Tabella 5-5 Parametri del blocco funzionale ”Drum mascherabile a evento” (FB85)
Errori Se si verifica una delle condizioni riportate nella tabella 5-6, DRUM non resterà nel
passo corrente. L’uscita ENO viene impostata a 0 e viene impostato il relativo
ERR_CODE.
ERR_CODE Spiegazione
W#16#000B Il valore di LST_STEP è inferiore a 1 o maggiore di 16.
W#16#000C Il valore di DSC è inferiore a 1 o maggiore di LST_STEP.
W#16#000D Il valore di DSP è inferiore a 1 o maggiore di LST_STEP.
Esempio La figura 5-4 illustra il funzionamento del blocco funzionale DRUM. Esso viene
eseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato DRUM
avanza dal passo 1 al passo 2. I bit di uscita (OUT1 ecc.) e OUT_WORD vengono
impostati in base alla maschera configurata per il passo 2 e ai bit di OUT_VAL per il
passo 2.
Se durante l’esecuzione del blocco funzionale non si verifica alcun errore, ENO e
A 4.0 vengono impostati a 1 e ERR_CODE viene posto uguale a W#16#0000.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB85
E0.0 DRUM A4.0
EN FB85 ENO
M0.0
RESET
M0.1
JOG OUT1 M4.0
M0.2 OUT2 M4.1
DRUM_EN OUT3 M4.2
OUT4 M4.3
MB1 LST_STEP OUT5 M4.4
M20.0 EVENT1 OUT6 M4.5
EVENT2 OUT7 M4.6
EVENT3 OUT8 M4.7
M20.1
EVENT4 OUT9 M5.0
EVENT5 OUT10 M5.1
M20.2
EVENT6 OUT11 M5.2
6.1 Converti da cifra esadecimale in modello bit per display a sette segmenti
(SEG): FC93
Descrizione La funzione ”Converti da cifra esadecimale in modello bit per display a sette
segmenti” (SEG) converte le quattro cifre esadecimali di una parola di dati di origine
(IN) in quattro codici equivalenti per display a 7 segmenti e le scrive nella doppia
parola di uscita di destinazione (OUT).
La figura 6-1 illustra la relazione tra le cifre esadecimali di ingresso e i modelli bit di
uscita.
Parametri I parametri della funzione ”Converti da cifra esadecimale in modello bit per display a
sette segmenti” (SEG) sono illustrati nella tabella 6-1.
Tabella 6-1 Parametri della funzione ”Converti da cifra esadecimale in modello bit per display a sette segmenti” (FC93)
Esempio La figura 6-2 illustra il funzionamento della funzione SEG. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
SEG
E0.0 FC93 A4.0
EN ENO
Figura 6-2 Converti da cifra esadecimale in modello bit per display a sette segmenti
(SEG)
Descrizione La funzione ”Converti caratteri ASCII in cifre esadecimali” (ATH) converte la stringa
di caratteri ASCII puntata da IN in cifre esadecimali impacchettate e memorizza
queste ultime nella tabella di destinazione puntata da OUT. Poiché i caratteri ASCII
sono composti da 8 bit e le cifre esadecimali da 4 bit la parola di uscita avrà una
lunghezza pari a metà della parola di ingresso. I caratteri ASCII vengono convertiti e
collocati nell’uscita esadecimale nello stesso ordine in cui vengono letti. Se il numero
di caratteri ASCII è dispari, vengono inseriti degli zeri nel mezzo byte situato
nell’estremità destra dell’ultima cifra esadecimale convertita.
Parametri I parametri della funzione ”Converti caratteri ASCII in cifre esadecimali” (ATH) sono
illustrati nella tabella 6-2.
Tabella 6-2 Parametri della funzione ”Converti caratteri ASCII in cifre esadecimali” (FC94)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.
Errori Se viene individuato un carattere ASCII non ammesso, questo viene convertito nel
valore 0. L’uscita ENO viene impostata a 0 e RET_VAL viene posto uguale a
W#16#0007.
Esempio La figura 6-3 illustra il funzionamento della funzione ATH. Questa viene eseguita se
l’ingresso E 0.0 vale 1 (attivato). Il parametro di ingresso N indica che devono essere
convertiti cinque caratteri ASCII. Questi ultimi sono memorizzati nel blocco dati 1 a
partire dalla posizione puntata da IN, DB1.DBX10.0. La stringa in uscita verrà
collocata nella posizione puntata da OUT a partire da DB2.DBX0.0 (blocco dati 2).
Poiché il numero di caratteri ASCII è dispari, nel mezzo byte situato nell’estremità
destra dell’ultima cifra esadecimale convertita sono stati inseriti degli zeri ed è stato
ottenuto il valore esadecimale 0xC0 (il valore esadecimale equivalente di ciascun
carattere ASCII è riportato nella figura 6-4).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
ATH
E0.0 FC94 A4.0
EN ENO
P#DB1.DBX10.0 IN RET_VAL MW0
Prima dell’esecuzione:
Stringa ASCII : « B90AC »
IN DBB10 = B#16#42
DBB11 = B#16#39
DBB12 = B#16#30
DBB13 = B#16#41
DBB14 = B#16#43
Dopo l’esecuzione:
Rappresentazione esadecimale: B90AC0
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F
Descrizione La funzione ”Converti cifre esadecimali in caratteri ASCII” (HTA) converte le cifre
esadecimali puntate da IN e le memorizza nella stringa di destinazione puntata da
OUT. Poiché un carattere è composto da 8 bit e una cifra digitale ne richiede 4, la
parola di uscita avrà una lunghezza pari al doppio della parola di ingresso. Ciascuno
dei mezzi byte che compongono la cifra decimale viene convertito in un carattere e
disposto nello stesso ordine in cui viene letto (viene convertito per primo il mezzo
byte posto all’estremità sinistra di una cifra, quindi quello all’estremità destra della
stessa cifra).
Parametri I parametri della funzione ”Converti cifre esadecimali in caratteri ASCII” (HTA) sono
illustrati nella tabella 6-3.
Tabella 6-3 Parametri della funzione ”Converti cifre esadecimali in caratteri ASCII” (FC95)
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.
Esempio La figura 6-5 illustra il funzionamento della funzione HTA. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato). Il valore 3 del parametro di ingresso N indica
che verranno convertiti tre caratteri esadecimali. I byte dei caratteri esadecimali
vengono memorizzati nel blocco dati 1 a partire dalla posizione puntata da IN,
DB1.DBX10.0. La stringa in uscita viene collocata nella posizione puntata da OUT a
partire da DB2.DBX0.0 (blocco dati 2) (il valore ASCII corrispondente a ciascun
valore esadecimale è riportato nella figura 6-6).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
HTA
E0.0 FC95 A4.0
EN ENO
P#DB1.DBX10.0 IN OUT P#DB2.DBX0.0
W#16#03 N
Prima dell’esecuzione:
Rappresentazione esadecimale: F97AC1
IN DBB10 = B#16#F9
DBB11 = B#16#7A
DBB12 = B#16#C1
Dopo l’esecuzione:
Stringa ASCII: « F97AC1 »
OUT DBB0 = B#16#46
DBB1 = B#16#39
DBB2 = B#16#37
DBB3 = B#16#41
DBB4 = B#16#43
DBB5 = B#16#31
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F
6.4 Leggi posizione del primo bit 1 cominciando dal valore più basso
(ENCO): FC96
Descrizione La funzione ”Leggi posizione del primo bit 1 cominciando dal valore più basso”
(ENCO) converte il contenuto di IN in un numero binario a cinque bit corrispondente
alla posizione dell’ultimo bit a destra di IN e restituisce il risultato come valore della
funzione. Se IN è 0000, 0001 oppure 0000 0000 viene restituito il valore 0.
Parametri I parametri della funzione ”Leggi posizione del primo bit 1 cominciando dal valore
più basso” (ENCO) sono illustrati nella tabella 6-4.
Tabella 6-4 Parametri della funzione ”Leggi posizione del primo bit 1 cominciando dal valore più basso” (FC96)
Esempio La figura 6-7 illustra il funzionamento della funzione ENCO. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
ENCO
E0.0 A4.0
FC96
EN ENO
RET_VAL MW0
DW#16#12345678 IN
RET_VAL MW0 = 3
Figura 6-7 Leggi posizione del primo bit 1 cominciando dal valore più basso (ENCO)
6.5 Scrivi in una parola il valore binario di un bit data la sua posizione
(DECO): FC97
Descrizione La funzione ”Scrivi in una parola il valore binario di un bit data la sua posizione”
(DECO) converte un numero binario a 5 bit (da 0 a 31), indicato dall’ingresso IN, in
un valore, impostando la corrispondente posizione di bit nel valore restituito dalla
funzione. Se IN è superiore a 31, per ottenere il numero binario a 5 bit viene eseguita
un’operazione Modulo 32.
Parametri I parametri della funzione ”Scrivi in una parola il valore binario di un bit data la sua
posizione” (DECO) sono illustrati nella tabella 6-5.
Tabella 6-5 Parametri della funzione ”Scrivi in una parola il valore binario di un bit data la sua posizione” (FC97)
Esempio La figura 6-8 illustra il funzionamento della funzione DECO. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
DECO
E0.0 A4.0
FC97
EN ENO
RET_VAL MD0
W#16#0003 IN
Figura 6-8 Scrivi in una parola il valore binario di un bit data la sua posizione (DECO)
Parametri I parametri della funzione ”Crea complemento a dieci” (BCDCPL) sono riportati nella
tabella 6-6.
Esempio La figura 6-9 illustra il funzionamento della funzione BCDCPL. Essa viene eseguita
se l’ingresso E 0.0 ha valore 1 (attivato).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
BCDCPL
E0.0 A4.0
FC98
EN ENO
RET_VAL MD0
DW#16#01234567 IN
Descrizione La funzione ”Conta il numero di bit 1” (BITSUM) conta il numero di bit impostati a 1
nell’ingresso IN e restituisce il valore ottenuto come valore della funzione.
Parametri I parametri della funzione ”Conta il numero di bit 1” (BITSUM) sono riportati nella
tabella 6-7.
Esempio La figura 6-10 illustra il funzionamento della funzione BITSUM. Essa viene eseguita
se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato, il valore
restituito in MW0 è pari a 13 (D in notazione esadecimale), che corrisponde alla
somma dei bit con valore 1 della doppia parola DW#16#12345678 (valore
esadecimale di ingresso).
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
BITSUM
E0.0 A4.0
FC99
EN ENO
RET_VAL MW0
DW#16#12345678 IN
Descrizione La funzione ”Riporta valori in scala” (SCALE) prende un valore intero e lo converte
in un valore reale in unità di misura riportate in scala tra due limiti, uno superiore e
uno inferiore (LO_LIM e HI_LIM). Il risultato ottenuto viene poi scritto nell’uscita
OUT. La funzione SCALE utilizza la seguente equazione:
OUT = [((FLOAT (IN) –K1)/(K2–K1) * (HI_LIM – LO_LIM)] + LO_LIM
Le costanti K1 e K2 vengono impostate a seconda che il valore di ingresso sia
BIPOLAR o UNIPOLAR.
• BIPOLAR: Il valore intero in ingresso è compreso tra
-27648 e 27648, quindi:
K1 = -27648.0 et K2 = +27648.0
• UNIPOLAR: Il valore intero in ingresso è compreso tra
0 e 27648, quindi:
K1 = 0.0 e K2 = +27648.0
Se il valore intero in ingresso è maggiore di K2, l’uscita (OUT) viene assimilata a
HI_LIM e viene segnalato un errore. Se il valore intero in uscita è inferiore a K1,
l’uscita (OUT) viene assimilata a LO_LIM e viene segnalato un errore.
La scala inversa può essere ottenuta programmando LO_LIM > HI_LIM. Nella scala
inversa il valore dell’uscita diminuisce con l’aumentare del valore di ingresso.
Parametri I parametri della funzione ”Riporta valori in scala” (SCALE) sono illustrati nella
tabella 6-8.
Errori Se il valore intero in ingresso è superiore a K2, l’uscita (OUT) viene assimilata a
HI_LIM e viene segnalato un errore. Se il valore intero in ingresso è inferiore a K1,
l’uscita (OUT) viene assimilata a LO_LIM e viene segnalato un errore. L’uscita ENO
viene impostata a 0 e RET_VAL viene posto uguale a W#16#0008.
Esempio La figura 6-11 illustra il funzionamento della funzione SCALE. Essa viene eseguita se
l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato il valore intero 22
viene convertito in un valore REAL, compreso in una scala da 0.0 a 100.0, e scritto
nell’uscita OUT. Il valore di ingresso è BIPOLAR come indicato dallo stato di E2.0.
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1 e RET_VAL viene posto uguale a W#16#0000.
SCALE
E0.0 FC105 A4.0
EN ENO
Prima dell’esecuzione:
IN MW10 = 22
HI_LIM MD20 = 100.0
LO_LIM MD30 = 0.0
OUT MD40 = 0.0
BIPOLAR E 2.0 = TRUE
Dopo l’esecuzione:
OUT MD40 = 50.03978588
Tabella 6-9 Parametri della funzione ”Converti da numero in scala in numero intero” (FC106)
Errori Se il valore reale di ingresso non è compreso entro LO_LIM e HI_LIM, l’uscita
(OUT) viene assimilata al più simile limite inferiore o superiore del campo specificato
per il tipo in oggetto (BIPOLAR o UNIPOLAR), e viene segnalato un errore. L’uscita
ENO viene impostata a 0 e RET_VAL viene posto uguale a W#16#0008.
Esempio La figura 6-12 illustra il funzionamento della funzione UNSCALE. Essa viene
eseguita se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio il valore reale
50.03978588 compreso in una scala da 0.0 a 100.0, viene convertito in un valore
INTEGER e scritto nell’uscita OUT. Il valore di ingresso è BIPOLAR come indicato
dallo stato di E 2.0.
Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0
vengono impostati a 1.
UNSCALE
E0.0 FC106 A4.0
EN ENO
Prima dell’esecuzione:
IN MD10 = 50.03978588
OUT MW40 =0
Dopo l’esecuzione:
OUT MW40 =22
dove OUT =
Parametri I parametri del blocco funzionale ”Algoritmo Lead/Lag” (LEAD_LAG) sono illustrati
nella tabella 6-10.
Errori Se il valore del parametro GAIN è inferiore o uguale a 0, il blocco funzionale non
viene eseguito. L’uscita ENO viene impostata a 0 e ERR_CODE viene posto uguale a
W#16#0009.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB80
LEAD_LAG
E0.0 FB80 A4.0
EN ENO
MD10 IN OUT MD20
Prima dell’esecuzione:
IN MD10 = 2.0
Dopo l’esecuzione:
DB80 di istanza
Parametri I parametri della funzione ”Deviazione standard” (DEV) sono illustrati nella
tabella 7-1.
* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi
Errori Se si verifica una delle condizioni riportate nella tabella 7-2, la funzione non viene
eseguita. L’uscita ENO viene impostata a ”0” e viene impostato il corrispondente
valore di ritorno.
RET_VAL Spiegazione
W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametro
funzionale.
W#16#0002 E_TYPE non ammesso.
W#16#0004 La lunghezza della tabella è 0.
Esempio La figura 7-1 illustra il funzionamento della funzione DEV. Essa viene eseguita se
l’ingresso I 0.0 vale 1 (attivato). Nell’esempio qui riportato nella tabella sono presenti
cinque valori, come indica la prima parola. Il tipo di dati dei valori è REAL come
indica il parametro E_TYPE.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
RET_VAL viene posto uguale a W#16#0000.
DEV
E0.0 FC102 A4.0
EN ENO
P#DB1.DBX130.0 OUT
B#16#08 E_TYPE
Prima dell’esecuzione:
TBL (lunghezza tabella) DBW100=W#16#0005
DBD102 = 2.0
DBD106 = 4.0
DBD110 = 8.0
DBD114 = 16.0
DBD118 = 32.0
Dopo l’esecuzione:
OUT DBD130 = 12.19836055
Parametri I parametri del blocco funzionale ”Confronta posizione di matrice” (IMC) sono
illustrati nella tabella 8-1.
Tabella 8-1 Parametri del blocco funzionale ”Confronta posizione di matrice” (FB83)
Tipo di Area di
Parametro Dichiarazione Descrizione
dati memoria
EN Ingresso BOOL E, A, M, D, L Se l’ingresso di abilitazione vale 1, il box viene attivato.
ENO Uscita BOOL E, A, M, D, L Se durante l’esecuzione non si verificano errori, l’uscita di
abilitazione assume valore 1.
IN_BIT0 Ingresso BOOL E, A, M, D, L Bit di ingresso 0 da confrontare con il bit 0 della maschera.
IN_BIT1 Ingresso BOOL E, A, M, D, L Bit di ingresso 1 da confrontare con il bit 1 della maschera.
IN_BIT2 Ingresso BOOL E, A, M, D, L Bit di ingresso 2 da confrontare con il bit 2 della maschera.
IN_BIT3 Ingresso BOOL E, A, M, D, L Bit di ingresso 3 da confrontare con il bit 3 della maschera.
IN_BIT4 Ingresso BOOL E, A, M, D, L Bit di ingresso 4 da confrontare con il bit 4 della maschera.
IN_BIT5 Ingresso BOOL E, A, M, D, L Bit di ingresso 5 da confrontare con il bit 5 della maschera.
IN_BIT6 Ingresso BOOL E, A, M, D, L Bit di ingresso 6 da confrontare con il bit 6 della maschera.
IN_BIT7 Ingresso BOOL E, A, M, D, L Bit di ingresso 7 da confrontare con il bit 7 della maschera.
IN_BIT8 Ingresso BOOL E, A, M, D, L Bit di ingresso 8 da confrontare con il bit 8 della maschera.
IN_BIT9 Ingresso BOOL E, A, M, D, L Bit di ingresso 9 da confrontare con il bit 9 della maschera.
IN_BIT10 Ingresso BOOL E, A, M, D, L Bit di ingresso 10 da confrontare con il bit 10 della
maschera.
IN_BIT11 Ingresso BOOL E, A, M, D, L Bit di ingresso 11 da confrontare con il bit 11 della
maschera.
IN_BIT12 Ingresso BOOL E, A, M, D, L Bit di ingresso 12 da confrontare con il bit 12 della
maschera.
IN_BIT13 Ingresso BOOL E, A, M, D, L Bit di ingresso 13 da confrontare con il bit 13 della
maschera.
IN_BIT14 Ingresso BOOL E, A, M, D, L Bit di ingresso 14 da confrontare con il bit 14 della
maschera.
IN_BIT15 Ingresso BOOL E, A, M, D, L Bit di ingresso 15 da confrontare con il bit 15 della
maschera.
CMP_STEP Ingresso BYTE E, A, M, D, L, Numero del passo della maschera con cui effettuare il
P confronto.
OUT Uscita BOOL E, A, M, D, L Il valore 1 indica che è stata individuata una
corrispondenza, il valore 0 indica che non ne è stata
individuata alcuna.
ERR_CODE Uscita WORD E, A, M, D, L, Se l’istruzione viene eseguita correttamente, viene
P restituito il valore W#16#0000. Per informazioni sui valori
diversi da W#16#0000, vedere il paragrafo Errori.
CMP_VAL statica ARRAY E, A, M, D, L Maschere di confronto [da 0 a 15 , da 0 a 15], dove il
OF primo numero dell’indice corrisponde a quello del passo e
BOOL il secondo a quello del bit della maschera.
Errori Se il valore di CMP_STEP è maggiore di 15, il blocco funzionale non viene eseguito.
L’uscita ENO viene impostata a 0 e ERR_CODE viene posto uguale a W#16#000A.
Esempio La figura 8-1 illustra il funzionamento del blocco funzionale IMC. Se l’ingresso E 0.0
vale 1 (attivato), il blocco funzionale viene eseguito. Nell’esempio qui riportato tutti i
16 bit di ingresso vengono confrontati con il secondo passo della maschera (come
indicato da CMP_STEP). OUT viene impostato a TRUE poiché i bit di ingresso
corrispondono alla maschera nel passo 2.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
ERR_CODE viene posto uguale a W#16#0000.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB83
E0.0 IMC A4.0
EN FB83 ENO
M0.0
IN_BIT0 OUT A 2.0
M0.1
IN_BIT1 ERR_CODE MW0
M0.2
IN_BIT2
M0.3
IN_BIT3
M0.4
IN_BIT4
M0.5
IN_BIT5
M0.6
IN_BIT6
M0.7
IN_BIT7
M1.0
IN_BIT8
M1.1
IN_BIT9
M1.2
IN_BIT10
M1.3
IN_BIT11
M1.4
IN_BIT12
M1.5
IN_BIT13
M1.6
IN_BIT14
M1.7
IN_BIT15
B#16#02 CMP_STEP
Prima dell’esecuzione: DB83 di istanza
IN_BIT0 M0.0 = TRUE <confronta con>CMP_VAL [2, 0] DBX12.0 = TRUE
IN_BIT1 M0.1 = TRUE <confronta con>CMP_VAL [2, 1] DBX12.1 = TRUE
IN_BIT2 M0.2 = FALSE <confronta con>CMP_VAL [2, 2] DBX12.2 = FALSE
IN_BIT3 M0.3 = TRUE <confronta con>CMP_VAL [2, 3] DBX12.3 = TRUE
IN_BIT4 M0.4 = TRUE <confronta con>CMP_VAL [2, 4] DBX12.4 = TRUE
IN_BIT5 M0.5 = FALSE <confronta con>CMP_VAL [2, 5] DBX12.5 = FALSE
IN_BIT6 M0.6 = TRUE <confronta con>CMP_VAL [2, 6] DBX12.6 = TRUE
IN_BIT7 M0.7 = TRUE <confronta con>CMP_VAL [2, 7] DBX12.7 = TRUE
IN_BIT8 M1.0 = FALSE <confronta con>CMP_VAL [2, 8] DBX13.0 = FALSE
IN_BIT9 M1.1 = TRUE <confronta con>CMP_VAL [2, 9] DBX13.1 = TRUE
IN_BIT10 M1.2 = TRUE <confronta con>CMP_VAL [2, 10] DBX13.2 = TRUE
IN_BIT11 M1.3 = FALSE <confronta con>CMP_VAL [2, 11] DBX13.3 = FALSE
IN_BIT12 M1.4 = TRUE <confronta con>CMP_VAL [2, 12] DBX13.4 = TRUE
IN_BIT13 M1.5 = TRUE <confronta con>CMP_VAL [2, 13] DBX13.5 = TRUE
IN_BIT14 M1.6 = FALSE <confronta con>CMP_VAL [2, 14] DBX13.6 = FALSE
IN_BIT15 M1.7 = TRUE <confronta con>CMP_VAL [2, 15] DBX13.7 = TRUE
Nota : Sono riportati solo i valori della maschera nel passo 2. Gli altri passi vengono programmati
nello stesso modo.
Dopo l’esecuzione:
OUT A2.0 = TRUE
Parametri I parametri del blocco funzionale ”Confronta matrice in scansione” (SMC) sono
illustrati nella tabella 8-2.
Tabella 8-2 Parametri del blocco funzionale ”Confronta matrice in scansione” (SMC)
Tabella 8-2 Parametri del blocco funzionale ”Confronta matrice in scansione” (SMC)
Errori Se il valore di LAST è maggiore di 15, il blocco funzionale non viene eseguito.
L’uscita ENO viene impostata a 0 e ERR_CODE viene posto uguale a W#16#000E.
Esempio La figura 8-2 illustra il funzionamento del blocco funzionale SMC. Se l’ingresso E 0.0
vale 1 (attivato), il blocco funzionale viene eseguito. Nell’esempio qui riportato tutti i
16 bit di ingresso vengono confrontati con la maschera per i passi da 0 a 5 (come
indicato da LAST) oppure finché non viene individuata una corrispondenza. Vengono
scansionati solo i passi da 0 a 2 poiché la maschera per il passo 2 corrisponde ai bit di
ingresso.
Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 e
ERR_CODE viene posto uguale a W#16#0000.
Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.
DB84
E0.0 SMC A4.0
EN FB84 ENO
M0.0
IN_BIT0 OUT A 2.0
M0.1
IN_BIT1 OUT_STEP MB10
M0.2
IN_BIT2
M0.3
IN_BIT3
M0.4
IN_BIT4
M0.5
IN_BIT5
M0.6
IN_BIT6
M0.7
IN_BIT7
M1.0
IN_BIT8
M1.1
IN_BIT9
M1.2
IN_BIT10
M1.3
IN_BIT11
M1.4
IN_BIT12
M1.5
IN_BIT13
M1.6
IN_BIT14
M1.7
IN_BIT15
Prima dell’esecuzione: DB84 di istanza
IN_BIT0 M0.0 = TRUE <confronta con>CMP_VAL [2, 0] DBX12.0 = TRUE
IN_BIT1 M0.1 = TRUE <confronta con>CMP_VAL [2, 1] DBX12.1 = TRUE
IN_BIT2 M0.2 = FALSE <confronta con>CMP_VAL [2, 2] DBX12.2 = FALSE
IN_BIT3 M0.3 = TRUE <confronta con>CMP_VAL [2, 3] DBX12.3 = TRUE
IN_BIT4 M0.4 = TRUE <confronta con>CMP_VAL [2, 4] DBX12.4 = TRUE
IN_BIT5 M0.5 = FALSE <confronta con>CMP_VAL [2, 5] DBX12.5 = FALSE
IN_BIT6 M0.6 = TRUE <confronta con>CMP_VAL [2, 6] DBX12.6 = TRUE
IN_BIT7 M0.7 = TRUE <confronta con>CMP_VAL [2, 7] DBX12.7 = TRUE
IN_BIT8 M1.0 = FALSE <confronta con>CMP_VAL [2, 8] DBX13.0 = FALSE
IN_BIT9 M1.1 = TRUE <confronta con>CMP_VAL [2, 9] DBX13.1 = TRUE
IN_BIT10 M1.2 = TRUE <confronta con>CMP_VAL [2, 10] DBX13.2 = TRUE
IN_BIT11 M1.3 = FALSE <confronta con>CMP_VAL [2, 11] DBX13.3 = FALSE
IN_BIT12 M1.4 = TRUE <confronta con>CMP_VAL [2, 12] DBX13.4 = TRUE
IN_BIT13 M1.5 = TRUE <confronta con>CMP_VAL [2, 13] DBX13.5 = TRUE
IN_BIT14 M1.6 = FALSE <confronta con>CMP_VAL [2, 14] DBX13.6 = FALSE
IN_BIT15 M1.7 = TRUE <confronta con>CMP_VAL [2, 15] DBX13.7 = TRUE
Area di memoria L’area di memoria è una locazione della CPU in cui un’istruzione trova un valore con
cui eseguire la propria operazione. Il controllore programmabile dispone delle
seguenti aree di memoria che possono essere utilizzate come parte dell’operando di
un’istruzione:
• immagine di processo degli ingressi
• immagine di processo delle uscite
• merker
• E/A (periferia)
• temporizzatore
• contatore
• blocco dati
• dati temporanei (dati locali dinamici)
B
Bit di risultato L’ottavo bit di una parola di stato viene chiamato ”bit di risultato binario” (bit BIE).
binario Quest’ultimo realizza un collegamento tra l’elaborazione dei bit e delle parole e
consente al programma di esprimere il risultato di un’operazione a parola in forma
binaria e di integrarlo in una catena di combinazione binaria.
Il bit BIE consente, ad esempio, di scrivere un blocco funzionale (FB) o una funzione
(FC) in lista istruzioni (AWL, cfr. il manuale di riferimento Lista istruzioni AWL) e di
richiamarli in schema a contatti (KOP).
Quando si scrive in lista istruzioni un blocco funzionale (FB) o una funzione (FC) che
si desidera richiamare in seguito in KOP, si deve gestire il bit BIE indipendentemente
dal fatto che li si scriva in AWL o in KOP. Il bit BIE corrisponde all’uscita di
abilitazione (ENO) di un box KOP. Eseguendo l’istruzione SAVE in AWL o con una
bobina ––(SAVE) (in KOP) si può memorizzare il risultato logico combinatorio
(RLC) nel bit BIE secondo i seguenti criteri:
• Se l’FB o la FC vengono eseguiti senza errore, viene memorizzato nel bit BIE un
RLC di ”1”.
• Se durante l’esecuzione dell’FB o della FC si verificano errori, viene memorizzato
nel bit BIE un RLC di ”0”.
Tali operazioni devono essere programmate alla fine dell’FB o della FC in modo che
vengano eseguite per ultime nel blocco.
Pericolo
! Inavvertitamente il bit BIE potrebbe essere impostato su ”0”.
Se si scrivono FB o FC in KOP senza gestire il bit BIE come precedentemente
indicato, può accadere che l’FB o la FC sovrascrivano il bit BIE di un altro FB o FC.
Per evitare questo errore, memorizzare l’RLC alla fine dell’FB o della FC come
indicato precedentemente.
Blocco dati (DB) Nei blocchi dati (DB) vengono memorizzati i dati del programma utente. La struttura
di tali dati viene definita dall’utente. Si possono avere dati ”condivisi” (ovvero
accessibili) da tutti i blocchi di codice oppure utilizzati come ”istanza” specifica di un
particolare FB (dove la struttura del DB è associata alla tabella di dichiarazione delle
variabili dell’FB).
Blocco dati di I DB di istanza mettono a disposizione la memoria per richiamare uno specifico FB
istanza (DB) (o una sua ”istanza”). Creando più istanze (DB di istanza) di un FB è possibile
controllare diversi dispositivi con un solo FB.
La struttura di un DB di un’istanza rispecchia la tabella di dichiarazione delle variabili
di un FB. In essa vengono memorizzati i parametri attuali delle variabili in, out,
in_out e var.
Blocco di codice I blocchi di codice sono blocchi di STEP 7 che contengono il programma per la logica
di controllo. Essi possono essere blocchi organizzativi (OB), funzioni e blocchi
funzionali (FC e FB), funzioni di sistema e blocchi funzionali di sistema (SFC e SFB).
Un blocco dati (DB) non è invece considerato un blocco di codice.
Blocco funzionale I blocchi funzionali sono blocchi di codice che contengono un segmento del
programma e sono dotati di un’area di memoria. Ogni volta che viene richiamato,
l’FB deve avere a disposizione un blocco dati (DB di istanza). Un FB può essere
richiamato più volte e ogni volta con un diverso DB di istanza. I parametri e le
variabili statiche dell’FB sono memorizzate nel DB di istanza.
Blocco funzionale I blocchi funzionali di sistema (SFB) sono blocchi funzionali integrati nel sistema
di sistema operativo S7 e possono essere richiamati dal programma. Come gli FB, gli SFB hanno
una memoria di lavoro in cui i dati vengono memorizzati fino al successivo richiamo
del blocco. Tale memoria è realizzata come blocco dati di istanza (DB di istanza) che
deve essere creato e viene aperto come parte dell’istruzione di richiamo. Poiché gli
SFB fanno parte del sistema operativo non è necessario caricarli.
Funzione (FC) Le funzioni sono blocchi di codice che contengono un segmento del programma, ma
sono privi di memoria. Esse hanno un funzionamento simile a quello del
sottoprogramma di un programma, vengono create dall’utente e possono essere
richiamate dal programma. Poiché il programma può richiamarle più volte (e
trasmettere ogni volta valori diversi), le FC vengono definite blocchi riutilizzabili.
Quando l’FC termina l’elaborazione, i dati locali temporanei che ha utilizzato
vengono riallocati.
Funzione di Le funzioni di sistema (SFC) sono funzioni preprogrammate e testate che sono
sistema (SFC) integrate nel sistema operativo S7 e possono essere richiamate dal programma.
Poiché fanno parte del sistema operativo, esse non occupano spazio nella memoria
principale. Come le FC, le SFC non utilizzano i DB di istanza.
I
Indirizzamento Tipo di indirizzamento che indica la posizione attuale di una data unità di dati nella
assoluto memoria della CPU. Esso consente, ad esempio, di riferirsi ad un segnale E/A
mediante un indirizzo che specifica il tipo di segnale (E in ingresso, A in uscita), il
numero dell’unità E/O e il segnale in oggetto. Ad esempio, nell’uscita A 4.0 il
controllore programmabile interpreta gli indirizzi assoluti senza ricorrere ad una
tabella dei simboli. Vedere la voce Indirizzamento simbolico.
Indirizzamento Si tratta di un tipo di indirizzamento in cui il valore attuale con cui l’istruzione deve
immediato operare viene fornito come parametro di ingresso. Tale valore è l’indirizzo
dell’istruzione. Cfr. ”Indirizzamento diretto”.
Indirizzamento Anche se ciascun elemento della CPU dispone di un indirizzo assoluto (ad es.
simbolico ”E 0.0”), è comunque possibile creare dei nomi simbolici da utilizzare per
l’indirizzamento. Ad esempio si può assegnare all’uscita E 1.3 il nome simbolico di
”Controreazione_Pompa_2”. I nomi simbolici vengono definiti nella tabella dei
simboli che si può creare e compilare con l’Editor dei simboli.
Istruzione Un’istruzione KOP (schema a contatti) dice alla CPU del controllore programmabile
quale funzione deve eseguire. Le istruzioni KOP possono essere costituite da elementi
o da box.
L
Lista istruzioni ”Lista istruzioni (AWL)” è uno dei due linguaggi del software di programmazione
STEP 7 che può essere utilizzato per programmare un controllore programmabile
(PLC) S7-300. Ciascuna istruzione del programma elaborato comprende
un’operazione la cui sigla mnemonica rappresenta una funzione del controllore
programmabile.
M
Master Control Il Master Control Relay (MRC) è un interruttore generale KOP che consente di
Relay attivare e interrompere il flusso della corrente (un montante). Un montante disinserito
corrisponde ad una sequenza di istruzioni che inserisce un valore pari a 0 al posto del
valore calcolato oppure ad una sequenza di istruzioni che lascia invariato il valore di
memoria esistente.
Montante Unmontante è una riga di istruzioni KOP, contenente generalmente dei contatti di
ingresso e box con istruzioni, conclusa da un’operazione di uscita posta alla fine della
riga. In STEP 7 il montante di uno schema a contatti corrisponde ad un segmento.
N
Operando L’operando di un’istruzione KOP indica una costante o il punto in cui l’istruzione
trova il valore con cui eseguire un’operazione. Un operando può avere un nome
simbolico o assoluto o essere costituito da entrambi. Esso può puntare a uno qualsiasi
dei seguenti elementi:
• una costante, il valore di un temporizzatore o di un contatore oppure una stringa di
caratteri ASCII,
• un indirizzo della parola di stato del controllore programmabile
• un blocco di dati e un indirizzo interno all’area di memoria dei blocchi di dati
• una funzione (FC), un blocco funzionale (FB), una funzione di sistema (SFC) o un
blocco funzionale di sistema (SFB) e il numero di una funzione o blocco
• l’etichetta per un’istruzione di salto
• l’identificatore di un operando e un indirizzo all’interno dell’area di memoria da
esso indicata (ad es. E 1.0),
• il numero di un temporizzatore o di un contatore.
Parametro attuale I parametri attuali sono indirizzi o valori che vengono messi a disposizione come
ingressi o uscite nel richiamo di un blocco funzionale (FB) o di una funzione (FC).
Essi corrispondono ai parametri formali dichiarati nella tabella di dichiarazione delle
variabili dell’FB o della FC.
Parametro formale I parametri formali vengono dichiarati nella tabella di dichiarazione delle variabili di
un FB o una FC. Al richiamo dell’FB o della FC si dovrà indicare un parametro
attuale (un indirizzo o un valore) per ciascun parametro formale.
Puntatore Un puntatore è un elemento che indica l’indirizzo di una variabile e che contiene,
invece di un valore, un operando. Quando si assegna ad un parametro attuale il tipo
”puntatore”, si specifica l’indirizzo dell’operando. STEP 7 consente di immettere il
puntatore in formato puntatore o semplicemente come operando (ad es. M 50.0).
L’esempio qui riportato illustra un puntatore in formato puntatore per l’accesso a dati
che iniziano da M 50.0:
P#M50.0
R
Risultato logico Il bit 1 della parola di stato viene chiamato bit RLC (ovvero Risultato logico
combinatorio combinatorio). In esso viene memorizzato il risultato di un’operazione logica
combinatoria o di un’operazione matematica di confronto. Lo stato del bit RLC
fornisce informazioni sul flusso del segnale: ”1” indica la presenza del flusso di
segnale (on) e ”0” l’assenza (off).
Ad esempio, la prima operazione di un montante KOP interroga lo stato di un contatto
e dà il risultato ”1” o ”0”. Quindi memorizza il risultato dell’interrogazione nel bit
RLC. Anche la seconda operazione del montante KOP interroga lo stato di un contatto
e dà il risultato, combinandolo poi con il valore memorizzato nel bit RLC della parola
di stato, in base alle regole della logica booleana. Il risultato logico viene poi
memorizzato nel bit RLC della parola di stato e sostituisce il precedente valore. Tutte
le successive operazioni del montante eseguono un’operazione combinatoria tra due
valori, ovvero tra il risultato dell’interrogazione dello stato del contatto e l’RLC
attuale.
Le operazioni booleane combinatorie consentono di assegnare all’RLC il contenuto
dell’indirizzo di un operando già alla prima interrogazione. Con l’RLC è inoltre
possibile attivare operazioni di salto.
Schema a contatti ”Schema a contatti” (KOP) è uno dei due linguaggi del software di programmazione
(KOP) STEP 7 che può essere utilizzato per programmare un controllore programmabile
(PLC) STEP 7-300. Si tratta di un linguaggio grafico i cui componenti sono simili agli
elementi di un circuito elettrico.
Tabella di Tutti i blocchi di codice dispongono di una tabella di dichiarazione delle variabili.
dichiarazione delle Inserendovi delle informazioni, si dichiarano (ovvero si definiscono) i parametri e le
variabili variabili utilizzate dal blocco.
Tipi di dati Per tutti i dati utilizzati in un programma è possibile specificare il ”tipo” a cui
appartengono. Il tipo di dati va specificato quando si definiscono i nomi simbolici
nell’Editor dei simboli o quando si specificano le variabili locali nella tabella di
dichiarazione delle variabili. Esso definisce la lunghezza e la disposizione dei bit nella
memoria riservata alla CPU.
• Tipi di dati semplici: BOOL (booleano), BYTE, WORD, DWORD (doppia
parola), CHAR (carattere), INT (intero), DINT (doppio intero), REAL (a virgola
mobile), TIME, DATE, TOD (ora), S5TIME. Il sistema operativo assegna a
ciascun tipo di dati semplici una locazione di memoria con lunghezza fissa. Ad
esempio, un dato booleano (BOOL) è formato da un bit, un byte (BYTE) da 8 bit,
una parola (WORD) da 2 byte (o 16 bit) e una doppia parola (DWORD) da 4 byte
(o 32 bit).
• Tipi di dati composti: DT (data e ora), STRING (stringa composta da max. 255
caratteri), STRUCT, UDT e ARRAY. Questo tipo di dati è generalmente formato
da più di 32 bit (4 byte). Per creare una combinazione di dati di tipo diverso si può
definire una struttura (STRUCT) formata da un gruppo di tipi di dati o un array
costituito da una serie di tipi di dati diversi.
• Tipi di parametri: TIMER (numero del temporizzatore), COUNTER (numero del
contatore), BLOCK_(DB, FB, FC, SDB, SFC, SFB) (numero del tipo di blocco
identificato), POINTER (riferimento del puntatore ad un indirizzo) o ANY (tipo di
dati non definito o di qualsiasi genere).
D-76181 Karlsruhe
Repubblica federale di Germania
Mittente:
Nome: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Funzione: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ditta: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
Via: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
C.A.P.: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
Città: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Paese: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Telefono: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Servendosi di una scala di valori da 1 per buono a 5 per scadente, Vi preghiamo di dare
una valutazione sulla qualità del manuale rispondendo alle seguenti domande.
1. Corrisponde alle Vostre esigenze il contenuto del manuale?
2. È facile trovare le informazioni necessarie?
3. Le informazioni sono spiegate in modo sufficientemente chiaro?
4. Corrisponde alle Vostre esigenze il livello delle informazioni tecniche?
5. Come valutate la qualità delle illustrazioni e delle tabelle?