Selectron Inserito: 1 marzo 2018 Segnala Share Inserito: 1 marzo 2018 Buongiorno premetto di non essere un maestro nell'utilizzo di siemens s7 300 ho un piccolo quesito sicuramente sciocco, e forse già discusso in altri topic, io ho guardato ma non ho trovato nulla. mi spiego ho una macchina di cui ho fatto il programma, nessun problema, ma volevo implementarlo,vorrei metter nelle macchine future un timer che all fine di un tempo mi chiuda un uscita, per esempio indicando alla manutenzione il momento di cambio olio, cambio ricambi interni, pulizia parti interne. tempi vanno dalle 200 alle 1000 ore non riesco con i normali temporizzatori, per il limite di tempo. ho letto di usre gli sfb4 appogiandoli a una DB, ma ho letto che si resettano alla mancanza di IN. il temporizzatore in oggetto deve accumulare solo quando la macchina è in funzione non resettarsi alla mancanza dele segnale IN, o togliendo alimentazione al quadro o mettendo in stop e run la cpu, dovrebbe poter essere resettato solo da un comando a doc esempio pulsante di reset interno al quadro. se possiblie un esempio CPU312 uso step 7 v5.4 grazie moltte per la cortesia. Link al commento Condividi su altri siti More sharing options...
DesmoGiec Inserita: 1 marzo 2018 Segnala Share Inserita: 1 marzo 2018 Ciao. Quello che vuoi credo sia meglio farlo con dei "contatori", non dei timers.. Sfrutta il clock interno alla cpu. O nel caso ti crei un tempo che ogni secondo ti da un impulso. Ogni volta che hai l'impulso, incrementi di 1 il conteggio dei secondi. Quando arrivi a 60, incrementi di 1 il conteggio dei minuti e riporti a 0 i secondi. Quando arriverai a 60 minuti, azzererai il conteggio dei minuti e incrementerai quello delle ore. Alla fine ti basterà fare un confronto sul conteggio delle ore ed un preset da te scelto (che siano 200 o 1000 ore). Uso anche io questa funzione per la manutenzione in scadenza, mi appoggio a una db così a hmi possiamo vedere quante ore son passate e quante ne mancano. Ciao! Link al commento Condividi su altri siti More sharing options...
Selectron Inserita: 2 marzo 2018 Autore Segnala Share Inserita: 2 marzo 2018 On 3/1/2018 at 1:18 PM, DesmoGiec said: Ciao. Quello che vuoi credo sia meglio farlo con dei "contatori", non dei timers.. Sfrutta il clock interno alla cpu. O nel caso ti crei un tempo che ogni secondo ti da un impulso. Ogni volta che hai l'impulso, incrementi di 1 il conteggio dei secondi. Quando arrivi a 60, incrementi di 1 il conteggio dei minuti e riporti a 0 i secondi. Quando arriverai a 60 minuti, azzererai il conteggio dei minuti e incrementerai quello delle ore. Alla fine ti basterà fare un confronto sul conteggio delle ore ed un preset da te scelto (che siano 200 o 1000 ore). Uso anche io questa funzione per la manutenzione in scadenza, mi appoggio a una db così a hmi possiamo vedere quante ore son passate e quante ne mancano. Ciao! Innanzi a tutto grazie per la risposta DesmoGiec, come ho detto non sono un esperto su S7 300 ma quello che dici io lo faccio su telemecanique e allen ma qui ho dei problemi. non mi serve hmi non hanno schermo queste macchine. sarebbe possibile avere un esempio di come fare ? te ne sarei grato. attualmente sono in Malaysia e rispondero' in ritardo 7 h avanti. intanto oggi se riesco provo, sto installando altre macchine. posto anche la mia email se puo' essere utile sltrrt@gmail.com ti auguro una buona giornata, grazie ancora Link al commento Condividi su altri siti More sharing options...
DesmoGiec Inserita: 2 marzo 2018 Segnala Share Inserita: 2 marzo 2018 U M 10.0 //Sarà il tuo bit di clock a cadenza di un secondo FP M 11.0 //Uso un fronte perchè il bit di clock da me usato non è impulsivo SPBN _SEC L MW 100 //Carico la word di memorizzazione dei secondi + 1 //Sommo 1 T MW 100 //Trasferisco in word secondi _SEC: L MW 100 //Carico i secondi L 60 //Carico 60 >=I //Se word secondi => 60 SPBN _MIN //Salto a _MIN se il compare è falso L MW 102 //Carico word dei minuti + 1 //Sommo 1 T MW 102 //Trasferisco in word minuti L 0 //Azzero la word dei secondi T MW 100 _MIN: L MW 102 //Carico i minuti L 60 //Carico 60 >=I //Se word minuti => 60 SPBN _HRS //Salto a _HRS se il compare è falso L MW 104 //Carico word delle ore + 1 //Sommo 1 T MW 104 //Trasferisco in word delle ore L 0 //Azzero la word dei minuti T MW 102 _HRS: NOP 0 Te l'ho fatto su mw, se non sono ritentive nel tuo plc si azzereranno ad ogni riaccensione del plc. Per generare l'allarme, confronterai la mw104 che sarà quella delle ore. La stessa cosa si può fare con i contatori veri e propri, poi va a comodità! Link al commento Condividi su altri siti More sharing options...
Selectron Inserita: 2 marzo 2018 Autore Segnala Share Inserita: 2 marzo 2018 On 3/1/2018 at 1:18 PM, DesmoGiec said: Ciao. Quello che vuoi credo sia meglio farlo con dei "contatori", non dei timers.. Sfrutta il clock interno alla cpu. O nel caso ti crei un tempo che ogni secondo ti da un impulso. Ogni volta che hai l'impulso, incrementi di 1 il conteggio dei secondi. Quando arrivi a 60, incrementi di 1 il conteggio dei minuti e riporti a 0 i secondi. Quando arriverai a 60 minuti, azzererai il conteggio dei minuti e incrementerai quello delle ore. Alla fine ti basterà fare un confronto sul conteggio delle ore ed un preset da te scelto (che siano 200 o 1000 ore). Uso anche io questa funzione per la manutenzione in scadenza, mi appoggio a una db così a hmi possiamo vedere quante ore son passate e quante ne mancano. Ciao! non so come ringraziarti. ti offrirei una cena se fossi in Italia. ora provero' a scriverlo e a trasformalo in KOP perche io lo ammetto non uso AWL . tutto il programma e' in KOP , penso ci sia una funzione che puo' farlo. come ho detto prima non sono un esperto di S7-300, e non uso AWL e me ne vergogno. chiedo un ultima cosa posso usare una parte KOP e una AWL? Buon Weekend per me e' gia' Venerdi sera grazie immensamente per la cortesia Link al commento Condividi su altri siti More sharing options...
DesmoGiec Inserita: 2 marzo 2018 Segnala Share Inserita: 2 marzo 2018 Con il 300 puoi avere sia kop che awl nel programma. Con l'editor aperto puoi cambiare a piacimento il metodo di visualizzazione. Il codice che ti ho scritto non riesci a convertirlo automaticamente in awl però. Questa è la trasposizione in kop Puoi usare i contatori se vuoi, io mi trovo meglio in questo modo però Link al commento Condividi su altri siti More sharing options...
Selectron Inserita: 3 marzo 2018 Autore Segnala Share Inserita: 3 marzo 2018 boungiorno ho provato ma ho dovuto cambiare il merker m10 gia utilizzato, nel programma, ho usato m100. ho abilitato il merker di clock 100 sulla cpu, ho utilizzato m100.5 essendo il clock a 1 sec ho rinominato le mw perchè se non sbaglio la mw 100 = 2 bytes mb100 mb101 e mb 100 e 8 byte m100.0 fino a m100.7 le tue mw 100 diventano mw103 le mw 102 diventano mw107 le mw 104 diventano mw105. alla fine ho utilizzato mw 105 per un set di una bobina. il tutto funziona ma la mw 107 conta i secondi e si riazzera la mw 105 i minuti la mw 103 teoricamente dovrebbe essere dei secondi non si muove. poi se potevo chiedere posso ritenere le ore perchè altrimenti ad una nuova accensione del plc si azzera il tutto so che per uno pratico queste sono banalità. io ci lavoro una volta all,anno su s7, e ogni volta mi dimentico. grazie e buona Domenica. Link al commento Condividi su altri siti More sharing options...
ken Inserita: 3 marzo 2018 Segnala Share Inserita: 3 marzo 2018 ti conviene utilizzare dei blocchi dati (DB) sono ritentivi. Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 3 marzo 2018 Segnala Share Inserita: 3 marzo 2018 Ciao Ho provato a capire i tuoi cambiamenti, ma non mi sono chiari . Ma non puoi lasciare i merker come te li ha messi Desmo e cambiare il MB di clock con uno libero? Es. MB200....... Poi confermo anch'io, meglio se ti crei un DB. Link al commento Condividi su altri siti More sharing options...
Selectron Inserita: 4 marzo 2018 Autore Segnala Share Inserita: 4 marzo 2018 Buongiorno grazie per le risposte Beppo hai ragione ho cambiato i merker perchè già utilizzati in altre parti del programma ,ora funziona. altro problema càe un modo per ritenere per esempio solo i merker 50.0 fino 050.7 ho guardato ma la cpu mi dice da m0.0 a maerker m-.- fino a 256, non voglio ritenere tutti i merker ma solo 8 o 16. CPU 314c-2ptp la prossima settimana sono in Vietnam per altre due macchine e anche queste hanno siemens S 7-300 un metodo sicuro per fare una copia del programma, secondo voi, puo' essere questa: " apro un nuovo progetto su simatic manager" " vado online" " sistema di destinazione, Carica nel pg" puo' funzionare? so che cosi non ho i commenti. esiste un metodo per tirare su anche i commenti, e il programma completo? Grazie a tutti per la pazienza Buon Voto Link al commento Condividi su altri siti More sharing options...
pilota60 Inserita: 4 marzo 2018 Segnala Share Inserita: 4 marzo 2018 L'unico modo per avere i commenti è avere il progetto. Con i commenti. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 4 marzo 2018 Segnala Share Inserita: 4 marzo 2018 Quote tempi vanno dalle 200 alle 1000 ore Secondo me, non vale la pena incrementare ore e minuti. Fai un unico contatore che conta i secondi. Con il conteggio in secondi su una DINT ne hai per quasi 70 anni. Un solo conteggio risulta più pratico se devi fare comparazioni. Poi, se vuoi visualizzare i tempi in hh:mm:ss, puoi fare delle divisioni ed usare il resto della divisione (vedi istruzione MOD). Link al commento Condividi su altri siti More sharing options...
Selectron Inserita: 5 marzo 2018 Autore Segnala Share Inserita: 5 marzo 2018 Buongiorno grazie a tutti per le risposte scusate per la mia ignoranza su s7-300, sicuramente sono cose semplici per tutti voi. grazie Batta per il suggerimento ci provero'. per avere dei merker che allo spegnimento non si azzerano come posso fare ? se uso una db che ho configuato con minuti e ore abilitando dbw 2 e dbw 4 come facico a scrivere su questa db i minuti per esempio da mw 104 ? dopo devo fare un confronto e quando arriva a 10min attivare un merker che allo spegnimento non si resetta ma che debba essere resettato esternamente esempio con un pulsante? se possibile un esempio in kop. so di essere veramente schiappa, e di chiedere molto. scusate e grazie a tutti per la pazienza. Link al commento Condividi su altri siti More sharing options...
ken Inserita: 5 marzo 2018 Segnala Share Inserita: 5 marzo 2018 i db funzionano come mw, quindi apri un db. inserisci tre righe. ore, minuti, secondi; tutti dichiarati come intero (int). nel tuo progetto al posto di mw104 ci scriverai dbxx.dbwyyy dove xx è il numero del db e yy il numero della word dichiarata come intero. in un db nuovo saranno dbw0 - dbw2 - dbw4 prendi in considerazione il consiglio di batta. in quel caso invece di int dovrai usare dint Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 5 marzo 2018 Segnala Share Inserita: 5 marzo 2018 Se invece di scrivere in delle FC con dei db di appoggio ,usassi degli FB potresti farti un blocco conteggio riusabile , dove in entrata prevedi un ingresso di reset , la DINT suggerita da batta la metti nella sezione Static così sarebbe ritentiva , poi magari mandi in uscita i giorni , ore , minuti e secondi. 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