PythonとREST APIを使用してPLCnextからPDFレポートを生成
PLCプログラムからのプロセス データでPDFレポートを作成する方法についてよく質問されます。簡単な方法は、REST API経由でプロセス データを収集し、デバイス上でPDFを作成するPythonスクリプトを使用することです。スクリプトの実行は、PLC上のIEC 61131ファンクション ブロックによってトリガーされます。
必要な手順は以下の通りです:
ユーザー「plcnext_firmware」用にPLCにpipをインストールします。これは、Pythonを実行するファンクション ブロックで使用されるユーザーです。
sudo passwd plcnext_firmware --> 新しいパスワードを割り当て su plcnext_firmware curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py必要なPythonライブラリをインストールします:
python3 -m pip install requests
python3 -m pip install fpdf
- Pythonスクリプトを作成し、PLCの/opt/plcnext/フォルダにコピーします:
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) # オプション
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')
################################## REST経由でPLCからデータ読み取り ##################################
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']
############### タイムスタンプ ###############
now = datetime.now()
current_time = now.strftime("%m.%d.%Y %H:%M:%S")
################ 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')
新しいPLCプロジェクトを作成します。
プロジェクトでREST API経由でアクセス可能な変数を作成します。ローカル変数の場合、「HMI」タグを選択する必要があります。
PLCnextBaseライブラリをプロジェクトにインポートします。このライブラリはPLCnext Storeで入手可能です。
PBCL_LinuxShellコマンドを使用してPythonスクリプトを実行するプログラムを作成します。FBの初回実行後、PLCはウォームスタートを実行することに注意してください。
- プログラムをダウンロードして開始します。スクリプトはxExecuteScript変数で実行されます。PDFレポートは/opt/plcnext/フォルダに保存されます。ローカル変数xRetainにはretainタグをチェックする必要があります。
注記:
Makers Blogは、Phoenix Contactによってテストまたはレビューされていないコミュニティ メンバーのアプリケーションとユーザー ストーリーを紹介しています。自己責任でご利用ください。
産業技術
- アルミニウム陽極酸化処理の完全ガイド:初心者からプロまで
- プリント基板実装を最適化しコスト削減する9つのトップヒント
- AIaaS完全ガイド:AI as a Serviceを解き明かす
- 精密加工で使われる7つの主要材料
- COVID-19時代のメンタルヘルスを守る:燃え尽き症候群とワークライフバランスの戦略
- 2021年トップ13 B2B SaaS企業:実証済みのリーダーと革新者
- シートメタル設計ソフトウェアが製造成功を導く:効率化の鍵
- QFNパッケージング:種類、実装、高性能エレクトロニクスへの主なメリット
- Raspberry Pi GPIOピンアウト完全ガイド:機能と活用法
- ロストワックス鋳造と加工:先進金属製造を探る – 第1部
- ビッグデータプロジェクト成功を予測する重要要因