"Interrupt" Omron CPM1A
-
- Faça a sua apresentação
- Mensagens: 10
- Registado: 03 jun 2009, 22:32
"Interrupt" Omron CPM1A
Boas,
Estou a fazer um trabalho onde é necessario fazer um genero de uma pausa no programa, tipo, tenho um botao que quando carrego nesse botão todo o programa entra em pausa, temporizadores, tudo. Quando carrego em outro botão entra em funcionmneto desde onde parou. Parece-me que a função "INTERRUPT" resolve esse problemas mas não estou a conseguir implementa-la no programa.
Alguem que tem algumas luzes de como se deve fazer???
Obrigado
Abraço a comunidade.
Estou a fazer um trabalho onde é necessario fazer um genero de uma pausa no programa, tipo, tenho um botao que quando carrego nesse botão todo o programa entra em pausa, temporizadores, tudo. Quando carrego em outro botão entra em funcionmneto desde onde parou. Parece-me que a função "INTERRUPT" resolve esse problemas mas não estou a conseguir implementa-la no programa.
Alguem que tem algumas luzes de como se deve fazer???
Obrigado
Abraço a comunidade.
Re: "Interrupt" Omron CPM1A
Um interrupt não tem nada a ver com isso, nem deves para a execução de um programa.
1º
Um interrupt é uma interrupção ao programa normal para correr um pequeno programa de interrupt. Por norma tens o programa a correr, ler as entradas e alterar as saídas de acordo (simplificando), e esse programa a correr demora alguns milisegundos, agora imagina que tens que fazer alguma coisa e que não podes esperar alguns milisegundos, por exemplo sincronismo entre eixos (microsegundo), cálculos PID, comunicações, etc... nesta circunstâncias usam um interrupt, quando necessitas, parar o programa normal e corres um pequeno programa do interrupt.
2º
Nunca deves parar a execução de um programa, é possível parar a execução de um programa, se por exemplo fizeres um salto (jmp) para a linha/instrução a cima, tens um ciclo infinito, o resultado será: em primeiro lugar enquanto corre esse ciclo, não lê as entradas nem altera as saídas, fica bloqueado, depois o autómato vai parar (STOP ou Program) por watchdog. Portanto para o programa não resolve a situação, imagina que em vez de teres um botão tens 30 botões para fazer "pausas" a 30 coisas diferentes, se parasses o programa num botão bloqueavas o processamento das restantes.
O que te pediram para fazer, é para seres TU a fazer, só assim é que aprendes a programar, a programação é uma coisa esquisita, não se estuda, não se decora, aprende-se. E para aprender, tens que ser TU a fazer os exercícios. Nós ajudamos no que podermos, mas acredita se não tentares fazer estes pequenos exercícios nunca conseguirás fazer nada, é como a matemática...
1º
Um interrupt é uma interrupção ao programa normal para correr um pequeno programa de interrupt. Por norma tens o programa a correr, ler as entradas e alterar as saídas de acordo (simplificando), e esse programa a correr demora alguns milisegundos, agora imagina que tens que fazer alguma coisa e que não podes esperar alguns milisegundos, por exemplo sincronismo entre eixos (microsegundo), cálculos PID, comunicações, etc... nesta circunstâncias usam um interrupt, quando necessitas, parar o programa normal e corres um pequeno programa do interrupt.
2º
Nunca deves parar a execução de um programa, é possível parar a execução de um programa, se por exemplo fizeres um salto (jmp) para a linha/instrução a cima, tens um ciclo infinito, o resultado será: em primeiro lugar enquanto corre esse ciclo, não lê as entradas nem altera as saídas, fica bloqueado, depois o autómato vai parar (STOP ou Program) por watchdog. Portanto para o programa não resolve a situação, imagina que em vez de teres um botão tens 30 botões para fazer "pausas" a 30 coisas diferentes, se parasses o programa num botão bloqueavas o processamento das restantes.
O que te pediram para fazer, é para seres TU a fazer, só assim é que aprendes a programar, a programação é uma coisa esquisita, não se estuda, não se decora, aprende-se. E para aprender, tens que ser TU a fazer os exercícios. Nós ajudamos no que podermos, mas acredita se não tentares fazer estes pequenos exercícios nunca conseguirás fazer nada, é como a matemática...
Ricardo Timóteo
-
- Faça a sua apresentação
- Mensagens: 10
- Registado: 03 jun 2009, 22:32
Re: "Interrupt" Omron CPM1A
Em primeiro quero agradecer pela resposta, estou de acordo consigo, tenho de ser eu a fazer... apenas peço algumas pistas uma vez que ja perdi umas horitas a tentar fazer com o "interrupt" e afinal não dá...
Obrigado a mesma
Abraço
Obrigado a mesma
Abraço
- nelmindo
- Team Apoio
- Mensagens: 5438
- Registado: 14 abr 2008, 10:52
- Localização: PORTO
- Has thanked: 23 times
- Been thanked: 201 times
Re: "Interrupt" Omron CPM1A
Subscrevo tudo o que disse e acrescento:nokPT Escreveu:Um interrupt não tem nada a ver com isso, nem deves para a execução de um programa.
1º
Um interrupt é uma interrupção ao programa normal para correr um pequeno programa de interrupt. Por norma tens o programa a correr, ler as entradas e alterar as saídas de acordo (simplificando), e esse programa a correr demora alguns milisegundos, agora imagina que tens que fazer alguma coisa e que não podes esperar alguns milisegundos, por exemplo sincronismo entre eixos (microsegundo), cálculos PID, comunicações, etc... nesta circunstâncias usam um interrupt, quando necessitas, parar o programa normal e corres um pequeno programa do interrupt.
2º
Nunca deves parar a execução de um programa, é possível parar a execução de um programa, se por exemplo fizeres um salto (jmp) para a linha/instrução a cima, tens um ciclo infinito, o resultado será: em primeiro lugar enquanto corre esse ciclo, não lê as entradas nem altera as saídas, fica bloqueado, depois o autómato vai parar (STOP ou Program) por watchdog. Portanto para o programa não resolve a situação, imagina que em vez de teres um botão tens 30 botões para fazer "pausas" a 30 coisas diferentes, se parasses o programa num botão bloqueavas o processamento das restantes.
O que te pediram para fazer, é para seres TU a fazer, só assim é que aprendes a programar, a programação é uma coisa esquisita, não se estuda, não se decora, aprende-se. E para aprender, tens que ser TU a fazer os exercícios. Nós ajudamos no que podermos, mas acredita se não tentares fazer estes pequenos exercícios nunca conseguirás fazer nada, é como a matemática...
Dependendo da situação um JMP ou um IL (interlock) pode dar jeito. Fazem coisas semelhantes.
Re: "Interrupt" Omron CPM1A
Explica melhor o que necessitas de fazer, o enunciado ou assim...raiossauro Escreveu:Em primeiro quero agradecer pela resposta, estou de acordo consigo, tenho de ser eu a fazer... apenas peço algumas pistas uma vez que ja perdi umas horitas a tentar fazer com o "interrupt" e afinal não dá...
Obrigado a mesma
Abraço
Podem dar jeito, mas na minha opinião:nelmindo Escreveu:
Subscrevo tudo o que disse e acrescento:
Dependendo da situação um JMP ou um IL (interlock) pode dar jeito. Fazem coisas semelhantes.
* um JMP deve-se evitar sempre que possível por vários motivos que só se percebe quando se fazem programas muito complexos
* um IL (que eu saiba) só há na Omron, pelo que também se deve evitar e pensar em usar instruções mais universais
Ricardo Timóteo
-
- Faça a sua apresentação
- Mensagens: 10
- Registado: 03 jun 2009, 22:32
Re: "Interrupt" Omron CPM1A
VIVA, bom dia,
O que necessito de fazer é o seguinte:
Tenho uma passadeira conde em um determinado sitio são seleccionadas peças, essas peças são identificadas através de dois sensores, ex. uma peça baixa só é detectada pelo sensor 1, a peça alta é detectada pelos dois sensores, depos através de dois temporizadores a peça é retirada do tapete através de cilindros pneumáticos que a empurram para a respectiva caixa. Até aqui ja tenho a funcionar correctamente, agora o que pretendo alem disto é através de dois botoes, um botão faz pause ao sistema ( tem de parar os temporizadores), e quando carrego noutro retoma o funcionamento. Tenho andado a ver e tenho uma solução para parar o temporizador que é utilizando "STIM" e em C1 introduzir o valor "10", C2-0 C3-0. Mas depois não sei como recomeça.
Isto tudo será apenas para uma peça de cada vez.
Nota. Gostaria de fazer tambem para o caso de ir varias peças seguidas as outras, alguma pista de como o fazer???
Não quero que me diga exatamente como o fazer mas sim algumas luzes de como o fazer, depois irei reportando como decorre.
Obrigado pelo seu tempo
O que necessito de fazer é o seguinte:
Tenho uma passadeira conde em um determinado sitio são seleccionadas peças, essas peças são identificadas através de dois sensores, ex. uma peça baixa só é detectada pelo sensor 1, a peça alta é detectada pelos dois sensores, depos através de dois temporizadores a peça é retirada do tapete através de cilindros pneumáticos que a empurram para a respectiva caixa. Até aqui ja tenho a funcionar correctamente, agora o que pretendo alem disto é através de dois botoes, um botão faz pause ao sistema ( tem de parar os temporizadores), e quando carrego noutro retoma o funcionamento. Tenho andado a ver e tenho uma solução para parar o temporizador que é utilizando "STIM" e em C1 introduzir o valor "10", C2-0 C3-0. Mas depois não sei como recomeça.
Isto tudo será apenas para uma peça de cada vez.
Nota. Gostaria de fazer tambem para o caso de ir varias peças seguidas as outras, alguma pista de como o fazer???
Não quero que me diga exatamente como o fazer mas sim algumas luzes de como o fazer, depois irei reportando como decorre.
Obrigado pelo seu tempo
Re: "Interrupt" Omron CPM1A
Por tanto, queres pausar o tempo do temporizador, é isso?
Não me lembro se esse autómato tem temporizadores retentivos, os temporizadores normais, vão a zero (o tempo) quando a entrada desaparece, os retentivos param de contar o tempo, mas mantêm o valor (não vão a zero) quando a entrada desaparece. Se esse autómato tiver estes temporizadores.
Outra hipótese é associares um temporizador e um "contador" o temporizador conta um tempo sempre igual (1s, 100ms, 10ms, outro valor que te dê jeito) ciclicamente, e se a entrada estiver activa decrementa (ou incrementa) o contador, quando o cotador tiver chegado a zero (ou ao valor do tempo) faz o que tem a fazer, se entretanto a entrada desaparecer não conta.
Vê lá se ajuda
Não me lembro se esse autómato tem temporizadores retentivos, os temporizadores normais, vão a zero (o tempo) quando a entrada desaparece, os retentivos param de contar o tempo, mas mantêm o valor (não vão a zero) quando a entrada desaparece. Se esse autómato tiver estes temporizadores.
Outra hipótese é associares um temporizador e um "contador" o temporizador conta um tempo sempre igual (1s, 100ms, 10ms, outro valor que te dê jeito) ciclicamente, e se a entrada estiver activa decrementa (ou incrementa) o contador, quando o cotador tiver chegado a zero (ou ao valor do tempo) faz o que tem a fazer, se entretanto a entrada desaparecer não conta.
Vê lá se ajuda
Ricardo Timóteo
-
- Faça a sua apresentação
- Mensagens: 10
- Registado: 03 jun 2009, 22:32
Re: "Interrupt" Omron CPM1A
Penso que estou a perceber, por cada unidade de tempo que o temporizador decremente é dado um impulso ao contador, quando o contador atingir o numero equivalente ao valor em tempo pretendido activa a saída.
Vou tentar assim, mais uma vez obrigado.
Abraço
Vou tentar assim, mais uma vez obrigado.
Abraço