PLC

PLC의 메모리 수치체계 (데이터의 타입과 표현법)

텍이 2020. 2. 6. 08:00
반응형

안녕하세요, 텍이 입니다!

 

 

PLC 강의 #4

 

 

오늘은 PLC의 메모리

수치체계에 대해서

강의하는 내용을

담아보았습니다.

 

 

 

메모리는 LS산전

XGT 시리즈

기준으로 설명드리겠습니다.

 

 


 

 

* XGT 시리즈 기준으로 설명하겠습니다. (XGI, XGK 공통)

 

 

전에 설명드린 내용은 PLC 데이터의 단위이구요

이번에 설명드리는건 수치를 표현하는

PLC 데이터의 타입에 관한 내용입니다.

데이터의 단위에 대한 내용은 아래 글을 참고해주세요.

 

  ↓        ↓        ↓       ↓

 

PLC의 메모리 수치체계 (데이터의 단위와 표현법)

 

PLC의 메모리 수치체계 (데이터의 단위와 표현법)

안녕하세요, 텍이 입니다! PLC 강의 #3 오늘은 PLC의 메모리 수치체계에 대해서 강의하는 내용을 담아보았습니다. 모든 PLC는 비트(Bit)를 가지고 데이터를 표현하고 계산합니다. 이 비트가 여러개 모여 다음과 같..

tech-e.tistory.com

 

 

1. 정수

 

제가 이전 글에서 n개의 비트(Bit)는 2ⁿ개의 값을 표현한다고 말씀 드렸죠.
0부터 표현이 되기때문에 실제 표현은

0 ~ 2ⁿ - 1만큼 표현이 됩니다.

 


바이트(Byte)로 예를들면
1바이트는 8개의 비트로 이루어졌죠.
2⁸ - 1 = 256 - 1
즉, 0 ~ 255 인거죠.
16진수로는 16#00 ~ 16#FF로 표현됩니다.

 


워드(Word)는
1워드 = 16비트
2¹⁶ - 1 = 65,536 - 1
0 ~ 65,535 만큼의 범위를 가지는겁니다.

16진수로는 16#0000 ~ 16#FFFF로 표현됩니다.

 

조금 감이 오시나요?

 

 

자, 지금까지 정수를 표현하였고,

정수중에서도 부호가 없는 양의 정수(양수) 타입의 데이터 표현방법이었구요.

 

 

그렇다면 부호 있는 정수타입은 어떻게 표현하고 0보다 작은 음의 정수(음수)는 어떻게 표현할까요.

그리고 정수가 아닌 실수는 어떻게 표현되는지 숫자가 아닌 문자의 표현방법은 어떤지 아래 표를 보면서 확인 해보겠습니다.

 

 

 

 

먼저 부호있는 정수타입일 경우에는 최상위 비트(Signed bit) 부호를 결정합니다.

비트가 0이면 양수, 1이면 음수를 표현합니다.

 

이때 실제 정수 데이터의 범위값은

-2ⁿ ~ 2ⁿ - 1이 되겠습니다.

 

바이트(Byte)로 예를들면 1바이트는 8개의 비트인데

최상위 비트를 제외하면 비트가 7개죠?

-2⁷ ~ 2⁷ - 1

즉, 1바이트는 -128 ~ 127 만큼의 데이터 범위를 가집니다.

 

워드, 더블워드, 롱워드도 데이터의 범위가 더 클뿐 같은 형식입니다.

 

 

보통 바이트, 워드 타입이 가장 많이 사용되며, 적산 값 같은 큰 숫자를 표현할 때 정도나 더블워드를 쓰고

롱워드까지는 잘 사용하지 않습니다.

 

 

2. 실수

 

그리고 PLC에서의 실수는 수학에서의 정의와 같이 유리수와 무리수를 포함한 수가 아닌

정수와 소수점 이하의 값으로 이루어진 수를 뜻합니다.

 

수의 정밀도에 따라서 32비트와 64비트로 이루어집니다.

실수타입은 리얼(Real) 또는 플로트(Float)라고도 불립니다.

 

보통 계측기와 통신을 하거나, 수치 계산을 할 때 주로 사용합니다.

 

정수데이터만 가지고는 정확한 계산을 할 수 없기에 리얼타입으로 형 변환하여 계산을 합니다.

 

단순 소수점을 표현하는 것은 아날로그 데이터의 분해능 값을 HMI(Human Machine Interface)에서 스케일 변환하여 표현하기도 합니다.

 

 

3. 문자열

 

문자열(Character String)은 말그대로 숫자가 아닌 문자를 나타냅니다.

영문 대소문자를 구분하고, 공백도 하나의 문자로 인식합니다.

그리고 문자열 방식은 '  '로 표현합니다.

 

예를 들어 1234는 10진수 1,234를 나타내고

16#1234는 16진수 1234입니다. (10진수로 나타내면 4,660)

'1234'는 문자열 1234입니다.

 

 

문자는 아스키 테이블표에 의한 값에 의해 적용됩니다.

아스키(ASCII)는 미국 표준 협회(ANSI)가 1962년에 제정한 정보 교환용 표준 코드이

American Standard Code for Information Interchange의 약어입니다.

패리티비트를 포함하여 8비트로 구성되어 바이트로 표현가능합니다.

문자 1, 2, 3, 4는 Hex값으로 표현하면 31, 32, 33, 34입니다.

의미는 없지만 10진수로 나타내면 875,770,417이 됩니다.

 

같은 숫자 값이지만 데이터 형식에 따라 전혀 다른 값이 된다는 거 확인해주세요.

 

 

문자열 방식은 주로 통신할 때 많이 사용하는데요.

통신 프레임을 보면 Head/ Body/ Tail로 이루어져 있는데 통신의 시작과 종료를 나타내는 Head와 Tail을 표시합니다.

물론 Body값도 표현 가능합니다.

10진수나 16진수값을 주고받는 경우도 있겠지만 대부분 아스키 값으로 데이터 패킷을 주고 받습니다.

 

이렇게 통신으로 취한 문자열 데이터는 형 변환을 통하여 원하는 정수나 실수타입으로 데이터를 받을 수 있습니다.

반응형