Implementação de um Micro PLC em uma Plataforma Aberta de Baixo CustoRenato MintzTrabalho de Conclusão de Curso - UFMG – CEAI 2008Orientador: Prof. Júlio de Melo1
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário2
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário3
ArduinoContexto4Arduino é 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
HardwareATmega168 ou ATmega32832K Flash, 2K SRAM, 1K EEPROM14 pinos de entrada/saída digital6 deles podem ser usados como saída PWM6 entradas analógicas de 10 bitsConexão USB5Contexto
SoftwareC/C++ normal ou simplificadoBibliotecas com código abertoExpansõesEthernet, Bluetooth, Zigbee, GPS, etc.Preço < US$30,006Contexto
Linguagens padrão IEC-61131-3ContextoFonte: http://www.isa.orgFonte: http://engineeronadisk.com7
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário8
Programação usando LadderSupervisão ModBusLicença de código livreProgresso publicado em http://plcduino.blogger.comObjetivo9Oferecer 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.
Programação usando LadderSupervisão ModBusLicença de código livreProgresso publicado em http://plcduino.blogger.comObjetivo parcialmente atingido10Oferecer 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.
Programação usando LadderInstructionListSupervisão ModBusLicença de código livreProgresso publicado em http://plcduino.blogger.comObjetivo parcialmente atingido11Oferecer 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.
Programação usando LadderInstructionListSupervisão ModBusLicença de código livreProgresso publicado em http://plcduino.blogger.comObjetivo parcialmente atingido12Oferecer 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.
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário13
Ambientes gráficos para ArduinoBrickLayerModKitIniciativas Semelhantes14
PLC AbertoBeremizPLCOpen Editor – FBD, SFC, LD, ST, ILMatPLC IEC Compiler – gera código em CCANOpen – interface para I/O físicoFerramenta HMI – construção de telas sinóticas15Iniciativas Semelhantes
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.16Iniciativas SemelhantesPLAZA, 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.
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário17
18Abordagem
19AbordagemLoader e Interpretador InstructionListAcesso TTY
20AbordagemLoader e Interpretador ILcodeAcesso TTYCompilador InstructionList - ILcodeLoaderILcodeCliente TTY
21Passos8 3 77 1 0 10 3 73 0 6 10 3 73 0 7 14 3 77 1 0 13 3
Temporizadores22Blocos de Função  IEC-61131-3BiestáveisDetectores de BordaTPTONTOFContadores
Temporizadores23Blocos de Função ImplementadosBiestáveisDetectores de Borda442 x TP2 x TON2 x TOF4TPTONTOF4Contadores4
24Ciclo de Execução
25Arquitetura
26Dinâmica de um Ciclo
27Dinâmica de um Ciclo
28Dinâmica de um Ciclo
29Dinâmica de um Ciclo
30Conjunto de Instruções
31Operandos
32Memória Interna
33Memória Interna
34Memória Interna
35Memória não Volátil
36Modos de FuncionamentoResetTemporização ou comando “.” sem STEPModo ProgramaçãoModo ExecuçãoABORTComando “.” com STEPABORTComando “.” sem STEPModo Passo a Passo
37Modo ProgramaçãoConsole usando Windows Hyperterminal
38Carga de ProgramaA carga do programa ILcode a ser executado é feita usando o comando “l” a partir do endereço 20.O PLCduino Client faz isto automaticamente.
39Configuração de E/S13121110987654321010111111111100ioMask13121110987654321000000111111ioConfigSSSSSEEEEEE13121110987654321001000100000ioNegNOTNOT
40Modo Passo-a-PassoDois tipos:Passo-a-Passode InstruçãoPasso-a-Passode Ciclo de ExecuçãoStatus de ExecuçãoConteúdo da MemóriaConteúdo da Pilha
41ILCodeFormato da InstruçãoModificadorOperadorOperando: código ASCII da letra
Byte: número do byte
Bit: número do bit ou 64 quando a operação for sobre um byte completoCompila e carrega programa em IL via USB42PLCduino Client
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário43
44Elevador
45Memorização de Chamadas
46Memorização do Último Andar Visitado
47Sentido do Movimento
48Partida e Parada do Motor
ContextoObjetivosPesquisa Bibliográfica e Situação AtualDescrição do PLCduinoProva de ConceitoConclusõesSumário49
Fatos do DesempenhoPLCduino ocupa 58% de RAM e Flash do ArduinoExemplo do ElevadorOcupa 96% da memória de programa do PLCduinoOcupa 11 das 13 portas digitais do ArduinoTem ciclo de execução de 3mSAnálisePLCduino pode ser mais sofisticadoILcode pode ser otimizadoNúmero de portas é gargaloCiclo de execução é razoável para o tipo de aplicação50Conclusões
Facilidade de DesenvolvimentoIL 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.51Conclusões
Novo Ambiente de DesenvolvimentoInterface TCP/IPExpansão do Número de Portas52Sugestões de Continuidade

PLCduino - A PLC using Arduino platform