콘텐츠로 바로 가기

Parameterization#

이 항목에서는 ‘ VisualApplets ’ 설계에서 어떤 종류의 매개변수를 구성할 수 있는지, ‘ VisualApplets ’가 링크 속성과 모듈 매개변수를 어떻게 구분하는지, 링크 속성이 파이프라인을 통해 어떻게 전파되는지, 그리고 이들 간의 충돌을 어떻게 해결하는지에 대해 설명합니다. 이 항목을 읽은 후에는 링크에 어떤 속성을 설정하고 연산자에 어떤 매개변수를 설정해야 하는지, 정적 모듈 매개변수와 동적 모듈 매개변수의 차이점, 그리고 설계 규칙을 위반하지 않으면서 설계를 특정 카메라 형식에 맞게 조정하는 방법을 이해하게 됩니다.

주요 용어

링크는 두 모듈 간의 연결을 의미합니다. 링크 속성은 해당 연결의 데이터 형식(예: 픽셀당 비트 수 또는 최대 이미지 크기)을 설명합니다. 이러한 속성은 설계 단계에서 VisualApplets 에서만 설정할 수 있습니다. 모듈 매개변수는 연산자 자체에 대한 설정(예: 임계값 또는 카메라 형식)을 말합니다. 입력한 값이 적용되지 않는 경우, 링크 속성이 모듈이 허용할 수 있는 값의 범위를 제한하는 경우가 많습니다.

정적 매개변수는 PC의 ‘ VisualApplets ’에서만 변경할 수 있습니다(설계 시). 동적 매개변수는 호스트 소프트웨어가 프레임 그래버의 애플릿과 통신하는 런타임 시에도 변경할 수 있습니다. ‘ VisualApplets ’에서 동적 매개변수로 설정한 값은 런타임 시의 기본값이 됩니다. ‘ VisualApplets ’에서의 시뮬레이션은 런타임이 아닙니다.

VisualApplets 다음과 같은 두 가지 설정을 사용합니다:

링크 속성은 링크에 설정되며, 예를 들어 이미지의 최대 너비와 높이, 비트 폭, 병렬 처리, 이미지 프로토콜, 색상 형식 및 커널 크기를 정의합니다. 링크 속성은 해당 링크에 연결된 연산자에 제약 조건을 부과합니다. 모듈 매개변수가 링크 속성과 충돌하는 경우, ‘ VisualApplets ’는 해당 값을 직접 조정하거나 오류를 보고합니다. 링크 속성은 항상 정적입니다. 즉, 설계 단계에서 VisualApplets 에서만 변경할 수 있습니다. 링크 속성은 파이프라인 전체로 전파되며, 어떤 연산자가 이를 변경하기 전까지 모든 하류 연산자에 영향을 미칩니다.

모듈 매개변수는 작동 모드, 이미지 위치, 관심 영역의 크기 등 연산자의 동작을 정의합니다. 매개변수는 정적 또는 동적일 수 있습니다. 정적 매개변수는 설계 시에만 변경할 수 있습니다. 동적 매개변수는 실행 시 호스트 소프트웨어에서 변경할 수도 있습니다. 정적 매개변수는 일반적으로 동적 매개변수보다 FPGA 리소스를 덜 사용합니다. 동적 매개변수는 애플릿이 실행되는 동안 카메라 형식이나 처리 설정을 전환해야 할 때 유용합니다. 모듈 매개변수는 종종 링크 속성에 의해 제한을 받습니다. 값을 설정할 수 없고 VisualApplets 에서 자동으로 수정되는 경우, 연결된 링크의 속성을 확인하십시오. 또한 많은 연산자가 출력에 대한 링크 속성을 정의하므로, 설계의 한쪽에서 변경된 내용이 다른 쪽으로 전파될 수 있습니다.

의 모듈 속성 및 링크 속성 CxpCamera 운영자:

연산자 및 연산자 속성

링크에 적용되는 공식 규칙에 대해서는 사용자 설명서의 “링크 규칙(Rules of Links )” 항목을 참조하십시오. VisualApplets GUI에서의 편집 워크플로에 대해서는 사용자 설명서의 “매개변수화(Parameterization )” 항목을 참조하십시오.

