JoVE Logo

Войдите в систему

Для просмотра этого контента требуется подписка на Jove Войдите в систему или начните бесплатную пробную версию.

В этой статье

  • Резюме
  • Аннотация
  • Введение
  • протокол
  • Результаты
  • Обсуждение
  • Раскрытие информации
  • Благодарности
  • Материалы
  • Ссылки
  • Перепечатки и разрешения

Резюме

В данной работе предлагается гибкий метод передачи данных между системой экструзии пленки и устройствами мониторинга на основе протокола сообщений под названием Message Queuuing Telemetry Transport (MQTT).

Аннотация

Эта работа направлена на создание гибкой структуры передачи данных для машины обработки полимеров путем использования протокола на основе издателя-подписчика под названием Message Queuuing Telemetry Transport (MQTT), который работает по TCP / IP. Даже при использовании обычного оборудования обработка данных может быть измерена и записана различными устройствами в любом месте через интернет-связь. Протокол на основе сообщений обеспечивает гибкую связь, которая преодолевает недостатки существующего протокола сервер-клиент. Несколько устройств могут подписаться на обработку данных, опубликованных исходными устройствами. Предлагаемый метод облегчает передачу данных между несколькими издателями и подписчиками. В этой работе реализована система, которая публикует данные с оборудования и дополнительных датчиков в брокер сообщений. Подписчики могут отслеживать и хранить данные процесса, передаваемые брокером. Система была развернута и запущена для линии экструзии пленки, чтобы продемонстрировать эффективность.

Введение

На волне 4-й промышленной революции сбор и мониторинг различных обрабатывающих данных стали важнымизадачами1. В частности, улучшение производственного процесса с использованием технологических данных и создание эффективных планов работы будет важной целью всех производственных объектов 2,3. Время простоя может быть значительно сокращено, если сигнал тревоги может быть отправлен с завода или если профилактическое обслуживание может быть выполнено во времени4. В последнее время было предпринято много усилий для анализа данных в полимерных процессах 5,6. Однако выполнить эти задачи непросто из-за трудностей в получении таких данных из существующих систем7. Иерархическая структура управления и контрольно-измерительных приборов затрудняет сбор и передачу данных.

Прежде всего, невозможно получить данные с разных машин с разными датами изготовления. Трудно реализовать связь между различными машинами, поскольку это требует взаимодействия между различными полевыми шинами в проприетарных форматах. Таким образом, методы связи и форматы данных остаются конфиденциальными. Это помогает легко поддерживать безопасность данных, но держит пользователей зависимыми от машиностроителя для служб и будущих разработок. Последние управляющие компьютеры, включая человеко-машинный интерфейс (HMI), подключенные к машинам для обработки полимеров, в наши дни в основном основаны на Windows, но загружены программным обеспечением, созданным в проприетарной среде разработки. Можно использовать программируемые логические контроллеры (ПЛК) разных компаний для связи с датчиками или исполнительными механизмами, но во многих случаях система высшего диспетчерского управления и сбора данных (SCADA) зависит от управляющих компьютеров8. Эта практика привела к тому, что многочисленные протоколы, полевые шины и системы управления конкурировали на рынке. Хотя со временем эта сложность постепенно уменьшилась, многие типы полевых шин и протоколов все еще активно используются.

С другой стороны, связь между устройствами управления и SCADA была стандартизирована Open Platform Communications United Architecture (OPCUA)9. Кроме того, связь между SCADA и Системой управления производством (MES) также осуществлялась в основном через OPCUA. В такой жесткой иерархической структуре нелегко свободно извлекать данные для мониторинга и анализа процессов. Обычно данные должны быть извлечены из SCADA или MES10. Как упоминалось ранее, эти системы зависят от поставщика, и форматы данных редко бывают открытыми. В результате извлечение данных требует существенной поддержки со стороны поставщиков оригинальных решений в области информационных технологий/операционных технологий (IT/OT). Это может затруднить сбор данных для мониторинга и анализа.

В линии экструзии пленки контрольный ПК контролируется системой11 SCADA. Система SCADA управляется компьютерной программой, которая не может быть легко изменена. Компьютерная программа может быть редактируемой, но редактирование довольно дорогое и трудоемкое. Чтобы легко отслеживать и анализировать данные обработки, данные должны быть доступны из любого места. Для мониторинга обработки данных вдали от сайта компьютерная программа должна быть способна передавать данные обработки в Интернет12. Кроме того, открытый бесплатный метод снижает затраты на сбор данных13. Такой подход позволяет проводить анализ данных даже на небольших заводах, которые не могут позволить себе инвестировать в коммерческие ИТ-решения14.

