(57)【要約】【課題】ＰＬＣの変数間をリンクさせるリンクプログラムを自動生成することにより、プログラミングの効率化を図ることができるＰＬＣ用のプログラミングツールを提供することを目的とする。【解決手段】シーケンスプログラムにおいて使用される変数のうち、対象とするＰＬＣが相違する他のシーケンスプログラムの変数を参照する変数を参照変数は、その変数名に、参照先のシーケンスプログラムが対象とするＰＬＣを示す識別符号を有する。プログラミングツール２０は、参照変数の変数名に基づいて参照先の変数を特定して、参照変数と参照先の変数とをリンクさせるリンクプログラムを生成するリンクプログラム生成部２２を備える。【選択図】図１
2015053022.tif 000002
【特許請求の範囲】
【請求項１】
互いに連携してシーケンス制御を行う複数のプログラマブルロジックコントローラ（以下、ＰＬＣ）を対象とするシーケンスプログラムを編集するためのプログラミングツールであって、
前記シーケンスプログラムにおいて使用される変数のうち、対象とする前記ＰＬＣが相違する他の前記シーケンスプログラムの変数を参照する前記変数を参照変数とし、
前記参照変数は、その変数名に、参照先の前記シーケンスプログラムが対象とする前記ＰＬＣを示す識別符号を有し、
前記プログラミングツールは、前記参照変数の変数名に基づいて参照先の前記変数を特定して、前記参照変数と参照先の前記変数とをリンクさせるリンクプログラムを生成するリンクプログラム生成部を備えるＰＬＣ用のプログラミングツール。
【請求項２】
前記リンクプログラム生成部は、参照先の前記変数に演算結果が入力された場合に前記参照変数に当該演算結果の入力を行うことによって、前記参照変数と参照先の前記変数とをリンクさせるインターフェース回路を前記リンクプログラムとして生成する、請求項１のＰＬＣ用のプログラミングツール。
【請求項３】
複数の前記ＰＬＣは、当該ＰＬＣにおける固有データを相互に変換する通信用デバイスを介して通信を行い、
前記リンクプログラム生成部は、前記通信用デバイスに書き込まれる変換プログラムであって、参照先の前記変数の入力値を前記参照変数への入力値に変換する前記変換プログラムを前記リンクプログラムとして生成する、請求項１のＰＬＣ用のプログラミングツール。
【請求項４】
前記シーケンスプログラムの少なくとも一部が対象とする前記ＰＬＣを移動された場合に、当該移動に伴って参照先が変更される既存の前記参照変数、または当該移動に伴って新たに前記参照変数となる前記変数について、その変数名に前記移動に整合させた前記識別符号が含まれるように当該変数名を設定する変数名設定部をさらに備え、
前記リンクプログラム生成部は、設定された前記変数の変数名に基づいて参照先の前記変数を特定して、前記リンクプログラムを再度生成する、請求項１〜３の何れか一項のＰＬＣ用のプログラミングツール。
【請求項５】
前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、前記参照変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記シーケンスプログラムが対象とする前記ＰＬＣに対応して設定された表示属性に基づいて表示する、請求項１〜４の何れか一項のＰＬＣ用のプログラミングツール。
【請求項６】
前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、参照先の前記変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記変数にリンクされる前記参照変数を使用する前記シーケンスプログラムが対象とする前記ＰＬＣに対応して設定された表示属性に基づいて表示する、請求項１〜５の何れか一項のＰＬＣ用のプログラミングツール。
【請求項７】
前記表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれる、請求項５または６のＰＬＣ用のプログラミングツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラ（以下、ＰＬＣ）を対象とするシーケンスプログラムを編集するプログラミングツールに関するものである。
【背景技術】
【０００２】
工作機械などの制御装置において、互いに連携してシーケンス制御を行う複数のＰＬＣが用いられることがある。各ＰＬＣには、例えばモジュール単位に生成されたシーケンス回路やＰＬＣの間での通信を行うためのインターフェース回路が書き込まれている。また、上記のような制御装置においては、機能拡張などに伴ってＰＬＣの台数が増減されることがある。そうすると、各ＰＬＣの間でシーケンス回路の移動や、インターフェース回路の修正などが必要となる。
【０００３】
ＰＬＣ用のプログラミングツールは、所定のプログラミング言語により記述されたシーケンスプログラム（ソースプログラム）等をコンパイルして、対象とするＰＬＣに書き込み可能なシーケンス回路やインターフェース回路などの実行プログラムを生成する。例えば特許文献１には、信号出力するデバイスなどを任意に選択した名称により記述可能なプログラミンツールが開示されている。また、特許文献２には、シーケンスプログラムの分割や集約に係る作業の簡易化を目的として、ローカル変数とグローバル変数を変換するプログラミングツールが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−６７０１３号公報
【特許文献２】特開２０１０−４９４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数のＰＬＣが連携してシーケンス制御を行う構成において、対象とするＰＬＣが相違するシーケンスプログラムの間で相手側の変数を条件として使用する場合がある。そうすると、特許文献１のように、変数を任意の名称で記述したとしても、名称の登録情報などに基づいてインターフェース回路を生成するためのプログラミングが必要となる。また、特許文献２にように、シーケンスプログラムが分割された場合に、グローバル変数を使用することでＰＬＣ間の通信を成立させることができる。しかしながら、このような構成では、他のシーケンスプログラムでもグローバル変数によって制約され、またローカル変数との変換において誤りが生じるおそれがあった。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、ＰＬＣの変数間をリンクさせるリンクプログラムを自動生成することにより、プログラミングの効率化を図ることができるＰＬＣ用のプログラミングツールを提供することを目的とする。
【課題を解決するための手段】
【０００７】
（請求項１）本手段に係るＰＬＣ用のプログラミングツールは、互いに連携してシーケンス制御を行う複数のプログラマブルロジックコントローラ（以下、ＰＬＣ）を対象とするシーケンスプログラムを編集するためのプログラミングツールであって、前記シーケンスプログラムにおいて使用される変数のうち、対象とする前記ＰＬＣが相違する他の前記シーケンスプログラムの変数を参照する前記変数を参照変数とし、前記参照変数は、その変数名に、参照先の前記シーケンスプログラムが対象とする前記ＰＬＣを示す識別符号を有し、前記プログラミングツールは、前記参照変数の変数名に基づいて参照先の前記変数を特定して、前記参照変数と参照先の前記変数とをリンクさせるリンクプログラムを生成するリンクプログラム生成部を備える。
【０００８】
このような構成によると、リンクプログラム生成部により参照変数と参照先の変数とをリンクさせるリンクプログラムを自動生成することができる。これにより、シーケンスプログラムに参照変数が含まれている場合に、従来のようにインターフェース回路をプログラミングする必要がないので、プログラミングの効率化を図ることができる。また、リンクプログラムは、グローバル変数を使用することなくＰＬＣ間の通信を成立させることができる。よって、本手段により、グローバル変数の使用に伴う制約を受けることなくシーケンスプログラムのプログラミングが可能となる。また、参照変数の変数名を表示することによって、参照変数がどのＰＬＣを対象としたシーケンスプログラムの変数を参照しているのかを認識することができるので、プログラミングの作業性を向上できる。
【０００９】
以下に、本手段に係るＰＬＣ用のプログラミングツールの好適な態様について説明する。
（請求項２）好ましくは、前記リンクプログラム生成部は、参照先の前記変数に演算結果が入力された場合に前記参照変数に当該演算結果の入力を行うことによって、前記参照変数と参照先の前記変数とをリンクさせるインターフェース回路を前記リンクプログラムとして生成する。
【００１０】
このような構成によると、従来においてはＰＬＣ間での通信を行うためのインターフェース回路のプログラミングを必要とされていたのに対して、このプログラミングの作業を自動化して省略することができる。これにより、既存のシーケンスプログラムを他のＰＬＣへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。また、インターフェース回路は、参照変数の変数名に基づいて自動生成され、プログラミングを行う作業者が確認することができる。よって、上記のような構成により、プログラミングの作業性を向上できる。
【００１１】
（請求項３）好ましくは、複数の前記ＰＬＣは、当該ＰＬＣにおける固有データを相互に変換する通信用デバイスを介して通信を行い、前記リンクプログラム生成部は、前記通信用デバイスに書き込まれる変換プログラムであって、参照先の前記変数の入力値を前記参照変数への入力値に変換する前記変換プログラムを前記リンクプログラムとして生成する。
【００１２】
このような構成によると、従来においては変換プログラムのプログラミングを必要とされていたのに対して、このプログラミングの作業を自動化して省略することができる。これにより、既存のシーケンスプログラムを他のＰＬＣへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。ここで、複数のＰＬＣが連携してシーケンス制御を行う場合には、ＰＬＣ同士が直接通信を行う構成の他に、ＰＬＣの間に通信用デバイスを介在させる構成が考えられる。この構成では、例えば一部のＰＬＣの構成に変更があった場合でも、ＰＬＣにおけるシーケンス回路やインターフェース回路を書き換えることなく、通信用デバイスにおける変換プログラムを書き換えることで通信を成立させることができる。
【００１３】
（請求項４）好ましくは、前記シーケンスプログラムの少なくとも一部が対象とする前記ＰＬＣを移動された場合に、当該移動に伴って参照先が変更される既存の前記参照変数、または当該移動に伴って新たに前記参照変数となる前記変数について、その変数名に前記移動に整合させた前記識別符号が含まれるように当該変数名を設定する変数名設定部をさらに備え、前記リンクプログラム生成部は、設定された前記変数の変数名に基づいて参照先の前記変数を特定して、前記リンクプログラムを再度生成する。
【００１４】
このような構成によると、リンクプログラム生成部が変更された変数名に基づいてリンクプログラムを生成するので、シーケンスプログラムの移動に対応したリンクプログラムが生成される。よってプログラミングの作業者は、従来においては移動されるシーケンスプログラムなどで整合が取れているかの確認作業を必要とされていたのに対して、上記のような構成により簡易にシーケンスプログラムの移動を行うことができる。よって、連携する複数のＰＬＣの構成に対応して、シーケンスプログラムの分割や集約のプログラミングをより簡易に行うことができる。
【００１５】
（請求項５）好ましくは、前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、前記参照変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記シーケンスプログラムが対象とする前記ＰＬＣに対応して設定された表示属性に基づいて表示する。
【００１６】
プログラミングツールは、シーケンスプログラムを編集可能に表示する場合に、使用するプログラミング言語によっては、各変数について、その変数名をテキスト表示し、または変数に対応した表示記号を表示する。そのため、上記のような構成によると、表示されたシーケンスプログラムにおいて、各変数が参照変数であるか否かを視認できる。さらに、表示属性によって、参照変数のリンク先を認識できるので、プログラミングの効率化を図ることができる。
【００１７】
（請求項６）好ましくは、前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、参照先の前記変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記変数にリンクされる前記参照変数を使用する前記シーケンスプログラムが対象とする前記ＰＬＣに対応して設定された表示属性に基づいて表示する。
【００１８】
このような構成によると、表示されたシーケンスプログラムにおいて、各変数が参照先の変数であるか否かを視認できる。さらに、表示属性によって、参照変数が使用されるシーケンスプログラムを認識できるので、プログラミングの効率化を図ることができる。
【００１９】
（請求項７）好ましくは、前記表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれる。
【００２０】
このような構成によると、プログラミングツールは、適宜設定された表示属性に基づいて変数名や表示記号を表示することができる。これにより、シーケンスプログラムが対象とするＰＬＣごとに色彩等を割り付けられ、作業者は、変数名を解読しなくても、そのシーケンスプログラムに参照変数または参照先の変数が含まれるか否かを容易に認識できる。
【図面の簡単な説明】
【００２１】
【図１】実施形態におけるシーケンスプログラムの編集装置を示すブロック図である。
【図２】シーケンスプログラムの表示状態を示す図である。
【図３】リンクプログラムの生成処理を示すフロー図である。
【図４】分割前のシーケンスプログラムの表示状態を示す図である。
【図５】変数名の設定処理を示すフロー図である。
【図６】変形態様におけるシーケンスプログラムの表示状態を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明のＰＬＣ用のプログラミングツールを具体化した実施形態について図面を参照して説明する。実施形態においては、プログラミングツールは、互いに連携してシーケンス制御を行う複数のＰＬＣを対象とするシーケンスプログラムを編集するソフトウェアである。本実施形態では、このプログラミングツールがパーソナルコンピュータなどにより構成されるシーケンスプログラムの編集装置にインストールされ、プログラミング環境を構成する形態を例示する。
【００２３】
＜実施形態＞
（シーケンスプログラムの編集装置の構成）
実施形態のシーケンスプログラムの編集装置１の全体構成について、図１および図２を参照して説明する。編集装置１は、汎用のパーソナルコンピュータであって、図１に示すように、種々の演算処理を実行するＣＰＵ（central processing unit）１１と、記憶装置１２と、ディスプレイ１３と、入力デバイス１４と、通信インターフェース１５とを備えて構成される。編集装置１は、ＰＬＣ用のプログラミングツール２０を含む種々のソフトウェアをインストールされて、シーケンスプログラムの編集機能を有する構成となっている。
【００２４】
記憶装置１２は、図示しないＲＡＭやＲＯＭ、ハードディスクドライブなどにより構成され、各プログラムの読み出しや書き込みを行う。ディスプレイ１３は、表示装置であって、シーケンスプログラムのラダー図の画面出力等に使用される出力デバイスである。入力デバイス１４は、例えばキーボードやマウスなどであって、シーケンスプログラムのラダー図などの編集作業において情報の入力等に使用される。通信インターフェース１５は、図示しない通信ケーブルを介してＰＬＣとの通信を行う際に、各種のデータを入出力する装置である。
【００２５】
プログラミングツール２０は、複数のＰＬＣに書き込まれる実行プログラムに対応するシーケンスプログラムの編集を行う。このプログラミングツール２０は、プログラム編集部２１と、リンクプログラム生成部２２と、変数名設定部２３とを備える。プログラム編集部２１は、本実施形態において、シーケンスプログラムのプログラム言語であるラダー図を編集する機能を有する。プログラム編集部２１は、ディスプレイ１３にラダー図を編集可能に表示させるとともに、入力デバイス１４による編集を受け付ける。既存のシーケンスプログラムは記憶装置１２から読み出され、また編集されたシーケンスプログラムは記憶装置１２に書き込まれて記憶される。
【００２６】
リンクプログラム生成部２２は、参照変数と参照先の変数とをリンクさせるリンクプログラムを生成する。ここで、上記の「参照変数」とは、シーケンスプログラムにおいて使用される変数のうち、対象とするＰＬＣが相違する他のシーケンスプログラムの変数を参照する変数をいう。シーケンスプログラムは、ＰＬＣに書き込まれる実行プログラムのソースプログラムであって、当該実行プログラムが書き込まれるＰＬＣを対象とする。また、シーケンスプログラムは、ＰＬＣにおける複数の入出力デバイスにそれぞれ割り付けられる変数を使用する。
【００２７】
ここで、各ＰＬＣの実行プログラムに対応するシーケンスプログラムは、複数のＰＬＣがシーケンス制御を互いに連携して行うことから、対象とするＰＬＣが相違する他のシーケンスプログラムの変数を参照することがある。本実施形態において、複数のＰＬＣは、ネットワークを介して通信可能に接続され、当該ＰＬＣの固有データを通信により入出力可能に構成されている。つまり、シーケンスプログラムの変数のうち、当該シーケンスプログラムに対応する実行プログラムが書き込まれたＰＬＣがネットワークを介した通信により固有データの取得を要する変数を「参照変数」としている。また、ＰＬＣの「固有データ」とは、シーケンス制御における演算結果に対応し、例えば当該ＰＣＬのローカル変数に入力されるデータである。
【００２８】
また、各ＰＬＣの間でデータのやり取りを行う場合には、各ＰＬＣのローカル変数をリンクするリンクプログラムを要する。このリンクプログラムは、ＰＬＣに書き込まれる実行プログラムに含まれ、例えばラダー図により表記してプログラミングされるインターフェース回路とすることが可能である。このインターフェース回路では、ＰＬＣ間の通信でローカル変数そのものをやり取りすることができないので、信号名変換を行って、通信の対象とする変数を割り当てている。そして、インターフェース回路は、参照先のローカル変数に演算結果（入出力デバイスの信号）が入力された場合に参照変数に当該演算結果の入力を行うように動作（通信）を行うことによって、参照変数と参照先の変数とをリンクさせる。
【００２９】
本実施形態において、リンクプログラム生成部２２は、上記のインターフェース回路をリンクプログラムとして生成する構成としている。また、参照変数の変数名は予め定められた規則に従って変数名を設定されており、リンクプログラム生成部２２は、参照変数の変数名に基づいて、リンクプログラムを自動的に生成する構成としている。リンクプログラム生成部２２によるリンクプログラムの生成処理の詳細については後述する。また、参照変数は、その変数名に、参照先のシーケンスプログラムが対象とするＰＬＣを示す識別符号を有する。参照変数の変数名の設定については、プログラミングを行う作業者が直接入力してもよいし、後述する変数名設定部２３による自動入力であってもよい。
【００３０】
ここで、第一のＰＬＣ（ＰＬＣ１）を対象とするシーケンスプログラムＰｓ１の参照変数Ｖｒ１が、第二のＰＬＣ（ＰＬＣ２）を対象とするシーケンスプログラムＰｓ２における第四ステップ（Ｍ４）での演算結果を入力される変数（Ｄ１０Ｘ）を参照するものとする。この場合には、参照変数Ｖｒ１の変数名は、第二のＰＬＣを示す識別符号として文字列”ＰＬＣ２”を有する。具体的には、参照変数Ｖｒ１の変数名は、図２に示すように、”ＰＬＣ２＿Ｄ１０Ｘ”のように表記される。このように、参照変数は、識別符号”ＰＬＣ２”を含むように予め定められた規則に従って変数名を設定されている。
【００３１】
変数名設定部２３は、シーケンスプログラムにおける参照変数について、その変数名の設定を自動で行う。例えば、変数名設定部２３は、入力デバイス１４により指定された変数が、他のシーケンスプログラムの変数を参照する場合に、対象のＰＬＣを示す識別符号を生成し、当該変数の変数名に付加する。また、変数名設定部２３は、シーケンスプログラムの少なくとも一部が、対象とするＰＬＣを移動された場合に、当該移動に伴って参照先が変更される既存の参照変数、またはこの移動に伴って新たに参照変数となる変数について、その変数名に移動に整合させた識別符号が含まれるように変数名を設定する。シーケンスプログラムの移動に伴う変数名設定部２３による変数名の設定処理の詳細については後述する。
【００３２】
（リンクプログラムの生成処理）
上記のシーケンスプログラムの編集装置１によるリンクプログラムの生成処理について、図２および図３を参照して説明する。編集装置１は、例えば入力デバイス１４からリンクプログラムの生成の要求を受け付けると、図３に示すようなプログラムを実行する。
【００３３】
プログラミングツール２０のリンクプログラム生成部２２は、先ず、全てのシーケンスプログラムを対象として、各シーケンスプログラムから参照変数を抽出する（Ｓ１１）。例えば、第一のＰＬＣを対象とするシーケンスプログラムＰｓ１において、第一のＰＬＣ以外の識別符号を有する変数を参照変数として抽出する。図２に示すシーケンスプログラムにおいては、ＰＬＣ１を対象とするシーケンスプログラムＰｓ１から参照変数Ｖｒ１，Ｖｒ２が抽出され、ＰＬＣ２を対象とするシーケンスプログラムから参照変数Ｖｒ３，Ｖｒ４，Ｖｒ５が抽出される。
【００３４】
次に、リンクプログラム生成部２２は、抽出した参照変数の変数名を順に解析して、参照先の変数を特定する（Ｓ１２）。例えば、参照変数Ｖｒ１は、その変数名が”ＰＬＣ２＿Ｄ１０Ｘ”であることから、第二のＰＬＣ（ＰＬＣ２）を対象とするシーケンスプログラムＰｓ２の第四ステップ（Ｍ４）において演算結果を入力されるローカル変数Ｄ１０Ｘを、参照先の変数として特定する。
【００３５】
続いて、リンクプログラム生成部２２は、参照変数と参照先の変数とをリンクするステップを生成する（Ｓ１３）。このリンクは、通信の対象とする変数を割り当てる信号名変換に相当する。具体的には、上記の例であれば、図２に示すように、ローカル変数Ｄ１０Ｘに演算結果が入力された場合に参照変数Ｖｒ１に当該演算結果の入力を行うために、ローカル変数Ｄ１０Ｘを通信用変数Ｂ２［１］に変換するリンクＬ２が生成される。リンクプログラム生成部２２は、Ｓ１１にて抽出した全ての参照変数について対応するインターフェース回路のステップが生成されたか否かを判定し（Ｓ１４）、終わっていない場合には（Ｓ１４：Ｎｏ）、Ｓ１２，Ｓ１３の処理を繰り返す。
【００３６】
全てのシーケンスプログラムの参照変数について対応するインターフェース回路のステップが生成されると（Ｓ１４：Ｙｅｓ）、図２の破線で囲んだ範囲に示すように、シーケンスプログラムＰｓ１の参照変数Ｖｒ１，Ｖｒ２に対応するリンクＬ１，Ｌ２がＰＬＣ２側に生成され、シーケンスプログラムＰｓ２の参照変数Ｖｒ３，Ｖｒ４，Ｖｒ５に対応するリンクＬ１，Ｌ２，Ｌ３がＰＬＣ１側に生成される。各リンクでは、それぞれのローカル変数がＰＬＣ１で用いられる通信用変数Ｂ１[＊]と、ＰＬＣ２で用いられる通信用変数Ｂ２[＊]とに変換されている（[＊]は、０〜２の対応する値。以下同じ）。
【００３７】
このように、リンクプログラム生成部２２は、各ＰＬＣ１，２を対象としたシーケンスプログラムＰｓ１，Ｐｓ２に対応したリンクプログラムＰｎ１，Ｐｎ２をそれぞれ生成する。このリンクプログラムＰｎ１，Ｐｎ２は、図２に示すように、シーケンスプログラムＰｓ１，Ｐｓ２と同様にラダー図にて表記されており、プログラミングを行う作業者によって視認、および必要に応じた編集が可能となっている。
【００３８】
また、シーケンスプログラムＰｓ１，Ｐｓ２およびリンクプログラムＰｎ１，Ｐｎ２は、プログラミングツール２０によるコンパイルによって、各ＰＬＣに書き込まれる実行プログラム（シーケンス回路、インターフェース回路）に変換される（Ｓ１５）。このとき、各シーケンスプログラムＰｓ１，Ｐｓ２の参照変数Ｖｒ１〜Ｖｒ５は、図２の括弧内に示すように、対応する通信用変数Ｂ１[＊]，Ｂ２[＊]に置換される。
【００３９】
なお、プログラミングツール２０により各プログラムがコンパイルされる際には、シーケンスプログラムに含まれる各変数に対して自動でメモリのアドレスが割り付けられる。このとき、プログラミングツール２０は、本実施形態においては、複数の参照変数に対応した通信用変数が連続したアドレスとなるように割り付けを行う。具体的には、プログラミングツール２０は、ＰＬＣ１で用いられる通信用変数Ｂ１［０］〜Ｂ１［２］、ＰＬＣ２で用いられる通信用変数Ｂ２［０］〜Ｂ２［１］をそれぞれ連続するアドレスに割り付ける。
【００４０】
上記のように、プログラミングツール２０が同一のシーケンスプログラムに含まれる参照変数に対応した通信用変数に連続したアドレスを割り付けるのは、複数のＰＬＣが互いに連携してシーケンス制御を行う際の通信量の低減を図るためである。ＰＬＣ間の通信は、プログラミングツール２０が各プログラムをコンパイルする際に生成されるリンクパラメータに基づいて行われる。このリンクパラメータには、ＰＬＣ間の通信要求に対して、通信要求されたＰＬＣがデータとして出力するメモリのアドレス範囲が記述されている。このとき、参照されるアドレスが不連続であると、個別に通信要求を行う必要があるため、通信回数が増加してしまうことになる。
【００４１】
そこで、本実施形態では、リンクプログラムＰｎ１，Ｐｎ２の生成処理において、参照変数の抽出（Ｓ１１）およびリンクの生成処理（Ｓ１３）を行うことから、これにより取得された情報を利用したアドレスの割り付け、およびリンクパラメータの生成を行う構成としている。これにより、従来と比較して、効率的なアドレスの割り付けが可能となり、シーケンス制御におけるＰＬＣ間の通信回数の増加を抑制できるリンクパラメータの生成を可能としている。
【００４２】
（変数名の設定処理）
上記のシーケンスプログラムの編集装置１による参照変数の変数名の設定処理について、図２、図４および図５を参照して説明する。ここでは、一台のＰＬＣを対象としてプログラミングされた既存のシーケンスプログラムＰｓ０（図４を参照）を、二台のＰＬＣを対象とするシーケンスプログラムＰｓ１，Ｐｓ２に分割する場合を例示する。具体的には、既存のシーケンスプログラムＰｓ０の一部（ステップＭ４，Ｍ６〜Ｍ８）を、ＰＬＣ２を対象とするシーケンスプログラムＰｓ２となるように移動させ、シーケンスプログラムＰｓ０の残りを、ＰＬＣ１を対象とするシーケンスプログラムＰｓ１とするように編集を行う。
【００４３】
編集装置１は、例えば入力デバイス１４からシーケンスプログラムを分割して、一部を他のＰＬＣを対象とするように編集の要求を受け付けると、図５に示すようなプログラムを実行する。プログラム編集部２１は、先ず、部分的なシーケンスプログラムの移動情報を取得する（Ｓ２１）。移動情報としては、例えば移動対象として指定されたシーケンスプログラムの範囲（ここでは、ステップＭ４，Ｍ６〜Ｍ８）、移動後のシーケンスプログラムが対象とするＰＬＣ（ここでは、ＰＬＣ２）などの情報が含まれる。
【００４４】
次に、変数名設定部２３は、シーケンスプログラムＰｓ１および移動されるシーケンスプログラムＰｓ２の各変数において、この移動に伴って参照先が変更される既存の参照変数、または当該移動に伴って新たに参照変数となる変数を抽出する（Ｓ２２）。既存のシーケンスプログラムＰｓ０では、シーケンスプログラムの移動前には一台のＰＬＣを対象としていたので、既存の参照変数は抽出されない。一方で、分割後の各シーケンスプログラムＰｓ１，Ｐｓ２に含まれる複数のステップにおいては、移動元の変数を参照する変数が抽出される。具体的には、図４に示すように、分割前のシーケンスプログラムＰｓ０におけるステップＭ１の変数Ｄ１Ｘ、ステップＭ４の変数Ｄ２Ｘ、ステップＭ５の変数Ｄ４Ｘ、ステップＭ６の変数Ｄ３Ｘ、ステップＭ７の変数Ｄ１Ｘが抽出される。
【００４５】
続いて、変数名設定部２３は、抽出された変数について、Ｓ２１で取得した移動情報に基づいて、移動に整合させた識別符号を生成する。具体的には、例えばステップＭ１の変数Ｄ１０Ｘについては、部分的なシーケンスプログラムＰｓ２が移動されることにより、当該シーケンスプログラムＰｓ２が対象とするＰＬＣが第二のＰＬＣ（ＰＬＣ２）となることから、識別符号として文字列”ＰＬＣ２”を生成する（Ｓ２３）。
【００４６】
そして、変数名設定部２３は、抽出された各変数について、その変数名に移動に整合させた識別符号が含まれるように変数名を設定する（Ｓ２４）。具体的には、シーケンスプログラムＰｓ１のステップＭ１の変数Ｄ１０Ｘについては、識別符号を先頭部分に付加され、”ＰＬＣ２＿Ｄ１０Ｘ”に変数名が変更される。変数名設定部２３は、Ｓ２２にて抽出した全ての参照変数について、整合させた変数名に設定されたか否かを判定し（Ｓ２５）、終わっていない場合には（Ｓ２５：Ｎｏ）、Ｓ２３，Ｓ２４の処理を繰り返す。
【００４７】
全ての抽出された参照変数について、整合させた変数名に設定されると（Ｓ２５：Ｙｅｓ）、図４の右欄に示すように、各ＰＬＣ１，２を対象としたシーケンスプログラムＰｓ１，Ｐｓ２における参照変数が移動に整合された変数名となる。これにより、プログラミングツール２０は、変数名の設定処理を終了する。なお、上記のような処理によって参照変数の変数名が自動的にシーケンスプログラムの移動に整合された後に、リンクプログラム生成部２２によるリンクプログラムの生成処理を実行することによって、移動後の各シーケンスプログラムＰｓ１，Ｐｓ２に対応したリンクプログラムを生成することが可能となる。
【００４８】
また、本実施形態では、シーケンスプログラムを二台のＰＬＣを対象としたシーケンスプログラムに分割する態様を例示したが、シーケンスプログラムを１本化するなどの集約においても同様の処理により対応することが可能である。具体的には、図２に示すような複数のシーケンスプログラムを、図４の左欄に示すようなシーケンスプログラムＰｓ０に集約する場合には、分割と同様に移動情報の取得（Ｓ２１）を行うことにより、どのステップがどこに移動したかを認識することが可能である。そして、変数名設定部２３は、この移動情報に基づいて、既存の参照変数を抽出し（Ｓ２２）、移動に整合させた識別符号を生成する（Ｓ２３）とともに、変数名の設定を行う（Ｓ２４）。
【００４９】
なお、このようにシーケンスプログラムの集約を行った結果、参照変数が自己のシーケンスプログラムの変数を参照先とすることがある。このような場合には、識別符号を削除するように変数名の設定を行うようにしてもよい。また、シーケンスプログラムの流用性を向上させるために、分割や集約を想定して、全ての変数について、参照変数と同様に識別符号を有する変数名に設定してもよい。このような構成では、プログラミングの際に、作業者が変数名を視認することができるので、参照先を容易に認識できるという利点がある。
【００５０】
（実施形態の構成による効果）
上述したＰＬＣ用のプログラミングツール２０によると、リンクプログラム生成部２２により参照変数と参照先の変数とをリンクさせるリンクプログラムＰｎ１，Ｐｎ２を自動生成することができる。これにより、シーケンスプログラムに参照変数が含まれている場合に、従来のようにインターフェース回路をプログラミングする必要がないので、プログラミングの効率化を図ることができる。また、リンクプログラムＰｎ１，Ｐｎ２は、グローバル変数を使用することなくＰＬＣ間の通信を成立させることができる。よって、本実施形態の構成により、グローバル変数の使用に伴う制約を受けることなくシーケンスプログラムのプログラミングが可能となる。
【００５１】
また、リンクプログラム生成部２２は、リンクプログラムＰｎ１，Ｐｎ２としてインターフェース回路を自動で生成する構成とした。これにより、従来においてはＰＬＣ間での通信を行うためのインターフェース回路のプログラミングを必要とされていたのに対して、このプログラミングの作業を自動化して省略することができる。これにより、既存のシーケンスプログラムを他のＰＬＣへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。また、インターフェース回路は、ラダー図などにより表記可能であり、プログラミングを行う作業者が確認することができるので、プログラミングの作業性を向上できる。
【００５２】
また、変数名設定部２３は、シーケンスプログラムの分割や集約によって、シーケンスプログラムの少なくとも一部が対象とするＰＬＣを移動された場合に、シーケンスプログラムの変数について、その変数名に当該移動に整合させた識別符号が含まれるように変数名を設定する構成とした。これにより、プログラミングを行う作業者は、従来においては移動されるシーケンスプログラムなどで整合が取れているかの確認作業を必要とされていたのに対して、変数名の設定の作業を自動化して省略することができる。よって、連携する複数のＰＬＣの構成に対応して、シーケンスプログラムの分割や集約のプログラミングをより簡易に行うことができる。
【００５３】
＜実施形態の変形態様＞
（シーケンスプログラムの表示）
実施形態おいて、プログラミングツール２０は、図２に示すように、シーケンスプログラムＰｓ１，Ｐｓ２をラダー図により表示するものとした。このラダー図は、各変数に対応した表示記号を用いて論理回路を記述するものであり、実施形態のように変数名が表示記号に併記される。
【００５４】
ここで、プログラミングツール２０は、シーケンスプログラムを編集可能に表示する場合に、参照変数の変数名および対応する表示記号の少なくとも一方を、参照先のシーケンスプログラムが対象とするＰＬＣに対応して設定された表示属性に基づいて表示する構成としてもよい。参照先のシーケンスプログラムが対象とするＰＬＣは、当該参照変数の変数名に含まれる参照符号が示すＰＬＣに等しい。
【００５５】
また、本実施形態において、表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれる。よって、表示対象が参照変数の変数名の場合には、図６に示すように、ＰＬＣ１で使用される参照変数Ｖｒ１，Ｖｒ２の変数名は、参照符号が示すＰＬＣ２に対応して設定された表示属性である「太字」且つ「斜体」により表示される。また、参照変数Ｖｒ１，Ｖｒ２に対応する表示記号は、ＰＬＣ２に対応して設定された表示属性である「太線」且つ「矩形形状」により表示される。
【００５６】
一方で、ＰＬＣ２で使用される参照変数Ｖｒ３〜Ｖｒ５の変数名は、参照符号が示すＰＬＣ１に対応して設定された表示属性である「白抜き文字」により表示される。また、参照変数Ｖｒ３〜Ｖｒ５の表示記号は、ＰＬＣ１に対応して設定された表示属性である「矩形形状」且つ「ハッチング」により表示される。
【００５７】
さらに、プログラミングツール２０は、シーケンスプログラムを編集可能に表示する場合に、参照先の変数の変数名および対応する表示記号の少なくとも一方を、当該参照先の変数にリンクされる参照変数を使用するシーケンスプログラムが対象とするＰＬＣに対応して設定された表示属性に基づいて表示する構成としてもよい。表示属性については、参照変数の変数名および表示記号に使用されたものと同様である。
【００５８】
具体的には、表示対象が参照先の変数の変数名の場合には、図６に示すように、ＰＬＣ１で使用される参照変数Ｖｒ１，Ｖｒ２の参照先の変数（Ｄ４Ｘ，Ｄ１０Ｘ）の表示記号は、ＰＬＣ１に対応して設定された表示属性である「二重線」により表示される。一方で、ＰＬＣ２で使用される参照変数Ｖｒ３〜Ｖｒ５の参照先の変数（Ｄ１Ｘ，Ｄ２Ｘ，Ｄ３Ｘ）の表示記号は、ＰＬＣ２に対応して設定された表示属性である「太線」且つ「ハッチング」により表示される。
【００５９】
ここでは、参照先の変数の変数名については、通常の表示属性に基づいて表示するものとしたが、参照符号Ｖｒ１〜Ｖｒ５と同様に、所定の書体などを用いて表示される構成としてもよい。また、表示属性は、上記の他に、色彩や枠線、下線などを含むものとし、また、これらの結合により適宜設定される。複数のＰＬＣに対して、互いに異なる固有の表示属性を設定してもよいし、機能や制御内容によっては一部を共通または類似の表示属性を設定してもよい。
【００６０】
上記のように、参照変数および参照先の変数について、その変数名と表示記号を所定の表示属性により表示する構成とすることにより、表示されたシーケンスプログラムＰｓ１，Ｐｓ２において、各変数が参照変数であるか否かが視認可能となる。また、視認した変数が参照変数であった場合には、参照変数のリンク先を表示属性により認識できる。さらに、表示されたシーケンスプログラムＰｓ１，Ｐｓ２において、各変数が参照先の変数であるか否かが視認可能となる。また、視認した変数が参照先の変数であった場合には、参照先の変数にリンクされた参照変数が使用されるシーケンスプログラムを表示属性により認識できる。このように、シーケンスプログラムＰｓ１，Ｐｓ２に、参照変数または参照先の変数の有無を認識しながらプログラミングが可能となるのとで、リンクされている変数を誤って移動させるなどの誤操作を防止し、プログラミングの効率化を図ることができる。
【００６１】
表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれるものとした。このような構成によると、プログラミングツール２０は、適宜設定された表示属性に基づいて変数名や表示記号を表示することができる。これにより、シーケンスプログラムＰｓ１，Ｐｓ２が対象とするＰＬＣごとに色彩等を割り付けられ、作業者は、変数名を解読しなくても、そのシーケンスプログラムに参照変数または参照先の変数が含まれるか否かを容易に認識できる。
【００６２】
（その他）
実施形態において、リンクプログラム生成部２２は、リンクプログラムＰｎ１，Ｐｎ２として、参照変数と参照先の変数とをリンクさせるインターフェース回路を生成する構成とした。これに対して、複数のＰＬＣが通信用デバイスを介して通信を行って当該ＰＬＣにおける固有データを相互に交換する場合には、リンクプログラム生成部２２は、リンクプログラムとして、通信用デバイスに書き込まれる変換プログラムを生成する構成としてもよい。
【００６３】
より詳細には、複数のＰＬＣが互いに連携してシーケンス制御を行う場合に、実施形態のようにネットワークを介してＰＬＣ間が直接通信を行う構成の他に、マイコンなどの通信用デバイスを介在させる構成がある。この通信用デバイスは、内部に書き込まれる変換プログラムによって、ＰＬＣごとの固有データを要求に応じて相互に変換することにより、ＰＬＣにおけるインターフェース回路に対して動作環境に合わせた変更を加えることなく、通信を可能とするものである。
【００６４】
そこで、リンクプログラム生成部２２は、シーケンスプログラムの編集において分割や集約があった場合に、インターフェース回路に換えて、通信用デバイスに書き込まれる変換プログラムをリンクプログラムとして生成する構成としてもよい。これにより生成された変換プログラムは、参照先の変数の入力値を参照変数への入力値に変換し、ＰＬＣ間の通信を成立させることができる。よって、従来においては通信用デバイスを用いる場合に変換プログラムのプログラミングを必要とされていたのに対して、このプログラミングの作業を省略することができる。また、上記の構成により、既存のシーケンスプログラムを他のＰＬＣへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。
【符号の説明】
【００６５】
１：編集装置、  ２０：プログラミングツール、  ２２：リンクプログラム生成部、  ２３：変数名設定部、  Ｐｓ１，Ｐｓ２：シーケンスプログラム、  Ｐｎ１，Ｐｎ２：リンクプログラム、  Ｖｒ１〜Ｖｒ５：参照変数
【図１】
2015053022.tif 000003
【図２】
2015053022.tif 000004
【図３】
2015053022.tif 000005
【図４】
2015053022.tif 000006
【図５】
2015053022.tif 000007
【図６】
2015053022.tif 000008