using Aurora.Api.Devices; using Hermes; using VisionCommon; namespace WeldingCommon.Vision.Device { /// /// 얼라인 모션 매니저 /// public class AlignMotionManager : MotionManager { /// /// 생성자 /// public AlignMotionManager() { SetMotions(); } private void SetMotions() { // 예) 모든 SubSystem에 대해 DefaultMotion 설정 foreach (eUnitId unitId in VisionRecipeManager.GetUnitIds()) { foreach (SubSysInfo subSysInfo in VisionRecipeManager.GetSubSysInfos(unitId)) { SetMotion(subSysInfo, new DefaultMotion()); } } // 예) UVW Align 시스템 (Unit1, SubSys1) //var subSysInfo1 = VisionRecipeManager.GetSubSysInfo(eUnitId.Unit1, eSubSysId.SubSys1); //SetMotion(subSysInfo1, new UvwAlignMotion()); } } /// /// 샘플 장비 모션 - UVW 얼라인 모션 제어 /// public class UvwAlignMotion : IMotion { public int RelMove(Position delta) { // delta 만큼 상대위치 이동 한다. return E1.OK; } public int AbsMove(Position position) { // 요청한 위치로 이동한다. return E1.OK; } public int MovePosition(ePositionType positionType) { // 1. 레시피 또는 모델에서 ePositionType에 맞는 포지션을 가져온다. // 예) 비전 얼라인 측정을 위한 티칭 포지션 // 2. 포지션으로 AbsMove 절대 위치 이동한다. return E1.OK; } public Position GetPosition() { // 현재 모터 위치를 가져온다. return new Position(); } } }