PLC 제어 플로차트 작성법 — 상태와 천이 조건을 정한 뒤에 래더를 쓴다

마지막 수정: 2026-09-23 / 분류: PLC 프로그래밍, 제어 로직 설계

제어 플로차트는 장치의 상태와 상태를 옮기는 조건을 래더보다 먼저 정하는 그림입니다. 자기유지와 인터록의 조합으로 공정을 짜고, 멈춘 뒤의 재개에서 헤맨 적이 있는 분을 위해 썼습니다.

1. 공정의 순서는 상태로 가질 수밖에 없다

지금 공정의 어디에 있는지는 설계자가 상태로 갖게 하지 않는 한 프로그램 어디에도 나타나지 않습니다. PLC는 스캔마다 모든 회로를 위에서 아래까지 다시 평가하기 때문입니다. 어떤 행에서 "다음 입력이 올 때까지 기다리는" 일은 없습니다.

상태를 정하지 않고 짜면 공정의 진행 상황을 자기유지 회로와 인터록의 조합으로 나타내게 됩니다. 지금 어디에 있는지가 많은 코일에 흩어져 다음과 같은 일이 일어납니다.

공정을 스텝 (상태)으로 나누고, 항상 하나의 스텝만 유효하게 합니다. 그러면 내는 출력과 빠져나가는 조건이 그 스텝 안에서만 완결됩니다. 플로차트의 처리 상자가 하나의 스텝, 판단의 마름모가 그 스텝을 빠져나가는 조건입니다. 플로차트를 그리는 것은 그대로 스텝의 설계가 됩니다.

2. 처리와 판단을 나누고, 대기에는 시간 상한을 붙인다

  1. 처리 (상자)와 판단 (마름모)을 나눈다 상자는 스텝, 즉 그동안 계속 내는 출력입니다. 마름모는 그 스텝을 빠져나가는 조건입니다. "전진시키고 전진단을 기다린다"를 하나의 상자에 쓰면 스텝이 바뀌는 곳이 정해지지 않습니다.
  2. 동작을 기다리는 곳에는 시간 상한과 행선지를 붙인다 센서 고장이나 워크 걸림으로 입력이 오지 않으면 계속 기다립니다. 시간 초과를 이상으로 다루는 것 외에 PLC에는 멈췄다고 알 방법이 없기 때문입니다. 기동 버튼이나 리셋처럼 사람의 조작을 기다리는 곳은 상한 없이 계속 기다려도 됩니다.
  3. 이상의 행선지와 돌아오는 길을 그린다 이상 정지 → 원위치 복귀 → 기동 대기의 길까지 그립니다. 재개할 수 있는 스텝이 정해져 있지 않으면 멈춘 뒤에 현장에서 더듬거리게 됩니다.
  4. 스텝 번호는 간격을 두고 매긴다 (10, 20, 30…) 나중에 공정을 더해도 번호를 다시 매기지 않아도 되기 때문입니다. 스텝 번호는 터치패널 표시나 이상 이력에서도 참조됩니다.
  5. 동시에 움직인 것은 둘 다 완료를 기다려 진행한다 다음으로 넘어가는 판단에서는 둘 다의 완료를 확인합니다. 한쪽의 완료만으로 넘어가면 다른 쪽이 끝나기 전에 다음 동작이 시작되어 간섭하기 때문입니다.
  6. 1 스캔에 여러 스텝을 진행하지 않도록 한다 상승 에지로 볼지 ON 상태로 볼지를 판단마다 구분해 씁니다. 스텝이 바뀐 같은 스캔에서 다음 조건이 성립해 있으면 스텝이 단숨에 진행되기 때문입니다. 누른 채인 기동 버튼에서 일어나기 쉽습니다.

3. 예 — 상자를 나누면 멈추는 곳과 돌아오는 길이 그림에 나타난다

처리와 대기를 한 상자에 넣으면 넘어가는 곳을 읽을 수 없다

"스텝 20 실린더를 전진시키고 전진단 LS가 ON 될 때까지 대기"라는 하나의 처리 상자에서 "스텝 30 척을 닫는다"로 선이 이어져 있을 뿐인 플로차트.
전진시키는 것과 전진단을 기다리는 것이 한 상자에 들어 있습니다.

스텝 20의 어디에서 다음으로 넘어가는지, 전진단이 오지 않으면 어디로 가는지가 그림에서 읽히지 않습니다. 구현하는 사람이 각자 정하게 됩니다.

처리와 판단을 나누면 그대로 스텝 번호 회로가 된다

