LusoRobótica - Robótica em Português
Sistemas específicos => PIC => Tópico iniciado por: jp_ em 24 de Outubro de 2009, 23:25
-
Olá a todos,
Que acham da ideia de criarmos aqui no forum um PLC open source??
Com um PIC ou AVR ou porque não ambos.
Alguém se quer juntar, para fazer uma coisa que se possa mostrar?
como uma imagem vale mais que mil palavras aqui vai o que pretendo.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi49.tinypic.com%2F2lbpc38.jpg&hash=86f8e1615ef3fb1dc2ce10d86c83e39de5b89112)
Tenho algum trabalho a nível de hardware já feito:
Vejam os atalhos e o anexo, um pdf que pode ser útil.
jp_
-
Eu gosto da ideia, com tudo bem definido posso dar o meu contributo. :)
-
Já me lembrei de fazer algo idêntico com um arduino mega...
A parte que mais me agradou foi fazer o software nesse hipotético projecto que eu tinha idealizado...
Portanto assim que "juntar-mos forças" podemos começar ;)
-
Agora explica o que é um PLC como se eu não soubesse o que é uma resistência.
-
(Eu estava-me a referir a um pseudo simulador de PLC feito com o arduino mega)
-
Estou na mesma :-s
-
Ah bom... O pedido de explicação era para mim...
Ora bem um PLC (Programmable Logic Controller) ou CLP(Controlador Lógico Programável) basicamente é um controlador que tu programas de modo a que dependendo do estado das entradas e do teu código, ele actua nas saídas... isto muito resumidamente...
Depois ainda tens contadores, timers, funções específicas bla bla bla & so on...
Eu trabalhei com autómatos( PLC's) da Omron ...
-
Eu gosto da ideia, com tudo bem definido posso dar o meu contributo. :)
Olá metRo,
ainda bém que apoias a ideia, tenho a certeza que vamos conseguir em conjunto com todos os que se queiram juntar para acrescentar algo de funcional ao PLC.
Muito bém, vamos começar a defenir as caracteristicas e todos os pormenores.
Como já referi tenho algum trabalho feito e testado a nível de hardware Com o PIC 16f628a e com PIC16f876a mas só implementei entradas e saídas digitais.
- desta vez queria incluir entradas e saídas analógicas.
- o Microcontrolador estou a pensar no PIC16f886 /887 mas podemos começar por explorar ao máximo as potencialidades do 16f628a que ainda não está descontinuado, como é o caso do 16f876a / 877.
-Porta serie (estou inclinado para USB uma vez que DB9 já não vem com os PCs)
- usar o microcontrolador com um bootloader ( já testei o Tiny bootloader)
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
desta forma evitamos problemas de
interferir com as entradas ou saidas no acto de programar pela ficha ISP.
- O software que estou a usar para programar os tres exemplares que tenho em funcionamento é este:
http://www.cq.cx/ladder.pl# (http://www.cq.cx/ladder.pl#)
Ora bém eu vou preparar um diagrama de blocos para descrever o que tenho feito e o que gostava de implementar, quando estiver pronto actualizarei no primeiro post. Podere-mos começar a trabalhar a partir daí, estudando todas as sugestões, e aplicar as que forem executaveis.
jp_
-
Já me lembrei de fazer algo idêntico com um arduino mega...
A parte que mais me agradou foi fazer o software nesse hipotético projecto que eu tinha idealizado...
Portanto assim que "juntar-mos forças" podemos começar ;)
Olá SamPereira,
Muito bém como já referi eu estou a usar o seguinte compilador:
http://www.cq.cx/ladder.pl# (http://www.cq.cx/ladder.pl#)
Que têm muitas limitações mas funciona muito bém.
e pode ser usado quer para AVR ou PIC.
Achas que podes dar uma ajuda no compilador?
Este PLC que quero construir tem que ter a possibilidade de ser programado em Ladder, claro que eu gostaria de poder introduzir uma janela com codigo em C e o compilador o entendesse e compilasse.
Agora explica o que é um PLC como se eu não soubesse o que é uma resistência.
Ah bom... O pedido de explicação era para mim...
Ora bem um PLC (Programmable Logic Controller) ou CLP(Controlador Lógico Programável) basicamente é um controlador que tu programas de modo a que dependendo do estado das entradas e do teu código, ele actua nas saídas... isto muito resumidamente...
Depois ainda tens contadores, timers, funções específicas bla bla bla & so on...
Eu trabalhei com autómatos( PLC's) da Omron ...
Bom em linhas gerais penso que está bém explicado o Significado de PLC.
Eu só acrecentaria o seguinte:
Um PLC está preparado para trabalhar em ambientes industriais sugeitos a ruidos electricos e tem que ser robusto em termos mecánicos.
Normalmente as saídas são a transistores em montagem de colector aberto ou com contacto normalmente aberto.
As entradas digitais normalmente funcionam a 24VDC e as analógicas normalmente são de 0-10V ou 4-20mA.
As saídas analógicas podem ser com os mesmos valores que as entradas analógicas.
São Programados numa linguagem acessível (ladder) que é uma linguagem que se assemelha muito com os diagramas de automação convêncionais.
jp_
-
Eu já usei alguns PLC da Mitsubishi há uns anos.... :)
Neste momento, este projecto é exactamente a mesma coisa que estou a "estudar" pois ando a desenvolver uma máquina autónoma para a empresa do meu pai e nada melhor que um PLC para controlo :D
Podem contar com a minha ajuda no que conseguir ;)
-
Eu já usei alguns PLC da Mitsubishi há uns anos.... :)
Neste momento, este projecto é exactamente a mesma coisa que estou a "estudar" pois ando a desenvolver uma máquina autónoma para a empresa do meu pai e nada melhor que um PLC para controlo :D
Podem contar com a minha ajuda no que conseguir ;)
Olá Fifas, de certo que servirá, com a ajuda de todos de certo que sairá daqui um PLC que se possa mostrar.
Mas em relação ao teu projecto se só precisares de entradas e saídas digitais é so aguardares mais um pouco que irei postar os circuitos que já estão testados e a funcionar e é, só montar e progarmar...
vai passando por aqui e "opina" eu diria antes "opinem"
Como devem ter reparado alterei o assunto do post.
Acrescentei um RTC e porta USB.
Aguardo sugesto?s para estes acessórios.
A porta USB acho que vai ser esta:
http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html (http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html)
que dizem está acessível ou vamos à concorrência ;D ;D
Para o RTC preciso de ajuda.
jp_
-
explica melhor para que seria o RTC.
-
Olá Fifas, de certo que servirá, com a ajuda de todos de certo que sairá daqui um PLC que se possa mostrar.
Mas em relação ao teu projecto se só precisares de entradas e saídas digitais é so aguardares mais um pouco que irei postar os circuitos que já estão testados e a funcionar e é, só montar e progarmar...
vai passando por aqui e "opina" eu diria antes "opinem"
Sim, eu sei que há maneiras mais simples. Mas agora pensa tu se nao será mais simples ter uma plataforma que possa testar em varias maquinas, etc...Fazendo depois uma versao final adaptada a cada uma delas, mas para testes, penso ser melhor um PLC nao? :)
-
Eu já usei alguns PLC da Mitsubishi há uns anos.... :)
Neste momento, este projecto é exactamente a mesma coisa que estou a "estudar" pois ando a desenvolver uma máquina autónoma para a empresa do meu pai e nada melhor que um PLC para controlo :D
Podem contar com a minha ajuda no que conseguir ;)
Olá Fifas, de certo que servirá, com a ajuda de todos de certo que sairá daqui um PLC que se possa mostrar.
Mas em relação ao teu projecto se só precisares de entradas e saídas digitais é so aguardares mais um pouco que irei postar os circuitos que já estão testados e a funcionar e é, só montar e progarmar...
vai passando por aqui e "opina" eu diria antes "opinem"
Como devem ter reparado alterei o assunto do post.
Acrescentei um RTC e porta USB.
Aguardo sugesto?s para estes acessórios.
A porta USB acho que vai ser esta:
http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html (http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html)
que dizem está acessível ou vamos à concorrência ;D ;D
Para o RTC preciso de ajuda.
jp_
Boas ,
Este é o meu primeiro post, eu tenho uma RTC(real time clock) da loja lusorobotica e neste momento esta a funcionar bem numa EasyPic5, código feito em ccs posso ajudar
-
Eu sei o que é e também já o utilizei no Arduino. Mas o objectivo é para tipo definir tarefas em determinada hora e assim?
-
explica melhor para que seria o RTC.
Ora o RTC servirá para eu poder programar tarefas com ciclos diários e semanais.
Imagina que numa dada aplicação existe uma tarefa que precisa de ser efectuada por exemplo três vezes por semana e da primeira vez durante 30 minutos, da segunda 1 minuto e da terceira 20, poder escolher em que dias da semana vai ser executada e a que horas ( por exemplo para aproveitar o ciclo horário em que a energia é mais barata). Ou até penso que deve de ser possível mais mais complicado poder programar uma tarefa para o dia xx/xx/2010 às 15h20m30s.
Para o ciclo diário e semanal penso que usando o RTC sugerido pelo trif@sico (http://loja.lusorobotica.com/modulos/21-rtc-real-time-clock-module.html (http://loja.lusorobotica.com/modulos/21-rtc-real-time-clock-module.html))
basta usar a saída (só li o data sheet na diagonal) de 1HZ ligada a uma entrada digital do microcontrolador e depois em ladder criar as variaveis dos minutos, horas e dias e fazendo o reset dos contadores quando completar a semana.
O grande problema é o Software que estou a propor para programar LDmicro http://www.cq.cx/ladder.pl (http://www.cq.cx/ladder.pl)
não tem a função para comunicar por I2C que penso que é o que usa o RTC por essa razão vai ser complicado por exemplo usar datas.
Alguém sabe como ultrepassar este obstáculo?
jp_
-
E não há nenhum gratuito que tenha essa função?
Pode ser sempre implementado por software.
-
E não há nenhum gratuito que tenha essa função?
Pode ser sempre implementado por software.
Pois, eu ando à procura da resposta a essa pergunta à muito tempo e até agora não encontrei outro compilador de ladder para PIC/AVR open source.
Mas como dizes que pode ser implementado por software também pode ser acrescentada essa função ao compilador. Sendo de código aberto a fonte está disponível e pode ser alterado por alguém que o saiba fazer, mas infelizmente essa pessoa não sou eu, mas estou certo que teremos a ajuda necessária.
jp_
-
Sugestão, em vez de usarmos ladder poderíamos criar um programa em c# ou mesmo em labview, e assim poderíamos criar código a vontade para o PIC ou AVR até mesmo criar o protocolo de comunicação, é só uma ideia.
Digo isto pela simples razão o compilador sugerido pelo jp_ em ladder cria logo o ficheiro hex dai a partida já é um obstáculo em edita lo
-
Mas o objectivo de um PLC é programares numa das linguagens que estejam presentes na norma e assim seguir uma norma que todos as pessoas que usam PLC conhecem.
Assim qualquer pessoa pode utilizar, tudo o que for protocolos de comunicação têm que ser criados por nós (desenvolvedores). Depois quem for programar tem lá em ladder uma função(neste caso não sei se se pode chamar função) para executar um determinado protocolo de comunicação, era esta a minha ideia mas posso estar errado.
-
Sugestão, em vez de usarmos ladder poderíamos criar um programa em c# ou mesmo em labview, e assim poderíamos criar código a vontade para o PIC ou AVR até mesmo criar o protocolo de comunicação, é só uma ideia.
Digo isto pela simples razão o compilador sugerido pelo jp_ em ladder cria logo o ficheiro hex dai a partida já é um obstáculo em edita lo
Se o que pretendes dizer é criar um codigo em c# ou em labview para para compilar código ladder com as funções que já estão implementadas com o ldmicro e ainda as que necessitamos para melhorar... a minha pergunta é:
Porque não complementar o trabalho já feito?
No caso de estares a sugerir fazer o código dedicado a cada aplicação...
a resposta é a que te deu o metRo_
Mas o objectivo de um PLC é programares numa das linguagens que estejam presentes na norma e assim seguir uma norma que todos as pessoas que usam PLC conhecem.
Assim qualquer pessoa pode utilizar, tudo o que for protocolos de comunicação têm que ser criados por nós (desenvolvedores). Depois quem for programar tem lá em ladder uma função(neste caso não sei se se pode chamar função) para executar um determinado protocolo de comunicação, era esta a minha ideia mas posso estar errado.
metRo_, não estás errado, estás completamente certo.
é mesmo essa a ideia de PLC, qualquer pessoa que conheça um pouco de ladder com mais ou menos treino, ser capaz de programar este ou outros PLC's.
jp_
-
Olá Fifas, de certo que servirá, com a ajuda de todos de certo que sairá daqui um PLC que se possa mostrar.
Mas em relação ao teu projecto se só precisares de entradas e saídas digitais é so aguardares mais um pouco que irei postar os circuitos que já estão testados e a funcionar e é, só montar e progarmar...
vai passando por aqui e "opina" eu diria antes "opinem"
Sim, eu sei que há maneiras mais simples. Mas agora pensa tu se nao será mais simples ter uma plataforma que possa testar em varias maquinas, etc...Fazendo depois uma versao final adaptada a cada uma delas, mas para testes, penso ser melhor um PLC nao? :)
Olá Fifas,
Sim claro que sim, mas é isso mesmo que eu queria dizer...
como já referi eu tenho tres mini PLC a funcionar em ambiente industrial (só um aparte não é o mesmo que a nossa bancada em casa ou na UNIV.) mas o que que te queria dizer é que apenas podes contar (para já ) com entradas e saídas digitais, porque não considerei entradas e saídas analógicas.
Mas isso vai mudar aqui com este PLC open source.
jp_
-
tenho testado com algumas electrovalvulas e alguns sensores/micros mas tudo digital.... :D
(nao tem mesmo nada a ver com a bancada em casa ;D )
Uma sugestao: Um dos PLC que usei em tempos da mitsubishi tinha um lcd que dava para imensas utilizaçoes, do tipo debug, etc....até podiamos fazer isso nao?
Outra coisa (confesso que ando um pouco desatento), em vez do lcd, poderia-se usar um PC para analise/controlo do circuito nao? :)
Cumprimentos
-
Em relação ao processamento interno do PLC, por mais voltas que andem a dar, e se querem fazer alguma coisa que se possa mostrar/usar/vender, então não pensem em usar nenhum micro anterior à série 18, se se chegar ao concenso de PIC.
Eu apostaria mesmo na série 24. Não faz sentido usar menos que isto, numa aplicação que é um PLC, que tem que fazer o processamento continuo de tanta coisa, e ainda por cima com várias formas de comunicação.
Eu já fiz PLCs com séries 16, 18, 30 e agora estou a fazer para a 24. É maravilhoso trabalhar com estes.
Em relação a características que o mesmo poderá ter, isso agora é fazer uma lista delas, e ir a votação.
O meu tempo é limitadissimo, por isso só posso dar palpites.
No entanto, se alguém quiser pegar no touro, as coisas a definir são (por ordem):
- os requisitos,
- as especificações,
- escolha de hardware,
- prototipagem do hardware,
- prototipagem do firmware,
- testes em campo...
- ...
Se houver trabalho contínuo, preparem uns bons meses. Talvez por esta altura no ano que vem, haja já protótipos no campo.
Como vos digo, têem o meu apoio em palpites, dicas e afins, mais não posso dar. Sou directo neste ponto.
Mas no fim bato palmas se tiverem isso a trabalhar ;)
-
Outra coisa (confesso que ando um pouco desatento), em vez do lcd, poderia-se usar um PC para analise/controlo do circuito nao?
PC ou mesmo uma consola comercial, se implementarmos um protocolo de comunicação tipo Modbus, será fácil comunicar com outros equipamentos.
Olá asena, seja muito bem vindo.
Eu já fiz PLCs com séries 16, 18, 30 e agora estou a fazer para a 24. É maravilhoso trabalhar com estes
Os PLCs que fizeste são reprogramáveis?
Em ladder?
O compilador foste tu que o desenvolves-te?
O problema maior para já para mim não está no hardware, mas prende-se nas limitações do compilador de ladder que conheço (ldmicro).
Em relação ao processamento interno do PLC, por mais voltas que andem a dar, e se querem fazer alguma coisa que se possa mostrar/usar/vender, então não pensem em usar nenhum micro anterior à série 18, se se chegar ao concenso de PIC.
A minha intensão em relação a este projecto não passa por vender nada, simpesmente quero enriquecer os meus conhecimentos. Por isso lhe chamei de open source.
A minha primeira ideia foi começar com um micro PLC mas com algumas comodidades a nível de entradas e saídas analógicas assim como implementar possibilidade de comunicação, mas neste caso usar protocolos compatíveis (usados pelos equipamentos comercias) por forma a facilmente integrar este num qualquer ambiente.
Pois eu também queria ir para a serie 24 mas e o compilador?
Eu sou da área de electrónica dou uns passos em BASIC entendo Assembler mas criar um compilador não está ao meu alcance (para já).
Se aproveitarmos o que já existe feito e o aperfeiçoar-mos?
jp_
-
- os requisitos,
- as especificações,
- escolha de hardware,
- prototipagem do hardware,
- prototipagem do firmware,
- testes em campo...
- ...
Tal como asena referiu e eu já te tinha dito numa mensagem é necessário definir bem os objectivos.
Neste momento parece-me importante começarmos por definir as especificações como por exemplo numero de entrada, saídas, nº de digitais e analógicas, comunicações, etc. Para já era importante definir quais os pontos que devem ser especificados e para já fica a minha opinião:
- Numero de entradas Digitais/Analógicas
- Numero de saídas Digitais/Analógicas
- Saídas em rele e/ou transístores
- Comunicações
Para já é o que me estou a lembrar.
Entretanto criei um tópico para discutir-mos os compiladores existentes para as diferentes arquitecturas. http://lusorobotica.com/index.php/topic,1603.0.html (http://lusorobotica.com/index.php/topic,1603.0.html)
-
Boa.
Tenho estado um pouco ausente por falta de tempo mas lá me consegui por a par deste tópico e gostei da ideia.
Agora estou como o metRo_, temos que traçar muito bem os requisitos para podermos ver como atacar a solução e traçar roadmaps.
Uma questão:
Um PLC fica a funcionar em modo autónomo e corre o código nele contido (género aqueles mini controladores que se mete no quadro dos disjuntores de nossa casa) ou está sempre ligado a um computador e serve meramente de interpretador i/o do hardware para o pc e o código principal encontra-se a nível do computador?
Quanto ao RTC, se for para se fazer de modo autónomo, o ideal será criar um código de controlo género sistemas operativos em que quando uma aplicação pretende acordar a uma determinada hora. Essa operação vai para um priority queue em vez de ficar obsessivamente a perguntar ao RTC se já está na altura.
Este software que controla todos os lançamentos a partir de tempo encarrega-se de libertar as tarefas quando chega a hora para a qual estas se inscreveram.
-
Uma questão:
Um PLC fica a funcionar em modo autónomo e corre o código nele contido (género aqueles mini controladores que se mete no quadro dos disjuntores de nossa casa) ou está sempre ligado a um computador e serve meramente de interpretador i/o do hardware para o pc e o código principal encontra-se a nível do computador?
Um PLC tem capacidade de processamento própria, só usas o computador para o programar :)
Quanto ao RTC, se for para se fazer de modo autónomo, o ideal será criar um código de controlo género sistemas operativos em que quando uma aplicação pretende acordar a uma determinada hora. Essa operação vai para um priority queue em vez de ficar obsessivamente a perguntar ao RTC se já está na altura.
Este software que controla todos os lançamentos a partir de tempo encarrega-se de libertar as tarefas quando chega a hora para a qual estas se inscreveram.
Isto parece uma boa solução.
-
Um PLC tem capacidade de processamento própria, só usas o computador para o programar :)
Assim sendo, que tal começar a descriminar todas as instruções necessárias de executar para podermos pensar como implementar.
-
Quanto ao RTC, se for para se fazer de modo autónomo, o ideal será criar um código de controlo género sistemas operativos em que quando uma aplicação pretende acordar a uma determinada hora.
Quanto a essa parte deixo uma sugestão: http://www.freertos.org/ (http://www.freertos.org/)
-
Pelo que vi é mais orientado para ARMs. Pics e Avrs estão mais limitados no processamento, contudo podemos nos inspirar nesse source e fazer uma versão minimalista.
Obrigado msr.
-
Digo isto pela simples razão o compilador sugerido pelo jp_ em ladder cria logo o ficheiro hex dai a partida já é um obstáculo em edita lo
Olá a todos,
Eu estava mais uma vez a passar os olhos pelo tópico e penso que devo esclarecer o seguinte. Quando eu me referi em pegar no ldmicro como o software para programar o PLC e que apenas precisaria-mos de editar-lo eu estava a referir-me a editar o próprio compilador não o .hex que é gerado pelo compilador.
O LDmicro foi desenvolvido em c# (penso eu) e de c# temos nós aqui no fórum entendidos na matéria.
A ideia é fazer o código das instruções como por exemplo comunicação I2C e acrescentar ao LDmicro.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi36.tinypic.com%2F1238e3l.jpg&hash=5bd92cb8ee454348f28c67435e49c38fdc69560f)
depois nesta janela aparece a instrução I2C assim com estão as outras, como os temporizadores, contadores, PWM, etc
jp_
-
Estava mesmo convencido que te referias ao hardware e não ao software.
Nesse caso, tenho que fazer uma leitura sobre o LDmicro antes de pronunciar.
Queres explicar a tua ideia como se focemos os teus possíveis investidores? (Queremos saber tudo mas ainda não sabemos de nada. Convence-nos!)
-
Estava mesmo convencido que te referias ao hardware e não ao software.
Ora bem, as duas coisas estão interligadas, uma não trabalha sem a outra.
Queres explicar a tua ideia como se focemos os teus possíveis investidores? (Queremos saber tudo mas ainda não sabemos de nada. Convence-nos!)
Mais tarde voltarei aqui para expor mais concretamente qual a minha ideia e com recurso a imagens.
Mas entretanto uns link's de alguns PLC com PIC pela net:
http://www.electronicsworld.co.uk/asset/564/plc-mcu.pdf (http://www.electronicsworld.co.uk/asset/564/plc-mcu.pdf)
http://www.electronicsworld.co.uk/asset/653/plcmcu.pdf (http://www.electronicsworld.co.uk/asset/653/plcmcu.pdf)
http://host.nigde.edu.tr/muzam/ew_6of26_2009.zip (http://host.nigde.edu.tr/muzam/ew_6of26_2009.zip)
Este não é programado em ladder mas sim em assembler ou (C# ou basic).
Porque o compilador LDmicro não está preparado para se usar multiplexer.
A fonte:
http://www.edaboard.com/ftopic333298.html (http://www.edaboard.com/ftopic333298.html)
Depois tem este que é o mais parecido com o que tenho implementado.
Este já usa o LDmicro para programar.
CLP PIC com PIC 16F628A prog. LADDER (http://www.youtube.com/watch?v=RmaTM5mwXQs#)
O mesmo plc mas já com rs485 possibilidade de comunicar com outros plc
CLP PIC e PC em rede RS485 half duplex (http://www.youtube.com/watch?v=ySBLuRbpCXA#)
jp_
-
depois de algumas sugestões feitas pelo nosso amigo TigPT e com o seu consentimento passo a transcrever:
Antes de mais quero explicar o meu comentário:
Eu nunca utilizei um PLC e ainda não percebi bem o que é e para que serve, quando utilizar em vez de um micro, porque será melhor que um micro.
Parece-me ser um modulo de controlo em tempo real programável mais simples de programar mas não sei se será isso.
Com isto acabei por explicar também que muitos dos outros membros podem não conhecer e por isso, e sem o explicares, não se vão interessar. Se queres motivar pessoas para um projecto, tens que as fazer sentir o projecto como delas também. Tens que as fazer antes de mais entender para que é que estão a trabalhar, para depois se poderem organizar e trabalhar. Caso contrário cada um puxa para seu lado e não sai nada de jeito.
Eu pessoalmente não tenho muita disponibilidade mas ajudarei no que poder. Agora não podes é pedir a pessoas como eu que têm pouco tempo para ir pesquisar o que é um PLC ou LADDER ou LOGO ou ZEN ou OMRON que não faço a mínima ideia.
O texto pode parecer um pouco agressivo mas era isso que pretendia. Mostrar-te que quem está a ler algo que desconhece e lhe estão a pedir ajuda sem lhe explicar antes, vão se sentir chateadas e não vão procurar.
Se por outro lado tu antes fizesses uns posts sobre o que é um PLC, onde pode/deve ser aplicado, etc etc, a seguir irás ter muito mais aderência certamente. Porque as pessoas já sabem o que é e podem ter ficado com vontade de o fazer.
Fiz-me entender?
Abraço,
Resolvi tentar explicar qual é o omeu objectivo por outras palavras passo a Explicar:
Ora um PLC em poucas palavras é um Micro ( PIC; AMR, ETC) qualquer que seja o fabricante, com os periféricos ( entradas e saídas e portas de comunicação ) adaptados para trabalhar com as tensões standard, dos armários eléctricos na industria.
Ou seja o Micro trabalha com 5 ou 3 volts o PLC trabalha com 24V dc e a alimentacão pode até ser de 230Vac.
Podes imaginar o arduino com foto-copuladores nas entradas e relés nas saídas e tens um PLC se o conseguires programar em Ladder ( Escada em português).
Relativamente à comunicação têm protocolos de comunicação standard tipo ( Modbus, profibus ) que são comuns para todos os fabricantes, permitindo desta forma comunicar entre eles.
relativamente ao texto ser agressivo, não me pareceu eu preciso é que me ajudem. Isso foi o que fizeste e por isso
Nova sitação da resposta do TigPT:
Este texto é bem mais precptivel.
Bem, pelo que vejo existe ai muita coisa para ser feita e como tal deve de ser subdividido em vários módulos distintos que depois se interliguem para que o projecto seja exequível.
Desde estudar, implementar e testar cada um dos protocolos.
Estudar implementar e testar o "kernel" que vai controlar e servir de interface entre os protocolos, as tarefas, os portos e as tais linguagens que pretendes utilizar. (talvez seja mais fácil fazer a nossa própria linguagem de programação de PLCs do que estar a portar as existentes)
Estudar, desenhar, prototipar e no fim industrializar uma board.
Abraço,
-
Interessante vou ficar a acompanhar.
-
Como existe a possibilidade de se usar PIC neste projecto aproveitem novamente as samples da Microchip.
-
Como existe a possibilidade de se usar PIC neste projecto aproveitem novamente as samples da Microchip.
Já vêm a caminho um 16f886 e em 18f2550.
- Ambos de 28 pinos porque já tenho algumas pcb de testes feitas para estes micros-
- O 16f886 porque já existe um compilador ladder para este micro (Ldmicro) já referido aqui anteriormente.
- O 18f2550 porque foi sujerido por asena " não usar nada a baixo da familia 18" e também porque têm a possibilidade de se usar a porta USB para programação via bootloader e a outra (RX-TX) para comunicação com periféricos.
Relativamente ao 18f a desvantagem é que não conheço nenhum compilador de ladder para este micro.
Aceito sugestões para outros micros, por isso se estiverem a pensar em outros postem as vossas sugestões.
jp_
-
Vamos começar com coisas sérias para se perceber como avançar com o projecto.
O que é pretendido?
Suporte, funções, funções obrigatórias e funções facultativas, como programar, é mesmo obrigatório suportar linguagens do mercado ou podemos fazer nós a nossa com mais simples e fácil de trabalhar, etc etc.
Pretendem fazer para um plataforma em concreto ou algo genérico que possa ser portável para qualquer uma? (quando digo plataforma digo família de uC)
Ideias concretas para cima da mesa para podermos analisar, nós os leigos que não sabemos para que os PLC são utilizados percebermos o que é preciso, o que existe, o que pode ser feito, etc etc.
-
Boas,
A minha opinião muito sincera é que as PICs indicadas não têm "pica" suficiente ;)
Estamos a falar de uma PIC com apenas 5 MIPS e 14K, e mesmo a 18F2550 fica
pelos modestos 12 MIPs e 32K de flash, e em sockets de 28 pins as portas IO
se calhar, só se calhar, ficam um pouco à justa.
Acho que se é para ficar com um uC de 8 bits um AVR é de longe superior... mas
bom, bom, é mesmo um ARM... e a diferença de custos acaba por ser na ordem
dos 3 a 4 euros.
Se for para AVRs (e digo AVRs não digo Arduinos) ou ARMs posso ajudar com o
que for necessário, se forem para PICs não estou muito para ai virado... isto com
o devido respeito por todos é claro :)
Abraços
Paulo A.
-
Como já disse, antes de se preocuparem com o telhado, preocupem-se com a base da casa.
O que pretendem que seja, o que pretendem que possa fazer e como, depois então preocupamos-nos com o quê e de que maneira.
Gostava de poder contribuir mas como já disse anteriormente, mal conheço os equipamentos que existem, as necessidades, etc... Deveriam começar por este ponto, quem costuma utilizar e sente as coisas boas e as lacunas do que utiliza, deve de começar a despejar para aqui ideias para depois se estudar e organizar.
-
Em relação à explicação sobre o que é e para que serve um PLC, acho que falta mencionar um detalhe importante. Nunca usei um PLC nem Ladder, mas estes, especialmente a Ladder, foram concebidos de forma a "evitar" programar (em texto), de maneira a que se torne acessível a pessoas que não sabem (e nem precisam de saber) nada sobre programação C, assembly, etc. Tanto quanto já vi, Ladder é uma linguagem gráfica. Dás um microcontrolador para a mão por exemplo de um electricista e ele não faz nada com aquilo, mas se lhe deres uma PLC e Ladder em pouco tempo ele está a fazer controladores para ligar e desligar uns motores consoante a temperatura num tanque qualquer.
Já aqui foi referido que um PLC também se designa "autómato". Um autómato é uma máquina de estados, digamos, uma forma mais simples de programar acções executadas em certos momentos no tempo e/ou dependendo de valores lidos de entradas digitais/analógicas.
-
Exacto e acima de tudo tem que algo concebido para ambientes industriais, eu estou um pouco familiarizado com autómatos pois já os usei em 3 disciplinas e numa delas tivemos de controlar um "brinquedo" que temos na faculdade que é um fábrica em miniatura :)
Não vi assim grande coisa que eu fizesse de maneira diferente, pelo menos os que uso parecem-me bons.
-
olá, antes de mais quero agradecer o vosso interesse pelo projecto.
Pretendem fazer para um plataforma em concreto ou algo genérico que possa ser portável para qualquer uma? (quando digo plataforma digo família de uC)
Gostava que fosse portável para qualquer uma.
Desenvolver o compilador gráfico de Ladder que compila-se para por exemplo C e depois dependendo do uC teremos outra ferramenta para converter para o assembler de um uC específico. Penso que se usarmos o C como plataforma intermédia pederemos usar qualquer tipo de uC.
Boas,
A minha opinião muito sincera é que as PICs indicadas não têm "pica" suficiente ;)
Estamos a falar de uma PIC com apenas 5 MIPS e 14K, e mesmo a 18F2550 fica
pelos modestos 12 MIPs e 32K de flash, e em sockets de 28 pins as portas IO
se calhar, só se calhar, ficam um pouco à justa.
Acho que se é para ficar com um uC de 8 bits um AVR é de longe superior... mas
bom, bom, é mesmo um ARM... e a diferença de custos acaba por ser na ordem
dos 3 a 4 euros.
Se for para AVRs (e digo AVRs não digo Arduinos) ou ARMs posso ajudar com o
que for necessário, se forem para PICs não estou muito para ai virado... isto com
o devido respeito por todos é claro :)
Abraços
Paulo A.
Temos que começar com um pequeno PLC depois parte-se para uma evolução, Se fizer-mos o compilador de ladder para C e depois de C para o assembler podere-mos ir adicionando à medida que for possível várias famílias e cada um vai ajudando na Familia de uC que mais se sente à vontade.
Eu adicionei no primeiro post uma pequena apresentação do que pretendo que o PLC seja capaz de fazer.
Vou acrescentar as funções primárias ou as básicas para que se possa começar.
jp_
-
Eu já usei alguns PLC da Mitsubishi há uns anos.... :)
Neste momento, este projecto é exactamente a mesma coisa que estou a "estudar" pois ando a desenvolver uma máquina autónoma para a empresa do meu pai e nada melhor que um PLC para controlo :D
Podem contar com a minha ajuda no que conseguir ;)
Olá Fifas, de certo que servirá, com a ajuda de todos de certo que sairá daqui um PLC que se possa mostrar.
Mas em relação ao teu projecto se só precisares de entradas e saídas digitais é so aguardares mais um pouco que irei postar os circuitos que já estão testados e a funcionar e é, só montar e progarmar...
vai passando por aqui e "opina" eu diria antes "opinem"
Como devem ter reparado alterei o assunto do post.
Acrescentei um RTC e porta USB.
Aguardo sugesto?s para estes acessórios.
A porta USB acho que vai ser esta:
http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html (http://loja.lusorobotica.com/modulos/22-modulo-ft232rl-usb-to-serial.html)
que dizem está acessível ou vamos à concorrência ;D ;D
Para o RTC preciso de ajuda.
jp_
Boas ,
Este é o meu primeiro post, eu tenho uma RTC(real time clock) da loja lusorobotica e neste momento esta a funcionar bem numa EasyPic5, código feito em ccs posso ajudar
Gostava de ajudar
Tb tenho uma EasyPIC 5
-
olá robertofonte,
Sim acho que está na altura de voltar a pegar neste projecto.
Tenho adiado mas ainda bem que te juntas.
gostava que desses opinião e pesquisa sobre ladder pic e inteira-te do que o compilador é capaz.
Tenho uma questão.
Qual o Ic a usar para implementar comunicação RS485?
concorda com o uso de um bootlloader
ex: este
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
jp_
-
ola a todos, tenho visto o vosso empenho neste projecto e conheço uma solução k pode ajudar um touch screen k tambem é um plc com um relogio de tempo real é programado com duas linguagens de programação ladder e basic, falo do Cutouch da Comfile http://www.cubloc.com/product/03_01ct1721c.php (http://www.cubloc.com/product/03_01ct1721c.php)
-
olá flyfox,
Certamente que é a uma coisas dessas, "parecida" com as mesmas funcionalidades a diferença é: - open source. Não estamos aqui à procura de um produto comercial, eu sei que eles existem, mas sim criar um e que fique livre para quem o quiser implementar.
Nesse sentido não consegui ver o que ajuda o link que enviaste, não encontrei informação de como o implementar nem como foi implementado.
O objectivo é criar, desenvolver um circuito e software de código aberto para poder ser usado por outros que se interessem pelo assunto.
Talvez possas acrescentar algo mais no sentido de nos explicar como funciona o Cutouch da Comfile para verificar-mos se podemos aproveitar alguma coisa como ideia para implementação.
jp_
-
Boas
Existe outro tipo de linguagem para programar plc é o "grafcet", essas linguagem podem variar de marca para marca.
Vou deixar a minha opinião relativamente a este tópico, não pensem que não quero ajudar ou estou a dizer mal do tópico, simples a minha opnião,quando por exemplo nos usamos os plc para controlar um maquina o plc , deve ter um interface sempre on para que possa-mos ver o funcionamento na maquina, ex: um computador com um programa feito em visual baisc, esse programa esta constantemente a fazer leitura de tudo dependendo da maquina claro (temperaturas, rpm motor, torque do motor, fusivel queimado, quase é permitido ver...).
Dentro o plc pode conter pouco programa, porque quem pode controlar o plc pode ser o programa em visual basic, eu falo em visual basic porque é um linguagem que me safo melhor, porque no curso em que estava fazia só interfaces com visual basic.
Vou ficar de olho no tópico e ajudo no que precisarem.
Cumprimentos
-
Olá Sextafeira, Antes de mais obrigado por partilhares as tuas ideias.
deve ter um interface sempre on para que possa-mos ver o funcionamento na maquina, ex: um computador com um programa feito em visual baisc, esse programa esta constantemente a fazer leitura de tudo dependendo da maquina claro (temperaturas, rpm motor, torque do motor, fusivel queimado, quase é permitido ver...).
Esta é umas das ideias que eu pretendia implementar. Este interface que referes deveria estar no bootloader de forma que mesmo que o PLC não tivesse programa nos envia-se o estado das entradas e saídas assim como a sua configuração. Por sua vez o programa no PC servia de monitorização de estados e configurações, com a possiblidade de ser personalizado em função de cada aplicação.
Dentro o plc pode conter pouco programa, porque quem pode controlar o plc pode ser o programa em visual basic, eu falo em visual basic porque é um linguagem que me safo melhor
Já relactivamente a ser o PC a controlar o PLC não estou de acordo, o PLC deve ser autonomo e mesmo quando interligarmos vários PLC pendurados numa rede RS485(por exemplo) cada um tem que ter a sua lógica e apenas reportar os seus estados, isto não quer dizer que não aceite ordens pela rede mas o seu programa interno é quem dicide. O princípio de control distribuido deve de estar presente.
Se poderes ajudar agradeço, preciso de ajuda com o software que pode ser em VB para ler da porta serie o estado das diversas variaveis do PIC, e transpor esses valores para uma plataforma gráfica.
jp_
-
Boas
Sim claro eles tem de ter um lógica , o que queria dizer era não ter um programa completo algumas coisa o pc é que controla.
O programa para a porta serie posso fazer na boa, para ler e escrever. Vou ver se arranjo um pic ou algo assim, para poder fazer o programa e ir testando, porque numa trabalhei com um pic de verdade dei algumas coisas na escola sobre o 8051 e mal sei trabalhar com aquilo.
Cumps
-
Olá Sextafeira,
Se vais tentar arranjar um pic, pede samples e podes começar pelo 16f886 ou 16f887 são compatíveis com o compilador ladder pic
http://www.cq.cx/ladder.pl (http://www.cq.cx/ladder.pl)
programador para carregar o bootloader
http://www.olimex.com/dev/pic-pg1.html (http://www.olimex.com/dev/pic-pg1.html)
tinybootloader
http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm (http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm)
pedes samples de max 232 na texas e montas o circuito numa bredboard, pronto depois destes passos estás pronto para começar a comunicar PC <=> PIC.
Olha podes envia-rme uma funçao em VB2008 para comunicar com a porta serie rs232.
Bom trabalho.
jp_
-
Boas
Desde ja obrigado pela ajuda relativa aos pic's : )
Vou deixar aqui um link que já tem um programa feito e muito mais completo em vb2008.
http://www.innovatic.dk/knowledg/SerialCOM/SerialCOM.htm (http://www.innovatic.dk/knowledg/SerialCOM/SerialCOM.htm) podes fazer o download do programa no fim da pagina. :)
Cumps
-
http://www.slideshare.net/remintz/plcduino-a-plc-using-arduino-platform (http://www.slideshare.net/remintz/plcduino-a-plc-using-arduino-platform)
https://code.google.com/p/plcduino/ (https://code.google.com/p/plcduino/)
-
Boas
Existe outro tipo de linguagem para programar plc é o "grafcet", essas linguagem podem variar de marca para marca.
Vou deixar a minha opinião relativamente a este tópico, não pensem que não quero ajudar ou estou a dizer mal do tópico, simples a minha opnião,quando por exemplo nos usamos os plc para controlar um maquina o plc , deve ter um interface sempre on para que possa-mos ver o funcionamento na maquina, ex: um computador com um programa feito em visual baisc, esse programa esta constantemente a fazer leitura de tudo dependendo da maquina claro (temperaturas, rpm motor, torque do motor, fusivel queimado, quase é permitido ver...).
Dentro o plc pode conter pouco programa, porque quem pode controlar o plc pode ser o programa em visual basic, eu falo em visual basic porque é um linguagem que me safo melhor, porque no curso em que estava fazia só interfaces com visual basic.
Vou ficar de olho no tópico e ajudo no que precisarem.
Cumprimentos
boas,
pelo que aprendi na programação do plc e coisa e tal "grafcet" n se pode definir com uma linguagem de programação, e sim como uma forma de simplificar o programa propriamente dito do plc.
o "grafcet" é quase escrever o programa em modo de cascata
cump
-
CLPDUINO
Gostaria de agradecer ao arduino (arduino projeto) e o plcopen editor (beremiz projeto)
Site: http://www.beremiz.org/ (http://www.beremiz.org/)
Site: http://www.arduino.cc/ (http://www.arduino.cc/)
A partir destes grandes projetos eu desenvolvi o clpduino é filho de arduino e plcopen editor.
Criei a partir do código livre do plcopen editor o software para programar o clpduino. A partir do hardware do arduino criei o hardware do clpduino , filho de gigantes open source nasceu filho brasileiro com o nome clpduino.
Mas um open source para ajudar o mundo.
Foto do ide :
CLPDUINO
8 Entradas digitais (para sensores e chaves de comutação, etc)
8 Saída digital a rele (para ligar lâmpadas motores etc. ) pode ser expandido até 5 módulos com 8 saídas cada, a transistor.
4 Entrada analógica 0. .5V (Pode ser usado para ler sensores de temperatura ou potenciômetro,etc.)
3 Saída PWM 0..5v (pode virar saída analógica se colocar resistor + capacitor), serve para controle de velocidade para inversores de freqüência , ou controle de motores de passo,etc.)
1 Porta serial RS-232 (para programação e monitoração, e uso da IHM ou Supervisórios)
A programação é feita em Ladder com o software (CLPDUINO) ou em linguagem arduino (ARDUINO)
É possível controlar pequenas máquinas e monitorar sensores com ele.
Também é possível a integração com o HMI G3 Supervisórios
Tensão de alimentação 12 DC + - 10%.
Tensão suportada pelas entradas digitais 12 a 26 DC.
A IHM serve para interface de ajuste, por exemplo ajuste de tempo, ligar uma lâmpada, etc.
Tenho a placa CLPDUINO pronta para venda se alguém quiser comprar ela custa R$300,00 sei que o preço esta meio alto mas estou lutando para melhorar isso, e ficar com um preço melhor.
Tenho também a IHM para ela custa R$200,00 tem um display serial com bornes para 9 botões to lutando para melhorar o custo, espero logo ter um preço melhor .
Uma opção de criar o módulo de entrada e saída para o arduino padrão que pode ser feita pela maioria das pessoas que tenha uma noção de eletrônica , o diagrama se encontra no rodapé.
Email : flavioleivafilho@hotmail.com
Foto do clpduino :
Este software que esta o link tem muita coisa que estou fazendo ainda não esta perfeito mais já compila e envia bem, gostaria de pedir paciência logo estará melhor o software, tem erros de português eu peço desculpa pelos erros. Mais muita coisa estou revisando e criando o manual do software e melhorias por favor se encontrar erros mande para meu e-mail para poder consertar. Agradeço a todos que acreditam na idéia de um mundo melhor e livre (open source)
Link do software CLPDUINO: http://www.megaupload.com/?d=6HXG8IFJ (http://www.megaupload.com/?d=6HXG8IFJ) *Novo (agora e possível usar todos os pinos do arduino mega)
HMI G3 PARA CLPDUINO :https://sites.google.com/site/hmig3escada/baixar/HMIG3%2BTELAS%2BCLPDUINO.zip?attredirects=0&d=1
Vídeo do YouTube
No rodapé se encontra o anexo de um diagrama para criar o módulo de entrada para o arduino in-clpduino.zip (só entrada digital)
No rodapé se encontra o anexo de um diagrama para criar o módulo de entrada digital e analógica para o arduino in-clpduino-in-analog.zip (entrada digital+ analógica)
No rodapé se encontra o anexo de um diagrama para criar o módulo de Saída digital para o arduino out-clpduino.zip (saida digital)
No rodapé se encontra o anexo de um diagrama + placa de saída e entrada para arduino in-out-clpduino.zip (entrada + saída digital) tem que testar antes de usar!
Anexos (4)
in-clpduino-in-analog.zip - em 25/05/2011 12:49 por ANTONIO FLAVIO DE SOUZA LEIVA FILHO LEIVA (versão 1)
75 KB Download
in-clpduino.zip - em 25/05/2011 12:10 por ANTONIO FLAVIO DE SOUZA LEIVA FILHO LEIVA (versão 1)
44 KB Download
in-out-clpduino.zip - em 26/05/2011 19:21 por ANTONIO FLAVIO DE SOUZA LEIVA FILHO LEIVA (versão 1)
276 KB Download
out-clpduino.zip - em 25/05/2011 16:41 por ANTONIO FLAVIO DE SOUZA LEIVA FILHO LEIVA (versão 1)
Link do meu site: http://sites.google.com/site/hmig3escada/Home/clpduino (http://sites.google.com/site/hmig3escada/Home/clpduino)
-
basicamente isso é programar um arduino na forma como estivessemos a programar um automato ?
-
Sim o arduino e trasformado em um PLC o CLP que e polular no brasil.
-
Ha ele tambem acopla um comunicação para ser controlado pelo supervisorio HMI G3
-
boa!! :D
-
Parabéns pelo teu projecto, continua e vai dando notícias.
Queria só destacar que desconhecia e dei uma vista de olhos rapidamente e parece-me muito interessante quer para aplicar no arduino quer noutra plataforma.
Fiquei muito contente por saber que tem um Português responsável por parte do projecto que serviu de base para esta tua aplicação. Passo a Citar
2° University of Porto
Mario de Sousa, working for the “Faculdade de Engenharia da Universidade do Porto“
developed the original IEC-61131-3 compiler, initially part of the MatPLC project.
Thanks to him, Beremiz project embeds a IEC-61131-3 compiler that produce platformindependent
C code.
É muito bom saber que em cada canto do mundo existe obra de um Português.
jp_
-
Bom projecto!
-
Sim tem um Português responsável por parte do projecto e muito inteligente agradeço a ele pelo projeto inicial!
-
Lembrei-me de postar isto no tópico, para quem estiver interessado:
Xilinx FPGA Design Using RTL-based projects with PlanAhead Design and Analysis Tool
http://webinars.eetimes.com/portal/wts/cemciv2cBb-6edmQqqzxgFqdobs9oa (http://webinars.eetimes.com/portal/wts/cemciv2cBb-6edmQqqzxgFqdobs9oa)
-
Bom dia o clp com arduino CLPDUINO criei uma nova versão o Shield Clpduino Mega agora da para usar 90 % dos shields do Arduíno junto com clpduino ficou bem bacana e uma opção para quem quer usar o Arduíno mega com clp da para usar o shield RTC que existe para venda junto assim tem um clp com Arduíno completo. foto do Shield clpduino Mega:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.cryptonsystem.com.br%2Fmedia%2Fcatalog%2Fproduct%2Fcache%2F1%2Fimage%2F640x468%2Ff1511ccdea3768787c703c34a4ef288d%2Fc%2Fl%2Fclpduino-shied-l.jpg&hash=e5c9c7a0928d008e71b486a26da78533adf43d9e)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.cryptonsystem.com.br%2Fmedia%2Fcatalog%2Fproduct%2Fcache%2F1%2Fimage%2F640x468%2Ff1511ccdea3768787c703c34a4ef288d%2Fc%2Fl%2Fclpduino-shied-f.jpg&hash=762137bd2e667028521338f75df85f87596c4aba)
Site:http://www.cryptonsystem.com.br/shield-clpduino-mega.html# (http://www.cryptonsystem.com.br/shield-clpduino-mega.html#)
Site:https://sites.google.com/site/hmig3escada/Home/clpduino (https://sites.google.com/site/hmig3escada/Home/clpduino)
-
Tendo em conta o numero de visualizações e mesmo correndo o risco de ser apelidado de coveiro 8)
venho aqui comunicar aqueles que seguem este post que editei o primeiro post colocando imagens e esquemas do micro-plc que já na altura tinha desenvolvido. ::)
Espero que sirva a alguém como ponto de partida para o seu projecto. :D
jp_
-
CONTROLLINO: The first ARDUINO compatible PLC for private and industrial use
http://buff.ly/1ezwvzV (http://buff.ly/1ezwvzV)