Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

PDF-Reports aus PLCnext mit Python und REST-API generieren

Ich wurde häufig gefragt, wie ein PDF-Report mit Prozessdaten aus dem SPS-Programm mit PLCnext erstellt werden kann. Ein einfacher Weg ist die Verwendung eines Python-Skripts, das Prozessdaten über die REST-API sammelt und das PDF auf dem Gerät erstellt. Die Ausführung des Skripts wird durch einen Funktionsbaustein in IEC61131 auf der SPS ausgelöst.

Hier sind die notwendigen Schritte:

  1. Installieren Sie pip auf der SPS für den Benutzer „plcnext_firmware“. Dies ist der Benutzer, der von dem Funktionsbaustein verwendet wird, der das Python-Skript ausführt.

     sudo passwd plcnext_firmware --> neues Passwort vergeben su plcnext_firmware curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py 
  2. Installieren Sie die erforderlichen Python-Bibliotheken:

python3 -m pip install requests

python3 -m pip install fpdf

  1. Erstellen Sie ein Python-Skript und kopieren Sie es in den Ordner /opt/plcnext/ auf der SPS:
 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,'Monatlicher 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') ################################## Daten von der SPS via REST lesen ################################## 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'] ############### Zeitstempel ############### now = datetime.now() current_time = now.strftime("%m.%d.%Y %H:%M:%S") ################ PDF erstellen ################ 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 = 'Die Leistung der Pumpe beträgt ' + 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. Erellen Sie ein neues SPS-Projekt.

  2. Erstellen Sie im Projekt eine Variable, die über die REST-API zugänglich ist. Für lokale Variablen muss das „HMI“-Tag ausgewählt werden.

  1. Importieren Sie die PLCnextBase-Bibliothek in das Projekt. Die Bibliothek ist im PLCnext Store verfügbar.

  2. Erstellen Sie ein Programm, das den PBCL_LinuxShell-Befehl verwendet, um das Python-Skript auszuführen. Beachten Sie, dass die SPS nach der ersten Ausführung des FB einen Warmstart durchführt.

  1. Laden Sie das Programm herunter und starten Sie es. Das Skript wird über die Variable xExecuteScript ausgeführt. Der PDF-Report wird im Ordner /opt/plcnext/ gespeichert. Die lokale Variable xRetain muss das Retain-Tag gesetzt haben.

Hinweis:

Der Makers Blog zeigt Anwendungen und Benutzerberichte von Community-Mitgliedern, die nicht von Phoenix Contact getestet oder überprüft wurden. Verwendung auf eigenes Risiko.

Industrietechnik

  1. Warehouse Management Systeme (WMS) erklärt: Vorteile & Auswahl des richtigen Systems
  2. Vollständige Verbindungstabelle in E3.series 2021 erstellen – Komplettanleitung
  3. Polyurethan-Härte verstehen: Wie sie die Produktleistung formt
  4. Infografik: Engineering-Herausforderungen 2022 – Zentrale Schmerzpunkte & Lösungen
  5. Revolutionärer elektrooptischer Laser: 30 GHz Pulsrate für ultraschnelles Imaging & Kommunikation
  6. Zahlt sich CSR-Compliance wirklich aus? Erkenntnisse und Realität
  7. VPI: Die definitive Wahl für Motorenzuverlässigkeit in Singapurs tropischem Klima
  8. 5 bewährte Schritte für erfolgreiche Industrie-4.0-Proof-of-Concept-Projekte
  9. Geschäftseffizienz steigern: Lean & Six Sigma Methoden erklärt
  10. Nahtlose Supply-Chain-Zusammenarbeit: Schlüsselhindernisse überwinden