======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) { // 에러처리 } }