Vpro 지원 카메라

 

  • 지원 카메라 여부는 코그넥스 홈페이지 내 지원 페이지에서 확인 가능하다.

  • 현재 가지고 있는 카메라가 지원 목록에 있다면 CogframeGrabber 클래스에서 인식이 가능하며
    목록에 없는 카메라도 간혹 CogframeGrabbers 클래스에 인식하는 경우가 있지만 카메라 제어에 예상치 못한 문제가 생길 수 있다.

 ICogImage 취득

  • 다음은 CogframeGrabbers 클래스에 첫번째 인식 된 카메라를 8비트 흑백 이미지로 출력하는 소스다.
  • 사용하는 카메라가 칼라라면 지원 videoformat중 원하는 format으로 설정해서 Create하면 된다.

  • StartAcquire 함수 실행 후 카메라가 동작을 완료하면 Complete이벤트가 발생하고
    CompleteAcquireEX함수가 리턴하는 ICogImage를 이용하여 로직을 구현하면 된다.

  • VisionPro는 기본적으로 함수 입력 이미지가 ICogImage로 되어 있다.

  • 여러가지 이미지 포멧들을 ICogImage로 컨버트해서 사용하거나 카메라에서 직접 ICogImage로 취득해서 사용한다.

using Cognex.VisionPro;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private ICogAcqFifo acqFifo;

        public Form1()
        {
            InitializeComponent();
            InitFramegrabbers();

        }

        private void InitFramegrabbers()
        {
            CogFrameGrabbers grabbers = new CogFrameGrabbers();
            if(grabbers.Count > 0)
            {
                ICogFrameGrabber gb = grabbers[0];
                CogStringCollection videoFormat = gb.AvailableVideoFormats;
                acqFifo = gb.CreateAcqFifo(videoFormat[0], CogAcqFifoPixelFormatConstants.Format8Grey, 0, true);
                acqFifo.Complete += AcqFifo_Complete;
            }
        }

        private void AcqFifo_Complete(object sender, CogCompleteEventArgs e)
        {
            ICogAcqInfo acqInfo = new CogAcqInfo();
            ICogImage resultImage = acqFifo.CompleteAcquireEx(acqInfo);
        }

        private void OneShot()
        {
            acqFifo.StartAcquire(); 
        }
    }
}

 

Cognex Insight에서는 Serial Native Commands라는 명령어 모음으로 Tcp/ip 및 Serial 통신을 이용해서 값을 주고 받습니다

 

프로젝트에서 많이 쓰이는 것은 장비 PLC나 보드와의 Serial통신이나 PC프로그램과의 Tcp 통신이 있겠죠

 

그 커맨드 중에 가장 보편적으로 쓰이는 명령어에 대해 알아보겠습니다


 카메라 접속하기

 

텔넷으로 카메라 ip에 접속하면 로그인 화면이 출력됩니다

 

Insight Explorer 상에 설정된 사용자 접근 설정 계정 중 하나로 로그인 합니다

 

로그인이 정상적으로 되면 "User Logged In" 이라는 메세지가 출력됩니다

 

( 기본 설정으로 시작하셨다면 ID : admin , Password는 없으므로 그냥 엔터치면 됩니다 )

 

 

 

 

 트리거 신호 보내기

A0셀을 더블클릭하여 <그림3> 과 같이 Property Sheet를 들어가서 Trigger 를 Manual로 변경합니다

 

Insight 도움말에서 Set Event 를 찾아 보면 <그림4> 와 같은 Inputs 구문을 확인할 수 있습니다

SE 뒤에 8을 붙이면 이미지 한장을 취득하고 스프레드 시트를 업데이트 합니다

그림 4

 

 

SE8 명령을 보낸 후 정상적으로 동작이 완료 되면 Outputs 구문의 1이 리턴 됩니다

 

 

 소프트웨어 온/오프라인

 

장비 동작 중에 카메라의 온/오프를 제어해야 하는 경우에 쓰며

장비가 Explorer상에서 온라인이 되어야만 명령어가 동작합니다

Set Online I/O 도움말

온라인이 아닌 경우에 명령어를 보냈을 경우 -5가 리턴됩니다

 

온라인일 경우에 SO0 명령을 보낸 경우 1이 리턴되면서 인사이트 온/오프 확인 창에 메세지가 나타납니다

 

다시 SO1 명령을 보내면 1이 리턴되면서 인사이트 창에 정상적으로 온라인 메세지가 나타납니다

'Cognex > Insight-Explorer' 카테고리의 다른 글

cvsinsightdisplay 셀 값 가져오기  (0) 2019.06.03
cvsinsightdisplay 접속하기  (2) 2019.06.03

우선 Cognex에서 제공하는 Insight Explorer 버전에 맞는 SDK를 설치합니다

SDK가 설치되어 있지 않은 경우에는 셀값을 가져오는 구문이 동작하지 않습니다

 

 EasyBuilder → SpreadSheet

 

메뉴 - View - SpreadSheet 를 클릭하여 셀기반 뷰로 전환합니다

 

 셀 값 가져오기

E2셀에 1을 입력합니다

 

다음은 E2번 셀에 있는 1.000이라는 값을 가져오는 함수 예시입니다

string cellValue = cvsInSightDisplay1.Results.Cells["E2"].Text;

 

'Cognex > Insight-Explorer' 카테고리의 다른 글

데이터 통신 - Serial Native Commands  (0) 2019.06.12
cvsinsightdisplay 접속하기  (2) 2019.06.03

 

 

 

 Visual Studio에서 cvsinsightdisplay control 등록

 

도구 상자 - 마우스 오른쪽 - 항목 선택

 

 

도구 상자에 등록된 CvsInsightDisplay를 Form위에 드래그 앤 드롭

 

 Connect 함수

 

 

 

4. Connect 파라미터

   - hostName :

                     코그넥스 카메라의 DNS Name을 쓰거나 IP를 직접 입력하는 방법이 있습니다

                     보통 장비에 카메라를 여러대 연결하는 경우 고정IP를 사용하여 IP주소로 구별하는 경우가

                     많기 때문에 IP이름을 넣는 것이 보다 편합니다.

                     

   - userName, password : 

                     Insight-Explorer 의 Sensor - User Access Settings 창에서 설정 변경을 할 수 있습니다

     

   - forceConnect :

                     false일 때는 제어권을 가져올 때 (connect 할 때) 다른 제어자가 있을 경우

                     가져와도 되는지에 대한 여부를 묻는 창이 나오지만 true일 때는 무시하고 바로 연결이 됩니다.

                     단, 에뮬레이터로 테스트 할 경우엔 false를 해도 true로 동작 합니다. 

                     

5. 예시) 192.168.0.11 아이피를 가지고 있는 카메라에 admin 계정으로 접속하는 경우

//IP = 192.168.0.11 , ID = admin , Password = 없음, 강제접속여부 = false
CvsInSightDisplay1.Connect("192.168.0.11", "admin", "", false); 

                  

                     

'Cognex > Insight-Explorer' 카테고리의 다른 글

데이터 통신 - Serial Native Commands  (0) 2019.06.12
cvsinsightdisplay 셀 값 가져오기  (0) 2019.06.03

+ Recent posts