TwinCAT3/ADS-LabVIEW

ADS Motion reference 함수 이용하기

나도시작 2020. 2. 20. 18:47
반응형

TwinCAT ADS를 사용하게되면 이전에 글에서 볼 수 있듯이, PDO Write 기능의 경우 ADS 모션이 상위단에서 제어를 하고 있기 때문에, PDO제어가 쉽지가 않다.

 

그래서 모션의 기능들을 PLC에서 불러와 ADS로 제어하는 부분으로 우회하기로 하였다.

 

TwinCAT에서 드라이버를 Scan한 상태에서 시작.

 

AKD EtherCAT Motion Drive 연결.  다른 Motion Drive가 있다면 일단 연결하고 동일하게 진행하면 됨.

1. PLC Project 생성

PLC - Add New Item - Standard PLC Project 생성.

2. GVL(Gobal Variable List)를 생성하여 변수를 작성한다.

    - Axis1 : Axis_Ref;

    - Axis1 -> 변수명

    - : -> 다른 텍스트 언어의 = 과 같음 (변수 대입)

    - Axis_Ref -> 축을 참조하기 위한 데이터 형식

    - ; -> 개행

GVLs - Add - Global Variable List 생성

3. 해당 모션 드라이버와 3에서 생성한 GVL을 연결한다. (3-1과 3-2중 하나만 작업하면 된다.)

  •   3번을 작업하고 Configuration을 한번 해줘야지 변수가 디스플레이됨.

 3-1. 모션드라이버에 변수를 연결

 3-2. 모션드라이브 내의 FromPlc/ToPlc를 Linked to를 통해 각각 연결 해준다.

위 이미지를 보면 Main에 변수가 하나 GVL에 변수가 하나 할당 되있는 것을 알 수 있는데, 개인적으로 추가한것이므로 무시

4. PLC에서 Motion 함수를 사용하려면 Reference 탭에서 Library를 불러온다. (ECAT 불러오는것과 동일)

Reference - Add Itme
Motion - PTP - TC2_MC2

5. POUs - Main에서 함수 생성하기 위해 F2를 눌러준다.

   Reference 함수 리스트가 디스플레이 되며, Structured Type에서 함수를 찾을 수 있다.

   - TC2_MC2 - POUs - Administative - Axis Functions - MC_Power를 선택한다.

Name에 함수 명칭 입력 후 OK버튼을 누른다.

6. 함수가 생성된 것을 확인할 수 있으며, Axis에 GVL에서 생성한 변수를 입력한다.

   - Axis에 GVL 이름.변수명칭 으로 입력

   - := 는 입력, => 출력 파라메터이므로 참고.

 

7. Override에 정의되지 않은 변수명을 입력하면 변수를 생성하는 창이 생성된다.

(이렇게 변수를 생성 할 수 있다. 아니면 수동으로 직접 선언하고 변수명을 직접 쓰는 방법이 있다.)

   - 입력 파라미터의 경우 값을 넣지 않으면 기본 값이 들어가므로 모르겠다면 안쓰고 테스트 해보는 것도 좋다.

 

8. Configuration 및 PLC Login, Start 버튼을 누른다.

9. 실행상태에서는 Prepared Value에서 변수 값을 변경을 할 수 있고, Write버튼을 이용하여 적용할 수 있다.

   - Write : 변수 값을 적용

   - Force : 변수 값 강제 적용

   - True로 상수를 넣은 파라미터의 경우 값 적용이 불가하므로 변수 값을 적용하려면 빈칸으로 두거나 변수를 넣자.

 

10. TwinCAT을 실행상태로 놔둔 상태에서 LabVIEW 코딩

   - Motion_Power의 Enable파라미터의 경우 아무것도 넣지 않았지만, PLC명.함수명.파라미터명으로 호출이 가능하다.

   - OV함수를 호출하고자 하면 PLC명.변수명으로 호출이 가능하다.

LabVIEW 블록 다이어그램

11. 컨트롤 변경하며 TwinCAT에서 값이 변경되는지 확인한다.

반응형