February 27, 2021

디바이스마트 미디어:

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[디웰전자] 전류센서 파격할인!! 50% 할인이벤트!! -

2015-02-02

[에스엔에스] 신상품 대량 입고기념 할인이벤트!! -

2015-02-02

MoonWalker Series Motor Controllers User’s Manual 11. 모터제어기 오브젝트

MW001

MoonWalker Series

Motor Controllers

User’s Manual

MW-MDC24D100S / MW-MDC24D100D

MW-MDC24D200S / MW-MDC24D200D

MW-MDC24D500S / MW-MDC24D500D

 ※ 사용자 매뉴얼에 포함된 정보는 정확하고 신뢰성이 있는 내용입니다. 그러나 출판 당시 발견되지 않은 오류가 있을 수 있으니 사용자는 자신의 제품 검증을 수행하시기 바라며, 전적으로 사용자 매뉴얼에 포함된 정보에 의존하지 마시기 바랍니다.

 

11. 모터제어기 오브젝트

제어기는 모델에 따라 한 개 또는 두 개의 모터를 연결하여 제어할 수 있습니다. 이 장에서는 모터 제어부의 구성 파라미터 설정 및 명령과 상태에 관련된 오브젝트들에 대해 설명합니다.

MW053
그림 11‑1 Motor Controller Objects

싱글 채널 제어기는 하나의 모터제어기를 가집니다. 그리고 듀얼 채널 제어기는 두 개의 모터제어기를 가집니다.
듀얼 채널 제어기에서는 모터를 구분하기 위해 Sub-index를 사용합니다. 첫 번째 모터는 Sub-index가 1이고 두 번째 모터는 Sub-index가 2입니다. 싱글 채널 제어기에서는 모터가 하나이기 때문에 Sub-index로 1 또는 0을 사용할 수 있습니다.

11.1 모터 개수
모터 개수는 상수 오브젝트로 읽기만 가능합니다. 제품 생산 시 결정되며 사용자가 바꿀 수 없는 값입니다.

표 11‑1 모터 개수 확인 오브젝트

Long name, Short name Index/ Sub-index Type Description
num_motors,nm 80/0 I8 (CN) 제어기에 연결 가능한 모터의 수

상기 표에서 Long Name과 Short Name은 텍스트 모드에서 오브젝트를 엑세스 할 수 있도록 부여된 이름입니다. 그리고 Index와 Sub-index는 오브젝트를 엑세스 하기 위한 주소입니다.

Type 열은 오브젝트의 형식을 나타냅니다:

·  I8 – 부호를 가지는 8bit 정수형 수
·  I16 – 부호를 가지는 16bit 정수형 수
·  I32 – 부호를 가지는 32bit 정수형 수
·  F32 – 부호를 가지는 32bit 실수형 수

Type 열의 괄호 안 표기는 다음과 같습니다:

·  (CN) – Constant 오브젝트
·  (CM) – Command 오브젝트
·  (ST) – Status 오브젝트
·  (CP) – Configuration Parameter 오브젝트
·  (VA) – Variable 오브젝트

11.1.1 num_motors – Number of Motors
제어기에 연결 가능한 모터의 수는 최대 2개 입니다. num_motors 상수의 값으로 다음 중 하나를 가집니다:

1 – 싱글 채널 제어기
2 – 듀얼 채널 제어기

싱글 채널 제어기에는 최대 1개의 모터를 연결 가능합니다. 듀얼 채널 제어기에는 최대 2개의 모터를 연결 가능합니다.

11.2 모터 명령
이 절에서는 모터에 내려지는 위치, 속도, 전류, 전압 명령에 대해 설명합니다.
명령을 내리면 모터제어기는 해당 명령을 수행하기 위한 모드로 변경되고 명령에 따라 제어기가 동작하여 모터를 제어합니다.

표 11‑2 모터 명령 오브젝트

Long name, Short name Index/Sub-index Type Description
command, co 101/0~2 I16(CM) 모터제어기에 내려지는 명령 코드
position_command, pc 111/0~2 I32(CM) 모터의 폐루프 위치 제어 명령 (단위: pulse)
velocity_command, vc 112/0~2 F32(CM) 모터의 폐루프 속도 제어 명령 (단위: RPM)
current_command, cc 113/0~2 F32(CM) 모터의 폐루프 전류 제어 명령 (단위: A)
voltage_command, vtc 114/0~2 F32(CM) 모터에 인가되는 전압 출력 (단위: V)

11.2.1 command – Command

command에 명령 코드를 쓰는 것으로 모터제어기의 해당 기능을 실행할 수 있습니다. 다음은 명령 코드 목록입니다:

0 – Motor Power OFF
1 – Motor Power ON
2 – Clear Fault Flags
6 – Deceleration Stop
7 – Quick Stop

0 – Motor Power OFF:
모터의 전원을 차단하고 모터를 제어하지 않습니다. 모터의 전원을 차단한 것은 모터가 전원으로부터 분리된 것과 같은 효과를 냅니다. 만일 모터가 회전하고 있는 상태에서 모터에 전원을 차단한다면, 모터의 속도가 줄 지 않고 계속 회전하는 상태로 남아있게 됩니다(마찰이 없을 때).
1 – Motor Power ON:
모터에 0V 전원을 공급하고 모터를 제어하지는 않습니다. 모터에 0V 전원을 공급하는 것은 모터의 +와 – 단자를 결선하는 것과 같은 효과를 냅니다. 만일 모터가 회전하고 있는 상태에서 모터에 0V 전원을 공급한다면, 모터는 급 감속하여 정지하게 됩니다.
2 – Clear Fault Flags:
모터에 발생한 모든 폴트(Fault) 플래그를 해제합니다. 폴트 플래그를 해제한다고 해서 폴트의 원인이 해결되지는 않습니다. 사용자가 원인을 파악하여 적절한 조치를 해야 합니다.
6 – Deceleration Stop:
모터의 속도를 deceleration 파라미터에 설정된 감속도로 감속하여 정지합니다. 모터의 제어 모드가 위치 제어 모드라면 속도 제어 모드로 변경됩니다. 전류 제어 모드라면 전압 출력 모드로 변경됩니다.
7 – Quick Stop
모터를 최대한 빨리 정지합니다. 모터의 제어 모드가 위치, 속도, 전류 제어 모드라면 전압 출력 모드로 변경됩니다. 디지털 입력에서의 ‘Emergency Stop’ 기능과는 구별됩니다.

모터가 Power ON 될 때는 다음 사항을 체크합니다. 이 중 하나라도 통과되지 못하면 모터는 Power OFF 상태에 머무르게 됩니다:

·  모터제어기의 디지털 입력 중 ‘Emergency Stop’이 켜진 상태
·  모터에 흐르는 전류(currnet)가 overcurrent_limit 보다 큰 경우
·  전원의 전압(battery_voltage)이 undervoltage_limit과 overvoltage_limit 범위를 벗어난 경우
·  MOSFET와 방열반의 온도(temperature)가 overheat_limit 보다 큰 경우

모터 Power ON을 성공하면 다음 과정이 진행됩니다:

1. 아날로그 입력과 펄스 입력의 센터 안전 검사 플래그를 리셋
2. 모터제어기는 전압 출력 모드로 설정하고 0V 전압 출력
3. 위치, 속도, 전류, 전압 명령을 모두 0으로 리셋

