[ 기술문의 ] 구동시 커맨드 포지션값 틀어짐현상
2019-01-07 14:29:50
본문
504보드 이용한 DD모터 구동시 이상현상으로 판단되어 문의드립니다.
구동 속도는 약 300rpm으로 고속 동작,
Inposition 사용, Inposition범위 = 10pulse (약 0.01˚)
UnitDistance/UnitSpeed = 1000 (1˚ = 1000pulse)로 설정,
개발환경은 Win_x64, C# 입니다.
절대위치로 이송 명령을 두번 수행하는데
첫번째 이송완료 신호(cmmSxIsDone) 체크이후 딜레이(약 500ms)를 충분히 가진뒤
두번째 이송 명령을 주면 두번째 이송목표치와 이송완료시의 Command포지션 값은 일치하는데
첫번째 이송 완료 신호(cmmSxIsDone) 체크 직후에 바로
두번째 이송 명령을 주면 이송완료시의 Command포지션값과 목표위치값에 2~3펄스에 해당하는 위치 차이가 발생합니다.
예를 들면
첫번재 위치 45˚ (ABS) 이송
-> cmmSxIsDone 확인
-> Delay 500ms
-> 두번째 위치 90˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 커맨드포지션 확인시 90˚
문제상황
첫번재 위치 45˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 두번째 위치 90˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 커맨드포지션 확인시 89.998˚
커맨드 포지션 확인시에는 cmmStGetPosition(nAxis, (int)Defines._TCmCntr.cmCNT_COMM, ref feed) 함수 이용하였고,
이송 명령은 cmmSxMoveToStart 함수로 절대위치 이송 사용하였습니다.
모터의 세틀링 타임이 있어서 Encoder값에서 차이가 발생하는것은 이해하지만
Command값에서는 차이가 발생하면 안되는것으로 알고있는데, 딜레이 시간에 따라 모션보드에서 출력해주는 Command값이 다른것은 이해가 어려워 문의드립니다.
어느부분에서 문제가 되는것인지 확인 부탁드립니다.
감사합니다.
구동 속도는 약 300rpm으로 고속 동작,
Inposition 사용, Inposition범위 = 10pulse (약 0.01˚)
UnitDistance/UnitSpeed = 1000 (1˚ = 1000pulse)로 설정,
개발환경은 Win_x64, C# 입니다.
절대위치로 이송 명령을 두번 수행하는데
첫번째 이송완료 신호(cmmSxIsDone) 체크이후 딜레이(약 500ms)를 충분히 가진뒤
두번째 이송 명령을 주면 두번째 이송목표치와 이송완료시의 Command포지션 값은 일치하는데
첫번째 이송 완료 신호(cmmSxIsDone) 체크 직후에 바로
두번째 이송 명령을 주면 이송완료시의 Command포지션값과 목표위치값에 2~3펄스에 해당하는 위치 차이가 발생합니다.
예를 들면
첫번재 위치 45˚ (ABS) 이송
-> cmmSxIsDone 확인
-> Delay 500ms
-> 두번째 위치 90˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 커맨드포지션 확인시 90˚
문제상황
첫번재 위치 45˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 두번째 위치 90˚ (ABS) 이송
-> cmmSxIsDone 확인
-> 커맨드포지션 확인시 89.998˚
커맨드 포지션 확인시에는 cmmStGetPosition(nAxis, (int)Defines._TCmCntr.cmCNT_COMM, ref feed) 함수 이용하였고,
이송 명령은 cmmSxMoveToStart 함수로 절대위치 이송 사용하였습니다.
모터의 세틀링 타임이 있어서 Encoder값에서 차이가 발생하는것은 이해하지만
Command값에서는 차이가 발생하면 안되는것으로 알고있는데, 딜레이 시간에 따라 모션보드에서 출력해주는 Command값이 다른것은 이해가 어려워 문의드립니다.
어느부분에서 문제가 되는것인지 확인 부탁드립니다.
감사합니다.
답변: 안녕하세요, 커미조아 고객지원팀입니다.
2019-01-08 17:13:18
로그 파일을 남겨 확인이 필요할 것으로 판단됩니다.
cmmDlogSetup이라는 함수를 통해 저희 라이브러리에서 제공되는 함수에 대한 사용을 확인할 수 있습니다.
관련 내용은 매뉴얼을 참조하시어 확인 후 해당 증상이 재현되었을 때의 로그파일을 보내주시면 분석해드리겠습니다.
감사합니다.
cmmDlogSetup이라는 함수를 통해 저희 라이브러리에서 제공되는 함수에 대한 사용을 확인할 수 있습니다.
관련 내용은 매뉴얼을 참조하시어 확인 후 해당 증상이 재현되었을 때의 로그파일을 보내주시면 분석해드리겠습니다.
감사합니다.