프로그램가능한 논리 제어 장치이다. 과거에 릴레이제어에 불편함을 개선하기 위해 개발되었다. 종류에는 모듈형 ,블록형(일체형)이있다.
수치연산, 아날로그 입/출력, 고속 카운터,PID,모터 제어,통신 기능이있다.
아날로그 입/출력:아날로그 신호를 디지털 신호로 변환하여 PLC에서 사용한다.(Analog Input, Analog Output)
제어:PID(Proportional, Integral, Derivative), 모터(서보,인버터), 고속 카운터
통신:Master(server)-Slave(Client)
-사용자의 프로그램에 의해서 본체에 연결된 외부 입출력 기기 제어
-입력단자와 COM 단자 사이에
-출력

1스캔타임=1연산 주기 작성한 프로그램이 전달하는 연산을 처음부터 끝까지 한 번 수행하는 것을 1스캔이라고 한다.
1.입력 이미지 영역:연산처리 과정
입력 모듈로부터 입력되는 정보를 입력받아 입력 이미지 영역으로 복사
입력 이미지 영역에 복사된 테이터들은 프로그램의 연산시 사용된다.
입력 리프레시:입력 영역의 데이터를 입력 이미지 영역으로 복사
2.Scan/Task 프로그램:연산처리 과정
이전 과정에서 저장한 정보를 바탕으로,사전에 만들어둔 프로그램 연산을 수행(연산 결과-> 메모리)
Scan과 Task
Scan Program:PLC의 CPU가 런 상태면 무조건 수행하는 프로그램
Task Program:스캔 프로그램과 달리 실행 조건이 만족되면 실행하는 프로그램, Task Program 실행 시, Scan Program의 연산이 멈추고 실행한다.
3.출력 이미지 영역:연산처리 괴정
연산 과정에서 만들어진 결과는 바로 출력으로 내보내지 않고 출력 이미지 영역에 저장됨
4.출력 이미지 영역: 자기 진단★
마지막 스텝 연산이 끝나고 나서 PLC 시스템 상에 오류가 있는지를 검사하고 오류가 없을 때만 출력을 내보낸다.
출력 이미지 영역에 저장후 PLC의 CPU는 자기 시스템을 진단하여 시스템 상에 오류가 있다면 에러 메시지가 발생한다.
5.출력 이미지 영역:END 처리
연산이 성공적으로 출력되고, 자기 진단 결과 시스템에 오류가 없다면 이미지 영역에 저장된 데이터를 출력 영역으로 복사한다.
END 처리 이후 다시 입력 리프레시를 실시 한다.
-사다리 형태로, 릴레이 로직과 유사한 도형 기반의 언어이다.(현재 가장 널리 사용되고 있다)
-스위치 형태의 입력과, 출력 코일
-릴레이 로직의 기호와 흡사하다.

-점(Point):입력 8점,출력 6점 등 PLC는 스위치나 센서 등 입출력 용량을 표시할 때 사용한다.
-스텝(step):PLC 명령어의 최소 단위
-스캔타임(Scan Time):사용자가 작성한 프로그램의 1회 수행에 걸리는 시간
-WDT(Watch Dog Timer):이상으로 인해 출력을 하지 못할 경우 설정한 시간 대기 후 에러를 발생시키는 시스템 감지 타이머
-파라미터(Parameter):프로그램과 함께 PLC에 저장되는 운전 데이터
글로벌변수
-모든 프로그램에서 사용 가능
-일반적인 프로그래밍에서의 전역변수와 비슷하다.
로컬변수
-해당 프로그램에서만 사용 가능
-일반적인 프로그래밍에서의 지역 변수와 비슷하다.
직접변수
-PLC의 입출력 또는 기억 장소에 대해서 직접적으로 표현하는 것(기본 제공)
-이미 지정된 식별자와 주소가 있기 때문에 변수 선언이 필요 없음
심볼릭 변수
-변수 선언이 필요하다.
퍼센트 기호(%)로 시작하고 1위치 접두어,2크기 접두어와 숫자들로 구성된다.
1.위치접두어(ex:%IX0.0.0)
입력 위치에 대한 변수의 표현이다.
I:입력 위치(Input Location)
Q:출력 위치(Output Location)
2.크기접두어(ex:%IX0.0.0)
X(or None):1비트의 크기
B:1바이트(8비트)의 크기
W:1워드(16비트)의 크기
D:1더블 워드(32비트)의 크기
L:1롱 워드(64비트)의 크기
ex:%IX N1.N2.0
베이스 번호와 슬롯 번호
-베이스와 슬롯 번호는 0부터 시작한다.
-베이스 번호:[크기접두어]에 따른 N1 번째 데이터
-슬롯 번호:N1번째 데이터 상의 N2 번째 비트
*베이스와 슬롯
-PLC의 CPU의 확장을 위해서 사용하고
-하나의 베이스에 슬롯을 추가하는 형태로 사용
-XGI 시리즈는 단일 베이스에서 최대 12개의 슬롯을 지원 하고, 확장 베이스를 이용하면 베이스도 확장 가능하다.
%IX0.0.N3
N3:N2슬롯에 대한 N3번째 데이터(크기 접두어 번호)

ex)%M B N1,N2
1.위치 접두어 번호
M:내부 메모리의 M영역
R:내부 메모리의 R영역
W:내부 메모리의 W영역
2.크기 접두어(입출력과 동일)
N1,N2 입출력 메모리의 할당과 기본적인 방법은 동일(하지만, 베이스 번호와 슬롯 번호를 지정하지 않는다.)
사용자가 선언해서 사용하는 변수
-변수이름
-형(data type)
-메모리 주소를 할당해서 사용
-VAR:읽고 쓸 수 있는 일반적인 변수
-VAR_CONSTANT:항상 고정된 값을 가지고 있는 읽기만 할 수 있는 변수(상수)
-VAR_EXTERNAL:VAR_GLOBAL로 선언된 변수 사용하기 위한 선언
-VAR_EXTERNAL_CONSTANT:VAR_GLOBAL로 선언된 상수를 사용하기 위한 선언

평상시 열린 접점:on상태일 때 왼쪽의 상태가 오른쪽으로 전달 전기가 on일때 흐른다

코일:왼쪽에 있는 연결선의 상태를 관련된 bool 변수에 전기가 흐르는 상태

양 변환 검출 접점:평상시 열린 접점과 같이 on인 상태에서 전기가 흐르지만, 한 스캔에 대해서만 on이 된다.


and연산자는 둘다 true값이여야 램프에 불이 들어오고, or연산자는 둘중에 하나라도 true면 램프에 불이 들어온다.