Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Создание отчетов в формате PDF из PLCnext с использованием Python и REST API

Меня довольно часто спрашивали, как с помощью PLCnext можно создать отчет в формате PDF с данными процесса из программы ПЛК. Самый простой способ — использовать скрипт Python, который собирает данные процесса через REST API и создает PDF-файл на устройстве. Создание сценария инициируется функциональным блоком IEC61131 в ПЛК.

Вот необходимые шаги:

    <ли>

    Установите pip на ПЛК для пользователя «plcnext_firmware». Это пользователь, который используется функциональным блоком, выполняющим Python.

     sudo passwd plcnext_firmware --> assign a new password
     su plcnext_firmware
     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
     python3 get-pip.py
    
    <ли>

    Установите необходимые библиотеки Python:

    python3 -m запросы на установку pip

    python3 -m pip установить fpdf

    1. Создайте сценарий Python и скопируйте его в папку /opt/plcnext/ на ПЛК:
    2.  import requests
       import json
       import sys
       from fpdf import FPDF
       from datetime import datetime
       sys.path.append('/opt/plcnext/.local/python3.10/site-packages/')
       class PDF(FPDF):
       def header(self):
       self.image('Logo.png', 10, 8, 40) # optional
       self.set_font('Arial', 'B', 20)
       self.cell(0,10,'Monthly report', border=False, ln=True, align='C')
       self.ln(20)
       def footer(self):
       self.set_y(-15) 
       self.set_font('Arial', 'I', 12)
       self.cell(0,10,f'Page {self.page_no()}/{{nb}}',align='C')
       ##################################
       Read data from the PLC via REST
       ##################################
       response = requests.get('https://192.168.178.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/INST_SolarEnergy.diPower', verify=False)
       data = response.json()
       variables = data['variables']
       value = variables[0]['value']
       ###############
       Timestamp 
       ###############
       now = datetime.now()
       current_time = now.strftime("%m.%d.%Y %H:%M:%S")
       ################
       Create PDF 
       ################
       pdf = PDF('P','mm','A4')
       pdf.alias_nb_pages()
       pdf.set_auto_page_break(auto=True, margin = 15)
       pdf.add_page()
       pdf.set_font('Arial', '', 12)
       mes = 'The power of the pump is ' + str(value) + ' W'
       pdf.cell(200, 10, 'Report '+current_time, ln=True) 
       pdf.cell(200, 10, txt = mes, ln=True) 
       pdf.output('Report.pdf')
      
        <ли>

        Создайте новый проект ПЛК.

        <ли>

        В проекте создайте переменную, доступ к которой можно получить через REST API. Для локальных переменных необходимо выбрать тег «HMI».

          <ли>

          Импортируйте библиотеку PLCnextBase в проект. Библиотека доступна в магазине PLCnext.

          <ли>

          Создайте программу, которая использует команду PBCL_LinuxShell для выполнения сценария Python. Имейте в виду, что ПЛК выполнит горячий старт после первого выполнения FB.

          1. Скачайте и запустите программу. Скрипт выполняется через переменную xExecuteScript. Отчет в формате PDF хранится в папке /opt/plcnext/. У локальной переменной xRetain должен быть отмечен тег сохранения.
          2. Примечание.

            В блоге Makers представлены приложения и пользовательские истории членов сообщества, которые не тестировались и не проверялись Phoenix Contact. Используйте их на свой страх и риск.


Промышленные технологии

  1. Техническое обслуживание, ориентированное на надежность:5 ключевых принципов эффективного RCM
  2. От фермы к фабрике к столу:промышленность по производству продуктов питания и напитков
  3. Поиск надежных поставщиков в США:проверенное руководство
  4. Могут ли сосуществовать обработка стали и защита окружающей среды
  5. Введение в аналоговые интегральные схемы
  6. Композиты и секрет облегчения деталей, обработанных на станках с ЧПУ
  7. Простые и сложные стальные платформы
  8. Эффективное отслеживание оружия — глобальная проблема
  9. Обсуждение пошагового процесса сборки кабелей и жгутов проводов
  10. Что такое подачи и скорости для станков с ЧПУ?