mennys Inserito: 9 maggio 2008 Segnala Share Inserito: 9 maggio 2008 Salve tutti!Sapreste dirmi per caso come si scrive in kop il formato date and time di una db?Devo impostare l'ora da pannello operativo usando l'sfc0(set clock) ma non resco i a scrivere il dato in ingresso preso da una db.Spero abbiate capito..Grazie a tutti e buona serata Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 9 maggio 2008 Segnala Share Inserita: 9 maggio 2008 il tipo di dato preso dalla DB deve corrispondere al tipo di dato richiesto in ingresso della SFC. E' già così?? Link al commento Condividi su altri siti More sharing options...
mennys Inserita: 9 maggio 2008 Autore Segnala Share Inserita: 9 maggio 2008 Sono ancora io ho paura non abbiate capito perchè mi sembra di non essermi spiegato bene.Il mio problema è di richiamare un dato in formato DATE and TIME presente in una db.Come per un word si deve scrivere per richiamarla all'ingresso di un blocco DB1.dbw0 ad esempioqual'è il formato per richiamare un dato di tipo date and time?? DB1.d.....Così mi sembra di essermi spiegato un attimino meglio..Grazie e arrivederci Link al commento Condividi su altri siti More sharing options...
mennys Inserita: 9 maggio 2008 Autore Segnala Share Inserita: 9 maggio 2008 Ciao rddiego.si il dato in ingresso è corretto,solo che non so la sintassi per richiiamarlo Link al commento Condividi su altri siti More sharing options...
kamikaze Inserita: 9 maggio 2008 Segnala Share Inserita: 9 maggio 2008 mennys,Il dato in uscita all'FC1 , deve per forza essere in formato DATE_TIME , come vuole la sintassi, tale dato poi non può essere trattato come un comune dato semplice , byte,word,int, ma è una via di mezzo tra un dato semplice ed uno complesso (dato composto).Quindi , devi creare una variabile TEMP , nell'ambiente di interfaccia del blocco, dopo di che lo usi per contenere il dato dell'orologio.Poi usando un puntatore , vai a scrivere nella DB di appoggio tale valore, o la parte di esso che ti interessa, conoscendo la composizione del formato.NOSC: CALL "READ_CLK" RET_VAL:=#NotUse CDT :=#PLC_DATE_TIME LAR1 P##PLC_DATE_TIME L LB [AR1,P#0.0] //Refresh Year T DB1.DBB 0 T DB1.DBB 8 L LB [AR1,P#1.0] //Refresh Month T DB1.DBB 1 T DB1.DBB 9 L LB [AR1,P#2.0] //Refresh Day T DB1.DBB 2 T DB1.DBB 10 L LB [AR1,P#3.0] //Refresh Hour T DB1.DBB 3 T DB1.DBB 11 L LB [AR1,P#4.0] //Refresh Minutes T DB1.DBB 4 T DB1.DBB 12 L LB [AR1,P#5.0] //Refresh Seconds T DB1.DBB 5 T DB1.DBB 13CiaoIvan Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 9 maggio 2008 Segnala Share Inserita: 9 maggio 2008 se guardi nella libreria di S7 nella Standard Library -> IEC function block inoltre troverai diverse FC (in particolare FC3,6,7,8) per la costruzione di data e ora attraverso le normali variabili Word e Double word. In generale poi ci sono molte FC per fare confronti tra variabili tipo DT, TOD e DATE.Quello che ha detto kamikaze ti è già sufficiente, io ti dico solo cose in più che magari ti potrebbero servire od anche solo per curiosità.Per finire aggiungo che se guardi l'. di sfc0 ed sfc1 (seleziona e premi F1) trovi tutto spiegato molto bene con esempi sorgenti ecc. ecc. Link al commento Condividi su altri siti More sharing options...
kamikaze Inserita: 9 maggio 2008 Segnala Share Inserita: 9 maggio 2008 Scusatemi, sarà l'ora tarda ma solo ora rileggendo il post , mi rendo conto che l'esempio parlava di FC0. Vale lo stesso discorso per il formato , tipo e composizione del dato.Per il codice è così: LAR1 P##PLC_DATE_TIME L DB1.DBB 0 T LB [AR1,P#0.0] //Refresh Year L DB1.DBB 1 T LB [AR1,P#1.0] //Refresh Month L DB1.DBB 2 T LB [AR1,P#2.0] //Refresh Day L DB1.DBB 3 T LB [AR1,P#3.0] //Refresh Hour L DB1.DBB 4 T LB [AR1,P#4.0] //Refresh Minutes L DB1.DBB 5 T LB [AR1,P#5.0] //Refresh Seconds CALL "SET_CLK" PDT :=#PLC_DATE_TIME RET_VAL:=#NotUse Per comporre il dato nel formato richiesto devi sempre usare un puntatore , prima di trasferirlo all'orologio.CiaoIvan Link al commento Condividi su altri siti More sharing options...
ken Inserita: 9 maggio 2008 Segnala Share Inserita: 9 maggio 2008 Non usi l'indirizzo numerico ma quello simbolico. Se vuoi scrivere direttamente una variabile Date and Time di un DB in una funzione iEC lo devi fare così.Non sarà perciò: DBxx.DBWXX ma sarà quello simolico. perciò se il db è nel programma lo puoi fare benissimo come ho detto, se il db è generato nella CPU devi fare come detto da kamikaze Link al commento Condividi su altri siti More sharing options...
mennys Inserita: 10 maggio 2008 Autore Segnala Share Inserita: 10 maggio 2008 Grazie a tutti per i consigli.Penso che la risposta che fa per me sia l'ultima,quella di Ken, in quanto il dato Date e Time da trattare risiede in una DB che io devo scrivere come ingresso nell'FC0.Per scrivere in modo simbolico si intende ad esempio se la mia DB simbolicamente si chiama TAB1 e il dato in formato date e time si chiama DataOra all'ingresso dell'SFC0 dovrei scrivere TAB1.DataOra.Ho capito bene??Grazie Link al commento Condividi su altri siti More sharing options...
kamikaze Inserita: 10 maggio 2008 Segnala Share Inserita: 10 maggio 2008 Per scrivere in modo simbolico si intende ad esempio se la mia DB simbolicamente si chiama TAB1 e il dato in formato date e time si chiama DataOra all'ingresso dell'SFC0 dovrei scrivere TAB1.DataOra.Ho capito bene??Sì , hai capito bene. CALL "SET_CLK" PDT :=DB3.DateTime // Indirizzo simbolico DBxx.NomeSimbolicoVariabile RET_VAL:=#NotUseCiaoIvan Link al commento Condividi su altri siti More sharing options...
bronx_laser Inserita: 2 agosto 2009 Segnala Share Inserita: 2 agosto 2009 Ho letto in alcune riviste che le lampade ad incandescenza andranno presto in pensione (2012) dando spazio a delle lampade di ultimaa generazione ...le lampade a basso consumo!Perciò in futuro sostituendo le lampade ad incadescenza con quelle a basso consumo (25W pari a 1000 lumen) non è meglio mettere un MT da 6A anzichè da 10A? (solo per la linea luce)Grazie Link al commento Condividi su altri siti More sharing options...
Mauro Dalseno Inserita: 2 agosto 2009 Segnala Share Inserita: 2 agosto 2009 Ti conviene lasciare il magnetotermico da 10A, in caso di guasto dell' impianto di illuminazione ti farebbe lo stesso servizio, la protezione per sovraccarico sulle lampade non serve (non andranno mai in sovraccarico). Link al commento Condividi su altri siti More sharing options...
arrr Inserita: 2 agosto 2009 Segnala Share Inserita: 2 agosto 2009 Devi lasciare il 10A se la linea è dimensionata peer quello.Come dice giustamente Mauro su un circuito luci non potrai avere un sovraccarico ma potresti avere un cortocircuito e in caso di cc un 6A curva C e un 10A curva C intervengono praticamente alla stessa maniera. Link al commento Condividi su altri siti More sharing options...
bronx_laser Inserita: 2 agosto 2009 Segnala Share Inserita: 2 agosto 2009 Grazie Ragà come sempre siete veloci e disponibili Link al commento Condividi su altri siti More sharing options...
ivano65 Inserita: 2 agosto 2009 Segnala Share Inserita: 2 agosto 2009 semmai sara' utile inserire un fusibile di protezione dopo ogni interruttore.le lampade a risparmio DOVREBBERO avere incorporata una resistenza fusibile , ma mi e' capitato di vederne una esplosa e intervento del magnetotermico generale.ivano65 Link al commento Condividi su altri siti More sharing options...
bronx_laser Inserita: 3 agosto 2009 Segnala Share Inserita: 3 agosto 2009 Anche a me è capitato di sentire una bomba e lo scatto tempestivo del MT per queso avevo pensato di ridurre l'intensità di orrente mettendo un mt da 6 o 8AProvvederò all'utilizzo dei fusibiliGrazie 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