모듈 간의 각 링크는 링크 속성에 의해 정의됩니다. 모든 링크는 동일한 속성 집합을 가집니다. 링크 속성은 항상 고정되어 있으며, 설계 단계에서 VisualApplets 에서만 변경할 수 있습니다. 링크를 두 번 클릭하거나 링크를 마우스 오른쪽 버튼으로 클릭한 후 ‘속성’을 선택하면 링크 속성 창을 열 수 있습니다.

다음 링크 속성은 연결을 통해 이미지 데이터가 전송되는 방식을 정의합니다:

  • BitWidth: 링크당 픽셀당 비트 수. 컬러 링크의 경우, 비트 폭은 모든 색상 성분을 합친 값을 의미합니다. 카메라 조작자는 대개 초기 비트 폭을 설정합니다. 다음을 지원하는 링크의 경우 ImageProtocol = VALT_SIGNAL, 비트 폭은 항상 1비트입니다.

    • 일부 운영자는 출력을 설정할 수 있게 해줍니다 BitWidth 예를 들어, 링크를 직접 클릭하면 CastBitWidth, CONST, 또는 ModuloCount. 다른 이들은 출력을 도출한다 BitWidth 입력 링크 속성이나 모듈 매개변수를 기반으로 자동으로 설정됩니다. 예를 들어, ShiftLeft 매개변수의 값을 추가합니다 Shift 입력 비트 폭에, 그리고 MULT 입력 비트 폭의 합을 사용합니다. 다음과 같은 연산자: Coordinate_X 및 Coordinate_Y 출력값을 계산한다 BitWidth from MaxImageWidth 및 MaxImageHeight. 자동 출력 기능을 갖춘 운영자의 경우 BitWidth, Operator 레퍼런스 보여준다 auto (으)로 설정합니다. 지원되는 Link Format 표이며, 일반적으로 링크에 표시된 값은 편집할 수 없습니다. 운영자가 출력을 변경하면 BitWidth, ` VisualApplets `는 다른 연산자가 해당 값을 다시 변경할 때까지 새로운 값을 하류 링크로 전달합니다.
  • Arithmetic: 링크에 적용될 산술 연산 방식을 정의합니다. 산술 연산 방식은 다음 중 하나일 수 있습니다. Signed 또는 Unsigned.

    • 다음으로 설정된 경우 Signed, 2의 보수 연산이 사용됩니다. 부호 비트는 설정된 비트 폭에 포함됩니다.
    • 이미지 프로토콜의 경우 VALT_SIGNAL, 산술 연산은 항상 Unsigned, 설정된 비트 폭과 관계없이.
  • Parallelism: 하나의 기본 설계 클럭 주기 내에 두 모듈 간에 병렬로 전송되는 픽셀 수. 자세한 내용은 다음을 참조하십시오. Parallelism 튜토리얼 주제.

  • KernelColumns 및 KernelRows: 필터 연산자가 클럭 사이클당 필요로 하는 인접 픽셀의 수. 이미지 프로토콜의 경우 VALT_SIGNAL, 두 값 모두 항상 1입니다. 자세한 내용은 다음을 참조하십시오. Kernel 작업 튜토리얼 주제.

  • ImageProtocol: 링크상의 데이터 스트림 구조를 정의합니다. 다음과 같은 이미지 프로토콜을 사용할 수 있습니다:

    • VALT_IMAGE2D: 예를 들어, 면 스캔 카메라에서 촬영된, 줄 끝 및 프레임 끝 마커가 포함된 2차원 이미지.
    • VALT_LINE1D: 1차원 라인 데이터(예: 라인 스캔 카메라에서 얻은 데이터).
    • VALT_PIXEL0D: 이미지 크기 정보가 포함되지 않은 연속적인 픽셀 스트림.
    • VALT_SIGNAL: 트리거 논리 등에서와 같이 모든 클럭 사이클마다 유효한 단일 비트 신호.

    디자인 내에서 이미지 프로토콜이 변경될 수 있습니다. 예를 들어, SplitImage 1차원 이미지 스트림을 미리 정의된 높이의 2차원 이미지로 분할할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 이미지 프로토콜, 이미지 크기 및 데이터 구조 사용자 설명서에서.

  • ColorFormat 및 ColorFlavor: 이러한 속성은 픽셀 데이터가 어떻게 표현되는지(예: 그레이스케일 또는 RGB)를 나타냅니다. 일부 연산자는 특정 색상 형식만 지원합니다. 일부 플랫폼에서는 CoaXPress 카메라 연산자가 그레이스케일 형식만 허용합니다. 컬러 출력을 생성하려면 다음과 같은 연산자를 사용하십시오. MergeComponents. 다음과 같은 연산자들, 예를 들어 MergeComponents, ParallelUp및 CastBitWidth 색상과 관련된 링크 속성을 변경할 수 있습니다.

  • MaxImageWidth 및 MaxImageHeight: 링크가 전송할 수 있는 이미지의 최대 크기입니다. 링크에 포함된 이미지는 이 값을 초과해서는 안 되지만, 이보다 작을 수는 있습니다. 이러한 속성은 다음과 같이 라인 또는 전체 이미지를 버퍼링하는 운영자에게 적용됩니다. ImageFifo, LineBuffer, 또는 ColMax. 이 값을 처리 경로 내 가장 큰 이미지의 크기만큼은 되도록 설정하십시오. 값이 너무 작으면 설계 규칙 검사(DRC) 오류가 발생합니다. 값이 클수록 더 많은 FPGA 리소스가 사용됩니다. 카메라 조작자나 다음과 같은 조작자는 SetDimension 이러한 속성을 자주 설정합니다. MaxImageHeight 다음과 같은 경우에는 효과가 없습니다. ImageProtocol 이 다음으로 설정된 경우 VALT_LINE1D, VALT_PIXEL0D, 또는 VALT_SIGNAL.