В данном исследовании используется протокол сообщений, основанный на модели издатель-подписчик. Транспорт телеметрии очереди сообщений (MQTT) — это открытый и стандартный протокол, который позволяет обмениваться сообщениями между несколькими поставщиками данных и потребителями15. Здесь мы предлагаем систему, которая собирает, передает и контролирует данные с использованием MQTT для существующих производственных мощностей. Система тестируется на линии экструзии пленки для проверки производительности. Данные с исходного контроллера передаются на периферийное устройство по протоколу Modbus. Затем данные публикуются брокеру. Тем временем два Raspberry Pis публикуют измеренные температуры и освещенность одному и тому же брокеру. Затем любое устройство в Интернете может подписаться на данные, а затем отслеживать и записывать их, как показано на рисунке 1. Протокол в этой работе показывает, как можно выполнить всю процедуру.

протокол

1. Установка брокера

ПРИМЕЧАНИЕ: Для мониторинга и записи данных обработки через Интернет должна быть подготовлена компьютерная система, которая ретранслирует данные. Система должна быть доступна как издателям, так и подписчикам, как показано на рисунке 2. Таким образом, он должен иметь публичный IP-адрес, который известен до любого общения. В системе13 установлен открытый MQTT-брокер eclipse Mosquitto.

  1. Подключите компьютер к Интернету, предоставив общедоступный IP-адрес. Укажите адрес в настройках IP операционной системы.
  2. Установите на компьютер программное обеспечение брокера, такое как Eclipse Mosquitto. Загрузите установочный файл с помощью браузера и выполните его.
  3. Протестируйте брокер с помощью тестовой программы, такой как MQTT Lens. Скачайте MQTT Lens с помощью браузера и установите его. Затем убедитесь, что опубликованные сообщения подписаны.

2. Подготовка основного издателя

ПРИМЕЧАНИЕ: Этот компьютер публикует машинные данные через MQTT через TCP для брокера. Устаревшие данные должны быть интерпретированы и переупакованы для отправки. Обычно это можно сделать с помощью RS485 или Ethernet. Соединение на аппаратном уровне должно быть проверено в зависимости от типа шины. Экструзионная машина отправляет данные через Modbus через порт Ethernet.

  1. Физически поместите компьютер на сайт компьютера и настройте его в качестве основного издателя.
    ПРИМЕЧАНИЕ: Хотя это и не обязательно, в этой работе был выбран промышленный компьютер.
  2. Установите Python3 на компьютер. Загрузите файл установщика с помощью браузера и выполните его.
  3. Установите PyModbus16. Загрузите файл установщика с помощью браузера и выполните его.
  4. Изучите контроллер экструзии с HMI, управляющим машиной, и подключите контроллер экструзии к основному издателю.
  5. Полностью идентифицируйте данные и соответствующий адрес в протоколе Modbus с машины с помощью инструмента Modbus, такого как ModbusPoll или QModMaster. Убедитесь, что отправленные машинные данные отображаются в соответствующих ячейках инструмента Modbus.
  6. Напишите на компьютере-издателе код Python, который извлекает данные из контроллера экструзии.
    ПРИМЕЧАНИЕ: Вот пример кода:
    из pyModbusTCP.client импорт ModbusClient
    client = ModbusClient(host="192.168.1.***", port=***, unit_id=***)
    клиент.открытие()
    ЭкструзияДанные = str(client.read_holding_registers(1000, 58))
  7. Объединяйте дополнительные потоки данных с других устройств через PCIe, USB, RS232 и RS485.
    ПРИМЕЧАНИЕ: Это просто. После получения дополнительной строки данных просто добавьте данные в существующий поток данных, что выполняется следующим кодом:
    ЭкструзияДанные += ДополнительныеДанные
  8. Импорт paho.mqtt.client после установки paho-mqtt по pip установите paho-mqtt17 .
  9. Реализуйте код для подключения и публикации данных в брокере.
    ПРИМЕЧАНИЕ: Обратитесь к следующему примеру кода:
    url="117.xx.xxx.xx"; порт = 1883; имя пользователя = "****"; пароль = "xxxxx"; тема = "Экструдер"
    mqttc = mqtt. Клиент()
    mqttc.username_pw_set (имя пользователя, пароль)
    mqttc.connect(host=url, port=port)
    mqttc.loop_start()
    ЭкструзияДанные = str(client.read_holding_registers(1000, 58))
    Pub1= mqttc.publish(topic, ExtrusionData))
    Pub1.wait_for_publish()

