Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Genere informes PDF desde PLCnext usando Python y REST API

Con frecuencia me preguntaron cómo se puede crear con PLCnext un informe en PDF con datos de proceso del programa PLC. Una forma sencilla es utilizar un script de Python que recopila datos del proceso a través de la API REST y crea el PDF en el dispositivo. La creación del script se activa mediante un bloque de funciones en IEC61131 en el PLC.

Estos son los pasos necesarios:

  1. Instale pip en el PLC para el usuario "plcnext_firmware". Este es el usuario que utiliza el bloque de funciones que ejecuta 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. Instale las bibliotecas de Python necesarias:

python3 -m solicitudes de instalación de pip

python3 -m pip instalar fpdf

  1. Cree un script Python y cópielo en la carpeta /opt/plcnext/ del PLC:
 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. Cree un nuevo proyecto de PLC.

  2. En el proyecto, cree una variable a la que se pueda acceder a través de la API REST. Para variables locales, se debe seleccionar la etiqueta "HMI".

  1. Importe la biblioteca PLCnextBase al proyecto. La biblioteca está disponible en PLCnext Store.

  2. Cree un programa que utilice el comando PBCL_LinuxShell para ejecutar el script Python. Tenga en cuenta que el PLC realizará un arranque en caliente después de la primera ejecución del FB.

  1. Descargue e inicie el programa. El script se ejecuta mediante la variable xExecuteScript. El informe en PDF se almacena en la carpeta /opt/plcnext/. La variable local xRetain debe tener marcada la etiqueta de retención.

Nota:

El Makers Blog muestra aplicaciones e historias de usuarios de miembros de la comunidad que Phoenix Contact no prueba ni revisa. Úselos bajo su propio riesgo.


Tecnología Industrial

  1. Proceso paso a paso de ensamblaje de PCB sin plomo
  2. Explosión del pasado:por qué los fabricantes deberían involucrarse más en los aprendizajes registrados
  3. La importancia de la metrología en la fabricación
  4. Conceptos básicos de la sierra:tipos, usos y cómo elegir la adecuada
  5. Cómo la tecnología de gemelos digitales está reduciendo la brecha de talento de fabricación
  6. Cómo la Industria 4.0 está transformando la manufactura esbelta
  7. Por qué importan las tolerancias dimensionales
  8. Cómo construir relaciones más sólidas en la cadena de suministro con las pymes
  9. Competir en la industria espacial:una guía para los fabricantes de Pensilvania
  10. TODO LO QUE NECESITA SABER SOBRE EL FRESADO DE FORMAS
  11. Aspectos clave que debe saber sobre el moldeo por inyección de dos disparos