Giancarlo Foresi Noia Inserito: 10 settembre 2020 Segnala Inserito: 10 settembre 2020 Salve a tutti, esistono delle variabili per acquisire data ed ora? Ad esempio per quanto riguarda l'orario corrente, moltiplicare per 100 le ore e poi aggiungere i minuti per ottenere un numero che va dal valore 0 al valore 2359. Esistono delle variabili di sistema? Grazie
drn5 Inserita: 10 settembre 2020 Segnala Inserita: 10 settembre 2020 (modificato) Si. Puoi usare la SFC1... CALL SFC 1 RET_VAL:=#NotUse CDT :=#PLC_DATE_TIME Modificato: 10 settembre 2020 da drn5
Giancarlo Foresi Noia Inserita: 10 settembre 2020 Autore Segnala Inserita: 10 settembre 2020 Grazie per la info. Mi rimane di capire che tipo di variabile applicare per leggere il CDT.
ken Inserita: 10 settembre 2020 Segnala Inserita: 10 settembre 2020 Variabile "date and time" Forse ho scritto in modo errato. Cerca nella guida in linea sfc1. Leggerai che tipo di variabile utilizzare. Se ricordo bene ci sono poi altri SFC per estrarre i vari elementi. La variabile comunque può essere splittata a byte; ogni byte contiene i vari elementi. Nella guida trovi come è composta la variabile.
Giancarlo Foresi Noia Inserita: 11 settembre 2020 Autore Segnala Inserita: 11 settembre 2020 14 ore fa, ken ha scritto: Variabile "date and time" Forse ho scritto in modo errato. Cerca nella guida in linea sfc1. Leggerai che tipo di variabile utilizzare. Se ricordo bene ci sono poi altri SFC per estrarre i vari elementi. La variabile comunque può essere splittata a byte; ogni byte contiene i vari elementi. Nella guida trovi come è composta la variabile. Grazie. 17 ore fa, drn5 ha scritto: Si. Puoi usare la SFC1... CALL SFC 1 RET_VAL:=#NotUse CDT :=#PLC_DATE_TIME Grazie.
Livio Orsini Inserita: 11 settembre 2020 Segnala Inserita: 11 settembre 2020 Giancarlo Foresi Noia, per favre non quotare interi messaggi; in questo modo la discussione diventa illeggibiel!
SHKODRAN Inserita: 11 settembre 2020 Segnala Inserita: 11 settembre 2020 Salve, la data è l'ora, li hai sempre a portata di mano in qualsiasi funzione lei abbia necessità d'utilizzo. Come ben sai, ogni funzione viene chiamato nei blocchi organizzativi che contengono le variabili locale del sistema Date_And _Time, di conseguenza, non hai bisogno di richiamare blocchi esterni occupando risorse inutilmente. Sotto un esempio velocissimo: L P#12.0 L DW#16#87000000 OD LAR1 L W [AR1,P#0.0] T #DT_YEAR L B [AR1,P#1.0] T #DT_MONTH L B [AR1,P#2.0] T #DT_DAY L B [AR1,P#3.0] T #DT_HOUR L B [AR1,P#4.0] T #DT_MIN L B [AR1,P#5.0] T #DT_SEC A disposizione per chiarimenti.
batta Inserita: 11 settembre 2020 Segnala Inserita: 11 settembre 2020 Perché caricare nel registro indirizzi un numero, quando si può fare riferimento al nome della variabile? LAR1 P##DATE_TIME L B [ AR1 , P#0.0 ] T #anno L B [ AR1 , P#1.0 ] T #mese .... .... ....
SHKODRAN Inserita: 11 settembre 2020 Segnala Inserita: 11 settembre 2020 9 minuti fa, batta ha scritto: Perché caricare nel registro indirizzi un numero, quando si può fare riferimento al nome della variabile? LAR1 P##DATE_TIME L B [ AR1 , P#0.0 ] T #anno L B [ AR1 , P#1.0 ] T #mese .... .... .... LAR1 P##DATE_TIME da chi viene alimentata questa variabile, con la data del sistema?
TravelMen Inserita: 21 settembre 2020 Segnala Inserita: 21 settembre 2020 Ciao il buon Batta si riveriva che scrivere: LAR1 L12 equivale a : LAR1 P##DATE_TIME Perché come da te detto: Quote ogni funzione viene chiamato nei blocchi organizzativi che contengono le variabili locale del sistema Date_And _Time E visto che OB di cui parli è OB1, nelle variabili che mette a disposizione con indirizzo 12 c'è appunto la variabile DATE_TIME, che può essere puntata utilizzando il nome. Saluti
SHKODRAN Inserita: 22 settembre 2020 Segnala Inserita: 22 settembre 2020 Salve, solo per precisare il vostro modo operandus da profano... Se legge bene, ho scritto in qualsiasi blocco organizzativo, non solo in OB1. Il mio codice, lo potresti chiamare in qualsiasi FC o Fb, ti ritorna sempre il valore della data del sistema. Prova chiamare in una fc o fb: LAR1 L12 Se poi voi fate l'operazioni nei blocchi organizzativi, rimango molto perplesso delle vostre conoscenze!! Ripeto anche e lei la domanda: chi alimenta con la data&ora in un fc o fb la variabile temporanea L12? Per quanto riguarda la domanda del "esperto plc", perché caricare un numero nel registro... quei numeri hanno una determinata funzione che lei ovviamente non sa!
batta Inserita: 23 settembre 2020 Segnala Inserita: 23 settembre 2020 (modificato) 15 ore fa, SHKODRAN ha scritto: solo per precisare il vostro modo operandus da profano... Già... Lavoro su S7 solo da 25 anni... Ma, probabilmente, sono un po' duro e non ho ancora capito come si usi. Al massimo, ci faccio un marcia/arresto, o accendo le lucine dell'albero di Natale. Ma solo se mi ci metto di impegno! 15 ore fa, SHKODRAN ha scritto: Il mio codice, lo potresti chiamare in qualsiasi FC o Fb, ti ritorna sempre il valore della data del sistema. Non credo proprio. Il tuo codice funziona solo in un blocco richiamato da un OB, perché con DW#16#87000000 imposti l'area di memoria dei "dati locali precedenti", ovvero quelli del blocco da cui viene richiamato il blocco in elaborazione. Quindi, quando richiami un FB o un FC direttamente da un OB, tutto funziona, perché non fai altro che andare a leggere le variabili TEMP dell'OB a partire dal byte 12, ovvero la variabile OBxxx_DATE_TIME. Però se il blocco con questo codice non viene richiamato direttamente da un OB, ma all'interno di un altro FB o FC, non funziona più!!! 15 ore fa, SHKODRAN ha scritto: Se poi voi fate l'operazioni nei blocchi organizzativi, rimango molto perplesso delle vostre conoscenze!! Nel 300-400, gli OB hanno delle variabili che sono messe lì apposta per essere usate. Non si tratta di fare chissà quali macchinose operazioni in un OB, ma solo di andare a leggere dati utili. Nel caso di data/ora, potresti semplicemente, in OB1, prendere i dati della variabile OB1_DATE_TIME ed appoggiarli in un DB, in modo da renderli disponibili a tutto il programma, ed anche all'esterno. Se poi a te piace di più fare la stessa cosa all'interno di un FC, il quale FC non fa altro che andare a leggere la variabiel DATE_TIME dall'OB che l'ha richiamato, il tutto scrivendo un codice che è anche meno intuitivo, libero di farlo, ma non dare dell'incompetente a chi preferisce strade meno astruse! 15 ore fa, SHKODRAN ha scritto: Ripeto anche e lei la domanda: chi alimenta con la data&ora in un fc o fb la variabile temporanea L12? Penso di aver risposto in modo esaustivo ma, se tu hai una risposta migliore, illuminami! 15 ore fa, SHKODRAN ha scritto: Per quanto riguarda la domanda del "esperto plc", perché caricare un numero nel registro... quei numeri hanno una determinata funzione che lei ovviamente non sa! Io non so certamente tutto ma, su questo argomento, quello in difetto non sono io. Shkodran, si può sapere che ti ha preso? Sei stato punto da un calabrone? Credo di aver dimostrato che quacosina di S7 ne so ma, a parte questo, anche se io avessi sparato le più immani cazzate, cosa ti fa pensare di avere il diritto di scrivere ciò che hai scritto? Modificato: 23 settembre 2020 da batta
TravelMen Inserita: 23 settembre 2020 Segnala Inserita: 23 settembre 2020 Concordo in pieno con quanto esposto da Batta, vorrei solo aggiungere, che di "pasticci" con le variabili TEMP ne ho visti a tonnellate, e la giustificazione più usata è sempre: "ha sempre funzionato, il problema non è li". Saluti
Livio Orsini Inserita: 23 settembre 2020 Segnala Inserita: 23 settembre 2020 12 minuti fa, TravelMen ha scritto: "ha sempre funzionato, il problema non è li". Questa è la tipica giustificazione di chi non sa perchè una determinata cosa (qualche volta) funziona. Qunado capita la volta che non funziona si va a pensare a chissà quale arcano invece di investigare dove è la vera natura del problema. 21 ore fa, SHKODRAN ha scritto: Per quanto riguarda la domanda del "esperto plc", perché caricare un numero nel registro... quei numeri hanno una determinata funzione che lei ovviamente non sa! I latini affermavano: "Est modus in rebus", ovvero c'è modo e modo per fare certe asserzioni. Dare dell'incompetente ad una persona, che ha dimostrato, da anni, la sua profonda conoscenza dei PLCSiemens, non è il modo migliore per approcciare il problema. Anche ammesso, per pura ipotesi dialettica, che Batta avesse affermato qaulche cosa di inesatto non giustifica la patente di incompetenza, specie se chi fa certe affermazioni pare essere un "novizio".
batta Inserita: 27 settembre 2020 Segnala Inserita: 27 settembre 2020 Attendevo una replica ma, chissà perché, non è arrivata.
TravelMen Inserita: 29 settembre 2020 Segnala Inserita: 29 settembre 2020 Il 27/9/2020 alle 12:21 , batta ha scritto: Attendevo una replica ma, chissà perché, non è arrivata. Forse perché sta leggendo il manuale, che é un buon inizio.
SHKODRAN Inserita: 5 ottobre 2020 Segnala Inserita: 5 ottobre 2020 Il 27/9/2020 alle 12:21 , batta ha scritto: Attendevo una replica ma, chissà perché, non è arrivata. Sono impegnato in un progetto, non ho molto tempo per il forum; sorry,
SHKODRAN Inserita: 5 ottobre 2020 Segnala Inserita: 5 ottobre 2020 Il 29/9/2020 alle 10:47 , TravelMen ha scritto: Forse perché sta leggendo il manuale, che é un buon inizio. Sono di questa tipologia 383 messaggi in questo forum? Renditi utile alla comunità, non sprecare tempo in sciocchezze!! La sua risposta impertinente, la distingue come un lecchino... Ti anticipo che, dove la sua intelligenza finisce, inizia la mia!!
Livio Migliaresi Inserita: 5 ottobre 2020 Segnala Inserita: 5 ottobre 2020 @SHKODRAN Visto che sei un mostro di intelligenza e che, purtroppo, molti di noi sono ben piccola cosa, mi chiedo perché mai frequenti ancora il Forum!!!
Livio Orsini Inserita: 6 ottobre 2020 Segnala Inserita: 6 ottobre 2020 Visto come sta evolvendo la discussione ritengo sia meglio chiuderla.
Messaggi consigliati