19.1.5. ecmCollA_SetEnv


SYNOPSIS

t_success   ecmCollA_SetEnv(
  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개까지 충돌방지 기능을 정의할 수 있습니다.

PARAMETER

  • 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으로 설정합니다.

../../../_images/ecmCollA_SetEnv_00.jpg
  • LessOrGreater : 충돌위치인지 아닌지를 판단하기 위해서 SumPos와 Limit 값을 비교하게 되는데 이때 비교하는 방식을 설정하는 매개변수 입니다.

Value

Meaning

0 (Less)

SumPos < Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다.

1 (Greater)

SumPos > Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다.

LessOrGreater의 값을 설정할 때 일반적으로 마스터 축이 (+)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=1로 설정하고, 마스터축이 (-)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=0으로 설정하게 됩니다. LessOrGreater=0으로 설정하는 경우에는 대개의 시스템에서 Limit값은 음수값으로 설정하게 됩니다.

  • Limit : 두 축의 위치관계 연산 결과값(SumPos)의 한계치를 설정합니다.

  • ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.

RETURN VALUE

  • 이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다.

Value

Meaning

0

함수 수행에 실패하였음을 의미합니다.

1

함수 수행에 성공하였음을 의미합니다.