工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

Python と REST API を使用して PLCnext から PDF レポートを生成

PLC プログラムからのプロセス データを含む PDF レポートを PLCnext でどのように作成できるかという質問をよく受けました。簡単な方法は、REST API 経由でプロセス データを収集し、デバイス上で PDF を作成する Python スクリプトを使用することです。スクリプトの作成は、PLC 上の IEC61131 の機能ブロックによってトリガーされます。

必要な手順は次のとおりです。

<オル>
  • ユーザー「plcnext_firmware」の PLC に pip をインストールします。これは、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
    
  • 必要な Python ライブラリをインストールします。

  • python3 -m pip インストール リクエスト

    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) # 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')
    
    <オル>
  • 新しい PLC プロジェクトを作成します。

  • プロジェクトで、REST API 経由でアクセスできる変数を作成します。ローカル変数の場合は、「HMI」タグを選択する必要があります。

  • <オル>
  • PLCnextBase ライブラリをプロジェクトにインポートします。このライブラリは PLCnext ストアで入手できます。

  • PBCL_LinuxShell コマンドを使用して Python スクリプトを実行するプログラムを作成します。 PLC は FB の最初の実行後にウォームスタートを実行することに注意してください。

  • <オル>
  • プログラムをダウンロードして起動します。スクリプトは xExecuteScript 変数を介して実行されます。 PDF レポートは /opt/plcnext/ フォルダーに保存されます。ローカル変数 xRetain では、retain タグがチェックされている必要があります。
  • 注:

    Makers Blog には、フエニックス・コンタクトによってテストまたはレビューされていないアプリケーションとコミュニティ メンバーのユーザー ストーリーが表示されます。ご自身の責任で使用してください。


    産業技術

    1. 高性能を測定することでツーリングコストをどのように削減できるか
    2. 世界を変えた9つの技術法
    3. ベアリングが失敗する4つの理由
    4. 優れた運用を実現するための 3 つの実証済みの空港機器追跡戦略
    5. 機器追跡ソフトウェア :メンテナンス管理を最適化する
    6. NISTは、ハリケーンの救援活動で製造業者を支援する緊急資金を授与します
    7. 24 件の事故の分析により、機械工場の火災の第 1 の原因が明らかに
    8. すべてのメーカーが知っておくべき4種類のロボット
    9. 典型的な精密機械加工部品のリード タイム
    10. 製造マーケティング代理店に尋ねる質問
    11. 新しい電子皮膚は人間のような触覚を持つことができます