Operator IntParamTranslator

Operator Library: Parameters

Operator IntParamTranslator는 하나 이상의 다른 operator 파라미터에 대한 번역된 액세스(읽기 및 쓰기)를 제공합니다. 계산을 위해 공식을 정의하며, 이 공식의 구문은 GenICam API 버전 2.0을 따릅니다. 자세한 구문 설명은 아래에서 확인할 수 있습니다.

또한 이 operator를 사용하여 번역 공식에 사용할 사용자 정의 전역 상수를 생성할 수 있습니다. Value가 정적일 때 DisplayHierarchy 파라미터를 ::로 설정하여 전역 상수를 생성할 수 있습니다. 결과 상수는 시스템 전체에서 사용할 수 있으며 모든 파라미터 번역 공식에서 액세스할 수 있습니다. 번역 공식에서 전역 상수를 사용하는 방법에 대한 자세한 내용은 DisplayHierarchy 파라미터 설명을 참조하십시오.

Operator IntParamTranslator는 VA_SINT 타입의 맵 파라미터를 생성합니다. 맵 파라미터의 이름은 Value입니다.

이 operator는 파라미터 Value의 타입을 VA_SINT로 정의하지만, 쓰기 또는 읽기 작업 중에 액세스되는 파라미터의 데이터 타입을 제한하지는 않습니다. 예를 들어 operator에 정의된 공식에는 float 타입의 파라미터에 대한 액세스가 포함될 수 있습니다.

Read Action

파라미터 ReadAction에서는 번역 오퍼레이터의 파라미터 Value에 대한 읽기 액세스 시 어떤 작업이 수행될지 정의합니다. 파라미터 Value는순순히 값을 유지하는 것뿐만 아니라, 파라미터 Value의 값이 수식으로부터 계산됩니다. 이 수식은 파라미터 ReadAction에서 정의합니다. 파라미터 Value에 대한 읽기 액세스가 발생하는 즉시, ReadAction에서 정의한 수식이 실행되며 그 결과가 값을 요청한 엘리먼트로 전달됩니다.

수식은 디자인 내 어디에 있든 오퍼레이터 파라미터의 값을 포함할 수 있습니다. 이러한 값 중 하나가 변경되는 즉시, 번역 오퍼레이터의 파라미터 Value의 계산은 새로운 결과를 도출하게 됩니다 (파라미터 Value가 이전에 유지하던 값과 다름). 수식은 파라미터의 값뿐만 아니라 최소값, 최대값, 스텝 크기 또는 열거형 항목의 수치 값과 같은 파라미터의 특정 Property도 포함할 수 있습니다.

Write Action

파라미터 WriteAction에서는 번역 오퍼레이터의 파라미터 Value에 대한 쓰기 액세스 중에 어떤 작업이 수행될지 정의합니다. 참조 오퍼레이터를 사용하는 것과 달리, 파라미터 Value의 값을 디자인 내의 다른 파라미터로 단순히 전달하지 않습니다. 대신, 파라미터 Value의 값은 번역 오퍼레이터의 파라미터 WriteAction에서 정의한 일련의 쓰기 작업에 사용됩니다. 쓰기 작업은 하나 또는 여러 개의 방정식으로 구성됩니다. 이러한 방정식의 좌변에서는 어떤 오퍼레이터의 어떤 파라미터가 계산 결과를 수신할지를 정의합니다. 둘 이상의 방정식을 정의하는 경우 세미콜론으로 방정식을 구분하십시오. 파라미터 Value에 대한 쓰기 액세스가 발생하는 즉시, 파라미터 WriteAction에서 정의한 방정식의 우변에 있는 수식이 실행되고 그 결과가 방정식의 좌변에 지정된 파라미터로 전달됩니다.

수식은 디자인 내 어디에 있든 오퍼레이터 파라미터의 값을 참조할 수 있습니다. 이러한 값 중 하나가 변경되는 즉시, 이전과 동일한 값을 Value 파라미터에 다시 쓸 때 계산 결과가 달라지게 됩니다. 수식은 파라미터의 값뿐만 아니라 최소값, 최대값, 스텝 크기 또는 열거형 항목의 수치 값과 같은 파라미터의 특정 Property도 포함할 수 있습니다.

값 범위 계산을 위한 수식

파라미터 Value의 현재 값 범위를 계산하기 위한 수식을 추가할 수도 있습니다. 파라미터 RangeFrom, RangeTo, RangeIncrement(스텝 크기)에서 해당 수식을 정의합니다. 수식에는 디자인 내 어디에 있든 모듈 파라미터의 값뿐만 아니라 최소값, 최대값, 스텝 크기 또는 열거형 항목의 수치 값과 같은 이러한 파라미터의 특정 Property가 포함될 수 있습니다.

[팁]

