(57)【要約】      （修正有）【課題】他のコントローラから送信された指示に応じて制御対象機器が誤って制御されることを防止する。【解決手段】制御対象機器の制御に関わるオブジェクトを記憶するサーバと、オブジェクトを用いて制御対象機器を制御するコントローラと、を有する制御システムであり、コントローラは、オブジェクトに対する第１処理の実行を指示する第１指示をサーバに送信し、サーバは、オブジェクト毎に、当該オブジェクトに対して第１処理を実行可能か否か示す第１情報を記憶しており、コントローラから第１指示を受信し、第１指示により第１処理の実行が指示された第１オブジェクトの第１情報が、第１処理を実行不可であることを示す場合、第１オブジェクトに第１処理を実行せず、第１オブジェクトの第１情報が、第１処理を実行可能であることを示す場合、第１オブジェクトに第１処理を実行する。【選択図】図４
2017084127.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器の制御に関わるオブジェクトを記憶するサーバと、前記オブジェクトを用いて前記制御対象機器を制御するコントローラと、を有する制御システムであって、
前記コントローラは、
ＯＰＣ（OLE  for  Process  Control）に従って、前記オブジェクトに対する第１処理の実行を指示する第１指示を前記サーバに送信するクライアント機能部、を備え、
前記サーバは、
前記オブジェクト毎に、当該オブジェクトに対して前記第１処理を実行可能か否か示す第１情報を記憶する記憶部と、
ＯＰＣに従って、前記コントローラから前記第１指示を受信するサーバ機能部と、
前記第１指示により前記第１処理の実行が指示された第１オブジェクトの前記第１情報が、前記第１処理を実行不可であることを示す場合、前記第１オブジェクトに前記第１処理を実行せず、前記第１オブジェクトの前記第１情報が、前記第１処理を実行可能であることを示す場合、前記第１オブジェクトに前記第１処理を実行する制御部と、
を備えた制御システム。
【請求項２】
前記記憶部は、前記コントローラのユーザＩＤおよびパスワードを記憶し、
前記第１指示は、前記ユーザＩＤおよび前記パスワードを含み、
前記制御部は、前記記憶部に記憶された前記ユーザＩＤおよび前記パスワードと、前記第１指示が含む前記ユーザＩＤおよび前記パスワードとを用いて、前記コントローラのユーザの認証処理を実行し、当該ユーザの認証に失敗した場合、前記第１処理を実行しない請求項１に記載の制御システム。
【請求項３】
前記記憶部は、前記オブジェクト毎に、当該オブジェクトに対する前記第１処理の実行履歴を記憶し、
前記サーバ機能部は、ＯＰＣに従って、前記実行履歴を前記コントローラに送信する請求項１に記載の制御システム。
【請求項４】
前記クライアント機能部は、前記オブジェクト毎に、予め設定された周期で、ＯＰＣに従って、前記実行履歴の送信を指示する第２指示を前記サーバに送信し、
前記サーバ機能部は、ＯＰＣに従って、前記第２指示を受信し、当該第２指示に従って、最新の前記実行履歴を前記コントローラに送信する請求項３に記載の制御システム。
【請求項５】
外部機器から、第１情報が入力され、当該第１情報に基づいて、前記第１指示を生成するファンクションブロックをさらに備え、
前記クライアント機能部は、前記ファンクションブロックにより生成された前記第１指示を前記サーバに送信する請求項１に記載の制御システム。
【請求項６】
前記オブジェクトのリストの生成を指示する前記第１指示を前記サーバが受信した場合、前記リストを生成しかつ当該生成したリストを前記コントローラに送信するＰＯＵ（Program  Organization  Unit）を有する請求項１に記載の制御システム。
【請求項７】
制御対象機器の制御に関わるオブジェクトを記憶するサーバであって、
前記オブジェクト毎に、当該オブジェクトに対する第１処理を実行可能か否か示す第１情報を記憶する記憶部と、
前記オブジェクトを用いて前記制御対象機器を制御するコントローラから、ＯＰＣに従って、前記第１処理の実行を指示する第１指示を受信するサーバ機能部と、
前記第１指示により前記第１処理の実行が指示された第１オブジェクトの前記第１情報が、前記第１処理を実行不可であることを示す場合、前記第１オブジェクトに前記第１処理を実行せず、前記第１オブジェクトの前記第１情報が、前記第１処理を実行可能であることを示す場合、前記第１オブジェクトに前記第１処理を実行する制御部と、
を備えたサーバ。
【請求項８】
前記記憶部は、前記コントローラのユーザＩＤおよびパスワードを記憶し、
前記第１指示は、前記ユーザＩＤおよび前記パスワードを含み、
前記制御部は、前記記憶部に記憶された前記ユーザＩＤおよび前記パスワードと、前記第１指示が含む前記ユーザＩＤおよび前記パスワードとを用いて、前記コントローラのユーザの認証処理を実行し、当該ユーザの認証に失敗した場合、前記第１処理を実行しない請求項７に記載のサーバ。
【請求項９】
前記記憶部は、前記オブジェクト毎に、当該オブジェクトに対する前記第１処理の実行履歴を記憶し、
前記サーバ機能部は、ＯＰＣに従って、前記実行履歴を前記コントローラに送信する請求項７に記載のサーバ。
【請求項１０】
前記サーバ機能部は、ＯＰＣに従って、予め設定された周期で、最新の前記実行履歴を前記コントローラに送信する請求項９に記載のサーバ。
【請求項１１】
前記オブジェクトのリストの生成を指示する前記第１指示を受信した場合、前記リストを生成しかつ当該生成したリストを前記コントローラに送信するＰＯＵを有する請求項７に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御システムおよびサーバに関する。
【背景技術】
【０００２】
クラウドコンピューティング（以下、クラウドと言う）という、ＬＡＮ（Local  Area  Network）を超えたグローバルネットワーク（特に、インターネット）を介したコンピュータ資源の利用形態が注目されている。クラウドが注目される背景には、ネットワークの高速化、およびメモリ等の記録メディアの大容量化がある。ユーザは、ローカルのコンピュータ資源に依存していたデータの演算やデータの格納を、グローバルネットワークを介して、クラウド上で実現することができる。
【０００３】
クラウドを、工業用の制御システムに適用した制御クラウドがある。従来の制御システムでは、コントローラが提供するサービス（例えば、ＰＯＵ：Program  Organization  Unitや変数やタスク等のコンピュータ資源）によって、制御システム内のバルブやセンサ等の制御対象機器を制御するが、制御クラウドでは、当該制御クラウド内のサーバが提供するサービス（以下、クラウドオブジェクトと言う）を利用して、制御対象機器を制御することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００２−５３２７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、制御クラウドでは、ＯＰＣ（OLE  for  Process  Control）を利用することができる。ＯＰＣに従うことで、ローカルネットワーク内のコントローラと、グローバルネットワーク内のサーバとを接続することができる。しかしながら、ＯＰＣには、サーバに記憶されたクラウドオブジェクト単位で、当該クラウドオブジェクトに対するアクセスを制御するメカニズムが無いため、複数のコントローラが同時に、同一のクラウドオブジェクトに対してアクセスすると、不測の事態を招くことが想定される。例えば、一のコントローラがあるクラウドオブジェクトの値を書き換えたという前提で、当該クラウドオブジェクトを用いて制御対象機器を制御すると、他のコントローラもクラウドオブジェクトの値を書き換えていた場合に、誤ってそのクラウドオブジェクトを用いて制御対象機器を制御することで、不測の事態を招いてしまう。
【課題を解決するための手段】
【０００６】
実施形態の制御システムは、制御対象機器の制御に関わるオブジェクトを記憶するサーバと、オブジェクトを用いて制御対象機器を制御するコントローラと、を有する制御システムである。コントローラは、クライアント機能部を備える。サーバは、記憶部と、サーバ機能部と、制御部と、を備える。クライアント機能部は、ＯＰＣに従って、オブジェクトに対する第１処理の実行を指示する第１指示をサーバに送信する。記憶部は、オブジェクト毎に、当該オブジェクトに対して第１処理を実行可能か否か示す第１情報を記憶する。サーバ機能部は、ＯＰＣに従って、コントローラから第１指示を受信する。制御部は、第１指示により第１処理の実行が指示された第１オブジェクトの第１情報が、第１処理を実行不可であることを示す場合、第１オブジェクトに第１処理を実行せず、第１オブジェクトの第１情報が、第１処理を実行可能であることを示す場合、第１オブジェクトに第１処理を実行する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかるローカル制御システムの構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかるＰＬＣの構成の一例を示す図である。
【図４】図４は、第１の実施形態にかかる制御システムの機能構成の一例を示す図である。
【図５】図５は、第１の実施形態にかかる制御クラウドサーバが有するユーザ管理データベースの構成の一例を示す図である。
【図６】図６は、第１の実施形態にかかる制御クラウドサーバが有するアクセス属性データベースの構成の一例を示す図である。
【図７】図７は、第１の実施形態にかかる制御クラウドサーバが有するメソッド属性データベースの構成の一例を示す図である。
【図８】図８は、第１の実施形態にかかる制御クラウドサーバにおけるメソッドの実行の流れの一例を示すフローチャートである。
【図９】図９は、第１の実施形態にかかるＰＬＣから送信されるアクセス要求の一例を説明するための図である。
【図１０】図１０は、第１の実施形態にかかるＰＬＣから送信されるアクセス要求の一例を説明するための図である。
【図１１】図１１は、第２の実施形態にかかる制御クラウドサーバが有するアクセス履歴データベースの一例を示す図である。
【図１２】図１２は、第２の実施形態にかかる制御クラウドサーバが実行するメソッドの一例を説明するための図である。
【図１３】図１３は、第３の実施形態にかかる制御クラウドサーバが記憶するアクセス履歴データベースの一例を示す図である。
【図１４】図１４は、第３の実施形態にかかる制御クラウドサーバが送信する実行履歴の一例を示す図である。
【図１５】図１５は、第３の実施形態にかかるＰＬＣがキャッシュとして記憶する実行履歴の一例を示す図である。
【図１６】図１６は、第４の実施形態にかかるＰＬＣのファンクションブロックにおける変換処理の一例を説明するための図である。
【図１７】図１７は、第５の実施形態にかかるＰＬＣから送信されるアクセス要求の一例を説明するための図である。
【図１８】図１８は、第５の実施形態にかかるＨＭＩの表示部に表示されるクラウドオブジェクトリストの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を用いて、本実施形態にかかる制御システムおよびサーバについて説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。図１に示すように、本実施形態にかかる制御システムは、制御クラウドサーバ１と、インターネット等の通信ネットワークＮＴを介して制御クラウドサーバ１と接続された複数のローカル制御システム２と、を有する。
【００１０】
図２は、第１の実施形態にかかるローカル制御システムの構成の一例を示す図である。図２に示すように、本実施形態にかかるローカル制御システム２は、通信ネットワークＮＴとの間のインタフェースとなる通信モジュール２０１と、ＬＡＮ（Local  Area  Network）２０２に接続されかつオペレータが各種操作を行う複数のＨＭＩ（Human  Machine  Interface）２０３と、ＬＡＮ２０２に接続されかつ制御対象機器を制御する複数のＰＬＣ（Programmable  Logic  Controller）２０４と、ＬＡＮ２０２に接続されかつ制御対象機器との間のインタフェースとなる複数のリモートＩ／Ｏ２０５と、を備える。また、図２に示すように、制御クラウドサーバ１（サーバの一例）は、当該制御クラウドサーバ１が提供するサービスでありかつ制御対象機器の制御に関わるクラウドオブジェクト（オブジェクトの一例。例えば、ＰＯＵ：Program  Organization  Unit、変数、タスク）を記憶する。
【００１１】
図３は、第１の実施形態にかかるＰＬＣの構成の一例を示す図である。ＰＬＣ２０４（コントローラの一例）は、制御クラウドサーバ１が記憶するクラウドオブジェクトを用いて、制御対象機器を制御する。本実施形態では、図３に示すように、ＰＬＣ２０４は、スイッチやセンサや信号発生装置等の外部入力機器（制御対象機器）と接続された入力端子を備えた入力端子部３０１と、当該入力端子部３０１に接続されかつ制御対象機器からの入力を制御する入力インタフェース部３０２と、バルブやランプやブザーやアクチュエータ等の外部出力機器（制御対象機器）と接続された出力端子を備えた出力端子部３０３と、当該出力端子部３０３に接続されかつ外部出力機器に対する出力を制御する出力インタフェース部３０４と、入力インタフェース部３０２および出力インタフェース部３０４と接続され、制御クラウドサーバ１に記憶されたクラウドオブジェクトを用いて制御対象機器を制御する制御部３０５と、を有している。
【００１２】
制御部３０５は、制御対象機器を制御するＭＰＵ（Micro  Processing  Unit）３０６と、当該ＭＰＵ３０６により実行される制御プログラムを含む各種データを不揮発的に記憶するＲＯＭ（Read  Only  Memory）３０７と、ＭＰＵ３０６のワークエリアとして用いられ、各種データを一時的に記憶するＲＡＭ（Random  Access  Memory）３０８と、制御対象機器の制御に用いる制御パラメータ等の各種データを不揮発的かつ更新可能に記憶するフラッシュＲＯＭ３０９と、通信ネットワークＮＴを介して他のＰＬＣ２０４または制御クラウドサーバ１と通信を行う通信インタフェース３１０と、各部を通信可能に接続するバス３１１と、を有する。
【００１３】
図４は、第１の実施形態にかかる制御システムの機能構成の一例を示す図である。まず、図４を用いて、ＰＬＣ２０４の機能構成について説明する。図４に示すように、ＰＬＣ２０４は、ＭＰＵ３０６がフラッシュＲＯＭ３０９に記憶されたプログラムを実行することによって、クライアント機能部２１０（所謂、ＯＰＣクライアント）を実現する。クライアント機能部２１０は、ＯＰＣ（OLE  for  Process  Control）に従って、制御クラウドサーバ１と通信可能である。本実施形態では、クライアント機能部２１０は、ＯＰＣに従って、アクセス要求を制御クラウドサーバ１に送信する。ここで、アクセス要求は、クラウドオブジェクトに関する処理であるメソッド（第１処理の一例）の実行を指示する。
【００１４】
次に、図４を用いて、制御クラウドサーバ１の機能構成について説明する。図４に示すように、制御クラウドサーバ１は、サーバ機能部１０１（所謂、ＯＰＣサーバ）と、アクセス制御機能部１０２と、ユーザ管理データベース１０３と、アクセス属性データベース１０４と、を有する。サーバ機能部１０１は、ＯＰＣに従って、ＰＬＣ２０４から、クラウドオブジェクトに対するアクセス要求（第１指示の一例）を受信する。
【００１５】
アクセス制御機能部１０２は、後述するユーザ管理データベース１０３およびアクセス属性データベース１０４を参照して、サーバ機能部１０１によるクラウドオブジェクトに対するメソッドの実行を制御する制御部の一例である。
【００１６】
ユーザ管理データベース１０３（記憶部の一例）は、ＰＬＣ２０４のユーザ毎に、当該ユーザの認証に用いるユーザＩＤとパスワードとを対応付けて記憶する。図５は、第１の実施形態にかかる制御クラウドサーバが有するユーザ管理データベースの構成の一例を示す図である。図５に示すように、本実施形態では、ユーザ管理データベース１０３は、ＰＬＣ２０４のユーザのユーザ番号と、ユーザＩＤと、パスワードと、を対応付けて記憶する。
【００１７】
アクセス属性データベース１０４（記憶部の一例）は、クラウドオブジェクト毎に、当該クラウドオブジェクトに対してメソッドを実行可能か否かを示すロック状態情報（第１情報の一例）を記憶する。図６は、第１の実施形態にかかる制御クラウドサーバが有するアクセス属性データベースの構成の一例を示す図である。図７は、第１の実施形態にかかる制御クラウドサーバが有するメソッド属性データベースの構成の一例を示す図である。図６に示すように、本実施形態では、アクセス属性データベース１０４は、クラウドオブジェクトの名称であるオブジェクト名と、ロック状態情報と、ＰＬＣ２０４の各ユーザに許可されたメソッドを示すメソッド情報と、を対応付けて記憶する。
【００１８】
本実施形態では、ロック状態情報は、クラウドオブジェクトに対するメソッドの実行を禁止するメソッドであるロックが実行されたロック状態、または当該ロック状態を解除するメソッドであるアンロックが実行されたアンロック状態を示す。そして、ロック状態情報は、ロック状態を示す場合、最後にロックの実行を指示したユーザのユーザＩＤを含む。メソッド情報は、各クラウドオブジェクトに対して、ＰＬＣ２０４の各ユーザが実行を指示可能なメソッドを識別可能とするメソッドＩＤを示す。
【００１９】
図７に示すように、メソッドＩＤ：０は、クラウドオブジェクトの読み出しのみの実行が指示可能であることを表す。また、メソッドＩＤ：１は、クラウドオブジェクトの読み出し、書き込みおよびチェックの実行が指示可能であることを表す。また、メソッドＩＤ：２は、クラウドオブジェクトの読み出し、書き込み、チェック、ロック、およびアンロックの実行が指示可能であることを表す。また、メソッドＩＤ：３は、クラウドオブジェクトの読み出し、書き込み、チェック、ロック、アンロック、更新、および削除の実行が指示可能であることを表す。
【００２０】
したがって、例えば、図４および図６に示すように、アクセス属性データベース１０４において、オブジェクト名：クラウドオブジェクトＡと対応付けて記憶されたロック状態情報は、ロック状態を示しているため、アクセス制御機能部１０２は、クラウドオブジェクトＡに対するメソッドの実行を行わない。
【００２１】
一方、例えば、図４および図６に示すように、アクセス属性データベース１０４において、オブジェクト名：クラウドオブジェクトＢと対応付けて記憶されたロック状態情報は、アンロック状態を示しているため、ＰＬＣ２０４のユーザ（例えば、ユーザ１、ユーザ２）は、クラウドオブジェクトＢに対するメソッドの実行を指示可能である。そのため、アクセス制御機能部１０２は、ＰＬＣ２０４のユーザ：ユーザ１からクラウドオブジェクトＢにアクセス要求を受信した場合、メソッドＩＤ：１が表すメソッドである読み出し、書き込み、およびチェックを実行可能である。また、アクセス制御機能部１０２は、ＰＬＣ２０４のユーザ：ユーザ２からアクセス要求を受信した場合、メソッドＩＤ：３が表すメソッドである読み出し、書き込み、チェック、ロック、アンロック、更新、および削除を実行可能である。
【００２２】
次に、図８を用いて、本実施形態にかかる制御クラウドサーバ１におけるクラウドオブジェクトに対するメソッドの実行の流れについて説明する。図８は、第１の実施形態にかかる制御クラウドサーバにおけるメソッドの実行の流れの一例を示すフローチャートである。
【００２３】
制御クラウドサーバ１におけるメソッドの実行に先立って、ＰＬＣ２０４のクライアント機能部２１０は、ＨＭＩ２０３から入力された情報に基づいて、アクセス要求を生成する。そして、クライアント機能部２１０は、アクセス要求を、ＯＰＣに従って、通信ネットワークＮＴを介して、制御クラウドサーバ１に送信する。本実施形態では、クライアント機能部２１０は、クラウドオブジェクトに対して実行するメソッドの名称であるメソッド名と、当該メソッドの実行に要する引数と、を含むアクセス要求を、制御クラウドサーバ１に送信する。また、本実施形態では、クライアント機能部２１０は、ＰＬＣ２０４のユーザのユーザＩＤおよびパスワードを引数としてアクセス要求に含める。
【００２４】
図９および図１０は、第１の実施形態にかかるＰＬＣから送信されるアクセス要求の一例を説明するための図である。図９に示すように、クライアント機能部２１０は、クラウドオブジェクトを作成するメソッドの実行を指示するアクセス要求を送信する場合、メソッド名：クリエイト、および引数：オブジェクト名，データ型，初期値，アクセス権限を含むアクセス要求を生成する。
【００２５】
ここで、オブジェクト名は、メソッドを実行するクラウドオブジェクトの名称である。データ型は、メソッドを実行するクラウドオブジェクトのデータ形式である。初期値は、クラウドオブジェクトとして作成する変数の初期値である。アクセス権限は、クラウドオブジェクトに対してメソッドの実行を指示する権限を有するユーザに関する情報である。具体的には、図１０に示すように、アクセス権限は、クラウドオブジェクトに対してメソッドの実行を指示する権限を有するユーザの数であるユーザ数と、当該ユーザのユーザＩＤと、当該ユーザが実行を指示する権限を有するメソッドのメソッドＩＤと、を含む。また、アクセス権限は、ユーザＩＤおよびメソッドＩＤを、ユーザ数の分だけ含むものとする。
【００２６】
また、図９に示すように、クライアント機能部２１０は、クラウドオブジェクトを削除するメソッドの実行を指示するアクセス要求を送信する場合、メソッド名：デリート、および引数：オブジェクト名，ユーザＩＤ，パスワードを含むアクセス要求を生成する。ここで、ユーザＩＤは、クラウドオブジェクトを削除するメソッドの実行を指示したユーザの認証に用いる情報であり、当該ユーザのＩＤである。また、パスワードは、クラウドオブジェクトを削除するメソッドの実行を指示したユーザの認証に用いる情報であり、当該ユーザのパスワードである。
【００２７】
また、図９に示すように、クライアント機能部２１０は、クラウドオブジェクトを更新するメソッド（例えば、アクセス権限の変更）の実行を指示するアクセス要求を送信する場合、オブジェクト名：アップデート、および引数：オブジェクト名，アクセス権限，ユーザＩＤ，パスワードを含むアクセス要求を生成する。また、図９に示すように、クライアント機能部２１０は、クラウドオブジェクトをロック状態とするメソッドの実行を指示するアクセス要求を送信する場合、メソッド名：ロック、および引数：オブジェクト名，ロック期間，ユーザＩＤ，パスワードを含むアクセス要求を生成する。ここで、ロック期間は、クラウドオブジェクトをロック状態とする期間を示す情報である。さらに、図９に示すように、クライアント機能部２１０は、クラウドオブジェクトをアンロック状態とするメソッドの実行を指示するアクセス要求を送信する場合、メソッド名：アンロック、および引数：オブジェクト名，ユーザＩＤ，パスワードを含むアクセス要求を生成する。
【００２８】
図８に戻り、制御クラウドサーバ１のサーバ機能部１０１は、ＰＬＣ２０４から、ＯＰＣに従って、通信ネットワークＮＴを介して、アクセス要求を受信する（ステップＳ８０１）。次いで、アクセス制御機能部１０２は、サーバ機能部１０１により受信したアクセス要求が含むメソッド名がクリエイトであり、かつ当該アクセス要求が含む引数：オブジェクト名のクラウドオブジェクトが既に生成されている場合（すなわち、アクセス要求が含む引数：オブジェクト名が既にアクセス属性データベース１０４に記憶されている場合）、クラウドオブジェクトの生成を行わない。そして、アクセス制御機能部１０２は、サーバ機能部１０１を制御して、アクセス要求の送信元のＰＬＣ２０４に対して失敗コードを送信する。
【００２９】
一方、アクセス制御機能部１０２は、サーバ機能部１０１により受信したアクセス要求が含むメソッド名がクリエイト以外である場合、アクセス要求が引数として含むユーザＩＤおよびパスワードと、ユーザ管理データベース１０３に記憶されたユーザＩＤおよびパスワードとを用いて、ＰＬＣ２０４のユーザの認証処理を実行する（ステップＳ８０２）。また、アクセス制御機能部１０２は、アクセス要求が含むメソッド名がクリエイトでありかつ当該アクセス要求が含む引数：オブジェクト名のクラウドオブジェクトが生成されていない場合も、同様に、ＰＬＣ２０４のユーザの認証処理を実行する（ステップＳ８０２）。
【００３０】
本実施形態では、アクセス制御機能部１０２は、アクセス要求の引数が含むパスワードが、ユーザ管理データベース１０３において、当該アクセス要求の引数が含むユーザＩＤと対応付けて記憶されたパスワードと一致した場合、ＰＬＣ２０４のユーザの認証に成功したと判断する。一方、アクセス制御機能部１０２は、アクセス要求の引数が含むパスワードが、ユーザ管理データベース１０３において、当該アクセス要求の引数が含むユーザＩＤと対応付けて記憶されたパスワードと一致しなかった場合、ＰＬＣ２０４のユーザの認証に失敗したと判断する。
【００３１】
さらに、アクセス制御機能部１０２は、アクセス属性データベース１０４において、アクセス要求が引数として含むオブジェクト名と対応付けて記憶されたメソッド情報を参照して、アクセス要求が引数として含むユーザＩＤのユーザに対して、アクセス要求が含むメソッド名のメソッドの実行が許可されているか否かを判断する。
【００３２】
そして、アクセス制御機能部１０２は、ＰＬＣ２０４のユーザの認証に成功し（ステップＳ８０３：Ｙｅｓ）、かつＰＬＣ２０４のユーザに対してメソッドの実行が許可されている場合、アクセス要求が含むメソッド名のメソッドを、当該アクセス要求が引数として含むオブジェクト名のクラウドオブジェクトに対して実行する（ステップＳ８０４）。一方、アクセス制御機能部１０２は、ＰＬＣ２０４のユーザの認証に失敗した場合（ステップＳ８０３：Ｎｏ）、若しくはＰＬＣ２０４のユーザに対してメソッドの実行が許可されていない場合、アクセス要求が含むメソッド名のメソッドを、当該アクセス要求が引数として含むオブジェクト名のクラウドオブジェクトに対して実行しない。さらに、アクセス制御機能部１０２は、サーバ機能部１０１を制御して、アクセス要求の送信元のＰＬＣ２０４に対して失敗コードを送信する（ステップＳ８０５）。
【００３３】
すなわち、アクセス制御機能部１０２は、ユーザ管理データベース１０３に記憶されたユーザＩＤおよびパスワードと、アクセス要求が含むユーザＩＤおよびパスワードとを用いて、ＰＬＣ２０４のユーザの認証処理を実行する。そして、アクセス制御機能部１０２は、ＰＬＣ２０４のユーザの認証に失敗した場合、メソッドを実行しない。これにより、クラウドオブジェクトに対して、複数のＰＬＣ２０４からのアクセス要求に応じてメソッドが実行される場合に、クラウドオブジェクトに対して、他のＰＬＣ２０４からのアクセス要求に応じて、想定外に書き換え等のメソッドが実行されることが無くなるので、想定外にメソッドが実行されたクラウドオブジェクトに従ってプラントの制御対象機器が制御されて、不測の事態を招くことを防止できる。
【００３４】
また、本実施形態では、アクセス制御機能部１０２は、アクセス属性データベース１０４に記憶されたロック状態情報のうち、アクセス要求によりメソッドの実行が指示されたクラウドオブジェクト（第１オブジェクトの一例）のオブジェクト名と対応付けて記憶されたロック状態情報が、アンロック状態を示している場合、受信したアクセス要求が含むメソッド名のメソッド（例えば、書き込み）を実行する。
【００３５】
一方、アクセス制御機能部１０２は、アクセス属性データベース１０４に記憶されたロック状態情報のうち、アクセス要求によりメソッドの実行が指示されたクラウドオブジェクトのオブジェクト名と対応付けて記憶されたロック状態情報が、ロック状態を示している場合、受信したアクセス要求が含むメソッド名のメソッドを実行しない。
【００３６】
これにより、あるＰＬＣ２０４が、アクセス要求を制御クラウドサーバ１に送信してクラウドオブジェクトにメソッドを実行したという前提で、当該クラウドオブジェクトに従って制御対象機器を制御する場合に、他のＰＬＣ２０４から送信されたアクセス要求に応じてクラウドオブジェクトにメソッドが実行されることが無くなるので、他のＰＬＣ２０４から送信されたアクセス要求に応じてメソッドが実行されたクラウドオブジェクトに従って制御対象機器が誤って制御されることが無くなり、不測の事態を招くことを防止できる。
【００３７】
ただし、アクセス制御機能部１０２は、アクセス要求によりメソッドの実行が指示されたクラウドオブジェクトのオブジェクト名と対応付けて記憶されたロック状態情報がロック状態を示していても、クラウドオブジェクトをロック状態とするメソッドの実行を指示したユーザが、当該アクセス要求の送信元のＰＬＣ２０４のユーザである場合、当該アクセス要求により実行が指示されたメソッドの実行を許可する。
【００３８】
本実施形態では、ユーザ管理データベース１０３は、制御クラウドサーバ１が有する記憶部に予め設けられているが、これに限定するものではない。例えば、アクセス制御機能部１０２は、ＰＬＣ２０４から受信したアクセス要求が、ユーザ管理データベース１０３をクラウドオブジェクトとしての生成するメソッドの実行を指示するものである場合、当該ユーザ管理データベース１０３を生成するメソッドを実行しても良い。
【００３９】
また、アクセス制御機能部１０２は、ＰＬＣ２０４から受信したアクセス要求が、クラウドオブジェクトに対するアクセス権限の確認（言い換えると、クラウドオブジェクトに対するメソッドの実行を指示する権限があるか否かの検出）の実行を指示するものである場合、当該アクセス権限の確認をメソッドとして実行することも可能である。すなわち、本実施形態では、アクセス制御機能部１０２は、サーバ機能部１０１により受信したアクセス要求に応じて、５つのメソッド（例えば、クリエイト、デリート、アップデート、ロック、およびアンロック）を実行しているが、これに限定するものではく、５つ以上のメソッドを実行することも可能である。
【００４０】
また、本実施形態では、クライアント機能部２１０は、クラウドオブジェクトを生成するメソッドの実行を指示する場合、アクセス権限情報を引数として含むアクセス要求を制御クラウドサーバ１に送信しているが、これに限定するものではない。例えば、アクセス制御機能部１０２は、図４に示すように、クラウドオブジェクト毎に、当該クラウドオブジェクトの実行を指示する権限を有するユーザに関するアクセス権限情報を示すクラウド変数定義情報ファイルを生成し、当該生成したクラウド変数定義情報ファイルを、ＰＬＣ２０４に送信して、当該クラウド変数定義情報ファイルを、ＰＬＣ２０４と制御クラウドサーバ１とで共有しても良い。
【００４１】
このように、第１の実施形態にかかる制御システムによれば、他のＰＬＣ２０４から送信されたアクセス要求に応じてメソッドが実行されたクラウドオブジェクトに従って制御対象機器が誤って制御されることが無くなり、不測の事態を招くことを防止できる。
【００４２】
（第２の実施形態）
本実施形態は、制御クラウドサーバが、クラウドオブジェクト毎に、当該クラウドオブジェクトに対するメソッドの実行履歴を記憶し、サーバ機能部が、ＯＰＣに従って、当該実行履歴をＰＬＣに送信する例である。以下の説明では、第１の実施形態と同様の構成については説明を省略する。
【００４３】
図１１は、第２の実施形態にかかる制御クラウドサーバが有するアクセス履歴データベースの一例を示す図である。図１２は、第２の実施形態にかかる制御クラウドサーバが実行するメソッドの一例を説明するための図である。図１１に示すように、本実施形態では、制御クラウドサーバ１のアクセス制御機能部１０２は、予め設定された周期である処理周期（例えば、１秒）で、クラウドオブジェクトに対する値の書き込みの実行履歴を、アクセス履歴データベース１１０１に書き込む。図１１に示すように、本実施形態では、アクセス制御機能部１０２は、クラウドオブジェクトに対する値の書き込みの実行を指示したユーザのユーザＩＤと、書き込みを実行後のクラウドオブジェクトの値とを含む実行履歴を、アクセス履歴データベース１１０１に書き込む日時（以下、書込み日時と言う）と対応付けて、アクセス履歴データベース１１０１に書き込む。本実施形態では、アクセス制御機能部１０２は、アクセス履歴データベース１１０１に対して、書込み日時に従って、時系列に、実行履歴を書き込む。
【００４４】
その後、アクセス制御機能部１０２は、サーバ機能部１０１によってメソッド名：ロックを含むアクセス要求（図１２参照）を受信すると、当該アクセス要求が含む引数：オブジェクト名のクラウドオブジェクトをロック状態にする。さらに、サーバ機能部１０１は、クラウドオブジェクトをロック状態にするメソッドを実行した場合またはクラウドオブジェクトを読み出すメソッドの実行を指示するアクセス要求を受信した場合、アクセス履歴データベース１１０１に記憶された実行履歴を参照して、ロック状態にしたクラウドオブジェクトまたは読み出したクラウドオブジェクトの実行履歴のうち最後に書き込まれた実行履歴と、当該実行履歴と対応付けて記憶された書込み日時とを、ＯＰＣに従って、制御システム内のＰＬＣ２０４に送信する。
【００４５】
本実施形態では、アクセス制御機能部１０２は、クラウドオブジェクトに対する値の書き込みの実行履歴を、アクセス履歴データベース１１０１に書き込んでいるが、クラウドオブジェクトに対するメソッドの実行履歴をアクセス履歴データベース１１０１に書き込むものであれば、これに限定するものではない。例えば、アクセス制御機能部１０２は、クラウドオブジェクトに実行可能なメソッドのうち所定のメソッドの実行履歴を、アクセス履歴データベース１１０１に書き込む。
【００４６】
このように、第２の実施形態にかかる制御システムによれば、ＰＬＣ２０４は、他のＰＬＣ２０４から送信されたアクセス要求に応じてメソッドが実行された場合の当該メソッドの実行履歴を取得することができるので、当該実行履歴を参照して、適切なアクセス要求を制御クラウドサーバ１に対して送信することが可能になるので、より現実的に制御クラウドサーバ１を利用することができる。
【００４７】
（第３の実施形態）
本実施形態は、サーバ機能部が、クラウドオブジェクトの読み出すメソッドを実行する周期とは非同期の予め設定された周期（以下、定周期と言う）で、アクセス履歴データベース１１０１に記憶された各クラウドオブジェクトの実行履歴のうち、最新の実行履歴を、ＯＰＣに従って、ＰＬＣに送信する例である。以下の説明では、第２の実施形態と同様の箇所については説明を省略する。
【００４８】
本実施形態では、ＰＬＣ２０４のクライアント機能部２１０は、定周期で、実行履歴の送信を指示するアクセス要求（第２指示の一例）を、ＯＰＣに従って、制御クラウドサーバ１に送信する。言い換えると、クライアント機能部２１０は、ある周期で送信したアクセス要求に対する、制御クラウドサーバ１からの応答を待たずに、実行履歴の送信を指示する新たなアクセス要求を、制御クラウドサーバ１に対して送信する。
【００４９】
これにより、ＰＬＣ２０４は、アクセス要求を送信してから実行履歴を受信するまでに、オーバヘッドはあるものの、出来る限り新しい実行履歴をキャッシュしておくことができるので、キャッシュした実行履歴を用いて制御対象機器を制御することができ、ユーザから要求された演算に対する応答性を損なうことを防止できる。
【００５０】
制御クラウドサーバ１のアクセス制御機能部１０２は、ＰＬＣ２０４から、ＯＰＣに従って、定周期で、実行履歴の送信を指示するアクセス要求を受信する。そして、アクセス制御機能部１０２は、アクセス履歴データベース１１０１に記憶された各クラウドオブジェクトの実行履歴のうち、最新の実行履歴を、ＯＰＣに従って、ＰＬＣ２０４に送信する。
【００５１】
図１３は、第３の実施形態にかかる制御クラウドサーバが記憶するアクセス履歴データベースの一例を示す図である。図１４は、第３の実施形態にかかる制御クラウドサーバが送信する実行履歴の一例を示す図である。図１５は、第３の実施形態にかかるＰＬＣがキャッシュとして記憶する実行履歴の一例を示す図である。例えば、２０１５／０７／０８  ０９：１４：３４時点で、アクセス履歴データベース１１０１に記憶された実行履歴が、図１３に示す状態であり、オーバヘッドが２秒ある場合、ＰＬＣ２０４のクライアント機能部２１０は、図１４に示すように、２０１５／０７／０８  ０９：１４：３２時点での実行履歴を、制御クラウドサーバ１から取得する。
【００５２】
そして、クライアント機能部２１０は、図１５に示すように、クラウドオブジェクト毎に、当該クラウドオブジェクトの実行履歴の書込み日時と、当該クラウドオブジェクトの実行履歴が含むユーザＩＤおよび値と、をキャッシュする。そして、クライアント機能部２１０は、キャッシュしたクラウドオブジェクトの値を用いて、制御対象機器を制御する。
【００５３】
このように、第３の実施形態にかかる制御システムによれば、ＰＬＣ２０４からアクセス要求が送信されてからメソッドが実行されるまでの間にオーバヘッドがあり、ＰＬＣ２０４と制御クラウドサーバ１との間に、保持するクラウドオブジェクトの値に不整合が生じる場合でも、ある書込み日時におけるクラウドオブジェクトの値としては、ＰＬＣ２０４と制御クラウドサーバ１との間で整合を取ることができるので、キャッシュしたクラウドオブジェクトの値を参照して制御対象機器を制御することによって、ユーザから要求された演算に対する応答性を損なうことを防止できる。
【００５４】
（第４の実施形態）
本実施形態は、ＰＬＣのユーザによって、アクセス要求とは異なる操作情報が入力され、当該操作情報を、アクセス要求に変換するファンクションブロックをＰＬＣが有する例である。以下の説明では、第３の実施形態と同様の構成については説明を省略する。
【００５５】
本実施形態では、ＰＬＣ２０４は、当該ＰＬＣ２０４のユーザによって入力された操作情報を、クラウドオブジェクトのメソッド（例えば、読み出し、書き込み、ロック、アンロック）の実行を指示するアクセス要求に変換するファンクションブロックを有する。そして、クライアント機能部２１０は、ファンクションブロックにより操作情報から変換されたアクセス要求を制御クラウドサーバ１に送信する。これにより、ＰＬＣ２０４のユーザは、クラウドオブジェクトに対するメソッドの実行を指示する場合に、ＯＰＣの仕様を意識することなく、制御クラウドサーバ１に対してアクセス要求を送信することができるので、制御クラウドサーバ１に対するメソッドの実行を容易に指示することができる。
【００５６】
図１６は、第４の実施形態にかかるＰＬＣのファンクションブロックにおける変換処理の一例を説明するための図である。図１６に示すように、ファンクションブロックは、ＨＭＩ２０３（外部機器の一例）からオブジェクト名が操作情報として入力された場合、当該オブジェクト名を、クラウドオブジェクトの読み出しの実行を指示するアクセス要求に変換する。クライアント機能部２１０は、クラウドオブジェクトの読み出しの実行を指示するアクセス要求に変換された場合、キャッシュする実行履歴から、読み出しの実行が指示されたクラウドオブジェクトの実行履歴を読み出す。そして、クライアント機能部２１０は、読み出した実行履歴が含むクラウドオブジェクトの値とユーザＩＤとを、ＨＭＩ２０３に出力する。一方、クライアント機能部２１０は、アクセス要求により読み出しの実行が指示されたクラウドオブジェクトの実行履歴がキャッシュされていない場合若しくは当該実行履歴が削除されている場合、エラーコードをＨＭＩ２０３に出力する。
【００５７】
また、図１６に示すように、ファンクションブロックは、ＰＬＣ２０４にユーザによって、オブジェクト名、クラウドオブジェクトに書き込む値、およびタイムアウト時間が操作情報として入力された場合、当該操作情報を、クラウドオブジェクトの書き込みの実行を指示するアクセス要求に変換する。クライアント機能部２１０は、ファンクションブロックにより変換されたアクセス要求を、制御クラウドサーバ１に送信する。その後、クライアント機能部２１０は、制御クライドサーバから、失敗コードを受信した場合（すなわち、クラウドオブジェクトの新たな値を書き込めなかった場合）、若しくはアクセス要求を送信してからタイムアウト時間経過しても、制御クラウドサーバ１から応答が無かった場合、エラーコードをＨＭＩ２０３に出力する。
【００５８】
このように、第４の実施形態にかかる制御システムによれば、制御クラウドサーバ１に対するメソッドの実行を容易に指示することができる。
【００５９】
（第５の実施形態）
本実施形態は、制御システムが、制御クラウドサーバが記憶するクラウドオブジェクトの一覧を生成し、当該一覧をＰＬＣに配信するＰＯＵを有する例である。以下の説明では、第４の実施形態と同様の箇所については説明を省略する。
【００６０】
本実施形態では、ＰＬＣ２０４のクライアント機能部２１０は、制御クラウドサーバ１が記憶するクラウドオブジェクトの一覧を生成するメソッドの実行を指示するアクセス要求を制御クラウドサーバ１に送信する。図１７は、第５の実施形態にかかるＰＬＣから送信されるアクセス要求の一例を説明するための図である。図１７に示すように、クライアント機能部２１０は、メソッド名：リスト、および引数：ユーザＩＤを含むアクセス要求を、制御クラウドサーバ１に送信する。
【００６１】
制御クラウドサーバ１は、メソッド名：リストを含むアクセス要求をサーバ機能部１０１によって受信した場合に、制御クラウドサーバ１が記憶するクラウドオブジェクトの一覧（以下、クラウドオブジェクトリストと言う）を生成するＰＯＵを有する。そして、当該ＰＯＵは、ＰＯＵにより生成されたクラウドオブジェクトリストを、ＰＬＣ２０４に送信する。これにより、ＰＬＣ２０４のユーザは、制御システムで利用可能なクラウドオブジェクトを事前に認識することができる。本実施形態では、当該ＰＯＵは、クラウドオブジェクトのオブジェクト名、クラウドオブジェクトの値、およびクラウドオブジェクトの値の型（integer）を含むリストを生成する。本実施形態では、制御クラウドサーバ１が当該ＰＯＵを有しているが、これに限定するものではなく、ＰＬＣ２０４が当該ＰＯＵを有していても良い。
【００６２】
ＰＬＣ２０４のクライアント機能部２１０は、制御クラウドサーバ１から、クラウドオブジェクトリストを受信する。そして、クライアント機能部２１０は、ＨＭＩ２０３の所定のボタンが押下されて、クラウドオブジェクトリストの表示が指示されると、当該クラウドオブジェクトリストを、ＨＭＩ２０３が有する表示部に表示する。図１８は、第５の実施形態にかかるＨＭＩの表示部に表示されるクラウドオブジェクトリストの一例を示す図である。図１８に示すように、クライアント機能部２１０は、クラウドオブジェクトリストが含むクラウドオブジェクトのオブジェクト名、当該クラウドオブジェクトの値、および当該クラウドオブジェクトの値の型（integer）を、ＨＭＩ２０３の表示部に表示する。これにより、ＰＬＣ２０４のユーザは、ＨＭＩ２０３の所定のボタンを押下すると、クラウドオブジェクトリストを閲覧することができるので、クラウドオブジェクトに対するメソッドの実行を指示する場合の利便性を向上させることができる。
【００６３】
このように、第５の実施形態にかかる制御システムによれば、ＰＬＣ２０４のユーザは、制御システムで利用可能なクラウドオブジェクトを事前に認識することができる。
【００６４】
以上説明したとおり、第１から第５の実施形態によれば、他のＰＬＣ２０４から送信されたアクセス要求に応じてメソッドが実行されたクラウドオブジェクトに従って制御対象機器が誤って制御されることが無くなり、不測の事態を招くことを防止できる。
【００６５】
なお、本実施形態の制御クラウドサーバ１で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供されるが、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００６６】
さらに、本実施形態の制御クラウドサーバ１で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の制御クラウドサーバ１で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００６７】
本実施形態の制御クラウドサーバ１で実行されるプログラムは、上述した各部（サーバ機能部１０１およびアクセス制御機能部１０２）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵが上記ＲＯＭからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、サーバ機能部１０１およびアクセス制御機能部１０２が主記憶装置上に生成されるようになっている。
【００６８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６９】
１  制御クラウドサーバ
２  ローカル制御システム
１０１  サーバ機能部
１０２  アクセス制御機能部
１０３  ユーザ管理データベース
１０４  アクセス属性データベース
２０１  通信モジュール
２０２  ＬＡＮ
２０３  ＨＭＩ
２０４  ＰＬＣ
２０５  リモートＩ／Ｏ
２１０  クライアント機能部
ＮＴ  通信ネットワーク
【図１】
2017084127.tif 000003
【図２】
2017084127.tif 000004
【図３】
2017084127.tif 000005
【図４】
2017084127.tif 000006
【図５】
2017084127.tif 000007
【図６】
2017084127.tif 000008
【図７】
2017084127.tif 000009
【図８】
2017084127.tif 000010
【図９】
2017084127.tif 000011
【図１０】
2017084127.tif 000012
【図１１】
2017084127.tif 000013
【図１２】
2017084127.tif 000014
【図１３】
2017084127.tif 000015
【図１４】
2017084127.tif 000016
【図１５】
2017084127.tif 000017
【図１６】
2017084127.tif 000018
【図１７】
2017084127.tif 000019
【図１８】
2017084127.tif 000020