以下、本発明の好ましい実施形態について、添付図面を参照して説明する。まず図1を参照して本実施形態における搬送車の走行管理プログラム82xに基づいて制御される無人搬送車1について説明する。図1(a)は本発明の一実施形態における無人搬送車1の側面図であり、図1(b)は図1(a)の矢印Ib方向から見た無人搬送車1の底面図であり、図1(c)は図1(a)の矢印Ic方向から見た無人搬送車1の正面図であり、図1(d)はペンダントスイッチ6の斜視図である。なお、図1(a)及び図1(b)では、紙面左側を無人搬送車1の前方とする。
搬送車の走行管理プログラム82xは、上位のプロセスコンピュータ70(以下「上位プロコン」と称す)のHDD82に格納されるプログラムであり、無人搬送車1同士の接触や衝突を回避しつつ、同一走行経路R内に自動走行する無人搬送車1と手動走行する無人搬送車1とを混在させて走行させるプログラムである。
図1(c)に示す通り、複数の無人搬送車1と、上位プロコン70とを有して、走行制御システム10が構成される。走行制御システム10は、無人搬送車1同士の接触や衝突を回避しつつ、同一走行経路R内に自動走行する無人搬送車1と手動走行する無人搬送車1とを混在させて走行させるシステムである。
無人搬送車1は、車体2と、走行装置3と、第1LCD4aと、第1入力装置4bと、制御装置5と、磁気ガイド検出センサ58と、磁気マーク検出センサ59と、IDタグ検出センサ60とを備えている。車体2は、その上面には積載物を載置するための荷台が設けられ、無人搬送車1の全長に亘って平らに形成される。車体2の下方には、無人搬送車1を走行させるための車輪を備える走行装置3が車体2の左右に6個ずつ、計12個設けられる。
各走行装置3は、後述する回転駆動装置61(図3参照)からそれぞれ独立に動力が付与され、それぞれが独立して車輪を回転可能に構成される。また、各走行装置3は、後述する操舵駆動装置62(図3参照)からそれぞれ独立して動力が付与され、それぞれが独立の操舵角で旋回可能に構成される。よって、無人搬送車1を前進走行および後進走行させることができ、所望の方向へ旋回走行させることや、スピンさせることもできる。また、全ての走行装置3を同じ操舵角に保って横行走行させることもできる。
各走行装置3には、各車輪の回転速度から無人搬送車1の走行速度を検出する走行速度検出センサ56が設けられる。また、無人搬送車1の前端側および後端側の4個の走行装置3には、磁気ガイド検出センサ58が設けられる。
無人搬送車1の前端側および後端側の底面であって、その左右方向の両端には、磁気マーク検出センサ59がそれぞれ1個ずつ、計4個設けられる。また、無人搬送車1の前端側の底面であって、左右方向の中央にIDタグ検出センサ60が1つ設けられる。
無人搬送車1の前端面および後端面には、第1LCD4a及び第1入力装置4bがそれぞれ設けられる。第1LCD4aは、無人搬送車1の車両状態を示す画面や、無人搬送車1へ走行指示を与えるための画面が表示されるディスプレイである。第1入力装置4bは、操作者Hによる指示を入力するためのものであり、本実施形態では、第1LCD4aに重ね合わせて配設されるタッチパネルで構成される。
車体2の前端側には、制御装置5が配設される。制御装置5は、各種センサ56,58,59,60の状態を検出すると共に、無人搬送車1の各部を制御するための装置である。制御装置5には、その制御装置5に各種指示を入力するためのペンダントスイッチ6が接続される。
本実施形態では、無人搬送車1の操作モードとして、待機モードと、自動モードと、手動モードとの3つのモードが設けられており、制御装置5の電源が投入されると、操作モードは待機モードに設定される。無人搬送車1の第1入力装置4bからの入力や、上位プロコン70からの指令に基づいて、無人搬送車1を待機モードや手動モードから自動モードに切り替えることができる。また、制御装置5に接続されたペンダントスイッチ6からの入力に基づいて待機モードや自動モードから手動モードに切り替えることができる。
自動モードでは、上位プロコン70からの指示や、第1入力装置4bの入力に基づいて無人搬送車1を自動走行させる。手動モードでは、ペンダントスイッチ6を操作者Hが操作することで、無人搬送車1を手動走行させることができる。
図1(d)に示す通り、ペンダントスイッチ6は、直方体状の筐体で構成され、図示しないペンダント制御部と、各種情報を表示する第2LCD6aと、第2LCD6aに重ね合わせて配設されるタッチパネル6cや各種ボタン6d〜6fから構成される第2入力装置6bとを備える。ペンダント制御部は、ペンダントスイッチの各部を制御するための部位であって、制御装置5と相互通信する部位である。
第2LCD6aは、ペンダントスイッチ6の前面上部に配設され、無人搬送車1の運転状態や操作モード、進行方向や走行速度といった無人搬送車1の状態を示す画面を表示するためのディスプレイである。タッチパネル6cは、操作者Hによるタッチ操作に応じて、タッチされた位置信号をペンダント制御部へ入力するための入力装置である。
第2LCD6a上には、「進行方向」、「走行速度増」、「走行速度減」、「占有/解除」、「初期画面」の各ボタンが表示される。「進行方向」ボタンは、無人搬送車1の進行方向を変更するためのボタンであり、西行(前)、東行(後)、南行(左)、北行(右)を選択することができる。なお、本実施形態では、無人搬送車1は前方を西へ向けて配置されており、西行(前)、東行(後)、南行(左)、北行(右)は、それぞれ無人搬送車1を前進走行、後進走行、左横行走行、右横行走行させることを示す。
「走行速度増」ボタンは無人搬送車1の走行速度を1速上げるためのボタンであり、「走行速度減」ボタンは無人搬送車1の走行速度を1速下げるためのボタンである。本実施形態における無人搬送車1の走行速度は、1速〜8速とする。1速は1m/分、2速は3m/分、3速は5m/分であり、3速〜8速は1速上がる毎に5m/分ずつ増加する。
「占有/解除」ボタンは、押下によって占有参照状態と、占有解除状態とを切り替えるボタンである。占有参照状態では、後述する上位プロコン70からの走行許可信号や走行不可信号に基づいて無人搬送車1を手動で走行させ、占有解除状態では、走行許可信号や走行不可信号を無視して無人搬送車1を手動で走行させる。
走行許可信号とは、手動モードの無人搬送車1をペンダントスイッチ6の入力に基づいて走行させることを許可する信号である。走行不可信号とは、手動モードの無人搬送車1をペンダントスイッチ6の入力に基づいて走行させることを禁止する信号であって、無人搬送車1が走行している場合には、その無人搬送車1を停止させる信号である。
「初期画面」ボタンを押すと、複数の手動モードの中から操作モードを選択する初期画面が表示される。複数の手動モードには、手動倣い走行モードと、手動走行モードと、手動リフタ動作モードと、AGVチェックモードとがある。手動倣い走行モードは、後述する磁気ガイドGに倣って無人搬送車1を手動で走行させるモードである。手動走行モードは、磁気ガイドGとは関係なく任意の場所を走行させるモードである。手動リフタモードは、車体2上面の荷台を昇降させるリフタを操作するモードである。AGVチェックモードは、無人搬送車1の車両状態をチェックするモードである。
ペンダントスイッチ6の前面下部(第2LCD6a及びタッチパネル6cの下部)には、動作ボタン6d、左操舵ボタン6e及び右操舵ボタン6fが配設される。無人搬送車1は、動作ボタン6dの押下中のみ進行方向へ走行する。動作ボタン6dと同時に左操舵ボタン6eを押下することで、無人搬送車1が進行方向に対して左側に曲がりながら走行し、動作ボタン6dと同時に右操舵ボタン6fを押下することで、無人搬送車1が進行方向に対して右側に曲がりながら走行する。
次に図2(a)及び図2(b)を参照して無人搬送車1の走行経路Rについて説明する。図2(a)は無人搬送車1の走行経路R全体を模式的に示す平面図であり、図2(b)は図2(a)のIIb部分を拡大した走行経路Rの拡大図である。図2(a)の矢印E,W,S,Nはそれぞれ、東方向、西方向、南方向、北方向を示している。図2(a)に示す通り、無人搬送車1の走行経路R全体は、複数のステーション(以下「ST」と略す)と、各STを結ぶように無人搬送車1を走行させる路面に埋設された帯状の磁気ガイドGとを備える。
上述した磁気ガイド検出センサ58は、磁気ガイドGを検出する複数のセンサ素子が一列に並んだ検出部を有している。複数のセンサ素子を一列に並べた長さは、磁気ガイドGの横幅よりも十分に大きく設けられる。磁気ガイド検出センサ58は、磁気ガイドGを検出中か、検出部の何れの領域で磁気ガイドGが検出されているのか等の検出結果を制御装置5へ出力する。
制御装置5は、無人搬送車1の自動モードや手動倣い走行モードにおいて、左倣い又は右倣いの入力に応じ、無人搬送車1の進行方向に対して左右片側の磁気ガイド検出センサ58からの検出結果を検出する。そして、取得した検出結果に基づいて、無人搬送車1と磁気ガイドGとの位置ずれを算出し、その位置ずれを減少させるように進行方向などを制御する。
STは、無人搬送車1に対して積載物の積み降ろしを行ったり、無人搬送車1が別の無人搬送車1の通過を待ったり、走行経路R上にある自動シャッタや自動扉の開放を待ったりする位置などである。各STには、それぞれ個別に名称「ST**」(なお、「**」は、任意の数字)が付されている。以後、STを個別に特定する場合には、ST名をそのまま記載する。例えば、「ST1」という名称のSTを示す場合には、「ST1」と記載する。
図2(b)に示す通り、各STには、矩形板状の磁気マークMと、円板状のIDタグITとが、無人搬送車1を走行させる路面に埋設されている。磁気マークMは、無人搬送車1の停止位置などの基準位置を、制御装置5が取得するためのものであり、各STの四隅に配置される。上述した磁気マーク検出センサ59は、磁気マークMを検出しているか否かを制御装置5に出力するセンサである。制御装置5は、磁気マークMが検出された場合に無人搬送車1が何れかのST内に位置する(STに到着した)と判断する。
IDタグITは、各STをそれぞれ個別に識別するための識別情報(例えば、STの名称)が記憶されたものであり、各STの長手方向両端部かつ、短手方向中央に配置される。上述したIDタグ検出センサ60は、IDタグITとの距離が接近している間(例えば、数十cm以内)、そのIDタグITに記憶されている識別情報を非接触(例えば、電磁誘導方式など)で読み取って、制御装置5へ出力するセンサである。
なお、IDタグITは、必ずしも、各STの長手方向両端部かつ、短手方向中央に配置される場合に限られず、各STの長手方向両端部のうち一方にIDタグITを配置する構成であっても良い。また、各STの長手方向および短手方向の中央にIDタグITを配置し、無人搬送車1の前後左右の中央にIDタグ検出センサ60を配置する構成であっても良い。
制御装置5は、磁気マーク検出センサ59により磁気マークMが検出されていると共に、IDタグ検出センサ60によりIDタグITの識別情報が検出されていれば、その検出された識別情報に対応するST内に無人搬送車1が位置する(STに無人搬送車1が到着した)と判断する。
次に、図3を参照して、上位プロコン70及び無人搬送車1の電気的構成について説明する。図3は上位プロコン70及び無人搬送車1の電気的構成を示すブロック図である。上位プロコン70の上位制御装置80は、各STの状態に基づいて複数の無人搬送車1へ各種指令を送信するために工場内に設置される装置であり、図3に示す通り、CPU81、HDD82、RAM83を備え、これらはバスライン84を介して互いに接続されている。またCPU81は、入出力ポート85に接続され、その入出力ポート85には、LCD86、入力装置87、無線通信装置88がそれぞれ接続されている。
CPU81は、バスライン84により接続された各部を制御する演算装置である。HDD82は、CPU81により実行される制御プログラムや固定値データ等を格納した書き換え可能な不揮発性の記憶装置であり、搬送車の走行管理プログラム82xと、ルートテーブル82aと、隣接STテーブル82bとが設けられている。
搬送車の走行管理プログラム82xは、図8及び図9に図示される上位プロコンメイン処理を実行するためのプログラムであり、無人搬送車1同士の接触や衝突を回避しつつ、同一走行経路R内に自動走行する無人搬送車1と手動走行する無人搬送車1とを混在させて走行させるプログラムである。
ここで、図4(a)及び図4(b)を参照して、ルートテーブル82a及び隣接STテーブル82bについてそれぞれ説明する。図4(a)はルートテーブル82aの内容の一例を示す模式図であり、図4(b)は隣接STテーブル82bの内容の一例を示す模式図である。
ルートテーブル82aは、無人搬送車1が現在位置するST(以下「現在ST」と称す)から、無人搬送車1の行先となるST(以下「目的ST」と称す)まで無人搬送車1を走行させる際の走行STの情報を予め記憶したデータテーブルである。図4(a)に示す通り、ルートテーブル82aには、現在STデータ82a1、目的STデータ82a2、走行STデータ82a3がそれぞれ対応付けられて記憶される。
現在STデータ82a1には、無人搬送車1の現在STに対応するSTが記憶される。目的STデータ82a2には、無人搬送車1の目的STに対応するSTが記憶される。なお、目的STデータ82a2には、現在STデータ82a1に記憶されるSTに対して、そのST以外の各STが記憶される。例えば、現在STデータ82a1に「ST1」が記憶される場合、その現在STデータ82a1に対して、目的STデータには「ST2」〜「ST15」がそれぞれ記憶される。
走行STデータ82a3には、無人搬送車1が、現在STから目的STまで走行する際に走行するST(以下「走行ST」と称す)が順番に記憶される。例えば、図4(a)において、現在STデータ82a1が「ST1」であり、目的STデータ82a2が「ST2」である場合、走行STデータ82a3には「ST1→ST5→ST6→ST2」が記憶される。これは、無人搬送車1を「ST1」から「ST5」まで走行させ、次いで「ST5」から「ST6」まで走行させ、次いで「ST6」から「ST2」まで走行させることを示す。
隣接STテーブル82bには、無人搬送車1の現在STに対して無人搬送車1の進行方向に隣接するST(以下「隣接ST」と称す)が記憶される。本実施形態では、各STの配置上、無人搬送車1の進行方向には、東西南北の4つがある。図4(b)に示す通り、隣接STテーブル82bの「東」、「西」、「南」、「北」の列は、その無人搬送車1の進行方向である東西南北にそれぞれ対応したものである。なお、各STの配置により、無人搬送車1の進行方向に東西南北以外の方向が存在する場合、その方向に対応する列を隣接STテーブル82bに設ける。
また図4(b)の「ST1」〜「ST15」の行は、無人搬送車1の現在STのST名(「ST1」〜「ST15」)である。隣接STテーブル82bには、現在STおよび進行方向に対応付けられる隣接STが記憶される。隣接STが存在する場合にはその隣接STのST名が記憶され、隣接STが存在しない場合には無効を示す値が記憶される。図4(b)では、無効を示す値として「−」で示す。
図3に戻って説明する。RAM83は、CPU81が制御プログラムの実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、ST状態テーブル83aと、処理IDメモリ83bと、目的STメモリ83cと、進行方向メモリ83dと、隣接STメモリ83eとが設けられている。
図4(c)を参照して、ST状態テーブル83aについて説明する。図4(c)はST状態テーブル83aの内容の一例を示す模式図である。ST状態テーブル83aは、各STの状態をそれぞれ記憶するテーブルである。図4(c)に示す通り、ST状態テーブル83aには、STメモリ83a1、ST状態メモリ83a2、搬送車IDメモリ83a3がそれぞれ対応付けられて記憶される。
STメモリ83a1には、電源投入時に各ST名が記憶され、ST状態メモリ83a2には、各STの状態が記憶される。ST状態メモリ83a2に記憶される各STの状態には、「在」(現在ステーション)、「占有」(占有ステーション)、「進入禁止」、「空き」(空ステーション)がある。ST状態メモリ83a2は、電源投入時の初期状態では「空き」が記憶され、上位制御装置80が受信した無人搬送車1からの各種信号や、入力装置87からの入力に基づいて更新される。
「在」は、STメモリ83a1に該当するSTに無人搬送車1が位置することを示す。「占有」は、STメモリ83a1に該当するSTが無人搬送車1に占有されることを示す。占有されているSTへは、そのSTを占有する無人搬送車1以外の無人搬送車1の進入が禁止される。
「進入禁止」は、対応するSTへの無人搬送車1の進入が禁止されていることを示す。例えば、STをメンテナンスする際に、そのSTを「進入禁止」と設定する。「空き」は、「在」、「占有」、「進入禁止」の何れでもないことを示し、即ち、無人搬送車1の進入が許可されていることを示す。
搬送車IDメモリ83a3には、複数の無人搬送車1を個別に識別するための識別情報である搬送車IDが記憶される。搬送車IDメモリ83a3は、電源投入時の初期状態では、「無」が記憶され、無人搬送車1から上位制御装置80が各種信号を受信したときや、入力装置87から入力されたときに更新される。
本実施形態では走行経路R全体に無人搬送車1が2台存在し、それぞれの無人搬送車1の搬送車IDを「A1」、「A2」とする。以後、無人搬送車1を個別に特定する場合には、「搬送車ID」のように記載する。例えば、「A1」の搬送車IDを有する無人搬送車1を示す場合には、「無人搬送車A1」と記載する。なお、走行経路R全体に存在する無人搬送車1は2台に限らず、3台以上でも良い。
ST状態メモリ83a2の値が「在」である場合には、対応するSTに位置する無人搬送車1の搬送車IDが搬送車IDメモリ83a3に記憶される。ST状態メモリ83a2の値が「占有」である場合には、対応するSTを占有する無人搬送車1の搬送車IDが搬送車IDメモリ83a3に記憶される。ST状態メモリ83a2の値が「進入禁止」や「空き」である場合には、搬送車IDメモリ83a3には「無」が記憶される。
例えば、「ST1」に無人搬送車A1が位置することをST状態テーブル83aに記憶する場合には、STメモリ83a1が「ST1」であるST状態メモリ83a2に「在」を記憶し、搬送車IDメモリ83a3に「A1」を記憶する。また、「ST3」を無人搬送車A2が占有することをST状態テーブル83aに記憶する場合には、STメモリ83a1が「ST3」であるST状態メモリ83a2に「占有」を記憶し、搬送車IDメモリ83a3に「A2」を記憶する。
再び図3に戻って説明する。処理IDメモリ83bは、現在CPU81で行われている処理が、複数の無人搬送車1のうち何れの無人搬送車1に対して行われている処理なのかを記憶するためのメモリである。処理IDメモリ83bは、電源投入時の初期状態では「無」が記憶され、処理中の無人搬送車1の搬送車IDが記憶される。
目的STメモリ83cは、無人搬送車1の自動走行時の目的STであるST名が記憶されるメモリである。目的STメモリ83cは、電源投入時の初期状態では「無」が記憶され、自動走行情報が上位制御装置80に入力されたときに、入力されたST名で更新される。
進行方向メモリ83dは、無人搬送車1から送信されて上位制御装置80が受信した無人搬送車1の進行方向が記憶されるメモリである。進行方向メモリ83dは、電源投入時の初期状態では「無」が記憶され、無人搬送車1から走行操作信号を受信したときに、受信した進行方向で更新される。
隣接STメモリ83eは、隣接STテーブル82bから取得した隣接STが記憶されるメモリである。隣接STメモリ83eは、電源投入時の初期状態では、「無」が記憶され、無人搬送車1から走行操作信号を受信したときに、受信した走行操作信号に基づいて取得される隣接STで更新される。
LCD86は、各STの状態、各無人搬送車1の運転状態、各無人搬送車1の車両状態などを示す画面(図10(a))や、各無人搬送車1へ走行指示を与えるための画面(図11(a)〜(c))などの各種表示画面90が表示されるディスプレイである。入力装置87は、プロコンオペレータによる指示を上位制御装置80へ入力するためのものであり、例えば、マウスやキーボード、タッチパネルで構成される。
無線通信装置88は、複数の無人搬送車1との間で、無線通信によるデータ通信を行うための装置であり、無人搬送車1への移動指令や、無人搬送車1からの走行操作信号や停止信号などのデータ通信が行われる。
無人搬送車1の制御装置5は、無人搬送車1の各部を制御するための装置であり、CPU51、フラッシュメモリ52、RAM53を備え、これらはバスライン54を介して互いに接続されている。またCPU51は、入出力ポート55に接続され、その入出力ポート55には、走行速度検出センサ56、無線通信装置57、第1LCD4a、第1入力装置4b、ペンダントスイッチ6、磁気ガイド検出センサ58、磁気マーク検出センサ59、IDタグ検出センサ60、回転駆動装置61、操舵駆動装置62がそれぞれ接続されている。
CPU51は、バスライン54により接続された各部を制御する演算装置である。フラッシュメモリ52は、CPU51により実行される制御プログラム(例えば、図6に図示される無人搬送車メイン処理)や固定値データ等を格納した書き換え可能な不揮発性のメモリであり、動作情報リンクテーブル52aと、動作コマンドテーブル52bと、搬送車IDデータメモリ52cとが設けられる。
ここで、図5(a)から図5(c)を参照して、動作情報リンクテーブル52a及び動作コマンドテーブル52bについて説明する。図5(a)は動作情報リンクテーブル52aの内容の一例を示す模式図であり、図5(b)は動作コマンドテーブル52bの内容の一例を示す模式図であり、図5(c)は動作コマンドの種類の一例を示す模式図である。
動作情報リンクテーブル52aは、上位プロコン70から送信されて制御装置5が受信した移動指令に対応する動作コマンド列を制御装置5が生成する場合に、後述する動作コマンドテーブル52bと共に制御装置5により参照されるテーブルである。移動指令は、移動指令を受信する無人搬送車1の搬送車IDと、無人搬送車1を自動走行させて到着するST(目的ST)とで構成されている。
また、動作コマンドは、無人搬送車1の走行制御を行うために制御装置5が実行する命令であり、無人搬送車1の制御内容に応じて複数種類設けられている(図5(c)参照)。制御装置5は、これらの動作コマンドを組み合わせて、上位プロコン70から送信されて制御装置5が受信した移動指令に対応する動作コマンド列を生成し、その後、その生成した動作コマンド列の各動作コマンドを1つずつ順番に実行して、現在STから目的STまで無人搬送車1を走行させる。なお、移動指令から動作コマンド列を生成する方法については後述する。
動作情報リンクテーブル52aには、現在STデータ52a1、目的STデータ52a2、動作情報データ番号列52a3がそれぞれ対応付けられて記憶される。現在STデータ52a1、目的STデータ52a2は、前述したルートテーブル82aの現在STデータ82a1及び目的STデータ82a2と同様なので、説明を省略する。
動作情報データ番号列52a3は、上述の通り、現在STデータ52a1の値と目的STデータ52a2の値との組み合わせに応じて設定されており、例えば、無人搬送車1の現在STが「ST1」、無人搬送車1の目的STが「ST2」という組み合わせには、「11,22,208,99,・・・,51」という動作情報データ番号列が対応づけられている。なお、この番号列に対応する動作コマンド列が制御装置5により実行されると、「ST1」で待機中であった無人搬送車1が、「ST1」から「ST2」まで走行して停止し、上位プロコン70へ停止信号を送信する。
また、例えば、無人搬送車1の現在STが「ST1」、無人搬送車1の目的STが「ST3」という組み合わせには、「11,22,・・・,31,51」という動作情報データ番号列が対応づけられている。なお、この番号列に対応する動作コマンド列が制御装置5により実行されると、「ST1」で待機中であった無人搬送車1が、「ST1」から「ST3」まで走行して停止し、上位プロコン70へ停止信号を送信する。以下、その他の現在STと目的STとの組み合わせについても同様な説明となるので、その説明は省略する。
また、何れの組み合わせでも、動作情報データ番号列の最後には「51」が記載されている。「51」は、上位プロコン70へ停止信号を送信するための動作コマンドを生成するための情報を有する番号である。即ち、無人搬送車1は、「51」の動作情報データ番号により、自動走行で目的STに到着して停止した場合に必ず上位プロコン70へ停止信号を送信する。
図5(b)に示す通り、動作コマンドテーブル52bは、上位プロコン70から送信されて制御装置5が受信した移動指令に対応する動作コマンド列を制御装置5が生成する場合に、上述した動作情報リンクテーブル52aと共に制御装置5により参照されるテーブルである。動作コマンドテーブル52bは、動作情報データ番号と、動作情報データ番号に対応する動作コマンド列とから構成される。例えば、動作情報データ番号「1」には、1番目の動作コマンドとして「9101H−0000H」が対応づけられており、2番目の動作コマンドとして「0101H−1001H」が対応づけられている。なお、その他の動作情報データ番号についても同様な説明となるので、その説明は省略する。
各動作コマンドは、2ワード(本実施形態の1ワードは2バイト)単位で構成されており、1ワード目の上位バイトには、コマンドの種別を示すコマンドコードが設定される。また、1ワード目の下位バイトと、2ワード目全体とには、コマンドのパラメータを示すデータが設定される。例えば、動作コマンド「0101H−1001H」であれば、「01H」がコマンドコードとなり、「01H−1001H」がパラメータを示すデータとなる。なお、パラメータとは、例えばコマンドコードが進行方向であるときには、東西南北のいずれかに対応するデータである。
図5(c)に示す通り、本実施形態では、無人搬送車1の制御内容に応じて、動作コマンドが個別に設けられており、各動作コマンド毎に、コマンドコードが個別に設定されている。例えば、進行方向設定を実行する動作コマンドには、コマンドコードとして「01H」が設定されており、上位プロコンへ停止信号を送信する動作コマンドには、コマンドコードとして「93H」が設定されている。なお、その他の動作コマンドについても同様な説明となるので、その説明は省略する。
再び、図3に戻って説明する。搬送車IDデータメモリ52cは、複数の無人搬送車1を個別に識別するための識別情報である自車の搬送車IDが記憶されるメモリである。上述の通り、本実施形態では、走行経路R全体に無人搬送車1が2台存在し、各無人搬送車1の搬送車IDデータメモリ52cにはそれぞれ自車の搬送車IDである「A1」、「A2」が記憶される。
RAM53は、CPU51が制御プログラムの実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、走行モードメモリ53aと、移動許可フラグ53bと、現在STメモリ53cと、目的STメモリ53dと、動作コマンドメモリ53eと、占有/解除フラグ53fとが設けられている。
走行モードメモリ53aは、無人搬送車1の操作モードの設定状態が記憶されるメモリである。無人搬送車1の操作モードには、電源投入時の初期状態である待機モードと、上位プロコン70からの指令や、第1入力装置4bの入力に基づいて切り替え可能な自動モードと、ペンダントスイッチ6の接続により切り替え可能な手動モードとがある。この操作モードの状態が走行モードメモリ53aに記憶される。なお、手動モードには、上述の通り、そのモード中に、手動倣い走行モードと、手動走行モードと、手動リフタモードと、AGVチェックモードとを有している。これらの手動モードの状態も走行モードメモリ53aに記憶される。
移動許可フラグ53bは、手動モードの無人搬送車1をペンダントスイッチ6の入力に基づいて移動させることを許可するか否かを示すフラグである。移動許可フラグ53bがオンのときには、ペンダントスイッチ6の入力に基づいて無人搬送車1を移動させることが可能であり、オフのときには、ペンダントスイッチ6の入力に基づいて無人搬送車1を移動させることが禁止される。移動許可フラグ53bは、電源投入時の初期状態ではオフに設定される。詳細は後述するが、上位プロコン70から送信された移動許可信号を制御装置5が受信すると、移動許可フラグ53bはオンにされる。また、無人搬送車1の移動が停止すると、移動許可フラグ53bはオフにされる。
現在STメモリ53cは、無人搬送車1が現在位置するSTである現在STが記憶されるメモリである。現在STメモリ53cは、電源投入時の初期状態では、「無」が記憶され、磁気マークM及びIDタグITを検出したときに、検出したIDタグITに基づくST名で更新される。移動中の無人搬送車1がSTに到着したときに磁気マークM及びIDタグITが検出されるので、ST間の移動中には、無人搬送車1が移動前に位置していたSTが現在STメモリ53cに記憶されている。
目的STメモリ53dは、上位プロコン70から送信されて制御装置5が受信した移動指令の中の目的STデータが記憶されるメモリである。目的STメモリ53dは、電源投入時の初期状態では「無」が記憶され、上位プロコン70から移動指令を受信したときに、受信した移動指令に基づく目的ST名で更新される。
動作コマンドメモリ53eは、上位プロコン70から送信されて制御装置5が受信した移動指令に対応する動作コマンド列が記憶されるメモリである。動作コマンドメモリ53eは、電源投入時の初期状態では「無」が記憶される。無人搬送車1の待機中に上位プロコン70から送信された移動指令が制御装置5により受信された場合、動作コマンドメモリ53eはクリアされる。その後、制御装置5では、受信した移動指令に基づいて、現在STから目的STまでの走行経路R上を無人搬送車1に走行させるための動作コマンド列が生成されて、それらが動作コマンドメモリ53eの先頭から実行順に記憶される。
占有/解除フラグ53fは、上位プロコン70から送信されて制御装置5が受信する指令に基づいて無人搬送車1を手動走行させるか否かを示すフラグである。占有/解除フラグ53fがオンのときは、上位プロコン70からの走行許可信号や走行不可信号を無視して無人搬送車1を手動で走行させる占有解除状態であり、占有/解除フラグ53fがオフのときは、走行許可信号や走行不可信号に基づいて無人搬送車1を手動で走行させる占有参照状態である。占有/解除フラグ53fは、電源投入時の初期状態ではオフに設定される。詳細は後述するが、ペンダントスイッチ6の「占有/解除」ボタンを押す(オンにする)と、占有/解除フラグ53fのオン/オフが切り替わる。
走行速度検出センサ56は、上述の通り、各車輪の回転速度から無人搬送車1の走行速度を検出するセンサである。無線通信装置57は、上位プロコン70との間で、無線通信によるデータ通信を行うための装置であり、上位プロコン70へデータを送信するときには、搬送車IDデータメモリ52cの値(無人搬送車1毎の搬送車ID)を一緒に送信する。無線通信装置57が上位プロコン70からデータを受信したときには、搬送車IDデータメモリ52cの値と、受信した搬送車IDとが一致するか否かをCPU51が判断し、一致した場合には受信したデータに基づいてCPU51で各種処理を行い、一致しない場合にはその受信したデータを無視する。
第1LCD4aは、無人搬送車1の運転状態や現在ST、進行方向や走行速度といった無人搬送車1の車両状態を示す画面や、無人搬送車1へ走行指示を与えるための画面が表示されるディスプレイである。第1入力装置4bは、操作者Hによる指示を制御装置5へ入力するためのものであり、本実施形態では、第1LCD4aに重ね合わせて配設されるタッチパネルから構成される。
ペンダントスイッチ6は、ペンダントスイッチ6の各部を制御するペンダント制御部(図示せず)と、各種情報を表示する第2LCD6aと、タッチパネル6cや各種ボタン6d〜6f(図1(d)参照)から構成される第2入力装置6bとを備えている。ペンダント制御部は、ペンダントスイッチ6の各部を制御するための部位であって、制御装置5と相互通信する部位である。
次に、図6と図7とを参照して、各無人搬送車1の制御装置5で実行される無人搬送車メイン処理と、無人搬送車割込処理とについて説明する。図6は無人搬送車メイン処理のフローチャ−トであり、図7は無人搬送車割込処理のフローチャ−トである。なお、図6や図7のフローチャ−トでは、無人搬送車1やその各部が予期しない動作をした場合等の異常に関する処理等の記載は省略している。
図6に示す通り、制御装置5のCPU51は、磁気マーク検出センサ59により磁気マークMが検出され、且つ、IDタグ検出センサ60によりIDタグITが検出されたかを確認する(S1)。磁気マークMが検出され、且つ、IDタグITが検出された場合には(S1:Yes)、IDタグITが埋設されているST内に無人搬送車1が位置する(STに到着した)ので、IDタグITに記憶されているST毎の識別情報(例えば「ST1」)を現在STメモリ53cに記憶する(S2)。次いで、無人搬送車1の現在STを上位プロコンへ通知するために、搬送車IDデータメモリ52cの値であって無人搬送車1毎の識別情報である自車の搬送車IDと、その無人搬送車1の現在STメモリ53cの値(自車の現在ST)とを上位プロコン70へ送信する(S3)。
一方、S1の処理で、磁気マークM及びIDタグITの両方が検出されていない場合には(S1:No)、ST間の移動中であって次のSTに到着する前なので、S2及びS3の処理をスキップする。
なお、磁気マーク検出センサ59やIDタグ検出センサ60の故障等により、無人搬送車1がSTに到着しても磁気マークMやIDタグITを検出できないという異常が発生することがある。この場合、例えば、移動前に位置していたSTからの無人搬送車1の走行距離を記憶し、その走行距離とST間の距離とに基づいて、無人搬送車1が位置するSTが変わったと判断しても良い。さらに、STが変わったことと、無人搬送車1の進行方向とを上位プロコン70へ送信し、無人搬送車1の移動後のSTである現在STを上位プロコン70の隣接STテーブル82bを用いて判断し、判断した現在STを無人搬送車1へ送信しても良い。
S1,S3の処理の後、上位プロコン70から自車の移動指令を受信したかを確認する(S4)。移動指令は、移動指令の送信先である無人搬送車1の搬送車IDと、その無人搬送車1を自動走行で移動させる目的STとを有する。上位プロコン70から自車の移動指令を受信した場合には(S4:Yes)、移動指令に基づいて無人搬送車1を自動走行させるために、その移動指令から目的STを目的STメモリ53dに記憶し(S5)、現在STメモリ53cの値と、目的STメモリ53dの値とから動作情報リンクテーブル52aに基づいて動作情報データ番号列を取得する(S6)。
次いで、取得した動作情報データ番号列と、動作コマンドテーブル52bとに基づいて動作コマンド列を生成し、動作コマンドメモリ53eに記憶する(S7)。動作コマンド列は、動作コマンドメモリ53eの先頭から動作コマンドの実行順に記憶されるので、S7の処理後に、動作コマンドメモリ53eの先頭から順に動作コマンドを実行する(S8)。これにより、現在STに位置していた無人搬送車1が目的STまで自動走行して停止する。停止した無人搬送車1は、停止信号を上位プロコン70へ送信する。
一方、S4の処理で、上位プロコン70から移動指令を受信していない場合には(S4:No)、無人搬送車1を自動走行させないので、S5〜S8の処理をスキップする。
次いで、図7を参照して無人搬送車割込処理について説明する。無人搬送車割込処理は、定期的(例えば100ms毎)に実行される処理である。図7に示す通り、走行モードメモリ53aを参照して無人搬送車1の操作モードが手動モードであるかを確認する(S10)。無人搬送車1が手動モードでない場合(S10:No)、本処理は手動モードに関する処理なので、本処理を終了する。
一方、無人搬送車1が手動モードである場合(S10:Yes)、ペンダントスイッチ6の「占有/解除」ボタン(図1(d)参照)が押下された直後かを確認する(S11)。上述した占有参照状態と占有解除状態とを切り替える「占有/解除」ボタンのオンが検出された直後の処理である場合には(S11:Yes)、占有/解除フラグ53fがオフであるかを確認する(S12)。占有/解除フラグ53fがオフであれば(S12:Yes)、占有参照状態から占有解除状態に切り替えるために、占有/解除フラグ53fをオンにする(S13)。
一方、S12の処理で、占有/解除フラグ53fがオンであれば(S12:No)、占有解除状態から占有参照状態に切り替えるために、占有/解除フラグ53fをオフにする(S14)。また、S11の処理で、占有/解除ボタンが押下された直後の処理でない場合(S11:No)、S12〜S14の処理をスキップする。
S11〜S14の処理の後、動作ボタン6dが押下中であるかを確認する(S15)。動作ボタン6dが押下中の場合には(S15:Yes)、占有/解除フラグ53fがオンであるかを確認する(S16)。占有/解除フラグ53fがオフであれば(S16:No)、上位プロコン70からの移動許可を受信した上で無人搬送車1を走行させる占有参照状態なので、上位プロコン70で走行許可を判断させるために、上位プロコン70へ走行操作信号を送信する(S17)。なお、走行操作信号は、搬送車IDと、ペンダントスイッチ6で選択した無人搬送車1の進行方向(例えば「南」)とを有する。
S17の処理後、上位プロコン70から送信された移動不可信号を受信したかを確認する(S18)。移動不可信号を受信していない場合には(S18:No)、移動許可フラグ53bがオンであるかを確認する(S19)。
移動許可フラグ53bがオフである場合には(S19:No)、未だに上位プロコン70からの移動許可がないので、上位プロコン70から送信された移動許可信号を受信したかを確認する(S20)。移動許可信号を受信した場合には(S20:Yes)、上位プロコン70からの移動許可があったことを記憶するために、移動許可フラグ53bをオンにして(S21)、ペンダントスイッチ6の入力に基づいて無人搬送車1を移動させる(S22)。
一方、S19の処理で、移動許可フラグ53bがオンである場合には(S19:Yes)、既に上位プロコン70から移動許可されているので、S20,S21の処理をスキップして、S22の処理を行い、無人搬送車1を手動走行させる。
移動許可フラグ53bがオンされておらず(S19:No)、移動許可信号を受信していない場合には(S20:No)、上位プロコン70からの走行許可がないので、S21及びS22の処理をスキップして、無人搬送車1を手動走行させない。また、S16の処理で、占有/解除フラグ53fがオンであれば(S16:Yes)、上位プロコン70からの移動許可や移動禁止を無視して無人搬送車1を走行させる占有解除状態なので、S17〜S21の処理をスキップして、S22の処理を行い、無人搬送車1を手動走行させる。
なお、占有/解除フラグ53fがオンである無人搬送車1を手動走行させて、その無人搬送車を他の無人搬送車1が占有するSTに進入させた場合には、そのSTを占有する無人搬送車1を停止させることで、無人搬送車1同士の接触や衝突を回避できる。
S18の処理において、移動不可信号を受信した場合(S18:Yes)、ペンダントスイッチ6を操作中の操作者Hに無人搬送車1を手動走行できないことを通知するために、ペンダントスイッチ6の第2LCD6aに「移動不可」を表示し(S23)、無人搬送車1が移動中かを確認する(S24)。
一方、S15の処理において、動作ボタン6dが押下中でない場合には(S15:No)、無人搬送車1の移動中に動作ボタン6dの押下をやめたのか、以前から動作ボタン6dを押下しておらず停止中であったのかを判断するために、S24の処理へ移行する。
なお、無人搬送車1が移動中か否かを判断するには、走行速度検出センサ56の検出結果である無人搬送車1の走行速度を確認し、無人搬送車1の走行速度が「0」であれば、無人搬送車1が停止中(待機中)であると判断し、無人搬送車1の走行速度が「0」以外であれば、無人搬送車1が移動中であると判断する。
S24の処理で、無人搬送車1が移動中である場合には(S24:Yes)、操作者Hが動作ボタン6dの押下をやめた、又は、上位プロコン70から移動禁止されたので、無人搬送車1を停止させる(S25)。次いで、移動禁止中であることを記憶するために、移動許可フラグ53bをオフにし(S26)、移動中の無人搬送車1が停止したことを上位プロコン70へ通知するために、上位プロコン70へ停止信号を送信する(S27)。なお、停止信号は、搬送車IDと、無人搬送車1の停止が完了したことを上位プロコン70へ通知する情報とを有する。一方、S24の処理で、無人搬送車1が停止中である場合には(S24:No)、移動中の無人搬送車1を停止させるための処理であるS25〜S27の処理をスキップし、本処理を終了する。
次に図8及び図9を参照して、上位プロコン70の上位制御装置80で実行される上位プロコンメイン処理について説明する。図8及び図9は上位プロコンメイン処理のフローチャートである。
図8に示す通り、まず、無人搬送車1の現在STを更新するための処理であるS30〜S33の処理を実行する。上位制御装置80のCPU81は、無人搬送車1から送信された搬送車IDと現在STとを受信したかを確認し(S30)、搬送車IDと現在STとを受信した場合には(S30:Yes)、複数の無人搬送車1のうちから現在STを受信した無人搬送車1を記憶するために、受信した搬送車IDを処理IDメモリ83bに記憶する(S31)。
次いで、受信した搬送車IDの無人搬送車1が受信前に位置していた現在STをST状態テーブル83aからクリアするために、ST状態テーブル83aを参照し、処理IDメモリ83bの値と、搬送車IDメモリ83a3の値とが一致し、且つ、ST状態メモリ83a2が「在」の場合に、搬送車IDメモリ83a3に「無」を、ST状態メモリ83a2に「空き」をそれぞれ記憶する(S32)。
次いで、受信した新たな現在STをST状態テーブル83aに記憶するために、ST状態テーブル83aにおいて、上位制御装置80が受信した現在STに該当するST状態メモリ83a2に「在」を、搬送車IDメモリ83a3に処理IDメモリ83bの値をそれぞれ記憶する(S33)。
S32,S33の処理では、無人搬送車1の受信以前の現在STをクリアしてから、受信後の現在STを新たに記憶するので、受信前後で現在STに変更があれば、ST状態テーブル83aの値は変化する。一方、受信前後で現在STに変更がなければ、ST状態テーブル83aの値は変化しない。そこで、受信前後で現在STに変更があるかを判断し、変更がある場合にはST状態テーブル83aを更新し、変更がない場合にはST状態テーブル83aを更新しない構成としても良い。
一方、S30の処理で、搬送車IDと現在STとを受信していない場合には(S30:No)、無人搬送車1の現在STに変更がないので、S31〜S33の処理をスキップする。
このように、S30〜S33の処理は、無人搬送車1の現在STを更新するための処理である。詳しくは後述するが、手動モードであって占有/解除フラグ53fがオフである無人搬送車1や、自動モードの無人搬送車1は、他の無人搬送車1の現在STには進入できないように制御される。そのため、S30〜S33の処理によって、無人搬送車1が位置しなくなったSTを「空き」にし、無人搬送車1の新たな現在STを「在」とすることで、無人搬送車1が通り過ぎたSTが、他の無人搬送車1に開放される。従って、同一の走行経路R内で自動走行する無人搬送車1と手動走行する無人搬送車1とが複数混在する環境下において、他の無人搬送車1の移動の自由度を大きくできる。
また、詳しくは後述するが、無人搬送車1の自動走行時には、自動走行により走行する走行STが、その無人搬送車1により全て占有される。S30〜S33の処理を行うことで、自動走行時の無人搬送車1が占有するSTに、その無人搬送車1が到着すると、到着したSTに該当するST状態メモリ83a2が「占有」から「在」に変更される。さらに、到着以前に位置していたSTに該当するST状態メモリ83a2が「在」から「空き」に変更される。即ち、無人搬送車1の自動走行時には、S30〜S33の処理によって通過した走行STを順次「空き」状態にできる。これにより、無人搬送車1を自動走行させるための動作コマンド列に、通過した走行STを順次「空き」状態にするための動作コマンドが不要になる。
S30,S33の処理の後、自動走行させる無人搬送車1が自動走行可能か否かを判断し、自動走行可能ならば自動走行させる移動指令を無人搬送車1に送信するための処理であるS34〜S40の処理を実行する。まず、自動走行情報が入力されたかを確認する(S34)。自動走行情報は、自動走行させる無人搬送車1の搬送車IDと、その搬送車IDの無人搬送車1の目的STとを有する。
自動走行情報は、上位プロコン70のLCD86の表示をプロコンオペレータが見ながら、入力装置87を用いて上位制御装置80へ入力される。LCD86に表示される初期画面である図10(a)の表示画面90の中央には、ST状態表示エリア91が表示される。ST状態表示エリア91には、走行経路R全体と、走行経路Rの各STの状態とが表示される。なお、各STは、縦長の長方形の左上外側部分に、ST名の数字部分が表示される。例えば、「ST1」は、縦長の長方形と、その長方形の左上にST名の数字部分である「1」とが表示される。
各STの状態の表示としては、「1号」が無人搬送車A1の現在STであり、「2号」が無人搬送車A2の現在STであり、「×」が無人搬送車1の走行が禁止されている走行禁止STである。
図10(a)の表示画面90の自動指令入力キー94を選択し、自動指令入力キー94の選択により表示移行された図10(b)の表示画面90の移動指令入力キー96を選択することで、自動走行情報を入力するための図11(a)〜図11(c)の表示画面90へ移行する。
なお、荷積指令入力キー97、搬送指令入力キー98、荷卸指令入力キー99を選択した場合も自動走行情報を入力するための画面へ移行する。荷積指令入力キー97、搬送指令入力キー98、荷卸指令入力キー99を選択した場合の画面には、移動指令入力キー96を選択した場合の画面である図11(a)〜図11(c)の表示画面90に対して、荷積または荷卸する積載物(パレット)を選択する画面が増える。
移動指令入力キー96を選択して表示移行された図11(a)の表示画面90には、移動指令の送信先である無人搬送車1を選択するための1号車キー103及び2号車キー104キーが表示される。1号車キー103は無人搬送車A1に対応し、2号車キー104は無人搬送車A2にそれぞれ対応する。なお、走行経路R内に2台の無人搬送車1が存在する場合に限らず、3台以上の無人搬送車1が存在する場合には、3台目以降の無人搬送車1を選択するためのキーが増える。
例えば、1号車キー103を選択すると、無人搬送車A1の目的STを選択するための図11(b)の表示画面90に表示移行する。図11(b)の表示画面90には、図10(a)と同一のST状態表示エリア91が中央に表示される。
ST状態表示エリア91の上部には、図11(a)の表示画面90で選択した無人搬送車A1の種別が表示される領域である指令先表示エリア106と、無人搬送車A1の現在STが表示される領域である現在ST表示エリア107とを有する。
図11(b)の表示画面90で無人搬送車A1の目的STを選択すると、ST状態表示エリア91の下部の目的ST表示エリア108に選択した目的STが表示される。目的STを選択した状態で実行キー110を選択すると、図11(c)の表示画面90に表示移行する
例えば、図11(b)の表示画面90で無人搬送車A1の目的STとして、「ST3」を選択して、表示移行した図11(c)の表示画面90で実行キー113を選択すると、指令先表示エリア111に表示される無人搬送車A1を、目的ST表示エリア112に表示される目的STである「ST3」へ自動走行させるという自動走行情報が上位制御装置80へ入力される。
なお、自動走行情報は、上位プロコン70のLCD86の表示に基づいて入力装置87から上位制御装置80へ入力される場合に限らず、無人搬送車1の第1LCD4aの表示に基づいて第1入力装置4bで入力されたものが無線通信装置57,88を介して上位制御装置80へ入力される場合がある。
図8に戻り、自動走行情報が入力された場合(S34:Yes)、入力された自動走行情報から搬送車IDを処理IDメモリ83bに記憶し、目的STを目的STメモリ83cに記憶する(S35)。次いで、無人搬送車1の走行STを判断して記憶するために、処理IDメモリ83bの値に該当するSTのうち、ST状態メモリ83a2が「在」であるSTをST状態テーブル83aから読み出し、その読み出したST(現在ST)と、目的STメモリ83cの値とに基づいてルートテーブル82aから走行STを取得する(S36)。
次いで、取得した走行STに該当するST状態テーブル83aのST状態メモリ83a2が全て「空き」であるかを確認する(S37)。走行STに該当するST状態メモリ83a2が全て「空き」である場合には(S37:Yes)、走行STに他の無人搬送車1の「在」や「占有」がないので、走行STに該当するST状態メモリ83a2に「占有」を記憶し、搬送車IDメモリ83a3に処理IDメモリ83bの値を記憶する(S38)。次いで、処理IDメモリ83bに該当する無人搬送車1へ移動指令を送信する(S39)。
例えば、図10(a)の表示画面90の状態で、「ST6」に位置する無人搬送車A1を「ST3」へ移動させる自動走行情報を入力した場合、無人搬送車A1の走行STは「ST6→ST7→ST8→ST3」であり、全て空きなので、「ST7」、「ST8」、「ST3」が無人搬送車A1の「占有」となる。詳しくは後述するが、表示画面90を更新するためのS52の処理後には、図11(d)に示す通り、無人搬送車A1の占有表示である「1+」が、無人搬送車A1の走行STである「ST7」、「ST8」、「ST3」に表示される。
一方、S37の処理において、走行STに該当するST状態メモリ83a2が1つでも「空き」でない場合には(S37:No)、「自動走行不可」をLCD86に表示し(S40)、移動指令は送信しない。これにより、無人搬送車1は自動走行できない。
例えば、図10(a)の表示画面90の状態で、「ST6」に位置する無人搬送車A1を「ST11」へ移動させる自動走行情報を入力した場合には、無人搬送車A1の走行STである「ST10」が無人搬送車A2の「在」であり、「ST11」が走行禁止STなので、「自動走行不可」をLCD86の表示画面90の中央に表示し、移動指令は送信しない。
また、S34の処理で、自動走行情報が入力されていない場合には(S34:No)、自動走行させるための指示は未入力なので、S35〜S40の処理をスキップする。
このように、S34〜S40の処理は、自動走行させる無人搬送車1が自動走行可能か否かを判断し、自動走行可能ならば自動走行させる移動指令を無人搬送車1に送信する処理である。S34〜S40の処理は、無人搬送車1が自動走行で走行するSTが全て「空き」である場合、即ち、走行STへの無人搬送車1の進入が許可されている場合に、自動走行させる無人搬送車1に走行STの全てを占有させ、無人搬送車1の自動走行を開始させる。目的STが確定している無人搬送車1の自動走行時には、その無人搬送車1に走行STの全てを占有させた上で、自動走行させることにより、その無人搬送車1と他の無人搬送車1との接触を確実に防止できる。
図9に示す通り、S34,S39,S40の後は、無人搬送車1が手動走行可能か否かを判断する処理であるS41〜S47の処理を実行する。まず、無人搬送車1から走行操作信号を受信したかを確認する(S41)。なお、走行操作信号は、走行操作信号を送信した無人搬送車1の搬送車IDと、その無人搬送車1の進行方向とを有する。無人搬送車1から走行操作信号を受信した場合には(S41:Yes)、受信した走行操作信号から搬送車IDを処理IDメモリ83bに記憶し(S42)、受信した走行操作信号から進行方向を進行方向メモリ83dに記憶する(S43)。
次いで、無人搬送車1の隣接STを判断して記憶するために、処理IDメモリ83bに該当するSTのうち、ST状態メモリ83a2が「在」であるSTをST状態テーブル83aから読み出し、その読み出したSTと、進行方向メモリ83dの値とから隣接STテーブル82bに基づいて隣接STを読み出し、その隣接STを隣接STメモリ83eに記憶する(S44)。次いで、ST状態テーブル83aにおいて、隣接STメモリ83eの値に該当するSTのST状態メモリ83a2が「空き」であるかを確認する(S45)。
隣接STメモリ83eの値に該当するST状態メモリ83a2が「空き」である場合には(S45:Yes)、走行操作信号を受信した無人搬送車1の現在STに隣接するSTのうち、進行方向に位置するST(隣接ST)が、他の無人搬送車1の「在」や「占有」ではなく、「進入禁止」されているSTでもないので、隣接STメモリ83eの値に該当するST状態メモリ83a2に「占有」を記憶し、搬送車IDメモリ83a3に処理IDメモリ83bの値を記憶する(S46)。そして、走行操作信号を受信した無人搬送車1の移動を許可するために、処理IDメモリ83bの値に該当する無人搬送車1へ移動許可信号を送信する(S47)。
例えば、図11(d)の表示画面90の状態で、「ST10」に位置する無人搬送車A2から進行方向が西(紙面下方)であるという走行操作信号を上位プロコン70が受信したとする。隣接STテーブル82bに基づくと、「ST10」の西に隣接する隣接STが「ST4」であり、「ST4」が「空き」なので、「ST4」が無人搬送車A2の「占有」となり、上位プロコン70から無人搬送車A2へ移動許可信号を送信する。さらに、表示画面90を更新するためのS52の処理後には、図12に示す通り、無人搬送車A2の占有表示である「2+」が、無人搬送車A2の隣接STである「ST4」に表示される。
一方、S45の処理で、隣接STメモリ83eの値に該当するST状態メモリ83a2が「空き」でない場合には(S45:No)、走行操作信号を受信した無人搬送車1の進行方向に位置するST(隣接ST)が他の無人搬送車1の「在」や「占有」であって、無人搬送車1同士が接触や衝突するおそれがあるので、又は、隣接STが「進入禁止」されているSTであるので、処理IDメモリ83bの値に該当する無人搬送車1へ移動不可信号を送信する(S48)。
このように、S41〜S48の処理は、無人搬送車1を手動走行開始させるときや、無人搬送車1の手動走行中に送信される走行操作信号を上位制御装置80が受信したときに、その無人搬送車1が手動走行可能か否かを判断する処理である。S41〜S48の処理は、無人搬送車1の現在STの進行方向に隣接する隣接STが「空き」である場合、走行操作信号を受信した無人搬送車1に隣接STを占有させて、無人搬送車1に手動走行可能であることを通知する。
一方、他の無人搬送車1が隣接STに位置したり、他の無人搬送車1が隣接STを占有したり、隣接STへの進入が禁止されたりしている場合、S41〜S48の処理は、走行操作信号を受信した無人搬送車1に手動走行不可能であることを通知する。これらの結果、目的STが不確定であって進行方向が常時変更され得る無人搬送車1の手動走行時には、最小限のSTの占有を行って他の無人搬送車1の移動を妨げないようにしつつ、手動走行する無人搬送車1と他の無人搬送車1との接触を防止できる。
図9のS41の処理において、無人搬送車1から走行操作信号を受信していない場合には(S41:No)、無人搬送車1が停止したときに、停止した無人搬送車1が「占有」するSTを解除するための処理であるS49〜S51の処理が実行される。まず、無人搬送車1から停止信号を受信したかを確認する(S49)。停止信号は、停止信号を送信した無人搬送車1の搬送車IDと、その無人搬送車1が停止完了したことを通知する情報とを有する。無人搬送車1から停止信号を受信した場合には(S49:Yes)、停止信号から無人搬送車1の搬送車IDを処理IDメモリ83bに記憶する(S50)。
次いで、停止信号を受信した無人搬送車1が占有するSTを他の無人搬送車1に開放するために、ST状態テーブル83aを参照し、処理IDメモリ83bの値と、搬送車IDメモリ83a3の値とが一致し、且つ、ST状態メモリ83a2が「占有」の場合に、搬送車IDメモリ83a3に「無」を、ST状態メモリ83a2に「空き」をそれぞれ記憶する(S51)。
一方、S49の処理において、無人搬送車1から停止信号を受信していない場合には(S49:No)、無人搬送車1が移動中なので、その無人搬送車1が「占有」するSTを解除するためのS50〜S51の処理をスキップする。
S47,S48,S49,S51の処理の後、ST状態テーブル83aの値に応じてLCD86の表示を更新し(S52)、本処理を終了する。
このように、S49〜S51の処理は、無人搬送車1が停止したときに、停止した無人搬送車1の占有を解除するための処理である。無人搬送車1が停止したときに無人搬送車1から送信される停止信号を上位制御装置80が受信すると、受信した搬送車IDの無人搬送車1が受信以前に占有していたSTを「空き」状態とする。これにより、停止信号を受信した無人搬送車1が占有するSTが、他の無人搬送車1に開放されるので、同一の走行経路R内で自動走行する無人搬送車1と手動走行する無人搬送車1とが複数存在する環境下において、他の無人搬送車1の移動の自由度を大きくできる。
特に、目的STが不確定な無人搬送車1の手動走行時には、現在STの進行方向に隣接する隣接STを占有したとしても、隣接STまで無人搬送車1を手動走行させるとは限らない。例えば、現在ST内で僅かに無人搬送車1を移動させる場合が考えられる。このような場合、無人搬送車1の停止後に、その無人搬送車1が占有するSTを他の無人搬送車1に開放することで、他の無人搬送車1の移動の自由度を大きくできる。
また、自動走行時の無人搬送車1が予期せぬトラブルで停止したときにも、停止信号を上位プロコン70へ送信する構成とすることで、自動走行時の無人搬送車1の走行STの占有を「空き」状態にでき、他の無人搬送車1の移動の自由度を大きくできる。
ここで、図6から図9のフローチャートにおいて、特許請求の範囲の搬送車位置更新ステップとしてはS32,S33の処理が、目的ST指定ステップとしてはS35の処理が、特許請求の範囲のルート取得ステップとしてはS36の処理が、移動指示ステップとしてはS38,S39の処理が、移動禁止ステップとしてはS40の処理が、移動要求受信ステップとしてはS42,S43の処理が、占有情報更新ステップとしてはS46の処理が、移動禁止指示送信ステップとしてはS48の処理が、停止信号受信ステップとしてはS50の処理が、搬送車停止更新ステップとしてはS51の処理が、表示ステップとしてはS52の処理がそれぞれ該当する。
以上の通り本実施形態の搬送車の走行管理プログラム82xによれば、無人搬送車1の自動走行では、自動走行させる無人搬送車1の目的STとなるSTを指定し、無人搬送車1の現在STから目的STまでの走行STが、他の無人搬送車1の「在」または「占有」でなく、「走行禁止」されているSTでもなければ、走行STを全て自動走行させる無人搬送車1の「占有」とした上で移動指示が行われる。
一方、無人搬送車1の手動走行では、手動走行される無人搬送車1から進行方向を受信し、その進行方向の最初のST(隣接ST)が、他の無人搬送車1の「在」または「占有」でなく、「走行禁止」されているSTでもなければ、進行方向を受信した無人搬送車1の「占有」とし、隣接STへの他の無人搬送車1の進入を禁止した上で、進行方向を受信した無人搬送車1に移動許可を与える。よって、移動先となるSTを、移動する無人搬送車1の「占有」とした上で、無人搬送車1を移動させるので、無人搬送車1同士の接触や衝突を回避しつつ、同一走行経路R内に自動走行する無人搬送車1と手動走行する無人搬送車1とを混在させて走行させることができる。
さらに、手動走行時に占有するSTは、進行方向にある最初の1のSTである。手動走行時の移動方向は常時変更され得るので、かかる手動走行における占有するSTを1STとすることにより、他の無人搬送車1の移動の自由度を大きくできる。
また、表示画面90のST状態表示エリア91にはST毎に「在」や「占有」などのST状態と、「在」に位置する無人搬送車1や「占有」する無人搬送車1とが識別可能に表示されるので、各無人搬送車1の走行管理を視覚化して行うことができる。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
上記実施形態では、搬送車の例として、無人搬送車1を用いて説明したが、必ずしもこれに限られるものではなく、例えば、本発明を、ユニットキャリアなどに適用しても良い。即ち、本発明は、ペンダントスイッチ6により走行操作を行う搬送車または無線により走行操作を行う搬送車等、いずれの搬送車に対しても適用することができる。
上記実施形態では、ペンダントスイッチ6を操作して無人搬送車1を手動走行させるとき、上位プロコン70から移動許可信号を受信した後に無人搬送車1を手動走行させる場合について説明したが、必ずしもこれに限られるものではない。ペンダントスイッチ6を操作したら、上位プロコン70からの信号の受信の有無に係わらず、無人搬送車1を手動走行させ、無人搬送車1の走行中に上位プロコン70から移動不可信号を受信した場合に無人搬送車1を停止させる構成としても良い。この場合、移動許可フラグ53bが不要となり、図7のS19〜S21,S26の処理を不要にできる。また、上位プロコン70からの信号の受信を待たずに無人搬送車1を手動走行させるので、ペンダントスイッチ6の操作に対して無人搬送車1の動き出しを早くできる、即ち、ペンダントスイッチ6の操作に対する応答性を向上できる。
なお、上述した場合には、上位プロコン70からの信号の受信を待たずに無人搬送車1を手動走行させるので、上位プロコン70から移動不可信号を受信して無人搬送車1が停止した後、無人搬送車1が同一方向に再び手動走行しないように構成することが好ましい。この場合、例えば、移動不可信号を受信したときにオンにされ、ペンダントスイッチ6の操作により進行方向が変わったときや、進行方向に隣接するSTが「空き」になったことを上位プロコン70から無人搬送車1が受信したときにオフにされる移動不可フラグを無人搬送車1のRAM53に設け、移動不可フラグがオンのときには無人搬送車1を手動走行できないように構成すれば良い。
上記実施形態では、ST内に無人搬送車1が位置するときのみ、無人搬送車1の現在STを周期的に上位プロコン70へ送信する場合について説明したが、必ずしもこれに限られるものではない。無人搬送車1が走行中などでST外に位置する場合にも、現在STメモリ53cの値(自車の現在ST)を上位プロコン70へ周期的に送信するように構成しても良い。さらに、動作ボタン6dの押下中には、周期的に送信される現在STメモリ53cの値に加えて、自車の進行方向を送信するように構成しても良い。これにより、上位プロコン70は、無人搬送車1から走行操作信号である現在STと進行方向とを受信しているときには、受信した無人搬送車1が走行中であると判断でき、無人搬送車1から進行方向を受信せずに現在STを受信しているときには、受信した無人搬送車1が停止中であると判断できる。従って、このように構成すれば、無人搬送車1の停止後に上位プロコン70へ停止信号を送信する図7のS27の処理を不要にできる。
なお、この場合、動作ボタン6dの押下をやめて(S15:No)、無人搬送車1を停止させたときには、上位プロコン70へ停止信号を送信する必要はないが、無人搬送車1が移動不可信号を受信して(S18:Yes)、無人搬送車1を停止させたときには、上位プロコン70へ異常停止信号を送信することが好ましい。その異常停止信号に基づいて、移動不可信号を受信して停止した無人搬送車1を上位プロコン70のLCD86の表示画面90に表示することで、その表示を見たプロコンオペレータが、移動不可信号を受信して停止した無人搬送車1の操作者Hに、無人搬送車1が停止した理由や、停止した無人搬送車1が移動可能になったことを伝達できる。
上記実施形態では、手動走行される無人搬送車1から、走行操作信号として、その無人搬送車1の搬送車IDと進行方向とを上位プロコン70が受信し、上位プロコン70で、無人搬送車1の隣接STを判断する場合について説明した。しかし、必ずしもこれに限られるものではなく、手動走行する無人搬送車1から、進行方向に代えて隣接するSTを、上位プロコン70へ送信するように構成しても良い。この場合、無人搬送車1のフラッシュメモリ52に隣接STテーブル82bを格納することで、無人搬送車1の現在STに隣接するSTのうち、進行方向として要求された1のST(隣接ST)を無人搬送車1で判断し、その隣接STを走行操作信号として上位プロコン70へ送信する。かかる構成によれば、手動走行時に占有するSTは、進行方向にある最初の1のSTである。手動走行時の移動方向は常時変更され得るので、かかる手動走行における占有するSTを1STとすることにより、他の無人搬送車1の移動の自由度を大きくできる。
上記実施形態では、手動走行される無人搬送車1から走行操作信号を上位プロコンが受信したとき、その無人搬送車1の進行方向に位置する1のSTが占有可能であれば占有する場合について説明したが、必ずしもこれに限られるものではない。ST同士が非常に近く、両STを隔てる壁や柱がない場合がある。この場合、両STにそれぞれ存在する無人搬送車1が走行すると、両無人搬送車1が接触するおそれがある。
そこで、ST同士が非常に近い場合を大STと定義する。ST状態テーブル83aに大STメモリを追加し、大STとなるSTには、同じ識別番号を記憶させ、ST同士が十分に離れている場合には異なる識別番号を記憶させる。例えば、「ST6」と「ST7」とが近い場合には、「ST6」及び「ST7」に該当する大STメモリに「1」を、「ST8」と周囲のSTと十分に離れている場合には、「ST8」に該当する大STメモリにのみ「2」を記憶させる。
S45の処理において、隣接STメモリ84eの値に該当するSTと、そのSTと大STメモリの値が一致するSTとが「空き」であるかを確認する。それらのSTが「空き」である場合には、S46の処理において、隣接STメモリ84eの値に該当するSTと、そのSTと大STメモリの値が一致するSTとを「占有」にする。これにより、非常に近いST同士にそれぞれ無人搬送車1が存在する場合でも、両無人搬送車1が接触することを防止できる。自動走行させる無人搬送車1にSTを占有させる場合も、同様にして、自動走行させる無人搬送車1にSTを大ST毎に占有させることができる。
上記実施形態では、上位プロコン70から自動走行情報として、搬送車IDと、目的STとを無人搬送車1が受信し、無人搬送車1で動作コマンド列を生成する場合について説明したが、必ずしもこれに限られるものではない。上位プロコン70のHDD82に動作情報リンクテーブル52a及び動作コマンドテーブル52bを格納し、上位プロコン70で入力された目的STと、動作情報リンクテーブル52a及び動作コマンドテーブル52bとに基づいて動作コマンド列を生成してから、その動作コマンド列を無人搬送車1へ送信する構成でも良い。