melopres Inserito: 4 gennaio 2012 Segnala Share Inserito: 4 gennaio 2012 Salve a tutti premetto che prima di chiedere ho letto molte discussioni a riguardo, ma forse per la mia scarsa preparazione di base sono piu' confuso che persuasoquidi vorrei capire praticamente come rilevare l'orario e la data dalla mia cpu(315-2dp)e in funzione di questo abilitare un out ad un certo orario in un dato giornoringrazio anticipatamente per la risposta Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 4 gennaio 2012 Segnala Share Inserita: 4 gennaio 2012 esiste una funzione di sistema che legge l'ora della cpu. se non ricordo male è la SFC 1. comunque le trovi scritte nel manuale che si intitola funzioni standard e di sistema per s7300/s7400 Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 4 gennaio 2012 Autore Segnala Share Inserita: 4 gennaio 2012 si io provo a richiamare questa funzionein ob1con call fsc1ma nei valori ret val e cdt che sono due outche ci scrivo Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 4 gennaio 2012 Autore Segnala Share Inserita: 4 gennaio 2012 nessuno che mi puo' dare una mano?? Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 4 gennaio 2012 Autore Segnala Share Inserita: 4 gennaio 2012 nessuno mi aiuta??? Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 4 gennaio 2012 Segnala Share Inserita: 4 gennaio 2012 (modificato) prima di tutto leggi il regolamento del forum!il RET VAL è una variabile INT dove la SFC scrive un valore se durante l'elaborazione avviene un errore.In CDT viene scritta la data e l'ora letti dalla cpu!!!per esempio in RET VAL e CDT puoi associare delle variabili di un DB. Modificato: 4 gennaio 2012 da mautomazione Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 4 gennaio 2012 Autore Segnala Share Inserita: 4 gennaio 2012 grazie per il chiarimentoquindi ricapitolandodevo creare una db con dei valori inte puntarli nel blocco funzioneper poiu confrontarli e uttenere un out Link al commento Condividi su altri siti More sharing options...
mautomazione Inserita: 5 gennaio 2012 Segnala Share Inserita: 5 gennaio 2012 iL ret val è INT quindi deve associargli una varibile INT. Il CDT è un DT (Date and Time) anche a questa devi associargli una variabile però DT. Poi dipende come hai fatto il programma se associare una variabile o una variabile di un DB Link al commento Condividi su altri siti More sharing options...
Gabri.cicchi Inserita: 5 gennaio 2012 Segnala Share Inserita: 5 gennaio 2012 Ciao, l'uscita devi abilitarla una volta sola?Il giorno e l'ora devono essere modificabili ?Puoi pensare di usare l'OB10, di schedulazione. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 gennaio 2012 Segnala Share Inserita: 5 gennaio 2012 (modificato) melopres hai aperto la discussione alle 17:26; prima risposta all 17:40. Primo sollecito di risposta alle 18:18, ripetuto alle 18:38!Non ti sembra di esagerare in petulanza? Oltretutto i solleciti son vietati dal regolamento! :angry: Leggiti ben bene regolamento e FAQ! Se ripeti questo comportamento sospendiamo il tuo account! Modificato: 5 gennaio 2012 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 5 gennaio 2012 Autore Segnala Share Inserita: 5 gennaio 2012 chiedeo a tutti scusa per il mio comportamento,che non si ripeterà mai piùgrazie per le risposte,questa mattina ho fatto qualche prova, ho creato un db e dichiarato le due variabilia propositodi questola var dt come si edita nel blocco funzione nel campo cdt?per quanto riguarda le uscite dovrei abilitarle più volte al giornoe ora e giorno devono poter essere modificabiligrazie a tutti Link al commento Condividi su altri siti More sharing options...
bleny Inserita: 6 gennaio 2012 Segnala Share Inserita: 6 gennaio 2012 (modificato) Secondo me si può usare anche un sistema più rapido.Io eviterei di chiamare SFC1 per recuperare un dato che OB1 ti fornisce aggiornato automaticamente ad ogni ciclo.Nell'area dati locali di OB1, a partire dal byte 12, hai una variabile date_and_time che ti indica quando l'OB1 è stato elaborato; di conseguenza basta che confronti i byte locali che ti interessano (solo il giorno, solo il mese, tutta la data, ecc.) con i byte che utilizzi per il confronto (e che, verosimilmente, saranno in una DB) e il gioco è fatto.Unica accortezza: se devi confrontare il giorno della settimana il byte è condiviso con parte della cifra dei millisecondi, per cui devi fare un mascheramento tramite un AND.Ciao.Massimo Modificato: 6 gennaio 2012 da bleny Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 6 gennaio 2012 Autore Segnala Share Inserita: 6 gennaio 2012 ciao blenygrazie per la risposta mi potresti fare un esempio pratico di come fare Link al commento Condividi su altri siti More sharing options...
bleny Inserita: 7 gennaio 2012 Segnala Share Inserita: 7 gennaio 2012 Ciao melopres,scusa ma non ho ben capito il senso della domanda. Mi auguro che tu non voglia sapere come fare il confronto tra due numeri altrimenti la gestione della data e dell'ora della cpu è veramente l'ultimo dei tuoi problemi.Se invece vuoi un esempio di gestione di un'uscita dovresti dire (ovviamente avendolo tu già chiaro in testa) che cosa esattamente vuoi fare.Vuoi confrontare giorno, mese, anno con ore e minuti o, per esempio, solo il giorno della settimana?In base a questa risposta sarebbe opportuno, come già ti ha suggerito Gabri.cicchi, utilizzare, anzichè l'OB1, l'OB10 impostato con la stessa frequenza di controllo che ti serve (vuoi controllare la data e l'ora ogni minuto, ogni ora, ogni giorno, ecc.). Questo perchè, se fai il controllo in OB1, continui ad avere un risultato 1 per tutto il tempo in cui il tuo confronto è valido e questo, in alcuni casi, potrebbe dare risultati non voluti.I dati locali di cui ti ho parlato nel precedente messaggio li trovi in tutti gli OB e quindi il suggerimento che ti ho dato resta sempre valido.Inoltre tieni presente che i dati nelle variabili date_and_time sono in formato BCD per cui o i dati della tua DB sono anche loro in formato BCD oppure devi fare una conversione prima di effettuare il confronto.Ciao.Massimo Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 7 gennaio 2012 Autore Segnala Share Inserita: 7 gennaio 2012 ciao blenyil mio problema non è confrontare due variabili ma non ho capito come ottenere l'ora e la data dell'orologioper poi confrontarle con quello che scrivo su on op7 e attivare un out come avrai gia intuito non ho molta dimestichezza come ho gia detto in precedenzainfatti ad esempionel sfc1al campo cdt dovrei inserire una variabile dt ma non so come scriveregrazie e a presto Link al commento Condividi su altri siti More sharing options...
bleny Inserita: 7 gennaio 2012 Segnala Share Inserita: 7 gennaio 2012 Ciao melopres,non te la prendere, ma mi pare che il problema non sia la poca dimestichezza, ma il non sapere proprio da che parte girarsi. E, inoltre, mi sembra che tu non abbia neanche provato a premere qualche volta il "magico" tasto F1.Ti ho suggerito di non usare SFC1 e di caricare i dati locali dell'OB (1 o 10 a tua scelta) a partire dal byte 12: qual è la parte che non hai capito?Se nell'editor clicchi con F1 sul campo OB1_DATE_TIME dell'area dati locali dell'OB ti appare la mappatura completa della variabile.A questo punto direi che è banale:L LB12 -> carichi nell'accumulatore il valore BCD dell'annoL LB13 -> carichi nell'accumulatore il valore BCD del mese.... e via dicendo.Secondo me dovresti dedicare un po' di tempo all'approfondimento dei manuali.Ciao.Massimo Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 7 gennaio 2012 Autore Segnala Share Inserita: 7 gennaio 2012 grazie per i tuoi chiarimenti domani vado on-line e faccio qualche provacaricando le variabili e trasferendole in una db che avevo già creato in precedenzaciao e grazie Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 12 gennaio 2012 Autore Segnala Share Inserita: 12 gennaio 2012 rieccomi saluti a tutti gli utenti come al solito con un altro problemavista la discussione sono riuscito a visualizzare la variabile dt di ob1e estrapolare anno,mese,giorno...ecc.ecc..caricando i vari byte ad uno ad uno.il problema sta nel byte7che dovrebbe visualizzare il giorno della settimanama nel mio caso visualizzo i msqualcuno può aiutarmigrazie Link al commento Condividi su altri siti More sharing options...
bleny Inserita: 13 gennaio 2012 Segnala Share Inserita: 13 gennaio 2012 Come avevo già scritto alla fine del messaggio #12 per estrarre il giorno della settimana devi fare un mascheramento sul byte 7 con un AND.Per essere precisi bisogna mettere a 0 i bit da 4 a 7.Ciao.Massimo Link al commento Condividi su altri siti More sharing options...
melopres Inserita: 14 gennaio 2012 Autore Segnala Share Inserita: 14 gennaio 2012 grazie bleny ho risolto tuttoe grazie a tutti 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