(57)【要約】【課題】複数のコントローラの制御プログラムの編集を容易にする。【解決手段】情報処理装置は、編集部と記憶部とを備える。編集部は、制御装置で実行させる制御プログラムを含む１または複数のコントローラデータの編集を行う。記憶部は、複数のコントローラデータにそれぞれ含まれる制御プログラムの共有設定を示す共有設定テーブルを記憶する。編集部は、複数のコントローラに含まれる第１のコントローラデータの制御プログラムと第２のコントローラデータの制御プログラムとが共有設定されていると、第１のコントローラデータの制御プログラムに対する編集内容を、第２のコントローラデータの制御プログラムに同期させる。【選択図】図１
2019053532.tif 000002
【特許請求の範囲】
【請求項１】
制御装置で実行させる制御プログラムを含む１または複数のコントローラデータの編集を行う編集部と、
前記複数のコントローラデータにそれぞれ含まれる制御プログラムの共有設定を示す共有設定テーブルを記憶する記憶部と、を備え、
前記編集部は、
前記複数のコントローラに含まれる第１のコントローラデータの制御プログラムと第２のコントローラデータの制御プログラムとが共有設定されていると、前記第１のコントローラデータの制御プログラムに対する編集内容を、前記第２のコントローラデータの制御プログラムに同期させる、
情報処理装置。
【請求項２】
前記編集部は、
前記第１のコントローラデータの複製によって、前記第２のコントローラデータを作成するときに、
前記第１のコントローラデータに含まれる全ての制御プログラムに対する共有が選択されていれば、前記第２のコントローラデータに含まれる全ての制御プログラムを、前記第１のコントローラデータに含まれる全ての制御プログラムと共有の設定を行って、前記共有設定テーブルに記憶する、
請求項１に記載の情報処理装置。
【請求項３】
前記編集部は、
前記第１のコントローラデータの複製によって、前記第２のコントローラデータを作成するときに、
前記第１のコントローラデータに含まれる既に共有設定されている制御プログラムに対する共有が選択されていれば、前記第２のコントローラデータに含まれる前記既に共有設定されている制御プログラムを複製した制御プログラムを、前記第１のコントローラデータに含まれる前記既に共有設定されている制御プログラムと共有の設定を行って、前記共有設定テーブルに記憶する、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記編集部は、
前記共有設定の変更を受け付けると、
この変更内容を前記共有設定テーブルに反映させる、
請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記編集部は、
前記制御プログラムの同期の際に、
前記制御プログラムに用いられる変数を同期し、該変数の内容は非同期とする、
請求項１乃至請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記コントローラデータの編集画面を表示する表示部を備え、
前記編集部は、
前記共有の設定がされている制御プログラムに対して、前記共有の設定を示すマークを付けて前記表示部に表示させる、
請求項１乃至請求項５のいずれかに記載の情報処理装置。
【請求項７】
情報処理装置が、
制御装置で実行させる制御プログラムを含む１または複数のコントローラデータの編集を行う編集工程と、
前記複数のコントローラデータにそれぞれ含まれる制御プログラムの共有設定を示す共有設定テーブルを記憶する記憶工程とを行い、
前記編集工程では、
前記情報処理装置は、前記複数のコントローラに含まれる第１のコントローラデータの制御プログラムと第２のコントローラデータの制御プログラムとが共有設定されていると、前記第１のコントローラデータの制御プログラムに対する編集内容を、前記第２のコントローラデータの制御プログラムに同期させる、
情報処理方法。
【請求項８】
制御装置で実行させる制御プログラムを含む１または複数のコントローラデータの編集を行う編集処理と、
前記複数のコントローラデータにそれぞれ含まれる制御プログラムの共有設定を示す共有設定テーブルを記憶する記憶処理と、
前記編集処理において、前記複数のコントローラに含まれる第１のコントローラデータの制御プログラムと第２のコントローラデータの制御プログラムとが共有設定されていると、前記第１のコントローラデータの制御プログラムに対する編集内容を、前記第２のコントローラデータの制御プログラムに同期させる処理と、
を情報処理装置に実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置に利用するプロジェクトの開発支援を行う情報処理技術に関する。
【背景技術】
【０００２】
現在、産業用制御装置として、プログラマブルコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ（以下、ＰＬＣと称する。））が普及している。
【０００３】
ＰＬＣは、予め設定された制御プログラムを実行することによって、当該ＰＬＣに接続された各種の機器の制御を行う。
【０００４】
このＰＬＣ制御に与えられる制御プログラムは、例えば、特許文献１に示すように、ＰＣ（パーソナルコンピュータ）等の情報処理装置によって編集される。そして、このような情報処理装置には、この制御プログラムを作成および編集するためのプログラム（編集プログラム）が備えられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−９１０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に示すような従来の編集プログラムを備える情報処理装置では、コントローラ毎に新たに制御プログラムを作成する必要がある。また、従来の情報処理装置では、１つの制御プログラムに対する単純な複製を行うことはできるが、これら複数の制御プログラムは、それぞれ個別に編集を行わなければならない。このため、複数の制御プログラムで同じ編集を行う場合であっても、それぞれの制御プログラムに対して、個別に同じ編集を行わなければならなかった。
【０００７】
このように、従来の情報処理装置は、複数の制御プログラムの編集に手間が係ることがあった。
【０００８】
したがって、本発明の目的は、複数の制御プログラムに対する編集を容易にすることにある。
【課題を解決するための手段】
【０００９】
本開示の一例では、情報処理装置は、編集部と記憶部とを備える。編集部は、制御装置で実行させる制御プログラムを含む１または複数のコントローラデータの編集を行う。記憶部は、複数のコントローラデータにそれぞれ含まれる制御プログラムの共有設定を示す共有設定テーブルを記憶する。編集部は、複数のコントローラに含まれる第１のコントローラデータの制御プログラムと第２のコントローラデータの制御プログラムとが共有設定されていると、第１のコントローラデータの制御プログラムに対する編集内容を、第２のコントローラデータの制御プログラムに同期させる。
【００１０】
この構成では、共有設定がされていることによって、第１のコントローラデータの編集内容が、自動的に、第２のコントローラデータに反映される。共有設定とは、制御プログラム自体が共有されていることではなく、複数の制御プログラムの内容を常に同じにすることである。また、制御プログラムの同期とは、制御プログラムの内容を一致させる処理である。
【００１１】
本開示の一例では、編集部は、第１のコントローラデータの複製によって、第２のコントローラデータを作成するときに、次の処理を行う。編集部は、第１のコントローラデータに含まれる全ての制御プログラムに対する共有が選択されていれば、第２のコントローラデータに含まれる全ての制御プログラムを、第１のコントローラデータに含まれる全ての制御プログラムと共有の設定を行って、共有設定テーブルに記憶する。
【００１２】
この構成では、全ての制御プログラムが共有設定されたコントローラデータが容易に作成され、その共有の設定内容が自動で記憶される。
【００１３】
本開示の一例では、編集部は、第１のコントローラデータの複製によって、第２のコントローラデータを作成するときに、次の処理を行う。編集部は、第１のコントローラデータに含まれる既に共有設定されている制御プログラムに対する共有が選択されていれば、第２のコントローラデータに含まれる既に共有設定されている制御プログラムを複製した制御プログラムを、第１のコントローラデータに含まれる既に共有設定されている制御プログラムと共有の設定を行って、共有設定テーブルに記憶する。
【００１４】
この構成では、既に設定されている共有の情報を反映したコントローラデータが容易に作成され、その共有の設定内容が自動で記憶される。
【００１５】
本開示の一例では、編集部は、共有設定の変更を受け付けると、この変更内容を共有設定テーブルに反映させる。
【００１６】
この構成では、複製後に、共有の設定内容が変更可能であり、コントローラデータの作成の自由度が向上する。
【００１７】
本開示の一例では、編集部は、制御プログラムの同期の際に、制御プログラムに用いられる変数を同期し、該変数の内容は非同期とする。変数の同期とは、変数名を一致させることで有り、変数の内容の非同期とは、変数の内容をそれぞれに適宜設定可能な状態にすることである。
【００１８】
この構成では、制御対象の機器に設定が異なるような場合に、各制御機器に対して同じ設定がされず、意図しない誤動作が抑制される。
【００１９】
本開示の一例では、情報処理装置は、コントローラデータの編集画面を表示する表示部を備える。編集部は、共有の設定がされている制御プログラムに対して、共有の設定を示すマークを付けて表示部に表示させる。
【００２０】
この構成では、各制御プログラムに対する共有設定の状態を、プログラマに容易に視認させる。
【発明の効果】
【００２１】
本発明によれば、複数の制御プログラムの編集を容易にできる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る情報処理装置の機能ブロック図である。
【図２】本発明の実施形態に係る情報処理装置が接続される制御システムの構成を示すブロック図である。
【図３】本発明の実施形態に係る情報処理装置で作成するデータの構成の一例を示す図である。
【図４】本発明の実施形態に係る共有設定テーブルの一例を示す図である。
【図５】プロジェクトデータの作成処理の一例を示すフローチャートである。
【図６】（Ａ）は、編集画面の一例を示す図であり、（Ｂ）は、編集画面におけるマルチビューエクスプローラウィンドウの一例を示す拡大図である。
【図７】コントローラデータの複製（派生デバイスの作成）処理の一例を示すフローチャートである。
【図８】（Ａ）は、コントローラデータの複製（派生デバイスの作成）処理の指示状態を示す編集画面の拡大図であり、（Ｂ）は、全てを共有する場合のタブの選択状態を示す図であり、（Ｃ）は、共有設定を引き継ぐ場合のタブの選択状態を示す図である。
【図９】（Ａ）、（Ｂ）は、共有の状態にある制御プログラムが存在する場合のマルチビューエクスプローラウィンドウの拡大図である。
【図１０】コントローラデータ間での制御プログラムの同期処理の一例を示すフローチャートである。
【図１１】（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、同期を行った場合に、制御プログラムの内容の変化を示す図である。
【図１２】（Ａ）は、共有設定の変更時のマルチビューエクスプローラウィンドウを示す拡大図であり、（Ｂ）は、共有設定ウィンドウの拡大図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を、図を参照して説明する。
【００２４】
・適用例
まず、図１を用いて、本発明が適用される一例について説明する。図１は、本発明の実施形態に係る情報処理装置の機能ブロック図である。
【００２５】
図１に示すように、情報処理装置１０は、編集部１１および記憶部１２を備える。編集部１１は、プロジェクトデータの編集を行う。記憶部１２は、プロジェクトデータ記憶領域１２１および共有設定テーブル１２２を有する。
【００２６】
プロジェクトデータは、１または複数のコントローラデータを含んでいる。コントローラデータは、１または複数の制御プログラムを含んでいる。共有設定テーブル１２２には、複数のコントローラデータがそれぞれに含む制御プログラムが共有設定されていることが記憶されている。
【００２７】
編集部１１は、共有設定テーブル１２２を参照して、複数のコントローラデータの同期を行う。
【００２８】
・構成例
次に、本発明の実施形態に係る情報処理装置の構成について、図を参照して説明する。上述のように、図１は、本発明の実施形態に係る情報処理装置の機能ブロック図である。図２は、本発明の実施形態に係る情報処理装置が接続される制御システムの構成を示すブロック図である。図３は、本発明の実施形態に係る情報処理装置で作成するデータの構成の一例を示す図である。図４（Ａ）、図４（Ｂ）、図４（Ｃ）は、本発明の実施形態に係る共有設定テーブルの一例を示す図である。
【００２９】
図１に示すように、情報処理装置１０は、編集部１１、記憶部１２、操作入力部１３、表示部１４、および、通信制御部１５を備える。情報処理装置１０は、例えば、パーソナルコンピュータ等によって実現される。
【００３０】
また、図２に示すように、情報処理装置１０は、制御システム１に含まれている。制御システム１は、情報処理装置１０、複数の制御装置９１、９２、９３、および、複数の制御対象機器９１１、９１２、９１３、９２１、９２２、９２３、９３１、９３２、９３３を備える。制御装置９１、９２、９３は、例えば、所謂ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）によって実現される。また、制御対象機器９１１は、例えば、センサ、スイッチ、ランプ、モータ等の製造ライン等で利用される機器である。なお、制御装置の個数および制御対象機器の個数は、図２に示す態様に限らず、実現したい制御システムに応じて適宜設定されている。
【００３１】
制御装置９１は、制御用ネットワークを介して、制御対象機器９１１、９１２、９１３に接続されている。制御装置９２は、制御用ネットワークを介して、制御対象機器９２１、９２２、９２３に接続されている。制御装置９３は、制御用ネットワークを介して、制御対象機器９３１、９３２、９３３に接続されている。情報処理装置１０は、データ通信ネットワークを介して、制御装置９１、９２、９３に接続されている。
【００３２】
情報処理装置１０は、図３に示すデータ構成からなるプロジェクトデータＰＤの作成、編集を行う。
【００３３】
図３に示すように、プロジェクトデータＰＤは、複数のコントローラデータＣＤ１、ＣＤ２、ＣＤ３を有する。なお、プロジェクトデータＰＤに含まれるコントローラデータの数は、当該プロジェクトにおいて用いる制御装置の個数に応じており、１または複数である。
【００３４】
コントローラデータＣＤ１、ＣＤ２、ＣＤ３は、それぞれに、コンフィグレーションデータＣＦＤとプログラムデータＰＲＧＤとを有する。プログラムデータＰＲＧＤは、複数の制御プログラムＰＲＧ１、ＰＲＧ２、ＰＲＧ３を有する。なお、プログラムデータＰＲＧＤに含まれる制御プログラムの数は、制御装置で実行する制御の個数等に応じており、１または複数である。また、全てのコントローラプログラムで同じでなくてもよい。
【００３５】
ここでは、例えば、コントローラデータＣＤ１は、制御装置９１に対応しており、コントローラデータＣＤ２は、制御装置９２に対応しており、コントローラデータＣＤ３は、制御装置９３に対応している。コントローラデータＣＤ１のコンフィグレーションデータＣＦＤは、制御装置９１および制御対象機器９１１、９１２、９１３によって構成される制御システムの構成・仕様（例えば、制御対象機器の個数、ＥｔｈｅｒＣＡＴである等）を規定するデータである。コントローラデータＣＤ２のコンフィグレーションデータＣＦＤは、制御装置９２および制御対象機器９２１、９２２、９２３によって構成される制御システムの構成・仕様（例えば、制御対象機器の個数、ＥｔｈｅｒＣＡＴである等）を規定するデータである。コントローラデータＣＤ３のコンフィグレーションデータＣＦＤは、制御装置９３および制御対象機器９３１、９３２、９３３によって構成される制御システムの構成・仕様（例えば、制御対象機器の個数、ＥｔｈｅｒＣＡＴである等）を規定するデータである。
【００３６】
制御プログラムＰＲＧ１、ＰＲＧ２、ＰＲＧ３は、制御装置が制御対象機器に対して、実行する制御内容を示すプログラムである。例えば、コントローラデータＣＤ１のプログラムデータＰＲＧＤの制御プログラムＰＲＧ１、ＰＲＧ２、ＰＲＧ３は、制御装置９１が制御対象機器９１１、９１２、９１３に対して実行する制御内容を示すプログラムである。コントローラデータＣＤ２のプログラムデータＰＲＧＤの制御プログラムＰＲＧ１、ＰＲＧ２、ＰＲＧ３は、制御装置９２が制御対象機器９２１、９２２、９２３に対して実行する制御内容を示すプログラムである。コントローラデータＣＤ３のプログラムデータＰＲＧＤの制御プログラムＰＲＧ１、ＰＲＧ２、ＰＲＧ３は、制御装置９３が制御対象機器９３１、９３２、９３３に対して実行する制御内容を示すプログラムである。
【００３７】
このように、情報処理装置１０は、複数の制御装置にそれぞれ対応する複数のコントローラデータＣＤ１、ＣＤ２、ＣＤ３を１つのプロジェクトデータＰＤとして、１つの編集プログラムで作成、編集する。
【００３８】
そして、情報処理装置１０の各構成要素は、具体的に以下の構成を備える。
【００３９】
編集部１１は、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プロジェクトデータの編集プログラムを実行するデバイス、および、当該編集プログラムによって実現される。記憶部１２は、例えば、ハードディスク、ソリッドステートドライブ等の記憶媒体を備える装置によって実現される。
【００４０】
操作入力部１３は、例えば、キーボード、マウス、タッチパネル等からなる。操作入力部１３は、プログラマ等のユーザからの操作入力を受け付けて、編集部１１に与える。編集部１１は、この操作内容に応じて、プロジェクトデータＰＤの作成、編集を行う。
【００４１】
表示部１４は、例えば、液晶ディスプレイ等からなる。表示部１４は、編集部１１によって生成される編集画面を、表示する。
【００４２】
通信制御部１５は、例えば、所謂ネットワークアダプタ等からなる。通信制御部１５は、図２に示したデータ通信ネットワークに接続されており、編集部１１からのプロジェクトデータＰＤのコントローラデータＣＤ１、ＣＤ２、ＣＤ３を、制御装置９１、９２、９３に出力する。
【００４３】
記憶部１２は、プロジェクトデータ記憶領域１２１、および、共有設定テーブル１２２を有する。プロジェクトデータ記憶領域１２１には、複数のコントローラデータＣＤ１、ＣＤ２、ＣＤ３を含むプロジェクトデータＰＤが記憶されている。
【００４４】
共有設定テーブル１２２は、各コントローラデータＣＤ１、ＣＤ２、ＣＤ３に含まれる制御プログラムＰＲＧの共有の状態が記憶されている。共有の状態とは、複数のコントローラデータ間で、制御プログラム自体を共有して保持することではなく、複数のコントローラデータ間で、対象の制御プログラムの内容が常時同じになる状態を意味する。例えば、図４（Ａ）、図４（Ｂ）、図４（Ｃ）における○印、図４（Ｂ）における▲印が共有の状態であることを示しており、共有設定テーブル１２２には、このような関係がデータとして記憶されている。
【００４５】
このような構成において、編集部１１は、共有設定テーブル１２２を参照して、プロジェクトデータＰＤを構成する複数のコントローラデータＣＤ１、ＣＤ２、ＣＤ３の作成、編集を行う。例えば、編集部１１は、制御プログラムの内容を変更すると、共有設定テーブル１２２を参照し、変更した制御プログラムに対して共有の状態にある制御プログラムを同期させる。ここで、制御プログラムの同期処理とは、共有の状態にある制御プログラムの内容を、編集作業によって変更した制御プログラムの内容に一致させる処理である。そして、この内容を一致させる処理が、本発明の「同期」処理に対応する。
【００４６】
図４（Ａ）の場合において、コントローラデータＣｏｎｔｒｏｌｌｅｒ１（ＣＤ１）の制御プログラムＰｒｏｇｒａｍ０を変更すると、コントローラデータＣｏｎｔｒｏｌｌｅｒ２（ＣＤ２）の制御プログラムＰｒｏｇｒａｍ０およびコントローラデータＣｏｎｔｒｏｌｌｅｒ３（ＣＤ３）の制御プログラムＰｒｏｇｒａｍ０も同じ内容に変更される。
【００４７】
一方、図４（Ｂ）および図４（Ｃ）の場合において、コントローラデータＣｏｎｔｒｏｌｌｅｒ１（ＣＤ１）の制御プログラムＰｒｏｇｒａｍ２を変更しても、コントローラデータＣｏｎｔｒｏｌｌｅｒ２（ＣＤ２）の制御プログラムＰｒｏｇｒａｍ２およびコントローラデータＣｏｎｔｒｏｌｌｅｒ３（ＣＤ３）の制御プログラムＰｒｏｇｒａｍ２は変更されない。
【００４８】
また、図４（Ｂ）の場合において、コントローラデータＣｏｎｔｒｏｌｌｅｒ２（ＣＤ２）の制御プログラムＰｒｏｇｒａｍ２を変更すると、コントローラデータＣｏｎｔｒｏｌｌｅｒ３（ＣＤ３）の制御プログラムＰｒｏｇｒａｍ２は同じ内容に変更されるが、コントローラデータＣｏｎｔｒｏｌｌｅｒ１（ＣＤ１）の制御プログラムＰｒｏｇｒａｍ２は変更されない。
【００４９】
これにより、情報処理装置１０は、１つコントローラデータの制御プログラムを変更すれば、同じ内容にする必要のある他のコントローラデータの制御プログラムの内容を自動で変更する。したがって、複数のコントローラプログラムにおいて同じ内容の制御プログラムを含む必要があり、これらの制御プログラムを変更する場合に、プログラマは、複数のコントローラデータの制御プログラムの編集を容易にできる。
【００５０】
・具体的な処理例
編集部１１によって実行される具体的な編集処理について、図を参照して説明する。
【００５１】
（Ａ）コントローラデータの作成
図５は、プロジェクトデータの作成処理の一例を示すフローチャートである。
【００５２】
図５に示すように、編集部１１は、操作入力部１３からのプロジェクトデータの作成指示、および、コントローラデータの作成指示を受けて、コントローラデータを作成する（Ｓ１１）。そして、編集部１１は、コントローラデータとして、コンフィグレーションデータおよびプログラムデータを作成する（Ｓ１２）。
【００５３】
図６（Ａ）は、編集画面の一例を示す図である。図６（Ｂ）は、編集画面におけるマルチビューエクスプローラウィンドウの一例を示す拡大図である。
【００５４】
編集プログラムが実行されると、編集部１１によって、図６（Ａ）に示すような編集画面１４０が形成され、当該編集画面１４０は表示部１４に表示される。編集画面１４０は、プログラム編集ウィンドウ１４１、マルチビューエクスプローラウィンドウ１４２、および、ツールウィンドウ１４３を有する。プログラム編集ウィンドウ１４１は、編集画面１４０の中央に配置され、マルチビューエクスプローラウィンドウ１４２とツールウィンドウ１４３は、プログラム編集ウィンドウ１４１を挟んで両側に配置されている。プログラム編集ウィンドウ１４１には、制御プログラム、コンフィグレーションデータ等の変種内容が表示されている。マルチビューエクスプローラウィンドウ１４２には、編集対象のデータおよびプログラムの構成、階層等が表示されている。ツールウィンドウ１４３には、図示していないが、編集用のツールが各種表示されている。
【００５５】
図６（Ｂ）に示すように、マルチビューエクスプローラウィンドウ１４２には、コントローラ名ウィンドウ４２１、および、構成ツリー４２２が表示される。コントローラ名ウィンドウ４２１には、現在編集対象のコントローラプログラムの名称や、編集可能なコントローラプログラムの名称が表示される。図６（Ｂ）では、現在編集対象のコントローラプログラムの名称のみが表示されている。構成ツリーには、コントローラ名ウィンドウ４２１に表示されたコントローラプログラムに含まれるコンフィグレーションデータ、プログラムデータの構成、ツリー構造が表示される。
【００５６】
（Ｂ）コントローラデータの複製（派生デバイスの作成）
図７は、コントローラデータの複製（派生デバイスの作成）処理の一例を示すフローチャートである。図８（Ａ）は、コントローラデータの複製（派生デバイスの作成）処理の指示状態を示す編集画面の拡大図であり、図８（Ｂ）は、全てを共有する場合のタブの選択状態を示す図であり、図８（Ｃ）は、共有設定を引き継ぐ場合のタブの選択状態を示す図である。
【００５７】
図７に示すように、編集部１１は、操作入力部１３からのコントローラデータの複製指示、すなわち、派生デバイスの作成指示を受ける（Ｓ２１）。例えば、図８（Ａ）に示すように、コントローラデータＣｏｎｔｒｏｌｌｅｒ１が編集状態にある時に、所定の操作入力（例えばマウスの右クリックと選択等）によって、派生デバイスの作成のタブ４２４が選択されると、編集部１１は、コントローラデータの複製指示、すなわち、派生デバイスの作成指示を受ける。更に、図８（Ｂ）、図８（Ｃ）に示すように、新たに表示された共有の選択用のタブ４２５によって、共有の種類が選択されると、編集部１１は、この内容も受け付ける。例えば、図８（Ｂ）に示すように「全てを共有」のタブ４２５が選択されることで、編集部１１は、編集対象のコントローラデータに含まれる全ての制御プログラムを共有の対象とすることを受け付ける。一方、図８（Ｃ）に示すように「共有設定を引き継ぐ」のタブ４２５が選択されることで、編集部１１は、編集対象のコントローラデータに含まれる既に共有の状態にある制御プログラムのみを共有の対象とすることを受け付ける。
【００５８】
編集部１１は、コントローラデータの複製指示、すなわち、派生デバイスの作成指示にしたがって、編集対象のコントローラデータを複製して、新たなコントローラデータを作成する（Ｓ２２）。編集部１１は、新たに作成したコントローラデータに、編集対象のコントローラデータと別の名称を割り当てる。例えば、ここでは、編集対象のコントローラデータはＣｏｎｔｒｏｌｌｅｒ１であるのに対して、複製のコントローラデータはＣｏｎｔｒｏｌｌｅｒ２が割り当てられる。編集部１１は、記憶部１２のプロジェクトデータ記憶領域１２１に、複製したコントローラデータを記憶する。
【００５９】
編集部１１は、共有の選択用のタブ４２５の選択内容にしたがって、共有の引継ぎ条件を判定する（Ｓ２３）。
【００６０】
編集部１１は、共有の引継ぎ条件が「全てを共有」であれば（Ｓ２３：ＡＬＬ）、編集対象のコントローラデータ（複製元のコントローラデータ）の全ての制御プログラムと、複製によって作成されたコントローラデータの全ての制御プログラムとが共有の状態にあることを、共有設定テーブル１２２に記憶する（Ｓ２４）。例えば、図４（Ａ）に示す、コントローラデータＣｏｎｔｒｏｌｌｅｒ１からコントローラデータＣｏｎｔｒｏｌｌｅｒ２への複製、コントローラデータＣｏｎｔｒｏｌｌｅｒ１からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製、コントローラデータＣｏｎｔｒｏｌｌｅｒ２からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製、図４（Ｂ）に示すコントローラデータＣｏｎｔｒｏｌｌｅｒ２からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製の場合に対応する。そして、編集部１１は、これらの場合に対応して、図４（Ａ）の○印、図４（Ｂ）の▲印に示すように、共有の関係にあることを示す情報を、共有設定テーブル１２２に記憶する。
【００６１】
編集部１１は、共有の引継ぎ条件が「共有設定を引き継ぐ」であれば（Ｓ２３：ＳＥＬ）、編集対象のコントローラデータ（複製元のコントローラデータ）において既に共有の状態に設定されている制御プログラムと、複製によって作成されたコントローラデータにおける当該制御プログラム（複製元において既に共有の状態にある制御プログラム）を複製した制御プログラムとが共有の状態にあることを、共有設定テーブル１２２に記憶する（Ｓ２５）。例えば、図４（Ｂ）に示す、コントローラデータＣｏｎｔｒｏｌｌｅｒ２からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製、図４（Ｃ）に示す、コントローラデータＣｏｎｔｒｏｌｌｅｒ１からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製、コントローラデータＣｏｎｔｒｏｌｌｅｒ２からコントローラデータＣｏｎｔｒｏｌｌｅｒ３への複製の場合に対応する。そして、編集部１１は、これらの場合に対応して、図４（Ｂ）および図４（Ｃ）の○印に示すように、共有の関係にあることを示す情報を、共有設定テーブル１２２に記憶する。
【００６２】
これにより、情報処理装置１０は、複数のコントローラデータの制御プログラム同士の共有の状態を保持できる。また、プログラマが共有の設定を個別に入力する必要が無く、共有の状態の設定が自動で記憶される。
【００６３】
なお、この際、複製された制御プログラムでは、それぞれの変数（例えば、グローバル変数）は、複製元の制御プログラムと同じに複製されている（同期されている）が、変数の内容（例えば、値）は、複製されない（非同期である）。これにより、類似の制御対象機器であって変数の内容を変更しなければならない場合に、同じ変数の内容を意図せずに設定してしまうことを抑制できる。この結果、制御対象機器の誤動作が抑制される。
【００６４】
なお、この共有の状態は、マルチビューエクスプローラウィンドウ１４２にも表示される。図９（Ａ）、図９（Ｂ）は、共有の状態にある制御プログラムが存在する場合のマルチビューエクスプローラウィンドウの拡大図である。図９（Ａ）では、コントローラデータＣｏｎｔｒｏｌｌｅｒ１における複数の制御プログラムＰｒｏｇｒａｍ０、Ｐｒｏｇｒａｍ１、Ｐｒｏｇｒａｍ２が共有の状態にある場合を示し、図９（Ｂ）では、コントローラデータＣｏｎｔｒｏｌｌｅｒ１における複数の制御プログラムＰｒｏｇｒａｍ０が共有の状態にある場合を示す。
【００６５】
図９（Ａ）に示すように、制御プログラムＰｒｏｇｒａｍ０、Ｐｒｏｇｒａｍ１、Ｐｒｏｇｒａｍ２が共有の状態にある場合、編集部１１は、構成ツリー４２２における制御プログラムＰｒｏｇｒａｍ０、Ｐｒｏｇｒａｍ１、Ｐｒｏｇｒａｍ２の位置に、共有マーク４２０を表示させる。図９（Ｂ）に示すように、制御プログラムＰｒｏｇｒａｍ０が共有の状態にある場合、編集部１１は、構成ツリー４２２における制御プログラムＰｒｏｇｒａｍ０の位置に、共有マーク４２０を表示させる。
【００６６】
このような共有マーク４２０の表示を行うことによって、プログラマは、共有の状態にある制御プログラムを、容易に且つ確実に認識できる。
【００６７】
（Ｃ）コントローラデータの同期
図１０は、コントローラデータ間での制御プログラムの同期処理の一例を示すフローチャートである。
【００６８】
編集部１１は、操作入力部１３からのコントローラデータの制御プログラムの編集指示を受けて、コントローラデータの制御プログラム編集を行う（Ｓ３１）。編集部１１は、共有設定テーブル１２２を参照して、編集中の制御プログラムが共有の状態にあるか否かを検出する（Ｓ３２）。編集部１１は、編集中の制御プログラムが共有の状態にあれば（Ｓ３３：ＹＥＳ）、共有設定テーブル１２２に基づいて、編集中の制御プログラムに対して共有の状態にある他のコントローラデータの制御プログラムを同期させる（Ｓ３４）。ここで、同期処理とは、共有の状態にある他のコントローラデータの制御プログラムの内容を、編集中の制御プログラムの内容に一致させることである。
【００６９】
一方、編集部１１は、編集中の制御プログラムが共有の状態でなければ（Ｓ３３：ＮＯ）、同期を行わない。
【００７０】
図１１（Ａ）、図１１（Ｂ）、図１１（Ｃ）、図１１（Ｄ）は、同期を行った場合に、制御プログラムの内容の変化を示す図である。図１１（Ａ）は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムの編集前の状態を示し、図１１（Ｂ）は、複製によってコントローラデータＣｏｎｔｒｏｌｌｅｒ２を作成した状態を示す。図１１（Ｃ）は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムの編集後の状態を示し、図１１（Ｄ）は、同期後のコントローラデータＣｏｎｔｒｏｌｌｅｒ２を作成した状態を示す。
【００７１】
編集部１１は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１を複製して、コントローラデータＣｏｎｔｒｏｌｌｅｒ２を作成することで、図１１（Ａ）と図１１（Ｂ）に示すように、コントローラデータＣｏｎｔｒｏｌｌｅｒ１とコントローラデータＣｏｎｔｒｏｌｌｅｒ２で、同じ制御プログラムが構成される。この際、共有の設定がされていれば、その内容が共有設定テーブル１２２に記憶される。
【００７２】
この状態で、編集部１１は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムを編集する。例えば、図１１（Ｃ）に示すように、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムの内容を追加する。
【００７３】
編集部１１は、このコントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムが共有の状態あることを検出し、共有の状態にあるコントローラデータＣｏｎｔｒｏｌｌｅｒ２の制御プログラムを、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムに同期させる。すなわち、編集部１１は、Ｃｏｎｔｒｏｌｌｅｒ２の制御プログラムの内容を、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムの内容に、自動で変更する。これにより、図１１（Ｄ）に示すように、コントローラデータＣｏｎｔｒｏｌｌｅｒ２の制御プログラムは、自動で、図１１（Ｃ）に示すコントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムと一致する。
【００７４】
このような処理を実行することによって、複数のコントローラデータにおいて、同じ制御プログラムを用いる場合に、１つのコントローラデータの制御プログラムを編集すれば、共有の状態にある他のコントローラデータの制御プログラムも自動で更新される。したがって、プログラマによる複数のコントローラデータの編集を容易にできる。
【００７５】
（Ｄ）共有設定の変更
図１２（Ａ）は、共有設定の変更時のマルチビューエクスプローラウィンドウを示す拡大図である。図１２（Ｂ）は、共有設定ウィンドウの拡大図である。
【００７６】
編集部１１は、図１２（Ａ）に示すように、コントローラデータＣｏｎｔｒｏｌｌｅｒ１が編集状態にある時に、所定の操作入力（例えばマウスの右クリックと選択等）によって、共有設定の変更のタブ４２６が選択されると、図１２（Ｂ）に示すような共有設定ウィンドウ４２７を表示させる。
【００７７】
共有設定ウィンドウ４２７には、編集中のコントローラデータにおける共有対象にあるプログラムが、「共有対象」として表示されている。また、共有設定ウィンドウ４２７には、共有先を設定する表４２８が表示される。表４２８は、コントローラ名（コントローラプログラムの名称）と、共有の状態にするか否かを選択するチェックボックスと、を有する。
【００７８】
編集部１１は、チャックボックスへのチェックの指示を受け付けると、共有対象のコントローラデータの制御プログラムと、共有先のコントローラデータの制御プログラムとを、共有の状態に設定する。例えば、図１２（Ｂ）の場合であれば、編集部１１は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムＰｒｏｇｒａｍ２と、コントローラデータＣｏｎｔｒｏｌｌｅｒ２の制御プログラムＰｒｏｇｒａｍ２とを、共有の状態に設定する。
【００７９】
一方、編集部１１は、チャックボックスへのチェック解除の指示を受け付けると、共有対象のコントローラデータの制御プログラムと、共有先のコントローラデータの制御プログラムとを、共有の状態の解除を設定する。例えば、図１２（Ｂ）に対応する場合であれば、編集部１１は、コントローラデータＣｏｎｔｒｏｌｌｅｒ１の制御プログラムＰｒｏｇｒａｍ２と、コントローラデータＣｏｎｔｒｏｌｌｅｒ２の制御プログラムＰｒｏｇｒａｍ２とを、共有の状態の解除を設定する。
【００８０】
このような構成および処理を用いることによって、共有の設定を、適宜変更できる。これにより、プログラマによる複数のコントローラデータの編集の自由度を向上できる。
【００８１】
なお、上述の説明では、コントローラデータを制御装置毎に設定する態様を示した。しかしながら、１つの制御装置に対して、それぞれ状況に応じて、複数のコントローラデータのいずれかを選択的に設定する場合のコントローラデータの編集にも利用できる。
【００８２】
以上で説明した本発明の実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の変形を行うことができることはいうまでもない。
【符号の説明】
【００８３】
１：制御システム
１０：情報処理装置
１１：編集部
１２：記憶部
１３：操作入力部
１４：表示部
１５：通信制御部
９１、９２、９３：制御装置
１２１：プロジェクトデータ記憶領域
１２２：共有設定テーブル
１４０：編集画面
１４１：プログラム編集ウィンドウ
１４２：マルチビューエクスプローラウィンドウ
１４３：ツールウィンドウ
４２０：共有マーク
４２１：コントローラ名ウィンドウ
４２２：構成ツリー
４２４、４２５、４２６：タブ
４２７：共有設定ウィンドウ
４２８：表
９１１、９２１、９３１：制御対象機器
ＣＤ１、ＣＤ２、ＣＤ３：コントローラデータ
ＣＦＤ：コンフィグレーションデータ
ＰＤ：プロジェクトデータ
ＰＲＧ１、ＰＲＧ２、ＰＲＧ３：制御プログラム
ＰＲＧＤ：プログラムデータ
【図１】
2019053532.tif 000003
【図２】
2019053532.tif 000004
【図３】
2019053532.tif 000005
【図４】
2019053532.tif 000006
【図５】
2019053532.tif 000007
【図６】
2019053532.tif 000008
【図７】
2019053532.tif 000009
【図８】
2019053532.tif 000010
【図９】
2019053532.tif 000011
【図１０】
2019053532.tif 000012
【図１１】
2019053532.tif 000013
【図１２】
2019053532.tif 000014