Standard Software S7-300/400, Teil 2 -...

106
Prefazione, Contenuto Funzioni di combinazione a bit 1 Funzioni tabellari 2 Funzioni di scorrimento 3 Funzione e blocco funzionale di spostamento 4 Funzione e blocchi funzionali di temporizzazione 5 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 Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2 Manuale di riferimento SIMATIC

Transcript of Standard Software S7-300/400, Teil 2 -...

Page 1: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Prefazione, Contenuto

Funzioni dicombinazione a bit 1

Funzioni tabellari 2

Funzioni di scorrimento 3

Funzione e bloccofunzionale di spostamento 4

Funzione e blocchi funzionalidi temporizzazione 5

Funzioni e blocco funzionaledi conversione 6

Funzione matematica invirgola mobile 7

Blocchi funzionali diconfronto 8

Glossario, Indice analitico

03/2000Edizione 03

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

Manuale di riferimento

SIMATIC

Page 2: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

������������������ ������������������ �� ������������������ ��������������������������������������������������������� ����������������������������������������������� ���������������������������������� ���������������������� ���������������������������������

!Pericolo di morte

������� �� ���������������������������������������������� ������������������������������������������������������������������������

!Pericolo

������� �� ���������������������������������������������� ��������������������������������������������������������������������������

!Attenzione

������� �� ���������������������������������������������� ����������� ���������������������������������������������������������

Avvertenza

����������������������������������������������������������������������������������� ������������� ��������������������������� ���������������

�������������������������������������������������������������������������������������������������

���������������������������������������� ������������������� ���� ������������������������� ��������������������������������� ������� ����������������������� ������������������ ������������������������ ���������������������������� ���������������� ����������������������� �� ������� �������������� ������������ �� ��������� ��

���������������������

!Pericolo

������������������������������������������������������������� ������������������ ��������� �� ����������� ����������� ��������� ��������� �����������������������������!������

���������������� ������������ ��� ���������� �� �������� ������� ������������������ ������� �������������������������������������������������������� ����������������������� �"�������� ����������������������������������

!�#$%�&��!�#$%�&�'(%���!�#$%�&�)#��������� �������������������!�(#('!�$*�%������������������������������������� ����������������� ������� ����������������������������������������������������������

La duplicazione e la cessione della presente documentazionesono vietate, come pure l’uso improprio del suo contenuto, senon dietro autorizzazione scritta. Le trasgressioni sono passibilidi risarcimento dei danni. Tutti i diritti sono riservati, in particolarequelli relativi ai brevetti e ai marchi registrati.

Abbiamo controllato che il contenuto della presentedocumentazione corrisponda all’hardware e al softwaredescritti. Non potendo tuttavia escludere eventuali differenze,non garantiamo una concordanza totale. Il contenuto dellapresente documentazione viene tuttavia verificatoregolarmente, e le correzioni o modifiche eventualmentenecessarie sono contenute nelle edizioni successive. Saremolieti di ricevere qualunque tipo di proposta di miglioramento.

Siemens AG 2000Ci riserviamo eventuali modifiche

������������� ������������Copyright � Siemens AG 2000 All rights reserved

Siemens AGDivisione AutomazioneSistemi per l’automazione industriale����� � �+,+,��-./0123�'4������

