입력 신호 및 카운터 값 정보
Function | Description |
---|---|
AxcSignalSetEncInputMethod | 지정 CNT 채널의 Encoder 입력 방식을 설정한다. |
AxcSignalGetEncInputMethod | 지정 CNT 채널의 Encoder 입력 방식을 확인한다. |
AxcSignalSetEncReverse | 지정 CNT 채널의 카운터 증가 감소 방향을 반전한다. |
AxcSignalGetEncReverse | 지정 CNT 채널의 카운터 증가 감소 방향 설정을 확인한다. |
AxcSignalSetEncSource | 지정 CNT 채널의 카운터 입력 신호원을 설정한다. |
AxcSignalGetEncSource | 지정 CNT 채널의 카운터 입력 신호원을 확인한다. |
AxcStatusSetActPos | 지정 CNT 채널의 현재 카운터 값을 설정한다. |
AxcStatusGetActPos | 지정 CNT 채널의 현재 카운터 값을 확인한다. |
AxcMotSetMoveUnitPerPulse | 지정 CNT 채널의 위치 정보 단위를 설정한다. |
AxcMotGetMoveUnitPerPulse | 지정 CNT 채널의 위치 정보 단위를 확인한다. |
AxcSignalSetEncInputMethod
Purpose
지정 CNT 채널의 Encoder 입력 방식을 설정한다.
Format
C++
DWORD AxcSignalSetEncInputMethod(long lChannelNo, DWORD uMethod);
C#
uint AxcSignalSetEncInputMethod(int lChannelNo, uint uMethod);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]uMethod | Encoder(CNT 입력 신호) 방식 설정, 제품 마다 다른 값 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[3306] AXT_RT_CNT_INVALID_VALUE : 유효하지 않은 신호 입력 방식
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
Description
지정 CNT 채널의 카운터 대상 신호의 입력 방식을 지정한다. 각 CNT 모듈 ID 마다 신호 입력 방식에 따라 기능이 상이하므로 주의하여야 한다. 아래는 제품별 입력 방식 설정 값에 대한 내용이다.
모듈 ID | 유효한 입력 방식 설정 값 | 모듈 |
---|---|---|
AXT_SIO_CN2CH | 0x00~0x03 - [00h]정방향 Up/Down 1체배 - [01h]정방향 2상 1체배 - [02h]정방향 2상 2체배 - [03h]정방향 2상 4체배 |
SIO-CN2CH 2ch, local bus type |
AXT_SIO_HPC4 | SIO-HPC4 4ch, local bus type | |
AXT_SIO_RCNT2SIIIH | N3SIIIH-CNT2 2ch, network slave | |
AXT_SIO_RCNT2SIIIH_R | N3SIIIH-CNT2 2ch, network slave | |
AXT_SIO_RCNT2RTEX | N3RTEX-CNT2 2ch, network slave | |
AXT_SIO_RCNT2MLIII | N3MLIII-CNT2 2ch, network slave | |
AXT_SIO_RCNT2MLII | 0x00 ~ 0x03, 0x08, 0x09, 0x0A - [00h]정방향 Up/Down 1체배 - [01h]정방향 2상 1체배 - [02h]정방향 2상 2체배 - [03h]정방향 2상 4체배 - [08h]정방향 Pulse/Dir - [09h]정방향 Pulse/Dir 2체배 - [0Ah]정방향 Up/Down 2체배 |
PL2900 2ch, network slave(3rd party) |
설정된 입력 방식에 대한 처리 방법은 다음의 그림과 같다.
예제 코드
// 0번째 채널에 Encoder 입력 방식을 2상 4체배 방식으로 설정.
AxcSignalSetEncInputMethod (0, ObverseSqr4Mode);
// 0번째 채널에 Encoder 입력 방식을 확인.
DWORD uMethod;
AxcSignalGetEncInputMethod (0, &uMethod);
AxcSignalGetEncInputMethod
Purpose
지정 CNT 채널의 Encoder 입력 방식을 확인한다.
Format
C++
DWORD AxcSignalGetEncInputMethod(long lChannelNo, DWORD* upMethod);
C#
uint AxcSignalGetEncInputMethod(int lChannelNo, ref uint upMethod);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[out]upUpMethod | Encoder(CNT 입력 신호) 방식 설정, 제품 마다 다른 값 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
Description
지정 CNT 채널의 카운터 대상 신호의 입력 방식을 확인한다. 각 CNT 모듈 ID 마다 신호 입력 방식에 따라 기능이 상이하므로 주의하여야 한다.
예제 코드
// 0번째 채널에 Encoder 입력 방식을 2상 4체배 방식으로 설정.
AxcSignalSetEncInputMethod (0, ObverseSqr4Mode);
// 0번째 채널에 Encoder 입력 방식을 확인.
DWORD Method;
AxcSignalGetEncInputMethod (0, &Method);
AxcSignalSetEncReverse
Purpose
지정 CNT 채널의 카운터 증가 감소 방향을 반전한다.
Format
C++
DWORD AxcSignalSetEncReverse(long lChannelNo, DWORD uReverse);
C#
uint AxcSignalSetEncReverse(int lChannelNo, uint uReverse);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]uReverse | 카운터 방향 반전 설정(0 : 반전하지 않음, 1: 반전) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널의 카운터 증가 감소 방향을 반전한다. AxcSignalSetEncInputMethod 로 설정한 입력 신호에 대한 카운터의 증가/감소 방향이 반전된다.
주의 사항
AXT_SIO_RCNT2MLII(JEPMC-PL2900, MLII network slave) 모듈은 지원하진 않으며, PhaseA/B 의 결선을 서로 바꾸어 카운터 증가/감소 방향을 반전하여야 한다.
예제 코드
// 0번째 채널에 카운터 방향 반전 기능을 사용한다.
AxcSignalSetEncReverse (0, TRUE);
// 0번째 채널에 카운터 방향 반전 기능을 확인한다.
DWORD Method;
AxcSignalGetEncReverse (0, &Method);
AxcSignalGetEncReverse
Purpose
지정 CNT 채널의 카운터 증가 감소 방향 반전 설정 값을 확인한다.
Format
C++
DWORD AxcSignalGetEncReverse(long lChannelNo, DWORD* upReverse);
C#
uint AxcSignalGetEncReverse(int lChannelNo, ref uint upReverse);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[out]upReverse | 카운터 방향 반전 상태(0 : 반전하지 않음, 1: 반전) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널의 카운터 증가 감소 방향 반전 설정 값을 확인한다.
예제 코드
// 0번째 채널에 카운터 방향 반전 기능을 사용한다.
AxcSignalSetEncReverse(0, TRUE);
// 0번째 채널에 카운터 방향 반전 기능을 확인한다.
DWORD Method;
AxcSignalGetEncReverse(0, &Method);
AxcSignalSetEncSource
Purpose
지정 CNT 채널의 카운터 입력 신호원을 설정한다.
Format
C++
DWORD AxcSignalSetEncSource(long lChannelNo, DWORD uSource);
C#
uint AxcSignalSetEncSource(int lChannelNo, uint uSource);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]uSource | 카운터 입력 신호 원(0 : Phase A/B, 1: Phase Z) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널의 카운터 입력 신호원을 설정한다.
uSource | Value |
---|---|
0x0 | Phase-A와 Phase-B 신호를 카운터 입력 신호로 설정됨. |
0x1 | Phase-Z 신호를 카운터 입력 신호로 설정됨. |
주의 사항
AXT_SIO_CN2CH 와 AXT_SIO_HPC4 전용 함수이다.
예제 코드
// 0번째 채널에 카운터 입력 신호를 Phase-A/B 로 설정한다.
AxcSignalSetEncSource (0, 0);
// 0번째 채널에 카운터 입력 신호 확인한다.
DWORD uSource;
AxcSignalGetEncSource(0, &uSource);
AxcSignalGetEncSource
Purpose
지정 CNT 채널의 카운터 입력 신호원을 확인한다.
Format
C++
DWORD AxcSignalGetEncSource(long lChannelNo, DWORD* upSource);
C#
uint AxcSignalGetEncSource(int lChannelNo, ref uint upSource);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[out]upSource | 카운터 입력 신호원(0 : Phase A/B, 1: Phase Z) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널의 카운터 입력 신호원을 설정한다.
uSource | Value |
---|---|
0x0 | Phase-A와 Phase-B 신호를 카운터 입력 신호로 설정됨. |
0x1 | Phase-Z 신호를 카운터 입력 신호로 설정됨. |
주의 사항
AXT_SIO_CN2CH 와 AXT_SIO_HPC4 전용 함수이다.
예제 코드
// 0번째 채널에 카운터 입력 신호를 Phase-A/B 로 설정한다.
AxcSignalSetEncSource (0, 0);
// 0번째 채널에 카운터 입력 신호 확인한다.
DWORD uSource;
AxcSignalGetEncSource (0, &uSource);
AxcStatusSetActPos
Purpose
지정 CNT 채널의 현재 카운터 값을 설정한다.
Format
C++
DWORD AxcStatusSetActPos(long lChannelNo, double dbActPos);
C#
uint AxcStatusSetActPos(int lChannelNo, double dbActPos);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]dActPos | 설정 카운터 값(모듈 ID에 따라 카운터 값의 범위가 다를 수 있음) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
Description
지정 CNT 채널의 카운터 값을 설정한다. 설정 단위는 AxcMotSetMoveUnitPerPulse 를 사용하여 미리 지정되어야 한다.
모듈 ID | 설정 카운터 범위 |
---|---|
AXT_SIO_CN2CH(VER : 0xB0) AXT_SIO_CN2CH(VER : 0xA6) |
펄스 단위 : -2^27 ~ (2^27-1) |
AXT_SIO_HPC4(VER < 0xB0) | 펄스 단위 : -2^31 ~ (2^31-1) |
AXT_SIO_RCNT2SIIIH AXT_SIO_RCNT2SIIIH_R AXT_SIO_RCNT2RTEX AXT_SIO_RCNT2MLIII |
펄스 단위 : -2^27 ~ (2^27-1) |
AXT_SIO_RCNT2MLII | 펄스 단위 : -2^31 ~ (2^31-1) |
예제 코드
// 0채널 카운터 값을 1233.0으로 설정한다.
double dPos;
dPos = 1233.0;
AxcStatusSetActPos (0, &dPos)
AxcStatusGetActPos
Purpose
지정 CNT 채널의 현재 카운터 값을 확인한다.
Format
C++
DWORD AxcStatusGetActPos(long lChannelNo, double* dpActPos);
C#
uint AxcStatusGetActPos(int lChannelNo, ref double dpActPos);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[out]dpActPos | 현재 카운터 값(모듈 ID에 따라 카운터 값의 범위가 다를 수 있음) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
Description
지정 CNT 채널의 카운터 값을 확인한다. AxcMotSetMoveUnitPerPulse 로 설정된 단위를 기준으로 현재 카운터 값을 확인할 수 있다. 각 모듈 ID에 따라 펄스 단위의 카운터 값의 범위는 다음과 같다.
모듈 ID | 카운터 범위 (펄스 단위) |
---|---|
AXT_SIO_CN2CH(VER : 0xB0) | -2^31 ~ (2^31-1) |
AXT_SIO_CN2CH(VER : 0xA6) | -2^31 ~ (2^31-1) |
AXT_SIO_HPC4(VER < 0xB0) | -2^31 ~ (2^31-1) |
AXT_SIO_RCNT2SIIIH | -2^27 ~ (2^27-1) |
AXT_SIO_RCNT2SIIIH_R | |
AXT_SIO_RCNT2RTEX | |
AXT_SIO_RCNT2MLIII | |
AXT_SIO_RCNT2MLII | -2^31 ~ (2^31-1) |
예제 코드
// 0채널 카운터 값 확인.
double dPos;
AxcStatusGetActPos (0, &dPos);
AxcMotSetMoveUnitPerPulse
Purpose
지정 CNT 채널의 위치 정보 단위를 설정한다.
Format
C++
DWORD AxcMotSetMoveUnitPerPulse(long lChannelNo, double dMoveUnitPerPulse);
C#
uint AxcMotSetMoveUnitPerPulse(int lChannelNo, double dMoveUnitPerPulse);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]dMoveUnitPerPulse | 위치 정보 단위 설정 값 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널에 위치 정보 단위를 설정한다.
Ex) 볼스크류와 로터리 모터로 구성된 기구물에서 볼스크류 리드 피치가 10mm이고 로터리 모터의 1회전당 10000펄스 일 때 CNT 모듈 라이브러리의 모든 위치 정보를 “mm”단위로 사용하고자 한다면 다음과 같이 설정하여야 한다.
dMoveUnitPerPulse = (1회전 시 움직이는 기구물 거리[mm])/1회전에 필요한 펄스 수 = 10/10000 = 0.001
예제 코드
// 1회전당 : 10000 펄스, Screw pitch : 10mm mm 단위 위치정보 사용
AxcMotSetMoveUnitPerPulse(0, 0.001);
AxcMotGetMoveUnitPerPulse
Purpose
지정 CNT 채널의 위치 정보 단위를 확인한다.
Format
C++
DWORD AxcMotGetMoveUnitPerPulse(long lChannelNo, double* dpMoveUnitPerPuls);
C#
uint AxcMotGetMoveUnitPerPulse(int lChannelNo, ref double dpMoveUnitPerPuls);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[out]dpMoveUnitPerPuls | 위치 정보 단위 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 채널의 위치 정보 단위를 확인한다.
예제 코드
// 0채널 위치 정보 단위 확인
double dMoveUnitPerPulse;
AxcMotGetMoveUnitPerPulse (0, &dMoveUnitPerPulse);