본문으로 건너뛰기

계산식(공식) 적용

영문 명칭으로 포뮬라 (Formula) 라고 부르기도 합니다.

PLC 가 보내주는 raw 값을 그대로 쓰지 않고 단위 변환 / 영점 보정 / 스케일 조정 을 하고 싶을 때 사용합니다.

흔한 사례:

  • 압력 센서가 정수 1638 을 보내는데 실제로는 163.8 kPa 인 경우 → ${VALUE}*0.1
  • 섭씨 → 화씨 변환 → ${VALUE}*1.8+32
  • mV → V 변환 → ${VALUE}/1000

어디에 입력하나요

태그 등록 / 수정 폼의 [계산식] 칸에 수식을 적습니다. 등록 즉시 다음 수집 주기에 변환된 값이 화면에 보입니다.

  • 비워두면 raw 값 그대로 사용됩니다.
  • 한 번 입력해두면 이후 매 수집마다 자동 적용됩니다.

기본 사용법

${VALUE} 가 PLC 에서 막 읽어온 raw 값을 의미합니다.

하고 싶은 일계산식입력 → 출력
그대로 쓰기(비움)100100
10 배로 키우기${VALUE}*10550
10 분의 1 로 줄이기 (정수→소수)${VALUE}*0.11638163.8
1000 으로 나누기 (mV → V)${VALUE}/100033003.3
더하기 (섭씨 → 켈빈)${VALUE}+273.1525298.15
빼기 (영점 보정)${VALUE}-1001024924
화씨 변환${VALUE}*1.8+322577.0
제곱${VALUE}*${VALUE} 또는 ${VALUE}^2525
제곱근sqrt(${VALUE})14412.0
분당회전수 → Hz${VALUE}/60180030.0

다른 태그의 값을 참조

다른 태그의 마지막 값을 ${태그ID} 형식으로 가져올 수 있습니다. 영점값을 별도 태그로 관리하거나, 보정 계수를 따로 두는 패턴에서 편리합니다.

하고 싶은 일계산식
다른 태그를 영점으로 빼기${VALUE}-${TAG_ZERO}
두 태그 합산${VALUE}+${TAG_OFFSET}
보정 (gain × x + offset)${VALUE}*${TAG_GAIN}+${TAG_OFFSET}

여기서 TAG_ZERO, TAG_OFFSET, TAG_GAIN 은 다른 태그의 태그 ID 입니다. 미리 다른 태그로 등록되어 있어야 합니다.

참조 태그가 아직 없으면

${TAG_ZERO} 라고 적었는데 그 태그가 한 번도 수집된 적 없으면 계산이 실패합니다 (해당 태그의 상태에 “계산식 변수값 없음” 류 에러). 게이트웨이가 한 번 돌고 나면 자동으로 정상화되니 잠시 기다리시면 됩니다.


사용 가능한 함수

산수 계산뿐 아니라 자주 쓰는 수학 함수도 사용할 수 있습니다.

종류표기예시
사칙연산+, -, *, /${VALUE}+1
거듭제곱^${VALUE}^2 (= 제곱)
괄호(, )(${VALUE}+10)*2
제곱근sqrt(...)sqrt(${VALUE})
세제곱근cbrt(...)cbrt(${VALUE})
자연로그ln(...)ln(${VALUE})
상용로그 (밑10)log(...)log(${VALUE})
사인/코사인/탄젠트 (라디안)sin, cos, tansin(${VALUE})
역삼각asin, acos, atanatan(${VALUE})
쌍곡sinh, cosh, tanhtanh(${VALUE})
상수pi, e${VALUE}*pi/180 (각도 → 라디안)

각도(degree) 입력을 라디안으로 변환하려면 *pi/180 을 곱하세요. 예: sin(${VALUE}*pi/180).


적용되는 데이터 형식

계산식은 숫자형 (Float, Double, Integer, Long) 태그에만 적용됩니다.

  • String, Boolean 태그에는 계산식이 무시되고 raw 값 그대로 나옵니다.
  • 보정 후 결과가 정수 범위를 넘는다면 Float 또는 Double 로 데이터 형식을 바꿔주세요.

실수하기 쉬운 점

잘못된 패턴왜 문제인가요올바른 패턴
VALUE * 0.1${...} 표기 빠짐${VALUE}*0.1
${VALUE}*0,1콤마 사용 (한글 키보드 실수)${VALUE}*0.1 (점 사용)
if(${VALUE}>0, ...)조건문 미지원조건이 필요하면 별도 시스템에서 처리
${VALUE} & 0xFF비트 연산 미지원산술로 가능한 형태로 변경

자주 묻는 질문

Q. 계산식이 적용되었는지 어떻게 확인하나요?

태그의 [현재 값] 칸에 표시되는 값이 변환된 값 입니다. raw 값을 보고 싶다면 같은 주소를 계산식 없이 다른 태그로 따로 등록해 비교하세요.

Q. 단위 변환을 두 가지 (예: 섭씨와 화씨) 동시에 보내고 싶어요

같은 PLC 주소를 가리키는 태그를 두 개 만들고 한쪽은 그대로, 다른 한쪽은 ${VALUE}*1.8+32 같은 변환식을 넣어주시면 됩니다.

Q. 결과가 NaN / Infinity 으로 나와요

  • 0 으로 나누는 경우 → Infinity
  • 음수의 제곱근 → NaN

PLC 의 raw 값 범위가 예상과 다를 가능성이 큽니다. 계산식 없이 raw 값을 먼저 확인해보세요.

Q. 더 복잡한 가공이 필요해요 (조건 분기 / 다중 변수 / 외부 데이터)

계산식만으로는 어렵습니다. PlantPulse 플랫폼의 후처리 단 또는 별도 데이터 가공 도구 (Node-RED 등) 를 함께 사용하시는 것을 권장드립니다. 애플리케이션 관리 페이지의 Node-RED 항목 참고.

전체 함수 / 변수 레퍼런스가 필요하다면 고급 — Formula 레퍼런스 페이지를 참고하세요.