CUBLOC2는 스탭모터 제어를 위한 고성능 백그라운드 스탭 명령을 제공합니다. 본 시스템은 2축 을 지원하며, 각 축의 출력포트는 아래와 같이 고정되어 있습니다.
| axis | Pulse 핀 | Direction 핀 |
|---|---|---|
| 0 | 10 | 11 |
| 1 | 12 | 13 |
지원 명령:
본 명령 실행 시 해당 핀은 BASIC으로 소유권이 넘어옵니다. Freepin을 사용하여 포트 소유권을 설정할 필요는 없습니다.
Steppulse와 Stepaccel은 현재 위치를 기준으로 지정한 펄스 수만큼 이동하는 상대 이동 명령입니다. 절대 위치 이동 및 원점 복귀 기능은 제공하지 않습니다.
Steppulse axis, pulseCount, targetSpeed
| 파라미터 | 설명 |
|---|---|
| axis | 축 번호 (0, 1) |
| pulseCount | 이동할 총 펄스 수 (음수 입력 시 반대 방향 이동) |
| targetSpeed | 목표 속도 (Hz, pulses per second), 100Hz ~ 200KHz |
지정한 축에 대해 스텝 모터를 정속 제어로 구동합니다. (가감속 없음)
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
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 axis
| 파라미터 | 설명 |
|---|---|
| axis | 축 번호 (0 또는 1) |
지정한 축의 동작을 즉시 정지합니다.
Axisbusy는 0을 반환합니다.Stepaccel 0, 10000, 1000 If In(0) = 1 Then Axisstop 0 EndIf
Axisdec axis, decTime
Axisdec axis
| 파라미터 | 설명 |
|---|---|
| axis | 축 번호 (0 또는 1) |
| decTime (생략 가능) | 감속 시간 (ms 단위) |
지정한 축의 동작을 감속하여 정지합니다. 갑자기 모터를 정지시킬 수 없는 경우에 사용하세요.
decTime을 생략한 경우:
Stepaccel 동작 중이면 해당 명령의 감속 조건을 사용합니다.Steppulse 동작 중이면 내부 기본 감속 시간(약 100ms)을 사용합니다.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
스탭모터 제어 명령은 BASIC 전용 명령입니다. LD에서는 직접 실행할 수 없으며, 필요한 경우 M 릴레이를 이용하여 BASIC 프로그램과 연동할 수 있습니다.
예를 들어 LD에서 M0을 ON하면 BASIC에서 이를 감지하여 Stepaccel을 실행하는 방식으로 사용할 수 있습니다.