Skip to content

CORE 실시간 제어

1. EtherCAT 슬레이브

본 튜토리얼에서는 아래 그림과 같이 뉴로메카에서 개발한 스마트 액츄에이터 CORE와 Beckhoff IO 모듈을 슬레이브 장치로 시스템 인터페이스를 구축하는 예제를 다룹니다. 튜토리얼에서 시스템 인터페이스를 구성할 EtherCAT 슬레이브 장치에 대한 정보는 아래 와 같습니다.


종류 설명 수량
뉴로메카 IO 모듈 아날로그 및 디지털 입출력 인터페이스 1
CORE 500 Ø142 x 155 mm, 500 Watt 2
CORE 200 Ø90 x 145 mm, 200 Watt 1
CORE 100 Ø80 x 135 mm, 100 Watt 3
Beckhoff EK1100 EtherCAT 커플러 1
Beckhoff EL3004 아날로그 입력 터미널 1

EtherCAT 시스템 구성 요소

2. EtherCAT 마스터와 슬레이브 연결

아래 그림과 같이 모든 EtherCAT 슬레이브를 STEP의 EtherCAT 포트로부터 Beckhoff I/O 보드까지 직렬로 연결하였습니다. Beckhoff I/O 보드와 같은 상용 EtherCAT 슬레이브 장치들은 EtherCAT 입출력 포트가 존재합니다.


Example of an EtherCAT Topology

3. EtherCAT 슬레이브 스캔

모든 슬레이브 장치들을 연결했다면 PuTTY (또는 다른 SSH 클라이언트 도구)를 이용하여 STEP에 로그인 합니다. 아래 터미널 명령어를 통해 현재 EtherCAT 버스에 있는 슬레이브 장치들와 상태를 체크 할 수 있습니다. 이 때에 root 권한으로 로그인 하지 않았다면 "sudo" 명령어를 사용해야 합니다.

1
$ sudo ethercattool slaves


0번부터 순서대로 현재 연결 된 EtherCAT 슬레이브 장치들의 리스트를 확인할 수 있습니다.

  • NRMK IO Module: Neuromeka's anaolog and digital I/O module
  • NRMK Drive: Smart Actuator CORE
  • EL3004 4K.Ana. Eingang +/-10V: Beckhoff I/O Board

4. EtherCAT Tool 실행

다음으로 슬레이브 장치들을 자동 구성하기 위한 GUI 툴인 EtherCAT Tool을 실행하기 위해 STEP 에서 NRMKEcatService 을 실행합니다. 이를 통해 호스트 PC에서 STEP에 접근하여 EtherCAT 슬레이브 정보를 받아올 수 있습니다.

1
2
3
$ NRMKEcatService
EcatInfo server started at IP of: ,127.0.0.1,192.168.1.92 on Port: 8888
Waiting for Configuration Tool to connect...

NRMKEcatService는 EtherCAT 슬레이브 장치들의 모든 정보를 수집하여 호스트 PC의 EtherCAT Tool 로 수집한 정보를 전송할 준비를 합니다. 포트번호 8888로 TCP 서버를 개방하고 EcatTool이 소켓 연결을 통해 연결 되기를 대기합니다.

이제 호스트 PC의 NRMK Launcher에서 EtherCAT Tool (이하 EcatTool) 을 실행합니다. EcatTool은 아래의 경로에서 슬레이브 장치의 ESI (EtherCAT Slave Information) 파일을 대조하여 슬레이브 장치들의 정보를 추가합니다. 그러므로 EcatTool은 XML 형식의 ESI 파일로 부터 슬레이브 장치에 대한 상세 정보에 접근할 수 있는 상태여야 합니다.

  • 아래 경로에 필요한 ESI 파일이 모두 있는지 확인
  • ESI 파일이 없는 슬레이브 장치에 대해서 ESI 파일을 제조사로부터 받아 아래 경로에 복사
1
Program Files (x86)/neuromeka/NRMKFoundation/bin/NRMKEcatTool/resources

Notes

EcatTool 이 호스트 PC에 설치되어 있지 않다면 다운로드 페이지에서 설치파일을 다운받아 설치하시기 바랍니다.

