(57)【特許請求の範囲】
【請求項１】
搬送路上での搬送方向への搬送を規制または規制解除するストッパ群の各々の位置と、前記ストッパの状態と、ワーク群の各々のワークの前記搬送路上での状態と、を記憶する記憶手段を制御することにより、前記ワーク群の搬送を模擬する模擬装置であって、
前記ストッパ群のうち、前記ワーク群内の搬送状態の対象ワークが到来する規制状態の対象ストッパを特定する特定手段と、
前記特定手段によって特定された前記対象ストッパの位置に基づく前記対象ワークの停止位置に、前記対象ワークが到達したことを検出する検出手段と、
前記検出手段によって前記対象ワークの停止位置への到達が検出された前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記対象ストッパによる滞留ワーク列として前記記憶手段に追加する設定手段と、
前記設定手段によって前記停止状態に変更された場合、前記対象ストッパの位置に基づく前記対象ワークの後続の対象ワークの停止位置を、前記対象ワークの停止位置より前記停止状態に変更された前記対象ワークの搬送方向長分オフセットする更新手段と、
を備えることを特徴とする模擬装置。
【請求項２】
前記検出手段は、
前記記憶手段に前記滞留ワーク列が記憶されていない場合、前記対象ワークの停止位置である前記対象ストッパの位置に前記ワークが到達したことを検出することを特徴とする請求項１に記載の模擬装置。
【請求項３】
前記検出手段は、
前記記憶手段に前記滞留ワーク列が記憶されている場合、前記対象ワークが、前記対象ワークの停止位置である、前記滞留ワーク列の搬送方向長分オフセットされた位置に到達したことを検出することを特徴とする請求項１に記載の模擬装置。
【請求項４】
前記設定手段は、
前記対象ワークの停止位置で停止している滞留ワーク列の中から選ばれた任意の滞留ワークの状態を、停止状態から前記滞留ワーク列からの離脱状態に変更するとともに、前記滞留ワーク列のうち前記離脱状態に変更された前記滞留ワークの後続滞留ワーク列の各々のワークの状態を、停止状態から搬送状態に変更し、
前記更新手段は、
前記設定手段によって前記離脱状態に変更された場合、前記対象ワークの停止位置を、前記対象ストッパの位置よりも、前記滞留ワークの先行滞留ワーク列の搬送方向長分オフセットされた位置に更新することを特徴とする請求項１または３に記載の模擬装置。
【請求項５】
前記搬送路は、前記対象ワークが位置する第１の搬送装置と、前記第１の搬送装置の次段にあり、前記対象ストッパが位置する第２の搬送装置とが連結され、
前記模擬装置は、前記対象ワークの搬送方向長と、前記第１の搬送装置と前記第２の搬送装置との間の境界から前記対象ワークの停止位置までの距離と、に基づいて、前記対象ワークが前記第１の搬送装置から前記第２の搬送装置へ乗り移り可能か否かを判断する判断手段を備え、
前記検出手段は、
前記判断手段によって乗り移り可能であると判断された場合、前記対象ワークの停止位置に、前記対象ワークが到達したことを検出することを特徴とする請求項１〜３のいずれか一つに記載の模擬装置。
【請求項６】
前記設定手段は、
前記判断手段によって乗り移り不可能であると判断された場合、前記境界に位置する特定のストッパを、非規制状態から規制状態に設定するとともに、前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記特定のストッパによる特定の滞留ワーク列として前記記憶手段に追加し、
前記更新手段は、
前記設定手段によって規制状態に設定された前記特定のストッパの位置を、前記境界から前記対象ストッパに滞留している前記滞留ワーク列の最後尾に更新することを特徴とする請求項５に記載の模擬装置。
【請求項７】
前記設定手段は、
前記判断手段によって乗り移り不可能であると判断され、かつ、前記特定のストッパが規制状態に設定済みである場合、前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記特定のストッパに滞留している前記特定の滞留ワーク列として前記記憶手段に追加することを特徴とする請求項６に記載の模擬装置。
【請求項８】
前記対象ワークの搬送方向長を、前記対象ワークの姿勢に応じて算出する算出手段を備えることを特徴とする請求項１〜７のいずれか一つに記載の模擬装置。
【請求項９】
前記記憶手段に記憶される前記ストッパ群の各々の位置と、前記ストッパの状態と、前記ワーク群の各々のワークの前記搬送路上での状態と、を表示する表示手段を備え、
前記特定のストッパは、前記表示手段で描画されないストッパであることを特徴とする請求項６または７に記載の模擬装置。
【請求項１０】
搬送路上での搬送方向への搬送を規制または規制解除するストッパ群の各々の位置と、前記ストッパの状態と、ワーク群の各々のワークの前記搬送路上での状態と、を記憶する記憶手段を制御することにより、前記ワーク群の搬送を模擬するコンピュータに、
前記ストッパ群のうち、前記ワーク群内の搬送状態の対象ワークが到来する規制状態の対象ストッパを特定する特定工程と、
前記特定工程によって特定された前記対象ストッパの位置に基づく前記対象ワークの停止位置に、前記対象ワークが到達したことを検出する検出工程と、
前記検出工程によって前記対象ワークの停止位置への到達が検出された前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記対象ストッパによる滞留ワーク列として前記記憶手段に追加する設定工程と、
前記設定工程によって前記停止状態に変更された場合、前記対象ストッパの位置に基づく前記対象ワークの後続の対象ワークの停止位置を、前記対象ワークの停止位置より前記停止状態に変更された前記対象ワークの搬送方向長分オフセットする更新工程と、
を実行させることを特徴とする模擬プログラム。
【請求項１１】
搬送路上での搬送方向への搬送を規制または規制解除するストッパ群の各々の位置と、前記ストッパの状態と、ワーク群の各々のワークの前記搬送路上での状態と、を記憶する記憶手段を制御することにより、前記ワーク群の搬送を模擬するコンピュータが、
前記ストッパ群のうち、前記ワーク群内の搬送状態の対象ワークが到来する規制状態の対象ストッパを特定する特定工程と、
前記特定工程によって特定された前記対象ストッパの位置に基づく前記対象ワークの停止位置に、前記対象ワークが到達したことを検出する検出工程と、
前記検出工程によって前記対象ワークの停止位置への到達が検出された前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記対象ストッパによる滞留ワーク列として前記記憶手段に追加する設定工程と、
前記設定工程によって前記停止状態に変更された場合、前記対象ストッパの位置に基づく前記対象ワークの後続の対象ワークの停止位置を、前記対象ワークの停止位置より前記停止状態に変更された前記対象ワークの搬送方向長分オフセットする更新工程と、
を実行することを特徴とする模擬方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、搬送動作を模擬する模擬装置、模擬プログラム、および模擬方法に関する。
【背景技術】
【０００２】
従来、コンベア上のワークの動きをシミュレーションする場合、装置オブジェクト間の相互作用（物理的接触）の有無は、ワークとこれが属する装置の一つ以上の装置要素の各々の位置情報などから判別することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−６８４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、実際の自動機や加工機といった、ワーク（搬送物）に対して何らかの作業を行う装置の動きは一列搬送が多く、コンベア上を搬送されるワークを取り出す場合はストッパなどでワークを停めた上で行っている。３次元モデルを使った制御プログラムの制御シーケンスデバッグ向け仮想メカシミュレータではワークのコンベア搬送は実現できているが、ワークをコンベア上の任意の場所で停めることはできず、ワーク同士が重なってしまいこのような表現を実現できない。
【０００５】
制御プログラムは想定どおりワークが搬送されなければ、制御シーケンスを進めることができなくなり、制御プログラムの検証範囲が限定的になることで仮想メカシミュレータによるデバッグの効果が薄れてしまうことになる。したがって、上述した動的干渉や各ワークの位置情報に基づく判断処理を実行しない場合は、シミュレーションによる模擬精度自体の低下を招くという問題があった。
【０００６】
一方、装置オブジェクト間の相互作用（物理的接触）を、上述した動的干渉や各ワークの位置情報に基づく判断処理をおこなうと、演算による負荷が増大する。演算負荷の増大により、シミュレーションで要求されるレスポンス性能を満たすことができない。したがって、シミュレーションによる模擬精度が低下するという問題があった。
【０００７】
本発明は、上述した従来技術による問題点を解消するため、演算負荷を低下させつつシミュレーションによる模擬精度の向上を図ることができる模擬装置、模擬プログラム、および模擬方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明にかかる模擬装置、模擬プログラム、および模擬方法の一側面では、搬送路上での搬送方向への搬送を規制または規制解除するストッパ群の各々の位置と、前記ストッパの状態と、ワーク群の各々のワークの前記搬送路上での状態と、を記憶する記憶手段を制御することにより、前記ワーク群の搬送を模擬するにあたって、前記ストッパ群のうち、前記ワーク群内の搬送状態の対象ワークが到来する規制状態の対象ストッパを特定し、特定された前記対象ストッパの位置に基づく停止位置に、前記対象ワークが到達したことを検出し、前記停止位置への到達が検出された前記対象ワークの状態を、搬送状態から停止状態に変更し、かつ、前記対象ワークを前記対象ストッパによる滞留ワーク列として前記記憶手段に追加し、前記停止状態に変更された場合、前記停止位置を、前記ストッパの位置から設定後における前記滞留ワーク列の搬送方向長分手前の位置に更新する。
【発明の効果】
【０００９】
本発明にかかる模擬装置、模擬プログラム、および模擬方法の一側面によれば、演算負荷を低下させつつシミュレーションによる模擬精度の向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、ワークストッパモデル例を示す説明図である。
【図２】図２は、ワークストッパモデルの一例を示す説明図である。
【図３】図３は、図２に示したコンベアシステムの一部の３次元表現を示す説明図である。
【図４】図４は、コンベアシステムリストを示す説明図である。
【図５】図５は、図４に示したコンベアリストの記憶内容の一例を示す説明図である。
【図６】図６は、図５に示したストッパリストの記憶内容の一例を示す説明図（その１）である。
【図７】図７は、図５に示したストッパリストの記憶内容の一例を示す説明図（その２）である。
【図８】図８は、図５に示したストッパリストの記憶内容の一例を示す説明図（その３）である。
【図９】図９は、図５に示したストッパリストの記憶内容の一例を示す説明図（その４）である。
【図１０】図１０は、図４に示した全ワーク情報リストの記憶内容の一例を示す説明図である。
【図１１】図１１は、図４に示した投入リストの記憶内容の一例を示す説明図である。
【図１２】図１２は、関節ストッパによるストッパ判定の表現例を示す説明図である。
【図１３】図１３は、図１２の（Ａ），（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。
【図１４】図１４は、図１２の（Ｃ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。
【図１５】図１５は、ワークの解放状態の表現例を示す説明図である。
【図１６】図１６は、図１５の（Ａ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。
【図１７】図１７は、図１５の（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。
【図１８】図１８は、図１５の（Ｃ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。
【図１９】図１９は、対象ストッパの検索例を示す説明図である。
【図２０】図２０は、図１９の（Ａ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１２の記憶内容を示す説明図である。
【図２１】図２１は、図１９の（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１の記憶内容を示す説明図である。
【図２２】図２２は、溢れ判定の第１の例を示す説明図である。
【図２３】図２３は、図２２の（Ａ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。
【図２４】図２４は、図２２の（Ａ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。
【図２５】図２５は、溢れ判定の第２の例を示す説明図である。
【図２６】図２６は、図２５の（Ｂ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。
【図２７】図２７は、図２５の（Ｂ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。
【図２８】図２８は、溢れ判定の第３の例を示す説明図である。
【図２９】図２９は、図２７の（Ｂ３）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３０】図３０は、図２７の（Ｂ４）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３１】図３１は、溢れ判定の第４の例を示す説明図である。
【図３２】図３２は、図３１の（Ｃ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３３】図３３は、図３１の（Ｃ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３４】図３４は、溢れ判定の第５の例を示す説明図である。
【図３５】図３５は、図３４の（Ｃ３）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３６】図３６は、図３４の（Ｃ４）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。
【図３７】図３７は、実施の形態にかかる模擬装置のハードウェア構成例を示すブロック図である。
【図３８】図３８は、実施の形態にかかる模擬装置の機能的構成例を示すブロック図である。
【図３９】図３９は、ワークＷの一例を示す説明図である。
【図４０】図４０は、ワークＷをローカル座標系からグローバル座標系に置いた場合の姿勢を示す説明図（その１）である。
【図４１】図４１は、ワークＷをローカル座標系からグローバル座標系に置いた場合の姿勢を示す説明図（その２）である。
【図４２】図４２は、ワークＷをローカル座標系からグローバル座標系に置いた場合の姿勢を示す説明図（その３）である。
【図４３】図４３は、実施の形態にかかる模擬装置によるワーク情報作成処理手順を示すフローチャートである。
【図４４】図４４は、実施の形態にかかる模擬装置によるワーク投入処理手順を示すフローチャートである。
【図４５】図４５は、実施の形態にかかる模擬装置による搬送処理手順を示すフローチャートである。
【図４６】図４６は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その１）である。
【図４７】図４７は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その２）である。
【図４８】図４８は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その３）である。
【図４９】図４９は、図４６に示した排出ストッパの状態更新処理（ステップＳ４６０５）の詳細な処理手順を示すフローチャートである。
【図５０】図５０は、図４７に示したストッパＳｊでの停止設定処理（ステップＳ４７０８）の詳細な処理手順を示すフローチャートである。
【図５１】図５１は、図４８に示したストッパＳｊの解除処理（ステップＳ４８０４、Ｓ４８０６）の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかる模擬装置、模擬プログラム、および模擬方法の実施の形態を詳細に説明する。本実施の形態では、ワークのストッパによる停止・滞留表現（ワークストッパモデル）を一列搬送にすることで単純化し、制御シーケンスデバッグ向けの仮想メカシミュレータに耐えうる表現を実現する。以下、ワークストッパモデルについて説明する。
【００１２】
＜ワークストッパモデルでのワーク滞留表現例＞
図１は、ワークストッパモデル例を示す説明図である。（Ａ）は、ワーク搬送状態を示している。Ｓは搬送路上に設置されたストッパである。ストッパＳは、Ｐ１に設置されている。Ｐ１はストッパＳの設置位置であるとともに、ワークが滞留していない状態では、到来するワークの停止位置にもなる。ストッパＳは、搬送路上で、ワークの搬送を規制してワークを停止させたり、規制を解除してワークを通過させたりする。Ｗ１は、搬送路上を搬送しているワークを示している。ワークＷ１の搬送方向長はｗ１である。
【００１３】
（Ｂ）は、ワークＷ１の滞留状態を示している。ワークＷ１がストッパＳで停止させられると、停止位置Ｐ１が、ワークＷ１の搬送方向長ｗ１分手前にオフセットされ、Ｐ２に更新される。なお、Ｗ２は、ワークＷ１の後続のワークを示している。ワークＷ２の搬送方向長はｗ２である。
【００１４】
（Ｃ）は、ワークＷ１，Ｗ２の滞留状態を示している。ワークＷ２がワークＷ１に到達すると、ワークＷ２が停止する。そして、停止位置Ｐ２が、ワークＷ２の搬送方向長ｗ２分手前にオフセットされ、Ｐ３に更新される。
【００１５】
このように、ストッパＳによりワークＷ１が滞留している場合に、後続のワークＷ２がストッパＳに到来する場合でも、ストッパＳによる停止位置がＰ１からＰ２に更新されているため、ワークＷ２が、ストッパＳで滞留しているワークＷ１の停止位置Ｐ２で、ストッパＳにより停止させられることとなる。
【００１６】
このように、本実施の形態のワークストッパモデルでは、動的干渉をおこなうことなくワークの滞留状態を表現することができる。また、ストッパＳによる停止位置をＰ１からＰ２、Ｐ２からＰ３へワークが滞留する都度オフセットしている。したがって、ワークＷ１，Ｗ２同士の位置情報から接触を判断して止めるのに比べて、より少ない演算量でワークの接触を判断し、ワークの滞留状態を模擬することができる。以下、具体例を挙げてワークストッパモデルを説明する。
【００１７】
＜ワークストッパモデル例＞
図２は、ワークストッパモデルの一例を示す説明図である。図２では、ワークストッパモデルとしてコンベアシステムを採用している。コンベアシステムは、複数のコンベアユニット（以下、単に「コンベア」）が連結された搬送路をモデル化した情報である。コンベアには２種類ある。１つが直線的な搬送をおこなうタイプのコンベア（図２
ではコンベアＣＵ１，ＣＵ２，ＣＵ４）であり、もう１つが曲線的な搬送をおこなうタイプのコンベア（図２ではＣＵ３）である。また、ユーザ側で作成した制御プログラムにより、コンベアごとに、搬送の開始、停止、搬送速度といった搬送動作や搬送動作のタイミングが設定されているものとする。
【００１８】
各コンベアには、ストッパが設置されている。ストッパには２種類ある。１つが関節ストッパとよばれ、オペレータが、ワークストッパモデルとして搬送路上の任意の位置に設定可能なストッパである。関節ストッパは、コンベア上で、ワークの搬送を規制してワークを停止させたり、規制を解除してワークを通過させたりする。また、ユーザ側で作成した制御プログラムにより、関節ストッパの規制および規制解除といった規制動作や規制動作のタイミングが設定されているものとする。図２では、Ｓ１１〜Ｓ１３，Ｓ２１，Ｓ２２，Ｓ４１が関節ストッパである。
【００１９】
また、ストッパの種類には、各コンベアの排出端に設置されている排出ストッパである。排出ストッパは、コンベア間のワークの乗り移りやワークの滞留を表現するストッパであり、ディスプレイには表示されない仮想的なストッパである。排出ストッパは、常時規制解除の状態であるが、コンベア間のワークの乗り移りやワークの滞留を表現する場合に適宜規制状態に変更する。排出ストッパの規制および規制解除といった規制動作や規制動作のタイミングは、本実施の形態のプログラムで実行することとなる。
【００２０】
図３は、図２に示したコンベアシステムの一部の３次元表現を示す説明図である。図３では、コンベアＣＵ１を３次元で表現している。なお、図３において、アーム３０１は、ワークを取り除いたり、ワークを追加したりするオブジェクトである。また、レール３０２は、アーム３０１を搬送路に沿って移動させるオブジェクトである。また、ユーザ側で作成した制御プログラムにより、アーム３０１の動作や動作タイミング、移動で設定されているものとする。
【００２１】
＜データベースの記憶内容＞
つぎに、本実施の形態のデータベースの記憶内容について図４〜図１１を用いて説明する。ここでは、図２および図３に示したワークストッパモデル（コンベアシステムＣ１）を例に挙げて説明する。
【００２２】
図４は、コンベアシステムリストを示す説明図である。コンベアシステムリストとは、コンベアシステムごとに、コンベアシステムのシステムＩＤ、コンベアリスト、投入可能領域、全ワーク情報リスト、投入リストを記憶するテーブルである。
【００２３】
システムＩＤ項目には、コンベアシステムごとに、コンベアシステムを一意に特定するシステムＩＤが記憶される。たとえば、図２および図３の例では、システムＩＤとして「Ｃ１」が記憶される。コンベアリスト項目には、コンベアシステムごとに、コンベアリストが記憶される。コンベアリストとは、コンベアシステムを構成するコンベアを記憶するテーブルである。たとえば、コンベアシステムＣ１の場合は、コンベアリストＴＣ１が記憶される。
【００２４】
投入可能領域項目には、コンベアシステムごとに、ワークが投入可能な領域（ワーク投入可能領域）が記憶される。たとえば、図２および図３の例では、ワーク投入可能領域として「Ａ１」が記憶される。全ワーク情報リスト項目には、コンベアシステムごとに、全ワーク情報リストが記憶される。全ワーク情報リストとは、コンベアシステムに投入されたワーク群の各々のワークに関する情報を記憶するテーブルである。たとえば、コンベアシステムＣ１の場合は、全ワーク情報リストＴＡＷ１が記憶される。
【００２５】
投入リスト項目には、コンベアシステムごとに、投入リストへのポインタが記憶される。投入リストとは、投入可能領域に投入されたワークを特定するテーブルである。たとえば、コンベアシステムＣ１の場合は、投入リストＴＩＷ１が記憶される。
【００２６】
図５は、図４に示したコンベアリストの記憶内容の一例を示す説明図である。コンベアリストとは、コンベアシステムを構成するコンベアを記憶するテーブルである。コンベアリストにおいて、コンベアＩＤ項目には、コンベアごとに、コンベアを一意に特定するコンベアＩＤが記憶される。コンベアリストＴＣ１の場合、コンベアＩＤとして、ＣＵ１〜ＣＵ４が記憶される。
【００２７】
ユニット種項目には、コンベアの種類が記憶される。コンベアの種類とは、上述した直線的な搬送をおこなうタイプ（ライン）であるか、曲線的な搬送をおこなうタイプ（カーブ）の２種類である。コンベアリストＴＣ１の場合、ＣＵ１，ＣＵ２，ＣＵ４については「ライン」、ＣＵ３については「カーブ」が記憶される。
【００２８】
搬送長項目には、コンベアごとに、搬送長が記憶される。コンベアリストＴＣ１の場合、搬送長として、Ｌ（ＣＵ１）〜Ｌ（ＣＵ４）が記憶される。半径項目には、コンベア種が「カーブ」であるコンベアの半径が記憶される。コンベアリストＴＣ１の場合、ＣＵ３については半径Ｒ（図２を参照）が記憶される。
【００２９】
ワーク搬送量項目には、コンベアごとに、単位時間あたりのワーク搬送量が記憶される。ワーク搬送量は、ユーザ側が作成した制御プログラムにより決まる。コンベアリストＴＣ１の場合、ワーク搬送量として、ΔＬ１〜ΔＬ４が記憶される。
【００３０】
ストッパリストには、コンベアごとに、ストッパリストが記憶される。ストッパリストとは、コンベアごとに設置されているストッパに関する情報を記憶するテーブルである。コンベアリストＴＣ１の場合、ストッパリストとして、ＴＳ１〜ＴＳ４が記憶される。ストッパリストＴＳ１〜ＴＳ４については、図６〜図９で説明する。
搬送ワークリスト項目には、コンベアごとに、搬送ワークリストが記憶される。搬送ワークリストとは、コンベアごとに、コンベア上のワークＩＤを記憶するテーブルである。たとえば、ワークが投入されたり、前段のコンベアからワークが乗り移ったりすると、そのワークＩＤが追加される。一方、ワークが離脱したり、次段のコンベアに排出されると、そのワークＩＤは削除される。
【００３１】
図６〜図９は、図５に示したストッパリストの記憶内容の一例を示す説明図である。図６はストッパリストＴＳ１、図７はストッパリストＴＳ２、図８はストッパリストＴＳ３、図９はストッパリストＴＳ４を示している。
【００３２】
ストッパＩＤ項目には、ストッパごとに、ストッパを一意に特定する識別情報が記憶される。図６のストッパＩＤ項目を例に挙げると、ストッパＩＤとして、Ｓ１０〜Ｓ１３が記憶される。
【００３３】
ストッパ種項目には、ストッパごとに、ストッパの種類（関節または排出）を一意に特定する識別情報が記憶される。図６のストッパ種項目を例に挙げると、ストッパ種として、Ｓ１０については「排出」、Ｓ１１〜Ｓ１３については「関節」が記憶される。
【００３４】
位置項目には、ストッパごとに、ストッパの位置が記憶される。ストッパの位置は、コンベアの排出端からの距離で規定される。したがって、排出ストッパの位置は「０」となる。図６の位置項目を例に挙げると、ストッパＳ１０〜Ｓ１３の位置として、ｄ１０（＝０），ｄ１１〜ｄ１３（＞０）が記憶される。
【００３５】
遮蔽範囲項目には、関節ストッパごとに、遮蔽範囲が記憶される。遮蔽範囲とは、関節ストッパが搬送路上で遮蔽している範囲を示しており、遮蔽範囲に抵触するワークは通過できず、停止することとなる。遮蔽範囲は、ワークストッパモデルの３次元座標系の座標値で範囲指定される。ワークは一列搬送であるため、ワークの搬送方向への投影面を特定することで、ワークが遮蔽範囲に抵触するか否かがわかる。遮蔽範囲は、ユーザ側で作成した制御プログラムにより設定され、シミュレーション中に変動する。図６の遮蔽範囲項目を例に挙げると、遮蔽範囲Ｂ１１〜Ｂ１３が記憶される。
【００３６】
有効フラグ項目には、排出ストッパの有効（ＴＲＵＥ）または無効（ＦＡＬＳＥ）を示すフラグが記憶される。有効（ＴＲＵＥ）の場合、排出ストッパによりワークの搬送が規制される。無効（ＦＡＬＳＥ）の場合、ワークの搬送が規制されず、ワークが通過する。デフォルトでは、無効（ＦＡＬＳＥ）に設定されており、後述する判定処理により、有効（ＴＲＵＥ）に変化したり、有効（ＴＲＵＥ）からさらに無効（ＦＡＬＳＥ）に変化することとなる。図６の有効フラグ項目を例に挙げると、無効（ＦＡＬＳＥ）に設定されている。
【００３７】
滞留ワークリスト項目には、ストッパごとに、滞留ワークリストが記憶される。滞留ワークリストとは、ストッパごとに、ストッパで滞留しているワークに関する情報を保持するテーブルである。たとえば、ワークを一意に特定するワークＩＤが滞留順に記憶されている。図６の滞留ワークリスト項目を例に挙げると、滞留ワークリストＴＫ１０〜ＴＫ１３が記憶される。
【００３８】
滞留オフセット量項目には、ストッパごとに、滞留オフセット量が記憶される。滞留オフセット量とは、滞留ワークリストに保持されている滞留中のワークの搬送方向長の合計値である。滞留しているワークがない場合は、滞留オフセット量は０である。図６の滞留オフセット量項目を例に挙げると、滞留オフセット量Δｄ１０〜Δｄ１３（≧０）が記憶される。
【００３９】
図１０は、図４に示した全ワーク情報リストの記憶内容の一例を示す説明図である。図１０では、コンベアシステムＣ１での全ワーク情報リストＴＡＷ１の記憶内容の一例について示している。これにより、どのワークがどのコンベアでどのくらいの位置にいて、どんな状態であるかがわかることとなる。
【００４０】
図１０において、ワークＩＤ項目には、ワークごとに、ワークを一意に特定するワークＩＤが記憶される。図２および図３の状態を例に挙げると、図１０の全ワーク情報リストＴＡＷ１において、ワークＷ１〜Ｗ３が記憶されている。
【００４１】
コンベアＩＤ項目には、ワークごとに、当該ワークが存在しているコンベアのコンベアＩＤが記憶される。図２および図３の状態を例に挙げると、ワークＷ１〜Ｗ３はコンベアＣＵ１に存在する。したがって、図１０の全ワーク情報リストＴＡＷ１において、ワークＷ１〜Ｗ３のそれぞれのレコードにおいて「ＣＵ１」が記憶されている。
【００４２】
搬送残量項目には、ワークごとに、搬送残量が記憶される。搬送残量とは、ワークが存在しているコンベアでの現在位置から当該コンベアの排出端までの距離である。ワークが搬送中である場合、搬送残量は徐々に減少する。図１０の全ワーク情報リストＴＡＷ１の例では、搬送残量として、ｒ１〜ｒ３が記憶される。
【００４３】
搬送方向長項目には、ワークごとに、ワークの搬送方向長が記憶される。搬送方向長とは、ワークの搬送方向の長さである。搬送方向長は、ワークごとに固定長にしてもよく、ワークの姿勢に応じて変動する長さとしてもよい。ワークの姿勢については、既存技術で検出可能であるため、ここでは詳細は説明しないが、ワーク搬送量分移動する都度、または次段のコンベアに乗り移る際に、ワークの姿勢を検出し、検出されたワークの姿勢に応じて搬送方向長を計算してもよい。なお、ワークの形状は、たとえ複雑であっても、ワークを内接する外形ボックス情報（立方体）に変換されるものとする。
【００４４】
状態項目には、ワークの状態が記憶される。ワークの状態とは、「投入」、「搬送中」、「停止」、「離脱」の４種類である。「投入」とは、投入可能領域に投入され、また、搬送されていない状態である。「搬送中」とは、ワークが存在しているコンベアが駆動することでワークが移動している状態である。「停止」とは、ワークが停止している状態である。
【００４５】
「停止」には２種類ある。１つは、コンベアの駆動停止に伴ってワークも停止する場合と、コンベアの駆動中にストッパまたはストッパに滞留しているワークに到達することで停止する場合がある。「停止」には、これら２つの状態が含まれる。「離脱」はコンベアから取り出された状態を示す。「離脱」には２種類ある。１つは、アームにより取り出される場合と、最後尾のコンベア（図２ではコンベアＣＵ４）から排出された場合である。「離脱」には、これら２つの状態が含まれる。
【００４６】
なお、図２および図３の状態を例に挙げると、ワークＷ１〜Ｗ３は投入運可能領域に存在する。したがって、図１０の全ワーク情報リストＴＡＷ１において、ワークＷ１〜Ｗ３について、「投入」が記憶されている。
【００４７】
図１１は、図４に示した投入リストの記憶内容の一例を示す説明図である。図１１では、コンベアシステムＣ１での投入リストＴＩＷ１の記憶内容の一例を示している。投入リストは、搬送残量の昇順にワークＩＤを保持している。
【００４８】
ワークを追加する場合は、全ワーク情報リストに追加されるが、投入可能領域内での追加位置、すなわち、搬送残量が異なるため、投入リストにおいて搬送残量の昇順にソートすることで、搬送残量の少ない順に搬送可能となる。図２および図３では、ｒ１＜ｒ２＜ｒ３となるため、図１１の投入リストＴＩＷ１では、ワークＷ１，Ｗ２，Ｗ３の順に記憶される。
【００４９】
＜ストッパ判定の表現例＞
つぎに、ストッパ判定の表現例について具体的に説明する。ここでは、まず、関節ストッパによるストッパ判定の表現例について説明する。
【００５０】
図１２は、関節ストッパによるストッパ判定の表現例を示す説明図である。図１２では、関節ストッパＳ１３を例に挙げる。なお、コンベアＣＵ１は駆動中であり、ワークＷ１，Ｗ２は、関節ストッパＳ１３で停止させられているものとする。
【００５１】
（Ａ）は、後続のワークＷ３が、コンベアＣＵ１で搬送中の場合を示している。この状態から次の搬送量ΔＬ１分、搬送方向にワークＷ３が移動したときに、下記式（１）を満たす場合は、次状態でも、ワークＷ３が滞留ワーク列の最後尾となるワークＷ２の後端に到達していないこととなる。
【００５２】
ｒ３−ｗ３／２−ΔＬ１＞ｄ１３＋Δｄ１３・・・（１）
【００５３】
（Ｂ）一方、上記式（１）が最初に満たさない次状態で、ワークＷ３が滞留ワーク列の最後尾となるワークＷ２の後端に到達することとなる。この場合、ワークＷ３の状態は、「搬送中」から「停止」に変更される。
【００５４】
（Ｃ）このあと、ストッパＳ１３の滞留オフセット量Δｄ１３が、（Ｂ）でのΔｄ１３＝ｗ１＋ｗ２から、Δｄ１３＝ｗ１＋ｗ２＋ｗ３に更新される。また、滞留ワークリストＴＫ１３も、（Ｂ）でのＴＫ１３＝｛Ｗ１，Ｗ２｝（滞留順）から、ＴＫ１３＝｛Ｗ１，Ｗ２，Ｗ３｝に更新される。
【００５５】
図１３は、図１２の（Ａ），（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１３のレコードのみ示している。
【００５６】
図１４は、図１２の（Ｃ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。図１２の（Ｂ）の状態から更新された箇所にはハッチングが施されている。このように滞留状態を表現することで、演算負荷が低減され、シミュレーションで要求されるレスポンス性能を満たすことができる。
【００５７】
＜ワークの解放状態の表現例＞
つぎに、ワークの解放状態の表現例について具体的に説明する。解放状態では、滞留ワーク列のあるワークがアーム３０１によりコンベアシステムＣ１から離脱される状態である。
【００５８】
図１５は、ワークの解放状態の表現例を示す説明図である。図１５では、関節ストッパＳ１３を例に挙げる。なお、コンベアＣＵ１は駆動中であり、ワークＷ１〜Ｗ５は、関節ストッパＳ１３で停止させられている滞留ワーク列とする。
【００５９】
（Ａ）では、ワークＷ１〜Ｗ５のストッパＳ１３による滞留状態を示している。このとき、ワークＷ２がアーム３０１につかまれたとする。
【００６０】
（Ｂ）ワークＷ２は、アーム３０１につかまれて、滞留ワーク列から取り出される。この場合、ワークＷ２の状態は、「停止」から「離脱」に変更される。また、ワークＷ２の後続のワークＷ３〜Ｗ５の状態は、「停止」から「搬送中」に変更される。また、滞留ワークリストＴＫ１３は、ワークＷ１のみとなる。これにより、ワークＷ１がストッパＳ１３で停止させられたままであり、ワークＷ３〜Ｗ５が搬送状態となる。
【００６１】
（Ｃ）ワークＷ３について、上記式（１）が最初に満たさない次状態で、ワークＷ３が滞留ワーク列の最後尾となるワークＷ２に到達することとなる。この場合、ワークＷ３の状態は、「搬送中」から「停止」に変更される。ワークＷ４，Ｗ５についても同様である。なお、ワークＷ４の場合、上記式（１）の「ｒ３」を「ｒ４」に、「ｗ３」を「ｗ４」にする。ワークＷ５の場合、上記式（１）の「ｒ３」を「ｒ５」に、「ｗ３」を「ｗ５」にする。
【００６２】
そして、ワークＷ４の状態も、「停止」状態のワークＷ３に到達することで「搬送中」から「停止」に変更される。ワークＷ５の状態も、「停止」状態のワークＷ４に到達することで「搬送中」から「停止」に変更される。また、滞留ワークリストＴＫ１３は、（Ｂ）の｛Ｗ１｝から｛Ｗ１，Ｗ３，Ｗ４，Ｗ５｝に更新される。
【００６３】
図１６は、図１５の（Ａ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１３のレコードのみ示している。
【００６４】
図１７は、図１５の（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１３のレコードのみ示している。図１５の（Ａ）の状態から更新された箇所にはハッチングが施されている。
【００６５】
図１７では、図１５の（Ａ）の状態からワークＷ２が離脱したため、全ワーク情報リストＴＡＷ１において、ワークＷ２のコンベアＩＤ、搬送残量、搬送方向長がリセットされている。また、状態も「離脱」に変更される。これにともない、後続のワークＷ３〜Ｗ５の状態も「停止」から「搬送中」に変更される。また、ストッパリストＴＳ１の滞留オフセット量もΔｄ１３＝ｗ１に更新される。また、滞留ワークリストＴＫ１３からワークＷ２〜Ｗ５が削除される。
【００６６】
図１８は、図１５の（Ｃ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１３の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１３のレコードのみ示している。図１５の（Ｂ）の状態から更新された箇所にはハッチングが施されている。
【００６７】
図１８では、図１５の（Ｂ）でのワークＷ３〜Ｗ５の状態が「搬送中」から「停止」に変更される。これにともない、全ワーク情報リストＴＡＷ１においてワークＷ３〜Ｗ５の搬送残量ｒ３〜ｒ５は０になり、ストッパリストＴＳ１の滞留オフセット量もΔｄ１３＝ｗ１＋ｗ３＋ｗ４＋ｗ５に更新される。また、滞留ワークリストＴＫ１３にワークＷ３〜Ｗ５が追加される。このように解放状態を表現することで、演算負荷が低減され、シミュレーションで要求されるレスポンス性能を満たすことができる。
【００６８】
＜対象ストッパの特定例＞
つぎに、対象ストッパの特定例について説明する。対象ストッパとは、搬送中のワークごとに次に到来する規制状態のストッパであり、ストッパの種類（関節、排出）を問わない。関節ストッパの場合、関節ストッパの状態が、ワークと抵触する遮蔽範囲である場合に、規制状態となる。また、排出ストッパの場合、有効フラグが「ＴＲＵＥ」の場合に、規制状態となる。
【００６９】
図１９は、対象ストッパの検索例を示す説明図である。図１９では、コンベアＣＵ１を例に挙げて説明する。（Ａ）は、ストッパＳ１２で滞留しているワークＷ１を示している。（Ａ）では搬送中のワークが存在しないため、対象ストッパも特定されない。
【００７０】
（Ｂ）は、コンベアＣＵ１で搬送中のワークＷ１を示している。対象ストッパを検索する場合は、排出端から最も離れているストッパ、すなわち、ストッパリストでの位置の値が最も大きいストッパから順次判断される。図１９の場合、ｄ１３＞ｄ１２＞ｄ１１であるため、ストッパＳ１３から判断される。
【００７１】
対象ストッパの特定は、候補となるストッパの位置の値とワークの搬送残量（から搬送方向長の半分を引いた量）との比較でおこなわれる。たとえば、ストッパＳ１３の場合は、下記式（２）を満たすか否かで判断される。
【００７２】
ｄ１３＜ｒ１−ｗ１／２・・・（２）
【００７３】
ストッパＳ１３では上記式（２）が不成立であるため、つぎに位置の値ｄ１２が大きいストッパＳ１２について判断される。ストッパＳ１２の場合は、上記式（２）の「ｄ１３」を「ｄ１２」に変えるだけでよい。すなわち、ストッパＳ１２の場合は、下記式（３）を満たすか否かで判断される。
【００７４】
ｄ１２＜ｒ１−ｗ１／２・・・（３）
【００７５】
図１９の場合は上記式（３）が成立するため、ワークＷ１の次に到来する規制状態のストッパはストッパＳ１２となる。対象ストッパが特定されると、それ以降のストッパＳ１１については検索されない。
【００７６】
図２０は、図１９の（Ａ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１と滞留ワークリストＴＫ１２の記憶内容を示す説明図である。全ワーク情報リストＴＡＷ１において、ワークＷ１の状態が「停止」であるため、対象ストッパの検索はおこなわれない。
【００７７】
図２１は、図１９の（Ｂ）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１の記憶内容を示す説明図である。全ワーク情報リストＴＡＷ１において、ワークＷ１の状態が「搬送中」であるため、対象ストッパの検索はおこなわれる。この場合、ストッパＳ１０〜Ｓ１３のうち、規制状態のストッパＳ１１〜Ｓ１３が検索対象となる。
【００７８】
このように、対象ストッパをワークごとに特定することで、図１２に示したストッパ判定を対象ストッパで実行することができる。したがって、非対称ストッパとのストッパ判定を実行しないことになるため、演算負荷の低減化を図ることができる。
【００７９】
＜溢れ判定＞
つぎに、溢れ判定について説明する。溢れ判定とは、ワークが現在搬送中のコンベアから次段のコンベアに乗り移ることができるか否か、そして、乗り移ることができる／できない場合は、どのストッパで滞留させるべきか、を判定する処理である。
【００８０】
図２２は、溢れ判定の第１の例を示す説明図である。図２２では、コンベアＣＵ１からコンベアＣＵ２へ乗り移る際の溢れ判定を示している。（Ａ１）では、ワークＷ１，Ｗ２は、コンベアＣＵ２の関節ストッパＳ２２で滞留している「停止」状態のワークであり、ワークＷ３は、コンベアＣＵ１で「搬送中」のワークである。ストッパＳ２２は、コンベアＣＵ２において、コンベアＣＵ２の排出端から最も離れた位置に設置された関節ストッパである。また、ストッパＳ２２は、ワークＷ３の対象ストッパでもある。
【００８１】
また、Ｆは、コンベアＣＵ１，ＣＵ２の境界から、コンベアＣＵ２の排出端から最も離れた位置に設置された関節ストッパに滞留する滞留ワーク列の最後尾までの距離である。滞留ワーク列がない場合は、関節ストッパまでの距離である。（Ａ１）の場合は、ストッパＳ２２にワークＷ１，Ｗ２が滞留しているため、下記式（４）であらわされる。
【００８２】
Ｆ＝（ｄ２２＋Δｄ２２）−ＬＣ２・・・（４）
【００８３】
そして、Ｆの絶対値がワークＷ３の搬送方向長ｗ３の１／２以上である場合は、ワークＷ３は、コンベアＣＵ２にあきスペースがあるため、コンベアＣＵ２に乗り移ることができる。なお、搬送方向長ｗ３の１／２としたのは、搬送方向長ｗ３の半分となる部分でも、Ｆの絶対値以上であれば乗り移ることができるからである。なお、１／２に限らず、０よりも大きく１以下の値であればよい。なお、以降の説明では、１／２で重み付けした例を説明することとする。
【００８４】
（Ａ２）は、コンベアＣＵ２への乗り移り後の状態を示している。ワークＷ３はコンベアＣＵ２に乗り移ると、滞留ワーク列｛Ｗ１，Ｗ２｝の最後尾のワークＷ２に到達する。この場合、図１２に示したストッパ判定により、ワークＷ３が滞留ワーク列に含まれることとなる。
【００８５】
図２３は、図２２の（Ａ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１０のレコードのみ示している。ストッパリストＴＳ２については便宜上、ストッパＳ２２のレコードのみ示している。
【００８６】
図２４は、図２２の（Ａ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。図２２の（Ａ１）の状態から更新された箇所にはハッチングが施されている。全ワーク情報リストＴＡＷ１では、ワークＷ３が、コンベアＣＵ２に乗り移っているため、ワークＷ３のコンベアＩＤが「ＣＵ１」から「ＣＵ２」に変更されている。また、状態もワークＷ２への到達により「停止」に変更されている。これにともない、ストッパリストＴＳ２では、ストッパＳ２２の滞留オフセット量Δｄ２２が更新され、滞留ワークリストＴＫ２２にもワークＷ３が追加される。これにより、コンベアの乗り移りを単純な計算でリアルに再現することができる。
【００８７】
図２５は、溢れ判定の第２の例を示す説明図である。図２５では、図２２の（Ａ２）の状態から、あらたに、コンベアＣＵ１からワークＷ４が搬送されてくる例を示している。ストッパＳ２２は、ワークＷ４の対象ストッパとなる。
【００８８】
（Ｂ１）においても、図２２の（Ａ１）と同様、Ｆの絶対値がワークＷ４の搬送方向長ｗ４の１／２以上である場合は、ワークＷ４は、コンベアＣＵ２にあきスペースがあるため、コンベアＣＵ２に乗り移ることができる。
【００８９】
（Ｂ２）は、コンベアＣＵ２への乗り移り後の状態を示している。ワークＷ４はコンベアＣＵ２に乗り移ると、滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３｝の最後尾のワークＷ３に到達する。この場合、図１２に示したストッパ判定により、ワークＷ４が滞留ワーク列に含まれることとなる。なお、（Ｂ２）では、ワークＷ４は、コンベアＣＵ１，ＣＵ２の境界で滞留している。
【００９０】
図２６は、図２５の（Ｂ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１０のレコードのみ示している。ストッパリストＴＳ２については便宜上、ストッパＳ２２のレコードのみ示している。
【００９１】
図２７は、図２５の（Ｂ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ２２の記憶内容を示す説明図である。図２５の（Ｂ１）の状態から更新された箇所にはハッチングが施されている。全ワーク情報リストＴＡＷ１では、ワークＷ４が、コンベアＣＵ２に乗り移っているため、ワークＷ４のコンベアＩＤが「ＣＵ１」から「ＣＵ２」に変更されている。また、状態もワークＷ３への到達により「停止」に変更されている。これにともない、ストッパリストＴＳ２では、ストッパＳ２２の滞留オフセット量Δｄ２２が更新され、滞留ワークリストＴＫ２２にもワークＷ４が追加される。これにより、コンベア間でまたがるような乗り移りを単純な計算でリアルに再現することができる。
【００９２】
図２８は、溢れ判定の第３の例を示す説明図である。図２８では、図２５の（Ｂ２）の状態から、あらたに、コンベアＣＵ１からワークＷ５が搬送されてくる例を示している。ストッパＳ２２は、ワークＷ５の対象ストッパとなる。
【００９３】
（Ｂ３）では、ワークＷ４がコンベアＣＵ１，ＣＵ２の境界で滞留しているため、Ｆの値がＦ＞０となる。この場合、対象ストッパは、ストッパＳ２２からストッパＳ１０に変更される。
【００９４】
（Ｂ４）では、排出ストッパＳ１０は規制状態（有効フラグ：「ＴＲＵＥ」）となるが、排出ストッパＳ１０の設置位置で規制状態とすると、ワークＷ５が排出ストッパＳ１０に到達した場合に、ワークＷ４とワークＷ５とが重なってしまうことになる。したがって、Ｆ＞０で排出ストッパＳ１０が対象ストッパになった場合には、排出ストッパＳ１０の位置を滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３，Ｗ４｝の最後尾であるワークＷ４の後端までシフトする。
【００９５】
（Ｂ４）において、点線のストッパは、シフト前の排出ストッパＳ１０である。ワークＷ５は、シフト後の規制状態の排出ストッパＳ１０の位置で停止させられる。したがって、ワークＷ５は、ストッパＳ２２の滞留ワークリストＴＫ２２ではなく、排出ストッパＳ１０の滞留ワークリストＴＫ１０に登録されることとなる。排出ストッパＳ１０は描画されないため、ユーザから見れば、ワークＷ５はあたかも滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３，Ｗ４｝により滞留させられたかのように見える。
【００９６】
図２９は、図２７の（Ｂ３）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１０のレコードのみ示している。ストッパリストＴＳ２については便宜上、ストッパＳ２２のレコードのみ示している。
【００９７】
図３０は、図２７の（Ｂ４）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。図２７の（Ｂ３）の状態から更新された箇所にはハッチングが施されている。全ワーク情報リストＴＡＷ１では、ワークＷ５が、コンベアＣＵ２に乗り移らないため、ワークＷ４のコンベアＩＤは「ＣＵ１」のままである。
【００９８】
しかし、ワークＷ５は、排出ストッパＳ１０で停止させられるため、状態は「搬送中」から「停止」に変更される。また、ストッパリストＴＳ１の排出ストッパＳ１０についても、位置ｄ１０がｄ１０＝０からｄ１０＝Ｆ（＞０）に更新される。また、有効フラグも「ＴＲＵＥ」に更新される。そして、滞留ワークリストＴＫ１０に、ワークＷ５が追加される。これにより、コンベア間でまたがるような乗り移りを単純な計算でリアルに再現することができる。
【００９９】
なお、このあと、ストッパＳ２２が非規制状態となってワークＷ１〜Ｗ４が搬送されると、Ｆの値がＦ≦０となるため、排出ストッパＳ１０も非規制状態（有効フラグ：ＦＡＬＳＥ）となり、図２２の（Ａ１）と同様、ワークＷ５は、搬送されてコンベアＣＵ２に乗り移ることとなる。この場合、排出ストッパＳ１０は元の位置（コンベアＣＵ１，ＣＵ２の境界。ｄ１０＝０）に戻る。
【０１００】
図３１は、溢れ判定の第４の例を示す説明図である。図３１では、図２２の（Ａ２）の状態から、あらたに、コンベアＣＵ１からワークＷ４が搬送されてくる例を示している。ストッパＳ２２は、ワークＷ４の対象ストッパとなる。
【０１０１】
（Ｃ１）においても、図２２の（Ａ１）と同様、Ｆの絶対値がワークＷ４の搬送方向長ｗ４の１／２以上である場合は、ワークＷ４は、コンベアＣＵ２にあきスペースがあるため、コンベアＣＵ２に乗り移ることができるが、本例では、ｗ４／２＞｜Ｆ｜となり、乗り移り不可とする。
【０１０２】
ワークＷ４はコンベアＣＵ２への乗り移り不可と判断されたため、排出ストッパＳ１０を規制状態にして停止させる必要がある。しかし、排出ストッパＳ１０で停止させると、ワークＷ３とワークＷ４との間にスペースができてしまう。排出ストッパＳ１０は描画されないため、ストッパがないのにワークＷ４がワークＷ３に到達していないと、不自然なシミュレーションとなる。したがって、このような場合は、排出ストッパＳ１０の位置を滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３｝の最後尾であるワークＷ３の後端までシフトする。
【０１０３】
（Ｃ２）において、点線のストッパは、シフト前の排出ストッパＳ１０である。ワークＷ４は、シフト後の規制状態の排出ストッパＳ１０の位置で停止させられる。したがって、ワークＷ４は、ストッパＳ２２の滞留ワークリストＴＫ２２ではなく、排出ストッパＳ１０の滞留ワークリストＴＫ１０に登録されることとなる。排出ストッパＳ１０は描画されないため、ユーザから見れば、ワークＷ４はあたかも滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３｝により滞留させられたかのように見える。
【０１０４】
図３２は、図３１の（Ｃ１）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１０のレコードのみ示している。ストッパリストＴＳ２については便宜上、ストッパＳ２２のレコードのみ示している。
【０１０５】
図３３は、図３１の（Ｃ２）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。図３１の（Ｃ１）の状態から更新された箇所にはハッチングが施されている。全ワーク情報リストＴＡＷ１では、ワークＷ４が、コンベアＣＵ２に乗り移らないため、ワークＷ４のコンベアＩＤは「ＣＵ１」のままである。
【０１０６】
しかし、ワークＷ４は、排出ストッパＳ１０で停止させられるため、状態は「搬送中」から「停止」に変更される。また、ストッパリストＴＳ１の排出ストッパＳ１０についても、位置ｄ１０がｄ１０＝０からｄ１０＝Ｆ（≦０）に更新される。また、有効フラグも「ＴＲＵＥ」に更新される。そして、滞留ワークリストＴＫ１０に、ワークＷ４が追加される。これにより、コンベア間でまたがるような乗り移りについて、乗り移り不可と判定された場合であっても、単純な計算でリアルに再現することができる。
【０１０７】
図３４は、溢れ判定の第５の例を示す説明図である。図３４では、図３１の（Ｃ２）の状態から、あらたに、コンベアＣＵ１からワークＷ５が搬送されてくる例を示している。本例では、排出ストッパＳ１０がワークＷ５の対象ストッパとなる。
【０１０８】
（Ｃ３）では、図１２に示したようなストッパ判定が実行される。（Ｃ３）の状態から次の搬送量ΔＬ１分、搬送方向にワークＷ５が移動したときに、下記式（５）を満たす場合は、次状態でも、ワークＷ５が、排出ストッパＳ１０の滞留ワーク列｛Ｗ４｝の最後尾となるワークＷ４の後端に到達していないこととなる。
【０１０９】
ｒ５−ｗ５／２−ΔＬ１＞ｄ１０＋Δｄ１０・・・（５）
【０１１０】
（Ｃ４）一方、上記式（５）が最初に満たさない次状態で、ワークＷ５が、排出ストッパＳ１０の滞留ワーク列｛Ｗ４｝の最後尾となるワークＷ４の後端に到達することとなる。この場合、ワークＷ５の状態は、「搬送中」から「停止」に変更される。
【０１１１】
このあと、排出ストッパＳ１０の滞留オフセット量Δｄ１０が、（Ｃ３）でのΔｄ１０＝ｗ４から、Δｄ１０＝ｗ４＋ｗ５に更新される。また、滞留ワークリストＴＫ１０も、（Ｃ３）でのＴＫ１０＝｛Ｗ４｝（滞留順）から、ＴＫ１０＝｛Ｗ４，Ｗ５｝に更新される。
【０１１２】
図３５は、図３４の（Ｃ３）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。ストッパリストＴＳ１については便宜上、ストッパＳ１０のレコードのみ示している。
【０１１３】
図３６は、図３４の（Ｃ４）の状態での全ワーク情報リストＴＡＷ１とストッパリストＴＳ１，ＴＳ２と滞留ワークリストＴＫ１０，ＴＫ２２の記憶内容を示す説明図である。図３４の（Ｂ３）の状態から更新された箇所にはハッチングが施されている。全ワーク情報リストＴＡＷ１において、ワークＷ５は、排出ストッパＳ１０の滞留ワーク列｛Ｗ４｝で停止させられるため、状態は「搬送中」から「停止」に変更される。また、滞留ワークリストＴＫ１０に、ワークＷ５が追加され、滞留オフセット量Δｄ１０もΔｄ１０＝ｗ４からΔｄ１０＝ｗ４＋ｗ５に更新される。これにより、コンベア間でまたがるような乗り移りについて、乗り移り不可と判定されたときに後続のワークが到来した場合であっても、単純な計算でリアルに再現することができる。
【０１１４】
（模擬装置のハードウェア構成例）
図３７は、実施の形態にかかる模擬装置のハードウェア構成例を示すブロック図である。図３７において、模擬装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３７０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３７０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３７０３と、磁気ディスクドライブ３７０４と、磁気ディスク３７０５と、光ディスクドライブ３７０６と、光ディスク３７０７と、ディスプレイ３７０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３７０９と、キーボード３７１０と、マウス３７１１と、スキャナ３７１２と、プリンタ３７１３と、を備えている。また、各構成部はバス３７００によってそれぞれ接続されている。
【０１１５】
ここで、ＣＰＵ３７０１は、模擬装置の全体の制御を司る。ＲＯＭ３７０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３７０３は、ＣＰＵ３７０１のワークエリアとして使用される。磁気ディスクドライブ３７０４は、ＣＰＵ３７０１の制御にしたがって磁気ディスク３７０５に対するデータのリード／ライトを制御する。磁気ディスク３７０５は、磁気ディスクドライブ３７０４の制御で書き込まれたデータを記憶する。
【０１１６】
光ディスクドライブ３７０６は、ＣＰＵ３７０１の制御にしたがって光ディスク３７０７に対するデータのリード／ライトを制御する。光ディスク３７０７は、光ディスクドライブ３７０６の制御で書き込まれたデータを記憶したり、光ディスク３７０７に記憶されたデータをコンピュータに読み取らせたりする。
【０１１７】
ディスプレイ３７０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３７０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【０１１８】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３７０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３７１４に接続され、このネットワーク３７１４を介して他の装置に接続される。そして、Ｉ／Ｆ３７０９は、ネットワーク３７１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３７０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【０１１９】
キーボード３７１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３７１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【０１２０】
スキャナ３７１２は、画像を光学的に読み取り、模擬装置内に画像データを取り込む。なお、スキャナ３７１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３７１３は、画像データや文書データを印刷する。プリンタ３７１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【０１２１】
（模擬装置の機能的構成例）
図３８は、実施の形態にかかる模擬装置の機能的構成例を示すブロック図である。模擬装置３８００は、データベース（ＤＢ）３８０１と、表示部３８０２と、制御部３８０３と、特定部３８０４と、検出部３８０５と、設定部３８０６と、更新部３８０７と、取得部３８０９と、算出部３８１０と、を備えている。制御部３８０３〜算出部３８１０は、具体的には、たとえば、図３７に示したＲＯＭ３７０２、ＲＡＭ３７０３、磁気ディスク３７０５、光ディスク３７０７などの記憶装置に記憶されたプログラムをＣＰＵ３７０１に実行させることにより、または、Ｉ／Ｆ３７０９により、その機能を実現する。
【０１２２】
ＤＢ３８０１は、図２および図３に示したワークストッパモデルや図４〜図１１に示した各種テーブルを記憶する。ＤＢ３８０１は、具体的には、たとえば、図３７に示したＲＯＭ３７０２、ＲＡＭ３７０３、磁気ディスク３７０５、光ディスク３７０７などの記憶装置により、その機能を実現する。
【０１２３】
表示部３８０２は、図２および図３に示したワークストッパモデルや、ワークストッパモデルのシミュレーション内容を表示する。表示部３８０２は、具体的には、たとえば、図３７に示したディスプレイ３８０８により、その機能を実現する。
【０１２４】
制御部３８０３は、図２および図３に示したワークストッパモデルの設定やシミュレーションを実行する機能を有する。具体的には、たとえば、上述した、ユーザ側で作成した制御プログラムをＣＰＵ３７０１に実行させることにより、その機能を実現する。
【０１２５】
特定部３８０４は、ストッパ群のうち、ワーク群内の搬送状態の対象ワークが到来する規制状態の対象ストッパを特定する。具体的には、たとえば、図１９〜図２１に示したように、特定部３８０４は、対象となるワークについて、当該対象ワークが存在するコンベアに設置されている規制状態のストッパ群を順次検索することで対象ストッパを特定する。このように、次に到来する対象ストッパを絞り込むことで、通過したストッパやまだ到来しないストッパについてのストッパ判定を実行する必要がなく、演算負荷の低減化を図ることができる。
【０１２６】
検出部３８０５は、特定部３８０４によって特定された対象ストッパの位置に基づく停止位置に、対象ワークが到達したことを検出する。対象ストッパの位置に基づく停止位置とは、対象ストッパに滞留ワーク列がない場合は、対象ストッパの設置位置となる。また、滞留ワーク列がある場合は、滞留ワーク列の最後尾のワークの後端となる。また、対象ストッパが排出ストッパの場合は、図２８や図３２に示したように、シフト後の排出ストッパの位置となる。また、シフト後の排出ストッパに滞留ワーク列が存在する場合は、図３４に示したように、滞留ワーク列の最後尾のワークの後端となる。
【０１２７】
また、検出部３８０５は、具体的には、たとえば、図１２〜図１４に示したストッパ判定や図１５〜図１８に示したワーク解放処理において、上記式（１）〜（３）のような計算式の計算結果により、対象ワークが到達したことを検出する。このような検出により演算負荷の低減化を図ることができ、シミュレーションで要求されるレスポンス性能を満たすことができる。
【０１２８】
設定部３８０６は、検出部３８０５によって停止位置への到達が検出された対象ワークの状態を、搬送状態から停止状態に変更し、かつ、対象ワークを対象ストッパによる滞留ワーク列として記憶部に追加する。具体的には、たとえば、設定部３８０６は、ＤＢ３８０１にアクセスして、全ワーク情報リストの対象ワークのレコードの状態項目を、「搬送中」から「停止」に変更する。また、設定部３８０６は、ＤＢ３８０１にアクセスして、対象ストッパの滞留ワークリストに対象ワークのワークＩＤを滞留順に追加する。
【０１２９】
また、設定部３８０６は、図１５に示したように、制御部３８０３が滞留ワーク列の中から任意のワークを離脱させた場合、ＤＢ３８０１にアクセスして、全ワーク情報リストの離脱させたワークのレコードの状態項目を、「停止」から「離脱」に変更する。また、この場合、設定部３８０６は、離脱させたワークの後続滞留ワーク列の各々のワークのレコードの状態項目を、「停止」から「搬送中」に変更する。これにより、ワークが離脱したときの搬送状態を、単純な状態変化でリアルに再現することができる。
【０１３０】
更新部３８０７は、設定部３８０６によって停止状態に変更された場合、停止位置を、ストッパの位置から設定部３８０６での設定後における滞留ワーク列の搬送方向長分手前の位置に更新する。具体的には、たとえば、更新部３８０７は、ワークが滞留する都度、ワークの搬送方向長分、滞留オフセット量を更新する。たとえば、ストッパＳ１３の滞留オフセット量Δｄ１３は、初期状態では滞留ワーク列がないため、Δｄ１３＝０となる。したがって、ストッパＳ１３の位置ｄ１３の値がそのまま停止位置となる。そして、ワークＷ１がストッパＳ１３に滞留すると、滞留オフセット量Δｄ１３は、Δｄ１３＝ｗ１となり、停止位置もｄ１３＋Δｄ１３＝ｄ１３＋ｗ１となる。
【０１３１】
また、ワークＷ２がワークＷ１の後端に到達すると、滞留オフセット量Δｄ１３は、Δｄ１３＝ｗ１＋ｗ２となり、停止位置もｄ１３＋Δｄ１３＝ｄ１３＋ｗ１＋ｗ２となる。さらに、図１２に示したように、ワークＷ３がワークＷ２の後端に到達すると、滞留オフセット量Δｄ１３は、Δｄ１３＝ｗ１＋ｗ２＋ｗ３となり、停止位置もｄ１３＋Δｄ１３＝ｄ１３＋ｗ１＋ｗ２＋ｗ３となる。
【０１３２】
逆に、制御部３８０３により、滞留ワーク列から任意のワークが離脱させられると、更新部３８０７は、離脱させたワークの先行滞留ワーク列の最後尾のワークの後端を停止位置として更新する。たとえば、図１５において、滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３，Ｗ４，Ｗ５｝からワークＷ２が離脱させられると、更新部３８０７は、停止位置を、ワークＷ２離脱前の滞留ワーク列｛Ｗ１，Ｗ２，Ｗ３，Ｗ４，Ｗ５｝の最後尾のワークＷ５の後端から、ワークＷ２離脱後の滞留ワーク列｛Ｗ１｝の最後尾のワークＷ１の後端に更新する。このように、更新部３８０７は、滞留ワーク列の有無や滞留ワーク列内のワークの搬送方向長に応じて停止位置を動的に変化させる。これにより、簡単な演算で動的に変化する滞留状態を表現することができる。
【０１３３】
判断部３８０８は、対象ワークの搬送方向長と、対象ワークと対象ストッパの間に対象ワークが位置する第１の搬送装置と対象ストッパが位置する第２の搬送装置との間の境界から停止位置までの距離と、に基づいて、対象ワークが第１の搬送装置から第２の搬送装置へ乗り移り可能か否かを判断する。第１の搬送装置とは、対象ワークが存在するコンベアであり、第２の搬送装置とは、対象ワークが存在するコンベアの次段のコンベアである。判断部３８０８では、図２２、図２５、図２８、図３１に示したような乗り移りの判断を実行する。
【０１３４】
乗り移り可能と判断された場合は、検出部３８０５が、停止位置に対象ワークが到達したことを検出することとなる。
【０１３５】
一方、乗り移り不可と判断された場合は、設定部３８０６は、両コンベアの境界に位置する排出ストッパを規制状態にする。また、更新部３８０７は、設定部３８０６によって規制状態に設定された特定のストッパの位置を、境界から対象ストッパに滞留している滞留ワーク列の最後尾に更新する。具体的には、たとえば、更新部３８０７は、規制状態にした排出ストッパの位置を、境界から対象ストッパに滞留している滞留ワーク列の最後尾のワークの後端にシフトする。より具体的には、図２８の（Ｂ４）の状態や図３１の（Ｃ２）の状態に更新する。
【０１３６】
そして、設定部３８０６は、シフト後の排出ストッパの停止位置に対象ワークが到達したときに、対象ワークの状態を「搬送中」から「停止」に変更することになる。これにより、図２８に示したように、次段のコンベアに乗り移れない場合であっても、単純な計算でリアルに再現することができる。また、図３１に示したように、コンベア間でまたがるような乗り移りについて、乗り移り不可と判定された場合であっても、単純な計算でリアルに再現することができる。
【０１３７】
取得部３８０９は、対象ワークの姿勢を取得する。対象ワークの姿勢は、既存技術により一定周期で制御部３８０３から取得する。なお取得タイミングは、コンベアの乗り移り時にするなどして、演算負荷の増大を抑制することとしてもよい。
【０１３８】
算出部３８１０は、取得部３８０９によって取得された対象ワークの姿勢に応じて、対象ワークの搬送方向長を算出する。ここで算出例について説明する。
【０１３９】
図３９は、ワークＷの一例を示す説明図である。ここで、ワークはローカル座標系で形状情報を有する。図３９では、ワークＷの形状情報として、ローカル座標系のｘ方向長をａ、ｙ方向長をｂ、ｚ方向長をｃとする。
【０１４０】
図４０〜図４２は、ワークＷをローカル座標系からグローバル座標系に置いた場合の姿勢を示す説明図である。グローバル座標系とは、ワークストッパモデルの座標系である。図４０は、ローカル座標系のｘ軸とグローバル座標系のＸ軸、ローカル座標系のｙ軸とグローバル座標系のＹ軸、ローカル座標系のｚ軸とグローバル座標系のＺ軸が一致したときの例である。図４０の場合は、搬送方向長ｗはｗ＝ａとなる。
【０１４１】
図４１は、ローカル座標系のｘ軸とグローバル座標系のＺ軸、ローカル座標系のｙ軸とグローバル座標系のＹ軸、ローカル座標系のｚ軸とグローバル座標系のＸ軸が一致したときの例である。図４１の場合は、搬送方向長ｗはｗ＝ｃとなる。
【０１４２】
図４２は、ローカル座標系のｙ軸とグローバル座標系のＹ軸が一致したときの例である。図４２の場合は、搬送方向長ｗはｗ＝√（ａ2＋ｃ2）となる。いずれにしても算出された搬送方向長は、算出部３８１０により全ワーク情報リストに反映される。なお、算出部３８１０を用いずに、搬送方向長を固定長にしてもよい。
【０１４３】
＜シミュレーション処理手順＞
つぎに、実施の形態にかかる模擬装置によるシミュレーション処理手順について説明する。
【０１４４】
図４３は、実施の形態にかかる模擬装置によるワーク情報作成処理手順を示すフローチャートである。まず、模擬装置は、ワーク情報が作成されたか否かを判断する（ステップＳ４３０１）。ワーク情報とは、全ワーク情報リストの各項目に対応する情報である。作成されていない場合（ステップＳ４３０１：Ｎｏ）、ワーク情報作成処理を終了する。一方、ワーク情報が作成された場合（ステップＳ４３０１：Ｙｅｓ）、模擬装置は、作成されたワーク情報を、全ワーク情報リストに追加する（ステップＳ４３０２）。このとき、追加されたワークの状態は「投入」となる。
【０１４５】
また、模擬装置は、「投入」状態のワーク群を搬送残量の昇順でソートする（ステップＳ４３０３）。そして、模擬装置は、ソートされた「投入」状態のワーク群を、ソート後の配列で投入リストに追加する（ステップＳ４３０４）。その後、ステップＳ４３０１に戻る。これにより、コンベアの排出端に近いワークから搬送することができる。
【０１４６】
図４４は、実施の形態にかかる模擬装置によるワーク投入処理手順を示すフローチャートである。まず、模擬装置は、投入リストにワークＩＤがあるか否かを判断する（ステップＳ４４０１）。ワークＩＤがない場合（ステップＳ４４０１：Ｎｏ）、ワーク投入処理を終了する。一方、ワークＩＤがある場合（ステップＳ４４０１：Ｙｅｓ）、模擬装置は、搬送残量の昇順で最上位のワークを選択する（ステップＳ４４０２）。このとき、選択されたワークＩＤは、投入リストから削除される。
【０１４７】
つぎに、模擬装置は、全ワーク情報リストでの選択ワークの状態を「投入」から「搬送中」に更新する（ステップＳ４４０３）。そして、投入先のコンベアの搬送ワークリストに選択ワークのワークＩＤを追加する（ステップＳ４４０４）。そして、模擬装置は、投入先コンベアでの搬送を開始する（ステップＳ４４０５）。その後、ステップＳ４４０１に戻る。これにより、投入されたワークを順次搬送するシミュレーションを実行することができる。
【０１４８】
図４５は、実施の形態にかかる模擬装置による搬送処理手順を示すフローチャートである。まず、模擬装置は、全ワーク情報リストのインデックス番号ｉをｉ＝１とし（ステップＳ４５０１）、ｉ＞ｎであるか否かを判断する（ステップＳ４５０２）。ｎは、ワークの総数である。
【０１４９】
ｉ＞ｎでない場合（ステップＳ４５０２：Ｎｏ）、模擬装置は、ワークＷｉの状態が「投入」であるか否かを判断する（ステップＳ４５０３）。「投入」でない場合（ステップＳ４５０３：Ｎｏ）、「離脱」であるか否かを判断する（ステップＳ４５０４）。「離脱」でもない場合（ステップＳ４５０４：Ｎｏ）、ワーク搬送処理を実行し（ステップＳ４５０５）、実行後にステップＳ４５０６に移行する。
【０１５０】
また、ステップＳ４５０３において「投入」である場合（ステップＳ４５０３：Ｙｅｓ）、または、ステップＳ４５０４において「離脱」である場合（ステップＳ４５０４：Ｙｅｓ）、ワーク搬送処理（ステップＳ４５０５）を実行することなく、ステップＳ４５０６に移行する。ステップＳ４５０６では、模擬装置は、インデックス番号ｉをインクリメントして（ステップＳ４５０６）、ステップＳ４５０２に戻る。ステップＳ４５０２において、ｉ＞ｎの場合（ステップＳ４５０２：Ｙｅｓ）、搬送処理を終了する。
【０１５１】
これにより、ワークの状態が「搬送中」または「停止」となっているワークについてワーク搬送処理（ステップＳ４５０５）を実行することができる。
【０１５２】
図４６は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その１）である。まず、模擬装置は、全ワーク情報リストＴＡＷ１を参照することで、ワークＷｉの現在のコンベアＣＵｘを特定する（ステップＳ４６０１）。つぎに、模擬装置は、特定されたコンベアＣＵｘが最終端のコンベア（図２の場合はコンベアＣＵ４）であるか否かを判断する（ステップＳ４６０２）。最終端である場合（ステップＳ４６０２：Ｙｅｓ）、図４７のステップＳ４７０１に移行する。
【０１５３】
一方、最終端でない場合（ステップＳ４６０２：Ｎｏ）、模擬装置は、全ワーク情報リストＴＡＷ１を参照することで、ワークＷｉがコンベアＣＵｘで先頭であるか否かを判断する（ステップＳ４６０３）。先頭である場合（ステップＳ４６０３：Ｙｅｓ）、模擬装置は、ワークＷｉの状態が「搬送中」であるか否かを判断する（ステップＳ４６０４）。「搬送中」である場合（ステップＳ４６０４：Ｙｅｓ）、模擬装置は、排出ストッパの状態更新処理を実行して（ステップＳ４６０５）、図４７のステップＳ４７０１に移行する。一方、ステップＳ４６０３で先頭でない場合（ステップＳ４６０３：Ｎｏ）、または、ステップＳ４６０４で「搬送中」でない場合（ステップＳ４６０４：Ｎｏ）、排出ストッパの状態更新処理（ステップＳ４６０５）を実行することなく、図４７のステップＳ４７０１に移行する。
【０１５４】
図４７は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その２）である。模擬装置は、ワークＷｉの状態が「搬送中」であるか「停止」であるかを判断する（ステップＳ４６０４）。「停止」の場合（ステップＳ４７０１：停止）、図４８のステップＳ４８０１に移行する。一方、「搬送中」の場合（ステップＳ４７０１：搬送中）、ワークＷｉが存在するコンベアＣＵｘ以降のストッパのインデックス番号ｊをｊ＝１とする（ステップＳ４７０２）。インデックス番号ｊは、コンベアの排出端から最も離れたストッパから割り振られる。模擬装置は、ワークＷｉがストッパＳｊを通過したか否かを判断する（ステップＳ４７０３）。
【０１５５】
ストッパＳｊを通過している場合（ステップＳ４７０３：Ｙｅｓ）、模擬装置は、ｊをインクリメントして（ステップＳ４７０４）、ｊ＞ｍか否かを判断する（ステップＳ４７０５）。ｍは、コンベアＣＵｘ以降のストッパの総数である。ｊ＞ｍでない場合（ステップＳ：Ｎｏ）、ステップＳ４７０３に戻る。一方、ｊ＞ｍである場合（ステップＳ４７０５：Ｙｅｓ）、ステップＳ４５０６に移行する。
【０１５６】
また、ステップＳ４７０３において、ストッパＳｊを通過していない場合（ステップＳ４７０３：Ｎｏ）、模擬装置は、ストッパＳｊが作動条件が成立しているか否かを判断する（ステップＳ４７０６）。作動条件とは、関節ストッパであればワークＷｉと遮蔽範囲とが抵触することである。また、排出ストッパであれば有効フラグ：ＴＲＵＥの場合である。すなわち、規制状態か否かを判断する。
【０１５７】
作動条件不成立の場合（ステップＳ４７０６：Ｎｏ）、ステップＳ４７０４に移行する。一方、作動条件成立の場合（ステップＳ４７０６：Ｙｅｓ）、模擬装置は、到達条件が成立しているか否かを判断する（ステップＳ４７０７）。到達条件とは、上記式（１）〜（３）に示したようなワークＷｉとストッパＳｊとで決まる条件式である。到達条件不成立の場合（ステップＳ４７０７：Ｎｏ）、まだ到達しないこととなり、ステップＳ４５０６に移行する。
【０１５８】
一方、到達条件成立の場合（ステップＳ４７０７：Ｙｅｓ）、模擬装置は、ストッパＳｊでの停止設定処理を実行する（ステップＳ４７０８）。そして、模擬装置は、搬送残量ｒｉをワーク搬送量ΔＬ分減算し（ステップＳ４７０９）、ワークＷｉの状態を、「搬送中」から「停止」に更新する（ステップＳ４７１０）。そして、ステップＳ４５０６に移行する。
【０１５９】
図４８は、図４５に示したワーク搬送処理（ステップＳ４５０５）の詳細な処理手順を示すフローチャート（その３）である。模擬装置は、離脱指示があるか否かを判断する（ステップＳ４８０１）。離脱指示がない場合（ステップＳ４８０１：Ｎｏ）、ワークＷｉを停止させているストッパＳｊを特定する（ステップＳ４８０２）。そして、模擬装置は、ステップＳ４７０６と同様、ストッパＳｉの作動条件が成立するか否かを判断する（ステップＳ４８０３）。作動条件成立の場合（ステップＳ４８０３：Ｙｅｓ）、停止状態が維持されるため、ステップＳ４５０６に移行する。
【０１６０】
一方、作動条件不成立の場合（ステップＳ４８０３：Ｎｏ）、ストッパＳｊの解除処理を実行する（ステップＳ４８０４）。ストッパＳｊの解除処理（ステップＳ４８０４）、ストッパＳｊの規制が解除されるため、模擬装置は、ワークＷｉの状態を、「停止」から「搬送中」に更新する（ステップＳ４８０５）。このあと、ステップＳ４５０６に移行する。
【０１６１】
また、ステップＳ４８０１において、離脱指示があった場合（ステップＳ４８０１：Ｙｅｓ）、模擬装置は、ストッパＳｊの解除処理を実行する（ステップＳ４８０６）。そして、模擬装置は、コンベアＣＵｘの搬送ワークリストからワークＷｉを削除する（ステップＳ４８０７）。つぎに、模擬装置は、ワークＷｉの状態を、「停止」から「離脱」に更新する（ステップＳ４８０８）。
【０１６２】
そして、模擬装置は、離脱させたワークＷｉがストッパＳｊによる滞留ワーク列にあったワークであるか否かを判断する（ステップＳ４８０９）。滞留ワーク列にあった場合（ステップＳ４８０９：Ｙｅｓ）、模擬装置は、滞留ワーク列内のワークＷｉ以降の後続滞留ワーク列の各ワークの状態を、「停止」から「搬送中」に更新する（ステップＳ４８１０）。そして、ステップＳ４５０６に移行する。一方、滞留ワーク列になかった場合（ステップＳ４８０９：Ｎｏ）、ステップＳ４５０６に移行する。
【０１６３】
図４９は、図４６に示した排出ストッパの状態更新処理（ステップＳ４６０５）の詳細な処理手順を示すフローチャートである。まず、模擬装置は、次段のコンベアＣＵｙの最大溢れ量Ｆを算出する（ステップＳ４９０１）。そして、模擬装置は、Ｆ＞０であるか否かを判断する。Ｆ＞０である場合（ステップＳ４９０２：Ｙｅｓ）、模擬装置は、排出ストッパの有効フラグを有効設定（ＴＲＵＥ）にする（ステップＳ４９０３）。そして、模擬装置は、排出ストッパの位置を、ストッパＳｊによる滞留ワーク列の最後尾のワークの後端に設定する（ステップＳ４９０４）。そして、ステップＳ４６０６に移行する。
【０１６４】
一方、ステップＳ４９０２において、Ｆ＞０でない場合（ステップＳ４９０２：Ｎｏ）、模擬装置は、コンベアの乗り移り条件を満たすか否かを判断する（ステップＳ４９０５）。乗り移り条件を満たさない場合（ステップＳ４９０５：Ｎｏ）、ステップＳ４９０３に移行する。一方、乗り移り条件を満たす場合（ステップＳ４９０５：Ｙｅｓ）、模擬装置は、排出ストッパを無効設定する（ステップＳ４９０６）。すなわち、有効フラグを「ＦＡＬＳＥ」に設定する。そして、排出ストッパの滞留ワークリストを解放する（ステップＳ４９０７）。すなわち、排出ストッパの滞留ワークリストを空にする。そして、ステップＳ４６０６に移行する。
【０１６５】
図５０は、図４７に示したストッパＳｊでの停止設定処理（ステップＳ４７０８）の詳細な処理手順を示すフローチャートである。まず、模擬装置は、ストッパＳｊの滞留オフセット量ΔｄにワークＷｉの搬送方向長ｗｉを加算する（ステップＳ５００１）。つぎに、模擬装置は、ストッパＳｊの滞留ワークリストにワークＷｉを追加する（ステップＳ５００２）。そして、ステップＳ４７０９に移行する。
【０１６６】
図５１は、図４８に示したストッパＳｊの解除処理（ステップＳ４８０４、Ｓ４８０６）の詳細な処理手順を示すフローチャートである。まず、模擬装置は、ストッパＳｊの滞留オフセット量ΔｄからワークＷｉの搬送方向長ｗｉを減算する（ステップＳ５１０１）。つぎに、模擬装置は、ストッパＳｊの滞留ワークリストからワークＷｉのワークＩＤを削除する（ステップＳ５１０２）。そして、ステップＳ４８０５（またはＳ４８０７）に移行する。
【０１６７】
このように、本実施の形態によれば、単純な状態更新によりワークが順次滞留していく状態を表現することができるため、演算負荷の低減化を図りつつ、ワーク搬送の再現性の向上を図ることができる。また、特定部３８０４により、対象ストッパを絞り込むことにより、未通過の最寄のストッパについて演算処理をおこなえばよいため、演算負荷の低減化を図ることができる。
【０１６８】
ワークが滞留ワーク列から離脱する場合も、離脱ワークの後続の滞留ワーク列の状態を更新することで、特殊な搬送状態を再現できるため、演算負荷の低減化を図りつつ、ワーク搬送の再現性の向上を図ることができる。
【０１６９】
また、コンベア間を乗り移る場合、次段のコンベアでの滞留ワーク列の長さを考慮して乗り移ることができるか否かを判断することができる。したがって、乗り移ることができた場合は、滞留ワーク列の最後尾で停止させて滞留状態を表現することができる。また、乗り移ることができない場合、排出ストッパの位置をシフトすることで、滞留ワーク列との重畳状態や離間状態を防止することができる。
【０１７０】
したがって、不自然なシミュレーションを防止することができ、コンベア間でのワーク搬送の再現性の向上を図ることができる。この排出ストッパは、関節ストッパとは異なり、ユーザが意図していないストッパであり、描画されないため、ユーザは違和感なく、シミュレーションの状態を確認することができる。以上のことから、本実施の形態によれば、演算負荷を低下させつつシミュレーションによる模擬精度の向上を図ることができる。
【符号の説明】
【０１７１】
３８００  模擬装置
３８０２  表示部
３８０３  制御部
３８０４  特定部
３８０５  検出部
３８０６  設定部
３８０７  更新部
３８０８  判断部
３８０９  取得部
３８１０  算出部
【図１】
0005866762.tif 000002
【図２】
0005866762.tif 000003
【図３】
0005866762.tif 000004
【図４】
0005866762.tif 000005
【図５】
0005866762.tif 000006
【図６】
0005866762.tif 000007
【図７】
0005866762.tif 000008
【図８】
0005866762.tif 000009
【図９】
0005866762.tif 000010
【図１０】
0005866762.tif 000011
【図１１】
0005866762.tif 000012
【図１２】
0005866762.tif 000013
【図１３】
0005866762.tif 000014
【図１４】
0005866762.tif 000015
【図１５】
0005866762.tif 000016
【図１６】
0005866762.tif 000017
【図１７】
0005866762.tif 000018
【図１８】
0005866762.tif 000019
【図１９】
0005866762.tif 000020
【図２０】
0005866762.tif 000021
【図２１】
0005866762.tif 000022
【図２２】
0005866762.tif 000023
【図２３】
0005866762.tif 000024
【図２４】
0005866762.tif 000025
【図２５】
0005866762.tif 000026
【図２６】
0005866762.tif 000027
【図２７】
0005866762.tif 000028
【図２８】
0005866762.tif 000029
【図２９】
0005866762.tif 000030
【図３０】
0005866762.tif 000031
【図３１】
0005866762.tif 000032
【図３２】
0005866762.tif 000033
【図３３】
0005866762.tif 000034
【図３４】
0005866762.tif 000035
【図３５】
0005866762.tif 000036
【図３６】
0005866762.tif 000037
【図３７】
0005866762.tif 000038
【図３８】
0005866762.tif 000039
【図３９】
0005866762.tif 000040
【図４０】
0005866762.tif 000041
【図４１】
0005866762.tif 000042
【図４２】
0005866762.tif 000043
【図４３】
0005866762.tif 000044
【図４４】
0005866762.tif 000045
【図４５】
0005866762.tif 000046
【図４６】
0005866762.tif 000047
【図４７】
0005866762.tif 000048
【図４８】
0005866762.tif 000049
【図４９】
0005866762.tif 000050
【図５０】
0005866762.tif 000051
【図５１】
0005866762.tif 000052