목차

스탭 모터 제어

CUBLOC2는 스탭모터 제어를 위한 고성능 백그라운드 스탭 명령을 제공합니다. 본 시스템은 2축 을 지원하며, 각 축의 출력포트는 아래와 같이 고정되어 있습니다.

axis Pulse 핀 Direction 핀
0 10 11
1 12 13

지원 명령:

본 명령 실행 시 해당 핀은 BASIC으로 소유권이 넘어옵니다. Freepin을 사용하여 포트 소유권을 설정할 필요는 없습니다.

Steppulse와 Stepaccel은 현재 위치를 기준으로 지정한 펄스 수만큼 이동하는 상대 이동 명령입니다. 절대 위치 이동 및 원점 복귀 기능은 제공하지 않습니다.


Steppulse

Steppulse axis, pulseCount, targetSpeed

파라미터 설명
axis 축 번호 (0, 1)
pulseCount 이동할 총 펄스 수 (음수 입력 시 반대 방향 이동)
targetSpeed 목표 속도 (Hz, pulses per second), 100Hz ~ 200KHz

지정한 축에 대해 스텝 모터를 정속 제어로 구동합니다. (가감속 없음)


Stepaccel

Stepaccel axis, pulseCount, targetSpeed
Stepaccel axis, pulseCount, targetSpeed, accTime, decTime

파라미터 설명
axis 축 번호 (0, 1)
pulseCount 이동할 총 펄스 수 (음수 입력 시 반대 방향 이동)
targetSpeed 목표 속도 (Hz, pulses per second), 100Hz ~ 200KHz
accTime (생략 가능) 가속 시간 (ms 단위)
decTime (생략 가능) 감속 시간 (ms 단위)

지정한 축에 대해 스텝 모터를 가감속 제어로 구동합니다.

동작 방식

accTime과 decTime을 지정하지 않은 경우, 전체 이동 구간을 다음과 같이 분할하여 동작합니다.

속도는 다음 규칙으로 자동 설정됩니다.

accTime과 decTime을 지정한 경우, 해당 시간(ms)을 기준으로 가속 및 감속이 수행됩니다.

예제

Stepaccel 0, 10000, 1000
Stepaccel 1, -5000, 2000

Stepaccel 0, 10000, 5000, 100, 100   ' 가속 100ms, 감속 100ms

특징

Axisbusy

result = Axisbusy(axis)

파라미터 설명
result 축 동작 상태 (1=동작중, 0=정지)
axis 축 번호 (0 또는 1)

지정한 축이 현재 동작 중인지 확인합니다. 동작 중에는 1, 완료 시 0을 반환합니다.

예제

Stepaccel 0, 10000, 1000

Do
  If Axisbusy(0) = 0 Then Exit Do
Loop

주의사항


Axisstop

Axisstop axis

파라미터 설명
axis 축 번호 (0 또는 1)

지정한 축의 동작을 즉시 정지합니다.

동작 설명

예제

Stepaccel 0, 10000, 1000

If In(0) = 1 Then
  Axisstop 0
EndIf

주의사항


Axisdec

Axisdec axis, decTime Axisdec axis

파라미터 설명
axis 축 번호 (0 또는 1)
decTime (생략 가능) 감속 시간 (ms 단위)

지정한 축의 동작을 감속하여 정지합니다. 갑자기 모터를 정지시킬 수 없는 경우에 사용하세요.

동작 설명

decTime을 생략한 경우:

예제

Stepaccel 0, 10000, 5000

Wait 1000

Axisdec 0           ' 현재 감속 조건으로 정지
Stepaccel 0, 10000, 5000

Wait 1000

Axisdec 0, 200      ' 200ms 동안 감속 후 정지

특징

주의사항


예제 프로그램

Dim prevIn4 As Byte
Dim curIn4 As Byte

prevIn4 = In(4)

Do
    curIn4 = In(4)

    If curIn4 = 1 And prevIn4 = 0 Then ' 4번 포트에 High를 주면 Stepaccel 출력 시작됩니다.
        Stepaccel 0, -5000,6000
    End If

    prevIn4 = curIn4
Loop

LD와의 연동

스탭모터 제어 명령은 BASIC 전용 명령입니다. LD에서는 직접 실행할 수 없으며, 필요한 경우 M 릴레이를 이용하여 BASIC 프로그램과 연동할 수 있습니다.

예를 들어 LD에서 M0을 ON하면 BASIC에서 이를 감지하여 Stepaccel을 실행하는 방식으로 사용할 수 있습니다.

← CUBLOC2 목차로 돌아가기