(57)【要約】  ＦＡコントローラ１００は、共有メモリ１０３と、前記共有メモリ１０３に確保されているメモリエリア１３１に格納されているデータと入出力データ記憶部に格納されている入出力データ２０１との間のリフレッシュ処理を実行する第１ＭＣＵ１０１と、ユーザプログラム１２４に基づいて動作し、前記共有メモリ１０３のメモリエリア１３１に格納されているデータを操作する第２ＭＣＵ１０２と、を備え、第２ＭＣＵ１０２は、前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報１３０を前記共有メモリ１０３のメモリエリア１３１に書き込み、前記第１ＭＣＵ１０１は、前記メモリエリア１３１に書き込まれたリフレッシュ情報１３０に従ってリフレッシュ処理を実行する。
2011125178.tif 000002
【特許請求の範囲】
【請求項１】
被制御装置に接続され、該被制御装置との間の第１入出力データが格納される入出力データ記憶部を備える入出力モジュールと、
第２入出力データが格納される共有記憶部と、前記共有記憶部に格納されている第２入出力データと前記入出力データ記憶部に格納されている第１入出力データとの間のリフレッシュ処理を実行する第１制御部と、ユーザプログラムに基づいて動作し、前記共有記憶部に格納されている第２入出力データを操作する第２制御部と、を備える制御装置と、
を備え、
前記第２制御部は、前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報を前記共有記憶部に書き込み、前記第１制御部は、前記共有記憶部に書き込まれたリフレッシュ情報に従って前記リフレッシュ処理を実行する、
ことを特徴とする制御システム。
【請求項２】
前記リフレッシュ情報は、前記第１入出力データを指定する記述と、該指定された第１入出力データに対応する第２入出力データの前記共有記憶部における格納アドレスの記述と、を含むことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記リフレッシュ情報は、前記リフレッシュ処理の実行の開始／停止を指示する記述を含む、ことを特徴とする請求項１に記載の制御システム。
【請求項４】
前記リフレッシュ情報は、実行周期の記述を含み、前記第１制御部は、前記リフレッシュ情報に記述されている実行周期で前記リフレッシュ処理を実行する、
ことを特徴とする請求項１〜請求項３のうちの何れか一項に記載の制御システム。
【請求項５】
前記第２制御部は、前記リフレッシュ処理を実行させるリフレッシュ実行指示を前記第１制御部に発行し、前記第１制御部は、前記リフレッシュ実行指示が発行されたタイミングで前記リフレッシュ処理を実行する、
ことを特徴とする請求項１〜請求項３のうちの何れか一項に記載の制御システム。
【請求項６】
前記第１制御部と前記第２制御部との間は割り込み信号線で接続されており、前記リフレッシュ実行指示は前記割込み信号線を介して発行される、
ことを特徴とする請求項１〜請求項３のうちの何れか一項に記載の制御システム。
【請求項７】
前記第１制御部と前記第２制御部との間は割り込み信号線で接続されており、前記第２制御部は、前記リフレッシュ情報を前記共有記憶部に書き込み完了したとき、前記第１制御部に前記割込み信号線を介して前記リフレッシュ情報を書き込み完了した旨を通知するリフレッシュ情報設定完了通知を発行する、
ことを特徴とする請求項１〜請求項３のうちの何れか一項に記載の制御システム。
【請求項８】
被制御装置に接続され、該被制御装置との間の入出力データが格納される入出力データ記憶部を備える入出力モジュールと、
共有記憶部と、前記入出力データ記憶部に格納されている入出力データを操作する第１制御部と、ユーザプログラムに基づいて動作し、前記入出力データ記憶部に格納されている入出力データを操作するためのコマンドを算出する第２制御部と、
を備え、
前記第２制御部は、前記コマンドを記述したコマンド情報を前記共有記憶部に書き込み、前記第１制御部は、前記共有記憶部に書き込まれたコマンド情報に基づいて前記入出力データの操作を実行する、
ことを特徴とする制御システム。
【請求項９】
前記コマンド情報は、前記コマンドに付随する引数を含む、ことを特徴とする請求項８に記載の制御システム。
【請求項１０】
前記第２制御部は、前記コマンド情報を前記共有記憶部に書き込み完了したとき、前記コマンド情報を書き込み完了した旨を通知するコマンド情報設定完了通知を前記第１制御部に発行する、
ことを特徴とする請求項８または請求項９に記載の制御システム。
【請求項１１】
前記第１制御部と前記第２制御部との間は割り込み信号線で接続されており、前記コマンド情報設定完了通知は前記割込み信号線を介して発行される、
ことを特徴とする請求項１０に記載の制御システム。
【請求項１２】
前記第１制御部は、前記コマンド情報に基づく前記入出力データの操作の実行結果を前記共有記憶部に書き込む、
ことを特徴とする請求項８または請求項９に記載の制御システム。
【請求項１３】
前記第２制御部は、前記第１制御部から書き込み可能なメモリを備え、
前記コマンド情報は、前記メモリのアドレスの記述を含み、
前記第１制御部は、前記メインメモリにおける前記コマンド情報に記述されているアドレスが指す位置に前記入出力データの操作の実行結果を書き込む、
ことを特徴とする請求項８または請求項９に記載の制御システム。
【請求項１４】
被制御装置に接続され、該被制御装置との間の第１入出力データが格納される入出力データ記憶部を備える入出力モジュールにバスを介して接続される制御装置であって、
第２入出力データが格納される共有記憶部と、
前記共有記憶部に格納されている第２入出力データと前記入出力データ記憶部に格納されている第１入出力データとの間のリフレッシュ処理を実行する第１制御部と、
ユーザプログラムに基づいて動作し、前記共有記憶部に格納されている第２入出力データを操作する第２制御部と、
を備え、
前記第２制御部は、前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報を前記共有記憶部に書き込み、前記第１制御部は、前記共有記憶部に書き込まれたリフレッシュ情報に従って前記リフレッシュ処理を実行する、
ことを特徴とする制御装置。
【請求項１５】
被制御装置に接続され、該被制御装置との間の入出力データが格納される入出力データ記憶部を備える入出力モジュールにバスを介して接続される制御装置であって、
共有記憶部と、
前記入出力データ記憶部に格納されている入出力データを操作する第１制御部と、
ユーザプログラムに基づいて動作し、前記入出力データ記憶部に格納されている入出力データを操作するためのコマンドを算出する第２制御部と、
を備え、
前記第２制御部は、前記コマンドを記述したコマンド情報を前記共有記憶部に書き込み、前記第１制御部は、前記共有記憶部に書き込まれたコマンド情報に基づいて前記入出力データの操作を実行する、
ことを特徴とする制御装置。
【請求項１６】
被制御装置に接続され、該被制御装置との間の第１入出力データが格納される入出力データ記憶部を備える入出力モジュールと、第２入出力データが格納される共有記憶部と、前記共有記憶部に格納されている第２入出力データと前記入出力データ記憶部に格納されている第１入出力データとの間のリフレッシュ処理を実行する第１制御部と、ユーザプログラムに基づいて動作し、前記共有記憶部に格納されている第２入出力データを操作する第２制御部と、を備える制御装置と、を備える制御システムの制御方法であって、
前記第２制御部が前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報を前記共有記憶部に書き込む第１ステップと、
前記第１制御部が、前記共有記憶部に書き込まれたリフレッシュ情報に従って前記リフレッシュ処理を実行する第２ステップと、
を備えることを特徴とする制御方法。
【請求項１７】
前記リフレッシュ情報は、実行周期の記述を含み、
前記第２ステップにおいて、前記第１制御部は、前記リフレッシュ情報に記述されている実行周期で前記リフレッシュ処理を実行する、
ことを特徴とする請求項１６に記載の制御システム。
【請求項１８】
前記第２ステップは、
前記第２制御部が前記リフレッシュ処理を実行させるリフレッシュ実行指示を前記第１制御部に発行する第３ステップと、
前記リフレッシュ実行指示が発行されたとき、前記第１制御部が前記リフレッシュ処理を実行する第４ステップと、
を含むことを特徴とする請求項１６に記載の制御システム。
【請求項１９】
前記第１制御部と前記第２制御部との間は割り込み信号線で接続されており、
前記第３ステップにおいて、前記第２制御部は、前記リフレッシュ実行指示を前記割り込み信号線を介して発行する、
ことを特徴とする請求項１８に記載の制御方法。
【請求項２０】
被制御装置に接続され、該被制御装置との間の入出力データが格納される入出力データ記憶部を備える入出力モジュールと、共有記憶部と、前記入出力データ記憶部に格納されている入出力データを操作する第１制御部と、ユーザプログラムに基づいて動作し、前記入出力データ記憶部に格納されている入出力データを操作するためのコマンドを算出する第２制御部と、を備える制御システムの制御方法であって、
前記第２制御部が前記コマンドを記述したコマンド情報を前記共有記憶部に書き込む第１ステップと、
前記第１制御部が前記共有記憶部に書き込まれたコマンド情報に基づいて前記入出力データの操作を実行する第２ステップと、
を備えることを特徴とする制御方法。
【請求項２１】
前記コマンド情報は、前記コマンドに付随する引数を含む、ことを特徴とする請求項２０に記載の制御方法。
【請求項２２】
前記第１制御部が前記コマンド情報に基づく前記入出力データの操作の実行結果を前記共有記憶部に書き込む第３ステップをさらに備える、
ことを特徴とする請求項２０または請求項２１に記載の制御方法。
【請求項２３】
前記第２制御部は、前記第１制御部から書き込み可能なメモリを備え、
前記コマンド情報は、前記メモリのアドレスの記述を含み、
前記第１制御部が前記メインメモリにおける前記コマンド情報に記述されているアドレスが指す位置に前記入出力データの操作の実行結果を書き込む第３ステップをさらに備える、
ことを特徴とする請求項２０または請求項２１に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｃ言語などの汎用プログラミング言語で記述されたユーザプログラムで被制御装置を制御する制御システム、制御装置および制御方法に関する。
【背景技術】
【０００２】
一般的なファクトリーオートメーション（ＦＡ）の分野では、機械制御に特化したラダー言語などを用いたプログラマブルロジックコントローラ（ＰＬＣ）によって被制御装置の制御が行われることが多い。これに対して、近年、ＰＬＣとの間の互換性を備え、汎用プログラミング言語で記述される高度な処理を実行するユーザプログラムをＰＬＣ用のラダー言語に移植することなく使用することができるＦＡコントローラ（制御装置）が開発されている。例えば、Ｃ言語を用いたＦＡコントローラによれば、過去のＣ言語プログラム資産が流用でき、かつ三角関数などラダー言語が不得意とする関数も簡単に扱うことができる。ＦＡコントローラは、ＰＬＣとの間の互換性を備えるため、ＰＬＣ用の拡張バスを介してＰＬＣ用の豊富に用意された種々の拡張モジュールを接続したシステム（制御システム）を構築することができるようになっている。【０００３】
ユーザプログラムが拡張モジュールの１つである入出力モジュールへアクセスするには、ＰＬＣと同等の信頼性・拡張性・汎用性を確保するために、多くの手順や操作が必要となる。そこでＦＡコントローラでは、上記の複雑な手順や操作を隠蔽し、自動化した専用アクセス処理関数を提供することでユーザのプログラミング利便性を向上させていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−９４４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＦＡコントローラにおいては、汎用プログラミング言語で記述されたユーザプログラムは、リアルタイムＯＳ（Real  Time  Operating  System：ＲＴＯＳ）の制御の下に実行される。ＲＴＯＳには様々な種類があり、ＲＴＯＳの種類毎に、提供されるライブラリやグラフィカルユーザインタフェース、開発環境など利用環境が異なる。ユーザが選択するＲＴＯＳの種類は多岐にわたるため、ＦＡコントローラも様々なＲＴＯＳを搭載可能とすることが要望される。【０００６】
前述の専用アクセス処理関数は、ＲＴＯＳに依存しており、ＲＴＯＳの種類が変更された場合には専用アクセス処理関数の再実装が必要となる。しかしながら、前述の要望に対応するためにＲＴＯＳ毎に専用アクセス処理関数を用意することは、メーカにとって大きな負担となるという問題があった。この問題に対する１つの解として、夫々別々のＲＴＯＳを実行可能な複数ＣＰＵを備えさせ、専用アクセス処理関数とユーザプログラムとを異なるＣＰＵ上で動作させる構成が考えられる。【０００７】
特許文献１には、被制御装置に対する制御処理と制御処理を実行させるための各種操作を送受信するための通信制御処理とを夫々独立したＯＳで動作するＣＰＵで動作させ、ＣＰＵ同士は共有記憶部を介してデータの保存・読み出しなどを実行する技術が開示されている。しかしながら、特許文献１の技術によれば、二つのＣＰＵ間の通信の手順が複雑であるため、該技術を上記構成に採用すると、ユーザ側のプログラミングの利便性の低下を招いてしまう。【０００８】
本発明は、上記に鑑みてなされたものであって、ユーザが利用するＯＳに依存しない専用アクセス処理をユーザが簡単に実行することができる制御システム、制御装置および制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、被制御装置に接続され、該被制御装置との間の第１入出力データが格納される入出力データ記憶部を備える入出力モジュールと、第２入出力データが格納される共有記憶部と、前記共有記憶部に格納されている第２入出力データと前記入出力データ記憶部に格納されている第１入出力データとの間のリフレッシュ処理を実行する第１制御部と、ユーザプログラムに基づいて動作し、前記共有記憶部に格納されている第２入出力データを操作する第２制御部と、を備える制御装置と、を備え、前記第２制御部は、前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報を前記共有記憶部に書き込み、前記第１制御部は、前記共有記憶部に書き込まれたリフレッシュ情報に従って前記リフレッシュ処理を実行する、ことを特徴とする。
【発明の効果】
【００１０】
本発明にかかる制御システムは、ユーザが利用するＯＳに依存しない専用アクセス処理をユーザが簡単に実行することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１のＦＡコントローラシステムのハードウェア構成を説明する図である。
【図２】図２は、各構成要素間の通信を概要的に説明する図である。
【図３】図３は、リフレッシュ情報のデータ構造の一例を示す図である。
【図４】図４は、リフレッシュ情報を設定する動作を説明するフローチャートである。
【図５】図５は、自動リフレッシュ処理の動作を説明するフローチャートである。
【図６】図６は、手動リフレッシュ処理の動作を説明するフローチャートである。
【図７】図７は、手動リフレッシュ処理を実行させる際の動作を説明するフローチャートである。
【図８】図８は、リフレッシュ処理終了処理の動作を説明するフローチャートである。
【図９】図９は、実施の形態２の各構成要素間の通信を概要的に説明する図である。
【図１０】図１０は、コマンド情報のデータ構造の一例を示す図である。
【図１１】図１１は、コマンド情報を設定する動作を説明するフローチャートである。
【図１２】図１２は、専用アクセス処理関数がコマンドを実行する動作を説明するフローチャートである。
【図１３】図１３は、実施の形態３のＦＡコントローラシステムのハードウェア構成を説明する図である。
【図１４】図１４は、各構成要素間の通信を概要的に説明する図である。
【図１５】図１５は、コマンド情報の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる制御システム、制御装置および制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１の制御システムとしてのＦＡコントローラシステムのハードウェア構成を説明する図である。ＦＡコントローラシステム１は、実施の形態１の制御装置としてのＦＡコントローラ１００と、入出力モジュール２００とがＰＬＣ用の拡張バス３００に接続されて構成されている。
【００１４】
入出力モジュール２００は、産業用機器などの被制御装置（図示せず）に接続されており、該被制御装置の出力データおよび該被制御装置への入力データ（入出力データ２０１）を記憶するための入出力データ記憶部２０２と、拡張バス３００を介したＦＡコントローラ１００との間の通信のための通信インタフェースである通信コントローラ２０３とを備えている。通信コントローラ２０３は、入出力データ２０１を拡張バス３００上を流れる電気信号に変換する。
【００１５】
ＦＡコントローラ１００は、拡張バス３００で拡張された入出力モジュール２００に専用のアクセス手順に従った専用アクセス処理を実現するためのプログラムである専用アクセス処理関数１１５を実行するＣＰＵ１１０を搭載する第１ＭＣＵ１０１と、ユーザプログラム１２４を実行するＣＰＵ１２０を搭載する第２ＭＣＵ１０２と、第１ＭＣＵ１０１と第２ＭＣＵ１０２との間の通信のために使用される共有メモリ１０３と、を備えている。共有メモリ１０３は２ポートメモリであって、共有メモリ１０３が備える夫々のポートに信号線１０４、１０５でＭＣＵ１０１、１０２が夫々接続されている。また、第１ＭＣＵ１０１と第２ＭＣＵ１０２との間は、信号線１０６で直接接続されている。
【００１６】
第１ＭＣＵ１０１は、より詳しくは、前述のＣＰＵ１１０のほか、ＥＥＰＲＯＭ１１１、ＲＡＭ１１２、外部インタフェース１１３、通信コントローラ１１４を備えており、これらの構成要素は第１ＭＣＵ１０１の内部バスに夫々接続されている。ＥＥＰＲＯＭ１１１には、専用アクセス処理関数１１５と、第１ＭＣＵ１０１の基本制御を実行するリアルタイムＯＳである第１ＲＴＯＳ１１６とが格納されている。
【００１７】
ＲＡＭ１１２は、プログラム展開用領域として使用される。ＦＡコントローラ１００が起動されると、専用アクセス処理関数１１５および第１ＲＴＯＳ１１６は、内部バスを介してＲＡＭ１１２に送られて、ＲＡＭ１１２のプログラム展開用領域に夫々展開される。ＣＰＵ１１０は、ＲＡＭ１１２に展開された第１ＲＴＯＳ１１６を実行する。ＣＰＵ１１０は、第１ＲＴＯＳ１１６による基本制御の下で専用アクセス処理関数１１５を実行することによって、専用アクセス処理を実現する。
【００１８】
外部インタフェース１１３は、第２ＭＣＵ１０２との間の通信のためのインタフェースであって、共有メモリ１０３にアクセスするための信号線１０４および第２ＭＣＵ１０２との間で割り込み信号を送受信するための信号線１０６が接続されている。通信コントローラ１１４は、拡張バス３００を介して入出力データ２０１にアクセスするための通信インタフェースである。
【００１９】
第２ＭＣＵ１０２は、ＣＰＵ１２０のほか、ＥＥＰＲＯＭ１２１、ＲＡＭ１２２、外部インタフェース１２３を備えており、これらの構成要素は第２ＭＣＵ１０２の内部バスに夫々接続されている。ＥＥＰＲＯＭ１２１には、入出力データ２０１のうちの入出データの読み出しおよび出力データの書き込みを行うためのユーザにより作成されるユーザプログラム１２４と、ユーザプログラム１２４を動作させるための第２ＲＴＯＳ１２５とが格納されている。なお、ユーザは、ユーザプログラム１２４を動作させることができるのであれば所望の種類の第２ＲＴＯＳ１２５を選択することができる。
【００２０】
ＲＡＭ１２２は、ＲＡＭ１１２と同じく、プログラム展開用領域として使用される。ＦＡコントローラ１００が起動されると、ユーザプログラム１２４および第２ＲＴＯＳ１２５は、第２ＭＣＵ１０２の内部バスを介してＲＡＭ１２２に送られて、ＲＡＭ１２２のプログラム展開用領域に夫々展開される。ＣＰＵ１２０は、ＲＡＭ１２２に展開された第２ＲＴＯＳ１２５を実行する。ＣＰＵ１２０は、第２ＲＴＯＳ１２５による制御の下でユーザプログラム１２４を実行する。
【００２１】
外部インタフェース１２３は、第１ＭＣＵ１０１との間の通信のためのインタフェースであって、共有メモリ１０３にアクセスするための信号線１０５および第２ＭＣＵ１０１との間で各種割り込み信号を送受信するための信号線１０６が接続されている。
【００２２】
図２は、上記のように構成される実施の形態１のＦＡコントローラシステム１において専用アクセス処理関数１１５とユーザプログラム１２４との間の専用アクセス処理にかかる各構成要素間の通信を概要的に説明する図である。
【００２３】
図２において、入出力データ記憶部２０２は、Ｍ個の入出力データが格納されている。共有メモリ１０３には、専用アクセス処理関数１１５によって所定のタイミングで入出力データ２０１との間で同期される処理（リフレッシュ処理）が実行されるデータを格納するためのメモリエリア１３１が確保されている。ここでは、共有メモリ１０３にはＮ個のメモリエリアが確保されている。リフレッシュ処理とは、より詳しくは、入出力データ２０１のうちの入力データをメモリエリア１３１に用意された対応する入力データで上書きし、メモリエリア１３１に格納されている出力データを入出力データ２０１のうちの対応する出力データで上書きすることによって、入出力データ記憶部２０２に格納されている入出力データ２０１とメモリエリア１３１に格納されているデータとを同一の状態にする動作をいう。ユーザプログラム１２４は、メモリエリア１３１に格納されているデータを信号線１０５を介してリード／ライトすることによって、間接的に入出力データ２０１にアクセスすることができる。専用アクセス処理関数１１５は、所定の時間間隔で、または信号線１０６を介してユーザプログラム１２４から指示（リフレッシュ実行指示）を受けたタイミングで、データのリフレッシュ処理を実行する。所定の時間間隔で実行されるリフレッシュ処理を自動リフレッシュ処理、リフレッシュ実行指示を受けたタイミングで実行されるリフレッシュ処理を手動リフレッシュ処理ということとする。
【００２４】
リフレッシュ処理の開始／停止などを含む専用アクセス処理関数１１５への詳細な動作設定は、共有メモリ１０３に格納されたリフレッシュ情報１３０を用いて実行される。図３は、リフレッシュ情報１３０のデータ構造の一例を示す図である。
【００２５】
図３に示すように、この例においては、リフレッシュ情報１３０は、上段から順番に、自動リフレッシュ処理を実行するか手動リフレッシュ処理を実行するかリフレッシュ情報１３０を無効とするかを示すリフレッシュ動作設定フィールド、自動リフレッシュ処理を実行する時間間隔（周期）を設定するフィールド、自動リフレッシュ処理の開始／停止を指示するための自動リフレッシュ実行指示フィールド、手動リフレッシュ処理の開始／停止を指示するための手動リフレッシュ実行指示フィールド、入出力データ２０１のうちのリフレッシュ処理対象のデータ名を示すフィールド、同期対象のデータの格納先メモリエリアを示すフィールド、リフレッシュ処理が停止中であるか動作中であるかを示す専用アクセス処理関数１１５によって更新管理されるステータス情報（リフレッシュ状態）が記入されるフィールドを含んでいる。なお、ここでは、入出力データのデータ名は入出力データ記憶部２０２における格納アドレスに対応付けられており、専用アクセス処理関数１１５は入出力データのデータ名に基づいて入出力データ記憶部２０２における対応する位置にアクセスできるものとしている。
【００２６】
ユーザプログラム１２４は、リフレッシュ情報１３０の共有メモリへの書き込み（設定）を完了すると、リフレッシュ情報１３０の設定が完了した旨の通知であるリフレッシュ情報設定完了通知を信号線１０６を介して専用アクセス処理関数１１５へ発行する。専用アクセス処理関数１１５は、該通知を受信すると、共有メモリ１０３に書き込まれたリフレッシュ情報１３０を読み出して、読み出したリフレッシュ情報１３０にしたがったリフレッシュ処理を実行する。
【００２７】
なお、ここでは、ユーザプログラム１２４は信号線１０６を介してリフレッシュ情報設定完了通知を発行することによってリフレッシュ情報１３０の書き込み完了を通知するようにしているが、専用アクセス処理関数１１５にリフレッシュ情報１３０が設定される位置を常時監視させるようにして、信号線１０６を介した通知の手順を省略するようにしてもよい。また、手動リフレッシュ処理におけるリフレッシュ実行指示は信号線１０６を介して通知されることとしているが、ユーザプログラム１２４は共有メモリ１０３の所定の箇所にリフレッシュを実行させる指示内容を書き込み、専用アクセス処理関数１１５は該内容が書き込まれる箇所を常時監視させるように構成することによって、ユーザプログラム１２４から専用アクセス処理関数１１５へ実行指示が伝達されるようにしてもよい。
【００２８】
このように、実施の形態１では、専用アクセス処理関数１１５は、共有メモリ１０３に設定されたリフレッシュ情報１３０に基づいてメモリエリア１３１に格納されたデータを入出力データ２０１に同期するようになっているので、ユーザプログラム１２４は共有メモリ１０３に対する単純なメモリアクセスを実装するだけで入出力データ２０１を操作することができる。また、専用アクセス処理関数１１５とユーザプログラム１２４との間で通信を行うことができるようになっているので、ユーザが選択する第２ＲＴＯＳ１２５の種類や、さらにはＣＰＵ１２０の種類が変更されても、専用アクセス処理関数１１５を再実装することなくＣＰＵ１１０、１２０間の通信を実行することができる。また、ＣＰＵ１１０、１２０間の通信は、共有メモリ１０３に対するメモリアクセスのみユーザプログラム１２４を実装するだけで実現されるので、ユーザにとってのプログラミングの利便性が高いものとなっている。
【００２９】
次に、本発明の実施の形態１の詳細な動作を図４〜図８を参照して説明する。図４は、ユーザプログラム１２４がリフレッシュ情報１３０を設定する動作を説明するフローチャートである。
【００３０】
図４に示すように、ユーザプログラム１２４は、まず、リフレッシュ情報１３０を作成して共有メモリ１０３に書き込む（ステップＳ１）。ユーザプログラム１２４は、リフレッシュ情報１３０の記述内容によって、自動リフレッシュ処理の開始／停止、自動リフレッシュ処理の実行周期の変更、手動リフレッシュ処理の開始／停止を指示することができる。例えば、ユーザプログラム１２４は、自動リフレッシュ処理を開始させる際には、リフレッシュ動作設定フィールドに”自動リフレッシュ処理”を記述し、自動リフレッシュ処理の周期を設定するフィールドに所望の時間間隔（たとえば１０００msec）を記述し、自動リフレッシュ実行指示フィールドに”開始”を記述するとよい。また、自動リフレッシュ処理の実行周期の変更する際には、上述のように記述されているリフレッシュ情報１３０のうちの自動リフレッシュ処理の周期を設定するフィールドに変更後の時間間隔を記述するとよい。また、手動リフレッシュ処理を開始させる際には、ユーザプログラム１２４は、リフレッシュ動作設定フィールドに”手動リフレッシュ処理”を記述し、手動リフレッシュ実行指示フィールドに”開始”を記述するとよい。また、リフレッシュ処理を停止する際、実行中のリフレッシュ処理に対応するリフレッシュ実行指示フィールドに”停止”を記述するとよい。なお、ユーザプログラム１２４は、リフレッシュ動作設定フィールドに”自動リフレッシュ処理、手動リフレッシュ処理”を記述して、自動リフレッシュ処理と手動リフレッシュ処理とを同時に実行させるようにしてもよい。リフレッシュ情報１３０の書き込み完了後、リフレッシュ情報設定完了通知を発行し（ステップＳ２）、ユーザプログラム１２４によるリフレッシュ情報１３０の設定時の動作がリターンされる。
【００３１】
専用アクセス処理関数１１５は、リフレッシュ情報設定完了通知を受信したとき、リフレッシュ情報１３０を読み出す。専用アクセス処理関数１１５は、読み出したリフレッシュ情報１３０が自動リフレッシュ処理を開始する旨の指示が記述されていたとき、自動リフレッシュ処理をスタートする。図５は、専用アクセス処理関数１１５による自動リフレッシュ処理の動作を説明するフローチャートである。
【００３２】
図５に示すように、専用アクセス処理関数１１５は、自動リフレッシュ処理をスタートすると、リフレッシュ情報１３０のリフレッシュ状態を示すフィールドに”動作中”を書き込み（ステップＳ１１）、時間のカウントを開始する（ステップＳ１２）。そして、専用アクセス処理関数１１５は、カウント値がリフレッシュ情報１３０により設定された周期の時間に達したか否かを判定する（ステップＳ１３）。専用アクセス処理関数１１５は、カウント値が設定された周期の時間に達していなかった場合（ステップＳ１３、Ｎｏ）、該時間に達するまでステップＳ１３の判定を繰り返し実行する。専用アクセス処理関数１１５は、カウント値が該時間に達した場合（ステップＳ１３、Ｙｅｓ）、ステップＳ１３の繰り返し処理を抜け、リフレッシュ情報１３０に記述されたデータ名により指定された入出力データとメモリエリア１３１における指定されたエリアのデータとを同期させる（ステップＳ１４）。そして、専用アクセス処理関数１１５は、ステップＳ１２に移行し、カウント値をリセットして再び時間カウントを開始する。
【００３３】
このように、自動リフレッシュ処理では、メモリエリア１３１に格納されているデータが入出力データ２０１に定期的に同期されるので、ユーザプログラム１２４は、いったんリフレッシュ情報１３０を設定して自動リフレッシュ処理を開始すると、メモリエリア１３１にアクセスすることによって入出力データ２０１の内容を略リアルタイムで操作することができるようになる。
【００３４】
専用アクセス処理関数１１５は、読み出したリフレッシュ情報１３０が手動リフレッシュ処理を開始する旨の指示が記述されていたとき、手動リフレッシュ処理をスタートする。図６は、専用アクセス処理関数１１５による手動リフレッシュ処理の動作を説明するフローチャートである。
【００３５】
図６に示すように、専用アクセス処理関数１１５は、手動リフレッシュ処理をスタートすると、リフレッシュ情報１３０のリフレッシュ状態を示すフィールドに”動作中”を書き込み（ステップＳ２１）、リフレッシュ実行指示を受信したか否かを判定する（ステップＳ２２）。専用アクセス処理関数１１５は、リフレッシュ実行指示を受信しなかったと判定した場合（ステップＳ２２、Ｎｏ）、ステップＳ２２の判定処理を繰り返し実行する。専用アクセス処理関数１１５は、リフレッシュ実行指示を受信したとき（ステップＳ２２、Ｙｅｓ）、ステップＳ２２の繰り返し処理を抜け、リフレッシュ情報１３０により指定された入出力データとメモリエリア１３１における指定されたエリアのデータとを同期させる（ステップＳ２３）。そして、専用アクセス処理関数１１５は、再度ステップＳ２２に移行し、リフレッシュ実行指示の受信を待ち受ける。
【００３６】
図７は、ユーザプログラム１２４による手動リフレッシュ処理を実行させる際の動作を説明するフローチャートである。図７に示すように、ユーザプログラム１２４は、手動リフレッシュ処理を開始する旨のリフレッシュ情報１３０を設定後、所望のタイミングでリフレッシュ実行指示を発行する（ステップＳ３１）。リフレッシュ実行指示を発行すると、ステップＳ２３の動作によりメモリエリア１３１内のデータが入出力データ２０１に同期されるので、ユーザプログラム１２４は、該同期されたデータに対してリード／ライトし（ステップＳ３２）、ステップＳ３１へ移行する。
【００３７】
このように、手動リフレッシュ処理によれば、リフレッシュ実行指示が発行されたタイミングでリフレッシュ処理が実行されるので、ユーザプログラム１２４は、所望のタイミングで最新の状態の入出力データ２０１にアクセスできるようになる。
【００３８】
専用アクセス処理関数１１５は、読み出したリフレッシュ情報１３０が自動リフレッシュ処理や手動リフレッシュ処理を停止する旨の指示が記述されていたとき、対応するリフレッシュ処理を停止する処理（リフレッシュ処理終了処理）を開始する。図８は専用アクセス処理関数１１５によるリフレッシュ処理終了処理の動作を説明するフローチャートである。
【００３９】
図８に示すように、専用アクセス処理関数１１５は、対応するリフレッシュ動作を停止する（ステップＳ４１）。例えば、自動リフレッシュ処理を停止する場合、専用アクセス処理関数１１５は、ステップＳ１２〜ステップＳ１４の繰り返し処理を停止する。また、手動リフレッシュ処理を停止する場合、専用アクセス処理関数１１５は、ステップＳ２２〜ステップＳ２３の繰り返し処理を停止する。ステップＳ４１の後、専用アクセス処理関数１１５は、リフレッシュ情報１３０のリフレッシュ状態を示すフィールドに”停止中”を書き込み（ステップＳ４２）、リフレッシュ処理終了処理がリターンされる。
【００４０】
以上説明したように、本発明の実施の形態１によれば、ＦＡコントローラ１００は、共有メモリ１０３と、前記共有メモリ１０３に確保されているメモリエリア１３１に格納されているデータと入出力データ記憶部２０２に格納されている入出力データ２０１との間のリフレッシュ処理を実行する第１ＭＣＵ１０１と、ユーザプログラム１２４に基づいて動作し、前記共有メモリ１０３のメモリエリア１３１に格納されているデータを操作する第２ＭＣＵ１０２と、を備え、第２ＭＣＵ１０２は、前記リフレッシュ処理にかかる設定を記述したリフレッシュ情報１３０を前記共有メモリ１０３のメモリエリア１３１に書き込み、前記第１ＭＣＵ１０１は、前記メモリエリア１３１に書き込まれたリフレッシュ情報１３０に従ってリフレッシュ処理を実行するように構成したので、ユーザが利用するＯＳに依存しない専用アクセス処理をユーザが簡単に実行することができるようになる。
【００４１】
実施の形態２．
本発明の実施の形態２では、ユーザプログラムが専用アクセス処理関数に対するコマンドを発行して入出力データに対して所望の操作を実行できるようにした。実施の形態２のＦＡコントローラシステムのハードウェア構成は、専用アクセス処理関数、ユーザプログラムを除いて実施の形態１と同等であるので、実施の形態２のＦＡコントローラシステムのハードウェア構成に関する説明は省略する。
【００４２】
図９は、実施の形態２のＦＡコントローラシステムにおいて専用アクセス処理関数とユーザプログラムとの間の専用アクセス処理にかかる各構成要素間の通信を概要的に説明する図である。なお、実施の形態１の構成要素と区別するために、実施の形態２のＦＡコントローラシステム、ＦＡコントローラ、専用アクセス処理関数、ユーザプログラムには、符号２、符号４００、符号４０１、符号４０２を夫々付している。図示するように、共有メモリ１０３には、ユーザプログラム４０２によって、専用アクセス処理関数４０１に対するコマンドを記述したコマンド情報４０３が格納される。専用アクセス処理関数４０１は、コマンド情報４０３を読み出して、読み出したコマンド情報４０３に記述されているコマンドに基づいて入出力データ２０１を操作する。
【００４３】
ここで、コマンドとは、専用アクセス処理関数４０１において使用可能に規定されたものであればどのようなものであっても構わない。例えば、コマンドとして、入力データの入出力データ記憶部２０２への書き込みコマンド、出力データの読み出しコマンドを規定することができる。これら以外にも様々なコマンドを規定するようにしてもよい。例えば割り込み信号を発行するタイプの被制御装置が使用される場合がある。このタイプの被制御装置からの割り込み信号としての入出力データを監視し、該割り込み信号がオンになったとき、オンになった旨を実行結果としてユーザプログラム４０２へ通知させるコマンドを規定してもよい。
【００４４】
共有メモリ１０３には、専用アクセス処理関数４０１がコマンドの実行結果を書き込むためのメモリエリア４０４が確保されている。コマンド情報４０３の書き込み（設定）完了、コマンドの実行結果の書き込み完了は、夫々、コマンド情報設定完了通知、コマンド実行完了通知によりＣＰＵ１１０、１２０間で互いに通知される。コマンド情報設定完了通知、コマンド実行完了通知による通知は、夫々信号線１０６を介して送信される。なお、専用アクセス処理関数４０１はコマンド情報４０３が書き込まれる位置、ユーザプログラム４０２は実行結果が書き込まれる位置を夫々監視するように構成することによって、コマンド情報設定完了通知、コマンド実行完了通知が通知される手順を省略することができる。
【００４５】
図１０は、コマンド情報４０３のデータ構造の一例を示す図である。図示するように、コマンド情報４０３は、メッセージヘッダとコマンドデータとを含んでいる。メッセージヘッダには、コマンド情報４０３であることを示すメッセージ種別、コマンド情報４０３のサイズ、コマンド情報４０３毎の識別番号、コマンドデータのサイズなどが記述される。コマンドデータには、コマンドの種類を識別するための識別コードと、該コマンドの引数データ毎のサイズおよび内容と、が記述されている。例えばコマンドが入出力データ記憶部２０２へ入力データを書き込むための書き込みコマンド（ＷＲＩＴＥ関数）であって、ＷＲＩＴＥ関数が引数データとして入力データのデータ名および書き込み内容を含む場合、識別コードが記述されるフィールドにはＷＲＩＴＥ関数の識別コードが記述され、引数データ１のフィールドには入力データのデータ名のサイズとデータ名とが記述され、引数データ２のフィールドには入力データのサイズと入力データ自身とが記述される。
【００４６】
図１１は、ユーザプログラム４０２がコマンド情報４０３を設定する動作を説明するフローチャートである。まず、ユーザプログラム４０２は、コマンド情報４０３を作成して共有メモリ１０３に書き込む（ステップＳ５１）。コマンド情報４０３の書き込み完了後、コマンド情報設定完了通知を発行し（ステップＳ５２）、ユーザプログラム４０２によるコマンド情報４０３の設定時の動作がリターンされる。
【００４７】
専用アクセス処理関数４０１は、コマンド情報設定完了通知を受信したとき、コマンド情報４０３を共有メモリ１０３から読み出す。専用アクセス処理関数４０１は、読み出したコマンド情報４０３を実行する。図１２は、専用アクセス処理関数４０１がコマンドを実行する動作を説明するフローチャートである。
【００４８】
図１２に示すように、専用アクセス処理関数４０１は、読み出したコマンド情報４０３に対応する操作を入出力データ２０１に対して実行する（ステップＳ６１）。コマンド実行後、専用アクセス処理関数４０１は、実行結果をメモリエリア４０４に書き込む（ステップＳ６２）。実行結果の書き込みが完了すると、専用アクセス処理関数４０１は、コマンド実行完了通知を発行し（ステップＳ６３）、コマンドを実行する動作がリターンとなる。
【００４９】
以上述べたように、ＦＡコントローラ４００は、共有メモリ１０３と、入出力モジュール２００が備える入出力データ記憶部２０２に格納されている入出力データ２０１を操作する第１ＭＣＵ１０１と、ユーザプログラム４０２に基づいて動作し、前記入出力データ記憶部２０２に格納されている入出力データ２０１を操作するためのコマンドを算出する第２ＭＣＵ１０２と、を備え、前記第２ＭＣＵ１０２は、前記コマンドを記述したコマンド情報４０３を前記共有メモリ１０３に書き込み、前記第１ＭＣＵ１０１は、前記共有メモリ１０３に書き込まれたコマンド情報４０３に基づいて前記入出力データ２０１の操作を実行するように構成したので、ユーザが利用するＯＳに依存しない専用アクセス処理をユーザが簡単に実行することができる。また、専用アクセス処理関数４０１に様々なコマンドを規定しておくことによって、入出力データ２０１に対し、実施の形態１に比して複雑な操作を実行することができる。
【００５０】
実施の形態３．
実施の形態３では、専用アクセス処理関数を実行するＭＣＵがユーザプログラムを実行するＭＣＵが備えるＲＡＭに直接書き込みすることができるように構成され、専用アクセス処理関数はコマンドの実行結果を該ＲＡＭに直接書き込むようにした。
【００５１】
図１３は、実施の形態３のＦＡコントローラシステムのハードウェア構成を説明する図である。なお、実施の形態１と同等の構成要素に対しては、実施の形態１と同じ符号を付し、詳細な説明を省略する。図示するように、ＦＡコントローラシステム３は、ＦＡコントローラ５００と入出力モジュール２００とが拡張バス３００に接続されて構成されている。入出力モジュール２００は、入出力データ２０１が格納される入出力データ記憶部２０２と、通信コントローラ２０３とを備えている。
【００５２】
ＦＡコントローラ５００は、専用アクセス処理関数５１１を実行するための第１ＭＣＵ５０１と、ユーザプログラム５２１を実行するための第２ＭＣＵ５０２と、共有メモリ１０３とを備えている。ＭＣＵ５０１、５０２は、夫々、信号線１０４、１０５で共有メモリ１０３に接続されている。また、第１ＭＣＵ５０１と第２ＭＣＵ５０２との間は、データ、アドレス、割り込み信号を送受信することが可能な信号線５０３で直接接続されている。
【００５３】
第１ＭＣＵ５０１は、ＣＰＵ１１０、ＥＥＰＲＯＭ１１１、ＲＡＭ１１２、外部インタフェース５１０、通信コントローラ１１４を備えている。ＥＥＰＲＯＭ１１１には、前記した専用アクセス処理関数５１１および第１ＲＴＯＳ１１６が格納されている。専用アクセス処理関数５１１は、ＥＥＰＲＯＭ１１１から読み出されてＲＡＭ１１２のプログラム展開領域に展開される。ＣＰＵ１１０は、ＲＡＭ１１２に展開された専用アクセス処理関数５１１を実行する。外部インタフェース５１０には、信号線１０４および信号線５０３が接続されている。
【００５４】
第２ＭＣＵ５０２は、ＣＰＵ１２０、ＥＥＰＲＯＭ１２１、ＲＡＭ１２２、外部インタフェース５２０を備えている。ＥＥＰＲＯＭ１２１には、ユーザプログラム５２１および第２ＲＴＯＳ１２５が格納されている。ユーザプログラム５２１は、ＥＥＰＲＯＭ１２１から読み出されてＲＡＭ１２２のプログラム展開領域に展開される。ＣＰＵ１２０は、ＲＡＭ１２２に展開されたユーザプログラム５２１を実行する。外部インタフェース５２０には、信号線１０５および信号線５０３が接続されている。
【００５５】
図１４は、実施の形態３のＦＡコントローラシステム３において専用アクセス処理関数５１１とユーザプログラム５２１との間の専用アクセス処理にかかる各構成要素間の通信を概要的に説明する図である。図示するように、共有メモリ１０３には、ユーザプログラム５２１によって、専用アクセス処理関数５１１に対するコマンドおよび該コマンドの実行結果のＲＡＭ１２２における格納先アドレスを記述したコマンド情報５３０が格納される。図１５は、コマンド情報５３０のデータ構造の一例を示す図である。図示するように、コマンド情報５３０は、実施の形態２のコマンド情報４０３に格納先アドレスが追加されたデータ構造を備えている。
【００５６】
専用アクセス処理関数５１１は、コマンド情報５３０を読み出して、読み出したコマンド情報５３０に記述されているコマンドに基づいて入出力データ２０１を操作する。専用アクセス処理関数５１１はコマンドを実行完了後、該コマンドの実行結果を、コマンド情報５３０に記述されていたＲＡＭ１２２の格納先アドレスに書き込む。該実行結果の書き込みは、信号線５０３を介して実行される。ユーザプログラム５２１は、ＲＡＭ１２２に書き込まれた実行結果を読み出す。コマンド情報５３０の書き込み（設定）完了、コマンドの実行結果の書き込み完了は、夫々コマンド実行完了通知、コマンド情報設定完了通知により互いに通知される。コマンド実行完了通知、コマンド情報設定完了通知により通知は、夫々信号線５０３を介して割り込み信号として送信される。なお、実施の形態２と同様、コマンド実行完了通知、コマンド情報設定完了通知の手順を省略した構成とすることも可能である。
【００５７】
実施の形態３のＦＡコントローラシステム３の動作は、専用アクセス処理関数５１１が共有メモリ１０３ではなくＲＡＭ１２２へ書き込むことを除いて実施の形態２と同等であるので、説明を省略する。
【００５８】
以上述べたように、実施の形態３では、第１ＭＣＵ５０１は第２ＭＣＵ５０２が備えるＲＡＭ１２２に実行結果を直接書き込みすることができるように構成したので、ユーザは共有メモリ１０３にアクセスすることなく実行結果を取得することができる。
【産業上の利用可能性】
【００５９】
以上のように、本発明にかかる制御システム、制御装置および制御方法は、Ｃ言語などの汎用プログラミング言語で記述されたユーザプログラムで被制御装置を制御する制御システム、制御装置および制御方法に適用して好適である。
【符号の説明】
【００６０】
１、２、３  ＦＡコントローラシステム
１００、４００、５００  ＦＡコントローラ
１０１、５０１  第１ＭＣＵ
１０２、５０２  第２ＭＣＵ
１０３  共有メモリ
１０４、１０５、１０６、５０３  信号線
１１０、１２０  ＣＰＵ
１１１、１２１  ＥＥＰＲＯＭ
１１２、１２２  ＲＡＭ
１１３、１２３、５１０、５２０  外部インタフェース
１１４、２０３  通信コントローラ
１１５、４０１、５１１  専用アクセス処理関数
１２４、４０２、５２１  ユーザプログラム
１３０  リフレッシュ情報
１３１、４０４  メモリエリア
２００  入出力モジュール
２０１  入出力データ
２０２  入出力データ記憶部
３００  拡張バス
４０３、５３０  コマンド情報
【図１】
2011125178.tif 000003
【図２】
2011125178.tif 000004
【図３】
2011125178.tif 000005
【図４】
2011125178.tif 000006
【図５】
2011125178.tif 000007
【図６】
2011125178.tif 000008
【図７】
2011125178.tif 000009
【図８】
2011125178.tif 000010
【図９】
2011125178.tif 000011
【図１０】
2011125178.tif 000012
【図１１】
2011125178.tif 000013
【図１２】
2011125178.tif 000014
【図１３】
2011125178.tif 000015
【図１４】
2011125178.tif 000016
【図１５】
2011125178.tif 000017
【国際調査報告】
2011125178.tif 000018
2011125178.tif 000019
2011125178.tif 000020
2011125178.tif 000021