타이밍 차트 작성법 — 사람과 코드, 사람과 사람의 공통 인터페이스

마지막 수정: 2026-09-25 / 분류: 제어 설계, PLC

타이밍 차트는 기계 설계자의 머릿속에 있는 "움직이는 순서"를 소프트웨어 담당자에게 넘기는 그림입니다. 도면과 배선표만 받아 프로그램을 쓰는 사람, 순서를 상대에게 전하고 싶은 기계 설계자, 양쪽 모두를 위해 썼습니다.

1. 도면에는 순서가 없다. 그것을 넘기는 것이 이 그림

기계를 봐도 어떻게 움직일 생각이었는지는 알 수 없습니다. 도면에 있는 것은 실린더와 센서의 위치뿐이고, "전진단이 들어온 뒤에 척을 닫는다"는 순서는 적혀 있지 않기 때문입니다.

순서를 모르는 소프트웨어 담당자는 추측해서 쓸 수밖에 없습니다. 맞으면 움직이고, 빗나가면 시운전에서 멈춥니다. 타이밍 차트는 이 순서를 도면 밖으로 꺼내 하드웨어와 소프트웨어 사이에 두는 그림입니다. 파형이나 화살표는 겉모습에 지나지 않고, 내용은 다음 세 가지입니다.

2. 그림의 내용은 세 가지

① 연속되는 움직임을 상태로 자른다

첫째는 끊김 없는 움직임을 "상태"로 자르는 것입니다. 로드는 연속해서 움직이고, 모터는 계속 돕니다. 소프트웨어는 구분이 없으면 다룰 수 없으므로 어딘가에서 자릅니다. "전진단이 ON 될 때까지가 전진 중", "ON 되면 전진 완료"처럼.

1 Step = 100 ms인 타이밍 차트. 위에서부터 PLC→실린더의 bFwdCmd (전진 지령), 실린더→PLC의 nRodPos (로드 위치, 0에서 100 mm로 비스듬히 올라가는 파형), bFwdLS (전진단 LS, 위치가 100에 이른 S7에서 ON), 내부의 sState (상태)로 "후퇴", "전진 중", "전진 완료" 값의 블록. 전진 지령의 상승 에지에서 "전진 중"으로, 전진단 LS의 상승 에지에서 "전진 완료"로 화살표가 있다.
위 2행이 기계 측 (지령과 끊김 없는 로드의 움직임), 아래 2행이 소프트웨어 측 (자르는 위치의 LS와 잘라낸 상태). 화살표의 위치가 어디서 자를지의 약속입니다.

왜 필요한가 — 자르는 위치를 아는 것은 기계 설계자뿐이기 때문입니다. 센서의 위치와 기계 설계자가 "완료"라고 부르는 위치는 같다고 할 수 없습니다. 자르는 방법이 그림에 없으면 소프트웨어 담당자는 센서의 ON을 그대로 완료로 보고 씁니다.

② 주기가 다른 기기를 동기시킨다

둘째는 제각각의 주기로 움직이는 기기의 보조를 맞추는 절차입니다. PLC는 10 ms 스캔, 로봇은 자신의 주기, 옆 장치는 다른 PLC로 움직입니다. 서로 상대의 주기를 모릅니다. 신호를 던지기만 해서는 상대가 보기 전에 사라지거나, 한 번의 의도가 두 번 잡히거나 합니다.

1 Step = 10 ms인 타이밍 차트. 위에서부터 PLC A→PLC B의 bReq (요구), 내부의 bReqRead (B가 읽은 요구. B는 50 ms마다 읽음), PLC B→PLC A의 bAck (응답). 전반에서 A가 S1의 1 Step만 ON 한 요구는 B가 읽은 요구에 나타나지 않는다. 후반에서 A가 S6부터 요구를 유지하면 S10에서 B가 읽어 응답이 ON 되고, A는 응답을 보고 S11에서 요구를 내리고, B는 요구가 내려간 것을 보고 S13에서 응답을 내린다. 화살표가 3개 있다.
전반: 신호를 던지기만 함 (B의 주기 사이에 사라진다). 후반: 상대의 응답을 기다림 (주기를 몰라도 반드시 잡는다).

왜 필요한가 — 각 기기를 단독으로 올바르게 만들어도 이은 곳에서 깨지기 때문입니다. 요구 ON → 응답 ON → 요구 OFF → 응답 OFF의 네 가지 변화 (핸드셰이크)는 잔재주가 아닙니다. 비동기인 2대가 상태를 확실히 맞추는 가장 작은 절차입니다. 도중을 생략하면 생략한 곳에서 양쪽의 구현이 갈라집니다.

③ 기기 사이의 책임 경계를 계약으로 정한다

셋째는 기기와 기기 사이의 약속입니다. "서보 레디가 ON 된 뒤 동작 요구까지 500 ms 이상 띄운다"처럼 시간 조건까지 포함해 정합니다. 기다리는 시간은 우리가 재는 타이머의 파형으로 그리고, 상대는 무엇을 내고 우리는 언제 내는지를 행으로 나눕니다. 어느 행이 누구의 것인지로 경계가 그림 위에 나타납니다.

1 Step = 100 ms인 타이밍 차트. 위 행은 서보 앰프→PLC의 bServoReady (서보 레디)로 S3에서 ON. 가운데 행은 내부의 tReadyWait (레디 후 경과 시간)로, 레디의 상승 에지부터 0, 100, …, 500 ms로 비스듬히 올라가는 파형. 아래 행은 PLC→서보 앰프의 bRunReq (동작 요구)로, 파형이 500에 이른 S8에서 ON. 레디의 상승 에지에서 파형의 시작점으로, 파형의 500에서 요구의 상승 에지로 화살표가 있다.
위가 상대의 책임 (레디를 냄), 아래가 우리의 책임 (레디를 보고 500 ms 기다린 뒤 요구를 냄). 가운데 파형은 우리가 재는 시간. 취급설명서에 적혀 있는 종류의 약속입니다.

왜 필요한가 — 여기서 합의되어 있으면 내용은 각자 자유롭게 만들 수 있기 때문입니다. 앰프 안에서 무엇을 하든 레디와 500 ms만 지키면 PLC 측은 변하지 않습니다. 합의가 없으면 양쪽이 상대의 내용을 추측해서 만들고, 시운전에서 "그쪽이 느리다", "그쪽이 먼저 내렸다"가 되기 쉽습니다.

3. 그림 위에는 이렇게 그린다

4. 그리는 순서

  1. 기기와 경계에서 주고받는 신호를 나열한다 행을 기기별로 묶고, 신호명에는 변수명이나 디바이스도 덧붙입니다. 예: 반입 요구 bLoadReq / Y020.
  2. 정상 1 사이클을 상태의 경계에서 잘라 가며 그린다 기동부터 완료까지 차례로 에지를 놓고 화살표로 잇습니다. 이을 수 없는 에지가 자르는 방법이 정해지지 않은 곳입니다.
  3. 경계의 시간 조건을 수치로 붙인다 대기 시간과 응답 기한. 에지 근처나 그 행의 코멘트에 씁니다.
  4. 이상 시와 복귀를 별도의 그림으로 그린다 같은 행을 쓰고 줄거리만 바꿉니다. 어디서 멈추고, 어느 신호를 내리고, 원위치로 어떻게 되돌릴지까지 정해 둡니다.

5. 걸려 넘어지기 쉬운 곳

6. 그린 뒤

화살표는 그대로 플로차트의 판단 (다음으로 넘어가는 조건)이 되고, 행은 어드레스 맵의 변수가 됩니다.

이 글의 그림을 만든 도구

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

  • Timing Chart Editor — 신호를 내는 쪽 (M / S)별로 행을 나열하고, 변화에서 변화로 화살표를 긋고, 대기 시간과 코멘트를 적을 수 있습니다.
  • Flowchart Editor — 차트의 화살표를 판단과 대기로 바꿔 플로차트를 조립합니다.
  • Address Map Editor — 차트의 신호에 PLC 디바이스를 할당합니다.

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

관련 글

yk.builds