Sei sulla pagina 1di 106

Prefazione, Contenuto

Funzioni di
combinazione a bit 1
SIMATIC 2
Funzioni tabellari

Software di sistema per Funzioni di scorrimento 3


S7-300 e S7-400 Funzione e blocco
4
funzionale di spostamento
Funzioni standard, parte 2
Funzione e blocchi funzionali
di temporizzazione 5
Manuale di riferimento Funzioni e blocco funzionale
di conversione 6
Funzione matematica in
virgola mobile 7
Blocchi funzionali di
confronto 8

Glossario, Indice analitico

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.

Uso conforme alle Osservare quanto segue:


disposizioni

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.

Copyright { Siemens AG 2000 All rights reserved Esclusione della responsabilità

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.

A chi è destinato il Il manuale è destinato in particolare a ingegneri, programmatori e al personale


manuale? addetto alla manutenzione che disponga di una conoscenza di base dei controllori
programmabili.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 iii
Prefazione

I capitoli descrivono le FC e gli FB che l’utente può utilizzare assieme alle


istruzioni standard per ottenere una maggiore flessibilità nella programmazione.
Ogni FC e FB è riportato assieme al nome, alla sigla e al numero e viene illustrato
in base ai seguenti argomenti:
• Descrizione – fornisce una descrizione generale.
• Parametri – è una tabella che riporta la dichiarazione, il tipo di dati, le aree di
memoria ammesse e la descrizione dei singoli parametri.
• Errori – descrive gli errori che potrebbero impedire la corretta esecuzione della
funzione o del blocco funzionale.
• Esempio – si tratta di una rappresentazione grafica della funzione o del blocco
funzionale che riporta un esempio dei parametri e i risultati dell’operazione.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


iv A5E00066870-03
Prefazione

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 v
Prefazione

Elenco delle Il presente manuale descrive le seguenti funzioni e blocchi funzionali:


funzioni e dei
blocchi funzionali
Funzione o blocco funzionale Numero Pagina
Temporizzatore software per ritardo a inserzione con memoria (TONR) FC80 5-2
Sposta un blocco di dati con indirizzamento indiretto (IBLKMOV) FC81 4-2
Resetta stato delle uscite comprese nel campo (RSET) FC82 1-2
Imposta stato delle uscite comprese nel campo (SET) FC83 1-6
Aggiungi dati alla tabella (ATT) FC84 2-2
Restituisci il primo dato immesso in tabella (FIFO) FC85 2-4
Ricerca dato in tabella (TBL_FIND) FC86 2-6
Visualizza ultimo dato immesso in tabella (LIFO) FC87 2-9
Esegui operazione in tabella (TBL) FC88 2-11
Copia dato dalla tabella (TBL_WRD) FC89 2-13
Inserisci e sposta dati nel registro di scorrimento (WSR) FC90 3-2
Combina e memorizza logicamente il valore con l’elemento della tabella FC91 2-15
(WRD_TBL)
Inserisci bit nel registro di scorrimento (SHRB) FC92 3-4
Converti da cifra esadecimale in modello bit per display a sette segmenti FC93 6-2
(SEG)
Converti caratteri ASCII in cifre esadecimali (ATH) FC94 6-4
Converti cifre esadecimali in caratteri ASCII (HTA) FC95 6-6
Leggi posizione del primo bit 1 cominciando dal valore più basso FC96 6-8
(ENCO)
Scrivi in una parola il valore binario di un bit data la sua posizione FC97 6-9
(DECO)
Crea complemento a dieci (BCDCPL) FC98 6-10
Conta il numero di bit 1 (BITSUM) FC99 6-11
Resetta direttamente stato delle uscite comprese nel campo (RSETI) FC100 1-4
Imposta direttamente stato delle uscite comprese nel campo (SETI) FC101 1-8
Deviazione standard (DEV) FC102 7-2
Tabelle con dati correlati (CDT) FC103 2-17
Da tabella di origine a tabella di destinazione (TBL_TBL) FC104 2-19
Riporta valori in scala (SCALE) FC105 6-12
Converti da numero in scala in numero intero (UNSCALE) FC106 6-14
Algoritmo Lead/Lag (LEAD_LAG) FB80 6-16
Allarme a tempo con controllo (DCAT) FB81 5-4
Allarme a tempo per controllo motori (MCAT) FB82 5-7
Confronta posizione di matrice (IMC) FB83 8-2
Confronta matrice in scansione (SMC) FB84 8-6
Drum mascherabile a evento (DRUM) FB85 5-10
Impacchetta e distribuisci dati (PACK) FB86 4-4

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


vi A5E00066870-03
Contenuto

1 Funzioni di combinazione a bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


1.1 Resetta stato delle uscite comprese nel campo (RSET): FC82 . . . . . . . . 1-2
1.2 Resetta direttamente stato delle uscite comprese nel campo (RSETI) . . 1-4
1.3 Imposta stato delle uscite comprese nel campo (SET): FC83 . . . . . . . . . . 1-6
1.4 Imposta direttamente stato delle uscite comprese nel campo (SETI):
FC101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
2 Funzioni tabellari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2.1 Aggiungi dati alla tabella (ATT): FC84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.2 Restituisci primo dato immesso in tabella (FIFO): FC85 . . . . . . . . . . . . . . 2-4
2.3 Ricerca dato in tabella (TBL_FIND): FC86 . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.4 Visualizza ultimo dato immesso in tabella (LIFO): FC87 . . . . . . . . . . . . . . 2-9
2.5 Esegui operazione in tabella (TBL): FC88 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
2.6 Copia dato dalla tabella (TBL_WRD): FC89 . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
2.7 Combina e memorizza logicamente il valore con l’elemento
della tabella (WRD_TBL): FC91 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
2.8 Tabelle con dati correlati (CDT): FC103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
2.9 Da tabella di origine a tabella di destinazione (TBL_TBL): FC104 . . . . . . 2-19
3 Funzioni di scorrimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3.1 Inserisci e sposta dati nel registro di scorrimento (WSR): FC90 . . . . . . . . 3-2
3.2 Inserisci bit nel registro di scorrimento (SHRB): FC92 . . . . . . . . . . . . . . . . 3-4
4 Funzione e blocco funzionale di spostamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4.1 Sposta un blocco dati con indirizzamento indiretto (IBLKMOV): FC81 . . 4-2
4.2 Impacchetta e distribuisci dati (PACK): FB86 . . . . . . . . . . . . . . . . . . . . . . . . 4-4
5 Funzione e blocchi funzionali di temporizzazione . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5.1 Temporizzatore software per ritardo a inserzione
con memoria (TONR): FC80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
5.2 Allarme a tempo con controllo (DCAT): FB81 . . . . . . . . . . . . . . . . . . . . . . . . 5-4
5.3 Allarme a tempo per controllo motori (MCAT): FB82 . . . . . . . . . . . . . . . . . . 5-7
5.4 Drum mascherabile a evento (DRUM): FB85 . . . . . . . . . . . . . . . . . . . . . . . . 5-10

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 vii
Contenuto

6 Funzioni e blocco funzionale di conversione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1


6.1 Converti da cifra esadecimale in modello bit per display a
sette segmenti (SEG): FC93 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
6.2 Converti caratteri ASCII in cifre esadecimali (ATH): FC94 . . . . . . . . . . . . . 6-4
6.3 Converti cifre esadecimali in caratteri ASCII (HTA): FC95 . . . . . . . . . . . . . 6-6
6.4 Leggi posizione del primo bit 1 cominciando dal valore
più basso (ENCO): FC96 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
6.5 Scrivi in una parola il valore binario di un bit data
la sua posizione (DECO): FC97 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
6.6 Crea complemento a dieci (BCDCPL): FC98 . . . . . . . . . . . . . . . . . . . . . . . . 6-10
6.7 Conta il numero di bit 1 (BITSUM): FC99 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
6.8 Riporta valori in scala (SCALE): FC105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
6.9 Converti da numero in scala in numero intero (UNSCALE): FC106 . . . . . 6-14
6.10 Algoritmo Lead/Lag (LEAD_LAG): FB80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
7 Funzione matematica in virgola mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
7.1 Deviazione standard (DEV): FC102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
8 Blocchi funzionali di confronto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
8.1 Confronta posizione di matrice (IMC): FB83 . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
8.2 Confronta matrice in scansione (SMC): FB84 . . . . . . . . . . . . . . . . . . . . . . . 8-6
Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossario-1
Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indice-1

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


viii A5E00066870-03
Funzioni di combinazione a bit 1
Il presente capitolo descrive le funzioni di combinazione a bit (FC) che, utilizzate
assieme alle istruzioni standard, garantiscono una maggiore flessibilità nella
programmazione.

Capitolo Argomento trattato Pagina


1.1 Resetta stato delle uscite comprese nel campo (RSET): FC82 1-2
1.2 Resetta direttamente stato delle uscite comprese nel campo 1-4
(RSETI): FC100
1.3 Imposta stato delle uscite comprese nel campo (SET): FC83 1-6
1.4 Imposta direttamente stato delle uscite comprese nel campo 1-8
(SETI): FC101

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1-1
Funzioni di combinazione a bit

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 la funzione viene eseguita correttamente, l’uscita di
abilitazione assume il valore 1.
S_BIT Ingresso POINTER* E, A, M, D Punta al primo bit del campo.
N Ingresso INT E, A, M, D, L, P o Numero di bit del campo da resettare.
costante

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


1-2 A5E00066870-03
Funzioni di combinazione a bit

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

P#M 0.0 S_BIT


10 N

Prima dell’esecuzione: Dopo l’esecuzione:

M0.7 M0.0 M0.7 M0.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

M1.7 M1.0 M1.7 M1.0


1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0

Figura 1-1 Resetta stato delle uscite comprese nel campo (RSET)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1-3
Funzioni di combinazione a bit

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.).

Il puntatore S_BYTE deve riferirsi all’area di memoria esterna di ingresso e di uscita