이제 소켓을 통해 STEP과 연결할 준비가 되었습니다. 아래 그림처럼 Online Mode 탭의 Searching System Information 메뉴를 선택하고 EtherCAT 시스템 인터페이스 구성을 시작합니다.

  • STEP의 IP 주소를 입력하고 Connect 버튼 클릭 (Port: 8888)


EtherCAT Tool의 Searching System Information

STEP의 NRMKEcatService에 정상적으로 연결되면 아래 그림과 같이 대화상자가 닫히면서 슬레이브 장치에 대한 정보가 자동적으로 추가됩니다.


EtherCAT 슬레이브 장치 스캔 결과

5. EtherCAT 슬레이브 설정

다음은 연결된 슬레이브 장치 속성을 설정합니다. 아이콘 이미지, 제조 업체명, 슬레이브 명, 알리어스 및 슬레이브 위치를 설정할 수 있습니다. 스캔 된 슬레이브 장치의 아이콘을 클릭 시 우측 상단의 Salve Setting 패널에 해당 슬레이브의 정보가 표시됩니다. 사용자는 패널에서 정보를 속성 정보를 기입 후 Apply 버튼을 눌러 변경사항을 적용할 수 있습니다.


EtherCAT 슬레이브 설정 화면

  • Icon: Change Icon 을 통해 아이콘 이미지 변경 가능
  • Vendor, Slave Name: 알파벳으로 시작, 알파벳, 숫자, 공백만의 조합으로 작성
  • Alias, Position: 감지된 순서대로 자동생성 되므로 디폴트값 사용을 권장

Warning

자동 코드생성 시 Vendor와 Slave Name 을 조합하여 변수이름을 생성합니다. C++ 변수이름은 알파벳으로 시작해야 하며, 언더바 (_) 외 기호를 사용할 수 없으므로 Vendor, Slave Name 시 이름 유념해야 합니다. 예) Vendor: Beckhoff, Slave Name: EL3004.

Notes

EtherCAT 커플러(Beckhoff EK1100)는 제어 코드 내에서 어떠한 기능도 하지 않기 때문에 제거해도 무방합니다.

아래 그림과 같이 슬레이브로 사용하고자 하는 장치들과 이름을 최종 확정 지은 후 다음으로 PDO 설정을 진행할 수 있습니다.


최종 슬레이브 설정 화면

6. PDO 항목 설정 및 도메인 구성

다음은 사이클릭 통신을 할 수 있도록 PDO 항목 설정을 통해 EtherCAT 도메인을 구성하는 방법에 대해 설명합니다. EtherCAT 슬레이브 장치에 대한 PDO 매핑 은 EcatTool이 장치의 ESI 파일로 부터 파싱하여 미리 정의 되며 EcatTool에서 EtherCAT 슬레이브 장치를 선택하면 RxPDOTxPDO Configuration 1 패널에 사용 가능한 PDO 리스트가 나타납니다. 아래 그림은 CORE와 Beckhoff EL3004 모듈의 PDO 구성을 나타냅니다.

  • CORE의 PDO 항목: 3개의 RxPDO(0x1600, 0x1601, 0x1602)와 3개의 TxPDO (0x1a00, 0x1a01, 0x1a02)로 구성

  • Beckhoff EL3004의 PDO 항목: RxPDO는 없으며 5개의 TxPDO(0x1a00, 0x1a01, 0x1a02, 0x1a03, 0x1a04)로 구성

사용자는 원하는 PDO 항목을 가진 PDO 매핑을 선택할 수 있습니다. 이때 EtherCAT 마스터는 슬레이브와의 통신을 위해 최소 한 개 이상의 PDO 항목을 구성해야 합니다.


PDO 매핑 리스트 (a) CORE (b) Beckhoff EL3004

CORE PDO 매핑

