pupi Inserito: 13 febbraio 2004 Segnala Share Inserito: 13 febbraio 2004 Ciao a tuttiHo bisogno su un PLC S7 300 leggere il valore di un ingresso analogico (PWE288) e riportarlo in scala di tempi su di un temporizzatore, in modi che l'impostazione del tempo del temporizzatore sia data dall'ingrosso analogico (PEW288)Qualcuno mi può aiutare? GRAZIESALUTI Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 13 febbraio 2004 Segnala Share Inserita: 13 febbraio 2004 penso che tu debba utilizzare la FC105 per scalare la tua analogica, convertire il valore in intero e poi trasformarlo in BCD codificando la base tempo 10ms o 100ms o 1s o 10s utilizzando i bit X12 e X13 come mostrato nell'. di Step 7L valore scalato // valore in formato INT della tua PEW288 scalato con la FC105ITB // converti intero in BCDL w#16#2000 // base tempo in secondi (in questo caso)OW // esegui l'OR di wordT preset temporizzatore // otterrai il tuo presetE' corretta la mia interpretazione del tuo problema????? Link al commento Condividi su altri siti More sharing options...
pupi Inserita: 14 febbraio 2004 Autore Segnala Share Inserita: 14 febbraio 2004 Ci sto provando ma senza risultato Mi potresti aiutare ancora?non riesco a gestire il fc105Mi potresti dare il dettaglio dei parametri da inserire?Grazie mille Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 14 febbraio 2004 Segnala Share Inserita: 14 febbraio 2004 Utilizzo dei temporizzatori della CPULa serie s7-300/400 lavora come la serie S5 in riferimento ai temporizzatori, volendo puoi inserire qualsiasi dato (000...999) che è il tuo tempo e poi la base dei tempi (millisecondi, secondi, minuti).Dovresti fare una funzione che ti converta il tuo segnale analogico in un numero intero, con limiti da 0 a 999per poi utilizzare la base dei tempi che ti interessa (con loperazione di OW (or logico).Utilizzo dei temporizzatori IECStesso discorso dei temporizzatori CPU, cambia solo il sistema di utilizzo ed il fatto che devi "sacrificare" una DB per ogni timer.Utilizzo di una variabile come temporizzatoreLa funzione di conversione del segnale analogico ti serve sempre ma in questo caso non hai solo una base dei tempi ma puoi utilizzare tutta la scala che preferisci. unico neo devi avere un clock con il quale incrementare il tuo "contatore/temporizzatore"a questo punto confronti il contatore con la variabile dell'ingresso ed il gioco è fatto.es://;// Conteggio tempo con clock 0.1 secondi//;U #clock 0.1 secondiSPBN Tmr1L #ConteggioTimer1L 1+I T #ConteggioTimer1Tmr1: NOP 0//;// Azzeramento Conteggio tempo//;U #Conteggio1SPBN Rst1L 0T #ConteggioTimer1Rst1: NOP 0//;// Attivazione Bit Conteggio1//;L #ConteggioTimer1L #TempoTimer1>=I = #Conteggio1//;a differenza dell'uso dei temporizzatori, questo rimane in memoria anche al mancare della tensione, e puoi variare il dato di confronto (la tua lettura del valore analogico) anche quando il contattore è già stato attivato, cosa impossibile con i normali temporizzatori.Buon LavoroMATTEO Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 14 febbraio 2004 Segnala Share Inserita: 14 febbraio 2004 Volendo puoi sostituire l'uso dell'fc105 con questa semplice funzione:Lettura ingressi analogici con scalatura in numero reale (virgola mobile)FUNCTION_BLOCK FB 95TITLE =Analog input readerAUTHOR : KeosVERSION : 1.0VAR_INPUT PEW_input : WORD ; //Peripheral input HIGH_range : REAL ; //High range for conversion LOW_range : REAL ; //Low range for conversion Offset : REAL ; //Offset added to readed valueEND_VARVAR_OUTPUT Output_value_read : REAL ; //Converted readed value Output_value_offset : REAL ; //Converted readed value + offset value Broken_cable : BOOL ; //Broken cable Overflow : BOOL ; //Overflow Over_limit : BOOL ; //Value over limit Under_limit : BOOL ; //Value under limitEND_VARVAR_TEMP Value_0_1 : REAL ; //Pew range 0->1 Pew_value : WORD ; //Memoria di appoggioEND_VARBEGINNETWORKTITLE =// RESET CONTROLS SET ; R #Broken_cable; R #Overflow; R #Over_limit; R #Under_limit; //;// Limits confrontation L #PEW_input; L 32767; ==I ; O( ; L #PEW_input; L W#16#8000; ==I ; ) ; = #Broken_cable; SPB chk; TAK ; L 32511; >I ; = #Overflow; SPB chk; TAK ; L 27648; >I ; = #Over_limit; SPB hl; TAK ; L 0; <I ; = #Under_limit; chk: L 0; U #Broken_cable; O #Under_limit; SPB load; hl: L 27648; U #Over_limit; SPB load; L #PEW_input; load: T #Pew_value; //;// Integer to real conversion L #Pew_value; DTR ; L 2.764800e+004; /R ; T #Value_0_1; //;// Scaled value L #HIGH_range; L #LOW_range; -R ; L #Value_0_1; *R ; L #LOW_range; +R ; T #Output_value_read; L #Output_value_read; L #Offset; +R ; T #Output_value_offset; //;// Out SET ; SAVE ; END_FUNCTION_BLOCKSrittura uscite analogiche da numero reale (virgola mobile)FUNCTION_BLOCK FB 96TITLE =Analog output writerAUTHOR : KeosVERSION : 1.0VAR_INPUT input : REAL ; //Analog input to write input_max : REAL ; //High limit input input_min : REAL ; //Low limit inputEND_VARVAR_OUTPUT output : WORD ; //Peripheral output ov_pos : BOOL ; //Positive overflow ov_neg : BOOL ; //Negative overflowEND_VARVAR_TEMP range : REAL ; outreal : REAL ; END_VARBEGINNETWORKTITLE =// Positive overflow check L #input; L #input_max; >R ; = #ov_pos; UN #ov_pos; SPB M001; L #input_max; // se overflow positivo, T #input; // copia il valore max in input SPA CALC; //;// Negative overflow checkM001: L #input; L #input_min; <R ; = #ov_neg; UN #ov_neg; SPB CALC; L #input_min; // se overflow negativo, T #input; // copia il valore min in input//;// Range calculationCALC: L #input_max; L #input_min; -R ; // converto il risultato in virgola mobile T #range; //;// Analog calculation L #input; L #input_min; -R ; ABS ; L #range; /R ; L 2.764800e+004; *R ; T #outreal; //;// Real to word format conversion L #outreal; TRUNC ; // converto a 32 bit T #output; // trasferisco a 16 bit//;// Out SET ; SAVE ; END_FUNCTION_BLOCKBuon LavoroMATTEO Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 14 febbraio 2004 Segnala Share Inserita: 14 febbraio 2004 p.s. Per base 10s e' 3000 non 300 ! Link al commento Condividi su altri siti More sharing options...
pupi Inserita: 16 febbraio 2004 Autore Segnala Share Inserita: 16 febbraio 2004 grazie mille 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