(memoria P). Poiché l’accesso all’area P avviene a byte, a parole o a doppie parole,
S_BYTE deve puntare un operando allineato al byte, per cui il numero di bit del
puntatore deve essere 0.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 la funzione viene eseguita correttamente, l’uscita di
abilitazione assume valore 1.
S_BYTE Ingresso POINTER* P Punta al primo byte del campo.
N Ingresso INT E, A, M, D, L, P o Dimensione del campo di byte da impostare a 0,
costante specificata dal numero di bit in multipli di 8 (ad es. 8,
16 ecc.).

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


1-4 A5E00066870-03
Funzioni di combinazione a bit

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

Prima dell’esecuzione: Dopo l’esecuzione:


P1.7 P1.0 P1.7 P1.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

P2.7 P2.0 P2.7 P2.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P3.7 P3.0 P3.7 P3.0
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P4.7 P4.0 P4.7 P4.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Figura 1-2 Resetta direttamente stato delle uscite comprese nel campo (RSETI)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1-5
Funzioni di combinazione a bit

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 la funzione viene eseguita correttamente, l’uscita di
abilitazione assume valore 1.
S_BIT Ingresso POINTER* E, A, M, D Punta al primo bit del campo.
N Ingresso INT E, A, M, D, L, P o Numero di bit del campo da impostare.
costante

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


1-6 A5E00066870-03
Funzioni di combinazione a bit

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

P#M 0.0 S_BIT


10 N

Prima dell’esecuzione: Dopo l’esecuzione:

M0.7 M0.0 M0.7 M0.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

M1.7 M1.0 M1.7 M1.0


0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Figura 1-3 Imposta stato delle uscite comprese nel campo (SET)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1-7
Funzioni di combinazione a bit

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.).

Il puntatore S_BYTE deve puntare all’area di memoria esterna di ingresso e di uscita


(memoria P). Poiché l’accesso all’area P avviene a byte, a parole o a doppie parole,
S_BYTE deve puntare un operando allineato al byte, per cui il numero di bit del
puntatore deve essere 0.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 la funzione viene eseguita correttamente, l’uscita di
abilitazione assume valore 1.
S_BYTE Ingresso POINTER* P Punta al primo byte del campo.
N Ingresso INT E, A, M, D, L, P o Dimensione del campo di byte da impostare a 1,
costante specificata dal numero di bit in multipli di 8 (ad es. 8,
16 ecc.).

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


1-8 A5E00066870-03
Funzioni di combinazione a bit

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

P#P 2.0 S_BYTE


16 N

Prima dell’esecuzione: Dopo l’esecuzione:


P1.7 P1.0 P1.7 P1.0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

P2.7 P2.0 P2.7 P2.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

P3.7 P3.0 P3.7 P3.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
P4.7 P4.0 P4.7 P4.0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Figura 1-4 Imposta direttamente stato delle uscite comprese nel campo (SETI)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1-9
Funzioni di combinazione a bit

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


1-10 A5E00066870-03
Funzioni tabellari 2
Il presente capitolo descrive le funzioni tabellari (FC) che, utilizzate assieme alle
istruzioni standard, garantiscono una maggiore flessibilità nella programmazione.

Capitolo Argomento trattato Pagina


2.1 Aggiungi dati alla tabella (ATT): FC84 2-2
2.2 Restituisci primo dato immesso in tabella (FIFO): FC85 2-4
2.3 Ricerca dato in tabella (TBL_FIND): FC86 2-6
2.4 Visualizza ultimo dato immesso in tabella (LIFO): FC87 2-9
2.5 Esegui operazione in tabella (TBL): FC88 2-11
2.6 Copia dato dalla tabella (TBL_WRD): FC89 2-13
2.7 Combina e memorizza logicamente il valore con l’elemento 2-15
della tabella (WRD_TBL): FC91
2.8 Tabelle con dati correlati (CDT): FC103 2-17
2.9 Da tabella di origine a tabella di destinazione (TBL_TBL): 2-19
FC104

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-1
Funzioni tabellari

2.1 Aggiungi dati alla tabella (ATT): FC84

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
DATA Ingresso WORD E, A, M, D, L, P o Parole da inserire nella tabella.
costante
TABLE Ingresso POINTER* E, A, M, D Punta all’inizio della tabella FIFO e LIFO.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-2 A5E00066870-03
Funzioni tabellari

Errori Se il numero di parole inserite è uguale o superiore a quello consentito dalla


lunghezza della tabella, non verrà immessa alcuna parola e l’uscita ENO verrà
impostata a 0.

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

Figura 2-1 Aggiungi dati alla tabella (ATT)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-3
Funzioni tabellari

2.2 Restituisci primo dato immesso in tabella (FIFO): FC85

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TABLE Ingresso POINTER* E, A, M, D Punta all’inizio della tabella FIFO.
RET_VAL Uscita WORD E, A, M, D, L, P Parola meno recente della tabella FIFO.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-4 A5E00066870-03
Funzioni tabellari

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

Figura 2-2 Restituisci primo dato immesso in tabella (FIFO)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-5
Funzioni tabellari

2.3 Ricerca dato in tabella (TBL_FIND): FC86

Descrizione La funzione ”Ricerca dato in tabella” (TBL_FIND) consente di cercare, all’interno di


un blocco di memoria, un modello uguale o diverso da un modello specificato. Tale
funzione effettua un confronto tra il modello di origine (PATRN) e la tabella di origine
(SRC) in base al comando CMD indicato. Dopo aver individuato il primo elemento
della tabella (successivo a quello puntato da INDX) che soddisfa quanto indicato dal
comando di confronto, ne specifica il numero in INDX. Se non individua alcun
modello corrispondente, INDX punta fuori dalla tabella e l’uscita della funzione viene
disabilitata.
• Se CMD = 1 la funzione cerca il primo dato uguale a quello specificato in PATRN.
• Se CMD = 2 la funzione cerca il primo dato diverso da quello specificato in
PATRN.
• Il primo indirizzo della tabella contiene il numero massimo di dati che vi possono
essere immessi, corrispondente alla sua lunghezza.
• Il secondo indirizzo contiene il primo dato della tabella.

Avvertenza
Il primo elemento della tabella (che ne specifica la lunghezza) deve essere
inizializzato.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-6 A5E00066870-03
Funzioni tabellari

Parametri I parametri della funzione ”Ricerca dato in tabella” (TBL_FIND) sono riportati nella
tabella 2-3.

Tabella 2-3 Parametri della funzione ”Ricerca dato in tabella” (FC86)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
SRC Ingresso POINTER* E, A, M, D Punta all’inizio della tabella.
PATRN Ingresso POINTER* E, A, M, D Punta al modello da cercare.
CMD Ingresso BYTE E, A, M, D, L, P Indica il tipo di comando:
B#16#01 = uguale al modello
B#16#02 = diverso dal modello
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione TBL_FIND sono ammessi i
seguenti dati:
B#16#02 = BYTE
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
INDX Ingresso/uscita WORD E, A, M, D, L Indirizzo della tabella che fornisce le seguenti
informazioni:
Ingresso: numero dell’elemento da cui ha inizio
la ricerca.
Uscita: numero dell’elemento uguale al
modello proposto.

* 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):

Tabella 2-4 Condizioni di errore di FC86

RET_VAL Spiegazione
W#16#0008 Non è stato trovato alcun valore corrispondente.
W#16#0009 E_TYPE e/o CDM non ammesso.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-7
Funzioni tabellari

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

INDX MW2 = W#16#0000


PATRN DBW10 = W#16#5555

Dopo l’esecuzione:
INDX MW2 = W#16#0003

Figura 2-3 Ricerca dato in tabella (TBL_FIND)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-8 A5E00066870-03
Funzioni tabellari

2.4 Visualizza ultimo dato immesso in tabella (LIFO): FC87

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TABLE Ingresso POINTER* E, A, M, D Punta all’inizio della tabella LIFO.
RET_VAL Uscita WORD E, A, M, D, L, P Parola più recente della tabella LIFO.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-9
Funzioni tabellari

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

Figura 2-4 Visualizza ultimo dato immesso in tabella (LIFO)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-10 A5E00066870-03
Funzioni tabellari

2.5 Esegui operazione in tabella (TBL): FC88

Descrizione La funzione ”Esegui operazione in tabella” (TBL) esegue l’operazione indicata


(impostata da CMD) nella tabella di origine e memorizza il risultato nello stesso
indirizzo della tabella.
• 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.
• Se E_TYPE è impostato a REAL, il valore di CMD non è valido per il
complemento a uno.

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.

Tabella 2-6 Parametri della funzione ”Esegui operazione in tabella” (FC88)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
SRC Ingresso POINTER* E, A, M, D Punta all’indirizzo iniziale della tabella.
CMD Ingresso BYTE E, A, M, D, L, P Indica il tipo di comando che deve essere eseguito.
Sono ammessi i seguenti comandi e valori:
B#16#03 = complemento a uno
B#16#04 = azzera
B#16#05 = nega
B#16#06 = radice quadrata
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione TBL sono ammessi i seguenti
dati:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-11
Funzioni tabellari

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

P#DB1.DBX0.0 SRC RET_VAL MW0

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

Figura 2-5 Esegui operazione in tabella (TBL)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-12 A5E00066870-03
Funzioni tabellari

2.6 Copia dato dalla tabella (TBL_WRD): FC89

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
SRC Ingresso POINTER* E, A, M, D Punta all’inizio della tabella.
DEST Ingresso POINTER* E, A, M, D Punta alla destinazione della tabella.
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione TBL_WRD sono ammessi i
seguenti dati:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
Q Uscita BOOL A, M, D, L Visualizza il valore 0 se, quando si richiama la
funzione, la variabile INDX contiene il numero
dell’ultimo elemento immesso nella tabella.
INDX Ingresso/uscita WORD E, A, M, L Numero dell’elemento da copiare.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-13
Funzioni tabellari

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.

Tabella 2-8 Condizioni di errore di FC89

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

INDX MW1 = W#16#0001


DEST DBW20 = W#16#0000

Dopo l’esecuzione:
INDX MW1 = W#16#0002
DEST DBW20 = W#16#2000

Figura 2-6 Copia dato dalla tabella (TBL_WRD)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-14 A5E00066870-03
Funzioni tabellari

2.7 Combina e memorizza logicamente il valore con l’elemento della tabella


(WRD_TBL): FC91

Descrizione La funzione ”Combina e memorizza logicamente il valore con l’elemento della