3. Дополнительная подготовка издателя

ПРИМЕЧАНИЕ: Этот компьютер также публикует машинные данные через MQTT через TCP для брокера. Иногда требуется дополнительное измерение, которое не может быть сделано на главном издателе. Устройства Интернета вещей (IoT), такие как Raspberry Pi и Arduino, могут взять на себя эту роль. В этой работе Raspberry Pi использовался для данных о температуре и освещенности. Процедура аналогична протокольному разделу 2.

  1. Поместите Raspberry Pi рядом с расположением датчика.
    ПРИМЕЧАНИЕ: Поскольку расстояние проводки ограничено, Raspberry Pi не может быть размещен очень далеко от места измерения. Однако, поскольку в непосредственной близости от экструдера очень жарко, устройство должно быть размещено на расстоянии не менее 1 м от места измерения.
  2. Установите Python3 на Raspberry Pi с помощью следующих команд в командной строке:
    Sudo apt обновление
    sudo apt установить Python3 idle3
  3. Реализуйте код для получения данных датчика. Данные датчика могут передаваться через I2C или GPIO.
    ПРИМЕЧАНИЕ: Обратитесь к следующему примеру кода для получения дополнительных данных о температуре через GPIO:
    от max6675 импорт MAX6675
    cs_pin1 = 24; clock_pin1 = 25; data_pin1 = 18
    cs_pin2 = 9; clock_pin2 = 11; data_pin2 = 19
    единицы = "C"
    термопара1 = MAX6675 (cs_pin1, clock_pin1, data_pin1, единицы)
    термопара2 = MAX6675(cs_pin2, clock_pin2, data_pin2, единицы)
    T1 = термопара1.get()
    T2 = термопара2.get()
  4. Импорт paho.mqtt.client.
  5. Повторно используйте код, приведенный в разделе 2, для подключения и публикации данных брокеру.

4. Настройка абонента

ПРИМЕЧАНИЕ: Любые устройства в Интернете могут получать данные обработки через брокера. Данные обрабатываются и визуализируются также кодом Python. В случае, если разработка затруднена, можно использовать доступные приложения, такие как MQTT Client в Google Play и MQT Tool в App Store. Поскольку реализация пользовательского интерфейса довольно длительная, подробности здесь не описаны. Также обратите внимание, что существующие приложения, такие как MQT Tool в App Store, могут получать данные.

  1. Подключите устройство для подписки на Интернет. Убедитесь в физическом кабельном соединении, а затем выполните команду ping to the BROKER IP в командной строке (например, ping 117.xx.xxx.xx).
  2. Установите подходящую среду Python в зависимости от устройства и ОС. Например, установите Pydroid3 на устройство Android вместо Python3 из Google Play.
  3. Импортируйте paho.mqtt.client и paho.mqtt.subscribe для подключения и получения данных от брокера.
    ПРИМЕЧАНИЕ: Обратитесь к следующему примеру кода:
    Импорт paho.mqtt.client как Mqtt
    импорт paho.mqtt.subscribe как подписка
    url="117.xx.xxx.xx"; порт = 1883; имя пользователя = "****"; пароль = "xxxxx"; тема = "Экструдер"
    mqttc.username_pw_set (имя пользователя, пароль)
    mqttc.connect(host=url, port=port)
    mqttc.subscribe(тема, 0)
    mqttc.loop_start()
    Sub1 = subscribe.simple(тема; имя_хоста=url)
    ExtruderData = Sub1.payload.decode("utf-8")
  4. При необходимости создайте пользовательский интерфейс с помощью PyQT5.
    ПРИМЕЧАНИЕ: Эта часть очень длинная и фокусируется на графическом представлении полученных данных, а не на передаче. Соответствующий код предоставляется в качестве дополнительных данных.
  5. Отображение входящих данных на графическом интерфейсе путем выполнения построенного кода.

5. Регистрация данных

