아하아멘

아하아멘

채택률 높음

PLC에서 실수형 데이터를 정수형으로 변환할 때 소수점 값이 잘리거나 예상과 다르게 표시되는 이유는 무엇인가요?

PLC에서 온도, 압력, 유량 등의 아날로그 값을 계산한 뒤 HMI에 표시하거나 다른 장치로 전달하는 과정에서 소수점 이하 값이 사라지거나 예상과 다른 숫자로 나타나는 경우가 있습니다. 예를 들어 계산 결과가 12.8인데 정수형 데이터로 변환한 뒤 12로 표시되거나, 특정 범위를 넘었을 때 값이 비정상적으로 변할 수 있습니다. PLC의 정수형과 실수형 데이터는 저장 방식에서 어떤 차이가 있으며, 형 변환 시 절삭과 반올림은 어떻게 구분되나요? 또한 32비트 실수 데이터를 두 개의 레지스터에 저장하는 PLC에서는 데이터 순서와 통신 설정도 표시값에 영향을 줄 수 있는지 궁금합니다.

3개의 답변이 있어요!

  • 안녕하세요. 최광민 전기기사입니다.

    PLC의 정수형 데이터와 실수형 데이터는 표현할 수 있는 값의 범위와 저장 방식이 다르므로 데이터 형 변환 과정에서 값이 달라질 수 있습니다. 정수형은 소수 부분을 직접 표현하지 못하기 때문에 실수형 값을 정수형으로 변환하면 PLC 명령의 처리 방식에 따라 소수 부분이 절삭되거나 반올림될 수 있습니다. 또한 데이터 형식에 맞지 않는 범위의 값을 변환하면 오버플로 또는 예상하지 못한 값이 발생할 수 있습니다. 32비트 실수형 데이터를 16비트 레지스터 두 개에 저장하는 PLC에서는 레지스터 순서나 워드 순서가 다른 장치와 일치하지 않을 때 전혀 다른 값으로 해석될 수도 있습니다. 점검할 때는 원본 데이터 형식과 변환 명령, 중간 계산값, HMI 태그의 데이터 형식 및 통신 장치의 워드 순서를 차례로 확인해야 합니다. 아날로그 입력값을 공학 단위로 변환하는 과정에서 정수형으로 먼저 계산해 소수점이 사라지는지도 살펴보는 것이 좋습니다. 정확한 표시가 필요한 온도나 압력 데이터는 계산 과정에서 실수형을 유지하고, 표시 단계에서 필요한 소수 자릿수만 지정하는 방식이 유리합니다. 다만 실

    채택 보상으로 352베리 받았어요.

    채택된 답변
  • 안녕하세요. 김경환 전기기사입니다.

    PLC에서 실수형 데이터를 정수형으로 변환하면 소수점 이하 값이 사라질 수 있습니다. 예를 들어 12.8을 정수형으로 변환하면 일반적으로 12가 되지만, 반올림 함수를 사용하게 되면 13이 될 수 있습니다. 다만 변환 방식은 PLC 기종과 명령어에 따라서 달라질 수 있습니다. 또한 정수형은 표현할 수 있는 숫자 범위가 제한되어 있어 범위를 초과하면 오버플로가 발생할 수 있습니다. 32비트 실수 데이터를 두 개의 레지스터로 전송하는 경우에는 레지스터 순서나 통신 설정이 맞지 않아 이상한 값이 표시 되기도 합니다.

  • 안녕하세요. 이대길 전기기능사입니다.

    실수(소수)를 정수로 바꿀 때 소수점을 그냥 잘라버리거나, 32비트 데이터를 주고받을 때 순서가 어긋나면 전혀 다른 숫자로 엉뚱하게 보인답니다