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

네이티브 함수 블록에서 사용자 정의 배열 정의: 실용 가이드

이 포스트를 작성한 이유

사실 이 포스트는 네이티브 함수 블록을 개발할 때 사용자 정의 구조체의 배열을 사용하는 것이 불가능하다는 것을 발견했기 때문에 작성되었습니다. 달리 말하면, PLCnext의 공식 GitHub에 이런 유형의 튜토리얼이 없다는 것이 아쉽습니다. C# 튜토리얼을 사용해 네이티브 함수 블록에서 사용자 정의 배열을 만들려고 하면 성공적으로 컴파일되지 않거나, PLCnext Engineer에서 배열 값을 설정해도 반응이 없습니다. 이 예제의 경우 데이터베이스와 관련된 것뿐입니다.

데모 설명

https://github.com/Leeable/UserDefineArray_NativeFB/tree/Master

요구 사항

$ plcncli --version plcncli 23.6.0.1450 (23.6.0.1450) 

1단계

2단계

ArrayCplus.cs

3단계

ArrayTestCpp 폴더에서 터미널을 열고 다음을 입력합니다.

$ plcncli generate code 

코드 생성 후 src 디렉토리에서 ArrayTest-cli32.h 및 ArrayTest-cli64.h 파일을 찾아 #error가 표시된 부분을 찾습니다.

주석을 제거하고 코드를 개선해야 합니다. InArrayFB-cli.cpp로 이동해 구현을 수정합니다.

IntArrayFB-cli.cpp

4단계

ArrayCplus.cpp에 다음 코드를 입력합니다. 문자열을 포함하는 내용은 Init 영역이 아닌 Process 과정에서 초기화해야 합니다. Init 영역에서 초기화하면 작동하지 않아 Engineer를 통해 sName과 sAttribute에 값을 쓸 수 없습니다.

ArrayCplus-cli.cpp

5단계

ArrayTestCpp 폴더에서 터미널을 열고 다음을 입력합니다.

$ plcncli build all $ plcncli deploy 

6단계

PLCnext Engineer를 열고 ArrayTest.pcwlx를 로드한 다음 ArrayTest에 arr이라는 변수를 추가합니다.

이제 작동합니다.

질문

참고:

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

산업기술

  1. 산업용 모터 안전한 권선 교체 한계: 알아야 할 사항
  2. 원심 펌프 엔지니어가 알아야 할 패킹 설치 핵심 용어
  3. 폴리우레탄 가공 전문 가이드: 기술 및 모범 사례
  4. BJT 바이어싱 기법: 클래스 A, B, AB, C, D 증폭기 마스터하기
  5. 올바른 용접 기법 선택 가이드: 공법별 특징과 적용 분야
  6. 메인 본딩 점퍼(MBJ) 완벽 이해: 정의, 위치, 사이징 가이드라인
  7. 캠과 팔로워 완벽 해설: 유형, 용어, 작동 원리 및 응용 분야
  8. 금속 응고: 메커니즘, 속도, 주조 공정
  9. 전문가를 위한 필수 튜브 커팅 및 유체 시스템 도구
  10. 단일 소싱 공급망을 넘어: 회복탄력적 다각화 공급 네트워크 구축