tabella” (WRD_TBL) esegue l’operazione indicata (CMD) con i dati di origine
(indicati da SRC) e l’elemento della tabella all’offset indicato da INDX; quindi
incrementa il valore di INDX nel caso sia inferiore alla lunghezza della tabella.
• 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.
• Se E_TYPE è impostato a REAL, CMD potrà essere solo ”Copia”.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
SRC Ingresso POINTER* E, A, M, D Punta ai dati di origine.
TABLE Ingresso POINTER* E, A, M, D Punta all’inizio della tabella.
CMD Ingresso BYTE E, A, M, D, L, P Indica il tipo di comando che deve essere eseguito.
Sono ammessi i seguenti comandi e dati:
B#16#0E = Copia
B#16#07 = AND
B#16#08 = OR
B#16#09 = OR esclusivo
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione WRD_TBL sono ammessi i
seguenti dati:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
Q Uscita BOOL A, M, D, L Visualizza il valore 0 se la variabile INDX contiene il
numero dell’ultimo elemento immesso nella tabella.
INDX Ingresso/uscita WORD E, A, M, D, L Numero dell’elemento utilizzato nell’operazione.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-15
Funzioni tabellari

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)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-16 A5E00066870-03
Funzioni tabellari

2.8 Tabelle con dati correlati (CDT): FC103

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

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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_TBL Ingresso POINTER* E, A, M, D Punta all’inizio della tabella di ingresso.
OUT_TBL Ingresso POINTER* E, A, M, D Punta all’inizio della tabella di uscita.
IN Ingresso POINTER* E, A, M, D Punta al valore di ingresso.
OUT Ingresso POINTER* E, A, M, D Punta al valore di uscita
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione CDT sono ammessi i seguenti
dati:
B#16#05 = INT
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-17
Funzioni tabellari

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

Figura 2-8 Tabelle con dati correlati (CDT)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-18 A5E00066870-03
Funzioni tabellari

2.9 Da tabella di origine a tabella di destinazione (TBL_TBL): FC104

Descrizione La funzione ”Da tabella di origine a tabella di destinazione” (TBL_TBL) esegue


l’operazione indicata (CDM) utilizzando due dati collocati nello stesso indirizzo in
due diverse tabelle di origine (TBL1 e TBL2) e scrive il risultato nello stesso indirizzo
della tabella di destinazione (DEST_TBL).
• I tipi di dati INT, DINT e REAL sono ammessi solo per le operazioni
matematiche.
• Il primo indirizzo contiene il numero di elementi della tabella, corrispondente alla
sua lunghezza.
• Il numero di elementi delle due tabelle deve essere uguale o maggiore di zero.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TBL1 Ingresso POINTER* E, A, M, D Punta all’inizio della prima tabella di origine.
TBL2 Ingresso POINTER* E, A, M, D Punta all’inizio della seconda tabella di origine.
DEST_TBL Ingresso POINTER* E, A, M, D Punta all’inizio della prima tabella di destinazione.
CMD Ingresso BYTE E, A, M, D, L, P Indica il tipo di comando che deve essere eseguito.
Sono ammessi i seguenti comandi e valori:
B#16#07 = AND
B#16#08 = OR
B#16#09 = OR esclusivo
B#16#0a = Somma
B#16#0b = Sottrai
B#16#0c = Moltiplica
B#16#0d = Dividi
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione TBL_TBL sono ammessi i
seguenti dati:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 2-19
Funzioni tabellari

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

Figura 2-9 Da tabella di origine a tabella di destinazione (TBL_TBL)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2-20 A5E00066870-03
Funzioni di scorrimento 3
Il presente capitolo illustra le funzioni di scorrimento (FC) che, utilizzate assieme alle
istruzioni standard, garantiscono maggiore flessibilità nella programmazione.

Capitolo Argomento trattato Pagina


3.1 Inserisci e sposta dati nel registro di scorrimento (WSR): FC90 3-2
3.2 Inserisci bit nel registro di scorrimento (SHRB): FC92 3-4

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 3-1
Funzioni di scorrimento

3.1 Inserisci e sposta dati nel registro di scorrimento (WSR): FC90

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
RESET Ingresso BOOL E, A, M, D, L Se impostato a 1 resetta il registro di scorrimento.
S_DATA Ingresso POINTER* E, A, M, D Punta all’origine dei dati da inserire nella tabella.
START Ingresso POINTER* E, A, M, D Punta all’inizio della tabella.
LENGTH Ingresso WORD E, A, M, D, L, P Numero di elementi da spostare.
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione WSR sono ammessi i seguenti
dati:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
Q Uscita BOOL A, M, D, L Indica 0 se RESET è attivo (1) o se tutti gli elementi
da spostare hanno valore 0.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


3-2 A5E00066870-03
Funzioni di scorrimento

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

M1.0 RESET Q M2.0

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

Figura 3-1 Inserisci e sposta dati nel registro di scorrimento (WSR)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 3-3
Funzioni di scorrimento

3.2 Inserisci bit nel registro di scorrimento (SHRB): FC92

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
DATA Ingresso BOOL E, A, M, D, L Bit di dati di origine.
RESET Ingresso BOOL E, A, M, D, L Se impostato a 1, resetta il registro di scorrimento.
S_BIT Ingresso POINTER* E, A, M, D Punta al bit iniziale del registro di scorrimento.
N Ingresso WORD E, A, M, D, L, P Lunghezza del registro di scorrimento (numero di bit
da spostare).

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


3-4 A5E00066870-03
Funzioni di scorrimento

Errori Questa funzione non segnala condizioni di errore.

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

Prima dello spostamento Dopo lo spostamento


S_BIT S_BIT
1.7 1.0 1.7 1.0
0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0
2.7 2.0 2.7 2.0
0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0
3.7 3.0 3.7 3.0
0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0

Figura 3-2 Inserisci bit nel registro di scorrimento (SHRB)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 3-5
Funzioni di scorrimento

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


3-6 A5E00066870-03
Funzione e blocco funzionale di spostamento 4
Il presente capitolo illustra una funzione di spostamento (FC) e un blocco funzionale
che, utilizzati assieme alle istruzioni standard, garantiscono maggiore flessibilità nella
programmazione.

Capitolo Argomento trattato Pagina


4.1 Sposta un blocco dati con indirizzamento indiretto 4-2
(IBLKMOV): FC81
4.2 Impacchetta e distribuisci dati (PACK): FB86 4-4

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 4-1
Funzione e blocco funzionale di spostamento

4.1 Sposta un blocco dati con indirizzamento indiretto (IBLKMOV): FC81

Descrizione La funzione ”Sposta un blocco dati con indirizzamento indiretto” (IBLKMOV)


consente di spostare un blocco dati, composto di byte, parole, doppie parole o doppi
interi, da un blocco di origine a un blocco di destinazione. Il numero di elementi da
spostare è determinato da LENGTH e la loro dimensione da E_TYPE. I puntatori
S_DATA e D_DATA indicano la posizione dei puntatori che identificano la posizione
iniziale dei dati di origine e di destinazione. Poiché utilizza un metodo indiretto di
identificazione dei dati da spostare, questa funzione viene definita uno “spostamento
dei blocchi dati con indirizzamento indiretto”.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
S_DATA Ingresso POINTER* E, A, M, D Punta al puntatore che identifica la posizione iniziale
dei dati di origine.
LENGTH Ingresso POINTER* E, A, M, D Punta alla lunghezza del blocco da spostare.
D_DATA Ingresso POINTER* E, A, M, D Punta al puntatore che identifica la posizione iniziale
dei dati di destinazione.
E_TYPE Ingresso BYTE E, A, M, D, L Indica il tipo di dati ammessi nella funzione
IBLKMOV, ovvero:
B#16#02 = BYTE
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


4-2 A5E00066870-03
Funzione e blocco funzionale di spostamento

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

D_DATA DBX20.0= P#DB2.DBX10.0


DBW10 = W#16#0000
DBW12 = W#16#0000

Dopo l’esecuzione:
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525

Figura 4-1 Sposta un blocco dati con indirizzamento indiretto (IBLKMOV)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 4-3
Funzione e blocco funzionale di spostamento

4.2 Impacchetta e distribuisci dati (PACK): FB86

Descrizione Il blocco funzionale ”Impacchetta e distribuisci dati” (PACK) consente di spostare i


dati inframmezzandoli tra delle locazioni di memoria casuali e una tabella. La
direzione di trasferimento è indicata da DIR. Ciascuna istruzione PACK elabora fino
ad un massimo di cinque blocchi di dati (da P_DATA1 a P_DATA5). Se DIR indica
“to” (verso), PACK sposta i dati da tale locazioni nella tabella indicata. Se indica
“from” (da), i dati vengono distribuiti dalla tabella nelle varie locazioni.
Per impacchettare i dati “verso” una tabella è necessario osservare le seguenti regole:
• I singoli bit (BOOL) vengono impacchettati nel successivo bit disponibile della
tabella.
• I dati a 8 bit vengono impacchettati nel successivo byte disponibile della tabella.
Quando un byte viene scritto nella tabella, i bit non utilizzati della parola
precedente vengono riempiti con degli zeri.
• I dati a 16 e 32 bit vengono impacchettati nella successiva parola disponibile della
tabella. Quando una parola viene scritta nella tabella, i bit non utilizzati della
parola precedente vengono riempiti con degli zeri.
Per impacchettare i dati “da” una tabella è necessario osservare le seguenti regole:
• Non si devono saltare parti della tabella.
• Tutti i punti booleani specificati vengono impacchettati dalla tabella.
• I dati a 8 bit vengono impacchettati dal primo byte disponibile nella tabella. Ciò
significa che i bit non utilizzati nel byte precedente della tabella non vengono
inclusi nel byte impacchettato dalla tabella.
• I tipi di dati a 16 e 32 bit vengono impacchettati dalla prima parola disponibile
della tabella. Ciò significa che i bit non utilizzati nella parola precedente della
tabella non vengono inclusi nella parola impacchettata dalla tabella.
I dati del puntatore ANY ammessi e supportati dalla funzione PACK sono:
• BOOL
• WORD
• INT
• BYTE
• DINT
• REAL
• CHAR
• DWORD

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


