======Zero Vibration======
EtherCAT Driver의 진동억제 기능에 대한 안내 페이지입니다.
\\
===Info===
\\
* Input Shaping 을 통한 출력 파형 가공으로 설비의 진동을 제거합니다.
\\
^ 적용 전 ^ 적용 후 ^
| {{ platform:ethercat:2_info:20_zero_vibration:normal.mp4?300x530 | ZeroVibration 미적용}} | {{ platform:ethercat:2_info:20_zero_vibration:zero_vibration.mp4?300x530 | ZeroVibration 적용}} |
\\
===API===
**ecmSxCfg_SetZVISParam** : 진동 억제 기능을 위한 파라메타를 설정합니다.
\\
\\
* int ecmSxCfg_SetZVISParam (int NetID, int Axis, double NaturalFrequency, double DampingRatio, int ZVISMode, ref int ErrCode);
\\
* NetID : Network 번호
* Axis : 대상 축 번호
* NaturalFrequency : 진동 주파수 (1.0hz ~ )
* DampingRatio : 감쇠비 (default : 0)
* ZVISMode : 진동억제 모드 (1 ~ 2)
* 숫자가 클수록 진동억제 기능이 강화되지만 짧은 거리 이송시 더 오래 걸릴 수 있음
* ErrCode : 에러코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
* Return Value : CmdIdx ((ComiECAT SDK 라이브러리 발생시킨 명령들의 일련번호입니다. 단, 이 값이 0이면 함수의 수행이 실패했음을 의미합니다.))
\\
**ecmSxCfg_SetZVISEnable** : 진동 억제 기능 적용 여부를 설정합니다.
\\
\\
* int ecmSxCfg_SetZVISEnable(int NetID, int Axis, bool isEnable, ref int ErrCode)
\\
* NetID : Network 번호
* Axis : 대상 축 번호
* isEnable : 적용 여부 (true / false)
* ErrCode : 에러코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
* Return Value : CmdIdx ((ComiECAT SDK 라이브러리 발생시킨 명령들의 일련번호입니다. 단, 이 값이 0이면 함수의 수행이 실패했음을 의미합니다.))
===C#===
private void SetZeroVibration(int axisID)
{
// int ecmSxCfg_SetZVISParam(int NetID, int Axis, double NaturalFrequency, double DampingRatio, int ZVISMode, ref int ErrCode)
// int ecmSxCfg_SetZVISEnable(int NetID, int Axis, bool isEnable, ref int ErrCode)
// 진동 수 : 5.5 / 감쇠비 : 0 / Mode : 2 로 설정
ecmSxCfg_SetZVISParam(netID, axisID, 5.5, 0, 2, ref errorCode);
if (errorCode != 0)
{
// 에러처리
}
// 진동억제 기능 적용
ecmSxCfg_SetZVISEnable(netID, axisID, true, ref errorCode);
if (errorCode != 0)
{
// 에러처리
}
}