Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Hasilkan Laporan PDF dari PLCnext Menggunakan Python dan REST API

Saya cukup sering ditanya bagaimana laporan PDF dengan data proses dari program PLC dapat dibuat dengan PLCnext. Cara mudahnya adalah dengan menggunakan skrip Python yang mengumpulkan data proses melalui REST API dan membuat PDF di perangkat. Pembuatan skrip dipicu oleh blok fungsi di IEC61131 pada PLC.

Berikut langkah-langkah yang diperlukan:

  1. Instal pip pada PLC untuk user "plcnext_firmware". Ini adalah pengguna yang digunakan oleh blok fungsi yang mengeksekusi 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. Instal pustaka Python yang diperlukan:

python3 -m permintaan pemasangan pip

python3 -m pip instal fpdf

  1. Buat skrip Python dan salin ke folder /opt/plcnext/ di 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. Buat proyek PLC baru.

  2. Dalam proyek, buat variabel yang dapat diakses melalui REST API. Untuk variabel lokal, tag "HMI" harus dipilih.

  1. Impor perpustakaan PLCnextBase ke dalam proyek. Pustaka tersedia di PLCnext Store.

  2. Buat program yang menggunakan perintah PBCL_LinuxShell untuk menjalankan skrip Python. Perlu diketahui bahwa PLC akan melakukan pemanasan setelah eksekusi pertama FB.

  1. Unduh dan mulai programnya. Skrip dijalankan melalui variabel xExecuteScript. Laporan pdf disimpan di folder /opt/plcnext/. Variabel lokal xRetain harus mencentang tag penahannya.

Catatan:

Blog Pembuat menampilkan aplikasi dan kisah pengguna anggota komunitas yang tidak diuji atau ditinjau oleh Phoenix Contact. Gunakan dengan risiko Anda sendiri.


Teknologi Industri

  1. Pemotongan Air pada Pekerjaan Logam Arsitektur
  2. Cara Mendesain Sirkuit DC Dengan OrCAD
  3. HRS untuk memasok kompresi uap mekanis untuk proyek ZLD yang didanai UE
  4. Apa Itu Sistem Keuangan Kuantum? [Ikhtisar Sederhana]
  5. Pemotongan Waterjet:Solusi Efisien dan Hemat Biaya untuk Manufaktur Modern
  6. Metode Pengujian Pasir – Proses Penuh
  7. Apa yang dimaksud dengan Piping and Instrumentation Diagram (P&ID)?
  8. Apa itu Pemotongan Bahan Bakar Oxy?- Proses, Pro, dan Kontra
  9. Pabrik Gas Menghemat 90% Tenaga Kerja, Menghilangkan Kebocoran
  10. Peningkatan Proses:Kunci Peningkatan Tenaga Kerja Jangka Panjang