4-4 A5E00066870-03
Funzione e blocco funzionale di spostamento

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TABLE Ingresso POINTER* E, A, M, D Punta all’inizio della tabella.
P_DATA1 Ingresso ANY E, A, M, D Punta all’inizio del blocco dati da impacchettare.
P_DATA2 Ingresso ANY E, A, M, D Punta all’inizio del blocco dati da impacchettare.
P_DATA3 Ingresso ANY E, A, M, D Punta all’inizio del blocco dati da impacchettare.
P_DATA4 Ingresso ANY E, A, M, D Punta all’inizio del blocco dati da impacchettare.
P_DATA5 Ingresso ANY E, A, M, D Punta all’inizio del blocco dati da impacchettare.
ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
DIR statica BOOL E, A, M, D, L Direzione di impacchettamento. Il valore 0 = verso,
il valore 1 = da.

* 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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 4-5
Funzione e blocco funzionale di spostamento

Esempio La figura 4-2 illustra il funzionamento del blocco funzionale ”Impacchetta e


distribuisci dati”. Esso viene eseguito se l’ingresso E 0.0 vale 1 (attivato).
Nell’esempio qui riportato vengono impacchettati “verso” una tabella quattro blocchi
di dati.
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.

Avvertenza
Per inizializzare i parametri statici utilizzare l’editor dei blocchi dati.

DB86
PACK
E0.0 FB86 A4.0
EN ENO

P#DB1.DBX0.0 TABLE ERR_CODE MW0


P#M200.0 BOOL 2 P_DATA1
P#M210.0 BYTE 1 P_DATA2
P#M300.0 BOOL 2 P_DATA3
P#M330.0 WORD 1 P_DATA4
P_DATA5

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

Figura 4-2 Impacchetta e distribuisci dati (PACK)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


4-6 A5E00066870-03
Funzione e blocchi funzionali di
temporizzazione 5
Il presente capitolo descrive la funzione (FC) e i blocchi funzionali (FB) di
temporizzazione che, utilizzati assieme alle istruzioni standard, garantiscono una
maggiore flessibilità nella programmazione.

Capitolo Argomento trattato Pagina


5.1 Temporizzatore software per ritardo a inserzione con memoria 5-2
(TONR): FC80
5.2 Allarme a tempo con controllo (DCAT): FB81 5-4
5.3 Allarme a tempo per controllo motori (MCAT): FB82 5-7
5.4 Drum mascherabile a evento (DRUM): FB85 5-10

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-1
Funzione e blocchi funzionali di temporizzazione

5.1 Temporizzatore software per ritardo a inserzione con memoria (TONR):


FC80

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.

Quando RESET vale 0, TMR_EN vale 1 e ET è inferiore a PV, la funzione TONR


somma DELTA_T a ET. Se TMR_EN non vale 1, il tempo non viene sommato a ET.
Quando il valore di ET diventa uguale o superiore al valore di PV, l’uscita A viene
impostata a 1. Una volta attivata, A resta attiva e ET viene bloccato sull’ultimo valore
fino al successivo reset. Quando RESET vale 1 la funzione reimposta ET a 0 e
disattiva l’uscita A.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TMR_EN Ingresso BOOL E, A, M, D, L Abilita il temporizzatore ad accumulare il tempo.
RESET Ingresso BOOL E, A, M, D, L Se RESET = 1 il temporizzatore viene impostato a 0.
PV Ingresso DINT E, A, M, D, L, P o Valore preimpostato.
costante
DELTA_T Ingresso INT E, A, M, D, L o Tempo di scansione dell’OB del ciclo precedente.
costante
Q Uscita BOOL A, M, D, L Se ET è uguale o superiore a PV, A viene
impostata a 1.
ET Ingresso/uscita DINT E, A, M, D, L Valore corrente del tempo trascorso.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-2 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

Errori Questa funzione non segnala condizioni di errore.

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)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-3
Funzione e blocchi funzionali di temporizzazione

5.2 Allarme a tempo con controllo (DCAT): FB81

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-4 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
CMD Ingresso BOOL E, A, M, D, L Il valore 0 corrisponde ad un comando di chiusura
e il valore 1 ad uno di apertura.
O_FB Ingresso BOOL E, A, M, D, L Ingresso di segnalazione aperto.
C_FB Ingresso BOOL E, A, M, D, L Ingresso di segnalazione chiuso.
Q Uscita BOOL E, A, M, D, L Segue il valore dell’ingresso CMD.
OA Uscita BOOL E, A, M, D, L Uscita allarme in apertura.
CA Uscita BOOL E, A, M, D, L Uscita allarme in chiusura.
ET statica DINT E, A, M, D, L Valore corrente del tempo trascorso
dove 1 = 1 ms
PT statica DINT E, A, M, D, L Valore preimpostato del temporizzatore
dove 1 = 1 ms
PREV_TIME statica DWORD E, A, M, D, L Tempo di sistema precedente.
CMD_HIS statica BOOL E, A, M, D, L Bit di cronologia CMD.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-5
Funzione e blocchi funzionali di temporizzazione

Errori Questo blocco funzionale non segnala condizioni di errore.

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

Figura 5-2 Allarme a tempo con controllo (DCAT)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-6 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

5.3 Allarme a tempo per controllo motori (MCAT): FB82

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).

Tabella 5-3 Tabella di verità MCAT

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

<PT 1 0 X 0 0 0 X 1 0 0 0 INC 1 0 1 Apertura

X 1 0 X 0 0 1 0 0 0 0 0 PT 1 0 1 Aperto

>=PT 1 0 X 0 0 0 X 0 0 1 0 PT 1 0 0 Allarme di apertura

X X 0 0 1 0 X X 0 1 0 0 0 0 1 1 Inizio chiusura

<PT 0 1 0 X 0 X 0 0 1 0 0 INC 0 1 1 Chiusura

X 0 1 0 X 0 0 1 0 0 0 0 PT 0 1 1 Chiuso

>=PT 0 1 0 X 0 X 0 0 0 0 1 PT 0 1 0 Allarme di chiusura

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

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-7
Funzione e blocchi funzionali di temporizzazione

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
O_CMD Ingresso BOOL E, A, M, D, L Ingresso comando di apertura.
C_CMD Ingresso BOOL E, A, M, D, L Ingresso comando di chiusura.
S_CMD Ingresso BOOL E, A, M, D, L Ingresso comando di arresto.
O_FB Ingresso BOOL E, A, M, D, L Ingresso di segnalazione aperto.
C_FB Ingresso BOOL E, A, M, D, L Ingresso di segnalazione chiuso.
OO Uscita BOOL E, A, M, D, L Uscita di apertura.
CO Uscita BOOL E, A, M, D, L Uscita di chiusura.
OA Uscita BOOL E, A, M, D, L Uscita comando di apertura.
CA Uscita BOOL E, A, M, D, L Uscita comando di chiusura.
Q Uscita BOOL E, A, M, D, L Il valore 1 corrisponde ad una condizione di
allarme.
ET statica DINT E, A, M, D, L Valore corrente del tempo trascorso,
dove 1 = 1 msec
PT statica DINT E, A, M, D, L Valore preimpostato del temporizzatore,
dove 1 = 1 msec
PREV_TIME statica DWORD E, A, M, D, L Tempo di sistema precedente.
O_HIS statica BOOL E, A, M, D, L Bit di cronologia apertura.
C_HIS statica BOOL E, A, M, D, L Bit di cronologia chiusura.

Errori Questo blocco funzionale non segnala condizioni di errore.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-8 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

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

Figura 5-3 Allarme a tempo per controllo motori (MCAT)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-9
Funzione e blocchi funzionali di temporizzazione

5.4 Drum mascherabile a evento (DRUM): FB85

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-10 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
RESET Ingresso BOOL E, A, M, D, L Il valore 1 corrisponde ad una condizione di reset.
JOG Ingresso BOOL E, A, M, D, L Una transizione dal valore 0 al valore 1 fa avanzare
DRUM al passo successivo.
DRUM_EN Ingresso BOOL E, A, M, D, L Il valore 1 consente al drum di avanzare in funzione
dell’evento e dei criteri di conteggio del tempo.
LST_STEP Ingresso BYTE E, A, M, D, L o Numero dell’ultimo passo programmato.
costante
EVENT1 Ingresso BOOL E, A, M, D, L Bit di evento 1; lo stato iniziale è 1
EVENT2 Ingresso BOOL E, A, M, D, L Bit di evento 2; lo stato iniziale è 1
EVENT3 Ingresso BOOL E, A, M, D, L Bit di evento 3; lo stato iniziale è 1
EVENT4 Ingresso BOOL E, A, M, D, L Bit di evento 4; lo stato iniziale è 1
EVENT5 Ingresso BOOL E, A, M, D, L Bit di evento 5; lo stato iniziale è 1
EVENT6 Ingresso BOOL E, A, M, D, L Bit di evento 6; lo stato iniziale è 1
EVENT7 Ingresso BOOL E, A, M, D, L Bit di evento 7; lo stato iniziale è 1
EVENT8 Ingresso BOOL E, A, M, D, L Bit di evento 8; lo stato iniziale è 1
EVENT9 Ingresso BOOL E, A, M, D, L Bit di evento 9; lo stato iniziale è 1
EVENT10 Ingresso BOOL E, A, M, D, L Bit di evento 10; lo stato iniziale è 1
EVENT11 Ingresso BOOL E, A, M, D, L Bit di evento 11; lo stato iniziale è 1
EVENT12 Ingresso BOOL E, A, M, D, L Bit di evento 12; lo stato iniziale è 1
EVENT13 Ingresso BOOL E, A, M, D, L Bit di evento 13; lo stato iniziale è 1
EVENT14 Ingresso BOOL E, A, M, D, L Bit di evento 14; lo stato iniziale è 1
EVENT15 Ingresso BOOL E, A, M, D, L Bit di evento 15; lo stato iniziale è 1
EVENT16 Ingresso BOOL E, A, M, D, L Bit di evento 16; lo stato iniziale è 1
OUT1 Uscita BOOL E, A, M, D, L Bit di uscita 1
OUT2 Uscita BOOL E, A, M, D, L Bit di uscita 2
OUT3 Uscita BOOL E, A, M, D, L Bit di uscita 3
OUT4 Uscita BOOL E, A, M, D, L Bit di uscita 4
OUT5 Uscita BOOL E, A, M, D, L Bit di uscita 5
OUT6 Uscita BOOL E, A, M, D, L Bit di uscita 6
OUT7 Uscita BOOL E, A, M, D, L Bit di uscita 7
OUT8 Uscita BOOL E, A, M, D, L Bit di uscita 8
OUT9 Uscita BOOL E, A, M, D, L Bit di uscita 9
OUT10 Uscita BOOL E, A, M, D, L Bit di uscita 10
OUT11 Uscita BOOL E, A, M, D, L Bit di uscita 11
OUT12 Uscita BOOL E, A, M, D, L Bit di uscita 12

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-11
Funzione e blocchi funzionali di temporizzazione

