JoVE Logo

Entrar

É necessária uma assinatura da JoVE para visualizar este conteúdo. Faça login ou comece sua avaliação gratuita.

Neste Artigo

  • Resumo
  • Resumo
  • Introdução
  • Protocolo
  • Resultados
  • Discussão
  • Divulgações
  • Agradecimentos
  • Materiais
  • Referências
  • Reimpressões e Permissões

Resumo

Este trabalho propõe um método flexível para comunicação de dados entre um sistema de extrusão de filme e dispositivos de monitoramento com base em um protocolo de mensagem chamado Message Queuing Telemetry Transport (MQTT).

Resumo

Este trabalho visa construir uma estrutura flexível de comunicação de dados para uma máquina de processamento de polímeros, empregando um protocolo baseado em editor-assinante chamado Message Queuing Telemetry Transport (MQTT), que é operado via TCP/IP. Mesmo usando equipamentos convencionais, os dados de processamento podem ser medidos e registrados por vários dispositivos em qualquer lugar através de uma comunicação com a Internet. Um protocolo baseado em mensagens permite uma comunicação flexível que supere as deficiências do protocolo servidor-cliente existente. Vários dispositivos podem assinar os dados de processamento publicados por dispositivos de origem. O método proposto facilita a comunicação de dados entre vários editores e assinantes. Este trabalho implementou um sistema que publica dados do equipamento e sensores adicionais a um corretor de mensagens. Os assinantes podem monitorar e armazenar os dados do processo retransmitidos pelo corretor. O sistema foi implantado e executado para uma linha de extrusão de filme para demonstrar a eficácia.

Introdução

Na onda da 4ª revolução industrial, a aquisição e monitoramento de diversos dados de processamento tornaram-se importantes tarefas1. Em particular, melhorar o processo de fabricação utilizando dados de processos e estabelecer planos de operação eficientes será um objetivo importante de todas as instalações fabris 2,3. O tempo de inatividade pode ser muito reduzido se um alarme pode ser enviado para fora da fábrica ou se a manutenção preditiva pode ser realizada no tempo4. Recentemente, muitos esforços foram feitos para análise de dados nos processos de polímeros 5,6. No entanto, não é fácil realizar essas tarefas devido às dificuldades na aquisição desses dados dos sistemasexistentes 7. A estrutura hierárquica do controle e da instrumentação dificulta a aquisição e comunicação dos dados.

Em primeiro lugar, não é possível obter dados de diferentes máquinas com diferentes datas de fabricação. É difícil perceber a comunicação entre diferentes máquinas, pois isso requer interoperabilidade entre diferentes ônibus de campo em formatos proprietários. Dessa forma, os métodos de comunicação e os formatos de dados são mantidos em sigilo. Isso ajuda a manter facilmente a segurança dos dados, mas mantém os usuários dependentes da construção de máquinas para os serviços e desenvolvimentos futuros. Os computadores de controle recentes, incluindo a interface homem-máquina (HMI) ligada a máquinas de processamento de polímeros, são principalmente baseados no Windows nos dias de hoje, mas são carregados com software criado em um ambiente de desenvolvimento proprietário. É possível usar controladores lógicos programáveis (PLCs) de diferentes empresas para se comunicar com os sensores ou atuadores, mas, em muitos casos, o sistema de controle de supervisão superior e aquisição de dados (SCADA) depende dos computadoresde controle 8. Essa prática tem causado inúmeros protocolos, ônibus de campo e sistemas de controle para competir no mercado. Embora essa complexidade tenha sido aliviada pouco a pouco ao longo do tempo, muitos tipos de ônibus e protocolos ainda estão em uso ativo.

Por outro lado, a comunicação entre dispositivos de controle e SCADA foi padronizada pela Open Platform Communications United Architecture (OPCUA)9. Além disso, a comunicação entre a SCADA e o Sistema de Execução de Manufatura (MES) também tem sido feita principalmente através da OPCUA. Em uma estrutura hierárquica tão apertada, não é fácil extrair dados livremente para monitoramento e análise de processos. Normalmente, os dados devem ser extraídos do SCADA ou MES10. Como mencionado anteriormente, esses sistemas são específicos do fornecedor, e os formatos de dados raramente estão abertos. Como resultado, a extração de dados requer suporte substancial dos fornecedores originais de soluções de tecnologia da informação/tecnologia operacional (TI/OT). Isso pode dificultar a aquisição de dados para monitoramento e análise.