11.2.2 position_command – Position Command

모터의 폐루프 위치 제어기가 추종해야 할 위치 명령을 내립니다. 명령을 내리기 전에 모터제어기가 속도 제어나 전류 제어, 전압 출력 모드에서 구동 중인 상황에 있었더라도 위치 제어 모드로 즉시 변경되고 position_command로 주어진 명령 인수를 추종합니다.
만일 use_soft_limit이 켜진 상태라면 위치 명령은 min_position과 max_position 범위 내로 제한됩니다. 또한 이동 중 최고 속도는 max_velocity 값에 의해 제한됩니다. Profile Mode를 켠 상태라면 가속과 감속을 위해 acceleration과 deceleration 값이 사용됩니다.
position_command를 사용하려면, 모터제어기는 다음 사항을 만족하여야 합니다:

·  모터는 ‘Motor Power ON’ 상태에 있어야 함
·  모터제어기의 디지털 입력 중 ‘Emergency Stop’, ‘Quick Stop’, ‘Declaration Stop’ 가 꺼져 있거나 제어기의 디지털 입력 포트로 매핑되어있지 않은 상태여야 함
·  모터제어기의 디지털 입력 중 ‘Forward Limit Switch’가 켜져 있는 상태라면 위치 명령이 현재 위치보다 작아야 함
·  모터제어기의 디지털 입력 중 ‘Reverse Limit Switch’가 켜져 있는 상태라면 위치 명령이 현재 위치보다 커야 함

위치 제어 모드에서는 위치 제어기와 속도 제어기, 전류 제어기가 동시에 실행됩니다. “7.3 모터제어기 구조”를 참고하십시오.

11.2.3 velocity_command – Velocity Command

모터의 폐루프 속도 제어기가 추종해야 할 속도 명령을 내립니다. 명령을 내리기 전에 모터제어기가 위치 제어나 전류 제어, 전압 출력 모드에서 구동 중인 상황에 있었더라도 속도 제어 모드로 즉시 변경되고 velocity_command로 주어진 명령 인수를 추종합니다.
속도 명령의 절대값은 max_velocity보다 클 수 없으며, –max_velocity와 max_velocity사이의 값을 가질 수 있습니다. Profile Mode를 켠 상태라면 가속과 감속을 위해 acceleration과 deceleration 값이 사용됩니다.
velocity_command를 사용하려면, 모터제어기는 다음 사항을 만족하여야 합니다:

·  모터는 “Power ON” 상태에 있어야 함
·  모터제어기의 디지털 입력 중 “Emergency Stop”, “Quick Stop”, “Declaration Stop” 가 꺼져 있거나 비활성화 상태(제어기의 디지털 입력 포트로 매핑되어있지 않은 상태)여야 함
·  모터제어기의 디지털 입력 중 “Forward Limit Switch”가 켜져 있는 상태라면 속도 명령이 0보다 작아야 함
·  모터제어기의 디지털 입력 중 “Reverse Limit Switch”가 켜져 있는 상태라면 속도 명령이 0보다 커야 함

속도 제어 모드에서는 전류 제어기가 동시에 실행됩니다. “7.3 모터제어기 구조”를 참고하십시오.

11.2.4 current_command – Current Command
모터의 폐루프 전류 제어기가 추종해야 할 전류 명령을 내립니다. 명령을 내리기 전에 모터제어기가 위치 제어나 속도 제어, 전압 출력 모드에서 구동 중인 상황에 있었더라도 전류 제어 모드로 즉시 변경되고 current_command로 주어진 명령 인수를 추종합니다.
전류 명령의 절대값은 max_current보다 클 수 없으며, –max_current와 max_current 사이의 값을 가질 수 있습니다.
current_command를 사용하려면, 모터제어기는 다음 사항을 만족하여야 합니다:

·  모터는 ‘Motor Power ON’ 상태에 있어야 함
·  모터제어기의 디지털 입력 중 ‘Emergency Stop’, ‘Quick Stop’, ‘Declaration Stop’ 가 꺼져 있거나 제어기의 디지털 입력 포트로 매핑되어있지 않은 상태여야 함
·  모터제어기의 디지털 입력 중 ‘Forward Limit Switch’가 켜져 있는 상태라면 전류 명령이 0보다 작아야 함
·  모터제어기의 디지털 입력 중 ‘Reverse Limit Switch’가 켜져 있는 상태라면 전류 명령이 0보다 커야 함

11.2.5 voltage_command – Voltage Command

voltage_command로 지정된 전압을 모터에 직접 내보냅니다. 명령을 내리기 전에 모터제어기가 위치 제어나 속도 제어, 전류 제어 모드에서 구동 중인 상황에 있었더라도 전압 출력 모드로 즉시 변경되고 voltage_command로 주어진 명령 인수를 추종합니다.
전압 명령의 절대값은 max_voltage보다 클 수 없으며, –max_voltage와 max_voltage사이의 값을 가질 수 있습니다.
current_command를 사용하려면, 모터제어기는 다음 사항을 만족하여야 합니다:

·  모터는 ‘Motor Power ON’ 상태에 있어야 함
·  모터제어기의 디지털 입력 중 ‘Emergency Stop’, ‘Quick Stop’, ‘Declaration Stop’ 가 꺼져 있거나 제어기의 디지털 입력 포트로 매핑되어있지 않은 상태여야 함
·  모터제어기의 디지털 입력 중 ‘Forward Limit Switch’가 켜져 있는 상태라면 전압 명령이 0보다 작아야 함
·  모터제어기의 디지털 입력 중 ‘Reverse Limit Switch’가 켜져 있는 상태라면 전압 명령이 0보다 커야 함

11.3 모터 상태

모터의 전압, 전류, 회전속도, 위치 카운트 값 등의 모터의 운용 상태를 읽어오는 오브젝트입니다.

표 11‑3 모터 상태 확인 오브젝트

Long name, Short name Index/ Sub-index Type Description
status, s 102/0~2 I32 (ST) 모터제어기의 현재 상태
fault, f 103/0~2 I32 (ST) 모터제어기 및 관련 I/O에서 발생한 폴트
temperature, tp 121/ 0~2 F32 (ST) FET와 방열판의 온도 (단위: °C)
voltage, vt 122/ 0~2 F32 (ST) 모터에 가해지는 전압 (단위: V)
current, c 123/ 0~2 F32 (ST) 모터에 흐르는 전류 (단위: A)
velocity, v 124/ 0~2 F32 (ST) 모터의 회전속도 (단위: RPM)
position, p 125/ 0~2 I32 (VA) 모터의 회전위치 (단위: pulse)
hall_count, h 126/ 0~2 I32 (ST) BLDC 모터의 홀 센서 카운트 값 (단위: pulse)
ai_potentiometer, pt 131/ 0~2 I32 (ST) 아날로그 입력 포트에 매핑된 위치 센서의 피드백 값
(범위: -1 ~ 1)
ai_tachometer, ta 132/ 0~2 I32 (ST) 아날로그 입력 포트에 매핑된 속도 센서의 피드백 값
(범위: -1 ~ 1)

11.3.1 status – Status

status의 각 비트는 모터제어기의 구동 상태 및 제어기와 연결된 I/O의 상태를 표시합니다. 다음 목록을 참고하십시오:

0×0001 – Motor Power ON
0×0002 – Motor Moving
0×0004 – Fault Detected
0×0008 – Emergency Stop
0×0010 – Position Controller
0×0020 – Velocity Controller
0×0040 – Current Controller
0×0100 – AI Center Safety Check Failed
0×0200 – PI Center Safety Check Failed
0×0400 – AI Min/Max Safety Check Failed
0×0800 – PI Min/Max Safety Check Failed
0×1000 – DI Stop Requested
0×2000 – Exceed the Limit Range
0×4000 – Serial Command
0×8000 – AI/PI Command
0×10000 – Script Running

0×0001 – Motor Power ON:
모터에 전원이 공급되고 위치, 속도, 전류, 전압 명령에 따라 모터제어기가 구동 가능한 상태입니다. 제어기에 명령을 내리기 전에 이 플래그가 켜진 상태인지 확인해야 합니다.
0×0002 – Motor Moving:
모터가 회전하고 있습니다. 즉, 모터의 속도가 0이 아님을 나타냅니다. 모터의 속도는 단위 시간당 엔코더 카운트 값의 변화량으로 계산합니다. 모터에 구동 명령이 내려지지 않은 상황에서 모터를 손으로 돌려 엔코더 값이 변하게 되어도 이 플래그가 켜집니다.
0×0004 – Fault Detected:
모터제어기에 폴트가 발생한 상태입니다. 폴트 발생 시 제어기와 모터, 주변회로를 보호하기 위해 모터에 공급되는 전원을 차단합니다. 폴트의 원인을 파악하려면 fault 상태를 읽어야 합니다.
0×0008 – Emergency Stop:
모터제어기의 디지털 입력에 매핑 된 ‘Emergency Stop’ 스위치가 켜진 상태입니다. 이 경우 모터는 Power OFF 상태가 됩니다. ‘Emergency stop’ 스위치가 꺼질 때까지 ‘Motor Power ON’ 상태가 되지 못합니다.
0×0010 – Position Controller:
모터의 폐루프 위치제어기가 동작 중입니다. 위치 제어기는 속도제어기와 전류제어기를 내장하고 있기 때문에 함께 동작합니다.
0×0020 – Velocity Controller:
모터의 폐루프 속도제어기가 동작 중입니다. 속도 제어기는 전류제어기를 내장하고 있기 때문에 함께 동작합니다.
0×0040 – Current Controller:
모터의 폐루프 전류 제어기가 동작 중입니다.
0×0100 – AI Center Safety Check Failed:
모터제어기의 속도나 전압 명령에 매핑된 아날로그 입력 값이 모터 전원 공급 후 0에 있지 않습니다. 입력 값이 0이 될 때까지 입력 값은 강제로 0이 됩니다.
0×0200 – PI Center Safety Check Failed:
모터제어기의 속도나 전압 명령에 매핑된 펄스 입력 값이 모터 전원 공급 후 0에 있지 않습니다. 입력 값이 0이 될 때까지 입력 값은 강제로 0이 됩니다.
0×0400 – AI Min/Max Safety Check Failed:
모터제어기의 속도나 전압 명령에 매핑된 아날로그 입력 값이 캘리브레이션의 Min/Max 범위를 벗어났습니다. 이 경우 입력 값은 강제로 0이 됩니다.
0×0800 – PI Min/Max Safety Check Failed:
모터제어기의 속도나 전압 명령에 매핑된 펄스 입력 값이 캘리브레이션의 Min/Max 범위를 벗어났습니다. 이 경우 입력 값은 강제로 0이 됩니다.
0×1000 – DI Stop Requested:
모터제어기의 디지털 입력 포드 중 ‘Declaration Stop’이나 ‘Quick Stop’이 켜진 상태입니다. 이 상태가 꺼질 때까지 모터제어기에 내려지는 위치와 속도, 전류, 전압 명령은 차단됩니다.
0×2000 – Exceed the Limit Range:
모터제어기의 디지털 입력 포트 중 ‘Forward Limit Switch’나 ‘Reverse Limit Switch’가 켜진 상태입니다. 이 상태가 꺼질 때까지 모터제어기에 내려지는 위치와 속도, 전류, 전압 명령은 제한적으로 실행됩니다. 즉, 리미트를 벗어나는 방향으로 움직이는 명령만 수행됩니다.
0×4000 – Serial Command:
시리얼(RS-232, USB) 포트와 CAN 포트로부터 모터제어기에 구동(위치와 속도, 전류, 전압) 명령이 내려지고 있습니다. 이 플래그는 구동 명령 외(구성 파라미터 읽고 쓰기와 같은 것들)에는 반응하지 않습니다.
0×8000 – AI/PI Command:
모터제어기에 매핑 된 아날로그 입력 혹은 펄스 입력 포트로부터 구동 명령이 입력되고 있습니다.
0×10000 – Script Running:
스크립트가 실행 중임을 표시합니다. 제어기의 system_status 상태의 ‘Script Running’ 플래그와 동일합니다.

’0×0010 – Position Controller’, ’0×0020 – Velocity Controller’, ’0×0040 – Current Controller’ 플래그가 모두 꺼지고 ’0×0001 – Motor Power ON’ 상태가 켜진 후에는 전압 출력 모드가 됩니다.

’0×0100 – AI Center Safety Check Failed’와 ’0×0200 – PI Center Safety Check Failed’ 플래그가 작동하려면 아날로그 입력 포트 혹은 펄스 입력 포트가 제어기의 모터 구동 명령에 매핑되어 있어야 합니다. 이 상태를 체크하는 기능은 center_safety 파라미터에 의해 켜고 끌 수 있습니다. 조이스틱이나 RC 조종기의 입력 값이 0이 아닌 상황에서 모터에 전력이 공급되어 모터가 갑자기 움직이면 위험한 상황이 발생할 수 있기 때문에 이를 방지하기 위한 기능입니다.

’0×0400 – AI Min/Max Safety Check Failed’와 ’0×0800 – PI Min/Max Safety Check Failed’ 플래그가 작동하려면 아날로그 입력 포트 혹은 펄스 입력 포트가 제어기의 모터 구동 명령에 매핑되어 있어야 합니다. 이 상태를 표시하는 기능은 min_max_safety 파라미터에 의해 켜고 끌 수 있습니다. 조이스틱이나 RC 조종기의 연결이 끊어지거나 하여 잘못된 신호가 입력되고, 이로 인해 모터가 오작동하면 위험한 상황이 발생할 수 있기 때문에 이를 방지하기 위한 기능입니다.

’0×0100 – AI Center Safety Check Failed’, ’0×0200 – PI Center Safety Check Failed’, ’0×0400 – AI Min/Max Safety Check Failed’,

’0×0800 – PI Min/Max Safety Check Failed’ 플래그가 켜지면 모터제어기의 입력 값은 0이 됩니다. 이 플래그가 켜지더라도 USB나 RS-232, CAN 포트로 내려지는 명령은 처리 됩니다.

’0×4000 – Serial Command’나 ’0×8000 – AI/PI Command’ 플래그는 통신 포트나 I/O 포트로부터 모터 구동 명령이 내려지는 상태로 250ms 동안 ON 상태가 유지됩니다.