Tabella 5-5 Parametri del blocco funzionale ”Drum mascherabile a evento” (FB85)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


OUT13 Uscita BOOL E, A, M, D, L Bit di uscita 13
OUT14 Uscita BOOL E, A, M, D, L Bit di uscita 14
OUT15 Uscita BOOL E, A, M, D, L Bit di uscita 15
OUT16 Uscita BOOL E, A, M, D, L Bit di uscita 16
Q Uscita BOOL E, A, M, D, L Lo stato 1 indica il time out dell’ultimo passo.
OUT_WORD Uscita WORD E, A, M, D, L, P Indirizzo di parola in cui il DRUM scrive i valori di
uscita.
ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
JOG_HIS statica BOOL E, A, M, D, L Bit di storia del jog.
EOD statica BOOL E, A, M, D, L Lo stato 1 indica il time out dell’ultimo passo.
DSP statica BYTE E, A, M, D, L, P Passo Drum preimpostato.
DSC statica BYTE E, A, M, D, L, P Passo Drum corrente.
DCC statica DWORD E, A, M, D, L, P Conteggio Drum corrente.
DTBP statica WORD E, A, M, D, L, P Base temporale Drum preimpostata.
PREV_TIME statica DWORD E, A, M, D, L Tempo di sistema precedente.
S_PRESET statica ARRAY OF E, A, M, D, L Conteggio preimpostato per ciascun passo
WORD (da 1 a 16),
dove 1 conteggio = 1 msec
OUT_VAL statica ARRAY OF E, A, M, D, L Valori di uscita di ciascun passo
BOOL (da 1 a 16, da 0 a 15).
S_MASK statica ARRAY OF E, A, M, D, L Maschera configurabile di ciascun passo
BOOL (da 1 a 16, da 0 a 15).
Stati iniziali = 1.

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.

Tabella 5-6 Condizioni di errore dell’FB85

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-12 A5E00066870-03
Funzione e blocchi funzionali di temporizzazione

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

M20.3 EVENT7 OUT12 M5.3


EVENT8 OUT13 M5.4
EVENT9 OUT14 M5.5
M20.4
EVENT10 OUT15 M5.6
EVENT11 OUT16 M5.7
M20.5
EVENT12 Q M6.0
EVENT13 OUT_WORD MW8
M20.6
EVENT14 ERR_CODE MW10
M20.7 EVENT15
EVENT16

Figura 5-4 Drum mascherabile a evento (DRUM)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 5-13
Funzione e blocchi funzionali di temporizzazione

Prima dell’esecuzione: Prima dell’esecuzione (continuazione):


Ingressi S_MASK [2,0] DBX92.0 = FALSE
RESET M0.0 = FALSE S_MASK [2,1] DBX92.1 = TRUE
JOG M0.1 = FALSE S_MASK [2,2] DBX92.2 = TRUE
DRUM_EN M0.2 = TRUE S_MASK [2,3] DBX92.3 = TRUE
LST_STEP MB1 = B#16#08 S_MASK [2,4] DBX92.4 = TRUE
EVENT2 M20.0 = FALSE S_MASK [2,5] DBX92.5 = FALSE
EVENT4 M20.1 = FALSE S_MASK [2,6] DBX92.6 = TRUE
EVENT6 M20.2 = FALSE S_MASK [2,7] DBX92.7 = TRUE
EVENT8 M20.3 = FALSE S_MASK [2,8] DBX93.0 = FALSE
EVENT10 M20.4 = FALSE S_MASK [2,9] DBX93.1 = FALSE
EVENT12 M20.5 = FALSE S_MASK [2,10] DBX93.2 = TRUE
EVENT14 M20.6 = FALSE S_MASK [2,11] DBX93.3 = TRUE
EVENT16 M20.7 = FALSE S_MASK [2,12] DBX93.4 = TRUE
DB85 di istanza S_MASK [2,13] DBX93.5 = TRUE
JOG_HIS DBX12.0 = FALSE S_MASK [2,14] DBX93.6 = FALSE
EOD DBX12.1 = FALSE S_MASK [2,15] DBX93.7 = TRUE
DSP DBB13 = W#16#0001 Uscite
DSC DBB14 = W#16#0001 Q M6.0 = FALSE
DCC DBD16 = DW#16#0000000A OUTWORD MW8 = W#16#FFFF
DTBP DBW20 = W#16#0001 OUT1 M4.0 = TRUE
S_PRESET [1] DBW26 = W#16#0064 OUT2 M4.1 = TRUE
S_PRESET [2] DBW28 = W#16#00C8 OUT3 M4.2 = TRUE
OUT_VAL [1,0] DBX58.0 = TRUE OUT4 M4.3 = TRUE
OUT_VAL [1,1] DBX58.1 = TRUE OUT5 M4.4 = TRUE
OUT_VAL [1,2] DBX58.2 = TRUE OUT6 M4.5 = TRUE
OUT_VAL [1,3] DBX58.3 = TRUE OUT7 M4.6 = TRUE
OUT_VAL [1,4] DBX58.4 = TRUE OUT8 M4.7 = TRUE
OUT_VAL [1,5] DBX58.5 = TRUE OUT9 M5.0 = TRUE
OUT_VAL [1,6] DBX58.6 = TRUE OUT10 M5.1 = TRUE
OUT_VAL [1,7] DBX58.7 = TRUE OUT11 M5.2 = TRUE
OUT_VAL [1,8] DBX59.0 = TRUE OUT12 M5.3 = TRUE
OUT_VAL [1,9] DBX59.1 = TRUE OUT13 M5.4 = TRUE
OUT_VAL [1,10] DBX59.2 = TRUE OUT14 M5.5 = TRUE
OUT_VAL [1,11] DBX59.3 = TRUE OUT15 M5.6 = TRUE
OUT_VAL [1,12] DBX59.4 = TRUE OUT16 M5.7 = TRUE
OUT_VAL [1,13] DBX59.5 = TRUE Dopo l’esecuzione:
OUT_VAL [1,14] DBX59.6 = TRUE
OUT_VAL [1,15] DBX59.7 = TRUE OUT1 M4.0 = TRUE
OUT_VAL [2,0] DBX60.0 = FALSE OUT2 M4.1 = FALSE
OUT_VAL [2,1] DBX60.1 = FALSE OUT3 M4.2 = FALSE
OUT_VAL [2,2] DBX60.2 = FALSE OUT4 M4.3 = FALSE
OUT_VAL [2,3] DBX60.3 = FALSE OUT5 M4.4 = FALSE
OUT_VAL [2,4] DBX60.4 = FALSE OUT6 M4.5 = TRUE
OUT_VAL [2,5] DBX60.5 = FALSE OUT7 M4.6 = FALSE
OUT_VAL [2,6] DBX60.6 = FALSE OUT8 M4.7 = FALSE
OUT_VAL [2,7] DBX60.7 = FALSE OUT9 M5.0 = TRUE
OUT_VAL [2,8] DBX61.0 = FALSE OUT10 M5.1 = TRUE
OUT_VAL [2,9] DBX61.1 = FALSE OUT11 M5.2 = FALSE
OUT_VAL [2,10] DBX61.2 = FALSE OUT12 M5.3 = FALSE
OUT_VAL [2,11] DBX61.3 = FALSE OUT13 M5.4 = FALSE
OUT_VAL [2,12] DBX61.4 = FALSE OUT14 M5.5 = FALSE
OUT_VAL [2,13] DBX61.5 = FALSE OUT15 M5.6 = TRUE
OUT_VAL [2,14] DBX61.6 = FALSE OUT16 M5.7 = FALSE
OUT_VAL [2,15] DBX61.7 = FALSE Q M6.0 = FALSE
OUTWORD MW8 = W#16#4321
ERR_CODE MW10 = W#16#0000
DB85 di istanza
JOG_HIS DBX12.0 = FALSE
EOD DBX12.1 = FALSE
DSC DBB14 = W#16#0002
DCC DBD16 = DW#16#000000C8

Figura 5-4 Drum mascherabile a evento (DRUM) (continuazione)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


5-14 A5E00066870-03
Funzioni e blocco funzionale di conversione 6
Il presenta capitolo descrive le funzioni (FC) e il blocco funzionale (FB) di
conversione che, utilizzati assieme alle istruzioni standard, garantiscono una maggiore
flessibilità nella programmazione.

Capitolo Argomento trattato Pagina


6.1 Converti da cifra esadecimale in modello bit per display a sette 6-2
segmenti (SEG): FC93
6.2 Converti caratteri ASCII in cifre esadecimali (ATH): FC94 6-4
6.3 Converti cifre esadecimali in caratteri ASCII (HTA): FC95 6-6
6.4 Leggi posizione del primo bit 1 cominciando dal valore più 6-8
basso (ENCO): FC96
6.5 Scrivi in una parola il valore binario di un bit data la sua 6-9
posizione (DECO): FC97
6.6 Crea complemento a dieci (BCDCPL): FC98 6-10
6.7 Conta il numero di bit 1 (BITSUM): FC99 6-11
6.8 Riporta valori in scala (SCALE): FC105 6-12
6.9 Converti da numero in scala in numero intero (UNSCALE): 6-14
FC106
6.10 Algoritmo Lead/Lag (LEAD_LAG): FB80 6-16

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-1
Funzioni e blocco funzionale di conversione

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.

Cifra –g fedcba Display


