(57)【特許請求の範囲】
【請求項１】
産業機器を制御する制御装置であって、
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリと、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
前記アドレス設定部は、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
前記アドレス設定部は、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記アドレス設定部は、各データ単位に、仮想アドレスと、前記属性に応じたメモリの物理アドレスと、を設定し、
前記アドレス設定部は、各データ単位の前記仮想アドレスと前記物理アドレスの変換データを記録し、
前記変換データに基づいて、各メモリにアクセスする、
産業機器の制御装置。
【請求項２】
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定された複数のデータ単位の何れかの末尾のアドレスの次のアドレスが、電源オフ時に保持しないことを示す属性が設定された複数のデータ単位の何れかの最初のアドレスになるように、各データ単位の前記仮想アドレスを設定する、又は、
電源オフ時に保持しないことを示す属性が設定された複数のデータ単位の何れかの末尾のアドレスの次のアドレスが、電源オフ時に保持することを示す属性が設定された複数のデータ単位の何れかの最初のアドレスになるように、各データ単位の前記仮想アドレスを設定する、
請求項１に記載の産業機器の制御装置。
【請求項３】
各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、
前記アドレス設定部は、予め設定された前記物理アドレスの順序を維持するように、各データ単位の前記仮想アドレスを設定する、
請求項１又は２に記載の産業機器の制御装置。
【請求項４】
産業機器を制御する制御装置であって、
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリと、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、
前記属性設定部は、前記第１メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す属性を設定し、又は、前記第２メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す属性を設定し、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当てる、
産業機器の制御装置。
【請求項５】
産業機器を制御する制御装置であって、
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリと、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記属性設定部は、各データ単位に設定する前記属性を指定するための属性指定画面において指定された前記属性を各データ単位に設定し、
前記属性指定画面では、アドレス帯域ごとに、前記データ単位がグループ化されており、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の前記属性が指定可能となる、
産業機器の制御装置。
【請求項６】
電源オフ時に保持することを示す属性と、電源オフ時に保持しないことを示す属性と、の少なくとも一方を設定可能なデータ単位に上限を設定する上限設定部を更に有する、
請求項１〜５の何れかに記載の産業機器の制御装置。
【請求項７】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置の設定システムであって、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
前記アドレス設定部は、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
前記アドレス設定部は、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記アドレス設定部は、各データ単位に、仮想アドレスと、前記属性に応じたメモリの物理アドレスと、を設定し、
前記アドレス設定部は、各データ単位の前記仮想アドレスと前記物理アドレスの変換データを記録し、
前記変換データに基づいて、各メモリにアクセスする、
産業機器の制御装置の設定システム。
【請求項８】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置の設定システムであって、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、
前記属性設定部は、前記第１メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す属性を設定し、又は、前記第２メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す属性を設定し、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当てる、
産業機器の制御装置の設定システム。
【請求項９】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置の設定システムであって、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、
を有し、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記属性設定部は、各データ単位に設定する前記属性を指定するための属性指定画面において指定された前記属性を各データ単位に設定し、
前記属性指定画面では、アドレス帯域ごとに、前記データ単位がグループ化されており、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の前記属性が指定可能となる、
産業機器の制御装置の設定システム。
【請求項１０】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置のアドレス設定方法であって、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定し、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するために、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
各データ単位に、仮想アドレスと、前記属性に応じたメモリの物理アドレスと、を設定し、
各データ単位の前記仮想アドレスと前記物理アドレスの変換データを記録し、
前記変換データに基づいて、各メモリにアクセスする、
産業機器の制御装置の設定方法。
【請求項１１】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置のアドレス設定方法であって、
前記複数のメモリの何れかの物理アドレスが予め設定された、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定するために、前記第１メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す属性を設定し、又は、前記第２メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す属性を設定し、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するために、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当てる、
産業機器の制御装置の設定方法。
【請求項１２】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置のアドレス設定方法であって、
複数のデータ単位の各々に設定される属性であって、電源オフ時に保持するか否かを示す属性を指定するための属性指定画面において指定された前記属性を各データ単位に設定し、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するために、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記属性指定画面では、アドレス帯域ごとに、前記データ単位がグループ化されており、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の前記属性が指定可能となる、
産業機器の制御装置の設定方法。
【請求項１３】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置又は当該制御装置の設定端末を、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部、
として機能させるためのプログラムであって、
前記アドレス設定部は、電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
前記アドレス設定部は、電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記アドレス設定部は、各データ単位に、仮想アドレスと、前記属性に応じたメモリの物理アドレスと、を設定し、
前記アドレス設定部は、各データ単位の前記仮想アドレスと前記物理アドレスの変換データを記録し、
前記変換データに基づいて、各メモリへのアクセスが行われる、
プログラム。
【請求項１４】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置又は当該制御装置の設定端末を、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部、
として機能させるためのプログラムであって、
各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、
前記属性設定部は、前記第１メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す属性を設定し、又は、前記第２メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す属性を設定し、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当てる、
プログラム。
【請求項１５】
電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置又は当該制御装置の設定端末を、
複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部、
各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部、
として機能させるためのプログラムであって、
前記アドレス設定部は、
電源オフ時に保持することを示す属性が設定されたデータ単位に、前記第２メモリのアドレスは割り当てず、前記第１メモリのアドレスを割り当て、
電源オフ時に保持しないことを示す属性が設定されたデータ単位に、前記第１メモリのアドレスは割り当てず、前記第２メモリのアドレスを割り当て、
前記属性設定部は、各データ単位に設定する前記属性を指定するための属性指定画面において指定された前記属性を各データ単位に設定し、
前記属性指定画面では、アドレス帯域ごとに、前記データ単位がグループ化されており、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の前記属性が指定可能となる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ラダーチャート等を利用して、ＰＬＣ（Programmable Logic Controller）の制御プログラムを作成する技術が記載されている。このような技術では、電源オフ時に保持するデータと、電源オフ時に保持しないデータと、を使い分けてプログラミングが行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９４６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、例えば、プログラムの修正の手間を省くことである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る産業機器の制御装置は、産業機器を制御する制御装置であって、電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリと、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、を有する。
【０００６】
本発明の一側面に係る産業機器の制御装置の設定システムは、電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置の設定システムであって、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部と、各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部と、を有する。
【０００７】
本発明の一側面に係る産業機器の制御装置の設定方法は、電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置のアドレス設定方法であって、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定し、各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定する。
【０００８】
本発明の一側面に係るプログラムは、電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有し、産業機器を制御する制御装置又は当該制御装置の設定端末を、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する属性設定部、各データ単位が前記属性に応じたメモリに格納されるように、各データ単位のアドレスを設定するアドレス設定部、として機能させる。
【０００９】
本発明の一側面に係る産業機器の制御装置は、前記アドレス設定部は、各データ単位に、仮想アドレスと、前記属性に応じたメモリの物理アドレスと、を設定し、前記アドレス設定部は、各データ単位の前記仮想アドレスと前記物理アドレスの変換データを記録し、前記変換データに基づいて、各メモリにアクセスする。
【００１０】
本発明の一側面に係る産業機器の制御装置は、前記アドレス設定部は、電源オフ時に保持することを示す属性が設定されたデータ単位と、電源オフ時に保持しないことを示す属性が設定されたデータ単位と、が連番になるように、各データ単位の前記仮想アドレスを設定する。
【００１１】
本発明の一側面に係る産業機器の制御装置は、各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、前記アドレス設定部は、予め設定された前記物理アドレスの順序を維持するように、各データ単位の前記仮想アドレスを設定する。
【００１２】
本発明の一側面に係る産業機器の制御装置は、各データ単位には、前記複数のメモリの何れかの物理アドレスが予め設定されており、前記属性設定部は、前記第１メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す属性を設定する、又は、前記第２メモリの前記物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す属性を設定する。
【００１３】
本発明の一側面に係る産業機器の制御装置は、前記属性設定部は、各データ単位に設定する前記属性を指定するための属性指定画面において指定された前記属性を各データ単位に設定する。
【００１４】
本発明の一側面に係る産業機器の制御装置は、前記属性指定画面では、アドレス帯域ごとに、前記データ単位がグループ化されており、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の前記属性が指定可能となる。
【００１５】
本発明の一側面に係る産業機器の制御装置は、電源オフ時に保持することを示す属性と、電源オフ時に保持しないことを示す属性と、の少なくとも一方を設定可能なデータ単位に上限を設定する上限設定部を更に有する。
【００１６】
本発明の一側面に係る産業機器の制御装置は、前記第１メモリは、不揮発性メモリ、又は、バッテリバックアップに対応したメモリであり、前記第２メモリは、揮発性メモリ、又は、バッテリバックアップに対応していないメモリである。
【発明の効果】
【００１７】
上記発明によれば、例えば、プログラムの修正の手間を省くことができる。
【図面の簡単な説明】
【００１８】
【図１】産業機器の制御装置及びその設定システムの全体構成の一例を示す図である。
【図２】属性指定画面の一例を示す図である。
【図３】仮想アドレスが物理アドレスに変換される様子を示す図である。
【図４】設定システムで実現される機能を示す機能ブロック図である。
【図５】属性設定データのデータ格納例を示す図である。
【図６】設定システムで実行される処理の一例を示すフロー図である。
【図７】変形例の機能ブロック図である。
【図８】Ｇレジスタのデータ単位の属性が変更される様子を示す図である。
【発明を実施するための形態】
【００１９】
［１．実施形態の全体構成］
本発明の発明者の見地によれば、産業機器を制御するＰＬＣ等の制御装置では、電源オフ時に保持するデータと、電源オフ時に保持しないデータと、を使い分けてプログラミングが行われており、これらのデータの属性が変更されるとプログラムの修正が必要になっていた。そこで本発明の発明者は、プログラムの修正の手間を省くために鋭意研究開発を行った結果、新規かつ独創的な産業機器の制御装置等に想到した。以降、本実施形態に係る産業機器の制御装置等を詳細に説明する。
【００２０】
図１は、産業機器の制御装置及びその設定システムの全体構成の一例を示す図である。図１に示すように、設定システム１は、設定端末１０、コントローラ２０、及び被制御装置３０を含む。本実施形態では、設定端末１０、コントローラ２０、及び被制御装置３０の各々は、Ｅｔｈｅｒｎｅｔ（登録商標）又は専用の通信規格等の任意のネットワークに接続可能である。設定システム１は、産業機器の制御装置の設定システムの一例であり、本実施形態では、単に設定システム１と記載する。
【００２１】
設定端末１０は、ユーザが操作するコンピュータである。例えば、設定端末１０は、パーソナルコンピュータ、携帯端末（タブレット型端末を含む）、又は携帯電話（スマートフォンを含む）である。設定端末１０は、プロセッサ１１、メモリ１２、通信ＩＦ１３、入力デバイス１４、及びモニタ１５を含む。
【００２２】
プロセッサ１１は、汎用的なプロセッサであり、例えば、ＣＰＵである。設定端末１０は、少なくとも１つのプロセッサ１１を含む。プロセッサ１１は、公知のメモリマネジメントユニットを含んでもよい。メモリ１２は、ＲＡＭやハードディスクを含み、各種プログラムやデータを記憶する。プロセッサ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信ＩＦ（インタフェース）１３は、有線又は無線通信用のインタフェースであり、例えば、ネットワークカードや各種通信コネクタ等を含む。入力デバイス１４は、マウスやキーボード等の操作部材である。モニタ１５は、液晶ディスプレイ又は有機ＥＬディスプレイ等であり、プロセッサ１１の指示により各種画面を表示する。
【００２３】
コントローラ２０は、いわゆるＰＬＣであり、少なくとも１つの被制御装置３０を制御する。コントローラ２０は、産業機器の制御装置の一例である。このため、本実施形態でコントローラ２０と記載した箇所は、産業機器の制御装置と読み替えることができる。産業機器の制御装置は、コントローラ２０に限られず、任意の種類の装置を適用可能である。例えば、産業機器の制御装置は、ロボットコントローラ、ロボットコントローラの下位装置、モータコントローラ、モータコントローラの下位装置、インバータ、又は工作機械等であってもよい。
【００２４】
コントローラ２０は、プロセッサ２１、ＳＲＡＭ（Static Random Access Memory）２２、ＤＤＲ（Double Data Rate）メモリ２３、ＦＰＧＡ（Field-Programmable Gate Array）２４、及び通信ＩＦ２５を含む。プロセッサ２１及び通信ＩＦ２５の物理的構成は、それぞれプロセッサ１１及び通信ＩＦ１３と同様であってよい。なお、コントローラ２０の電源や電池等の他の構成については、図示を省略する。
【００２５】
ＳＲＡＭ２２は、第１メモリの一例である。このため、本実施形態でＳＲＡＭ２２と記載した箇所は、第１メモリと読み替えることができる。第１メモリは、コントローラ２０の電源オフ時にデータを保持するメモリである。
【００２６】
電源オフとは、コントローラ２０の電源が落とされた状態を意味する。例えば、コントローラ２０の電源ボタンをオフにしたり、コントローラ２０から所定のシャットダウン操作を行ったりすると、電源オフになる。電源オフは、コントローラ２０内の全ての構成に完全に通電されない状態を意味してもよいが、本実施形態では、コントローラ２０の主たる構成（プロセッサ２１など）には通電されず、少なくともＳＲＡＭ２２については通電される状態を意味する。電源オフ時の通電は、外部からの電力又はコントローラ２０内蔵の電池によって行われる。
【００２７】
データを保持するとは、データを消去しないことである。別の言い方をすれば、データを保持するとは、データを記録した状態を維持することである。第１メモリは、コントローラ２０の電源オン時にデータを保持し、電源オフになったとしても、それまで保持していたデータ（電源オフ直前の値）を引き続き保持する。
【００２８】
例えば、第１メモリは、不揮発性メモリ、又は、バッテリバックアップに対応したメモリである。不揮発性メモリは、通電されなくでもデータを保持するメモリである。バッテリバックアップ可能なメモリは、コンピュータの電源オフ時に通電されることによって、データを保持するメモリである。バッテリバックアップは、メモリバックアップと呼ばれることもある。バッテリバックアップによって、本来は揮発性メモリに分類されるメモリが、電源オフ時にデータを保持できる。第１メモリは、ＳＲＡＭ２２に限られず、任意の種類のメモリを適用可能である。例えば、第１メモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＮＶＲＡＭ（Non-Volatile RAM）、ＥＥＰＲＯＭ、又はフラッシュメモリであってもよい。
【００２９】
ＤＤＲメモリ２３は、第２メモリの一例である。このため、本実施形態でＤＤＲメモリ２３と記載した箇所は、第２メモリと読み替えることができる。第２メモリは、コントローラ２０の電源オフ時にデータを保持しないメモリである。第２メモリは、コントローラ２０の電源オン時にデータを保持し、電源オフになると、それまで保持していたデータ（電源オフ直前の値）を保持せずに消去する。
【００３０】
例えば、第２メモリは、揮発性メモリ、又は、バッテリバックアップに対応していないメモリである。揮発性メモリは、通電されないとデータが保持されないメモリである。バッテリバックアップに対応していないメモリは、バッテリバックアップの機能を有しないメモリである。第２メモリは、ＤＤＲメモリ２３に限られず、任意の種類のメモリを適用可能である。例えば、第２メモリは、ＤＲＡＭ（Dynamic RAM）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、又はバッテリバックアップを利用しないＳＲＡＭであってもよい。
【００３１】
本実施形態では、ＳＲＡＭ２２は、ＤＤＲメモリ２３よりも、速度が遅く、高価であり、物理的に大きく、容量が小さいものとする。ただし、ＳＲＡＭ２２とＤＤＲメモリ２３の速度、価格、大きさ、及び容量は、任意の関係にあってよく、本実施形態の例に限られない。
【００３２】
なお、コントローラ２０は、電源オフ時にデータを保持する第１メモリと、電源オフ時にデータを保持しない第２メモリと、を含む複数のメモリを有すればよく、３つ以上のメモリを有してもよい。例えば、コントローラ２０は、複数の第１メモリを有してもよいし、複数の第２メモリを有してもよい。また例えば、コントローラ２０は、第１メモリ及び第２メモリ以外のメモリを有してもよい。また例えば、コントローラ２０は、ファームウェアや制御プログラムを記憶するための専用のメモリを有してもよい。プロセッサ２１内のメモリも、コントローラ２０が有するメモリの一例である。
【００３３】
ＦＰＧＡ２４は、ユーザが事後的に構成を設定可能な集積回路である。例えば、ＦＰＧＡ２４には、コントローラ２０又は被制御装置３０に接続されたセンサの検出結果が格納される。センサは、任意のセンサを適用可能であり、例えば、加工対象のワークを認識するためのセンサ、ワークの把持を検出するためのセンサ、トルクセンサ、モータエンコーダ、加速度センサ、ジャイロセンサ、又は温度センサ等である。
【００３４】
被制御装置３０は、コントローラ２０により制御される産業機器である。このため、本実施形態で被制御装置３０と記載した箇所は、産業機器と読み替えることができる。被制御装置３０は、コントローラ２０からの指示に基づいて、自身に記憶されたプログラムを実行し、所定の工程を実行する。被制御装置３０は、任意の種類の装置を適用可能であり、例えば、産業用ロボット、ロボットコントローラ、モータコントローラ、工作機械、プレス加工機、又は搬送機器などである。被制御装置３０も産業装置の一種である。コントローラ２０により制御される被制御装置３０の台数は、任意の台数であってよく、例えば、１台だけであってもよいし、３台以上であってもよい。
【００３５】
なお、設定端末１０、コントローラ２０、及び被制御装置３０の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、設定端末１０、コントローラ２０、及び被制御装置３０の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されるようにしてもよい。また例えば、ＡＳＩＣ（Application Specific Integrated Circuit）等の他の構成が含まれていてもよい。
【００３６】
［２．設定システムの概要］
ユーザは、設定端末１０を操作し、コントローラ２０が実行する制御プログラムを作成する。制御プログラムは、被制御装置３０を制御するためのプログラムであり、被制御装置３０に対する命令が記述される。制御プログラムは、任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語を利用可能である。例えば、ユーザは、ラダーチャート、ファンクションブロック、又はソースコードのエディタを利用して、制御プログラムのプログラミングを行う。例えば、コントローラ２０は、所定の制御周期（スキャン）ごとに、ユーザが作成した制御プログラム（例えば、ラダープログラム）で規定されたように被制御装置３０等に対する制御演算を実行する。本実施形態では、制御プログラムの作成前又は作成後において、データ単位に属性が設定される。
【００３７】
データ単位は、ＳＲＡＭ２２又はＤＤＲメモリ２３の何れかに記憶される個々のデータである。別の言い方をすれば、データ単位は、制御プログラム等のプログラムによって参照又は変更される個々のデータである。データ単位は、変数データと呼ばれることもある。例えば、データ単位は、制御プログラムの作成前にユーザによって指定される。また例えば、データ単位には、何れかのメモリのアドレスが設定される。ユーザは、任意のデータ単位を指定可能であり、例えば、制御プログラムによる途中計算の値若しくは計算結果の値を示すデータ単位、被制御装置３０のティーチングデータ等の設定を示すデータ単位、又はセンサの検出結果を示すデータ単位を設定可能である。データ単位は、制御プログラムの開始や終了の条件になってもよい。
【００３８】
属性は、コントローラ２０の電源オフ時に保持するか否かを識別する情報である。属性は、データ単位の分類ということもできる。本実施形態では、コントローラ２０の電源オフ時に保持することを示す保持属性と、コントローラ２０の電源オフ時に保持しないことを示す非保持属性と、の２つの属性がある。データ単位には、保持属性又は非保持属性の何れかが設定される。必ずしも全てのデータ単位に属性が設定されなくてもよく、ユーザが属性を設定しないデータ単位が存在してもよい。
【００３９】
本実施形態では、ユーザは、制御プログラムの作成時に、データ単位の属性の初期設定を行う。ユーザは、初期設定の属性を事後的に変更できる。以降、初期設定として保持属性が設定されたデータ単位の集合をＭレジスタと記載し、初期設定として非保持属性が設定されたデータ単位の集合をＧレジスタと記載する。初期設定時には、Ｍレジスタのデータ単位はＳＲＡＭ２２に格納され、Ｇレジスタのデータ単位はＤＤＲメモリ２３に格納される。
【００４０】
各データ単位には、ＳＲＡＭ２２又はＤＤＲメモリ２３の何れかの物理アドレスが割り当てられる。物理アドレスの割り当ては、ユーザによって指定されてもよいし、所定のアドレス割り当てルールに基づいて自動的に行われてもよい。例えば、Ｍレジスタのデータ単位には、ＳＤＲＡＭ２２の物理アドレスが連番となるように割り当てられる。また例えば、Ｇレジスタのデータ単位には、ＤＤＲメモリ２３の物理アドレスが連番となるように割り当てられる。なお、ＭレジスタとＧレジスタの各々のインデックスレジスタは、コントローラ２０内の任意のメモリに格納されるものとする。インデックスレジスタには、基準となるアドレスからの相対値が格納される。
【００４１】
例えば、ユーザは、設定端末１０にインストールされた設定ツールを利用して、初期設定の属性を変更する。本実施形態では、Ｍレジスタのデータ単位の属性が変更される場合を例に挙げるが、後述する変形例のように、Ｇレジスタのデータ単位の属性が変更されてもよい。例えば、設定ツールが起動すると、データ単位の属性を指定するための属性指定画面が設定端末１０のモニタ１５に表示される。
【００４２】
図２は、属性指定画面の一例を示す図である。図２に示すように、属性指定画面ＵＩは、Ｍレジスタのアドレス帯域のリストＬが表示される。アドレス帯域は、一定の幅を有するアドレスの範囲である。リストＬには、アドレス帯域の名称として数値範囲が表示される。本実施形態では、データ単位をグループ化するためにアドレス帯域が用意されており、図２の例では、０番から９９９９番まで、１００００番から１９９９９番まで、といったように、１万番ごとにグループ化されている。各アドレス帯域には、少なくとも１つのデータ単位が属する。
【００４３】
例えば、属性指定画面ＵＩは、階層構造の情報を表示するためのユーザインタフェース（いわゆるＴｒｅｅＶｉｅｗコントロール）を有する。各アドレス帯域の横には、当該アドレス帯域に属するデータ単位のツリーを開閉するためのチェックボックスが表示される。各アドレス帯域のチェックボックスに対する操作によって、当該アドレス帯域に属するデータ単位の表示／非表示を切り替えることができる。
【００４４】
図２に示すように、ユーザが０番から９９９９番までのアドレス帯域のチェックボックスを選択すると、ツリーが開き、このアドレス帯域のデータ単位が表示される。図２の例では、０番から１９９９番を使用するデータ単位、２０００番から３９９９番を使用するデータ単位、４０００番から５９９９番を使用するデータ単位、６０００番から７９９９番を使用するデータ単位、及び８０００番から９９９９番を使用するデータ単位が表示される。これらのアドレスの値は、初期設定時の物理アドレスとするが、後述する仮想アドレスの値であってもよい。
【００４５】
リストＬに表示されたデータ単位の横には、チェックボックスが表示される。例えば、データ単位のチェックボックスに対する操作によって、属性を変更できる。本実施形態では、保持属性を設定する場合にはチェックを入れ、非保持属性を設定する場合にはチェックを外すものとする。ユーザは、一度チェックを外して非保持属性にしたデータ単位に対し、再びチェックを入れて保持属性に戻すこともできる。同様に、ユーザは、一度チェックを入れて保持属性にしたデータ単位に対し、再びチェックを外して非保持属性に戻すこともできる。
【００４６】
Ｍレジスタのデータ単位は、初期設定時には、全てチェックが入る。ユーザは、電源オフ時に保持する必要がないと事後的に判断したデータ単位のチェックを外す。図２の例では、０番から１９９９番を使用するデータ単位と、４０００番から５９９９番を使用するデータ単位と、については保持する必要がないと判断され、これらのチェックが外されている。
【００４７】
ユーザは、他のアドレス帯域についても同様にして、ツリーを開いてチェックボックスを操作することによって、データ単位の属性を設定できる。ユーザは、ツリーを開かずに、アドレス帯域のチェックボックスに対して操作することによって、当該アドレス帯域の全てのデータ単位に、まとめて保持属性又は非保持属性を設定してもよい。ユーザがＯＫボタンＢ１を選択すると、データ単位の属性が確定し、データ単位のアドレスが自動的に設定される。なお、ユーザがキャンセルボタンＢ２を選択すると、属性は変更されない。
【００４８】
例えば、保持属性から非保持属性に変更されたデータ単位は、ＳＲＡＭ２２からＤＤＲメモリ２３に移す必要があるので、ＳＲＡＭ２２の物理アドレスからＤＤＲメモリ２３の物理アドレスに変更される。また例えば、非保持属性から保持属性に変更されたデータ単位は、ＤＤＲメモリ２３からＳＲＡＭ２２に移す必要があるので、ＤＤＲメモリ２３の物理アドレスからＳＲＡＭ２２の物理アドレスに変更される。
【００４９】
例えば、図２の場合、０番から１９９９番を使用するデータ単位と、４０００番から５９９９番を使用するデータ単位と、の各々が保持属性から非保持属性に変更されるので、Ｍレジスタの一部を、ＳＲＡＭ２２からＤＤＲメモリ２３に移す必要がある。この場合、Ｍレジスタのデータ単位が、物理的に異なる２つのメモリに分散されるので、Ｍレジスタの物理アドレスが連番にならなくなる。これにより、インデックスレジスタを変更しても、Ｍレジスタのデータ単位にアクセスできなくなり、制御プログラムを修正する必要がある。
【００５０】
そこで、本実施形態では、Ｍレジスタのデータ単位に、互いに連番となるように仮想アドレスが設定され、インデックスレジスタに仮想アドレスが格納される。更に、仮想アドレスと物理アドレスの変換テーブルがコントローラ２０に記録される。コントローラ２０は、変換テーブルを参照し、仮想アドレスを物理アドレスに変換して、Ｍレジスタのデータ単位が分散されたＳＲＡＭ２２とＤＤＲメモリ２３の各々にアクセスする。
【００５１】
図３は、仮想アドレスが物理アドレスに変換される様子を示す図である。図３に示すように、Ｍレジスタの中に、保持属性のデータ単位と、非保持属性のデータ単位と、が混在していたとしても、仮想アドレスが互いに連番となるように設定される。実際の物理的アドレスが連番になっていなくても、仮想アドレスによって、見た目上（インデックスレジスタ上）は連番となる。このため、制御プログラムを修正しなくても、インデックスレジスタを変更することによって、ＳＲＡＭ２２とＤＤＲメモリ２３に分散されたＭレジスタのデータ単位にアクセスすることができる。以降、設定システム１の詳細を説明する。
【００５２】
［３．設定システムで実現される機能］
図４は、設定システム１で実現される機能を示す機能ブロック図である。図４に示すように、設定システム１では、設定端末１０において、データ記憶部１００と表示制御部１０１が実現され、コントローラ２０において、データ記憶部２００、属性設定部２０１、及びアドレス設定部２０２が実現される。なお、後述する変形例のように、属性設定部２０１とアドレス設定部２０２は、設定端末１０によって実現されてもよい。
【００５３】
［３−１．設定端末において実現される機能］
データ記憶部１００は、メモリ１２を主として実現される。データ記憶部１００は、本実施形態で説明する処理を実行するためのデータを記憶する。例えば、データ記憶部１００は、設定ツールを記憶する。また例えば、データ記憶部１００は、コントローラ２０から取得した後述する属性設定データを記憶してもよい。また例えば、データ記憶部１００は、属性指定画面ＵＩの画像データ、ユーザが作成した制御プログラム、ラダーチャートのファイル、ファンクションブロックのファイル、又はソースコードが記述されたファイルを記憶してもよい。
【００５４】
表示制御部１０１は、プロセッサ１１を主として実現される。表示制御部１０１は、各データ単位に設定する属性を指定するための属性指定画面ＵＩを表示させる。ユーザは、入力デバイス１４を操作して属性を指定する。属性の指定は、チェックボックスに対する操作に限られず、任意の操作を適用可能である。例えば、ラジオボタン等の他の入力フォームに対する操作によって属性が指定されてもよいし、属性を示す文字列や数値の入力によって属性が指定されてもよい。
【００５５】
属性指定画面ＵＩは、図２のようなレイアウトに限られず、属性の指定を受け付ける任意のレイアウトであってよい。例えば、属性指定画面ＵＩは、表形式のレイアウトであってもよい。また例えば、属性指定画面ＵＩは、チェックボックスではなく、ラジオボタン等の他の入力フォームによって指定を受け付けるレイアウトであってもよい。また例えば、属性指定画面ＵＩは、アドレス帯域ごとにグループ化されていなくてもよい。
【００５６】
例えば、属性指定画面ＵＩでは、アドレス帯域ごとに、データ単位がグループ化されている。アドレス帯域の幅は、固定値であってもよいし、可変値であってもよい。図２の例では、アドレス帯域の幅を１万番としたが、他の任意の幅を適用可能である。また、ＭレジスタとＧレジスタとで属性指定画面ＵＩに表示されるアドレス帯域の幅が異なってもよい。
【００５７】
グループ化とは、複数のデータ単位が同じアドレス帯域に属することである。属性指定画面ＵＩでは、同じアドレス帯域に属するデータ単位が互いに関連付けられて表示されることによって、これらがグループ化される。グループ化の表示態様としては、図２のようなツリーに限られず、同じグループであることを識別可能な任意の態様を適用可能である。例えば、アドレス帯域ごとに区切られたスペースの中に、データ単位の名称が表示されるようにしてもよいし、同じアドレス帯域のデータ単位の名称が同じ色で表示されるようにしてもよい。
【００５８】
例えば、表示制御部１０１は、何れかのアドレス帯域が選択された場合に、当該アドレス帯域に属するデータ単位の属性を指定可能に表示させる。属性指定画面ＵＩには、複数のアドレス帯域が表示され、ユーザは、任意のアドレス帯域を個別に選択可能である。図２の例では、チェックボックスを利用してアドレス帯域が選択される場合を説明したが、他の任意の操作によってアドレス帯域が選択されてよい。例えば、ラジオボタン等の他の入力フォームを利用してアドレス帯域が選択されてもよい。
【００５９】
例えば、表示制御部１０１は、アドレス帯域が選択されない場合、当該アドレス帯域の個々のデータ単位の属性の指定を許可しない。表示制御部１０１は、アドレス帯域が選択された場合に、当該アドレス帯域の個々のデータ単位の属性の指定を許可する。なお、図２を参照して説明したように、アドレス帯域が選択されない場合には、アドレス帯域全体の属性の指定が受け付けられるようにしてもよい。
【００６０】
［３−２．コントローラにおいて実現される機能］
データ記憶部２００は、プロセッサ２１内のメモリ及び他のメモリの少なくとも一方を主として実現される。データ記憶部２００は、本実施形態で説明する処理を実行するためのデータを記憶する。例えば、データ記憶部２００は、制御プログラムを記憶する。また例えば、データ記憶部２００は、データ単位に設定された属性を示す属性設定データを記憶する。
【００６１】
図５は、属性設定データのデータ格納例を示す図である。図５に示すように、属性設定データは、データ単位の名称、データ単位に設定された属性、及び変換テーブルが格納される。なお、属性設定データには、他の情報が格納されてもよく、例えば、データ単位がＭレジスタとＧレジスタの何れに属するかを示す情報が格納されてもよい。
【００６２】
データ単位の名称は、データ単位を一意に識別する情報である。例えば、データ単位の名称は、ユーザが指定した文字列であってもよいし、初期設定時の物理アドレスであってもよい。本実施形態では、データ単位の名称は、初期設定時の物理アドレスを含み、互いに連番となる数値を含む文字列となっている。仮想アドレスや物理アドレスが変更されても、データ単位の名称は変更されないものとする。
【００６３】
変換テーブルは、変換データの一例である。このため、本実施形態で変換テーブルと記載した箇所は、変換データと読み替えることができる。変換データは、各データ単位の仮想アドレスと物理アドレスとが関連付けられた情報である。変換データは、仮想アドレスから物理アドレスを検索可能であり、物理アドレスから仮想アドレスを検索可能である。変換データでは、仮想アドレスと物理アドレスが１対１で対応する。変換データは、テーブル形式に限られず、任意のデータ形式を適用可能である。例えば、変換データは、ＣＳＶ形式やテキスト形式であってもよい。変換テーブルは、データ単位の属性の変更に応じて更新される。更新後の変換テーブルは、コントローラ２０に記録される。なお、図５の例では、各データ単位の開始アドレスのみ示している。
【００６４】
また例えば、データ記憶部２００は、インデックスレジスタの内容を記憶してもよい。初期設定時点では、Ｍレジスタのデータ単位は全て保持属性となり、互いに連番となるようにＳＲＡＭ２２の物理アドレスが設定されるので、インデックスレジスタには、Ｍレジスタのデータ単位のアドレスとして、ＳＲＡＭ２２の物理アドレスの相対値が格納される。同様に、初期設定時点では、Ｇレジスタのデータ単位は全て非保持属性となり、互いに連番となるようにＤＤＲメモリ２３の物理アドレスが設定されるので、インデックスレジスタには、Ｇレジスタのデータ単位のアドレスとして、ＤＤＲメモリ２３の物理アドレスの相対値が格納される。データ単位の属性が変更された場合、インデックスレジスタの内容は、後述するアドレス設定部２０２によって変更される。
【００６５】
属性設定部２０１は、プロセッサ２１を主として実現される。属性設定部２０１は、複数のデータ単位の各々に、電源オフ時に保持するか否かを示す属性を設定する。属性の設定とは、属性の決定、更新、又は確定ということもできる。属性設定部２０１は、各データ単位に、ユーザが指定した属性を設定する。
【００６６】
本実施形態では、属性の初期設定が行われるので、属性設定部２０１は、ユーザにより属性の変更が指示されたデータ単位の属性を変更する。属性設定部２０１は、各データ単位に変更後の属性が関連付けられるように、属性設定データを更新する。また、本実施形態では、属性指定画面ＵＩが用意されているので、属性設定部２０１は、属性指定画面ＵＩにおいて指定された属性を各データ単位に設定する。
【００６７】
なお、属性設定部２０１は、ＳＲＡＭ２２の物理アドレスが設定されたデータ単位に、電源オフ時に保持しないことを示す保持属性を設定してもよいし、ＤＤＲメモリ２３の物理アドレスが設定されたデータ単位に、電源オフ時に保持することを示す非保持属性を設定してもよい。属性設定部２０１は、これらの両方を行ってもよいし、何れか一方のみを行ってもよい。
【００６８】
アドレス設定部２０２は、プロセッサ２１を主として実現される。アドレス設定部２０２は、各データ単位が属性に応じたメモリに格納されるように、各データ単位のアドレスを設定する。属性に応じたメモリとは、保持属性であればＳＲＡＭ２２であり、非保持属性であればＤＤＲメモリ２３である。属性とメモリとの関係は、設定ツールのプログラムに定義されているものとする。アドレスを設定するとは、データ単位が格納されるアドレスを決定することである。ここでのアドレスは、仮想アドレスと物理アドレスの両方を意味する。
【００６９】
例えば、アドレス設定部２０２は、各データ単位に、属性に応じたメモリの物理アドレスを設定する。もし仮に、Ｍレジスタの全てのデータ単位が非保持属性に変更されたとすると、アドレス設定部２０２は、Ｍレジスタの全てのデータ単位の物理アドレスを、ＳＲＡＭ２２からＤＤＲメモリ２３に変更する。この場合、アドレス設定部２０２は、ＤＤＲメモリ２３の物理アドレスが連番になるように、Ｍレジスタの各データ単位の物理アドレスを設定する。アドレス設定部２０２は、それに応じてインデックスレジスタも変更する。
【００７０】
本実施形態では、仮想アドレスが用意されているので、アドレス設定部２０２は、各データ単位に、仮想アドレスと、属性に応じたメモリの物理アドレスと、を設定する。仮想アドレスは、物理アドレス空間とは異なる仮想アドレス空間におけるアドレスである。仮想アドレスは、予め定められた範囲内のアドレスとなる。仮想アドレスは、物理アドレスの代わりにインデックスレジスタに格納されるアドレスということもできる。
【００７１】
アドレス設定部２０２は、データ単位ごとに、他のデータ単位と重複しないように、仮想アドレスと物理アドレスのペアを設定する。アドレス設定部２０２は、これらのペアを格納した変換テーブルを生成し、データ記憶部１００に記録する。アドレス設定部２０２は、データ単位の属性が変更された場合には、変更後の属性に応じた仮想アドレスと物理アドレスを設定し、変換テーブルを更新する。
【００７２】
アドレス設定部２０２は、各データ単位の仮想アドレスと物理アドレスの変換テーブルをコントローラ２０に記録する。例えば、アドレス設定部２０２は、変換テーブルを生成した場合に、生成した変換テーブルをコントローラ２０に送信して記録する。また例えば、変換テーブルを更新した場合に、更新後の変換テーブルをコントローラ２０に送信して記録する。
【００７３】
コントローラ２０は、アドレス設定部２０２により記録された変換テーブルに基づいて、各メモリにアクセスする。例えば、コントローラ２０は、制御プログラムの実行中に、インデックスレジスタを参照し、アクセスするデータ単位の仮想アドレスを特定する。コントローラ２０は、変換テーブルを参照し、仮想アドレスを物理アドレスに変換し、当該物理アドレスのメモリ領域にアクセスする。なお、制御プログラムに対し、データ単位の仮想アドレスを渡す必要がある場合には、コントローラ２０は、変換テーブルを参照し、アクセスした物理アドレスを仮想アドレスに変換すればよい。
【００７４】
本実施形態では、アドレス設定部２０２は、電源オフ時に保持することを示す保持属性が設定されたデータ単位と、電源オフ時に保持しないことを示す非保持属性が設定されたデータ単位と、が連番になるように、各データ単位の仮想アドレスを設定する。例えば、保持属性が設定されたデータ単位の末尾のアドレスの次のアドレスが、非保持属性が設定された他のデータ単位の最初のアドレスになることは、連番に相当する。また例えば、非保持属性が設定されたデータ単位の末尾のアドレスの次のアドレスが、保持属性が設定された他のデータ単位の最初のアドレスになることは、連番に相当する。
【００７５】
例えば、各データ単位に、複数のメモリの何れかの物理アドレスが予め設定されている場合、アドレス設定部２０２は、予め設定された物理アドレスの順序を維持するように、各データ単位の仮想アドレスを設定する。本実施形態では、初期設定時に、ＧレジスタとＭレジスタの各々の物理アドレスが予め定められているので、アドレス設定部２０２は、これら物理アドレスの順番を保つように、各データ単位の仮想アドレスを設定する。これにより、図５のデータ格納例のように、初期設定のＧレジスタの物理アドレスの順序を保つように、連番の仮想アドレスが設定される。即ち、アドレス設定部２０２は、初期設定時の物理アドレスの昇順又は降順を保つように、仮想アドレスを設定する。
【００７６】
アドレス設定部２０２は、アドレスの設定結果に基づいて、インデックスレジスタを変更する。本実施形態では、アドレス設定部２０２は、互いに連番となるように仮想アドレスを設定するので、インデックスレジスタにおける仮想アドレスの相対値についても、この連番を保つように変更する。
【００７７】
［４．設定システムで実行される処理］
図６は、設定システム１で実行される処理の一例を示すフロー図である。図６に示す処理は、プロセッサ１１，２１の各々がプログラムに従って動作することによって実行される。図６に示す処理は、図４に示す機能ブロックにより実行される処理の一例である。なお、図６に示す処理が実行されるにあたり、制御プログラムが予め作成されており、各データ単位の属性の初期設定（ＭレジスタとＧレジスタの振り分け）も完了しているものとする。
【００７８】
図６に示すように、設定端末１０は、メモリ１２に記憶された設定ツールを起動し（Ｓ１）、コントローラ２０から取得した属性設定データに基づいて、属性指定画面ＵＩをモニタ１５に表示させる（Ｓ２）。属性指定画面ＵＩが表示された時点では、何れのアドレス帯域も選択されていないので、各グループのツリーは閉じた状態（図２の上側の属性指定画面ＵＩ）となる。
【００７９】
設定端末１０は、入力デバイス１４の検出信号に基づいて、ユーザの操作を特定する（Ｓ３）。本実施形態では、ツリーを開く操作、ツリーを閉じる操作、属性を指定する操作、ＯＫボタンＢ１を選択する操作、又はキャンセルボタンＢ２を選択する操作の何れかが行われる場合を説明する。
【００８０】
ツリーを開く操作が行われた場合（Ｓ３；ツリーを開く）、設定端末１０は、選択されたアドレス帯域のツリーを開き、属性設定データに基づいて、リストＬにデータ単位の名称とチェックボックスを表示させる（Ｓ４）。Ｓ４では、例えば、図２の上側の属性指定画面ＵＩから下側の属性指定画面ＵＩに変化し、ツリーが開いたアドレス帯域のデータ単位の属性を個別に指定可能な状態になる。
【００８１】
ツリーを閉じる操作が行われた場合（Ｓ３；ツリーを閉じる）、設定端末１０は、選択されたアドレス帯域のツリーを閉じ、リストＬからデータ単位の名称とチェックボックスを消去する（Ｓ５）。Ｓ５では、例えば、図２の下側の属性指定画面ＵＩから上側の属性指定画面ＵＩに変化し、ツリーが閉じられたアドレス帯域のデータ単位の属性を指定できないようになる。
【００８２】
データ単位に設定する属性が指定された場合（Ｓ３；属性を指定）、設定端末１０は、指定された属性のチェックをオン／オフする（Ｓ６）。各データ単位に指定された属性（チェックのオン／オフ）は、メモリ１２に一時的に記録される。この属性は、ＯＫボタンＢ１が選択された場合に確定し、コントローラ２０に書き込まれる。
【００８３】
ＯＫボタンＢ１が選択された場合（Ｓ３；ＯＫボタン）、設定端末１０は、コントローラ２０に対し、所定の設定指示を送信し、コントローラ２０は、設定指示に応じてデータ単位に属性を設定する（Ｓ７）。設定指示は、属性とアドレスを設定するための指示であり、所定の形式のデータが送信されることによって行われる。例えば、設定指示には、属性指定画面ＵＩから指定された各データ単位の属性が含まれるものとする。Ｓ７においては、コントローラ２０は、設定指示に含まれる各データ単位の属性（ユーザが指定した属性）となるように、属性設定データを更新する。
【００８４】
コントローラ２０は、各データ単位に、仮想アドレスと、属性に応じたメモリの物理アドレスと、を設定する（Ｓ８）。Ｓ８においては、コントローラ２０は、は、Ｍレジスタのデータ単位に、連番となるような仮想アドレスと、属性に応じたメモリの物理アドレスと、を設定する。コントローラ２０は、Ｓ８の設定となるように変換テーブルを更新し（Ｓ９）、本処理は終了する。一方、Ｓ３において、キャンセルボタンＢ２が選択された場合（Ｓ３；キャンセルボタン）、本処理は終了する。この場合、Ｓ７〜Ｓ９の処理は実行されず、属性設定データは更新されない。
【００８５】
以上説明した実施形態によれば、電源オフ時に保持するか否かを示す属性を各データ単位に設定し、各データ単位が属性に応じたメモリに格納されるように、各データ単位のアドレスを設定することによって、制御プログラムを修正しなくてもデータ単位を格納するメモリを切り替えが可能となり、制御プログラムの修正の手間を省くことができる。例えば、ユーザがデータ単位の属性を変更すれば、データ単位が属性に応じたメモリに格納されるようになるので、ラダーチャートやソースコードを改変する変更する必要がなくなり、制御プログラムの修正の手間を省くことができる。また、Ｍレジスタのデータ単位をＧレジスタに移す場合には、アクセス速度を高速化し、Ｍレジスタの使用量を減らすことができる。即ち、高速メモリと低速メモリの切り替えをすることができる。また例えば、コントローラ２０が所定の制御周期ごとに制御演算を実行する場合、制御周期が短くなるほど応答の性能が向上するが、１演算周期内における処理内容を増やすと制御周期を短く設定することができなくなる（即ち、制御周期が長くなってしまう）。従来はメモリの応答速度などを加味した制御プログラムの変更が必要となるが、実施形態で説明したコントローラ２０によれば、処理内容を増やしたとしても、より高速なメモリに割り当てを見直すことによりスキャンタイムが長くなることを防止できる。
【００８６】
また、各データ単位に、仮想アドレスと、属性に応じたメモリの物理アドレスと、を設定し、産業装置が変換データに基づいて各メモリにアクセスすることによって、制御プログラムを修正しなくても、例えばインデックスレジスタを変更の変更によってデータ単位を格納するメモリを切り替えが可能となり、プログラムの修正の手間を省くことができる。即ち、インデックスレジスタの変更によって、ＳＲＡＭ２２とＤＤＲメモリ２３の両方にアクセスすることができる。また、ユーザが、仮想アドレスと物理アドレスの対応付けや変換データの設定作業をする必要が無くなり、ユーザの負担を軽減することもできる。また、コントローラ２０は、変換データによって各データ単位の物理アドレスに確実にアクセスすることができる。
【００８７】
また、電源オフ時に保持することを示す属性が設定されたデータ単位と、電源オフ時に保持しないことを示す属性が設定されたデータ単位と、が連番になるように、各データ単位の仮想アドレスを設定することによって、例えばインデックスレジスタを変えるだけで対応することができ、制御プログラムの修正の手間を省くことができる。
【００８８】
また、予め設定された物理アドレスの順序を維持するように、各データ単位の仮想アドレスが設定されることによって、ユーザから見たデータ単位のアドレス順が変わらないので、データ単位のアドレスを管理しやすくなる。
【００８９】
また、ＳＲＡＭ２２の物理アドレスが設定されたデータ単位に非保持属性を設定する場合には、保持する必要のないデータ単位をＤＤＲメモリ２３に格納し、ＳＲＡＭ２２を有効活用することができる。ＤＤＲメモリ２３の物理アドレスが設定されたデータ単位に保持属性を設定する場合には、保持する必要のあるデータ単位をＳＲＡＭ２２に格納し、当該データ単位を確実に保持することができる。
【００９０】
また、各データ単位に設定する属性を指定するための属性指定画面ＵＩを表示させ、属性指定画面ＵＩにおいて指定された属性を各データ単位に設定することによって、ユーザによる属性の設定作業を効率化することができる。
【００９１】
また、属性指定画面ＵＩでは、アドレス帯域ごとにデータ単位がグループ化されており、選択されたアドレス帯域に属するデータ単位の属性を指定可能に表示させることによって、ユーザによる属性の設定作業を効率化することができる。
【００９２】
また、不揮発性メモリ又はバッテリバックアップに対応したメモリと、揮発性メモリ又はバッテリバックアップに対応していないメモリと、を含む複数のメモリを有するコントローラ２０における制御プログラムの修正の手間を省くことができる。
【００９３】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００９４】
（１）例えば、データ単位の属性が偏りすぎると、メモリ容量が不足することがあるので、属性を設定可能なデータ単位に上限を設けてもよい。図７は、変形例の機能ブロック図である。図７に示すように、変形例では、実施形態で説明した機能に加えて、上限設定部２０３が実現される。上限設定部２０３は、プロセッサ２１を主として実現される。
【００９５】
上限設定部２０３は、電源オフ時に保持することを示す保持属性と、電源オフ時に保持しないことを示す非保持属性と、の少なくとも一方を設定可能なデータ単位に上限を設定する。上限設定部２０３は、保持属性と非保持属性の両方に上限を設定してもよいし、何れか一方のみに上限を設定してもよい。
【００９６】
上限とは、属性を設定可能なデータ単位の合計数、又は、データ単位の総容量の上限値である。保持属性の上限は、ＳＲＡＭ２２の容量に応じて設定され、非保持属性の上限は、ＤＤＲメモリ２３の容量に応じて設定される。上限は、これらの容量をオーバーしないように設定される。上限は、固定値であってもよいし、可変値であってもよい。
【００９７】
上限設定部２０３は、属性設定データに基づいて、属性の上限に達したか否かを判定する。上限設定部２０３は、上限に達した属性がそれ以上設定されることを制限する。このため、上限に達した属性については、それ以上他のデータ単位に当該属性が設定されない（即ち、属性設定データが更新されない）ようになる。上限設定部２０３は、上限に達していない属性については、設定されることを制限せずに許可する。
【００９８】
変形例（１）によれば、保持属性を設定可能なデータ単位に上限を設定する場合には、ＳＲＡＭ２２の容量が足りなくなることを防止でき、非保持属性を設定可能なデータ単位に上限を設定する場合には、ＤＤＲメモリ２３の容量が足りなくなることを防止できる。
【００９９】
（２）また例えば、実施形態では、Ｍレジスタのデータ単位の属性が変更される場合を説明したが、Ｇレジスタのデータ単位の属性が変更されてもよい。図８は、Ｇレジスタのデータ単位の属性が変更される様子を示す図である。図８に示すように、Ｇレジスタについても属性指定画面ＵＩから属性の変更が可能であってもよい。Ｇレジスタのデータ単位は、初期設定時には、全てチェックが入っていない。
【０１００】
ユーザは、電源オフ時に保持する必要があると判断したデータ単位のチェックを入れる。図２の例では、ユーザは、５０２０００番から５０３９９９番を使用するデータ単位と、５０４０００番から５０５９９９番を使用するデータ単位と、については保持する必要があると判断し、これらのチェックを入れる。アドレス設定部２０２は、これらのデータ単位がＳＲＡＭ２２に格納されるように、仮想アドレスと、ＳＲＡＭ２２の物理アドレスと、を設定する。Ｇレジスタについても、Ｍレジスタと同様、仮想アドレスは、初期設定の順序を保つように連番になるものとする。
【０１０１】
（３）また例えば、実施形態では、属性設定部２０１とアドレス設定部２０２がコントローラ２０で実現される場合を説明したが、これらの機能は、設定端末１０で実現されてもよい。この場合、属性設定部２０１とアドレス設定部２０２の各々は、プロセッサ２１を主として実現される。例えば、属性設定部２０１は、各データ単位に属性を設定し、当該設定された属性を、コントローラ２０の属性設定データに書き込む。また例えば、アドレス設定部２０２は、各データ単位のアドレスを設定し、当該設定されたアドレスに基づいて、コントローラ２０の変換テーブルを更新する。属性を設定する処理及びアドレスを設定する処理の詳細は、実施形態で説明した通りである。
【０１０２】
（４）また例えば、上記変形例を組み合わせてもよい。
【０１０３】
また例えば、Ｇレジスタのデータ単位を全て非保持属性にしたり、Ｍレジスタのデータ単位を全て保持属性にしたりする場合には、メモリが分散されず物理アドレスを連番にすることができるので、仮想アドレスは省略してもよい。また例えば、ＧレジスタとＭレジスタの初期設定は特に行われなくてもよい。この場合、ユーザは、制御プログラムの作成時に、データ単位に属性を指定すればよい。アドレス設定部２０２は、データ単位ごとに、他のデータ単位と連番となるように仮想アドレスを設定し、属性に応じたメモリの物理アドレスを設定する。ユーザが属性指定画面ＵＩから事後的に属性を変更した場合には、制御プログラムの作成時に設定された仮想アドレスと物理アドレスが変更される。インデックスレジスタは、これらのアドレスの変更に応じて変更されるようにすればよい。また例えば、コントローラ２０は、周期的な制御をしなくてもよい。
【０１０４】
また例えば、設定端末１０で実現されるものとして説明した機能は、コントローラ２０で実現されてもよい。また例えば、コントローラ２０で実現されるものとして説明した機能は、設定端末１０で実現されてもよい。また例えば、設定端末１０によって主な機能が実現される場合を説明したが、各機能が複数のコンピュータによって分担されてもよい。例えば、設定端末１０とコントローラ２０によって、各機能が分担されてもよい。また例えば、サーバコンピュータ等の他のコンピュータによって、各機能が実現されてもよいし、設定端末１０と当該他のコンピュータによって、各機能が分担されてもよい。
【０１０５】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１０６】
１  設定システム、１０  設定端末、１１，２１  プロセッサ、１２  メモリ、１３  通信ＩＦ、１４  入力デバイス、１５  モニタ、２０  コントローラ、２２  ＳＲＡＭ、２３  ＤＤＲメモリ、２４  ＦＰＧＡ、３０  被制御装置、Ｂ１  ＯＫボタン、Ｂ２  キャンセルボタン、１００，２００  データ記憶部、１０１  表示制御部、２０１  属性設定部、２０２  アドレス設定部、２０３  上限設定部、ＵＩ  属性指定画面、Ｌ  リスト。
【図１】
0006874814.tif 000002
【図２】
0006874814.tif 000003
【図３】
0006874814.tif 000004
【図４】
0006874814.tif 000005
【図５】
0006874814.tif 000006
【図６】
0006874814.tif 000007
【図７】
0006874814.tif 000008
【図８】
0006874814.tif 000009