stella b3 user manual v1.00 - ntrexgo · 2013-11-18 · stella b3 6 2. 제품 사용 전...

90
Mobile Robot Platform Stella B3 User Manual ver. 1.00 Updated in November 2013

Upload: others

Post on 28-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Mobile Robot Platform

Stella B3

User Manual

ver. 1.00

Updated in November 2013

Page 2: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

http://ntrexgo.com

Page 3: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

1

1. 머리말 5

2. 제품 사용 전 유의사항 6

3. 개요 7

3-1. Stella B3 7

3-2. 구성품 7

3-2-1. Stella B3 모터 제어기 8

3-2-2. Stella B3 충전 보드 9

3-3. 제원 10

3-4. 모터 및 기어 정보 10

4. B3 버전 업그레이드 11

4-1. 펌웨어 업데이트 방법 11

5. 내부 회로 및 제어기 구성 14

5-1. 내부 회로 구성 14

5-2. 제어기 구성 15

5-2-1. 제어기의 전체 구성 15

5-2-2. 전류 제어기 16

5-2-3. 속도 제어기 17

5-2-4. 위치 제어기 19

5-2-5. 프로파일 생성기 20

6. 명령어 구조와 종류 21

Page 4: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

2

6-1. 용어의 정의 21

6-2. 통신의 기본 명령 구조 22

6-2-2. CAN 통신의 기본 명령 구조 22

6-2-2-1. CAN 통신을 하기 위한 패킷의 기본 구조 22

6-2-2-2. 변수 내용 읽어오기 23

6-2-2-3. 변수 내용 쓰기 - 명령 인가하기 23

6-2-2-4. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우) 23

6-2-2-5. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우) 24

6-2-3. Serial binary 패킷 통신의 기본 명령 구조 24

6-2-3-1. Binary 패킷 통신의 기본 구조 24

6-2-3-2. 변수 내용 읽어오기 25

6-2-3-3. 변수 내용 쓰기 - 명령 인가하기 25

6-2-3-4. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우) 26

6-2-3-5. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우) 26

6-2-4. Serial(RS-232/USB) text 패킷 통신의 기본 명령 구조 26

6-2-4-1. 변수 내용 읽어오기 26

6-2-4-2. 변수 내용 쓰기 - 명령 인가 하기 27

6-2-4-3. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우) 28

6-2-4-4. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우) 28

6-3. 상태 확인 및 구동 명령 29

6-3-1. 내부 상태를 확인 29

6-3-2. 모터 제어기의 환경적 상태 확인 32

6-3-3. 구동에 관련된 명령 32

6-4. 내부 설정 변경 34

6-4-1. 제어기의 파워 스테이지 스위칭 소자의 구동에 관련된 설정 34

6-4-2. 통신에 관련된 설정 34

6-4-3. 위치 센서에 대한 설정 36

6-4-4. 모터 구동 환경에 대한 설정 36

6-4-5. 모터 구동 한계 설정 37

6-4-6. 모터 구동 중 오류 감지 조건 설정 38

Page 5: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

3

6-4-7. 제어기 시작 시 모터 구동과 관련된 설정 39

6-5. 내부 제어기의 설정 40

6-5-1. Closed Loop Controller 기본설정 40

7-4-2. 위치 제어기 게인 설정 41

7-4-3. 속도 제어기 게인 설정 42

7-4-4. 전류 제어기 게인 설정 42

6-6. 사용자 변수 및 스크립트(Script)에 대한 설정 42

6-7. 2축 구동형 모바일 로봇에 대한 설정 43

6-7-1. Mixing and Safety 43

6-7-2. Mobile Robot Property 44

6-7-3. Mobile Robot의 동작과 상태에 관한 변수 45

7. 스크립트 언어와 함수 47

7-1. 스크립트 언어 47

7-2. 스크립트 내장 함수 49

8. MOTOR CONTROL UI PROGRAM 54

8-1. Motor Control UI Program 다운로드 54

8-2. Motor Control UI Program 연결 55

8-3. Motor Control UI Program 메뉴 및 기능 57

8-3-1. Control List 57

8-3-2. Motor Control 58

8-3-2-1. Motor Control Status 59

8-3-2-2. Motor Fault Flags 60

8-3-2-3. Motor Control 60

8-3-2-4. Controller Monitoring 60

8-3-2-5. Mapped Analog Input 60

Page 6: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

4

8-3-3. IO Monitoring 61

8-3-4. Configuration 62

8-3-4-1. Motor 1 / Motor 2 64

8-3-5. Script 65

8-3-6. Real-time Plot 67

8-3-7. Emergency STOP 67

8-4. Motor Control UI Program을 이용한 제어기 설정방법 69

8-4-1. 전압 제어 설정 방법 69

8-4-2. 전류 제어 설정 방법 71

8-4-3. 속도 제어 설정 방법 72

8-4-4. 위치 제어 설정 방법 74

8-5. Motor Control UI Program 사용시 주의사항 77

8-5-1. Encoder Resolution 77

8-5-2. Motor Characteristics 77

8-5-3. Fault Condition 78

8-5-4. Write Configurations & Save to Flash 78

8-5-5. Calibration 78

9. 제품 종류 및 외관 치수 79

9-1. 제품 종류 및 외관 79

9-2. 옵션형 조립 84

9-2-1. 옵션형 조립 순서 85

10. 제품의 보증 88

Page 7: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

5

1. 머리말

저희 NTREX에서는 모바일 플랫폼이라는 제품군으로 과거에 Stella B1과 B2를 출시했고

이제는 Stella B3까지 출시하게 되었습니다.

Stella B3는 기구적 하드웨어적으로는 변화가 거의 없지만, 소프트웨어적으로 많은 업그

레이드가 된 제품입니다. 기본적으로 Open-loop 속도 제어와 Closed-loop 전류/속도/위

치 제어를 할 수 있으며, 제어기의 온도, 전압, 전류, 위치, 속도 등 제어기의 상황을 확

인할 수 있습니다. DC / BLDC 모터 등을 H-bridge의 형태로 스위칭 소자들을 구성하고

각 스위칭 소자를 운용할 때 가장 많이 사용하는 Unipolar와 Bipolar 방식을 사용자가

선택할 수 있으며, 각 스위칭 소자에 인가되는 PWM 신호의 주파수를 18kHz부터 40kHz

까지 사용자가 선택할 수 있습니다.

또한, 사용자의 안전과 모터와 제어기의 안전을 위한 한계치 설정도 할 수 있습니다.

전류/속도/위치 제어기의 PID 게인값도 설정할 수 있으며, Stella B3 모바일 플랫폼을 구

동하는 명령도 지원하고 있습니다. 그뿐만 아니라 본 설명서의 6장을 보시면 아시겠지만,

더 다양한 설정을 사용자가 선택해서 사용하고 확인할 수 있도록 지원하고 있으며, 8장

내용처럼 막강한 Motor Control UI Program을 번들로 제공하고 있습니다 이 때문에

Stella B3를 기존의 제품보다 더 쉽게 제어할 수 있으며, 모바일 플랫폼에 관련된 다양한

연구와 개발 그리고 실험을 진행할 수 있을 것입니다.

지금까지 저희 Stella 시리즈를 지속해서 관심을 가져주시고 선택해 주셔서 감사합니다.

제품에 대한 많은 응용예제와 구동방법 및 기술 대응을 원하시면 ntrexgo.com의 엔티렉

스 연구소 메뉴에 있는 일반 주행로봇 카테고리를 방문하시면 됩니다.

Page 8: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

6

2. 제품 사용 전 유의사항

- 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는 장소에서는 사용하지 마십

시오. 화재나 제품 파손의 원인이 될 수 있습니다.

- 전원이 인가된 상태에서 이동하거나 설치, 접속, 점검 작업을 하지 마십시오. 감전 사

고나 기기 파손의 원인이 될 수 있습니다.

- 반드시 설치나 접속 과정은 본 설명서를 충분히 습득한 전문가에 의해 시행되어야 합

니다. 화재나 감전의 원인이 될 수 있습니다.

- 제품과 제품의 부속품을 임의로 분해, 개조하지 마십시오. 제품의 오작동으로 인해 감

전 사고나 화재가 발생할 수 있습니다.

- 탑재된 모터 제어기의 전원은 반드시 정격 범위 내의 전원을 사용하여 주십시오. 화재

의 원인이 될 수 있습니다.

- 설치 시 케이블을 무리하게 당기거나 구부릴 경우 피복이 벗겨질 수 있으니 유의해

주십시오. 화재의 원인이 될 수 있습니다.

- 모든 선의 연결 또는 제거할 때 전원이 꺼져 있는지 확인하십니다.

- 모터 제어기의 정격 전압 이상의 과도한 전압을 인가하지 마십시오.

- 비정상적으로 전원을 차단하였을 경우, 다시 전원 인가 시 전체적인 설정 상태를 재확

인하시기 바랍니다. 갑작스러운 모터 기동으로 인한 상해의 위험이 있습니다.

- 점검이나 수리는 반드시 저희 엔티렉스 연구소에 문의하여 주십시오. 전문적인 기술자

외에 점검이나 수리는 허용하지 않습니다. 제품의 고장 및 사고의 원인이 될 수 있습니

다.

Page 9: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

7

3. 개요

3-1. Stella B3

Stella는 실내환경에서 각종 주행 알고리즘 개발 및 테스트를 하는데 있어서 활용이 가

능한 이동형 로봇 플랫폼입니다. 다양한 명령어로 인해 사용자의 활용도가 증가하도록

구성되었으며 보다 정확한 주행성능을 확보하였습니다.

Stella B3는 MoonWalker 시리즈의 모터 제어기 기능과 프로토콜을 탑재한 모델로

Clooed-loop 위치/속도/전류 제어와 Open-loop 속도 제어가 가능하며, C언어와 유사한

Script 언어를 가지고 제공하는 함수를 가지고 프로그램 작성 및 실행을 할 수 있습니다.

또한, Motor Control UI Program을 무료로 제공하며, 사용자는 손쉽게 모바일 플랫폼을

제어할 수 있습니다.

3-2. 구성품

[그림 3-1] Stella B3 (모터 제어기 + 충전보드 + 배터리)

Page 10: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

8

3-2-1. Stella B3 모터 제어기

[그림 3-2] Stella B3 모터 제어기

Stella B3는 USB, RS-232(TX, RX, GND), CAN 포트로 구성되어 있습니다. 모터 제어기 안

에는 CP2102 칩이 내장되어 있기 때문에 제어기를 PC에 설치하면 손쉽게 PC와 연결해

서 Serial 통신을 사용할 수 있습니다. 또한, 라인 제어기를 거쳐서 나온 시그널 신호(RS-

232 포트)를 통해 다른 임베디드 장비와 RS-232 통신을 할 수 있습니다.

RJ45 커넥터 타입인 CAN 포트는 Stella B3를 구동할 수 있으며, [그림 3-3]와 [표 3-1]과

같은 핀맵으로 구성되어 있습니다.

[그림 3-3] CAN 포트 (RJ45 커넥터)

[표 3-1] CAN 포트 (RJ45 커넥터) 핀맵

Pin Signal (Description)

1 CAN H (CAN High bus line)

2 CAN L (CAN Low bus line)

3 GND (CAN Ground)

4~6 N.C (No connection)

7 GND (CAN Ground)

8 N.C (No connection)

Page 11: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

9

3-2-2. Stella B3 충전 보드

[그림 3-4] Stella B3 충전 보드

Stella B3는 충전을 위한 보드가 탑재되어 있으며, 이 보드를 이용해서 배터리 충전이

가능합니다. 충전하는 방법은 아래와 같습니다.

- ① STELLA B3의 전원(상판 스위치)을 OFF 시킵니다.

- ② 충전 어댑터의 A/C전원 케이블을 확인합니다. 만약 케이블이 전원 콘센트에 꽂

혀있다면 전원을 콘센트에서 분리합니다.

- ③ 충전 어댑터의 동그란 부분을 위 그림의 충전 단자에 꽂습니다.

- ④ 충전 어댑터의 A/C 전원 케이블을 전원 콘센트에 꽂습니다.

- ⑤ 충전이 시작되면 충전 보드의 붉은색 LED가 점등되며, 충전이 완료되면 충전 보

드의 파란색 LED가 점등되면서 붉은색 LED는 OFF 됩니다.

[그림 3-5] 충전기 및 USB 케이블

Page 12: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

10

3-3. 제원

[표 3-2] Stella B3 제원

배터리 12 V (7A) 연축전지

재 질 알루미늄, 스틸(기둥 봉)

무 게 8.5 Kg

적재용량 7 Kg

속 도 5.2 Km/h (Max)

바퀴둘레 47.25 cm

두 바퀴간의 거리 28.90 cm

모 터 10W DC Motor (감속 14:1)

Encoder CPR 256

3-4. 모터 및 기어 정보

[표 3-3] Gear & Motor Technical Data

Motor

Technical

Data

Rated voltage 12 V

No-load speed 3000 r/min

No-load current 150 mA

Rated speed 2420 r/min

Rated torque 40 mN.m

Output power 10 W

Rated current 1.3 A

Stall torque 1080 mN.n

Stall current 4.4 A

Terminal resistance 4.6 Ω

Terminal inductance 2.067 mH

Torque constant 0.0307 (Nm/A)

B-EMF constant 0.0313 (V rad/sec)

Gear

Motor

Technical

Data

Reduction ratio 1:14

Number of gear trains 2

No-load speed 214 r/min

Rated speed 172 r/min

Rated torque 0.5N.m

Max.permissible load in a short time 3 N.m

Page 13: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

11

4. B3 버전 업그레이드

본 장에서는 기존의 Stella B1과 B2의 펌웨어를 최신 펌웨어인 B3로 업데이트 하는 과

정에 대해서 설명합니다.

※ 참고로 Stella B3 펌웨어의 통신 프로토콜은 Stella B1과 B2와 호환되지 않습니다.

4-1. 펌웨어 업데이트 방법

Stella의 상판 나사를 풀어서 들어내면 아래 그림과 같은 모터 제어기가 보입니다.

[그림 4-1] Stella 시리즈 모터 제어기

USB 케이블로 모터 제어기의 USB Connect와 PC를 연결합니다. 그리고 상판의 전원 버

튼을 눌러 전원을 켠 후, Stella 모터 제어기의 Slide SW를 [왼쪽]으로 밀어놓고 Push

Button (리셋 스위치)을 한 번 눌러 모터 제어기의 Boot Loader가 동작하도록 합니다.

※ Stella 시리즈 모터 제어기에 펌웨어를 다운로드 하기 위해서는 USB 포트로 연결되

어야만 합니다. CAN이나 다른 시리얼 포트로 연결하면 펌웨어를 다운로드 할 수 없습니

다.

그리고 Flash loader Demonstrator를 실행합니다.

※ 다운로드: http://www.st.com/web/en/catalog/tools/PF257525

Page 14: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

12

[그림 4-2]와 같이 Stella가 연결된 UART Port Name과 Baud Rate, Parity 등을 다음과

같이 설정합니다.

[그림 4-2] Flash loader Demonstrator 실행 화면

[Next] 버튼을 몇 번 누르면 [그림 4-3]과 같이 다운로드 할 펌웨어를 선택하라는 내용

이 표시됩니다. 여기서 Download from file의 […] 버튼을 눌러 StellaB3.bin 파일을 선택

합니다.

[그림 4-3] Download to device 화면

Page 15: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

13

[그림 4-4] bin 파일 다운로드 중인 화면

Stella B3 펌웨어 다운로드가 끝나면 제어기의 Slide SW를 다시 [오른쪽]으로 밀어놓고,

Push SW를 한번 눌러 모터 제어기에 다운로드 된 최신 펌웨어가 동작하도록 합니다.

Page 16: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

14

5. 내부 회로 및 제어기 구성

본 장에서는 제어기의 내부 회로 구성에 대해서 설명합니다. 사용자는 본 장의 내용을

숙지하면 제어기의 강력한 기능을 사용하는 데 도움이 될 것입니다.

