×
Siemens Industry Online Support
Siemens AG
Tipo di articolo: Esempio di applicazione ID articolo: 16772536, Data articolo: 20/12/2003
(4)
Valuta

Ricerca del valore minimo/massimo (indicatore di scarto) e calcolo del valore medio

  • Articolo
  • Riguarda prodotto/i

DOMANDA
Come si può rilevare il valore minimo/massimo dei valori contenuti in un blocco dati?

RISPOSTA
La ricerca del valore minimo/massimo all'interno di un blocco dati (indicatore di scarto) può essere realizzato con la programmazione di un loop. L'esempio di programma allegato consente la ricerca del valore minimo e del valore massimo dei valori contenuti in un blocco dati e calcola il valore medio.

Descrizione della funzione
La ricerca del valore minimo/valore massimo, incluso il calcolo del valore medio, è realizzata come funzione. Tramite un parametro IN si definisce in quale blocco dati deve avvenire la ricerca. Il codice ed il tipo dati definisce di quale tipo dati sono i valori nel blocco dati.

La ricerca avviene in un loop. Il numero di esecuzioni del loop viene calcolato dal numero dei byte del DB e dal codice del tipo dati. Il numero dei byte del DB viene rilevato tramite la funzione di sistema SFC 24.

La funzione presuppone che nel DB si trovino solo valori di un tipo dati. Il DB viene esaminato a partire dall'indirizzo 0 con l'ampiezza di passo del tipo dati. Contemporaneamente i valori vengono sommati e alla fine divisi per il numero dei valori (valore medio).

Se la lunghezza del DB non è compatibile con il tipo dati, allora il resto esistente (p. es. 2 byte per il tipo dati REAL) viene ignorato.
Se il DB è più piccolo di quanto sia lungo il tipo dati, allora viene emesso un errore di parametrizzazione. Questo succede anche se il DB non esiste (informazione che viene fornita dallo SFC 24).

Il valore medio viene emesso come valore REAL. I valori Min/Max sono memorizzati per tutti i tipi di dati in variabili del tipo dati DWORD. Viene mantenuto il tipo dati effettivo. Questo significa che i parametri OUT della funzione possono essere attribuiti a variabili con i corrispondenti tipi dati (senza funzione di conversione) (vedi l'esempio).

CALL "MinMax"
DBNumber:=3
DatatypeID:=1 // Identifier per INT
MinValue:=MD20
AverageValue:= #Average
MaxValue:=MD24
PAFE:=#Error

// da DWORD a INT
L MD 20
T #IntegerVariable_Min

L MD 24
T #IntegerVariable_Max

Descrizione dell'interfaccia della funzione FC 1 "MinMax"

Dichiarazione

Nome

Tipo

Descrizione

IN

DBNumber

INT

Numero del DB da esaminare

IN

DatatypeID

INT

Identificatore del tipo dati: 1=INT; 2=DINT; 3=REAL

OUT

MinValue

DWORD

Valore minimo presente nel DB

OUT

AverageValue

REAL

Valore medio calcolato sul numero dei valori

OUT

MaxValue

DWORD

Valore massimo presente nel DB

OUT

PAFE

BOOL

Errore di parametrizzazione

Avvertenza
I registri indirizzi non sono modificati dalla funzione.

1. Descrizione dell'esempio di programma
Nell'esempio di programma, "MinMax" viene richiamato in OB 1 tramite FC 1. Nell'esempio attuale si effettua la ricerca dei valori minimo/massimo nel DB 3. Il DB 3 contiene valori del tipo "INT".
Per ulteriori test il DB 4 è predisposto con valori del tipo DINT ed il DB 5 con valori del tipo "REAL", mentre i corrispondenti richiami di FC 1 in OB 1 sono disponibili come codice sorgente.
Con la tabella delle variabili è possibile osservare i parametri OUT della funzione, così come variare i valori nei DB.

Il download allegato contiene il progetto STEP7 con il blocco funzionale per il rilevamento di minimo/massimo e calcolo del valore medio, così come i blocchi dati predisposti e le tabelle delle variabili.

Min_Max.exe

Copiare il file "Min_Max.exe" in una directory separata ed avviarlo con un doppio clic. Il progetto STEP7 viene scompattato automaticamente con tutte le subdirectory corrispondenti. Poi si può aprirlo ed elaborarlo con il SIMATIC Manager.

Eseguibilità e ambiente di test
L'esempio è impiegabile in tutte le CPU del SIMATIC S7-300, S7-400 e WinAC.
Nella tabella seguente sono elencati i componenti con le quali è stato realizzato quest'articolo ed è stato verificato il funzionamento descritto.

Ambiente di test

Versione

Piattaforma PC

Pentium III 800 MHz, 264 MB

Sistema operativo

Windows XP

STEP 7

V5.2

CPU S7

CPU 315-2DP
(6ES7315-2AF03-0AB0)




Avvertenze di sicurezza
Per proteggere l’infrastruttura tecnica, i sistemi, i macchinari e le reti da minacce cyber, è necessario implementare (e salvaguardare continuamente) un concetto IT Security complessivo che sia conforme agli standard della tecnica correnti. I prodotti e le soluzioni di Siemens formano solo una parte di tale concetto. Ulteriori informazioni sulla Cyber Security si trovano sotto
https://www.siemens.com/cybersecurity#Ouraspiration.
Valuta articolo
nessuna valutazione
Richieste e feedback
Come vuoi procedere?
Avvertenza: il feedback si riferisce sempre all'articolo/al prodotto attuale. Il tuo messaggio verrà inviato ai redattori dell'Online Support. Se il tuo feedback lo richiede riceverai una risposta entro qualche giorno. Se non sono necessari ulteriori chiarimenti non ti invieremo alcun messaggio.