0000 00111111 0
0001 00000110 1
0010 01011011 2 Display a sette
segmenti
0011 01001111 3
a
0100 01100110 4
0101 01101101 5
0110 01111101 6 f b
g
0111 00000111 7
1000 01111111 8
1001 01100111 9 e c
d
1010 01110111 A
1011 01111100 b
1100 00111001 C
1101 01011110 d
1110 01111001 E
1111 01110001 F

Figura 6-1 Modelli bit in uscita per la visualizzazione a sette segmenti

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso WORD E, M, D, P o Parola di dati di origine a quattro cifre esadecimali.
costante
OUT Uscita DWORD A, M, D, L, P Modello bit di destinazione a quattro bit.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-2 A5E00066870-03
Funzioni e blocco funzionale di conversione

Errori Questa funzione non segnala condizioni di errore.

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

W#16#1234 IN OUT MD0

OUT MD0 = DW#16#065B4F66

Figura 6-2 Converti da cifra esadecimale in modello bit per display a sette segmenti
(SEG)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-3
Funzioni e blocco funzionale di conversione

6.2 Converti caratteri ASCII in cifre esadecimali (ATH): FC94

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso POINTER* E, A, M, D, L Punta alla posizione iniziale della stringa di caratteri
ASCII.
N Ingresso INT E, A, M, L, P Numero di caratteri ASCII in ingresso da convertire.
RET_VAL Uscita WORD E, A, M, D, L, P Se la funzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000 vedere il paragrafo
Errori.
OUT Uscita POINTER* A, M, D, L Punta alla posizione iniziale della tabella.

* 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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-4 A5E00066870-03
Funzioni e blocco funzionale di conversione

ATH
E0.0 FC94 A4.0
EN ENO
P#DB1.DBX10.0 IN RET_VAL MW0

W#16#05 N OUT P#DB2.DBX0.0

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

OUT DBB0 = B#16#B9


DBB1 = B#16#0A
DBB2 = B#16#C0

Figura 6-3 Converti caratteri ASCII in cifre esadecimali (ATH)

Carattere ASCII Valore esadecimale ASCII Cifra esadecimale convertita

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

Figura 6-4 Caratteri ASCII e corrispondenti valori esadecimali

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-5
Funzioni e blocco funzionale di conversione

6.3 Converti cifre esadecimali in caratteri ASCII (HTA): FC95

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso POINTER* E, A, M, D Punta alla posizione iniziale della stringa di cifre
esadecimali.
N Ingresso WORD E, A, M, L, P Numero dei byte di ingresso esadecimali da
convertire.
OUT Uscita POINTER* A, M, D, L Punta alla posizione iniziale della tabella di
destinazione.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi.

Errori Questa funzione non segnala condizioni di errore.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-6 A5E00066870-03
Funzioni e blocco funzionale di conversione

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

Figura 6-5 Converti caratteri ASCII in cifre esadecimali (ATH)

Cifra digitale Valore esadecimale ASCII ASCII convertiti

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

Figura 6-6 Cifre esadecimali e valori ASCII corrispondenti

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-7
Funzioni e blocco funzionale di conversione

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso DWORD E, M, D, L, P o Valore da codificare.
costante
RET_VAL Uscita INT A, M, D, L, P Valore restituito (contenente un numero binario a 5
bit).

Errori Questa funzione non segnala condizioni di errore.

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)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-8 A5E00066870-03
Funzioni e blocco funzionale di conversione

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso WORD E, M, D, L, P o Variabile da decodificare.
costante
RET_VAL Uscita DWORD A, M, D, L, P Valore restituito.

Errori Questa funzione non segnala condizioni di errore.

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

RET_VAL MD0 = DW#16#00000008

Figura 6-8 Scrivi in una parola il valore binario di un bit data la sua posizione (DECO)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-9
Funzioni e blocco funzionale di conversione

6.6 Crea complemento a dieci (BCDCPL): FC98

Descrizione La funzione ”Crea complemento a dieci” (BCDCPL) restituisce il complemento a


dieci di una cifra BCD di sette posizioni indicata dal parametro IN. La formula
matematica utilizzata per tale operazione è la seguente:
10000000 (in BCD)
– valore BCD di 7 posizioni
= complemento a dieci (in BCD)

Parametri I parametri della funzione ”Crea complemento a dieci” (BCDCPL) sono riportati nella
tabella 6-6.

Tabella 6-6 Parametri della funzione ”Crea complemento a dieci” (FC98)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso DWORD E, M, D, L, P o Cifra BCD a 7 posizioni.
costante
RET_VAL Uscita DWORD A, M, D, L, P Valore restituito.

Errori Questa funzione non segnala condizioni di errore.

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

RET_VAL MD0 = DW#16#08765433

Figura 6-9 Complemento a dieci (BCDCPL)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-10 A5E00066870-03
Funzioni e blocco funzionale di conversione

6.7 Conta il numero di bit 1 (BITSUM): FC99

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.

Tabella 6-7 Parametri della funzione ”Conta il numero di bit 1” (FC99)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso DWORD E, M, D, L, P o Variabile in cui avviene il conteggio dei bit.
costante
RET_VAL Uscita INT A, M, D, L, P Valore restituito.

Errori Questa funzione non segnala condizioni di errore.

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

RET_VAL MW0 = W#16#000D

Figura 6-10 Conta il numero di bit 1 (BITSUM)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-11
Funzioni e blocco funzionale di conversione

6.8 Riporta valori in scala (SCALE): FC105

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.

Tabella 6-8 Parametri della funzione ”Riporta valori in scala” (FC105)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso INT E, A, M, D, L, P o Valore in ingresso da riportare in scala come valore
costante reale in unità di misura.
HI_LIM Ingresso REAL E, A, M, D, L, P o Limite superiore in unità di misura.
costante
LO_LIM Ingresso REAL E, A, M, D, L, P o Limite inferiore in unità di misura.
costante
BIPOLAR Ingresso BOOL E, A, M, D, L Il valore 1 indica che il valore in ingresso è bipolare,
il valore 0 che è unipolare.
OUT Uscita REAL E, A, M, D, L, P Risultato della conversione in scala.
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-12 A5E00066870-03
Funzioni e blocco funzionale di conversione

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

MW10 IN RET_VAL MW0


MD20 HI_LIM OUT MD40
MD30 LO_LIM
E 2.0
BIPOLAR

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

Figura 6-11 Riporta valori in scala (SCALE)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-13
Funzioni e blocco funzionale di conversione

6.9 Converti da numero in scala in numero intero (UNSCALE): FC106

Descrizione La funzione ”Converti da numero in scala in numero intero” (UNSCALE) prende un


valore reale in ingresso (IN) in unità di misura riportato in scala tra due limiti, uno
superiore e uno inferiore (LO_LIM e HI_LIM) e lo converte in un valore intero. Il
risultato ottenuto viene poi scritto nell’uscita OUT. La funzione UNSCALE utilizza la
seguente equazione:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM) * (K2–K1) ] + K1
e imposta le costanti K1 e K2 a seconda che il valore di ingresso sia BIPOLAR o
UNIPOLAR.
• BIPOLAR: Il valore intero in uscita è compreso tra
-27648 e 27648, quindi:
K1 = -27648.0 et K2 = +27648.0
• UNIPOLAR: Il valore intero in uscita è compreso tra
0 e 27648, quindi:
K1 = 0.0 et K2 = +27648.0
Se il valore intero in ingresso non è compreso entro il campo previsto per il tipo a cui
appartiene (BIPOLAR o UNIPOLAR), l’uscita (OUT) viene assimilata al limite
inferiore o superiore più simile e viene segnalato un errore.

Parametri I parametri della funzione ”Converti da numero in scala in numero intero”


(UNSCALE) sono illustrati nella tabella 6-9.

Tabella 6-9 Parametri della funzione ”Converti da numero in scala in numero intero” (FC106)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso REAL E, A, M, D, L, P o Valore scalare di ingresso da convertire in numero
costante intero.
HI_LIM Ingresso REAL E, A, M, D, L, P o Limite superiore in unità di misura.
costante
LO_LIM Ingresso REAL E, A, M, D, L, P o Limite inferiore in unità di misura.
costante
BIPOLAR Ingresso BOOL E, A, M, D, L Il valore 1 indica che il valore in ingresso è bipolare,
il valore 0 che è unipolare.
OUT Uscita INT E, A, M, D, L, P Risultato della conversione in numero intero.
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-14 A5E00066870-03
Funzioni e blocco funzionale di conversione

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

MD10 IN RET_VAL MW0


MD20 HI_LIM OUT MW40
MD30 LO_LIM
E2.0
BIPOLAR

Prima dell’esecuzione:
IN MD10 = 50.03978588

HI_LIM MD20 = 100.0

LO_LIM MD30 = 0.0

OUT MW40 =0

BIPOLAR E2.0 = TRUE

Dopo l’esecuzione:
OUT MW40 =22

Figura 6-12 Converti da numero in scala in numero intero (UNSCALE)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-15
Funzioni e blocco funzionale di conversione

6.10 Algoritmo Lead/Lag (LEAD_LAG): FB80

Descrizione Il blocco funzionale ”Algoritmo Lead/Lag” (LEAD_LAG) consente di elaborare un


segnale in una variabile analoga. Esso calcola un’uscita (OUT) in base all’ingresso
(IN), ai valori di amplificazione specificati e ai valori dell’anticipo (LD_TIME) e del
ritardo (LG_TIME). Il valore di amplificazione deve essere maggiore di 0.
L’algoritmo lead/lag utilizza la seguente equazione:

dove OUT =

LG_TIME LD_TIME + SAMPLE_T LD_TIME


PREV_OUT + GAIN IN – GAIN PREV_IN
LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T

Generalmente l’algoritmo LEAD/LAG viene utilizzato assieme ai loop come fattore


