1. Implementação de um Micro PLC em uma Plataforma Aberta de Baixo Custo Renato Mintz Trabalho de Conclusão de Curso - UFMG – CEAI 2008 Orientador: Prof. Júlio de Melo 1
2. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 2
3. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 3
4. Arduino Contexto 4 Arduino é uma plataforma aberta de hardware e software, de baixo custo, desenvolvida com o objetivo de atender artistas, designers ou qualquer pessoa interessada na criação de objetos ou ambientes interativos
5. Hardware ATmega168 ou ATmega328 32K Flash, 2K SRAM, 1K EEPROM 14 pinos de entrada/saída digital 6 deles podem ser usados como saída PWM 6 entradas analógicas de 10 bits Conexão USB 5 Contexto
6. Software C/C++ normal ou simplificado Bibliotecas com código aberto Expansões Ethernet, Bluetooth, Zigbee, GPS, etc. Preço < US$30,00 6 Contexto
8. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 8
9. Programação usando Ladder Supervisão ModBus Licença de código livre Progresso publicado em http://plcduino.blogger.com Objetivo 9 Oferecer aos usuários do Arduino a alternativa de programação de lógicas de controle através de uma linguagem gráfica definida pelo IEC 61131-3 transformando-o na prática, em um micro PLC para aplicações didáticas, artísticas, domésticas e outras sem requisitos de alta confiabilidade.
10. Programação usando Ladder Supervisão ModBus Licença de código livre Progresso publicado em http://plcduino.blogger.com Objetivo parcialmente atingido 10 Oferecer aos usuários do Arduino a alternativa de programação de lógicas de controle através de uma linguagem gráfica definida pelo IEC 61131-3 transformando-o na prática, em um micro PLC para aplicações didáticas, artísticas, domésticas e outras sem requisitos de alta confiabilidade.
11. Programação usando LadderInstructionList Supervisão ModBus Licença de código livre Progresso publicado em http://plcduino.blogger.com Objetivo parcialmente atingido 11 Oferecer aos usuários do Arduino a alternativa de programação de lógicas de controle através de uma linguagem gráfica definida pelo IEC 61131-3 transformando-o na prática, em um micro PLC para aplicações didáticas, artísticas, domésticas e outras sem requisitos de alta confiabilidade.
12. Programação usando LadderInstructionList Supervisão ModBus Licença de código livre Progresso publicado em http://plcduino.blogger.com Objetivo parcialmente atingido 12 Oferecer aos usuários do Arduino a alternativa de programação de lógicas de controle através de uma linguagem gráfica definida pelo IEC 61131-3 transformando-o na prática, em um micro PLC para aplicações didáticas, artísticas, domésticas e outras sem requisitos de alta confiabilidade.
13. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 13
15. PLC Aberto Beremiz PLCOpen Editor – FBD, SFC, LD, ST, IL MatPLC IEC Compiler – gera código em C CANOpen – interface para I/O físico Ferramenta HMI – construção de telas sinóticas 15 Iniciativas Semelhantes
16. Especifica um modelo de desenvolvimento para um PLC em ambiente RTLinux. Seleciona um subconjunto de IL como linguagem básica para a primeira versão deste PLC. Sugere que o IL seja compilado para uma linguagem intermediária e então interpretado. 16 Iniciativas Semelhantes PLAZA, I.; MEDRANO, C.; CATALAN, C. A Programmable Logic Controller under RTLinux Following Related Standards. Fifth Real-Time Linux Workshop. Valencia, Spain: Department Of Computer Engineering, Universidad Politecnica De Valencia. 2003.
17. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 17
36. 36 Modos de Funcionamento Reset Temporização ou comando “.” sem STEP Modo Programação Modo Execução ABORT Comando “.” com STEP ABORT Comando “.” sem STEP Modo Passo a Passo
38. 38 Carga de Programa A carga do programa ILcode a ser executado é feita usando o comando “l” a partir do endereço 20. O PLCduino Client faz isto automaticamente.
39. 39 Configuração de E/S 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 ioMask 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 1 1 1 1 1 1 ioConfig S S S S S E E E E E E 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 0 0 1 0 0 0 0 0 ioNeg NOT NOT
40. 40 Modo Passo-a-Passo Dois tipos: Passo-a-Passode Instrução Passo-a-Passode Ciclo de Execução Status de Execução Conteúdo da Memória Conteúdo da Pilha
50. Contexto Objetivos Pesquisa Bibliográfica e Situação Atual Descrição do PLCduino Prova de Conceito Conclusões Sumário 49
51. Fatos do Desempenho PLCduino ocupa 58% de RAM e Flash do Arduino Exemplo do Elevador Ocupa 96% da memória de programa do PLCduino Ocupa 11 das 13 portas digitais do Arduino Tem ciclo de execução de 3mS Análise PLCduino pode ser mais sofisticado ILcode pode ser otimizado Número de portas é gargalo Ciclo de execução é razoável para o tipo de aplicação 50 Conclusões
52. Facilidade de Desenvolvimento IL tem um conjunto adequado de instruções e é viável como “linguagem de máquina”. Ainda não é para um usuário leigo, necessita uma “camada” gráfica, com pouca ou nenhuma alteração no PLCduino em si. Facilidades de depuração afetam em muito a produtividade. 51 Conclusões
53. Novo Ambiente de Desenvolvimento Interface TCP/IP Expansão do Número de Portas 52 Sugestões de Continuidade
54. Este trabalho: Permitiu que eu vivenciasse algumas decisões técnicas envolvidas no desenvolvimento de PLCs. Abriu uma nova possibilidade de programação do Arduino, que não seja o C/C++. Demonstrou a viabilidade de utilização do Arduino como um PLC simples para aplicações diversas. Pode ser um ponto de partida para novos trabalhos na área. O código fonte está disponível em https://code.google.com/p/plcduino/ 53 Considerações Finais