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

Generieren Sie PDF-Berichte aus PLCnext mit Python und der REST-API

Ich wurde des Öfteren gefragt, wie mit PLCnext ein PDF-Bericht mit Prozessdaten aus dem SPS-Programm erstellt werden kann. Eine einfache Möglichkeit ist die Verwendung eines Python-Skripts, das Prozessdaten über die REST-API sammelt und das PDF auf dem Gerät erstellt. Die Erstellung 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 vom Funktionsblock verwendet wird, der Python ausführt.

     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
    
  2. Installieren Sie die erforderlichen Python-Bibliotheken:

python3 -m pip-Installationsanfragen

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,'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')
  1. Erstellen Sie ein neues SPS-Projekt.

  2. Erstellen Sie im Projekt eine Variable, auf die über die REST-API zugegriffen werden kann. Für lokale Variablen muss die Variable „HMI“ 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 Befehl PBCL_LinuxShell 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-Bericht wird im Ordner /opt/plcnext/ gespeichert. Für die lokale Variable xRetain muss das Retain-Tag überprüft werden.

Hinweis:

Der Makers Blog zeigt Anwendungen und User Stories von Community-Mitgliedern, die nicht von Phoenix Contact getestet oder überprüft wurden. Die Nutzung erfolgt auf eigene Gefahr.


Industrietechnik

  1. Verstärkung Ihres Betonsilos/-lagers mit Stahl
  2. NIST Cybersecurity Framework 2.0:Stärkung der digitalen Verteidigung von Pennsylvania
  3. Wie wichtig ist die Fertigung in Philadelphia?
  4. Sumpner-Test oder Back-to-Back-Test an einem Transformator
  5. Alles, was Sie über die Härte von Materialien wissen müssen
  6. Save-A-Lot entdeckt eine einfache Methode zur Steigerung der Effizienz von Distributionszentren
  7. Digitalisierung von Produktionsanlagen
  8. 5 Wege zur Senkung der Herstellungskosten
  9. Wo stehen wir mit IIoT und Smart Warehousing?
  10. Teil II:Das Wertversprechen von Software-Upgrades