(57)【特許請求の範囲】
【請求項１】
１以上のコントローラが設置され、任意のコントローラのプログラム更新の際に支援装置から該コントローラにプログラムがダウンロードされるコントローラシステムであって、
任意の場所に設置される第１のＡＲマーカーと、
作業者に所持させる第２のＡＲマーカーとが設けられ、
前記支援装置は、
撮影手段と、
支援手段と、
ＡＲ手段とを有し、
前記支援手段は、前記プログラムのダウンロードの際、前記ＡＲ手段を起動し、
起動された前記ＡＲ手段は、前記撮影手段による撮影画像中に前記第１のＡＲマーカーと前記第２のＡＲマーカーの両方が検出された場合、該検出された第１のＡＲマーカー、第２のＡＲマーカーそれぞれに対応する所定の情報を該撮影画像に合成して成る合成画像を生成し、
前記支援手段は、該合成画像が生成されない場合には前記プログラムのダウンロードを実行せず、該合成画像が生成された場合あるいは該合成画像が生成され更に所定の条件が満たされた場合には、前記プログラムのダウンロードを実行すると共に該合成画像も一緒にダウンロードすることを特徴とするコントローラシステム。
【請求項２】
前記所定の条件が満たされる場合は、作業者を撮影する為の新たな撮影画像から抽出される顔データが、前記検出された第２のＡＲマーカーに対応する正当な顔データと合致する場合であることを特徴とする請求項１記載のコントローラシステム。
【請求項３】
予め、前記各第２のＡＲマーカーに対応付けて、その正当な所有者である作業者本人の画像データが記憶された作業者画像記憶手段と、
顔認証手段と、
を更に有し、
前記支援手段は、前記合成画像が生成された場合には更に前記顔認証手段を起動し、
起動された前記顔認証手段は、前記ＡＲ手段が検出した前記第２のＡＲマーカーに対応する前記作業者本人の画像データを前記作業者画像記憶手段から取得して、該取得した画像データから顔データを抽出して正当顔データとし、また、前記新たな撮影画像から顔データを抽出し、該抽出した顔データが前記正当顔データと合致する場合には照合成功とし、
前記支援手段は、該顔認証手段によって照合成功した場合には、前記所定の条件が満たされたものとすることを特徴とする請求項２記載のコントローラシステム。
【請求項４】
前記支援手段は、前記顔認証手段によって照合失敗した場合には、前記新たな撮影画像または該撮影画像から抽出した顔データを、不正アクセスデータとして記録することを特徴とする請求項２記載のコントローラシステム。
【請求項５】
前記第１のＡＲマーカーに対応する設備情報を予め記憶する設備情報記憶手段と、
前記第２のＡＲマーカーに対応する作業者情報を予め記憶する作業者情報記憶手段とを更に有し、
前記ＡＲ手段は、前記検出された第１のＡＲマーカーに対応する前記設備情報と、前記検出された第２のＡＲマーカーに対応する前記作業者情報とを、前記所定の情報として前記撮影画像に合成することを特徴とする請求項１〜４の何れかに記載のコントローラシステム。
【請求項６】
前記ＡＲ手段は、更に、現在日時を取得して、該現在日時情報も前記所定の情報に含めて前記撮影画像に合成することを特徴とする請求項５記載のコントローラシステム。
【請求項７】
前記設備情報は、前記検出した第１のＡＲマーカーの設置場所または該設置場所に設置される前記コントローラを示す情報であり、
前記作業者情報は、前記検出した第２のＡＲマーカーを所持する作業者を示す情報であることを特徴とする請求項５記載のコントローラシステム。
【請求項８】
前記コントローラは複数台設けられ、前記第１のＡＲマーカーは、前記各コントローラの各設置場所にそれぞれ設けられる複数の第１のＡＲマーカーであることを特徴とする請求項１〜４の何れかに記載のコントローラシステム。
【請求項９】
前記第２のＡＲマーカーは、複数の前記作業者にそれぞれ所持させる複数の第２のＡＲマーカーであることを特徴とする請求項１〜４の何れかに記載のコントローラシステム。
【請求項１０】
１以上のコントローラが設置され、任意のコントローラにプログラムの更新を実行可能に構成された支援装置であって、
撮影手段と、
支援手段と、
ＡＲ手段とを有し、
前記支援手段は、前記プログラムのダウンロードの際、前記ＡＲ手段を起動し、
起動された前記ＡＲ手段は、前記撮影手段による撮影画像の中に、任意の場所に設置される第１のＡＲマーカーと、作業者に所持させる第２のＡＲマーカーの両方が検出された場合、該検出された第１のＡＲマーカー、第２のＡＲマーカーそれぞれに対応する所定の情報を、該撮影画像に合成して成る合成画像を生成し、
前記支援手段は、該合成画像が生成されない場合には前記プログラムのダウンロードを実行せず、該合成画像が生成された場合あるいは該合成画像が生成され更に所定の条件が満たされた場合には、前記プログラムのダウンロードを実行すると共に該合成画像も一緒にダウンロードすることを特徴とする支援装置。
【請求項１１】
前記所定の条件が満たされる場合は、作業者を撮影する為の新たな撮影画像から抽出される顔データが、前記検出された第２のＡＲマーカーに対応する正当な顔データと合致する場合であることを特徴とする請求項１０記載の支援装置。
【請求項１２】
前記各第２のＡＲマーカーに対応付けて、その正当な所有者である作業者本人の画像データが記憶された作業者画像記憶手段と、
顔認証手段と、
を更に有し、
前記支援手段は、前記合成画像が生成された場合には更に前記顔認証手段を起動し、
起動された前記顔認証手段は、前記ＡＲ手段が検出した前記第２のＡＲマーカーに対応する前記作業者本人の画像データを前記作業者画像記憶手段から取得して、該取得した画像データから顔データを抽出して正当顔データとし、また、前記新たな撮影画像から顔データを抽出し、該抽出した顔データが前記正当顔データと合致する場合には照合成功とし、
前記支援手段は、該顔認証手段によって照合成功した場合には、前記所定の条件が満たされたものとすることを特徴とする請求項１１記載の支援装置。
【請求項１３】
前記支援手段は、該顔認証手段によって照合失敗した場合には、前記新たな撮影画像または該撮影画像から抽出した顔データを、不正アクセスデータとして記録することを特徴とする請求項１１記載の支援装置。
【請求項１４】
前記検出される第１のＡＲマーカーは、任意の各場所に設置される複数の第１のＡＲマーカーのうちの１つであり、
前記検出される第２のＡＲマーカーは、複数の作業者それぞれに所持させる複数の第２のＡＲマーカーのうちの１つであることを特徴とする請求項１０〜１３の何れかに記載の支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラのプログラムをユーザに編集させる支援装置から、コントローラのプログラムを更新するシステムに関する。
【背景技術】
【０００２】
コントローラへのプログラムダウンロードでは、支援装置内のプロジェクトが接続先のコントローラに対応したものであるかどうかを、照合機能によって確認を行い、ダウンロードを行うようにしている。
【０００３】
その方法として、対象となるコントローラの機種だけでなく周辺モジュール等を含めたシステム構成定義によって、支援装置内のプロジェクトが接続先のコントローラと一致しているかどうかの判断を行っており、稼働中におけるオンライン更新では、さらに、特許文献１で提案されているように、識別子によって更新プログラムの継続性を保障するようになっている。
【０００４】
このような仕組みにより、接続先のコントローラには、そのコントローラに合致した支援装置内のプロジェクトから、プログラムがダウンロードされるようになっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2013-168031号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の技術では、接続先のコントローラには、そのコントローラに合致した支援装置内のプロジェクトからプログラムがダウンロードされるようになっており、その仕組みについては上述した通りである。
【０００７】
しかし、図１２に示すように、コントローラ（ＰＬＣ１００；以下、コントローラ１００と記す）は、接続された支援装置１１０内のプロジェクトの正当性が保障されさえすれば、そのプロジェクトからのプログラムを受け入れるため、そのコントローラ１００に対応するプロジェクトさえあれば、何時でもコントローラ１００のプログラムを入れ替えることができるようになっている。
【０００８】
また、支援装置１１０内のプロジェクトにも、コントローラ１００内にも、プログラムダウンロード操作に関する記録が残らず、それらについては、別途、ユーザによる運用によって管理されている。このような従来の技術では、人為的なミスなどにより、本来の運用とは異なるタイミングでプログラム更新が行われた場合、ユーザで管理しているプログラムと異なるプログラムがコントローラ１００にダウンロードされることになる。
【０００９】
このような状況において、コントローラ１００のプログラムに問題が見つかった場合、コントローラ１００内にプログラム更新に関する情報が存在しないため、そのプログラムが何時、誰の手によって更新されたのか、原因を特定することが容易ではないため、再発防止といった対策が取りにくいといった問題が発生する。
【００１０】
そこで、コントローラ１００にダウンロードされているプログラムが、不特定の場所、人から実行されることなく、何時、何処から、誰によって実行されたかどうかを特定できる仕組みが要望されている。
【００１１】
本発明の課題は、任意の支援装置から任意のコントローラへプログラムをダウンロードする際に、ＡＲマーカーを利用して生成した更新証拠画像を保存することで、後に更新証拠画像を参照すれば、何時、何処から、誰によってプログラム更新が実行されたのかを特定できるようにするコントローラシステム等を提供することである。
【課題を解決するための手段】
【００１２】
本発明のコントローラシステムは、１以上のコントローラが設置され、任意のコントローラのプログラム更新の際に支援装置から該コントローラにプログラムがダウンロードされるコントローラシステムであって、任意の場所に設置される第１のＡＲマーカーと、作業者に所持させる第２のＡＲマーカーとが設けられる。
【００１３】
そして、前記支援装置は、下記の各手段を有する。
・撮影手段；
・前記プログラムのダウンロードの際、ＡＲ手段を起動する支援手段；
・該ＡＲ手段。
【００１４】
そして、ＡＲ手段は、前記撮影手段による撮影画像中に前記第１のＡＲマーカーと前記第２のＡＲマーカーの両方が検出された場合、該検出された第１のＡＲマーカー、第２のＡＲマーカーそれぞれに対応する所定の情報を該撮影画像に合成して成る合成画像を生成する。
【００１５】
前記支援手段は、該合成画像が生成されない場合には前記プログラムのダウンロードを実行せず、該合成画像が生成された場合あるいは該合成画像が生成され更に所定の条件が満たされた場合には、前記プログラムのダウンロードを実行すると共に該合成画像も一緒にダウンロードする。
【発明の効果】
【００１６】
本発明のコントローラシステム等によれば、任意の支援装置から任意のコントローラへプログラムをダウンロードする際に、ＡＲマーカーを利用して生成した更新証拠画像を保存することで、後に更新証拠画像を参照すれば、何時、何処から、誰によってプログラム更新が実行されたのかを特定できるようになる。
【図面の簡単な説明】
【００１７】
【図１】本例の第１の実施例のコントローラシステムの構成図である。
【図２】第１の実施例の支援ソフトの処理フローチャート図である。
【図３】ＡＲアプリの処理フローチャート図である。
【図４】第１の実施例のコントローラシステムの機能構成図である。
【図５】第２の実施例の課題について説明する為の図である。
【図６】第２の実施例のコントローラシステムの構成図である。
【図７】第２の実施例の支援ソフトの処理フローチャート図である。
【図８】顔認証アプリの処理フローチャート図である
【図９】図８のステップＳ６６の処理の詳細フローチャート図である。
【図１０】変形例を示す図である。
【図１１】第２の実施例のコントローラシステムの機能構成図である。
【図１２】従来のコントローラシステムについて説明する為の図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例の第１の実施例のコントローラシステムの構成図である。
まず、本手法は、既存のＡＲマーカー、ＡＲアプリの仕組み（ＡＲ技術）を利用するものであり、これらについては既存技術であるので特に詳細には説明しないが、以下、簡単に説明する。
【００１９】
ＡＲマーカーは、画像認識型ＡＲ（Augmented Reality：拡張現実）システムにおいて、付加情報を表示する位置を指定するための標識となる、決まったパターンの画像のことである。どのようなパターンをＡＲマーカーとするかは、システムの種類によって様々であるが、よく用いられるのは単純ではっきりした白黒の図形やＱＲコードなどである。本説明の具体例では、丸（○）、三角（△）、四角（□）、星型（☆）等の単純な図形を、ＡＲマーカーとして用いるものとする。
【００２０】
ＡＲマーカーを印刷する等して現実世界に設置すると、ＡＲシステムがその画像の写った部分に重ねて、指定された情報を表示するようになる。この様なＡＲシステムの処理を実現するアプリケーションプログラムが、上記ＡＲアプリである。
【００２１】
カメラ等を備える情報処理端末に上記ＡＲアプリを搭載しておき、ＡＲアプリは、カメラ等による撮影画像中にＡＲマーカーが写っている場合には、このＡＲマーカーに対応する所定の情報を画像上に重ねて（合成して）表示する。勿論、その為に、予め各ＡＲマーカーの画像や、それに対応する所定の情報等が、情報処理端末に記憶されている。
【００２２】
そして、上記所定の情報等が合成された撮影画像（拡張現実画像と呼ぶものとする）を、保存・記憶する。但し、本例のＡＲアプリは、所定の条件が満たされない限り、拡張現実画像の保存・記憶を許可しない。あるいは、所定の条件が満たされない限り、拡張現実画像の生成自体を許可しないようにしてもよい。所定の条件については後述する。本例のＡＲアプリ２２は、既存の一般的なＡＲアプリの機能に、この様な所定の条件と許可に係る機能が加わったものと見做しても良い。
【００２３】
以上、既存の一般的なＡＲマーカーやＡＲアプリの機能について簡単に説明すると共に、本例のＡＲアプリ２２についても簡単に説明した。
以下、図１のシステム構成について説明する。
【００２４】
本例のコントローラシステムでは、複数の支援装置２０、複数のコントローラ（本例ではＰＬＣ（プログラマブルコントローラ）１０）が存在し得る。そして、誰が、何時、どの支援装置２０を用いて、どのＰＬＣ１０のプログラムを更新するのかは、各ユーザの自由である。この為、上述したように従来では、任意のコントローラの動作に何等かの不具合が生じた場合に、誰が、何時、更新したプログラムの不具合であるのかを、特定出来なかった。本手法では、この問題を解消できる。
【００２５】
尚、本例のコントローラシステムは、上記プログラマブルコントローラ（ＰＬＣ）のシステムの例に限らず、例えばＤＣＳ（分散制御ステム；distributed control system）等であってもよい。
【００２６】
また、尚、支援装置２０は、例えばパソコン、サーバ装置等の汎用の一般的なコンピュータ装置により実現できる。よって、特に図示しないが、支援装置２０は、例えば不図示のＣＰＵ、ハードディスク、メモリ等の記憶装置、通信機能部、液晶ディスプレイ等の表示部、キーボード、マウス等の操作部などを備えている。
【００２７】
上記不図示の記憶装置には、予め所定のアプリケーションプログラムが記憶されており、上記ＣＰＵがこのアプリケーションプログラムを実行することで、支援装置２０の各種処理機能（後述する図２、図３の処理や図４に示す各種処理機能部）が実現される。上記アプリケーションプログラムの一例が、後述するＡＲアプリ２２、支援ソフト（支援ソフトウェア）２１等であるが、これらの例に限らない。
【００２８】
また、コントローラ（ＰＬＣ（プログラマブルコントローラ）１０）も、不図示のＣＰＵ／ＭＰＵ等の演算プロセッサや、メモリ等を備えており、メモリには予め所定のアプリケーションプログラムが記憶されている。上記演算プロセッサが、このアプリケーションプログラムを実行することで、ＰＬＣ１０の所定の処理（制御処理など）が実行されるが、これについてはよく知られた既存技術であるので特に説明しない。
【００２９】
まず、各コントローラ（ＰＬＣ１０）が設置されている場所に、それぞれ、相互に異なる図形のＡＲマーカーを設置する。換言すれば、同じ図形のＡＲマーカーが複数存在することはないようにしている。尚、本例では、上記単純な図形を印刷したものが、ＡＲマーカーとして設置される。また、図では、各コントローラ（ＰＬＣ１０）は、図示のＰＬＣ１０ａ。ＰＬＣ１０ｂ等である。
【００３０】
尚、ＡＲマーカーの設置場所は、各コントローラが設置されている場所に限らず、例えば、支援装置２０のコントローラへの接続を許可するネットワーク上の特定の箇所（セキュリティルーム等）に、設置されるものであってもよい。
【００３１】
また、各ユーザ（プログラム更新を行う作業員等）に、それぞれ、作業者証としてのＡＲマーカーを、予め配布しておく。勿論、これも、同じ図形のＡＲマーカーが複数存在することはないようにしている。
【００３２】
支援装置２０には、コントローラのプログラムをユーザが作成するのを支援する機能等を提供するソフトウェア（支援ソフト２１）と、上記ＡＲマーカーに対応したＡＲアプリ２２とを搭載しておく。
【００３３】
支援ソフト２１は、基本的には従来の支援ソフトウェアの機能を備えるが、更に、以下に説明する機能も備える。尚、従来の支援ソフトウェアの機能は、上記コントローラのプログラムをユーザが作成するのを支援する機能や、作成されたプログラムをコンパイルしてコントローラにダウンロードする機能等である。
【００３４】
そして、支援ソフト２１は、上記従来の機能に加えて、更に、ＰＬＣのプログラムのダウンロードが指示された場合、ダウンロードを実行する前に、ＡＲアプリ２２を起動する機能と、その後に、後述する更新証明ファイルの有無をチェックして、更新証明ファイルが無ければダウンロードを許可しない機能とを備える。尚、言うまでも無くダウンロード先は任意のコントローラ（ＰＬＣ１０）である。
【００３５】
また、本例の支援装置２０は、上記“カメラ等を備える情報処理端末”に相当する。これより、ＡＲアプリ２２は、支援ソフト２１によって起動されると、まず、カメラを動作させて撮像画像を取得して、この映像上のＡＲマーカーを認識する。映像上にＡＲマーカーが無い場合には、何も行なわず、その結果として、上述する更新証明ファイルが無い状態であるので、支援ソフト２１はプログラムをダウンロードできない。
【００３６】
映像上にＡＲマーカーが映っていれば、ＡＲアプリ２２は、上記既存機能によって、ＡＲマーカーを認識して当該ＡＲマーカーに対応した情報（付属情報）を取得して当該付属情報を映像上に重ねて（合成して）表示する（拡張現実画像を生成・表示する）。
【００３７】
ここで、予め、各ＡＲマーカー（その図形）が、支援装置２０に記憶されている。これは、一例としては例えば、設備と作業員の２種類に分類されて記憶されている。例えば、設備に係るＡＲマーカー（その図形）は全て設備フォルダ内に格納されている。同様に、作業員に係るＡＲマーカー（その図形）は全て作業員フォルダ内に格納されている。そして、ＡＲアプリ２２は、上記既存機能によって認識したＡＲマーカー（図形）と同じＡＲマーカー（図形）が、上記２つのフォルダのどちらに格納されているかを判別する。そして、例えば設備フォルダ内に格納されている場合には、設備に係るＡＲマーカーを検出したものと判定する。
【００３８】
ＡＲアプリ２２は、基本的には、映像上に２つのＡＲマーカーが映っている場合に、更新証明ファイルが生成されるようにする。これは一例としては例えば、映像上に２つのＡＲマーカーが映っていて、且つ、何れか一方が設備に係るＡＲマーカーであり、他方が作業員に係るＡＲマーカーである場合に、更新証明ファイルが生成されるようにする。
【００３９】
その為に一例としては、上記のように設備と作業員の両方のＡＲマーカーを認識した場合、撮影機能を有効にする。勿論、それまでは、撮影機能は無効であるので、上記のように拡張現実画像が液晶ディスプレイ上に表示されていても、この拡張現実画像が保存されているわけではないし、たとえユーザがシャッターを操作しても、何も行われない。
【００４０】
尚、上記のように撮影機能が有効になったとき、その旨を音声や表示等によってユーザに知らせるようにしてもよい。
撮影機能が有効な状態でユーザがシャッターを操作すると、この撮影操作によって上記拡張情報と実映像を合成した撮影データ（拡張現実画像）を、特定の記憶領域に保存する。これより、支援ソフト２１は、例えば、この拡張現実画像を更新証明ファイルとして支援ソフト２１のプロジェクト（所定のフォルダ等）に取り込む。尚、この例に限らず、例えば、上記撮影操作が行われると、拡張現実画像を生成して（つまり、それまでは拡張現実画像は生成されていない）、これを特定の記憶領域に保存するようにしてもよい。
【００４１】
支援ソフト２１は、上記ＡＲアプリ２２を起動後は、随時、上記特定の記憶領域をチェックして、上記拡張現実画像（更新証明ファイル）の有無をチェックする。拡張現実画像が存在する場合には、これを上記のように更新証明ファイルとして保存すると共に、上記プログラムのダウンロードが許可されたものとして、このプログラムのダウンロードを実行する。その際、上記拡張現実画像（更新証明ファイル）も一緒にダウンロードする。
【００４２】
図１には、拡張現実画像の生成の様子も示してある。
図示の例では、ＰＬＣ１０ａに対応するＡＲマーカーとして図示のようにＰＬＣ１０ａの近傍に丸図形（○）のＡＲマーカーが設置されている。同様に、ＰＬＣ１０ｂに対応するＡＲマーカーとして図示のようにＰＬＣ１０ｂの近傍に正方形図形（□）のＡＲマーカーが設置されている。あるいは、上述した特定の箇所（セキュリティルーム等）には、図示の三角形図形（△）のＡＲマーカーが設置されている。
【００４３】
また、ここでは、ある作業員の作業者証のＡＲマーカーは、図示の長方形の図形となっている。図１では、この作業員が、任意の支援装置２０ｃを用いて、ＰＬＣ１０ａのプログラム更新作業を行う際の拡張現実画像の生成の様子を示している。
【００４４】
作業員は、支援装置２０ｃを持ってＰＬＣ１０ａの設置場所まで行き、そこで通信線によって支援装置２０ｃをＰＬＣ１０ａに接続したうえで、プログラムダウンロードの指示を出す。
【００４５】
支援装置２０ｃの支援ソフト２１は、この指示に応じて、ＡＲアプリ２２を起動して拡張現実画像の生成待ち状態となる。
ＡＲアプリ２２は、まず撮像機能が起動し、これによって支援装置２０ｃのディスプレイ上には、カメラによる撮像画像（カメラ越しのイメージ）が表示された状態となる。表示される撮影ボタン（不図示）をユーザが操作することにより、このイメージに基づく合成画像（拡張現実画像）を生成してファイルに保存するようになっている。但し、初期状態では撮影ボタンは無効となっている。
【００４６】
作業員は、上記撮像画像の表示を見ながら支援装置２０ｃのカメラの向きを変えるなどして、上記ＰＬＣ１０ａに対応するＡＲマーカー“丸図形（○）”が写る状態にする。これより、ＡＲアプリ２２は、このマーカーを認識して、認識したマーカーに対応する情報を取得して、撮影画像のマーカーの位置に重ねて表示する。本例では設備に係わるマーカーに対応する情報（設備情報）は、例えば設備名、場所等であり、ＡＲマーカー“丸図形（○）”に対応する情報は、設備名「PLC1」および場所「建屋A、第1室」であり、これらが図示の通り“丸図形（○）”の表示位置に重なるように表示される。更に、本例では時計機能から現在日時を取得して、これも“丸図形（○）”の表示位置に重なるように表示する。
【００４７】
作業員は、更に、自己の作業者証をカメラの撮影範囲内に持っていき、この作業者証の上記ＡＲマーカー“長方形”も写る状態にする。これより、ＡＲアプリ２２は、このマーカー“長方形”も認識して、認識したマーカーに対応する情報を取得して、撮影画像のマーカーの位置に重ねて表示する。本例では作業者に係わるマーカーに対応する情報（作業者情報）は、例えば所属や氏名、連絡先等であり、“長方形”に対応するこれらの情報が、図示の通り“長方形”の表示位置に重なるように表示される。
【００４８】
尚、上記設備情報や作業者情報等の拡張情報は、ＡＲアプリ画面上に表示されるものということもできる。
そして、この状態ではＡＲアプリ２２は、上述した２種類のＡＲマーカーの両方を認識した状態となるので、撮影機能（撮影ボタン）を有効にする。これより、作業員が撮影ボタンの操作することにより、カメラの撮影範囲にある実際のイメージとＡＲアプリ画面上に表示された各ＡＲマーカーに対応した拡張情報を合成した写真を作成する。つまり、上記拡張現実画像を生成する。そして、生成した拡張現実画像を、予め任意に決められている特定の場所（記憶領域）に保存する。
【００４９】
以上で、ＡＲアプリ２２の処理は終了する。
支援ソフト２１は、上記特定の記憶領域に拡張現実画像があることを認識すると、ダウンロード許可されたものと判定して、プログラムをＰＬＣ１０ａにダウンロードする。更に、この拡張現実画像を更新証明ファイルとしてプロジェクト内に取り込むと共に、この更新証明ファイルも一緒にＰＬＣ１０ａにダウンロードする。
【００５０】
ＰＬＣ１０ａは、ダウンロードされたプログラムと更新証明ファイルを、保存・記憶する。ＰＬＣ１０ａは、このプログラムを実行して、何らかの制御を行うことになる。後に、このプログラムに何らかの不具合をあった場合、更新証明ファイルを参照すれば、誰が何時、このプログラムの更新を行ったのか、分かることになる。
【００５１】
図２は、支援ソフト２１の処理フローチャート図である。
図３は、ＡＲアプリ２２の処理フローチャート図である。
支援ソフト２１は、上記の通り、任意のＰＬＣ１０のプログラム（バージョンアップ版等）をプログラマ等が作成するのを支援する、既存の機能を有する。そして、プログラマ等が、作成したプログラムのダウンロードを指示すると、図２の処理を実行する。つまり、図２は、支援ソフト２１によるダウンロード処理に係わる処理フローである。
【００５２】
支援ソフト２１は、まず、ＡＲアプリ２２を起動し（ステップＳ１１）、その後、ＡＲアプリ２２が終了するまで待機する（ステップＳ１２）。ＡＲアプリ２２が終了したら（ステップＳ１２，ＹＥＳ）、ステップＳ１３以降の処理を実行する。
【００５３】
ＡＲアプリ２２は、起動されたら、図３の処理を実行する。図３の処理については後述するが、この処理の結果、上記特定の記憶領域に拡張現実画像が格納された状態となっている場合がある。
【００５４】
これより、支援ソフト２１は、ＡＲアプリ２２が終了したら（ステップＳ１２，ＹＥＳ）、上記特定の記憶領域を参照して拡張現実画像の有無をチェックし（ステップＳ１３）、拡張現実画像が無い場合には（ステップＳ１３，ＮＯ）、ダウンロード不許可と判定し、ダウンロード実行することなく、異常終了とする。正当な作業者証を持たない者が、プログラムをダウンロードしようとしても、ステップＳ１３がＮＯとなるので、ダウンロードは許可されない。これより、例えば不正なプログラムがダウンロードされる事態を防止できる。
【００５５】
一方、上記特定の記憶領域に拡張現実画像が有る場合には（ステップＳ１３，ＹＥＳ）、ダウンロード許可されたものと見做して、この拡張現実画像をプロジェクト内に更新証明ファイルとして取り込んだ後（ステップＳ１４）、コントローラ（ＰＬＣ１０）へのプログラムダウンロードを開始する。これは、本例では、コントローラのプログラムと共に、上記更新証明ファイルも一緒にダウンロードする（ステップＳ１５，Ｓ１６）。
【００５６】
以下、図３の処理について説明する。
ＡＲアプリ２２は、上記ステップＳ１１によって起動されると、まず、カメラを起動して、その撮像画像をＡＲアプリの画面内に表示する（ステップＳ２１）。尚、ＡＲアプリの画面は、当該ＡＲアプリ２２によって生成される画面であるが、単に当該支援装置２０のディスプレイ上に撮像画像が表示されるものと考えて構わない。尚、ＡＲアプリ２２によって生成される画面上には不図示の撮影ボタンも表示され、ＡＲアプリ２２はこの撮影ボタンの操作の有無を認識できる。
【００５７】
その後、任意のときに撮影ボタンが押されたならば（ステップＳ２２，ＹＥＳ）、ステップＳ３１，Ｓ３２の処理を実行して、ＡＲアプリ２２の処理を終了する。但し、撮影機能が無効の状態で作業員が撮影ボタンを押下操作しても、ステップＳ２２の判定はＹＥＳとはならない。撮影機能が有効な状態で撮影ボタンが押された場合に限り、ステップＳ２２がＹＥＳとなってステップＳ３１，Ｓ３２の処理が実行される。
【００５８】
ＡＲアプリ２２では、カメラの撮影範囲内の映像に、事前に登録してあるＡＲマーカーが存在するか否かをチェックする照合処理を、常に実行している。これは、上記の通り、設備フォルダと作業員フォルダの２種類に分類されて登録されている。但し、これは一例であり、この例に限らない。
【００５９】
基本的には各フォルダ内に複数のＡＲマーカー（登録ＡＲマーカーと呼ぶものとする）が格納されている。
そして、ＡＲアプリ２２は、カメラの撮影映像を解析した結果、任意のＡＲマーカー（図形）が検出された場合、このＡＲマーカー（図形）を設備フォルダ内の各登録ＡＲマーカーと照合して、一致するものを見つける（ステップＳ２３）。もし、一致するものが無い場合には（ステップＳ２４，ＮＯ）、撮影機能を無効にして（ステップＳ２８）、ステップＳ２３に戻る。尚、撮影機能は初期状態では無効になっている。
【００６０】
検出したＡＲマーカーが、設備フォルダ内の任意の登録ＡＲマーカーと一致した場合には（ステップＳ２４，ＹＥＳ）、このＡＲマーカーに対応する上記設備情報（本例では設備名、場所等）を取得し、更に時計機能から現在日時を取得して、これら取得情報をＡＲアプリの画面上に表示する（ステップＳ２５）。これは、例えば、上記ＡＲマーカーの検出位置に表示する。
【００６１】
尚、予め、全てのＡＲマーカーについて、それぞれに対応する情報が登録されている。設備フォルダ内の各登録ＡＲマーカーについては、それぞれ、対応する上記設備情報が登録されている。同様に、作業員フォルダ内の各登録ＡＲマーカーについては、それぞれ、対応する上記作業者情報が登録されている。
【００６２】
ここで、図１で説明した作業手順の場合には、正常な状態であれば、カメラの撮影範囲内の映像には、まず上記設備に係わるＡＲマーカーが映し出され、その後に更に作業者証のＡＲマーカーが映し出されることになる。これより、ＡＲアプリ２２がカメラの撮影映像を解析すると、まず、設備に係わるＡＲマーカーが検出され、その後、更に作業者証のＡＲマーカーが検出されることになる。図３の処理例は、この様な作業手順に応じた処理であり、従ってこの例に限るものではない。
【００６３】
図３の処理例の場合には、ＡＲアプリ２２は、最初に検出されたＡＲマーカーについて上記ステップＳ２３等の処理を行い、後に検出されたＡＲマーカーについてはステップＳ２６などの処理を実行する。
【００６４】
すなわち、後に検出されたＡＲマーカー（図形）を作業員フォルダ内の各登録ＡＲマーカーと照合して、一致するものを見つける（ステップＳ２６）。もし、一致するものが無い場合には（ステップＳ２７，ＮＯ）、撮影機能を無効にして（ステップＳ２８）、ステップＳ２３に戻る。
【００６５】
検出したＡＲマーカーが、作業員フォルダ内の任意の登録ＡＲマーカーと一致した場合には（ステップＳ２７，ＹＥＳ）、このＡＲマーカーに対応する上記作業者情報（本例では所属や氏名、連絡先等）を取得し、この取得情報をＡＲアプリの画面上に表示する（ステップＳ２９）。そして、撮影機能を有効にして（ステップＳ３０）、ステップＳ２２に戻る。尚、ステップＳ３０の処理の際に、撮影機能が有効になった旨を、音や表示などによって作業員に通知するようにしてもよい。
【００６６】
これより、作業員が撮影ボタンを操作すると、今度は撮影機能が有効になっていることから、ステップＳ２２の判定はＹＥＳとなり、ステップＳ３１、Ｓ３２の処理を実行することになる。
【００６７】
すなわち、カメラの撮影範囲にある実際の撮影データと、上記検出された各ＡＲマーカーに対応した拡張情報（設備情報、作業者情報）とを合成して成る上記拡張現実画像を生成して（ステップＳ３１）、これを特定の記憶領域に保存して（ステップＳ３２）、本処理を終了する。この場合には上記ステップＳ１３の判定がＹＥＳとなることになる。
【００６８】
尚、特に図示していないが、起動時から所定時間経過してもステップＳ２２の判定がＹＥＳとならない場合には、拡張現実画像を生成することなく、本処理を終了する。この場合には上記ステップＳ１３の判定がＮＯとなることになる。
【００６９】
尚、上述した例に限らず、例えば支援装置２０に更にＧＰＳ機能を内蔵することで、ＡＲアプリにおけるＡＲマーカーの認識の際、ＧＰＳ情報と併せて照合を行うことで、より確実にＡＲマーカー設置場所での操作を保障することができる。
【００７０】
以上説明したように、本手法は、コントローラのプログラムを作成する支援装置をコントローラに接続することで、コントローラのプログラム更新を行うシステムに係わる。尚、支援装置をコントローラに接続する方法は、図１で説明した方法に限るものではなく、例えばＬＡＮ等のネットワークを介してセキュリティルーム等から接続する方法であっても構わない。上記のように、支援装置をコントローラに接続する場所は、コントローラの設置場所に限らず、セキュリティルーム等であっても構わない。
【００７１】
そして、上記システムにおいて、まず、上記“支援装置をコントローラに接続する場所”毎に対応する特定のＡＲマーカーを設置しておく。これは例えば、各コントローラの設置場所に（各コントローラの近傍等に）、相互に異なる図形のＡＲマーカーを設置しておく。この例に限らず、例えばコントローラへの支援装置の接続を許可するネットワーク上の特定の箇所（セキュリティルーム等）にも、ＡＲマーカーを設置してもよい。上記“支援装置をコントローラに接続する場所”は、“コントローラへの正規の接続場所”などと言うこともできる。
【００７２】
本手法では、上記ＡＲシステムを利用した処理を行うことで、“コントローラへの正規の接続場所”以外の場所からコントローラへプログラムをダウンロードしようとしても、ダウンロード許可されないことになる。従って、本手法によって、コントローラに格納・実行されるプログラムが、“コントローラへの正規の接続場所”からダウンロードされたものであることが保証されるという効果も得られることになる。
【００７３】
更に、担当者（作業者）毎に対応する特定のＡＲマーカーを配布しておき、所持させるようにする。これも、各ＡＲマーカーの図形は、ユニークである（相互に異なる）ものとする。
【００７４】
更に、上記ＡＲマーカーに対応したＡＲアプリを予め支援装置に搭載しておく。また、上記設置してある各ＡＲマーカーの図形の画像を、予め支援装置に記憶しておく。
尚、上記各所に設置されているＡＲマーカーや担当者が所持するＡＲマーカーは、上記図形を印刷したものである（現実世界のものである）。
【００７５】
そして、任意のコントローラのプログラム更新の際、支援装置においてコントローラのプログラムの作成支援、コンパイル、ダウンロード等の既存機能を提供する支援ソフトウェアが、更に、上記ＡＲアプリを起動して、それによって拡張現実画像が生成されない限りはダウンロードを実行しないようにする機能を備える。
【００７６】
ＡＲアプリは、支援装置に内蔵されたカメラの映像を通して、上記ＡＲマーカーを認識することで、対応した拡張情報を実映像に合成したデータ（拡張現実画像）を作成し、これを更新証拠画像（更新証明ファイル）として保存する。
【００７７】
支援装置では、コントローラのプログラム作成支援機能等を提供するソフトウェア（支援ソフト）によるプログラムダウンロード実行時に、上記ＡＲマーカーに対応したＡＲアプリを起動する。“上記ＡＲマーカーに対応したＡＲアプリ”とは、例えば、上記○、△、□等の単純な図形のＡＲマーカーに対応したＡＲアプリであるが、勿論、この例に限らない。
【００７８】
作業員が、支援装置のカメラをＡＲマーカーに向けることで、ＡＲアプリが、このＡＲマーカーを認識し、それに対応した拡張情報を得て、この拡張情報と実映像を合成した合成画像を生成する。合成画像が生成されない場合には、コントローラへのプログラムダウンロードは許可されない。合成画像が生成された場合、支援ソフトは、コントローラへプログラムをダウンロードし、合成画像（更新証明ファイル）も一緒にダウンロードする。また、合成画像は、支援装置内のプロジェクトに保存する。
【００７９】
上記合成画像に含まれる上記拡張情報には、ダウンロード作業を行った作業員に関する情報や、ダウンロード実行日時、ダウンロード対象の設備（コントローラ）やダウンロード実行場所等を示す情報が含まれる。後に何らかの問題が生じたときに、この合成画像を参照すれば、誰が、何時、何処でダウンロードを行ったのか分かることになる。更に、合成画像に含まれる実映像を参照することで、ダウンロード作業を行った場所等を実映像で確認できる。
【００８０】
図４は、第１の実施例のコントローラシステムの機能構成図である。
本例のコントローラシステム３０は、複数のコントローラ３１が設置され、任意のコントローラ３１のプログラム更新の際に、任意の支援装置３２から該コントローラ３１にプログラムがダウンロードされるコントローラシステムである。
【００８１】
また、任意の各場所に設置される複数の第１のＡＲマーカー３３と、各作業者に所持させる複数の第２のＡＲマーカー３４とが設けられている。
そして、支援装置３２は、下記の各処理機能部を有する。尚、上記支援装置２０が支援装置３２の一例であり、上記ＰＬＣ１０がコントローラ３１の一例である。
【００８２】
支援装置３２は、撮影部４１、支援部４２、ＡＲ部４３等を有する。
撮影部４１は、例えば上記支援装置２０のカメラ機能である。
支援部４２は、例えば一例が上記支援ソフト２１であり、任意のコントローラ３１に対するプログラムのダウンロードの際に、ＡＲ部４３を起動する。
【００８３】
ＡＲ部４３は、例えば一例が上記ＡＲアプリ２２である。
ＡＲ部４３は、撮影部４１による撮影画像を解析して、該撮影画像中に上記第１のＡＲマーカー３３と第２のＡＲマーカー３４の両方が検出された場合、該検出された第１のＡＲマーカー３３、第２のＡＲマーカー３４それぞれに対応する所定の情報を、該撮影画像に合成して成る合成画像を生成する。この合成画像の一例が上記拡張現実画像である。
【００８４】
支援部４２は、該合成画像が生成されない場合にはプログラムのダウンロードを実行しない。該合成画像が生成された場合には、プログラムのダウンロードを実行すると共に該合成画像も一緒にダウンロードする。
【００８５】
また、ＡＲ部４３は、更に、時計機能等から現在日時を取得して、該現在日時情報も上記所定の情報に含めて上記撮影画像に合成するようにしてもよい。
また、支援装置３２は、例えば、各第１のＡＲマーカーそれぞれに対応する各設備情報を予め記憶する設備情報記憶部４４、各第２のＡＲマーカーそれぞれに対応する各作業者情報を予め記憶する作業者情報記憶部４５を、更に有するものであってもよい。
【００８６】
この場合、ＡＲ部４３は、上記検出された第１のＡＲマーカーに対応する設備情報を、設備情報記憶部４４から取得すると共に、上記検出された第２のＡＲマーカーに対応する作業者情報を、作業者情報記憶部４５から取得する。そして、これら取得した情報を上記所定の情報として上記撮影画像に合成することで、上記合成画像を生成する。
【００８７】
上設備情報は、例えば、上記検出した第１のＡＲマーカーの設置場所または該設置場所に設置されるコントローラを示す情報である。上記作業者情報は、例えば、上記検出した第２のＡＲマーカーを所持する作業者を示す情報である。
【００８８】
ＡＲ部４３は、予め記憶されている各ＡＲマーカー（図形）の画像と照合することで、撮影画像中に第１のＡＲマーカー３３、第２のＡＲマーカー３４があるか否かを判別する。
【００８９】
また、例えば、上記各第１のＡＲマーカーは、それぞれ、任意の各コントローラの設置場所に設けられる。
本発明によれば、コントローラのプログラムのダウンロードの際、ＡＲマーカーによって、プログラムダウンロードを実行する場所や設備（コントローラ）および担当者を認識でき、且つ、コントローラ内および支援装置内に当該認識した担当者や設備に関する情報（更にダウンロード実行日時など）が、更新証明ファイルとして保存されるため、不特定の場所、人からプログラムダウンロード実行されることがなくなり、プログラムに問題が見つかった場合における原因を追跡しやすくなるという効果を有する。
【００９０】
また、上記更新証明ファイルには、ＡＲマーカーに対応する拡張情報だけでなく、実際のプログラムダウンロードを実行した場所を写真として収めることができるため、後日、他の担当者がそのプロジェクトを編集してプログラムダウンロードを実行する際に、対応するコントローラが設置されている箇所を特定しやすくなるといった効果が期待できる。
【００９１】
以上、本発明の第１の実施例について説明した。
以下、本発明の第２の実施例について説明する。
上述した第１の実施例のシステムによれば、接続先のコントローラ（ＰＬＣ１０）には、そのコントローラに合致した支援装置２０内のプロジェクトからプログラムがダウンロードされるようになるだけでなく、ＡＲマーカーの認識によって、不特定の場所／人によってダウンロートの実行が行われることを防止することができるとともに、そのダウンロードを実行した場所、作業者を特定する情報が、更新証拠画像として保存されるものであり、その仕組みについては上述した通りである。
【００９２】
しかし、上述した第１の実施例では、ＡＲマーカーの認識によって、そのＡＲマーカーに対応した付加情報（ダウンロード実行の場所や作業者等）が更新証拠画像に保存される仕組みであり、ＡＲマーカーを認識させた実際の場所や作業者を表しているわけではない。更新証拠画像には撮影画像も含まれてもよいが、作業者の顔が映っているとは限らず、顔が映ることを避けることもできる。そのため、（本来のＡＲマーカーでなくとも）ＡＲマーカーとして認識させることができれば、ダウンロードを実行することができ、この場合、ダウンロード実行の場所や作業者と、更新証拠画像に保存された上記付加情報とが、異なるケースもあり得ることになる。
【００９３】
この様な問題への対応として、ダウンロード実行の場所を特定する為の上記“設備に係るＡＲマーカー”については、例えば、ＧＰＳによる位置情報と組み合わせることで、認識したＡＲマーカーが正しい位置に存在するものであるか否かを判断することができる。これは、例えば図５に示すように、支援装置２０にＧＰＳ機能を搭載すると共に上記判断を行うプログラムを搭載することで実現でき、これは図５に示す支援装置５０についても同様である。
【００９４】
しかしながら、上記“作業員に係るＡＲマーカー”（作業者証のＡＲマーカー）については、貸与によって、作業者証の本人でない人から実行される可能性や、あるいは、紛失やＡＲマーカーの偽造によって、不特定の人からダウンロード実行される可能性がある。
【００９５】
つまり、例えば図５に示すように、任意の作業員に係るＡＲマーカー（作業者証のＡＲマーカー；ここでは長方形の図形とする）を、当該作業者証の正当な所有者である作業員本人が所持している場合には、当然、ダウンロード許可される。しかし、この作業員本人がこの“長方形のＡＲマーカー”を別の作業員に貸与して、別の作業員が作業を行った場合でも、ダウンロード許可されてしまう。更に、拡張現実画像は、上記作業者本人の所属や氏名等を用いて作成されてしまう。
【００９６】
尚、図１には示していないが第１の実施例においても図５に示すように支援装置２０がＧＰＳ機能を備えていてもよい。
同様に、第３者がＡＲマーカーを偽造した場合や紛失したＡＲマーカーを取得した場合でも、ダウンロード許可されてしまう可能性があり、また、拡張現実画像は、上記作業者本人の所属や氏名等を用いて作成されてしまう可能性がある。
【００９７】
このような状況においては、後でコントローラに保存されている更新証拠画像（拡張現実画像）を参照したところで、その更新証拠画像内の作業者情報が、実際にはプログラム更新を行っていない作業者本人のデータとなっている。更に、作業者本人が知る由もない状況でプログラム更新が行われている可能性もあり、証拠データとして意味を成していないという問題がある。
【００９８】
上述したように、第１の実施例は、コントローラにダウンロードされているプログラムが、不特定の場所／人から実行されることなく、何時、何処から、誰によって実行されたかどうかを（基本的には）特定することができる仕組みを提供している。第２の実施例では、これに加えて更に、作業者証のＡＲマーカーの不正利用を防止する仕組みを提供するものである。
【００９９】
第２の実施例では、作業者証のＡＲマーカーに対応した情報として、ＡＲアプリ用の付加情報とは別に、作業者証の所有者本人の画像（写真データ）を支援装置内に保持しておく。支援装置では、プログラムダウンロード実行時における、ＡＲアプリによるＡＲマーカーの照合後、照合した“作業者証のＡＲマーカー”に対応した上記写真データを取得し、支援装置内のカメラによる映像内に上記取得した写真データ内の人物の顔を認識できるかどうか判定する処理（顔認証アプリによる認証）を行うことで、作業者証のＡＲマーカーの不正利用を防止する。さらに、ＡＲマーカーの照合後、顔認証アプリによる認証中、支援装置内のカメラによる映像を録画し、認証に失敗（または、キャンセル）した場合には、この録画データを不正アクセスデータとして、支援装置内のプロジェクトに保存するとともにコントローラへダウンロードする。
【０１００】
以下、第２の実施例について、詳しく説明する。
図６は、第２の実施例のコントローラシステムの構成図である。
図６においても、各コントローラ（ＰＬＣ１０）が設置されている場所に、それぞれ、相互に異なる図形のＡＲマーカー（設備に係るＡＲマーカー）が設置される点は、図１と同様である。尚、第１の実施例１と同様、“設備に係るＡＲマーカー”はセキュリティルーム等に設置されるものであってもよい。
【０１０１】
また、第２の実施例においても第１の実施例と同様、各ユーザ（プログラム更新を行う作業員等）に、それぞれ、“作業者証としてのＡＲマーカー”（作業員に係るＡＲマーカー）を、予め配布しておく。勿論、これも、同じ図形のＡＲマーカーが複数存在することはないようにしている。
【０１０２】
図６に示す第２の実施例に係わる支援装置５０には、コントローラのプログラムをユーザが作成するのを支援する機能等を提供するソフトウェア（支援ソフト５１）と、上記ＡＲマーカーに対応したＡＲアプリ２２とを搭載しておく。このＡＲアプリ２２自体は第１の実施例と同じであってよく、よって同一符号を付してあり、その説明は簡略化する。支援ソフト５１は、上記第１の実施例の支援ソフト２１とほぼ同様の機能も備えるが、異なる機能も備えるものであり、詳しくは後述する。
【０１０３】
尚、支援装置５０も、例えばパソコン、サーバ装置等の汎用の一般的なコンピュータ装置により実現できる。よって、特に図示しないが、支援装置５０は、例えば不図示のＣＰＵ、ハードディスク、メモリ等の記憶装置、通信機能部、液晶ディスプレイ等の表示部、キーボード、マウス等の操作部などを備えている。
【０１０４】
上記不図示の記憶装置には、予め所定のアプリケーションプログラムが記憶されており、上記ＣＰＵがこのアプリケーションプログラムを実行することで、支援装置５０の各種処理機能（後述する図７、図８、図９の処理や上記図３の処理、後述する図１１に示す各種処理機能部）が実現される。上記アプリケーションプログラムの一例が、ＡＲアプリ２２や後述する顔認証アプリ５２、支援ソフト（支援ソフトウェア）５１等であるが、これらの例に限らない。
【０１０５】
そして、支援装置５０には、更に、顔認証アプリ５２と作業者照合用ＤＢ（データベース）５３も備える。
顔認証アプリ５２は、ＡＲアプリ２２の処理（上記第１の実施例と同様）が実行された後に支援ソフト５１によって起動されて、ＡＲアプリ２２の処理結果や作業者照合用ＤＢ（データベース）５３等を用いて、概略的には例えば下記の処理を実行する。
【０１０６】
すなわち、顔認証アプリ５２は、まず、ＡＲアプリ２２によって認識された“作業者証のＡＲマーカー”に対応した顔写真データを、作業者照合用ＤＢ５３を検索して取得する（“該当する顔写真データ”を取得する）。ここで、作業者照合用ＤＢ５３には、予め、各“作業者証のＡＲマーカー”に対応付けて、その所有者（作業者本人）の顔写真データが登録されている。尚、顔写真データは、顔画像が含まれていればよく、従って顔だけに限らず、例えば体全体が写っていても構わない。また、顔写真データを単に写真データ等と記す場合もあるものとする。
【０１０７】
続いて、顔認証アプリ５２は、支援装置５０のカメラによって撮影された撮像画像を取得して、この映像上の人物の顔を抽出して、これと上記“該当する顔写真データ”から抽出した顔とを照合して、一致するか否かを確認する（顔認識を行う）。一致した場合には照合成功となる。照合が完了するまで、カメラの映像を録画しておき、照合に失敗（または、キャンセル）した場合には、この録画データを特定の場所に保存する。尚、顔認識自体は、既存技術（既存の顔認識システムなど）を用いればよく、ここでは特に説明しない。尚、上記「抽出する“顔”」とは、例えば、既存技術で用いられている何らかの“特徴”を抽出したものであってもよい。よく知られているように、この様な“特徴”とは、例えば、顔のパーツの相対位置や大きさ、目や鼻やほお骨やあごの形等であるが、勿論、この例に限らない。また、作業者照合用ＤＢ５３には、上記顔写真データの代わりに当該顔写真データから予め抽出されている上記“顔”（特徴）が、登録されていてもよい。
【０１０８】
支援ソフト５１は、上記の通り、プログラムダウンロード実行時におけるＡＲアプリ２２によるＡＲマーカー認識後に、顔認証アプリ５２を起動し、顔認証アプリ５２による上記照合が成功した場合には、上記第１の実施例と同様に、上記更新証明ファイルをプログラムと共にコントローラ（ＰＬＣ１０）へダウンロードする。
【０１０９】
一方、照合に失敗（または、キャンセル）した場合には、プログラムのダウンロードは許可せず、上記特定の場所に保存されている上記録画データを、不正アクセスデータとして、支援ソフト５１のプロジェクトに取り込み、この不正アクセスデータをコントローラへダウンロードする。
【０１１０】
上記支援装置５０の処理機能について、以下、更に詳細に説明する。
支援装置５０では、プログラムダウンロードの際、支援ソフト５１がＡＲアプリ２２を起動し、このＡＲアプリ２２によって、例えば上述した図３の処理が実行されることで、認識したＡＲマーカーに対応する各種情報（ダウンロード対象となる設備情報や作業者情報等）が特定され取得される。本例では、“作業者証のＡＲマーカー”に関しては例えば図示のＡＲマーカー「長方形」に対応した作業者情報が取得され、“設備に係るＡＲマーカー”に関しては例えばＡＲマーカー「○」に対応した設備情報（例えば、設備名「PLC1」、場所「建屋A、第1室」など）が取得される。そして、取得した情報を用いて上記拡張現実画像を生成する。
【０１１１】
上記ＡＲアプリ２２の処理が正常終了した場合には（拡張現実画像が生成された場合）、支援ソフト５１は、今度は、顔認証アプリ５２を起動する。顔認証アプリ５２は、ＡＲアプリ２２によって認識された“作業者証のＡＲマーカー”の種別を取得する。これは、予めＡＲマーカーの種別に対応した番号を決めておき（例えば、番号‘２’＝種別「長方形」などとする）、ＡＲアプリ２２との間でこの番号をファイル経由でやりとりする等により取得可能となる。尚、この例の場合、例えばＡＲアプリ２２は、認識した“作業者証のＡＲマーカー”の種別に対応した番号を、所定のファイル等に格納する処理も行い、顔認証アプリ５２は起動後にこのファイルを取得する処理を行うが、この例に限らない。
【０１１２】
顔認証アプリ５２は、作業者照合用ＤＢ５３から上記取得した種別に対応した写真データを取得する。
この写真データは、上記ＡＲアプリ２２によって認識された“作業者証のＡＲマーカー”に対応した作業者本人の顔写真データ等であり、予め設定しておくものである。尚、図６では、図示の笑顔マークが、「長方形」の作業者証の所有者本人の顔写真データを表すものとする。尚、顔写真データは、顔の画像が含まれているものであれば何でもよく、顔だけでのデータに限らず例えば上半身の画像などであっても構わない。
【０１１３】
顔認証アプリ５２は、続いて、支援装置５０が備える別のカメラを起動して（あるいは、カメラを切替えるなどして）、作業者がカメラの撮影範囲に入るようにし、照合が完了するまで、カメラの撮影範囲の映像を録画する。
【０１１４】
その後、ユーザによる照合ボタンの操作により、カメラの撮影範囲の映像から上記取得した写真データ内の人物の顔を認識できるかどうか判定を行い、認識できた場合には、作業者が上記認識したＡＲマーカーに対応した作業者本人であると判断して正常終了（認証成功）とし、認識に失敗した場合には、それまで録画していたデータを特定の記憶領域に保存して異常終了（認証失敗）とする。
【０１１５】
上記顔認識アプリ５２の処理が終了すると、支援ソフト５１は、顔認証アプリ５２が認証に成功していれば、上記第１の支援ソフト２１と同様にして、プログラムと共に更新証明ファイル（拡張現実画像）をコントローラにダウンロードする。
【０１１６】
しかし、認証に失敗していれば、顔認証アプリ５２によって作成された録画データ（上記特定の記憶領域に保存されている）を、プロジェクト内に不正アクセスデータとして取り込んだ後、この不正アクセスデータのみをコントローラにダウンロードする。勿論、この場合には、プログラムをコントローラにダウンロードすることは許可されないことになる。
【０１１７】
尚、上記録画データは、キャンセル操作の場合にはデータが保存されないことを考慮すると、アプリ起動時に開始し、照合後に停止するようにする形で実装するのが望ましいが、データサイズ等に制約がある場合には、照合時に作業者を撮影し、その撮影データで代替することも可能である。
【０１１８】
また、顔認証アプリ５２における上記顔判定処理については、顔認識ライブラリや市販ソフトを利用することで実装可能であり、その判定アルゴリズムについては本発明の範囲ではない。
【０１１９】
図７は、支援ソフト５１の処理フローチャート図である。
これは、図２と同様、ダウンロード時の処理を示すものである。
また、図７におけるステップＳ４１，Ｓ４２，Ｓ４３，Ｓ４４の処理は、図２におけるステップＳ１１，Ｓ１２，Ｓ１３，Ｓ１４の処理を同じであってよく、ここでは特に説明しないが、簡単に説明するならば、支援ソフト５１では、プログラムダウンロードを実行する際、コントローラへプログラムをダウンロードする前に、ＡＲアプリ２２を起動した後（ステップＳ４１）、終了するまで待機する（ステップＳ４２）。
【０１２０】
ＡＲアプリ２２が終了すると（ステップＳ４２，ＹＥＳ）、ＡＲアプリ２２によってＡＲマーカーに対応した拡張情報を含んだ撮影データ（上記拡張現実画像）が、特定の場所に保存されているか否かを確認し（ステップＳ４３）、保存されていなければ（ステップＳ４３，ＮＯ）キャンセルされたものと見なして異常終了（プログラムダウンロード失敗）とし、保存されていれば（ステップＳ４３，ＹＥＳ）上記撮影データ（上記拡張現実画像）をプロジェクト内に更新証明ファイルとして取り込む（ステップＳ４４）。
【０１２１】
図２ではステップＳ１４の処理に続いてステップＳ１５，Ｓ１６の処理を行ったが、図７ではステップＳ４４の処理に続いて図示のステップＳ４５〜Ｓ５１の処理を実行する。
以下、ステップＳ４５〜Ｓ５１の処理について説明する。
【０１２２】
図７の処理では、上記ステップＳ４４の処理を実行したら、続いて、顔認証アプリ５２を起動し（ステップＳ４５）、顔認証アプリ５２の処理が終了するまで待機する（ステップＳ４６）。顔認証アプリ５２の処理は、図８、図９に示し、後に説明するものとする。
【０１２３】
顔認証アプリ５２の処理が終了すると（ステップＳ４６，ＹＥＳ）、顔認証アプリ５２によって認証に成功したか否かを確認し（ステップＳ４７）、成功していれば（ステップＳ４７，ＹＥＳ）、図２のステップＳ１５，Ｓ１６と同様の処理であるステップＳ４８，Ｓ４９の処理を実行する。すなわち、プログラムダウンロードを開始し、コントローラのプログラムと共に上記更新証明ファイルもコントローラにダウンロードする（ステップＳ４８，Ｓ４９）。
【０１２４】
しかし、認証に失敗していれば（ステップＳ４７，ＮＯ）、特定の場所に保存されている録画データをプロジェクト内に不正アクセスデータとして取り込んだ後（ステップＳ５０）、この不正アクセスデータのみをコントローラにダウンロードする（ステップＳ５１）。この場合も、異常終了（プログラムダウンロード失敗）となり、当然、プログラムのダウンロードは許可されない。
【０１２５】
尚、上記“特定の場所に保存されている録画データ”に関しては、図８、図９の顔認証アプリ５２の処理の説明の際に説明する。
尚、上記ステップＳ４１で起動したＡＲアプリ２２の処理は、第１の実施例と同様であってよく、例えば上記図３の処理を実行するものであり、従ってここでは特に図示・説明は行わないが、以下、簡単に説明する。
【０１２６】
ＡＲアプリ２２では、カメラの撮影範囲内の映像に、ＡＲアプリ２２に登録してあるＡＲマーカーが存在するかどうかの照合を常に行い、該当するＡＲマーカーを認識した場合、そのマーカーに対応する情報を認識したマーカーの位置に合わせてＡＲアプリの画面内に表示する。更新場所に関するＡＲマーカーと担当者に関するＡＲマーカーの両方を認識した場合に、ＡＲアプリ内の撮影機能を有効にし、撮影ボタンを操作された場合、カメラの撮影範囲にある実際のイメージとＡＲアプリ画面内に表示されたＡＲマーカーに対応した拡張情報を合成した撮影データ（拡張現実画像）を作成し、これを特定の場所に保存する。
【０１２７】
図８は、顔認証アプリ５２の処理フローチャート図である。図９は、図８のステップＳ６６の処理の詳細フローチャート図である。
以下、図８、図９を参照して、顔認証アプリ５２の処理の一例について説明する。
【０１２８】
顔認証アプリ５２は、上記のように起動されると、まず、カメラを起動して（あるいはカメラを切替えるなどして、作業者がカメラの撮影範囲に入るようにしつつ）、アプリ内の画面にカメラの撮像映像を表示する（ステップＳ６１）。
【０１２９】
続いて、（予めＡＲマーカーの種別に対応した番号を決めておき、この番号をファイル経由でやりとりする等により）ＡＲアプリ２２で認識したＡＲマーカーの種別を取得する（ステップＳ６２）。更に、作業者照合用ＤＢ５３から、ステップＳ６２で取得したＡＲマーカーの種別に対応した写真データを取得する（ステップＳ６３）。
【０１３０】
そして、カメラの撮影範囲の映像の録画を開始する（ステップＳ６４）。
その後、ユーザによって照合ボタンが操作された場合（ステップＳ６５，ＹＥＳ）、まず、カメラの撮影範囲にある映像から上記取得した写真データの人物の顔を認識できるか否かを判定する（ステップＳ６６）。このステップＳ６６の処理の具体例を、図９に示す。尚、図９の処理（特に顔検出や顔データ照合処理）は、既存の一般的な顔認証アプリケーションの処理と見做して構わない。
【０１３１】
図９に示す例では、まず、ステップＳ６３で取得した写真データから顔検出を行い顔データを抽出する（既存技術）（ステップＳ８１）。続いて、カメラの撮影範囲にある映像から顔検出を行って顔データを抽出する（ステップＳ８２）。これは、現場に複数の人間が居る状況もあり得ると想定して、映像中の全ての顔の顔データを抽出する。
【０１３２】
そして、ステップＳ８２で抽出した顔データを、ステップＳ８１で抽出した顔データと照合して（ステップＳ８４）、一致するものがあった場合には（ステップＳ８５，ＹＥＳ）、顔認証成功として処理終了する。一方、ステップＳ８２で抽出した顔データのなかに、ステップＳ８１で抽出した顔データと一致するものが１つも無かった場合には（ステップＳ８３，ＹＥＳ）、顔認証失敗として処理終了する。
【０１３３】
尚、図９の処理は例えば図８の処理から呼び出されるサブルーチンであり、処理終了の際に判定結果（顔認証成功ｏｒ顔認証失敗）を呼び出し元の処理に返す（レスポンスを返す）。
【０１３４】
図８の処理では、ステップＳ６６の処理（図９の処理）が完了して上記レスポンスを受けると、上記カメラの撮影範囲の映像の録画を停止して（ステップＳ６７）、上記判定結果が上記顔認証成功であるならば（ステップＳ６８，ＹＥＳ）、作業者が認識したＡＲマーカーに対応した作業者本人であると判断して、録画データを削除して（ステップＳ６９）正常終了する。上記判定結果が上記顔認証失敗であるならば（ステップＳ６８，ＮＯ）、録画データを特定の場所に保存し（ステップＳ７０）、異常終了する。
【０１３５】
異常終了した場合には、上記ステップＳ４７の判定がＮＯとなり、上記ステップＳ５０、Ｓ５１の処理が実行されることになる。これによって、例えば他人の“作業者証のＡＲマーカー”を不正使用して不正アクセスを図ろうとした人間の画像などが、証拠として保存されることになる。尚、この例に限らず、ステップＳ７０の処理として、例えば上記録画データから顔検出を行って、この顔データを上記特定の場所に保存するようにしてもよい。尚、正常終了した場合には、上記ステップＳ４７の判定はＹＥＳとなる。
【０１３６】
図１１は、第２の実施例のコントローラシステムの機能構成図である。
図１１に示す各構成に関して、図４に示す第１の実施例の構成と同一の構成には同一符号を付してあり、その説明は省略または簡略化する。
【０１３７】
本例のコントローラシステム６０は、図４に示すコントローラシステム３０と同様、複数のコントローラ３１が設置され、任意のコントローラ３１のプログラム更新の際に、任意の支援装置６１から該コントローラ３１にプログラムがダウンロードされるコントローラシステムである。この支援装置６１の機能が、図４の支援装置３２とは多少異なる。
【０１３８】
また、図４と同様、任意の各場所に設置される複数の第１のＡＲマーカー３３と、各作業者に所持させる複数の第２のＡＲマーカー３４とが設けられている。
そして、支援装置６１は、下記の各処理機能部を有する。尚、上記支援装置５０が支援装置６１の一例であり、上記ＰＬＣ１０がコントローラ３１の一例である。
【０１３９】
支援装置６１は、支援装置３２と同様の機能である撮影部４１、ＡＲ部４３、設備情報記憶部４４、作業者情報記憶部４５を有する。よって、これらについては特に説明しない。また、支援部４２の代わりに支援部７１を有する。この支援部７１の機能は、支援部４２の機能と多少異なるものであり、ここでは主に異なる点について説明する。
【０１４０】
支援装置６１は、更に、作業者画像記憶部７２、顔認証部７３を有する。作業者画像記憶部７２の一例が上記作業者照合用ＤＢ５３であり、顔認証部７３の一例が上記顔認証アプリ５２であるが、この例に限らない。
【０１４１】
支援部７１は、例えば一例が上記支援ソフト５１であり、支援部４２と同様に、任意のコントローラ３１に対するプログラムのダウンロードの際に、ＡＲ部４３を起動し、ＡＲ部４３による上記合成画像が生成されない場合にはプログラムのダウンロードを実行しない。一方、該合成画像が生成された場合には、支援部４２とは異なり、更に、所定の条件が満たされるか否かを判定し、所定の条件が満たされた場合にはプログラムのダウンロードを実行すると共に該合成画像も一緒にダウンロードする。
【０１４２】
上記所定の条件が満たされる場合とは、例えば、作業者を撮影する為の新たな撮像画像から抽出される顔データが、上記検出された第２のＡＲマーカーに対応する正当な顔データと合致する場合などである。
【０１４３】
ここで、上記作業者画像記憶部７２は、予め、各第２のＡＲマーカー３４に対応付けて、その正当な所有者である作業者本人の画像データ（顔写真、あるいは特徴など）が記憶されたＤＢ（データベース）等である。支援部７１は、上記合成画像が生成された場合には更に上記顔認証部７３を起動する。起動された顔認証部７３は、ＡＲ部４３が検出した第２のＡＲマーカー３４に対応する作業者本人の画像データ（顔写真など）を作業者画像記憶部７２から取得して、該取得した画像データから顔データを抽出して正当顔データとし、また、上記新たな撮影画像から顔データを抽出し、該抽出した顔データが上記正当顔データと合致する場合には照合成功とする。
【０１４４】
尚、上記作業者の撮影画像とは、現在、ダウンロードを試みている作業者のことであり、この作業者が上記作業者本人である保証はない。理由は既に述べた通りである。
支援部７１は、顔認証部７３によって照合成功した場合には、上記所定の条件が満たされたものと判定する。
【０１４５】
支援部７１は、顔認証部７３によって照合失敗した場合には、上記新たな撮影画像または該撮影画像から抽出した顔データを、不正アクセスデータとして記録する。これは、例えばダウンロード対象のコントローラ３１に転送して記録させるが、この例に限らず、支援装置６１に記録してもよい。
【０１４６】
以上説明したように、第２の実施例によれば、上記第１の実施例による効果に加えて、下記の効果が得られる。
すなわち、プログラムダウンロードの際、ＡＲアプリと顔認証アプリが連携し、ＡＲアプリで照合したＡＲマーカーに対応した写真データを用いて、顔認証アプリにより顔認証を行うことで、ＡＲマーカーの不正利用を防止することができるという効果を有する。
【０１４７】
また、顔認証アプリによる顔認証失敗（または、キャンセル）時には、認証時における録画データが不正アクセスデータとしてコントローラに保存されるため、後で不正アクセスデータを参照すれば、何時、何処から、誰によって不正アクセスが試みられたのかを特定できるようになるだけでなく、不正利用そのものの抑止という効果が期待できる。
【０１４８】
尚、図１０には変形例を示す。
例えば、上記作業者照合用ＤＢ５３は、図６のように支援装置５０が記憶する例に限らず、例えば図１０に示すように、コントローラ（ＰＬＣ１０）に記憶させる形態であっても構わない。この例の場合、作業者照合用ＤＢ５３は管理サーバが保持しており、ネットワーク経由で予め管理サーバ等から配信する形で各コントローラ（ＰＬＣ１０）に格納されるようにしてもよいが、この例に限らない。この例の場合、顔認証アプリ５２による照合に必要な写真データは、コントローラ側にあるため、支援装置５０は、コントローラに対してＡＲマーカーの種別を送信し、その応答データとして上記照合に必要な写真データを取得するようにする。
【０１４９】
また、１つのＡＲマーカーに対して複数の人間が登録されていてもよい。つまり任意の“作業者証のＡＲマーカー”の正当や所有者が、複数人いても構わない。図１０に示す一例では、ＡＲマーカー「長方形」に対して、２人の人間の写真データが登録されている例を示している。このように、ＡＲマーカーに対応する写真データは複数であっても良く、その場合、顔認証アプリ５２では、どちらか一方で顔認証に成功すれば良いことになる。
【０１５０】
尚、支援装置５０に付属するカメラは、ＡＲアプリ用がリアカメラ、顔認証アプリ用がフロントカメラというように別々にするか、もしくは撮影範囲が調整できるものが望ましく、このような場合、顔認証アプリをＡＲアプリの機能の一部として実装することで、ＡＲマーカーを認識した後、対象カメラを自動で切替えることで（あるいは、撮影範囲を調整して）、よりスムーズに操作を行うことが可能となる。
【符号の説明】
【０１５１】
１０（１０ａ、１０ｂ）  ＰＬＣ
２０（２０ａ、２０ｂ、２０ｃ）  支援装置
２１  支援ソフト
２２  ＡＲアプリ
３０  コントローラシステム
３１  コントローラ
３２  支援装置
３３  第１のＡＲマーカー
３４  第２のＡＲマーカー
４１  撮影部
４２  支援部
４３  ＡＲ部
４４  設備情報部
４５  作業者情報記憶部
【図１】
0006686496.tif 000002
【図２】
0006686496.tif 000003
【図３】
0006686496.tif 000004
【図４】
0006686496.tif 000005
【図５】
0006686496.tif 000006
【図６】
0006686496.tif 000007
【図７】
0006686496.tif 000008
【図８】
0006686496.tif 000009
【図９】
0006686496.tif 000010
【図１０】
0006686496.tif 000011
【図１１】
0006686496.tif 000012
【図１２】
0006686496.tif 000013