728x90
반응형

산업기술 12

CogCalibCheckrboardTool 사용하기

카메라 왜곡을 보정하기 위해서 화면 상의 맵핑 테이블을 만들어 보정해야 한다.이때 가장 편하게 사용할 수 있는 것이 Checkerboard다. Cognex에서 판매하는 Checkerboard도 있지만 경우에 따라 프린터해서 사용할 수도 있다.물론 사용하려는 정확도 수준에 따라 달라질 수 있다. VisionPro ToolBox의 Calibration & Fixturing 폴더에서 체크보드 툴을 선택한다. 보정 탭에서 체크의 크기와 보정 방법을 선택한다.가운데 있는 기준 막대에 따라 좌표계가 틀어지는데 이를 사용하지 않으려면 기준마크를 None으로 설정한다.체크보드의 사이즈를 타일 크기에 적용한다. 좌표축의 중심점이 카메라의 센터로 하고 싶다면 카메라 해상도의 절반을 기입하고 그렇지 않으면 체크보드의 기분 ..

산업기술/Cognex 2024.09.16

QuickBuild에서 ToolBlock 사용하기

Cognex를 사용할 시, 여러 tool을 마음대로 바꿔가며 결과를 구할 수 있도록 프로그램 하기 위해 Cognex에서 제공하는 vpp 파일을 사용한다.여기서 주의할 점은 Cognex에서 사용하는 모든 파일은 vpp라는 확장자를 가지고 있다. 그렇기 때문에 정확한 tool에서 제공하는 vpp를 읽어와야 한다.VisionPro tool은 각각 저장할 수 있지만 가장 다루기 쉬운 ToolBock를 사용하기로 한다.Job 파일의 경우 이미지 소스와 연동되는 것 같아서 Cognex에서 직접 카메라가 연결되지 않았을 때 처리가 어려운 면이 있었다.그런 면에서 ToolBlock이 다루기 쉬웠다. 우선 VisionProc QuickBuild에서 ToolBlock을 사용하려면 다음과 같은 순서로 추가하면 된다. Qui..

산업기술/Cognex 2024.09.16

meiConfig를 이용한 기어비 설정

1. Upload Controller를 눌러 위 그림과 같은 창을 띄운 후, 해당 창의 Flash Memory를 체크하고 OK 버튼을 눌러 Parameter를 업로드한다. 2. 변경하고자 하는 모터의 Encorder를 선택한 뒤 기어비를 입력한다. 경로 : Controller/MotorList/Motor n/Encoder 0/Ratio A와 B의 값은 정수만 가능하며 작은 수 일수록 연산에 유리하다. 3. 화면 상단에 다운로드를 눌러 업로드 때와 동일한 창을 띄운다. Flash Memory를 체크한 후, OK 버튼을 클릭하면 저장된다. * meiConfig는 MEI 폴더 아래 응용프로그램들 모여 있는 폴더에 함께 있다.

산업기술/MEI 2022.07.14

[MELSEC] MX Component 4.0 x64에서 ALTCOMCLI.h 에러 처리

[MFC] MX Component 4.0 x64에서 사용하기 Mitsubish의 MX Component를 x64에서 사용할 수 있는 것은 C#으로 가능하지 C++로는 불가능하다. 그렇기 때문에 COM으로 Service를 등록해서 인터페이스를 통한 작업을 할 수밖에 없다. ATL을 이용하여 서버 stormpy.tistory.com MX Component를 64비트에서 작업하려다 보면, atlcomcli.h 에러가 발생하는데, 이것은 com 초기화가 되지 않을 때 발생한다. 프로그램을 제대로 했다면, x86으로 컴파일을 하지 않고 x64로 컴파일을 한 뒤에는 지속적으로 해당 에러가 발생하게 된다. 이것은 x64 형식으로 레지스터리가 등록되었기 때문이다. 그래서 Client가 x64로 실행되면 당연히 x64로..

산업기술/MELSEC 2022.04.21

[MELSEC] MX Component 4.0 x64에서 사용하기

Mitsubish의 MX Component를 x64에서 사용할 수 있는 것은 C#으로 가능하지 C++로는 불가능하다. 그렇기 때문에 COM으로 Service를 등록해서 인터페이스를 통한 작업을 할 수밖에 없다. ATL을 이용하여 서버를 만들고 이를 이용하는 방법을 우선 숙지하자. [ATL/MFC] 32Bit Software를 64Bit Software에서 사용하기 C++에서 x86, x64 프로그램은 서로 호환해서 사용할 수 없어서 별도로 만들어 사용해야 한다. 모든 프로그램을 자신 혹은 팀이 만들어 나간다면 아무런 문제가 없다. 하지만 외부로부터 제공되는 stormpy.tistory.com 서버 만들기 이제 ATL의 기본 조작법을 익혔다면, 해당 프로젝트에 MX Component 기능들을 연결해야 한다..

산업기술/MELSEC 2022.04.19

Power PMAC Compensation Tables

1차원 Error와 2차원 Error의 보정 방법 Power PMAC은 자체적으로 제공하는 Mapping Table을 존재한다. 기존의 명령으로 저장하던 작업을 GUI를 이용하여 작업할 수 있다. IDE를 실행시킨다. Menu/Delta Tau/Compensation Table을 실행 아래와 같은 창이 실행된다. Menu Description 1 CompTable Number 현재 작업할 Table의 Number 2 CompTable Dimension 작업할 모터의 구조 ( 기본값 : 1D : Linear ) 3 Source Motor 위치를 보상해 줄 기준 모터 번호 4 Number of Targets 기준 모터의 타겟 모터 수 기준 모터의 이동 거리에 따라 타겟 모터의 보상 값도 같이 적용된다. 5 ..

Power PMAC Gantry 제어 방법

Power PMAC의 제어 방식은 매뉴얼에는 표기되어 있지 않지만, 검색을 통해서 알아본 바로는 Skew 보상 알고리즘을 채택하고 있는 것 같다. 고급 공작기계 및 복잡한 로봇에 적용에 적합한 Dynamic Multi-Block Lookahead 및 Kinematic Equation 처리 기능들이 보다 향상되었기 때문에, 보다 효율적으로 쉬운 적용이 가능하게 됐다. Gantry제어 방식에 있어서도, 기존 Turbo PMAC 보다 훨씬 우수한 Gantry Skew Control기능을 보유하고 있으며, Pre-Trajectory 알고리즘으로 저주파 잔여 진동을 제거하는 것이 가능해 짐에 따라 고속 장비의 Settling Time 최소화 구현이 비교적 쉽게 가능하게 됐다. 근래 첨단 산업에서는 고속정밀의 자동..

FAS_MoveLinearAbsPos/FAS_MoveLinearIncPos 실행 시, FMM_INVALID_SLAVE_NUM을 리턴하는 경우

FAS_MoveLinearIncPos(BYTE nNoOfBds, int* iBdID, long* lplIncPos, DWORD lFeedrate, WORD wAccelTime) 해당 포인터 변수들은 형식을 맞춰줘야 함. int ↔ long 사이의 변환은 문제없음. long ↔ double 사이의 변환은 문제 있음. struct MotionParam { long axisCount; long axisList[MotionMax_Axes]; double position[MotionMax_Axes]; double velocity[MotionMax_Axes]; }; MotionParam의 위치, 속도 등은 double로 선언되어 있어, FAS_MoveLinearIncPos에 사용하려면 변수를 casting 해야 한..

728x90
반응형