임의의 PDO 매핑을 선택하면 미리 설정 된 기본 항목을 Entry Configuration 패널에서 확인할 수 있습니다2. 아래 그림은 RxPDO 의 0x1600을 선택한 결과를 나타내며 RxPDO 0x1600 왼쪽의 체크 버튼은 해당 PDO가 도메인 설정에서 PDO 항목을 매핑하기 위해 선택되었다는 것을 의미합니다. 해당 PDO 매핑은 다음의 항목들을 포함합니다.

  • Controlword, Targetposition, Targetvelocity, Targettorque, Modesofoperation

리스트에서 Targetposition, Targetvelocity, Targettorque는 각각 CST (Cyclic Synchronous Torque), CSP (Cyclic Synchronous Position), CSV (Cyclic Synchronous Velocity) 모드와 관련 있고 동작 모드를 변경하면 해당 모드를 실행할 수 있습니다3


RxPDO 0x1600 의 항목 리스트

다음 단계로 사용자는 PDO 항목을 도메인에 배치해야 합니다4. Entry Configuration 패널에서 필요한 항목을 선택한 후, 마우스 오른쪽 클릭 후 “Add to Domain” 를 클릭합니다. 그러면 아래 첫 번째 그림에서 볼 수 있듯이 Entry Configuration 에서 선택 된 항목이 Domain Configuration의 RxDomain에 배치됩니다. 마찬가지로 아래 두 번째 그림과 같이 사용을 원하는 TxPDO 항목을 TxDomain에 배치시킵니다. 본 튜토리얼에서는 CORE의 실제 위치, 실제 속도, 실제 토크를 모두 포함하고 있는 TxPDO 0x1a00을 선택하였습니다.


RxPDO 항목 RxDomain에 배치하기


TxPDO 항목 TxDomain에 배치하기

Beckhoff EL3004 PDO 매핑

CORE에서 수행한 것과 마찬가지로 사용자가 사용하기 원하는 PDO 매핑을 선택하고 도메인에 배치합니다. 본 튜토리얼에서는 TxPDO 0x1a00의 모든 항목을 TxDomain에 배치합니다.


Beckhoff EL3004 TxPDO 0x1a00

뉴로메카 IO 모듈 PDO 매핑

아래 그림에서 (a), (b)는 각각 IO 모듈의 RxPDO (0x1610)와 TxPDO (0x1A10)을 나타냅니다. 각 PDO 매핑의 모든 항목을 도메인에 배치합니다.


(a), (b) IO 모듈 RxPDO, TxPDO

7. 이클립스 환경의 EtherCAT 프로젝트 생성

지금까지 성공적으로 진행되었다면 EtherCAT 시스템 인터페이스 개발을 위한 PDO 구성을 완료한 것이며, 현재 시스템에 대한 실시간 코드 생성을 할 준비가 되었습니다. 아래 그림과 같이 EcatTool 우측 하단의 Export PDO Configuration 을 클릭하면 실시간 제어를 위한 C++ 코드 생성을 위한 Sytem Setting 다이어로그가 나타납니다.

  • System Name: 이클립스 C++ 프로젝트 명
  • Control Period: 실시간 사이클 주기 (기본셋팅: 1 ms)
  • Platform PC: Intel x86 아키텍쳐 기반 STEP (STEP2, STEP HPC)
  • Platform IMX: ARM 아키텍쳐 기반 STEP (STEP iMX, STEP BBB)


이클립스 C++ 프로젝트 설정

System Setting 다이어로그를 기입하고 OK 버튼을 클릭하면 EtherCAT PDO Generator 다이어로그가 아래 그림과 같이 나타납니다. 다이어로그에서는 생성 된 C++ 코드를 내보내기 전에 제대로 생성되었는지 확인할 수 있습니다.


이클립스 C++ 코드 생성

소스 코드와 프로젝트 생성을 위해서 File 메뉴의 Export 를 클릭합니다. Save As 다이어로그가 표시되면 새 폴더(예:EcatDemonstration)를 작업공간에 만든 후 Save 를 클릭합니다.


작업공간으로의 C++ 프로젝트 내보내기

8. EtherCAT 프로젝트 컴파일

