DOMANDA
Con quale scopo e come si possono utilizzare i blocchi che si
trovano nella "Standard library" nella cartella dei programmi
"miscellaneous blocks"?
RISPOSTA
Nella cartella di programmi "miscellaneous blocks"si trovano i
blocchi seguenti.
|
Blocco |
Nome simbolico |
Funzione |
|
FB60 |
SET_SW |
L’FB60 supporta nella commutazione ora
legale/ora solare le CPU che non dispongono dello Stato del
tempo. Per questo scopo esso sposta l'orologio della CPU in
corrispondenza al momento attuale e alle regole di commutazione del
DB di regolazione. |
|
FB61 |
SET_SW_S |
Lo FB61 supporta nella commutazione ora
legale/ora solare le CPU che dispongono nello Stato del tempo. Per
questo scopo esso sposta lo Stato del tempo in corrispondenza al
momento attuale e alle regole di commutazione del DB di
regolazione. |
|
FC60 |
LOC_TIME |
Questo FC legge lo Stato del tempo opp. lo
stato della CPU e calcola da questo il tempo locale. Esso può
quindi essere impiegato correttamente solo sulle CPU che dispongono
dello Stato del tempo. |
|
FC61 |
BT_LT |
Questo FC calcola il tempo locale rispetto al
tempo base assegnato in ingresso. |
|
FC62 |
LT_BT |
Questo FC calcola il tempo base rispetto al
tempo locale assegnato in ingresso. |
|
FC63 |
S_LTINT |
Questo FC imposta l'interrupt di tempo
desiderato al momento assegnato. Questo momento viene indicato nel
tempo locale. |
|
UDT60 |
WS_RULES |
Tipo dati per il DB di
regolazione |
|
FB62 |
TIMESTMP |
Lo FB TIMESTMP trasferisce le
segnalazioni dotate di time stamp di una IM 153-2 nel suo DB di
istanza dove si trovano i dati per una elaborazione successiva
tramite il programma applicativo. |
Tabella 1 Panoramica dei blocchi e delle loro funzioni
FB60 (SET_SW) Lo FB60 (SET_SW) può essere utilizzato
nelle CPU che non dispongono dello Stato del tempo e dispongono di
SFC100 (SET_CLCKS) (le CPU con lo Stato del tempo utilizzano lo
FB61 SET_SW_S).
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
REQ |
INPUT |
BOOL |
Comando della commutazione |
|
WS_DAT |
INPUT |
BLOCK_DB |
Informazioni sul fuso orario e sulla
commutazione ora legale /ora solare (DB di
regolazione) |
|
OB_NR |
INPUT |
INT |
Numero degli interrupt di tempo da
utilizzare |
|
STATUS |
OUTPUT |
INT |
Codice di errore |
|
ISSUMMER |
OUTPUT |
BOOL |
1 = è ora legale |
|
ANN_1 |
OUTPUT |
BOOL |
1 = avviso di una
commutazione |
Tabella 2 Lista parametri di FB60 (SET_SW)
|
STATO |
Significato |
|
0 |
Nessun errore |
|
8xyy |
Codice di errore generico dello
SFC51 |
|
8082 |
Dati non validi in WS_DAT |
|
8083 |
L'ora di avviso solare si trova prima della
legale |
|
8090 |
OB_NR. non ammesso (ammessi solo interrupt di
tempo: OB10 | OB17, in funzione della CPU) |
|
80A2 |
OB_NR non ammesso: l'OB non è caricato nella
CPU |
|
80A3 |
L'OB non può essere
avviato |
Tabella 3 Segnalazioni di stato di FB60 (SET_SW)
Lo FB60 (SET_SW) viene richiamato in OB 1 ed in un OB 1x di
interrupt di tempo con la stessa istanza. All'ingresso WS_DAT viene
indicato il DB che contiene le regole per l'inizio e la fine
dell'ora legale. La funzione del blocco si basa sul diagramma del
tempo.
Figura 1 FB60 (SET_SW) - rappresentazione schematica del
funzionamento
Sono definiti quattro i punti di commutazione (SA, S,
WA, W). La loro posizione esatta dipende dalle regole
del DB di regolazione. Le ore di annuncio si trovano un'ora prima
dei punti di commutazione e segnalano l'imminente commutazione.
Con un fronte di salita sull'ingresso REQ viene inizializzata e
attivata la commutazione ora legale/ora solare, che rimane valida
fino a quando REQ=1. Per la commutazione del tempo l’FB
parametrizza e attiva l’OB di interrupt di tempo indicato con il
successivo momento di commutazione della modalità "una volta".
Dopodiché questo OB di interrupt di tempo prende in carico il
controllo: al momento opportuno esso modifica l'ora della CPU in
corrispondenza al momento di richiamo attuale e parametrizza/attiva
se stesso nuovamente con il successivo punto di commutazione.
Esempio
Se il tempo attuale si trova nella sezione (3), l’OB di interrupt
di tempo viene parametrizzato con il tempo di avvio WA ("Annuncio
ora solare"). Con il fronte di discesa su REQ la commutazione ora
legale/ora solare viene disattivata.
Spostamento dell’ora Uno spostamento dell'ora della
CPU (p. es. tramite PG) con FB SET_SW (REQ = 1) attivo è allora
consentita senza particolari misure addizionali se il tempo non
viene spostato oltre uno dei punti di commutazione.
Se nell'impostazione dell'ora viene saltato uno dei punti di
commutazione, la commutazione ora legale/ora solare deve essere
disattivata con REQ =0 prima dello spostamento ed essere nuovamente
avviata con REQ = 1 dopo lo spostamento.
Nell'impostazione dell'orologio della CPU fare attenzione che in
estate si imposta anche l'ora dell'ora legale.
FB61 (SET_SW_S)
Il modo di funzionamento dell'FB61 (SET_SW_S) ed il collegamento è
uguale a quello dello FB60 (SET_SW). L'unica differenza è che
l'FB61 (SET_SW_S) viene utilizzato con le CPU con lo Stato
dell'ora.
FC60 (LOC_TIME)
FC60 legge lo Stato dell'ora ed il tempo della CPU e calcola di
conseguenza l'ora locale. Esso quindi può essere utilizzato solo
con CPU con lo Stato dell'ora.
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
RET_VAL |
OUTPUT |
INT |
Codice di errore |
|
LT |
OUTPUT |
DATE_AND_TIME |
Ora locale (Local
Time) |
|
SUMMER |
OUTPUT |
BOOL |
Codice ora legale
(0: solare / 1: legale) |
Tabella 4 FC60 (LOC_TIME) - Lista parametri
|
RET_VAL |
LT |
SUMMER |
Descrizione |
|
0 |
Ora locale |
TRUE/FALSE |
Blocco eseguito senza errori |
|
1 |
Ora locale |
TRUE/FALSE |
Nessun errore, ma salto della
data |
|
8xyy |
DT#90-01-01-0:0:0 |
FALSE |
Codice di errore generico dello SFC
51 |
|
8091 |
DT#90-01-01-0:0:0 |
FALSE |
Manca Stato dell'ora |
Tabella 5 FC60 (LOC_TIME) - Valori di ritorno
Con l’aiuto dello SFC51 (RDSYSST) dallo Stato dell’ora della CPU
vengono letti l’ora base, il valore di correzione ed il segno del
valore di correzione. Errori dell’SFC51 portano alla chiusura del
blocco, le visualizzazioni di errore vengono trasferite a RET_VAL.
Se la CPU non ha alcuno Stato dell'ora valido, il blocco viene
concluso con errore. Nello Stato dell'ora della CPU sono depositati
il tempo base ed il fuso orario della singola località, un codice
di ora legale così come un codice per l'ora di annuncio. Questi
valori vengono aggiornati dalla CPU.
Dopo una lettura positiva dello Stato dell'ora, al tempo base
vengono aggiunti il fuso orario ed in estate l'ora legale e poi
essi sono emessi sull'uscita LT. L'uscita SUMMER prende in carico
dallo Stato dell'ora il valore dei bit ora legale/ora solare.
FC61 (BT_LT)
FC 61 calcola l'ora locale rispetto al tempo base assegnato in
ingresso.
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
BT |
INPUT |
DATE_AND_TIME |
Ora base |
|
WS_DAT |
INPUT |
BLOCK_DB |
Informazioni sul fuso orario e sulla
commutazione ora legale /ora solare (DB di
regolazione) |
|
RET_VAL |
OUTPUT |
INT |
Codice di errore |
|
LT |
OUTPUT |
DATE_AND_TIME |
Ora locale |
Tabella 6 FC61 (BT_LT) - Lista parametri
|
RET_VAL |
LT |
Descrizione |
|
0 |
Ora locale |
Blocco eseguito senza errore |
|
1 |
Ora locale |
Nessun errore, ma salto della
data |
|
8082 |
DT#90-01-01-0:0:0 |
Dati non validi nel blocco dati di
regolazione |
Tabella 7 FC61 (BT_LT) - Valori di ritorno
Il tempo base indicato sull'ingresso BT viene convertito nel
tempo locale tramite dati depositati in un DB e poi emesso
sull'uscita LT.
FC62 (LT_BT)
L'FC calcola il tempo base in funzione del tempo locale indicato
sull'ingresso.
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
LT |
INPUT |
DATE_AND_TIME |
Ora locale |
|
WS_DAT |
INPUT |
BLOCK_DB |
Informazioni sul fuso orario e sulla
commutazione ora legale /ora solare (DB di
regolazione) |
|
RET_VAL |
OUTPUT |
INT |
Codice di errore |
|
BT |
OUTPUT |
DATE_AND_TIME |
Ora base |
Tabella 8 Lista parametri di FC62 (LT_BT)
|
RET_VAL |
BT |
Descrizione |
|
0 |
Ora base |
Blocco eseguito senza errore |
|
1 |
Ora base |
Nessun errore, ma salto della
data |
|
2 |
Ora base |
Lo LT in ingresso si trova all'interno della
"doppia" ora |
|
3 |
Ora base |
Come 2, in più salto della data |
|
4 |
Ora base |
Lo LT si trova all'interno dell'ora
"vietata" |
|
5 |
Ora base |
Come 4, in più salto della data |
|
8082 |
DT#90-01-01-0:0:0 |
Dati non validi nel blocco dati di
regolazione |
Tabella 9 FC62 (LT_BT) - Valori di ritorno
Il tempo locale indicato sull'ingresso LT viene convertito nel
tempo base sulla base dei dati depositati in un DB e viene emesso
sull'uscita BT. Il DB contiene il numero in unità da 30 minuti con
le quali si differenziano il tempo base ed il tempo locale così
come la differenza tra ora legale e ora solare, anch'essa in unità
da 30 minuti (DB di regolazione). Se nell'effettuazione del calcolo
ha luogo un overflow della data, questo viene contrassegnato da un
valore di ritorno speciale.
"Ora vietata" Nella commutazione ora solare /ora
legale, il tempo locale viene spostato in avanti di 1 ora. Questo
significa però che l'ora che si trova in mezzo non viene percorsa.
Per un istante LT all'interno di questa ora durante l'ora legale
"pensa" l'FC62 (LT_BT). Questo viene segnalato con il valore di
ritorno 4 opp. 5.
"Ora doppia" Nella commutazione ora legale /ora solare
il tempo locale viene spostato all'indietro di 1 ora Questo
significa però che 1 ora viene percorsa 2 volte. (Per CET per
questo valgono le denominazioni 2A e 2B). Per un istante LT
all'interno di questa ora non è possibile una rappresentazione
univoca con riferimento il tempo base. Lo FC62 (LT_BT) riceve come
parametro ingresso un LT e prima della conversione in BT deve
decidere se il valore si trova nel periodo dell'ora legale o nel
periodo dell'ora solare. Nel caso in cui LT si trova all'interno
della doppia ora, lo LT viene interpretato come ora solare. Questo
viene segnalato con i valori di ritorno 2 opp. 3.
FC63 (S_LTINT)
Lo FC rende disponibile l'interrupt di tempo desiderato rispetto
all'istante indicato. Questo istante viene indicato in tempo locale
(DB di regolazione).
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
OB_NR |
INPUT |
INT |
N. dell'OB da avviare (ammesso 10 |
17) |
|
SDT |
INPUT |
DATE_AND_TIME |
Data e ora di avvio in ora
locale |
|
PERIOD |
INPUT |
WORD |
Periodo dal punto iniziale SDT a:
W#16#0000 = una volta
W#16#0201 = ogni minuto
W#16#0401 = ogni ora
W#16#1001 = giornalmente
W#16#1201 = settimanalmente
W#16#1401 = mensilmente
W#16#1801 = annualmente
W#16#2001 = fine mese |
|
WS_DAT |
OUTPUT |
BLOCK_DB |
Informazioni sul fuso orario così come sulla
commutazione ora solare/ora legale |
|
RET_VAL |
OUTPUT |
INT |
Codice di errore |
Tabella 10 FC63 (S_LTINT) - Lista parametri
|
RET_VAL |
Descrizione |
|
0 |
Blocco eseguito senza errori |
|
1 |
Nessun errore, ma salto della
data |
|
2 |
Lo LT in ingresso era all'interno della
"doppia" ora |
|
3 |
Come 2, in più salto della data |
|
4 |
Lo LT in ingresso era all'interno dell'ora
"vietata" |
|
5 |
Come 4, in più salto della data |
|
8082 |
Dati non validi del blocco dati di
regolazione |
|
8090 |
Parametro errato OB_NR |
|
8091 |
Parametro errato SDT |
|
8092 |
PERIOD errato |
|
80A1 |
Il momento di avvio impostato si trova nel
passato. |
|
80A2 |
OB non caricato |
|
80A3 |
OB non avviabile |
Tabella 11 FC63 (S_LTINT) - Valori di ritorno
Il tempo locale LT indicato in ingresso viene convertito nel
tempo base sulla base di regole depositate in un DB. Il DB contiene
il numero in unità da 30 minuti. Con il tempo base calcolato viene
parametrizzato e attivato l'OB di interrupt di tempo indicato. Se
nel calcolo si ha un overflow della data, questo viene
contrassegnato da un valore di ritorno speciale.
"Ora vietata" Nella commutazione ora solare /ora
legale, il tempo locale viene spostato di 1 ora. Questo significa
però che l'ora che si trova all'interno non viene percorsa. Per un
istante LT all'interno di questa ora "pensa" lo FC63 (S_LTINT) nel
periodo dell'ora legale. Questo viene segnalato con i valori di
ritorno (RET_VAL) 4 opp. 5.
"Ora doppia" Nella commutazione ora legale /ora solare
il tempo locale viene spostato all'indietro di 1 ora. Questo
significa però che questa ora viene percorsa 2 volte (per CET per
questo valgono le denominazioni 2A e 2B).
Per un istante LT all'interno di questa ora non è quindi possibile
una immagine univoca con riferimento al tempo base.
Lo FC63 (S_LTINT) riceve come parametro di ingresso un LT e prima
della conversione in BT deve decidere se il valore si trova nel
periodo dell'ora legale oppure dell'ora solare. Per il caso in cui
lo LT si trova all'interno dell'ora doppia, lo LT viene
interpretato come ora solare. Questo viene segnalato con i valori
di ritorno (RET_VAL) 2 opp. 3.
UDT60
Il sistema deve preparare in un DB alcune informazioni che
vengono analizzate nei diversi blocchi. Questo blocco dati viene
creato come DB del tipo UDT60 e in esso vengono registrati i valori
validi per la località del sistema (in ora locale!).
Esempio
|
Nome |
Tipo dati |
Valore |
Descrizione |
|
B2L |
STRUCT |
- |
Conversione Ora base<-> Ora locale e
"Impostazione allarme su Ora locale" |
|
S |
INT |
2 |
Offset Ora base -> Ora locale (30 min) in
inverno, ammesso -24 … +24 |
|
T |
INT |
2 |
Differenza ora solare e ora legale (30 min),
ammesso: 2 |
|
W2S |
STRUCT |
- |
Regola per ora solare -> ora legale.
Standard: ultima domenica di marzo alle 2:00 |
|
M |
BYTE |
B#16#3 |
Mese della commutazione |
|
W |
BYTE |
B#16#9 |
n-esimo comparire del giorno della settimana
(1= primo, 2= secondo,.., 9= ultimo) |
|
D |
BYTE |
B#16#1 |
Giorno della settimana (Domenica =
1) |
|
H |
BYTE |
B#16#2 |
Ora |
|
S2W |
STRUCT |
- |
Regola per ora legale -> ora solare.
Standard: ultima domenica di ottobre alle 3:00 |
|
M |
BYTE |
B#16#10 |
Mese della commutazione |
|
W |
BYTE |
B#16#9 |
n-esimo comparire del giorno della settimana
(1= primo, 2= secondo,.., 9= ultimo) |
|
D |
BYTE |
B#16#1 |
Giorno della settimana (Domenica =
1) |
|
H |
BYTE |
B#16#3 |
Ora |
Tabella 12 Configurazione di esempio del DB di regolazione
FB62 (TIMESTMP)
Lo FB62 (TIMESTMP) trasferisce le segnalazioni che sono state
generate dalla IM153-2 sulla base delle variazioni sugli
ingressi/uscite nel suo DB di istanza. In questo le segnalazioni
possono poi essere ulteriormente modificate ed elaborate dal
programma applicativo.
Lista parametri
|
Parametro |
Dichiarazione |
Tipo dati |
Descrizione |
|
LADDR |
INPUT |
INT |
Indirizzo logico (indirizzo di diagnostica)
della IM153-2 |
|
LADDR2 |
INPUT |
INT |
Indirizzo logico (indirizzo di diagnostica)
dello slot 2 della IM153-2 |
|
TIMECONV |
INPUT |
BOOL |
1= converte time stamp ISP in formato
S7-DT |
|
MSG_QTY |
OUTPUT |
INT |
Numero delle segnalazioni valide nel buffer
delle segnalazioni |
|
BUFNOTREAD |
OUTPUT |
INT |
Numero dei record di dati della IM153-2 con
allarme, ma non ancora letti |
|
READERR |
OUPTUT |
BOOL |
1= errore nella lettura della
IM153-2 |
|
READSTATUS |
OUTPUT |
INT |
Valore di ritorno dell'SFC59
(RD_REC) |
|
BUFRDY |
INPUT/OUTPUT |
BOOL |
1= buffer delle segnalazioni
pronto |
|
MSGLOST |
INPUT/OUTPUT |
BOOL |
1= segnalazioni perdute |
|
MESSAGE |
STAT |
ARRAY [1..20] OF STRUCT |
Buffer delle segnalazioni per max. 20
segnalazioni della IM153-2 |
|
SLOT_NO |
|
BYTE |
Numero di slot / 2= segnalazione
speciale |
|
CH_NO |
|
BYTE |
Numero di canale / codice della segnalazione
speciale |
|
SIGNAL |
|
BYTE |
Stato del segnale / caratteristica
della segnalazione speciale |
|
TIME1 |
|
DWORD |
Secondi da 1900,0 (ISP) / anno, mese, giorno,
ora (DT) |
|
TIME2 |
|
DWORD |
Frazioni di secondo (ISP) / minuto, secondo,
millisecondo, giorno della settimana (DT) |
Tabella 13 FB 63 (TIMESTMP) - Lista parametri
Modo di funzionamento
- IM153-2
La IM153-2 rileva variazioni di segnali binari, assegna loro un
time stamp e deposita queste informazioni in record di dati con
max. 20 segnalazioni. Con determinati eventi essa emette
segnalazioni speciali. Quando un record di dati è pronto per essere
prelevato, la IM153-2 genera un interrupt di processo.
- Richiamo nell'OB di interrupt di processo
L'FB TIMESTMP legge l'informazione di start dell'OB di
interrupt di processo e memorizza l'informazione che riguarda
l'assegnazione di time stamp, per una ulteriore elaborazione in un
buffer circolare (vedi l'interfaccia della IM153-2). Il blocco può
memorizzare i dati di max. 17 interrupt di processo.
- Richiamo nell'OB ciclico
Nell'elaborazione ciclica, l'FB TIMESTMP legge il record di
dati da prelevare con l'aiuto di SFC59 (RD_REC: Leggi record di
dati) e lo memorizza nel buffer delle segnalazioni MESSAGE. Se ci
sono diversi record di dati da prelevare, viene letto per primo il
più vecchio. Se il bit TIMECONV all'ingresso del blocco è
impostato, l'FB TIMESTMP converte tutti i time stamp dal
formato ISP nel formato DATE_AND_TIME (DT).
Se il parametro BUFRDY = TRUE, le segnalazioni nel buffer delle
segnalazioni possono essere ulteriormente elaborate dal programma
applicativo e p. es. possono essere inviate ad un destinatario
(apparecchio HMI, stampante). Il numero delle segnalazioni presenti
viene visualizzato nel parametro MSG_QTY. Dopo l'elaborazione, il
programma applicativo deve resettare BUFRDY, per abilitare il
buffer delle segnalazioni per ulteriori segnalazioni. Il parametro
BUFNOTREAD visualizza il numero degli interrupt di processo
ricevuti, per i quali l'FB TIMESTMP non ha ancora letto alcun
record di dati dalla IM153-2. Con EAD = 15 tutti i record di dati
della IM153-2 sono stati riempiti. La IM153-2 non riconosce alcuna
ulteriore variazione di segnale, per cui si arriva alla perdita di
segnalazioni.
Avvertenza
Ulteriori informazioni si trovano anche nella Guida online STEP
7.
|