Vai al contenuto
PLC Forum


Trasmissione ora da cMT3090 weintek a Tm221 schneider


Alberto_Evo

Messaggi consigliati

Buon giorno a tutti,

Mi volevo cimentare con questo passaggio visto che sto programmando una POU per la produttività della macchina e ho necessità di allineare le date e gli orari 

del PLC con quelli dell'HMI.

Qualcuno ci è già passato?

So che da %Sw49 a %Sw53 si delimita l'area dai secondi all'anno per il PLC 

e invece da LW9017 a LW93 per l'HMI

Link al commento
Condividi su altri siti


Giuseppe Signorella

Non conosco il pannello operatore da te citato, ma credo che non vi sia molta differenza tra le altre marche.

Il concetto è semplice, leggi le variabili dell'RTC del pannello operatore, (Probabilmente dovrai appoggiare la lettura su un'area di memoria che il PLC sia in grado di leggere) lo puoi eventualmente fare con uno script.  

Fai un confronto ogni X tempo  con quelle dell'RTC del  PLC. Se trovi differenze sovrascrivi quelle del PLC. (solo quelle che differiscono).

Un esempio generico:

 

//Dichiaro le variabili

Dim RTC_Ora_HMI as integer
Dim RTC_Minute_HMI as integer
Dim RTC_Secondi_HMI as integer

Dim RTC_Ora_PLC as integer
Dim RTC_Minute_PLC as integer
Dim RTC_Secondi_PLC as integer

RTC_Ora_HMI = LW9017 //Area di memoria del pannello operatore per la lettura dell'ora (In genere 1 Byte)
RTC_Minute_HMI LW9018 //Area di memoria del pannello operatore per la lettura dei minuti (In genere 1 Byte)
RTC_Secondi_HMI LW9019 //Area di memoria del pannello operatore per la lettura dei secondi (In genere 1 Byte)

RTC_Ora_PLC = 2#2:%Sw49 //Area di memoria del PLC per la scrittura dell'ora (In genere 1 Byte)
RTC_Minute_PLC 2#2:%Sw50 //Area di memoria del PLC per la scrittura dei minuti (In genere 1 Byte)
RTC_Secondi_PLC 2#2:%Sw51 //Area di memoria del PLC per la scrittura dei secondi (In genere 1 Byte)

If RTC_Ora_PLC <> RTC_Ora_HMI Then
RTC_Ora_PLC=RTC_Ora_HMI
End IF

If RTC_Minute_PLC <> RTC_Minute_HMI Then
RTC_Minute_PLC=RTC_Minute_HMI
End IF

If RTC_Secondi_PLC <> RTC_Secondi_HMI Then
RTC_Secondi_PLC=RTC_Secondi_HMI
End IF

Nell'esempio di sopra (basato su un tipo di pannello operatore che utilizzo) , ho dato per scontato che nel PLC l'area di scrittura e lettura dell'RTC sia la medesima.

2#2:%Sw49 stà per: porta di comunicazione n° 2# del pannello operatore, 2: Device n° 2 (ho ipotizzato 2 PLC) e %SW49 è la word del PLC su cui scrivere l'ora.

 

 

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Giuseppe Signorella

 

Attenzione, l'esempio di sopra non è completo, mi sono limitato a fare il solo confronto tra l'RTC del pannello ed quello del PLC.

Ora sta a te completarlo.

(Scrivere nel PLC i nuovi valori).

 

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Non è detto che l'area di memoria del RTC del PLC sia sempre in possibilità di essere sovrascritta, in genere è normalmente in lettura se vuoi sovrascriverla in genere c'è da abilitare la sovrascrittura del RTC tramite un comando da dare al PLC per abilitarne la modifica

Link al commento
Condividi su altri siti

Perdonami ma non capisco perchè tutto questo lavorio...secondo me decidi quale dei due orari utilizzare (plc o hmi visto che sono entrambi RTC) e poi passi quello "master" a quello slave utilizzando il trasferimento ciclico di aree di memoria (da plc a hmi o viceversa)

Link al commento
Condividi su altri siti

Giuseppe Signorella

In realtà la soluzione più semplice se collegati in una rete con accesso ad internet sarebbe quello di utilizzare il protocollo/sistema NTP e puntare tutti allo stesso server NTP.

Come detto non conosco il pannello operatore citato, alcuni pannelli funzionano anche come NTP server. Quindi nessuna programmazione, ma basta una semplice parametrizzazione dei dispositivi.

Link al commento
Condividi su altri siti

concordo con Lucky67 perchè faccio la stessa cosa (SoMachine),

nel mio caso gestisco l'RTC del PLC e poi appoggio tutto a delle variabile lette dall'HMI,

 

in che posizione temporale sia l'RTC dell'HMI non mi interessa visto che visualizzo sempre l'RTC del PLC,

rimane comunque interessante la finezza proposta da Signorella,

ciao

Link al commento
Condividi su altri siti

Giuseppe Signorella

Personalmente preferisco sempre sincronizzare i due RTC per un fattore di praticità. Molti eventi, come la gestione degli allarmi, Data ed ora di accesso al sistema da parte di un utente, il pannello li gestisce con il proprio RTC. Quindi come immaginabile, se l'ora del pannello non è corretta, si hanno allarmi (ed altro) scadenzati in modo errato.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Signorella ... riguardo gli allarmi gestiti da HMI hai perfettamente ragione!!

il pannello prende sempre il suo RTC per visualizzare gli allarmi ...

 

in SoMachime/Vijeo esiste uno script per sincronizzare ma non l'ho mai usato,

li gestisco in altro modo non avendo bisogno di storicizzare ma ricordo di aver avuto quel problema,

ciao e grazie

Link al commento
Condividi su altri siti

4 ore fa, Water scrisse:

il pannello prende sempre il suo RTC per visualizzare gli allarmi ... 

 

Infatti personalmente prendo a riferimento lo RTC del pannello e stabilisco che esso sia master in modo che tutto faccia riferimento a quell'orario

Link al commento
Condividi su altri siti

Giuseppe Signorella
Quote

Infatti personalmente prendo a riferimento lo RTC del pannello e stabilisco che esso sia master in modo che tutto faccia riferimento a quell'orario

Resto dell'opinione che i due RTC vadano sincronizzati. Per gli allarmi ed altri eventi inerente il pannello operatore si fa riferimento all'RTC del pannello, per programmatori orari ed altre funzioni del programma interno del PLC, si fa riferimento all'RTC del PLC.

Una volta sincronizzato i due RTC  poco importa se sia l'RTC del PLC o del pannello operatore ad essere quello (Master). 

4 Righe di programma semplificano la vita. Le scrivi una sola volta,  e poi le ricopi ogni volta che serve.

Ad essere sincero, sono più che sicuro che possa farsi anche senza script.

 

Link al commento
Condividi su altri siti

Certo che si puo' fare senza script, Weintek ha la funzione trasferisci blocco dati, all'interno metti i valori dell'RTC HMI, e li depositi nelle aree dati del plc, Se la formattazione va bene tutto risolto, diversamente con SHL o SRL sx e sx li formatti e li trasferisci nelle aree dati del plc alzando il bit specifico di aggiornamento.

 

Saluti.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...