고속 카운터 (HSC)
외부에서 입력되는 펄스를 백그라운드에서 고속으로 카운트할 수 있습니다. 일반 BASIC/LD 스캔과 무관하게 동작하므로, 빠른 입력 신호도 안정적으로 처리할 수 있습니다.
최대 2채널의 HSC 입력을 지원하며, 채널당 최대 50kHz의 HSC 입력을 처리할 수 있습니다.
- 지원 채널: 0 ~ 1
입력 포트에 채널을 할당해서 사용하는 방식입니다. I입력전용 포트와, P포트에 할당 할 수 있습니다. P포트에 할당했을 경우 자동으로 입력모드로 변경됩니다.
Hscstart
Hscstart channel, port
| 파라미터 | 설명 |
|---|---|
| channel | 고속 카운터 번호 (0 또는 1) |
| port | 입력 포트 번호 |
지정한 입력 포트의 펄스를 카운트하기 시작합니다. 카운트는 백그라운드에서 지속적으로 수행됩니다.
Hscread
value = Hscread(channel)
| 파라미터 | 설명 |
|---|---|
| value | 현재 카운트 값 |
| channel | 고속 카운터 번호 (0 또는 1) |
지정한 카운터의 현재 누적 펄스 수를 반환합니다.
Hscclear
Hscclear channel
| 파라미터 | 설명 |
|---|---|
| channel | 고속 카운터 번호 (0 또는 1) |
지정한 카운터 값을 0으로 초기화합니다.
Hscstop
Hscstop channel
| 파라미터 | 설명 |
|---|---|
| channel | 고속 카운터 번호 (0 또는 1) |
지정한 카운터를 정지합니다. 정지 후에도 마지막 카운트 값은 유지됩니다.
동작 설명
- 입력 신호의 상승 엣지(Low → High)에서 카운트가 증가합니다.
- BASIC/LD 실행과 관계없이 항상 동작합니다.
Wait또는 긴 처리 중에도 카운트는 계속 수행됩니다.
예제
Hscstart 0, 8 Do A = Hscread(0) Debug Dec A, Cr Wait 1000 Loop
특징
- 고속 펄스 입력 처리 가능
- 백그라운드 동작
- CPU 부하 없음
주의사항
- 단일 입력 기반 카운터로 방향 정보는 제공하지 않습니다.
- 입력 신호 주파수는 최대 50kHz까지 지원합니다. 이를 초과할 경우 정상적인 카운트 동작이 보장되지 않습니다.
- 옵토커플러를 사용하는 경우, 옵토커플러의 응답 속도에 따라 실제 사용 가능한 입력 주파수가 낮아질 수 있습니다.
- 동일 채널에 대해 중복
Hscstart호출 시 기존 설정이 덮어써질 수 있습니다. - 입력 신호는 노이즈의 영향을 받을 수 있으므로, 쉴드 케이블 사용 또는 간단한 RC 필터를 적용하는 것이 좋습니다.
채널 사용 제한
- HSC와 엔코더 입력 기능은 내부적으로 동일한 고속 처리 자원을 공유합니다.
- 동일 채널 번호는 두 기능에서 동시에 사용할 수 없습니다.
