franxi Inserito: 2 marzo 2004 Segnala Share Inserito: 2 marzo 2004 (modificato) Mi serve una famosa FC che automaticamente cambia l'ora legale con quella solare nei PLC siemes S7-300.Per cortesia inviatela a franxi_at_tiscali.frGrazie Modificato: 2 marzo 2004 da franxi Link al commento Condividi su altri siti More sharing options...
gabri Inserita: 13 settembre 2004 Segnala Share Inserita: 13 settembre 2004 Mi associo...qualcuno ha trovato questa FC?Servirebbe anche a me Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 13 settembre 2004 Segnala Share Inserita: 13 settembre 2004 Io tempo fa l'avevo fatto x un Telemecanique... e tra l'altro non so + dove l'ho messo Link al commento Condividi su altri siti More sharing options...
gabri Inserita: 13 settembre 2004 Segnala Share Inserita: 13 settembre 2004 Guardando di qua e di là, ho visto che la SFC100 possiede un flag per ora legale/solare, ma l'. è abbastanza enigmatico (almeno x me)...se qualcuno che ha già qualche esperienza di utilizzo si facesse avanti glie ne sarei grato, altrimenti aspetterò il prossimo equinozio per vedere se funziona o meno.... Grazie e Ciao a tutti Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 13 settembre 2004 Segnala Share Inserita: 13 settembre 2004 Tempo fa ho scritto una routine che assolve a questa funzione, proprio per siemens S7! Non sapevo che esistesse un blocco standard della siemens. Comunque la mia funziona, provata ed applicata gia più volte. Bisogna solo fare attenzione ai parametri (è una FB) e lanciare i comandi di controllo da OB100 e da OB10.Questa funzione tra l'altro integra anche la visualizzazione e la regolazione dell'orologio di sistema (utilizzando le SFC della CPU).Se qualcuno ne ha bisogno, saro felice di inviarla. Link al commento Condividi su altri siti More sharing options...
gabri Inserita: 13 settembre 2004 Segnala Share Inserita: 13 settembre 2004 Se qualcuno ne ha bisogno, saro felice di inviarla. Beh, se la mettessi nell'area download sarei felice di scaricarmela.... fa sempre piacere vedere soluzioni diverse allo stesso problema, anche perché chissà come funge l'SFC100...comunque sui piccoli EASY800 della Moeller il cambio automatico dell'ora si imposta direttamente dalla configurazione hardware...perché il potente s7-300 non lo fa anche lui in maniera così immediata???? Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 14 settembre 2004 Segnala Share Inserita: 14 settembre 2004 Anche a me farebbe molto comodo..Come posso scaricarla?Grazie mille Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 14 settembre 2004 Segnala Share Inserita: 14 settembre 2004 CiaoHo messo la funzione nell'area Up/download. Buon lavoro a tutti!! Link al commento Condividi su altri siti More sharing options...
gabri Inserita: 14 settembre 2004 Segnala Share Inserita: 14 settembre 2004 Grazie 1000 Gramma!!!! X ora ho letto solo i commenti, poco a poco passerò alla pratica...Saluti a tutti Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 X GRAMMAStavo provando il tuo programma..Il cambio tra ora solare e ora legale è OKIl cambio tra ora legale e ora solare invece mi da uno strano problemino..In OB10 ho impostato la frequenza giornaliera alle 03:01, per provarlo faccio cosi::l’ora attuale è 28/09/04 10:00:00imposto 21/11/04 03:00:30 e la funzione aggiorna l’ora..dopo 30 secondi interviene l’OB10 che alza il Bit Legale_Chk e l’ora anziché diventare:21/11/04 02:01:00 diventa 20/11/04 00:01:00…Ti è mai capitato?? Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Scusa, ho sbagliato, diventa 22/11/04 00:01:00…( praticamente aggiunge 1 giorno.. e azzera o sottrae 3 anzichè 1 alle ore ) Link al commento Condividi su altri siti More sharing options...
Fr@ncy Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Perchè non riesco a scaricarla? Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Ciao a tutti.Grazie per averla usata e grazie per avermi riportato degli errori. SCUSATE!!!Una correzione dell'utlimo momento (sul genere -così è più elegante-) senza averla testata, ha provocato un errore, me ne sono accorto oggi che l'ho installata su una macchina. Comunque, di seguito le correzioni:SEG. 1 CALL "READ_CLK" RET_VAL:=#Ret_Value CDT :=#Data L LD 0 T DID 6 L LW 4 -- Correzione T DIW 10 ---------------- L LB 7 ---------------- L B#16#F ---------------- UW ---------------- T #G_Settimana -- Correzione L #G_Settimana L B#16#F UW L 1 ==I = #Sunday L #Ora BTI L 60 *I L #Minuti BTI +I T #MinMidNightper SLIMS83:Ho controlato la funzione al livello in cui l'orario torna a solare (lo puoi controllare anche tu, sta nel segmento 6), e non mi sembra ci sia nulla che può provocare l'errore che mi hai descritto. Probabilmente dipende dal segmento 1 (qui sopra riportato). Fammi sapere please.Ciao Link al commento Condividi su altri siti More sharing options...
lele65 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Ho inserito nell'area download un blocco scaricato dal sito della siemens, a me sembra che funzioni bene..Saluti Link al commento Condividi su altri siti More sharing options...
gabri Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Grazie x la correzione,1 cosa (che evidenzierà la mia ignoranza in materia):vedo vari:L LD 0T DID 6L LW 4ecc...cosa significano queste istruzioni???Grazie ancora Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 CiaoL LD x significa: carica (in ACCU 1) il dato locale dall'indirizzo x (quelli dell'erea TEMP) in formato Double (32bit)T DID x significa: Trasferisci (ciò che è in ACCU1) nel dato della DB di istanza (quella associata a questo FB al momento dell'esecuzione) all'indirizzo x in formato Double (32bit)L LW x come sopra ma in formato Word (16bit)Ecc. ecc.Non ti fidare troppo della correzione, prova la routine e fammi sapere se tutto è ok.Ciao!!! Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Ok, provo.. Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Per GRAMMAForse ho trovato il mio problema ( anche se cosi fosse, non andrebbe a nessuno! ..qiundi probabilmente sbaglio..)tu usi le funzioni INC e DEC, prima di queste trasformi #Ora_In da BCD ad INT col la funzione BTIIl manuale però dice che INC e DEC servolo per la matematica a 8 bit e non a 32 o 16 ( nel nostro caso 16 perche è stato convertito in INT )quindi si dovrebbe usare la funzione +I e -I...provo e ti faccio sapere.. Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 28 settembre 2004 Segnala Share Inserita: 28 settembre 2004 Praticamente succede questo..con la funzione DEC mi da un risultato assurdo ( tipo 554.. )il segmento successivo ( Seg 7 ) controllando l'ora la vede maggiore di 24 e quindi mi imposta l'ora a 0 e il giorno al giorno attuale+1..comunque ho risolto sostituendo:DEC 1con:L #Ora_In BTI L 1 -I Ricarico il valore #Ora_In e lo riconverto perchè altrimenti la sottrazione la farebbe con lo 0.. ( usato per il confrono Ora_In <> 0.. )comunque cosi a me funziona..se a voi funziona anche senza queste modifiche tanto meglio!!!Buon lavoro a tutti Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 30 settembre 2004 Segnala Share Inserita: 30 settembre 2004 GRANDE Slims83!!!Hai individuato un difetto che non avevo mai notato! La tua spiegazione però non mi convince: l'istruzione DEC lavora si solo su 8 bit, ma qui tutti i valori sono in byte, quindi non ci dovrebbe essere il problema (il controllo <>0 lo faccio prima di decrementare per evitare l'underflow). Non quadra invece l'istruzione successiva: B#16#24 significa 24H non 24BCD! quindi il confronto successivo genera un risultato sbagliato, provocando così l'incremento del giorno e l'azzeramento dell'ora).Non ho ancora trovato una soluzione valida per questo segmento, ma domani certo farò la correzione.Grazie. Ciao! Link al commento Condividi su altri siti More sharing options...
Slims83 Inserita: 1 ottobre 2004 Segnala Share Inserita: 1 ottobre 2004 l'istruzione DEC lavora si solo su 8 bit, ma qui tutti i valori sono in bytenon mi risulta.. tu carichi l'ora ( formato BCD ) e poi esegui l'operazione BTI ossia da BCD trasforma in INT ( quindi 16 bit.. ) Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 1 ottobre 2004 Segnala Share Inserita: 1 ottobre 2004 X Slims86non mi risulta.. tu carichi l'ora ( formato BCD ) e poi esegui l'operazione BTI ossia da BCD trasforma in INT ( quindi 16 bit.. )Nelle CPU Siemens (e credo anche nelle altre per PLC), i dati vengono caricati nell'accumulatore sempre utilizzando tutto lo spazio disponibile (cioè 32 bit), altrimenti avremmo dei PLC che eseguono programmi vettorizzati (cosa che fa p.e. il CRAY2, ma quello è un main-frame...).Avere un dato in un byte, significa che il valore che la variabile può assumere, non eccede mai dal valore massimo che può essere scritto in un byte, non che questa variabile viene caricata dalla CPU in 8bit e gli altri restano al valore precedente.Quindi, anche se i comandi BTI e TBI agiscono su 16bit, il nostro dato di origine occupava solo (al max.) 8bit (valore compreso fra 0 e 23),il risultato sarà ancora compreso in 8 bit (o meglio, gli 8bit più significativi saranno a 0), visto che 23 (val.max.) si scrive su 2 digit di BCD, quindi 8bit. Infatti, il risultato della conversione, e le successive elaborazioni, sono sempre memorizzate in una variabile byte!L'erroe è sicuramente nel confronto successivo! Siemens eseque i confronti solo in sormato binario, non si può paragonare un BCD con un Hex (binario), sarebbe come chiedere se va più forte il treno o è più alto il campanile !Adesso cerco una soluzione a quel segmento.Ciao. Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 1 ottobre 2004 Segnala Share Inserita: 1 ottobre 2004 CiaoOk, trovato.Nel segmento 7:H000: L #Ora_In L B#16#24 <I ....modificare in:H000: L #Ora_In L 24 ITB <I ....Potete provare per favore?GrazieCiao Link al commento Condividi su altri siti More sharing options...
LOOK Inserita: 1 ottobre 2004 Segnala Share Inserita: 1 ottobre 2004 Fb1 è il blocco di sistema che gestisce l'aggiornamento all'ora legale. Link al commento Condividi su altri siti More sharing options...
gramma Inserita: 5 ottobre 2004 Segnala Share Inserita: 5 ottobre 2004 CiaoScusa LOOK, FB1 dove l'hai tirato fuori? Da quale libreria proviene? Non riesco a trovarlo. Mi puoi dare qualche riferimento?Grazie.Ciao. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora