以下の説明では、「インターフェースデバイス部」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちのいずれでもよい。
・I/O(Input/Output)デバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するI/Oインターフェースデバイス。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ部」は、一つ以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも一つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「PDEV部」は、一つ以上のPDEVであり、典型的には補助記憶デバイスでよい。「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶部」は、メモリ部とPDEV部の少なくともメモリ部でよい。
また、以下の説明では、「演算部」は、一つ以上のプロセッサである。少なくとも一つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも一つのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、演算部によって実行されることで、定められた処理を、適宜に記憶部及び/又はインターフェース部等を用いながら行うため、処理の主語が、演算部(或いは、その演算部を有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「kkk部」(インターフェース部、記憶部及び演算部を除く)の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラム(後述の制御プログラム及び情報プログラムを除く)が演算部によって実行されることで実現されてもよいし、一つ以上のハードウェア回路によって実現されてもよい。プログラムが演算部によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶部及び/又はインターフェース部等を用いながら行われるため、機能は演算部の少なくとも一部とされてもよい。機能を主語として説明された処理は、演算部あるいはその演算部を有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、スケジューリング装置における計算機が「表示用情報を表示する」ことは、当該計算機が有する表示デバイスに表示用情報を表示することであってもよいし、当該計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。なお、スケジューリング装置は、クラウド環境のような計算機リソースプール(例えば、インターフェースデバイス部、記憶部及び演算部)に基づき提供される仮想的な装置、又は、ソフトウェアディファインドの装置でもよい。
また、以下の説明では、「製品」とは、一般に、製造された品物、すなわち、いわゆる完成品を意味するが、以下の説明において、「製品」とは、生産ラインに投入される品物全般を意味する。従って、以下の説明において、「製品」とは、生産ラインに投入される前の品物も、生産ライン途中にある品物(いわゆる「半製品」)も、生産ラインにおける全ての工程を経て出荷可能な状態となった完成品のいずれでもよい。
また、以下の説明では、「作業」とは、ロット(一つ以上の製品)についての一つの工程の少なくとも一部(例えば、一つの工程が複数のサブ工程から構成されている場合は、少なくとも一つのサブ工程)を意味する。
また、以下の説明では、「ステップ」とは、作業において行われる処理単位である。作業の形式が人の場合、ステップは、人(例えば作業員)によって行われ、作業の形式が設備の場合、ステップは、プログラム(例えば制御プログラム)によって行われる。
また、以下の説明では、「生産ライン」は、複数の工程に関わる複数の工程ラインから構成されている生産システムを意味するが、生産システムとしては、ライン生産システムやジョブショップ生産システムといった任意の生産システムが採用されてよい。
また、以下の説明では、「設備」は、生産ラインに設けられ作業を行う機器等(例えば、成型機、切断機)である。設備は、生産設備と呼ばれてもよい。
以下、本発明の一実施形態に係る生産管理装置が適用されたスケジューリング装置を説明する。
図1は、スケジューリング装置の全体構成を示す図である。
図示するように、スケジューリング装置10は、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産する生産システム4での生産に関するスケジューリングを行う装置である。スケジューリング装置10は、作業遅延が検出された場合に、当該作業遅延の遅延種類を推定し、推定された遅延種類に基づき、作業計画テーブル80の生成の基になるテーブルである再計画テーブル130を生成する。スケジューリング装置10が、再計画テーブル130を基に作業計画テーブル80を更新する。
スケジューリング装置10は、インターフェースデバイス部3と、記憶部1と、それらに接続された演算部2とを備える。
インターフェースデバイス部3は、例えばネットワーク群(一つ以上のネットワーク)を通じて、生産システム4が有する一つ以上の機器(例えば、一種類以上のセンサを含む一つ以上のセンサ、生産システム4に設けられた一つ以上の設備、及び、生産予定を管理する装置である生産管理装置、のうちの少なくとも一つ)と通信する。生産システム4は、例えば、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産するためのシステムである。
記憶部1は、プログラム群(一つ以上のプログラム)とテーブル群(一つ以上のテーブルであり管理情報の一例)とを記憶する。プログラム群は、例えば、後述の一つ以上の制御プログラムと一つ以上の情報プログラムとを含んでよい。テーブル群は、例えば、作業計画テーブル80と、器具位置テーブル90と、設備制御テーブル100と、遅延閾値テーブル110と、遅延種類テーブル120と、再計画テーブル130と、作業遅延テーブル140と、納期遅延テーブル160とを含む。
演算部2は、上述のプログラム群を実行することにより、例えば、作業遅延検出部20と、遅延種類判別部30と、影響推定部35とを実現する。影響推定部35は、再計画生成部40と、再計画部50と、納期遅延判定部60とを含む。作業遅延検出部20は、作業遅延を検出する。遅延種類判別部30は、検出された作業遅延の種類を判別する。影響推定部35は、作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。具体的には、例えば、再計画生成部40が、再計画テーブル130を生成し、再計画部50が、再計画テーブル130を基に作業計画テーブル80を更新し、納期遅延判定部60が、納期の遅延の有無を判定する。
演算部2は、上述のプログラム群を実行することにより、例えば、情報I/O部61とシステム制御部62とを実現してもよい。情報I/O部61は、例えば、生産システム4から情報を取得したり、各作業について当該作業の開始及び終了を含む作業実績を監視したりしてよい。システム制御部62は、スケジューリング装置10の管理対象の作業のための設備であり生産システム4における設備を制御してよい。
作業実績の検出において、情報I/O部61は、例えば、各工程での作業の監視に関わる一つ以上のインターフェースであるインターフェース群から情報を受け付けること、及び、当該受け付けた情報から特定される作業実績を示す一つ以上の実績データセットを記憶部1に格納することの少なくとも一つを行ってよい。
「インターフェース群」は、一種類以上のセンサを含む一つ以上のセンサを含んでもよいし、API(Application Programming Interface)のようなインターフェースを含んでもよい。情報I/O部61は、インターフェース群から情報を定期的又は不定期的に受け付けてよい。例えば、下記のうちの少なくとも一つが行われてよい。情報I/O部61は、各作業について、インターフェース群経由で作業実績を監視し、特定された作業実績を示す情報を記憶部1に蓄積してよい。
・生産システム4及びその周辺といった作業エリアを撮影するカメラ(センサの一例)からの画像データを基に、当該作業エリアに存在する作業員の数及び位置といった作業実績の一例を特定する。
・各作業員が所持する一つ以上のセンサからのデータを基に、各作業員の位置(例えば、完了品置き場のような所定場所との位置関係)及び動きといった作業実績の一例を特定する。
・各製品や各器具に取り付けられた一つ以上のセンサからのデータを基に、各製品や各器具の位置といった作業実績の一例を特定する。
・制御プログラムのインターフェース経由で受け付けたデータ(例えば、制御プログラムの記述から特定されるステップの数のうち実行の完了したステップの数)を基に、作業進捗率といった作業実績の一例を特定する。
・各作業員が所持する一つ以上のセンサ、及び、生産システム4及びその周辺といった所定エリアを撮影するカメラ(センサの一例)のうちの少なくとも一つからのデータを基に、作業に関わるステップの数のうち実行の完了したステップの数を特定し、作業に関わるステップの数と実行の完了したステップの数とに基づく作業進捗率といった作業実績の一例を特定する。
「実績データセット」は、例えば、下記のうちのいずれかでよい。工程名及びライン番号は、例えば、データの送信元のセンサのIDやカメラの撮影画像の領域等に工程名及びライン番号が紐付けられた情報と、インターフェース群からの情報とから、特定されてよい。作業計画テーブル80、器具位置テーブル90及び設備制御テーブル100の各々は、定期的に特定された実績の履歴でよい。
・器具位置テーブル90における一つのレコードのうちの欄91c~91fに記録された情報。
・設備制御テーブル100における一つのレコードのうちの欄101c~101gに記録された情報。
なお、「データセット」とは、アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。
スケジューリング装置10の機能を実装する場所として、例えば、制御装置(PLC:Programmable Logic Controller等)、産業用コンピュータ、製造実行システム(例えば生産システム4)、クラウド環境等がある。
制御装置にスケジューリング装置10としての機能が実装された場合、言い換えれば、スケジューリング装置10が制御装置を兼ねている場合、制御装置は堅牢性を持つため、作業現場に設置でき、作業現場に取り付けられたセンサの情報や、制御装置の制御下にある設備(例えば、工作機器や搬送機器等の情報)を、スケジューリング装置10は即時的に取得できる。また、制御装置は、設備を制御しているため、制御プログラムの実行状況もスケジューリング装置10から監視できる。
産業用コンピュータにスケジューリング装置10としての機能が実装された場合、産業用コンピュータは堅牢性を持つため、作業現場に設置でき、作業現場に取り付けられたセンサの情報を、スケジューリング装置10は即時的に取得できる。
製造実行システムにスケジューリング装置10としての機能が実装された場合、製造実行システムが持つ製造実行システム情報(作業予定のロットの台数や品種、作業完了時刻等)を、スケジューリング装置10は即時的に取得することができる。
クラウド環境にスケジューリング装置10としての機能が実装された場合、スケジューリング装置10は、クラウド環境の高い処理能力を利用することが出来る。また、クラウド環境であるため、他の拠点の工場のデータも即時的に取得でき、他の拠点の工場と連携することが期待できる。
図2以降を参照して本実施形態を詳細に説明する前に、スケジューリング装置10の一具体例を説明する。
スケジューリング装置10は、制御装置でよく、制御装置は、シーケンス制御装置、モーション制御装置又はプログラマブル・ロジック・コントローラ(PLC)とも呼ばれてよい。制御装置において、ラダー・ロジック(LD言語)、シーケンシャル・ファンクション・チャート(SFC言語)、ファンクション・ブロック(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)のような制御装置特有のプログラミング言語、あるいはC言語のような情報通信分野で使われる汎用的なプログラミング言語を用いて記述され、シーケンス制御やモーション制御に代表される制御処理を実行するプログラムを「制御プログラム」と呼ぶことができる。制御プログラムは、I/Oモジュール等を介して実際にモータ等を含む周辺機器を操作し、生産システム等を適切に動作させる必要がある。そのため、制御プログラムは、処理を設定された時間内に確実に実行すること(リアルタイム性)が求められる。
制御プログラムは、制御内容が記述された命令によって制御対象装置(例えば、装置部品のようなハードウェアモジュール、1以上のハードウェアモジュールを備えた装置、又は、複数の装置を備えたシステム)を制御する。例えば、「I/Oモジュール等を介して実際にモータ等を含む周辺機器を操作し、生産システムを適切に動作させる」といった制御では、「生産システム」、又は、「生産システムを構成する少なくとも一つの装置」が、「制御対象装置」である。制御対象装置は、典型的には、制御装置におけるI/O制御装置(インターフェース部の一例)経由で接続された装置である。制御対象装置は、制御プログラムから直接的に(例えば、制御装置に接続されたI/Oモジュールや周辺機器を介さずに)制御されてもよいし、制御プログラムから間接的に(例えば、制御装置に接続されたI/Oモジュールや周辺機器を介して)制御されてもよい。
制御対象装置を制御する言語は、ラダー言語等の制御特有のプログラミング言語に限らず、C言語等の汎用プログラミング言語で記述される場合もあるため、制御対象装置(典型的にはハードウェア)を制御するプログラムを「制御プログラム」と呼ぶ。
ラダー言語等で記述された制御プログラムは、当該ラダー言語等の記述において指定された制御対象装置の状態を読み込み又は書き込み(取得又は更新)をする「スキャン動作」を行う。
このスキャン動作は所定間隔で行う必要があり、この所定間隔を「スキャンタイム」と呼ぶ。スキャンタイムは、制御プログラムの演算時間に関するものであり、制御に関する演算周期又は制御に関する演算を繰り返し所定間隔で行うことから「サイクルタイム」とも呼ばれることもある。
制御装置に接続される制御対象装置は、例えば、工場内の生産や搬送等に用いられる設備に接続されるため、スキャン動作が遅れると、工場内の設備の動作が不安定になったり、予期しない動作が生じたりする場合がある。このため、所定のスキャンタイム内にスキャン動作を行う必要がある。
スキャンタイムは制御装置が制御する制御対象装置の数や種類の増加に応じて長くなるが、スキャンタイム内で制御対象装置のスキャン動作をすることが重要である。
制御装置に、I/Oポートが内蔵又は接続される。I/Oポートは、I/Oモジュール又はI/Oユニット等が有する場合がある。以下、I/Oポートそれ自体、又は、I/Oポートを有する装置(I/Oモジュール又はI/Oユニット等)を、「I/Oポート」と総称する場合がある。
I/Oポートは、制御対象装置に接続され、制御対象装置の動作に関する制御に使用されるものである。I/Oポートは、デジタル又はアナログのI/Oポートである。例えば、アナログI/Oポートは、制御装置の制御対象装置の電圧、電流、温度等の情報の読み書きに使用される。
制御プログラムに基づいて制御装置のI/Oポートから送信される制御情報を有線又は無線で受信するインバータユニットやCNC(Computerized Numerical Control)はインバータやCNC自体がアクチュエータのモーション制御を行うため、リアルタイム性が求められる。
また、制御対象装置の制御とは、制御対象装置が接続されている状態のI/Oポートの動作を制御することをいう。つまり、制御プログラムとは、制御対象装置が接続されたI/Oポートの制御を行うプログラム、言い換えれば、制御対象装置が接続されたI/Oポートに当該制御対象装置の制御情報を出力する(具体的には、例えば、当該制御情報の出力を含むスキャン動作を行う)プログラムである。
このような制御装置において、制御対象装置の制御に加えて、情報処理(例えば、複雑な算術演算やSCADA、MES、クラウドシステムとの情報の送受信のような情報通信処理)を行うことを検討する。このような情報処理は、上述の制御特有の言語でプログラミングすることが困難な場合があり、C言語又はJava(登録商標)言語などの情報処理分野で使われるプログラミング言語を用いて記述することがある。このような情報処理を実行するプログラムを「情報プログラム」と呼ぶ。
制御プログラムと情報プログラムの違いの一例について説明する。
上記したように制御プログラムは、制御装置のI/Oポートの制御に関係したプログラムであり、情報プログラムは、情報処理(例えば、上述のように、算術演算や、クラウドとの通信)を行うプログラムである。
制御プログラムは、ラダーやST言語等で記述され、java(登録商標)やpython等に代表される汎用言語に比べてリアルタイム性が高い。情報プログラムは、java(登録商標)やpython等に代表される言語で記述され、ラダー等よりも情報処理に適している。一つ以上の制御プログラムが実行されることで、例えば、設備制御部45が実現される。
C言語等のリアルタイム性が高く、ハードウェアの制御にも適しており、また、情報処理にも適した言語は制御プログラムと情報プログラムのいずれにも利用可能な場合がある。
また、情報プログラムは、先に説明した制御プログラム以外のプログラムである。制御対象装置がI/Oポートを介して制御装置に接続されるが、情報プログラムは、制御対象装置に接続されるアナログやデジタルのI/Oポート(但し、情報プログラムとの共有が許容されているI/Oポートを除く)へアクセスしないプログラムである。別の言い方をすれば、制御プログラムは、制御対象装置に接続されるアナログやデジタルのI/Oポートに制御対象装置の制御情報を送信することを含むスキャン動作を行うプログラムであるが。一方、情報プログラムは、スキャン動作を含まない(スキャン動作とは異なる)情報処理を行うプログラム(つまり、スキャン動作を行うことがないプログラム)である。一つ以上の情報プログラムが実行されることで、例えば、作業遅延検出部20、遅延種類判別部30、影響推定部35(再計画生成部40、再計画部50及び納期遅延判定部60)、及び情報I/O部61が実現される。
制御対象装置の制御に必要な情報(例えば、センサによる測定値)を取得するための通信を制御プログラムによる制御の一部とすること(すなわち、通信について制御プログラムに記述されていること)が考えられるが、通信のような情報処理は制御プログラムによる制御とは分離しておくことが望ましいと考えられる。そのように考えられる一つの理由は、制御装置の制御対象装置は、一般に、工作機械、自動組み立て装置又は自動搬送装置のような設備であるため、高い安定性、つまりリアルタイム性が求められるためである。
そこで、制御プログラムに加えて、通信のような情報処理について記述されたプログラムである情報プログラムを用意しておくことが考えられる。リアルタイム性を維持するために制御プログラムを優先するべく、情報プログラムをコントロール装置とは別の装置で実行することが考えられるが、資源節約の観点から、制御プログラムと情報プログラムの両方を制御装置のような同一プラットフォーム上で実行することが考えられる。制御プログラムと情報プログラムが共存する制御装置は、制御プログラムの他に情報プログラムを実行しても、制御プログラムを停止させることなく、又は、制御プログラムのスキャン動作を遅らせたり、制御プログラムの予期しない動作をさせたりすることなく、情報プログラムの追加、削除、更新(書き換え)又は入れ替えといったプログラム変更を行うことを実現することが期待できる。
図2は、スケジューリング処理の流れを示すフローチャートである。以下、図2のフローチャートを参照しながら、スケジューリング装置10における処理の流れについて、説明する。
<作業遅延検出>
まず、例えば情報I/O部61により作業の開始が検出されると(例えば、或る製品が工程ラインにおける或る位置を通過したことが検出されると)、スケジューリング処理が開始する。以下、開始が検出された作業を、便宜上、「対象作業」と言う。
作業遅延検出部20が、対象作業中のロットの遅延状況を監視し、作業遅延があれば作業遅延を検出する(S100)。
本説明では、予定の作業時間に対する、作業開始時刻から現在時刻までの経過時間の比率を、「予定進捗率」と呼ぶ。予定進捗率は、例えば下記式に従い算出される。
予定進捗率=(現在時刻-作業開始時刻)/(予定作業時間)…(式1)
なお、「作業開始時刻」は、対象作業の開始が検出された時刻でよい。「予定作業時間」は、作業計画テーブル80(図4参照)の欄81hから取得された情報でよい。本実施形態における「ステップ」は、上述したように、作業員のような人が行う作業に関わるステップでもよいし、設備を制御する制御プログラムが実行するステップでもよい。後者の「ステップ」の数を示す情報は、制御プログラムのインターフェース経由で取得されてもよい。
本説明では、対象作業の作業ステップ数(例えば、作業枚数や、複数作業から成り立つ作業の場合は何種の作業から成り立つかをステップ数とする)に対する完了作業ステップ数(実際に完了した作業ステップ数)の比率を「作業進捗率」と呼ぶ。作業進捗率は、例えば下記式に従い算出される。
作業進捗率=完了作業ステップ数/作業ステップ数…(式2)
なお、作業進捗率は、対象作業に対応したロットサイズに対する完了作業台数(実際に完了した製品の数)の比率、すなわち、作業進捗率=完了作業台数/ロットサイズ…(式2´)でもよい。(式2´)は、ロットサイズが複数の場合(ロットサイズとしての値が“1”より大きい場合)に使用されてよく、(式2)は、ロットサイズが単品の場合(ロットサイズとしての値が“1”の場合)に使用されてよい。ロットサイズ及び作業ステップ数のうち少なくともロットサイズは、対象作業に関する情報に含まれていてよい。完了作業台数及び完了ステップ数の各々が、実作業量の一例でよい。なお、ロットサイズとしての値が“1”より大きい場合、(式2´)と(式3)の両方が使用されてもよい。すなわち、ロットについて、(式2´)が使用されて、ロットに属する各製品について、(式2)が使用されてもよい。この場合、作業進捗率は、(式2´)と(式2)を用いてそれぞれ算出された複数の値の少なくとも一つに基づいてよい(例えば、平均値、最大値又は最小値)。
本説明における「作業遅延」は、予定進捗率より作業進捗率が低いことを意味する。予定作業時間の終了前でも、予定進捗率より作業進捗率が低い場合、作業遅延が発生していると判別される。
なお、作業進捗率を算出するための情報として、設備の制御プログラムの作業ステップ数や実行ループ数等が用いられてもよく、上述の説明は、作業進捗率を算出するための情報の種類を限定する説明ではない。また、本説明では、予定進捗率から作業進捗率を減算することにより得られた値を「遅延指数」と呼ぶ。従って、遅延指数は、例えば下記式に従い算出される。
遅延指数=予定進捗率-作業進捗率…(式3)
以上のように、作業計画テーブル80から取得された情報と、インターフェース群経由で検出された作業実績から特定される実作業量とに基づいて、予定進捗率及び作業進捗率が得られ、結果として、遅延指数が得られる。遅延指数が所定の閾値を超えていることの検出が、作業遅延の検出でよい。
図3は、S100の遅延検出処理の流れを示すフローチャートである。
まず、作業遅延検出部20は、インターフェースデバイス部3を経由し、製造実行システムあるいは作業計画情報が保存されている装置から作業計画情報(作業計画に関する情報)を参照し、作業計画テーブル80に事前に保存しているものとする。作業遅延検出部20は、作業計画テーブル80より対象作業に対応した作業計画データセット(品名、ロットサイズ、開始日時、作業ステップ数等)を取得する(S101)。
図4は、作業計画テーブル80の例を示した図である。
作業計画テーブル80は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄81bと、工程名欄81cと、ライン番号欄81dと、ロット番号欄81eと、品名欄81fと、開始時刻欄81gと、予定作業時間欄81hと、ロットサイズ欄81iと、作業形式欄81jと、作業ステップ数欄81kと、ST(Standard Time)欄81lと、納期欄81mとを有する。一つのレコードから取得される情報が、一つの作業計画データセットである。以下、一つの作業を例に取る(図4の説明において「注目作業」と言う)。
作業番号欄81bには、注目作業の番号(例えば、作業の通し番号)を示す情報が格納される。
工程名欄81cには、注目作業が実施される工程の工程名を示す情報が格納される。
ライン番号欄81dには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
ロット番号欄81eには、注目作業で扱われるロットのロット番号を示す情報が格納される。
品名欄81fには、注目作業で扱われるロットの品名を示す情報が格納される。
開始時刻欄81gには、注目作業の開始時刻を示す情報が格納される。
予定作業時間欄81hには、注目作業にかかる予定作業時間を示す情報が格納される。
ロットサイズ欄81iには、注目作業で扱われるロットに含まれる製造物の数量であるロットサイズを示す情報が格納される。
作業形式欄81jには、注目作業の作業形式を示す情報が格納される。
作業ステップ数欄81kには、注目作業の作業ステップ数を示す情報が格納される。
ST欄81lには、注目作業のSTを示す情報が格納される。
納期欄81mには、注目作業で扱われるロットの納期を示す情報が格納される。
再び図3を参照する。作業遅延検出部20は、注目作業に対応した実績データセットを基に、完了作業ステップ数を算出する(S102)。
S102の一例は、以下の通りである。
まず、作業遅延検出部20が、欄81jが示す作業形式に応じて、器具位置データセット設備制御データセットのいずれかを取得する。
例えば、作業形式“人”の場合、作業遅延検出部20が、対象作業に対応した作業計画データセットが示す工程名、ライン番号及び開始時刻の少なくとも一つに基づき、器具位置テーブル90から、対象作業に関し作業エリアの器具の位置(例えば、ワークを載せる治具の位置等)を示す器具位置データセットを取得する。器具位置データセットは、実施形態に合わせて、冶具の位置に代えて又は加えて部材の位置等を示してもよい。
図5は、器具位置テーブル90の例を示す図である。
器具位置テーブル90は、例えば、サブ実績毎にレコードを有し、各レコードは、例えば、記録番号欄91bと、工程名欄91cと、ライン番号欄91dと、作業器具位置欄91eと、検出時刻欄91fとを有する。以下、一つのサブ実績を例に取る(図5の説明において「注目サブ実績」と言う)。なお、「サブ実績」とは、例えば情報I/O部61により特定された作業実績に含まれる複数の実績の各々を意味する。ここでのサブ実績は、器具位置(の検出)である。一つのレコードから取得される情報が、一つの器具位置データセットである。
記録番号欄91bには、注目サブ実績を識別することのできる記録番号(例えば通し番号)を示す情報が格納される。
工程名欄91cには、注目サブ実績に属する工程の工程名を示す情報が格納される。
ライン番号欄91dには、注目サブ実績に属する工程ラインのライン番号を示す情報が格納される。
器具位置欄91eには、注目サブ実績として検出された器具位置を示す情報が格納される。
検出時刻欄91fには、注目サブ実績(器具位置)の検出された時刻を示す情報が格納される。
設備制御情報の場合、設備制御テーブル100を参照し、制御プログラムの実行状況を参照する。
図6は、設備制御テーブル100の例を示す図である。
設備制御テーブル100は、例えば、サブ実績毎にレコードを有し、各レコードが、例えば、記録番号欄101bと、工程名欄101cと、ライン番号欄101dと、取得時刻欄101eと、プログラム名欄101fと、完了制御ステップ数欄101gと、制御ステップ数欄101hとを有する。一つのレコードから取得される情報が、一つの設備制御データセットである。以下、一つのサブ実績を例に取る(図6の説明において「注目サブ実績」と言う)。
記録番号欄101bには、注目サブ実績を識別することのできる記録番号を示す情報が格納される。
工程名欄101cには、注目サブ実績に属する工程の工程名を示す情報が格納される。
ライン番号欄101dには、注目サブ実績に属する工程ラインのライン番号を示す情報が格納される。
取得時刻欄101eには、注目サブ実績が取得(検出)された時刻を示す情報が格納される。
プログラム名欄101fには、注目サブ実績に対応した制御プログラム(完了したステップに係る制御プログラム)のプログラム名を示す情報が格納される。
完了制御ステップ数欄101gには、注目サブ実績に対応した制御プログラムの完了した制御ステップの数を示す情報が格納される。
制御ステップ数欄101hには、注目サブ実績に対応した制御プログラムの制御ステップ数(総制御ステップ数)を示す情報が格納される。
再び図3を参照する。S102では、作業遅延検出部20が、対象作業に対応した実績データセット(器具位置データセットあるいは設備制御データセット)から完了作業ステップ数を算出する。実績データセットが器具位置データセットの場合、例えば、ライン内の器具または治具の位置が検知された回数を基に、完了作業ステップ数が算出される。実績データセットが設備制御データセットの場合、例えば、制御プログラムのループ回数を基に、完了作業ステップ数が算出される。
次に、作業遅延検出部20が、算出した完了作業ステップ数と、対象作業に対応した作業計画データセットが示す作業ステップ数とから、(式2)に従い作業進捗率を算出する(S103)。
次に、作業遅延検出部20が、対象作業に対応した作業計画データセットが示す開始時刻から現在時刻までの経過時間と、当該作業計画データセットが示す予定作業時間とから、(式1)に従い予定進捗率を算出し、当該予定進捗率とS103で算出された作業進捗率との差である作業遅延指数((式3)に従う遅延指数)を算出する(S104)。
次に、作業遅延検出部20が、S103で算出された作業進捗率から、対象作業が継続中か(作業進捗率が100%未満か)否かを判定する(S105)。S105の判定結果が偽の場合(S105でNo)、遅延検出処理が終了する。
S105の判定結果が真の場合(S105でYes)、作業遅延検出部20が、S104で算出された遅延指数から、遅延閾値テーブル110を基に、対象作業に遅延が発生しているか否かを判定する(S106)。
図7は、遅延閾値テーブル110の例を示す図である。
遅延閾値テーブル110は、例えば、工程毎に(或いは他の所定の単位で)レコードを有し、各レコードは、例えば、工程名欄111bと、作業遅延閾値欄111cと、納期遅延閾値欄111dと、作業開始遅れ閾値欄111eと、作業中断閾値欄111fとを有する。一つのレコードから取得される情報が、一つの遅延閾値データセットである。以下、一つの工程を例に取る(図7の説明において「注目工程」と言う)。
工程名欄111bには、注目工程の工程名を示す情報が格納される。
作業遅延閾値欄111cには、注目工程の作業遅延としての閾値を示す情報が格納される。
納期遅延閾値欄111dには、注目工程の納期遅延としての閾値を示す情報が格納される。
作業開始遅れ閾値欄111eには、注目工程の作業開始遅れとしての閾値を示す情報が格納される。
作業中断閾値欄111fには、注目工程の作業中断としての閾値を示す格納される。
なお、遅延閾値テーブル110における閾値としては、作業遅延閾値のように遅延指数と比較される閾値もあれば、作業開始遅れ閾値のように時刻に加算される閾値もある。すなわち、遅延閾値テーブル110における閾値としては、作業遅延を検出するための閾値の他に、作業開始遅れや作業中断といった作業遅延種類を判別するために使用される閾値もある。また、作業遅延閾値、納期遅延閾値、作業開始遅れ閾値及び作業中断閾値のうちの少なくとも一つは、作業や工程のような所定の単位で用意されることに代えて、作業や工程によらず共通でもよい。
再び図3を参照する。S106で、例えば、作業遅延検出部20が、対象作業に対応した作業計画データセットが示す工程名に対応した作業遅延閾値を遅延閾値テーブル110から特定し、S104で算出された遅延指数が、特定された作業遅延閾値を超えているか否かを判定する。S106の判定結果が真であること、つまり、遅延指数>作業遅延閾値であることが、作業遅延の検出に相当する。
S106の判定結果が真の場合(S106でYes)、作業遅延検出部20が、作業遅延テーブル140のうち対象作業に対応したレコードに情報を格納する(S107)。
図8は、作業遅延テーブル140の例を示す図である。
作業遅延テーブル140は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄141bと、工程名欄141cと、ライン番号欄141dと、遅延指数140eと、作業進捗率140fと、予定進捗率140gと、遅延フラグ欄141hと、検出時刻欄141iとを有する。一つのレコードから取得される情報が、一つの作業遅延データセットである。以下、一つの作業を例に取る(図8の説明において「注目作業」と言う)。
作業番号欄141bには、注目作業の作業番号を示す情報が格納される。
工程名欄141cには、注目作業が実施される工程の工程名を示す情報が格納される。
ライン番号欄141dには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
遅延指数欄141eには、注目作業の遅延指数を示す情報が格納される。
作業進捗率欄141fには、注目作業の作業進捗率を示す情報が格納される。
予定進捗率欄141gには、注目作業の予定進捗率を示す情報が格納される。
遅延フラグ欄141hには、注目作業が遅延しているか否かの遅延フラグを示す情報が格納される。
検出時刻欄141iには、注目作業の遅延が検出された時刻を示す情報が格納される。
再び図3を参照する。S106の判定結果が真の場合、S107で、作業遅延検出部20が、対象作業に対応した作業遅延フラグ“True”、予定進捗率、及び遅延指数等を示す作業遅延データセットを、作業遅延テーブル140に格納する。その後、遅延検出処理が終了する。
S106の判定結果が偽の場合(S106でNo)、処理がS102に遷移する。作業遅延検出部20が、対象作業について、S102からS106を一定のタイミングで繰り返して実行することにより、対象作業に遅延が発生しているか否かを監視することができる。S102からS106を実行するタイミングは、実施形態に合わせて、例えば、任意の時間が経過する都度や一つの作業ステップが完了する都度等でよい。
以上が、図2のS100(遅延検出処理)である。
再び図2を参照する。作業遅延検出部20が、作業遅延テーブル140を参照し、対象作業の遅延フラグが立っているか否か(“True”か“False”か)を判定する(S200)。S200の判定結果が偽の場合(S200でNo)、スケジューリング処理が終了する。
以上のように、作業遅延検出部20は、対象作業の開始が検出された場合(例えば、当該検出後直ちに遅延検出処理を行うことで、当該対象作業の終了が検出される前に)、作業計画テーブル80のうちの対象作業に対応した作業計画データセットと、対象作業について検出された作業実績から特定される実作業量とを基に、対象作業の作業遅延の有無を判断することができる。
<遅延種類判別部>
S200の判定結果が真の場合(S200でYes)、遅延種類判別部30が、作業遅延テーブル140のうち対象作業に対応した作業遅延データセットを参照し、作業遅延の種類を判別する(S300)。
図9は、S300の作業遅延種類判別処理の流れを示すフローチャートである。
まず、遅延種類判別部30が、作業計画テーブル80から対象作業に対応した作業計画データセットを取得し、遅延閾値テーブル110から対象作業の工程に対応した遅延閾値データセットを取得し、作業遅延テーブル140から対象作業に対応した作業遅延データセットを取得する(S301)。
次に、遅延種類判別部30が、取得された作業計画データセットと作業遅延データセットと遅延閾値データセットを用いて対象作業の遅延の種類を判定する。
具体的には、遅延種類判別部30が、作業計画データセットが示す開始時刻から、時刻X(当該開始時刻に遅延閾値データセットが示す作業開始遅れ閾値が加算された時刻)までの間、作業進捗率が0%のままであるか否かを判定する(S302)。
S302の判定結果が真の場合(S302でYes)、遅延種類判別部30が、発生している作業遅延の遅延種類は作業開始遅れと判別し、現在時刻と開始時刻の差である作業遅延時間を算出し、遅延種類テーブル120のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業開始遅れ”を格納し、且つ、当該レコードに、作業遅延時間を示す情報を格納する(S303)。
S302の判定結果が偽の場合(S302でNo)、遅延種類判別部30が、作業遅延データセットが示す検出時刻から、時刻Y(当該検出時刻に遅延閾値データセットが示す作業中断閾値が加算された時刻)までの間、作業進捗率が一定時間以上変化していない(例えば、作業進捗率が一定時間以上0%である)時間帯があるか否かを判定する(S304)。
S304の判定結果が真の場合(S304でYes)、遅延種類判別部30が、発生している作業遅延の遅延種類は作業中断と判別し、作業進捗率が変化していない時間を作業遅延時間とし、遅延種類テーブル120のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業中断”を格納し、且つ、当該レコードに、作業遅延時間を示す情報を格納する(S305)。
S304の判定結果が偽の場合(S304でNo)、遅延種類判別部30が、発生している作業遅延の遅延種類は作業能率低下と判別し、作業能率(=作業進捗率/予定進捗率)を算出し、作業能率と予定作業時間とを基に作業遅延時間を算出し、遅延種類テーブル120のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業能力低下”を格納し、且つ、当該レコードに、算出された作業能率及び作業遅延時間を示す情報を格納する(S306)。
以上が、図2のS300(作業遅延種類判別処理)である。
図10は、遅延種類テーブル120の例を示す図である。
遅延種類テーブル120は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄121bと、工程名欄121cと、ライン番号欄121dと、作業遅延種類120eと、作業遅延時間120fと、作業能率欄121gと、検出時刻欄121hとを有する。一つのレコードから取得される情報が、一つの遅延種類データセットである。以下、一つの作業を例に取る(図10の説明において「注目作業」と言う)。
作業番号欄121bには、注目作業の作業番号を示す情報が格納される。
工程名欄121cには、注目作業が実施される工程の工程名を示す情報が格納される。
ライン番号欄121dには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
作業遅延種類欄121eには、対象作業の作業遅延種類を示す情報が格納される。
作業遅延時間欄121fには、対象作業の作業遅延時間を示す情報が格納される。
作業能率欄121gには、対象作業の作業能率を示す情報が格納される。
<再計画生成部>
再び図2を参照する。S300の次に、再計画生成部40は、再計画(作業計画テーブル80の更新)に用いる再計画テーブル130を生成する(S400)。
図11は、S400の再計画生成処理の流れを示すフローチャートである。
まず、再計画生成部40が、作業計画テーブル80と、遅延種類テーブル120とを取得する(S401)。
次に、再計画生成部40が、取得した作業計画テーブル80と遅延種類テーブル120から、再計画テーブル130を生成する(S402)。具体的には、再計画生成部40が、遅延種類テーブル120が有する遅延種類データセット(レコード)毎に、当該遅延種類データセットが示す作業遅延種類、作業遅延時間及び作業能率と、当該遅延種類データセットが示す作業番号に対応した作業計画データセットとを基に、当該作業計画データセットの更新のための再計画データセットを生成する。S402では、例えば、作業遅延種類“作業能率低下”を示している遅延種類データセットがある場合、再計画生成部40が、“作業能率低下”に対応した作業のST(作業計画データセットが示すST)の変更後のSTを算出する。変更後のSTは、例えば下記式に従い算出される。なお、下記式において、「変更前のST」は、当該作業に対応した作業計画データセットが示すSTであり、「作業能率」は、当該作業に対応した遅延種類データセットが示す作業能率である。
変更後のST=(変更前のST)*(作業能率/100)…(式4)
次に、再計画生成部40が、S402で生成された再計画テーブル130を格納する(S403)。
以上が、図2のS400(再計画生成処理)である。
図12は、再計画テーブル130の例を示す図である。
再計画テーブル130は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄131bと、工程名欄131cと、ライン番号欄131dと、品名欄131eと、作業遅延時間130fと、ST欄131gと、予定作業時間欄131hと、完了時刻欄131iとを有する。一つのレコードから取得される情報が、一つの再計画データセットである。以下、一つの作業を例に取る(図12の説明において「注目作業」と言う)。
作業番号欄131bには、注目作業の作業番号を示す情報が格納される。
工程名欄131cには、注目作業が実施される工程の工程名を示す情報が格納される。
ライン番号欄131dには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
品名欄131eには、注目作業で扱われるロットの品名を示す情報が格納される。
作業遅延時間欄131fには、対象作業の作業遅延時間を示す情報が格納される。
ST欄131gには、対象作業(及び工程)のST(例えば、算出された変更後のST)を示す情報が格納される。
予定作業時間欄131hには、注目作業の予定作業時間を示す情報が格納される。例えば、当該予定作業時間は、STが変更された場合、再計画生成部40により、注目作業に対応した作業計画データセットが示す予定作業時間が変更後のSTに基づき変更された結果としての予定作業時間である。
完了時刻欄131iには、注目作業の完了時刻を示す情報が格納される。当該完了時刻は、例えば、注目作業に対応した開始時刻、予定作業時間及び作業遅延時間とに従う。
<再計画部>
再び図2を参照する。S400の次に、再計画部50は、再計画を行う(S500)。
図13は、S500の再計画処理の流れを示すフローチャートである。
まず、再計画部50が、再計画テーブル130を取得する(S501)。
次に、再計画部50が、取得された再計画テーブル130を用いて、再計画(すなわち、作業計画テーブル80の更新)を行う(S502)。再計画は、既存の生産シミュレータが用いられてよい。生産シミュレータには、例えば、生産ラインに関する情報(例えば、工程数、各工程の設備台数や設備稼働時刻、及び作業者数等)が予め入力されていてよい。生産シミュレータに再計画テーブル130(及び既存の作業計画テーブル80)が入力されると、生産シミュレータにより、更新後の作業計画テーブル80が生成される。
次に、再計画部50が、再計画の結果としての更新後の作業計画テーブル80を格納する(S503)。
以上が、図2のS500(再計画処理)である。
<納期遅延判定部>
再び図2を参照する。S500の次に、納期遅延判定部60は、再計画処理後の作業計画テーブル80から納期遅延の発生の有無を判別する(S600)。
図14は、S600の納期遅延判定処理の流れを示すフローチャートである。
まず、納期遅延判定部60が、作業計画テーブル80と、遅延閾値テーブル110とを取得する(S601)。
次に、納期遅延判定部60が、取得された作業計画テーブル80が有する作業計画データセット毎に、作業完了時刻(再計画テーブル130から特定される時刻)が納期を過ぎており、且つ、作業完了時刻と納期との差分が、当該作業計画データセットに対応した工程についての納期遅延閾値を超えていれば、当該作業計画データセットに対応した作業について納期遅延が生じると判別する(S602)。
次に、納期遅延判定部60が、納期遅延を起こしているロットに関する情報(例えば、作業完了時刻、納期、及び、作業完了時刻と納期との差分である納期遅延時間を示す情報)を納期遅延テーブル160に格納し、納期遅延テーブル160に基づく情報を表示する管理支援画面を表示する(S603)。
以上が、図2のS600(納期判定処理)である。なお、納期判定処理は、S601から納期遅延テーブル190の格納までを含み、管理支援画面の表示は、納期遅延テーブル160の格納後、任意のタイミングで行われてよい。
図15は、納期遅延テーブル160の例を示す図である。
納期遅延テーブル160は、例えば、納期遅延との判別結果が得られたロット毎にレコードを有し、各レコードが、例えば、ロット番号欄161bと、完了時刻欄161cと、納期欄161dと、納期遅延時間欄161eとを有する。
ロット番号欄161bには、ロット番号を示す情報が格納される。
完了時刻欄161cには、作業完了時刻を示す情報が格納される。
納期欄161dには、納期を示す情報が格納される。
納期遅延時間欄161eには、納期遅延時間(作業完了時刻と納期との差分)を示す情報が格納される。
図16は、管理支援画面の例を示す図である。
管理支援画面6000は、納期遅延が発生しているロットの情報の表示領域600aと、遅延が発生しているロットの作業計画の表示領域600bとを有する。表示領域600aに表示される情報は、例えば、作業計画テーブル80及び遅延種類テーブル120に基づく。表示領域600bに表示される情報は、作業計画テーブル80を含む上述のテーブル群のうちの少なくとも一部(図示しない一つ以上のテーブルの少なくとも一部を含んでよい)に基づく。管理支援画面6000は、上述の表示領域600a及び600bの少なくとも一つに代えて又は加えて、例えば、納期遅延に関する情報だけでなく、作業遅延に関する情報(例えば、作業遅延テーブル140に基づく情報)の表示領域や再計画に関する情報(例えば、再計画テーブル130に基づく情報)の表示領域を有してもよい。
以上の実施形態を、例えば以下のように総括することができる。
生産システム4は、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産するシステムである。生産システム4での生産を管理する生産管理装置の一例としてのスケジューリング装置10が、作業遅延検出部20、遅延種類判別部30及び影響推定部35を有する。作業遅延検出部20は、対象作業(いずれかの作業であり開始が検出された作業)の作業実績(例えば、情報I/O部61により生産システム4から取得された実データ(例えば時系列データ)が示す作業実績)から特定される実作業量と、作業計画に関する情報である作業計画情報(例えば、作業計画テーブル80)のうち対象作業に対応した部分である対象計画情報(例えば、対象作業に対応した作業計画データセット)とを基に、対象作業の作業遅延の有無を判断する。対象作業の作業遅延が検出された場合、遅延種類判別部30が、対象作業の実作業量と、対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値(例えば、遅延閾値テーブル110が示す複数の閾値)とを基に、検出された作業遅延の作業遅延種類を判別する。影響推定部35が、検出された作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。このように、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値が用意されており、当該一つ又は複数の値を基に、作業遅延種類が判別され、遅延影響度合が、判別された作業遅延種類を基に推定される。このため、発生した作業遅延の影響が正確に推定される。
遅延種類判別部30は、作業遅延の検出時刻から第1の時刻(例えば時刻Y)までの間に、対象作業の対象計画情報と対象作業の実作業量とに従う作業進捗率(例えば、(式2)又は(式2´)に従う)が一定時間以上変化していない時間帯がないことを特定した場合、作業遅延種類が作業能率低下であると判別する。作業能率低下が生じる原因として、作業者や設備の不調が考えられるが、そういった原因を技術的に検知することは困難であるが、遅延種類判別部30によれば、作業遅延が検出された後の作業進捗率の変化の状況を特定するため、そのような状況から作業能率低下を判別することができる。なお、ここで言う「一定時間」は、予め定められた時間長(例えば、作業進捗率が一定である時間長が、作業が中断しているとみなせない最大の時間長)でよい。
遅延種類判別部30は、作業遅延の検出時刻から第1の時刻までの間に上記の時間帯があることを特定した場合、作業遅延種類が作業中断であると判別する。このように、作業遅延の検出時刻から第1の時刻までの間に上記の時間帯があるか否かに応じて、作業遅延種類が、作業能率低下であるか作業中断であるかを判別できる。
上記第1の時刻は、作業遅延の検出時刻に、上記一つ以上の値のうち作業中断に対応した値(例えば、作業中断閾値)が加算された時刻である。これにより、作業遅延種類が作業能率低下であるか作業中断であるかの判別の正確性が向上することが期待できる。
遅延種類判別部30は、対象作業の開始時刻から第2の時刻(例えば、時刻X)までの間に作業進捗率がゼロのままであることを特定した場合、作業遅延種類が作業開始遅れであると判別する。これにより、作業遅延種類として、作業能率低下の他に作業開始遅れを判別することができる。なお、第2の時刻は、開始時刻に、上記一つ以上の値のうち作業開始遅れに対応した値(例えば、作業開始遅れ閾値)が加算された時刻である。これにより、作業遅延種類が作業開始遅れであることの判別の正確性が向上することが期待できる。
対象計画情報が、対象作業のST(Standard Time)を示す情報と対象作業の予定作業時間を示す情報とを含む。作業遅延種類が作業能率低下の場合、影響推定部35が、対象作業のSTを、対象作業の作業能率に基づき変更する。当該作業能率は、対象作業の作業進捗率と予定進捗率とに基づく。予定進捗率は、対象作業の開始時刻からの経過時間と、対象作業に対応した予定作業時間とに従う(例えば(式1)に従う)。影響推定部35が、対象作業について、開始時刻、作業能率、変更後のST及び予定作業時間(対象計画情報が示す予定作業時間)に基づき、遅延影響度合を推定する。作業能率低下の原因として、上述したように作業者や設備の不調が考えられるが、その場合、所定のSTを守ることは困難であると考えられる。影響推定部35によれば、作業遅延種類が作業能率低下の場合、対象作業のSTが、対象作業の作業能率に基づいて変更されるので、作業能率に適したSTが期待され、故に、遅延影響度合の正確性の向上が期待できる。
対象計画情報が、対象作業に対応した納期を示す情報を含む。作業遅延種類が作業能率低下の場合、影響推定部35が、対象作業の完了時刻(開始時刻、作業能率、変更後のST及び予定作業時間に基づき算出された時刻)と、対象作業に対応した納期との差が、複数の値のうち納期遅延に関し定義された値(例えば、納期遅延閾値)を超えている場合、遅延影響度合として、納期遅延が生じると推定する。これにより、作業能率低下が納期遅延にまで影響するか否かがわかる。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。