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

C++에서 단순 및 복합 데이터 유형 사용

안녕하세요.

이 블로그 게시물에서 우리는 C++ 및 PLCnext Engineer의 단순 데이터 유형과 복합 데이터 유형을 탐색할 것입니다. 간단하고 복잡한 두 부분으로 구성되어 있습니다.

이 자습서에서는 C++ 및 PLCnext Engineer에 대한 경험이 있다고 가정합니다.

시작

먼저 작업에 적합한 도구, C++ 편집기, PLCnext Engineer 소프트웨어 및 이를 실행하는 피닉스컨택트 PLC가 필요합니다. 제가 사용한 자료는 다음과 같습니다.

개인적으로 Visual Studio를 C++ 편집기로 선택했지만 Eclipse도 사용할 수 있습니다. 튜토리얼에 대한 링크는 여기에서 찾을 수 있습니다:

PLCnext Engineer의 경우 당사 웹사이트에서 확인할 수 있습니다.

간단한 운동

이 첫 번째 예에서는 PLC에서 올바른 번호가 전송되었는지 확인하는 작은 응용 프로그램을 만들 것입니다. 먼저 새 C++ 프로젝트를 만듭니다. 그런 다음 헤더 파일로 이동합니다. 이름은 다음과 같아야 합니다. [NameOfTheProject].hpp, 이름이 [nameOfTheProject]component.hpp인 파일도 있는데 사용하지 않을 것입니다. 헤더 파일에 들어가면 앞에 코드 벽이 있지만 간단할 테니 걱정하지 마세요. 먼저 하나의 IN과 하나의 OUT 포트를 정의할 것입니다. 다음과 같이 정의할 수 있습니다. 이는 단순 데이터 유형에만 해당된다는 점을 명심하십시오.

//#포트
//#속성(입력)
//#이름(입력 테스트)
int64 입력 테스트 =0;


//#포트
//#속성(출력)
//#이름(출력테스트)
int64 출력 테스트 =0;

그런 다음 실제 코딩을 수행할 다음 파일로 이동합니다. 이 이름은 [NameOfTheProject].cpp여야 하며 많은 내용을 포함하지 않아야 합니다. 우리는 곧 그것을 바꿀 것입니다. If 또는 switch 대소문자를 사용하여 숫자를 확인하는 코드를 추가해 보겠습니다. 이는 사용자에게 달려 있습니다. 이 구조에서 if 구조를 사용했습니다.

무효 PLMProjectReadInputProgram::Execute() 무효 PLMProjectReadInputProgram::Execute(){
if (InputTest ==1) {
출력 테스트 =15;}


if (InputTest ==2) {
출력 테스트 =150;}


if (InputTest ==3) {
출력 테스트 =1500;}


if (InputTest ==4) {
출력 테스트 =15000;}

}

PLCnext 엔지니어에게 넘어가기 전에 이 C++ 프로젝트를 PLC가 이해할 수 있는 라이브러리로 만들어야 합니다. 이것은 화면 상단에서 빌드를 클릭하면 됩니다. 이것은 잠시 동안 실행되어야 하며 라이브러리가 완료되면 알려줄 것입니다. 이 단계가 명확하지 않은 경우 위에 나열된 자습서를 확인하는 것이 좋습니다.

'로컬' 폴더의 프로그래밍 아래 구성요소 탭에서 메인 프로그램으로 이동한 다음 메인 화면에서 변수를 선택하여 PLC의 변수를 확인합니다. 여기에서 이름과 데이터 유형 및 용도를 선택할 수 있습니다. PLCnext 엔지니어의 데이터 유형은 C++ 프로그램에서 다른 유형에 대한 링크와 동일해야 하며 해당 유형은 여기에서 찾을 수 있습니다. 사용법은 변수가 로컬인지 또는 외부 프로그램이나 변수에서 데이터를 보내고 받는 데 사용할 수 있는지 정의합니다.

이 작업을 수행한 후 새 라이브러리를 추가한 후 변수 연결을 시작합니다. 다음과 같이 할 수 있습니다.

만든 라이브러리는 프로젝트의 bin 폴더에서 찾을 수 있습니다. 이를 PLCnext 엔지니어의 라이브러리 폴더에 복사합니다. 위치는 다음과 같습니다.

C:\Users\Public\Documents\PLCnext Engineer\Libraries

그런 다음 PLCnext 엔지니어로 돌아가 프로그램에 라이브러리를 추가합니다. 구성 요소 탭으로 이동하여 라이브러리 상자를 열고 라이브러리를 마우스 오른쪽 버튼으로 클릭합니다. 그런 다음 '사용자 라이브러리 추가'를 클릭하면 이전에 갔던 라이브러리 폴더로 이동합니다. 사용하려는 라이브러리를 선택하고 계속하십시오.

