설정하기


스텝모터 제어에 관련된 각각의 파라미터들을 설정하기 위한 명령어는 set입니다.

마이크로 스텝 분주비 설정

마이크로 스텝의 분주비를 설정하는 명령어는 mode입니다.

"set mode (division)"

division에 다음 분주 비 중 하나를 입력해야 합니다.

division 설명
1 Full-step
2 Half-step
4 1/4-step
8 1/8-step
16 1/16-step
32 1/32-step
spc_request_dev($sid, "set mode 1");
spc_request_dev($sid, "set mode 2");
spc_request_dev($sid, "set mode 4");
spc_request_dev($sid, "set mode 8");
spc_request_dev($sid, "set mode 16");
spc_request_dev($sid, "set mode 32");

제한전류 설정

제한전류를 설정하는 명령어는 vref입니다. 이 설정은 모터를 제어하기 위해 반드시 필요합니다.

"set vref (state) (value)"

state는 제한전류 설정이 필요한 다음 3가지 상태를 의미합니다.

state 설명
stop 정지 상태를 유지할 때의 제한전류
drive 동작할 때의 제한전류
lock 잠금 상태를 유지할 때의 제한전류

value는 제한전류의 양을 의미하며 각 상태별로 0 ~ 15까지 총 16단계로 설정할 수 있습니다.
이 값에 5를 설정하면 해당 상태에서의 전류를 5/15로 제한합니다.

  • 제한전류 설정 예
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set vref lock 0");

공진 범위 설정

공진 범위를 설정하는 명령어는 rsnc입니다.

"set rsnc (low_pps) (high_pps)"

low_ppshigh_pps는 공진 범위 최소값과 최대값을 각각 의미합니다. 공진 범위를 설정하면 회전속도가 공진 범위 안에 해당할 때 자동으로 high_pps에 설정된 속도로 제어합니다.

  • 공진 범위 설정 예
spc_request_dev($sid, "set rsnc 120 250");

회전속도 설정

스텝모터의 회전속도를 설정하는 명령어는 speed입니다. 이 명령어는 모터를 제어하기 전에 회전속도만 따로 설정하고자 하는 경우에 사용합니다.

"set speed (pps)"

pps는 회전속도를 의미합니다. 회전속도의 단위는 pps(pulse per second)이며, PES-2405는 최대 240,000[pps]까지 지원합니다. 그러나 실제 최대속도는 스텝모터의 종류/전압/부하에 따라 달라질 수 있습니다.

회전속도를 설정할 때 설정 값 뒤에 k를 붙이면 1000배 스케일링이 가능합니다. 예를들어 1000과 1k는 같은 값을 의미합니다.

  • 회전속도 설정 예
spc_request_dev($sid, "set speed 400");
spc_request_dev($sid, "set speed 4k"); // "set speed 4000"과 같음

가속도 및 감속도 설정

스텝모터의 가속도 및 감속도를 설정하는 명령어는 accel입니다. 이 명령어는 모터를 제어하기 전에 가속도 및 감속도만 따로 설정하고자 하는 경우에 사용합니다.

"set accel (accel) [decel]"

accel은 가속도를, decel은 감속도를 의미합니다. 이 명령에서 가속도(accel)는 반드시 입력해야 하지만 감속도(decel)는 생략이 가능합니다. 감속도를 입력하지 않으면 가속도에 입력한 값이 감속도에 자동으로 설정됩니다.
가속도의 단위는 pps/s(pps per second)이며, PES-2405는 최대 2,400,000[pps/s]까지 지원합니다.

가속도 및 감속도를 설정할 때 설정 값 뒤에 k를 붙이면 1000배 스케일링이 가능합니다. 예를 들어 1000과 1k는 같은 값을 의미합니다.

  • 가속도 설정 예
spc_request_dev($sid, "set accel 1000"); // "set accel 1000 1000"과 같음
spc_request_dev($sid, "set accel 1000 0");
spc_request_dev($sid, "set accel 0 1k"); // "set accel 0 1000"과 같음
spc_request_dev($sid, "set accel 1k 2k");

카운터 위치 설정

카운터 위치를 설정하는 명령어는 pos입니다. 카운터 위치 설정은 goto로 스텝모터를 제어할 때만 유효하고 move로 제어하는 경우 반영 되지 않습니다.

"set pos (pos)"

pos는 카운터의 위치를 의미합니다.
카운터 위치는 부호가 있는 32비트 정수 형태이고, 입력 가능한 범위는 -1000000000(10억) ~ +1000000000입니다.

카운터 위치를 설정할 때 설정 값 뒤에 k를 붙이면 1000배 스케일링이 가능합니다. 예를 들어 1000과 1k는 같은 값을 의미합니다.

  • 카운터 위치 설정 예
spc_request_dev($sid, "set pos 400");
spc_request_dev($sid, "set pos 80k"); // "set pos 80000"과 같음

디지털 입력포트 설정

디지털 입력포트를 설정하기 위한 명령어는 eio set입니다.

"eio set (p) mode (mode)"

p는 디지털 입력포트의 아이디를 의미하며 0, 1, 2 또는 3중 하나를 입력합니다.
mode는 디지털 입력포트의 입력모드를 의미합니다.

mode 설명
input 일반입력 모드
lock 제어잠금 모드
  • 디지털 입력포트 설정 예: 일반입력 모드
spc_request_dev($sid, "eio set 0 mode input");
spc_request_dev($sid, "eio set 1 mode input");
spc_request_dev($sid, "eio set 2 mode input");
spc_request_dev($sid, "eio set 3 mode input");
  • 디지털 입력포트 설정 예: 제어잠금 모드
spc_request_dev($sid, "eio set 0 mode lock");
spc_request_dev($sid, "eio set 1 mode lock");
spc_request_dev($sid, "eio set 2 mode lock");
spc_request_dev($sid, "eio set 3 mode lock");