11.1.8. ecmSxCfg_SetUnitDist¶
SYNOPSIS¶
t_cmdidx ecmSxCfg_SetUnitDist(
t_i32 NetID,
t_i32 Axis,
t_f64 UnitDist,
t_i32 *ErrCode
)
DESCRIPTION¶
이 함수는 논리적 단위 거리에 대한 펄스 수를 설정합니다.
여기서 논리적 단위 거리라 함은 Move 함수에서 사용하는 단위 거리 또는 위치에 대한 펄스 수를 의미합니다.
이 함수를 사용하여 특별히 지정하지 않는 경우에는 논리적 단위 거리에 대한 펄수 수는 초기 값인 ‘1’로 사용됩니다.
PARAMETER¶
NetID : Network 번호
Axis : 대상 축 번호.
UnitDist : 논리적 거리 1을 이동하기 위해서 출력되어져야 하는 펄수 수를 지정합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
CmdIdx를 반환 합니다. CmdIdx는 ComiECAT SDK라이브러리에서 발생시킨 명령들의 일련 번호입니다. 단, 이 값이 0이면 함수의 수행이 실패했음을 의미합니다.
REFERENCE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Unit distance (Du) = Pr/Lr = 10000/5 = 2000
Unit speed (Vu) = 2000
//따라서, Unit distance"와 "Unit speed"를 2000으로 설정하면 다음과 같이 모든 //이동함수에서 거리의 단위를 mm단위에 해당하는 값으로 입력할 수 있습니다. //
#define NET 0
#define AXIS 0
// 2000/mm
ecmSxCfg_SetUnitDist (NET, AXIS, 2000, NULL);
ecmSxCfg_SetUnitSpeed (NET, AXIS, 2000, NULL);
// 속도=100(mm/s), 가/감속도=1000(mm/s^2) 으로 설정한다. //
ecmSxCfg_SetSpeedPatt (NET, AXIS, ecmSMODE_TRAPE, 0, 0, 100, 1000, 1000);
// (+)방향으로 20mm 이송한다 (실제는 20*2000 = 40000 펄스가 출력됨) //
ecmSxMot_Move (NET, AXIS, 20, NULL);
// (-)방향으로 20mm 이송한다 (실제는 20*2000 = 40000 펄스가 출력됨) //
ecmSxMot_Move) (NET, AXIS, -20, NULL);
|