Existem CLPs disponíveis comercialmente que podem compilar / baixar programas por meio de uma API?

9

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?

Dragonsheep
fonte
Que tal usar um sistema operacional e permitir que o usuário edite o código do seu programa por meio de uma GUI personalizada e compile-o, por exemplo, com o GCC e faça o download do programa compilado no seu "PLC".
Eggi
Você poderia sugerir materiais ou tutoriais que introduzam a programação e os princípios do RTOS? Eu estou mais familiarizado com o desenvolvimento incorporado sem RT e com a lógica ladder tradicional; portanto, embora eu esteja muito interessado nessa solução, não sei por onde começar.
Dragonsheep
@ O que é uma API? Se for "interface do programa aplicativo", como você compila / faz o download através dele?
Dmitry Grigoryev
11
@Dragonsheep Melhor ignorar essa idéia. Existem muitos aspectos que não são à prova da indústria, como Henry Cun afirmou. 1º: Como você altera o código antes da compilação? Colocá-lo em algum lugar em texto não criptografado? 2º: suporte ao longo de décadas com o SO
Eggi

Respostas:

11

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).

IO em tempo real para dispositivos externos com processamento mínimo

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.

Jeroen3
fonte
5

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.

Henry Crun
fonte
Obrigado pela resposta! Algo como o Controllino que você sugeriu é exatamente o que estamos procurando! Um CLP minimalista, onde temos controle direto sobre o software e podemos baixar programas via serial. Quando você diz que temos "muitas outras opções", quais seriam os termos de pesquisa relevantes / que outros produtos você sugere? Minha equipe está mais familiarizada com a indústria pesada, por isso ficamos sem ideias depois de ler os catálogos habituais da Siemens / Mitsubishi / Omron e não encontrar o que estávamos procurando.
Dragonsheep
@ Dragonsheep: Recomendamos que você espere um dia ou dois antes de aceitar uma resposta. Isso incentiva outras pessoas a escrever e você receberá mais respostas e diferentes pontos de vista.
Transistor
Se essa é uma abordagem interessante para você, e você é uma pessoa que paga dinheiro por ferramentas, conhecimento e suporte, convém conversar com Stephen Pelc no MPEForth. Ele faz esse tipo de coisa comercialmente. Por outro lado, se você é um software de cerveja grátis, procure módulos baseados em arduino ou plc's e FlashForth.
Henry Crun
11
Também concordo com as respostas do @Transistor e do Jeroen: se o que você precisa é de um PLC industrial, então é o que você precisa. (e os módulos aleatórios do Arduino plc não são robustos o suficiente para serem controladores de fábrica, mais um controlador dentro da caixa benigna). Eu tenderia a discordar das soluções do tipo "obtenha algo com um sistema operacional e use o GCC", como provavelmente levando ao pior de todos os mundos possíveis.
Henry Crun
Esta é realmente uma aplicação industrial que esperamos vender para um cliente. Esperamos ter a confiabilidade de mais de 20 anos que os grandes fornecedores industriais (Mitsubishi, etc.) demonstraram com seus produtos, por isso há alguma preocupação em procurar um desses novos fornecedores de hardware de código aberto. Ao mesmo tempo, o software de código aberto parece nos dar o controle que estamos procurando. Stephen parece ser uma boa pessoa para alcançar. Obrigado pela liderança.
Dragonsheep
2

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.

  • Número do passo. por exemplo '5'.
  • Descrição. por exemplo, 'Pesagem automática de banana', 'Carregamento manual de cerejas', 'Raspar'.
  • Velocidade de mistura (RPM). por exemplo '25'.
  • Misture o (s) tempo (s). por exemplo '120'.
  • Raspagem necessária no final da etapa? (S / N), por exemplo, 'S'.
  • Calor necessário? (S / N), por exemplo, 'N'.
  • Temperatura (° C). por exemplo '0'.

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.

Transistor
fonte
Obrigado pela resposta. A aplicação específica que temos é para bioquímica automatizada; portanto, com centenas de reagentes e potencialmente centenas de etapas envolvidas no processo que estamos automatizando, é minha opinião atual que qualquer tipo de programação de dispositivo HMI seria irremediavelmente complicado.
Dragonsheep
1

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 .

O controlador CompactRIO é um controlador embarcado robusto, confiável, de alto desempenho e de nível industrial, com certificações padrão do setor.

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.

nekomatic
fonte
0

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.

user125718
fonte