산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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용 크로스 컴파일 라이브러리는 이 게시물을 따르는 나머지 파일과 함께 이 링크를 통해 제공됩니다.

다음 지침을 사용하면 gRPC를 활용하는 스크립트를 실행할 수 있는 Python 3.11이 포함된 컨테이너를 만들 수 있습니다.

  1. WinSCP(또는 컨트롤러의 파일 시스템에 액세스할 수 있는 다른 소프트웨어)를 사용하여 /opt/plcnext에 gRPC 통신에 사용할 폴더를 만듭니다. 이 예에서는 해당 폴더에 "grpc2152"라는 이름을 할당합니다. grpc2152 내에서 다음 폴더 구조를 만듭니다.
grpc2152/
├── include/
│ └── google/
│ └── (empty folder for now) 
│
├── 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/ 
│ └── (content of the protobuf folder from the PLCnext github repo)
│
├── 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 세션을 생성하고 루트 사용자(su)로 로그인하여 Python 3.11 슬림 버전을 다운로드하세요. (이때 Python 이미지를 얻기 위해서는 인터넷 연결이 필요합니다.)
$ podman pull docker.io/library/python:3.11.10-slim-bookworm
  1. 실행하고 컨테이너에 연결합니다(grpc2152 폴더를 볼륨으로 연결하고 grpc 소켓에 연결하는 데 필요한 두 번째 볼륨(실행)):
$ 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로 돌아가서 Python 스크립트 "generate_googlegrpc.py"를 실행합니다(일부 메시지가 작동 중으로 표시되어야 합니다!-)
 $ cd /grpc2152
 $ python3 generate_googlegrpc.py
  1. 스크립트 실행이 성공적으로 완료되면 새 폴더(pxc_grpc)가 있어야 합니다. 이제 grpc2152 내부에는 grpc용 Python 조각이 있습니다. 이제 예제 프로젝트와 스크립트를 사용하여 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번째 줄).

이 글의 시작 부분에서 언급한 이전 게시물에 설명된 데이터 유형을 고려하는 것을 잊지 마세요.

참고:

메이커스 블로그에는 피닉스컨택트의 테스트나 검토를 거치지 않은 커뮤니티 회원의 애플리케이션과 사용자 스토리가 표시됩니다. 자신의 책임하에 사용하십시오.


산업기술

  1. CNC 라우터 커터 비트를 안전하게 사용하기 위한 가이드
  2. 기술자를 위한 새로운 생산성 원천인 스마트 안경?
  3. 공급업체 관리와 디지털 혁신의 협력
  4. 식음료 공급망에 영향을 미치는 4가지 소비자 동향
  5. 최고의 재고 관리 학습 리소스 50개:재고 관리를 마스터하는 데 도움이 되는 최고의 기사, 자습서, 동영상, 웨비나 등
  6. 박벽 사출 성형 팁 및 고려 사항
  7. 다양한 유형의 목재 조인트 및 작업
  8. 재료 알아보기:아세탈 대 나일론
  9. 스테인리스 스틸:절단, 연삭 및 마무리를 위한 최고의 제품
  10. 모든 제조업체에 필요한 단일 채용 비디오