5-1. 내부 회로 구성

[그림 5-1] Stella B3 Motor Controller 내부 회로 구성

Stella B3 Motor Controller는 두 개의 모터를 구동할 수 있는 Motor Driver Module과

전원과 PWM을 관리하는 Power Stage가 있습니다. Power Stage 단에는 전류를 감지

(Sensing)하기 위한 소자들이 구성되어 전류제어기의 피드백 소스를 제공하고 있고, 방열

판에는 온도 센서를 장착하여 제어기의 과열을 감지하여 알람 혹은 비상 정지용으로 사

용하고 있습니다. 그리고 배터리의 저전압이나 과전압을 감지하기 위한 전압 감지용 소

자도 설치되어 있습니다.

Page 17: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

15

5-2. 제어기 구성

5-2-1. 제어기의 전체 구성

[그림 5-2] 제어기 내부에 설계된 제어기의 전체 구성도

[그림 5-2]에는 제어기에 적용된 내부 제어기 전체 구성도가 나타나 있습니다. 여기서

Position Ref.는 사용자가 입력해야 하는 모터의 회전 각도(혹은 설정에 따라 거리)가 됩

니다. 만약 사용자가 설정을 통해 위치 제어기를 동작시키지 않는다면 사용자는 원하는

속도 명령(Velocity Ref.)을 인가해야 합니다.

또한, 단순히 Open-Loop로 구동하고자 한다면, 설정을 통해 모터의 전압을 직접 조절

하여 구동할 수 있습니다. 단, [그림 5-2]의 구성도에서 나타나 있지는 않지만, Open-

Loop 구동이라도 가감속 구간을 설정할 수 있습니다. 프로파일 생성기(Profile Generator)

는 사용자가 원하는 위치 명령을 받으면 그에 맞는 속도 명령을 생성할 때, 급가감속을

하지 않도록 사다리꼴로 속도 프로파일을 만드는 임무를 수행합니다. 사용자 설정에 따

라 프로파일 생성기를 사용하지 않을 수도 있습니다.

Page 18: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

16

5-2-2. 전류 제어기

[그림 5-3] 제어기 내부에 설계된 전류 제어기

전류 제어기는 모터의 현재 속도(), 모터에 흐르는 현재 전류(), 속도 제어기에서 내

려온 전류 명령( )이 전체 입력으로 인가되며, 동작 주파수 는 = 10입니다.

또한, PI 제어기로 구현되어 있으며, 이때 사용하는 비례 게인은 이고 적분 게인은 입니다.

전류 제어기에는 안티와인드업(Anti-Windup) 제어기가 설계되어 있습니다. 먼저 와인드

업(Windup) 현상은 적분 제어기에 누적된 값이 제어기의 제한 폭을 넘어서 제어입력이

쌓이게 되는 경우를 말합니다. 와인드업 현상이 발생하면 제어기의 입력 부호가 바뀌어

도 누적된 적분 제어기로 인해 실제 모터의 방향이 바뀌지 않는 현상이 생기게 됩니다.

그래서 적분기에 누적된 수치가 제어기 출력의 제한 값에 따라 포화되지 않도록 제한하

는 기능이 필요하며 이것을 안티와인드업 제어기라고 합니다. [그림 5-3]에서 가 안티

와인드업 제어기의 게인입니다.

모터는 회전속도에 비례해서 모터가 발생하는 힘인 토크를 방해하는 요소들이 있습니

다. 이 중에 가장 많은 영향을 미치는 것 중 하나가 역기전력(Back EMF)입니다. 역기전

력은 모터의 회전속도에 비례해서 모터의 토크를 감소하게 만듭니다. 모터가 고속으로

회전하고 있을 때는 이 역기전력에 의한 모터 토크의 감쇠를 보상해 주어야 하는데, 이

를 전류 제어기에서는 전향 보상 이득 (단위: / )를 이용해서 보상하고 있습

니다.

Page 19: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

17

[표 5-1] 전류 제어기에서 사용하는 변수

변수이름 의미 단위 사용자 설정 가능 여부 비례 게인 - 가능 적분 게인 - 가능 안티와인드업 게인 - 불가능, = 역기전력 전향 보상 게인 - 가능 모터에 인가되는 최대 전압 V 가능

[표 5-1]에는 전류 제어기의 내부 변수가 정리되어 있습니다. 특히 사용자가 설정할 수

있는지 아닌지를 명시하고 있습니다. 특히 의 경우는 일반적으로 많이 사용하는 의

역수를 사용하도록 설정되어 있으며, 사용자가 설정할 수는 없습니다.

다음은 간단하게 전류 제어기의 비례, 적분 게인 값을 튜닝하는 방법에 대해 설명합니

다. 먼저 적분 게인 값을 0으로 설정한 후 비례 게인 값을 증가시킵니다. 비례 게인 값

을 통해서 실제 속도가 목표 전류(Reference Current)까지 어느 정도 도달되면 사용자의

환경에 따라 발생하는 편차를 줄이기 위해 적당한(Minimal Amount) 적분 게인 값을 설

정합니다.

사용자는 위와 같은 튜닝을 통해서 테스트를 진행한 후 비례, 적분 게인 값을 찾아 설

정해야 줘야 합니다.

5-2-3. 속도 제어기

[그림 5-4] 제어기 내부에 설계된 속도 제어기

Page 20: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

18

속도 제어기는 속도 모터의 현재 속도(), 위치 제어기에서 내려온 속도 명령()이 입

력으로 인가며, 동작 주파수 는 = 1 입니다. 또한, 전류 제어기와 같이 속도 제

어기도 PI 제어기로 구성되어 있으며, 사용하는 비례 게인은 이고 적분 게인은 입니

다.

속도 제어기에 전류 제어기와 같이 안티와인드업 제어기가 설계되어 있으며, [그림 5-4]

에서 나타난 가 안티와인드업 제어기의 게인입니다.

제어기는 내부적으로 속도 명령( )을 적절한 단위변환을 거쳐 바로 전류 제어기의 전

류 명령( )으로 인가하는 일종의 스케일 팩터(Scale Factor)의 역할을 수행하는 장치

를 두고 있습니다. 사용자의 환경상 속도 제어기를 바이패스 시켜야 할 상황이라면 비례

게인과 적분 게인을 ‘0’로 두고, 속도 명령이 전류 명령 이 되도록 스케일(단위변환을 포

함)만 변경하여 바로 사용할 수 있도록 하고 있습니다.

[표 5-2] 속도 제어기에서 사용하는 변수

변수이름 의미 단위 사용자 설정 가능 여부 비례 게인 - 가능 적분 게인 - 가능 안티와인드업 게인 - 불가능, = 스케일 팩터 - 가능 전류 제어기에 인가되는

최대 전류 A 가능

[표 5-2]에는 제어기에 사용하는 속도 제어기의 내부 변수가 정리되어 있습니다. 특히

사용자가 설정할 수 있는지 아닌지를 명시하고 있습니다. 특히 의 경우는 일반적으로

많이 사용하는 의 역수를 사용하도록 설정되어 있으며, 사용자가 설정할 수는 없습니

다.

다음은 간단하게 속도 제어기의 비례, 적분 게인 값을 튜닝하는 방법에 대해 설명합니

다. 먼저 적분 게인 값을 0으로 설정한 후 비례 게인 값을 증가시킵니다. 비례 게인 값

을 통해서 실제 속도가 목표 속도(Reference Velocity)까지 어느 정도 도달되면 사용자의

환경에 따라 발생하는 편차를 줄이기 위해 적당한(Minimal Amount) 적분 게인 값을 설

정합니다.

사용자는 위와 같은 튜닝을 통해서 테스트를 진행한 후 비례, 적분 게인 값을 찾아 설

정해야 줘야 합니다.

Page 21: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

19

5-2-4. 위치 제어기

[그림 5-5] 제어기 내부에 설계된 위치 제어기

위치 제어기는 모터의 현재 위치( ), 사용자가 지정하는 위치 목표값( )이 입력으로

인가며, 동작 주파수 는 = 100 입니다. 위치 제어기는 PID 제어기로 구성되어

있으며, 사용하는 비례 게인은 이고 적분 게인은 , 미분 게인은 입니다. 위치 제

어기에 전류나 속도 제어기와 같이 안티와인드업 제어기가 설계되어 있으며, [그림 6-5]

에서 나타난 가 안티와인드업 제어기의 게인입니다.

[표 5-3] 위치 제어기에서 사용하는 변수

변수이름 의미 단위 사용자 설정 가능 여부 비례 게인 - 가능 적분 게인 - 가능 미분 게인 - 가능 안티와인드업 게인 - 불가능, = 속도 제어기에 인가되는

최대 속도 RPM 가능

다음은 간단하게 위치 제어기의 비례, 적분, 미분 게인 값을 튜닝하는 방법에 대해 설

명합니다. 먼저 적분 게인 값을 0으로 설정한 후 모터의 오버 슈트(Overshoots) 및 진동

(Oscillates)이 발생할 때까지 비례 게인 값을 증가시킵니다. 그리고 더 이상의 오버 슈트

가 발생하지 않으면 미분 게인 값을 설정하고 마지막으로 편차를 줄이기 위한 적당한

(Minimal Amount) 적분 게인 값을 설정합니다. 만약 오버 슈트가 계속 지속된다면 비례

게인 값을 감소시켜야 합니다.

사용자는 위와 같은 튜닝을 통해서 테스트를 진행한 후 비례, 적분 게인 값을 찾아 설

정해야 줘야 합니다.

Page 22: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

20

5-2-5. 프로파일 생성기

[그림 5-2]의 프로파일 생성기(Profile Generator)는 기본적으로 모터나 모터가 연결된

전체 시스템에 급격한 충격을 방지하기 위해 급가감속을 줄이는 역할을 수행합니다. 제

어기는 속도에 대해 사다리꼴의 프로파일을 생성하며, 사용자는 프로파일 생성 기능 자

체의 사용 여부를 선택할 수 있습니다.

제어기의 프로파일 생성기는 속도 제어기와 같은 동작 주파수를 가집니다. 또한, 사용

자가 지정한 위치 명령( ), 위치 제어기가 생성한 속도 명령( ), 현재의 위치값( )과

위치값을 차분한 현재의 속도값( )을 입력으로 가집니다. 여기서 위치 제어기가 생성한

속도 명령과 프로파일 생성기가 생성하는 속도 제어기에 인가할 속도 명령의 구분을 위

해 위치 제어기가 생성한 속도 명령을 다시 로 합니다.

[그림 5-6] 기본적인 사다리꼴 프로파일

사용자는 최대 허용 속도( )와 가속 구간의 기울기( ), 감속 구간의 기울기( )를

설정하여 사다리꼴 가감속 프로파일을 설정할 수 있도록 하고 있습니다. 만약 위치 제어

기를 사용하지 않고 속도 제어기를 동작시켜서 속도 명령을 사용자가 인가하는 경우라

면, 현재 속도 대비 높은 속도를 인가하면 가속 구간이, 낮은 속도를 인가하면 감속 구

간이 적용됩니다. 또한, 사용자가 설정한 최대 허용 속도( ) 보다 높은 속도를 인가

하면 제어기는 설정된 최대 허용 속도( )로만 동작을 하므로, 사용자는 사용하는 모

터와 환경에 따라 최대 허용 속도()를 잘 설정해야 합니다.

Page 23: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

21

6. 명령어 구조와 종류

본 장에서는 제어기가 가지는 명령어의 구조와 종류 및 사용법과 기능 전체에 대해 설

명합니다. 본 장을 숙지하시면 제어기의 강력한 기능을 사용하는 데 도움이 될 것입니다.

하지만 이 장을 모두 숙지하기 어렵다면, 이후의 장들에서 필요로 하는 부분만 발췌해서

읽으면 됩니다. 만약 사용자가 Serial 통신을 통해 속도제어를 하고자 한다면 해당 내용

을 읽은 다음 필요한 명령어만 본 장에서 읽으시면 됩니다. 또한, 뒷 장에서 소개할

Motor Control UI Program을 사용하면 본 장의 내용을 먼저 익힐 필요는 없습니다.

기본적으로 저희 제어기의 설정을 변경하고 모터를 구동하면서, 모터와 제어기의 현 상

태를 읽는 과정을 Serial과 CAN 통신을 통해 사용자가 직접 수행하고자 한다면 기본적

으로 필요한 내용이 됩니다. 또한, 이후 장에서 필요한 부분이나 전체 명령을 참조하는

장이 되기도 합니다.

6-1. 용어의 정의

[표 6-1] 사용되는 명령어의 공통 용어

용 어 내 용

index 변수의 참조 색인

sub-index 변수의 참조 부색인

short name index와 호환되는 변수의 짧은 이름

long name index와 호환되는 변수의 전체 이름

int8 [variable type] 부호를 가지는 8 bit 정수형

int16 [variable type] 부호를 가지는 16 bit 정수형

int32 [variable type] 부호를 가지는 32 bit 정수형

float [variable type] 부호를 가지는 32 bit 실수형

RO [access] 액세스 권한 중 읽기 전용 (read only)

WO [access] 액세스 권한 중 쓰기 전용 (write only)

RW [access] 액세스 권한 중 읽고 쓰기 가능

기본적으로 사용되는 공통 혹은 자주 사용되는 용어를 [표 6-1]에서 정의합니다. 제어기

동작을 명령하거나 제어기의 특성을 설정하는 것은 내부의 해당 변수에 특정한 값을 쓰

는 것을 의미하며, 제어기의 상태를 읽어오는 것은 제어기 내부의 해당 변수의 값을 읽

어오는 것을 의미합니다. 이후 설명서에서 명령한다는 말은 곧 구동에 관련된 변수에 특

정한 값을 쓰는 행동이 됩니다.

Page 24: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

22

[표 6-1]에서 사용되는 용어 중 index, short name, long name은 변수를 지정하는 방식

의 차이입니다. 제품에 인가된 주 전원의 전압을 체크하는 변수의 내용을 읽고자 할 때,

만약 Serial(RS-232/USB) text 기반으로 통신하는 경우는 해당 명령의 short name인 bv나

long name인 battery_voltage를 사용하면 되고, CAN 패킷이나 Serial binary 패킷 통신을

사용하는 경우는 해당 변수의 index인 8을 사용하면 됩니다.

또한, sub-index는 통상 모터의 채널 수를 의미합니다. 채널 1에 연결된 모터에 대한 명

령이나 설정이라면 1을, 채널 2에 연결된 모터의 경우는 sub-index를 2를 사용하면 됩니

다. 연결된 모터가 아니라 제어기 자체에 대한 것이라면 통상 sub-index는 0이 됩니다.

또한, sub-index는 상황에 따라 연결된 외부 IO의 번호가 되기도 합니다.

6-2. 통신의 기본 명령 구조

제어기의 특성을 엑세스 하고 명령을 내리거나 상태를 읽기 위해서 제어기에 존재하는

여러 변수들을 시리얼 통신(CAN, RS-232, USB)으로 엑세스 하게 됩니다. 여기서는 제어

기에 존재하는 변수들을 엑세스 하기위한 요소들에 대하여 설명합니다.

6-2-2. CAN 통신의 기본 명령 구조

6-2-2-1. CAN 통신을 하기 위한 패킷의 기본 구조

[표 6-2]는 CAN 통신의 기본 패킷의 구조가 나타나 있습니다. 기본적으로 8byte 단위

의 패킷으로 통신하며, 1byte의 command와 2byte의 index, 1byte의 sub-index와 나머지

는 상황에 맞는 value로 구성되어 있습니다. 상황에 따라 5~8byte 지점의 값은 존재할

수도 있고 아닐 수도 있습니다. 만약 5byte 지점까지만 변수가 존재한다면 5byte까지의

내용만 전송하면 됩니다. 여기서 command는 액세스 형식(access code)과 변수 형식

(variable type)의 조합으로 1byte를 구성하며 내용은 아래의 [표 6-3]에 나타나 있습니다.

[표 6-2] CAN 통신을 하기 위한 패킷의 기본구조

1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte

command index sub-index value

