Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Imagem nativa Java e GraalVM:aumentando a conectividade do banco de dados em aplicativos de manufatura


O cenário atual de aplicações nas indústrias de manufatura está dividido em uma hierarquia rígida. Desde o gerenciamento usando sistemas ERP até sistemas de planejamento usando MES, passando por sistemas de supervisão usando SCADA, até sistemas de controle realizados com PLCs e sistemas de campo na parte inferior.

Enquanto a maioria dos sistemas de gerenciamento, planejamento e supervisão são implementados em linguagens de programação orientadas a objetos de alto nível, os sistemas de controle são implementados completamente com linguagens de baixo nível, sendo C a linguagem de programação dominante.

Esta mudança abrupta de um nível hierárquico de alto nível para um nível inferior cria vários problemas. São necessárias ferramentas e ecossistemas completamente diferentes. Para a implementação, desenvolvedores completamente diferentes com uma maneira de pensar diferente devem ser contratados para implementar uma tarefa. As interfaces devem ser definidas entre os dois mundos ou sistemas. Somente porque não há possibilidade de continuar com uma linguagem de programação de alto nível conhecida desde o nível de supervisão até o nível de controle. Isso agora mudou. Usando a tecnologia de contêiner no nível de controle de um PLC, por exemplo, somos capazes de usar linguagens de programação como Java nesse nível de hierarquia e quebrar hierarquias rígidas.



Java é uma linguagem de programação orientada a objetos de alto nível amplamente utilizada. Possui uma comunidade vibrante e um ecossistema de bibliotecas e estruturas que fornecem funcionalidades adicionais, permitindo que você aproveite as ferramentas e soluções existentes para construir seu aplicativo de forma mais rápida e eficiente.

Mostraremos como o Java está disponível em um PLCnext da Phoenix Contact para simplificar o desenvolvimento de uma aplicação que está rodando no PLCnext e se comunica diretamente com um banco de dados para recuperar e armazenar informações relevantes da aplicação e apresentá-las em uma interface web. Um dos frameworks mais populares em Java é o Hibernate. Ele simplifica o processo de mapeamento de objetos Java para tabelas de bancos de dados relacionais, reduzindo a quantidade de código padrão necessário para operações de banco de dados. O Hibernate fornece um alto nível de abstração, permitindo que os desenvolvedores trabalhem diretamente com objetos em vez de consultas SQL. Isso pode levar a ciclos de desenvolvimento mais rápidos e a uma redução do esforço de desenvolvimento. O Hibernate abstrai as diferenças entre os diferentes fornecedores de bancos de dados, facilitando a alternância entre bancos de dados sem alterações significativas no código. Este artigo descreve a integração do Hibernate para conectar software executado em PLCs a bancos de dados.

Aplicação Java moderna no PLCnext


Para começar a implementar um aplicativo Java moderno, recomendamos o uso de frameworks de aplicativos como Quarkus ou Spring Boot. Esses frameworks simplificam a configuração do projeto, o gerenciamento de dependências.

Para este exemplo, iniciaremos nosso aplicativo usando o Guia de Persistência de Hibernate ORM e Jakarta do Quarkus. Um exemplo do código-fonte pode ser encontrado no projeto github hibernate-orm-quickstart.

Começaremos modificando o código fonte do aplicativo. Podemos mudar a classe Java 09 em 16 e adicione um novo campo 26 .

Exemplo de código 34 :
08 
Podemos configurar a URL do banco de dados e as credenciais modificando o arquivo 41

Exemplo de src/main/resources/application.properties
17 
Quando a aplicação for iniciada, uma tabela no banco de dados será criada e inicializada, se necessário. Após a inicialização, podemos interagir com o banco de dados através de uma interface web rodando na porta 8080 do PLC.



Tenha em mente que tudo isso acontece no nível de controle da nossa hierarquia, sem qualquer sistema adicional entre eles.

Imagem nativa do GraalVM