di compensazione nel controllo dinamico dell’avanzamento. Esso consta di due fasi.
La fase di anticipo sposta l’uscita del blocco funzionale in modo che anticipi
l’ingresso, mentre la fase di ritardo sposta l’uscita in modo che ritardi l’ingresso.
Poiché l’operazione di ritardo equivale ad un’integrazione, la si può utilizzare per
eliminare le interferenze o come filtro passa basso. L’operazione di anticipo equivale
ad una differenziazione e funge quindi da filtro passa alto. Le due operazioni
combinate (LEAD_LAG ) possono fare in modo che la fase di uscita ritardi l’ingresso
delle frequenze più basse e anticipi quello delle frequenze più alte e può quindi essere
utilizzato come filtro passabanda.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-16 A5E00066870-03
Funzioni e blocco funzionale di conversione

Parametri I parametri del blocco funzionale ”Algoritmo Lead/Lag” (LEAD_LAG) sono illustrati
nella tabella 6-10.

Tabella 6-10 Parametri del blocco funzionale ”Algoritmo Lead/Lag” (FB80)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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 Ingresso REAL E, A, M, D, L, P o Valore di ingresso dell’intervallo di campionatura
costante da elaborare.
SAMPLE_T Ingresso INT E, A, M, D, L, P o Tempo di campionatura.
costante
OUT Uscita REAL E, A, M, D, L, P o Risultato dell’operazione LEAD/LAG.
costante
ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
LD_TIME statica REAL E, A, M, D, L, P o Tempo di anticipo espresso in minuti.
costante
LG_TIME statica REAL E, A, M, D, L, P o Tempo di ritardo espresso in minuti.
costante
GAIN statica REAL E, A, M, D, L, P o Guadagno espresso nella forma % / % (rapporto tra
costante la variazione dell’uscita e quella dell’ingresso come
stato stazionario).
PREV_IN statica REAL E, A, M, D, L, P o Ingresso precedente.
costante
PREV_OUT statica REAL E, A, M, D, L, P o Uscita precedente.
costante

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 6-17
Funzioni e blocco funzionale di conversione

Esempio La figura 6-13 illustra il funzionamento del blocco funzionale LEAD_LAG. Se


l’ingresso E 0.0 ha valore 1 (attivato), il blocco funzionale viene eseguito.
Nell’esempio qui riportato il valore in ingresso (IN) 2.0 viene elaborato tramite
l’algoritmo LEAD_LAG per ottenere un’uscita.
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.

DB80
LEAD_LAG
E0.0 FB80 A4.0
EN ENO
MD10 IN OUT MD20

10 SAMPLE_T ERR_CODE MW0

Prima dell’esecuzione:
IN MD10 = 2.0

OUT MD20 = 0.0


DB80 di istanza

LD_TIME DBD12 = 2.0

LG_TIME DBD16 = 2.0

GAIN DBD20 = 1.0

PREV_IN DBD24 = 6.0

PREV_OUT DBD28 = 6.0

Dopo l’esecuzione:
DB80 di istanza

PREV_IN DBD24 = 2.0

PREV_OUT DBD28 = 2.0

OUT MD20 = 2.0

Figura 6-13 Algoritmo Lead/Lag (LEAD_LAG)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


6-18 A5E00066870-03
Funzione matematica in virgola mobile 7
Il presente capitolo descrive la funzione matematica in virgola mobile (FC) che,
utilizzata assieme alle istruzioni standard, garantisce una maggiore flessibilità nella
programmazione.

Capitolo Argomento trattato Pagina


7.1 Deviazione standard (DEV): FC102 7-2

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 7-1
Funzione matematica in virgola mobile

7.1 Deviazione standard (DEV): FC102

Descrizione La funzione ”Deviazione standard” (DEV) calcola la deviazione standard di un


insieme di valori memorizzati in una tabella (TBL) e memorizza il risultato nell’uscita
OUT. La deviazione standard viene calcolata mediante la seguente formula:
Deviazione = (N * SqSum) – Sum2
standard N * (N – 1)

dove : Sum = somma dei valori di TBL


N = numero di valori di TBL
SqSum = somma dei valori di TBL elevati al quadrato
In tutti i calcoli vengono utilizzati valori in virgola mobile IEEE e le conversioni
eventualmente necessarie vengono eseguite automaticamente al richiamo della
funzione.
• Il primo indirizzo della tabella contiene il numero di valori che vi possono essere
immessi, corrispondente alla sua lunghezza.
• Il secondo indirizzo della tabella contiene il primo valore immesso.
• La dimensione degli elementi della tabella e del valore calcolato (OUT) sono
determinati da E_TYPE.

Parametri I parametri della funzione ”Deviazione standard” (DEV) sono illustrati nella
tabella 7-1.

Tabella 7-1 Parametri della funzione ”Deviazione standard” (FC102)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
TBL Ingresso POINTER* E, A, M, D Punta alla posizione iniziale di una tabella di valori.
OUT Ingresso POINTER* E, A, M, D Punta alla posizione del valore di deviazione standard
calcolato.
E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nella
tabella. Nella funzione DEV sono ammessi i seguenti
dati:
B#16#05 = INT
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.

* Puntatore in formato di doppia parola per l’indirizzamento indiretto di registro su più campi

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


7-2 A5E00066870-03
Funzione matematica in virgola mobile

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.

Tabella 7-2 Condizioni di errore di FC102

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.DBX100.0 TBL RET_VAL MW0

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

OUT DBD130 = 0.0

Dopo l’esecuzione:
OUT DBD130 = 12.19836055

Figura 7-1 Deviazione standard (DEV)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 7-3
Funzione matematica in virgola mobile

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


7-4 A5E00066870-03
Blocchi funzionali di confronto 8
Il presente capitolo descrive i blocchi funzionali di confronto (FB) che, utilizzati
assieme alle istruzioni standard, garantiscono una maggiore flessibilità nella
programmazione.

Capitolo Argomento trattato Pagina


8.1 Confronta posizione di matrice (IMC): FB83 8-2
8.2 Confronta matrice in scansione (SMC): FB84 8-6

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 8-1
Blocchi funzionali di confronto

8.1 Confronta posizione di matrice (IMC): FB83

Descrizione Il blocco funzionale ”Confronta posizione di matrice” (IMC) confronta lo stato di


max. 16 bit di ingresso programmati (da IN_BIT0 a IN_BIT15) con i bit
corrispondenti di una maschera. È possibile programmare fino a 16 passi e maschere.
IN_BIT0 viene confrontato con CMP_VAL [x,0] dove x corrisponde al numero del
passo, IN_BIT1 viene confrontato con CMP_VAL [x,1] ecc. Il numero del passo della
maschera con cui effettuare il confronto è indicato da CMP_STEP. I bit di ingresso o
della maschera non programmati hanno uno stato di default di FALSE. Se viene
individuata una corrispondenza, l’uscita (OUT) viene impostata a 1, in caso contrario
a 0.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


8-2 A5E00066870-03
Blocchi funzionali di confronto

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 8-3
Blocchi funzionali di confronto

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


8-4 A5E00066870-03
Blocchi funzionali di confronto

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

OUT A2.0 = FALSE

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

Figura 8-1 Confronta posizione di matrice (IMC)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 8-5
Blocchi funzionali di confronto

8.2 Confronta matrice in scansione (SMC): FB84

Descrizione Il blocco funzionale ”Confronta matrice in scansione” (SMC) confronta lo stato di


max. 16 bit di ingresso programmati (da IN_BIT0 a IN_BIT15) con i bit
corrispondenti della maschera di tutti i passi, a partire dal passo 1 fino all’ultimo
passo programmato (LAST) o finché non trova una corrispondenza. IN_BIT0 viene
confrontato con CMP_VAL [x,0] dove x corrisponde al numero del passo, IN_BIT1
viene confrontato con CMP_VAL [x,1] ecc. Quando viene individuata una
corrispondenza, l’uscita (OUT) viene impostata a 1 e il numero del passo e la
maschera corrispondente vengono scritti in OUT_STEP. I bit di ingresso o della
maschera non programmati hanno uno stato di default di FALSE. Se più di un passo
contiene una maschera corrispondente, verrà indicata nell’uscita OUT_STEP solo la
prima. Se non vengono trovate maschere corrispondenti, l’uscita (OUT) viene
impostata a 0 e OUT_STEP sarà maggiore di uno rispetto a LAST.

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)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


8-6 A5E00066870-03
Blocchi funzionali di confronto

Tabella 8-2 Parametri del blocco funzionale ”Confronta matrice in scansione” (SMC)

Parametro Dichiarazione Tipo di dati Area di memoria Descrizione


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.
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, P Se l’istruzione viene eseguita correttamente, viene
restituito il valore W#16#0000. Per informazioni sui
valori diversi da W#16#0000, vedere il paragrafo
Errori.
OUT_STEP Uscita BOOL E, A, M, D, L, P Contiene il numero di passo e della maschera con cui
è stata trovata una corrispondenza oppure, se non è
stata trovata una maschera corrispondente, il numero
del passo successivo a LAST.
LAST statica BYTE E, A, M, D, L, P Specifica il numero dell’ultimo passo da scansionare
per individuare una maschera corrispondente.
CMP_VAL statica ARRAY OF E, A, M, D, L Maschere di confronto [da 0 a 15 , da 0 a 15], dove il
BOOL primo numero dell’indice corrisponde a quello del
passo e il secondo a quello del bit della maschera.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 8-7
Blocchi funzionali di confronto

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

OUT A2.0 = FALSE


OUT_STEP MB10 = B#16#00
DB84 di istanza
LAST DB84 = B#16#05
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
OUT_STEP MB10 = B#16#02

Figura 8-2 Confronta matrice in scansione (SMC)

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


8-8 A5E00066870-03
Glossario
A

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”.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 Glossario-1
Glossario

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


Glossario-2 A5E00066870-03
Glossario

CPU La CPU (Central Processing Unit) contiene il programma utente e ha la funzione di


elaborare i dati per il controllore programmabile.
F

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

Identificatore di L’identificatore di operando è la parte di un operando di un’istruzione che fornisce


operando informazioni quali, ad esempio, l’area di memoria in cui l’istruzione trova il valore
(oggetto di dati) con cui eseguire un’operazione. Ad esempio, nell’indirizzo ”EB 10”,
l’identificatore è costituito da ”EB” (dove ”E” indica l’area di memoria in ingresso e
”B” un byte di tale area).

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 l’operando di un’istruzione punta


diretto direttamente all’indirizzo in cui si trova il valore che elaborerà. Cfr. ”Indirizzamento
immediato”.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 Glossario-3
Glossario

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

