최근 소개드렸던 syncAXIS 기반의 테스트 프로그램을 공개합니다.
v.1.2.5 기반으로 제작되었으며, 주요 기능으로는
- XML 설정 파일을 기반으로 초기화/재초기화 기능
- 스테이지 제어권 변경 (Follow/Unfollow)
- 오퍼레이션 모드 변경(스캐너 , 스테이지, 스캐너+ 스테이지)
- 보정파일(Correction) 변경
- 레이저 주파수, 펄스폭 변경
- 수동 스테이지, 스캐너 위치이동
- 리스트 버퍼 테스트 (사각형, 원, 직선 등)
와 같습니다.
실행된 모습
리스트 명령 테스트시에는 버튼에 표기된 것처럼 +- 위치값이 입력됩니다. 때문에 스테이지를 기구 중심에 두고 엔코더 카운트를 0 으로 초기화 후 테스트를 진행하시기 바랍니다.
리스트 핸들링 모드는 기본적으로 slsc_ListHandlingMode_RepeatWhileBufferFull (1) 을 사용하게 됩니다. 변경에 주의 바랍니다.
몇가지 구현시 주의사항으로는
- 초기화(initialize) 함수사용시 만약 실패하게 되면, 에러개수(slsc_ctrl_get_error_count)및 상세 에러 사유(slsc_ctrl_get_error)를 확인해 보아야 합니다.
- 콜백함수들을 등록하여 사용할 경우, 해당 함수는 항상 syncAxis 내부의 쓰레드내에서 콜백호출되기 때문에, 공유 데이타에 대해서는 적절한 동기화가 필수입니다.
- 모션 가동을 중단(slsc_ctrl_stop)할 경우, 재시작(slsc_cfg_reinitialize_from_file) 혹은 삭제(slsc_cfg_delete)후 초기화(slsc_cfg_initialize_from_file)를 반드시 해야 합니다.
- 메뉴얼 문서에 따르면 내부 리스트 명령 버퍼는 기본적으로 약 40초간의 구동 데이타를 저장하게 된다고 하지만 실제로는 상당히 버퍼가 금방 차오르게 됩니다. 떄문에 리스트 데이타 삽입후 모션 계획(planning)의 계산이 충분히 되면 바로 가공을 시작(start)하는것이 바람직 한 방법입니다.
- 모션 계산이 모두 완료되면 계획된 모션 정보를 확인할수있습니다. (slsc_ctrl_get_job_characteristic) 위치, 속도, 가속도, Jerk 및 10usec 단위로 분리된 micro벡터 개수등을 알수있습니다. micro벡터개수 / 100000 하게 되면 총 가공 시간(sec) 을 알 수 있습니다.
- 가공을 시작후 리스트 데이타의 삽입이 지연되면 버퍼 언더런(under run)이 유발되어 내부 로직이 망가지는것 같습니다. (가공중 break-point 를 찍고 디버깅을 하게되어도 발생 주의)
- acqure/release 함수 대신 follow/unfollow 를 사용하세요. (문제가 많으므로)
다운로드 링크 : https://drive.google.com/file/d/1E-CsBJzso8iLJiOo5uxQeHNKEt0oD6xz/view?usp=sharing