ПРИМЕЧАНИЕ: Данные обработки могут быть записаны в базу данных во время мониторинга. В этой работе была выбрана база данных лабораторного масштаба. Данные подключаются к файлу Microsoft Access для легкой записи и извлечения с компьютера пользователя. Кроме того, таблица может быть мгновенно построена запросом для анализа данных в электронной таблице, такой как Microsoft Excel.

  1. Выберите абонентское устройство для записи данных.
  2. Импортируйте pyodbc, выполнив команду "pip install pyodbc" в командной строке для кода Python для доступа к базе данных, как показано на рисунке 318.
  3. Отправьте запрос в базу данных кодом Python для записи данных обработки. Обратитесь к коду Python на рисунке 3 для метода.
  4. Отправьте запрос в базу данных для извлечения записанных данных.
    ПРИМЕЧАНИЕ: Пример кода для извлечения данных приведен ниже:
    импорт pyodbc
    x для x в pyodbc.drivers(), если x.startswith('Драйвер Microsoft Access')]
    conn_str = (
    r'DRIVER={Драйвер доступа Microsoft (*.mdb, *.accdb)};'
    r'DBQ=C:\Пользователи\data_analysis\db1.accdb;'
    )
    cnxn = pyodbc.connect(conn_str)
    crsr = cnxn.cursor()
    для table_info в crsr.tables(tableType='TABLE'):
    print(table_info.имя_таблицы)
    sql = """\
    ВЫБЕРИТЕ * ИЗ Process_Condition
    """
    crsr = cnxn.execute(sql)
    для строки в crsr:
    RetrievedData = pd.read_sql(sql, cnxn)
    crsr.close()
    cnxn.close()

6. Развертывание

ПРИМЕЧАНИЕ: Если все устройства могут быть подключены к Интернету, настройка проста. Однако для защиты данных на стороне компьютера издатели могут находиться только в интрасети. В этом случае брокер может быть шлюзом в интернет. Чтобы быть таким, брокер должен быть оснащен двумя адаптерами Ethernet, один из которых должен иметь публичный IP-адрес. После того, как все элементы разработаны, коды должны быть развернуты на каждом устройстве, как показано на рисунке 4. Режим подключения, проводной или беспроводной, не важен, но он должен быть защищен, чтобы каждое устройство имело доступ к брокеру. Это означает, что брокер может выступать в качестве шлюза на границе между интрасетью и Интернетом в целях безопасности. Конечно, даже если все устройства подключены к интернету, с точки зрения коммуникации проблем нет.

  1. Подключите контроллер экструзии, основного издателя и дополнительных издателей к порту интрасети через Ethernet.
  2. Подключите один ethernet-порт брокера к интрасети, а другой — к Интернету.
  3. Подключите абонентов к Интернету, повторив шаг 4.1 для всех них.

7. Исполнение

ПРИМЕЧАНИЕ: Чтобы протестировать всю систему, мы запустили экструзионную линию и запустили все коды Python и Mosquitto.

  1. Запустите процесс экструзии. На HMI устройства установите температуру и включите нагреватель, коснувшись кнопки на экране HMI. Как только необходимая температура будет достигнута, запустите вращение шнека для экструзии расплава полимера.
  2. Включите все компьютеры, запустите программное обеспечение брокера на устройстве брокера с помощью команды «net start mosquitto», а затем запустите коды Python для мониторинга и записи данных обработки по мере необходимости.
    ПРИМЕЧАНИЕ: Порядок шагов 7.1 и 7.2 может быть обратным. Коды Python можно выполнить, просто набрав «python3 xxxxx.py» в командной строке с последующим нажатием клавиши Enter. Добавьте эту команду в программы запуска, чтобы избежать ввода команды при каждой перезагрузке устройства.

Результаты

Было обнаружено, что данные, показанные в HMI и измеренные Raspberry Pis, контролировались и записывались у подписчиков, как показано на рисунке 5. Как показано на видео, данные обработки регистрируются в базе данных.

Обсуждение

Следуя представленному протоколу, обработка данных может контролироваться и записываться без дорогостоящих ИТ-решений, таких как MES. Технологии IoT могут упростить получение и доставку данных с обычных машин. Показано, что протокол MQTT, основанный на сообщениях, успешно служит платформо?...

Раскрытие информации

Авторы заявляют об отсутствии конфликта интересов.

Благодарности

Это исследование было поддержано Исследовательской программой, финансируемой SeoulTech (Сеульский национальный университет науки и технологии).

Материалы

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

Ссылки

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

Перепечатки и разрешения

Запросить разрешение на использование текста или рисунков этого JoVE статьи

Запросить разрешение

Смотреть дополнительные статьи

185IoTMQTT

This article has been published

Video Coming Soon

JoVE Logo

Исследования

Образование

О JoVE

Авторские права © 2025 MyJoVE Corporation. Все права защищены