산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

Python과 REST API로 PLCnext에서 PDF 보고서 생성

PLC 프로그램의 공정 데이터로 PDF 보고서를 어떻게 만들 수 있는지 자주 질문을 받았습니다. 쉬운 방법은 Python 스크립트를 사용해 REST API로 공정 데이터를 수집하고 장치에서 PDF를 생성하는 것입니다. 스크립트 생성은 PLC의 IEC61131 함수 블록에서 트리거됩니다.

필요한 단계는 다음과 같습니다:

  1. 사용자 "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 
  2. 필요한 Python 라이브러리를 설치합니다:

python3 -m pip install requests

python3 -m pip install fpdf

  1. 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') 
  1. 새 PLC 프로젝트를 생성합니다.

  2. 프로젝트에서 REST API로 접근 가능한 변수를 생성합니다. 로컬 변수의 경우 "HMI" 태그를 선택해야 합니다.

  1. PLCnextBase 라이브러리를 프로젝트에 가져옵니다. 라이브러리는 PLCnext Store에서 이용 가능합니다.

  2. PBCL_LinuxShell 명령을 사용해 Python 스크립트를 실행하는 프로그램을 생성합니다. FB 최초 실행 후 PLC가 웜스타트를 수행한다는 점에 유의하세요.

  1. 프로그램을 다운로드하고 시작합니다. 스크립트는 xExecuteScript 변수로 실행됩니다. PDF 보고서는 /opt/plcnext/ 폴더에 저장됩니다. 로컬 변수 xRetain에는 retain 태그가 체크되어 있어야 합니다.

참고:

Makers Blog는 Phoenix Contact에서 테스트하거나 검토하지 않은 커뮤니티 구성원의 애플리케이션과 사용자 스토리를 보여줍니다. 자신의 책임 하에 사용하세요.

산업기술

  1. 디지털 화폐가 중소기업 공급망 금융을 혁신하는 이유
  2. 제조업 사이버 공격 대응 전략: 신속한 인시던트 리스폰스
  3. 스위치, 플러그, 아울렛의 올바른 전압 및 전류 정격 선정 가이드
  4. 전기 화재 예방: 가정 배선 안전하게 업그레이드하기
  5. 더 안전한 미래 건설: 스마트 식품 안전 솔루션 발전
  6. PCB 상호연결 결함(ICD) 이해: 원인, 예방, 해결책
  7. PCB 패널라이제이션 마스터: 효율적 설계·생산 검증 전략
  8. 캘리포니아 제조업체를 위한 4가지 스마트 에너지 전략
  9. 일선 노동력 격차 해소: 임금 인상 넘어선 전략들
  10. 전류 제한 회로가 전자 기기와 전원 공급 장치를 보호하는 방법