(57)【要約】【課題】変更が必要な不整合の放置に起因するコントローラの動作が停止等の不具合を防止する。【解決手段】割付管理部（４１）は、ユニット動作設定（６１）のうち設定値が変更されると、変更後の設定値に基づく入力データの記憶に必要な記憶容量を特定し、Ｉ／Ｏ割付設定（６４）において特定されている、入力データと、記憶領域との割り付け状態に不整合が発生しているか否か判定する。【選択図】図１４
2019144956.tif 000002
【特許請求の範囲】
【請求項１】
入力デバイスが接続されたＩ／Ｏユニットと、当該Ｉ／Ｏユニットを制御するコントローラとを管理するＩ／Ｏ管理装置であって、
前記Ｉ／Ｏユニットが前記入力デバイスから取得して転送する入力データと、前記入力データに関する設定値との関係を表すユニット動作設定と、
前記入力データと、前記Ｉ／Ｏユニットが前記入力データを転送する転送先の記憶部に含まれる複数の記憶領域のうち、前記入力データの転送先として割り付けられた記憶領域を特定する特定情報との関係を表すＩ／Ｏ割付設定と、
が記憶されたＩ／Ｏ管理情報記憶部と、
前記ユニット動作設定のうち前記設定値が変更されると、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定することで、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態に不整合が発生しているか否か判定する割付管理部と、
を有することを特徴とするＩ／Ｏ管理装置。
【請求項２】
前記ユニット動作設定のうち前記設定値が変更されると、前記割付管理部は、
当該変更後の設定値と、当該変更後の設定値に基づく前記入力データの記憶に必要な記憶領域との割り付け関係を表すプロファイル情報を参照することで、前記変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定することを特徴とする請求項１に記載のＩ／Ｏ管理装置。
【請求項３】
前記割付管理部は、前記割り付け状態の不整合が発生していると判定すると、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量が確保されるように、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態を変更して当該変更を確定することを特徴とする請求項１又は２に記載のＩ／Ｏ管理装置。
【請求項４】
前記割付管理部は、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態の変更を確定する前に、当該変更後の、前記入力データと、前記記憶領域との割り付け状態をユーザに提示して、当該割り付け状態の変更の要否の入力をユーザに促すことを特徴とする請求項３に記載のＩ／Ｏ管理装置。
【請求項５】
さらに、ユーザの入力を促す入力画面を表示する表示部を備え、
前記コントローラに接続される複数のＩ／Ｏユニットを管理することを特徴とする請求項１〜４の何れか１項に記載のＩ／Ｏ管理装置。
【請求項６】
さらに、前記割り付け状態に不整合が発生していると前記割付管理部が判定した場合、当該割り付け状態に不整合が発生していることをユーザに報知する報知部を有することを特徴とする請求項５に記載のＩ／Ｏ管理装置。
【請求項７】
前記割り付け状態に不整合が発生していると前記割付管理部が判定した場合、前記報知部は、前記複数のＩ／Ｏユニットのうち、前記割り付け状態に不整合が発生しているＩ／Ｏユニットに対応付けて警告情報を前記入力画面に表示させることで、前記報知を行うことを特徴とする請求項６に記載のＩ／Ｏ管理装置。
【請求項８】
前記割付管理部は、前記割り付け状態に不整合が発生していると判定した場合、当該割り付け状態の不整合の解消が必須であるか、任意であるかを示す情報を前記入力画面に表示させることを特徴とする請求項５〜７の何れか１項に記載のＩ／Ｏ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩ／Ｏ管理装置に関する。
【背景技術】
【０００２】
工場において、各種の制御対象装置を制御するために、Ｉ／Ｏモジュールユニットが用いられている。
【０００３】
特許文献１に開示されているように、Ｉ／Ｏモジュールユニットは、制御対象装置に設けられた複数のセンサと、当該複数のセンサに接続され、当該複数のセンサからのアナログ情報を取得する複数のＩ／Ｏユニットと、当該複数のＩ／Ｏユニットと接続され、各Ｉ／Ｏユニットからの信号を取得するコントローラとを有する。さらに、Ｉ／Ｏモジュールユニットは管理装置を有し、当該管理装置によって、コントローラ及び各Ｉ／Ｏユニットの駆動が制御される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７‐１６２１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここでコントローラは、Ｉ／Ｏユニットから転送された入力信号を記憶する記憶部を有する。このコントローラの記憶部は、Ｉ／Ｏユニットに接続されたセンサ毎に入力信号の記憶領域が割り付けられている。
【０００６】
このため、従来は、ユーザが、Ｉ／Ｏユニットに接続されたセンサ毎に入力信号の設定値（たとえば、サンプリング数の値、サンプリング長さの値等）を変更することができなかった。このため利便性が悪かった。
【０００７】
例えば、単純にこのＩ／Ｏユニットに接続されたセンサ毎に入力信号の設定値（たとえば、サンプリング数の値、サンプリング長さの値等）を変更することができるようにしてしまうと、コントローラの記憶部に割り付けられている記憶領域の容量を超えてしまう可能性がある。このような不整合を防止するには、ユーザは、前記設定値を変更すると、それに合わせて、当該設定値に基づいてコントローラに転送される入力信号の記憶容量を考慮して、入力信号の転送先として割り付けられている記憶領域の容量を変更する必要がある。
【０００８】
しかしユーザが、設定値の変更に伴い、入力信号の記憶に必要な記憶容量と、当該入力信号の転送先として割り付けられている記憶領域の記憶容量とに不整合が発生しているか否かを判断するには手間がかかり、ユーザによっては当該不整合の発生を見落とす場合もある。
【０００９】
本発明の一態様は、変更が必要な不整合を放置したことに起因して、コントローラの動作が停止又は誤動作する等の不具合を防止することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、Ｉ／Ｏ管理装置は、入力デバイスが接続されたＩ／Ｏユニットと、当該Ｉ／Ｏユニットを制御するコントローラとを管理するＩ／Ｏ管理装置であって、前記Ｉ／Ｏユニットが前記入力デバイスから取得して転送する入力データと、前記入力データに関する設定値との関係を表すユニット動作設定と、前記入力データと、前記Ｉ／Ｏユニットが前記入力データを転送する転送先の記憶部に含まれる複数の記憶領域のうち、前記入力データの転送先として割り付けられた記憶領域を特定する特定情報との関係を表すＩ／Ｏ割付設定と、が記憶されたＩ／Ｏ管理情報記憶部と、前記ユニット動作設定のうち前記設定値が変更されると、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定することで、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態に不整合が発生しているか否か判定する割付管理部と、を有することを特徴とする。
【００１１】
前記構成によると、前記割付管理部は、前記設定値が変更されると、当該設定値の変更前に割り付けられている前記入力データと前記記憶領域との割り付け状態に不整合が発生しているか否かを判定する。これにより、当該割り付け状態の不整合が発生している場合、判定結果をユーザに提示することで、ユーザは、当該割り付け状態の不整合の発生を容易に認識することができる。このため、前記設定値の変更に伴って生じる前記入力データの記憶容量と、現在割り付けられている記憶領域の記憶容量との不整合の発生の見落としを防止することができる。この結果、変更が必要な不整合を放置したことに起因して、コントローラが正しい値を取得できずに誤動作し、ひいてはロボットが誤動作する等の不具合を防止することができる。
【００１２】
また、前記ユニット動作設定のうち前記設定値が変更されると、前記割付管理部は、
当該変更後の設定値と、当該変更後の設定値に基づく前記入力データの記憶に必要な記憶領域との割り付け関係を表すプロファイル情報を参照することで、前記変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定してもよい。
【００１３】
前記構成によると、前記割付管理部は、前記プロファイル情報を参照することで、前記設定値が変更されても、前記変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定することができる。
【００１４】
また、前記割付管理部は、前記割り付け状態の不整合が発生していると判定すると、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量が確保されるように、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態を変更して当該変更を確定してもよい。
【００１５】
前記構成によると、ユーザによらず、前記割付管理部によって、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量が確保されるように、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態が変更される。これにより、ユーザが前記入力データと前記記憶領域との割り付け状態を変更する手間が省け、さらに、ユーザによる割り付け状態の変更ミスを防止することができる。これによると、より確実に、意図せずにＩ／Ｏユニットの動作が停止してしまうことを防止することができる。
【００１６】
また、前記割付管理部は、前記Ｉ／Ｏ割付設定において特定されている、前記入力データと、前記記憶領域との割り付け状態の変更を確定する前に、当該変更後の、前記入力データと、前記記憶領域との割り付け状態をユーザに提示して、当該割り付け状態の変更の要否の入力をユーザに促してもよい。
【００１７】
前記構成によると、ユーザが意図しない割り付け状態となることを防止することができる。
【００１８】
また、さらに、ユーザの入力を促す入力画面を表示する表示部を備え、前記コントローラに接続される複数のＩ／Ｏユニットを管理してもよい。
【００１９】
また、さらに、前記割り付け状態に不整合が発生していると前記割付管理部が判定した場合、当該割り付け状態に不整合が発生していることをユーザに報知する報知部を有してもよい。
【００２０】
前記構成によると、前記報知部が報知することで、ユーザは、前記割り付け状態に不整合が発生していることを容易に認識することができる。
【００２１】
また、前記割り付け状態に不整合が発生していると前記割付管理部が判定した場合、前記報知部は、前記複数のＩ／Ｏユニットのうち、前記割り付け状態に不整合が発生しているＩ／Ｏユニットに対応付けて警告情報を前記入力画面に表示させることで、前記報知を行ってもよい。
【００２２】
前記構成によると、ユーザは、複数のＩ／Ｏユニットのうち、何れのＩ／Ｏユニットの割り付け状態に不整合が発生しているかを容易に特定することができる。このため、利便性が高い。
【００２３】
また、前記割付管理部は、前記割り付け状態に不整合が発生していると判定した場合、当該割り付け状態の不整合の解消が必須であるか、任意であるかを示す情報を前記入力画面に表示させてもよい。
【００２４】
前記構成によると、ユーザは前記入力画面を見れば、前記割り付け状態の不整合の解消が必須であるか任意であるかを判断することができる。これにより、最低限必要な不整合の解消のみを行うことができるため、ユーザの手間を減らすことができる。
【００２５】
なお、前記割り付け状態の不整合の解消が必須である場合とは、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量に対して、前記Ｉ／Ｏ割付設定において特定されている前記記憶領域の記憶容量が不足している場合である。また、前記割り付け状態の不整合の解消が任意である場合とは、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量に対して、前記Ｉ／Ｏ割付設定において特定されている前記記憶領域の記憶容量が過剰に多い場合である。
【発明の効果】
【００２６】
本発明の一態様によれば、変更が必要な不整合を放置したことに起因して、コントローラの動作が停止又は誤動作する等の不具合を防止することができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態１のＩ／Ｏモジュールユニットの構成を表すブロック図である。
【図２】実施形態１のＩ／Ｏ割付管理装置の構成を表すブロック図である。
【図３】Ｉ／Ｏユニットの記憶部に記憶されているユニット動作設定を表す図である。
【図４】Ｉ／Ｏ割付管理装置の記憶部に記憶されているプロファイル情報を表す図である。
【図５】Ｉ／Ｏ割付管理装置の記憶部に記憶されているエントリ‐記憶領域対応表を表す図である。
【図６】コントローラの通信モジュールに記憶されている編集前のＩ／Ｏ割付設定を表す図である。
【図７】コントローラの通信モジュールに記憶する編集後のＩ／Ｏ割付設定を表す図である。
【図８】コントローラの記憶部に記憶されているＩ／Ｏマップを表す図である。
【図９】Ｉ／Ｏ割付管理装置の表示部に表示されている設定画面を表す図である。
【図１０】Ｉ／Ｏ割付管理装置の表示部に表示されている警告画面を表す図である。
【図１１】Ｉ／Ｏ割付管理装置の表示部に表示されている詳細な警告画面を表す図である。
【図１２】Ｉ／Ｏ割付管理装置の表示部に表示されている不具合解消前のＩ／Ｏ割付状況画面を表す図である。
【図１３】Ｉ／Ｏ割付管理装置の表示部に表示されている不具合解消後のＩ／Ｏ割付状況画面を表す図である。
【図１４】実施形態１のＩ／Ｏ割付管理装置の処理の流れを表すフローチャートである。
【発明を実施するための形態】
【００２８】
§１  適用例
図１及び図２を参照して、本発明が適用される場面の一例について説明する。図１は、実施形態１のＩ／Ｏモジュールユニット１の構成を表すブロック図である。図２は、実施形態１のＩ／Ｏ割付管理装置１０の構成を表すブロック図である。
【００２９】
図１及び図２に示すＩ／Ｏ割付管理装置１０は、工場などにおいて用いられる制御対象装置に設けられた各種の入力デバイス（各種センサ等）からの入力データをＩ／Ｏユニットが取得し、当該取得した入力データの転送先である記憶領域の位置の割付状態を管理する装置である。
【００３０】
例えば、高速アナログ入力ユニット及びＩＯ-Ｌｉｎｋマスタ等の高機能なＩ／Ｏモジュールは、アナログ入力のサンプリング数及びＩＯ-Ｌｉｎｋマスタに接続するデバイスのプロセスデータサイズの設定（ユニット動作設定）に応じて、制御に必要なＩ／Ｏのサイズ変更が必要である。
【００３１】
これまでは、ユニット動作設定の編集内容に応じて、Ｉ／Ｏ割付設定をユーザが手動で変更する必要があった。しかし、両設定の相関関係が直観的ではないため、ユーザはトライアンドエラー、または、マニュアルを確認しつつＩ／Ｏ割付設定を行う必要があった。
【００３２】
そこで、図１及び図２に示すＩ／Ｏ割付管理装置１０では、ユニット動作設定の内容から最適なＩ／Ｏ割付設定を自動で生成する。これにより、Ｉ／Ｏユニットのユニット動作設定に基づいた複雑なＩ／Ｏ割付設定をユーザが手動で設定する操作が不要になり、かつ、設定不一致によりシステムの停止及び非稼働をなくすること事ができる。この結果、製造設備システムの立ち上げ時間短縮が可能となる。
【００３３】
加えて、図１及び図２に示すＩ／Ｏ割付管理装置１０では、ユニット動作設定の内容から、Ｉ／Ｏユニットが異常とならない範囲でＩ／Ｏ割付設定をユーザが取捨選択して(即ち半自動で)生成してもよい。これにより、無効としたＩ／Ｏユニットの入出力チャネル(ポート)に対するＩ／Ｏ割付設定の有無を選択して設定できるようになり、拡張性を持ったシステム開発が可能となる。
【００３４】
§２  構成例
〔実施形態１〕
図１に示すように、Ｉ／Ｏモジュールユニット１は、Ｉ／Ｏ割付管理装置（Ｉ／Ｏ管理装置）１０と、コントローラ２０と、Ｉ／ＯユニットＵｎとを有する。
【００３５】
Ｉ／Ｏ割付管理装置１０は、表示部１１と、制御部４０と、Ｉ／Ｏ管理情報記憶部６０とを有する。Ｉ／Ｏ割付管理装置１０は、センサ５等の入力デバイスが接続されたＩ／ＯユニットＵｎと、Ｉ／ＯユニットＵｎを制御するコントローラ２０とを入力データのＩ／Ｏ（入出力）を管理する。例えば、Ｉ／Ｏ割付管理装置１０は、コントローラ２０に接続される複数のＩ／ＯユニットＵｎを管理する。
【００３６】
Ｉ／ＯユニットＵｎは、制御対象装置（ロボット等）に設けられた複数のセンサ（入力デバイス）５それぞれと接続されている。Ｉ／ＯユニットＵｎは、Ｉ／ＯユニットＵｎに接続された各センサ５からの各種情報を示す入力データを取得したり、制御対象装置に設けられた各種アクチュエータの駆動を制御する制御信号を出力したりする装置である。
【００３７】
Ｉ／ＯユニットＵｎは、各種情報を記憶する記憶部Ｕｎａと、センサ５を接続する接続端子であるチャネルｃｈ１〜ｃｈ４とを有する。Ｉ／ＯユニットＵｎは、Ｉ／Ｏ割付管理装置１０から送信されて記憶部Ｕｎａに記憶されたユニット動作設定６１（詳細は後述する）の内容に基づいて、チャネルｃｈ１〜ｃｈ４毎に、センサ５から取得した入力データをコントローラ２０へ転送する。
【００３８】
図１では、一例として、Ｉ／Ｏモジュールユニット１は、Ｉ／ＯユニットＵｎとして、Ｉ／ＯユニットＵｎ１・Ｕｎ２を有するように示しているが、Ｉ／Ｏモジュールユニット１が有するＩ／Ｏモジュールの個数は、２個に限定されず、１又は複数個有していればよい。
【００３９】
コントローラ２０は、制御部２１と、記憶部２２と、通信モジュール２４と、バス２５とを有する。制御部２１はコントローラ２０の動作を統括して制御する。記憶部２２は、Ｉ／Ｏ割付管理装置１０から送信されてきたＩ／Ｏマップ６５が記憶される。バス２５は、Ｉ／ＯユニットＵｎの入力端子であるポートを複数有する。例えば、コントローラ２０には、複数のロボットまたは製造ライン駆動装置が接続されている。コントローラ２０は、各センサ５からの各種情報を示す入力データを参照して、かつユーザが設定したプログラムに従って、複数のロボットまたは駆動装置を制御してもよい。
【００４０】
図１の例では、バス２５は、Ｉ／ＯユニットＵｎ１が接続されるポートＰ１と、Ｉ／ＯユニットＵｎ２が接続されるポートＰ２とを有するように図示されているが、バス２５に設けられているポートの数は、１個又は３個以上であってもよい。
【００４１】
通信モジュール２４は、バス２５の各ポートに接続されているＩ／ＯユニットＵｎそれぞれとの通信を制御する。通信モジュール２４はＩ／Ｏメモリ２４ａを有する。
【００４２】
Ｉ／Ｏメモリ２４ａは、バス２５のポートを通じてＩ／ＯユニットＵｎが入力データを転送する転送先の記憶部である。Ｉ／Ｏメモリ２４ａは複数の記憶領域を有する。そして、各記憶領域には、記憶領域の位置を特定する変数であるエントリ（特定情報）が割り付けられており、エントリ記憶領域対応表６３（図５参照）としてＩ／Ｏ管理情報記憶部６０に記憶されている。
【００４３】
図２に示すように、制御部４０は、割付管理部４１と、報知部４２とを有する。Ｉ／Ｏ管理情報記憶部６０は、ユニット動作設定６１と、プロファイル情報６２と、エントリ記憶領域対応表６３と、Ｉ／Ｏ割付設定６４と、Ｉ／Ｏマップ６５とが記憶されている。
【００４４】
表示部１１は、ユーザの入力を促す各種入力画面を表示するディスプレイである。表示部１１が表示する入力画面とは、例えば、後述する、設定画面１２Ａ（図９）、警告画面１２Ｂ（図１０）、詳細な警告画面１２Ｂａ（図１１）、不整合解消前のＩ／Ｏ割付状況画面１２Ｃ（図１２）、及び、不整合解消後のＩ／Ｏ割付状況画面１２Ｃ（図１３）等である。
【００４５】
割付管理部４１は、Ｉ／ＯユニットＵｎがセンサ５から取得しコントローラ２０へ転送する入力データの記憶に必要な記憶容量と、当該入力データの転送先として割り付けられているＩ／Ｏメモリ２４ａにおける記憶領域の記憶容量との割り付け状態に不整合が発生しているか否かを判定し、当該不整合の解消を行ったりする。
【００４６】
報知部４２は、前記割り付け状態に不整合が発生していると割付管理部４１が判定した場合、当該割り付け状態に不整合が発生していることをユーザに報知する。これにより、ユーザは、前記割り付け状態に不整合が発生していることを容易に認識することができる。
【００４７】
図３は、Ｉ／ＯユニットＵｎの記憶部Ｕｎａに記憶されているユニット動作設定６１を表す図である。ユニット動作設定６１は、Ｉ／ＯユニットＵｎの動作を記述したデータである。
【００４８】
ユニット動作設定６１は、Ｉ／ＯユニットＵｎがセンサ５等の入力デバイスから取得して転送する入力データの項目（パラメータ）と、当該入力データの項目に関する設定値との関係を表す。
【００４９】
図３では、ユニット動作設定６１は、入力データの項目毎に設定値が対応付けられたテーブルとして図示しているが、ユニット動作設定６１の形式はテーブルに限定されるものではない。入力データの項目とは、例えば、センサ５等が取得するアナログデータのサンプリング回数（データの取得回数）、サンプリング間隔、センサ５等の入力デバイスから取得するデータのサイズ等を挙げることができる。
【００５０】
ユニット動作設定６１は、Ｉ／Ｏ割付管理装置１０のＩ／Ｏ管理情報記憶部６０に記憶されたプロファイル情報６２（図４）に基づいてユーザが作成する。Ｉ／Ｏ割付管理装置１０で作成されたユニット動作設定６１は、Ｉ／Ｏ管理情報記憶部６０に記憶され、また、Ｉ／Ｏ割付管理装置１０から各Ｉ／ＯユニットＵｎに転送される。そして、Ｉ／ＯユニットＵｎに転送されたユニット動作設定６１は、各Ｉ／ＯユニットＵｎの記憶部Ｕｎａに記憶される。
【００５１】
Ｉ／ＯユニットＵｎは、ユニット動作設定６１に設定されている項目毎に、設定された設定値に基づいて、センサ５から入力データを取得し、当該取得した入力データをコントローラ２０へ転送する。
【００５２】
図４は、Ｉ／Ｏ割付管理装置１０の記憶部に記憶されているプロファイル情報６２を表す図である。プロファイル情報６２は、ユニット動作設定６１（図３）の設定値が変更された場合、当該変更後の設定値と、当該変更後の設定値に基づくＩ／ＯユニットＵｎの入力データの記憶に必要な記憶領域（Ｉ／Ｏメモリ２４ａにおける記憶領域）との割り付け関係を表す。一例として、プロファイル情報６２は、Ｉ／ＯユニットＵｎの識別情報や特性（Ｉ／Ｏの型及びサイズ）等を記述した静的なファイルである。Ｉ／ＯユニットＵｎに対して設定可能な項目と値（型及び範囲）を含んでもよい。
【００５３】
図４に示す例では、プロファイル情報６２は、各項目の設定値の範囲と、当該設定値の範囲毎に、割り付けが必要なエントリとが対応付けられている。
【００５４】
図５は、Ｉ／Ｏ割付管理装置１０の記憶部に記憶されているエントリ記憶領域対応表６３を表す図である。エントリ記憶領域対応表６３には、エントリと、Ｉ／Ｏメモリ２４ａにおける記憶領域の位置と、当該記憶領域に記憶可能な記憶容量（サイズ）とが対応付けられている。図５に示すように、エントリ記憶領域対応表６３は、テーブルであってもよいし、他のデータ形式であってもよい。
【００５５】
図６は、コントローラ２０の通信モジュール２４に記憶されている不整合解消前のＩ／Ｏ割付設定６４を表す図である。
【００５６】
Ｉ／Ｏ割付設定６４は、センサ５からＩ／ＯユニットＵｎへの入力データと、Ｉ／ＯユニットＵｎが入力データを転送する転送先のＩ／Ｏメモリ２４ａに含まれる複数の記憶領域のうち、入力データの転送先として割り付けられた記憶領域を特定する変数であるエントリとの関係を表すデータである。
【００５７】
Ｉ／Ｏ割付設定６４はＩ／Ｏ割付管理装置１０を用いてユーザが作成する。Ｉ／Ｏ割付管理装置１０で作成されたＩ／Ｏ割付設定６４は、Ｉ／Ｏ管理情報記憶部６０に記憶され、また、Ｉ／Ｏ割付管理装置１０からコントローラ２０の通信モジュール２４に転送される。
【００５８】
なお、図６では、前記入力データと、前記記憶領域との割り付け状態に不整合が発生している状態を表している。
【００５９】
図７は、コントローラ２０の通信モジュール２４に記憶する不整合解消後のＩ／Ｏ割付設定６４を表す図である。図７では、前記入力データと、前記記憶領域との割り付け状態に発生していた不整合が解消された状態を表すＩ／Ｏ割付設定６４ｂを表している。
【００６０】
この図６、及び図７に示す割り付け状態の不整合及び不整合の解消については、後述する。
【００６１】
図８は、コントローラ２０の記憶部２２に記憶されているＩ／Ｏマップ６５を表す図である。Ｉ／Ｏマップ６５は、コントローラ２０の記憶部２２（ＣＰＵメモリ等）に割り付ける通信モジュール２４のＩ／Ｏメモリ２４ａの記憶領域の位置等を記述したデータである。Ｉ／Ｏマップ６５は、Ｉ／Ｏ割付設定６４から作成され、ポート毎に作成されたＩ／Ｏ割付設定６４（図６、図７）が記述されたデータである。Ｉ／Ｏ割付管理装置１０にて作成されたＩ／Ｏマップ６５は、Ｉ／Ｏ管理情報記憶部６０に記憶されると共に、コントローラ２０の記憶部２２にも転送されて記憶される。
【００６２】
図９は、Ｉ／Ｏ割付管理装置１０の表示部１１に表示されている設定画面１２Ａを表す図である。図１０は、Ｉ／Ｏ割付管理装置１０の表示部１１に表示されている警告画面１２Ｂを表す図である。図１１は、Ｉ／Ｏ割付管理装置１０の表示部１１に表示されている詳細な警告画面１２Ｂａを表す図である。図１２は、Ｉ／Ｏ割付管理装置１０の表示部１１に表示されている不具合解消前のＩ／Ｏ割付状況画面１２Ｃを表す図である。図１３は、Ｉ／Ｏ割付管理装置１０の表示部１１に表示されている不具合解消後のＩ／Ｏ割付状況画面１２Ｃを表す図である。図１４は、実施形態１のＩ／Ｏ割付管理装置１０の処理の流れを表すフローチャートである。
【００６３】
次に、主に、図１４のフローチャートと、図９〜図１３に示す各種入力画面とに基づいて、Ｉ／Ｏモジュールユニット１の動作を説明する。なお、図９〜図１３に表示部１１が表示する入力画面の一例を示している。しかし、表示部１１が表示する入力画面は、図９〜図１３に示した構成に限定されるものではない。
【００６４】
図９に示す設定画面１２Ａは、Ｉ／ＯユニットＵｎの動作設定を変更するためのユーザの入力操作を受け付ける入力画面である。設定画面１２Ａには、主に、ユニット動作設定６１にて設定されている内容が表示されている。
【００６５】
割付管理部４１は、Ｉ／Ｏ管理情報記憶部６０に記憶されているユニット動作設定６１を参照し、設定画面１２Ａを表示部１１に表示させる。例えば、図９に示す例では、設定画面１２Ａには、ポート選択ボタン１２ａ、編集開始ボタン１２ｂ、及び、ユニット動作設定表１２ｃが表示されている。
【００６６】
設定画面１２Ａには、例えば、現在の各項目と設定値との対応関係がチャネル毎に記述された表１２ｃが表示されている。設定画面１２Ａのうち、ポート選択ボタン１２ａにおいてユーザが選択したポートの設定状況が表１２ｃに表示される。
【００６７】
図９及び図１４に示すように、ユーザがユニット動作設定６１を変更する際、ユーザからの指示により、割付管理部４１は、Ｉ／Ｏ管理情報記憶部６０に記憶されているユニット動作設定６１を参照し、設定画面１２Ａを表示部１１に表示させる。
【００６８】
ユーザが設定画面１２Ａにおける設定値を変更すると、当該変更に対応して、割付管理部４１はユニット動作設定６１の設定値を変更する（ステップＳ１１）。例えば、ユーザによって、ポート１及びチャネルｃｈ１における、項目Ａ（サンプリング数）の設定値が値Ａ１（１０回）から値Ａ２（２０回）へ変更され、項目Ｃの設定値が値Ｃ２から値Ｃ１へ変更されたとする。
【００６９】
次いで、割付管理部４１は、Ｉ／Ｏ管理情報記憶部６０に記憶されているプロファイル情報６２（図４）を参照し、変更後の設定値に基づく入力データの記憶に必要なエントリ（変数）を特定する（ステップＳ１２）。
【００７０】
例えば、割付管理部４１は、プロファイル情報６２を参照し、チャネルｃｈ１における、項目Ａ（サンプリング数）の変更後の設定値である値２０に基づく入力データの記憶に必要なエントリはエントリＥＮ０１１・ＥＮ０１２であると特定し、項目Ｃの変更後の設定値である値Ｃ１に基づく入力データの記憶に必要なエントリはエントリＥＮ０３１であると特定する。
【００７１】
必要なエントリが特定されると、エントリ記憶領域対応表６３（図５）から、Ｉ／Ｏメモリ２４ａに複数の記憶領域のうち、エントリに対応付けられた記憶領域の位置と、当該記憶領域の記憶容量（サイズ）とが特定される。
【００７２】
次いで、割付管理部４１は、Ｉ／Ｏ割付設定６４ａ（図６）を参照し、Ｉ／Ｏ割付設定６４ａにおいて特定されている、入力データ及び当該入力データに割り付けられているエントリと、ステップＳ１２において特定した変更後の設定値に基づく入力データの記憶に必要なエントリとを比較し、現在割り付けられているエントリに過不足があるか否かを判定する（ステップＳ１３）。
【００７３】
これにより、割付管理部４１は、入力データと、記憶領域との割り付け状態に不整合が発生しているか否か判定する。なお、不整合が発生しているとは、変更後の設定値に基づく入力データの記憶に必要な記憶容量に対して、Ｉ／Ｏ割付設定６４において特定されている記憶領域の記憶容量（換言すると割り付けられているエントリの数）が不足している状態か、または、過剰に多い状態のことである。
【００７４】
このように割付管理部４１は、ユニット動作設定６１の設定値が変更されると、当該設定値の変更前に割り付けられている前記入力データと、Ｉ／Ｏメモリ２４ａにおける記憶領域との割り付け状態に不整合が発生しているか否かを判定する。これにより、当該割り付け状態の不整合が発生している場合、判定結果をユーザに提示することで、ユーザは、当該割り付け状態の不整合の発生を容易に認識することができる。このため、前記設定値の変更に伴って生じる前記入力データの記憶容量と、現在割り付けられている記憶領域の記憶容量との不整合の発生の見落としを防止することができる。この結果、変更が必要な不整合を放置したことに起因して、コントローラ２０が正しい値を取得できずに誤動作してしまったり、ひいてはロボットが誤動作する等の不具合を防止することができる。
【００７５】
また、割付管理部４１は、プロファイル情報６２（図４）を参照することで、前記設定値が変更されても、前記変更後の設定値に基づく前記入力データの記憶に必要な記憶容量を特定することができる。
【００７６】
例えば、ステップＳ１３において、割付管理部４１は、Ｉ／Ｏ割付設定６４ａ（図６）を参照し、現在、チャネルｃｈ１において、項目ＡにエントリＥＮ０１１が割り付けられているだけであるため、ステップＳ１２において特定した項目Ａの変更後の設定値に基づく入力データの記憶に必要なエントリＥＮ０１１・ＥＮ０１２に対して必要なエントリが不足している（不整合が生じている）と判断する（ステップＳ１３のＹＥＳ）。
【００７７】
また、ステップＳ１３において、割付管理部４１は、Ｉ／Ｏ割付設定６４ａ（図６）を参照し、現在、チャネルｃｈ１において、項目ＣにエントリＥＮ０３１・ＥＮ０３２が割り付けられているため、ステップＳ１２において特定した項目Ｃの変更後の設定値に基づく入力データの記憶に必要なエントリＥＮ０３１に対して必要なエントリが多い（不整合が生じている）と判断する（ステップＳ１３のＹＥＳ）。
【００７８】
なお、ステップＳ１３において、割付管理部４１が、現在割り付けられているエントリに過不足がない（すなわち不整合が発生していない）と判定すると（ステップＳ１３のＮＯ）、フローを終了する。
【００７９】
ステップＳ１３において、割付管理部４１が、現在割り付けられているエントリに過不足がある（すなわち不整合が発生している）と判定すると（ステップＳ１３のＹＥＳ）、報知部４２が報知した報知情報である警告情報１２ｇを含む警告画面１２Ｂを表示部１１に表示させる（ステップＳ１４）。
【００８０】
図１０に示すように、警告画面１２Ｂには、例えば、ポート毎に設けられているチャネルを表すポート毎のチャネル情報１２ｄと、ポート毎に設けられている選択ボタン１２ｆと、複数のポートのうち不整合が発生しているポートに対応付けられている警告情報１２ｇとが表示されている。
【００８１】
図１０に示す例では、ポート毎のチャネル情報１２ｄとして、ポートＰ１〜Ｐ４それぞれに信号の入力を受けるチャネルｃｈ１〜ｃｈ４が設けられている旨が表示されている。また、警告情報１２ｇは、ポート毎のチャネル情報１２ｄのうち、ポートＰ１のチャネル情報１２ｄａに対応付けて表示されている。これにより、ユーザは、コントローラ２０の接続されている複数のＩ／ＯユニットＵｎのうち、何れのＩ／ＯユニットＵｎの割り付け状態に不整合が発生しているかを容易に特定することができる。
【００８２】
ユーザによって、警告情報１２ｇが対応付けて表示されているポートＰ１を選択する選択ボタン１２ｆが選択されると、割付管理部４１は、ポートＰ１に関する詳細な警告画面１２Ｂａを表示部１１に表示させる。
【００８３】
図１１に示すように、詳細な警告画面１２ＢａにはポートＰ１の詳細な情報と、不整合が発生している項目に対応付けて警告情報１２ｇが表示される。図１１に示す例では、ポートＰ１におけるチャネルｃｈ毎の項目と設定値（ステップＳ１１において設定値が変更されている場合は変更された設定値）と、不整合が発生しているチャネルｃｈ１の項目Ａ・Ｃそれぞれに対応付けて警告情報１２ｇが表示されている。
【００８４】
次いで、図１１及び図１４に示すように、ユーザが不整合を解消するために、Ｉ／Ｏ割付設定の変更を行う編集開始ボタン１２ｂを押す（選択する）（ステップＳ１５）。
【００８５】
すると、割付管理部４１は、不整合が発生している項目をリストとして表示部１１に表示させる（ステップＳ１６）。
【００８６】
図１２に示す例では、割付管理部４１が表示部１１に表示させたＩ／Ｏ割付状況画面１２Ｃには、不整合が発生している項目Ａ・Ｃがリストとして表１２ｋに表示されている。表１２ｋには、不整合が発生している項目Ａ・Ｃと、それぞれの項目の、設定値（変更された設定値）、割り付けられているエントリ、エントリによって特定されている記憶領域の記憶容量（サイズ）等の情報が表示されている。
【００８７】
そして、図１２及び図１４に示すように、割付管理部４１は、Ｉ／Ｏ割付状況画面１２Ｃに不整合がある項目を一括で全て変更する（不整合を解消する）か否かを判定する（ステップＳ１７）。
【００８８】
図１２に示す例では、項目Ａを選択するためのチェックボックス１２ｍ１が項目Ａに対応付けて表示され、項目Ｃを選択するためのチェックボックス１２ｍ２が項目Ｃに対応付けて表示され、チェックボックス１２ｍ１・１２ｍ２を一括で選択状態・非選択状態を切替えるためのチェックボックス１２ｍ０が表１２ｋの外に表示されている。
【００８９】
そして、ユーザが、チェックボックス１２ｍ０を選択する等によって、各項目に対応付けられたチェックボックス（図１２の例ではチェックボックス１２ｍ１・１２ｍ２）が全て選択され、不整合解消ボタン１２ｊが選択された場合、割付管理部４１は、Ｉ／Ｏ割付状況画面１２Ｃに不整合がある項目を一括で全て変更する（不整合を解消する）と判定する（ステップＳ１７のＹＥＳ）。
【００９０】
図１３及び図１４に示すように、割付管理部４１は、Ｉ／Ｏ割付状況画面１２Ｃに不整合がある項目を一括で全て変更する（不整合を解消する）と判定すると（ステップＳ１７のＹＥＳ）、不整合が発生している項目の不整合を解消して（ステップＳ１８）、不整合が解消されたＩ／Ｏ割付状況画面１２Ｃｂを表示部１１に表示させる。
【００９１】
図１３に示すように、例えば、割付管理部４１は、設定値として値Ａ２が設定されている項目ＡにエントリＥＮ０１１とエントリＥＮ０１２とを割り付けることで項目Ａに割り付けられているエントリを追加し、設定値として値Ｃ１が設定されている項目ＣにはエントリＥＮ０３１のみを割り付けることで項目Ｃに割り付けられているエントリの数を減らす。
【００９２】
次いで、割付管理部４１は、ユーザからの入力に基づいて、変更された割り付け状態を確定するか否かを判定する（ステップＳ１９）。
【００９３】
例えば、図１３におけるＯＫボタン１２ｎがユーザにより選択されると、割付管理部４１は、変更された割り付け状態を確定すると判定する（ステップＳ１９のＹＥＳ）。
【００９４】
そして、図７に示すように、割付管理部４１は、Ｉ／Ｏ管理情報記憶部６０に記憶されているＩ／Ｏ割付設定６４に、変更された割り付け状態（項目と割り付けられたエントリの対応関係）を反映させて、不整合解消後のＩ／Ｏ割付設定６４を作成し、上書き保存する。図６に示す不整合解消前のＩ／Ｏ割付設定６４においては項目ＡにエントリＥＮ０１１が割り付けられ、項目ＣにはエントリＥＮ０３１・ＥＮ０３２が割り付けられていたが、図７に示す不整合解消後のＩ／Ｏ割付設定６４では、項目Ａに割り付けられているエントリは数が増加してエントリＥＮ０１１・ＥＮ０１２が割り付けられ、項目Ｃに割り付けられているエントリは数が減少してエントリＥＮ０３１が割り付けられている。
【００９５】
これにより、割付管理部４１は、変更した割り付け状態を確定し（ステップＳ２０）、不整合解消後のＩ／Ｏ割付設定６４を通信モジュール２４に送信する。さらに、割付管理部４１は、不整合解消後のＩ／Ｏ割付設定６４に基づいてＩ／Ｏマップ６５を更新して、当該更新したＩ／Ｏマップ６５をＩ／Ｏ管理情報記憶部６０に記憶し、コントローラ２０の記憶部２２に送信する。
【００９６】
これによりフローが終了する。
【００９７】
ステップＳ１９において、図１３におけるキャンセルボタン１２ｐをユーザが選択する等によって、割付管理部４１が、変更された割り付け状態の変更を取り消すと判定すると（ステップＳ１９のＮＯ）、割付管理部４１は割り付け状態の変更を取り消し（ステップＳ２３）、フローを終了する。すなわち、割付管理部４１は、図１３のＩ／Ｏ割付状況画面１２Ｃにおいて表示した項目とエントリとの割り付け状態をＩ／Ｏ割付設定６４に反映させずに、Ｉ／Ｏ割付設定６４は図６に示した状態のままとし、フローを終了する。
【００９８】
また、ステップＳ１７において、図１２に示すチェックボックス１２ｍ１・１２ｍ２のどちらかのみが選択されて、不整合解消ボタン１２ｊが選択されると、割付管理部４１は、Ｉ／Ｏ割付状況画面１２Ｃに不整合がある項目を一括で変更しない（一括で不整合を解消しない）と判定する（ステップＳ１７のＮＯ）。そして、割付管理部４１は、ステップＳ１７において選択された項目の割り付け状態だけを変更して（ステップＳ２２）、図１３に示したＩ／Ｏ割付状況画面１２Ｃを表示部１１に表示させる。
【００９９】
そして、以降、ステップＳ１９のＹＥＳ及びステップＳ２０の処理、又は、ステップＳ１９のＮＯ及びステップＳ２３の処理へ進みフローを終了する。
【０１００】
このようにステップＳ１９において、割付管理部４１は、Ｉ／Ｏ割付設定６４（図６）において特定されている、入力データと、記憶領域との割り付け状態の変更を確定する前に、当該変更後の、入力データと、記憶領域との割り付け状態をユーザに提示して、当該割り付け状態の変更の要否の入力をユーザに促す。これにより、ユーザが意図しない割り付け状態となることを防止することができる。
【０１０１】
また、ステップＳ１３において割付管理部４１は、割り付け状態の不整合が発生していると判定すると、変更後の設定値に基づく前記入力データの記憶に必要な記憶容量が確保されるように、Ｉ／Ｏ割付設定６４において特定されている、入力データと、記憶領域との割り付け状態を変更して、ステップＳ２０において当該変更を確定する。
【０１０２】
このため、ユーザによらず、割付管理部４１によって、変更後の設定値に基づく入力データの記憶に必要な記憶容量が確保されるように、Ｉ／Ｏ割付設定６４において特定されている、入力データと、記憶領域との割り付け状態が変更される。これにより、ユーザが入力データと記憶領域との割り付け状態を変更する手間が省け、さらに、ユーザによる割り付け状態の変更ミスを防止することができる。これによると、より確実に、意図せずにＩ／Ｏユニットの動作が停止してしまうことを防止することができる。
【０１０３】
ここで、例えば、図１２において、設定値として値Ａ２が設定されている項目Ａに、エントリＥＮ０１１しか割り付けられていない場合のように、変更後の設定値に基づく入力データの記憶に必要な記憶容量に対して、Ｉ／Ｏ割付設定６４において特定されている記憶領域の記憶容量（即ちエントリの数）が不足している場合は、Ｉ／ＯユニットＵｎからコントローラ２０への入力データの転送ができないため、割り付け状態の不整合の解消が必須である。
【０１０４】
一方、図１２において、設定値として値Ｃ１が設定されている項目Ｃに、エントリＥＮ０３１とエントリＥＮ３２とが割り付けられている場合のように、変更後の設定値に基づく入力データの記憶に必要な記憶容量に対して、Ｉ／Ｏ割付設定６４において特定されている記憶領域の記憶容量が過剰に多い場合は、Ｉ／ＯユニットＵｎからコントローラ２０への入力データの転送が可能であるため、割り付け状態の不整合を解消するか否かの設定は、ユーザの任意である。
【０１０５】
このため、割付管理部４１は、割り付け状態に不整合が発生していると判定した場合、割り付け状態の不整合の解消が必須であるか、任意であるかを示す情報を、表示部１１に表示させてもよい。
【０１０６】
例えば、割付管理部４１は、図１２に示したＩ／Ｏ割付状況画面１２Ｃにおいて、項目Ａに対応するチェックボックス１２ｍ１は、強制的に選択状態としてユーザによって選択を解除されないように表示し、一方、項目Ｃに対応するチェックボックス１２ｍ２は、ユーザに選択状態とするか非選択状態とするかを任意に選択させるように表示してもよい。
【０１０７】
これにより、ユーザは、例えば、図１２に示すＩ／Ｏ割付状況画面１２Ｃを見れば、割り付け状態の不整合の解消が必須であるか任意であるかを判断することができる。これにより、最低限必要な不整合の解消のみを行うことができるため、ユーザの手間を減らすことができる。
【０１０８】
なお、Ｉ／Ｏモジュールユニット１においては、さらに、通信カプラを介して、コントローラ２０とＩ／ＯユニットＵｎとを接続してもよい。例えば、通信カプラはコントローラ２０とネットワークを介して接続され、通信カプラにＩ／ＯユニットＵｎが接続される。Ｉ／ＯユニットＵｎへの入力データは、通信カプラに送信され、通信カプラからコントローラ２０へ送信される。この場合、Ｉ／Ｏメモリ２４ａは、コントローラ２０ではなく、通信カプラに設けてもよい。Ｉ／Ｏ割付設定は、通信カプラに記憶される。
【０１０９】
〔ソフトウェアによる実現例〕
Ｉ／Ｏ割付管理装置１０の制御ブロック（特に割付管理部４１及び報知部４２）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０１１０】
後者の場合、Ｉ／Ｏ割付管理装置１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１１１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１１２】
１  Ｉ／Ｏモジュールユニット
Ｐ１、Ｐ２  ポート
５  センサ（入力デバイス）
１０  Ｉ／Ｏ割付管理装置（Ｉ／Ｏ管理装置）
１１  表示部
１２Ａ  設定画面
１２Ｂ、１２Ｂａ  警告画面
１２ｂ  編集開始ボタン
１２Ｃ  Ｉ／Ｏ割付状況画面
１２ｃ  表
１２ｄ、１２ｄａ  チャネル情報
１２ｆ  選択ボタン
１２ｇ  警告情報
１２ｊ  不整合解消ボタン
１２ｍ０〜１２ｍ２  チェックボックス
１２ｎ  ＯＫボタン
１２ｐ  キャンセルボタン
２０  コントローラ
２１、４０  制御部
２２、Ｕｎａ  記憶部
２４  通信モジュール
２４ａ  Ｉ／Ｏメモリ（記憶部）
２５  バス
４１  割付管理部
４２  報知部
６０  Ｉ／Ｏ管理情報記憶部
６１  ユニット動作設定
６２  プロファイル情報
６３  エントリ記憶領域対応表
６４  Ｉ／Ｏ割付設定
６５  Ｉ／Ｏマップ
【図１】
2019144956.tif 000003
【図２】
2019144956.tif 000004
【図３】
2019144956.tif 000005
【図４】
2019144956.tif 000006
【図５】
2019144956.tif 000007
【図６】
2019144956.tif 000008
【図７】
2019144956.tif 000009
【図８】
2019144956.tif 000010
【図９】
2019144956.tif 000011
【図１０】
2019144956.tif 000012
【図１１】
2019144956.tif 000013
【図１２】
2019144956.tif 000014
【図１３】
2019144956.tif 000015
【図１４】
2019144956.tif 000016