barbato giuseppe Inserito: 9 maggio 2005 Segnala Share Inserito: 9 maggio 2005 ciao sono nuovo sul forum e mastico un po di s7vorrei sapere come faccio a calcolare il tempo di permanenza in un forno a reteavendo un sensore che legge 4 impulsi su una ruota dentata Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 9 maggio 2005 Segnala Share Inserita: 9 maggio 2005 utilizzi un contatore e calcoli opportuni:utilizzando il segnale che ti viene fornito dal sensore puoi verificare che il forno è in marcia, e sai anche quanto tempo / spazio il forno ha percorso tra un impulso e l'altro.mettiamo che hai contato 40 impulsi e tra un impulso e l'altro (caratteristiche meccaniche) passono 10 secondi il totale è 400 secondi.per avere una precisione più accurata dovresti avere più impulsi/giro.per realizzare il tutto sottoforma di programma puoi utilizzare un contatore (attento che conta sino a 999) oppure incrementare una varibile (MB, MW, DBB, DBW) ricordanti di azzerare il valore quando non ti serve. Link al commento Condividi su altri siti More sharing options...
barbato giuseppe Inserita: 10 maggio 2005 Autore Segnala Share Inserita: 10 maggio 2005 ti ringrazio ma vorrei qualche esempioio ne ho trovato qualcuno che utilizza divisioni a virgola mobile,ma nonci capisco proprio tanto scusate se voglio imparare grazie Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 10 maggio 2005 Segnala Share Inserita: 10 maggio 2005 come prima cosa devi continuare nello stesso messaggio, crearne uno nuovo, oltre che creare confusione nel seguire la discussione, utilizzi spazio.scusate se voglio impararenon è un difetto ma un pregio, quindi niente scuse (non sono necessarie)ti ringrazio ma vorrei qualche esempioio ne ho trovato qualcuno che utilizza divisioni a virgola mobile,ma nonci capisco proprio tantopotresti mettere il sorgente di questi esempi, lavorando su qualcosa, a piccoli passi è utilie se si hanno a disposizione le stesse cose.le divioni in virgola mobile (/R) non sono complesse, è come utilizzare Il PLC come un calcolatrice e numeri con decimali.dal punto di vista pratico sono molto precise, i decimali, dal punto di vista del PLC occorrono risorse maggiori (rispetto all'utilizzo di un contatore).personalmente io preferisco utilizzare il vilrgola mobile solamente dove è necessario. Link al commento Condividi su altri siti More sharing options...
barbato giuseppe Inserita: 10 maggio 2005 Autore Segnala Share Inserita: 10 maggio 2005 ok appena posso ti posto la parte di programma cosìne discutiamo insieme Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 10 maggio 2005 Segnala Share Inserita: 10 maggio 2005 ok aspettonon è un problema per me leggere il codice in AWL, risulta anche più semplice postarlo. Link al commento Condividi su altri siti More sharing options...
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala Share Inserita: 11 maggio 2005 come promesso ti posto il sorgente si chiama veloxvoglio cercare di snellirlo e renderlo più facile da leggere[FUNCTION "VELOX" : VOID TITLE = VERSION : 0.1 BEGIN NETWORK TITLE = //E4.0 SENSORE CONTA IMPULSI SU FRONTE DI DISCESA INCREMENTA MD100 // U "E4.4"; FN M 50.0; SPBNB _001; L 1.000000e+000; L MD 100; +R ; T MD 100; _001: NOP 0; NETWORK TITLE = //CONFRONTO MD100 SU DIVERSO DA ZERO,CON BIT SISTEMA M250.5 TEMPO 1SEC INCREMENTO //MD105 X CONTEGGIO TEMPO IMPIEGATO X UN GIRO COMPLETO DI RUOTA VALORE IN MD105=s U( ; L MD 100; L 0.000000e+000; <>R ; ) ; UN "E2.3"; U "M250.5"; FP M 50.1; SPBNB _002; L 1.000000e+000; L MD 105; +R ; T MD 105; _002: NOP 0; NETWORK TITLE = //CONFRONTO MD100 >=4 MUOVO IL VALORE DI MD105=SEC IN MD110. E AZZERO IL TUTTO X //UN NUOVO CONTEGGIO DI TEMPO U( ; L MD 100; L 4.000000e+000; >=R ; ) ; U "E4.4"; FP M 50.2; = L 0.0; U L 0.0; SPBNB _003; L MD 105; T MD 110; _003: NOP 0; U L 0.0; SPBNB _004; L 0; T MD 100; _004: NOP 0; U L 0.0; SPBNB _005; L 0; T MD 105; _005: NOP 0; NETWORK TITLE = //ASZZERAMENTO X FERMO FORNO U "E2.3"; SPBNB _006; L 0; T MD 110; _006: NOP 0; NETWORK TITLE = //MD110=sec;MD115=MD110\60sec=tempo in minuti; MD120=0,8m\MD115=velocita m\min //0,8m=LUNGHEZZA PERCORSA X UN GIRO DI RUOTA DALLA RETE O( ; L MD 110; L 6.000000e+001; /R ; T MD 115; UN OV; SAVE; CLR ; U BIE; ) ; O( ; L 8.000000e-001; L MD 115; /R ; T MD 120; UN OV; SAVE; CLR ; U BIE; ) ; = M 50.3; NETWORK TITLE =TEMPO TOTALE //DIVIDO LA LUNGHEZZA TOTALE DEL FORNO L=25,5m/MD120=MD140 TEMPO TOTALE //IN MINUTI IMPIEGATO DALLA BOTTIGLIA PER PERCORRERE TUTTO IL FORNO L 2.550000e+001; L MD 120; /R ; T MD 140; NOP 0; END_FUNCTIONti ringrazio dell'aiuto che mi potrai dare ora ed in futuro Link al commento Condividi su altri siti More sharing options...
Matteo Montanari Inserita: 11 maggio 2005 Segnala Share Inserita: 11 maggio 2005 per come il programma è scritto, puoi tradurlo in Kop e renderlo più comprensibile da leggere.se invecie non hai problemi ad utilizzare AWL, si può semplificare senza utilizzare le memorie di appoggio per i calcoli da verificare se le memorie ti servono solo in questa parte di programma o sono utilizzate anche da altre parti.se per il conteggio dei secondi (MD105) è consigliato utilizzare un numero in virgola mobile (per renderlo conforme ai dati successivi) per i 4 conteggi degli impulsi puoi utilizzare benissimo un Byte (max 255).quindi facendo le dovute modifiche, il programma ti rilta in questo modo:// E4.4 SENSORE CONTA IMPULSI SU FRONTE DI DISCESA INCREMENTA MB100 //; U E 4.4 FN M 50.0 SPBNB _001 L 1 L MB 100 +I T MB 100 _001: NOP 0 //; // CONFRONTO MD100 SU DIVERSO DA ZERO,CON BIT SISTEMA M250.5 TEMPO 1SEC // INCREMENTO MD105 X CONTEGGIO TEMPO IMPIEGATO X UN GIRO COMPLETO DI RUOTA VALORE // IN MD105=s //; U( L MB 100 L 0 <>I ) UN E 2.3 U M 250.5 FP M 50.1 SPBNB _002 L 1.000000e+000 L MD 105 +R T MD 105 _002: NOP 0 //; // CONFRONTO MD100 >=4 MUOVO IL VALORE DI MD105=SEC IN MD110. E AZZERO IL TUTTO X // UN NUOVO CONTEGGIO DI TEMPO //; U( L MB 100 L 4 >=I ) U E 4.4 FP M 50.2 SPBNB _003 L MD 105 T MD 110 //; L 0 T MB 100 //; L 0 T MD 105 //; _003: NOP 0 //; // AZZERAMENTO X FERMO FORNO //; U E 2.3 SPBNB _004 L 0 T MD 110 _004: NOP 0 //; // Calcolo il tempo in minuti MD110\60sec=tempo in minuti //; L MD 110 L 6.000000e+001 /R T #TEMP_0 //; // Calcolo la velocita m\min // sapendo che 0,8m è uguale alla lunghezza percorsa // in un giro di ruota dentata dalla rete //; L 8.000000e-001 L #TEMP_0 /R T #TEMP_0 //; // Calcolo il tempo totale in minuti: // 25,5m è la lunghezza toale del forno e quindi // calcolo il tempo impiegato dalla bottiglia per // percorrere tutto il forno. //; L 2.550000e+001 L #TEMP_0 /R T MD 140ho ragguppato tutto in un unico segmento, per il semplice fatto che utilizzando MB100 come intero, il sistema non ti permette di tradurre in KOP il segmento.utilizzi la variabile temporanea #TEMP_0 impostata come REAL per eseguire i calcoli in appoggio (ex MD 115 e MD 120).un consiglio, anziche utilizzare numeri dispari (MD105) utilizza i numeri pari, ti viene più facile da impostare il programma, non cambia nulla a livello di compilazione del PLC, è solamente per comodità. Link al commento Condividi su altri siti More sharing options...
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala Share Inserita: 11 maggio 2005 scusa come faccio a creare la variabile temporanea in real#TEMP_0non l'ho mai fatto Link al commento Condividi su altri siti More sharing options...
jake Inserita: 11 maggio 2005 Segnala Share Inserita: 11 maggio 2005 Devi andare su contenuto di ambiente, TEMP e quindi scrivi il nome della variabile ed il tipo di dato.non riesco ad incollare l'immagine per farti vedere come fare.good luck, jake Link al commento Condividi su altri siti More sharing options...
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala Share Inserita: 11 maggio 2005 ok fatto funzionaaaaaaaaaaa 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