수식 구문: 산술 연산

구문은 GenICam API 표준 버전 2.0을 따릅니다. 허용되는 공식 요소는 GenICam 표준에 정의된 공식 요소와 동일합니다.

기본 연산:
() 괄호
+ - * / 덧셈, 뺄셈, 곱셈, 나눗셈
% 나머지
** 거듭제곱
& | ^ ~ 비트 단위: and / or / xor / not
<> = > < <= >= 논리 관계: 같지 않음 / 같음 / 크기 비교 / 작기 비교 / 작거나 같음 / 크거나 같음
&& || 논리곱(logical and) / 논리합(logical or)
<< >> 왼쪽 시프트 / 오른쪽 시프트

표 52. 기본 연산


조건 연산자

<condition> ? <true_expr> : <false_expr>

예:

${target.Value} = (${this.Value} > 0) ? 1 : 0;

함수:
SGN(x) x의 부호를 반환합니다. 양수 인수에 대해서는 +1을, 음수 인수에 대해서는 -1을 반환합니다.
NEG(x) x의 부호를 반전합니다.
ABS(x) x의 절대값을 반환합니다.
SQRT(x) x의 제곱근을 반환합니다.
TRUNC(x) x를 절사합니다. 즉, 절댓값이 x보다 크지 않은 가장 가까운 정수 값을 반환합니다.
FLOOR(x) Round downward, returning the largest integral value that is not greater than x
CEIL(x) 올림하여 x보다 작지 않은 가장 작은 정수 값을 반환합니다.
ROUND(x,precision) precision으로 지정된 소수점 자리수까지 x를 반올림하며, 중간값은 0에서 먼 방향으로 반올림합니다.
SIN(x) 라디안 단위의 각도 x에 대한 사인(sine) 값을 반환합니다.
COS(x) 라디안 단위의 각도 x에 대한 코사인(cosine) 값을 반환합니다.
TAN(x) 라디안 단위의 각도 x에 대한 탄젠트(tangent) 값을 반환합니다.
ASIN(x) 라디안 단위로 표현된 x의 아크 사인(arc sine) 주갑을 반환합니다.
ACOS(x) 라디안 단위로 표현된 x의 아크 코사인(arc cosine) 주갑을 반환합니다.
ATAN(x) 라디안 단위로 표현된 x의 아크 탄젠트(arc tangent) 주갑을 반환합니다.
EXP(x) x의 밑이 e인 지수 함수 값, 즉 e를 x제곱한 값(ex)을 반환합니다.
LN(x) x의 자연 로그를 반환합니다. 자연 로그는 밑이 e인 로그이며, 자연 지수 함수(exp)의 역함수입니다.
LG(x) x의 상용로그(밑이 10인 로그)를 반환합니다.
E() 오일러 상수 2.7182818284590451을 반환합니다.
PI() 원주율 상수 3.1415926535897931을 반환합니다.

표 53. 함수


예:

${target.Value} = NEG(${this.Value})

[중요] 개별 함수에 대한 GenICam 지원

GenICam을 통한 액세스 시 SGN(x) 및 NEG(x) 함수에 대한 지원이 보장됩니다. 위에서 언급한 다른 함수는 특정 GenICam 구현에 따라 지원될 수도 있고 지원되지 않을 수도 있습니다.

[팁]

Parameter 경로

디자인 내의 모든 위치에서 operator parameter에 접근하려면 수식에서 해당 parameter의 경로를 지정해야 합니다.

operator의 parameter에 접근하려면 다음 구문을 사용합니다:

"PathToModule": 여기서 접근하려는 parameter가 속한 operator의 상대 경로를 정의합니다. 경로는 translation operator 자체가 위치한 계층적 수준을 기준으로 합니다. 접근할 operator의 이름도 함께 정의합니다. 계층 구분 기호로는 슬래시(/)를 사용하세요.

"Module": 모듈의 이름.

translation operator 인스턴스 자체의 이름으로는 "this"를 사용합니다.

[중요] 모듈 독립성 유지

translation operator가 위치한 계층적 수준보다 더 높은 계층적 수준을 향하는 경로는 정의할 수 없습니다. 이 규칙은 계층적 모듈이 인스턴스화되는 환경에 대해 어떤 정보도 알 수 없어야 한다는 논리에 따른 것으로, 그래야만 모듈을 자유롭게 재배치 및 복제 가능한 모듈로 사용할 수 있기 때문입니다.

[팁]

Parameter Property 접근

수식에는 parameter의 값뿐만 아니라 최소값, 최대값, 또는 step size와 같은 parameter의 특정 Property도 포함할 수 있습니다:

  • ${PathToModule/Module.ParamName.From} 또는 ${PathToModule/Module.ParamName.Min}: parameter의 유효한 최소값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.To} 또는 ${ PathToModule/Module.ParamName.Max}: parameter의 유효한 최대값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Inc}: parameter의 두 유효 값 사이의 증가값 (step size) PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}: 열거형 이름의 정수 값 EnumName.

