안녕하세요.
전기.기능장을 하다보면 제일 어려운것이 PLC 일거라 생각합니다. 저도 그랬으니깐요.
컴퓨터랑 친해지고 다시 프로그램과 친해지고
디바이스들과 2진수 16진수 어질어질해지죠.
기존의 방법들로도 풀수 있지만 2과제가.잘풀리지않고
출력과 A B접점에 대해 헷갈리고 하죠.
이제 비트제어와 워드제어를 수월하게 하는.방법으로
이해를 하면서.만들어.가봐요.
먼저 비트는 0.1 로 이뤄진 하나의 최소 입출력.단위입니다.
4개의 비트가 모여서 NIBBLE
8개의 비트가 모여서 BYTE
16개의 비트가 모여서 WORD 를 이룹니다.
2개의 WORD가 모여서 Double Word가 됩니다.
그리고 정수 (음수, 양수)의 표현은
INT 로 1 Word로 표현할수있습니다.
실수는 소수나 분수등을 얘기합니다.
Real 은 단장형 실수 데이터로 2 Word 즉 32비트로 구성
LReal(Long Real) 은 배장형 실수 데이터로 4Word로
64비트로 구성됩니다.
특수함수인 제곱근, 지수함수, 로그함수, 각도, 라드, 삼각함수는
모두 LReal의 타입입니다.
사칙연산등을 할때 같은 데이터 타입끼리만 계산됩니다.
비트는 하나의 입출력을 나타내기때문에
0은 OFF 상태 , 1은 ON 상태를 나타냅니다.
때문에 같은 비트를 한 프로그램에 사용하게되면
동시에 0 과 1이 투입되므로 결국 0이됩니다.
이건을 이중코일중복이라고.합니다.
하나의.램프를 켜는데 한쪽에서 전원을.투입하고 한쪽에서는 전원을 차단하는 신호를 주는것과.같습니다.
마지막으로 비트는 0, 1을 넣을수 있기에 여러 비트를 쓰게되면
각자마다 0.1이 들어감으로 어느 비트에 0.1을.넣을건지 구분이.되지않습니다. 때문에 순서를 정합니다. 이때 2의 0번째부터 2의 15번째의 비트 자리를 정해서 이것을 1개의 Word로 정합니다.
이것이 16진수와 같습니다. 0.1의 표현이기에 2의 x번째로 정하는것입니다.
이것은 우리가 아는 10진수와 같습니다.
예로 1 5 0 이면 1은 10의 2번째 자리로 백의자리입니다.
5는 10의 1번째 자리로 십의자리입니다.
0은 10의 0번째 자리로 일의 자리입니다
때문에 계산해보면
1 x100 + 5x 10 + 0 x 1 = 150 이 됩니다.
그렇다면 1 0 1 1 1(2진수) 의 자리는
1은 2의 4번째 자리로 16의 자리입니다.
0은 2의 3번째 자리로 8의 자리입니다.
1은 2의 2번째 자리로 4의 자리입니다
1은 2의 1번째 자리로 2의 자리입니다.
1은 2의 0번째 자리로 1의 자리입니다.
계산시서보면
1×16 + 0×8 + 1×4 + 1×4 + 1×2 + 1×1 = 23 이 됩니다.
그래서 1은 전원이 온 상태이고 0은 오프상태이므로
1 0 1 1 1 은 램프 4개를 순서대로 온 시키는 것입니다.
따라서 10진수로 23의 수를 해당 워드에 넣어주면
1 0 1 1 1 의 램프 순서로 출력이.나오게됩니다
표현해보면 Mov 23 D100 D100 이라는
워드주소에 23을 넣고 정해진 2의0번째부터 2의 4번째
비트순서로 불이들어옵니다.
16진수로 표
현하면 Mov h0017 D100 이됩니다.
h0017 의 의미는
1개의 Word가 16개의 비트이므로
0000 0000 0001 0111 16개 비트를 4자리씩 16진수로
h 0 0 1 7 로 표현
여기까지가 기본적인 PLC의 개념 입니다.^^