(57)【要約】【課題】発生した作業遅延の影響を正確に推定する。【解決手段】生産管理装置が、いずれかの作業であり開始が検出された作業である対象作業の作業実績から特定される実作業量と、作業計画に関する情報である作業計画情報のうち対象作業に対応した部分である対象計画情報とを基に、対象作業の作業遅延の有無を判断する。対象作業の作業遅延が検出された場合、生産管理装置は、対象作業の実作業量と、対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値とを基に、検出された作業遅延の作業遅延種類を判別する。生産管理装置は、検出された作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。【選択図】図１
2020194458.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産する生産システムでの生産を管理する生産管理装置であって、
いずれかの作業であり開始が検出された作業である対象作業の作業実績から特定される実作業量と、作業計画に関する情報である作業計画情報のうち前記対象作業に対応した部分である対象計画情報とを基に、前記対象作業の作業遅延の有無を判断する作業遅延検出部と、
前記対象作業の作業遅延が検出された場合、前記対象作業の前記実作業量と、前記対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値とを基に、前記検出された作業遅延の作業遅延種類を判別する遅延種類判別部と、
前記検出された作業遅延が前記生産へ与える影響であり前記作業計画からの遅延の度合である遅延影響度合を、前記判別された作業遅延種類を基に推定する影響推定部と
を備える生産管理装置。
【請求項２】
前記遅延種類判別部は、前記作業遅延の検出時刻から第１の時刻までの間に、前記対象計画情報と前記実作業量とに従う作業進捗率が一定時間以上変化していない時間帯がないことを特定した場合、前記作業遅延種類が作業能率低下であると判別する、
請求項１に記載の生産管理装置。
【請求項３】
前記遅延種類判別部は、前記検出時刻から前記第１の時刻までの間に前記時間帯があることを特定した場合、前記作業遅延種類が作業中断であると判別する、
請求項２に記載の生産管理装置。
【請求項４】
前記第１の時刻は、前記検出時刻に、前記一つ以上の値のうち作業中断に対応した値が加算された時刻である、
請求項３に記載の生産管理装置。
【請求項５】
前記遅延種類判別部は、前記対象作業の開始時刻から第２の時刻までの間に前記作業進捗率がゼロのままであることを特定した場合、前記作業遅延種類が作業開始遅れであると判別する、
請求項３に記載の生産管理装置。
【請求項６】
前記第２の時刻は、前記開始時刻に、前記一つ以上の値のうち作業開始遅れに対応した値が加算された時刻である、
請求項５に記載の生産管理装置。
【請求項７】
前記対象計画情報が、前記対象作業のＳＴ（Standard Time）を示す情報と前記対象作業の予定作業時間を示す情報とを含み、
前記作業遅延種類が作業能率低下の場合、前記影響推定部が、
前記対象作業のＳＴを、前記作業進捗率と、前記対象作業の開始時刻からの経過時間と前記予定作業時間とに従う予定進捗率とに基づく作業能率に基づき変更し、
前記開始時刻、前記作業能率、変更後のＳＴ及び前記予定作業時間に基づき、前記遅延影響度合を推定する、
請求項２に記載の生産管理装置。
【請求項８】
前記対象計画情報が、前記対象作業に対応した納期を示す情報を含み、
前記作業遅延種類が作業能率低下の場合、前記影響推定部が、
前記開始時刻、前記作業能率、変更後のＳＴ及び前記予定作業時間に基づく完了時刻と、前記納期との差が、前記複数の値のうち納期遅延に関し定義された値を超えている場合、前記遅延影響度合として、納期遅延が生じると推定する、
請求項７に記載の生産管理装置。
【請求項９】
それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産する生産システムでの生産に関する生産管理を行う生産管理方法であって、
いずれかの作業であり開始が検出された作業である対象作業の作業実績から特定される実作業量と、作業計画に関する情報である作業計画情報のうち前記対象作業に対応した部分である対象計画情報とを基に、前記対象作業の作業遅延の有無を判断し、
前記対象作業の作業遅延が検出された場合、前記対象作業の前記実作業量と、前記対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値とを基に、前記検出された作業遅延の作業遅延種類を判別し、
前記検出された作業遅延が前記生産へ与える影響であり前記作業計画からの遅延の度合である遅延影響度合を、前記判別された作業遅延種類を基に推定する、
生産管理方法。
【請求項１０】
それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産する生産システムでの生産に関する生産管理を行う生産管理装置としてコンピュータを動作させるためのコンピュータプログラムであって、
いずれかの作業であり開始が検出された作業である対象作業の作業実績から特定される実作業量と、作業計画に関する情報である作業計画情報のうち前記対象作業に対応した部分である対象計画情報とを基に、前記対象作業の作業遅延の有無を判断し、
前記対象作業の作業遅延が検出された場合、前記対象作業の前記実作業量と、前記対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値とを基に、前記検出された作業遅延の作業遅延種類を判別し、
前記検出された作業遅延が前記生産へ与える影響であり前記作業計画からの遅延の度合である遅延影響度合を、前記判別された作業遅延種類を基に推定する、
ことを前記コンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、生産管理に関し、特に、スケジューリングの支援に関する。
【背景技術】
【０００２】
例えば、特許文献１（特開2010-55220号公報）は、「複数の成形機１〜３間を作業者４が移動しながら各成形機１〜３を取り扱う作業を行うことで各成形機１〜３を稼動させて製品を生産する生産工程において作業者４に次の作業を指示するもので、各成形機１〜３が稼動しているか否かの稼動情報を取得するＰＬＣ１０〜３０と、各成形機１〜３の周辺に設けられて作業者４の位置を検知するエリアセンサ５と、作業計画及び作業情報を記憶する第１の情報端末機６と、通信回線を介して各ＰＬＣ１０〜３０からの稼動情報及びエリアセンサ５からの検知結果を収集するとともに、これらの情報を参照して現在行っている作業を推定し且つ推定結果に基づいて作業計画を修正する第２の情報端末機７と、作業計画に応じて次の作業を作業者４に指示するモニタ８とから構成される。」を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2010-55220号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の方式は、作業遅延発生は検出するが、発生した作業遅延の影響を正確に推定できない。
【０００５】
本発明は、上記の事情を鑑みてなされたものであり、発生した作業遅延の影響を正確に推定することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、代表的な本発明の生産管理装置の一つが、いずれかの作業であり開始が検出された作業である対象作業の作業実績から特定される実作業量と、作業計画に関する情報である作業計画情報のうち対象作業に対応した部分である対象計画情報とを基に、対象作業の作業遅延の有無を判断する。対象作業の作業遅延が検出された場合、生産管理装置は、対象作業の実作業量と、対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値とを基に、検出された作業遅延の作業遅延種類を判別する。生産管理装置は、検出された作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。
【発明の効果】
【０００７】
本発明によれば、発生した作業遅延の影響を正確に推定することができる。
【図面の簡単な説明】
【０００８】
【図１】スケジューリング装置を含むシステム全体の構成を例示するブロック図である。
【図２】スケジューリング処理の流れを示すフローチャートである。
【図３】遅延検出処理の流れを示すフローチャートである。
【図４】作業計画テーブルの例を示す図である。
【図５】器具位置テーブルの例を示す図である。
【図６】設備制御テーブルの例を示す図である。
【図７】遅延閾値テーブルの例を示す図である。
【図８】作業遅延テーブルの例を示す図である。
【図９】遅延種類判別処理の流れを示すフローチャートである。
【図１０】遅延種類テーブルの例を示す図である。
【図１１】再計画生成処理の流れを示すフローチャートである。
【図１２】再計画テーブルの例を示す図である。
【図１３】再計画処理の流れを示すフローチャートである。
【図１４】納期遅延判定処理の流れを示すフローチャートである。
【図１５】納期遅延テーブルの例を示す図である。
【図１６】管理支援画面の例を示す図である。
【発明を実施するための形態】
【０００９】
以下の説明では、「インターフェースデバイス部」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちのいずれでもよい。
・Ｉ／Ｏ（Input/Output）デバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するＩ／Ｏインターフェースデバイス。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１０】
また、以下の説明では、「メモリ部」は、一つ以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも一つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【００１１】
また、以下の説明では、「ＰＤＥＶ部」は、一つ以上のＰＤＥＶであり、典型的には補助記憶デバイスでよい。「ＰＤＥＶ」は、物理的な記憶デバイス（Physical storage DEVice）を意味し、典型的には、不揮発性の記憶デバイス、例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。
【００１２】
また、以下の説明では、「記憶部」は、メモリ部とＰＤＥＶ部の少なくともメモリ部でよい。
【００１３】
また、以下の説明では、「演算部」は、一つ以上のプロセッサである。少なくとも一つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサでもよい。少なくとも一つのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサでもよい。
【００１４】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【００１５】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、演算部によって実行されることで、定められた処理を、適宜に記憶部及び／又はインターフェース部等を用いながら行うため、処理の主語が、演算部（或いは、その演算部を有するコントローラのようなデバイス）とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な（例えば非一時的な）記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
【００１６】
また、以下の説明では、「ｋｋｋ部」（インターフェース部、記憶部及び演算部を除く）の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラム（後述の制御プログラム及び情報プログラムを除く）が演算部によって実行されることで実現されてもよいし、一つ以上のハードウェア回路によって実現されてもよい。プログラムが演算部によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶部及び／又はインターフェース部等を用いながら行われるため、機能は演算部の少なくとも一部とされてもよい。機能を主語として説明された処理は、演算部あるいはその演算部を有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【００１７】
また、以下の説明では、スケジューリング装置における計算機が「表示用情報を表示する」ことは、当該計算機が有する表示デバイスに表示用情報を表示することであってもよいし、当該計算機が表示用計算機に表示用情報を送信することであってもよい（後者の場合は表示用計算機によって表示用情報が表示される）。なお、スケジューリング装置は、クラウド環境のような計算機リソースプール（例えば、インターフェースデバイス部、記憶部及び演算部）に基づき提供される仮想的な装置、又は、ソフトウェアディファインドの装置でもよい。
【００１８】
また、以下の説明では、「製品」とは、一般に、製造された品物、すなわち、いわゆる完成品を意味するが、以下の説明において、「製品」とは、生産ラインに投入される品物全般を意味する。従って、以下の説明において、「製品」とは、生産ラインに投入される前の品物も、生産ライン途中にある品物（いわゆる「半製品」）も、生産ラインにおける全ての工程を経て出荷可能な状態となった完成品のいずれでもよい。
【００１９】
また、以下の説明では、「作業」とは、ロット（一つ以上の製品）についての一つの工程の少なくとも一部（例えば、一つの工程が複数のサブ工程から構成されている場合は、少なくとも一つのサブ工程）を意味する。
【００２０】
また、以下の説明では、「ステップ」とは、作業において行われる処理単位である。作業の形式が人の場合、ステップは、人（例えば作業員）によって行われ、作業の形式が設備の場合、ステップは、プログラム（例えば制御プログラム）によって行われる。
【００２１】
また、以下の説明では、「生産ライン」は、複数の工程に関わる複数の工程ラインから構成されている生産システムを意味するが、生産システムとしては、ライン生産システムやジョブショップ生産システムといった任意の生産システムが採用されてよい。
【００２２】
また、以下の説明では、「設備」は、生産ラインに設けられ作業を行う機器等（例えば、成型機、切断機）である。設備は、生産設備と呼ばれてもよい。
【００２３】
以下、本発明の一実施形態に係る生産管理装置が適用されたスケジューリング装置を説明する。
【００２４】
図１は、スケジューリング装置の全体構成を示す図である。
【００２５】
図示するように、スケジューリング装置１０は、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産する生産システム４での生産に関するスケジューリングを行う装置である。スケジューリング装置１０は、作業遅延が検出された場合に、当該作業遅延の遅延種類を推定し、推定された遅延種類に基づき、作業計画テーブル８０の生成の基になるテーブルである再計画テーブル１３０を生成する。スケジューリング装置１０が、再計画テーブル１３０を基に作業計画テーブル８０を更新する。
【００２６】
スケジューリング装置１０は、インターフェースデバイス部３と、記憶部１と、それらに接続された演算部２とを備える。
【００２７】
インターフェースデバイス部３は、例えばネットワーク群（一つ以上のネットワーク）を通じて、生産システム４が有する一つ以上の機器（例えば、一種類以上のセンサを含む一つ以上のセンサ、生産システム４に設けられた一つ以上の設備、及び、生産予定を管理する装置である生産管理装置、のうちの少なくとも一つ）と通信する。生産システム４は、例えば、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産するためのシステムである。
【００２８】
記憶部１は、プログラム群（一つ以上のプログラム）とテーブル群（一つ以上のテーブルであり管理情報の一例）とを記憶する。プログラム群は、例えば、後述の一つ以上の制御プログラムと一つ以上の情報プログラムとを含んでよい。テーブル群は、例えば、作業計画テーブル８０と、器具位置テーブル９０と、設備制御テーブル１００と、遅延閾値テーブル１１０と、遅延種類テーブル１２０と、再計画テーブル１３０と、作業遅延テーブル１４０と、納期遅延テーブル１６０とを含む。
【００２９】
演算部２は、上述のプログラム群を実行することにより、例えば、作業遅延検出部２０と、遅延種類判別部３０と、影響推定部３５とを実現する。影響推定部３５は、再計画生成部４０と、再計画部５０と、納期遅延判定部６０とを含む。作業遅延検出部２０は、作業遅延を検出する。遅延種類判別部３０は、検出された作業遅延の種類を判別する。影響推定部３５は、作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。具体的には、例えば、再計画生成部４０が、再計画テーブル１３０を生成し、再計画部５０が、再計画テーブル１３０を基に作業計画テーブル８０を更新し、納期遅延判定部６０が、納期の遅延の有無を判定する。
【００３０】
演算部２は、上述のプログラム群を実行することにより、例えば、情報Ｉ／Ｏ部６１とシステム制御部６２とを実現してもよい。情報Ｉ／Ｏ部６１は、例えば、生産システム４から情報を取得したり、各作業について当該作業の開始及び終了を含む作業実績を監視したりしてよい。システム制御部６２は、スケジューリング装置１０の管理対象の作業のための設備であり生産システム４における設備を制御してよい。
【００３１】
作業実績の検出において、情報Ｉ／Ｏ部６１は、例えば、各工程での作業の監視に関わる一つ以上のインターフェースであるインターフェース群から情報を受け付けること、及び、当該受け付けた情報から特定される作業実績を示す一つ以上の実績データセットを記憶部１に格納することの少なくとも一つを行ってよい。
【００３２】
「インターフェース群」は、一種類以上のセンサを含む一つ以上のセンサを含んでもよいし、ＡＰＩ（Application Programming Interface）のようなインターフェースを含んでもよい。情報Ｉ／Ｏ部６１は、インターフェース群から情報を定期的又は不定期的に受け付けてよい。例えば、下記のうちの少なくとも一つが行われてよい。情報Ｉ／Ｏ部６１は、各作業について、インターフェース群経由で作業実績を監視し、特定された作業実績を示す情報を記憶部１に蓄積してよい。
・生産システム４及びその周辺といった作業エリアを撮影するカメラ（センサの一例）からの画像データを基に、当該作業エリアに存在する作業員の数及び位置といった作業実績の一例を特定する。
・各作業員が所持する一つ以上のセンサからのデータを基に、各作業員の位置（例えば、完了品置き場のような所定場所との位置関係）及び動きといった作業実績の一例を特定する。
・各製品や各器具に取り付けられた一つ以上のセンサからのデータを基に、各製品や各器具の位置といった作業実績の一例を特定する。
・制御プログラムのインターフェース経由で受け付けたデータ（例えば、制御プログラムの記述から特定されるステップの数のうち実行の完了したステップの数）を基に、作業進捗率といった作業実績の一例を特定する。
・各作業員が所持する一つ以上のセンサ、及び、生産システム４及びその周辺といった所定エリアを撮影するカメラ（センサの一例）のうちの少なくとも一つからのデータを基に、作業に関わるステップの数のうち実行の完了したステップの数を特定し、作業に関わるステップの数と実行の完了したステップの数とに基づく作業進捗率といった作業実績の一例を特定する。
【００３３】
「実績データセット」は、例えば、下記のうちのいずれかでよい。工程名及びライン番号は、例えば、データの送信元のセンサのＩＤやカメラの撮影画像の領域等に工程名及びライン番号が紐付けられた情報と、インターフェース群からの情報とから、特定されてよい。作業計画テーブル８０、器具位置テーブル９０及び設備制御テーブル１００の各々は、定期的に特定された実績の履歴でよい。
・器具位置テーブル９０における一つのレコードのうちの欄９１ｃ〜９１ｆに記録された情報。
・設備制御テーブル１００における一つのレコードのうちの欄１０１ｃ〜１０１ｇに記録された情報。
【００３４】
なお、「データセット」とは、アプリケーションプログラムのようなプログラムから見た一つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。
【００３５】
スケジューリング装置１０の機能を実装する場所として、例えば、制御装置（PLC:Programmable Logic Controller等）、産業用コンピュータ、製造実行システム（例えば生産システム４）、クラウド環境等がある。
【００３６】
制御装置にスケジューリング装置１０としての機能が実装された場合、言い換えれば、スケジューリング装置１０が制御装置を兼ねている場合、制御装置は堅牢性を持つため、作業現場に設置でき、作業現場に取り付けられたセンサの情報や、制御装置の制御下にある設備（例えば、工作機器や搬送機器等の情報）を、スケジューリング装置１０は即時的に取得できる。また、制御装置は、設備を制御しているため、制御プログラムの実行状況もスケジューリング装置１０から監視できる。
【００３７】
産業用コンピュータにスケジューリング装置１０としての機能が実装された場合、産業用コンピュータは堅牢性を持つため、作業現場に設置でき、作業現場に取り付けられたセンサの情報を、スケジューリング装置１０は即時的に取得できる。
【００３８】
製造実行システムにスケジューリング装置１０としての機能が実装された場合、製造実行システムが持つ製造実行システム情報（作業予定のロットの台数や品種、作業完了時刻等）を、スケジューリング装置１０は即時的に取得することができる。
【００３９】
クラウド環境にスケジューリング装置１０としての機能が実装された場合、スケジューリング装置１０は、クラウド環境の高い処理能力を利用することが出来る。また、クラウド環境であるため、他の拠点の工場のデータも即時的に取得でき、他の拠点の工場と連携することが期待できる。
【００４０】
図２以降を参照して本実施形態を詳細に説明する前に、スケジューリング装置１０の一具体例を説明する。
【００４１】
スケジューリング装置１０は、制御装置でよく、制御装置は、シーケンス制御装置、モーション制御装置又はプログラマブル・ロジック・コントローラ（ＰＬＣ）とも呼ばれてよい。制御装置において、ラダー・ロジック（ＬＤ言語）、シーケンシャル・ファンクション・チャート（ＳＦＣ言語）、ファンクション・ブロック（ＦＢＤ言語）、ストラクチャード・テキスト（ＳＴ言語）、インストラクション・リスト（ＩＬ言語）のような制御装置特有のプログラミング言語、あるいはＣ言語のような情報通信分野で使われる汎用的なプログラミング言語を用いて記述され、シーケンス制御やモーション制御に代表される制御処理を実行するプログラムを「制御プログラム」と呼ぶことができる。制御プログラムは、Ｉ／Ｏモジュール等を介して実際にモータ等を含む周辺機器を操作し、生産システム等を適切に動作させる必要がある。そのため、制御プログラムは、処理を設定された時間内に確実に実行すること（リアルタイム性）が求められる。
【００４２】
制御プログラムは、制御内容が記述された命令によって制御対象装置（例えば、装置部品のようなハードウェアモジュール、１以上のハードウェアモジュールを備えた装置、又は、複数の装置を備えたシステム）を制御する。例えば、「Ｉ／Ｏモジュール等を介して実際にモータ等を含む周辺機器を操作し、生産システムを適切に動作させる」といった制御では、「生産システム」、又は、「生産システムを構成する少なくとも一つの装置」が、「制御対象装置」である。制御対象装置は、典型的には、制御装置におけるＩ／Ｏ制御装置（インターフェース部の一例）経由で接続された装置である。制御対象装置は、制御プログラムから直接的に（例えば、制御装置に接続されたＩ／Ｏモジュールや周辺機器を介さずに）制御されてもよいし、制御プログラムから間接的に（例えば、制御装置に接続されたＩ／Ｏモジュールや周辺機器を介して）制御されてもよい。
【００４３】
制御対象装置を制御する言語は、ラダー言語等の制御特有のプログラミング言語に限らず、Ｃ言語等の汎用プログラミング言語で記述される場合もあるため、制御対象装置（典型的にはハードウェア）を制御するプログラムを「制御プログラム」と呼ぶ。
【００４４】
ラダー言語等で記述された制御プログラムは、当該ラダー言語等の記述において指定された制御対象装置の状態を読み込み又は書き込み（取得又は更新）をする「スキャン動作」を行う。
【００４５】
このスキャン動作は所定間隔で行う必要があり、この所定間隔を「スキャンタイム」と呼ぶ。スキャンタイムは、制御プログラムの演算時間に関するものであり、制御に関する演算周期又は制御に関する演算を繰り返し所定間隔で行うことから「サイクルタイム」とも呼ばれることもある。
【００４６】
制御装置に接続される制御対象装置は、例えば、工場内の生産や搬送等に用いられる設備に接続されるため、スキャン動作が遅れると、工場内の設備の動作が不安定になったり、予期しない動作が生じたりする場合がある。このため、所定のスキャンタイム内にスキャン動作を行う必要がある。
【００４７】
スキャンタイムは制御装置が制御する制御対象装置の数や種類の増加に応じて長くなるが、スキャンタイム内で制御対象装置のスキャン動作をすることが重要である。
【００４８】
制御装置に、Ｉ／Ｏポートが内蔵又は接続される。Ｉ／Ｏポートは、Ｉ／Ｏモジュール又はＩ／Ｏユニット等が有する場合がある。以下、Ｉ／Ｏポートそれ自体、又は、Ｉ／Ｏポートを有する装置（Ｉ／Ｏモジュール又はＩ／Ｏユニット等）を、「Ｉ／Ｏポート」と総称する場合がある。
【００４９】
Ｉ／Ｏポートは、制御対象装置に接続され、制御対象装置の動作に関する制御に使用されるものである。Ｉ／Ｏポートは、デジタル又はアナログのＩ／Ｏポートである。例えば、アナログＩ／Ｏポートは、制御装置の制御対象装置の電圧、電流、温度等の情報の読み書きに使用される。
【００５０】
制御プログラムに基づいて制御装置のＩ／Ｏポートから送信される制御情報を有線又は無線で受信するインバータユニットやＣＮＣ（Computerized Numerical Control）はインバータやＣＮＣ自体がアクチュエータのモーション制御を行うため、リアルタイム性が求められる。
【００５１】
また、制御対象装置の制御とは、制御対象装置が接続されている状態のＩ／Ｏポートの動作を制御することをいう。つまり、制御プログラムとは、制御対象装置が接続されたＩ／Ｏポートの制御を行うプログラム、言い換えれば、制御対象装置が接続されたＩ／Ｏポートに当該制御対象装置の制御情報を出力する（具体的には、例えば、当該制御情報の出力を含むスキャン動作を行う）プログラムである。
【００５２】
このような制御装置において、制御対象装置の制御に加えて、情報処理（例えば、複雑な算術演算やＳＣＡＤＡ、ＭＥＳ、クラウドシステムとの情報の送受信のような情報通信処理）を行うことを検討する。このような情報処理は、上述の制御特有の言語でプログラミングすることが困難な場合があり、Ｃ言語又はＪａｖａ（登録商標）言語などの情報処理分野で使われるプログラミング言語を用いて記述することがある。このような情報処理を実行するプログラムを「情報プログラム」と呼ぶ。
【００５３】
制御プログラムと情報プログラムの違いの一例について説明する。
【００５４】
上記したように制御プログラムは、制御装置のＩ／Ｏポートの制御に関係したプログラムであり、情報プログラムは、情報処理（例えば、上述のように、算術演算や、クラウドとの通信）を行うプログラムである。
【００５５】
制御プログラムは、ラダーやＳＴ言語等で記述され、ｊａｖａ（登録商標）やｐｙｔｈｏｎ等に代表される汎用言語に比べてリアルタイム性が高い。情報プログラムは、ｊａｖａ（登録商標）やｐｙｔｈｏｎ等に代表される言語で記述され、ラダー等よりも情報処理に適している。一つ以上の制御プログラムが実行されることで、例えば、設備制御部４５が実現される。
【００５６】
Ｃ言語等のリアルタイム性が高く、ハードウェアの制御にも適しており、また、情報処理にも適した言語は制御プログラムと情報プログラムのいずれにも利用可能な場合がある。
【００５７】
また、情報プログラムは、先に説明した制御プログラム以外のプログラムである。制御対象装置がＩ／Ｏポートを介して制御装置に接続されるが、情報プログラムは、制御対象装置に接続されるアナログやデジタルのＩ／Ｏポート（但し、情報プログラムとの共有が許容されているＩ／Ｏポートを除く）へアクセスしないプログラムである。別の言い方をすれば、制御プログラムは、制御対象装置に接続されるアナログやデジタルのＩ／Ｏポートに制御対象装置の制御情報を送信することを含むスキャン動作を行うプログラムであるが。一方、情報プログラムは、スキャン動作を含まない（スキャン動作とは異なる）情報処理を行うプログラム（つまり、スキャン動作を行うことがないプログラム）である。一つ以上の情報プログラムが実行されることで、例えば、作業遅延検出部２０、遅延種類判別部３０、影響推定部３５（再計画生成部４０、再計画部５０及び納期遅延判定部６０）、及び情報Ｉ／Ｏ部６１が実現される。
【００５８】
制御対象装置の制御に必要な情報（例えば、センサによる測定値）を取得するための通信を制御プログラムによる制御の一部とすること（すなわち、通信について制御プログラムに記述されていること）が考えられるが、通信のような情報処理は制御プログラムによる制御とは分離しておくことが望ましいと考えられる。そのように考えられる一つの理由は、制御装置の制御対象装置は、一般に、工作機械、自動組み立て装置又は自動搬送装置のような設備であるため、高い安定性、つまりリアルタイム性が求められるためである。
【００５９】
そこで、制御プログラムに加えて、通信のような情報処理について記述されたプログラムである情報プログラムを用意しておくことが考えられる。リアルタイム性を維持するために制御プログラムを優先するべく、情報プログラムをコントロール装置とは別の装置で実行することが考えられるが、資源節約の観点から、制御プログラムと情報プログラムの両方を制御装置のような同一プラットフォーム上で実行することが考えられる。制御プログラムと情報プログラムが共存する制御装置は、制御プログラムの他に情報プログラムを実行しても、制御プログラムを停止させることなく、又は、制御プログラムのスキャン動作を遅らせたり、制御プログラムの予期しない動作をさせたりすることなく、情報プログラムの追加、削除、更新（書き換え）又は入れ替えといったプログラム変更を行うことを実現することが期待できる。
【００６０】
図２は、スケジューリング処理の流れを示すフローチャートである。以下、図２のフローチャートを参照しながら、スケジューリング装置１０における処理の流れについて、説明する。
【００６１】
＜作業遅延検出＞
【００６２】
まず、例えば情報Ｉ／Ｏ部６１により作業の開始が検出されると（例えば、或る製品が工程ラインにおける或る位置を通過したことが検出されると）、スケジューリング処理が開始する。以下、開始が検出された作業を、便宜上、「対象作業」と言う。
【００６３】
作業遅延検出部２０が、対象作業中のロットの遅延状況を監視し、作業遅延があれば作業遅延を検出する（Ｓ１００）。
【００６４】
本説明では、予定の作業時間に対する、作業開始時刻から現在時刻までの経過時間の比率を、「予定進捗率」と呼ぶ。予定進捗率は、例えば下記式に従い算出される。
予定進捗率＝（現在時刻−作業開始時刻）／（予定作業時間）…（式１）
【００６５】
なお、「作業開始時刻」は、対象作業の開始が検出された時刻でよい。「予定作業時間」は、作業計画テーブル８０（図４参照）の欄８１ｈから取得された情報でよい。本実施形態における「ステップ」は、上述したように、作業員のような人が行う作業に関わるステップでもよいし、設備を制御する制御プログラムが実行するステップでもよい。後者の「ステップ」の数を示す情報は、制御プログラムのインターフェース経由で取得されてもよい。
【００６６】
本説明では、対象作業の作業ステップ数（例えば、作業枚数や、複数作業から成り立つ作業の場合は何種の作業から成り立つかをステップ数とする）に対する完了作業ステップ数（実際に完了した作業ステップ数）の比率を「作業進捗率」と呼ぶ。作業進捗率は、例えば下記式に従い算出される。
作業進捗率＝完了作業ステップ数／作業ステップ数…（式２）
【００６７】
なお、作業進捗率は、対象作業に対応したロットサイズに対する完了作業台数（実際に完了した製品の数）の比率、すなわち、作業進捗率＝完了作業台数／ロットサイズ…（式２´）でもよい。（式２´）は、ロットサイズが複数の場合（ロットサイズとしての値が“１”より大きい場合）に使用されてよく、（式２）は、ロットサイズが単品の場合（ロットサイズとしての値が“１”の場合）に使用されてよい。ロットサイズ及び作業ステップ数のうち少なくともロットサイズは、対象作業に関する情報に含まれていてよい。完了作業台数及び完了ステップ数の各々が、実作業量の一例でよい。なお、ロットサイズとしての値が“１”より大きい場合、（式２´）と（式３）の両方が使用されてもよい。すなわち、ロットについて、（式２´）が使用されて、ロットに属する各製品について、（式２）が使用されてもよい。この場合、作業進捗率は、（式２´）と（式２）を用いてそれぞれ算出された複数の値の少なくとも一つに基づいてよい（例えば、平均値、最大値又は最小値）。
【００６８】
本説明における「作業遅延」は、予定進捗率より作業進捗率が低いことを意味する。予定作業時間の終了前でも、予定進捗率より作業進捗率が低い場合、作業遅延が発生していると判別される。
【００６９】
なお、作業進捗率を算出するための情報として、設備の制御プログラムの作業ステップ数や実行ループ数等が用いられてもよく、上述の説明は、作業進捗率を算出するための情報の種類を限定する説明ではない。また、本説明では、予定進捗率から作業進捗率を減算することにより得られた値を「遅延指数」と呼ぶ。従って、遅延指数は、例えば下記式に従い算出される。
遅延指数＝予定進捗率−作業進捗率…（式３）
【００７０】
以上のように、作業計画テーブル８０から取得された情報と、インターフェース群経由で検出された作業実績から特定される実作業量とに基づいて、予定進捗率及び作業進捗率が得られ、結果として、遅延指数が得られる。遅延指数が所定の閾値を超えていることの検出が、作業遅延の検出でよい。
【００７１】
図３は、Ｓ１００の遅延検出処理の流れを示すフローチャートである。
【００７２】
まず、作業遅延検出部２０は、インターフェースデバイス部３を経由し、製造実行システムあるいは作業計画情報が保存されている装置から作業計画情報（作業計画に関する情報）を参照し、作業計画テーブル８０に事前に保存しているものとする。作業遅延検出部２０は、作業計画テーブル８０より対象作業に対応した作業計画データセット（品名、ロットサイズ、開始日時、作業ステップ数等）を取得する（Ｓ１０１）。
【００７３】
図４は、作業計画テーブル８０の例を示した図である。
【００７４】
作業計画テーブル８０は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄８１ｂと、工程名欄８１ｃと、ライン番号欄８１ｄと、ロット番号欄８１ｅと、品名欄８１ｆと、開始時刻欄８１ｇと、予定作業時間欄８１ｈと、ロットサイズ欄８１ｉと、作業形式欄８１ｊと、作業ステップ数欄８１ｋと、ＳＴ（Standard Time）欄８１ｌと、納期欄８１ｍとを有する。一つのレコードから取得される情報が、一つの作業計画データセットである。以下、一つの作業を例に取る（図４の説明において「注目作業」と言う）。
【００７５】
作業番号欄８１ｂには、注目作業の番号（例えば、作業の通し番号）を示す情報が格納される。
【００７６】
工程名欄８１ｃには、注目作業が実施される工程の工程名を示す情報が格納される。
【００７７】
ライン番号欄８１ｄには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
【００７８】
ロット番号欄８１ｅには、注目作業で扱われるロットのロット番号を示す情報が格納される。
【００７９】
品名欄８１ｆには、注目作業で扱われるロットの品名を示す情報が格納される。
【００８０】
開始時刻欄８１ｇには、注目作業の開始時刻を示す情報が格納される。
【００８１】
予定作業時間欄８１ｈには、注目作業にかかる予定作業時間を示す情報が格納される。
【００８２】
ロットサイズ欄８１ｉには、注目作業で扱われるロットに含まれる製造物の数量であるロットサイズを示す情報が格納される。
【００８３】
作業形式欄８１ｊには、注目作業の作業形式を示す情報が格納される。
【００８４】
作業ステップ数欄８１ｋには、注目作業の作業ステップ数を示す情報が格納される。
【００８５】
ＳＴ欄８１ｌには、注目作業のＳＴを示す情報が格納される。
【００８６】
納期欄８１ｍには、注目作業で扱われるロットの納期を示す情報が格納される。
【００８７】
再び図３を参照する。作業遅延検出部２０は、注目作業に対応した実績データセットを基に、完了作業ステップ数を算出する（Ｓ１０２）。
【００８８】
Ｓ１０２の一例は、以下の通りである。
【００８９】
まず、作業遅延検出部２０が、欄８１ｊが示す作業形式に応じて、器具位置データセット設備制御データセットのいずれかを取得する。
【００９０】
例えば、作業形式“人”の場合、作業遅延検出部２０が、対象作業に対応した作業計画データセットが示す工程名、ライン番号及び開始時刻の少なくとも一つに基づき、器具位置テーブル９０から、対象作業に関し作業エリアの器具の位置（例えば、ワークを載せる治具の位置等）を示す器具位置データセットを取得する。器具位置データセットは、実施形態に合わせて、冶具の位置に代えて又は加えて部材の位置等を示してもよい。
【００９１】
図５は、器具位置テーブル９０の例を示す図である。
【００９２】
器具位置テーブル９０は、例えば、サブ実績毎にレコードを有し、各レコードは、例えば、記録番号欄９１ｂと、工程名欄９１ｃと、ライン番号欄９１ｄと、作業器具位置欄９１ｅと、検出時刻欄９１ｆとを有する。以下、一つのサブ実績を例に取る（図５の説明において「注目サブ実績」と言う）。なお、「サブ実績」とは、例えば情報Ｉ／Ｏ部６１により特定された作業実績に含まれる複数の実績の各々を意味する。ここでのサブ実績は、器具位置（の検出）である。一つのレコードから取得される情報が、一つの器具位置データセットである。
【００９３】
記録番号欄９１ｂには、注目サブ実績を識別することのできる記録番号（例えば通し番号）を示す情報が格納される。
【００９４】
工程名欄９１ｃには、注目サブ実績に属する工程の工程名を示す情報が格納される。
【００９５】
ライン番号欄９１ｄには、注目サブ実績に属する工程ラインのライン番号を示す情報が格納される。
【００９６】
器具位置欄９１ｅには、注目サブ実績として検出された器具位置を示す情報が格納される。
【００９７】
検出時刻欄９１ｆには、注目サブ実績（器具位置）の検出された時刻を示す情報が格納される。
【００９８】
設備制御情報の場合、設備制御テーブル１００を参照し、制御プログラムの実行状況を参照する。
【００９９】
図６は、設備制御テーブル１００の例を示す図である。
【０１００】
設備制御テーブル１００は、例えば、サブ実績毎にレコードを有し、各レコードが、例えば、記録番号欄１０１ｂと、工程名欄１０１ｃと、ライン番号欄１０１ｄと、取得時刻欄１０１ｅと、プログラム名欄１０１ｆと、完了制御ステップ数欄１０１ｇと、制御ステップ数欄１０１ｈとを有する。一つのレコードから取得される情報が、一つの設備制御データセットである。以下、一つのサブ実績を例に取る（図６の説明において「注目サブ実績」と言う）。
【０１０１】
記録番号欄１０１ｂには、注目サブ実績を識別することのできる記録番号を示す情報が格納される。
【０１０２】
工程名欄１０１ｃには、注目サブ実績に属する工程の工程名を示す情報が格納される。
【０１０３】
ライン番号欄１０１ｄには、注目サブ実績に属する工程ラインのライン番号を示す情報が格納される。
【０１０４】
取得時刻欄１０１ｅには、注目サブ実績が取得（検出）された時刻を示す情報が格納される。
【０１０５】
プログラム名欄１０１ｆには、注目サブ実績に対応した制御プログラム（完了したステップに係る制御プログラム）のプログラム名を示す情報が格納される。
【０１０６】
完了制御ステップ数欄１０１ｇには、注目サブ実績に対応した制御プログラムの完了した制御ステップの数を示す情報が格納される。
【０１０７】
制御ステップ数欄１０１ｈには、注目サブ実績に対応した制御プログラムの制御ステップ数（総制御ステップ数）を示す情報が格納される。
【０１０８】
再び図３を参照する。Ｓ１０２では、作業遅延検出部２０が、対象作業に対応した実績データセット（器具位置データセットあるいは設備制御データセット）から完了作業ステップ数を算出する。実績データセットが器具位置データセットの場合、例えば、ライン内の器具または治具の位置が検知された回数を基に、完了作業ステップ数が算出される。実績データセットが設備制御データセットの場合、例えば、制御プログラムのループ回数を基に、完了作業ステップ数が算出される。
【０１０９】
次に、作業遅延検出部２０が、算出した完了作業ステップ数と、対象作業に対応した作業計画データセットが示す作業ステップ数とから、（式２）に従い作業進捗率を算出する（Ｓ１０３）。
【０１１０】
次に、作業遅延検出部２０が、対象作業に対応した作業計画データセットが示す開始時刻から現在時刻までの経過時間と、当該作業計画データセットが示す予定作業時間とから、（式１）に従い予定進捗率を算出し、当該予定進捗率とＳ１０３で算出された作業進捗率との差である作業遅延指数（（式３）に従う遅延指数）を算出する（Ｓ１０４）。
【０１１１】
次に、作業遅延検出部２０が、Ｓ１０３で算出された作業進捗率から、対象作業が継続中か（作業進捗率が１００％未満か）否かを判定する（Ｓ１０５）。Ｓ１０５の判定結果が偽の場合（Ｓ１０５でＮｏ）、遅延検出処理が終了する。
【０１１２】
Ｓ１０５の判定結果が真の場合（Ｓ１０５でＹｅｓ）、作業遅延検出部２０が、Ｓ１０４で算出された遅延指数から、遅延閾値テーブル１１０を基に、対象作業に遅延が発生しているか否かを判定する（Ｓ１０６）。
【０１１３】
図７は、遅延閾値テーブル１１０の例を示す図である。
【０１１４】
遅延閾値テーブル１１０は、例えば、工程毎に（或いは他の所定の単位で）レコードを有し、各レコードは、例えば、工程名欄１１１ｂと、作業遅延閾値欄１１１ｃと、納期遅延閾値欄１１１ｄと、作業開始遅れ閾値欄１１１ｅと、作業中断閾値欄１１１ｆとを有する。一つのレコードから取得される情報が、一つの遅延閾値データセットである。以下、一つの工程を例に取る（図７の説明において「注目工程」と言う）。
【０１１５】
工程名欄１１１ｂには、注目工程の工程名を示す情報が格納される。
【０１１６】
作業遅延閾値欄１１１ｃには、注目工程の作業遅延としての閾値を示す情報が格納される。
【０１１７】
納期遅延閾値欄１１１ｄには、注目工程の納期遅延としての閾値を示す情報が格納される。
【０１１８】
作業開始遅れ閾値欄１１１ｅには、注目工程の作業開始遅れとしての閾値を示す情報が格納される。
【０１１９】
作業中断閾値欄１１１ｆには、注目工程の作業中断としての閾値を示す格納される。
【０１２０】
なお、遅延閾値テーブル１１０における閾値としては、作業遅延閾値のように遅延指数と比較される閾値もあれば、作業開始遅れ閾値のように時刻に加算される閾値もある。すなわち、遅延閾値テーブル１１０における閾値としては、作業遅延を検出するための閾値の他に、作業開始遅れや作業中断といった作業遅延種類を判別するために使用される閾値もある。また、作業遅延閾値、納期遅延閾値、作業開始遅れ閾値及び作業中断閾値のうちの少なくとも一つは、作業や工程のような所定の単位で用意されることに代えて、作業や工程によらず共通でもよい。
【０１２１】
再び図３を参照する。Ｓ１０６で、例えば、作業遅延検出部２０が、対象作業に対応した作業計画データセットが示す工程名に対応した作業遅延閾値を遅延閾値テーブル１１０から特定し、Ｓ１０４で算出された遅延指数が、特定された作業遅延閾値を超えているか否かを判定する。Ｓ１０６の判定結果が真であること、つまり、遅延指数＞作業遅延閾値であることが、作業遅延の検出に相当する。
【０１２２】
Ｓ１０６の判定結果が真の場合（Ｓ１０６でＹｅｓ）、作業遅延検出部２０が、作業遅延テーブル１４０のうち対象作業に対応したレコードに情報を格納する（Ｓ１０７）。
【０１２３】
図８は、作業遅延テーブル１４０の例を示す図である。
【０１２４】
作業遅延テーブル１４０は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄１４１ｂと、工程名欄１４１ｃと、ライン番号欄１４１ｄと、遅延指数１４０ｅと、作業進捗率１４０ｆと、予定作業進捗率１４０gと、遅延フラグ欄１４１ｈと、検出時刻欄１４１ｉとを有する。一つのレコードから取得される情報が、一つの作業遅延データセットである。以下、一つの作業を例に取る（図８の説明において「注目作業」と言う）。
【０１２５】
作業番号欄１４１ｂには、注目作業の作業番号を示す情報が格納される。
【０１２６】
工程名欄１４１ｃには、注目作業が実施される工程の工程名を示す情報が格納される。
【０１２７】
ライン番号欄１４１ｄには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
【０１２８】
遅延指数欄１４１ｅには、注目作業の遅延指数を示す情報が格納される。
【０１２９】
作業進捗率欄１４１ｆには、注目作業の作業進捗率を示す情報が格納される。
【０１３０】
予定作業進捗率欄１４１ｆには、注目作業の予定作業進捗率を示す情報が格納される。
【０１３１】
遅延フラグ欄１４１ｈには、注目作業が遅延しているか否かの遅延フラグを示す情報が格納される。
【０１３２】
検出時刻欄１４１ｉには、注目作業の遅延が検出された時刻を示す情報が格納される。
【０１３３】
再び図３を参照する。Ｓ１０６の判定結果が真の場合、Ｓ１０７で、作業遅延検出部２０が、対象作業に対応した作業遅延フラグ“Ｔｒｕｅ”、予定作業進捗率、及び遅延指数等を示す作業遅延データセットを、作業遅延テーブル１４０に格納する。その後、遅延検出処理が終了する。
【０１３４】
Ｓ１０６の判定結果が偽の場合（Ｓ１０６でＮｏ）、処理がＳ１０２に遷移する。作業遅延検出部２０が、対象作業について、Ｓ１０２からＳ１０６を一定のタイミングで繰り返して実行することにより、対象作業に遅延が発生しているか否かを監視することができる。Ｓ１０２からＳ１０６を実行するタイミングは、実施形態に合わせて、例えば、任意の時間が経過する都度や一つの作業ステップが完了する都度等でよい。
【０１３５】
以上が、図２のＳ１００（遅延検出処理）である。
【０１３６】
再び図２を参照する。作業遅延検出部２０が、作業遅延テーブル１４０を参照し、対象作業の遅延フラグが立っているか否か（“Ｔｒｕｅ”か“Ｆａｌｓｅ”か）を判定する（Ｓ２００）。Ｓ２００の判定結果が偽の場合（Ｓ２００でＮｏ）、スケジューリング処理が終了する。
【０１３７】
以上のように、作業遅延検出部２０は、対象作業の開始が検出された場合（例えば、当該検出後直ちに遅延検出処理を行うことで、当該対象作業の終了が検出される前に）、作業計画テーブル８０のうちの対象作業に対応した作業計画データセットと、対象作業について検出された作業実績から特定される実作業量とを基に、対象作業の作業遅延の有無を判断することができる。
【０１３８】
＜遅延種類判別部＞
【０１３９】
Ｓ２００の判定結果が真の場合（Ｓ２００でＹｅｓ）、遅延種類判別部３０が、作業遅延テーブル１４０のうち対象作業に対応した作業遅延データセットを参照し、作業遅延の種類を判別する（Ｓ３００）。
【０１４０】
図９は、Ｓ３００の作業遅延種類判別処理の流れを示すフローチャートである。
【０１４１】
まず、遅延種類判別部３０が、作業計画テーブル８０から対象作業に対応した作業計画データセットを取得し、遅延閾値テーブル１１０から対象作業の工程に対応した遅延閾値データセットを取得し、作業遅延テーブル１４０から対象作業に対応した作業遅延データセットを取得する（Ｓ３０１）。
【０１４２】
次に、遅延種類判別部３０が、取得された作業計画データセットと作業遅延データセットと遅延閾値データセットを用いて対象作業の遅延の種類を判定する。
【０１４３】
具体的には、遅延種類判別部３０が、作業計画データセットが示す開始時刻から、時刻Ｘ（当該開始時刻に遅延閾値データセットが示す作業開始遅れ閾値が加算された時刻）までの間、作業進捗率が０％のままであるか否かを判定する（Ｓ３０２）。
【０１４４】
Ｓ３０２の判定結果が真の場合（Ｓ３０２でＹｅｓ）、遅延種類判別部３０が、発生している作業遅延の遅延種類は作業開始遅れと判別し、現在時刻と開始時刻の差である作業遅延時間を算出し、遅延種類テーブル１２０のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業開始遅れ”を格納し、且つ、当該レコードに、作業遅延時間を示す情報を格納する（Ｓ３０３）。
【０１４５】
Ｓ３０２の判定結果が偽の場合（Ｓ３０２でＮｏ）、遅延種類判別部３０が、作業遅延データセットが示す検出時刻から、時刻Ｙ（当該検出時刻に遅延閾値データセットが示す作業中断閾値が加算された時刻）までの間、作業進捗率が一定時間以上変化していない（例えば、作業進捗率が一定時間以上０％である）時間帯があるか否かを判定する（Ｓ３０４）。
【０１４６】
Ｓ３０４の判定結果が真の場合（Ｓ３０４でＹｅｓ）、遅延種類判別部３０が、発生している作業遅延の遅延種類は作業中断と判別し、作業進捗率が変化していない時間を作業遅延時間とし、遅延種類テーブル１２０のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業中断”を格納し、且つ、当該レコードに、作業遅延時間を示す情報を格納する（Ｓ３０５）。
【０１４７】
Ｓ３０４の判定結果が偽の場合（Ｓ３０４でＮｏ）、遅延種類判別部３０が、発生している作業遅延の遅延種類は作業能率低下と判別し、作業能率（＝作業進捗率／予定作業進捗率）を算出し、作業能率と予定作業時間とを基に作業遅延時間を算出し、遅延種類テーブル１２０のうち対象作業に対応したレコードに、作業遅延種類の情報として“作業能力低下”を格納し、且つ、当該レコードに、算出された作業能率及び作業遅延時間を示す情報を格納する（Ｓ３０６）。
【０１４８】
以上が、図２のＳ３００（作業遅延種類判別処理）である。
【０１４９】
図１０は、遅延種類テーブル１２０の例を示す図である。
【０１５０】
遅延種類テーブル１２０は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄１２１ｂと、工程名欄１２１ｃと、ライン番号欄１２１ｄと、作業遅延種類１２０ｅと、作業遅延時間１２０ｆと、作業能率欄１２１ｇと、検出時刻欄１２１ｈとを有する。一つのレコードから取得される情報が、一つの遅延種類データセットである。以下、一つの作業を例に取る（図１０の説明において「注目作業」と言う）。
【０１５１】
作業番号欄１２１ｂには、注目作業の作業番号を示す情報が格納される。
【０１５２】
工程名欄１２１ｃには、注目作業が実施される工程の工程名を示す情報が格納される。
【０１５３】
ライン番号欄１２１ｄには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
【０１５４】
作業遅延種類欄１２１ｅには、対象作業の作業遅延種類を示す情報が格納される。
【０１５５】
作業遅延時間欄１２１ｆには、対象作業の作業遅延時間を示す情報が格納される。
【０１５６】
作業能率欄１２１ｇには、対象作業の作業能率を示す情報が格納される。
【０１５７】
＜再計画生成部＞
【０１５８】
再び図２を参照する。Ｓ３００の次に、再計画生成部４０は、再計画（作業計画テーブル８０の更新）に用いる再計画テーブル１３０を生成する（Ｓ４００）。
【０１５９】
図１１は、Ｓ４００の再計画生成処理の流れを示すフローチャートである。
【０１６０】
まず、再計画生成部４０が、作業計画テーブル８０と、遅延種類テーブル１２０とを取得する（Ｓ４０１）。
【０１６１】
次に、再計画生成部４０が、取得した作業計画テーブル８０と遅延種類テーブル１２０から、再計画テーブル１３０を生成する（Ｓ４０２）。具体的には、再計画生成部４０が、遅延種類テーブル１２０が有する遅延種類データセット（レコード）毎に、当該遅延種類データセットが示す作業遅延種類、作業遅延時間及び作業能率と、当該遅延種類データセットが示す作業番号に対応した作業計画データセットとを基に、当該作業計画データセットの更新のための再計画データセットを生成する。Ｓ４０２では、例えば、作業遅延種類“作業能率低下”を示している遅延種類データセットがある場合、再計画生成部４０が、“作業能率低下”に対応した作業のＳＴ（作業計画データセットが示すＳＴ）の変更後のＳＴを算出する。変更後のＳＴは、例えば下記式に従い算出される。なお、下記式において、「変更前のＳＴ」は、当該作業に対応した作業計画データセットが示すＳＴであり、「作業能率」は、当該作業に対応した遅延種類データセットが示す作業能率である。
変更後のＳＴ＝（変更前のＳＴ）＊（作業能率／１００）…（式４）
【０１６２】
次に、再計画生成部４０が、Ｓ４０２で生成された再計画テーブル１３０を格納する（Ｓ４０３）。
【０１６３】
以上が、図２のＳ４００（再計画生成処理）である。
【０１６４】
図１２は、再計画テーブル１３０の例を示す図である。
【０１６５】
再計画テーブル１３０は、例えば、作業毎にレコードを有し、各レコードは、例えば、作業番号欄１３１ｂと、工程名欄１３１ｃと、ライン番号欄１３１ｄと、品名欄１３１ｅと、作業遅延時間１３０ｆと、ＳＴ欄１３１ｇと、予定作業時間欄１３１ｈと、完了時刻欄１３１ｉとを有する。一つのレコードから取得される情報が、一つの再計画データセットである。以下、一つの作業を例に取る（図１２の説明において「注目作業」と言う）。
【０１６６】
作業番号欄１３１ｂには、注目作業の作業番号を示す情報が格納される。
【０１６７】
工程名欄１３１ｃには、注目作業が実施される工程の工程名を示す情報が格納される。
【０１６８】
ライン番号欄１３１ｄには、注目作業が実施される工程ラインのライン番号を示す情報が格納される。
【０１６９】
品名欄１３１ｅには、注目作業で扱われるロットの品名を示す情報が格納される。
【０１７０】
作業遅延時間欄１３１ｆには、対象作業の作業遅延時間を示す情報が格納される。
【０１７１】
ＳＴ欄１３１ｇには、対象作業（及び工程）のＳＴ（例えば、算出された変更後のＳＴ）を示す情報が格納される。
【０１７２】
予定作業時間欄１３１ｈには、注目作業の予定作業時間を示す情報が格納される。例えば、当該予定作業時間は、ＳＴが変更された場合、再計画生成部４０により、注目作業に対応した作業計画データセットが示す予定作業時間が変更後のＳＴに基づき変更された結果としての予定作業時間である。
【０１７３】
完了時刻欄１３１ｉには、注目作業の完了時刻を示す情報が格納される。当該完了時刻は、例えば、注目作業に対応した開始時刻、予定作業時間及び作業遅延時間とに従う。
【０１７４】
＜再計画部＞
【０１７５】
再び図２を参照する。Ｓ４００の次に、再計画部５０は、再計画を行う（Ｓ５００）。
【０１７６】
図１３は、Ｓ５００の再計画処理の流れを示すフローチャートである。
【０１７７】
まず、再計画部５０が、再計画テーブル１３０を取得する（Ｓ５０１）。
【０１７８】
次に、再計画部５０が、取得された再計画テーブル１３０を用いて、再計画（すなわち、作業計画テーブル８０の更新）を行う（Ｓ５０２）。再計画は、既存の生産シミュレータが用いられてよい。生産シミュレータには、例えば、生産ラインに関する情報（例えば、工程数、各工程の設備台数や設備稼働時刻、及び作業者数等）が予め入力されていてよい。生産シミュレータに再計画テーブル１３０（及び既存の作業計画テーブル８０）が入力されると、生産シミュレータにより、更新後の作業計画テーブル８０が生成される。
【０１７９】
次に、再計画部５０が、再計画の結果としての更新後の作業計画テーブル８０を格納する（Ｓ５０３）。
【０１８０】
以上が、図２のＳ５００（再計画処理）である。
【０１８１】
＜納期遅延判定部＞
【０１８２】
再び図２を参照する。Ｓ５００の次に、納期遅延判定部６０は、再計画処理後の作業計画テーブル８０から納期遅延の発生の有無を判別する（Ｓ６００）。
【０１８３】
図１４は、Ｓ６００の納期遅延判定処理の流れを示すフローチャートである。
【０１８４】
まず、納期遅延判定部６０が、作業計画テーブル８０と、遅延閾値テーブル１１０とを取得する（Ｓ６０１）。
【０１８５】
次に、納期遅延判定部６０が、取得された作業計画テーブル８０が有する作業計画データセット毎に、作業完了時刻（再計画テーブル１３０から特定される時刻）が納期を過ぎており、且つ、作業完了時刻と納期との差分が、当該作業計画データセットに対応した工程についての納期遅延閾値を超えていれば、当該作業計画データセットに対応した作業について納期遅延が生じると判別する（Ｓ６０２）。
【０１８６】
次に、納期遅延判定部６０が、納期遅延を起こしているロットに関する情報（例えば、作業完了時刻、納期、及び、作業完了時刻と納期との差分である納期遅延時間を示す情報）を納期遅延テーブル１６０に格納し、納期遅延テーブル１６０に基づく情報を表示する管理支援画面を表示する（Ｓ６０３）。
【０１８７】
以上が、図２のＳ６００（納期判定処理）である。なお、納期判定処理は、Ｓ６０１から納期遅延テーブル１９０の格納までを含み、管理支援画面の表示は、納期遅延テーブル１６０の格納後、任意のタイミングで行われてよい。
【０１８８】
図１５は、納期遅延テーブル１６０の例を示す図である。
【０１８９】
納期遅延テーブル１６０は、例えば、納期遅延との判別結果が得られたロット毎にレコードを有し、各レコードが、例えば、ロット番号欄１６１ｂと、完了時刻欄１６１ｃと、納期欄１６１ｄと、納期遅延時間欄１６１ｅとを有する。
【０１９０】
ロット番号欄１６１ｂには、ロット番号を示す情報が格納される。
【０１９１】
完了時刻欄１６１ｃには、作業完了時刻を示す情報が格納される。
【０１９２】
納期欄１６１ｄには、納期を示す情報が格納される。
【０１９３】
納期遅延時間欄１６１ｅには、納期遅延時間（作業完了時刻と納期との差分）を示す情報が格納される。
【０１９４】
図１６は、管理支援画面の例を示す図である。
【０１９５】
管理支援画面６０００は、納期遅延が発生しているロットの情報の表示領域６００ａと、遅延が発生しているロットの作業計画の表示領域６００ｂとを有する。表示領域６００ａに表示される情報は、例えば、作業計画テーブル８０及び遅延種類テーブル１２０に基づく。表示領域６００ｂに表示される情報は、作業計画テーブル８０を含む上述のテーブル群のうちの少なくとも一部（図示しない一つ以上のテーブルの少なくとも一部を含んでよい）に基づく。管理支援画面６０００は、上述の表示領域６００ａ及び６００ｂの少なくとも一つに代えて又は加えて、例えば、納期遅延に関する情報だけでなく、作業遅延に関する情報（例えば、作業遅延テーブル１４０に基づく情報）の表示領域や再計画に関する情報（例えば、再計画テーブル１３０に基づく情報）の表示領域を有してもよい。
【０１９６】
以上の実施形態を、例えば以下のように総括することができる。
【０１９７】
生産システム４は、それぞれが作業者又は設備により行われる複数の作業を経て一つ以上の製品を生産するシステムである。生産システム４での生産を管理する生産管理装置の一例としてのスケジューリング装置１０が、作業遅延検出部２０、遅延種類判別部３０及び影響推定部３５を有する。作業遅延検出部２０は、対象作業（いずれかの作業であり開始が検出された作業）の作業実績（例えば、情報Ｉ／Ｏ部６１により生産システム４から取得された実データ（例えば時系列データ）が示す作業実績）から特定される実作業量と、作業計画に関する情報である作業計画情報（例えば、作業計画テーブル８０）のうち対象作業に対応した部分である対象計画情報（例えば、対象作業に対応した作業計画データセット）とを基に、対象作業の作業遅延の有無を判断する。対象作業の作業遅延が検出された場合、遅延種類判別部３０が、対象作業の実作業量と、対象計画情報と、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値（例えば、遅延閾値テーブル１１０が示す複数の閾値）とを基に、検出された作業遅延の作業遅延種類を判別する。影響推定部３５が、検出された作業遅延が生産へ与える影響であり作業計画からの遅延の度合である遅延影響度合を、判別された作業遅延種類を基に推定する。このように、複数の作業遅延種類に関し定義された一つ以上の値を含む一つ又は複数の値が用意されており、当該一つ又は複数の値を基に、作業遅延種類が判別され、遅延影響度合が、判別された作業遅延種類を基に推定される。このため、発生した作業遅延の影響が正確に推定される。
【０１９８】
遅延種類判別部３０は、作業遅延の検出時刻から第１の時刻（例えば時刻Ｙ）までの間に、対象作業の対象計画情報と対象作業の実作業量とに従う作業進捗率（例えば、（式２）又は（式２´）に従う）が一定時間以上変化していない時間帯がないことを特定した場合、作業遅延種類が作業能率低下であると判別する。作業能率低下が生じる原因として、作業者や設備の不調が考えられるが、そういった原因を技術的に検知することは困難であるが、遅延種類判別部３０によれば、作業遅延が検出された後の作業進捗率の変化の状況を特定するため、そのような状況から作業能率低下を判別することができる。なお、ここで言う「一定時間」は、予め定められた時間長（例えば、作業進捗率が一定である時間長が、作業が中断しているとみなせない最大の時間長）でよい。
【０１９９】
遅延種類判別部３０は、作業遅延の検出時刻から第１の時刻までの間に上記の時間帯があることを特定した場合、作業遅延種類が作業中断であると判別する。このように、作業遅延の検出時刻から第１の時刻までの間に上記の時間帯があるか否かに応じて、作業遅延種類が、作業能率低下であるか作業中断であるかを判別できる。
【０２００】
上記第１の時刻は、作業遅延の検出時刻に、上記一つ以上の値のうち作業中断に対応した値（例えば、作業中断閾値）が加算された時刻である。これにより、作業遅延種類が作業能率低下であるか作業中断であるかの判別の正確性が向上することが期待できる。
【０２０１】
遅延種類判別部３０は、対象作業の開始時刻から第２の時刻（例えば、時刻Ｘ）までの間に作業進捗率がゼロのままであることを特定した場合、作業遅延種類が作業開始遅れであると判別する。これにより、作業遅延種類として、作業能率低下の他に作業開始遅れを判別することができる。なお、第２の時刻は、開始時刻に、上記一つ以上の値のうち作業開始遅れに対応した値（例えば、作業開始遅れ閾値）が加算された時刻である。これにより、作業遅延種類が作業開始遅れであることの判別の正確性が向上することが期待できる。
【０２０２】
対象計画情報が、対象作業のＳＴ（Standard Time）を示す情報と対象作業の予定作業時間を示す情報とを含む。作業遅延種類が作業能率低下の場合、影響推定部３５が、対象作業のＳＴを、対象作業の作業能率に基づき変更する。当該作業能率は、対象作業の作業進捗率と予定進捗率とに基づく。予定進捗率は、対象作業の開始時刻からの経過時間と、対象作業に対応した予定作業時間とに従う（例えば（式１）に従う）。影響推定部３５が、対象作業について、開始時刻、作業能率、変更後のＳＴ及び予定作業時間（対象計画情報が示す予定作業時間）に基づき、遅延影響度合を推定する。作業能率低下の原因として、上述したように作業者や設備の不調が考えられるが、その場合、所定のＳＴを守ることは困難であると考えられる。影響推定部３５によれば、作業遅延種類が作業能率低下の場合、対象作業のＳＴが、対象作業の作業能率に基づいて変更されるので、作業能率に適したＳＴが期待され、故に、遅延影響度合の正確性の向上が期待できる。
【０２０３】
対象計画情報が、対象作業に対応した納期を示す情報を含む。作業遅延種類が作業能率低下の場合、影響推定部３５が、対象作業の完了時刻（開始時刻、作業能率、変更後のＳＴ及び予定作業時間に基づき算出された時刻）と、対象作業に対応した納期との差が、複数の値のうち納期遅延に関し定義された値（例えば、納期遅延閾値）を超えている場合、遅延影響度合として、納期遅延が生じると推定する。これにより、作業能率低下が納期遅延にまで影響するか否かがわかる。
【０２０４】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
【符号の説明】
【０２０５】
１０…スケジューリング装置
【図１】
2020194458.tif 000003
【図２】
2020194458.tif 000004
【図３】
2020194458.tif 000005
【図４】
2020194458.tif 000006
【図５】
2020194458.tif 000007
【図６】
2020194458.tif 000008
【図７】
2020194458.tif 000009
【図８】
2020194458.tif 000010
【図９】
2020194458.tif 000011
【図１０】
2020194458.tif 000012
【図１１】
2020194458.tif 000013
【図１２】
2020194458.tif 000014
【図１３】
2020194458.tif 000015
【図１４】
2020194458.tif 000016
【図１５】
2020194458.tif 000017
【図１６】
2020194458.tif 000018