번역 공식에서는 전역 상수를 참조할 수도 있습니다. 전역 상수는 번역 공식에서 다음을 사용하여 참조됩니다. :: 접두사를 사용하여 참조됩니다. 예: ${::DesignClock} 또는 ${::MyGlobalConst}.

[팁]

Write Access 수식 구문

Parameter WriteAction에서 정의하는 쓰기 작업 수식은 다음과 같은 구문을 갖습니다:

여기서는 여러 대상 parameter에 대한 여러 수식을 정의할 수 있습니다. 개별 수식 사이의 구분 기호로는 세미콜론(;)을 사용하세요.

"this"는 translation operator 인스턴스 자체를 가리킵니다.

WriteAction 수식 예시:

예:

[팁]

Read Access Equation 구문

The equation for the read action you define in parameter ReadAction. The equation always starts with "${this.Value}=" . It has the following syntax:

ReadAction equation 예시:

Map Parameter 참조

map parameter Value가 표시되고 액세스 가능해질 디자인 계층 구조 내의 타겟을 정의할 수 있습니다. 타겟은 두 개의 파라미터인 DisplayHierarchy 및 DisplayName으로 정의됩니다. DisplayHierarchy에서는 translation operator 자체가 위치한 것과 동일한 프로세스 내의 계층 구조 상자를 지정합니다. 파라미터 DisplayName에서는 타겟 파라미터의 이름을 설정합니다. DisplayHierarchy와 DisplayName이 모두 설정된 경우, DisplayName으로 정의된 파라미터는 DisplayHierarchy에서 지정한 계층 구조 상자에서 사용할 수 있게 됩니다. DisplayName이 비어 있으면 파라미터가 생성되지 않습니다. DisplayName은 설정되어 있지만 DisplayHierarchy가 비어 있는 경우, DisplayName으로 정의된 파라미터가 상위 계층 구조(즉, translation operator 자체가 위치한 계층 구조 상자)에 추가됩니다.

이를 통해 원하는 (디자인의) 모든 계층 수준에서 map parameter Value에 액세스할 수 있습니다. 이는 보호된 계층 구조 상자(protected hierarchical boxes) 작업 시 특히 유용합니다. 보호된 계층 구조 상자 자체의 Property 바로 아래에서 파라미터를 사용할 수 있도록 만들 수 있습니다.

매핑된 파라미터 자체를 참조할 수 있습니다. 따라서 번역 operator의 파라미터 Value의 내용을 참조하거나 파라미터 DisplayName 및 DisplayHierarchy에 정의한 파라미터를 참조할 수 있습니다. 이는 보호된 계층 구조 상자가 다른 보호된 계층 구조 상자로 구성될 때 특히 중요합니다.

이 오퍼레이터는 디자인의 데이터 흐름 구조에 간섭하지 않으므로 입력과 출력이 없습니다.

library Parameter에 대한 일반적인 소개는 Library Parameters에서 확인할 수 있습니다.

I/O Properties

Property Value
Operator Type 없음(입출력이 없으므로)

Supported Link Format

없음

Parameters

Status
Type 정적 읽기(GUI에는 쓰기로 표시되지만) 파라미터
Default 없음
Range OK 또는 오류 메시지

오류 상태를 표시합니다. 파라미터 Activate가 Yes로 설정된 경우 다른 오퍼레이터 설정이 확인됩니다. 이 파라미터는 OK 또는 오류 메시지 등 이 확인 결과를 표시합니다.

이 파라미터는 최종 애플릿의 일부가 아닙니다.

DisplayName
Type static write parameter
Default 없음
Range 임의의 문자열

디자인의 다른 지점에서 파라미터 Value에 대한 액세스 권한을 부여하거나 액세스하려는 경우 새 파라미터를 정의해야 합니다. 여기에 이 새 파라미터의 이름을 지정하십시오.

이 필드가 비어 있으면 새 파라미터가 생성되지 않습니다.

DisplayHierarchy
Type static write parameter
Default 없음
Range 임의의 문자열

파라미터 DisplayName에서 정의한 새 map parameter를 연결하려는 계층 구조 상자를 여기에 지정하십시오.

이 파라미터에서는 자동 완성 기능과 구문 강조 표시를 사용할 수 있습니다. 자동 완성을 사용하려면 Module Properties 대화 상자에서 이 파라미터의 Parameter Values 필드를 클릭하고 키보드의 TAB 키를 누르십시오. 자동 완성 기능에 대한 자세한 지침은 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'에서 확인할 수 있습니다.