※주의※
사용자는 상기 모터의 상태를 잘 확인하고 모터를 구동해야 합니다. 특히 ’0×0004 – Fault Detected’ 상태인 경우 폴트의 원인을 파악하여 적절한 조치를 한 후 모터 구동을 재개해야 합니다.

11.3.2 fault – Fault

모터제어기에서 폴트(Fault)가 발생하면 모터에 공급되는 전원은 차단됩니다. 폴트 상황이 해제되어야만 모터에 전력 공급이 가능합니다. 폴트 상태에서 모터제어기의 구성 파라미터 설정이나 상태 모니터링은 가능하지만 구동 명령은 실행되지 않습니다.
fault는 status의 ‘ 0×0004 – Fault Detected’ 플래그가 켜졌을 때 폴트의 발생 원인을 파악하기 위한 오브젝트 입니다. 다음 목록을 참고하십시오:

0×0001 – Overcurrent
0×0002 – Overvoltage
0×0004 – Undervoltage
0×0008 – Overheat
0×0010 – Short Circuit
0×0020 – Stall Detection
0×0040 – Velocity Error Detection
0×0080 – Position Error Detection

0×0001 – Overcurrent:
모터에 흐르는 전류가 overcurrent_limit에서 설정한 값 이상으로 흘렀습니다. 과전류(Overcurrent)는 다음 중 하나가 원인이 될 수 있습니다:
전압 명령으로 모터를 직접 구동할 때(위치/속도/전류 제어기가 동작하지 않는 상황)
폐루프 전류 제어기의 이득을 잘못 조정한 상태에서 위치, 속도, 전류 명령을 실행할 때
회전 관성이 큰 부하가 연결된 모터를 빠르게 감속하는 경우
0×0002 – Overvoltage:
제어기에 공급되는 전압이 overvoltage_limit에서 설정한 값 이상으로 올라갔습니다. 과전압(Overvoltage)은 다음 중 하나가 원인이 될 수 있습니다:
제어기 전원(배터리, 파워서플라이)로부터 제어기에 높은 전압이 공급되는 경우
회전 관성이 큰 부하가 연결된 모터를 빠르게 감속하는 경우
과전압 상황은 일반적으로 전원으로 배터리가 아닌 파워서플라이가 사용될 경우 모터의 회생전류를 흡수하지 못하여 발생합니다. 이때에는 전원에 제동저항(Brake Resistor) 회로를 구성해야 합니다.
0×0004 – Undervoltage:
제어기에 공급되는 전압이 undervoltage_limit에서 설정한 값 이하로 내려갔습니다. 저전압(Undervoltage)은 다음 중 하나가 원인이 될 수 있습니다:
제어기 전원(배터리, 파워서플라이)으로부터 낮은 전압이 공급되는 경우
회전 관성이 큰 부하가 연결된 모터를 빠르게 가속하는 경우
저전압 상황은 일반적으로 전원의 용량이 낮아 모터의 초기 구동 시 흐르는 높은 전류를 감당하지 못하여 발생합니다. profile_mode를 켜고 acceleration을 낮게 설정하여 모터가 급격히 가속하지 않도록 해야 합니다.
0×0008 – Overheat:
MOSFET와 방열판의 온도가 overheat_limit에서 설정한 값 이상으로 올라갔습니다.
0×0010 – Short Circuit:
모터의 +, – 선이 서로 단락 되었거나 전원과 단락 되었습니다. 또는 MOSFET 스위칭 소자의 파괴로 인해 H-bridge 회로가 잘못된 조합으로 켜진 상태가 되었습니다.
0×0020 – Stall Detection:
모터에 전력이 공급되는 상황에서 모터의 회전이 검출되지 않는 경우 스톨 상황으로 판단합니다. stall_detection 파라미터를 참조하십시오.
0×0040 – Velocity Error Detection:
폐루프 속도제어 모드에서 속도 오차가 커지면 속도제어 에러 상황으로 판단합니다. vel_error_detection 파라미터를 참조하십시오.
0×0080 – Position Error Detection:
위치제어 모드에서 위치 오차가 지정된 값 이상이면 위치제어 에러 상황으로 판단합니다. pos_error_detection 파라미터를 참조하십시오.

11.3.3 temperature –Temperature

temperature 상태는 MOSFET와 방열판의 온도를 나타냅니다.
이 값이 high_temperature 파라미터로 설정한 값 이상으로 올라가면 냉각 팬을 켜 온도 상승을 억제할 수 있습니다. 이 기능을 사용하려면, 제어기의 디지털 출력 포트 중 적어도 하나에 ‘High Temperature (Cooling Fan ON)’ 기능이 선택되어 있어야 합니다.
또한 이 값이 overheat_limit에서 설정한 값 이상으로 올라가면 ’0×0008 – Overheat’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.
※ MOSFET의 내부 온도는 온도 센서에의 해 측정되는 온도보다 훨씬 높을 수 있습니다.

11.3.4 voltage – Voltage

voltage 상태는 모터에 공급되는 전압을 나타냅니다.
이 값이 high_voltage 파라미터로 설정한 값 이상으로 올라가면 제동저항(Brake Resistor)을 켜 전압 상승을 억제할 수 있습니다. 이 기능을 사용하려면, 제어기의 디지털 출력 포트 중 적어도 하나에 ”High Voltage (Brake Resistor ON)’ 기능이 선택되어 있어야 합니다.
또한 이 값이 undervoltage_limit에서 설정한 값 이하로 내려가면 ’0×0004 – Undervoltage’ 폴트를 발생하고 overvoltage_limit에서 설정한 값 이상으로 올라가면 ’0×0002 – Overvoltage’ 폴트를 발생합니다. 그리고 모터는 Power OFF 상태가 됩니다.

11.3.5 current – Current

current 상태는 모터에 흐르는 전류를 나타냅니다. battery_current 오브젝트와 구분하기 바랍니다.
이 값이 overcurrent_delay 시간 동안 overcurrent_limit에서 설정한 값 이상으로 올라가면 ’0×0001 – Overcurrent’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.
또한 이 값이 peakcurrent_ratio x overcurrent_limit 이상으로 한 번이라도 올라가면 ’0×0001 – Overcurrent’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.

11.3.6 velocity – Velocity

velocity 상태는 단위 시간당 모터의 위치 변화량(회전속도)을 나타냅니다. 회전속도를 계산하려면 제어기에 엔코더나 홀센서가 연결되어 있어야 합니다. 또한 회전속도는 ai_potentiometer나 ai_tachometer 로부터 측정되거나 계산될 수 있습니다.

11.3.7 position – Position

position 변수는 모터의 위치를 나타냅니다. 위치를 카운트하려면 제어기에 엔코더나 홀센서가 연결되어 있어야 합니다. 또한 위치는 ai_potentiometer나 ai_tachometer 로부터 측정되거나 계산될 수 있습니다.
feedback_sensor가 ’1 – Encoder’로 설정된 경우 position 변수는 엔코더 카운터를 읽은 값이 됩니다. ’2 – Hall Sensors’로 설정된 경우 홀센서 카운터를 읽은 값이 됩니다.
이 절의 다른 상태 오브젝트와 달리 position은 쓰기 가능합니다. 특정한 값을 쓰면, 이 값은 바로 모터제어기에 적용됩니다. 이 때, 만일 feedback_sensor가 ’2 – Hall Sensors’로 설정되어 홀센서 카운터 값이 위치에 연결되어 있더라도 hall_count 값은 영향을 받지 않습니다.

※주의※
모터가 구동중인 상황에서 위치를 바꾸는 것은 위험한 상황을 초래할 수 있습니다. 값을 바꾸기 전에 반드시 모터는 Power OFF 상태에 있어야 합니다.

11.3.8 hall_count – Hall Count

hall_count 상태는 BLDC 모터에서만 사용됩니다. feedback_sensor가 ’2 – Hall Sensors’로 설정된 경우, 이 상태는 position 변수에 업데이트 됩니다. 그리고 이 값은 엔코더를 대신하여 폐루프 위치 제어기와 속도 제어기의 피드백으로 사용됩니다.

11.3.9 ai_potentiometer – AI Potentiometer

ai_potentiometer 상태는 모터제어기의 위치 피드백 센서 값을 가집니다. 제어기의 아날로그 입력 포트나 펄스 입력 포트 중 하나가 여기로 매핑될 수 있습니다(‘Motor feedback: Position’ 기능 매핑).
feedback_sensor가 ’3 – Potentiometer’로 설정된 경우, 이 상태는 position 변수에 업데이트 됩니다. 그리고 이 값은 엔코더를 대신하여 폐루프 위치 제어기의 피드백으로 사용됩니다.

11.3.10 ai_tachometer – AI Tachometer

ai_tachometer 상태는 모터제어기의 속도 피드백 센서 값을 가집니다. 제어기의 아날로그 입력 포트나 펄스 입력 포트 중 하나가 여기로 매핑될 수 있습니다(‘Motor feedback: Velocity’ 기능 매핑).
feedback_sensor가 ’4 – Tachometer로 설정된 경우, 이 상태는 velocity 변수에 업데이트 됩니다. 그리고 이 값은 엔코더를 대신하여 폐루프 속도 제어기의 피드백으로 사용됩니다.

 

11.4 위치 센서 설정

모터의 회전 위치와 속도를 검출하는데 사용하는 위치센서(Encoder, Hall Sensors)에 대한 설정입니다.

표 11‑4 위치 센서 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
min_position,np 141/0~2 I32 (CP) 모터가 이동 가능한 최소 위치
(단위: pulse, 범위: 0 ~ 음수)
max_position,xp 142/0~2 I32 (CP) 모터가 이동 가능한 최대 위치
(단위: pulse, 범위: 0 ~ 양수)
home_position,hp 143/0~2 I32 (CP) 홈센서 감지 시 position에 로드 되는 위치 값 설정
(단위: pulse)
encoder_ppr,ep 144/0~2 I16 (CP) 모터 1회전당 엔코더 펄스 수
(단위: pulse/rev)
num_pole_pairs,npp 145/0~2 I16 (CP) BLDC 모터에서 홀센서의 폴페어(Pole Pairs) 수
(단위: pulse/rev)
use_soft_limit,usl 146/0~2 I8 (CP) 소프트 리미트 스위치 사용 여부
(기본값: 0)

11.4.1 min_position, max_position – Min, Max Position

min_position과 max_position 파라미터는 모터가 이동 가능한 최소 위치와 최대 위치를 가집니다. 최소 위치는 양수가 될 수 없으며, 최대 위치는 음수가 될 수 없습니다.
use_soft_limit이 켜진 경우, position_command와 home_position 오브젝트는 최소 위치와 최대 위치 범위 내로 조정됩니다.
또한 min_position과 max_position은 encoder_ppr과 함께 사용되어 정규화된 아날로그 입력이나 펄스 입력을 모터제어기의 위치 명령이나 위치 피드백으로 스케일을 변환합니다.

11.4.2 home_position – Home Position

home_position 파라미터는 디지털 입력 포트에 연결된 홈 센서 감지 시 position에 로드 되는 위치 값을 가집니다.
모터의 홈 위치는 다음과 같이 결정합니다:

1. home_position에 모터의 홈 위치를 설정합니다
2. 전압 명령으로 모터를 천천히 움직입니다.
3. 홈 센서가 트리거 되면 position에 home_postion 값이 로드 됩니다.
4. 0V 전압 명령으로 모터를 정지합니다.

11.4.3 encoder_ppr – Encoder PPR

encoder_ppr 파라미터는 모터가 1회전할 때 카운트 되는 엔코더 펄스 수입니다. 모터제어기는 엔코더의 A/B상 펄스 수를 4체배 하여 카운트 합니다.
모터의 엔코더 펄스 수를 모르는 경우는, 모터를 Power OFF 하고 손으로 모터 축을 한 바퀴 돌렸을 때 카운트 되는 펄스 수를 사용하면 됩니다. 감속기가 적용된 모터에서는 감속비를 고려해야 합니다.

※ 이 파라미터는 모터의 회전속도 계산에 사용됩니다. 그리고 min_position, max_position과 함께 정규화된 아날로그 입력이나 펄스 입력을 모터제어기의 위치 명령이나 위치 피드백으로 스케일을 변환하는데도 사용되기 때문에, 모터제어기에 엔코더가 연결되지 않은 경우에도 필히 설정되어야 하는 값입니다.

11.4.4 num_pole_pairs – Number of Pole Pairs

num_pole_pairs 파라미터는 BLDC모터에서 홀센서(Hall Sensors)의 폴페어(Pole Pairs) 수입니다. 모터가 1회전 하였을 때 발생하는 펄스 수는 6 x num_pole_pairs가 됩니다. 이 파라미터는 BLDC 모터의 속도 계산에 사용될 수 있습니다. BLDC 모터 제어기에서 엔코더를 사용하지 않고 홀센서 만으로 위치 제어와 속도 제어를 수행하는 경우 이 값은 올바르게 설정되어야 합니다. 그렇지 않은 경우 모터의 속도를 정확히 계산할 수 없습니다. 만일 엔코더를 사용하는 BLDC 모터라면 이 값은 제어기의 동작에 영향을 미치지 않습니다.

11.4.5 use_soft_limit – Use Soft Limit

use_soft_limit는 소프트 리미트 스위치의 사용 여부를 결정합니다. 소프트 리미트 스위치는 실제 제어기의 디지털 입력 포트에 연결된 센서가 아니라, 소프트웨어적으로 설정된 리미트 범위를 벗어나는지에 대해 리미트 스위치의 ON/OFF 상태를 에뮬레이션 합니다.
이 값으로 다음 중 하나를 선택합니다:

0 – 소프트 리미트 사용하지 않음 (기본값)
1 – 소프트 리미트 사용함

이 값이 1로 설정된 경우, 모터의 위치(position)가 min_position과 max_position 범위를 벗어나면 리미트 스위치가 동작한 것과 같은 효과를 내도록 합니다.

 

11.5 모터 속성 설정

이 절은 모터의 특성과 모터에 연결된 부하의 특성에 따라 결정되는 오브젝트들에 대하여 설명합니다.

표 11‑5 모터 속성 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
max_current, xc 151/ 0~2 F32 (CP) 모터에 흐르는 최대 연속 전류 (단위: A)
max_voltage, xvt 152/ 0~2 F32 (CP) 모터에 가해지는 최대 전압 (단위: V)
max_velocity, xv 153/ 0~2 F32 (CP) 모터의 최대 회전 속도 (단위: RPM)
acceleration, ac 154/ 0~2 F32 (CP) 모터의 회전 가속도 (단위: RPM/s)
deceleration, dc 155/ 0~2 F32(CP) 모터의 회전 감속도 (단위: RPM/s)

※주의※
모터의 속성에 관련된 구성 파라미터들은 제어기와 모터를 안전하게 운용하기 위해 올바른 값들로 설정되어야 합니다. 모터의 데이터시트를 참고하여 모터 정격에 맞게 설정하기 바랍니다.

11.5.1 max_current – Max Current
max_current 파라미터에는 모터에 연속해서 흘릴 수 있는 최대 전류를 설정합니다. 이 값은 overcurrent_limit 보다 낮게 설정되어야 합니다.
위치제어나 속도제어 모드에서 폐루프 전류제어기는 모터에 흐르는 전류가 max_current를 넘지 않는 범위 내에서 제어합니다.

11.5.2 max_voltage – Max Voltage
max_voltage 파라미터에는 모터에 가해질 수 있는 최대 전압을 설정합니다. 이 값은 overvoltage_limit 보다 낮게 설정되어야 합니다.
위치제어나 속도제어, 전류제어, 전압 출력 모드에서 모터에 가해지는 전압은 max_voltage를 넘지 않도록 제한됩니다.

11.5.3 max_velocity – Max Velocity
max_velocity 파라미터는 모터의 최대 회전속도를 설정합니다.
위치제어 모드에서 폐루프 속도제어기는 모터의 속도가 max_velocity를 넘지 않는 범위 내에서 제어합니다.

11.5.4 acceleration, deceleration – Acceleration, Deceleration
acceleration과 deceleration 파라미터에는 각각 모터의 회전 가속도와 감속도를 설정합니다.
profile_mode가 1로 설정되어 있는 경우, 가속도와 감속도는 위치제어, 속도제어, 전압출력 모드에서 속도 프로파일을 만드는데 사용됩니다.

 

11.6 모터 구동 한계 설정

이 절에서는 모터의 구동 한계를 설정하는 오브젝트들에 대해 다룹니다.

표 11‑6 모터 구동 한계 설정 오브젝트

 Long name, Short name  Index/ Sub-index  Type  Description
 overheat_limit, ohl  161/0~2  F32 (CP)  FET와 방열판의 과열 한계 (단위: °C)
 overcurrent_limit, ocl  162/0~2  F32 (CP)  모터의 과전류 한계 (단위: A)
 overcurrent_delay, ocd  163/0~2  I16 (CP)  과전류 허용 지연 시간 (단위: ms)
 peakcurrent_ratio, pcr  164/0~2  F32 (CP)  모터의 순간 피크 전류 (단위: %)
  overvoltage_limit, ovl  165/0~2  F32 (CP)  전원단의 과전압 한계 (단위: V)
 undervoltage_limit, uvl  166/0~2  F32 (CP)  전원단의 저전압 한계 (단위: V)

모터의 상태(전압, 전류, 열 등)가 한계를 벗어나는 경우에 폴트(Fault)를 발생하고 모터는 Power OFF 상태가 됩니다.

11.6.1 overheat_limit – Overheat Limit
overheat_limit 파라미터는 방열판의 과열(Overheat) 상황을 감지하기 위한 최대 한계 온도를 설정합니다.
MOSFET와 방열판의 온도(temperature)가 overheat_limit를 넘어갈 경우, ’0×0008- Overheat’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.
이 파라미터는 MOSFET와 방열판의 열 전달을 고려하여 값을 설정해야 합니다. MOSFET의 온도는 온도 센서에의 해 측정되는 온도보다 훨씬 높을 수 있습니다.

11.6.2 overcurrent_delay, overcurrent_limit – Overcurrent Limit, Overcurrent Delay
overcurrent_delay와 overcurrent_limit 파라미터는 모터의 과전류(Overcurrent) 상황을 감지하기 위한 최대 한계전류를 설정합니다.
모터에 흐르는 전류(current)가 overcurrent_delay 동안 overcurrent_limit 값을 넘어갈 경우, ’0×0001 – Overcurrent’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.
overcurrent_limit 값은 max_current보다 120% 이상 높게 설정되어야 합니다. 모터의 전류 측정값에는 정류자에서 발생하는 아크 및 MOSFET 스위칭시 발생하는 전압 스파이크에 의해 노이즈가 많이 포함되어 있습니다. 만일 overcurrent_limit과 max_current 간에 값의 차이가 미소하다면 노이즈로 인해 폴트가 발생할 가능성이 높습니다.

11.6.3 peakcurrent_ratio – Peak Current Ratio
peakcurrent_ratio 파라미터는 모터의 과전류(Overcurrent) 상황을 감지하기 위한 피크 전류를 설정합니다.
모터에 흐르는 전류(current)가 한 순간이라도 peakcurrent_ratio x overcurrent_limit 값을 넘어갈 경우, ’0×0001 – Overcurrent’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.

11.6.4 overvoltage_limit – Overvoltage Limit
overvoltage_limit 파라미터는 모터의 과전압(Overvoltage) 상황을 감지하기 위한 최대 한계 전압을 설정합니다.
전원에서 공급되는 전압이 overvoltage_limit 값을 넘어갈 경우, ’0×0002 – Overvoltage’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.

11.6.5 undervoltage_limit – Undervoltage Limit
undervoltage_limit 파라미터는 모터의 저전압(Undervoltage) 상황을 감지하기 위한 최소 한계 전압을 설정합니다.
전원에서 공급되는 전압이 undervoltage_limit 값 아래로 내려갈 경우, ’0×0004 – Undervoltage’ 폴트를 발생하고 모터는 Power OFF 상태가 됩니다.

 

11.7 모터 구동오류 감지조건 설정

이 절에서는 모터에 구동 명령이 인가되었는데 모터가 정지해 있거나 명령을 추종하지 못하는 상황을 감지하기 위한 오브젝트들에 대해 설명합니다.

표 11‑7 모터 구동오류 감지조건 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
stall_detection, sd 167/0~2 I8 (CP) 모터의 구동 명령에 대해 움직이지 않는 상황 감지
(기본값: 0)
vel_error_detection, ved 168/0~2 I8 (CP) 폐루프 속도제어기에서 명령과 피드백 사이의
오차에 의한 이상 감지 (기본값: 0)
pos_error_detection, ped 169/0~2 I8 (CP) 폐루프 위치제어기에서 명령과 피드백 사이의
오차에 의한 이상 감지 (기본값: 0)

11.7.1 stall_detection – Stall Detection

stall_detection 파라미터는 모터의 구동 명령에 대해 움직이지 않는 상황을 감지하기 위한 조건을 설정합니다.
지정된 시간 동안 모터에 지정된 전압(PWM 듀티비로 전압 생성) 이상이 가해지는데도 모터가 회전하지 않으면 스톨(stall) 상황으로 감지합니다. 그리고 ’0×0020 – Stall Detection’ 폴트를 발생하며 모터를 Power OFF 합니다.
이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – Not used (기본 값)
1 – 100ms at 10% PWM duty ratio
2 – 200ms at 20% PWM duty ratio
3 – 400ms at 30% PWM duty ratio
4 – 700ms at 40% PWM duty ratio
5 – 1s at 50% PWM duty ratio

