Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Générez des rapports PDF à partir de PLCnext à l'aide de Python et de l'API REST

On m'a souvent demandé comment créer un rapport PDF avec les données de processus du programme API avec PLCnext. Un moyen simple consiste à utiliser un script Python qui collecte les données de processus via l'API REST et crée le PDF sur l'appareil. La création du script est déclenchée par un bloc fonction en IEC61131 sur l'automate.

Voici les étapes nécessaires :

  1. Installez pip sur l'automate pour l'utilisateur "plcnext_firmware". Il s'agit de l'utilisateur utilisé par le bloc fonction qui exécute 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
    
  2. Installez les bibliothèques Python requises :

python3 -m requêtes d'installation pip

python3 -m pip install fpdf

  1. Créez un script Python et copiez-le dans le dossier /opt/plcnext/ sur l'automate :
 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. Créez un nouveau projet API.

  2. Dans le projet, créez une variable accessible via l'API REST. Pour les variables locales, la balise "HMI" doit être sélectionnée.

  1. Importez la bibliothèque PLCnextBase dans le projet. La bibliothèque est disponible dans le PLCnext Store.

  2. Créez un programme qui utilise la commande PBCL_LinuxShell pour exécuter le script Python. Sachez que l'automate effectuera un warmstart après la première exécution du FB.

  1. Téléchargez et démarrez le programme. Le script est exécuté via la variable xExecuteScript. Le rapport PDF est stocké dans le dossier /opt/plcnext/. La variable locale xRetain doit avoir la balise retention cochée.

Remarque :

Le Makers Blog présente des applications et des témoignages d'utilisateurs de membres de la communauté qui ne sont ni testés ni examinés par Phoenix Contact. Utilisez-les à vos propres risques.


Technologie industrielle

  1. Comment renforcer les relations de la chaîne d'approvisionnement avec les PME
  2. COVID-19 et fin de l'appel d'offres annuel expéditeur
  3. Comment un site de produits de luxe contribue à une bonne cause
  4. Qu'est-ce que la machine Shaper ? - Définition, pièces, fonctionnement
  5. 19 experts partagent les facteurs les plus importants à prendre en compte lors de la sélection du meilleur système de lecture de codes-barres
  6. Comment trouver le nombre de lumières sur un seul disjoncteur ?
  7. Utilisation d'un contrôleur PLCnext comme appareil domestique intelligent via Home Assistant
  8. Que se passe-t-il en Géorgie...
  9. Connaissez vos matériaux :Polycarbonate/acrylonitrile butadiène styrène (PC-ABS)