정보

선택한 최대 이미지 크기와 병렬 처리 수준이 높을수록 설계가 소비하는 FPGA 리소스도 늘어납니다. Basler는 이러한 값을 애플리케이션에서 요구하는 수준까지만 설정할 것을 권장합니다.

각 통신사는 허용하는 출력 링크 속성과 고정된 값을 정의합니다. 일부 링크 속성은 상위 통신사에서 해당 속성의 수정을 허용하지 않기 때문에 비활성화되어 있습니다. ‘통신사 참조’ 문서에는 각 통신사에서 허용하는 링크 형식이 명시되어 있습니다.

링크 속성은 연산자에 의해 정의됩니다. 연산자의 출력 링크에서 일부 속성은 직접 변경할 수 있습니다. 그 외의 속성은 고정되어 있거나 모듈 매개변수 또는 입력 링크 속성에서 파생됩니다. 링크 속성을 변경하면, ‘ VisualApplets ’가 해당 변경 사항을 연속된 모듈과 링크 전체에 반영합니다.

값을 변경한 후 속성 대화 상자에서 [적용]을 클릭하십시오. 변경 사항이 적용되면 디자인 창에서 해당 링크가 녹색으로 바뀝니다. 녹색은 ‘ VisualApplets ’가 업데이트된 링크 속성을 반영하고 유효성을 확인했음을 의미합니다. 이는 전체 디자인에 대한 신호등 방식의 “모두 유효” 표시가 아닙니다.

VisualApplets 디자인 속의 ‘그린 링크’

링크 속성은 운영자가 변경할 때까지 모듈을 통해 전달됩니다. 하류 링크에서 속성 편집이 허용되지 않는 경우, 해당 속성을 변경할 수 있는 상류 운영자나 중간 운영자에서 속성을 설정해야 합니다. 예를 들어, ImageBuffer 연산자는 링크의 비트 폭을 변경하지 않습니다. 카메라 출력 링크의 비트 폭을 설정하거나 다음과 같은 연산자를 삽입해야 합니다. ConvertPixelFormat 또는 ShiftLeft 이는 비트 폭을 변경합니다.

