IntParamTranslator 연산자

Operator Library: Parameters

IntParamTranslator 연산자는 하나 또는 여러 개의 다른 연산자의 매개변수에 대한 변환된 액세스(읽기 및 쓰기)를 허용합니다. 계산을 위해 수식을 정의합니다. 이 수식의 구문은 GenICam API 버전 2.0을 따릅니다. 자세한 구문 설명은 아래에서 확인할 수 있습니다.

또한, 이 연산자를 사용하여 변환 공식에서 사용할 사용자 정의 전역 상수를 생성할 수 있습니다. Value가 static인 경우, DisplayHierarchy 매개변수를 다음과 같이 설정하여 전역 상수를 생성할 수 있습니다. :: 로 설정하여 전역 상수를 생성할 수 있습니다. 이렇게 생성된 상수는 시스템 전체에서 사용할 수 있으며, 모든 매개변수 변환 공식에서 액세스할 수 있습니다. 변환 공식에서 전역 상수를 사용하는 방법에 대한 자세한 내용은 DisplayHierarchy 매개변수 설명을 참조하십시오.

IntParamTranslator 연산자는 VA_SINT 유형의 맵 매개변수를 생성합니다. 이 맵 매개변수의 이름은 Value입니다.

연산자는 매개변수 Value의 유형을 VA_SINT로 정의하지만, 쓰기 또는 읽기 연산 중에 액세스되는 매개변수의 데이터 유형을 제한하지는 않습니다. 예를 들어, 연산자에 정의된 수식에는 float 유형의 매개변수에 대한 액세스가 포함될 수 있습니다.

Read Action

ReadAction 파라미터에서는 번역 오퍼레이터의 Value 파라미터에 대한 읽기 액세스가 발생할 때 수행될 동작을 정의합니다. Value 파라미터는 단순히 값을 유지하는 것이 아닙니다. 대신 Value 파라미터의 값은 수식으로부터 계산됩니다. 이 수식은 ReadAction 파라미터에서 정의합니다. Value 파라미터에 대한 읽기 액세스가 발생하는 즉시 ReadAction에 정의한 수식이 실행되고 그 결과가 값을 요청한 요소로 전달됩니다.

수식에는 디자인 내 어디서든 오퍼레이터 파라미터의 값이 포함될 수 있습니다. 이러한 값 중 하나라도 변경되면 번역 오퍼레이터의 파라미터인 Value의 계산 결과가 새 결과로 끝납니다 (이전에 Value 파라미터가 유지하던 값과 다름). 수식에는 파라미터의 값뿐만 아니라 최솟값, 최댓값, 증가 크기(step size), 열거형 항목의 수치 등 파라미터의 특정 속성도 통합할 수 있습니다.

Write Action

WriteAction 매개변수에서는 변환 연산자의 Value 매개변수에 대한 쓰기 액세스 시 어떤 동작이 수행될지 정의합니다. 참조 연산자를 사용하는 경우와 달리, 단순히 Value 매개변수의 값을 디자인 내의 다른 매개변수로 전달하지 않습니다. 대신, 매개변수 Value의 값은 변환 연산자의 매개변수 WriteAction에서 정의한 일련의 쓰기 동작에 사용됩니다. 쓰기 작업은 하나 이상의 방정식으로 구성됩니다. 이 방정식들의 좌변에서 어떤 연산자의 어떤 매개변수가 계산 결과를 수신할지 정의합니다. 방정식을 두 개 이상 정의하는 경우, 세미콜론으로 방정식들을 구분하십시오. 매개변수 Value에 대한 쓰기 액세스가 발생하면, 매개변수 WriteAction에서 정의한 방정식의 우변에 있는 수식(들)이 실행되고, 그 결과(들)은 방정식의 좌변에 지정된 매개변수(들)로 전달됩니다.

수식은 디자인 내의 어디서나 오퍼레이터 파라미터의 값을 참조할 수 있습니다. 이러한 값 중 하나가 변경되면, 이전과 동일한 값을 Value 파라미터에 다시 쓸 때 계산 결과가 달라집니다. 수식에는 파라미터의 값뿐만 아니라 최솟값, 최댓값, 증가 크기 또는 열거형 항목의 수치 등 파라미터의 특정 속성도 통합할 수 있습니다.

값 범위 계산 공식

또한 매개변수 ‘Value’의 현재 값 범위를 계산하는 수식을 추가할 수도 있습니다. 해당 수식은 RangeFrom, RangeTo 및 RangeIncrement (단계 크기) 매개변수에서 정의합니다. 이 수식에는 설계 내 어디에나 있는 모듈 매개변수의 값은 물론, 최소값, 최대값, 단계 크기 또는 열거형 항목의 수치와 같은 해당 매개변수의 특정 속성도 포함될 수 있습니다.