[표 6-3] 액세스 형식(access code)과 변수 형식(variable type)

Page 25: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

23

구분 코드 내용

Access Code

0x10 index로 지정된 주소에 값을 쓰기 요청

0x20 쓰기 요청에 대한 응답

0x30 index로 지정된 주소에서 값을 읽기 요청

0x40 읽기 요청에 대한 응답

0x80 읽기/쓰기 요청에 대한 에러 응답

Variable Type

0x00 8 bit signed integer

0x04 16 bit signed integer

0x08 32 bit signed integer

0x0C 32 bit float type (IEEE Standard 754 floating-point)

6-2-2-2. 변수 내용 읽어오기

1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte

command index sub-index

CAN 통신을 통해 변수의 내용을 읽을 때, [표 6-3]의 access code 0x30과 읽고자 하는

변수의 형(variable type)을 조합해서 command를 먼저 구성해야 합니다. 읽고자 하는 변

수의 형이 16비트 integer형이라면 command에는 0x34를 사용합니다.

6-2-2-3. 변수 내용 쓰기 - 명령 인가하기

1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte

command index sub-index

value(int8)

value(int16)

value(int32)

value(float)

변수에 내용을 쓰는 동작, 즉 설정 값 변경 등의 명령을 인가하는 동작은 변수 내용 읽

어오기 동작과 4byte 지점의 sub-index까지는 위 표처럼 동일합니다. 단 command는

[표 6-3]의 access code에 의해 0x10과 변수형에 맞는 조합으로 작성되어야 하며, 그 형

에 맞춰 5byte 지점 이후의 데이터가 만들어집니다.

6-2-2-4. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우)

1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte

Page 26: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

24

command index sub-index

value(int8)

value(int16)

value(int32)

value(float)

변수의 내용을 읽어 오거나, 쓰기 동작에 대한 응답 형식은 변수 내용을 쓰기 형식과

같은 형식으로 돌아옵니다. 단, command는 [표 6-3]의 access code에 제시된 것처럼

0x20이나 0x40중 하나와 변수형에 맞는 조합으로 작성되어 돌아옵니다.

6-2-2-5. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우)

1 byte 2 byte 3 byte 4 byte 5 byte 6 byte 7 byte 8 byte

command error code

[표 6-4] 변수 내용 읽기/쓰기 동작에서 발생하는 오류 메시지

Error Code Error Message 내 용

1 undefined index index나 sub-index로 지정한 변수가 존재하지 않음

2 packet format error 패킷의 구성이 잘못 되었음

3 variable access error 읽기 전용 변수에 쓰거나, 쓰기 전용 변수의 읽기

시도함

변수의 내용을 읽거나 쓰기 위해 제어기에 명령을 인가했을 때, 오류가 발생하는 경우

는 위 표의 형식으로 오류 메시지를 전달합니다. 오류 메시지는 [표 6-4]에 나타나 있는

것과 같습니다. 단, CAN 통신에서는 메시지 내용은 전달되지 않으며, error code만 반환

됩니다. 그리고 command는 0x80이 반환됩니다. 본 절의 오류 메시지는 메시지의 전송

에 관련된 오류로 제품의 Fault 상황이나 오작동에 대한 부분이 아닙니다.

6-2-3. Serial binary 패킷 통신의 기본 명령 구조

6-2-3-1. Binary 패킷 통신의 기본 구조

Serial 통신은 text 기반과 함께 binary 기반의 패킷으로 구성된 통신을 함께 지원합니

다. Binary 패킷 통신의 기본적인 메시지는 CAN 통신에서 송수신 되는 패킷의 구조를

가지고 있습니다. 단 CAN 통신에서는 변수의 type에 따라 패킷의 길이가 바뀌지만,

binary 패킷 구조에서는 메시지의 내부 변수의 최대 길이를 4byte로 고정하고 전체 길이

Page 27: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

25

를 13byte로 고정합니다.

[표 6-5] Serial binary 통신을 하기 위한 패킷의 기본구조

1byte 2byte 3byte 4~11byte 12byte 13byte

STX

(0x02)

Length

(=13)

device

ID message checksum

ETX

(0x03)

[표 6-5]는 binary 패킷 전송이 이뤄지며, 처음과 끝의 STX, ETX의 시작과 끝을 의미하

는 문자로 구성됩니다. 4~11byte를 구성하는 message의 길이를 2byte의 length로 잡고,

checksum은 3byte의 device ID부터 message의 끝인 11byte까지를 합산한 것입니다.

4~11byte 영역을 가지는 message는 CAN 통신의 데이터 패킷과 같은 구조를 가집니다.

단 CAN은 상황에 따라 8byte의 메시지 크기를 채우지 않아도 되지만, Serial binary 패킷

통신에서는 4~11byte를 구성하는 8byte의 크기를 모두 채워야 합니다. 만약 메시지의

전체 크기가 8byte가 되지 않는다면, 8byte가 될 때까지 아무 데이터나 채워서 전송하면

됩니다.

6-2-3-2. 변수 내용 읽어오기

4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 byte 11 byte

command index sub-index

[표 6-5] 기본 구조의 4~11byte에 위치하는 message를 CAN 통신처럼 위와 같이 구성

하면 됩니다. command는 [표 6-3]의 access code 0x30과 읽고자 하는 변수의 형

(variable type)을 조합해서 command를 먼저 구성해야 합니다.

6-2-3-3. 변수 내용 쓰기 - 명령 인가하기

4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 byte 11 byte

command index sub-index

value(int8)

value(int16)

value(int32)

value(float)

변수에 내용을 쓰는 동작, 즉 설정 값 변경 등의 명령을 인가하는 동작은 변수 내용 읽

어오기 동작과 4~7byte 지점의 sub-index까지는 위 표처럼 같습니다. 단 command는

[표 6-3]의 access code에 의해 0x10과 변수형에 맞는 조합으로 작성되어야 하며, 그 형

에 맞춰 5byte 지점 이후의 데이터가 만들어집니다.

Page 28: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

26

6-2-3-4. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우)

4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 byte 11 byte

command index sub-index

value(int8)

value(int16)

value(int32)

value(float)

변수의 내용을 읽어 오거나, 쓰기 동작에 대한 응답 형식은 변수 내용을 쓰기 형식과

같은 형식으로 돌아옵니다. 단, command는 [표 6-3]의 access code에 제시된 것처럼

0x20이나 0x40중 하나와 변수형에 맞는 조합으로 작성되어 돌아옵니다.

6-2-3-5. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우)

4 byte 5 byte 6 byte 7 byte 8 byte 9 byte 10 byte 11 byte

command error code

변수의 내용을 읽거나 쓰기 위해 제어기에 명령을 인가했을 때, 오류가 발생하는 경우

는 위 표의 형식으로 오류 메시지를 전달합니다. 단, binary 패킷 구조에서는 메시지 내

용은 전달되지 않으며, error code만 반환됩니다. 그리고 command는 0x80이 반환됩니다.

본 절의 오류 메시지는 메시지의 전송에 관련된 오류로 제품의 Fault 상황이나 오작동에

대한 부분이 아닙니다.

6-2-4. Serial(RS-232/USB) text 패킷 통신의 기본 명령 구조

Serial 통신에서는 하이퍼 터미널이나 사용자가 외부에서 RS-232를 통해 텍스트(text)기

반으로 제어기에 쉽게 액세스 가능하도록 명령을 지원하고 있습니다. Serial text 기반 통

신에서는 [표 6-1]의 short name이나 long name과 sub-index를 사용합니다.

6-2-4-1. 변수 내용 읽어오기

short/long name sub-index CR/LF

Short/long name은 변수의 색인이며, sub-index는 해당 명령에 따라 필요하면 모터 채

널 혹은 외부 IO를 의미합니다. Sub-Index는 또한 해당 값이 0인 경우 생략 가능합니다.

Page 29: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

27

CR/LF는 Carriage Return/Line Feed의 약자로 ASCII 코드상 각각 0x0D, 0x0A입니다. 일

반적으로는 키보드의 Enter 키에 해당하며 하이퍼터미널 등으로 PC에서 연결했다면 명

령 입력 후 Enter 키를 입력하는 것입니다. (이후 CR/LF를 기호로 대체)

만약 채널 1에 연결된 모터에 현재 인가된 모터의 전압을 알고자 할 때는 이후 절에서

언급하겠지만, short name은 vtc로 sub-index는 채널 1로 다음 아래와 같이 입력하면 채

널 1에 연결된 모터에 인가된 현재 모터의 전압을 알 수 있습니다.

ex) vtc1

6-2-4-2. 변수 내용 쓰기 - 명령 인가 하기

short/long name sub-index = value CR/LF

Short/long name은 변수의 색인이며, sub-index는 해당 명령에 따라 필요하면 모터 채

널 혹은 외부 IO를 의미합니다. Sub-Index는 또한 해당 값이 0인 경우 생략 가능합니다.

변수에 값을 쓰는 행위는 다음과 같은 구문을 따릅니다.

변수=값 만약 제어기 채널 1에 연결된 모터를 10V 전압으로 구동시키고자 할 때 아래와 같이

명령을 인가하면 됩니다.

ex) vtc1=10 그리고 본 제어기의 가장 큰 장점 중의 하나는 2축 구동형 모바일 로봇에 특화된 명령

을 가지고 있습니다. 그래서 특별히 두 채널의 변수를 동시에 설정 혹은 구동하는 명령

을 가지고 있습니다. 해당 명령인 m_position_command, m_velocity_command,

m_current_command, m_velocity_command, m_lav_command에 대한 설명은 뒷 절에서

확인바랍니다. 특화된 명령을 인가하는 방법은 다음과 같은 형식을 가집니다. 여기서

value1은 1번 채널을, value2는 2번 채널을 의미합니다.

short/long name sub-index = value1 , Value2 CR/LF

만약 두 모터에 위치 명령을 인가하는 mpc라는 변수를 통해 동시에 명령을 내리고자

할 때 다음과 같이 인가하면 됩니다.

Page 30: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

28

ex1) mpc=100,100 ex2) m_position_command=1000,2000

6-2-4-3. 변수 내용 읽기/쓰기 요청에 대한 응답 (성공한 경우)

지금까지 Serial 통신을 통해 변수의 내용을 읽어오기 위한 내용에 대해 설명했습니다.

본 장은 사용자가 통신을 통해 변수의 내용을 요청한 후 해당 내용의 전송이 성공했을

경우, 제어기가 응답하는 형식에 대해 설명합니다. 다음과 같은 형태로 제어기가 응답합

니다.

short/long name sub-index = value CR/LF

사용자가 short/long name 형식 중 하나로 질의를 하면, 같은 형식으로 대답합니다. 또

한, 문장의 답변하는 문장의 끝에 CR 문자와 LF 문자가 같이 붙어서 전송됩니다. 그뿐만

아니라 두 채널을 동시에 다루는 경우 변수의 내용을 읽는 요청에 대해 다음과 같이 응

답합니다.

short/long name sub-index = value1 , Value2 CR/LF

본 제어기는 사용자가 쓴 값이 적용되지 않을 수 있기 때문에 사용자의 변수 내용을

읽는 요청뿐만 아니라, 변수에 쓰기 동작, 즉 명령을 내려도 해당 변수의 내용을 전송합

니다.

6-2-4-4. 변수 내용 읽기/쓰기 요청에 대한 오류 (실패한 경우)

변수의 내용을 읽거나 쓰기 위해 제어기에 명령을 인가했을 때, 오류가 발생하는 경우

다음과 같은 형식으로 오류 메시지를 전달되며, 오류 메시지는 [표 6-4]에 나타나 있는

것과 같습니다. 이때 메시지의 전송에 관련된 오류로 제품의 Fault 상황이나 오작동에 대

한 부분이 아닙니다.

! error code , error message CR/LF

Page 31: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

29

6-3. 상태 확인 및 구동 명령

본 절부터는 제어기가 가지고 있는 변수들을 위주로 제어기의 동작과 기능에 대해서

설명하겠습니다.

설명서는 이후 설명의 편의를 위해 표의 항목을 아래와 같은 기준으로 작성하며 모든

변수를 본문에서 언급할 때는 short name을 기준으로 작성합니다.

- short name (long name) = short (long)

- index (sub-index) = i (s)

- data type = type

6-3-1. 내부 상태를 확인

제어기의 제품명과 소프트웨어 버전 하드웨어 버전 확인 변수와 배터리 등의 주 전원

으로부터 유입되는 전압 / 전류를 확인하는 변수 그리고 모터 제어기의 구동 상태 및

외부 IO와의 연결 상태를 확인하는 변수를 알아보겠습니다.

[표 6-6] 제어기의 ID 및 버전 확인을 위한 변수

short (long) i (s) type 내 용

vid

(vendor_id)

1

(0) int32 제품 공급자 ID (Read only)

pid

(product_id)

2

(0) int32

제품 ID (Read only)

101 : 소형 1축 DC모터 드라이버 (30V, 3A)

102 : 소형 2축 DC모터 드라이버 (30V, 3A)

201 : 중형 1축 DC모터 드라이버 (30V, 10A)

202 : 중형 2축 DC모터 드라이버 (30V, 10A)

301 : 대형 1축 DC모터 드라이버 (50V, 80A)

302 : 대형 2축 DC모터 드라이버 (50V, 40A)

swv

(software_versio)

3

(0) float 제어기 펌웨어 버전 (Read only)

fwv

(hardware_version)

4

(0) float 제어기 하드웨어 버전 (Read only)

Page 32: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

30

[표 6-7] 제어기의 상태를 확인하기 위한 변수

short (long) i (s) type 내 용

bv

(battery_voltage)

8

(0) float 주 전원에서 공급되는 전압

bc

(battery_current)

9

(0) float 주 전원에서 제어기로 흐르는 전류

nm

(num_motors)

80

(0) int8 제어기에 연결 가능한 모터의 수를 확인

s

(status)

102

(0~2) int32 제어기의 현재 상태

f

(fault)

103

(0~2) int32 저이기 및 관련 IO에서 발생한 Fault 상태

[표 6-7]에서 주 전원으로부터 공급되어 흐르는 전류를 측정하는 변수인 bc의 경우는

주 전원의 공급 단에서 직접 측정하는 것이 아니라 소비되는 전력과 각 모터에 실제 흐

르는 전류의 합으로 측정합니다. 이 때문에 파워서플라이 등을 전원 공급장치로 사용할

때, 파워서플라이에서 표기되는 전류와 차이가 있을 수 있습니다. 모터의 현재 상태를

저장하는 변수 s의 저장 값은 [표 6-8]에 나타나 있습니다. 사용자가 모터 드라이버의 현

상태를 질의하면 변수 s에 [표 6-8]의 반환 값이 저장됩니다.

[표 6-8] 상태 확인 변수 s의 반환 값과 그 내용

반환된

값 내 용

0x0001 모터에 전원이 공급되고 있는 상황(H bridge에 PWM 펄스가 출력되어 FET가

구동됨)이고 구동 명령을 받아들일 준비가 된 상태

0x0002 모터가 회전 중인 상태

0x0004 제어기에 오류가 발생했으며, 그로 인해 모터에 공급되는 전원을 차단한 상태

0x0008 Digital Input에서 비상 정지 버튼이 눌림 상태

0x0010 위치 제어기 동작 중인 상태 (속도, 전류 제어기와 함께 동작)

0x0020 속도 제어기 동작 중인 상태 (전류 제어기와 함께 동작)

0x0040 전류 제어기 동작 중인 상태

0x0100 모터가 구동 가능한 상태가 되면서 Analog Input 값이 중앙(0)에 있지 않은

상태

0x0200 모터가 구동 가능한 상태가 되면서 Pulse Input 값이 중앙(0)에 있지 않은 상

Page 33: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

31

0x0400 Analog Input 값이 최대, 최소값의 범위를 벗어났거나 적절한 값이 아닌 상태

0x0800 Pulse Input 값이 최대, 최소값의 범위를 벗어났거나 적절한 값이 아닌 상태

0x1000 Digital Input에서 Deceleration Stop이나 Quick stop 명령이 실행된 상태

