실기자동제어 운용

PLC 프로그래밍

PLC Programming

릴레이 회로를 PLC로 바꾸면?

유접점 릴레이 시퀀스 회로를 PLC로 구현합니다. 핵심은 래더 다이어그램을 명령어 리스트(IL)로 변환하는 것입니다.

🖥️ PLC 프로그래밍 3단계
① I/O 할당: 입력(X), 출력(Y), 내부(M), 타이머(T), 카운터(C) 번지 배정
② 래더 작성: 릴레이 접점회로를 래더 다이어그램으로 변환
③ 명령어 변환: 래더의 각 접점·코일을 LD/AND/OR/OUT 등으로 기술
• 실기 시험: 래더↔명령어 양방향 변환 핵심
래더 + 명령어 리스트 연동

좌측은 래더, 우측은 명령어 리스트입니다. 단계를 올리면 Rung이 순차 추가됩니다.

3

PLC I/O 할당표, 래더 다이어그램, 명령어 리스트(IL) 연동 표시

🔑 명령어 읽는 법
① LD X000: 새 Rung 시작, X000(a접점) 읽어들임
② OR M000: 현재 결과와 M000을 OR(병렬) → 자기유지
③ ANI X001: X001(b접점)을 AND(직렬) → 정지
④ OUT Y000: 최종 결과를 Y000(MC)에 출력
⑤ END: 프로그램 종료 (1스캔 완료)
래더↔명령어 변환 규칙
🔧 규칙 → 실전 변환
①기본 명령어와 변환 순서를 알았으니
②실제 래더 다이어그램을 니모닉(명령어)으로 바꿔보자
기본 명령어
LD, AND, OR, LDI, ANI, ORI, OUT, END
LD: 시작, I접미사: b접점, OUT: 코일 출력
변환 순서
좌→우, 상→하, 직렬먼저→병렬나중
래더를 왼쪽 모선부터 오른쪽 코일까지 순서대로 읽음
기본 명령 → 실전 변환
LD/AND/OR/OUT 기본 명령을 알면 래더를 명령어로 변환할 수 있다
Rung 0 변환
LD X000 → OR M000 → ANI X001 → ANI X002 → OUT Y000
X000(기동) ∥ M000(유지) → X001(정지b) → X002(OLb) → MC
타이머 명령
OUT T000 K100
T000에 K100(=10.0초) 설정, 0.1s 단위
스캔 동작
입력 읽기 → 프로그램 실행 → 출력 갱신 (1스캔)
스캔타임 수 ms, 래더를 위→아래 전체 실행
함정 포인트 & 변형 문제
⚠️ 자주 틀리는 포인트
① LD vs AND: Rung 시작은 반드시 LD, 중간 직렬은 AND
② 병렬 블록이 복잡하면 ORB(OR Block) 명령 필요
③ ANI = AND + NOT(b접점) → 'I' 빠뜨리면 a접점이 됨
④ 타이머: K100 = 10.0초(0.1s단위), K50 = 5.0초
⑤ 이중 코일(같은 출력 2곳) → 마지막 Rung이 최종값
복합 블록
ORB: OR Block, ANB: AND Block
병렬블록 직렬연결(ANB) 또는 직렬블록 병렬연결(ORB)
🔄 변형 문제 패턴
① '명령어→래더' 역변환: LD에서 새 Rung 시작
② '래더 빈칸 채우기': 접점 종류(a/b)와 어드레스 결정
③ 카운터: OUT C000 K10 (10회 카운트 후 ON)
④ 플리커(점멸): T 2개 교차 사용
실전 답안 체크리스트
📋 PLC 프로그래밍 실전 정리
①래더→니모닉 변환이 핵심이고
②타이머·카운터 응용까지 나오면 고득점
시작
LD(a) / LDI(b)
Rung 첫 접점
직렬
AND(a) / ANI(b)
직렬 추가
🔑 입력/직렬 → 병렬/출력
좌→우, 상→하 순서로 LD 시작하여 OUT으로 끝내는 패턴
병렬
OR(a) / ORI(b)
병렬 추가
출력
OUT Y/M/T/C
코일 출력
🎯 시험 포인트
① I/O 할당표 먼저 작성 → X(입력), Y(출력), M/T/C(내부) 구분
② 래더→명령어: 좌→우, 상→하 순서 엄수, Rung마다 LD 시작
③ b접점 명령에 'I' 접미사: LDI, ANI, ORI 빠뜨리면 오답
④ 반드시 END 명령으로 종료
⑤ 타이머/카운터 K값 단위 확인 (0.1s or 1s)
📝 대표 기출문제
①[기출유형] 다음 래더 다이어그램을 명령어 리스트(IL)로 변환하시오. (LD/AND/OR/OUT 순서)
②[기출유형] PLC에서 자기유지회로를 래더로 그리고 명령어를 쓰시오. (답: LD X000, OR M000, ANI X001, OUT Y000)
③[기출유형] 타이머 T000에 5초를 설정하는 명령어를 쓰시오. (답: OUT T000 K50)