이 작업이 완료되면 다음과 같이 수행되는 작업에 프로그램을 추가해야 합니다. 플랜트 영역 내부의 화면 왼쪽에서 PLCnext를 두 번 클릭합니다. 중간에 열어야 합니다. 그런 다음 '작업 및 이벤트' 탭으로 이동하여 MainInstance 뒤에 새 프로그램을 추가합니다. 이는 프로그램 유형을 선택하거나 'PLCnext Components &Programs' 아래의 구성 요소 영역에서 끌어서 두 가지 방법으로 수행할 수 있습니다.

그런 다음 변수는 '작업 및 이벤트' 탭 옆에 있는 '포트 목록' 탭에 표시되어야 합니다. 이것을 열어 C++ 및 PLCnext의 모든 변수를 환영합니다. 다음과 같아야 합니다.

모든 작업을 올바르게 수행했다면 PLC의 OUT 포트를 C++ 프로그램의 IN 포트에 연결할 수 있어야 합니다. 반대의 경우도 가능하며 다음과 같아야 합니다. 이것이 작동하지 않으면 데이터 유형을 확인하십시오.

변수에 더미 값을 추가하려면 구성 요소 탭에서 기본 프로그램으로 이동한 다음 기본 화면에서 코드를 선택하여 코드를 확인하고 일부를 추가합니다. 변수를 숫자 값(이 경우 1)으로 설정하기만 하면 됩니다.

이제 프로젝트를 PLC에 배포하고 C++ 코드에서 응답으로 15를 얻어야 합니다. 이전의 '포트 목록'에서 변수를 볼 수 있습니다.

복잡한 운동

이 예에서는 PLC로 구조체 배열을 보내거나 PLC에서 보내는 작은 응용 프로그램을 만들 것입니다. 먼저 새 C++ 프로젝트를 만듭니다. 그런 다음 헤더 파일로 이동합니다. 이름은 다음과 같아야 합니다. [NameOfTheProject].hpp, 이름이 [nameOfTheProject]component.hpp인 파일도 있는데 사용하지 않을 것입니다. 헤더 파일에 들어가면 앞에 코드 벽이 있지만 간단할 테니 걱정하지 마세요. 우선, 우리는 자동차용 구조체를 만들 이 예제의 구조체를 만들어야 합니다. 이것은 다음과 같이 수행됩니다:

공개:// 형식 정의
구조체 StrCar{
StaticString<80> sbrand;
int16 iHorsepower;
int16 iYear;
부울 xInsured;
};

!중요한! C++와 PLCnext 엔지니어의 이름과 유형은 동일해야 합니다! 데이터 유형은 여기에서 찾을 수 있습니다.

그런 다음 포트를 정의할 것입니다. 하나는 IN이고 하나는 OUT입니다. 데이터 목록이 포트를 그렇게 만들기 때문입니다. '자동차' 목록을 만드는 것도 중요합니다. 이것은 다음과 같이 수행됩니다:

//#포트
//#속성(입력)
//#이름(카인)
StrCar CarToC[2];

//#포트
//#속성(출력)
//#이름(카아웃)
StrCar CarFromC[2];

그런 다음 실제 코딩을 수행할 다음 파일로 이동합니다. 이 이름은 [NameOfTheProject].cpp여야 하며 많은 내용을 포함하지 않아야 합니다. 우리는 곧 그것을 바꿀 것입니다. 여기서 우리는 자동차 1과 자동차 2의 값을 변경할 것입니다.

//자동차 목록의 첫 번째 구성원을 PLC의 자동차와 동일하게 설정합니다.
CarFromC[0].sbrand =CarToC[1].sbrand;
CarFromC[0].iHorsepower =CarToC[1].iHorsepower;
CarFromC[0].iYear =CarToC[1].iYear;
CarFromC[0].xInsured =CarToC[1].xInsamp;

//두 번째 멤버에 더미 값 추가
CarFromC[1].sbrand =CarToC[0].sbrand;
CarFromC[1].iHorsepower =CarToC[0].iHorsepower;
CarFromC[1].iYear =CarToC[0].iYear;
CarFromC[1].xInsured =CarToC[0].xInsamp;

PLCnext 엔지니어에게 넘어가기 전에 이 C++ 프로젝트를 PLC가 이해할 수 있는 라이브러리로 만들어야 합니다. 이것은 화면 상단에서 빌드를 클릭하면 됩니다. 이것은 잠시 동안 실행되어야 하며 라이브러리가 완료되면 알려줄 것입니다. 이 단계가 명확하지 않은 경우 위에 나열된 자습서를 확인하는 것이 좋습니다.

이제 PLCnext 엔지니어에서 변수를 만들기 전에 우리 고유의 데이터 유형을 생성해야 합니다. 이 경우에는 struct car와 car 목록이 필요합니다. 이를 위해 데이터 유형 파일이 필요하며 여기에서 찾아 생성할 수 있습니다.