0x2000 Position 센서의 입력값이 Limit를 벗어난 상태

0x4000 RS-232, USB, CAN을 통해 모터 구동 명령이 내려진 상태 (250ms 동안 ON)

0x8000 Analog나 Pulse Input 단자로부터 모터 구동 명령이 실행 상태 (250ms 동안

ON)

0x10000 스크립트(Script)가 실행 중인 상태

0x0004과 0x0008 등의 상황이 발생하면 모터에 전원 공급을 차단합니다. 0x0100,

0x0200, 0x0400, 0x0800 등의 상황에서는 해당 포트의 명령을 무시합니다. 그리고

0x1000 상황에서 모터는 정지 상태가 되며, 0x2000 상황에서 모터는 벗어난 방향으로만

정지 상태가 됩니다. 사용자는 위 상황에서 에러 등의 오작동 원인을 제거하고 다시 모

터의 구동을 시작해야 합니다.

특히 [표 6-8]의 상태를 저장하는 s변수에서 반환된 값이 0x0004인 경우 모터 제어기의

상황이 Fault 상황입니다. 이 경우는 별도로 사용자는 [표 7-6]의 f(fault) 변수를 확인하

여야 합니다. 해당 상황은 [표 7-8]에 정리되어 있습니다.

[표 6-9] 제어기의 Fault 상태 확인 변수 f의 반환 값과 그 내용

반환된 값 내 용

0x0001 모터에 흐르는 전류가 설정된 최대값(overcurrent_limit)을 초과 상태

0x0002 제어기에 공급되는 전압이 설정된 최대값(overvoltage_limit)을 초과 상태

0x0004 제어기에 공급되는 전압이 설정된 최소값(undervoltage_limit) 이하 상태

0x0008 내부 스위칭 소자(FET)나 방열판의 온도가 최대 한계 온도(overheat_limit)

이상 상태

0x0010 모터의 +,- 단자가 단락되거나 내부 스위칭 소자(FET)가 잘못된 조합으로

운용

0x0020 지정된 PWM duty 이상에서 모터가 회전하지 않는 경우로 Stall 상황으로

판단 상태

0x0040 속도 제어 모드에서 속도 오차가 지정된 값 이상이어서 속도 제어에 문제

가 있는 것으로 판단 상태

0x0080 위치 제어 모드에서 위치 오차가 지정된 값 이상이어서 위치 제어에 문제

가 있는 것으로 판단 상태

Page 34: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

32

6-3-2. 모터 제어기의 환경적 상태 확인

본 절에서 다루는 내용은 모터 제어기의 동작과 관련된 환경적 상태를 확인하는 변수

입니다. 온도, 전압, 전류, 위치, 속도 등의 상황을 확인하는 변수들을 [표 6-10]과 같습니

다.

[표 6-10] 모터의 환경적 상태 확인 변수

6-3-3. 구동에 관련된 명령

[표 6-11] 설정 변수 구동에 관한 시스템 명령

short (long) i (s) type 내 용

sco

(system_command)

7

(0) int16

제어기에 내려지는 명령:

1 - Save properties in Flash Memory

2 - Load properties from Flash Memory

3 - Save Script’s Byte codes in Flash Memory

8 - Script Run

9 - Script Stop

98 - Reset to Factory Default

99 - Reset Controller

short (long) i (s) type 내 용

tp

(temperature)

121

(0~2) float Power stage에 장착된 Heat sink의 온도 (단위: °C)

vt

(voltage)

122

(0~2) float 모터에 공급되고 있는 전압 (단위: V)

c

(current)

123

(0~2) float 모터에 흐르고 있는 전류 (단위: A)

v

(velocity)

124

(0~2) float 모터의 현재 회전속도 (단위: RPM)

p

(position)

125

(0~2) int32 모터의 현재 엔코더 펄스 (단위: Pulse)

pt

(ai_potentiometer)

131

(0~2) int32

Analog Input 포트에 연결된 위치 센서의 피드백

값 (단위: ‰)

ta

(ai_tachometer)

132

(0~2) int32

Analog Input 포트에 연결된 속도 센서의 피드백

값 (단위: ‰)

Page 35: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

33

사용자가 설정 값을 변경하는 경우 전원이 인가된 동안 설정 값은 내부 RAM에 기록되

어 있습니다. 그 후 제어기의 전원을 재 시작하면 다시 기존의 Flash Memory에 저장되

었던 설정 값들이 RAM으로 로드되므로 재 시작 전에 설정한 값은 사라집니다. 그러므

로 전원이 인가된 동안 테스트 설정을 전원 재 시작 후에도 사용하고 싶다면 [표 6-11]

의 sco 명령을 통해 RAM에 있는 각종 설정을 제어기 내부의 Flash Memory에 저장해야

합니다.

[표 6-12] 모터 구동에 관련된 명령

short (long) i (s) type 내 용

co

(command)

101

(0~2) int16

모터에 전원공급과 모터의 Fault 상황 해제:

0 - Motor Power OFF

1 - Motor Power ON

2 - Clear Fault situation

6 - Deceleration Stop

7 - Quick Stop

pc

(position_command)

111

(0~2) int32

모터의 위치 추종 명령 (단위: Pulse)

위치 명령시 연결된 모터는 위치제어 상태가 됨

vc

(velocity_command)

112

(0~2) float

모터의 속도 추종 명령 (단위: RPM)

속도 명령시 연결된 모터는 속도제어 상태가 됨

cc

(current_command)

113

(0~2) float 모터의 전류 추종 명령 (단위: A)

vtc

(voltage_command)

114

(0~2) float 모터의 전압 추종 명령 (단위: V)

[표 6-12]에는 모터의 전원공급과 Fault 상황을 Clear하는 명령을 내리는 변수 co가 있

습니다. 0 - Motor Power OFF는 모터로 공급되는 전원을 차단하는 기능이고 1 - Motor

Power ON은 모터로 전원을 공급하는 기능입니다. 그리고 2 - Clear Fault Flags는 모든

Fault 플래그를 Clear하는 기능입니다. 또한, 6 - Deceleration Stop는 천천히 속도가 감소

되면서 정지하는 기능이며, 7 - Quick Stop은 급정지하는 기능입니다.

이후 절에서 설명하는 각종 제어 게인(Gain) 등과 설정을 바르게 입력하고 난 후, 속도

제어(vc), 위치제어(pc), 전류제어(cc) 명령을 인가하면 모터 제어기는 그 상황에 맞춰 모

터를 제어하게 됩니다.

Page 36: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

34

6-4. 내부 설정 변경

6-4-1. 제어기의 파워 스테이지 스위칭 소자의 구동에 관련된 설정

[표 6-13]의 내용은 제어기의 파워 스테이지 스위칭 소자의 운용에 관한 설정입니다.

DC / BLDC 모터 등을 H-bridge의 형태로 스위칭 소자들을 구성하고 각 스위칭 소자를

운용할 때 가장 많이 사용하는 Unipolar와 Bipolar 방식을 사용자가 선택할 수 있도록

지원하고, 각 스위칭 소자에 인가되는 PWM 신호의 주파수를 18kHz부터 40kHz까지 사

용자가 선택할 수 있도록 지원하고 있습니다.

일반적으로 Bipolar 구동은 저속에서의 속도 제어 특성이 좋지만, 모터의 인덕턴스가 낮

은 경우 대기 소모 전력이 높으며 모터 발열을 일으킬 수 있습니다. 이런 경우에는

PWM 주파수를 높이거나, 스위칭 방법을 Unipolar 방식으로 바꾸어 해결할 수 있습니다.

[표 6-13] 제어기의 파워 스테이지 스위칭 소자의 구동에 관련된 설정

short (long) i (s) type 내 용

ps

(pwm_switching)

31

(0) int8

제어기 내부의 스위칭 소자의 구동 방법 선택:

0 - unipolar

1 - bipolar

※ 제어기를 재 시작한 후 적용

pf

(pwm_frequency)

32

(0) int8

제어기 내부의 스위칭 소자에 인가되는 PWM 신

호의 주파수 선택 (제어기를 재 시작 한 후 적용):

0 - 18kHz

1 - 20kHz

2 - 24kHz

3 - 30kHz

4 - 36kHz

5 - 40kHz

※ 제어기를 재 시작한 후 적용

6-4-2. 통신에 관련된 설정

[표 6-14]는 Serial(RS-232/USB)과 CAN의 통신 속도나 장치의 ID 및 watchdog timer를

설정하는 내용을 다루고 있습니다. CAN 통신이나 Serial binary 패킷 방식의 경우 장치의

ID를 설정하는 것과 CAN 및 Serial 통신의 속도를 설정하는 내용을 포함하고 있습니다.

Page 37: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

35

[표 6-14] 통신에 관련된 설정

short (long) i (s) type 내 용

id

(device_id)

11

(0) int32

CAN, Serial(RS-232/USB) binary 패킷 통신에서 사

용하는 장치 ID;

※ 제어기를 재 시작한 후 적용

cb

(can_br)

12

(0) int32

CAN 통신 속도 설정;

10, 25, 50, 125, 250, 500, 800, 1000 kBPS 중 선택;

입력 시에는 단위 생략;

※ 제어기를 재 시작한 후 적용

sb

(serial_bps)

13

(1~2) int32

Serial 통신의 속도를 설정하는 변수:

sub-index 1 - USB 가상 시리얼 포트

sub-index 2 - RS-232

9600, 19200, 38400, 57600, 115200, 230400,

460800, 921600 BPS 중 선택;

입력 시에는 단위 생략;

※ 제어기를 재 시작한 후 적용

sw

(serial_watchdog)

14

(0) int32

통신을 통해 인가된 명령어 패킷에 대한

Watchdog Timeout 값 (단위 - ms):

0 - disable,

1 - timeout check

id, cd, sb 명령을 사용하면 sco 명령 실행한 후 시스템을 재 시작해야지만 변경된 값이

제어기에 반영됩니다.

sw 명령은 제어기를 유/무선의 다양한 방법으로 다른 장치와 연결해서 사용할 때 실제

로 사용자와 제품과의 통신 연결이 끊어졌을 때를 대비하여 Watchdog Timer 값을 설정

해 주는 명령입니다. 만약 설정된 시간 동안 구동 명령이 인가되지 않으면 통신 연결이

의도하지 않게 해제된 것으로 간주하고 모터를 정지 시킵니다. 이 명령을 활성화하고 시

간 간격을 설정하면 사용자는 활용하는 시스템의 안전성 유지에 도움이 됩니다.

※ 만약 통신 연결 속도의 설정을 사용자가 실수로 진행한 경우 그래서 사용자가 의도

한 외부 장비와의 접속할 수 없는 경우 Motor Control UI Program과도 연결이 안 될

수 있습니다. 이 경우 리셋 버튼을 이용하여 공장 초기화를 하드웨어적으로 수행해야 합

니다. 리셋 작업을 수행하면 사용자가 설정한 각종 설정도 함께 초기화가 되므로 주의해

야 합니다.

Page 38: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

36

6-4-3. 위치 센서에 대한 설정

위치 제어할 때 최소 / 최대 위치를 설정할 수 있으며, 이 설정은 소프트웨어적인 한계

치(Limit) 설정의 효과를 볼 수 있습니다.

[표 6-15] 위치 센서에 대한 설정

short (long) i (s) type 내 용

np

(min_position)

141

(0~2) int32

위치 제어 시 최소 위치;

use_soft_limit 설정 시 소프트 리미트로도 작동

(단위: Pulse, Range: 0 ~ 음수)

xp

(max_position)

142

(0~2) int32

위치 제어 시 최대 위치;

use_soft_limit 설정 시 소프트 리미트로도 작동

(단위: Pulse, Range: 0 ~ 양수)

ep

(encoder_ppr)

144

(0~2) int16 모터 1회전당 엔코더 펄스 수 (단위: pulse/rev)

usl

(use_soft_limit)

146

(0~2) int8

Encoder나 Potentiometer 값이 Min/Max Position

범위를 벗어나면 Forward/Reverse Limit Switch를

작동한 효과를 냄

6-4-4. 모터 구동 환경에 대한 설정

[표 6-16]에는 모터의 허용 전류 / 전압 및 최대 회전 속도를 설정하는 변수를 다룹니

다. 특히, 가감속 프로파일을 사용할 경우 가속 / 감속도를 설정하는 내용도 포함됩니다.

가속 / 감속도를 지정하는 ac, dc 변수는 5-2-5절의 프로파일 생성기에서 다룬 내용으로

가속 구간의 기울기()가 ac, 감속 구간의 기울기()가 dc 변수입니다.

[표 6-16] 모터 구동 환경에 대한 설정

short (long) i (s) type 내 용

xc

(max_current)

151

(0~2) float

모터의 최대 전류를 설정 (단위: A)

전류 제어기가 설정값 이상 초과하지 않도록 제어

xvt

(max_voltage)

152

(0~2) float

모터의 최대 전압 설정 (단위: V)

모터에 설정한 전압값 이상 걸리지 않도록 제어

xv

(max_velocity)

153

(0~2) float

모터의 최대 회전 속도 설정 (단위: RPM)

속도 제어기가 설정값을 초과하지 않도록 제어함

Page 39: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

37

ac

(acceleration)

154

(0~2) float

모터의 회전 가속도 설정 (단위: RPM)

위치, 속도 제어 기능에서 profile_mode가 1일 때

적용

dc

(deceleration)

155

(0~2) float

모터의 회전 감속도 설정 (단위: RPM)

양의 값이어야 함

또한, 최대 연속 전류를 설정하는 xc는 5-2-3절에 나타난 속도 제어기의 그림에서 속도

제어기의 결과로 출력되는 전류의 제한치(Saturator)를 설정하는 변수입니다. 모터 구동

의 최대 전압을 설정하는 xvt 변수는 5-2-2절의 전류 제어기의 그림에서 제어기의 결과

인 구동 전압의 제한치(Saturator)를 설정하는 변수입니다. 만약 배터리 전압이 이 xvt 설

정값보다 높더라도 모터에는 Max. voltage 이상의 전압이 걸리지 않습니다. 마지막으로

최대 회전 속도를 제한하는 xv 변수는 5-2-4절의 위치 제어기의 출력인 속도를 제한하

는 변수입니다.

6-4-5. 모터 구동 한계 설정

[표 6-17]에는 모터 구동 한계에 대한 설정 값을 다룹니다. 여기서 언급하는 모터 드라

이버는 모터의 전력을 다루는 곳으로 FET 등으로 구성된 스위칭 모듈을 이야기합니다.

[표 6-17] 모터 드라이버(스위칭 모듈)의 환경 설정

short (long) i (s) type 내 용

ohl

(overheat_limit)

161

(0~2) float

FET의 온도 한계치 설정 (단위: °C);

초과하면 모터 Power OFF

ocl

(overcurrent_limit)

162

(0~2) float

과전류 한계치 설정 (단위: A);

여기서 설정된 전류치를 overcurrent_delay에서 설

정한 시간 동안 초과하면 모터 Power OFF

ocd

(overcurrent_delay)

163

(0~2) int16 과전류 연속 구동시간 설정 (단위: ms)

pcr

(peakcurrent_ratio)

164

(0~2) float

순간 최대 전류 한계치 설정 (단위: %);

모터에 흘릴 수 있는 순간 최대 전류범위 내에서

최대 전류를 설정

ovl

(overvoltage_limit)

165

(0~2) float

과전압 한계치 설정 (단위: V);

Power Stage에 공급되는 전압이 설정 값 위로 넘

어갈 경우, 모터 Power OFF 상태

Page 40: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

38

uvl

(undervoltage_limit)

166

(0~2) float

저전압 한계치 설정 (단위: V);

Power Stage에 공급되는 전압이 설정 값 아래로

내려갈 경우, 모터 Power OFF 상태

FET의 온도가 설정 값을 넘어갈 경우 Heat sink와 Cooling Fan을 점검해야 한다. 그래

도 문제가 없으면 온도 센서의 고정 여부를 확인해야 합니다.