$5(00066,30Siemens Aktiengesellschaft

Avvertenze tecnichedi sicurezza

Personale qualificato

Uso conforme alledisposizioni

Marchio di prodotto

Page 3: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

iiiSoftware di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Prefazione

Il presente manuale descrive e riporta esempi sulle funzioni S7 FC e sui blocchifunzionali FB in linguaggio KOP (schema a contatti). Le FC e gli FB vengonoutilizzati per la programmazione dei controllori programmabili (PLC)S7-300/S7-400. Il presente manuale può essere usato dall’utente come riferimento incui ricercare informazioni sulle funzioni disponibili.

Le FC e gli FB descritti nel manuale sono memorizzati nella biblioteca standard diSTEP 7 e possono essere copiati nella directory di destinazione del proprioprogramma dal File Manager di STEP 7. Prima di procedere alla copia, ci si deveassicurare che il programma non contenga FC o FB con lo stesso numero di quelliche si vuole prelevare dalla biblioteca. In tal caso, si dovrà modificare il numerodelle FC o degli FB del programma o delle FC e degli FB che verranno copiati.

Il manuale è destinato in particolare a ingegneri, programmatori e al personaleaddetto alla manutenzione che disponga di una conoscenza di base dei controlloriprogrammabili.

Nel manuale le FC e gli FB sono raggruppati nel seguente modo:

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

Scopo del manuale

Collocazione dellefunzioni S7

A chi è destinato ilmanuale?

Come consultare ilmanuale

Page 4: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

I capitoli descrivono le FC e gli FB che l’utente può utilizzare assieme alleistruzioni standard per ottenere una maggiore flessibilità nella programmazione.Ogni FC e FB è riportato assieme al nome, alla sigla e al numero e viene illustratoin base ai seguenti argomenti:

• Descrizione – fornisce una descrizione generale.

• Parametri – è una tabella che riporta la dichiarazione, il tipo di dati, le aree dimemoria ammesse e la descrizione dei singoli parametri.

• Errori – descrive gli errori che potrebbero impedire la corretta esecuzione dellafunzione o del blocco funzionale.

• Esempio – si tratta di una rappresentazione grafica della funzione o del bloccofunzionale che riporta un esempio dei parametri e i risultati dell’operazione.

Questo manuale fa parte del pacchetto di documentazione di STEP 7 che contiene imanuali elencati nella tabella qui riportata.

Titolo Contenuto

Primi passi ed esercitazionicon STEP 7

Questo prontuario consente un facile approccio alle procedure di configurazione eprogrammazione dell’S7-300/400. E’ utile soprattutto a coloro che utilizzano il sistema diautomazione S7 per la prima volta.

Manuale Programmazione conSTEP 7

Il manuale ”Software di sistema per S7-300/400 - Sviluppo di programmi” fornisce lenozioni fondamentali relative alla configurazione del sistema operativo e del programmautente di una CPU S7. Questo manuale è destinato agli utenti che non conoscono i sistemiS7-300 e S7-400. Offre una panoramica delle procedure di programmazione e consentequindi di eseguire la configurazione del programma utente.

Manuale di riferimentoSoftware di sistema perS7-300/400 – Funzionistandard e di sistema

Il sistema operativo delle CPU dell’S-7 include funzioni di sistema e blocchi organizzativiche possono risultare utili durante la programmazione. Il manuale fornisce una panoramicadelle funzioni di sistema, dei blocchi organizzativi e delle funzioni standard caricabilidisponibili con l’S7, nonché, a titolo informativo, descrizioni dettagliate delle interfacce dautilizzare nel programma utente.

ManualeConfigurazionedell’hardware eprogettazione dicollegamenti STEP 7

Il manuale ”STEP 7” illustra l’utilizzo principale e le funzioni del software di automazioneSTEP 7. Il manuale fornisce, sia all’utente principiante di STEP 7 che all’esperto di STEP 5,una panoramica delle procedure di configurazione, programmazione e messa in serviziodell’S7-300/400. Durante l’esecuzione del software, è possibile consultare la guida online.

Manualedi conversioneDa S5 a S7

Il manuale di conversione ”Da S5 a S7” è utile se si desidera convertire il programma STEP5 per poterlo eseguire sulle CPU S7. Esso fornisce una panoramica delle procedure delprogramma di conversione. Per istruzioni dettagliate sull’uso delle funzioni di conversione,consultare la guida online, che descrive anche le interfacce delle funzioni convertitedisponibili in STEP 7.

Documentazionedi STEP 7

Prefazione

Page 5: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

vSoftware di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Titolo Contenuto

Manuali di riferimentoAWL, KOP, SCL 1

I manuali dei linguaggi di programmazione AWL, KOP e SCL contengono sia le istruzioniper 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 linguaggiall’interno di un unico progetto. Se si usa per la prima volta un linguaggio, è consigliabileleggere il manuale per acquisire familiarità con le procedure di sviluppo dei programmi.

Durante l’esecuzione del software è possibile consultare la guida online, che fornisceinformazioni dettagliate sull’uso dei vari editor/compilatori.

ManualiS7-GRAPH1 ,S7-HiGraph1, CFC1

I linguaggi GRAPH, HiGraph e CFC offrono ulteriori possibilità: permettono di crearecomandi sequenziali, comandi di stato o collegamenti grafici di blocchi. I manualicontengono sia le istruzioni per l’utente che la descrizione dei linguaggi. Se si usa per laprima 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 guidaonline, che fornisce informazioni dettagliate sull’uso dei vari editor/compilatori.

1 Pacchetti opzionali per il software di sistema per S7-300/400

Le diverse CPU S7-300 e S7-400, le unità modulari S7-300 e S7-400 e le istruzionidella 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 Listaistruzioni.

• Per il controllore programmabile S7-400 fare riferimento ai manuali:Hardware e installazione (dati CPU, dati dell’unità modulare) e la Listaistruzioni.

Per ulteriori informazioni consultare la guida online.

Se nonostante questo o altri manuali STEP 7 permangono dei dubbi, se si desideraavere informazioni sull’ordinazione di ulteriore documentazione o dispositivi e suicorsi di formazione, contattare il più vicino distributore o ufficio vendite Siemens.

Ulteriori manuali

Ulterioreassistenza

Prefazione

Page 6: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Il presente manuale descrive le seguenti funzioni e 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(WRD_TBL)

FC91 2-15

Inserisci bit nel registro di scorrimento (SHRB) FC92 3-4

Converti da cifra esadecimale in modello bit per display a sette segmenti(SEG)

FC93 6-2

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(ENCO)

FC96 6-8

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

FC97 6-9

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

Elenco dellefunzioni e deiblocchi funzionali

Prefazione

Page 7: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

viiSoftware di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-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. . . . . . . . . . . . . . . . . . . . . . . .

Page 8: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

Contenuto

Page 9: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Funzioni di combinazione a bit

Il presente capitolo descrive le funzioni di combinazione a bit (FC) che, utilizzateassieme alle istruzioni standard, garantiscono una maggiore flessibilità nellaprogrammazione.

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(RSETI): FC100

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

1

Page 10: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

1.1 Resetta stato delle uscite comprese nel campo (RSET): FC82

La funzione ”Resetta stato delle uscite comprese nel campo” (RSET) azzera lo statodei 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.

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

ENO Uscita BOOL E, A, M, D, L Se la funzione viene eseguita correttamente, l’uscita diabilitazione 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 ocostante

Numero di bit del campo da resettare.

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

Descrizione

Parametri

Funzioni di combinazione a bit

Page 11: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

1-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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 ENOviene impostata a 0.

La figura 1-1 illustra il funzionamento della funzione RSET. Se l’ingresso E 0.0 vale1 (attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportatoS_BIT punta al primo bit all’indirizzo M0.0. Il parametro N specifica che devonoessere resettati 10 bit. Una volta eseguita l’istruzione, tutti i 10 bit del campo da M0.0a M1.1 vengono impostati a 0.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0RSETFC82

EN ENO

S_BIT

N

P#M 0.0

10

1

M0.0

Prima dell’esecuzione:

1 1 1 1 1 1 1

1

M1.0

1 1 1 1 1 1 1

0

M0.0

Dopo l’esecuzione:

0 0 0 0 0 0 0

1

M1.0

1 1 1 1 1 0 0

M0.7

M1.7

M0.7

M1.7

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

Errori

Esempio

Funzioni di combinazione a bit

Page 12: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

1.2 Resetta direttamente stato delle uscite comprese nel campo (RSETI)

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_BYTEpunta al primo byte del campo e N specifica il numero di byte che devono essereresettati. La dimensione del campo viene espressa specificando il numero di bit che visono compresi; ad esempio, per indicare un campo di 2 byte, si attribuisce a N ilvalore 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 delpuntatore deve essere 0.

Avvertenza

Anche i bit corrispondenti della tabella dell’immagine di processo delle uscite(memoria A) vengono impostati a 0.

I parametri della funzione ”Resetta direttamente stato delle uscite comprese nelcampo” (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 vieneattivato.

ENO Uscita BOOL E, A, M, D, L Se la funzione viene eseguita correttamente, l’uscita diabilitazione assume valore 1.

S_BYTE Ingresso POINTER* P Punta al primo byte del campo.

N Ingresso INT E, A, M, D, L, P ocostante

Dimensione del campo di byte da impostare a 0,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

Descrizione

Parametri

Funzioni di combinazione a bit

Page 13: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

1-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Se si verifica una delle condizioni indicate qui di seguito, lo stato dei bit del camponon viene modificato e l’uscita ENO viene impostata a 0.

• Il puntatore S_BYTE punta ad un’area di memoria diversa dall’area di memoriaesterna 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.

La figura 1-2 illustra il funzionamento della funzione RSETI. Se l’ingresso E 0.0 vale1 (attivato) e il bit MCR vale 1, la funzione viene eseguita. Nell’esempio qui riportatoS_BYTE punta al primo byte all’indirizzo P2.0. Il parametro N specifica che devonoessere resettati 16 bit (2 byte). Una volta eseguita l’istruzione, tutti i bit del campo daP2.0 a P3.7 vengono impostati a 0.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0RSETIFC100

EN ENO

S_BYTE

N

P#P 2.0

16

1

P1.0

Prima dell’esecuzione:

1 1 1 1 1 1 1

1

P2.0

1 1 1 1 1 1 1

1

P3.0

1 1 1 1 1 1 1

1

P4.0

1 1 1 1 1 1 1

Dopo l’esecuzione:

1

P1.0

1 1 1 1 1 1 1

0

P2.0

0 0 0 0 0 0 0

0

P3.0

0 0 0 0 0 0 0

1

P4.0

1 1 1 1 1 1 1

P1.7

P2.7

P3.7

P4.7

P1.7

P2.7

P3.7

P4.7

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

Errori

Esempio

Funzioni di combinazione a bit

Page 14: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

1.3 Imposta stato delle uscite comprese nel campo (SET): FC83

La funzione ”Imposta stato delle uscite comprese nel campo” (SET) imposta a 1 lostato dei bit di un dato campo quando il bit MCR assume il valore 1. Se il bit MCRvale 0, lo stato dei bit del campo non viene modificato. Il numero di bit che devonoessere impostati è indicato da N e l’inizio del campo è puntato da S_BIT.

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

ENO Uscita BOOL E, A, M, D, L Se la funzione viene eseguita correttamente, l’uscita diabilitazione 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 ocostante

Numero di bit del campo da impostare.

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

Descrizione

Parametri

Funzioni di combinazione a bit

Page 15: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

1-7Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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 ENOviene impostata a 0.

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 riportatoS_BIT punta al primo bit dell’indirizzo M0.0. Il parametro N specifica che devonoessere impostati 10 bit. Una volta eseguita l’istruzione, tutti i 10 bit del campo daM0.0 a M1.1 vengono impostati a 1.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0SETFC83

EN ENO

S_BIT

N

P#M 0.0

10

0

M0.0

Prima dell’esecuzione:

0 0 0 0 0 0 0

0

M1.0

0 0 0 0 0 0 0

1

M0.0

Dopo l’esecuzione:

1

0 0 0 0 1 10

M1.0

0

1 1 1 1 1 1

M0.7

M1.7

M0.7

M1.7

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

Errori

Esempio

Funzioni di combinazione a bit

Page 16: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

1.4 Imposta direttamente stato delle uscite comprese nel campo (SETI):FC101

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_BYTEpunta al primo byte del campo e N specifica la dimensione del campo. Quest’ultimaviene espressa specificando il numero di bit del campo; ad esempio, per indicare uncampo 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 delpuntatore deve essere 0.

Avvertenza

Anche i bit corrispondenti della tabella dell’immagine di processo delle uscite(memoria A) vengono impostati a 0.

I parametri della funzione ”Imposta direttamente stato delle uscite comprese nelcampo” (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 vieneattivato.

ENO Uscita BOOL E, A, M, D, L Se la funzione viene eseguita correttamente, l’uscita diabilitazione assume valore 1.

S_BYTE Ingresso POINTER* P Punta al primo byte del campo.

N Ingresso INT E, A, M, D, L, P ocostante

Dimensione del campo di byte da impostare a 1,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

Descrizione

Parametri

Funzioni di combinazione a bit

Page 17: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

1-9Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Se si verifica una delle condizioni riportate qui di seguito, lo stato dei bit del camponon viene modificato e l’uscita ENO viene impostata a 0.

• Il puntatore S_BYTE punta ad un’area di memoria diversa dall’area di memoriaesterna 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.

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 riportatoS_BYTE punta al primo byte dell’indirizzo P2.0. Il parametro N specifica che devonoessere impostati 16 bit (2 byte). Una volta eseguita l’istruzione, tutti i bit del campo daP2.0 a P3.7 vengono impostati a 1.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0SETI

FC101EN ENO

S_BYTE

N

P#P 2.0

16

P1.0

Prima dell’esecuzione: Dopo l’esecuzione:

P2.0

P3.0

P4.0

1

P1.0

1 1 1 1 1 1 1

0

P2.0

0 0 0 0 0 0 0

0

P3.0

0 0 0 0 0 0 0

1

P4.0

1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

P1.7

P2.7

P3.7

P4.7

P1.7

P2.7

P3.7

P4.7

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

Errori

Esempio

Funzioni di combinazione a bit

Page 18: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Funzioni di combinazione a bit

Page 19: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Funzioni tabellari

Il presente capitolo descrive le funzioni tabellari (FC) che, utilizzate assieme alleistruzioni 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’elementodella 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

2

Page 20: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

2.1 Aggiungi dati alla tabella (ATT): FC84

La funzione ”Aggiungi dati alla tabella” (ATT) consente di aggiungere il contenutodel parametro DATA nel primo indirizzo disponibile della tabella e di incrementare diuno il numero di dati immessi. La tabella è composta di parole. Questa funzioneconsente 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 paroleche 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.

I parametri della funzione ”Aggiungi dati alla tabella” (ATT) sono riportati nellatabella 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 vieneattivato.

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 ocostante

Parole da inserire nella tabella.

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

Descrizione

Parametri

Funzioni tabellari

Page 21: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Se il numero di parole inserite è uguale o superiore a quello consentito dallalunghezza della tabella, non verrà immessa alcuna parola e l’uscita ENO verràimpostata a 0.

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 parametroDATA è 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.

E0.0 A4.0ATT

FC84EN ENO

DATA

TABLE

W#16#0024

P#DB1.DBX10.0

Prima dell’esecuzione:

TABLE (lunghezza tabella)numero di parole immesse

DBW10 = W#16#0006DBW12 = W#16#0004DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0000DBW24 = W#16#0000

Dopo l’esecuzione:

TABLE (lunghezza tabella)numero di parole immesse

DBW10 = W#16#0006DBW12 = W#16#0005DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000

Figura 2-1 Aggiungi dati alla tabella (ATT)

Errori

Esempio

Funzioni tabellari

Page 22: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Restituisci primo dato immesso in tabella” (FIFO) restituisce il datomeno recente della tabella FIFO sotto forma di valore funzionale. Il numero di datiimmessi decrementa di uno e quelli eventualmente rimanenti vengono spostati verso ilbasso. La tabella FIFO è composta di parole. Per aggiungere parole alla tabella FIFOsi utilizza la funzione ATT.

• Il primo indirizzo delle tabelle FIFO e LIFO contiene il numero massimo di paroleche 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.

I parametri della funzione ”Restituisci primo dato immesso in tabella” (FIFO) sonoriportati 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 vieneattivato.

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

Descrizione

Parametri

Funzioni tabellari

Page 23: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Se la tabella FIFO è vuota (numero di parole immesse = 0), il parametro RET_VALnon viene modificato e l’uscita ENO viene impostata a 0.

La figura 2-2 illustra il funzionamento della funzione FIFO. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, la parola meno recentedella tabella viene restituita sotto forma di valore funzionale (MW2). Il numero diparole immesse viene decrementato da 5 a 4 e quelle rimanenti vengono spostateverso il basso.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0

P#DB1.DBX10.0

FIFOFC85

TABLE

RET_VAL

EN ENO

MW2

Prima dell’esecuzione:

TABLE (lunghezza tabella)numero di parole immesse

DBW10 = W#16#0006DBW12 = W#16#0005DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000

Dopo l’esecuzione:

DBW10 = W#16#0006DBW12 = W#16#0004DBW14 = W#16#0029DBW16 = W#16#0090DBW18 = W#16#0002DBW20 = W#16#0024DBW22 = W#16#0024DBW24 = W#16#0000

RET_VAL MW2 = W#16#0000

MW2 = W#16#0012

TABLE (lunghezza tabella)numero di parole immesse

RET_VAL

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

Errori

Esempio

Funzioni tabellari

Page 24: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

2.3 Ricerca dato in tabella (TBL_FIND): FC86

La funzione ”Ricerca dato in tabella” (TBL_FIND) consente di cercare, all’interno diun blocco di memoria, un modello uguale o diverso da un modello specificato. Talefunzione 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 elementodella tabella (successivo a quello puntato da INDX) che soddisfa quanto indicato dalcomando di confronto, ne specifica il numero in INDX. Se non individua alcunmodello corrispondente, INDX punta fuori dalla tabella e l’uscita della funzione vienedisabilitata.

• 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 inPATRN.

• Il primo indirizzo della tabella contiene il numero massimo di dati che vi possonoessere 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 essereinizializzato.

Descrizione

Funzioni tabellari

Page 25: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

I parametri della funzione ”Ricerca dato in tabella” (TBL_FIND) sono riportati nellatabella 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 vieneattivato.

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 modelloB#16#02 = diverso dal modello

E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nellatabella. Nella funzione TBL_FIND sono ammessi iseguenti dati:

B#16#02 = BYTEB#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

INDX Ingresso/uscita WORD E, A, M, D, L Indirizzo della tabella che fornisce le seguentiinformazioni:

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.

Se si verifica una delle condizioni descritte nella tabella 2-4, i dati della tabella nonvengono modificati. L’uscita ENO viene impostata a 0 e RET_VAL restituisce ilvalore 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.

Parametri

Errori

Funzioni tabellari

Page 26: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

La figura 2-3 illustra il funzionamento della funzione TBL_FIND. Essa viene eseguitase 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 inizianoall’indirizzo indicato dal parametro SRC. Tali parole vengono confrontate con ilmodello 5555 memorizzato nell’indirizzo indicato dal parametro PATRN. Poiché ilvalore di CDM è 1, durante la ricerca verrà individuato il primo valore del parametroSRC 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 diconfronto.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0TBL_FIND

FC86EN ENO

SRC

PATRN

CMD

E_TYPE

RET_VALP#DB1.DBX0.0

P#DB2.DBX10.0

B#16#01

B#16#04

MW2

Il primo indirizzo della tabella indica lalunghezza dell’operazione di ricerca. Ilvalore 0004 indica che la ricerca verràeffettuata nei 4 indirizzi successivi.

Il parametro INDX passa dal valoreDW0 (prima dell’operazione) al valoreDW6 (dopo l’operazione) poiché ilmodello all’indirizzo DW6 è uguale almodello 5555 all’indirizzo di puntatorePATRN.

INDX

MW0

Prima dell’esecuzione:

SRC (lunghezza tabella) DBW0 = W#16#0004DBW2 = W#16#1111DBW4 = W#16#3333DBW6 = W#16#5555DBW8 = W#16#7777

Dopo l’esecuzione:

INDX MW2 = W#16#0000

PATRN DBW10 = W#16#5555

INDX MW2 = W#16#0003

Figura 2-3 Ricerca dato in tabella (TBL_FIND)

Esempio

Funzioni tabellari

Page 27: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

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

La funzione ”Visualizza ultimo dato immesso in tabella” (LIFO) restituisce l’ultimodato immesso nella tabella LIFO (ovvero il più recente) sotto forma di valorefunzionale 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 possonoessere 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.

I parametri della funzione ”Visualizza ultimo dato immesso in tabella” (LIFO) sonoriportati 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 vieneattivato.

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

Descrizione

Parametri

Funzioni tabellari

Page 28: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se la tabella LIFO è vuota (numero di parole immesse = 0), il parametro RET_VALnon viene modificato e l’uscita ENO viene impostata a 0.

La figura 2-4 illustra il funzionamento della funzione LIFO. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, la parola più recentedella tabella viene restituita sotto forma di valore funzionale (MW2). Il numero diparole immesse viene decrementato da 5 a 4.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0

P#DB1.DBX10.0

LIFOFC87

TABLE

RET_VAL

EN ENO

MW2

Prima dell’esecuzione :

DBW10 = W#16#0006DBW12 = W#16#0005DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000

Dopo l’esecuzione :

DBW10 = W#16#0006DBW12 = W#16#0004DBW14 = W#16#0012DBW16 = W#16#0029DBW18 = W#16#0090DBW20 = W#16#0002DBW22 = W#16#0024DBW24 = W#16#0000

RET_VAL MW2 = W#16#0000

MW2 = W#16#0024

TABLE (lunghezza tabella)numero di parole immesse

RET_VAL

TABLE (lunghezza tabella)numero di parole immesse

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

Errori

Esempio

Funzioni tabellari

Page 29: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

2.5 Esegui operazione in tabella (TBL): FC88

La funzione ”Esegui operazione in tabella” (TBL) esegue l’operazione indicata(impostata da CMD) nella tabella di origine e memorizza il risultato nello stessoindirizzo della tabella.

• Il primo indirizzo della tabella contiene il numero massimo di dati che vi possonoessere 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 ilcomplemento a uno.

Avvertenza

Quando si crea la tabella si deve inizializzare il primo elemento.

I parametri della funzione ”Esegui operazione in tabella” (TBL) sono riportati nellatabella 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 vieneattivato.

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 = azzeraB#16#05 = negaB#16#06 = radice quadrata

E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nellatabella. Nella funzione TBL sono ammessi i seguentidati:

B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINT

B#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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

Descrizione

Parametri

Funzioni tabellari

Page 30: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se CMD o E_TYPE non sono ammessi o sono incompatibili, i dati della tabella nonvengono modificati. L’uscita ENO viene impostata a 0 e RET_VAL viene postouguale a W#16#0008.

La figura 2-5 illustra il funzionamento della funzione TBL. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato SCR punta agli indirizzidel blocco dati che verranno elaborati dall’istruzione. Poiché E_TYPE è uguale a 4, idati della tabella vengono memorizzati in parole che iniziano all’indirizzo puntato dalparametro SRC. Poiché il valore di CDM è 4 (azzera), quando viene eseguital’istruzione, tutte le parole della tabella vengono azzerate. Poiché come primo datodella tabella è stata impostata una lunghezza pari a 5, verranno azzerati i cinqueindirizzi successivi.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

TBLFC88

EN ENO

SRC

CMD

E_TYPE

E0.0 A4.0

RET_VALP#DB1.DBX0.0

B#16#04

B#16#04

MW0

Prima dell’esecuzione:

SRC (lunghezza tabella) DBW0 = W#16#0005DBW2 = W#16#2000DBW4 = W#16#3000DBW6 = W#16#4000DBW8 = W#16#5000DBW10 = W#16#6000

Dopo l’esecuzione:

SRC (lunghezza tabella) DBW0 = W#16#0005DBW2 = W#16#0000DBW4 = W#16#0000DBW6 = W#16#0000DBW8 = W#16#0000DBW10 = W#16#0000

Figura 2-5 Esegui operazione in tabella (TBL)

Errori

Esempio

Funzioni tabellari

Page 31: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

2.6 Copia dato dalla tabella (TBL_WRD): FC89

La funzione ”Copia dato dalla tabella” (TBL_WRD) copia il dato a cui punta INDXdalla tabella SRC nell’indirizzo indicato da DEST e incrementa il valore di INDX, acondizione che esso sia inferiore alla lunghezza massima indicata nella prima paroladella tabella, SRC[0]. Se, quando si richiama l’operazione, INDX contiene l’ultimodato 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 possonoessere 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.

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

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 nellatabella. Nella funzione TBL_WRD sono ammessi iseguenti dati:

B#16#04 = WORDB#16#05 = INTB#16#06 = DWORD

B#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

Q Uscita BOOL A, M, D, L Visualizza il valore 0 se, quando si richiama lafunzione, la variabile INDX contiene il numerodell’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

Descrizione

Parametri

Funzioni tabellari

Page 32: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se si verifica una delle condizioni descritte nella tabella 2-8, la funzione non vieneeseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valoreappropriato.

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.

La figura 2-6 illustra il funzionamento della funzione TBL_WRD. Essa viene eseguitase l’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 4, le parolememorizzate nella tabella a partire dall’indirizzo puntato da SRC, verranno copiatenell’indirizzo puntato da DEST. Il dato contenuto in INDX punta alla parola dellatabella che verrà copiata. Dopo che l’istruzione è stata eseguita correttamente, ilvalore di INDX viene automaticamente incrementato di uno oltre al dato copiato.Nell’esempio qui riportato, quando viene richiamata l’operazione, INDX non assumel’ultimo valore immesso nella tabella, per cui dopo l’esecuzione A viene impostatoa 1.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0TBL_WRD

FC89EN ENO

SRC

DEST

E_TYPE

Q

INDX

RET_VALP#DB1.DBX0.0

P#DB2.DBX20.0

B#16#04

MW1

MW0

M2.0

Prima dell’esecuzione:

SRC (lunghezza tabella) DBW0 = W#16#0004DBW2 = W#16#2000DBW4 = W#16#3000DBW6 = W#16#4000DBW8 = W#16#5000

Dopo l’esecuzione:

INDX MW1 = W#16#0001

DEST DBW20 = W#16#0000

INDX MW1 = W#16#0002

DEST DBW20 = W#16#2000

Figura 2-6 Copia dato dalla tabella (TBL_WRD)

Errori

Esempio

Funzioni tabellari

Page 33: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

2.7 Combina e memorizza logicamente il valore con l’elemento della tabella(WRD_TBL): FC91

La funzione ”Combina e memorizza logicamente il valore con l’elemento dellatabella” (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; quindiincrementa 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 possonoessere 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.

La tabella 2-9 descrive i parametri della funzione ”Combina e memorizza logicamenteil 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 vieneattivato.

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 = CopiaB#16#07 = ANDB#16#08 = ORB#16#09 = OR esclusivo

E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nellatabella. Nella funzione WRD_TBL sono ammessi iseguenti dati:

B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

Q Uscita BOOL A, M, D, L Visualizza il valore 0 se la variabile INDX contiene ilnumero 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

Descrizione

Parametri

Funzioni tabellari

Page 34: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se si verifica una delle condizioni descritte nella tabella 2-10, la funzione non vieneeseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valoreappropriato.

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.

La figura 2-7 illustra il funzionamento della funzione WRD_TBL. Essa viene eseguitase l’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 6, i dati a doppiaparola della tabella vengono memorizzati a partire dall’indirizzo di memoria puntatoda TABLE. La lunghezza impostata nella prima parola indica che la tabella contienetre doppie parole. INDX punta all’indirizzo della tabella che verrà elaborato. Poiché ilvalore di CMD vale 8, l’istruzione esegue una combinazione OR utilizzando il valorepuntato 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 ilrisultato (77775555) nella tabella e il valore di INDX viene automaticamenteincrementato di un indirizzo. Se, quando si richiama l’operazione, INDX è impostatoall’ultimo elemento della tabella, dopo l’esecuzione della funzione, il bit dell’uscita Aviene impostato a 0. Nell’esempio qui riportato, al richiamo dell’operazione, INDXnon è impostato all’ultimo elemento della tabella per cui dopo l’operazione A vieneimpostato a 1.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0WRD_TBL

FC91EN ENO

SRCTABLECMD

RET_VAL

E_TYPEINDX

P#DB2.DBX20.0P#DB1.DBX0.0

B#16#08B#16#06

MW1

MW0Q M 2.0

Prima dell’esecuzione:SRCTABLE (lunghezza tabella)

DBD20 = DW#16#11111111DBW0 = W#16#0003DBD2 = DW#16#99998877DBD6 = DW#16#66665544DBD10 = DW#16#33332222

Dopo l’esecuzione:

INDX MW1 = W#16#0002

TABLE (lunghezza tabella) DBW0 = W#16#0003DBD2 = DW#16#99998877DBD6 = DW#16#77775555DBD10 = DW#16#33332222

INDX MW1 = W#16#0003

Figura 2-7 Combina e memorizza logicamente il valore con l’elemento della tabella(WRD_TBL)

Errori

Esempio

Funzioni tabellari

Page 35: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

2.8 Tabelle con dati correlati (CDT): FC103

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 ouguale ad esso. Se lo individua, ricerca nella tabella di uscita (OUT_TBL) il valorecollocato nel corrispondente indirizzo e lo copia nell’indirizzo puntato da OUT.

• I valori della tabella di ingresso devono essere disposti in ordine crescente. Ilvalore 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 sonodeterminati da E_TYPE.

• Il primo indirizzo contiene il numero di dati immessi della tabella, corrispondentealla 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.

I parametri della funzione ”Tabelle con dati correlati” (CDT) sono illustrati dallatabella 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 vieneattivato.

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 nellatabella. Nella funzione CDT sono ammessi i seguentidati:

B#16#05 = INTB#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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

Descrizione

Parametri

Funzioni tabellari

Page 36: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se si verifica una delle condizioni descritte nella tabella 2-12, la funzione non vieneeseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valoreappropriato.

Tabella 2-12 Condizioni di errore di FC103

RET_VAL Spiegazione

W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametrofunzionale.

W#16#0002 E_TYPE non ammesso.

W#16#0003 La lunghezza della tabella di ingresso e di quella di uscita noncoincidono.

W#16#0004 La lunghezza della tabella è 0.

W#16#0007 IN_TBL non contiene valori maggiori o uguali al valore di ingresso.

La figura 2-8 illustra il funzionamento della funzione CDT. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato sia IN_TBL cheOUT_TBL contengono cinque elementi, come indicato dalla prima parola di entrambele tabelle. Il tipo di dati degli elementi della tabella è INTEGER, come indicato daE_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’indirizzopuntato da OUT verrà scritto il valore 25.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0CDT

FC103EN ENO

IN_TBLOUT_TBLIN

RET_VAL

OUTE_TYPE

P#DB1.DBX0.0P#DB1.DBX100.0P#DB1.DBX200.0P#DB1.DBX210.0

B#16#05

MW0

Prima dell’esecuzione:IN_TBL (lunghezza tabella) DBW0 = W#16#0005

DBW2 = 2DBW4 = 4DBW6 = 8DBW8 = 16DBW10 = 64

Dopo l’esecuzione:

OUT_TBL (lunghezza tabella) DBW100= W#16#0005DBW102= 5DBW104= 10DBW106= 15DBW108= 20DBW110= 25

IN DBW200= 22OUT DBW210= 0

OUT DBW210= 25

Figura 2-8 Tabelle con dati correlati (CDT)

Errori

Esempio

Funzioni tabellari

Page 37: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

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

La funzione ”Da tabella di origine a tabella di destinazione” (TBL_TBL) eseguel’operazione indicata (CDM) utilizzando due dati collocati nello stesso indirizzo indue diverse tabelle di origine (TBL1 e TBL2) e scrive il risultato nello stesso indirizzodella tabella di destinazione (DEST_TBL).

• I tipi di dati INT, DINT e REAL sono ammessi solo per le operazionimatematiche.

• Il primo indirizzo contiene il numero di elementi della tabella, corrispondente allasua 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.

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

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 = ANDB#16#08 = ORB#16#09 = OR esclusivoB#16#0a = SommaB#16#0b = SottraiB#16#0c = MoltiplicaB#16#0d = Dividi

E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nellatabella. Nella funzione TBL_TBL sono ammessi iseguenti dati:

B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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

Descrizione

Parametri

Funzioni tabellari

Page 38: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se si verifica una delle condizioni descritte nella tabella 2-14, la funzione non vieneeseguita. L’uscita ENO viene impostata a 0 e RET_VAL restituisce il valoreappropriato.

Tabella 2-14 Condizioni di errore di FC104

RET_VAL Spiegazione

W#16#0001 È stato specificato un tipo di memoria non ammesso per un parametrofunzionale.

W#16#0002 E_TYPE non ammesso.

W#16#0003 La lunghezza della tabella di ingresso e di quella di uscita noncoincidono.

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.

La figura 2-9 illustra il funzionamento della funzione TBL_TBL. Essa viene eseguitase l’ingresso E 0.0 vale 1 (attivato). Nell’esempio qui riportato, tutte le tabellacontengono tre elementi, come indicato dalla prima parola di ciascuna tabella. Il tipodi dati dei valori è WORD, come indicato da E_TYPE. Il comando da eseguire inTBL1 e TBL2 è AND come indicato da CMD.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0TBL_TBL

FC104EN ENO

TBL1TBL2DEST_TBL

RET_VAL

CMDE_TYPE

P#DB1.DBX0.0P#DB1.DBX20.0P#DB1.DBX40.0

B#16#07B#16#04

MW0

Prima dell’esecuzione:TBL1 (lunghezza tabella) DBW0 = W#16#0003

DBW2 = W#16#00FFDBW4 = W#16#FF00DBW6 = W#16#FFFF

Dopo l’esecuzione:

TBL2 (lunghezza tabella) DBW20 = W#16#0003DBW22 = W#16#1111DBW24 = W#16#2222DBW26 = W#16#3333

DEST_TBL (lunghezza tabella) DBW40 = W#16#0003DBW42 = W#16#0000DBW44 = W#16#0000DBW46 = W#16#0000

DEST_TBL (lunghezza tabella) DBW40 = W#16#0003DBW42 = W#16#0011DBW44 = W#16#2200DBW46 = W#16#3333

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

Errori

Esempio

Funzioni tabellari

Page 39: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

3-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Funzioni di scorrimento

Il presente capitolo illustra le funzioni di scorrimento (FC) che, utilizzate assieme alleistruzioni 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

3

Page 40: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Inserisci e sposta dati nel registro di scorrimento” (WSR) fa scorrere idati dall’origine indicata in un registro di scorrimento. Ciascun dato viene spostatonella posizione successiva. LENGTH specifica il numero di posizioni da spostare.Dopo l’operazione di scorrimento, i dati contenuti nell’ultima posizione del registrovanno persi. Ogni volta che si esegue l’operazione i nuovi dati vengono letti daun’origine (puntata da S_DATA) e spostati nella posizione iniziale del registro discorrimento (START) quando l’ingresso RESET viene impostato a 0. Se tale ingressoè impostato a 1, quando viene eseguita l’operazione le posizioni di registro vengonoimpostate a zero. L’uscita A viene attivata quando il registro di scorrimento è vuoto oha valore 0 (ovvero dopo un riset o dopo che sono stati inseriti tutti gli zeri).

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

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 nellatabella. Nella funzione WSR sono ammessi i seguentidati:

B#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL

Q Uscita BOOL A, M, D, L Indica 0 se RESET è attivo (1) o se tutti gli elementida spostare hanno valore 0.

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

Descrizione

Parametri

Funzioni di scorrimento

Page 41: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Se viene utilizzato un E_TYPE non ammesso, la funzione non viene eseguita e ENOviene impostato a 0.

La figura 3-1 illustra il funzionamento della funzione WSR. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Poiché E_TYPE è uguale a 4, i dati a parolavengono memorizzati nella tabella a partire dalla locazione puntata da START. Poichéil parametro LENGTH è impostato a 4, verranno spostate 4 parole a partire dallaprima puntata da START. Dopo che il primo valore della tabella è stato spostato nellaposizione successiva, la prima posizione viene riempita con i dati puntati dalpuntatore D_DATA. L’ultimo valore della tabella va perso. Se l’ingresso RESETviene impostato a 1, le posizioni della tabella vengono impostate a 0 invece chespostate.

Se la funzione viene eseguita correttamente, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0WSRFC90

EN ENO

RESET

S_DATA

START

Q

LENGTH

E_TYPE

M1.0

P#DB2.DBX6.0

P#DB1.DBX0.0

B#16#04

B#16#04

M2.0

Prima dell’esecuzioneSTART DW0 = W#16#1111

DW2 = W#16#2222DW4 = W#16#3333DW6 = W#16#4444

Dopo l’esecuzione

S_DATA DW6 = W#16#1234

RESET M1.0 = FALSE

START DW0 = W#16#1234DW2 = W#16#1111DW4 = W#16#2222DW6 = W#16#3333

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

Errori

Esempio

Funzioni di scorrimento

Page 42: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Inserisci bit nel registro di scorrimento” (SHRB) inserisce il bitspecificato nell’origine DATA in un registro di scorrimento. Ogni volta che si eseguel’operazione i nuovi dati vengono letti dal registro di scorrimento e spostati nellaposizione iniziale (puntata da S_BIT) mentre l’ingresso RESET ha valore 0. Tutti i bitsuccessivi vengono spostati di una posizione. Dopo lo spostamento il bit contenutonell’ultima posizione (S_BIT + N) va perso. Se l’ingresso RESET è impostato a 1, leposizioni della tabella, invece di essere spostate, assumono valore 0.

I parametri della funzione ”Inserisci bit nel registro di scorrimento” (SHRB) sonodescritti 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 vieneattivato.

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

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

Descrizione

Parametri

Funzioni di scorrimento

Page 43: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

3-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Questa funzione non segnala condizioni di errore.

La figura 3-2 illustra il funzionamento della funzione SHRB. Essa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Nel presente esempio il parametro N è impostato a14 (corrispondente a E in notazione esadecimale) e indica che verranno spostate 14posizioni di bit, a partire dal bit puntato da S_BIT. Dopo lo spostamento dei bit, laprima 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.

E0.0 A4.0SHRBFC92

EN ENO

DATA

RESET

S_BIT

N

P#DB1.DBX1.4

B#16#0E

0

0

0

1.7

Prima dello spostamento

0 1 1 1 0 1 0

0

2.7

0 1 1 1 0 1 0

0

1.7

Dopo lo spostamento

1

1 1 0 1 0 00

2.7

1

1 0 1 0 1 0

0

3.7

0 1 1 1 0 1 0 1 1 1 0 0 00

3.7

0

1.0

2.0

1.0

2.0

3.0 3.0

S_BIT S_BIT

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

Errori

Esempio

Funzioni di scorrimento

Page 44: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Funzioni di scorrimento

Page 45: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

4-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Funzione e blocco funzionale di spostamento

Il presente capitolo illustra una funzione di spostamento (FC) e un blocco funzionaleche, utilizzati assieme alle istruzioni standard, garantiscono maggiore flessibilità nellaprogrammazione.

Capitolo Argomento trattato Pagina

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

4-2

4.2 Impacchetta e distribuisci dati (PACK): FB86 4-4

4

Page 46: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Sposta un blocco dati con indirizzamento indiretto” (IBLKMOV)consente di spostare un blocco dati, composto di byte, parole, doppie parole o doppiinteri, da un blocco di origine a un blocco di destinazione. Il numero di elementi daspostare è determinato da LENGTH e la loro dimensione da E_TYPE. I puntatoriS_DATA e D_DATA indicano la posizione dei puntatori che identificano la posizioneiniziale dei dati di origine e di destinazione. Poiché utilizza un metodo indiretto diidentificazione dei dati da spostare, questa funzione viene definita uno “spostamentodei blocchi dati con indirizzamento indiretto”.

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

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 inizialedei 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 inizialedei dati di destinazione.

E_TYPE Ingresso BYTE E, A, M, D, L Indica il tipo di dati ammessi nella funzioneIBLKMOV, ovvero:

B#16#02 = BYTEB#16#04 = WORDB#16#05 = INTB#16#06 = DWORDB#16#07 = DINTB#16#08 = REAL

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

Descrizione

Parametri

Funzione e blocco funzionale di spostamento

Page 47: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

4-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Se si specifica un E_TYPE non ammesso, la funzione non viene eseguita e l’uscitaENO viene impostata a 0.

La figura 4-1 illustra il funzionamento della funzione ”Sposta un blocco dati conindirizzamento 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 aDB1.DBX20.0 che contiene il puntatore DB2.DBX10.0 (corrispondente alla posizioneiniziale dei dati di destinazione). Dopo l’esecuzione della funzione, viene spostato unblocco di due parole.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1.

E0.0 A4.0IBLKMOV

FC81EN ENO

S_DATA

LENGTH

D_DATA

E_TYPE

P#DB1.DBX0.0

P#DB1.DBX10.0

P#DB1.DBX20.0

B#16#04

S_DATA DBX0.0 = P#DB1.DBX50.0DBW50 = W#16#2424DBW52 = W#16#2525

LENGTH DBW10 = W#16#0002

D_DATA

D_DATA DBW10 = W#16#2424DBW12 = W#16#2525

Prima dell’esecuzione:

Dopo l’esecuzione:

DBX20.0= P#DB2.DBX10.0DBW10 = W#16#0000DBW12 = W#16#0000

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

Errori

Esempio

Funzione e blocco funzionale di spostamento

Page 48: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

4.2 Impacchetta e distribuisci dati (PACK): FB86

Il blocco funzionale ”Impacchetta e distribuisci dati” (PACK) consente di spostare idati inframmezzandoli tra delle locazioni di memoria casuali e una tabella. Ladirezione di trasferimento è indicata da DIR. Ciascuna istruzione PACK elabora finoad 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 dellatabella.

• 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 parolaprecedente vengono riempiti con degli zeri.

• I dati a 16 e 32 bit vengono impacchettati nella successiva parola disponibile dellatabella. Quando una parola viene scritta nella tabella, i bit non utilizzati dellaparola 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 vengonoinclusi nel byte impacchettato dalla tabella.

• I tipi di dati a 16 e 32 bit vengono impacchettati dalla prima parola disponibiledella tabella. Ciò significa che i bit non utilizzati nella parola precedente dellatabella 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

Descrizione

Funzione e blocco funzionale di spostamento

Page 49: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

4-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

I parametri del blocco funzionale ”Impacchetta e distribuisci dati” (PACK) sonodescritti 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 vieneattivato.

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, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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

Se si verifica una delle condizioni descritte nella tabella 4-3, il blocco funzionale nonviene eseguito. L’uscita ENO viene impostata a 0 e viene impostato il relativoERR_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 parametrofunzionale.

W#16#0002 E_TYPE non ammesso.

Parametri

Errori

Funzione e blocco funzionale di spostamento

Page 50: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

La figura 4-2 illustra il funzionamento del blocco funzionale ”Impacchetta edistribuisci dati”. Esso viene eseguito se l’ingresso E 0.0 vale 1 (attivato).Nell’esempio qui riportato vengono impacchettati “verso” una tabella quattro blocchidi dati.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

Avvertenza

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

E0.0 A4.0PACKFB86

EN ENO

TABLE

P_DATA1P_DATA2

ERR_CODE

P_DATA3

P_DATA4

P#DB1.DBX0.0

P#M200.0 BOOL 2P#M210.0 BYTE 1P#M300.0 BOOL 2

P#M330.0 WORD 1

MW0

Prima dell’esecuzione:TABLE DBB0 = B#16#00

DBB1 = B#16#00DBB2 = B#16#00DBB3 = B#16#00DBB4 = B#16#00DBB4 = B#16#00

Dopo l’esecuzione:

P_DATA1 M200.0 = TRUEM200.1 = TRUE

TABLE DBB0 = B#16#03DBB1 = B#16#FFDBB2 = B#16#03DBB3 = B#16#00DBB4 = B#16#FFDBB4 = B#16#FF

P_DATA5

DB86

P_DATA2 M210.0 = B#16#FF

P_DATA3 M300.0 = TRUEM300.1 = TRUE

P_DATA4 MW330 = B#16#FFFF

DIR DBX58.0 = FALSEDB86 di istanza

Figura 4-2 Impacchetta e distribuisci dati (PACK)

Esempio

Funzione e blocco funzionale di spostamento

Page 51: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Funzione e blocchi funzionali ditemporizzazione

Il presente capitolo descrive la funzione (FC) e i blocchi funzionali (FB) ditemporizzazione che, utilizzati assieme alle istruzioni standard, garantiscono unamaggiore flessibilità nella programmazione.

Capitolo Argomento trattato Pagina

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

5

Page 52: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Temporizzatore software con memoria per ritardo a inserzione” (TONR)accumula il tempo finché il valore ET (tempo trascorso) non diventa uguale osuperiore al valore PV (tempo preimpostato). Poiché per accumulare il tempo, lafunzione TONR si serve del tempo di esecuzione dell’ultimo ciclo dell’OB (bloccoorganizzativo) in cui viene eseguita, essa viene utilizzata solo negli OB con cicloripetitivo, quali l’OB1 e gli OB ciclici.

Avvertenza

Il tempo di scansione dell’OB deve essere copiato dalle variabili locali iniziali nellavariabile 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 TONRsomma 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 vieneimpostata a 1. Una volta attivata, A resta attiva e ET viene bloccato sull’ultimo valorefino al successivo reset. Quando RESET vale 1 la funzione reimposta ET a 0 edisattiva l’uscita A.

I parametri della funzione ”Temporizzatore software per ritardo a inserzione conmemoria” (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 vieneattivato.

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 ocostante

Valore preimpostato.

DELTA_T Ingresso INT E, A, M, D, L ocostante

Tempo di scansione dell’OB del ciclo precedente.

Q Uscita BOOL A, M, D, L Se ET è uguale o superiore a PV, A vieneimpostata a 1.

ET Ingresso/uscita DINT E, A, M, D, L Valore corrente del tempo trascorso.

Descrizione

Parametri

Funzione e blocchi funzionali di temporizzazione

Page 53: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Questa funzione non segnala condizioni di errore.

La figura 5-1 illustra il funzionamento dell’istruzione TONR. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato). Se E 0.1 vale 1, E 0.2 vale 0 e ET vale meno di0, 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.0vengono impostati a 1.

I 0.0 Q 4.0TONRFC80

EN

TMR_EN

RESET

PV

DELTA_T

ENO

Q

ET

I 0.1

I 0.2

L#1000

#OB1_PREV_CYCLE

MD100

Q 1.1

Figura 5-1 Temporizzatore software per ritardo a inserzione con memoria (TONR)

Errori

Esempio

Funzione e blocchi funzionali di temporizzazione

Page 54: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

5.2 Allarme a tempo con controllo (DCAT): FB81

Il blocco funzionale ”Allarme a tempo con controllo” (DCAT) accumula il tempo apartire dalla transizione del comando di apertura o di chiusura in ingresso finché nonsupera il tempo preimpostato (PT) oppure finché l’ingresso di reazione (O_FB oC_FB) non indica che il dispositivo si è aperto (o chiuso) entro il tempo previsto. Se iltempo preimpostato viene superato prima che venga ricevuta la controreazione, vieneattivato l’allarme. Se il comando di ingresso azzera i valori prima del tempopreimpostato, il tempo viene riavviato.

• Quando l’ingresso CMD passa da 0 a 1, A viene impostata a 1, ET a 0, le uscite diallarme (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 diallarme (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 vieneposto uguale a CMD.

• Quando sia CMD che CMD_HIS valgono 1, O_FB vale 1, e C_FB vale 0, OAviene impostato a 0. ET è posto uguale a PT in modo che, se O_FB vienesuccessivamente impostato a 0, l’allarme viene impostato alla successivaesecuzione 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 vieneposto uguale a CMD.

• Quando sia CMD che CMD_HIS valgono 0, O_FB vale 0, e C_FB vale 1, CAviene impostato a 0, ET è posto uguale a PT in modo che, se C_FB vienesuccessivamente impostato a 0, l’allarme viene impostato alla successivaesecuzione 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 entrambele uscite di allarme vengono impostate a 1.

Descrizione

Funzione e blocchi funzionali di temporizzazione

Page 55: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

I parametri del blocco funzionale ”Allarme a tempo con controllo” (DCAT) sonoillustrati 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 vieneattivato.

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 chiusurae 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 trascorsodove 1 = 1 ms

PT statica DINT E, A, M, D, L Valore preimpostato del temporizzatoredove 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.

Parametri

Funzione e blocchi funzionali di temporizzazione

Page 56: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Questo blocco funzionale non segnala condizioni di errore.

La figura 5-2 illustra il funzionamento del blocco funzionale DCAT. Esso vieneeseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportatol’ingresso CMD sta transitando da 0 a 1 come indicato da CMD_HIS e CMD. Inseguito a tali condizioni viene attribuito a A e CMD_HIS il valore 1. ET vieneimpostato 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.0vengono impostati a 1.

Avvertenza

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

E0.0 A4.0DCATFB81

EN

CMD

O_FB

ENO

QM0.0

M1.0

A 2.0

OA A 3.0

C_FBM1.1

CA A 3.1

DB81

Prima dell’esecuzione:

CMD M0.0 = TRUEO_FB M1.0 = FALSEC_FB M1.1 = FALSEQ M2.0 = FALSEOA M3.0 = FALSECA M3.1 = FALSE

DB81 di istanzaET DBD4 = L#12PT DBD8 = L#222CMD_HIS DBX16.0 = FALSE

Dopo l’esecuzione:

Q M2.0 = TRUEOA M3.0 = FALSECA M3.1 = FALSE

DB81 di istanzaET DBD4 = L#0CMD_HIS DBX16.0 = TRUE

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

Errori

Esempio

Funzione e blocchi funzionali di temporizzazione

Page 57: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-7Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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

Il blocco funzionale ”Allarme a tempo per controllo motori” (MCAT) accumulatempo 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 reazionenon indica che l’operazione indicata dal comando è stata eseguita entro il tempoprevisto. Se il tempo preimpostato viene superato prima che venga ricevuta lacontroreazione, viene attivato l’allarme. La descrizione della reazione MCAT nellevarie condizioni di ingresso è riportata nella Tabella di verità MCAT (vedere la tabella5-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 ETX = Non applicabile<PT = ET < PT>= PT = ET >= PT

Descrizione

Funzione e blocchi funzionali di temporizzazione

Page 58: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

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

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.

Questo blocco funzionale non segnala condizioni di errore.

La figura 5-3 illustra il funzionamento del blocco funzionale MCAT. Esso vieneeseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato, in baseal valore degli ingressi, il blocco funzionale MCAT è in stato di APERTURA e leuscite sono impostate di conseguenza.

Se durante l’esecuzione del blocco funzionale non si verifica alcun errore, ENO eA 4.0 vengono impostati a 1.

Avvertenza

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

Parametri

Errori

Esempio

Funzione e blocchi funzionali di temporizzazione

Page 59: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-9Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

O_CMD M0.0 = TRUEC_CMD M0.1 = FALSES_CMD M0.2 = FALSEO_FB M1.0 = FALSEC_FB M1.1 = FALSEOO M2.0 = FALSECO M2.1 = FALSEOA M3.0 = FALSECA M3.1 = FALSEQ M4.0 = FALSE

DB82 di istanzaET DBD4 = L#2PT DBD8 = L#22O_HIS DBX16.0 = TRUEC_HIS DBX16.1 = FALSE

E0.0 A4.0MCATFB82

EN

O_CMD

C_CMD

ENO

OOM0.0

M0.1

M2.0

CO M2.1

S_CMDM0.2

OA M3.0

DB82

Prima dell’esecuzione:

Dopo l’esecuzione:

OO M2.0 = TRUECO M2.1 = FALSEOA M3.0 = FALSECA M3.1 = FALSEQ M4.0 = TRUE

DB82 di istanzaET DBD4 = L#4O_HIS DBX16.0 = TRUECMD_HIS DBX16.1 = FALSE

O_FBM1.0

CA M3.1

C_FBM1.1

Q M4.0

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

Funzione e blocchi funzionali di temporizzazione

Page 60: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

5.4 Drum mascherabile a evento (DRUM): FB85

Il blocco funzionale ”Drum mascherabile a evento” (DRUM) pilota i bit di uscitaprogrammati (OUT1 e OUT16) e la parola in uscita (OUT_WORD) con i valoriprogrammati (OUT_VAL) del passo appropriato, condizionato dalle relative mascheredi abilitazione (S_MASK), mentre DRUM resta sullo stesso passo. Esso avanza alpasso 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, ilDRUM viene resettato e di conseguenza il passo corrente viene posto uguale al passopreimpostato (DSP).

Il tempo trascorso in un passo è determinato dal prodotto della base temporalepreimpostata di DRUM (DTBP) e dai valori di conteggio preimpostati/del passo(S_PRESET) corrispondenti ai singoli passi. All’inizio di un nuovo passo, il valorecalcolato viene caricato in DCC che contiene il tempo rimanente per il passoconsiderato. 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 conentrambi. I passi con un bit di evento e un valore temporale pari a 0 avanzano al passosuccessivo quando il bit di evento assume il valore 1. I passi che hanno un solo valoretemporale iniziano il conteggio direttamente. I passi con un bit di evento ed un valoretemporale maggiore di 0 iniziano il conteggio quando lo stato di segnale del bit dievento è 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 tempodi tale passo è trascorso, l’uscita (A) viene impostata a 1, in caso contrario vieneimpostata a 0. Una volta impostata A, DRUM resta sul passo fino all’esecuzione di unreset.

La maschera configurabile (S_MASK) consente di selezionare singoli bit nella parolain uscita (OUT_WORD) e fa sì che i bit di uscita (da OUT1 a OUT16) venganoimpostati/resettati dai valori di uscita (OUT_VAL). Se un bit della mascheraconfigurabile 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 vienemodificato. 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 uscitaOUT_WORD. Il bit di uscita OUT16 corrisponde al bit più importante della parola diuscita OUT_WORD.

Descrizione

Funzione e blocchi funzionali di temporizzazione

Page 61: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-11Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

I parametri del blocco funzionale ”Drum mascherabile a evento” (DRUM) sonoillustrati 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 vieneattivato.

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 avanzareDRUM al passo successivo.

DRUM_EN Ingresso BOOL E, A, M, D, L Il valore 1 consente al drum di avanzare in funzionedell’evento e dei criteri di conteggio del tempo.

LST_STEP Ingresso BYTE E, A, M, D, L ocostante

Numero dell’ultimo passo programmato.

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

Parametri

Funzione e blocchi funzionali di temporizzazione

Page 62: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

Parametro DescrizioneArea di memoriaTipo di datiDichiarazione

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

ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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 OFWORD

E, A, M, D, L Conteggio preimpostato per ciascun passo(da 1 a 16),dove 1 conteggio = 1 msec

OUT_VAL statica ARRAY OFBOOL

E, A, M, D, L Valori di uscita di ciascun passo(da 1 a 16, da 0 a 15).

S_MASK statica ARRAY OFBOOL

E, A, M, D, L Maschera configurabile di ciascun passo(da 1 a 16, da 0 a 15).Stati iniziali = 1.

Se si verifica una delle condizioni riportate nella tabella 5-6, DRUM non resterà nelpasso corrente. L’uscita ENO viene impostata a 0 e viene impostato il relativoERR_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.

Errori

Funzione e blocchi funzionali di temporizzazione

Page 63: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

5-13Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

La figura 5-4 illustra il funzionamento del blocco funzionale DRUM. Esso vieneeseguito se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato DRUMavanza dal passo 1 al passo 2. I bit di uscita (OUT1 ecc.) e OUT_WORD vengonoimpostati in base alla maschera configurata per il passo 2 e ai bit di OUT_VAL per ilpasso 2.

Se durante l’esecuzione del blocco funzionale non si verifica alcun errore, ENO eA 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.

E0.0 A4.0DRUMFB85EN

RESET

JOG

ENO

OUT1

M0.0

M0.1

M4.0

DRUM_ENM0.2

DB85

LST_STEP

EVENT1

EVENT2M20.0

EVENT4M20.1

EVENT6M20.2

M20.3EVENT8

EVENT10M20.4

EVENT12M20.5

EVENT14

EVENT16

M20.6

M20.7

MB1

EVENT3

EVENT5

EVENT7

OUT2OUT3

OUT4

OUT5

OUT6

OUT7

OUT8

OUT9

OUT10

OUT11

OUT12

OUT13

OUT15

Q

ERR_CODE

M4.1M4.2

M4.3

M4.4

M4.5

M4.6

M4.7

M5.0

M5.1

M5.2

M5.3

M5.4

EVENT9

EVENT11

EVENT13

EVENT15

OUT14

OUT16

OUT_WORD

M5.5

M5.7

MW8

M5.6

M6.0

MW10

Figura 5-4 Drum mascherabile a evento (DRUM)

Esempio

Funzione e blocchi funzionali di temporizzazione

Page 64: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

IngressiRESET M0.0 = FALSEJOG M0.1 = FALSEDRUM_EN M0.2 = TRUELST_STEP MB1 = B#16#08EVENT2 M20.0 = FALSEEVENT4 M20.1 = FALSEEVENT6 M20.2 = FALSEEVENT8 M20.3 = FALSEEVENT10 M20.4 = FALSEEVENT12 M20.5 = FALSEEVENT14 M20.6 = FALSEEVENT16 M20.7 = FALSE

DB85 di istanzaJOG_HIS DBX12.0 = FALSEEOD DBX12.1 = FALSEDSP DBB13 = W#16#0001DSC DBB14 = W#16#0001DCC DBD16 = DW#16#0000000ADTBP DBW20 = W#16#0001S_PRESET [1] DBW26 = W#16#0064S_PRESET [2] DBW28 = W#16#00C8OUT_VAL [1,0] DBX58.0 = TRUEOUT_VAL [1,1] DBX58.1 = TRUEOUT_VAL [1,2] DBX58.2 = TRUEOUT_VAL [1,3] DBX58.3 = TRUEOUT_VAL [1,4] DBX58.4 = TRUEOUT_VAL [1,5] DBX58.5 = TRUEOUT_VAL [1,6] DBX58.6 = TRUEOUT_VAL [1,7] DBX58.7 = TRUEOUT_VAL [1,8] DBX59.0 = TRUEOUT_VAL [1,9] DBX59.1 = TRUEOUT_VAL [1,10] DBX59.2 = TRUEOUT_VAL [1,11] DBX59.3 = TRUEOUT_VAL [1,12] DBX59.4 = TRUEOUT_VAL [1,13] DBX59.5 = TRUEOUT_VAL [1,14] DBX59.6 = TRUEOUT_VAL [1,15] DBX59.7 = TRUEOUT_VAL [2,0] DBX60.0 = FALSEOUT_VAL [2,1] DBX60.1 = FALSEOUT_VAL [2,2] DBX60.2 = FALSEOUT_VAL [2,3] DBX60.3 = FALSEOUT_VAL [2,4] DBX60.4 = FALSEOUT_VAL [2,5] DBX60.5 = FALSEOUT_VAL [2,6] DBX60.6 = FALSEOUT_VAL [2,7] DBX60.7 = FALSEOUT_VAL [2,8] DBX61.0 = FALSEOUT_VAL [2,9] DBX61.1 = FALSEOUT_VAL [2,10] DBX61.2 = FALSEOUT_VAL [2,11] DBX61.3 = FALSEOUT_VAL [2,12] DBX61.4 = FALSEOUT_VAL [2,13] DBX61.5 = FALSEOUT_VAL [2,14] DBX61.6 = FALSEOUT_VAL [2,15] DBX61.7 = FALSE

S_MASK [2,0] DBX92.0 = FALSES_MASK [2,1] DBX92.1 = TRUES_MASK [2,2] DBX92.2 = TRUES_MASK [2,3] DBX92.3 = TRUES_MASK [2,4] DBX92.4 = TRUES_MASK [2,5] DBX92.5 = FALSES_MASK [2,6] DBX92.6 = TRUES_MASK [2,7] DBX92.7 = TRUES_MASK [2,8] DBX93.0 = FALSES_MASK [2,9] DBX93.1 = FALSES_MASK [2,10] DBX93.2 = TRUES_MASK [2,11] DBX93.3 = TRUES_MASK [2,12] DBX93.4 = TRUES_MASK [2,13] DBX93.5 = TRUES_MASK [2,14] DBX93.6 = FALSES_MASK [2,15] DBX93.7 = TRUEUsciteQ M6.0 = FALSEOUTWORD MW8 = W#16#FFFFOUT1 M4.0 = TRUEOUT2 M4.1 = TRUEOUT3 M4.2 = TRUEOUT4 M4.3 = TRUEOUT5 M4.4 = TRUEOUT6 M4.5 = TRUEOUT7 M4.6 = TRUEOUT8 M4.7 = TRUEOUT9 M5.0 = TRUEOUT10 M5.1 = TRUEOUT11 M5.2 = TRUEOUT12 M5.3 = TRUEOUT13 M5.4 = TRUEOUT14 M5.5 = TRUEOUT15 M5.6 = TRUEOUT16 M5.7 = TRUE

OUT1 M4.0 = TRUEOUT2 M4.1 = FALSEOUT3 M4.2 = FALSEOUT4 M4.3 = FALSEOUT5 M4.4 = FALSEOUT6 M4.5 = TRUEOUT7 M4.6 = FALSEOUT8 M4.7 = FALSEOUT9 M5.0 = TRUEOUT10 M5.1 = TRUEOUT11 M5.2 = FALSEOUT12 M5.3 = FALSEOUT13 M5.4 = FALSEOUT14 M5.5 = FALSEOUT15 M5.6 = TRUEOUT16 M5.7 = FALSEQ M6.0 = FALSEOUTWORD MW8 = W#16#4321ERR_CODE MW10 = W#16#0000

DB85 di istanzaJOG_HIS DBX12.0 = FALSEEOD DBX12.1 = FALSEDSC DBB14 = W#16#0002DCC DBD16 = DW#16#000000C8

Dopo l’esecuzione:

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

Funzione e blocchi funzionali di temporizzazione

Page 65: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Funzioni e blocco funzionale di conversione

Il presenta capitolo descrive le funzioni (FC) e il blocco funzionale (FB) diconversione che, utilizzati assieme alle istruzioni standard, garantiscono una maggioreflessibilità nella programmazione.

Capitolo Argomento trattato Pagina

6.1 Converti da cifra esadecimale in modello bit per display a settesegmenti (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 suaposizione (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

6

Page 66: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

6.1 Converti da cifra esadecimale in modello bit per display a sette segmenti(SEG): FC93

La funzione ”Converti da cifra esadecimale in modello bit per display a settesegmenti” (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 doppiaparola di uscita di destinazione (OUT).

La figura 6-1 illustra la relazione tra le cifre esadecimali di ingresso e i modelli bit diuscita.

Cifra Display

0 0 1 1 1 1 1 10 0 0 0 0

0 0 0 0 0 1 1 00 0 0 1 1

0 1 0 1 1 0 1 10 0 1 0 2

0 1 0 0 1 1 1 10 0 1 1 3

0 1 1 0 0 1 1 00 1 0 0 4

0 1 1 0 1 1 0 10 1 0 1 5

0 1 1 1 1 1 0 10 1 1 0 6

0 0 0 0 0 1 1 10 1 1 1 7

0 1 1 1 1 1 1 11 0 0 0 8

0 1 1 0 0 1 1 11 0 0 1 9

0 1 1 1 0 1 1 11 0 1 0 A

0 1 1 1 1 1 0 01 0 1 1 b

0 0 1 1 1 0 0 11 1 0 0 C

0 1 0 1 1 1 1 01 1 0 1 d

0 1 1 1 1 0 0 11 1 1 0 E

0 1 1 1 0 0 0 11 1 1 1 F

Display a settesegmenti

b

c

f

e

a

g

d

– g f e d c b a

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

I parametri della funzione ”Converti da cifra esadecimale in modello bit per display asette 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 vieneattivato.

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 ocostante

Parola di dati di origine a quattro cifre esadecimali.

OUT Uscita DWORD A, M, D, L, P Modello bit di destinazione a quattro bit.

Descrizione

Parametri

Funzioni e blocco funzionale di conversione

Page 67: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Questa funzione non segnala condizioni di errore.

La figura 6-2 illustra il funzionamento della funzione SEG. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0SEGFC93

EN ENO

INW#16#1234 OUT MD0

OUT MD0 = DW#16#065B4F66

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

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 68: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Converti caratteri ASCII in cifre esadecimali” (ATH) converte la stringadi caratteri ASCII puntata da IN in cifre esadecimali impacchettate e memorizzaqueste ultime nella tabella di destinazione puntata da OUT. Poiché i caratteri ASCIIsono composti da 8 bit e le cifre esadecimali da 4 bit la parola di uscita avrà unalunghezza pari a metà della parola di ingresso. I caratteri ASCII vengono convertiti ecollocati nell’uscita esadecimale nello stesso ordine in cui vengono letti. Se il numerodi caratteri ASCII è dispari, vengono inseriti degli zeri nel mezzo byte situatonell’estremità destra dell’ultima cifra esadecimale convertita.

I parametri della funzione ”Converti caratteri ASCII in cifre esadecimali” (ATH) sonoillustrati 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 vieneattivato.

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

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, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000 vedere il paragrafoErrori.

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.

Se viene individuato un carattere ASCII non ammesso, questo viene convertito nelvalore 0. L’uscita ENO viene impostata a 0 e RET_VAL viene posto uguale aW#16#0007.

La figura 6-3 illustra il funzionamento della funzione ATH. Questa viene eseguita sel’ingresso E 0.0 vale 1 (attivato). Il parametro di ingresso N indica che devono essereconvertiti cinque caratteri ASCII. Questi ultimi sono memorizzati nel blocco dati 1 apartire 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 è statoottenuto il valore esadecimale 0xC0 (il valore esadecimale equivalente di ciascuncarattere ASCII è riportato nella figura 6-4).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

Descrizione

Parametri

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 69: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

E0.0 A4.0ATHFC94

EN ENO

IN

N

RET_VALP#DB1.DBX10.0

W#16#05

MW0

OUT P#DB2.DBX0.0

Prima dell’esecuzione:Stringa ASCII : « B90AC »

IN DBB10 = B#16#42DBB11 = B#16#39DBB12 = B#16#30DBB13 = B#16#41DBB14 = B#16#43

Dopo l’esecuzione:Rappresentazione esadecimale: B90AC0

OUT DBB0 = B#16#B9DBB1 = B#16#0ADBB2 = B#16#C0

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

Carattere ASCII Valore esadecimale ASCII Cifra esadecimale convertita

0123456789ABCDEF

0123456789ABCDEF

30313233343536373839414243444546

Figura 6-4 Caratteri ASCII e corrispondenti valori esadecimali

Funzioni e blocco funzionale di conversione

Page 70: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Converti cifre esadecimali in caratteri ASCII” (HTA) converte le cifreesadecimali puntate da IN e le memorizza nella stringa di destinazione puntata daOUT. Poiché un carattere è composto da 8 bit e una cifra digitale ne richiede 4, laparola di uscita avrà una lunghezza pari al doppio della parola di ingresso. Ciascunodei mezzi byte che compongono la cifra decimale viene convertito in un carattere edisposto nello stesso ordine in cui viene letto (viene convertito per primo il mezzobyte posto all’estremità sinistra di una cifra, quindi quello all’estremità destra dellastessa cifra).

I parametri della funzione ”Converti cifre esadecimali in caratteri ASCII” (HTA) sonoillustrati 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 vieneattivato.

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

N Ingresso WORD E, A, M, L, P Numero dei byte di ingresso esadecimali daconvertire.

OUT Uscita POINTER* A, M, D, L Punta alla posizione iniziale della tabella didestinazione.

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

Questa funzione non segnala condizioni di errore.

Descrizione

Parametri

Errori

Funzioni e blocco funzionale di conversione

Page 71: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-7Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

La figura 6-5 illustra il funzionamento della funzione HTA. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato). Il valore 3 del parametro di ingresso N indicache verranno convertiti tre caratteri esadecimali. I byte dei caratteri esadecimalivengono 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 apartire da DB2.DBX0.0 (blocco dati 2) (il valore ASCII corrispondente a ciascunvalore esadecimale è riportato nella figura 6-6).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0HTAFC95

EN ENO

IN

N

OUTP#DB1.DBX10.0

W#16#03

P#DB2.DBX0.0

Prima dell’esecuzione:Rappresentazione esadecimale: F97AC1

IN DBB10 = B#16#F9DBB11 = B#16#7ADBB12 = B#16#C1

Dopo l’esecuzione:

Stringa ASCII: « F97AC1 »

OUT DBB0 = B#16#46DBB1 = B#16#39DBB2 = B#16#37DBB3 = B#16#41DBB4 = B#16#43DBB5 = B#16#31

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

Cifra digitale Valore esadecimale ASCII ASCII convertiti

0123456789ABCDEF

0123456789ABCDEF

30313233343536373839414243444546

Figura 6-6 Cifre esadecimali e valori ASCII corrispondenti

Esempio

Funzioni e blocco funzionale di conversione

Page 72: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

6.4 Leggi posizione del primo bit 1 cominciando dal valore più basso(ENCO): FC96

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 corrispondentealla posizione dell’ultimo bit a destra di IN e restituisce il risultato come valore dellafunzione. Se IN è 0000, 0001 oppure 0000 0000 viene restituito il valore 0.

I parametri della funzione ”Leggi posizione del primo bit 1 cominciando dal valorepiù 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 vieneattivato.

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 ocostante

Valore da codificare.

RET_VAL Uscita INT A, M, D, L, P Valore restituito (contenente un numero binario a 5bit).

Questa funzione non segnala condizioni di errore.

La figura 6-7 illustra il funzionamento della funzione ENCO. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0ENCOFC96

EN ENO

INRET_VAL

RET_VAL MW0 = 3

MW0DW#16#12345678

Figura 6-7 Leggi posizione del primo bit 1 cominciando dal valore più basso (ENCO)

Descrizione

Parametri

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 73: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-9Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

6.5 Scrivi in una parola il valore binario di un bit data la sua posizione(DECO): FC97

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, inun valore, impostando la corrispondente posizione di bit nel valore restituito dallafunzione. Se IN è superiore a 31, per ottenere il numero binario a 5 bit viene eseguitaun’operazione Modulo 32.

I parametri della funzione ”Scrivi in una parola il valore binario di un bit data la suaposizione” (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 vieneattivato.

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 ocostante

Variabile da decodificare.

RET_VAL Uscita DWORD A, M, D, L, P Valore restituito.

Questa funzione non segnala condizioni di errore.

La figura 6-8 illustra il funzionamento della funzione DECO. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0DECOFC97

EN ENO

INRET_VAL

W#16#0003MD0

RET_VAL MD0 = DW#16#00000008

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

Descrizione

Parametri

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 74: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

6.6 Crea complemento a dieci (BCDCPL): FC98

La funzione ”Crea complemento a dieci” (BCDCPL) restituisce il complemento adieci di una cifra BCD di sette posizioni indicata dal parametro IN. La formulamatematica utilizzata per tale operazione è la seguente:

10000000 (in BCD) – valore BCD di 7 posizioni = complemento a dieci (in BCD)

I parametri della funzione ”Crea complemento a dieci” (BCDCPL) sono riportati nellatabella 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 vieneattivato.

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 ocostante

Cifra BCD a 7 posizioni.

RET_VAL Uscita DWORD A, M, D, L, P Valore restituito.

Questa funzione non segnala condizioni di errore.

La figura 6-9 illustra il funzionamento della funzione BCDCPL. Essa viene eseguitase l’ingresso E 0.0 ha valore 1 (attivato).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0BCDCPLFC98

EN ENO

INRET_VAL

DW#16#01234567MD0

RET_VAL MD0 = DW#16#08765433

Figura 6-9 Complemento a dieci (BCDCPL)

Descrizione

Parametri

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 75: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-11Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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

La funzione ”Conta il numero di bit 1” (BITSUM) conta il numero di bit impostati a 1nell’ingresso IN e restituisce il valore ottenuto come valore della funzione.

I parametri della funzione ”Conta il numero di bit 1” (BITSUM) sono riportati nellatabella 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 vieneattivato.

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 ocostante

Variabile in cui avviene il conteggio dei bit.

RET_VAL Uscita INT A, M, D, L, P Valore restituito.

Questa funzione non segnala condizioni di errore.

La figura 6-10 illustra il funzionamento della funzione BITSUM. Essa viene eseguitase l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato, il valorerestituito in MW0 è pari a 13 (D in notazione esadecimale), che corrisponde allasomma dei bit con valore 1 della doppia parola DW#16#12345678 (valoreesadecimale di ingresso).

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0BITSUMFC99

EN ENO

INRET_VAL

DW#16#12345678MW0

RET_VAL MW0 = W#16#000D

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

Descrizione

Parametri

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 76: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

6.8 Riporta valori in scala (SCALE): FC105

La funzione ”Riporta valori in scala” (SCALE) prende un valore intero e lo convertein un valore reale in unità di misura riportate in scala tra due limiti, uno superiore euno inferiore (LO_LIM e HI_LIM). Il risultato ottenuto viene poi scritto nell’uscitaOUT. 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 siaBIPOLAR 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 tra0 e 27648, quindi:K1 = 0.0 e K2 = +27648.0

Se il valore intero in ingresso è maggiore di K2, l’uscita (OUT) viene assimilata aHI_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 scalainversa il valore dell’uscita diminuisce con l’aumentare del valore di ingresso.

I parametri della funzione ”Riporta valori in scala” (SCALE) sono illustrati nellatabella 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 vieneattivato.

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 ocostante

Valore in ingresso da riportare in scala come valorereale in unità di misura.

HI_LIM Ingresso REAL E, A, M, D, L, P ocostante

Limite superiore in unità di misura.

LO_LIM Ingresso REAL E, A, M, D, L, P ocostante

Limite inferiore in unità di misura.

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, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

Descrizione

Parametri

Funzioni e blocco funzionale di conversione

Page 77: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-13Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Se il valore intero in ingresso è superiore a K2, l’uscita (OUT) viene assimilata aHI_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 ENOviene impostata a 0 e RET_VAL viene posto uguale a W#16#0008.

La figura 6-11 illustra il funzionamento della funzione SCALE. Essa viene eseguita sel’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio qui riportato il valore intero 22viene convertito in un valore REAL, compreso in una scala da 0.0 a 100.0, e scrittonell’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.0vengono impostati a 1 e RET_VAL viene posto uguale a W#16#0000.

E0.0 A4.0SCALEFC105

EN ENO

IN

HI_LIM

LO_LIM

RET_VALMW10

MD20

MD30

MW0

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

E 2.0

OUT MD40

Figura 6-11 Riporta valori in scala (SCALE)

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 78: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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

La funzione ”Converti da numero in scala in numero intero” (UNSCALE) prende unvalore reale in ingresso (IN) in unità di misura riportato in scala tra due limiti, unosuperiore e uno inferiore (LO_LIM e HI_LIM) e lo converte in un valore intero. Ilrisultato ottenuto viene poi scritto nell’uscita OUT. La funzione UNSCALE utilizza laseguente 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 oUNIPOLAR.

• 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 tra0 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 cuiappartiene (BIPOLAR o UNIPOLAR), l’uscita (OUT) viene assimilata al limiteinferiore o superiore più simile e viene segnalato un errore.

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

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 ocostante

Valore scalare di ingresso da convertire in numerointero.

HI_LIM Ingresso REAL E, A, M, D, L, P ocostante

Limite superiore in unità di misura.

LO_LIM Ingresso REAL E, A, M, D, L, P ocostante

Limite inferiore in unità di misura.

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, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

Descrizione

Parametri

Funzioni e blocco funzionale di conversione

Page 79: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-15Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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 specificatoper il tipo in oggetto (BIPOLAR o UNIPOLAR), e viene segnalato un errore. L’uscitaENO viene impostata a 0 e RET_VAL viene posto uguale a W#16#0008.

La figura 6-12 illustra il funzionamento della funzione UNSCALE. Essa vieneeseguita se l’ingresso E 0.0 ha valore 1 (attivato). Nell’esempio il valore reale50.03978588 compreso in una scala da 0.0 a 100.0, viene convertito in un valoreINTEGER e scritto nell’uscita OUT. Il valore di ingresso è BIPOLAR come indicatodallo stato di E 2.0.

Se durante l’esecuzione della funzione non si verifica alcun errore, ENO e A 4.0vengono impostati a 1.

E0.0 A4.0UNSCALE

FC106EN ENO

IN

HI_LIM

LO_LIM

RET_VALMD10

MD20

MD30

MW0

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

E2.0

OUT MW40

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

Errori

Esempio

Funzioni e blocco funzionale di conversione

Page 80: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

6.10 Algoritmo Lead/Lag (LEAD_LAG): FB80

Il blocco funzionale ”Algoritmo Lead/Lag” (LEAD_LAG) consente di elaborare unsegnale 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 delritardo (LG_TIME). Il valore di amplificazione deve essere maggiore di 0.L’algoritmo lead/lag utilizza la seguente equazione:

LG_TIME + SAMPLE_T

dove OUT =

LG_TIMEPREV_OUT + GAIN

LG_TIME + SAMPLE_T

LD_TIME + SAMPLE_TIN – GAIN

LG_TIME + SAMPLE_T

LD_TIMEPREV_IN

Generalmente l’algoritmo LEAD/LAG viene utilizzato assieme ai loop come fattoredi compensazione nel controllo dinamico dell’avanzamento. Esso consta di due fasi.La fase di anticipo sposta l’uscita del blocco funzionale in modo che anticipil’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 pereliminare le interferenze o come filtro passa basso. L’operazione di anticipo equivalead una differenziazione e funge quindi da filtro passa alto. Le due operazionicombinate (LEAD_LAG ) possono fare in modo che la fase di uscita ritardi l’ingressodelle frequenze più basse e anticipi quello delle frequenze più alte e può quindi essereutilizzato come filtro passabanda.

Descrizione

Funzioni e blocco funzionale di conversione

Page 81: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

6-17Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

I parametri del blocco funzionale ”Algoritmo Lead/Lag” (LEAD_LAG) sono illustratinella 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 vieneattivato.

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 ocostante

Valore di ingresso dell’intervallo di campionaturada elaborare.

SAMPLE_T Ingresso INT E, A, M, D, L, P ocostante

Tempo di campionatura.

OUT Uscita REAL E, A, M, D, L, P ocostante

Risultato dell’operazione LEAD/LAG.

ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

LD_TIME statica REAL E, A, M, D, L, P ocostante

Tempo di anticipo espresso in minuti.

LG_TIME statica REAL E, A, M, D, L, P ocostante

Tempo di ritardo espresso in minuti.

GAIN statica REAL E, A, M, D, L, P ocostante

Guadagno espresso nella forma % / % (rapporto trala variazione dell’uscita e quella dell’ingresso comestato stazionario).

PREV_IN statica REAL E, A, M, D, L, P ocostante

Ingresso precedente.

PREV_OUT statica REAL E, A, M, D, L, P ocostante

Uscita precedente.

Se il valore del parametro GAIN è inferiore o uguale a 0, il blocco funzionale nonviene eseguito. L’uscita ENO viene impostata a 0 e ERR_CODE viene posto uguale aW#16#0009.

Parametri

Errori

Funzioni e blocco funzionale di conversione

Page 82: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

La figura 6-13 illustra il funzionamento del blocco funzionale LEAD_LAG. Sel’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 tramitel’algoritmo LEAD_LAG per ottenere un’uscita.

Se durante l’esecuzione del blocco funzionale non si verifica alcun errore, ENO eA 4.0 vengono impostati a 1.

Avvertenza

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

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

E0.0 A4.0LEAD_LAG

FB80EN ENO

IN

SAMPLE_T

OUTMD10

10

MD20

ERR_CODE

DB80

Prima dell’esecuzione:

IN MD10 = 2.0

OUT MD20 = 0.0

Dopo l’esecuzione:

DB80 di istanza

PREV_IN DBD24 = 2.0

PREV_OUT DBD28 = 2.0

OUT MD20 = 2.0

MW0

Figura 6-13 Algoritmo Lead/Lag (LEAD_LAG)

Esempio

Funzioni e blocco funzionale di conversione

Page 83: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

7-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Funzione matematica in virgola mobile

Il presente capitolo descrive la funzione matematica in virgola mobile (FC) che,utilizzata assieme alle istruzioni standard, garantisce una maggiore flessibilità nellaprogrammazione.

Capitolo Argomento trattato Pagina

7.1 Deviazione standard (DEV): FC102 7-2

7

Page 84: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

7.1 Deviazione standard (DEV): FC102

La funzione ”Deviazione standard” (DEV) calcola la deviazione standard di uninsieme di valori memorizzati in una tabella (TBL) e memorizza il risultato nell’uscitaOUT. La deviazione standard viene calcolata mediante la seguente formula:

(N * SqSum) – Sum2

N * (N – 1)Deviazionestandard

=

dove : Sum = somma dei valori di TBLN = numero di valori di TBLSqSum = somma dei valori di TBL elevati al quadrato

In tutti i calcoli vengono utilizzati valori in virgola mobile IEEE e le conversionieventualmente necessarie vengono eseguite automaticamente al richiamo dellafunzione.

• Il primo indirizzo della tabella contiene il numero di valori che vi possono essereimmessi, 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) sonodeterminati da E_TYPE.

I parametri della funzione ”Deviazione standard” (DEV) sono illustrati nellatabella 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 vieneattivato.

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

E_TYPE Ingresso BYTE E, A, M, D, L, P Indica il tipo di dati che possono essere immessi nellatabella. Nella funzione DEV sono ammessi i seguentidati:

B#16#05 = INTB#16#07 = DINTB#16#08 = REAL

RET_VAL Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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

Descrizione

Parametri

Funzione matematica in virgola mobile

Page 85: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

7-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Se si verifica una delle condizioni riportate nella tabella 7-2, la funzione non vieneeseguita. L’uscita ENO viene impostata a ”0” e viene impostato il corrispondentevalore 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 parametrofunzionale.

W#16#0002 E_TYPE non ammesso.

W#16#0004 La lunghezza della tabella è 0.

La figura 7-1 illustra il funzionamento della funzione DEV. Essa viene eseguita sel’ingresso I 0.0 vale 1 (attivato). Nell’esempio qui riportato nella tabella sono presenticinque valori, come indica la prima parola. Il tipo di dati dei valori è REAL comeindica il parametro E_TYPE.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eRET_VAL viene posto uguale a W#16#0000.

OUT DBD130 = 12.19836055

DEVFC102

EN ENO

TBL

OUT

E_TYPE

E0.0 A4.0

RET_VALP#DB1.DBX100.0

P#DB1.DBX130.0

B#16#08

MW0

Prima dell’esecuzione:

TBL (lunghezza tabella) DBW100=W#16#0005DBD102 = 2.0DBD106 = 4.0DBD110 = 8.0DBD114 = 16.0DBD118 = 32.0

OUT DBD130 = 0.0

Dopo l’esecuzione:

Figura 7-1 Deviazione standard (DEV)

Errori

Esempio

Funzione matematica in virgola mobile

Page 86: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Funzione matematica in virgola mobile

Page 87: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

8-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Blocchi funzionali di confronto

Il presente capitolo descrive i blocchi funzionali di confronto (FB) che, utilizzatiassieme alle istruzioni standard, garantiscono una maggiore flessibilità nellaprogrammazione.

Capitolo Argomento trattato Pagina

8.1 Confronta posizione di matrice (IMC): FB83 8-2

8.2 Confronta matrice in scansione (SMC): FB84 8-6

8

Page 88: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

8.1 Confronta posizione di matrice (IMC): FB83

Il blocco funzionale ”Confronta posizione di matrice” (IMC) confronta lo stato dimax. 16 bit di ingresso programmati (da IN_BIT0 a IN_BIT15) con i bitcorrispondenti 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 delpasso, IN_BIT1 viene confrontato con CMP_VAL [x,1] ecc. Il numero del passo dellamaschera con cui effettuare il confronto è indicato da CMP_STEP. I bit di ingresso odella maschera non programmati hanno uno stato di default di FALSE. Se vieneindividuata una corrispondenza, l’uscita (OUT) viene impostata a 1, in caso contrarioa 0.

Descrizione

Blocchi funzionali di confronto

Page 89: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

8-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

I parametri del blocco funzionale ”Confronta posizione di matrice” (IMC) sonoillustrati nella tabella 8-1.

Tabella 8-1 Parametri del blocco funzionale ”Confronta posizione di matrice” (FB83)

Parametro DichiarazioneTipo di

datiArea di

memoriaDescrizione

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 diabilitazione 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 dellamaschera.

IN_BIT11 Ingresso BOOL E, A, M, D, L Bit di ingresso 11 da confrontare con il bit 11 dellamaschera.

IN_BIT12 Ingresso BOOL E, A, M, D, L Bit di ingresso 12 da confrontare con il bit 12 dellamaschera.

IN_BIT13 Ingresso BOOL E, A, M, D, L Bit di ingresso 13 da confrontare con il bit 13 dellamaschera.

IN_BIT14 Ingresso BOOL E, A, M, D, L Bit di ingresso 14 da confrontare con il bit 14 dellamaschera.

IN_BIT15 Ingresso BOOL E, A, M, D, L Bit di ingresso 15 da confrontare con il bit 15 dellamaschera.

CMP_STEP Ingresso BYTE E, A, M, D, L,P

Numero del passo della maschera con cui effettuare ilconfronto.

OUT Uscita BOOL E, A, M, D, L Il valore 1 indica che è stata individuata unacorrispondenza, il valore 0 indica che non ne è stataindividuata alcuna.

ERR_CODE Uscita WORD E, A, M, D, L,P

Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni sui valoridiversi da W#16#0000, vedere il paragrafo Errori.

CMP_VAL statica ARRAYOFBOOL

E, A, M, D, L Maschere di confronto [da 0 a 15 , da 0 a 15], dove ilprimo numero dell’indice corrisponde a quello del passo eil secondo a quello del bit della maschera.

Parametri

Blocchi funzionali di confronto

Page 90: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

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.

La figura 8-1 illustra il funzionamento del blocco funzionale IMC. Se l’ingresso E 0.0vale 1 (attivato), il blocco funzionale viene eseguito. Nell’esempio qui riportato tutti i16 bit di ingresso vengono confrontati con il secondo passo della maschera (comeindicato da CMP_STEP). OUT viene impostato a TRUE poiché i bit di ingressocorrispondono alla maschera nel passo 2.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eERR_CODE viene posto uguale a W#16#0000.

Avvertenza

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

Errori

Esempio

Blocchi funzionali di confronto

Page 91: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

8-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

IN_BIT0 M0.0 = TRUE <confronta con>CMP_VAL [2, 0] DBX12.0 = TRUEIN_BIT1 M0.1 = TRUE <confronta con>CMP_VAL [2, 1] DBX12.1 = TRUEIN_BIT2 M0.2 = FALSE <confronta con>CMP_VAL [2, 2] DBX12.2 = FALSEIN_BIT3 M0.3 = TRUE <confronta con>CMP_VAL [2, 3] DBX12.3 = TRUEIN_BIT4 M0.4 = TRUE <confronta con>CMP_VAL [2, 4] DBX12.4 = TRUEIN_BIT5 M0.5 = FALSE <confronta con>CMP_VAL [2, 5] DBX12.5 = FALSEIN_BIT6 M0.6 = TRUE <confronta con>CMP_VAL [2, 6] DBX12.6 = TRUEIN_BIT7 M0.7 = TRUE <confronta con>CMP_VAL [2, 7] DBX12.7 = TRUEIN_BIT8 M1.0 = FALSE <confronta con>CMP_VAL [2, 8] DBX13.0 = FALSEIN_BIT9 M1.1 = TRUE <confronta con>CMP_VAL [2, 9] DBX13.1 = TRUEIN_BIT10 M1.2 = TRUE <confronta con>CMP_VAL [2, 10] DBX13.2 = TRUEIN_BIT11 M1.3 = FALSE <confronta con>CMP_VAL [2, 11] DBX13.3 = FALSEIN_BIT12 M1.4 = TRUE <confronta con>CMP_VAL [2, 12] DBX13.4 = TRUEIN_BIT13 M1.5 = TRUE <confronta con>CMP_VAL [2, 13] DBX13.5 = TRUEIN_BIT14 M1.6 = FALSE <confronta con>CMP_VAL [2, 14] DBX13.6 = FALSEIN_BIT15 M1.7 = TRUE <confronta con>CMP_VAL [2, 15] DBX13.7 = TRUE

OUT A2.0 = FALSE

Prima dell’esecuzione: DB83 di istanza

OUT A2.0 = TRUE

Dopo l’esecuzione:

E0.0 A4.0IMCFB83EN

IN_BIT0

IN_BIT1

ENO

OUT

CMP_STEP

M0.0

M0.1

B#16#02

A 2.0

ERR_CODE MW0

IN_BIT2M0.2

DB83

IN_BIT3M0.3

IN_BIT4M0.4

IN_BIT5

IN_BIT6

M0.5

M0.6

IN_BIT7M0.7

IN_BIT8M1.0

M1.1IN_BIT9

IN_BIT10M1.2

IN_BIT11M1.3

IN_BIT12

IN_BIT13

M1.4

M1.5

IN_BIT14M1.6

IN_BIT15M1.7

Nota : Sono riportati solo i valori della maschera nel passo 2. Gli altri passi vengono programmatinello stesso modo.

Figura 8-1 Confronta posizione di matrice (IMC)

Blocchi funzionali di confronto

Page 92: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

8.2 Confronta matrice in scansione (SMC): FB84

Il blocco funzionale ”Confronta matrice in scansione” (SMC) confronta lo stato dimax. 16 bit di ingresso programmati (da IN_BIT0 a IN_BIT15) con i bitcorrispondenti della maschera di tutti i passi, a partire dal passo 1 fino all’ultimopasso programmato (LAST) o finché non trova una corrispondenza. IN_BIT0 vieneconfrontato con CMP_VAL [x,0] dove x corrisponde al numero del passo, IN_BIT1viene confrontato con CMP_VAL [x,1] ecc. Quando viene individuata unacorrispondenza, l’uscita (OUT) viene impostata a 1 e il numero del passo e lamaschera corrispondente vengono scritti in OUT_STEP. I bit di ingresso o dellamaschera non programmati hanno uno stato di default di FALSE. Se più di un passocontiene una maschera corrispondente, verrà indicata nell’uscita OUT_STEP solo laprima. Se non vengono trovate maschere corrispondenti, l’uscita (OUT) vieneimpostata a 0 e OUT_STEP sarà maggiore di uno rispetto a LAST.

I parametri del blocco funzionale ”Confronta matrice in scansione” (SMC) sonoillustrati 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 vieneattivato.

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

IN_BIT1 Ingresso BOOL E, A, M, D, L Bit di ingresso 1 da confrontare con il bit 1 dellamaschera.

IN_BIT2 Ingresso BOOL E, A, M, D, L Bit di ingresso 2 da confrontare con il bit 2 dellamaschera.

IN_BIT3 Ingresso BOOL E, A, M, D, L Bit di ingresso 3 da confrontare con il bit 3 dellamaschera.

IN_BIT4 Ingresso BOOL E, A, M, D, L Bit di ingresso 4 da confrontare con il bit 4 dellamaschera.

IN_BIT5 Ingresso BOOL E, A, M, D, L Bit di ingresso 5 da confrontare con il bit 5 dellamaschera.

IN_BIT6 Ingresso BOOL E, A, M, D, L Bit di ingresso 6 da confrontare con il bit 6 dellamaschera.

IN_BIT7 Ingresso BOOL E, A, M, D, L Bit di ingresso 7 da confrontare con il bit 7 dellamaschera.

IN_BIT8 Ingresso BOOL E, A, M, D, L Bit di ingresso 8 da confrontare con il bit 8 dellamaschera.

IN_BIT9 Ingresso BOOL E, A, M, D, L Bit di ingresso 9 da confrontare con il bit 9 dellamaschera.

IN_BIT10 Ingresso BOOL E, A, M, D, L Bit di ingresso 10 da confrontare con il bit 10 dellamaschera.

IN_BIT11 Ingresso BOOL E, A, M, D, L Bit di ingresso 11 da confrontare con il bit 11 dellamaschera.

Descrizione

Parametri

Blocchi funzionali di confronto

Page 93: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

8-7Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

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

Parametro DescrizioneArea di memoriaTipo di datiDichiarazione

IN_BIT12 Ingresso BOOL E, A, M, D, L Bit di ingresso 12 da confrontare con il bit 12 dellamaschera.

IN_BIT13 Ingresso BOOL E, A, M, D, L Bit di ingresso 13 da confrontare con il bit 13 dellamaschera.

IN_BIT14 Ingresso BOOL E, A, M, D, L Bit di ingresso 14 da confrontare con il bit 14 dellamaschera.

IN_BIT15 Ingresso BOOL E, A, M, D, L Bit di ingresso 15 da confrontare con il bit 15 dellamaschera.

OUT Uscita BOOL E, A, M, D, L Il valore 1 indica che è stata individuata unacorrispondenza, il valore 0 indica che non ne è stataindividuata alcuna.

ERR_CODE Uscita WORD E, A, M, D, L, P Se l’istruzione viene eseguita correttamente, vienerestituito il valore W#16#0000. Per informazioni suivalori diversi da W#16#0000, vedere il paragrafoErrori.

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 numerodel passo successivo a LAST.

LAST statica BYTE E, A, M, D, L, P Specifica il numero dell’ultimo passo da scansionareper individuare una maschera corrispondente.

CMP_VAL statica ARRAY OFBOOL

E, A, M, D, L Maschere di confronto [da 0 a 15 , da 0 a 15], dove ilprimo numero dell’indice corrisponde a quello delpasso e il secondo a quello del bit della maschera.

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.

La figura 8-2 illustra il funzionamento del blocco funzionale SMC. Se l’ingresso E 0.0vale 1 (attivato), il blocco funzionale viene eseguito. Nell’esempio qui riportato tutti i16 bit di ingresso vengono confrontati con la maschera per i passi da 0 a 5 (comeindicato da LAST) oppure finché non viene individuata una corrispondenza. Vengonoscansionati solo i passi da 0 a 2 poiché la maschera per il passo 2 corrisponde ai bit diingresso.

Se durante l’esecuzione non si verificano errori, ENO e A 4.0 vengono impostati a 1 eERR_CODE viene posto uguale a W#16#0000.

Avvertenza

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

Errori

Esempio

Blocchi funzionali di confronto

Page 94: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

OUT A2.0 = FALSEOUT_STEP MB10 = B#16#00

DB84 di istanzaLAST DB84 = B#16#05

IN_BIT0 M0.0 = TRUE <confronta con>CMP_VAL [2, 0] DBX12.0 = TRUEIN_BIT1 M0.1 = TRUE <confronta con>CMP_VAL [2, 1] DBX12.1 = TRUEIN_BIT2 M0.2 = FALSE <confronta con>CMP_VAL [2, 2] DBX12.2 = FALSEIN_BIT3 M0.3 = TRUE <confronta con>CMP_VAL [2, 3] DBX12.3 = TRUEIN_BIT4 M0.4 = TRUE <confronta con>CMP_VAL [2, 4] DBX12.4 = TRUEIN_BIT5 M0.5 = FALSE <confronta con>CMP_VAL [2, 5] DBX12.5 = FALSEIN_BIT6 M0.6 = TRUE <confronta con>CMP_VAL [2, 6] DBX12.6 = TRUEIN_BIT7 M0.7 = TRUE <confronta con>CMP_VAL [2, 7] DBX12.7 = TRUEIN_BIT8 M1.0 = FALSE <confronta con>CMP_VAL [2, 8] DBX13.0 = FALSEIN_BIT9 M1.1 = TRUE <confronta con>CMP_VAL [2, 9] DBX13.1 = TRUEIN_BIT10 M1.2 = TRUE <confronta con>CMP_VAL [2, 10] DBX13.2 = TRUEIN_BIT11 M1.3 = FALSE <confronta con>CMP_VAL [2, 11] DBX13.3 = FALSEIN_BIT12 M1.4 = TRUE <confronta con>CMP_VAL [2, 12] DBX13.4 = TRUEIN_BIT13 M1.5 = TRUE <confronta con>CMP_VAL [2, 13] DBX13.5 = TRUEIN_BIT14 M1.6 = FALSE <confronta con>CMP_VAL [2, 14] DBX13.6 = FALSEIN_BIT15 M1.7 = TRUE <confronta con>CMP_VAL [2, 15] DBX13.7 = TRUE

Prima dell’esecuzione: DB84 di istanza

OUT A2.0 = TRUEOUT_STEP MB10 = B#16#02

Dopo l’esecuzione:

E0.0 A4.0SMCFB84EN

IN_BIT0

IN_BIT1

ENO

OUTM0.0

M0.1A 2.0

OUT_STEP MB10

IN_BIT2M0.2

DB84

IN_BIT3M0.3

IN_BIT4M0.4

IN_BIT5

IN_BIT6

M0.5

M0.6

IN_BIT7M0.7

IN_BIT8M1.0

M1.1IN_BIT9

IN_BIT10M1.2

IN_BIT11M1.3

IN_BIT12

IN_BIT13

M1.4

M1.5

IN_BIT14M1.6

IN_BIT15M1.7

Nota : Sono riportati solo i valori della maschera nel passo 2. Gli altri passi vengono programmatinello stesso modo.

Figura 8-2 Confronta matrice in scansione (SMC)

Blocchi funzionali di confronto

Page 95: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Glossario-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Glossario

A

L’area di memoria è una locazione della CPU in cui un’istruzione trova un valore concui eseguire la propria operazione. Il controllore programmabile dispone delleseguenti aree di memoria che possono essere utilizzate come parte dell’operando diun’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

L’ottavo bit di una parola di stato viene chiamato ”bit di risultato binario” (bit BIE).Quest’ultimo realizza un collegamento tra l’elaborazione dei bit e delle parole econsente al programma di esprimere il risultato di un’operazione a parola in formabinaria 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 dirichiamarli in schema a contatti (KOP).

Quando si scrive in lista istruzioni un blocco funzionale (FB) o una funzione (FC) chesi desidera richiamare in seguito in KOP, si deve gestire il bit BIE indipendentementedal fatto che li si scriva in AWL o in KOP. Il bit BIE corrisponde all’uscita diabilitazione (ENO) di un box KOP. Eseguendo l’istruzione SAVE in AWL o con unabobina ––(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 unRLC di ”1”.

• Se durante l’esecuzione dell’FB o della FC si verificano errori, viene memorizzatonel bit BIE un RLC di ”0”.

Area di memoria

Bit di risultatobinario

Page 96: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Tali operazioni devono essere programmate alla fine dell’FB o della FC in modo chevengano 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 precedentementeindicato, 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 comeindicato precedentemente.

Nei blocchi dati (DB) vengono memorizzati i dati del programma utente. La strutturadi tali dati viene definita dall’utente. Si possono avere dati ”condivisi” (ovveroaccessibili) da tutti i blocchi di codice oppure utilizzati come ”istanza” specifica di unparticolare FB (dove la struttura del DB è associata alla tabella di dichiarazione dellevariabili dell’FB).

I DB di istanza mettono a disposizione la memoria per richiamare uno specifico FB(o una sua ”istanza”). Creando più istanze (DB di istanza) di un FB è possibilecontrollare diversi dispositivi con un solo FB.

La struttura di un DB di un’istanza rispecchia la tabella di dichiarazione delle variabilidi un FB. In essa vengono memorizzati i parametri attuali delle variabili in, out,in_out e var.

I blocchi di codice sono blocchi di STEP 7 che contengono il programma per la logicadi controllo. Essi possono essere blocchi organizzativi (OB), funzioni e blocchifunzionali (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.

I blocchi funzionali sono blocchi di codice che contengono un segmento delprogramma 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ò essererichiamato più volte e ogni volta con un diverso DB di istanza. I parametri e levariabili statiche dell’FB sono memorizzate nel DB di istanza.

I blocchi funzionali di sistema (SFB) sono blocchi funzionali integrati nel sistemaoperativo S7 e possono essere richiamati dal programma. Come gli FB, gli SFB hannouna memoria di lavoro in cui i dati vengono memorizzati fino al successivo richiamodel blocco. Tale memoria è realizzata come blocco dati di istanza (DB di istanza) chedeve essere creato e viene aperto come parte dell’istruzione di richiamo. Poiché gliSFB fanno parte del sistema operativo non è necessario caricarli.

Blocco dati (DB)

Blocco dati diistanza (DB)

Blocco di codice

Blocco funzionale

Blocco funzionaledi sistema

Glossario

Page 97: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Glossario-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

C

La CPU (Central Processing Unit) contiene il programma utente e ha la funzione dielaborare i dati per il controllore programmabile.

F

Le funzioni sono blocchi di codice che contengono un segmento del programma, masono privi di memoria. Esse hanno un funzionamento simile a quello delsottoprogramma di un programma, vengono create dall’utente e possono essererichiamate dal programma. Poiché il programma può richiamarle più volte (etrasmettere ogni volta valori diversi), le FC vengono definite blocchi riutilizzabili.Quando l’FC termina l’elaborazione, i dati locali temporanei che ha utilizzatovengono riallocati.

Le funzioni di sistema (SFC) sono funzioni preprogrammate e testate che sonointegrate nel sistema operativo S7 e possono essere richiamate dal programma.Poiché fanno parte del sistema operativo, esse non occupano spazio nella memoriaprincipale. Come le FC, le SFC non utilizzano i DB di istanza.

I

L’identificatore di operando è la parte di un operando di un’istruzione che fornisceinformazioni 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).

Tipo di indirizzamento che indica la posizione attuale di una data unità di dati nellamemoria della CPU. Esso consente, ad esempio, di riferirsi ad un segnale E/Amediante un indirizzo che specifica il tipo di segnale (E in ingresso, A in uscita), ilnumero dell’unità E/O e il segnale in oggetto. Ad esempio, nell’uscita A 4.0 ilcontrollore programmabile interpreta gli indirizzi assoluti senza ricorrere ad unatabella dei simboli. Vedere la voce Indirizzamento simbolico.

Si tratta di un tipo di indirizzamento in cui l’operando di un’istruzione puntadirettamente all’indirizzo in cui si trova il valore che elaborerà. Cfr. ”Indirizzamentoimmediato”.

Si tratta di un tipo di indirizzamento in cui il valore attuale con cui l’istruzione deveoperare viene fornito come parametro di ingresso. Tale valore è l’indirizzodell’istruzione. Cfr. ”Indirizzamento diretto”.

Anche se ciascun elemento della CPU dispone di un indirizzo assoluto (ad es.”E 0.0”), è comunque possibile creare dei nomi simbolici da utilizzare perl’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 deisimboli che si può creare e compilare con l’Editor dei simboli.

CPU

Funzione (FC)

Funzione disistema (SFC)

Identificatore dioperando

Indirizzamentoassoluto

Indirizzamentodiretto

Indirizzamentoimmediato

Indirizzamentosimbolico

Glossario

Page 98: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Un’istruzione KOP (schema a contatti) dice alla CPU del controllore programmabilequale funzione deve eseguire. Le istruzioni KOP possono essere costituite da elementio da box.

L

”Lista istruzioni (AWL)” è uno dei due linguaggi del software di programmazioneSTEP 7 che può essere utilizzato per programmare un controllore programmabile(PLC) S7-300. Ciascuna istruzione del programma elaborato comprendeun’operazione la cui sigla mnemonica rappresenta una funzione del controlloreprogrammabile.

M

Il Master Control Relay (MRC) è un interruttore generale KOP che consente diattivare e interrompere il flusso della corrente (un montante). Un montante disinseritocorrisponde ad una sequenza di istruzioni che inserisce un valore pari a 0 al posto delvalore calcolato oppure ad una sequenza di istruzioni che lascia invariato il valore dimemoria esistente.

Unmontante è una riga di istruzioni KOP, contenente generalmente dei contatti diingresso e box con istruzioni, conclusa da un’operazione di uscita posta alla fine dellariga. In STEP 7 il montante di uno schema a contatti corrisponde ad un segmento.

N

La notazione mnemonica è la rappresentazione mediante sigle di nomi, operandi eistruzioni di programmazione del programma (ad esempio ”E” sta per ”ingresso” e”A” per operazione And”). STEP 7 supporta la notazione internazionale (basatasull’inglese) e la notazione SIMATIC (basata sulla notazione delle ioperazioniadottata in Germania e sulle convenzioni per l’indirizzamento SIMATIC).

O

L’operando di un’istruzione KOP indica una costante o il punto in cui l’istruzionetrova il valore con cui eseguire un’operazione. Un operando può avere un nomesimbolico o assoluto o essere costituito da entrambi. Esso può puntare a uno qualsiasidei seguenti elementi:

• una costante, il valore di un temporizzatore o di un contatore oppure una stringa dicaratteri 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 unblocco 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 daesso indicata (ad es. E 1.0),

• il numero di un temporizzatore o di un contatore.

Istruzione

Lista istruzioni

Master ControlRelay

Montante

Notazionemnemonica

Operando

Glossario

Page 99: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Glossario-5Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

P

I parametri attuali sono indirizzi o valori che vengono messi a disposizione comeingressi o uscite nel richiamo di un blocco funzionale (FB) o di una funzione (FC).Essi corrispondono ai parametri formali dichiarati nella tabella di dichiarazione dellevariabili dell’FB o della FC.

I parametri formali vengono dichiarati nella tabella di dichiarazione delle variabili diun FB o una FC. Al richiamo dell’FB o della FC si dovrà indicare un parametroattuale (un indirizzo o un valore) per ciascun parametro formale.

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 oun processo.

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 ilpuntatore 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 datiche iniziano da M 50.0:

P#M50.0R

Il bit 1 della parola di stato viene chiamato bit RLC (ovvero Risultato logicocombinatorio). In esso viene memorizzato il risultato di un’operazione logicacombinatoria o di un’operazione matematica di confronto. Lo stato del bit RLCfornisce informazioni sul flusso del segnale: ”1” indica la presenza del flusso disegnale (on) e ”0” l’assenza (off).

Ad esempio, la prima operazione di un montante KOP interroga lo stato di un contattoe dà il risultato ”1” o ”0”. Quindi memorizza il risultato dell’interrogazione nel bitRLC. Anche la seconda operazione del montante KOP interroga lo stato di un contattoe dà il risultato, combinandolo poi con il valore memorizzato nel bit RLC della paroladi stato, in base alle regole della logica booleana. Il risultato logico viene poimemorizzato nel bit RLC della parola di stato e sostituisce il precedente valore. Tuttele successive operazioni del montante eseguono un’operazione combinatoria tra duevalori, ovvero tra il risultato dell’interrogazione dello stato del contatto e l’RLCattuale.

Le operazioni booleane combinatorie consentono di assegnare all’RLC il contenutodell’indirizzo di un operando già alla prima interrogazione. Con l’RLC è inoltrepossibile attivare operazioni di salto.

Parametro attuale

Parametro formale

Programma utente

Puntatore

Risultato logicocombinatorio

Glossario

Page 100: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

S

”Schema a contatti” (KOP) è uno dei due linguaggi del software di programmazioneSTEP 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 aglielementi di un circuito elettrico.

Nel linguaggio schema a contatti di STEP 7, un segmento corrisponde ad un montantecon istruzioni KOP. Cfr. la voce ”Montante”.

T

Tutti i blocchi di codice dispongono di una tabella di dichiarazione delle variabili.Inserendovi delle informazioni, si dichiarano (ovvero si definiscono) i parametri e levariabili utilizzate dal blocco.

Per tutti i dati utilizzati in un programma è possibile specificare il ”tipo” a cuiappartengono. Il tipo di dati va specificato quando si definiscono i nomi simbolicinell’Editor dei simboli o quando si specificano le variabili locali nella tabella didichiarazione delle variabili. Esso definisce la lunghezza e la disposizione dei bit nellamemoria riservata alla CPU.

• Tipi di dati semplici: BOOL (booleano), BYTE, WORD, DWORD (doppiaparola), CHAR (carattere), INT (intero), DINT (doppio intero), REAL (a virgolamobile), TIME, DATE, TOD (ora), S5TIME. Il sistema operativo assegna aciascun tipo di dati semplici una locazione di memoria con lunghezza fissa. Adesempio, 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. 255caratteri), STRUCT, UDT e ARRAY. Questo tipo di dati è generalmente formatoda 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 arraycostituito da una serie di tipi di dati diversi.

• Tipi di parametri: TIMER (numero del temporizzatore), COUNTER (numero delcontatore), BLOCK_(DB, FB, FC, SDB, SFC, SFB) (numero del tipo di bloccoidentificato), POINTER (riferimento del puntatore ad un indirizzo) o ANY (tipo didati non definito o di qualsiasi genere).

Schema a contatti(KOP)

Segmento

Tabella didichiarazione dellevariabili

Tipi di dati

Glossario

Page 101: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Indice-1Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

Indice analitico

AAggiungi dati alla tabella (ATT), 2-2Algoritmo Lead/Lag (LEAD_LAG), 6-16Allarme a tempo con controllo (DCAT), 5-4Allarme a tempo per controllo motori (MCAT), 5-7Assistenza tecnica, v

BBlocchi funzionali (FB)

copiare, iiielenco, vi

Blocchi funzionali di confrontoConfronta matrice in scansione (SMC), 8-6Confronta posizione di matrice (IMC), 8-2

CCombina e memorizza logicamente il valore con

l’elemento della tabella (WRD_TBL), 2-15Combinazione a bit

Resetta direttamente stato delle uscite compresenel campo (RSETI), 1-4

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

Combinazioni a bitImposta direttamente stato delle uscite com-

prese nel campo (SETI), 1-8Imposta stato delle uscite comprese nel campo

(SET), 1-6Confronta matrice in scansione (SMC), 8-6Confronta posizione di matrice (IMC), 8-2Confronto

Confronta matrice in scansione (SMC), 8-6Confronta posizione di matrice (IMC), 8-2

Conta il numero di bit 1 (BITSUM), 6-11Conversione

Algoritmo Lead/Lag (LEAD_LAG), 6-16Conta il numero di bit 1 (BITSUM), 6-11Converti caratteri ASCII in cifre esadecimali

(ATH), 6-4Converti cifre esadecimali in caratteri ASCII

(HTA), 6-6Converti da cifra esadecimale in modello bit per

display a sette segmenti (SEG), 6-2

Converti da numero in scala in numero intero(UNSCALE), 6-14

Crea complemento a dieci (BCDCPL), 6-10Leggi posizione del primo bit 1 cominciando

dal valore più basso (ENCO), 6-8Riporta valori in scala (SCALE), 6-12Scrivi in una parola il valore binario di un bit

data la sua posizione (DECO), 6-9Converti caratteri ASCII in cifre esadecimali

(ATH), 6-4Converti cifre esadecimali in caratteri ASCII

(HTA), 6-6Converti da cifra esadecimale in modello bit per

display a sette segmenti (SEG), 6-2Converti da numero in scala in numero intero (UN-

SCALE), 6-14Copia dato dalla tabella (TBL_WRD), 2-13Copiare funzioni (FC) e blocchi funzionali (FB), iiiCrea complemento a dieci (BCDCPL), 6-10

DDa tabella di origine a tabella di destinazione

(TBL_TBL), 2-19Deviazione standard (DEV), 7-2Drum mascherabile a evento (DRUM), 5-10

EEsegui operazione in tabella (TBL), 2-11

FFunzione e blocchi funzionali di temporizzazione

Allarme a tempo con controllo (DCAT), 5-4Allarme a tempo per controllo motori (MCAT),

5-7Drum mascherabile a evento (DRUM), 5-10Temporizzatore software per ritardo a inserzione

con memoria (TONR), 5-2Funzione e blocco funzionale di spostamento

Impacchetta e distribuisci dati (PACK), 4-4Sposta un blocco dati con indirizzamento indi-

retto (IBLKMOV), 4-2

Page 102: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Funzione matematica in virgola mobile, Deviazionestandard (DEV), 7-2

Funzioni (FC)copiare, iiielenco, vi

Funzioni di combinazione a bitImposta direttamente stato delle uscite com-

prese nel campo (SETI), 1-8Imposta stato delle uscite comprese nel campo

(SET), 1-6Resetta direttamente stato delle uscite comprese

nel campo (RSETI), 1-4Resetta stato delle uscite comprese nel campo

(RSET), 1-2Funzioni di scorrimento

Inserisci bit nel registro di scorrimento (SHRB),3-4

Inserisci e sposta dati nel registro di scorrimento(WSR), 3-2

Funzioni e blocco funzionale di conversioneAlgoritmo Lead/Lag (LEAD_LAG), 6-16Conta il numero di bit 1 (BITSUM), 6-11Converti caratteri ASCII in cifre esadecimali

(ATH), 6-4Converti cifre esadecimali in caratteri ASCII

(HTA), 6-6Converti da cifra esadecimale in modello bit per

display a sette segmenti (SEG), 6-2Converti da numero in scala in numero intero

(UNSCALE), 6-14Crea complemento a dieci (BCDCPL), 6-10Leggi posizione del primo bit 1 cominciando

dal valore più basso (ENCO), 6-8Riporta valori in scala (SCALE), 6-12Scrivi in una parola il valore binario di un bit

data la sua posizione (DECO), 6-9Funzioni tabellari

Aggiungi dati alla tabella (ATT), 2-2Combina e memorizza logicamente il valore

con l’elemento della tabella (WRD_TBL),2-15

Copia dato dalla tabella (TBL_WRD), 2-13Da tabella di origine a tabella di destinazione

(TBL_TBL), 2-19Esegui operazione in tabella (TBL), 2-11Restituisci primo dato immesso in tabella

(FIFO), 2-4Ricerca dato in tabella (TBL_FIND), 2-6Tabelle con dati correlati (CDT), 2-17Visualizza ultimo dato immesso in tabella

(LIFO), 2-9

IImpacchetta e distribuisci dati (PACK), 4-4Imposta direttamente stato delle uscite comprese

nel campo (SETI), 1-8Imposta stato delle uscite comprese nel campo

(SET), 1-6Inserisci bit nel registro di scorrimento (SHRB), 3-4Inserisci e sposta dati nel registro di scorrimento

(WSR), 3-2

LLeggi posizione del primo bit 1 cominciando dal

valore più basso (ENCO), 6-8

MMatematica in virgola mobile, Deviazione standard

(DEV), 7-2

RResetta direttamente stato delle uscite comprese nel

campo (RSETI), 1-4Resetta stato delle uscite comprese nel campo

(RSET), 1-2Restituisci primo dati immesso in tabella (FIFO),

2-4Ricerca dato in tabella (TBL_FIND), 2-6Riporta valori in scala (SCALE), 6-12

SScorrimento

Inserisci bit nel registro di scorrimento (SHRB),3-4

Inserisci e sposta dati nel registro di scorrimento(WSR), 3-2

Scrivi in una parola il valore binario di un bit datala sua posizione (DECO), 6-9

Sposta un blocco dati con indirizzamento indiretto(IBLKMOV), 4-2

SpostamentoImpacchetta e distribuisci dati (PACK), 4-4Sposta un blocco dati con indirizzamento indi-

retto (IBLKMOV), 4-2

Indice analitico

Page 103: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

Indice-3Software di sistema per S7-300 e S7-400 Funzioni standard, parte 2A5E00066870-03

TTabella

Aggiungi dati alla tabella (ATT), 2-2Combina e memorizza logicamente il valore

con l’elemento della tabella (WRD_TBL),2-15

Copia dato dalla tabella (TBL_WRD), 2-13Da tabella di origine a tabella di destinazione

(TBL_TBL), 2-19Esegui operazione in tabella (TBL), 2-11Restituisci prima dato immesso in tabella

(FIFO), 2-4Ricerca dato in tabella (TBL_FIND), 2-6Tabelle con dati correlati (CDT), 2-17Visualizza ultimo dato immesso in tabella

(LIFO), 2-9

Tabelle con dati correlati (CDT), 2-17Temporizzatore software per ritardo a inserzione

con memoria (TONR), 5-2Temporizzazione

Allarme a tempo con controllo (DCAT), 5-4Allarme a tempo per controllo motori (MCAT),

5-7Drum mascherabile a evento (DRUM), 5-10Temporizzatore software per ritardo a inserzione

con memoria (TONR), 5-2

VVisualizza ultimo dato immesso in tabella (LIFO),

2-9

Indice analitico

Page 104: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Indice analitico

Page 105: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

Mittente:

Nome:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Funzione: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Ditta: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Via: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

C.A.P.:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Città: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Paese:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Telefono: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Indicare il corrispondente settore industriale:

❒ Industria automobilistica

❒ Industria chimica

❒ Industria elettrotecnica

❒ Industria alimentare

❒ Tecnica di controllo e strumentazione

❒ Industria meccanica

❒ Petrolchimica

❒ Industria farmaceutica

❒ Industria delle materie plastiche

❒ Industria cartaria

❒ Industria tessile

❒ Impresa di trasporti

❒ Altre _ _ _ _ _ _ _ _ _ _ _

Siemens AG

A&D AS E 81

Oestliche Rheinbrueckenstr. 50

D-76181 Karlsruhe

Repubblica federale di Germania

Page 106: Standard Software S7-300/400, Teil 2 - extras.springer.comextras.springer.com/2010/978-3-642-12014-5/CD_2/_Manuals/Italiano... · prima volta un linguaggio, è consigliabile leggere

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

A5E00066870-03

Se avete riscontrato dei problemi di ordine pratico, Vi preghiamo di delucidarli nelleseguenti righe:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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 sevorreste 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 dareuna 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?