링크 속성의 변경 사항은 모듈 매개변수와 충돌할 수도 있습니다. 이 경우, ` VisualApplets `는 해당 모듈과 영향을 받는 매개변수를 빨간색으로 표시합니다:

녹색 링크와 빨간색 모듈을 활용한 디자인

실행 설계 규칙 검사 레벨 1 그리고 DRC 로그를 확인하여 오류 위치를 파악하십시오. 일반적인 원인으로는 관심 영역이 MaxImageWidth 또는 MaxImageHeight, 또는 링크 비트 폭에서 허용하는 범위를 벗어난 매개변수 값:

링크 속성으로 인한 디자인 오류

모듈 매개변수#

모듈 매개변수는 연산자마다 다릅니다. 이 매개변수는 연산자가 데이터를 처리하는 방식을 제어합니다. 모듈 매개변수는 정적 또는 동적일 수 있습니다. 정적 매개변수는 설계 시점에 ‘ VisualApplets ’에서만 설정할 수 있습니다. 동적 매개변수는 실행 시점에 호스트 소프트웨어에서 ‘ microDisplay X ’, ‘ Framegrabber SDK ’ 또는 pylon을 통해 변경할 수도 있습니다. ‘Module Properties’ 대화 상자의 ‘Parameter Type’ 열에는 매개변수가 정적인지 동적인지 표시됩니다:

모듈 속성: 매개변수 유형

매개변수를 편집한 후에는 ‘모듈 속성’ 대화 상자에서 ‘적용’을 클릭하십시오. ‘ VisualApplets ’은 허용된 범위 밖인 새 값을 무시합니다. 일부 매개변수는 비활성화되어 있어 편집할 수 없습니다. 매개변수가 활성화되었는지 여부는 다른 매개변수 설정이나 입력/출력 링크 형식에 따라 달라집니다. 특정 연산자의 모듈 속성에 대한 자세한 내용은 사용 중인 연산자에 대한 ‘연산자 참조’를 확인하십시오.

샘플 설계에서 링크 및 모듈 매개변수를 설정하는 단계별 안내는 사용자 설명서의 “하드웨어 애플릿: 아이디어에서 애플리케이션까지”를 참조하십시오.

치수 매개변수#

다음과 같은 많은 사업자들, 예를 들어 LineBuffer, FrameBufferMultiRoi및 SelectROI, 매개변수를 통해 관심 영역(ROI)을 정의합니다. XLength, YLength, XOffset및 YOffset. 관심 영역은 연결된 링크의 최대 이미지 크기에 맞아야 합니다. 만약 XLength + XOffset ~을 초과한다 MaxImageWidth, 또는 YLength + YOffset ~을 초과한다 MaxImageHeight, DRC에서 오류가 보고되고 매개변수가 빨간색으로 표시됩니다.

다음 스크린샷에서, SelectROI 연산자는 다음을 통해 ROI를 정의합니다. XLength 및 YLength 매개변수:

SelectROI 연산자를 사용하여 ROI 선택하기

무한 소스와 InfiniteSource 매개변수#

카메라 모듈과 같은 연산자는 흐름 제어에 의해 중지될 수 없습니다. 이러한 연산자는 무한 소스로 동작하며, 무한 소스를 허용하는 M형 연산자나, 무한 소스 특성을 하류로 전파하는 O형 및 P형 연산자에만 연결되어야 합니다.

버퍼 연산자는 무한한 데이터 스트림을 제어 가능하고 중지 가능한 스트림으로 변환합니다. 버퍼가 중지할 수 없는 소스에서 데이터를 수신할 때는 해당 버퍼의 InfiniteSource 파라메터 ENABLED. 입력이 이미 중지 가능한 스트림인 경우, 다음을 설정합니다. InfiniteSource 에서 DISABLED.

다음과 같은 설계 규칙 검사 InfiniteSource 설정: DISABLED 『무한한 근원』 이후:

InfiniteSource가 DISABLED로 설정된 LineBuffer 연산자

다음과 같은 설계 규칙 검사 InfiniteSource 설정: ENABLED 『무한한 근원』 이후:

InfiniteSource가 ENABLED로 설정된 LineBuffer 연산자