전류 제어기가 Max. current 값을 넘지 않도록 제어를 하는 상황에서 과전류가 발생하

는 경우는 전류 제어기의 게인값 세팅에 문제가 있어 전류제어 응답에서 Overshoot가

발생하는 것입니다. 전류 제어기의 게인값을 다시 설정해줘야 합니다.

과전압의 경우 주로 모터의 역기전력으로 인해 발생합니다. 배터리가 아닌 파워서플라

이를 사용한 경우 모터의 회생전류를 파워서플라이에서 흡수하지 못해 연기전력이 발생

할 수 있습니다. 이런 경우 Break 저항들을 구동하여 발생한 연기전력을 소모해 줘야 합

니다.

반대로 저전압의 경우 배터리 혹은 파워서플라이의 와트 수가 낮아서 모터의 초기 구

동할 때 흐르는 높은 전류를 감당하지 못해 발생합니다. 이런 경우 Profile Mode를 켜고

Acceleration을 낮게 설정하여 모터가 급격하게 가속하지 않도록 해줘야 합니다.

6-4-6. 모터 구동 중 오류 감지 조건 설정

만약 주행로봇에 본 제어기를 장착하고 주행했을 때, 모터의 구동 명령이 인가되었는데

실제 모터가 회전하고 있지 않다면 이는 주행로봇이 장애물에 의해 강제로 운행하지 못

하고 있는 상황으로 볼 수도 있습니다. 다음은 모터의 강제 정지나 외부 요인에 의한 비

정상적 동작에 대한 오류를 감지할 수 있는 조건을 설정하는 변수입니다.

[표 6-18] 시스템 Fault 감지 조건 설정

short (long) i (s) type 내 용

sd

(stall_detection)

167

(0~2) int8

PWM duty 설정을 통한 Fault 감지 조건 설정:

0 - Disable,

1 - 100ms at 10% PWM duty,

2 - 200ms at 20% PWM duty,

3 - 400ms at 30% PWM duty,

4 - 700ms at 40% PWM duty,

5 - 1s at 50% PWM duty

Page 41: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

39

ved

(vel_error_detection)

168

(0~2) int8

속도 오차 정도의 설정을 통한 Fault 감지 조건

설정:

0 - Disable,

1 - 100ms and error > 100 RPM,

2 - 200ms and error > 200 RPM,

3 - 400ms and error > 500 RPM,

4 - 700ms and error > 1500 RPM,

5 - 1s and error > 3000 RPM

ped

(pos_error_detection)

169

(0~2) int8

위치 오차 정도의 설정을 통한 Fault 감지 조건

설정:

0 - Disable,

1 - 100ms and error > 100 pulse,

2 - 200ms and error > 500 pulse,

3 - 400ms and error > 2000 pulse,

4 - 700ms and error > 5000 pulse,

5 - 1s and error > 20000 pulse

sd, ved, ped 명령은 Encoder, Hall Sensor, potentiometer, Tachometer 등 모터의 위치와

속도를 Feedback 하는 센서와 함께 사용됩니다.

sd 명령은 Fault 감지 조건 동안 모터가 회전하지 않으면 다시 말해 Encoder의 값이 변

하지 않으면 Fault가 발생합니다. ved 명령은 속도 Feedback 제어기에서 지정된 시간동

안 지령속도와 실제 속도의 차가 지정된 속도보다 커지면 Fault가 발생합니다. ped 명령

은 위치 Feedback 제어기에서 지정된 시간동안 지령속도와 실제 위치의 차가 지정된 위

치보다 커지면 Fault가 발생합니다.

6-4-7. 제어기 시작 시 모터 구동과 관련된 설정

[표 6-19] 제어기 시작 시 모터 구동과 관련된 설정

short (long) i (s) type 내 용

spo

(startup_power_on)

173

(0~2) int8

제어기가 시작될 때 모터에 Power ON/OFF 상황

설정:

0 - 제어기가 시작될 때 모터 Power OFF

1 - 제어기가 시작될 때 모터 Power ON

2 - 모터가 Power OFF 상태가 되면, Power ON

상태로 전환 시도

Page 42: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

40

dir

(direction)

174

(0~2) int8

모터의 회전 방향을 설정:

0 - 그대로

1 - 반대로 회전

bod

(brake_on_delay)

175

(0~2) int16

모터 Power OFF 시 브레이크를 활성화하기 위한

지연 시간을 설정 (단위: msec)

hv

(high_voltage)

176

(0~2) int16

모터의 역기전력으로 인해 제어기에 걸리는 전압

이 증가할 때 Dynamic Brake Register를 활성화

시키기 위한 전압을 설정 (단위: V);

ht

(high_temperature)

177

(0~2) int16

FET 온도가 올라갈 때 냉각팬을 켜기 위한 온도

를 설정 (단위: ‘C);

bod, hv, ht 명령이 올바르게 동작하기 위해서는 Digital Output Port에서 High Voltage

(Dynamic Brake Register ON) 설정이 필요합니다.

제어기에 Power를 공급하고 제어기가 실행되었을 때, 연결된 모터를 바로 설정된 상황

에 맞춰 바로 구동을 시작할 것인지를 설정(spo)하거나, 단순히 모터 Power OFF 한 것이

Power ON 전압을 0로 유지할 것인지 브레이크의 역할을 할 것인지를 설정(bod)합니다.

특히, 모터의 회전 방향 설정의 경우 예를 들어 2축 구동형 모바일 로봇의 경우 모터가

서로 반대로 배치되어 설계되기 때문에 모터의 회전 방향이 달라집니다. 이럴 경우 모터

의 회전 방향 설정(dir)을 통해서 모터의 방향을 바꿔줄 수 있습니다. 말 그대로 Encoder

count, Voltage, Current, Velocity의 부호는 바뀌지 않고 단지 모터의 회전 방향만 반대로

바뀌게 됩니다.

6-5. 내부 제어기의 설정

6-5-1. Closed Loop Controller 기본설정

Closed-Loop Controller의 기본 설정에는 상태를 궤환(Feedback)하는 센서를 선택하는

설정과 사다리꼴 프로파일의 적용여부를 선택하는 설정이 있습니다. [표 6-20]에서 언급

하는 프로파일은 5-2-5절에서 설명하는 프로파일 생성기입니다. 앞 장에서 설명했듯이

프로파일 생성기는 기본적으로 모터나 모터가 연결된 전체 시스템에 급격한 충격을 방

지하기 위해 급가감속을 줄이는 역할을 수행합니다. 사다리꼴 프로파일을 적용하기 위해

서는 6-4-4절의 가속 구간과 감속 구간을 의미하는 ac, dc 변수를 설정하고, [표 6-16]에

있는 모터의 최대 회전 속도를 의미하는 xv 변수를 설정해야 5-2-5절의 프로파일이 완

성됩니다. 그 후에 [표 6-20]의 pm 변수를 사용함으로 설정해야 정상적으로 생성된 프로

파일에 의해 동작합니다.

Page 43: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

41

[표 6-20] 피드백 센서의 선택 및 프로파일 적용 여부

short (long) i (s) type 내 용

fs

(feedback_sensor)

171

(0~3) int8

상태를 궤환(feedback)하는 센서의 선택:

0 - none

1 - Encoder

2 - Hall Sensors

3 - Potentiometer

4 - Tachometer

pm

(profile_mode)

172

(0~3) int8

위치나 속도 제어 모드에서 사다리꼴 프로파일

사용 여부:

0 - 사용 안 함

1 - 사용함

feedback_sensor가 3(Potentiometer)로 설정된 경우, [표 6-10]의 ai_potentiometer 값은

position controller의 feedback으로 사용됩니다. 이때 입력 범위 -1~1은 min_position ~

max_position 범위로 조정됩니다. (단위: Pulse)

feedback_sensor가 4(Tachometer)로 설정된 경우, [표 6-10]의 ai_tachometer 값은

velocity controller의 feedback으로 사용됩니다. 이때 입력 범위 -1~1은 -max_velocity ~

max_velocity 범위로 조정됩니다. (단위: rad/s)

7-4-2. 위치 제어기 게인 설정

[표 6-21] 위치 제어기의 내부 제어 게인

short (long) i (s) type 내 용

pp

(pc_kp)

191

(0~2) float 위치 제어기의 비례제어 게인

pi

(pc_ki)

192

(0~2) float 위치 제어기의 적분제어 게인

pd

(pc_kd)

193

(0~2) float 위치 제어기의 미분제어 게인

Page 44: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

42

7-4-3. 속도 제어기 게인 설정

[표 6-22] 속도 제어기의 내부 제어 게인

short (long) i (s) type 내 용

vp

(vc_kp)

186

(0~2) float 속도 제어기의 비례제어 게인

vi

(vc_ki)

187

(0~2) float 속도 제어기의 적분제어 게인

vff

(vc_ks)

190

(0~2) float 속도 제어기의 스케일팩터(Scale Factor)

7-4-4. 전류 제어기 게인 설정

[표 6-23] 전류 제어기의 내부 제어 게인

short (long) i (s) type 내 용

cp

(cc_kp)

181

(0~2) float 전류 제어기의 비례제어 게인

ci

(cc_ki)

182

(0~2) float 전류 제어기의 적분제어 게인

cff

(cc_kff)

185

(0~2) float 전류 제어기의 전향 보상 제어 이득 (단위: rad/s)

6-6. 사용자 변수 및 스크립트(Script)에 대한 설정

사용자가 읽고 쓸 수 있는 User/Temp value 설정과 Motor Control UI Program을 이용

하여 작성된 스크립트의 자동 실행 여부 선택과 스크립트에 사용된 변수 읽기에 대한

설정 변수입니다.

[표 6-24] User/Temp value 설정 변수

short (long) i (s) type 내 용

uv

(user_value)

56

(1~32) int32 사용자가 일고 쓰는 변수들;

ㅅㅍ

(temp_value)

57

(1~32) int32 사용자가 일고 쓰는 변수들;

Page 45: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

43

User_value는 주로 제어기와 관련된 값들을 제어기에 저장해 두기 위해 사용합니다. 이

값은 제어기의 전원이 꺼지더라도 유지됩니다. Temp_value는 주로 제어기에서 실행되는

Script와 값을 주고받기 위해 사용합니다. 이 값은 제어기 전원이 들어와 있는 동안에만

유지됩니다.

[표 6-25] Script관련된 설정 변수

short (long) i (s) type 내 용

ssr

(startup_script_run)

16

(0) int8

제어기 시작 시 스크립트의 자동 실행 여부:

0 - 제어기 시작시 스크립트 실행하지 않음

1 - 제어기 시작시 스크립트 실행 함

sv

(script_variable)

252

(1~256) float

스크립트에 사용된 변수 값을 모니터링하기 위

해 사용;

변수 ID는 스크립트 컴파일 시에 정해지며,

Sub-index로 변수 ID를 지정

스크립트가 실행되기 위해서는 미리 스크립트가 제어기로 다운로드 되어 있어야 합니

다. 스크립트는 하나만 다운로드 가능하며, 새로운 스크립트를 다운로드 하면 이전 스크

립트가 지워지게 됩니다. 스크립트에 대한 자세한 내용은 7장을 참고하시기 바랍니다.

6-7. 2축 구동형 모바일 로봇에 대한 설정

본 제어기는 2축 구동형 모바일 로봇에 특화된 명령 셋을 제공하고 있으며, 이는 사용

자가 주행 로봇을 구성할 때 도움이 될 것입니다.

6-7-1. Mixing and Safety

제어기를 2축 구동형 로봇에 적용할 때, 조종 장치로 RC 무선 조종기 혹은 Joystick을

사용하는 경우 Mixing과 Safety에 대한 설정입니다.

[표 6-26] Mobile Robot용 Mixing and Safety 부분 설정 변수

short (long) i (s) type 내 용

cm

(control_mixing)

21

(0) int8

RC Signal, Joystick의 Mixing 방법:

0 - Separate,

1~4 - Mixed Mode 1, 2, 3, 4

Page 46: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

44

cs

(center_safety)

22

(0) int8

Joystick이나 RC signal이 0일 때 동작을 시작:

0 - Disable

1 - Enable

ms

(min_max_safety)

23

(0) int8

Joystick이나 RC signal이 min~max 범위를 벗어

나면 command 입력 값을 0으로 설정:

0 - Disable

1 - Enable

[표 6-27] Mixing Mode 기능

Mixing Mode 1 최대값을 넘어가는 Mixing 결과에 대해 최소/최대 범위 내로 제한

Mixing Mode 2 최대값을 넘어가는 Mixing 결과에 대해 최대를 넘어간 비율대로 감소

Mixing Mode 3 최대값을 넘어가는 Mixing 결과에 대해 전진속도를 우선 적용

Mixing Mode 4 최대값을 넘어가는 Mixing 결과에 대해 회전속도를 우선 적용

Control Mining 기능은 Joystick 혹은 RC 조종기를 Mixing mode로 제어하기 위한 기능

입니다. Center Safety 기능은 Motor가 Power ON 되었을 때 Joystick이나 RC 조종기의

스틱이 편향되어 0이 아닌 값이 들어오고 있으면 모터가 갑자기 움직여 위험을 초래하

는 경우를 방지하기 위한 기능입니다. 그리고 마지막으로 Min/Max Safety 기능은

Joystick의 양단에 밴드 가드 저항을 달아 Joystick의 연결이 단절되거나 Joystick이 망가

져 오작동 하는 것을 탐지하는 기능입니다.

6-7-2. Mobile Robot Property

제어기는 2축 구동형 모바일 로봇의 구동에서 로봇 자체에 대한 구동 명령을 하달하고

상태를 읽어 올 수 있도록 되어 있습니다. [표 6-28]과 같이 바퀴간 거리와 바퀴의 반지

름, 모터에서 바퀴까지의 감속 비율을 설정하면 바로 6-8-3절 Mobile Robot의 동작과

상태에 관한 변수를 적용할 수 있습니다.

Page 47: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

45

[그림 6-1] 일반적인 2축 구동형 모바일 로봇

[표 6-28] Mobile Robot 외부 설정 변수

short (long) i (s) type 내 용

wr

(wheel_radius)

86

(0) float 바퀴의 반지름 (단위: m)

al

(axle_length)

87

(0) float 좌우 바퀴간 거리 (단위: m)

gr

(gear_ratio)

88

(0) float 모터와 바퀴간 감속비율 (모터 회전수/바퀴 회전수)

6-7-3. Mobile Robot의 동작과 상태에 관한 변수

[표 6-29]에 나타나 있는 변수는 모바일 로봇의 구동과 로봇의 상태를 저장하는 변수에

관련된 내용입니다. 주행 로봇에 관련된 부분의 설정을 제대로 하지 않는 경우 주행 정

보의 오류로 동작이 제대로 되지 않을 수도 있다는 것을 주의해야 합니다.

변수의 Serial Text 패킷 통신에서의 사용법은 아래와 같습니다.

short name = Ch1, Ch2 예를 들어 다음과 같이 입력하면 두 채널에 연결된 모터에 전압 10V씩 구동하라는 명

령입니다.

ex) mvtc = 10, 10

Page 48: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

46

[표 6-29] Mobile Robot의 동작과 상태에 관한 변수

short (long) i (s) type 내 용

mp

(m_position)

91

(0) -

좌/우 모터의 엔코더 값을 2개의 32bit 정수로

읽음 (단위: Pulse, Pulse)

mpc

(m_position_command)

92

(0) -

좌/우 모터의 위치 구동 명령 전달

(단위: Pulse, Pulse)

mvc

(m_velocity_command)

93

(0) -

좌/우 모터의 속도 구동 명령을 동시 전달

(단위: RPM, RPM)

mcc

(m_current_command)

94

(0) -

좌/우 모터의 전류 구동 명령을 동시 전달

(단위: A, A)

mvtc

(m_voltage_command)

95

(0) -

좌/우 모터의 전압 구동 명령을 동시 전달

(단위: V, V)

mla

(m_lav_command)

96

(0) -

전진속도/각속도로 이동로봇의 구동 명령 전달