이번 절에서는 이클립스를 이용하여 실시간 EtherCAT 프로젝트를 컴파일하고 실행하는 방법에 대해 설명합니다. 이클립스를 실행 후 아래 그림과 같이 FileImport 메뉴를 클릭합니다.


이클립스 프로젝트 불러오기

아래 그림과 같이 Import 다이어로그의 Existing Projects into Workspace 옵션을 선택합니다.


불러오기 옵션 선택

EcatTool을 이용하여 소스 파일을 저장했던 작업공간 경로를 선택합니다. 경로가 정상적으로 선택되면 아래 그림과 같이 EtherCAT 프로젝트가 리스트에 표시됩니다.


EtherCAT 프로젝트 경로 선택 화면

Finish 버튼을 클릭하면 아래 그림과 같이 이클립스의 Project Explorer창에 프로젝트가 로드된 것을 확인할 수 있습니다.


이클립스 Project Explorer 화면

프로젝트 컴파일을 위해 아래 그림과 같이 Build Configuration 에서 Release 를 선택합니다. 이는 이클립스가 EtherCAT 어플리케이션의 릴리즈 버전을 생성할 수 있도록 합니다.


Build Configuration 선택 메뉴

EtherCAT 프로젝트 컴파일은 상단의 아래 그림처럼 Project | Build Project 메뉴를 통해 진행할 수 있습니다. 아래와 같은 메세지를 이클립스 콘솔 창에 나타난다면 성공적으로 빌드된 것입니다.

1
2
Build complete for project EcatDemonstration
Time consumed: 7606  ms.  


EtherCAT 프로젝트 컴파일

9. EtherCAT 어플리케이션 실행

STEP에서 EtherCAT 어플리케이션을 원격으로 실행하기 위해서 STEP을 원격 타겟으로 설정합니다. 이번 절은 이클립스에서 원격 타겟(STEP)의 EtherCAT 어플리케이션을 실행하기 위해 Run Configuration을 설정하는 방법에 대해 설명합니다.

원격 타겟 설정을 위해 이클립스 우측 상단의 Remote System 메뉴를 선택합니다. 선택 후 Remote System 패널에서 Target 을 선택하고 Host Name 을 타겟 IP 주소로 변경합니다. 상세 과정은 아래 그림을 참조하십시오.


이클립스 상의 원격 타겟 설정

다음으로 아래 그림과 같이 C/C++ 메뉴를 클릭하여 유저 인터페이스로 돌아간 후 Run | Run Configuration 를 클릭합니다.


Run Configuration 열기

새로운 구성을 추가하기 위해 Run Configuration 화면에서 new 버튼을 클릭하고, 아래 그림처럼 Main 탭에 내용을 입력합니다. 마지막으로 우측 하단의 run 버튼을 누르면 EtherCAT 어플리케이션을 실행할 수 있습니다.


Run Configuration 설정

모든 과정이 정상적으로 진행되었다면 아래 그림처럼 이클립스 콘솔 메세지를 확인할 수 있습니다.


EtherCAT 어플리케이션의 실시간 메세지


  1. ‘RxPDO’ 와 ‘TxPDO’ 는 슬레이브 관점의 용어이다. 슬레이브가 수신 한 PDO 는 RxPDO 를 만드는 반면, 슬레이브로 부터 송신 된 PDO 는 TxPDO 를 형성한다. 따라서 슬레이브로의 명령은 RxPDO 이고, 슬레이브의 상태는 TxPDO 가 담당한다. 

  2. ‘미리 설정된’ 이라는 것은 전체 항목 수가 유지된다면 항목을 변경해도 무관하다는 의미이다. 

  3. CSP, CSV, CST 모드는 타켓 위치, 속도, 토크가 매 사이클마다 명시되어야 한다. 또한, IP (Interpolated Position), PP (Profile Position) 와 같이 EtherCAT에서 정의 된 다양한 모드가 있다. 뉴로메카 CORE는 CST 모드만 제공한다. 

  4. EtherCAT Tool 은 기본적으로 두 가지 도메인을 제공한다. 하나는 슬레이브가 받은 RxPDO 이고 다른 하나는 슬레이브가 보내는 TxPDO 이다.