모션보드의 속도 및 거리 단위 변환 / 단위거리, 단위속도 변경방법
모션보드의 속도 및 거리 단위 변환 / 단위거리, 단위속도 변경방법에 대한 안내 페이지 입니다
단위속도/단위거리 설명 및 출력 단위 변환
- 커미조아 모션보드를 사용하며 Pulse단위가 아닌 다른 단위1)로 사용하기 위해선 출력 펄스에 대한 조절이 필요합니다.
- 이때, 보통 두 가지 방법을 통해 출력 펄스를 조절합니다
- 속도 및 이송 명령의 거리 설정시 펄스 출력을 변환하도록 변환 함수를 직접 만들어 커미조아 함수를 호출할 때 마다 사용
- 커미조아 보드의 단위 거리(Unit Distance) 및 단위 속도(Unit Speed)를 사용하고자 하는 단위로 변환 후 변환된 단위로 커미조아 함수 사용
단위 거리/속도 적용 예시
- A 서보 사용시 한번 모터가 돌아가기 위해 10000 Pulse가 필요하다고 가정합니다.2)
- 거리 단위는 회전수, 속도 단위는 초당 회전수로 설정하고 싶다고 가정합니다.
- CfgSetUnitDist() 3) 함수의 Dist 파라미터 값을 10000으로 입력하고 CfgSetUnitSpeed() 함수의 Speed값을 10000으로 입력하면 보드의 단위 속도/거리가 변경됩니다.
- 단위 변경 이후에 SxMove()의 거리 파라미터에 3을 입력하게 된다면 실제 입력되는 펄스 수는 30000펄스4)이고, 모터는 세번 회전하게 됩니다.
RPM 설정 예시
- PPR5) / 60
- 360,000 펄스에 1회전 하는 모터의 경우, UnitDistance, UnitSpeed 값에 6,000 입력
1 2 3 |
double unit = 6,000; // 360000 / 60 ec.ecmSxCfg_SetUnitDist(netID, axisID, unit, ref errorCode); ec.ecmSxCfg_SetUnitSpeed(netID, axisID, unit, ref errorCode); |
주의
- Unit distance 값이 무한소수6)이면 소수점 오차가 누적될 수 있습니다. 따라서 이런 경우 Unit distance를 1로 하고 사용자가 논리적 거리단위를 처리하는 것이 바람직합니다.