(단위: m/s, rad/s)

mla 변수는 사용자로부터 주행 로봇의 전진속도와 각속도를 명령으로 받아 각 바퀴에

연결된 모터에 개별적으로 명령을 내립니다. 사용자가 전달한 전진 속도를 v라 하고 회

전 속도를 ω라고 하면 두 모터에 인가되는 속도 명령은 좌우 모터의 속도를 각각 vl, vr

이라고 하면 다음과 같습니다.

= − 2 = + 2 여기서 는 좌우 바퀴간 거리, 은 바퀴의 반지름, 는 모터와 바퀴간의 감속 비율로

이 세 개의 상수는 모두 [표 7-33]에서 설정합니다.

Page 49: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

47

7. 스크립트 언어와 함수

본 장은 스크립트(Script)의 기본 내용과 사용자가 사용 가능한 내장 함수에 대해 설명

합니다. 사용자는 본 장을 숙지하시면 부수적인 작업 필요 없이 제어기를 가지고 환경에

맞는 제어를 구축할 수도 있습니다.

7-1. 스크립트 언어

스크립트 언어는 C언어의 Subset으로 설계된 언어입니다. C언어의 제어문과 수식 연산

구조를 그대로 따오면서 배열이나 함수포인트 등 복잡한 부분을 제거하여 사용자의 환

경에 맞게 쉽고 빠르게 프로그램을 개발할 수 있습니다.

C언어에서는 #define, #ifdef, #if 등의 전처리문 / 함수의 정의와 선언 (main 함수 포함)

/ int, float, long 등 자료형 키워드 / 문자열 상수 (“abc”) / 배열([]) 연산자, 포인터(*)연산

자, 주소 참조(&) 연산자, 멤버(., ->) 연산자 같은 Subset은 제공합니다.

변수의 선언에 자료형은 사용되지 않으며, 변수는 정수형(a=123)이나 실수형(b=4.567)

으로 초기화 하면서 선언됩니다. 또한, [표 7-1]과 같이 if, else / for / while / do~while /

break / continue와 같은 분기문과 반복문은 사용이 가능합니다.

[표 7-1] 분기문과 반복문의 예

if, else for

i=0;

if(i >= 90)

else

i=0;

for(i=0; i<10; i++)

while do~while

i=0;

while(i<=100)

i++;

int i=0;

do

i++;

while(i<=10);

Page 50: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

48

break continue

i=1;

for( j=0 ; j<5; j++)

if( j-i=0)

break;

i=1;

for( j=0 ; j<5; j++)

if( j+i=2)

continue;

+, -, *, /, %, ++, --, ==, !=, >, <, >=, <=, !, &&, ||, ~, &, |, ^, <<, >>, =, +=, -=, *=,

/=, %=, &=, |=, ^=, <<=, >>=과 같은 연산자는 사용이 가능하며, [표 7-2]와 같이 연산

자들 간의 우선순위 및 결합성을 가집니다.

[표 7-2] 연산자 우선선위와 결합성

우선순위 연 산 자 결합법칙

기본연산자 ( ) ++ -- ß

전치 + - ++ -- ~ ! à

승제 * / % à

가감 + - à

비트 이동 << > à

관계 < <= > >= à

등식 == != à

비트 AND & à

비트 XOR ^ à

비트 OR | à

논리곱 && à

논리합 || à

대입 = *= /= %= += -= <<= >>= >>>= &= ^= |= ß

스크립트에서 정의하고 있는 연산자 우선순위와 연산자 결합성은 C에서 정의하고 있는

것과 같으며, 스크립트에서는 포인터를 제공해주지 않으므로 C에서 포인터 연산을 위해

사용하는 구조체 포인터의 항목 참조 연산자(->), 주소 연산자(&), 간접연산자(*) 등과 같

은 연산자는 제공하지 않습니다.

Page 51: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

49

7-2. 스크립트 내장 함수

사용자가 코드를 작성할 때 기본적으로 필요로 하는 함수들을 [표 7-3]과 같이 제공하

고 있습니다.

[표 7-3] Script에서 사용 가능한 함수

함 수 설 명

clock() 현재 시간을 밀리초 단위로 반환

rand() 의사-난수를 반환 (값의 범위: 0 ~ 32767 사이)

sleep(x) x 밀리초 동안 대기

Int(x) 실수 x를 소숫점 첫째 자리에서 반올림한 정수 값을 반환

sin(x) 라디안의 값으로 주어진 x의 sine값을 반환

cos(x) 라디안의 값으로 주어진 x 의 cosine 값을 반환

tan(x) 라디안의 값으로 주어진 x 의 tangent 값을 반환

asin(x) x(sine x의 결과 값)의 arc sine의 값을 계산

acos(x) x(cosine x의 결과 값)의 arc cosine의 값을 계산

atan(x) x(tangent x 의 결과 값)의 arc tangent의 값을 계산

sinh(x) 수학적으로 exp(x) - exp(-x)/2 로 정의된, x의 쌍곡선 sine을 반환

cosh(x) 수학적으로 exp(x)-exp(-x)/2 로 정의된, x의 쌍곡선 cosine을 반환

tanh(x) sinh(x)/cosh(x)이라는 수학적 정의를 가진, x 의 쌍곡선 tangent x

를 반환

fabs(x) x의 절대값을 반환

floor(x) x보다 작거나 같은 정수 중에서 최대 값을 반환

ceil(x) x보다 크거나 같은 정수 중에서 최소 값을 반환

sqrt(x) x의 음이 아닌 루트의 값을 반

exp(x) e(자연대수에 기초한)의 x 승의 값을 반환

log(x) x 의 자연로그를 반환

log10(x) 10을 밑으로 하는 x의 로그값을 반환

atan2(x,y) 두 개의 인수를 가진 arc tangent 함수

pow(x,y) base의 power승을 반환하는 일반적 지수 함수

min(x,y) 주어진 두 인자의 최소값을 반환

max(x,y) 주어진 두 인자의 최대값을 반환.

getv

(index,sub_index) index와 sub_index로 지정된 외부 변수의 값을 읽음

Page 52: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

50

setv

(index,sub_index,x) index와 sub_index로 지정된 외부 변수에 값을 기록

getrv

(device_id,index,sub_

index)

device_id의 index와 sub_index로 지정된 외부 변수의 값을 읽음

setrv

(device_id,index,sub_

index,x)

device_id의 index와 sub_index로 지정된 외부 변수에 값을 기록

여기서 index는 Short name과 Long name으로 대체할 수 있으며 아래 예와 같이 Lhort

name, Long name 앞에 _(Underbar)를 붙여줘야 합니다.

ex) setv(111,1,500)

= setv(_pc,1,500)

= setv(_voltage_command,1,500)

[표 7-4] Script에서 사용 가능한 Variable List

Long name Short 설 명

_battery_voltage _bv 주 전원에서 공급되는 전압

_battery_current _bc 주 전원에서 제어기로 흐르는 전류

_num_motors _nm 제어기에 연결 가능한 모터의 수

_status _s 모터 제어기의 현재 상태

_fault _f 모터 제어기 및 관련 IO에서 발생한 Fault 상태

_temperature _tp Power Stage에 장착된 Heat sink의 온도 (단위: °C)

_voltage _vt 모터에 공급되는 전압 (단위: V)

_current _c 모터에 흐르는 전류 (단위: A)

_velocity _v 모터의 회전속도 (단위: RPM)

_position _p 모터의 엔코더, 홀센서 펄스 수 (단위: Pulse)

_ai_potentiometer _pt Analog Input 포트에 연결된 위치 센서의 피드백 값

(단위: ‰)

_ai_tachometer _ta Analog Input 포트에 연결된 속도 센서의 피드백 값

(단위: ‰)

_position_command _pc 모터에 내려진 위치 추종 명령 (단위: Pulse)

_velocity_command _vc 모터에 내려진 속도 추종 명령 (단위: RPM)

_current_command _cc 모터에 내려진 전류 추종 명령 (단위: A)

Page 53: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

51

_voltage_command _vtc 모터에 내려진 전압 명령 (단위: V)

_pwm_switching _ps 스위칭 소자의 구동 방법 선택

_pwm_frequency _pf 스위칭 소자에 인가되는 PWM 신호의 주파수 선택

_device_id _id CAN, Serial binary 패킷 통신에서 사용하는 장치 ID

_can_br _cb CAN 통신 속도 설정

_serial_bps _sb Serial 통신의 속도를 설정하는 변수

_serial_watchdog _sw 명령어 패킷에 대한 Watchdog Timeout 값

_min_position _np 위치 제어 시 최소 위치

_max_position _xp 위치 제어 시 최대 위치

_encoder_ppr _ep 모터 1회전당 엔코더 펄스 수 (단위: pulse/rev)

_use_soft_limit _usl Soft 리미트 기능 사용여부 선택

_max_current _xc 모터의 최대 전류를 설정 (단위: A)

_max_voltage _xvt 모터의 최대 전압 설정 (단위: V)

_max_velocity _xv 모터의 최대 회전 속도 설정 (단위: RPM)

_acceleration _ac 모터의 회전 가속도 설정 (단위: RPM)

_deceleration _dc 모터의 회전 감속도 설정 (단위: RPM)

_overheat_limit _ohl FET의 과열 한계치 설정 (단위: °C);

_overcurrent_limit _ocl 제어기의 한계 전류치 설정 (단위: A);

_overcurrent_delay _ocd 제어기의 연속 과전류 구동시간 설정 (단위: ms)

_peakcurrent_ratio _pcr 순간 최대 전류 한계치 비율 설정 (단위: %);

_overvoltage_limit _ovl 과전압 한계치 설정 (단위: V);

_undervoltage_limit _uvl 저전압 한계치 설정 (단위: V);

_stall_detection _sd PWM duty 설정을 통한 Fault 감지 조건 설정:

_vel_error_detection _ved 속도 오차 정도의 설정을 통한 Fault 감지 조건 설정:

_pos_error_detection _ped 위치 오차 정도의 설정을 통한 Fault 감지 조건 설정:

_startup_power_on _spo 제어기가 시작될 때 모터 Power ON/OFF 설정

_brake_on_delay _bod 모터 Power OFF 시 브레이크를 활성화하기 위한 지연 시

간 설정 (단위: msec)

_direction _dir 모터의 회전 방향을 설정

_high_voltage _hv

모터의 역기전력으로 인해 제어기에 걸리는 전압이 증가

할 때 Dynamic Brake Register를 활성화 시키기 위한 전압

을 설정 (단위: V)

_high_temperature _ht FET 온도가 올라갈 때 냉각팬을 켜기 위한 온도를 설정

(단위: ‘C)

_feedback_sensor _fs 상태를 궤환(feedback)하는 센서의 선택

_profile_mode _pm 위치나 속도 제어 모드에서 사다리꼴 프로파일 사용 선택

Page 54: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

52

_pc_kp _pp 위치 제어기의 비례제어 게인

_pc_ki _pi 위치 제어기의 적분제어 게인

_pc_kd _pd 위치 제어기의 미분제어 게인

_vc_kp _vp 속도 제어기의 비례제어 게인

_vc_ki _vi 속도 제어기의 적분제어 게인

_vc_ks _vs 속도 제어기의 스케일팩터(Scale Factor)

_cc_kp _cp 전류 제어기의 비례제어 게인

_cc_ki _ci 전류 제어기의 적분제어 게인

_cc_kff _cff 전류 제어기의 전향 보상 제어 이득

_num_di _ndi 디지털 입력 채널의 수 설정

_di_enable _die 각 비트별 해당 디지털 입력의 활성화 여부 설정

_di_invert _dii 각 비트별 해당 디지털 입력의 반전 여부 설정

_di_all_values _di 디지털 입력을 하나의 32bit 변수로 통합한 값

_di_value _div 디지털 입력 채널의 값 읽어오기

_di_function _dif 디지털 입력을 특정 모터의 기능으로 설정

_num_do _ndo 디지털 출력 채널의 수 설정

_do_enable _doe 각 비트별 해당 디지털 출력의 활성화 여부 설정

_do_invert _doi 각 비트별 해당 디지털 출력의 반전 여부 설정

_do_all_values _do 디지털 출력을 하나의 32bit 변수로 통합한 값

_do_value _dov 디지털 출력 체널의 값 설정 (0 or 1)

_do_function _dof 디지털 출력을 특정 모터의 상태와 설정

_num_ai _nai 아날로그 입력 채널의 수 설정

_ai_enable _aie 비트별 해당 아날로그 입력의 활성화 여부 설정

_ai_invert _aii 비트별 해당 아날로그 입력의 극성 반전 여부 설정

_ai_value _aiv 아날로그 입력 채널의 값 읽어오기

_ai_converted_value _aicv Calibration, Linearity 과정을 거친 후 최종 변환된 값

_ai_linearity _ail linear, log, exp 함수 형태의 변환 형식 지정

_ai_function _aif 아날로그 입력을 특정 모터의 기능과 연결

_ai_input_min _ain Calibration: 입력 최소값 설정

_ai_input_center _aic Calibration: 입력 중앙값 설정

_ai_input_max _aix Calibration: 입력 최대값 설정

_ai_input_deadband _aidb Calibration: 입력의 Dead-band 값 설정

_num_pi _npi 펄스 입력 채널의 수 설정

_pi_enable _pie 비트 별 해당 펄스 입력의 활성화 여부 설정

_pi_invert _pii 비트 별 해당 펄스 입력의 극성 반전 여부 설정

_pi_value _piv 펄스 입력 채널의 값 읽어오기

Page 55: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

53

_pi_converted_value _picv Calibration, Linearity 과정을 거친 후 최종 변환값 읽어오

_pi_capture_type _pit Pulse Width, Frequency, Duty Cycle 펄스 캡쳐 종류 선택

_pi_linearity _pil linear, log, exp 함수 형태의 변환 형식 지정

_pi_function _pif 펄스 입력을 특정 모터의 기능과 연결 설정

_pi_input_min _pin Calibration: 입력 최소값

_pi_input_center _pic Calibration: 입력 중앙값

_pi_input_max _pix Calibration: 입력 최대값

_pi_input_deadband _pidb Calibration: 입력의 Dead-band 값

_control_mixing _cm RC Signal, Joystick의 Mixing mode 설정

_center_safety _cs Joystick이나 RC Signal의 Center safety 설정

_min_max_safety _ms Joystick이나 RC Signal의 Min/Max safety 설정

_wheel_radius _wr 바퀴의 반지름 (단위: m)

_axle_length _al 좌우 바퀴간 거리 (단위: m)

_gear_ratio _gr 모터와 바퀴간 감속비율 (모터 회전수/바퀴 회전수)

_m_position _mp 좌/우 모터의 엔코더 값을 2개의 32bit 정수로 읽음

(단위: Pulse)

_m_position_command _mpc 좌/우 모터의 위치 구동 명령 전달 (단위: Pulse)

_m_velocity_command _mvc 좌/우 모터의 속도 구동 명령을 동시 전달 (단위: RPM)

_m_current_command _mcc 좌/우 모터의 전류 구동 명령을 동시 전달 (단위: A)

_m_voltage_command _mvtc 좌/우 모터의 전압 구동 명령을 동시 전달 (단위: V)

_m_lav_command _mla 전진속도/각속도로 이동로봇의 구동 명령 전달

(단위: m/s, rad/s)

Page 56: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

54

8. Motor Control UI Program

Motor Control UI Program은 5가지 메뉴와 메뉴별로 다양한 고급 기능을 가지고 있습

니다. 8장을 통해 Motor Control UI Program의 기능을 숙지한다면 제어기의 강력한 기능

을 더욱 쉽고 편리하게 사용 가능하며, 사용자의 환경에 맞게 프로그램 메뉴와 기능을

선택해서 사용할 수 있습니다.

※ MoonWalker 제품의 이미지를 법용으로 설명서가 제작되다 보니 이미지가 다를 수

있습니다. 하지만 기능 설명에 대한 부분은 문제가 없으니 본 설명대로 제품을 사용하

시면 됩니다.

8-1. Motor Control UI Program 다운로드