Notazione La notazione mnemonica è la rappresentazione mediante sigle di nomi, operandi e


mnemonica istruzioni di programmazione del programma (ad esempio ”E” sta per ”ingresso” e
”A” per operazione And”). STEP 7 supporta la notazione internazionale (basata
sull’inglese) e la notazione SIMATIC (basata sulla notazione delle ioperazioni
adottata in Germania e sulle convenzioni per l’indirizzamento SIMATIC).
O

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


Glossario-4 A5E00066870-03
Glossario

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.

Programma utente Il programma utente contiene la logica di controllo di un progetto di automazione.


Questa è memorizzata sotto forma di istruzioni nel PLC che controlla un impianto o
un processo.

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.

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 Glossario-5
Glossario

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.

Segmento Nel linguaggio schema a contatti di STEP 7, un segmento corrisponde ad un montante


con istruzioni KOP. Cfr. la voce ”Montante”.
T

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).

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


Glossario-6 A5E00066870-03
Indice analitico
A Converti da numero in scala in numero intero
(UNSCALE), 6-14
Aggiungi dati alla tabella (ATT), 2-2
Crea complemento a dieci (BCDCPL), 6-10
Algoritmo Lead/Lag (LEAD_LAG), 6-16
Leggi posizione del primo bit 1 cominciando
Allarme a tempo con controllo (DCAT), 5-4
dal valore più basso (ENCO), 6-8
Allarme a tempo per controllo motori (MCAT), 5-7
Riporta valori in scala (SCALE), 6-12
Assistenza tecnica, v
Scrivi in una parola il valore binario di un bit
data la sua posizione (DECO), 6-9
Converti caratteri ASCII in cifre esadecimali
B (ATH), 6-4
Blocchi funzionali (FB) Converti cifre esadecimali in caratteri ASCII
copiare, iii (HTA), 6-6
elenco, vi Converti da cifra esadecimale in modello bit per
Blocchi funzionali di confronto display a sette segmenti (SEG), 6-2
Confronta matrice in scansione (SMC), 8-6 Converti da numero in scala in numero intero (UN-
Confronta posizione di matrice (IMC), 8-2 SCALE), 6-14
Copia dato dalla tabella (TBL_WRD), 2-13
Copiare funzioni (FC) e blocchi funzionali (FB), iii
C Crea complemento a dieci (BCDCPL), 6-10
Combina e memorizza logicamente il valore con
l’elemento della tabella (WRD_TBL), 2-15
Combinazione a bit D
Resetta direttamente stato delle uscite comprese Da tabella di origine a tabella di destinazione
nel campo (RSETI), 1-4 (TBL_TBL), 2-19
Resetta stato delle uscite comprese nel campo Deviazione standard (DEV), 7-2
(RSET), 1-2 Drum mascherabile a evento (DRUM), 5-10
Combinazioni a bit
Imposta direttamente stato delle uscite com-
prese nel campo (SETI), 1-8 E
Imposta stato delle uscite comprese nel campo
Esegui operazione in tabella (TBL), 2-11
(SET), 1-6
Confronta matrice in scansione (SMC), 8-6
Confronta posizione di matrice (IMC), 8-2
Confronto F
Confronta matrice in scansione (SMC), 8-6 Funzione e blocchi funzionali di temporizzazione
Confronta posizione di matrice (IMC), 8-2 Allarme a tempo con controllo (DCAT), 5-4
Conta il numero di bit 1 (BITSUM), 6-11 Allarme a tempo per controllo motori (MCAT),
Conversione 5-7
Algoritmo Lead/Lag (LEAD_LAG), 6-16 Drum mascherabile a evento (DRUM), 5-10
Conta il numero di bit 1 (BITSUM), 6-11 Temporizzatore software per ritardo a inserzione
Converti caratteri ASCII in cifre esadecimali con memoria (TONR), 5-2
(ATH), 6-4 Funzione e blocco funzionale di spostamento
Converti cifre esadecimali in caratteri ASCII Impacchetta e distribuisci dati (PACK), 4-4
(HTA), 6-6 Sposta un blocco dati con indirizzamento indi-
Converti da cifra esadecimale in modello bit per retto (IBLKMOV), 4-2
display a sette segmenti (SEG), 6-2

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 Indice-1
Indice analitico

Funzione matematica in virgola mobile, Deviazione I


standard (DEV), 7-2
Impacchetta e distribuisci dati (PACK), 4-4
Funzioni (FC)
Imposta direttamente stato delle uscite comprese
copiare, iii
nel campo (SETI), 1-8
elenco, vi
Imposta stato delle uscite comprese nel campo
Funzioni di combinazione a bit
(SET), 1-6
Imposta direttamente stato delle uscite com-
Inserisci bit nel registro di scorrimento (SHRB), 3-4
prese nel campo (SETI), 1-8
Inserisci e sposta dati nel registro di scorrimento
Imposta stato delle uscite comprese nel campo
(WSR), 3-2
(SET), 1-6
Resetta direttamente stato delle uscite comprese
nel campo (RSETI), 1-4
Resetta stato delle uscite comprese nel campo L
(RSET), 1-2 Leggi posizione del primo bit 1 cominciando dal
Funzioni di scorrimento valore più basso (ENCO), 6-8
Inserisci bit nel registro di scorrimento (SHRB),
3-4
Inserisci e sposta dati nel registro di scorrimento M
(WSR), 3-2
Matematica in virgola mobile, Deviazione standard
Funzioni e blocco funzionale di conversione
(DEV), 7-2
Algoritmo Lead/Lag (LEAD_LAG), 6-16
Conta il numero di bit 1 (BITSUM), 6-11
Converti caratteri ASCII in cifre esadecimali
(ATH), 6-4 R
Converti cifre esadecimali in caratteri ASCII Resetta direttamente stato delle uscite comprese nel
(HTA), 6-6 campo (RSETI), 1-4
Converti da cifra esadecimale in modello bit per Resetta stato delle uscite comprese nel campo
display a sette segmenti (SEG), 6-2 (RSET), 1-2
Converti da numero in scala in numero intero Restituisci primo dati immesso in tabella (FIFO),
(UNSCALE), 6-14 2-4
Crea complemento a dieci (BCDCPL), 6-10 Ricerca dato in tabella (TBL_FIND), 2-6
Leggi posizione del primo bit 1 cominciando Riporta valori in scala (SCALE), 6-12
dal valore più basso (ENCO), 6-8
Riporta valori in scala (SCALE), 6-12
Scrivi in una parola il valore binario di un bit S
data la sua posizione (DECO), 6-9
Scorrimento
Funzioni tabellari
Inserisci bit nel registro di scorrimento (SHRB),
Aggiungi dati alla tabella (ATT), 2-2
3-4
Combina e memorizza logicamente il valore
Inserisci e sposta dati nel registro di scorrimento
con l’elemento della tabella (WRD_TBL),
(WSR), 3-2
2-15
Scrivi in una parola il valore binario di un bit data
Copia dato dalla tabella (TBL_WRD), 2-13
la sua posizione (DECO), 6-9
Da tabella di origine a tabella di destinazione
Sposta un blocco dati con indirizzamento indiretto
(TBL_TBL), 2-19
(IBLKMOV), 4-2
Esegui operazione in tabella (TBL), 2-11
Spostamento
Restituisci primo dato immesso in tabella
Impacchetta e distribuisci dati (PACK), 4-4
(FIFO), 2-4
Sposta un blocco dati con indirizzamento indi-
Ricerca dato in tabella (TBL_FIND), 2-6
retto (IBLKMOV), 4-2
Tabelle con dati correlati (CDT), 2-17
Visualizza ultimo dato immesso in tabella
(LIFO), 2-9

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


Indice-2 A5E00066870-03
Indice analitico

T Tabelle con dati correlati (CDT), 2-17


Temporizzatore software per ritardo a inserzione
Tabella
con memoria (TONR), 5-2
Aggiungi dati alla tabella (ATT), 2-2
Temporizzazione
Combina e memorizza logicamente il valore
Allarme a tempo con controllo (DCAT), 5-4
con l’elemento della tabella (WRD_TBL),
Allarme a tempo per controllo motori (MCAT),
2-15
5-7
Copia dato dalla tabella (TBL_WRD), 2-13
Drum mascherabile a evento (DRUM), 5-10
Da tabella di origine a tabella di destinazione
Temporizzatore software per ritardo a inserzione
(TBL_TBL), 2-19
con memoria (TONR), 5-2
Esegui operazione in tabella (TBL), 2-11
Restituisci prima dato immesso in tabella
(FIFO), 2-4
Ricerca dato in tabella (TBL_FIND), 2-6 V
Tabelle con dati correlati (CDT), 2-17 Visualizza ultimo dato immesso in tabella (LIFO),
Visualizza ultimo dato immesso in tabella 2-9
(LIFO), 2-9

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 Indice-3
Indice analitico

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


Indice-4 A5E00066870-03
Siemens AG
A&D AS E 81
Oestliche Rheinbrueckenstr. 50

D-76181 Karlsruhe
Repubblica federale di Germania

Mittente:
Nome: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Funzione: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ditta: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
Via: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
C.A.P.: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _
Città: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Paese: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Telefono: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Indicare il corrispondente settore industriale:

❒ Industria automobilistica ❒ Industria farmaceutica


❒ Industria chimica ❒ Industria delle materie plastiche
❒ Industria elettrotecnica ❒ Industria cartaria
❒ Industria alimentare ❒ Industria tessile
❒ Tecnica di controllo e strumentazione ❒ Impresa di trasporti
❒ Industria meccanica ❒ Altre _ _ _ _ _ _ _ _ _ _ _
❒ Petrolchimica

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


A5E00066870-03 1
Critiche/suggerimenti
Vi preghiamo di volerci comunicare critiche e suggerimenti atti a migliorare la qualità
e, quindi, a facilitare l’uso della documentazione. Per questo motivo vi saremmo grati se
vorreste compilare e spedire alla Siemens il seguente questionario.

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?

Se avete riscontrato dei problemi di ordine pratico, Vi preghiamo di delucidarli nelle


seguenti righe:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2


2 A5E00066870-03