ハンドシェイクのタイミングチャート — 検査要求・検査完了と判定の受け渡し(サンプル)

最終更新: 2026-09-23 / カテゴリ: サンプル・タイミングチャート / この記事は日本語のみです。

PLC がワークを検査位置に止め、検査装置に検査を頼み、判定を受け取ってから搬出する。その正常な 1 回ぶんを 100 ms 刻みで描いたチャートです。 要求は完了が来るまで、完了は要求が落ちるまで出し続ける「4 つの変化」に、判定(OK / NG)の受け渡しを加えています。

検査装置は、要求が落ちるまで完了を出し続ける設定で使う想定です(画像処理装置のハンドシェイク設定、または検査ユニット側の PLC が出す場合)。 判定を一定時間のパルスで返す設定のままでは、この図のようにはなりません。

このサンプルをエディタで開く JSON をダウンロード

ブラウザで動く無料のエディタが新しいタブで開き、このチャートが読み込まれます。インストールも登録も要らず、入力した内容はどこにも送信されません。 書き換えても、このページのサンプルは変わりません。JSON は、エディタで開き直したり AI に渡したりするときの元データです。

PLC と検査装置のハンドシェイクのタイミングチャート。bWorkSet(検査位置に停止)の立ち上がりから bInspReq(検査要求)が ON。0.5 秒後に検査装置が bResultOK(判定 OK)を ON にし、続いて bInspDone(検査完了)を ON。検査完了を受けて検査要求が OFF、検査要求の OFF を受けて検査完了が OFF、続いて判定 OK が OFF。検査完了の OFF を受けて bCarryOut(搬出開始)が ON になり、ワークが離れて bWorkSet が OFF。bResultNG は OFF のまま。変化どうしが点線の矢印でつながっている。
PLC(マスター)と検査装置(スレーブ)の検査 1 回ぶん。点線の矢印は「どの変化が、どの変化を起こしたか」を表す。

1. 登場する信号

信号出す側意味
bWorkSetPLC(内部)ワークが検査位置に止まった。検査要求のきっかけ
bInspReqPLC → 検査装置検査要求。検査完了が ON になるまで出し続ける
bInspDone検査装置 → PLC検査完了。検査要求が OFF になるまで出し続ける
bResultOK / bResultNG検査装置 → PLC判定。検査完了が ON の間は変えない
bCarryOutPLC(内部)搬出開始。検査完了の OFF を見届けてから出す

2. 変化の順番

矢印でつながった変化の間を 1 目盛り(100 ms)ずつ空けているのは、順番を見せるためです。実際の応答は、スキャンと通信の遅れぶん(数 ms〜数十 ms)で返ります。 時間として決めるのは、撮像と判定にかかる 0.5 秒と、4 章の上限だけです。

  1. ワークが検査位置に止まったら、検査要求を出す
  2. 検査装置は判定を先に出し、そのあとで検査完了を出す 撮像と判定に 0.5 秒。
  3. PLC は検査完了の立ち上がりで判定を読み、ワークのデータに書き込んでから検査要求を落とす 判定はこのあと検査装置が消します。搬出先を決めるのに使うので、ワークごとのデータ(トラッキング用のワードの判定ビットなど)に残します。
  4. 検査装置は、検査要求が落ちたら検査完了を落とし、続けて判定を落とす 出すときと逆の順です。
  5. PLC は検査完了の OFF を見届けてから搬出を始める ワークが検査位置を離れると bWorkSet が OFF になります。

3. この形にしている理由

  1. 判定は検査完了より先に出し、完了より後に落とす PLC は完了の立ち上がりを合図に判定を読むので、完了が ON の間は判定がそろっていなければなりません。 判定と完了を検査装置が同じスキャンで出しても、PLC に同時に届くとは限りません。パラレル I/O なら入力ごとに応答時間がばらつき、 ネットワークでも判定と完了が別のワードや別の更新で運ばれることがあります。 先に出す時間は、そのずれより長くします(パラレル I/O なら入力の応答時間の差、ネットワークなら受ける側の更新周期 1 回ぶん以上)。 判定と完了が同じワードに入っていて必ず一緒に届くなら、同時でも構いません。
  2. OK と NG は 2 点に分け、完了が ON で両方 OFF なら異常にする 1 点で「ON なら OK」とすると、完了の線は生きていて判定の線だけが抜けたとき、良品がすべて NG になります。配線不良と気付くまで、良品を捨て続けることになります。 2 点なら、完了が ON なのに OK も NG も OFF になるので、その場で異常として止められます。 この図の bResultNG が OFF のままなのは、OK だった 1 回を描いているからです。
  3. 要求は完了が来るまで、完了は要求が落ちるまで出し続ける パルスで渡すと、受け取る側のスキャンや通信の更新周期より短いときに取りこぼします。タイミングチャートの書き方の決まり 4 と同じ理由です。
  4. 次の検査要求と搬出は、検査完了の OFF を見てから 完了が ON のまま次のワークの検査要求を出すと、前のワークの完了と判定を、今のワークの結果として読んでしまいます。 搬出の条件にも入れておくと、完了を落とせない装置の異常(4 章の 1 秒の上限)を、ワークがまだ検査位置にあるうちに捕まえられます。

4. 待ち時間の上限と、異常のとき

待ちには上限を置き、超えたら異常として止めます。上限が無いと、検査装置が止まったとき PLC は検査完了を待ち続け、ラインは理由の表示も無いまま止まります。

判定が NG のときも手順は同じで、bResultOK の代わりに bResultNG が ON になります。 タイムアウトや装置の異常から原位置へ戻す手順は筋書きが別なので、別のタイミングチャートかフローチャートに描きます。

5. 自分の設備に合わせる

「このサンプルをエディタで開く」で Timing Chart Editor に読み込んだら、次の順に書き換えます。

「出力 → 書き出し…」で SVG を選べば仕様書に貼れる図に、ツールバーの「フローチャートへ →」を押せば、矢印をもとに「どの入力を待ってから、どの出力を変えるか」を並べたフローチャートになります。 JSON をダウンロードして AI に渡し、信号名を自分の命名に置き換えさせることもできます(JSON の形式)。

このサンプルを作ったツール

  • Timing Chart Editor — 上の図とサンプルの JSON は、このエディタで作って書き出したものです。
  • Flowchart Editor — チャートの矢印を、待ちと処理の順番に置き換えます。

関連する記事

yk.builds