barbato giuseppe Inserito: 9 maggio 2005 Segnala 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
Matteo Montanari Inserita: 9 maggio 2005 Segnala 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.
barbato giuseppe Inserita: 10 maggio 2005 Autore Segnala 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
Matteo Montanari Inserita: 10 maggio 2005 Segnala 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.
barbato giuseppe Inserita: 10 maggio 2005 Autore Segnala Inserita: 10 maggio 2005 ok appena posso ti posto la parte di programma cosìne discutiamo insieme
Matteo Montanari Inserita: 10 maggio 2005 Segnala Inserita: 10 maggio 2005 ok aspettonon è un problema per me leggere il codice in AWL, risulta anche più semplice postarlo.
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala 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
Matteo Montanari Inserita: 11 maggio 2005 Segnala 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à.
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala Inserita: 11 maggio 2005 scusa come faccio a creare la variabile temporanea in real#TEMP_0non l'ho mai fatto
jake Inserita: 11 maggio 2005 Segnala 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
barbato giuseppe Inserita: 11 maggio 2005 Autore Segnala Inserita: 11 maggio 2005 ok fatto funzionaaaaaaaaaaa
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