ハンドシェイクのタイミングチャート — 検査要求・検査完了と判定の受け渡し(サンプル)
最終更新: 2026-09-23 / カテゴリ: サンプル・タイミングチャート / この記事は日本語のみです。
PLC がワークを検査位置に止め、検査装置に検査を頼み、判定を受け取ってから搬出する。その正常な 1 回ぶんを 100 ms 刻みで描いたチャートです。 要求は完了が来るまで、完了は要求が落ちるまで出し続ける「4 つの変化」に、判定(OK / NG)の受け渡しを加えています。
検査装置は、要求が落ちるまで完了を出し続ける設定で使う想定です(画像処理装置のハンドシェイク設定、または検査ユニット側の PLC が出す場合)。 判定を一定時間のパルスで返す設定のままでは、この図のようにはなりません。
ブラウザで動く無料のエディタが新しいタブで開き、このチャートが読み込まれます。インストールも登録も要らず、入力した内容はどこにも送信されません。 書き換えても、このページのサンプルは変わりません。JSON は、エディタで開き直したり AI に渡したりするときの元データです。
1. 登場する信号
| 信号 | 出す側 | 意味 |
|---|---|---|
bWorkSet | PLC(内部) | ワークが検査位置に止まった。検査要求のきっかけ |
bInspReq | PLC → 検査装置 | 検査要求。検査完了が ON になるまで出し続ける |
bInspDone | 検査装置 → PLC | 検査完了。検査要求が OFF になるまで出し続ける |
bResultOK / bResultNG | 検査装置 → PLC | 判定。検査完了が ON の間は変えない |
bCarryOut | PLC(内部) | 搬出開始。検査完了の OFF を見届けてから出す |
2. 変化の順番
矢印でつながった変化の間を 1 目盛り(100 ms)ずつ空けているのは、順番を見せるためです。実際の応答は、スキャンと通信の遅れぶん(数 ms〜数十 ms)で返ります。 時間として決めるのは、撮像と判定にかかる 0.5 秒と、4 章の上限だけです。
- ワークが検査位置に止まったら、検査要求を出す
- 検査装置は判定を先に出し、そのあとで検査完了を出す 撮像と判定に 0.5 秒。
- PLC は検査完了の立ち上がりで判定を読み、ワークのデータに書き込んでから検査要求を落とす 判定はこのあと検査装置が消します。搬出先を決めるのに使うので、ワークごとのデータ(トラッキング用のワードの判定ビットなど)に残します。
- 検査装置は、検査要求が落ちたら検査完了を落とし、続けて判定を落とす 出すときと逆の順です。
- PLC は検査完了の OFF を見届けてから搬出を始める ワークが検査位置を離れると bWorkSet が OFF になります。
3. この形にしている理由
- 判定は検査完了より先に出し、完了より後に落とす PLC は完了の立ち上がりを合図に判定を読むので、完了が ON の間は判定がそろっていなければなりません。 判定と完了を検査装置が同じスキャンで出しても、PLC に同時に届くとは限りません。パラレル I/O なら入力ごとに応答時間がばらつき、 ネットワークでも判定と完了が別のワードや別の更新で運ばれることがあります。 先に出す時間は、そのずれより長くします(パラレル I/O なら入力の応答時間の差、ネットワークなら受ける側の更新周期 1 回ぶん以上)。 判定と完了が同じワードに入っていて必ず一緒に届くなら、同時でも構いません。
- OK と NG は 2 点に分け、完了が ON で両方 OFF なら異常にする 1 点で「ON なら OK」とすると、完了の線は生きていて判定の線だけが抜けたとき、良品がすべて NG になります。配線不良と気付くまで、良品を捨て続けることになります。 2 点なら、完了が ON なのに OK も NG も OFF になるので、その場で異常として止められます。 この図の bResultNG が OFF のままなのは、OK だった 1 回を描いているからです。
- 要求は完了が来るまで、完了は要求が落ちるまで出し続ける パルスで渡すと、受け取る側のスキャンや通信の更新周期より短いときに取りこぼします。タイミングチャートの書き方の決まり 4 と同じ理由です。
- 次の検査要求と搬出は、検査完了の OFF を見てから 完了が ON のまま次のワークの検査要求を出すと、前のワークの完了と判定を、今のワークの結果として読んでしまいます。 搬出の条件にも入れておくと、完了を落とせない装置の異常(4 章の 1 秒の上限)を、ワークがまだ検査位置にあるうちに捕まえられます。
4. 待ち時間の上限と、異常のとき
待ちには上限を置き、超えたら異常として止めます。上限が無いと、検査装置が止まったとき PLC は検査完了を待ち続け、ラインは理由の表示も無いまま止まります。
- 検査要求 ON → 検査完了 ON — 3 秒。0.5 秒の検査に再撮像を 1 回見込んでも 1 秒ほどなので、その 3 倍にしています。図の bInspDone の説明にも書いています
- 検査要求 OFF → 検査完了 OFF — 1 秒。装置は要求の OFF を見て落とすだけなので、数スキャンで返ります
判定が NG のときも手順は同じで、bResultOK の代わりに bResultNG が ON になります。 タイムアウトや装置の異常から原位置へ戻す手順は筋書きが別なので、別のタイミングチャートかフローチャートに描きます。
5. 自分の設備に合わせる
「このサンプルをエディタで開く」で Timing Chart Editor に読み込んだら、次の順に書き換えます。
- 題名・機器名・1 Step の時間 — ツールバーの「チャート情報…」(Ctrl+I)。題名の「(PLC と検査装置)」は機器名を変えても残るので、ここで直します
- 信号名とコメント — 行の名前をダブルクリック。コメントの「0.5 s」「3 s」も自分の装置の値にします。Y100 のようなデバイス番号で書く現場なら、信号名にそのまま入れて構いません
- 処理時間 — bResultOK と bInspDone の ON の区間を塗り直します。矢印は変わり目に付いているので、塗り直したら引き直します。長さが足りなければ、ツールバーの「Step数」を増やすか 1 Step の時間を延ばします
「出力 → 書き出し…」で SVG を選べば仕様書に貼れる図に、ツールバーの「フローチャートへ →」を押せば、矢印をもとに「どの入力を待ってから、どの出力を変えるか」を並べたフローチャートになります。 JSON をダウンロードして AI に渡し、信号名を自分の命名に置き換えさせることもできます(JSON の形式)。
このサンプルを作ったツール
- Timing Chart Editor — 上の図とサンプルの JSON は、このエディタで作って書き出したものです。
- Flowchart Editor — チャートの矢印を、待ちと処理の順番に置き換えます。
関連する記事
- ロボットと加工機のインターロック信号(サンプル) — 干渉領域外はプログラムでなく位置から出す
- エアシリンダの前進・後退のタイミングチャート(サンプル) — 端は「着いた ON」と「離れた OFF」で見る
- ベルトコンベアの搬送と定位置停止のタイミングチャート(サンプル) — 高速のまま止めず、減速してから止める
- サーボの位置決め起動のタイミングチャート(サンプル) — 起動の直後の「位置決め完了」は前の位置のもの
- タイミングチャートの書き方 — 人とコード、人と人の共通インターフェース
- PLC 制御フローチャートの書き方 — 状態と遷移条件を決めてからラダーを書く
- JSON データ構造の仕様
yk.builds