Em uma linha de extrusão de filme, o PC de controle é supervisionado por um sistema SCADA11. O sistema SCADA é operado por um programa de computador que não pode ser facilmente modificado. O programa de computador pode ser editável, mas a edição é bastante cara e demorada. Para monitorar e analisar facilmente os dados de processamento, os dados devem ser acessíveis a partir de qualquer local. Para monitorar os dados de processamento longe do site, o programa de computador deve ser capaz de transmitir os dados de processamento para a Internet12. Além disso, um método livre e aberto reduz os gastos para a aquisição de dados13. Essa abordagem permite que a análise de dados seja realizada mesmo em pequenas fábricas que não podem se dar ao luxo de investir em soluções comerciais de TI14.

Neste estudo, é empregado um protocolo de mensagens baseado no modelo editor-assinante. O Message Queuing Telemetry Transport (MQTT) é um protocolo aberto e padrão que permite mensagens entre vários provedores de dados e consumidores15. Aqui, propomos um sistema que adquira, transmita e monitora dados usando MQTT para instalações de fabricação existentes. O sistema é testado em uma linha de extrusão de filme para verificar o desempenho. Os dados do controlador original são transmitidos para um dispositivo de borda através do protocolo Modbus. Em seguida, os dados são publicados para o corretor. Enquanto isso, dois Raspberry Pis publicam as temperaturas medidas e a iluminação para o mesmo corretor. Em seguida, qualquer dispositivo na Internet pode assinar os dados, seguido de monitoramento e registro, conforme mostrado na Figura 1. O protocolo neste trabalho mostra como todo o procedimento pode ser feito.

Protocolo

1. Instalação de corretores

NOTA: Para monitorar e registrar os dados de processamento via Internet, um sistema de computador que transmite os dados deve ser preparado. O sistema deve ser acessível tanto pelos editores quanto pelos assinantes, como mostrado na Figura 2. Assim, ele precisa ter um endereço IP público que seja conhecido antes de qualquer comunicação. Um corretor aberto de MQTT chamado Eclipse Mosquitto está instalado no sistema13.

  1. Conecte um computador à Internet dando um endereço IP público. Dê o endereço na configuração IP do sistema operacional.
  2. Instale um software de corretor como o Eclipse Mosquitto no computador. Baixe o arquivo de instalação usando um navegador e execute-o.
  3. Teste o corretor com um programa de teste como o MQTT Lens. Baixe mqtt lens usando um navegador e instale-o. Em seguida, certifique-se de que as mensagens publicadas sejam subscritas.

2. Preparação do editor principal

NOTA: Este computador publica os dados da máquina via MQTT sobre TCP para o corretor. Os dados legados devem ser interpretados e reembalados para serem enviados. Isso geralmente pode ser feito por RS485 ou Ethernet. A conexão no nível de hardware deve ser verificada dependendo do tipo de barramento. A máquina de extrusão envia os dados via Modbus através de uma porta Ethernet.

  1. Coloque fisicamente um computador no site da máquina e configure-o como o editor principal.
    NOTA: Embora não seja obrigatório, um computador industrial foi selecionado neste trabalho.
  2. Instale o Python3 no computador. Baixe o arquivo do instalador usando um navegador e execute-o.
  3. Instale o PyModbus16. Baixe o arquivo do instalador usando um navegador e execute-o.
  4. Examine o controlador de extrusão com HMI controlando a máquina e conecte o controlador de extrusão ao editor principal.
  5. Identifique totalmente os dados e o endereço correspondente no protocolo Modbus da máquina usando uma ferramenta Modbus como ModbusPoll ou QModMaster. Certifique-se de que os dados da máquina enviados sejam mostrados nas células correspondentes da ferramenta Modbus.
  6. Escreva um código Python no PC do editor que recupera os dados do controlador de extrusão.
    NOTA: Aqui está um exemplo de código:
    de pyModbusTCP.cliente importação ModbusClient
    cliente = ModbusClient(host="192.168.1.***", port=***, unit_id=***)
    cliente.open()
    ExtrusionData = str(client.read_holding_registers(1000, 58))
  7. Mescla fluxos de dados adicionais de outros dispositivos via PCIe, USB, RS232 e RS485.
    NOTA: Isso é simples. Uma vez que uma sequência de dados adicional seja obtida, basta adicionar os dados ao fluxo de dados existente, que é feito pelo seguinte código:
    ExtrusãoData += Dados adicionais
  8. Importe o paho.mqtt.client após a instalação de opas-mqtt por pip instalar paho-mqtt17 .
  9. Implemente o código para conectar e publicar dados ao corretor.
    NOTA: Consulte o seguinte exemplo de código:
    url="117.xx.xxx.xx"; porto = 1883; nome de usuário = "****"; senha = "xxxxx"; tópico = "Extrusor"
    mqttc = mqtt. Cliente() Cliente()
    mqttc.username_pw_set (nome de usuário,senha)
    mqttc.connect(host=url, port=port)
    mqttc.loop_start
    ExtrusionData = str(client.read_holding_registers(1000, 58))
    Pub1= mqttc.publish(tópico, ExtrusionData))
    Pub1.wait_for_publish

