(57)【特許請求の範囲】
【請求項１】
第１のメモリを内部に備え、プログラマブルロジックコントローラ全体の動作を制御する制御ユニットと、第２のメモリを内部に備え、前記プログラマブルロジックコントローラの制御対象機器からデータを取得して前記第２のメモリに格納するネットワークユニットとを含み、前記第１のメモリの特定領域の値を前記第２のメモリの特定領域の値と同期させるリフレッシュ機能を有するプログラマブルロジックコントローラが実行するシーケンスプログラムの作成を支援するプログラム作成支援装置であって、
前記プログラマブルロジックコントローラが理解可能な形式に変換される前のシーケンスプログラムである変換前シーケンスプログラムから前記第２のメモリへのアクセスを示す記述を抽出するプログラム抽出部と、
前記第１のメモリの前記特定領域と前記第２のメモリの前記特定領域との対応関係を示すメモリ割り付け設定情報を記憶する記憶部と、
前記記憶部に記憶された前記メモリ割り付け設定情報に基づいて、前記変換前シーケンスプログラムの前記第２のメモリへのアクセスを示す記述を前記第１のメモリへのアクセスを示す記述に置換するプログラム置換部と、
を備えることを特徴とするプログラム作成支援装置。
【請求項２】
前記メモリ割り付け設定情報は、前記第１のメモリの領域のうち、前記リフレッシュ機能で値が更新される各領域が、前記第２のメモリのどの領域に割り付けられているかを示す、
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
前記プログラム抽出部が抽出した各記述が示す前記第２のメモリのそれぞれの領域に対して前記第１のメモリの領域を割り付けて前記メモリ割り付け設定情報を生成するメモリ割り付け部、
を備えることを特徴とする請求項１または２に記載のプログラム作成支援装置。
【請求項４】
前記第２のメモリの領域のうち、前記制御ユニットが参照可能な領域の情報を取得する情報取得部と、
前記情報取得部が取得した情報が示す前記第２のメモリの領域に対して前記第１のメモリの領域を割り付けて前記メモリ割り付け設定情報を生成するメモリ割り付け部と、
を備えることを特徴とする請求項１または２に記載のプログラム作成支援装置。
【請求項５】
前記プログラマブルロジックコントローラは、前記ネットワークユニットを複数備え、
前記メモリ割り付け部は、前記ネットワークユニットごとにメモリ割り付け設定情報を生成する、
ことを特徴とする請求項３または４に記載のプログラム作成支援装置。
【請求項６】
前記第１のメモリの前記特定領域および前記第２のメモリの前記特定領域は複数の領域で構成され、
前記メモリ割り付け部は、前記第１のメモリの前記特定領域を構成する各領域を、前記第２のメモリの前記特定領域を構成する複数の領域に重複して割り当てないよう、前記メモリ割り付け設定情報を生成する、
ことを特徴とする請求項３から５のいずれか一つに記載のプログラム作成支援装置。
【請求項７】
前記メモリ割り付け部は、前記第１のメモリの領域のうち、ユーザに予め指定された範囲から前記第１のメモリの前記特定領域を選択し、前記第２のメモリの前記特定領域と対応付ける、
ことを特徴とする請求項３から６のいずれか一つに記載のプログラム作成支援装置。
【請求項８】
前記メモリ割り付け部は、前記第１のメモリの領域のうち、前記プログラマブルロジックコントローラのメーカに予め指定された範囲から前記第１のメモリの前記特定領域を選択し、前記第２のメモリの前記特定領域と対応付ける、
ことを特徴とする請求項３から６のいずれか一つに記載のプログラム作成支援装置。
【請求項９】
第１のメモリを内部に備え、プログラマブルロジックコントローラ全体の動作を制御する制御ユニットと、第２のメモリを内部に備え、前記プログラマブルロジックコントローラの制御対象機器からデータを取得して前記第２のメモリに格納するネットワークユニットとを含み、前記第１のメモリの特定領域の値を前記第２のメモリの特定領域の値と同期させるリフレッシュ機能を有するプログラマブルロジックコントローラが実行するシーケンスプログラムの作成を支援するプログラム作成支援方法であって、
プログラム抽出部が、前記プログラマブルロジックコントローラが理解可能な形式に変換される前のシーケンスプログラムである変換前シーケンスプログラムから前記第２のメモリへのアクセスを示す記述を抽出するステップと、
記憶部が、前記第１のメモリの前記特定領域と前記第２のメモリの前記特定領域との対応関係を示すメモリ割り付け設定情報を記憶するステップと、
プログラム置換部が、前記記憶部が記憶した前記メモリ割り付け設定情報に基づいて、前記シーケンスプログラムの前記第２のメモリへのアクセスを示す記述を前記第１のメモリへのアクセスを示す記述に置換するステップと、
を含むことを特徴とするプログラム作成支援方法。
【請求項１０】
第１のメモリを内部に備え、プログラマブルロジックコントローラ全体の動作を制御する制御ユニットと、第２のメモリを内部に備え、前記プログラマブルロジックコントローラの制御対象機器からデータを取得して前記第２のメモリに格納するネットワークユニットとを含み、前記第１のメモリの特定領域の値を前記第２のメモリの特定領域の値と同期させるリフレッシュ機能を有するプログラマブルロジックコントローラが実行するシーケンスプログラムの作成を支援するプログラムであって、
プログラム抽出部が、前記プログラマブルロジックコントローラが理解可能な形式に変換される前のシーケンスプログラムである変換前シーケンスプログラムから前記第２のメモリへのアクセスを示す記述を抽出するステップと、
記憶部が、前記第１のメモリの前記特定領域と前記第２のメモリの前記特定領域との対応関係を示すメモリ割り付け設定情報を記憶するステップと、
プログラム置換部が、前記記憶部が記憶した前記メモリ割り付け設定情報に基づいて、前記シーケンスプログラムの前記第２のメモリへのアクセスを示す記述を前記第１のメモリへのアクセスを示す記述に置換するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラ（Programmable  Logic  Controller、以下ＰＬＣと称する）において実行されるプログラムの作成を支援するプログラム作成支援装置、プログラム作成支援方法およびプログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野では、従来からＰＬＣを用いた自動制御機器が利用されている。一般的に、ＰＬＣは、ＣＰＵ（Central  Processing  Unit）ユニットと、ＣＰＵユニットと連携して動作する通信用のネットワークユニットとを含む。ＰＬＣでは、ネットワークユニットを利用して通信ネットワークを構築し、通信ネットワークを利用してＣＰＵユニットと遠隔地のセンサ等との通信が実現される。【０００３】
また、ＣＰＵユニットが装着されるベースユニットに複数のネットワークユニットを装着することで、１台のＣＰＵユニットに対し、複数のネットワークを含むシステムを構築することも可能である。【０００４】
１つのネットワークは、遠隔地のセンサの値を収集するために遠隔地に設置されたネットワークユニット（以下、リモート局と称する）と、ベースユニットに装着されてリモート局と通信を行うネットワークユニット（以下、マスタ局と称する）とで構築される。リモート局およびマスタ局はメモリ（以下、ネットワーク側メモリと称する）を有する。リモート局にはセンサ等の機器が接続可能であり、リモート局は接続された機器からセンサ値等の計測値を収集して自己のネットワーク側メモリで保持する。マスタ局は、各リモート局で収集された計測値を決められたタイミングで受け取り自己のネットワーク側メモリで保持することにより各リモート局で収集された計測値を集約する。ＣＰＵユニットは、マスタ局のネットワーク側メモリに格納されている計測値を取得することで、各リモート局に接続されている機器から出力される計測値を読み取ることができる。【０００５】
ここで、ＣＰＵユニットを構成するＣＰＵがマスタ局のネットワーク側メモリに格納されたデータを取得する場合の所要時間は、ＣＰＵユニットを構成するＣＰＵがＣＰＵユニット内のメモリ（以下、ＣＰＵ側メモリと称する）に格納されたデータを取得する場合の所要時間と比較して、長い。これは、ＣＰＵユニットのＣＰＵがネットワーク側メモリの値を取得する場合には、ベースユニットを介したユニット間の通信が発生するためである。なお、ＣＰＵユニットとネットワークユニット（マスタ局）がベースユニットに装着されてベースユニット経由で通信を行うのではなく、ＣＰＵユニットとマスタ局が直接通信可能な構成であったとしても、ＣＰＵユニットを構成するＣＰＵがマスタ局のネットワーク側メモリに格納されたデータを取得する場合の所要時間の方が長くなる。【０００６】
そのため、一般的に、ＰＬＣは、ＣＰＵ側メモリの指定された領域に格納されるデータとネットワーク側メモリの指定された領域に格納されるデータとを同期させる機能を有する。この機能はリフレッシュ機能とも呼ばれる。リフレッシュ機能では、ＣＰＵ側メモリの指定領域に格納されているデータを複製してネットワーク側メモリの指定領域に転送する処理を、定められた周期で繰り返し実行する。これにより、ネットワーク側メモリの指定領域に格納されるデータは、定められた周期で、ネットワーク側メモリの指定領域に格納されているデータと同じデータに更新される（例えば、特許文献１参照）。【０００７】
特許文献１に記載の発明では、リフレッシュ機能の実行時に発生するデータ転送回数を少なくして処理の高速化を実現している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−２９８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
リフレッシュ機能を使用するには、メモリ割り付け作業、すなわち、ＣＰＵ側メモリのどの領域の値とネットワーク側メモリのどの領域の値とを同期させるかを対応付ける作業を行う必要がある。また、ＰＬＣで実行されるプログラムを作成する作業者は、メモリ割り付けの状態を意識してプログラミングを行う必要がある。すなわち、作業者は、リモート局に接続されたどの機器から出力された値がネットワーク側メモリのどの領域に格納されるか、および、ネットワーク側メモリのどの領域の値とＣＰＵ側メモリのどの領域の値とが同期するのかを意識してプログラミングを行う必要がある。そのため、プログラムの作成者の作業負荷が大きくなるという問題があった。【００１０】
本発明は、上記に鑑みてなされたものであって、ＰＬＣで実行されるプログラムを作成する作業者の作業負荷を軽減することが可能なプログラム作成支援装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、第１のメモリを内部に備え、プログラマブルロジックコントローラ全体の動作を制御する制御ユニットと、第２のメモリを内部に備え、プログラマブルロジックコントローラの制御対象機器からデータを取得して第２のメモリに格納するネットワークユニットとを含み、第１のメモリの特定領域の値を第２のメモリの特定領域の値と同期させるリフレッシュ機能を有するプログラマブルロジックコントローラが実行するシーケンスプログラムの作成を支援するプログラム作成支援装置であって、プログラマブルロジックコントローラが理解可能な形式に変換される前のシーケンスプログラムである変換前シーケンスプログラムから第２のメモリへのアクセスを示す記述を抽出するプログラム抽出部を備える。また、プログラム作成支援装置は、第１のメモリの特定領域と第２のメモリの特定領域との対応関係を示すメモリ割り付け設定情報を記憶する記憶部と、記憶部に記憶されたメモリ割り付け設定情報に基づいて、変換前シーケンスプログラムの第２のメモリへのアクセスを示す記述を第１のメモリへのアクセスを示す記述に置換するプログラム置換部と、を備える。
【発明の効果】
【００１２】
本発明にかかるプログラム作成支援装置は、ＰＬＣで実行されるプログラムを作成する作業者の作業負荷を軽減することができる、という効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明にかかるプログラム作成支援装置で作成されたプログラムを利用するＰＬＣの一例を示す図
【図２】実施の形態１にかかるプログラム作成支援装置の構成例を示す図
【図３】実施の形態１にかかるプログラム作成支援装置を実現可能なハードウェアの構成例を示す図
【図４】実施の形態１にかかるプログラム作成支援装置の動作の一例を示すフローチャート
【図５】実施の形態１にかかるプログラム作成支援装置で作成されるＣＰＵプログラムに含まれるプログラムブロックの一例を示す図
【図６】実施の形態１にかかるプログラム作成支援装置が作成するメモリ割り付け設定情報の一例を示す図
【図７】実施の形態１にかかるプログラム作成支援装置で作成されるＣＰＵプログラムに含まれるプログラムブロックの一例を示す図
【図８】実施の形態２にかかるプログラム作成支援装置の構成例を示す図
【図９】実施の形態２にかかるプログラム作成支援装置の動作の一例を示すフローチャート
【図１０】実施の形態２にかかるプログラム作成支援装置が作成するメモリ割り付け設定情報の一例を示す図
【図１１】実施の形態２にかかるプログラム作成支援装置で作成されるＣＰＵプログラムに含まれるプログラムブロックの一例を示す図
【発明を実施するための形態】
【００１４】
以下に、本発明の実施の形態にかかるプログラム作成支援装置、プログラム作成支援方法およびプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
まず、本発明にかかるプログラム作成支援装置が作成するプログラムを利用するＰＬＣについて、図１を参照しながら説明する。図１は、本発明にかかるプログラム作成支援装置で作成されたプログラムを利用するＰＬＣの一例を示す図である。
【００１６】
図１に示したＰＬＣ１０００は、ＰＬＣ１０００全体の動作を制御する制御ユニットであるＣＰＵユニット１１００と、通信ネットワークを形成するネットワークユニット１２００と、ＣＰＵユニット１１００およびネットワークユニット１２００が接続されるベースユニット１３００とを含む。ＣＰＵユニット１１００およびネットワークユニット１２００は、ベースユニット１３００の所定の装着位置にそれぞれ装着される。ベースユニット１３００には、ＣＰＵユニット１１００およびネットワークユニット１２００の他に、入力ユニット、出力ユニットなどが用途に合わせて装着されるが、ここではＣＰＵユニット１１００およびネットワークユニット１２００以外のユニットについての説明は省略する。また、ネットワークユニット１２００は、図１では記載を省略している他のネットワークユニットと通信回線を介して接続される。他のネットワークユニットにはＰＬＣ１０００の制御対象の機器が接続される。また、ＰＬＣ１０００は、リフレッシュ機能を有し、ＣＰＵ側メモリの指定された領域に格納されるデータとネットワーク側メモリの指定された領域に格納されるデータとを同期させることが可能である。
【００１７】
ＣＰＵユニット１１００は、ラダー言語などで記述されるシーケンスプログラムであるＣＰＵプログラム１１０１を保持し、ＣＰＵプログラム１１０１に記述されたプログラムコードに従って動作することによりＰＬＣ１０００全体の制御動作を実現する。また、ＣＰＵユニット１１００は、図示を省略したＣＰＵの動作を設定するＣＰＵパラメータ１１０２と、ＣＰＵプログラム１１０１に従って行う演算の結果などを格納するＣＰＵ側メモリ１１０３とを有する。ＣＰＵパラメータ１１０２は、リフレッシュ機能で使用する情報であるメモリ割り付け設定情報１１２１と、ベースユニット１３００に装着されたネットワークユニット１２００が管理する通信ネットワーク上の機器およびＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域を示すネットワーク構成設定情報１１２２とを含む。メモリ割り付け設定情報１１２１は、ＣＰＵ側メモリ１１０３の領域のうち、リフレッシュ機能でデータが更新される各領域が、ネットワークユニット１２００内のメモリ（後述するネットワーク側メモリ１２０１）のどの領域に割り付けられているかを示す。ＣＰＵ側メモリ１１０３は、ＰＬＣ１０００の第１のメモリである。
【００１８】
ネットワークユニット１２００は、マスタ局であり、ネットワーク側メモリ１２０１を有する。ネットワーク側メモリ１２０１には、上述した他のネットワークユニットであるリモート局が通信ネットワーク内のセンサ等の機器から取得する情報が集約される。ネットワーク側メモリ１２０１は、ＰＬＣ１０００の第２のメモリである。
【００１９】
以下、図１に示したＰＬＣ１０００のＣＰＵユニット１１００で実行されるＣＰＵプログラム１１０１を作成する場合を前提として、本発明にかかるプログラム作成支援装置の実施の形態を説明する。
【００２０】
実施の形態１．
図２は、実施の形態１にかかるプログラム作成支援装置の構成例を示す図である。実施の形態１にかかるプログラム作成支援装置１は、ＣＰＵパラメータ１１およびＣＰＵプログラム１２を保持する記憶部１０と、ＣＰＵプログラム１２を変更する変更処理部２０とを備える。ＣＰＵプログラム１２は、図１に示すＣＰＵプログラム１１０１と同様にシーケンスプログラムであるが、ＰＬＣ１０００のＣＰＵユニット１１００が理解可能な形式に変換される前のシーケンスプログラムである。
【００２１】
プログラム作成支援装置１は、プログラミングを行う作業者から操作を受け付け、操作内容に従ってＣＰＵパラメータ１１およびＣＰＵプログラム１２を作成する。なお、プログラム作成支援装置１は、ＣＰＵパラメータ１１のメモリ割り付け設定情報１１１については自動作成する。図２に示したＣＰＵプログラム１２は、作業者がラダー言語などを使用して作成したプログラムコードであり、図１に示すＣＰＵプログラム１１０１と同様にシーケンスプログラムである。ただし、ＣＰＵプログラム１２は、コンパイルを実行してＣＰＵユニット１１００のＣＰＵが理解可能な形式に変換される前の状態とする。ＣＰＵプログラム１２は変換前シーケンスプログラムである。ＣＰＵプログラム１２は、コンパイルが行われてＣＰＵユニット１１００のＣＰＵが理解可能な形式に変換された後、通信回線などを介して図１に示すＰＬＣ１０００のＣＰＵユニット１１００に転送される。ＣＰＵユニット１１００は、プログラム作成支援装置１から受け取ったプログラムをＣＰＵプログラム１１０１として保持する。なお、図２では、作業者から操作を受け付けてＣＰＵプログラム１２を作成する処理を実現する手段、ＣＰＵプログラム１２をコンパイルして得られる変換後のプログラムをＣＰＵユニット１１００に転送する手段などの記載を省略している。これらの手段は、ＰＬＣ用のシーケンスプログラムのプログラミング作業に用いられる一般的なプログラム作成装置が備えるプログラム作成手段、コンパイル手段、プログラム転送手段などと同様のものである。ＣＰＵプログラム１２を作成するプログラム作成手段はプログラム作成支援装置１の外部に存在してもよい。すなわち、プログラム作成支援装置１は、他の装置で作成される、コンパイルが実行される前のＣＰＵプログラムを他の装置から受け取る構成であってもよい。
【００２２】
これ以降の説明では、プログラム作成支援装置１が、作成が完了したＣＰＵプログラム１２を保持しているものとする。また、ＣＰＵプログラム１２には、ネットワーク側メモリ１２０１へのアクセスを指令する命令が含まれているものとする。
【００２３】
ＣＰＵパラメータ１１は、図１に示したＰＬＣ１０００のＣＰＵユニット１１００が保持するＣＰＵパラメータ１１０２に対応する。また、メモリ割り付け設定情報１１１はＣＰＵユニット１１００が保持するメモリ割り付け設定情報１１２１に対応し、ネットワーク構成設定情報１１２はＣＰＵユニット１１００が保持するネットワーク構成設定情報１１２２に対応する。メモリ割り付け設定情報１１１およびネットワーク構成設定情報１１２は、通信ネットワークごとに作成される。例えば、ＰＬＣ１０００のネットワークユニット１２００にリモート局が３台接続される場合、３台のリモート局それぞれについて、メモリ割り付け設定情報１１１およびネットワーク構成設定情報１１２が作成される。ＣＰＵパラメータ１１は、ＣＰＵプログラム１２をコンパイルして得られる変換後のプログラムとともに、ＣＰＵユニット１１００に転送される。
【００２４】
変更処理部２０は、プログラム抽出部２１、メモリ割り付け部２２およびプログラム置換部２３を備える。
【００２５】
プログラム抽出部２１は、ＣＰＵプログラム１２を解析し、ＣＰＵプログラム１２の中から、ネットワーク側メモリ１２０１へのアクセスを示す内容が記述された箇所を抽出する。
【００２６】
メモリ割り付け部２２は、プログラム抽出部２１で抽出された箇所の記述内容に基づいて、メモリ割り付け設定情報１１１を更新する。なお、メモリ割り付け設定情報１１１の更新には、更新する対象のメモリ割り付け設定情報１１１が存在しない場合にメモリ割り付け設定情報１１１を新たに作成する処理も含まれる。
【００２７】
プログラム置換部２３は、メモリ割り付け部２２で更新されたメモリ割り付け設定情報１１１に基づいて、ＣＰＵプログラム１２を置換する。具体的には、プログラム置換部２３は、ＣＰＵプログラム１２に含まれる、ネットワーク側メモリ１２０１へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３へのアクセスを示す記述に書き換える。例えば、メモリ割り付け設定情報１１１に、ＣＰＵ側メモリ１１０３のアドレスＡ１の領域にネットワーク側メモリ１２０１のアドレスＢ１の領域が対応づけられていることを示す情報が含まれるとする。この場合、プログラム置換部２３は、ＣＰＵプログラム１２に含まれる、ネットワーク側メモリ１２０１のアドレスＢ１の領域へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３のアドレスＡ１の領域へのアクセスを示す記述に書き換える。
【００２８】
ここで、図２に示した構成のプログラム作成支援装置１を実現するハードウェアについて説明する。図３は、実施の形態１にかかるプログラム作成支援装置１を実現可能なハードウェアの構成例を示す図である。図３に示したハードウェアは例えばパーソナルコンピュータであり、プロセッサ９１、メモリ９２、表示装置９３および入力装置９４を備える。プロセッサ９１は、ＣＰＵであり、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）とも呼ばれる。メモリ９２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）等の、不揮発性または揮発性の半導体メモリ、磁気ディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Digital  Versatile  Disk）などである。表示装置９３は、液晶モニタ、ディスプレイ等である。入力装置９４は、キーボード、マウスなどである。
【００２９】
プログラム作成支援装置１の記憶部１０は、メモリ９２で実現される。プログラム作成支援装置１の変更処理部２０は、プロセッサ９１およびメモリ９２により実現される。すなわち、変更処理部２０のプログラム抽出部２１、メモリ割り付け部２２およびプログラム置換部２３は、これらの各部の機能を実現するためのプログラムをメモリ９２が保持しておき、このプログラムをプロセッサ９１がメモリ９２から読み出して実行することにより、実現される。
【００３０】
変更処理部２０の各部を実現するための上記プログラムは、メモリ９２に予め格納された状態でユーザに提供される形態であってもよいし、ＣＤ（Compact  Disc）−ＲＯＭ、ＤＶＤ（Digital  Versatile  Disc）−ＲＯＭなどの、コンピュータで読み取り可能な記録媒体に書き込まれた状態でユーザに供給され、ユーザがメモリ９２にインストールする形態であってもよい。また、上記プログラムは、インターネットなどの通信回線を介してユーザに提供されてもよい。
【００３１】
図４は、実施の形態１にかかるプログラム作成支援装置１の動作の一例を示すフローチャート、具体的には、変更処理部２０の動作の一例を示すフローチャートである。変更処理部２０は、予め定められた操作をＣＰＵプログラム１２の作成者であるユーザから受け付けると図４に示す動作を開始する。予め定められた操作には、メモリ割り付け設定情報１１１の作成を指示する操作、ＣＰＵプログラム１２のコンパイル実行を指示する操作などが該当する。ＣＰＵプログラム１２のコンパイル実行を指示する操作を受け付けて図４に示す動作を開始する構成とした場合、プログラム作成支援装置１は、図４に示す動作が終了した後にコンパイルを実行する。
【００３２】
変更処理部２０は、動作を開始すると、ＣＰＵプログラム１２から、ネットワーク側メモリ１２０１へのアクセスが記述された箇所を抽出する（ステップＳ１１）。具体的には、プログラム抽出部２１が、記憶部１０からＣＰＵプログラム１２を読み出して解析し、ネットワーク側メモリ１２０１へのアクセスを示す記述を抽出する。例えば、ＣＰＵプログラム１２の中に図５に示すプログラムブロック１２１が含まれるとする。図５は、実施の形態１にかかるプログラム作成支援装置１で作成されるＣＰＵプログラム１２に含まれるプログラムブロックの一例を示す図である。プログラムブロック１２１では、「Ｊ１￥ＳＢ０」および「Ｊ１￥ＲＸ０」という記述が、「Ｊ１」というネットワークの識別子を持つネットワークを管理するネットワークユニットの内部のメモリ（ネットワーク側メモリ１２０１）を示す。そのため、プログラム抽出部２１は、「Ｊ１￥ＳＢ０」および「Ｊ１￥ＲＸ０」という記述を抽出する。「Ｊ１￥」の後の「ＳＢ０」および「ＲＸ０」が、ネットワーク側メモリ１２０１の特定の領域を示す。なお、「ＳＢ」および「ＲＸ」は領域に格納される値の種別を示し、デバイス名とも呼ばれる。また、各デバイス名が割り当てられた領域に格納されるデータのサイズは決まっている。ＣＰＵ側メモリ１１０３も同様に、デバイス名と数値の組み合わせでＣＰＵ側メモリ１１０３の特定領域が示される。プログラム抽出部２１は、同様の方法で、ＣＰＵプログラム１２のプログラムブロック１２１以外の部分から、ネットワーク側メモリ１２０１へのアクセスを示す記述を抽出する。
【００３３】
変更処理部２０は、次に、ステップＳ１１で抽出した箇所に対応するネットワーク側メモリ１２０１にＣＰＵ側メモリ１１０３を割り付ける（ステップＳ１２）。具体的には、メモリ割り付け部２２が、プログラム抽出部２１が抽出した各記述が示すネットワーク側メモリ１２０１のそれぞれの領域に対して、ＣＰＵ側メモリ１１０３の領域を割り付ける。以下、この処理を「メモリ割り付け処理」と呼ぶ。メモリ割り付け部２２は、メモリ割り付け処理において、ＣＰＵ側メモリ１１０３の同じ領域をネットワーク側メモリ１２０１の異なる領域に重複して割り付けることが無いよう、ＣＰＵ側メモリ１１０３のどの領域がネットワーク側メモリ１２０１に割り付け済みであるかを記憶しながら、ＣＰＵ側メモリ１１０３の領域を割り付ける。なお、ネットワーク側メモリ１２０１に割り付けることができるＣＰＵ側メモリ１１０３の領域（範囲）は、ユーザにより予め指定されるか、メーカにて予め指定されているものとする。ステップＳ１２において、メモリ割り付け部２２は、ＣＰＵ側メモリ１１０３の指定されている範囲の中から、割り付け済みではない領域を選択し、割り付けを行う。
【００３４】
変更処理部２０は、次に、メモリ割り付け設定情報１１１を更新する（ステップＳ１３）。具体的には、メモリ割り付け部２２が、ステップＳ１２でのメモリ割り付け処理の結果をメモリ割り付け設定情報１１１に反映させる。ここで、１台のＣＰＵユニット１１００に対し、複数の通信ネットワークが構築される場合、メモリ割り付け設定情報１１１は、構築されるネットワークの数だけ存在する。そのため、メモリ割り付け部２２は、ネットワーク側メモリ１２０１へのアクセスを示す記述に対応する通信ネットワークのメモリ割り付け設定情報１１１を更新する。メモリ割り付け部２２は、ネットワーク側メモリ１２０１へのアクセスを示す記述に対応する通信ネットワークのメモリ割り付け設定情報１１１が記憶部１０に存在しない場合、メモリ割り付け設定情報１１１を新たに作成する。メモリ割り付け設定情報１１１は、例えば、図６に示した構成の情報とすることができる。図６は、実施の形態１にかかるプログラム作成支援装置１が作成するメモリ割り付け設定情報１１１の一例を示す図である。図６において「点数」は領域のサイズを示し、点数「１」の場合は１ビットとなる。「先頭」は領域の先頭アドレス、「最終」は領域の最終アドレスである。図６は、ＣＰＵプログラム１２にネットワーク側メモリ１２０１へのアクセスを示す記述が３か所存在し、そのうちの２か所はデバイス名がＳＢの領域へのアクセスを示す記述、残り１か所はデバイス名がＲＸの領域へのアクセスを示す記述である場合の例を示している。図６に示すメモリ割り付け設定情報１１１−１では、デバイス名「ＳＢ」のアドレス「００００〜００００」のネットワーク側メモリ１２０１の領域に対して、デバイス名「Ｍ」のアドレス「００００〜００００」のＣＰＵ側メモリ１１０３の領域が割り当てられ、デバイス名「ＳＢ」のアドレス「０１００〜０１００」のネットワーク側メモリ１２０１の領域に対して、デバイス名「Ｍ」のアドレス「０００１〜０００１」のＣＰＵ側メモリ１１０３の領域が割り当てられ、デバイス名「ＲＸ」のアドレス「００００〜００００」のネットワーク側メモリ１２０１の領域に対して、デバイス名「Ｍ」のアドレス「０００２〜０００２」の１ビットのＣＰＵ側メモリ１１０３の領域が割り当てられていることを表している。デバイス名「ＳＷ」および「ＲＹ」の「先頭」および「最終」に記載のハイフン（−）は、ＣＰＵプログラム１２にデバイス名が「ＳＷ」および「ＲＹ」の領域へのアクセスを示す記述が含まれておらず、これらの記述が上記のステップＳ１１で抽出されなかったことを表す。
【００３５】
変更処理部２０は、次に、ＣＰＵプログラム１２内のネットワーク側メモリ１２０１へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する（ステップＳ１４）。具体的には、プログラム置換部２３が、メモリ割り付け部２２により更新されたメモリ割り付け設定情報１１１に基づいて、ＣＰＵプログラム１２内のネットワーク側メモリ１２０１へのアクセスを示す記述を、この記述が示す領域と対応付けられているＣＰＵ側メモリ１１０３の領域へのアクセスを示す記述に変更する。図６に示すメモリ割り付け設定情報１１１−１に基づいてプログラム置換部２３が置換処理を行うと、図５に示したプログラムブロック１２１は図７に示したプログラムブロック１２２に変換される。図７は、実施の形態１にかかるプログラム作成支援装置１で作成されるＣＰＵプログラム１２に含まれるプログラムブロックの一例を示す図である。図５〜図７に示すように、プログラム置換部２３が、ステップＳ１４の置換処理を実行すると、プログラムブロック１２１に含まれる、ネットワーク側メモリ１２０１へのアクセスを示す「Ｊ１￥ＳＢ０」および「Ｊ１￥ＲＸ０」という記述が、ＣＰＵ側メモリ１１０３へのアクセスを示す「Ｍ０」および「Ｍ２」という記述に書き換えられ、図７に示すプログラムブロック１２２が得られる。プログラム置換部２３は、ＣＰＵプログラム１２内のプログラムブロック１２１以外の部分についても同様に、ネットワーク側メモリ１２０１へのアクセスを示す記述をＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する。
【００３６】
このように、本実施の形態にかかるプログラム作成支援装置１は、ＣＰＵプログラム１２の中からネットワーク側メモリ１２０１へのアクセスを示す記述を抽出し、抽出した記述が示す領域に、ＣＰＵ側メモリ１１０３の未使用領域を割り付けて、リフレッシュ機能でデータが更新される各領域が、ネットワーク側メモリ１２０１のどの領域に割り付けられているかを示すメモリ割り付け設定情報１１１を生成または更新する。さらに、プログラム作成支援装置１は、メモリ割り付け設定情報１１１に基づいて、ＣＰＵプログラム１２内のネットワーク側メモリ１２０１へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する。これにより、ＣＰＵプログラム１２を作成する作業者であるユーザは、メモリ割り付け設定情報１１１を作成および更新する作業が不要となり、プログラム作成の作業負荷が軽減される。また、ユーザは、メモリ割り付け設定情報１１１の内容を意識してプログラミングを行う必要が無くなる。
【００３７】
実施の形態２．
図８は、実施の形態２にかかるプログラム作成支援装置の構成例を示す図である。実施の形態２にかかるプログラム作成支援装置１ａは、実施の形態１で説明したプログラム作成支援装置１の変更処理部２０を変更処理部３０に置き換えた構成である。本実施の形態では、実施の形態１と異なる部分を説明する。
【００３８】
プログラム作成支援装置１ａの変更処理部３０は、ネットワーク構成抽出部３１、メモリ割り付け部３２、プログラム抽出部３３およびプログラム置換部３４を備える。プログラム抽出部３３、プログラム置換部３４は、それぞれ、実施の形態１にかかるプログラム作成支援装置１のプログラム抽出部２１、プログラム置換部２３と同様の処理を行う。なお、プログラム作成支援装置１ａは、実施の形態１にかかるプログラム作成支援装置１と同様に、図３に示したハードウェアで実現できる。
【００３９】
ネットワーク構成抽出部３１は、情報取得部である。ネットワーク構成抽出部３１は、ネットワーク構成設定情報１１２から、ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の指定領域の情報を抽出する。ここでの指定領域とは、リフレッシュ機能によって、格納されているデータの複製をネットワーク側メモリ１２０１へ転送することが可能な領域である。ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の指定領域の情報は、ネットワーク側メモリ１２０１のどの領域がどのデバイス名の記憶領域として使用可能であるかが分かる構成の情報とする。
【００４０】
メモリ割り付け部３２は、実施の形態１にかかるプログラム作成支援装置１のメモリ割り付け部２２と同様にメモリ割り付け設定情報１１１を更新するが、更新動作で実行する処理の内容が一部異なる。メモリ割り付け部３２は、ネットワーク構成抽出部３１で抽出された上記情報に基づいてメモリ割り付け設定情報１１１を更新する。
【００４１】
図９は、実施の形態２にかかるプログラム作成支援装置１ａの動作の一例を示すフローチャート、具体的には、変更処理部３０の動作の一例を示すフローチャートである。プログラム作成支援装置１の変更処理部２０と同様に、変更処理部３０は、予め定められた操作をＣＰＵプログラム１２の作成者であるユーザから受け付けると図９に示す動作を開始する。
【００４２】
変更処理部３０は、動作を開始すると、ネットワーク構成設定情報１１２から、ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域の情報を抽出する（ステップＳ２１）。このステップＳ２１の処理はネットワーク構成抽出部３１が行う。ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域とは、上述した指定領域である。また、ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域は、ＣＰＵユニット１１００が必要とする計測値などのデータをネットワークユニット１２００が取得した場合に格納する領域として確保されている領域である。ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域の設定は、ＣＰＵプログラム１２のプログラミングを開始する前、または、プログラミング中に、ユーザにより行われる。
【００４３】
変更処理部３０は、次に、ステップＳ２１で抽出した情報に対応するネットワーク側メモリ１２０１にＣＰＵ側メモリ１１０３を割り付ける（ステップＳ２２）。具体的には、メモリ割り付け部３２が、ネットワーク構成抽出部３１が抽出した情報が示すネットワーク側メモリ１２０１の領域に対してＣＰＵ側メモリ１１０３の領域を割り付けるメモリ割り付け処理を行う。なお、ネットワーク側メモリ１２０１に割り付けることができるＣＰＵ側メモリ１１０３の領域は、ユーザにより予め指定されるか、メーカにて予め指定されているものとする。ステップＳ２２において、メモリ割り付け部３２は、ＣＰＵ側メモリ１１０３の指定されている範囲の中から、割り付け済みではない領域を選択し、割り付けを行う。
【００４４】
変更処理部３０は、次に、メモリ割り付け設定情報１１１を更新する（ステップＳ２３）。具体的には、メモリ割り付け部３２が、ステップＳ２２でのメモリ割り付け処理の結果をメモリ割り付け設定情報１１１に反映させる。図１０は、実施の形態２にかかるプログラム作成支援装置１ａが作成するメモリ割り付け設定情報１１１の一例を示す図である。図１０のメモリ割り付け設定情報１１１−２に示すように、メモリ割り付け部３２は、ネットワーク側メモリ１２０１のデバイス名ごとに確保され、ＣＰＵユニット１１００が参照可能な領域（図１０では４つの領域）に対して、ＣＰＵ側メモリ１１０３の領域を割り付ける。メモリ割り付け設定情報１１１−２のうち、左側に記載の「ネットワーク側メモリ」の「デバイス名」、「点数」、「先頭」および「最終」の各欄の情報は、上記のステップＳ２１においてネットワーク構成抽出部３１がネットワーク構成設定情報１１２から抽出する情報である。右側に記載の「ＣＰＵ側メモリ」の「デバイス名」、「点数」、「先頭」および「最終」の各欄の情報は、上記のステップＳ２２においてメモリ割り付け部３２が割り付ける情報である。
【００４５】
変更処理部３０は、次に、ＣＰＵプログラム１２から、ネットワーク側メモリ１２０１へのアクセスが記述された箇所を抽出する（ステップＳ２４）。このステップＳ２４の処理は、実施の形態１で説明したステップＳ１１と同様の処理であり、プログラム抽出部３３により行われる。
【００４６】
変更処理部３０は、次に、ＣＰＵプログラム１２内のネットワーク側メモリ１２０１へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する（ステップＳ２５）。このステップＳ２５の処理は、実施の形態１で説明したステップＳ１４と同様の処理であり、プログラム置換部３４により行われる。図１０に示すメモリ割り付け設定情報１１１−２に基づいてプログラム置換部３４が置換処理を行うと、図５に示したプログラムブロック１２１は図１１に示したプログラムブロック１２３に変換される。図１１は、実施の形態２にかかるプログラム作成支援装置１ａで作成されるＣＰＵプログラム１２に含まれるプログラムブロックの一例を示す図である。図５、図１０および図１１に示すように、プログラム置換部３４が、ステップＳ２５の置換処理を実行すると、プログラムブロック１２１に含まれる、ネットワーク側メモリ１２０１へのアクセスを示す「Ｊ１￥ＳＢ０」および「Ｊ１￥ＲＸ０」という記述が、ＣＰＵ側メモリ１１０３へのアクセスを示す「Ｍ０」および「Ｍ１００」という記述に書き換えられ、図１１に示すプログラムブロック１２３が得られる。プログラム置換部３４は、ＣＰＵプログラム１２内のプログラムブロック１２１以外の部分についても同様に、ネットワーク側メモリ１２０１へのアクセスを示す記述をＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する。例えば、ステップＳ２４においてプログラム抽出部３３が「Ｊ１￥ＳＷ１０」という記述を抽出している場合、プログラム置換部３４は、この記述を「Ｄ１０」に書き換える。
【００４７】
このように、本実施の形態にかかるプログラム作成支援装置１ａは、ＣＰＵパラメータ１１のネットワーク構成設定情報１１２に含まれる、ＣＰＵユニット１１００が参照可能なネットワーク側メモリ１２０１の領域の情報に基づいてメモリ割り付け設定情報１１１を生成または更新する。さらに、プログラム作成支援装置１ａは、メモリ割り付け設定情報１１１に基づいて、ＣＰＵプログラム１２内のネットワーク側メモリ１２０１へのアクセスを示す記述を、ＣＰＵ側メモリ１１０３へのアクセスを示す記述に置換する。本実施の形態にかかるプログラム作成支援装置１ａは、実施の形態１にかかるプログラム作成支援装置１と同様の効果を奏することができる。
【００４８】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【００４９】
各実施の形態では、図１に示した構成のＰＬＣ１０００、すなわち、ＣＰＵユニット１１００およびネットワークユニット１２００を含む各種ユニットがベースユニット１３００に装着されるＰＬＣ１０００を前提として説明を行ったが、ベースユニット１３００は必須ではない。各ユニット同士を直接接続して構成されるＰＬＣであっても各実施の形態で説明した発明を適用可能である。
【符号の説明】
【００５０】
１，１ａ  プログラム作成支援装置、１０  記憶部、１１，１１０２  ＣＰＵパラメータ、１２，１１０１  ＣＰＵプログラム、２０，３０  変更処理部、２１，３３  プログラム抽出部、２２，３２  メモリ割り付け部、２３，３４  プログラム置換部、３１  ネットワーク構成抽出部、１１１，１１１−１，１１１−２，１１２１  メモリ割り付け設定情報、１１２，１１２２  ネットワーク構成設定情報、１２１，１２２，１２３  プログラムブロック、１０００  ＰＬＣ、１１００  ＣＰＵユニット、１１０３  ＣＰＵ側メモリ、１２００  ネットワークユニット、１２０１  ネットワーク側メモリ、１３００  ベースユニット。
【要約】
第１のメモリを備え、プログラマブルロジックコントローラを制御する制御ユニットと、第２のメモリを備え、制御対象機器からデータを取得して第２のメモリに格納するネットワークユニットとを含み、リフレッシュ機能を有するプログラマブルロジックコントローラが実行するシーケンスプログラムの作成を支援するプログラム作成支援装置（１）であって、プログラマブルロジックコントローラが理解可能な形式に変換される前の変換前シーケンスプログラムから第２のメモリへのアクセスを示す記述を抽出するプログラム抽出部（２１）と、第１のメモリの特定領域と第２のメモリの特定領域との対応関係を示すメモリ割り付け設定情報（１１１）を記憶する記憶部（１０）と、メモリ割り付け設定情報に基づいて、変換前シーケンスプログラムの第２のメモリへのアクセスを示す記述を第１のメモリへのアクセスを示す記述に置換するプログラム置換部（２３）と、を備える。【図１】
0006628951.tif 000002
【図２】
0006628951.tif 000003
【図３】
0006628951.tif 000004
【図４】
0006628951.tif 000005
【図５】
0006628951.tif 000006
【図６】
0006628951.tif 000007
【図７】
0006628951.tif 000008
【図８】
0006628951.tif 000009
【図９】
0006628951.tif 000010
【図１０】
0006628951.tif 000011
【図１１】
0006628951.tif 000012