visualizza l'elenco degli articoli

WinCC -- Progettazione e programmazione della comunicazione -- Comunicazione verso S7, utilizzo di AR_SEND veloce  
Come si può con SFB37 (AR_SEND) realizzare una archiviazione comandata dal processo per variabili di processo in WinCC? 
Come si utilizza il SFB37 (AR_SEND), per archiviare valori di processo in archivi del WinCC Tag Logging con controllo del processo? 
Come si possono ottenere in WinCC Tag Logging cicli di archiviazione inferiori a 500 ms? 
Come si può riconoscere che WinCC ha ricevuto dati da AR_SEND (SFB37)? 
Dove vengono archiviati i dati che vengono trasferiti da AR_SEND (SFB37)? 
Come si può garantire che le variabili in AR_SEND (SFB37) abbiano lo stesso time stamp? 

Come si può con SFB37 (AR_SEND) realizzare una archiviazione comandata dal processo per variabili di processo in WinCC?Vai all'inizio
Numero di ordinazione:

Istruzioni
Questo articolo mostra come si può impiegare SFB37 (AR_SEND), per trasferire, su comando del processo, un valore di processo nell'archivio dei valori di processo di WinCC. Questo articolo segue il modo di procedere descritto nell'articolo 23629327.
 

N.

Modo di procedere

1

Chiarimento del formato dati dei dati da archiviare
L'archiviazione tramite il blocco AR_SEND supporta diverse varianti in riferimento alla struttura dei dati da trasferire. Definire un possibile formato dei dati.
Una descrizione dettagliata sulla struttura dei blocchi di dati da trasferire si trova nella Guida in linea di WinCC sotto "WinCC Information System > Comunicazione > SIMATIC S7 Protocol Suite > Funzioni speciali > Scambio dati con il blocco funzionale S7 AR_SEND"

Per questo esempio nel quale viene trasferito un valore di una variabile di processo, è stato scelto il seguente formato.

Header Type (INT := 1)

Year

Month

Day

Hours

Minutes

Seconds

1/10s

1/100s

1/1000s

Weekday

Cycle (DINT := 1)

