연산식(Expression) 활용

TAG

연산식(Expression) 활용

※ 샘플에 사용된 CHG 연산식은 X-SCADA AI 최신 버전에서 사용가능합니다.


X-SCADA AI의 연산식(Expression) 기능을 활용하여 실제 디바이스 장치의 태그 값을 연산 및 가공하여 응용할 수 있습니다.

가상 태그의 연산식 설정에서 다른 태그를 참조하여 구현할 수 있습니다.

연산식을 활용하면 스크립트를 몰라도 간단한 사칙연산부터 Math 함수와 다양한 연산자들을 활용해 데이터를 통계적으로 계산 및 처리할 수 있습니다.





1. 연산식에 활용할 태그 추가하기

1) 연산식에 활용할 여러 태그들을 추가한다.

180521ed7cf585690d6d34d1630956f7_1746693754_4838.png
 


2) 연산식을 설정할 태그를 선택한 뒤 속성(Properties) > 연산식(Expression)을 설정한다.

· 다른 태그를 참조할 때는 #{태그명}을 사용 (자기 자신은 참조 불가능)

· 연산식에 Math 함수나 산술 연산자, 관계 연산자, CHG 연산식 등 사용 가능

180521ed7cf585690d6d34d1630956f7_1746693760_7899.png 


● X-SCADA 활용 연산식


함수

내용

예시

CHG(태그명)

 · 태그 값이 변경(Change)되었는지 확인

 · 반환값 : 디지털 형식 (true(값 변경 O)/false(값 변경 X))

 CHG(analog_1) == true ? true : false

DST(실태그명)

 · 장치에서 값을 읽었는지(받았는지) 확인

 · 반환값 : 디지털 형식 (true(값 읽기 X)/false(값 읽기 O))

 DST(analog_1)

 DST(digital_1)

 DST(string_1)

DVL(실태그명)

 · 장치에서 값을 읽은 여부와 관계없이 태그값 반환

 DVL(analog_1)

 DVL(digital_1)

 DVL(string_1)

DVL(실태그명, XX)

 · 장치에서 값을 읽은 경우 태그값 반환, 읽지 못한 경우 XX 반환

  ※ XX는 태그값 타입(종류)과 일치해야 함

 DVL(analog_1, 100)

 DVL(digital_1, false)

 DVL(string_1, "Fail")

DVL(실태그명, XXYY)

 · 장치에서 값을 읽은 경우 YY 반환, 읽지 못한 경우 XX 반환

 · "DST(실태그명) ? XX : YY" 와 동일

  ※ XX, YY는 태그값 타입(종류)과 일치해야 함

 DVL(analog_1, 100, 200)

 DVL(analog_1, false, true)

 DVL(digital_1, "disconnected", "connected")



● Math 함수


함수

내용

예시

예시결과

Math.random()

0 ~ 1 사이의 난수값

var a = Math.random

0.7564 ···.

Math.PI

원주율

var a = Math.PI

3.14159265 ···.

Math.E

자연상수

var a = Math.E

2.718281828

Math.pow(x,y)

x의 y제곱

var a = Math.pow(2,2)

4

Math.sqrt(x)

제곱근

var a = Math.sqrt(9)

3

Math.exp(x)

거듭제곱

var a = exp(2)

7.389056098

Math.log(x)

자연로그

var a = Math.log(10)

2.302585092

Math.log10(x)

상용로그

var a = Math.log10(10)

1

Math.sin(x)

싸인

var a = Math.sin(10.0)

- 0.5440211108

Math.cos(x)

코싸인

var a = Math.cos(10.0)

- 0.8390715290

Math.tan(x)

탄젠트

var a = Math.tan(10.0)

0.6483608274

Math.min(x,y,...)

인자 중 최소값

var a = Math.max(1,8,4)

8

Math.max(x,y,...)

인자 중 최대값

var a = Math.min(1,8,4)

1

Math.round(x)

가까운 값

var a = Math.round(7.7)

8

Math.abs(x)

무조건 절대 값

var a = Math.abs(-7.7)

7.7

Math.ceil(x)

무조건 올림 값

var a = Math.ceil(7.7)

8

Math.floor(x)

무조건 내림 값

var a = Math.floor(7.7)

7



● 연산자

구분

연산자

내용

산술연산자

+

더하기

산술연산자

-

빼기

산술연산자

*

곱하기

산술연산자

/

나누기

산술연산자

%

나누기(나머지)

관계연산자

a == b

a와 b의 값이 같음

관계연산자

a != b

a와 b의 값이 같지않음

관계연산자

a < b

a가 b보다 작음

관계연산자

a <= b

a가 b보다 작거나 같음

관계연산자

a > b

a가 b보다 큼

관계연산자

a >= b

a가 b보다 크거나 같음





2. X-SCADA AI Designer를 활용해 화면 작화하기

1) 텍스트(Text), 이미지(Image) 등을 활용해 아래와 같이 화면을 작화한다.

4048d46720aa0402a0ccd0fb71dec217_1746782785_6929.png

2) 바인딩 태그(Binding Tag), 동작(Actions) > 클릭 태그값 설정(Click – Tag Value) 등을 설정하여 태그 값을 모니터링 및 제어하도록 설정한다.

· 자세한 설정은 첨부한 프로젝트 파일(.xix)을 다운로드 받아 X-SCADA AI Designer로 열면 확인 가능

4048d46720aa0402a0ccd0fb71dec217_1746782877_9091.png

 

 

3. X-SCADA AI Viewer로 연산식 동작 확인하기

1) 설정한 프로젝트 저장 후 X-SCADA AI Viewer로 실행하여 연산식이 의도한대로 동작하는지 확인한다.

4048d46720aa0402a0ccd0fb71dec217_1746782900_4706.png
 

0 Reply Comment
Title