Muitos desenvolvedores ainda acreditam que Java requer o chamado Java Runtime Environment para executar Java Byte-Code e não fornece o desempenho necessário. Este não é mais o caso dos aplicativos incorporados. Neste exemplo, usamos a tecnologia GraalVM Native Image para compilar código Java em um aplicativo nativo. A compilação de imagem nativa do GraalVM oferece uma solução atraente para enfrentar os desafios de tempo de inicialização e consumo de memória em aplicativos Java, especialmente em ambientes com recursos limitados, como sistemas embarcados. Ao compilar aplicações Java antecipadamente em executáveis ​​nativos, o GraalVM reduz significativamente o tempo de inicialização e a sobrecarga de memória em comparação com a compilação tradicional Just-In-Time (JIT).

O GraalVM do MicroDoc tem a capacidade única de gerar binários para dispositivos embarcados. No momento em que este tutorial foi escrito, GraalVM suporta processadores ARM e x86 de 32 e 64 bits.

Para compilar nossa aplicação Java antecipadamente visando o PLC 56 , podemos usar o GraalVM do MicroDoc e configurar algumas opções do compilador no arquivo 61 .
25 
Você encontrará mais informações sobre o processo de compilação cruzada e depuração no seguinte artigo:Construindo e depurando imagens nativas Java do MicroDoc GraalVM Embedded

Para construir o aplicativo, você pode simplesmente usar o seguinte comando:
38 
A seguir iniciamos o simulador PLCnext. O simulador é fornecido como uma imagem qemu. O simulador nos cumprimentará com a seguinte linha:
47 
Os binários gerados podem ser copiados para o CP com o comando 73 que abre um shell seguro para o PLC e transfere o binário para o sistema de destino. Você pode iniciar o aplicativo usando o seguinte comando:
55 
Usando o cliente PLCnext cockpit também podemos dar uma olhada no uso atual de memória e armazenamento:



No entanto, também estamos interessados na inicialização e no consumo de memória de nosso aplicativo único em comparação com a execução do aplicativo em um Java Runtime Environment como OpenJDK. Assim, medimos ambos os valores conforme mostrado na tabela a seguir:

Tempo de inicialização (menos é melhor), Uso de memória (menos é melhor)

Imagem nativa do GraalVM: 0,413s, 87MB

OpenJDK: 13 segundos, 128 MB

GraalVM Native Image oferece desempenho significativamente melhorado em termos de tempo de inicialização e uso de memória em comparação com OpenJDK, demonstrando sua eficácia na otimização do consumo de recursos para implantação eficiente de aplicativos.

Resumo


Usar Java no nível de controle como um PLC traz vários benefícios. Em primeiro lugar, não há corte tecnológico entre o nível de supervisão e o nível de controlo. A mesma força de trabalho pode implementar aplicações e beneficiar-se do ecossistema Java e das ferramentas disponíveis. Em segundo lugar, o GraalVM é capaz de compilar código Java como aplicativos nativos em dispositivos embarcados, como processadores ARM e x86 de 32 e 64 bits. Assim, seus desenvolvedores não precisam se preocupar com a arquitetura subjacente e podem implementar sua aplicação em uma linguagem orientada a objetos de alto nível. Terceiro, graças ao suporte de contêiner do PLCnext da Phoenix Contact, temos acesso às interfaces do PLC diretamente no mesmo componente de hardware e podemos quebrar as hierarquias rígidas nas aplicações atuais das indústrias de manufatura.

Observação:


O Makers Blog mostra aplicativos e histórias de usuários de membros da comunidade que não foram testados ou revisados pela Phoenix Contact. Use-os por sua própria conta e risco.

Tecnologia industrial

  1. Guia passo a passo para fiação de disjuntores tandem para circuitos de 120 V e 240 V
  2. Como a automação afeta a indústria de manufatura
  3. Como a mobilidade contextual pode aumentar a produtividade da cadeia de suprimentos
  4. Compreendendo o processo de fabricação de carcaças de fundição de investimento
  5. Diretrizes críticas de design e produção para moldagem por inserção
  6. Fabricando painéis:visualize a produção em tempo real
  7. Cinco maneiras de reduzir a escassez de mão de obra em sua loja
  8. Estrela para Delta e Delta para Estrela. Transformação Y-Δ
  9. Dissipador de calor com led:o que é e por que é importante?
  10. Portas inteligentes e contêineres conectados:como a tecnologia IoT está transformando a remessa