19.1.2. ecmCollA_GetEnv¶
SYNOPSIS¶
t_success ecmCollA_GetEnv(
t_i32 NetID,
t_i32 CollAIdx,
t_i32 *MasterAxis,
t_i32 *SalveAxis,
t_i32 *SubOrAdd,
t_i32 *LessOrGreater,
t_f64 *Limit,
t_i32 *ErrCode
)
DESCRIPTION¶
지정된 충돌방지 기능의 환경을 설정하는 함수입니다. 하나의 ComiECAT 마스터 장치에서는 16개까지 충돌방지 기능을 정의할 수 있습니다.
ARAMETER¶
NetID : Network 번호
CollAIdx : 충돌방지 환경설정을 하고자하는 인덱스. 참고로, 하나의 ComiECAT 마스터 자치에서 제공하는 충돌방지의 총 개수는 16개 입니다. 따라서 이 값은 0~15 사이의 값이어야 합니다.
MasterAxis : 충돌방지 기능을 적용할 마스터축 번호
SalveAxis : 충돌방지 기능을 적용할 슬레이브축 번호
SubOrAdd : 충돌위치인지 아닌지를 판단하기 위해서는 두 축의 위치관계를 연산하고 그 결과값(SumPos)을 Limit 값과 비교하게 됩니다. 이 매개변수는 두 축의 위치관계를 어떻게 연산할지를 설정하는 값입니다.
Value |
Meaning |
---|---|
0 (subtract) |
마스터축 위치에서 슬레이브축 위치를 뺀 값을 사용한다. SumPos = MasterPos - SlavePos |
1 (Add) |
마스터축 위치에서 슬레이브축 위치를 더한 값을 사용한다. SumPos = MasterPos + SlavePos |
SubOrAdd 값을 설정할 때 일반적으로 마스터 축과 슬레이브 축의구동 방향이 서로 반대일 경우(서로 같은 부호의 방향으로 이송할 때 충돌하는 경우)에는 SubOrAdd = 1로 설정하고, 구동방향이 같은 경우(서로 다른 부호의 방향으로 이송할 때 충돌하는 경우)에는 SubOrAdd = 0으로 설정합니다.
LessOrGreater : 충돌위치인지 아닌지를 판단하기 위해서 SumPos와 Limit 값을 비교하게 되는데 이때 비교하는 방식을 설정하는 매개변수 입니다.
LessOrGreater의 값을 설정할 때 일반적으로 마스터 축이 (+)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=1로 설정하고, 마스터축이 (-)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=0으로 설정하게 됩니다. LessOrGreater=0으로 설정하는 경우에는 대개의 시스템에서 Limit값은 음수값으로 설정하게 됩니다.
Value |
Meaning |
---|---|
0 (Less) |
SumPos < Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다. |
1 (Greater) |
SumPos > Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다. |
Limit : 두 축의 위치관계 연산 결과값(SumPos)의 한계치를 설정합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다.
Value |
Meaning |
---|---|
0 |
함수 수행에 실패하였음을 의미합니다. |
1 |
함수 수행에 성공하였음을 의미합니다. |