Motor Control UI Program은 엔티렉스 로봇연구소 홈페이지(www.ntrexgo.com)에서 다

운로드 받을 수 있습니다.

홈페이지에서 Motor Control UI Program을 다운로드 한 후 별다른 설치 과정 없이 단

순히 압출 파일을 풀고 MotorControlUI.exe를 실행하면 [그림 8-1]과 같은 첫 실행화면

이 뜹니다.

※ Motor Control UI Program은 Window XP/7/8에서 실행 가능합니다.

[그림 8-1] Motor Control UI Program 첫 실행 화면

Page 57: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

55

8-2. Motor Control UI Program 연결

정상적으로 Motor Control UI Program이 다운로드가 되었는지 확인한 후 다운로드 받

은 파일을 실행합니다.

[그림 8-2]와 같이 [Setting] 버튼을 클릭하면 새로운 Serial Setting 창이 팝업 됩니다.

사용자는 환경에 맞게 Scan할 Device ID, Serial과 CAN 통신속도 그리고 Serial과 CAN

Timeout 설정해 줍니다. 모든 설정이 끝나면 [Save]버튼을 클릭한 후 [Close] 버튼을 클

릭합니다. 그러면 통신 설정이 완료가 됩니다.

[그림 8-2] Serial setting 설정

통신 설정이 끝난 후 [Scan Devices]버튼을 클릭하면 PC와 제어기가 연결됩니다. 제어

기가 PC에 연결되면 아래와 같이 Port와 Device ID 그리고 Model명을 보여줍니다. 그리

고 Port 앞에 를 체크한 후 아래 Update Auto 를 체크하면 그림 [그림 8-3]과 녹색

불이 들어옵니다.

참고로 제어기 모델에 따라, 제어기가 제어할 수 있는 모터 수에 따라 1~2개로 표시됩

니다.

COM9 #1(1) – Stella B3

COM9 #1(2) – Stella B3

Page 58: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

56

[그림 8-3] 모터 연결

간단히 엔코더 등의 센서류를 연결하지 않고, 모터에 인가되는 직접 전압 명령을 인가

해서 모터 제어기의 동작 여부를 확인할 수 있습니다. Voltage(V)에 12를 입력하고 하단

의 [Voltage Out] 버튼을 누르면 [그림 8-4]와 같이 현재 구동되는 상황을 알 수 있습니

다. 본 절의 시험 구동만으로도 사용자가 구매한 제어기와 모터의 연결에서 정상 유무를

판단할 수 있습니다.

[그림 8-4] 간단한 전압제어

Page 59: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

57

8-3. Motor Control UI Program 메뉴 및 기능

본 절은 Motor Control UI Program의 전반적인 메뉴와 기능에 대해 다루고 있습니다.

Motor Control UI Program은 기본적으로 Controller List, Motor Control, IO Monitoring,

Configuration, Script 등 5가지 메뉴를 가지고 있습니다. 5가지 메뉴에 대해서는 각 절로

설명되어 있으므로 사용자의 환경에 맞게 프로그램 메뉴와 기능을 선택해서 사용할 수

있습니다.

8-3-1. Control List

[그림 8-3]과 같이 Control List 메뉴는 사용자가 구매한 제어기와 모터의 연결에서 정상

유무 판단, 전압 / 전류 / 속도 / 위치 제어, 모터가 구동되는 상황 등을 간단하게 확인

할 수 있습니다. 그리고 메뉴 밑에는 [표 8-1]과 같은 기능을 가진 버튼이 있습니다.

[표 8-1] Control List 메뉴 기능 설명

Setting Serial / CAN 통신속도 및 타임아웃 설정

Scan Devices 제어기와의 연결

Power ON 전원 ON

Power OFF 전원 OFF

Clear Fault Fault 상태 초기화

Quick Stop 급정지

Slowdown Stop 정지 (=Slow Stop)

Voltage Out 모터 전압 설정

Go Current 전류 제어

Go Velocity 속도 제어

Go Position 위치 제어

[그림 8-3]의 Control List 화면에서 사용자가 제어하고자 하는 모터 드라이버의 채널을

선택한 후(Port 앞에 체크) Update Auto 를 체크하면 제어기를 통해 모터를 구동할

수 있는 상태가 됩니다.

사용자의 환경에 맞게 제어 방법 (Voltage, Current, Velocity, Position)을 선택한 후 제어

값을 입력한 다음 Voltage Out / Go Current / Go Velocity / Go Position 명령을 통해서

모터가 정상적으로 제어되는지 확인하며 제어기의 상태를 모니터링 할 수 있습니다.

Page 60: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

58

8-3-2. Motor Control

Motor Control 메뉴는 제어기의 상태, 모터 동작 이상, 모터 제어, 전압(V), 전류(A), 속

도(RPM), Pulse, 배터리 전압/전류, 모터 전압, FET온도 등 Red LED를 통해서 제어기의 현

재 상태와 상황을 확인할 수 있습니다. 그리고 [표 8-2]와 같은 기능을 가진 버튼이 있습

니다.

활성 상태 표시

비활성 상태 표시

[그림 8-5] Motor Control 메뉴 화면

[표 8-2] Motor Control 메뉴 버튼

Power ON 전원 ON

Power OFF 전원 OFF

Clear Fault Fault 상태 초기화

Quick Stop 급정지

Slowdown Stop 정지 (=Slow Stop)

Page 61: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

59

8-3-2-1. Motor Control Status

Motor Control Status는 모터 제어기의 구동 상태 및 제어기와 연결된 IO의 상태 등을

확인할 수 있습니다.

[표 8-3] Motor Control Status 기능 설명

상 태 설 명

Motor is Powered 모터 전원이 공급되고 있는 상태

Motor is Moving 모터 구동 상태

Fault Detection 에러 및 문제 발생 상태

Emergency Stop 긴급 정지를 누른 상태

Position Control 위치 제어 상태

Velocity Control 속도 제어 상태

Current Control 전류 제어 상태

Calibration Analog Input, Pulse Input을 Calibration 중.

AI Outside Valid

Range

모터 Power ON 전환 후 Analog Input 값이 Center에

있지 않은 상태

PI Outside Valid

Range

모터 Power ON 전환 후 Pulse Input 값이 Center에

있지 않은 상태

Loss Detection of

AI (Joystick)

Analog Input 이 Min~Max 범위를 넘어갔거나 적절한

값이 들어오지 않은 상태

Loss Detection of

PI (RC Radio)

Pulse Input 이 Min ~ Max 범위를 넘어갔거나 적절한

값이 들어오지 않은 상태

Stopped by

External Input

Digital Input에서 Stop, Quick Stop(Deadman Switch)가

작동한 상태

Passed the Limit

Position Position값이 위치 리미트 범위를 벗어난 상태

Controlled by

RS-232,USB,CAN

Serial(RS-232, USB)과 CAN으로부터 Go~류 명령어가

입력되고 있는 상태

Controlled by

Analog/Pulse Input

Analog, Pulse Input로부터 Go~류 명령어가 입력되고

있는 상태

Script Running Script 실행 상태

Page 62: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

60

8-3-2-2. Motor Fault Flags

Motor Control Status는 모터의 Fault 이유 상태를 확인할 수 있습니다. Motor 제어기에

서 Fault가 발생하면 모터에 공급되는 전원은 차단되며, Fault 조건이 해제된 이후에

Motor Power ON이 가능합니다.

[표 8-4] Motor Fault Flags 기능 설명

상 태 설 명

Overcurrent 모터에 흐르는 전류가 설정된 최대값 이상인 상태

Overvoltage 제어기에 공급되는 전압이 설정된 최대값 이상인 상태

Undervoltage 제어기에 공급되는 전압이 설정된 최소값 이하인 상태

Overheat 내부 스위칭 소자(FET)나 방열판의 온도가 최대 한계 온

도 이상인 상태

Short Circult 모터의 +,- 단자가 단락되거나 내부 스위칭 소자(FET)가

잘못된 조합으로 운용

Stall Detection 지정된 PWM duty 이상에서 모터가 회전하지 않는 경우

Stall 상황으로 판단 상태

Velocity Error

Detection

속도 제어 모드에서 속도 오차가 지정된 값 이상이어서

속도 제어에 문제가 있는 것으로 판단 상태

Position Error

Detection

위치 제어 모드에서 위치 오차가 지정된 값 이상이어서

위치 제어에 문제가 있는 것으로 판단 상태

8-3-2-3. Motor Control

Motor Control에서는 사용자의 환경에 맞게 전압, 전류, 속도, 위치 등의 제어 값을 입

력해서 모터를 제어하거나 혹은 스크롤 바를 이용해서 모터를 제어할 수 있습니다. 그뿐

만 아니라 현재 전압(V), 전류(A), 속도(RPM), 위치(Pulse) 값을 모니터링 할 수 있습니다.

8-3-2-4. Controller Monitoring

제어기와 연결된 배터리 전압/전류, 모터 전압, FET 온도를 모니터링 할 수 있습니다.

8-3-2-5. Mapped Analog Input

타코메타를 이용해서 속도제어를 하거나 혹은 포텐셔미터를 이용해서 위치제어를 할

때 아날로그 입력 데이터 값을 모니터링 할 수 있습니다.

Page 63: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

61

8-3-3. IO Monitoring

IO Monitoring은 IO 포트의 기능 설정에 따른 데이터 값을 모니터링할 수 있는 메뉴입

니다. Stella B3는 IO 포트가 HW적으로 설계되어 있지 않습니다. 따라서 이 메뉴에서는

스크립트 값을 주고 받기 위해 사용하는 Temp_Value를 부분만 사용하시면 됩니다.

[그림 8-6] IO Monitoring 메뉴 화면

[표 8-5] IO Monitoring 메뉴 버튼 기능 설명

Write Temp_Value 값 쓰기

Page 64: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

62

8-3-4. Configuration

Configuration 메뉴에서는 제어기 상태 및 구동 명령, 내부 설정 변경, 전압/전류/속도/

위치 제어 게인값 설정, IO 활성화 및 기능 설정 등 제어기의 다양한 설정들을 할 수 있

는 메뉴입니다. Configuration 메뉴에는 [표 8-6]과 같은 기능을 가진 버튼이 있습니다.

[그림 8-7] Configuration 메뉴 화면

[표 8-6] Configuration 메뉴 버튼

Read Configurations 제어기에 저장된 설정 값 읽기 (불러오기)

Write Configurations 제어기에 설정 값을 쓰기 (저장하기)

Load Factory Default 공장 출하 시 초기값 설정 불러오기

Reset Controller 제어기 소프트웨어적 리셋

Copy Config.Mot.1->Mot.2 Motor 1 설정 값을 Motor 2에 복사하기

Load from File 저장된 cfg 확장자 파일 불러오기

Save to File 설정된 값을 cfg 확장자 파일로 저장하기

Load from Flash Flash 메모리 저장된 설정 값을 불러오기

Save to Flash 제어기에 저장된 설정 값을 Flash 메모리에

저장하기

Expand All Configuration 메뉴 설정을 모두 펼침

Collapse All Configuration 메뉴 설정을 모두 접기

Page 65: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

63

[그림 8-8] Configuration 메뉴 세부 설정 1

Configuration 메뉴에서는 제어기와 모터의 특성치 설정, 모터 제어 방법, 입출력포드

사용 여부 결정, Joystick과 RC 조종기 사용 여부 결정 등을 사용자의 환경에 맞게 제어

와 제어방법을 설정할 수 있습니다.

Product Information에서는 현재 연결된 제품 공급자 ID, 제품 ID, 제어기와 펌웨어 버

전을 확인할 수 있고 Serial / CAN Communication에서는 현재 연결된 CAN 통신 속도,

Serial 통신 속도, 왓치독 등을 설정하고 확인할 수 있습니다.

Script에서는 스크립트 모드 사용 여부를 설정할 수 있으며, Joystick/RC Control and

Safety에서는 Control Mixing mode, Center Safety 기능과 Min/Max Safety 기능 사용 여

부를 설정할 수 있습니다.

Power Stage에서는 모터에 전력을 공급하기 위한 FET 및 FET 구동회로를 설정할 수 있

으며, Mobility Properties에서는 이동 로봇의 바퀴의 지름, 좌우 바퀴간의 거리, 모터와

바퀴간 감속비율(모터 회전수/바퀴 회전수) 등 로봇의 기본 설정 값을 설정할 수 있습니

다.

Page 66: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

64

[그림 8-9] Configuration 메뉴 세부 설정 2

8-3-4-1. Motor 1 / Motor 2

Motor 1과 Motor 2는 Position Sensor, Motor Characteristics, Fault Condition,

Operations, Closed Loop Controller 등 5개의 메뉴로 구분되어 있습니다. Motor 1과

Motor 2의 메뉴는 동일하므로 Motor 1에 대해서 설명합니다.

Position Sensor는 위치 센서에 대한 설정 메뉴입니다. 위치 제어할 때 최소/최대 위치,

홈센서 감지 시 Position에 로드 되는 위치값, 모터 1회전당 엔코더 펄스 수, Soft Limit

사용 여부를 설정할 수 있습니다. 여기서 Soft Limit은 Encoder, Hall Sensors,

Potentiometer 값이 Min/Max Position 범위를 벗어나면 Forward / Reverse Limit Switch

를 작동한 효과를 보여주는 기능을 가지고 있습니다.

Motor Characteristics는 사용자가 사용하고자 하는 모터 자체의 특성치를 설정하는 메

뉴입니다. 모터에 흐르는 최대 연속 전류, 모터를 구동하는 최대 전압, 모터의 최대 회전

Page 67: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

65

속도, 모터의 회전 가속도, 모터의 회전 감속도를 설정할 수 있습니다. 이때 사용자는 사

용하는 모터 설명서을 숙지한 후 모터 스펙을 설정하여야 합니다.

Fault Condition은 사용자 그리고 제품의 안전을 위해 Fault 감지 조건을 설정하는 메뉴

입니다. Fault Condition Limits에서는 과열온도, 과전류, 과전류 흐르는 시간, 제어기의

FET가 흘릴 수 있는 순간 최대 전류범위, 과전압, 저전압 한계값을 설정할 수 있고, Fault

Condition Detection에서는 모터의 폴트 감지 조건을 설정할 수 있습니다.

Operations는 제어기 시작 시 모터를 어떻게 구동할지를 선택하는 메뉴입니다. 제어기

시작 시 자동으로 POWER ON, 모터 POWER OFF 시 브레이크 활성화하기 위한 지연시

간, 모터 회전방향 등 모터 구동과 관련된 모든 설정을 할 수 있습니다.

Closed Loop Controller는 제어기 피드백 센서 선택, 위치, 속도 제어 기능에서 사다리

꼴 프로파일 적용여부 그리고 전류, 속도, 위치 제어기의 PID 게인값, 안티와인드업 게인

값을 설정할 수 있습니다.

8-3-5. Script

스크립트(Script)에서 사용 가능한 함수를 가지고 Motor Control UI Program을 이용해서

바로 프로그램을 작성한 후 다운로드 하는 방법에 대해 설명합니다. Script 메뉴에는 [표

8-7]과 같은 기능을 가진 버튼이 있습니다.

[표 8-7] Script 메뉴 버튼

Save Script 코드를 설정한 scr 파일로 저장

Build scr 파일 Build

Download 제어기에 bin 파일 Download

Device Run/Stop 제어기 동작

아래와 같은 예를 통해서 Script 메뉴 사용 방법에 대해 설명하겠습니다.

ex) 제어기에서 두 채널 모두 정방향으로 12V 전압으로 1초 움직이고 1초 정지하는

동작을 10번 반복하고 싶을 때

Page 68: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

66

[그림 8-10] Script 메뉴 화면

for(i=0;i<10;i++)

setv(_voltage_command,1,12);

setv(_voltage_command,2,12);

sleep(1000);

setv(_voltage_command,1,0);

setv(_voltage_command,2,0);

sleep(1000);

[그림 8-10]과 같이 프로그램을 코딩한 후 [Save] 버튼을 눌러 scr 파일로 저장합니다.

그리고 난 후 [Build]와 [Download] 버튼을 클릭합니다. 만약 문제가 없다면 아래와 같이

성공적으로 Build와 Download 되었다는 메시지를 확인할 수 있습니다.

>>>example.scr – 0 error(s), build succeeded

>>>example.bin – download XX byte(s) successfully

성공적으로 제어기에 Download가 끝나면 [Device Run/Stop] 버튼을 클릭해서 정상적으

로 제어가 되는지 확인합니다.

Page 69: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

67

8-3-6. Real-time Plot

Real-time Plot은 모터 혹은 드라이버의 데이터(Voltage, Current, Velocity, Position,

Battery Voltage, FET Temperature 등) 값과 Reference 값을 실시간으로 그래프로 비교하

면서 확인할 수 있습니다.

Real-time Plot 창에서 사용자가 확인하고 싶은 데이터를 체크한 후 모터를 구동하면

[그림 8-11]과 같이 실시간으로 데이터 그래프를 볼 수 있습니다. 또한, 마우스 휠을 위

아래로 움직이면 0을 기준으로 그래프가 확대/축소되는 기능도 가지고 있습니다.

[그림 8-11] Real-time Plot 화면 (-8~8V 전압 그래프)

8-3-7. Emergency STOP

Motor Control UI Program에는 갑작스러운 모터 구동이나 혹은 위험한 상황에 대비해

서 [그림 8-12]와 같이 오른쪽 상단에 비상 정지 버튼이 있습니다.

Page 70: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

68

[그림 8-12] Emergency STOP 버튼

Page 71: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

69

8-4. Motor Control UI Program을 이용한 제어기 설정방법

이번에는 Motor Control UI Program을 이용한 제어기 설정 방법에 대해 설명합니다. 사

용자는 제어기의 스펙과 사용하는 모터의 스펙을 제대로 파악하고 제어기가 어떻게 구

성되어 있는지를 5장 내부 회로 및 제어기 구성 내용을 숙지하신 후 환경에 맞게 게인

값을 설정하여야 합니다.

※ 5장 내부 회로 및 제어기 구성 내용을 꼭 숙지하시기 바랍니다.

8-4-1. 전압 제어 설정 방법

이 방식은 Close-Loop 제어를 위해 피드백 받는 여러 센서의 신호를 사용하지 않습니

다. 그래서 사용자가 구성한 모터 구동축에 연결된 여러 부하와 마찰력, 모터의 종류에

따라 같은 전압을 인가해도, 소모되는 전류나 속도는 다를 수 있습니다.

[그림 8-13] Configuration - Power Stage 메뉴 화면

전압 제어를 하기 위해서는 [그림 8-13]과 같이 사용자의 환경에 맞게 Power Stage에서

Bipolar와 Unipolar 중 어떤 것으로 구동할지 어떤 주파수를 사용할지 선택합니다.

Power Stage 설정이 끝났으면 Motor 1에서 최적화된 제어를 위해 [그림 8-14]와 같이

모터 자체의 특성치와 제품의 안전을 위한 전압/전류 한계치를 설정하여야 합니다.

Page 72: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

70

[그림 8-14] Configuration - Motor 1 메뉴 화면

사용자가 사용하고자 하는 모터의 설명서를 숙지한 후 Motor Characteristics에서는 모

터에 흐르는 최대 연속 전류, 모터를 구동하는 최대 전압, 모터의 최대 회전 속도, 모터

의 회전 가속도, 모터의 회전 감속도를 설정하고, Fault Condition Limits에서는 모터와 제

어기의 설명서를 숙지한 후 과열온도, 과전류, 과전류 흐르는 시간, 제어기의 FET가 흘릴

수 있는 순간 최대 전류범위, 과전압, 저전압 한계값을 설정 합니다. 그리고 모터의 강제

정지나 외부 요인에 의한 비정상적인 동작을 막기 위해 Fault Condition Detection에서

제어 방법에 따라 감지 조건을 설정합니다.

본 설명서에서는 전압 제어를 위한 설정 방법을 보여주는 것이기 때문에 Fault

Condition Detection를 Disableㄹ 설정하였습니다.

모든 설정이 끝나면 오른쪽에 [Copy Config. Mot.1->Mot.2] 과 [Write Configurations]

버튼을 순서대로 클릭합니다. 그리고 마지막으로 [Save to Flash]를 클릭하면 설정된 값이

제어기의 메모리에 저장됩니다.

전압 제어를 위한 모든 설정이 끝나면 Motor Control 메뉴에서 전압 제어가 정상적으

로 동작되는지 테스트를 합니다. 이때 RPM와 Pulse 값이 출력 되는 것을 확인할 수 있

는데 이는 모터의 엔코더가 제어기에 연결되어 있기 때문입니다.

Page 73: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

71

[그림 8-15] 전압 제어 테스트 화면

8-4-2. 전류 제어 설정 방법

※ 전류 제어를 하기 전에 전압 제어를 위한 모터 특성치 및 구동부 설정과 한계치를

설정하여야 합니다.

[그림 8-16] Configuration - Motor 1 - Current Controller Gain 메뉴 화면

Page 74: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

72

[그림 8-16]과 같이 Motor 1 - Current Controller Gain에 사용자의 환경에 맞게 게인값

을 설정한 후 오른쪽에 [Copy Config. Mot.1->Mot.2] 과 [Write Configurations] 버튼을

순서대로 클릭합니다. 그리고 마지막으로 [Save to Flash]를 클릭하면 설정된 값이 제어기

의 메모리에 저장됩니다.

[그림 8-17] 전류 제어 테스트 화면

전류 제어를 위한 모든 설정이 끝나면 Motor Control 메뉴에서 전류 제어가 정상적으

로 동작되는지 테스트를 합니다.

8-4-3. 속도 제어 설정 방법

속도 제어를 하기 전에 전압 제어를 위한 설정과 전류 제어를 위한 게인값을 설정하여

야 합니다.

Page 75: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

73

[그림 8-18] Configuration - Motor 1 - Velocity Controller Gain 메뉴 화면

[그림 8-18]과 같이 Motor 1 - Velocity Controller Gain에 사용자의 환경에 맞게 게인값

을 설정한 후 오른쪽에 [Copy Config. Mot.1->Mot.2] 과 [Write Configurations] 버튼을

순서대로 클릭합니다. 그리고 마지막으로 [Save to Flash]를 클릭하면 설정된 값이 제어기

의 메모리에 저장됩니다.

[그림 8-19] 속도 제어 테스트 화면

Page 76: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

74

속도 제어를 위한 모든 설정이 끝나면 Motor Control 메뉴에서 속도 제어가 정상적으

로 동작되는지 테스트를 합니다.

만약 타코메타를 이용해서 속도 제어를 할 경우에는 [그림 8-20]과 같이 Control

Feedback에서 Tachometer로 설정한 후 데이터를 메모리에 저장하면 됩니다.

[그림 8-20] Control Feedback - Tachometer 설정 화면

8-4-4. 위치 제어 설정 방법

※ 위치 제어를 하기 전에 전압 제어를 위한 설정과 전류 제어와 속도 제어를 위한 게

인값을 설정하여야 합니다.

[그림 8-21] Configuration - Motor 1 - Position Sensors 메뉴 화면

Page 77: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

75

위치 제어를 하기 위해서는 [그림 8-21]과 같이 위치제어 시에 최소 위치, 최대 위치,

홈센서 감지 시 position에 로드되는 위치값, 모터 1회전당 엔코더 펄스 수, Soft Limit

switch를 사용자 환경에 맞게 설정합니다.

※ Motor Control UI Program의 엔코더 분해능은 4체배 방식으로 되어있기 때문에 엔

코더 분해능에서 x4(곱하기 4)를 해준 값을 적용해줘야 합니다. 만약 제대로 된 값이 적

용되지 않는다면 모터의 정상적인 제어는 불가능하니 주의하기 바랍니다.

[그림 8-22] Configuration - Motor 1 - Position Controller Gain 메뉴 화면

위치 센서에 대한 설정이 끝나면 [그림 8-22]와 같이 Motor 1 - Position Controller Gain

에 사용자의 환경에 맞게 게인값을 설정한 후 오른쪽에 [Copy Config. Mot.1->Mot.2] 과

[Write Configurations] 버튼을 순서대로 클릭합니다. 그리고 마지막으로 [Save to Flash]를

클릭하면 설정된 값이 제어기의 메모리에 저장됩니다.

위치 제어를 위한 모든 설정이 끝나면 Motor Control 메뉴에서 위치 제어가 정상적으

로 되는지 테스트 합니다.

Page 78: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

76

[그림 8-23] 위치 제어 테스트 화면

만약 포텐셔미터를 이용해서 위치 제어를 할 경우에는 [그림 8-24]와 같이 Control

Feedback에서 Potentiometer로 설정한 후 데이터를 메모리에 저장하면 됩니다.

[그림 8-24] Control Feedback - Potentiometer 설정 화면

Page 79: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

77

8-5. Motor Control UI Program 사용시 주의사항

본 절에서는 Motor Control UI Program을 사용하면서 주의해야 할 부분에 대해 설명합

니다.

[그림 8-25] Configuration에서 주의해야 할 부분

8-5-1. Encoder Resolution

Configuration - Motor 1 - Position Sensors - Encoder에 있는 Encoder Resolution은 모

터의 엔코더 분해능을 설정하는 메뉴로 사용하고자 하는 모터의 설명서와 스펙을 잘 숙

지한 후 엔코더 분해능 값을 적용해 주시기 바랍니다.

※ Motor Control UI Program의 엔코더 분해능은 4체배 방식으로 되어있기 때문에 엔

코더 분해능에서 x4(곱하기 4)를 해준 값을 적용해줘야 합니다. 만약 제대로 된 값이 적

용되지 않는다면 모터의 정상적인 제어는 불가능하니 주의하기 바랍니다.

8-5-2. Motor Characteristics

Configuration - Motor 1에 있는 Motor Characteristics은 모터 자체의 특성치를 설정하

는 메뉴로 사용하고자 하는 모터의 설명서와 스펙을 잘 숙지한 후 모터에 흐르는 최대

연속 전류, 모터를 구동하는 최대 전압, 모터의 최대 회전 속도, 모터의 회전 가속도, 모

터의 회전 감속도 값을 적용해 주시기 바랍니다.

Page 80: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

78

※ 설정된 모터의 최대 전류, 최대 전압, 최대 속도만큼 제어할 수 있습니다. 또한, 모터

의 스펙 이상의 값이 설정되면 모터가 망가질 수도 있으니 유의하기 바라며, 모터 스펙

이상의 값을 적용하지 마시기 바랍니다.

8-5-3. Fault Condition

Configuration - Motor 1에 있는 Fault Condition은 제품의 안전을 위해 Fault 감지 조건

을 설정하는 메뉴로 사용하고자 하는 제어기의 설명서와 스펙을 잘 숙지한 후 과열온도,

과전류, 과전류 흐르는 시간, 제어기의 FET가 흘릴 수 있는 순간 최대 전류범위, 과전압,

저전압 한계값을 적용해 주시기 바랍니다.

※ 제어기의 스펙 이상의 값이 설정되면 제어기가 파손 및 화재의 위험이 있으니 주의

하기 바랍니다.

8-5-4. Write Configurations & Save to Flash

Configuration 메뉴에 있는 Save to Flash 버튼은 제어기의 RAM에서 플래시 메모리로

설정 값을 저장(쓰기)하는 기능이고 Write Configurations은 UI Program의 설정 값을 제

어기의 RAM에 저장(쓰기)하는 기능입니다.

※ Configuration의 모든 설정을 바꾼 후 Write Configurations → Save to Flash 순서

대로 버튼을 클릭하지 않으면 변경된 설정 값들은 플래시 메모리에 저장되지 않습니다.

따라서 설정 값을 변경한 후에는 Write Configurations → Save to Flash 버튼을 꼭 클

릭해야 합니다.

8-5-5. Calibration

※ Calibration은 먼저 사용자가 사용하고자 하는 Analog Input 포트와 Pulse Input 포

트를 활성화(Enable)하고 메모리에 저장(Write Configurations → Save to Flash 버튼 클

릭)한 후에 Calibration 작업을 진행해야 합니다.

또한, Analog Input과 Pulse Input 포트 활성화 및 변경에 따라서 Calibration 작업은

필수로 진행해야 합니다.

Page 81: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

79

9. 제품 종류 및 외관 치수

9-1. 제품 종류 및 외관

[그림 9-1] Stella B3 – 기본형

※ 실제 제품과 본 설명서에 기재된 이미지와 약간의 차이가 있을 수 있습니다.

Page 82: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

80

[그림 9-2] Stella B3 + 250mm - 옵션1

Page 83: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

81

[그림 9-3] Stella B3 + 380mm - 옵션2

Page 84: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

82

[그림 9-4] Stella B3 + 250mm 2단 – 옵션3

Page 85: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

83

[그림 9-5] Stella B3 상판 치수

[그림 9-6] Stella B3 하판 치수

Page 86: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

84

9-2. 옵션형 조립

Stella B3는 기본형 모양으로 조립되어 배송됩니다. 중간판 및 상판 조립은 사용자가 하

도록 구성되어 있습니다.

Stella B3의 상판과 중간판은 기둥(봉)이 연결되는 부분이 다릅니다. 아래 그림처럼 홀

모양으로 상판과 중간판을 구별하면 됩니다.

[그림 9-7] 상판 기둥 홀 모양

[그림 9-8] 중간판 기둥 홀 모양

Page 87: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

85

9-2-1. 옵션형 조립 순서

- ① Stella B3의 Top의 접시머리볼트(4개)를 풉니다.

[그림 9-9] 조립 순서 1

- ② 접시 머리 볼트가 박혀있던 부분에 동봉된 기둥(봉)을 홀에 맞춰서 끼운 후 시

계방향으로 돌려줍니다.

[그림 9-10] 조립 순서 2

Page 88: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

86

- ③ 스패너를 기둥(봉)의 홈에 끼운 후 시계방향으로 조여서 기둥(봉)을 단단히 고정

시킵니다.

[그림 9-11] 조립 순서 3

- ④ 기둥(봉) 4개를 모두 조립한 모습

[그림 9-12] 조립 순서 4

Page 89: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

87

- ⑤ 상판을 기둥(봉) 홀에 맞춰 올려놓습니다

[그림 9-13] 조립 순서 5

- ⑥ 처음 풀어놓았던 나사(접시 머리)로 상판을 고정해줍니다.

[그림 9-14] 조립 순서 6

Page 90: Stella B3 User Manual v1.00 - NTREXGO · 2013-11-18 · Stella B3 6 2. 제품 사용 전 유의사항 - 폭발성 물질이나 인화성 물질 또는 부식성 물질, 물이 닿는

Stella B3

88

10. 제품의 보증

1. 본 제품은 엄정한 품질관리 및 검사과정을 거쳐서 만들어 진 제품입니다.

2. 제품 구입 후 6개월 이내에 제품 고장 발생 시에 무상으로 A/S를 해드립니다.

3. 소 소비자의 정상적인 사용 상태에서 고장이 발생하였을 경우 보증기간 동안은 무상

으로 A/S를 해드립니다.

4. 제품 보증기간이 경과한 후에 고장이 발생할 경우 유상으로 A/S를 해드립니다.

5. 보증기간 이내라 하더라도 본 보증 이내의 유상 서비스 안내에 해당되는 경우 서비스

따라 유상으로 A/S를 해드립니다.

6. 오용, 남용 및 인가되지 않은 인력에 의한 수리, 부적절한 보관상태 자연 재해로 인한

파손은 유상으로 A/S를 해드립니다.

회 사 명 (주)엔티렉스

본 사 주 소 인천 남구 주안동 5-38 (주)엔티렉스

전 화 번 호 070 - 7019 - 8887

팩 스 번 호 02 - 6008 - 4953

E – Mail 기술문의 - [email protected]

영업문의 - [email protected]

홈 페 이 지 www.ntrexgo.com

www.devicemart.co.kr