요약
- PLC를 배우기에 앞서 프로그램 기초인 2진수 10진수 16진수 설명
- 우리가 일상생활에 사용하는 숫자가 10진법(10진수) 0~9로 이루어져있음
- 위에 개념을 토대로 2진수는 0~1로, 16진수는 0~A,B,C,D,E,F (16개)로 이루어져 있음
- 10진수 기본으로 9(10)이 넘어가면 10(10)이 되고, 99가넘어가면 100(10) *가로안은 진법표시
2진수는 1(2)이 넘어가면 10(2), 11(2)이 넘어가면 100(2)가 됨
16진수는 F(16)이 넘어가면 10(16), FF(16)이 넘어가면 100(16) - 10진수는 우리가 평소에 사용하는 숫자이고, 9가넘어가면 10의자리가 1이되고 99가 넘어가면 백의자리가
1이되는 형식, 즉 10의자리는 10^1 * 10자리 현재수이고, 100의자리는 10^2 * 100자리 현재수
2진수, 16진수도 마찬가지로 2진수는 10의자리는 2^1 * 10자리 현재수, 100의자리는 2^2 * 100의자리 현재수
16진수는 10의자리는 16^1 * 10의자리 현재수, 100의자리는 16^2 * 100의자리 현재수
그뒤에도 똑같이 1000의자리는 x진수 x^3 * 1000자리 현재수이며, PLC에서는 대부분 10진수와 16진수를 쓴다.
만약숫자가 1111이면 각 자리수를 구한다음에 더하면 10진수로 계산이 된다.
1111(2) = (2^3 * 1) + (2^2 * 1) + (2^1 * 1) + 1 = 8+4+2+1 = 15(10)
1의자리의 경우는 모든 진수가 위에 설명한대로 2^0, 10^0,16^0은 1이므로 1 * 1의자리 현재수가 된다.
* ^표시는 제곱. 10^2 = 10의 2승 (10의 2제곱) = 100
PLC를 시작한지 어언 10년차가 다 되었다. 그동안 주변 및 인터넷의 도움을 많이 받기도 하였고,
나도 다시 공부하고 또 이제 막 시작하시는 분들(?)에게 도움이 되고자(도움이 되려나?)
배운것을 하나하나 써보려고 한다.
2진수 10진수 16진수 개념에 대한 설명
일단 PLC에 하기에 앞서 2진수 10진수 16진수의 개념을 이해하는게 좋다.
솔직히 PLC처음시작할 때 몰라도 크게 상관은 없으나(보통 거의 시작할땐 A접점, B접점 래더로 하기때문)
하지만 PLC뿐만아니라 PC를 하기에 앞서 기본단위 이므로 알아야 하며, 나중에 필요하다.
우리가 일상샐활에서 사용하는 숫자가 10진법, 10진수이다. 위 사진 우측편에 보이는 숫자가 10진수 300이다.
그리고 좌측은 프로그램쪽 종사하시지 않는분들은 생소한 2진수 표시이다.
우리가 알다시피 0,1,2,3,4,5,6,7,8,9을 사용하는것이 10진수이며, 9가넘어가면 10, 99가넘어가면 100이라는 것을
당연히 알고 있다. 2진수, 16진수도 10진수와 마찬가지로 어렵게 생각할 필요가 없다.
10진수가 0~9라면, 2진수는 0과1 숫자2개만 사용하는것이고, 16진수는 숫자는 0~9 그이후는 숫자가 없어
알파벳으로 대체한다. 0~9,A,B,C,D,E,F 총 16개의 숫자 + 알파벳을 사용한다.
10진수에서는 1의자리가 9다음에 10의자리가 1이되고 1의자리가 0이된다. 이것이 10이되는 것이고,
99다음은 100, 999다음은 1000인것을 우리는 알고 있다.
2진수도 똑같이 적용되며, 단지 숫자2개만 사용하는것이다. 즉 1의자리가 1 다음 숫자면, 10의자리가 1이되어서
10이 되는것이다. 마찬가지로 11다음은 100이며, 111다음이 1000이된다.
16진수도 동일하게 16개의 숫자+알파벳을 사용하여, 1의자리가 F다음 10의자리가 1이된다.
FF다음은 100, FFF다음은 1000이 된다.
다음은 계산하는 방식이다. 일상에서 사용하는 10진법 즉 10진수로 계산하는 방법이다.
우리가 평소에 쓰는 10진수는 9다음에 10, 99다음에 100인것은 당연하게 알고 있어서 따로 풀어서 계산하진 않는다.
10진수도 풀어서 계산한다면, 1의자리는 10^0 * 1의자리 숫자가되며, 10의자리는 10^1 * 10의자리 숫자, 100의자리는
10^2 * 100의자리 숫자 예를들어 999면 풀어서 쓴다고하면 (10^0 * 9) + (10^1 * 9) + (10^2 * 9)해서 999인셈이다.
2진수도 계산을 위와 똑같이 하면 된다. 위에 사진에 2진수 표시가 1 0010 1100(2)이므로 10진수 계산과 똑같이
1 0010 1100(2) = (2^8 * 1) + (2^5 * 1) + (2^3 * 1) + (2^2 * 1) = 300 이된다. 여기서 2^x * 0 = 0이므로 숫자가 0인것은
생략하였다.
16진수 계산 예를들어 FF(16)이라하면, (16^1 * 15) + (16^0 * 15) = 255가 된다.
* 1의자리수는 x^0 = 1 이므로 모든진수의 1의자리는 1 * 1의자리 숫자가 된다. ^표시는 제곱 10^2 = 10의 2제곱
사실상 위에 숫자계산을 몰라도.. 그냥 프로그램에 10진수 값넣고 실시간 데이터 표시창 확인하면 된다.
그래도 어떻게 계산되고, 왜 이런숫자가 나왔는지는 알아야 하는거 아닌가?
추가적으로 2진수, 8진수, 10진수, 16진수를 표시할때는 아래와 같이 줄여서 쓴다.
2진수 = Binary = Bin
8진수 = Octal = Oct
10진수 = Decimal = Dec
16진수 = Hexdecimal = Hex
위의 프로그램에서는 10진수는 K로, 16진수는 H로 사용한다. 즉 1번째 줄은 10진수 300을 D0로 전송하는것이고,
2번째줄은 16진수 F를 D1에 전송하는것이다. 그러므로 D0에는 300이 D1에는 15가 들어가 있는것을 볼 수 있다.
그래서 이걸 알아서 뭐해 별 필요 없을거 같은데(?)
2진수 16진수 필요성?에 대해선 추후에 데이터 전송 명령어 응용할때 필요하므로, 그때 설명하도록 하겠다.
'Program Study > PLC' 카테고리의 다른 글
PLC 공부 입문-2편 (0) | 2023.12.25 |
---|