Unit (Type) (BYTE := B#16#4)

Unit (Range) (BYTE := B#16#1)

AR_ID-Subnumber (INT := 0)

Process data - data type (INT := 5)

Number of process values (INT := 1)

Process value (REAL)

 

 

 

 

Descrizione dell'occupazione degli elementi della struttura dati:

  • Header Type = 1
    header con time stamp, ma senza AR_ID-subnumber
  • Date and Time (Year, Month, Day, Hours, Minutes, Seconds, ...)
    il time stamp durante la runtime viene riempito con il tempo di sistema attuale.
  • Cycle= 1
    i valori di processo vengono letti in modo equidistante. Il punto di partenza è indicato nel time stamp dell'intestazione ed è tassativamente necessario. Per l'intervallo di tempo tra i valori di processo valgono le unità di tempo di unit (range) ed il fattore "Cycle".
  • Unit (Type)= 4
    per il valore di processo vale il time stamp registrato nell'intestazione
  • Unit (Range)= 1
    riservato
  • AR_ID-Subnumber= 1
    Stabilisce la corrispondenza tra valore di processo AS e variabile di archivio di WinCC.
  • Process data - data type= 5
    tipo dati S7 = REAL
    tipo dati WinCC = float
  • Number of process values = 1
    viene trasferito un solo valore di processo
  • Process value
    durante la runtime il valore di processo viene riempito con il valore attuale.

2

Progettazione del blocco di trasmissione AR_SEND nel progetto STEP7
Per questo esempio è stata creato un blocco funzionale (FB), che realizza solo la funzionalità centrale dello scambio dati tramite il blocco AR_SEND. La struttura definita nel passo 1 viene riempita con valori e trasferita al blocco AR_SEND per "l'invio". Il richiamo dell'SFB37 (AR_SEND) avviene come multistanza. Gli ingressi ed uscite rilevanti del blocco AR_SEND vengono portati all'interfaccia dell’FB appena creato. In pratica può succedere, in funzione del caso di impiego, che debbano essere programmate altre funzionalità, p. es.:

  • per garantire la consistenza dei dati nella trasmissione, i dati durante la trasferimento non possono essere modificati. Per esempio i dati dell'area di trasmissione per questo scopo possono essere nuovamente scritti dopo che l'uscita "DONE" del blocco AR_SEND ha il valore "1".
  • Per limitare il carico sulla comunicazione, è possibile trasferire i dati a WinCC se ha avuto luogo una modifica del valore di processo. Si potrebbe inoltre pensare di raccogliere i dati di processo sulla base della modifica del valore nella struttura da trasferire e avviare la trasmissione solo dopo un evento da definire. Per esempio i dati potrebbero essere trasmessi solo dopo che è trascorso un tempo massimo opp. in caso di superamento di una modifica di valore definita (isteresi).
  • Poiché il blocco AR_SEND può essere richiamato solo un numero limitato di volte all'interno del programma S7, in caso di un gran numero di valori di misura da archiviare, si dovrebbe scegliere un'altra variante del trasferimento dati tramite il blocco AR_SEND. All'interno di un blocco di dati si possono trasferire anche vale più valori di punti di misura diversi.

Ulteriori avvertenze

  1. Il blocco è stato creato nel linguaggio SCL. Il modo di procedere in un altro linguaggio (AWL) è identico.
  2. La struttura dati di dati da trasferire è stata definita come UDT ed utilizzata nell'interfaccia dell'FB.


    Figura 01 

    Sul parametro LEN del blocco AR_SEND viene parametrizzata la lunghezza del blocco di dati da trasferire. Per rilevare la lunghezza del campo dati da trasferire, si può aprire l'UDT direttamente dalla cartella dei blocchi del programma STEP7. Nell'editor AWL viene visualizzata nell'ultima riga la lunghezza della struttura (UDT) in byte.


    Figura 02 
     
  3. L'ingresso AR_ID del blocco AR_SEND viene portato all'esterno e vengono assegnati gli attributi di sistema S7_server:='alarm_archiv' e S7_a_type:='ar_send'. In questo modo lo STEP7 nell'inserimento dell’FB nel programma assegna un AR_ID univoco e progressivo. Le seguenti due figure mostrano l'interfaccia del blocco per il linguaggio di stesura SCL e AWL.
     

SCL

AWL


Figura 03


Figura 04

  1. Le seguenti due figure mostrano una sezione di programma del blocco per SCL e AWL.
     

CFC

AWL


Figura 05


Figura 06

  1. Se si utilizza il blocco del programma STEP7, si può rilevare il tempo di sistema attuale tramite SFC1 (READCLK Read System Clock) e depositarlo in un blocco dati globale. Questo dato può essere collegato con l'ingresso "TimeStamp" del blocco.

Il blocco può essere scaricato come sorgente SCL e AWL.

WinCC_ArSendOnePV.zip ( 3 KB )

Tramite Copia/Incolla si può inserire il corrispondente sorgente nell'editor SCL opp. AWL. Per compilare con successo questo sorgente, si dovrebbero precedentemente definire nella tabella dei simbolici i nomi per lo UDT e l'FB.


Figura 07

3

Progettazione dell'archiviazione comandata dal processo in WinCC
La progettazione di questo passo è stata già dettagliatamente descritta dell'articolo 23629327 indicato in alto opp. nella Guida in linea di WinCC. Per completezza vengono elencati ancora una volta i passi più importanti:

  • WinCC-Tag Manager: creazione di connessione nella SIMATIC S7 Protocol Suite
  • WinCC-Tag Manager: creazione di variabile di dati grezzi del tipo "Accoppiamento di dati d'archivio"
  • WinCC-Tag Logging: Creazione di variabile d'archivio pilotata dal processo

Come si utilizza il SFB37 (AR_SEND), per archiviare valori di processo in archivi del WinCC Tag Logging con controllo del processo?Vai all'inizio
Numero di ordinazione:

Istruzioni
SFB37 (AR_SEND) consente di trasmettere uno o più valori di processo con controllo del processo nell'archivio del WinCC-Tag Logging. A questo scopo i valori di processo vengono trasmessi con le relative data e ora in un'area dati corrispondente e trasferiti al blocco AR_SEND. Al verificarsi di un evento definito dall'utente il blocco AR_SEND invia i dati di archivio presenti in uno o più blocchi di dati a WinCC. I dati grezzi ricevuti vengono registrati da WinCC nell'archivio corrispondente. Per l'interpretazione dei dati grezzi WinCC utilizza la DLL di normalizzazione "nrms7pmc.nll". Per consentire una corretta interpretazione dei dati di archivio da parte delle funzioni della DLL di normalizzazione, i dati devono essere predisposti prima dell'invio secondo il formato dei dati richiesto dalla DLL di normalizzazione. La pagina seguente mostra una panoramica dell'archiviazione con controllo del processo:


Figura 01

Avvertenze

  • La DLL di normalizzazione non esegue alcuna verifica circa la correttezza della sequenza temporale dei dati. Questo significa che con il blocco AR_SEND anche i "vecchi" valori di processo possono essere archiviati, anche se nell'archivio sono già presenti dati con una data e un'ora più recenti.
  • Le variabili di archivio con controllo del processo vengono memorizzate di default nell'archivio "TagLoggingFast" (v. anche articolo con ID 21738144). Considerare le impostazioni per le dimensioni massime e per il periodo di tempo dei segmenti di archiviazione o dell'intero archivio. Le impostazioni a questo riguardo vengono eseguite nell'Editor Tag Logging in "Archive Configuration".

Per configurare l'archiviazione con controllo del processo mediante AR_SEND, procedere come segue:
 
N. Procedura
1 Chiarimento del formato dei dati, dei dati da archiviare
La DLL di normalizzazione per il WinCC Tag Logging "nrms7pmc.nll" definisce formati di dati differenti per i diversi casi di applicazione. Pertanto nel caso di una procedura di invio AR_SEND i dati vengono inviati da una o più variabili di processo. Per una variabile di processo possono essere trasmessi uno o più valori con data e ora differenti. La DLL di normalizzazione di WinCC differenzia metodi diversi per quanto riguarda la stampa di data/ora:
  • valori di processo con intervalli temporali equidistanti in caso di preimpostazione di un valore temporale iniziale
  • valori di processo con una data e un'ora specifiche per ogni valore
  • valori di processo con relative differenze temporali rispetto ad valore di tempo iniziale

Una descrizione dettagliata della struttura del blocco di dati da trasmettere è disponibile nella guida online di WinCC in "WinCC Information System > Communication > SIMATIC S7 Protocol Suite > Special functions > Data exchange with the S7 function block AR_SEND".
La figura 02 mostra la struttura teorica del blocco di dati, se più valori di processo dipendenti dal tempo vengono trasmessi con la relativa data e ora ad una variabile di processo (variabile di archivio).


Figura 02

2 Progettazione del blocco di spedizione AR_SEND nel progetto STEP 7
La figura 03 mostra il blocco AR_SEND, quando viene inserito dalla libreria dei blocchi in un piano CFC. In questo caso non è interconnesso, poiché questa figura serve solo per visualizzare gli ingressi e le uscite disponibili nel blocco. La figura 04 mostra il codice AWL corrispondente.


Figura 03
 


Bild 04

La progettazione di AR_SEND in STEP 7 si compone delle seguenti fasi:

  • Creare l'area dati, che deve accogliere i dati da trasmettere. Questa area dati deve corrispondere per quanto concerne la sua struttura ad un formato, che viene supportato dalla DLL di normalizzazione di WinCC. Questa area dati viene trasmessa al blocco AR_SEND come puntatore ANY all'ingresso "SD_1" (ANY). All'ingresso "LEN"(WORD) deve essere specificata in modo esadecimale la lunghezza dell'area dati da trasmettere in byte.

    Avvertenza
    L'indicazione della lunghezza contenuta nel puntatore ANY non viene utilizzata dal blocco AR_SEND.

    Nell'installazione del blocco AR_SEND, l'"AR_ID"(DWORD) viene assegnato automaticamente in modo univoco e non può essere modificato. Per l'ingresso "ID"(WORD) viene assegnato in fase di installazione nel CFC come impostazione predefinita il valore "W#16#EEEE", questo valore non può essere modificato. Nell'installazione del blocco AR_SEND in una sorgente AWL o SCL, è necessario assegnare manualmente questo valore.
     
  • Programmare una sezione del programma, per riempire l'area dati da trasmettere per il tempo di esecuzione con i valori di processo. Dopo aver riempito completamente l'area dati con valori validi, la procedura di invio può essere attivata attivando un fronte di salita nell'ingresso di comando "REQ"(BOOL). L'ingresso di comando "R"(BOOL) serve per interrompere un job di trasmissione che si trova in elaborazione. L'uscita "DONE"(BOOL) indica che la procedura di invio è terminata. Se durante l'elaborazione si verifica un errore, questo viene visualizzato nell'uscita"ERROR"(BOOL). Un'informazione più precisa relativa all'errore è contenuta in caso di errore nell'uscita "STATUS"(WORD).

Informazioni relative al blocco funzionale S7 SFB37 (AR_SEND) si trovano nel manuale di riferimento "Software di sistema per S7-300/400 Funzioni standard e di sistema" nell'articolo con ID 1214574.

Avvertenza
In questo articolo si rinuncia intenzionalmente ad una descrizione dell'interconnessione diretta del blocco SFB37 (AR_SEND). Si dovrebbe creare un proprio blocco funzionale (FB) specifico dell'applicazione, che soddisfa i requisiti concreti per la trasmissione desiderata.

I vantaggi per l'impiego di un blocco funzionale specifico per l'applicazione per l'archiviazione con AR_SEND sono:

  • il blocco deve essere creato e testato solo una volta. Poi lo si può impiegare più volte e avere quindi un vantaggio considerevole in termini di tempo, poiché l'interconnessione effettiva dell'AR_SEND viene eseguita solo una volta. L'impegno in termini di tempo per l'interconnessione del blocco AR_SEND può eventualmente essere elevato. Ad esempio può essere necessario raccogliere i dati di parecchi valori di processo in un determinato periodo di tempo e trasmetterli quindi chiusi in un telegramma AR_SEND. Se l'elaborazione del telegramma non è ancora conclusa, può essere necessario continuare a raccogliere i dati di processo. Una valutazione delle informazioni sugli errori nell'elaborazione dei blocchi è sempre utile.
  • L'utilizzo dei dati di istanza dell'FB evita errori nella progettazione (per es. doppia occupazione di celle di memoria).
  • L'interconnessione dei dati da archiviare può essere eseguita adattata nella sorgente AWL.

L'area dati da trasmettere può essere creata all'interno del DB di istanza. L'SFB37 (AR_SEND) può essere richiamato come istanza multipla. Gli ingressi e le uscite rilevanti del blocco AR_SEND dovrebbero essere eseguiti sull'interfaccia dell'FB di nuova creazione. Assicurarsi di condurre l'ingresso AR_ID del blocco AR_SEND verso l'esterno e di assegnare gli attributi del sistema S7_server:='alarm_archiv' eS7_a_type:='ar_send' . In tal modo STEP 7 assegna un AR_ID univoco in caso di installazione dell'FB nel programma. L'articolo 23629424 riporta un esempio concreto in AWL e SCL per l'utilizzo dell'SFB37 (AR_SEND).

3 Progettazione dell'archiviazione con controllo del processo in WinCC
La progettazione in WinCC si compone delle seguenti fasi:
  • Gestione variabili WinCC: Creazione di una connessione in SIMATIC S7 Protocol Suite
    Nella gestione delle variabili WinCC in un'unità canale (es. MPI o Industrial Ethernet) della SIMATIC S7 Protocol Suite progettare una connessione, che viene impiegata per la comunicazione con il controller S7.

    Avvertenza

    Assicurarsi di assegnare i parametri corretti, in particolare lo "Slot Number" corretto nella finestra di dialogo "Connection properties".
     
  • Gestione variabili WinCC: Creazione di una variabile di dati grezzi del tipo "Archive Data Link"
    Nella connessione S7 utilizzata per la trasmissione di dati creare una variabile del tipo di dati "Raw Data Type". Il nome deve essere lungo al massimo 24 caratteri, poiché questo nome eventualmente può essere un componente del nome della variabile di archivio.


    Figura 05

    Il pulsante "Select" consente di aprire la finestra di dialogo "Address properties" . Selezionare la casella di selezione "Archive Data Link" nella finestra di dialogo "Address properties" delle variabili di dati grezzi nell'area "Raw Data Type".


    Figura 06
     
  • WinCC-Tag Logging: Creazione di una variabile di archivio con controllo del processo
    Aprire il Tag Logging. In un archivio dei valori di processo creare una variabile di archivio con controllo del processo. Utilizzare quindi il menu contestuale "New Process Controlled Tag..." Con il pulsante "Select" aprire una finestra di dialogo di selezione, per selezionare la variabile di dati grezzi, che deve servire a garantire le variabili di archivio. Nel campo "Archive tag name" è possibile assegnare un nome che si discosti dal nome interno delle variabili di archivio. Nell'area "Normalization DLL" si deve selezionare "nrms7pmc.nll". Questo valore è impostato di default.


    Figura 07

    Nell'area "Normalization DLL" con il pulsante "Options" è necessario assegnare l'AR_ID corrispondente ed eventualmente AR_ID-Subnumber.


    Figura 08

    Avvertenza
    Nel campo di immissione "AR_ID" è necessario registrare il numero che nel relativo blocco AR_SEND è stato assegnato nel programma STEP 7 al parametro "AR_ID".
    Se con il blocco AR_SEND vengono inviati dati di processo per più variabili di archivio, il sottonumero AR_ID viene utilizzato per assegnare alle diverse variabili di archivio i dati di processo per più variabili di processo all'interno di un telegramma. Il sottonumero AR_ID viene assegnato dal programmatore del richiamo del blocco AR_SEND. Se in un richiamo del blocco AR_SEND vengono trasmesse più variabili di processo, nell'area di dati da trasmettere assieme al sottonumero AR_ID relativo al valore di processo vengono trasmessi i valori di processo effettivi. A questo punto si presuppone che si conosca l'assegnazione dei sottonumeri AR_ID alle variabili di processo o di archivio di un richiamo AR_SEND.

Ricerca complementare
Upgrade, update, GMP, Pharma, Life Science, validazione, FDA 21 CFR Parte 11

Come si possono ottenere in WinCC Tag Logging cicli di archiviazione inferiori a 500 ms?Vai all'inizio
Numero di ordinazione:

Istruzioni
In WinCC TagLogging il più piccolo ciclo di archiviazione vale 500 ms. Non c'è alcuna possibilità di ridurre questo ciclo di archiviazione tramite impostazioni nel WinCC Tag Logging. Cicli di archiviazione più brevi si possono ottenere tramite Archiviazione comandata da processo.

Per questo ci sono le seguenti possibilità.

  • "AR_SEND" (SFB37)
    In una CPU S7-400 si può impiegare il blocco "AR_SEND" (SFB37) per l'archiviazione comandata da processo in WinCC. Con questo metodo vengono raccolti i dati di archivio nel controllore per poi trasferirli come dati grezzi in WinCC. Una DLL di normazione interpreta i dati inviati e li registra nell'archivio di WinCC. Il blocco AR_SEND per questo deve essere opportunamente interconnesso nel controllore. In WinCC è necessaria solo una parametrizzazione ma nessuna programmazione. Per l'impiego dello "AR_SEND" tenere conto anche dell’articolo con ID 23629327 e dell’articolo con ID 23629424.
  • ODK per l'elaborazione specifica utente dei dati grezzi
    Anche con questo metodo vengono raccolti i dati nel controllore per poi trasferirli come dati grezzi in WinCC. I dati vengono elaborati tramite una DLL di normazione e poi archiviati. Per i controllori più piccoli (S7-300) il blocco "AR_SEND" (SFB37) non è disponibile, per cui è necessario programmare in proprio questa funzionalità. L'opzione WinCC "WinCC Open Development Kit" (ODK) fornisce informazioni su come si devono elaborare i dati grezzi ricevuti in WinCC con l'aiuto di una DLL di normazione.

Ricerca
21738145

Come si può riconoscere che WinCC ha ricevuto dati da AR_SEND (SFB37)?Vai all'inizio
Numero di ordinazione:


Guida
Se i dati sono stati trasferiti con successo a WinCC, viene impostato a"1"  il parametro "DONE" del blocco AR_SEND. In WinCC non c'è alcuna possibilità di verificare quando i dati sono stati memorizzati con successo nell'archivio.

Avvertenza
Se i dati sono dotati di un proprio time stamp in AR_SEND, questi vengono anche memorizzati in WinCC nella corretta sequenza temporale. Informazioni dettagliate sulla parametrizzazione del blocco AR_SEND si trovano nel WinCC Information System (WinCC online help) sotto la voce "AR_SEND - Struttura dei parametri di un blocco di dati" . Anche qui tenere conto degli esempi presentati.


Dove vengono archiviati i dati che vengono trasferiti da AR_SEND (SFB37)?Vai all'inizio
Numero di ordinazione:


Guida
Valori di processo che vengono trasferiti tramite il blocco AR_SEND, vengono memorizzati nell'archivio WinCC "TagLogging Fast". Ulteriori informazioni si trovano nel WinCC Information System (WinCC Online help) sotto la voce "Memorizzazione di valori di processo". 


Come si può garantire che le variabili in AR_SEND (SFB37) abbiano lo stesso time stamp?Vai all'inizio
Numero di ordinazione:


Guida
Per dotare dello stesso time stamp i dati nel blocco funzionale AR_SEND, il blocco AR_SEND (parametro unità (Typ)) devono essere parametrizzati corrispondentemente. Informazioni dettagliate sulla parametrizzazione del blocco AR_SEND si trovano nel WinCC Information System (WinCC Online help) sotto la voce "AR_SEND - Struttura e parametri di un blocco di dati" . Tenere conto degli esempi in essa elencati.


 Articolo con ID:31526191   Data:2012-06-08 
Questo articoloè stato utilenon è stato utile                                 






























related links
Come si può definire in WinCC qu ...
SIMATIC HMI WinCC V7.0 SP1 MDM - ...
Quali possibilità esistono in Wi ...
Perché WinCC Online Trend Contro ...
WinCC V6.2 HMI Manual Collection
mySupport
My Documentation Manager 
Newsletter 
CAx-Download-Manager 
Support Request
Vai all'articolo
Stampa
Creazione PDF 
Invia l'articolo
QuickLinks
Strumento di compatibilità 
Aiuto
Aiuto on-line
Guided Tour