pallacanestro Inserito: 22 novembre 2013 Segnala Share Inserito: 22 novembre 2013 Salve sono da poco alle prese con un PLC della OMRON precisamente il CP1E-N20DR-D della OMRON e devo realizzare un programma che mi consenta di fare l'invecchiamento di maniglioni antipanico impostando da pannello il numero di cicli. Premetto che è la prima volta che uso il LADDER, anche se ne ho sempre sentito parlare. Fino adesso sono riuscito ad attivare gli attuatori che mi consentono l'apertura e la chiusura del portone in funzione del loro posizionamento rilevato da cellule fotoelettriche. Quello che non riesco a fare e far ricominciare il ciclo e continuare fino a un determinato numero. La logica da programmatore dice di far partire una subroutine ogni volta che il contatore decresce. Ma come creo una subroutine e come faccio a richiamarla ogni volta? Gentilmente mi potrreste dare qualche consiglio o farmi avere un esempio? Attendo e ringrazio Claudio Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 22 novembre 2013 Segnala Share Inserita: 22 novembre 2013 Ciao, premetto che non conosco i plc omron, ma io procederei nel metodo classico: ogni volta che inizi un ciclo allo stesso tempo incrementi un contatore. Con un blocco di confronto (uguale a) ripeti il tuo ciclo finchè il numero di cicli è uguale al numero di cicli impostati; a questo punto resetti il bit che dava luogo al ciclo, resetti il contatore ed attendi nuovi comandi. Questo in linea generale, poi non conosco il problema nello specifico Matteo Link al commento Condividi su altri siti More sharing options...
Apam Inserita: 22 novembre 2013 Segnala Share Inserita: 22 novembre 2013 Ciao pallacanestro, se hai necessità di usare le subroutine ti spiego io cosa sono: una subroutine è praticamente una parte di programma che può essere richiamata più volte. Per Omron esistono sue tipologie di subroutine: locali e globali. Quelle locali devono essere definite e richiamate sempre e soltanto nello stesso task. Chiamata della subroutine utilizzando l’istruzione SBS (anche in più punti del programma all’interno del task) e istruzioni SBN che determina l'inizio del "corpo" della subroutine e infine RET che determina la fine del "corpo" della subroutine. Mentre quelle globali possono essere richiamate da più task differenti tramite l'istruzione GSBS. In questo caso tutte le subroutine globali devono essere definite all'interno del task ad interrupt 00 tramite le istruzioni GSBN e GRET. ATTENTO a non associare ad una subroutine locale lo stesso numero già assegnato ad una subroutine globale e viceversa. Spero di esserti stato d'aiuto. CIAO!!! Link al commento Condividi su altri siti More sharing options...
harl Inserita: 22 novembre 2013 Segnala Share Inserita: 22 novembre 2013 se magari fai un piccolo schema del ciclo aiuterebbe, ma rimango dell'idea di fare un ciclo dando un on ciclo ed un off ciclo, e di ripeterlo le volte che vuoi con un incremento che raggiunto il valore voluto ferma il tutto Link al commento Condividi su altri siti More sharing options...
eliomacc Inserita: 25 novembre 2013 Segnala Share Inserita: 25 novembre 2013 Se definisci un poco meglio il ciclo che devi eseguire potremmo aiutarti di più, in linea di massima se il processo è sempre uguale e cambiano solamente il numero di ripetizioni penso anch'io che la via più breve sia quella di un incremento o un contatore appoggiato ad una DM 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