무한 소스에 대한 자세한 내용은 ‘중지 가능한 데이터 스트림과 중지 불가능한 데이터 스트림’ 튜토리얼 항목을 참조하십시오.

오버플로우 연산자#

The Overflow 오퍼레이터( Synchronization 이 라이브러리는 다운스트림 처리가 차단된 상태에서도 중지할 수 없는 소스가 계속해서 이미지 데이터를 전송할 때 발생하는 오버플로 상황을 처리합니다. 이 라이브러리는 자체적으로 데이터를 버퍼링하지 않습니다. Basler에서는 이 라이브러리를 버퍼 연산자와 함께 사용할 것을 권장합니다. 이 연산자는 다음과는 다릅니다. 산술 오버플로우 (참조: Bit Arithmetic (튜토리얼 주제) 또는 Overflow 상태 매개변수 버퍼 연산자에 관하여 (참조: Memory 요소 튜토리얼 주제).

~을 배치하면 Overflow 무한한 소스와 다음과 같은 메모리 연산자 사이에서 LineBuffer, 다음을 설정합니다. InfiniteSource 메모리 연산자에 대해 DISABLED. 해당 Overflow 이 연산자는 이미 중단할 수 없는 스트림에서 발생하는 오버플로를 처리합니다. 다음을 활성화하면 InfiniteSource 이 토폴로지에서 메모리 모듈에 대한 설정은 잘못되어 있으며, DRC 오류를 유발합니다.

무한한 소스와 함께 오버플로 연산자 사용하기

DRC를 통한 설계 검증#

이미지 크기, 비트 폭 또는 관심 영역에 영향을 미치는 링크 속성이나 모듈 매개변수를 변경한 후에는 ‘분석(Analysis )’ → ‘설계 규칙 검사(Design Rules Check)’ → ‘레벨 1(Level 1)’을 실행하십시오. 레벨 1은 DRC 로그에 형식적 오류를 보고하고, 영향을 받는 모듈과 링크를 강조 표시합니다.

설계 규칙 검사 레벨 2 포괄적인 검사를 수행하고 FPGA 리소스를 추정합니다. 빌드하기 전에 모든 레벨 1 오류를 수정하십시오. 레벨 2에서는 무한 소스 연결도 검사하며 InfiniteSource 설정.

DRC 로그를 강조 표시된 모듈 및 링크와 함께 읽어보세요. 전체 워크플로는 ‘빈 디자인에서 실행 가능한 애플릿까지’ 튜토리얼 항목을 참조하세요.

디자인 규칙 검사 성공

모듈 매개변수와 링크 속성은 독립적인 설정이 아닙니다. 이 둘은 서로 직접적으로 연관되어 있으며, 허용되는 값의 범위를 상호 제한합니다. 입력 및 출력 연결의 링크 속성은 운영자가 처리해야 하는 데이터 형식을 정의합니다. 모듈 매개변수는 운영자가 해당 형식 내에서 데이터를 어떻게 처리할지 정의합니다. 링크 속성을 변경하면 VisualApplets 에서 해당 변경 사항을 연속된 모듈과 링크를 통해 전파합니다. 모듈 매개변수가 업데이트된 링크 속성에 더 이상 부합하지 않으면 VisualApplets 에서 해당 모듈이나 매개변수를 빨간색으로 표시합니다. 반대의 경우도 마찬가지입니다. 모듈 매개변수가 출력 링크 속성을 정의하거나 변경할 수 있으므로, 링크 변경 후에는 이전에 유효했던 값이 유효하지 않게 될 수 있습니다. 따라서 매개변수가 활성화, 비활성화되거나 특정 범위로 제한되는지는 링크 속성, 다른 모듈 매개변수, 또는 둘 모두에 따라 달라집니다. 각 연산자에 대해 연산자 참조 문서에서 이러한 종속성을 설명하고 있습니다. 전파 동작 및 링크 변경 시 발생할 수 있는 세 가지 결과에 대해서는 사용자 설명서의 “연산자 매개변수 및 링크 속성의 전파 및 종속성”을 참조하십시오.

링크를 변경한 후 매개변수 값이 적용되지 않거나 모듈이 빨간색으로 표시될 경우, 다음 순서대로 충돌을 해결하십시오. 모듈 매개변수보다 먼저 링크 속성을 확인하십시오. 링크 속성은 모듈 매개변수의 허용 값 범위를 정의합니다. 모듈 매개변수는 해당 범위 내에 있어야 합니다. 또한 많은 운영자가 출력 링크 속성을 정의하거나 변경하기 때문에, 설계의 한쪽에서 발생한 변경 사항이 다른 쪽에 영향을 미칠 수 있습니다. DRC 로그를 확인하고, 오류 메시지를 클릭하여 영향을 받은 모듈이나 링크를 강조 표시한 다음, 허용되는 링크 형식과 매개변수 종속성에 대해서는 ‘오퍼레이터 참조’를 참조하십시오. 링크나 ‘모듈 속성’ 대화 상자에서 빨간색으로 강조 표시된 부분은 시뮬레이션이나 빌드 전에 반드시 수정해야 하는 형식상 오류를 나타냅니다.

일반적인 충돌은 다음을 설정하려고 할 때 발생합니다. Value a의 매개변수 CONST 연산자(예: 500)를 입력하면, VisualApplets 에서 입력 내용을 자동으로 수정해 줍니다. 외부 링크에는 Bit Width 8비트이므로 0에서 255 사이의 값만 허용됩니다. 이 충돌을 해결하려면 링크를 늘리십시오. Bit Width 아웃바운드 링크에서, 그런 다음 모듈 매개변수를 다시 설정하십시오:

CONST: ` Bit Width ` 링크 속성과 값 모듈 속성의 종속성

다른 연산자에서도 이와 유사한 의존성이 나타납니다. On SelectBitField, 의 유효 범위는 BitOffset 매개변수는 입력 및 출력 링크에 따라 달라집니다. Bit Widths. 회색조 이미지의 경우, BitOffset 0부터 입력값까지의 범위 내에 있어야 합니다. BitWidth 마이너스 출력 BitWidth:

SelectBitField: 입력 및 출력 링크 Bit Width 의 종속성 및 BitOffset 모듈 속성

다음에서: ModuloCount 연산자, 그 Divisor 매개변수는 출력 링크에 의해 제한됩니다 Bit Width 1부터 2^n까지의 값으로, 여기서 n은 출력값이다 Bit Width:

ModuloCount: 출력 링크 Bit Width 의 종속성 및 나눗수 모듈 속성

다음과 같은 관심 영역 매개변수 XLength 및 YLength ~ 이내에 들어야 함 MaxImageWidth 및 MaxImageHeight 연결된 링크에서. 충돌은 병렬 처리, 색상 형식, 이미지 프로토콜과도 관련될 수 있습니다. 예를 들어, XLength 항상 병렬 처리 수의 배수여야 하며, 이는 ‘모듈 속성’ 대화 상자에서 다음과 같이 표시됩니다. 단계 크기:

차원 매개변수의 종속성

주요 용어

바슬러는 매개변수를 다룰 때 다음과 같은 방법을 권장합니다:

  • 임계값 설정 등과 같이 런타임 유연성이 필요한 경우에는 동적 매개변수를 사용하십시오. 여기서 런타임이란 VisualApplets 의 시뮬레이션이 아니라, 호스트 소프트웨어가 프레임 그래버의 애플릿과 통신하는 것을 의미합니다.
  • 링크 속성이나 모듈 매개변수를 변경할 때마다, 하위 링크에 전파된 링크 속성을 확인하십시오.
  • 후단 소프트웨어에 대비해 비트 폭 조정을 계획해야 합니다. 예를 들어, DMA 처리 전에 12비트 카메라 데이터를 픽셀당 16비트로 확장하는 등의 조치가 필요합니다.
  • 값을 설정할 수 없는 경우, 모듈 매개변수를 변경하기 전에 연결된 링크의 속성을 확인하십시오.
  • 링크와 모듈 간의 충돌을 조기에 파악하기 위해 DRC를 정기적으로 실행하십시오.