본문 바로가기
계장/제어 이론

PLC 메모리의 체계와 데이터의 단위

by 쪼렙엔지니어 2021. 2. 25.
반응형

PLC의 기본 데이터 단위는 Bit(비트) 입니다.

이 Bit라는 데이터 영역은 0 또는 1을 표현할 수 있습니다.

따라서 펌프나 팬에 달린 모터가 켜졌는지, 혹은 꺼졌는지를 표현할 수 있죠.

또는 모터를 켜지거나 꺼지도록 명령을 내릴 수 도 있지요.

여튼 경우의 수가 단 두가지의 경우라면 1bit의 데이터 크기로 표현이 가능합니다.

그럼 단 두가지의 경우가 아니고 훨씬 많은 경우를 표현해야 한다면?

예를 들어자면 모터의 RPM 속도를 나타내야 하는 경우 1Bit로는 힘들겠지요?

100RPM인 경우도 있고 101, 102, 103, 104.....등등 많은 경우를 표현해야 하니

단 두가지 경우를 표현 할 수 있는 1bit로는 표현이 힘듭니다.

이러한 경우 Bit를 모아 더 큰 수를 표현 할 수 있습니다.

Bit보다 큰 데이터의 단위는 아래와 같습니다.

1) 1Bit(비트)

2) 4Bit = 1Nibble(니블)

3) 8Bit = 1Byte(바이트)

4) 16Bit = 2Byte = 1Word(워드)

5) 32Bit = 4Byte = 2Word = Double Word(더블워드)

6) 64Bit = 8Byte = 4Word = Long Word(롱워드)

자 그렇다면 각 데이터의 크기가 다르니

각 데이터마다 표현이 가능한 수의 크기도 다르겠지요?

이에 대해서 알아보겠습니다.

1) 1 Bit (비트)

2가지 수를 표현가능 하며 숫자 0과 1을 표현 할 수 있습니다.

2) 1 Nibble (니블)

16가지 수를 표현가능 하며 0 ~15까지 표현 가능합니다.

3) 1 Byte (바이트)

256가지 수를 표현가능 하며 0 ~ 255까지 표현 가능합니다.

단 0 ~ 255의 표현은 부호가 없는 0을 포함하는 양의 정수일때의 영역이고,

부호를 포함하여 정수(음의 정수와 양의 정수 모두를 포함)를 표현하고 싶을때는

-128 ~ 127까지의 표현이 가능합니다.

(부호가 있고 없고를 어떻게 나타내는지는 다음 포스팅에서 자세히 다루도록 하겠습니다.)

4) 1 Word (워드)

65,536가지 수를 표현가능 하며 0 ~ 65,535까지 표현이 가능합니다.

단 바이트와 마찬가지로 부호를 포함한 전체영역의 정수 표현은

-32,768 ~ 32,767까지의 표현이 가능합니다.

5) 1 Double Word (더블 워드)

4,294,967,296가지 수를 표현가능 하며 0 ~ 4,294,967,2985 까지 표현이 가능합니다.

바이트나 워드와 마찬가지로 부호를 포함한 전체영역의 정수 표현은

-2,147,483,648 ~ 2,147,483,647까지 표현이 가능합니다.

6) 1 Long Word (롱워드)

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

표현가능한 수는

$0\ \sim \ \combi{2}^{64}\ -\ 1$0 ~ 264  1

입니다. 손으로 풀어서 쓰거나 계산하기에도 어마어마하게 큰 값이죠.

바이트나 다른 워드종류들과 마찬가지로 부호를 포함한 전체영역의 정수 표현은

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 입니다.

 

그럼 이번엔 이러한 데이터 단위마다 표현가능한 값이 정해지게 되는 배경에 대해서 한번 알아보겠습니다.

먼저 '컴퓨터는 0과 1밖에 모른다' 라는 얘기를 들어보신적이 있으실겁니다.

맞습니다. 컴퓨터는 이진수체계만을 이해하고 컨트롤 가능하죠.

그래서 모든 데이터 단위의 기본이 Bit(비트)가 되는겁니다.

그럼 바이트를 예로 들어서 표현 가능한 값을 풀어서 보겠습니다.

1Byte(바이트)는 위에서 얘기했듯이 256가지 수를 표현가능 하며 0 ~ 255까지 표현 가능합니다.

그리고 1Byte는 8Bit(비트), 즉 8개의 Bit로 이루어져 있다고 했습니다.

중학생때 이진법을 배울때 이진수의 표현방법에 대해서 배웠던 것을 기억하시나요?

만약 이진수가 10111011 로 되어 있다면,

제일 오른쪽 첫번째 자리는 2의 0제곱의 자리

제일 오른쪽부터 두번째 자리는 2의 1제곱의 자리

제일 오른쪽부터 세번째 자리는 2의 2제곱의 자리가 됩니다.

이 내용은 아래와 같은 내용이 된다는 거죠.

기억나시는지요?

PLC나 PC에서도 동일합니다.

(즉 1Byte는 2의 7제곱의 자리까지, 1Word는 2의 15제곱의 자리까지 있는 이진수가 되는 것입니다.)

따라서 1Byte의 데이터는 CPU가 위와 같이 인식을 하기때문에

1Byte(8Bit)최대의 수가 255가 되는겁니다.

(모든 자리가 1일 경우가 최대의 수인 경우이고 이를 계산해보면 255가 나옴.)

Word, Double Word, Long Word 모두 마찬가지 입니다.

이때까지 알아본 내용을 토대로 우리가 평상시에 사용하는 10진수를 변환해보면 아래와 같습니다.

10진수 = Decimal

16진수 = Hexadecimal

2진수 = Binary

10진수 0부터 27까지를 1Byte 2진수로 표현한 것을 잘 보십시오.

(16진수는 PLC 메모리 주소체계가 16진수인 경우가 있습니다. 이 내용은 향후에 자세히 다루겠습니다.)

오늘은 여기까지 이며 다음 포스팅에서 각 데이터 단위별 사용 예를 알아보며

활용법에 대해 한번 알아보겠습니다.

감사합니다.

반응형

댓글