스톨 감지 기능은 모든 구동모드(폐루프 위치제어, 속도제어, 전류제어 모드 및 개루프 전압 출력 모드)에서 활성화 됩니다. 또한 엔코더나 홀센서와 같은 위치를 읽기 위한 센서가 제어기에 연결되어야 합니다.

11.7.2 vel_error_detection – Velocity Error Detection

vel_error_detection 파라미터는 폐루프 속도제어기에서 명령과 피드백 사이의 오차에 의한 이상을 감지하기 위한 조건을 설정합니다.
폐루프 속도제어기에서 지정된 시간 동안 명령 속도와 피드백 속도의 오차가 지정된 속도보다 커지면 속도에러 상황으로 감지합니다. 그리고 ’0×0040 – Velocity Error Detection’ 폴트를 발생하고 모터를 Power OFF 합니다.
이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – Not used (기본값)
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

속도에러 감지 기능은 폐루프 위치제어와 속도제어 모드에서 활성화 됩니다. 또한 엔코더나 홀센서와 같은 위치를 읽기 위한 센서가 제어기에 연결되어야 합니다.

※ 만일 속도 명령이 드문드문 불연속적으로 내려지는 경우에는 Velocity Error Detection 기능을 사용하지 않는 것이 좋습니다. 명령이 내려질 때 큰 속도오차가 발생하여 폴트가 발생하게 됩니다.

11.7.3 pos_error_detection – Position Error Detection

pos_error_detection 파라미터는 폐루프 위치제어기에서 명령과 피드백 사이의 오차에 의한 이상을 감지하기 위한 조건을 설정합니다.
폐루프 위치제어기에서 지정된 시간 동안 명령 위치와 피드백 위치의 오차가 지정된 거리보다 커지면 위치에러 상황으로 감지합니다. 그리고 ’0×0080 – Position Error Detection’ 폴트를 발생하고 모터를 Power OFF 합니다.
이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – Not used (기본값)
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

위치에러 감지 기능은 폐루프 위치제어 모드에서 활성화 됩니다. 또한 엔코더나 홀센서와 같은 위치를 읽기 위한 센서가 제어기에 연결되어야 합니다.

※ 만일 위치 명령이 드문드문 불연속적으로 내려지는 경우에는 Position Error Detection 기능을 사용하지 않는 것이 좋습니다. 명령이 내려질 때 큰 위치오차가 발생하여 폴트가 발생하게 됩니다.

 

11.8 모터 및 I/O 구동관련 설정

이 절에서는 모터 및 I/O의 구동에 관련된 오브젝트들에 대해 설명합니다.

표 11‑8 모터 및 I/O 구동 관련 설정

Long name, Short name Index/Sub-index Type Description
startup_power_on, spo 173/ 0~2 I8 (CP) 제어기가 시작될 때 모터 Power ON/OFF 설정
(기본값: 1)
direction, dir 174/ 0~2 I8 (CP) 모터의 정방향/역방향 회전 설정 (기본값: 0)
brake_on_delay, bod 175/ 0~2 I16 (CP) 브레이크 작동 시 지연시간 설정
(단위: ms, 기본값: 0, 범위: 0 ~ 30000)
high_voltage, hv 176/ 0~2 I16 (CP) 제동저항(Brake Resistor)을 켜는 전압 설정
(단위: V)
high_temperature, ht 177/ 0~2 I16 (CP) 냉각 팬을 켜는 온도 설정 (단위: °C)

11.8.1 startup_power_on – Startup Power ON

startup_power_on 파라미터는 제어기가 시작될 때 모터의 Power ON/OFF를 결정합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – Disable
1 – at Start-up Controller (기본값)
2 – when Motor Power OFFed

’0 – Disable’로 설정된 경우, 제어기가 시작될 때 모터는 Power OFF 상태가 됩니다.
’1 – at Start-up Controller’로 설정된 경우, 제어기가 시작될 때에만 모터 Power ON 상태로 전환을 시도합니다. Power ON에 관련된 모든 조건이 만족되면 모터는 Power ON 상태가 되고 그렇지 않으면 Power OFF 상태에 머무르게 됩니다.
’2 – when Motor Power OFFed’로 설정된 경우, 모터가 Power OFF 상태가 될 때마다 Power ON 상태로 전환을 시도합니다. 이러한 시도는 위험한 상황을 초래할 수 있기 때문에 특별한 경우를 제외하고는 되도록 사용하지 않는 것이 좋습니다.

11.8.2 direction – Direction
direction은 모터의 회전 방향과 엔코더의 카운트 방향을 결정합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – Not Change (기본값)
1 – Reverse Direction

듀얼 채널 제어기를 이동로봇에 사용하는 경우, 이 설정은 효과적입니다. 이동로봇의 좌우 바퀴에 연결되는 두 모터는 서로 등지도록 장착되기 때문에, 같은 속도 명령에 대해 두 모터의 회전 방향은 반대가 됩니다. 이럴 경우 한 쪽 모터의 direction을 1로 설정하여 회전 방향을 반대로 설정합니다.

※주의※
direction의 값이 1로 설정된 경우 모터에 가해지는 전압의 부호를 바꿉니다. 그리고 엔코더도 반대로 카운트(증가 카운트인 경우 감소 카운트로, 감소 카운트인 경우 증가 카운트로 바꿈) 합니다. 모터에 양의 전압을 가했을 때 엔코더가 감소 카운트 되는 경우에 혹은 이와 반대의 경우에, 이를 바로잡기 위해 direction 설정을 사용하면 안됩니다.

11.8.3 brake_on_delay – Brake ON Delay
brake_on_delay 파라미터의 변경은 모터에 전원이 차단된 시점부터 브레이크를 활성화하기까지의 지연 시간을 설정합니다.
이 기능을 사용하려면, 제어기의 디지털 출력 포트 중 적어도 하나에 ‘Motor Power ON (Brake Release)’ 기능이 선택되어 있어야 합니다.

11.8.4 high_voltage – High Voltage
high_voltage 파라미터의 변경은 모터의 역기전력으로 인한 파워 소스 및 제어기의 파손을 방지하기 위한 허용 전압을 설정합니다. 제어기의 전원단 전압이 상승하여 이 파라미터로 설정한 값 이상이 되면 제동저항(Brake Resistor)을 켜 전압의 상승을 억제합니다.
이 기능을 사용하려면, 제어기의 디지털 출력 포트 중 적어도 하나에 ‘High Voltage (Brake Resistor ON)’ 기능이 선택되어 있어야 합니다. 그리고 역기전력을 열로 소모하기에 충분한 용량의 션트 저항과 관련 회로가 필요합니다.

11.8.5 high_temperature – High Temperature
high_temperature 파라미터의 변경은 제어기 온도가 너무 높아 고장이 나거나 오작동 하는 것을 방지하기 위한 허용 온도를 설정합니다. 제어기의 방열판 온도가 상승하여 이 파라미터로 설정한 값 이상이 되면 냉각 팬을 켜 온도 상승을 억제합니다.
이 기능을 사용하려면, 제어기의 디지털 출력 포트 중 적어도 하나에 ‘High Temperature (Cooling Fan ON)’ 기능이 선택되어 있어야 합니다. 그리고 제어기의 열을 식히기에 충분한 냉각 팬과 관련 회로가 필요합니다.

 