스텝 10에서 워크 반입 컨베이어를 구동하고 반입단 센서 ON 판단으로. YES면 아래 스텝 20으로 진행하고, NO는 오른쪽의 "이상: 반입 타임아웃 (5.0s 경과)"으로 빠진다. 이어지는 척 닫힘단 LS ON 판단도 마찬가지로 YES는 스텝 30으로, NO는 "이상: 척 불량 (2.0s 경과)"으로 분기한다.
처리와 판단을 나누고, 판단의 NO 쪽에 시간 초과 출구를 둔 형태.

이 형태는 스텝 번호 레지스터를 하나 가진 래더로 그대로 바꿀 수 있습니다. "지금의 스텝 번호"와 "판단 조건"이 갖춰지면 다음 번호를 넣는 회로입니다. 스텝 번호가 그대로 장치 상태의 표시가 되므로 멈춘 곳도 알 수 있습니다.

이상에서 돌아오는 길은 기동 대기로 돌아오는 고리로 만든다

기동 대기 (원위치)에서 "기동 ?"을 기다려 자동 운전으로 진행하고, "시간 초과·이상 ?"이 NO면 기동 대기로 돌아간다. YES면 이상 정지 (출력을 끊고 이상을 표시)로 진행해 "리셋 ?"을 기다린다. YES면 "원위치 복귀 기동 ?"을 기다리고, YES면 원위치 복귀 (간섭하지 않는 순서로 각 축을 복귀)를 한다. "시간 내에 완료 ?"가 YES면 기동 대기로, NO면 이상 정지로 돌아가는 플로차트.
어디서 멈춰도 이상 정지 → 원위치 복귀 → 기동 대기의 길로 원래대로 돌아갈 수 있습니다. 원위치 복귀는 리셋 뒤에 조작자가 기동합니다.

사이클을 끝까지 진행했을 때도, 시간 초과나 이상으로 멈췄을 때도, 마지막에는 기동 대기로 돌아옵니다. 장치는 항상 이 고리의 어딘가에 있으므로 재개할 곳에서 헤매지 않습니다.

원위치 복귀는 조작자가 버튼으로 기동한 뒤에 시작합니다. 리셋으로 이상을 지웠을 뿐인데 축이 움직이기 시작하면 조작자가 주위를 확인하기 전에 움직이기 때문입니다. 안에 들어가 확인할 때는 도어를 열어 안전 회로로 동력을 끊은 뒤에 들어갑니다. 비상정지 후의 흐름은 비상정지 복귀 플로차트 (샘플)에 있습니다.

4. 그리는 순서는 상태 → 조건 → 상한 → 돌아오는 길 → 번호

  1. 장치가 취하는 상태를 써낸다 기동 대기, 반입, 가공, 배출, 이상 정지 등. 아직 잇지 않아도 됩니다.
  2. 상태마다 내는 출력과 다음으로 넘어가는 조건을 정한다 타이밍 차트가 있으면 변화의 계기 화살표가 그대로 넘어가는 조건입니다.
  3. 동작을 기다리는 곳에 시간 상한과 이상의 행선지를 붙인다 상한은 정상 동작 시간에 여유를 더한 값으로 합니다.
  4. 이상에서 돌아오는 길을 그린다 원위치로 되돌리는 절차와 재개할 수 있는 스텝을 정해 둡니다.
  5. 스텝 번호를 매긴다 간격을 두고 매깁니다.

5. 걸려 넘어지는 곳은 수동 흐름·원점 복귀 순서·판단의 이름

6. 차트와 조합하면 래더에 쓸 내용은 거의 정해진다

차트로 순서와 계기를, 플로차트로 분기와 이상의 행선지를 정하면 래더에 쓸 내용은 거의 정해집니다. 타이밍 차트는 하나의 줄거리를 시간 순서로, 플로차트는 모든 줄거리를 상태의 변화로 나타내기 때문입니다.

이 글의 그림을 만든 도구

이 글의 그림은 모두 Flowchart Editor로 그려 SVG로 내보낸 것입니다.

  • Flowchart Editor — 처리와 판단을 나열해 잇고, 스텝 번호를 자동으로 매깁니다. 타이밍 차트의 화살표에서 판단과 대기를 조립할 수도 있습니다.
  • Timing Chart Editor — 플로의 바탕이 되는 신호의 순서와 계기를 정합니다.
  • Address Map Editor — 플로에서 쓰는 신호에 PLC 디바이스를 할당합니다.

설치도 등록도 필요 없이 브라우저만으로 쓸 수 있습니다.

관련 글

yk.builds