3. Preparação adicional do editor

NOTA: Este computador também publica os dados da máquina via MQTT sobre TCP para o corretor. Às vezes, é necessária uma medida adicional que não pode ser feita no editor principal. Dispositivos de Internet das Coisas (IoT) como Raspberry Pi e Arduino podem assumir o papel. Neste trabalho, raspberry Pi foi empregado para dados de temperatura e dados de iluminação. O procedimento é semelhante ao protocolo seção 2.

  1. Coloque um Raspberry Pi perto do local do sensor.
    NOTA: Como a distância de fiação é limitada, o Raspberry Pi não pode ser colocado muito longe do local de medição. No entanto, como a proximidade da extrusora é muito quente, o dispositivo precisa ser colocado a pelo menos 1 m de distância do local de medição.
  2. Instale o Python3 no Raspberry Pi pelos seguintes comandos na linha de comando:
    sudo apt atualização
    sudo apt instalar Python3 ocioso3
  3. Implemente o código para adquirir os dados do sensor. Os dados do sensor podem ser transmitidos via I2C ou GPIO.
    NOTA: Consulte o seguinte exemplo de código para obter dados adicionais de temperatura via GPIO:
    de max6675 importação MAX6675
    cs_pin1 = 24; clock_pin1 = 25; data_pin1 = 18
    cs_pin2 = 9; clock_pin2 = 11; data_pin2 = 19
    unidades = "C"
    termopar1 = MAX6675 (cs_pin1, clock_pin1, data_pin1, unidades)
    termopar2 = MAX6675 (cs_pin2, clock_pin2, data_pin2, unidades)
    T1 = termocouple1.get()
    T2 = termocoupla2.get()
  4. Importação paspas.mqtt.cliente.
  5. Reutilize o código na seção 2 para conectar e publicar dados ao corretor.

4. Configuração do assinante

NOTA: Qualquer dispositivo na Internet pode receber os dados de processamento através do corretor. Os dados são processados e visualizados também por um código Python. Caso o desenvolvimento seja difícil, aplicativos disponíveis como MQTT Client no Google Play e MQT Tool na App Store podem ser empregados. Como a implementação da interface do usuário é bastante longa, os detalhes não são descritos aqui. Observe também que aplicativos existentes, como a Ferramenta MQT na App Store, podem receber os dados.

  1. Acione um dispositivo para assinatura da Internet. Certifique-se de uma conexão física do cabo e execute um ping para o IP do corretor na linha de comando (por exemplo, ping 117.xx.xxx.xx).
  2. Instale um ambiente Python adequado dependendo do dispositivo e do SISTEMA OPERACIONAL. Por exemplo, instale o Pydroid3 em um dispositivo android em vez do Python3 do Google Play.
  3. Importe tanto opaho.mqtt.client quanto opas.mqtt.subscribe para se conectar e receber dados do corretor.
    NOTA: Consulte o seguinte exemplo de código:
    importar opas.mqtt.cliente como mqtt
    importar opas.mqtt.inscreva-se como subscrever
    url="117.xx.xxx.xx"; porto = 1883; nome de usuário = "****"; senha = "xxxxx"; tópico = "Extrusor"
    mqttc.username_pw_set (nome de usuário, senha)
    mqttc.connect(host=url, port=port)
    mqttc.subscribe (tópico, 0)
    mqttc.loop_start
    Sub1 = subscribe.simple (tópico, hostname=url)
    ExtruderData = Sub1.payload.decode ("utf-8")
  4. Construa uma interface de usuário conforme necessário usando o PyQT5.
    NOTA: Esta parte é muito longa e se concentra na representação gráfica dos dados recebidos em vez de comunicação. O código correspondente é fornecido como dados complementares.
  5. Exiba os dados recebidos na GUI executando o código construído.

5. Registro de dados