이 파일이 아직 열리지 않았다면 다음과 같이 구조체를 만들 수 있습니다.

유형

StrCar:

STRUCT

s브랜드:STRING;
iHorsepower:INT;
iYear:int;
x보험:BOOL;

END_STRUCT

END_TYPE

!중요한! C++와 PLCnext 엔지니어의 이름과 유형은 동일해야 합니다! 데이터 유형은 여기에서 찾을 수 있습니다.

구조체를 만든 후 우리는 이 유형의 배열을 만들어야 하며 다음과 같이 수행되며 현재 있는 동일한 파일에서 수행됩니다.

유형

carList:ARRAY[0..1] OF StrCar;

END_TYPE

'carList' 유형의 변수를 생성하려면 '프로그래밍' 아래의 구성 요소 탭에서 메인 프로그램으로 이동한 다음 '프로그램' 폴더 내부로 이동한 다음 메인 화면에서 변수를 선택하여 PLC의 변수를 확인합니다. 여기에서 이름과 데이터 유형 및 용도를 선택할 수 있습니다. 데이터 유형으로 맞춤 제작을 선택하십시오.

이 작업을 수행한 후 새 라이브러리를 추가한 후 변수 연결을 시작합니다. 다음과 같이 할 수 있습니다.

만든 라이브러리는 프로젝트의 bin 폴더에서 찾을 수 있습니다. 이를 PLCnext 엔지니어의 라이브러리 폴더에 복사합니다. 위치는 다음과 같습니다.

C:\Users\Public\Documents\PLCnext Engineer\Libraries

그런 다음 PLCnext 엔지니어로 돌아가 프로그램에 라이브러리를 추가합니다. 구성 요소 탭으로 이동하여 라이브러리 상자를 열고 라이브러리를 마우스 오른쪽 버튼으로 클릭합니다. 그런 다음 '사용자 라이브러리 추가'를 클릭하면 이전에 갔던 라이브러리 폴더로 이동합니다. 사용하려는 라이브러리를 선택하고 계속하십시오.

이 작업이 완료되면 다음과 같이 수행되는 작업에 프로그램을 추가해야 합니다. 플랜트 영역 내부의 화면 왼쪽에서 PLCnext를 두 번 클릭합니다. 중간에 열어야 합니다. 그런 다음 '작업 및 이벤트' 탭으로 이동하여 MainInstance 뒤에 새 프로그램을 추가합니다. 이는 프로그램 유형을 선택하거나 'PLCnext Components &Programs' 아래의 구성 요소 영역에서 끌어서 두 가지 방법으로 수행할 수 있습니다.

그런 다음 변수는 '작업 및 이벤트' 탭 옆에 있는 '포트 목록' 탭에 표시되어야 합니다. 이것을 열어 C++ 및 PLCnext의 모든 변수를 환영합니다. 다음과 같아야 합니다.

모든 작업을 올바르게 수행했다면 PLC의 OUT 포트를 C++ 프로그램의 IN 포트에 연결할 수 있어야 합니다. 반대의 경우도 가능하며 다음과 같아야 합니다. 이것이 작동하지 않으면 변수의 데이터 유형과 이름을 확인하십시오.

변수에 더미 값을 추가하려면 구성 요소 탭에서 기본 프로그램으로 이동한 다음 기본 화면에서 코드를 선택하여 코드를 확인하고 일부를 추가합니다. 우리는 변수를 일부 자동차 사양에 맞게 설정할 것입니다. 무작위로 선택할 수 있지만 데이터 유형과 일치해야 합니다. (선택한 것에 따라 문자열을 사용한 곳에 문자열 등을 사용하십시오.)

CarToC[0].sBrand :='아우디';
CarToC[0].iHorsepower :=200;
CarToC[0].iYear :=2020;
CarToC[0].xInsured :=TRUE;

CarToC[1].sBrand :='마쓰다';
CarToC[1].iHorsepower :=120;
CarToC[1].iYear :=2001;
CarToC[1].xInsured :=FALSE;

이 예제를 배포하면 나가는 목록을 들어오는 목록에서 바꿔야 합니다. 이전의 '포트 목록'에서 변수를 볼 수 있습니다.


산업기술

  1. 무한한 클라우드를 넘어
  2. 복잡한 전압 및 전류 계산
  3. C# 기본 입력 및 출력
  4. C++ 클래스 및 개체
  5. C++의 구조 및 클래스
  6. C++ 날짜 및 시간
  7. 작성 절차:디지털화하여 간단하고 효율적
  8. grpcurl을 사용하는 원격 gRPC
  9. C#에서 간단한 PLCnext 콘솔 애플리케이션을 만드는 방법
  10. PLCnext에 apt(-get) 패키지 관리자 설치