11.9 폐루프 제어 설정

이 절에서는 폐루프 제어와 관련된 구성 파라미터들에 대해 설명합니다.

표 11‑9 폐루프 제어 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
feedback_sensor, fs 171/ 0~2 I8 (CP) 제어기 피드벡 센서 선택 (기본값: 1)
profile_mode, pm 172/ 0~2 I8 (CP) 속도 명령에 사다리꼴 프로파일 적용여부
(기본값: 1)

11.9.1 feedback_sensor – Feedback Sensor

feedback_sensor 파라미터의 변경은 폐루프 위치제어기와 속도제어기의 피드백 값을 읽을 센서를 결정합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – None
1 – Encoder (기본값),
2 – Hall Sensors
3 – Potentiometer
4 – Tachometer

’3 – Potentiometer’로 설정된 경우, ai_potentiometer 값은 위치제어기의 피드백으로 사용됩니다. 이때 입력 범위 -1과 1 사이 값은 min_position과 max_position 사이 값으로 스케일 조정됩니다.
’4 – Tachometer’로 설정된 경우, ai_tachometer 값은 속도제어기의 피드백으로 사용됩니다. 이때 입력 범위 -1과 1 사이 값은 -max_velocity와 max_velocity 사이 값으로 스케일 조정됩니다.

11.9.2 profile_mode – Profile Mode
프로파일 모드의 사용 목적은 기본적으로 모터나 모터가 연결된 시스템에 급격한 속도 변화로 인한 충격을 방지하는데 있습니다. 프로파일 생성기는 속도 명령이 급격하게 변하더라도 일정한 가속도와 감속도가 적용된 속도 프로파일을 생성하게 됩니다.
profile_mode는 위치제어와 속도제어 모드에서 사다리꼴 속도 프로파일의 사용 여부를 결정 합니다. 이 파라미터의 값으로 다음 중 하나를 선택합니다:

0 – None
1 – Trapezoidal Velocity Profile Mode (기본값)

profile_mode가 1로 설정된 경우, 사다리꼴 속도 프로파일의 가속과 감속 구간의 기울기는 acceleration과 deceleration에 의해 결정되고 최고 속도는 max_velocity에 의해 결정됩니다.

 

11.10 위치 제어기 이득 설정

폐루프 위치제어기는 기본적으로 PID 제어기로 구성됩니다. 이 절은 PID 제어기의 이득에 대해 설명합니다.

표 11‑10 위치 제어기 이득 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
pc_kp, pp 191/ 0~2 F32 (CP) PID 위치제어기의 비례제어 이득
pc_ki, pi 192/ 0~2 F32 (CP) PID 위치제어기의 적분제어 이득
pc_kd, pd 193/ 0~2 F32 (CP) PID 위치제어기의 미분제어 이득

11.10.1 pc_kp, pc_ki, pc_kd – Kp, Ki, Kd

폐루프 위치제어기에 사용되는 PID 제어기의 비례제어 이득 pc_kp와 적분제어 이득 pc_ki, 미분제어 이득 pc_kd을 설정합니다.
폐루프 위치제어기의 이득 설정에 대한 자세한 내용은 “7.4.3 위치 제어기 PID 이득 조정”을 참고하기 바랍니다.
※ 각각의 이득은 제어기 동작 중에도 변경이 가능합니다. 하지만 제어기 동작 중 이득을 변경하는 것은 제어기의 출력이 갑자기 변하게 되어 위험한 상황을 초래할 수 있습니다.

 

11.11 속도 제어기 이득 설정

폐루프 속도제어기는 기본적으로 PI 제어기로 구성됩니다. 이 절은 PI 제어기의 이득에 대해 설명합니다.

표 11‑11 속도 제어기 이득 설정 오브젝트

Long name, Short name Index/ Sub-index Type Description
vc_kp, vp 186/ 0~2 F32 (CP) PI 속도제어기의 비례제어 이득
vc_ki, vi 187/ 0~2 F32 (CP) PI 속도제어기의 적분제어 이득
vc_ks, vff 190/ 0~2 F32 (CP) 속도 레퍼런스에 대한 스케일 펙터

11.11.1 vc_kp, vc_ki – Kp, Ki

폐루프 속도 제어기에 사용되는 PI 제어기의 비례제어 이득 vc_kp과 적분제어 이득 vc_ki을 설정합니다.
폐루프 속도제어기의 이득 설정에 대한 자세한 내용은 “7.4.2 속도 제어기 PI 이득 조정”을 참고하기 바랍니다.
※ 각각의 이득은 제어기 동작 중에도 변경이 가능합니다. 하지만 제어기 동작 중 이득을 변경하는 것은 제어기의 출력이 갑자기 변하게 되어 위험한 상황을 초래할 수 있습니다.

11.11.2 vc_ks – Ks
vc_ks 파라미터의 변경은 폐루프 속도 제어기에서 속도 레퍼런스에 대한 스케일팩터를 설정합니다.
만약 속도 제어기의 비례제어 이득과 적분제어 이득이 0이고 스케일팩터가 어떠한 값을 가진다면, 속도 제어기 내부의 PI 제어기는 동작하지 않고 속도 레퍼런스에 이득 vc_ks만 곱해져 출력으로 내보내는 개루프 속도제어기로 동작합니다.
개루프 속도제어기는 엔코더의 해상도가 너무 낮거나 포텐셔미터와 같이 속도를 측정하기 어려운 센서가 위치제어 피드백으로 사용될 때 속도제어기를 바이패스 하기 위해 사용합니다.

11.12 전류 제어기 이득 설정

폐루프 전류제어기는 기본적으로 PI 제어기로 구성됩니다. 이 절은 PI 제어기의 이득에 대해 설명합니다.

표 11‑12 전류 제어기 이득 설정

Long name, Short name Index/ Sub-index Type  Description
 cc_kp, cp  181/ 0~2  F32 (CP)  PI 전류제어기의 비례제어 이득
 cc_ki, ci  182/ 0~2  F32 (CP)  PI 전류제어기의 적분제어 이득
 cc_kff, cff  185/ 0~2  F32 (CP)  PI 전류제어기의 모터 회전속도 전향 보상 이득

11.12.1 cc_kp, cc_ki – Kp, Ki

폐루프 전류제어기에 사용되는 PI 제어기의 비례제어 이득 cc_kp와 적분제어 이득 cc_ki를 설정합니다.
폐루프 전류제어기의 이득 설정에 대한 자세한 내용은 “7.4.1 전류 제어기 PI 이득 조정”을 참고하기 바랍니다.

※ 각각의 이득은 제어기 동작 중에도 변경이 가능합니다. 하지만 제어기 동작 중 이득을 변경하는 것은 제어기의 출력이 갑자기 변하게 되어 위험한 상황을 초래할 수 있습니다.

11.12.2 cc_kff – Kff

cc_kff 파라미터의 변경은 모터의 회전속도로부터 역기전력을 전향 보상하기 위한 이득을 설정합니다.
모터의 역기전력은 모터의 회전속도에 역기전력 상수를 곱해 계산 가능합니다. 그러므로 cc_kff는 역기전력 상수와 유사한 값을 가질 것입니다.

※ 역기전력 상수로부터 cc_kff를 계산할 때 단위 변환에 주의해야 합니다.

 

Leave A Comment

*