NOTA: Os dados de processamento podem ser escritos em um banco de dados durante o monitoramento. Neste trabalho, foi escolhido um banco de dados em escala de laboratório. Os dados estão conectados a um arquivo do Microsoft Access para gravar e recuperar facilmente de um computador de usuário. Além disso, uma tabela pode ser incorporada instantaneamente por uma consulta para analisar dados em uma planilha como o Microsoft Excel.

  1. Selecione um dispositivo de assinante para registrar os dados.
  2. Importe pyodbc executando "pip install pyodbc" na linha de comando para que o código Python acesse o banco de dados, conforme mostrado na Figura 318.
  3. Envie uma consulta ao banco de dados pelo código Python para registrar os dados de processamento. Consulte o código Python na Figura 3 para o método.
  4. Envie uma consulta ao banco de dados para recuperação dos dados registrados.
    NOTA: Um exemplo de código para recuperação de dados é dado abaixo:
    importação pyodbc
    x para x em pyodbc.drivers() se x.startswith ('Microsoft Access Driver')]
    conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Users\data_analysis\db1.accdb;'
    )
    cnxn = pyodbc.connect (conn_str)
    crsr = cnxn.cursor()
    para table_info em crsr.tables(tableType='TABLE'):
    impressão (table_info.table_name)
    sql = ""\\
    SELECIONE * A PARTIR de Process_Condition
    """
    crsr = cnxn.execute(sql)
    para linha em crsr:
    Dados recuperados = pd.read_sql(sql, cnxn)
    crsr.close()
    cnxn.close()

6. Implantação

NOTA: Se todos os dispositivos puderem ser conectados à Internet, a configuração será simples. No entanto, para proteger os dados laterais da máquina, os editores podem estar apenas na intranet. Neste caso, o corretor pode ser uma porta de entrada para a Internet. Para isso, o corretor deve ser equipado com dois adaptadores ethernet, um dos quais deve ter um endereço IP público. Depois que todos os itens forem desenvolvidos, os códigos devem ser implantados em cada dispositivo, conforme mostrado na Figura 4. O modo de conexão, com fio ou sem fio, não é importante, mas tem que ser protegido para que cada dispositivo possa acessar o corretor. Isso significa que o corretor pode atuar como um portal na fronteira entre a intranet e a Internet para fins de segurança. Claro que, mesmo que todos os dispositivos estejam expostos à Internet, não há problema do ponto de vista da comunicação.

  1. Conecte o controlador de extrusão, o editor principal e os editores adicionais à porta Intranet via ethernet.
  2. Conecte uma porta ethernet do corretor à intranet e a outra à Internet.
  3. Conecte os assinantes à Internet repetindo o passo 4.1 para todos eles.

7. Execução

NOTA: Para testar todo o sistema, iniciamos a linha de extrusão e executamos todos os códigos Python e Mosquitto.

  1. Inicie o processo de extrusão. No HMI da máquina, defina as temperaturas e ligue o aquecedor tocando o botão na tela do HMI. Uma vez alcançada a temperatura necessária, inicie a rotação do parafuso para extrusir o derretimento do polímero.
  2. Ligue todos os computadores, inicie o software de corretor no dispositivo de corretor pelo comando "net start mosquitto", e então execute os códigos Python para monitorar e registrar os dados de processamento conforme necessário.
    NOTA: A ordem da etapa 7.1 e da etapa 7.2 pode ser invertida. Os códigos Python podem ser executados simplesmente digitando "python3 xxxxx.py" na linha de comando seguido de pressionar Enter. Adicione este comando aos programas de inicialização para evitar digitar o comando toda vez que o dispositivo reinicializar.

Resultados

Verificou-se que os dados mostrados no IHM e medidos pelo Raspberry Pis foram monitorados e registrados nos assinantes, como mostrado na Figura 5. Conforme apresentado no vídeo, os dados de processamento são registrados no banco de dados.

figure-results-365
Figura 1: Esboço da transmissão de dados utilizando o proto...

Discussão

Seguindo o protocolo apresentado, os dados de processamento podem ser monitorados e registrados sem soluções de TI caras, como o MES. As tecnologias de IoT podem facilitar a aquisição e o armazenamento de dados de máquinas convencionais. Foi demonstrado que o protocolo baseado em mensagens, MQTT, serve com sucesso como uma plataforma de comunicação de dados para linhas de processamento de polímeros. Além disso, dados adicionais podem ser medidos e transmitidos de forma flexível em conjunto. Os editores adiciona...

Divulgações

Os autores não declaram conflitos de interesse.

Agradecimentos

Este estudo foi apoiado pelo Programa de Pesquisa financiado pela SeoulTech (Universidade Nacional de Ciência e Tecnologia de Seul).

Materiais

NameCompanyCatalog NumberComments
Edge DeviceAdavantechUNO 420Intel Atom E3815 Fanless
Film Extrusion MachineEM KoreaNot AvailableFor production of 450 mm film
PydroidIIECNot AvailableAndroid Devices
Python3Python Software FoundataionNot AvailableWindows, Linux
Raspberry Pi 4CanaKitNot AvailableStandard Kit

Referências

  1. Shafiq, S. I., Szczerbicki, E., Sanin, C. Proposition of the methodology for Data Acquisition, Analysis and Visualization in support of Industry 4.0. Procedia Computer Science. 159, 1976-1985 (2019).
  2. Dilda, V., et al. Manufacturing: Analytics unleashes productivity and profitability. McKinsey & Company. , (2017).
  3. Ismail, A., Truong, H. L., Kastner, W. Manufacturing process data analysis pipelines: A requirements analysis and survey. Journal of Big Data. 6, 1 (2019).
  4. Nwanya, S. C., Udofia, J. I., Ajayi, O. O. Optimization of machine downtime in the plastic manufacturing. Cogent Engineering. 4 (1), 1335444 (2017).
  5. Zhou, T., Song, Z., Sundmacher, K. Big data creates new opportunities for materials research: A review on methods and applications of machine learning for materials design. Engineering. 5 (6), 1017-1026 (2019).
  6. Rousopoulou, V., Nizamis, A., Thanasis, V., Ioannidis, D., Tzovaras, D. Predictive maintenance for injection molding machines enabled by cognitive analytics for Industry 4.0. Frontiers in Artificial Intelligence. 3, 578152 (2020).
  7. Mamo, F. T., Sikora, A., Rathfelder, C. Legacy to Industry 4.0: A Profibus Sniffer. Journal of Physics: Conference Series. 870, 012002 (2017).
  8. Figueroa-Lorenzo, S., Añorga, J., Arrizabalaga, S. A role-based access control model in Modbus SCADA systems. A centralized model approach. Sensors. 19 (20), 4455 (2019).
  9. Schleipen, M., Gilani, S. -. S., Bischoff, T., Pfrommer, J. OPC UA & Industrie 4.0 - Enabling technology with high diversity and variability. Procedia CIRP. 57, 315-320 (2016).
  10. Nițulescu, I. -. V., Korodi, A. Supervisory control and data Acquisition approach in node-RED: Application and discussions. IoT. 1, 76-91 (2020).
  11. Perez-Lopez, E. SCADA systems in the industrial automation. Tecnología en Marcha. 28 (4), 3-14 (2015).
  12. Andersen, D. L., Ashbrook, C. S. A., Karlborg, N. B. Significance of big data analytics and the internet of things (IoT) aspects in industrial development, governance and sustainability. International Journal of Intelligent Networks. 1, 107-111 (2020).
  13. Kashyap, M., Sharma, V., Gupta, N. Taking MQTT and NodeMcu to IOT: Communication in Internet of Things. Procedia Computer Science. 132, 1611-1618 (2018).
  14. . Mythbusting the MES. Systema Available from: https://www.systema.com/blog/mythbusting-the-mes (2021)
  15. Yeh, C. -. S., Chen, S. -. L., Li, I. -. C. Implementation of MQTT protocol based network architecture for smart factory. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture. 235 (13), 2132-2142 (2021).
  16. Parian, C., Guldimann, T., Bhatia, S. Fooling the master: Exploiting weaknesses in the Modbus protocol. Procedia Computer Science. 171, 2453-2458 (2020).
  17. Mishra, B., Kertesz, A. The use of MQTT in M2M and IoT systems: A survey. IEEE Access. 8, 201071-201086 (2020).
  18. . pyodbc 4.0.34 Available from: https://pypi.org/project/pyodbc/ (2021)
  19. Ayer, V., Miguez, S., Toby, B. Why scientists should learn to program in Python. Powder Diffraction. 29 (2), 48-64 (2014).
  20. Boyes, H., Hallaq, B., Cunningham, J., Watson, T. The industrial internet of things (IIoT): An analysis framework. Computers in Industry. 101, 1-12 (2018).

Reimpressões e Permissões

Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE

Solicitar Permissão

Explore Mais Artigos

EngenhariaEdi o 185IoTMQTTextrus ocomunica o

This article has been published

Video Coming Soon

JoVE Logo

Privacidade

Termos de uso

Políticas

Pesquisa

Educação

SOBRE A JoVE

Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados