식 평가기
정수, 소수, 숫자 변수, 문자열 비교를 위한 문자열 변수, 산술 및 부울 연산자 또는 함수 집합을 사용하여 식의 결과를 계산합니다.
속성
속성 | 설명 |
---|---|
식 | 계산할 식입니다. 식에 변수를 추가하려면 연속된 숫자 또는 # 으로 시작하는 고유한 문자열을 중괄호 {} 안에 입력합니다. 예를 들어, 식에 {0} 을 입력한 다음 나중에 {1} 을 입력합니다. 각 변수에 해당하는 {#} 동적 링크식은 올바르게 열리고 닫힌 괄호 {} 를 무제한으로 포함할 수 있습니다. 식이 올바른 구문을 따르지 않으면 컨버터에서 계산을 수행하지 않습니다. |
모드 | 동적 링크의 방향:
|
소스
다음으로 식별되는 하나 이상의 변수:
- {자리 표시자index_number}
- 0보다 크거나 같은 연속적인 정수입니다. 예시:{1}
- {#자리 표시자placeholder_identifier}
- #으로 시작하는 문자열. 예시:{#speed}
팁:
순서에 관계없이 자리 표시자 조합을 사용합니다. 식에 자리 표시자를 원하는 수만큼 사용할 수 있습니다.
리터럴
- 부울
- 정수
- 소수 구분 기호가 점이어야 하는 소수 자릿수
- 접두사0x가 있는 16진수
- 큰따옴표로 구분된 문자열과 같은 텍스트팁: 두 번 반복되는 큰따옴표("")는 이스케이프 시퀀스로 해석됩니다.
- 날짜 및 시간. 예를 들어,2017-06-28T15:26:06.0790910입니다.
연산자
범주 | 연산자 | 결합성 | 설명 |
---|---|---|---|
단항 | 단항 마이너스: - 비트 NOT: ~ 캐스트 연산자: (type) | 오른쪽에서 왼쪽 | 캐스트 연산자 (type) 은 모든 숫자 데이터 유형에 적용되며 부울에만 적용됩니다. |
곱셈 | * ,/ , % | 왼쪽에서 오른쪽 | |
덧셈 | + , - | 왼쪽에서 오른쪽 | |
시프트 | << , >> | 왼쪽에서 오른쪽 | 시프트 및 관계 연산자는 다음 데이터 유형에 적용됩니다.
|
관계 | < , <= , > , >= | 왼쪽에서 오른쪽 | |
등호 | == , != | 왼쪽에서 오른쪽 | 등호 연산자는 다음 데이터 유형에 적용됩니다.
|
비트 단위 AND, XOR, OR | & , ^ , | | 왼쪽에서 오른쪽 | |
논리 AND | && | 왼쪽에서 오른쪽 | |
논리 OR | || | 왼쪽에서 오른쪽 |
데이터 유형
식 평가기의 데이터 유형 규칙:
- 리터럴 정수는 Int32입니다.
- 10진수 리터럴은 Double입니다.
- 숫자 값은 Int32로 간주됩니다.
- 리터럴 참 및 거짓은 Boolean으로 해석됩니다.
- / 연산자는 항상 Double 값을 반환합니다.
- % 연산자는 모듈 0으로 나눗셈이 있는 경우 예외를 생성합니다.
- % 연산자는 Float 및 Double 피연산자를 허용합니다.
- Int32 값을 반환하는 부호를 제외한 모든 함수는 Double 값을 반환합니다.
단항 캐스트 연산자의
type
은 다음 데이터 유형일 수 있습니다.- bool, Boolean
- sbyte, SByte
- short, Int16
- int, Int32
- long, Int64
- byte, Byte
- ushort, UInt16
- uint, UInt32
- ulong, UInt64
- float, Float
- double, Double
연산자는 다음의 특정 데이터 유형에 적용됩니다.
연산자 | 피연산자1 | 피연산자2 | 설명 |
---|---|---|---|
Plus | DateTime | 정수 | Operand2 는 밀리초로 해석됩니다. |
Plus | 정수 | DateTime | Operand1 는 밀리초로 해석됩니다. |
Plus | DateTime | TimeZone (Struct) | Operand2 는 분(TimeZone.Offset)으로 해석됩니다. |
Plus | TimeZone (Struct) | DateTime | Operand1 는 분(TimeZone.Offset)으로 해석됩니다. |
Plus | TimeZone | 정수 | Operand1 는 분(TimeZone.Offset)으로 해석됩니다.Operand2 는 분으로 해석됩니다. |
Plus | 정수 | TimeZone | Operand1 는 분으로 해석됩니다.Operand2 는 분(TimeZone.Offset)으로 해석됩니다. |
Minus | DateTime | 정수 | Operand2 는 밀리초로 해석됩니다. |
Minus | DateTime | TimeZone (Struct) | Operand2 는 분(TimeZone.Offset)으로 해석됩니다. |
Minus | TimeZone | 정수 | Operand1 는 분(TimeZone.Offset)으로 해석됩니다.Operand2 는 분으로 해석됩니다. |
함수
식 평가기에서 사용할 함수:
함수 | 구문 | 설명 | 반환 데이터 유형 |
---|---|---|---|
max | max( value1 , value2 , value3 , ...) | 가장 큰 값을 반환합니다. | Double |
min | min( value1 , value2 , value3 , ...) | 가장 낮은 값을 반환합니다. | Double |
avg | avg( value1 , value2 , value3 , ...) | 주어진 값의 평균을 반환합니다. | Double |
abs | abs( value ) | 주어진 숫자의 절대값을 반환합니다. | Double |
trunc | trunc( value ) | 10진수의 정수 부분을 반환합니다. | Double |
ceil | ceil( value ) | 올림한 근사값을 반환합니다. | Double |
floor | floor( value ) | 내림한 근사값을 반환합니다. | Double |
round | round( value ) | 가장 가까운 정수로의 근사값을 반환합니다. | Double |
sqrt | sqrt( value ) | 주어진 숫자의 제곱근을 반환합니다. | Double |
sign | sign( value ) | 주어진 부동 소수점 수가 음수인지 확인합니다. 참이면 0 을, 거짓이면 1 을 반환합니다. | Int32 |
like | like( string_value , pattern ) | String, QualifiedName 및 LocalizedText 데이터 유형에만 적용됩니다. string_value 매개 변수가 pattern 과 일치하면 참 을 반환합니다.패턴 은 시작 또는 끝에 % 와일드카드를 허용합니다.예:
| Boolean |
isempty | isempty( variable ) | 주어진 NodeID, String, LocalizedText 또는 DataTime이 비어 있는지 확인합니다. | Boolean |
if | if( condition , value_if_true , value_if_false ) | condition 이 참이고 value_if_true 또는 value_if_false 를 반환하는지 확인합니다.구문은 다음 요구 사항을 충족해야 합니다.
| value_if_true 데이터 유형 |
left_of | left_of(string, pattern) | 정규식 패턴의 첫 번째 발생 왼쪽에 있는 부분 문자열을 반환합니다.
중요:
패턴에 와일드카드를 사용하지 마십시오.
| String |
right_of | right_of(string, pattern) | 정규식 패턴의 첫 번째 발생 오른쪽에 있는 부분 문자열을 반환합니다.
중요:
패턴에 와일드카드를 사용하지 마십시오.
| String |
출력
식의 결과 값입니다.
예제
변수의 절대값 반환

변수 값이 40보다 크면 그래픽 개체의 표시 여부가 전환됩니다.

변수 값이 50보다 크면 그래픽 개체의 배경색이 파란색으로 변경됩니다.

변수 값이 30에서 40 사이이면 활성 상태일 때 녹색 LED 개체가 깜박입니다.

텍스트 상자 테두리 색상이 빨간색이면 버튼이 활성화됩니다.

레이블 텍스트가 "WARNING"이면 레이블 텍스트 색상이 빨간색으로 변경됩니다.

expression
expression evaluator
의견을 작성 부탁드립니다.