새 파라미터 DisplayName을 정의했지만 파라미터 DisplayHierarchy를 비워 둔 경우: 새 파라미터가 reference operator 인스턴스를 포함하는 계층 구조 상자에 추가됩니다. (reference operator 인스턴스가 가장 높은(프로세스) 수준에 있는 경우에는 이 작업이 불가능하다는 점에 유의하십시오.)

[참고] 디스플레이 타겟 경로 설정을 위한 구문

새로운 파라미터를 디자인의 다른 위치에 표시하려면, DisplayHierarchy 파라미터에서 새로운 파라미터를 포함할 계층형 박스(hierarchical box)의 경로를 지정해야 합니다.

구문은 다음과 같습니다.

<Path> is the relative path from process level to the hierarchical level of the design where the <Hierarchical Box> is located that is to receive the new parameter. Thus, parameter DisplayHierarchy can only address hierarchical boxes within the same process. Use a slash as separator between different hierarchical levels.

<HierarchicalBox> is the name of the hierarchical box that is to receive the new map parameter.

예: Level0/Level1

[참고] 전역 상수 정의하기

Value가 static인 경우, DisplayHierarchy 파라미터를 ::(으)로 설정하여 사용자 정의 전역 상수를 생성할 수 있습니다.

예를 들어, DisplayName 로 설정된 경우, myGlobalConst 및 DisplayHierarchy 로 설정된 경우, :: 인 경우, 연산자는 변환 공식에서 사용할 ${::myGlobalConst} 전역 상수를 생성합니다.

해당 전역 상수는 시스템 전반에서 액세스할 수 있으며 변환 공식에서 참조할 수 있습니다.

Value
Type static, dynamic, write, read parameter
Default 0
Range 부호 있는 정수(64비트)

읽기 및 쓰기 액세스에 지정된 방정식을 통해 다른 파라미터에 액세스하기 위한 파라미터입니다.

변환 공식에서 사용할 사용자 정의 전역 상수를 생성하려면 이 파라미터가 static이어야 합니다. 전역 상수 생성 방법에 대한 지침은 DisplayHierarchy 파라미터 설명을 참조하십시오.

Unit
Type static write parameter
Default -
Range Latin-1

여기에 파라미터 Value의 단위를 입력합니다.

설명
Type static write parameter
Default -
Range any text

여기에 파라미터 Value의 설명을 입력합니다.

RangeFrom
Type static write parameter
Default 0
Range

유효한 최소값 정의입니다. 여기에 공식을 입력할 수도 있습니다.

RangeTo
Type static write parameter
Default 255
Range

유효한 최대값 정의입니다. 여기에 공식을 입력할 수도 있습니다.

RangeIncrement
Type static write parameter
Default 1
Range

유효한 값 사이의 간격 정의(단계 크기 정의)입니다. 여기에 공식을 입력할 수도 있습니다.

WriteAction
Type static write parameter
Default
Range

파라미터 Value에 대한 쓰기 액세스 중 변환을 위한 수식 정의.

이 파라미터의 경우 자동 완성 기능과 구문 강조 기능을 사용할 수 있습니다. 자동 완성을 사용하려면 Module Properties 대화 상자에서 이 파라미터의 Parameter Values 필드를 클릭하고 “${”를 입력하세요. 자동 완성 기능에 대한 보다 자세한 지침은 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'에서 확인할 수 있습니다.

ReadAction
Type static write parameter
Default
Range

파라미터 Value에 대한 읽기 액세스 중 변환을 위한 수식 정의.

수식은 항상 "${this.Value}="로 시작합니다.

이 파라미터의 경우 자동 완성 기능과 구문 강조 기능을 사용할 수 있습니다. 자동 완성을 사용하려면 Module Properties 대화 상자에서 이 파라미터의 Parameter Values 필드를 클릭하고 “${”를 입력하세요. 자동 완성 기능에 대한 보다 자세한 지침은 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'에서 확인할 수 있습니다.

Activate
Type dynamic write parameter
Default No
Range {No,Yes}

Yes = 참조된 파라미터와의 액세스(읽기 및 쓰기 수식을 통한)가 활성화됩니다.

No = 참조된 파라미터와의 액세스(읽기 및 쓰기 수식을 통한)가 비활성화되며 파라미터 Status가 비활성화됩니다. 파라미터 DisplayName과 DisplayHierarchy는 영향을 미치지 않습니다.

사용 예제

Operator IntParamTranslator의 사용법은 다음 예시에 나와 있습니다:

  • 'Hardware Test'

    DMA, RAM, GPIO, 트리거 및 LED의 하드웨어 자체 테스트 예시.

  • 'Parameter Translation'

    예시 - 파라미터 조작을 위해 파라미터 변환 오퍼레이터를 사용하는 방법을 시연합니다.