CORE 제어 예제
CORE 모듈을 위한 TwinCAT3 프로젝트 생성
TwinCAT 3 프로젝트 생성
- 시작 페이지에서 "New TwinCAT Project …"을 선택하세요.
- File ⇨ New ⇨ Project 으로 프로젝트를 생성할 수 있습니다.(기존 프로젝트 템플릿이 모두 표시됨)
Figure 1. TwinCAT3 - 새로운 프로젝트 - "TwinCAT XAE Project"을 선택하세요; 적당한 프로젝트이름을 입력
- "OK" 클릭
Figure 2. TwinCAT3 - 프로젝트 환경 설정
TwinCAT3 C++ 모듈 생성
- "C++" 우클릭 후, "Add New Item..." 선택하세요.
- 만약 녹색 C++ 기호가 표시되지 않으면, 이는 타겟 장치가 TwinCAT C++을 지원하지 않거나 현재 Visual Studio가 C++ 지원하지 않음을 뜻합니다.
Figure 3. TwinCAT3 프로젝트 - C++ 프로젝트 추가하기
- 만약 녹색 C++ 기호가 표시되지 않으면, 이는 타겟 장치가 TwinCAT C++을 지원하지 않거나 현재 Visual Studio가 C++ 지원하지 않음을 뜻합니다.
- "TwinCAT Driver Project"선택하고, 관련 프로젝트 이름을(예. CORE Controller) 기입 "OK" 를 클릭하세요.
Figure 4. TwinCAT3 프로젝트 - C++ 프로젝트 환경 설정 - "TwinCAT Module Class with Cyclic I/O" 를 선택하고 "OK"을 클릭하세요.
Figure 5. TwinCAT3 프로젝트 - C++ 모듈 카테고리 - "TwinCAT Class Wizard"에 모듈 이림을 기입하세요. (예. CoreModule)
Figure 6. TwinCAT3 프로젝트 - C++ 모듈 환경 설정
TwinCAT3 C++ 모듈 인스턴스 생성
- C++ 프로젝트 우클릭(이 경우 "Untitled1") 후 "Add New Item...“ 선택
Figure 7. TwinCAT3 C++ 모듈 - 모듈 인스턴스 추가 - C++ 모듈 선택하여 인스턴스 생성
Figure 8. TwinCAT3 C++ 모듈 - 인스턴스화를 위한 모듈 선택 - 모듈은 이미 각 경우에 기본 변수를 포함하는 간단한 I/O 인턴페이스를 제공하고 있습니다.
- 입력 영역: Value, Status, Data
- 출력 영역: Value, Control, Data
Figure 9. TwinCAT3 C++ 모듈 - 기본 데이터 변수
- 이 변수들의 설명은 다음 파일에 정의 되어 있습니다.
- TwinCAT Module Configuration 파일 (예. "CORE_Controller.tmc")
Figure 10. TwinCAT3 C++ 모듈 - 데이터 변수 변경
- TwinCAT Module Configuration 파일 (예. "CORE_Controller.tmc")
- 다음과 같이 변수 목록을 수정하여 CORE 모듈로 작업하세요.
- 입력 영역: statusword, modeOpDisp, actPos, actVel, actTorq
- 출력 영역: controlword, modeOp, tarTorq
Figure 11. TwinCAT3 C++ 모듈 - 데이터 변수 변경
시스템 검색 & 맵핑
-
장치 검색
- Device 우클릭 ⇨ Scan.
- 모든 모듈이 표시됩니다.
Figure 12. TwinCAT3 프로젝트 - CORE 모듈 검색참고: 검색 전, 코어 모듈을 위한 ESI 파일은 적절한 TwinCAT 위치에 추가되어야 합니다. 또한, TwinCAT 드라이버는 네트워크 인터페이스 카드(Ntework Interface Card, NIC)를 위해 설치 되어야 합니다. 지침은 "Setting tips" 섹션을 참조하세요.
-
맵 데이터 항목(Map Data Variables)
- CoreModule 의 각 변수를 더블 클릭⇨ Linked to ⇨ 연결하고자 하는 객체 선택 ⇨ OK 클릭.
Figure 13. TwinCAT3 프로젝트 - CORE Module 맵 데이터 변수 - Mapping 우클릭⇨ Generate Mapping
Figure 14. TwinCAT3 프로젝트 - 데이터 매핑 생성
- CoreModule 의 각 변수를 더블 클릭⇨ Linked to ⇨ 연결하고자 하는 객체 선택 ⇨ OK 클릭.
TwinCAT 3 C++ 실행
- "Module1.cpp"(예제)를 여세요.
- Module1::CycleUpdate() 메서드는 주기적으로 호출합니다.
- cyclic 코드가 실행 되는 곳
Figure 15. TwinCAT3 C++ 모듈 - Real-time 태스크 Cyclic function 참고: 편집기 상단의 드롭다운 메뉴를 Module class를 찾는데 사용할 수 있다.
- cyclic 코드가 실행 되는 곳
TwinCAT 3 C++ 프로젝트 컴파일
- 컴파일이 실행될 타켓 플랫폼을 선택하세요 .
- TwinCAT 3 C++ 프로젝트를 우클릭하여 "Build" 혹은 "Rebuild" 을 선택하세요.
- x64 드라이버는 다음과 같은 출력을 만들어 냅니다.
Figure 16. TwinCAT3 C++ 모듈 - C++ 소스 코드 빌드
TwinCAT real-time 태스크 생성
- System 열기 ⇨ Tasks 우클릭 ⇨ Add New Item... 선택하세요.
Figure 17. TwinCAT3 프로젝트 - Real-time 태스크 추가 - 태스크의 이름을 기입하세요.(예. Task1)
Figure 18. TwinCAT3 프로젝트 - 태스크 이름 명시 - 태스크의 환경을 설정하세요
- 주기적으로 실행되는 태스크를 자동적을 실행시려면 "Auto start" 이 활성화 되어야 합니다.
- "Cycle ticks"은 기본 클럭과 관련된 클럭의 타이밍을 정의합니다.
Figure 19. TwinCAT3 프로젝트 - Real-time 태스크 환경 설정
- C++ 모듈에 태스크 할당하세요.
- 솔루션 트리에서 C++ Module instance 선택하세요.
- 오른쪽 작업 영역에서 "Context" 탭을 선택하세요.
- 드롭다운 태스크 메뉴에서 "Task 1" 을 선택하세요.
Figure 20. TwinCAT3 프로젝트 - C++ 모듈에 태스크 할당
TwinCAT 3 C++ 디버거 사용
- 솔루션의 C++ 노드에서 "C++ Debugger" 탭을 선택하고, "Enable C++ Debugger"을 켜세요.
Figure 21. TwinCAT3 C++ 모듈 - Debugging 모드 사용
TwinCAT 3 프로젝트 활성화
- "Activate Configuration“ 클릭하세요.
- TwinCAT 프로젝트를 위한 모든 파일은 타겟 시스템에 전송됩니다.
Figure 22. TwinCAT3 프로젝트 - 시스템 활성화
- TwinCAT 프로젝트를 위한 모든 파일은 타겟 시스템에 전송됩니다.
- 새로운 환경 설정 활성화 확인하세요.
Figure 23. TwinCAT3 Project - Confirm System Activation - 필요한 경우 7일 테스트 라이센스를 생성할 수 있는 옵션이 제공될 것입니다. 이것은 몇번이고 반복 가능합니다.
- TwinCAT 3이 모드를 Run Mode 로 변경 해야 하는지 여부를 묻습니다.
- "OK" 클릭하여 TwinCAT to Run Mode 변경
- "Cancel"클릭하여 Config Mode 유지
Figure 24. TwinCAT3 프로젝트 -시스템의 실행모드 확인
- 실행 모드로 변경 후, Visual studio 아래의 TwinCAT System Service 기호는 초록색으로 바뀝니다.
Figure 25. TwinCAT3 프로젝트 - 실행 모드 표시