Índice:
- Etapa 1: Introdução
- Etapa 2: Descrição do Quadro Real:
- Etapa 3: qual sequência programar? SFC e diagrama de estado
- Etapa 4: Programação com Arduino IDE 1.6.X
- Etapa 5: Programação com YAKINDU
- Etapa 6: Supervisione com AdvancedHMI
- Etapa 7: Supervisione com o Unigo Evolution
- Etapa 8: Conclusão
Vídeo: Arduino PLC 32 I / O + Máquina de Estado + SCADA ou HMI: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Muitas maneiras de programar, controlar e supervisionar um sistema industrial com o arduino.
Etapa 1: Introdução
Neste instrutível, tratarei de:
2 métodos para programar um arduino ligado a uma espécie de máquina incluindo botões de pressão, interruptores e LEDs
1- O primeiro método com o IDE arduino 1.6.x usando a biblioteca SM (State Machine)
2-O segundo método usando Yakindu, um projeto de editor de digrama de estado criado com ambiente eclipse: você desenha sua máquina de estado, e ela gera o código para transferir para a placa Arduino.
Em associação com
2 maneiras de supervisionar a máquina com um SCADA ou HMI virtual em execução:
1- no Android 4.4: Unigo Evolution, um aplicativo gratuito sem itens de código apenas para colocar em uma tela e modbus TCP
2-no Windows 8: um projeto gratuito AdvancedHMI que precisa do Visual Studio 2013, nenhum código e itens para colocar na tela e modbus TCP
Então você desenha suas sequências funcionais com um SFC (em automação: Sequential Function Chart), você traduz em um diagrama de estado (bem mais próximo), você programa (Yakindu ou Arduino SM lib) e então você supervisiona com um SCADA (Unigo Android ou AdvancedHMI Windows).
Etapa 2: Descrição do Quadro Real:
O esquema:
Eu usei uma placa Arduino UNO, não um clone porque Yakindu não pode enviar nenhum programa para nenhum clone, apenas a placa UNO e Mega.
Eu poderia ter 32 E / S digitais com 2 expansores SPI como MCP23S17 (2x16 E / S) e mais 2 saídas analógicas de 12 bits (analógico real não filtrado por PWM) com 2 SPI DAC como MCP4921.
Eu não desenhei o escudo ethernet, mas você precisa dele para supervisionar seu sistema: então os pinos 4, 10, 11, 12 e 13 não devem ser usados para mais nada e obviamente os pinos 0 e 1 para RX TX apenas.
As fotos reais do tabuleiro:
8 botões são necessários:
- 4 para o modo manual: um para luz em cada led
- 1 para parada de emergência: se pressionado, você está no modo normal, solte: emergência
- 1 para modo automático que acende e apaga a luz sequencial de cada led, em caso de liberação: modo manual, para controlar cada led sem sequência
- 1 para RUN no modo automático
- 1 para STOP no modo automático
4 led para simular o que quiser (relé, válvula …)
Dou o nome de cada botão e leds que usei nos programas.
Etapa 3: qual sequência programar? SFC e diagrama de estado
Fiz um SFC muito simples para descrever o que o sistema deve fazer.
3 SFC são necessários:
- SFCsecu para entrar ou sair do modo de emergência, é o SFC mestre que inicia os outros
- SFC automático manual lançado pelo SFCsecu, você pode alcançar o modo automático ou o modo manual
- SFC executar parar, escanear e memorizar se alguém pressionou DCY (RUN) ou FCY (STOP)
Esses SFC estão rodando em pseudo-multistaking.
Então eu os traduzo em um diagrama de estado:
- uma máquina mestre (emergência) lançando 2 outros escravos
- um escravo para digitalizar e memorizar DCY e FCY
- um escravo para alcançar o modo automático ou manual
Outra coisa: quando você pressiona DCY, você pode pilotar a saída analógica com um trimer virtual em um scada, quando você pressiona FCY as saídas analógicas caem para 0V.
O diagrama de estado ajuda a programar o arduino.
Etapa 4: Programação com Arduino IDE 1.6. X
Eu lhe dou o código para traduzir os diagramas anteriores. Eu precisava de 3 libs adicionais que ofereço a você também.
Você também precisará da tabela de endereços para entender quais pinos você usa para quê e os endereços correspondentes dos registros do modbus.
Etapa 5: Programação com YAKINDU
Primeiro baixe o projeto gratuito versão 2.9 (não profissional) em:
www.itemis.com/en/yakindu/state-machine/
Em seguida, siga o tutorial fornecido: há algumas modificações em relação à última vez que baixei o programa, apenas para que os nomes de diferentes partes do arquivo "xxxconnector.cpp" sejam concluídos.
As fotos: o desenho da máquina de estado, a visão da pasta no projeto e suas bibliotecas importadas do arduino, a visão de "xxxconnector.cpp" para fazer a ligação entre as transições / estados e as entradas / saídas reais do placa ou dos SCADAs.
Eu lhe dou o projeto que você só terá que importar para o seu espaço de trabalho criado automaticamente.
Também são fornecidos: as bibliotecas necessárias para importar para o Yakindu e algumas mudanças a serem feitas descritas no tutorial.
Etapa 6: Supervisione com AdvancedHMI
Primeiro baixe o Visual studio Express 2013 ou mais em:
www.microsoft.com/fr-fr/download/details.a…
Em seguida, baixe o projeto AdvancedHMI em:
sourceforge.net/projects/advancedhmi/?SetF…
Apresento-lhes as fotos do SCADA I desenhado (com os endereços dos registros modbus correspondentes) e programado sem código, o projeto modificado e um breve tutorial.
Etapa 7: Supervisione com o Unigo Evolution
Você precisa de um dispositivo Android com Android 4.4 (kit kat) e uma tela de 7 polegadas.
Apresento-lhes as fotos do SCADA que desenhei (e os endereços dos registros modbus correspondentes) e um breve tutorial para usar o Unigo, sem necessidade de código, uma pasta que contém fotos de lâmpadas industriais e botões para colocar na pasta UniGOPictures criada no seu SD pelo aplicativo e pelo projeto.
Etapa 8: Conclusão
Foi uma tarefa enorme reunir 2 formas diferentes de programação e 2 formas diferentes de supervisão. É difícil no começo se acostumar com as habilidades de ambos. Mas agora ele funciona e, uma vez compreendido, você pode controlar sistemas mais complicados.
Muito obrigado a muitos tutoriais mundiais, a Archie (AdvancedHMI), a RenéB2 (Yakindu) e a Mikael Andersson (Unigo Evolution) e aos desenvolvedores de bibliotecas arduino que me permitem fazer um projeto de "tempestade de tecnologia".
Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.
Happy instructables.