본문 바로가기
Programmable Logic Controller

PLC 부동소수점(REAL과 LREAL, IEEE754) 차이점

by plc 2025. 4. 13.
반응형

PLC 부동소수점(REAL과 LREAL, IEEE754) 차이점

PLC를 다루다 보면 꼭 마주치는 데이터 타입! REAL과 LREAL의 차이, 그리고 IEEE 754 방식이 뭔지 궁금하셨죠? 저도 처음엔 그냥 숫자 크기 차이 정도로만 생각했는데요, 알고 나니 완전 다른 세계가 펼쳐지더라고요. 오늘 이 글로 깔끔하게 정리해드릴게요!

반응형

 

📚 목차

  1. PLC에서 부동소수점이 필요한 이유
  2. REAL과 LREAL의 구조 차이
  3. IEEE 754 표준이란?
  4. 표현 범위 및 정밀도 비교
  5. 실제 예제로 보는 차이
  6. PLC 프로그래밍 시 주의사항
  7. 요약과 실전 적용 팁

 

PLC에서 부동소수점이 필요한 이유

현장에서 센서 데이터를 다룰 때, 소수점 아래까지 정확하게 계산해야 할 일이 많죠. 예를 들어 유량, 온도, 압력 같은 데이터를 정확히 측정하려면 정수(Int) 타입만으로는 한계가 있어요. 바로 이럴 때 부동소수점(Floating Point) 타입인 REAL, LREAL이 활약합니다.
정수는 표현 범위는 크지만 소수점 표현이 안 되고, 부동소수점은 소수 표현이 가능하면서도 꽤 큰 숫자까지 다룰 수 있어요. 단, 정밀도와 메모리 차이가 존재합니다.

 

REAL과 LREAL의 구조 차이

REAL은 32비트, LREAL은 64비트 구조를 가집니다. 각각 부호 비트(S), 지수부(Exponent), 가수부(Fraction)로 구성되어 있어요.

  • REAL (32비트)
    • 부호: 1비트
    • 지수: 8비트
    • 가수: 23비트
    • 범위: 1.4E-45 ~ 3.4E+38
  • LREAL (64비트)
    • 부호: 1비트
    • 지수: 11비트
    • 가수: 52비트
    • 범위: 4.9E-324 ~ 1.79E+308

LREAL이 더 많은 비트로 표현되기 때문에 정밀도와 범위가 훨씬 넓어요.

 

IEEE 754 표준이란?

REAL과 LREAL이 사용하는 부동소수점 표현 방식은 국제 표준인 IEEE 754에 기반합니다. 이 표준은 컴퓨터에서 실수를 어떻게 표현할지를 정의하죠.

간단히 정리하면 아래 구조를 따릅니다:

  • 부호(S): 숫자의 양수/음수 여부
  • 지수(Exponent): 소수점의 위치를 좌우
  • 가수(Fraction): 실제 값의 정밀도

이 방식을 사용하면 소수점 아래 매우 작은 값부터, 매우 큰 값까지 폭넓게 표현할 수 있어요!

 

표현 범위 및 정밀도 비교

두 타입의 차이를 아래와 같이 비교할 수 있어요.

항목 REAL (32비트) LREAL (64비트)
총 비트 수 32비트 64비트
소수점 정밀도 약 7자리 약 15~17자리
최소값 1.401298E-45 4.940656E-324
최대값 3.402823E+38 1.797693E+308
사용 메모리 작음

👉 단순 연산이나 비정밀 제어는 REAL로 충분하지만, 정밀도나 누적 오차가 중요한 경우는 반드시 LREAL을 사용해야 합니다.

 

 

실제 예제로 보는 차이

예를 들어 같은 계산을 REAL과 LREAL로 실행했을 때 결과값이 미세하게 달라지는 걸 종종 보셨을 거예요.

REAL 예시: 1.0000001 + 0.0000001 = 1.0000001  
LREAL 예시: 1.0000001 + 0.0000001 = 1.0000002

PLC 프로그래밍 시 주의사항

📌 메모리 사용량: LREAL은 REAL보다 2배 크기이므로 메모리 제한이 있는 컨트롤러에서는 신중히 선택해야 해요.
📌 데이터 타입 일치: REAL과 LREAL을 섞어 쓰면 암묵적 형변환이 일어나서 연산 오류나 오차가 생길 수 있어요.
📌 라이브러리 함수: 일부 함수는 REAL만 지원하는 경우가 있으니 함수 사양서도 꼭 확인해야 합니다!

 

요약과 실전 적용 팁

이제 정리해볼게요!
REAL은 속도와 공간 절약이 필요할 때
LREAL은 정밀도와 안정성이 중요할 때
✅ 둘 다 IEEE 754 방식 사용
✅ PLC 내 계산 목적에 따라 타입을 골라 쓰는 것이 핵심!

실제로는 복잡한 수식이나 센서 누적값이 쌓이는 곳에는 무조건 LREAL을 추천드려요!

 

❓ FAQ

Q1. REAL과 LREAL은 왜 정밀도가 다른가요?

비트 수가 다르기 때문이에요. LREAL은 더 많은 비트를 가수부에 할당하여 더 높은 정밀도를 제공합니다.

Q2. PLC에서 LREAL을 쓰면 속도가 느려지나요?

일반적인 제어에서는 체감하기 어렵지만, 반복 연산이 많은 루프나 고속 제어에서는 성능 영향을 줄 수 있어요.

Q3. IEEE 754 표준은 모든 PLC에 동일하게 적용되나요?

대부분의 PLC 제조사는 IEEE 754를 따르지만, 내부 구현이나 표현 방식은 약간씩 다를 수 있어요. 매뉴얼 참고가 필요합니다.

Q4. REAL과 LREAL을 혼용해도 되나요?

가능은 하지만, 자동 형변환이 일어나서 오차나 버그를 유발할 수 있습니다. 명시적 형변환 또는 타입 통일을 권장합니다.

Q5. 어떤 상황에서 LREAL이 꼭 필요한가요?

누적 계산, PID 제어, 실시간 계측, 고정밀 센서 연산 등에서 오차 없는 처리가 필요할 때 사용해야 합니다.

 

💬 여러분은 어떠신가요?

여러분은 PLC 프로그램에서 REAL과 LREAL을 어떻게 활용하고 계신가요?
혹시 타입 선택으로 인한 버그나 성능 차이를 경험한 적 있으신가요? 댓글로 공유해주시면 다른 분들에게도 큰 도움이 될 거예요 🙌

반응형

댓글