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

Генерация PDF-отчетов из PLCnext с помощью Python и REST API

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

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

     sudo passwd plcnext_firmware --> назначьте новый пароль su plcnext_firmware curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py 
  2. Установите необходимые Python-библиотеки:

python3 -m pip install requests

python3 -m pip install fpdf

  1. Создайте Python-скрипт и скопируйте его в папку /opt/plcnext/ на ПЛК:
 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') ################################## Чтение данных из ПЛК через 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") ################ Создание 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') 
  1. Создайте новый проект ПЛК.

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

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

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

  1. Загрузите и запустите программу. Скрипт выполняется через переменную xExecuteScript. PDF-отчет сохраняется в папке /opt/plcnext/. Локальная переменная xRetain должна иметь тег retain.

Примечание:

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

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

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