Minha equipe decidiu usar um PLC para controlar um processo industrial que requer E / S simples e em tempo real para dispositivos externos com processamento mínimo. No entanto, esperamos que as saídas exatas necessárias variem entre as execuções (na verdade, uma determinada execução raramente será repetida) e o operador não terá nenhuma experiência em programação de CLP / software.
Embora eu não possa divulgar o produto real, a melhor analogia seria que estamos projetando um fabricante industrial de smoothies, com o PLC controlando com precisão a abertura e o fechamento de diferentes válvulas em tempo real. O operador usará nosso software para projetar uma sequência personalizada de adições de diferentes reagentes e a ativação / desativação de máquinas pesadas relevantes (por exemplo, um misturador industrial).
Eis o desafio: nossa abordagem atual é escrever nosso próprio compilador que traduza as instruções fornecidas pelo operador (válvula aberta A por 10 ms, válvula aberta B por 20 ms) em lógica ladder e código de máquina do PLC. Em seguida, baixávamos diretamente nosso programa auto-compilado no PLC via serial. Tudo isso precisaria ser automatizado para que o operador só precise clicar em um botão após elaborar sua sequência de etapas.
No entanto, apesar da minha pesquisa, não encontrei um único fornecedor de CLP que ambos: 1) possuam um compilador com API ou publiquem informações suficientes sobre seu código de máquina para permitir escrever um compilador; 2) suporte o download direto de programas no CLP sem o uso do software de programação do fornecedor (programador CX, estúdio Atmel, etc.).
Sou levado a acreditar que podemos estar adotando a abordagem errada ou pelo menos não sabemos qual produto procurar. O I / O é simples o suficiente para não justificar a criação de nossa própria placa, mas a funcionalidade que procuramos, a saber, a interação do CLP com o software de PC de alto nível, parece não estar disponível.
Idealmente, gostaríamos de baixar o programa inteiro para o PLC de uma só vez e não enviar instruções uma de cada vez. A execução de todas as instruções no PLC (ou qualquer outro dispositivo que acabamos usando) precisa ser em tempo real.
Existem CLPs disponíveis comercialmente que suportam a compilação e o download de código de máquina, de modo que todo o processo possa ser automatizado por um programa maior? Existe alguma outra maneira de baixar um programa em tempo real para um CLP escrito pelo software para PC, escrito em um idioma de alto nível?
fonte
Respostas:
Você pode definitivamente usar um CLP para isso. Exceto que você não deseja alterar o código do CP para cada "receita de smoothie".
Você deve escrever um aplicativo PLC que leia receitas de qualquer fonte, como cartões SD, armazenamento em rede, armazenamento interno ou até códigos QR, se estiver se sentindo bem.
Frequentemente, os CLPs já possuem um recurso para isso , onde uma receita é um conjunto de parâmetros que você pode carregar (e editar com a HMI).
O que você escolher usar, não invente seu próprio PLC . Provavelmente não vale o tempo. E não pense que o software ou o módulo adicional é caro, você não pode escrevê-lo por esse preço.
fonte
Assumirei que esta é uma tarefa bastante simples para um mínimo de CPC, em vez de algo usando CLPs industriais avançados
Também assumirei que isso é útil industrialmente, ou seja, que a receita deve poder ser alterada em 10 anos pelo cliente. Além disso, sua utilidade deve sobreviver a você sair do negócio ou passar para novos produtos.
Muitos sistemas exigirão algum software especial para baixar e / ou compilar, como você diz. A longo prazo, seus clientes descobrirão que o Windows 11,12,13 não executará mais o software. Para evitar isso, você deseja que o programa seja ascii simples, enviado através de uma porta serial de algum tipo. Isso já dura 50 anos e não mostra sinais de desaparecer.
A quarta é capaz de ser "compilada" no destino, portanto o cliente só precisa enviar ascii para ele a partir de um terminal. Isso nunca será obsoleto.
Parte do quarto ethos é que você escreva primitivas específicas do domínio ("AddBanana", "Blend", "Pour") que seus clientes tratam como um idioma específico para o produto. Embora o Forth seja considerado misterioso pelas pessoas do computador, é conceitualmente muito fácil de usar para os usuários finais - este seria um programa válido.
10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle
Como exemplo, você pode usar um pequeno CLP baseado em Arduino e carregar o FlashForth Existem muitas outras opções, por exemplo, MPEForth e um CLP baseado em ARM com córtex
Seu software agora é qualquer editor e algum programa para enviar serial. Existem ferramentas padrão para isso e, muito depois de sua partida, o cliente pode fazê-lo funcionar do zero, pois é muito simples.
Uma falha em toda a sua ideia é que o cliente está programando o produto e, é claro, pode resolvê-lo fazendo a coisa errada - qualquer que seja a abordagem que você escolher.
Por serem apenas arquivos ASCII, é muito fácil criar um shell sofisticado para o cliente, mas o produto ainda funcionará sem ele.
fonte
Não mexa no Arduino etc. para uma aplicação industrial. Os CLPs são projetados com confiabilidade, robustez, padrões e suporte de longo prazo em mente. A empresa em que trabalho trabalha com pelo menos um PLC da Texas Instruments desde 1987 e várias outras desde o início dos anos 90. Peças de reposição ainda estão disponíveis em fontes industriais no eBay, etc.
Use um CLP e uma IHM industrial com energia suficiente para fazer o que você precisa. Recentemente, concluí um trabalho de misturador em que queríamos flexibilidade de receita com etapas automáticas e manuais. A sequência é controlada através de uma matriz que é programada através da HMI.
Projetamos o sistema com uma série de vinte etapas, o que é suficiente para o futuro próximo, mas que pode ser facilmente expandido, se necessário. Todas as configurações têm valores mínimo e máximo definidos no aplicativo HMI.
Isso deixa o sistema muito flexível e editável. Temos um sistema robusto com PLC e HMI familiar e suportável por qualquer um de um grande número de empresas.
fonte
Você não especificou um orçamento para o desenvolvimento de hardware e software ou para o custo unitário do hardware implantado, mas se puder pagar, seu requisito certamente poderá ser atendido usando o hardware da National Instruments CompactRIO e o software LabVIEW Real-Time .
Está disponível uma variedade de módulos de E / S que se conectam ao chassi do controlador, ou se seu projeto é fixo e você deseja reduzir o custo por unidade, os controladores e a E / S estão disponíveis como placas únicas para você integrar com seu hardware . Você escreveria um software no LabVIEW Real-Time para rodar no controlador e executar o controle de processo, e isso também poderia servir uma interface do usuário baseada na Web para editar as etapas do processo ou se comunicar com um programa de interface do usuário, escrito no LabVIEW ou em outro idioma. , executando em um PC host. Tenho experiência limitada com PLCs, mas acho justo dizer que essa solução seria uma ordem de magnitude mais poderosa e flexível, embora provavelmente a um custo mais alto.
Observe que, embora o controlador cRIO seja fornecido com um FPGA integrado, você não precisa comprar o módulo LabVIEW FPGA, a menos que realmente precise escrever um código FPGA; parece que o tempo real deve ser bom para suas necessidades.
fonte
Minha sugestão é dar uma olhada no LabVIEW. Eu acho que satisfaria as necessidades listadas em sua postagem. Evite escrever seu compilador. É muito mais trabalho do que você precisa. São muitos PLC's comerciais que caberiam na conta. Eu acho que a NI é uma das mais fáceis de trabalhar. Quanto ao download de programas do usuário, você precisa criar um aplicativo para fazer isso.
http://www.ni.com/en-us/shop/labview.html
A NI possui uma ampla variedade de módulos, incluindo AtoD, saídas digitais, saídas analógicas, interface CAN, etc. O software é muito útil para criar interfaces de usuário com boa aparência. A desvantagem é que não é barato. Se também é muito diferente da programação baseada em texto. Algum treinamento seria necessário.
fonte