[팁]

수식 구문: 산술 연산

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

기본 조작:
() 대괄호
+ - * / 더하기, 빼기, 곱하기, 나누기
% 나머지
** 전력
& | ^ ~ 비트 단위 연산: and / or / xor / not
<> = > < <= >= 논리적 관계: 같지 않음 / 같음 / 더 큼 / 더 작음 / 같거나 더 작음 / 같거나 더 큼
&& || 논리적 AND / 논리적 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) 내림하여 x보다 크지 않은 가장 큰 정수 값을 반환합니다.
CEIL(x) 올림하여 x보다 작지 않은 가장 작은 정수 값을 반환합니다.
ROUND(x, precision) x를 precision으로 지정된 소수점 자리수로 반올림하며, 중간값은 0에서 먼 방향으로 반올림됩니다.
SIN(x) 라디안 단위의 각도 x에 대한 사인 값을 반환합니다.
COS(x) 라디안 단위의 각도 x에 대한 코사인 값을 반환합니다.
TAN(x) x 라디안 각도의 탄젠트 값을 반환합니다.
ASIN(x) 라디안으로 표현된 x의 아크 사인(arc sine) 주값을 반환합니다.
ACOS(x) 라디안으로 표현된 x의 아크 코사인(arc cosine) 주값을 반환합니다.
ATAN(x) 라디안으로 표현된 x의 아크 탄젠트(arc tangent) 주값을 반환합니다.
EXP(x) x의 밑이 e인 지수 함수, 즉 e를 x제곱한 값($e^x$)을 반환합니다.
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 구현에 따라 지원될 수도 있고 지원되지 않을 수도 있습니다.

[팁]

파라미터 경로

디자인 내의 모든 위치에서 오퍼레이터 파라미터에 액세스하려면 수식에서 해당 파라미터의 경로를 지정해야 합니다.

오퍼레이터의 파라미터에 액세스하려면 다음 구문을 사용합니다.

"PathToModule": 여기서는 액세스할 파라미터를 가진 오퍼레이터의 상대 경로를 정의합니다. 경로는 변환 오퍼레이터 자체가 위치한 계층적 수준을 기준으로 합니다. 또한 액세스하는 오퍼레이터의 이름도 정의합니다. 계층 구분 기호로는 슬래시(/)를 사용하십시오.

"Module": 모듈의 이름.

번역 오퍼레이터 인스턴스 자체의 이름으로는 "this"를 사용합니다.

[중요] 모듈 독립성 유지

변환 오퍼레이터가 위치한 계층 수준보다 더 높은 계층 수준을 향하는 경로는 정의할 수 없습니다. 이 규칙은 계층적 모듈이 자신이 인스턴스화된 환경에 대해 어떠한 정보도 알 수 없어야 한다는 논리에 따른 것입니다. 그래야만 모듈을 자유롭게 재배치하고 복제할 수 있는 모듈로 사용할 수 있기 때문입니다.

[팁]

파라미터 속성 액세스

수식에는 파라미터 값뿐만 아니라 최소값, 최대값 또는 증가 단위(step size)와 같은 파라미터의 특정 속성도 포함할 수 있습니다.

  • ${PathToModule/Module.ParamName.From} 또는 ${PathToModule/Module.ParamName.Min}: 파라미터의 유효한 최소값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.To} 또는 ${ PathToModule/Module.ParamName.Max}: 파라미터의 유효한 최대값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Inc}: 매개변수의 유효한 두 값 사이의 증가값(단계 크기)입니다. PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}: 열거형 이름의 정수 값 EnumName.

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

[팁]

쓰기 접근 식 구문

WriteAction 매개변수에서 정의하는 쓰기 작업용 식입니다. 구문은 다음과 같습니다.

여기서는 여러 대상 매개변수에 대해 여러 개의 식을 정의할 수 있습니다. 개별 식을 구분하려면 세미콜론을 구분 기호로 사용하세요.

"this"는 변환 연산자 인스턴스 자체를 가리킵니다.

WriteAction 식의 예:

예:

[팁]

읽기 접근 식 구문

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

ReadAction 식의 예:

맵 매개변수 참조

맵 매개변수 Value 이(가) 표시되고 액세스될 수 있는 디자인 계층 구조 내의 대상을 정의할 수 있습니다. 대상은 DisplayHierarchy와 DisplayName이라는 두 개의 매개변수로 정의됩니다. DisplayHierarchy에서는 변환 연산자 자체가 위치한 것과 동일한 프로세스 내의 계층적 상자를 지정합니다. DisplayName 매개변수에서는 대상 매개변수의 이름을 설정합니다. DisplayHierarchy와 DisplayName이 모두 설정된 경우, DisplayName으로 정의된 매개변수는 DisplayHierarchy로 지정된 계층적 상자에서 사용할 수 있게 됩니다. DisplayName이 비어 있으면 매개변수가 생성되지 않습니다. DisplayName이 설정되어 있지만 DisplayHierarchy가 비어 있는 경우, DisplayName으로 정의된 매개변수가 상위 계층 구조(즉, 변환 연산자 자체가 위치한 계층적 상자)에 추가됩니다.

이를 통해 원하는 (디자인의) 계층 수준에서 맵 매개변수 Value 에 액세스할 수 있습니다. 이는 보호된 계층적 상자로 작업할 때 특히 유용합니다. 보호된 계층적 상자 자체의 속성 바로 아래에서 매개변수를 사용할 수 있도록 만들 수 있습니다.

매핑된 매개변수는 그 자체로 참조될 수 있습니다. 따라서 번역 연산자 내에서 매개변수 Value의 내용을 참조하거나, 매개변수 DisplayName 및 DisplayHierarchy에 정의한 매개변수를 참조할 수 있습니다. 이는 보호된 계층적 상자가 다른 보호된 계층적 상자로 구성되어 있는 경우 특히 중요합니다.

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

라이브러리 파라미터에 대한 일반적인 소개는 Library Parameters에서 확인할 수 있습니다.

I/O Properties

Property Value
Operator Type None (입력 또는 출력이 없는 경우)

지원되는 Link Format

None

Parameters

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

오류 상태를 표시합니다. Activate 매개변수가 Yes로 설정된 경우, 다른 연산자 설정이 확인됩니다. 이 매개변수는 이 확인 결과, 즉 OK 또는 오류 메시지를 표시합니다.

이 파라미터는 최종 앱릿에 포함되지 않습니다.

DisplayName
Type 정적 쓰기 파라미터
Default 없음
Range 임의의 문자열

디자인의 다른 지점에서 매개변수 Value 에 대한 액세스 권한을 부여하거나 받으려면 새 매개변수를 정의해야 합니다. 여기에 이 새 매개변수의 이름을 지정하세요.

이 필드가 비어 있으면 새 매개변수가 생성되지 않습니다.

DisplayHierarchy
Type 정적 쓰기 파라미터
Default 없음
Range 임의의 문자열

파라미터 DisplayName에서 정의한 새 맵 파라미터를 연결할 계층적 상자(Hierarchical Box)를 여기에 지정합니다.

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

새 파라미터 DisplayName을 정의했으나 파라미터 DisplayHierarchy를 비워둔 경우: 새 파라미터는 참조 연산자 인스턴스를 포함하는 계층적 상자에 추가됩니다. (참조 연산자 인스턴스가 최상위(프로세스) 수준에 있는 경우에는 이 작업이 불가능합니다.)

[참고] 표시 대상 경로 설정 구문

새 파라미터가 디자인의 다른 위치에 표시되도록 하려면, 파라미터 DisplayHierarchy에 새 파라미터를 포함할 계층적 상자의 경로를 지정해야 합니다.

구문은 다음과 같습니다:

<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 파라미터
Default 0
Range 부호 있는 정수 (64비트)

읽기 및 쓰기 액세스에 지정된 방정식을 통해 다른 매개변수에 액세스하기 위한 매개변수입니다.

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

단위
Type 정적 쓰기 파라미터
Default -
Range Latin-1

매개변수 Value의 단위를 여기에 입력하십시오.

설명
Type 정적 쓰기 파라미터
Default -
Range 임의의 텍스트

여기에 매개변수 Value의 설명을 입력하세요.

RangeFrom
Type 정적 쓰기 파라미터
Default 0
Range

가장 작은 유효 값의 정의입니다. 여기에 공식을 입력할 수도 있습니다.

RangeTo
Type 정적 쓰기 파라미터
Default 255
Range

가장 큰 유효 값의 정의입니다. 여기에 공식을 입력할 수도 있습니다.

RangeIncrement
Type 정적 쓰기 파라미터
Default 1
Range

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

WriteAction
Type 정적 쓰기 파라미터
Default
Range

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

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

ReadAction
Type 정적 쓰기 파라미터
Default
Range

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

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

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

Activate
Type dynamic write 파라미터
Default 아니요
Range {No,Yes}

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

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

사용 예

다음 예제에서는 IntParamTranslator 연산자의 사용법을 보여줍니다.

  • 'Hardware Test'

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

  • 'Parameter Translation'

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