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

원활한 gRPC 통합: Python 스크립트를 PLCnext Engineer 프로젝트에 연결

다음 정보는 2022년 포스트에 대한 업데이트이자 확장을 겸합니다.

이 접근 방식은 AXC F 2152와 AXC F 3152에서 동일하게 작동하며, 차이점은 필요한 라이브러리를 설치하는 방법에 있습니다.

중요: 이 접근 방식은 FW 2024.x와 2025.0에서 테스트되어 작동하는 것으로 확인되었습니다.

AXC F 2152의 경우:

grpcio와 grpcio-tools 라이브러리는 장치 외부에서 교차 컴파일되어 수동으로 설치해야 합니다. QEMU를 사용해 교차 컴파일을 수행하는 접근 방식의 개요는 이 포럼 항목에서 확인할 수 있습니다.

Python 3.11용 교차 컴파일된 라이브러리는 이 글의 나머지 파들과 함께 이 링크를 통해 제공됩니다.

다음 지침을 통해 Python 3.11을 사용하는 컨테이너를 생성해 gRPC를 활용하는 스크립트를 실행할 수 있습니다.

  1. WinSCP(또는 컨트롤러 파일 시스템에 접근할 수 있는 다른 소프트웨어)를 사용해 /opt/plcnext에 gRPC 통신용 폴더를 생성합니다. 이 예제에서는 해당 폴더에 "grpc2152"라는 이름을 부여합니다. grpc2152 내에 다음 폴더 구조를 생성합니다.
grpc2152/ ├── include/ │ └── google/ │ └── (현재 빈 폴더) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt 
  1. "https://github.com/PLCnext/gRPC" 저장소를 다운로드하고 거기서 "protobuf" 폴더를 가져와 앞서 생성한 google 폴더 안에 배치합니다. 결과 폴더 구조는 다음과 같습니다:
grpc2152/ ├── include/ │ └── google/ │ └── protobuf/ │ └── (PLCnext GitHub 저장소의 protobuf 폴더 내용) │ ├── whl_files311/ │ ├── grpcio-1.71.0-cp311-cp311-linux_armv7l.whl │ └── grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl │ ├── generate_googlegrpc.py ├── grpc_test.py └── Readme.txt 
  1. PLC에 SSH 세션을 생성하고, root 사용자로 로그인(su)한 후 Python 3.11의 슬림 버전을 가져옵니다(이 시점에서 인터넷 연결이 필요함).
$ podman pull docker.io/library/python:3.11.10-slim-bookworm 
  1. 컨테이너를 실행하고 연결합니다(grpc2152 폴더를 볼륨으로 연결하고, grpc 소켓 연결에 필요한 두 번째 볼륨(run) 연결):
$ podman run -it -v /opt/plcnext/grpc2152:/grpc2152 -v /run:/run --restart=always --name grpctester python:3.11.10-slim-bookworm /bin/bash 
  1. 컨테이너 콘솔에 연결되면 whl_files311 폴더로 이동해 grpcio 라이브러리를 설치합니다(종속성을 위해 인터넷 연결 필요).
 $ cd /grpc2152/whl_files311/ $ pip install *.whl 
  1. 컨테이너 내 grpc2152 상위 폴더로 돌아가 "generate_googlegrpc.py" 파이썬 스크립트를 실행합니다(몇 가지 메시지가 나타남 -작동 중!-).
 $ cd /grpc2152 $ python3 generate_googlegrpc.py 
  1. 스크립트가 성공적으로 실행을 마치면 새 폴더(pxc_grpc)가 있어야 합니다. grpc2152 내에 gRPC용 파이썬 스니펫이 이제 그곳에 있습니다. 이제 예제 프로젝트와 스크립트로 gRPC 기능을 테스트할 수 있습니다.

  2. PLCnext Engineer 프로젝트 "TestingGRPC.pcwex"를 컨트롤러에 다운로드하고 시작합니다.

  3. 컨테이너 콘솔에서 "grpc_test.py" 스크립트를 실행해 gRPC 기능을 테스트합니다. PLCnext Engineer 프로젝트에서 디버그 모드로 변수에 접근하면 변수 내용이 스크립트의 값으로 채워져야 합니다.

AXC F 3152의 경우.

위에 주어진 2152 절차를 동일하게 따르되, 5단계에서 pypi.org에서 직접 라이브러리를 설치합니다.

 $ pip install grpcio==1.71.0 $ pip install grpcio-tools==1.71.0 

데이터 유형 및 코드 스니펫 활용.

이제 변수 접근을 위해 gRPC를 사용하고 싶을 때마다 코드 스니펫이 생성된 폴더를 스크립트가 사용하는 Python 경로에 포함시키고 필요한 클래스를 임포트합니다(주어진 grpc_test.py 파일의 6~14행).

이 글 처음에 언급한 이전 포스트에 설명된 데이터 유형을 고려해야 합니다.

참고:

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

산업기술

  1. CNC 가공에서 원치 않는 공차 최소화하는 방법
  2. 간접비 포함 직원 실제 비용 정확히 계산하기: 완벽 가이드
  3. PCBWay 애프터서비스 리뷰: 품질, 속도, 고객 지원 모두 만점
  4. 디지털 스레드 성숙도: 원활한 스마트 제조 실현의 열쇠
  5. 캐스트 우레탄 제품 설계를 위한 필수 팁
  6. 미국 의약품 부족 위기 해법: 신뢰할 수 있는 공급망을 위한 검증된 전략들
  7. 소량 PCB 조립 완벽 가이드: 품질, 비용, 공정 인사이트
  8. 저잡음 증폭기(LNA) 설계 시 필수 고려사항 10가지
  9. 2018년 주목해야 할 제조업 주요 트렌드
  10. 데이터 기반 제조: 효율성, 비용 절감, 혁신 열기