(58)【調査した分野】(Int.Cl.,DB名)
前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、前記参照変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記シーケンスプログラムが対象とする前記PLCに対応して設定された表示属性に基づいて表示する、請求項1のPLC用のプログラミングツール。
前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、参照先の前記変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記変数にリンクされる前記参照変数を使用する前記シーケンスプログラムが対象とする前記PLCに対応して設定された表示属性に基づいて表示する、請求項1または2のPLC用のプログラミングツール。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、複数のPLCが連携してシーケンス制御を行う構成において、対象とするPLCが相違するシーケンスプログラムの間で相手側の変数を条件として使用する場合がある。そうすると、特許文献1のように、変数を任意の名称で記述したとしても、名称の登録情報などに基づいてインターフェース回路を生成するためのプログラミングが必要となる。また、特許文献2にように、シーケンスプログラムが分割された場合に、グローバル変数を使用することでPLC間の通信を成立させることができる。しかしながら、このような構成では、他のシーケンスプログラムでもグローバル変数によって制約され、またローカル変数との変換において誤りが生じるおそれがあった。
【0006】
本発明は、このような事情に鑑みてなされたものであり、PLCの変数間をリンクさせるリンクプログラムを自動生成することにより、プログラミングの効率化を図ることができるPLC用のプログラミングツールを提供することを目的とする。
【課題を解決するための手段】
【0007】
(請求項1)本手段に係るPLC用のプログラミングツールは、互いに連携してシーケンス制御を行う複数のプログラマブルロジックコントローラ(以下、PLC)を対象とする
複数のシーケンスプログラムを編集するためのプログラミングツールであって、
被参照先の前記シーケンスプログラムにおいて使用される
複数のローカル変数のうち、対象とする前記PLCが相違する
参照先の前記シーケンスプログラムの
ローカル変数を参照する前記ローカル変数を参照変数とし、前記参照変数は、その変数名に、参照先の前記シーケンスプログラムが対象とする前記PLCを示す識別符号
と、参照先の前記ローカル変数とを有し、前記プログラミングツールは、
参照先の前記ローカル変数から演算結果が出力された場合に呼応して入力される新たな入出力デバイスを用意して変数名として参照先の前記ローカル変数を使用し、前記新たな入出力デバイスに呼応して前記参照変数へ出力される新たな入出力デバイスを用意して変数名として通信用変数を使用して、前記参照変数と参照先の前記
ローカル変数と
をリンクさせる
インターフェース回路をリンクプログラムとして生成するリンクプログラム生成部を備え
、前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、前記シーケンスプログラムおよび対応する前記リンクプログラムをラダー図にて表示するとともに、前記リンクプログラムにおいて参照先の前記ローカル変数と前記通信用変数を表示するとともに、被参照先の前記シーケンスプログラムにおいて前記参照変数の変数名に、対象とする前記PLCを示す識別符号と、参照先の前記ローカル変数と、前記通信用変数を併記して表示する。
【0008】
このような構成によると、リンクプログラム生成部により参照変数と参照先の変数とをリンクさせるリンクプログラムを自動生成することができる。これにより、シーケンスプログラムに参照変数が含まれている場合に、従来のようにインターフェース回路をプログラミングする必要がないので、プログラミングの効率化を図ることができる。また、リンクプログラムは、グローバル変数を使用することなくPLC間の通信を成立させることができる。よって、本手段により、グローバル変数の使用に伴う制約を受けることなくシーケンスプログラムのプログラミングが可能となる。また、参照変数の変数名を表示することによって、参照変数がどのPLCを対象としたシーケンスプログラムの変数を参照しているのかを認識することができるので、プログラミングの作業性を向上できる。
【0010】
また、従来においてはPLC間での通信を行うためのインターフェース回路のプログラミングを必要とされていたのに対して、このプログラミングの作業を自動化して省略することができる。これにより、既存のシーケンスプログラムを他のPLCへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。また、インターフェース回路は、参照変数の変数名に基づいて自動生成され、プログラミングを行う作業者が確認することができる。よって、上記のような構成により、プログラミングの作業性を向上できる。
【0015】
(請求項
2)好ましくは、前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、前記参照変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記シーケンスプログラムが対象とする前記PLCに対応して設定された表示属性に基づいて表示する。
【0016】
プログラミングツールは、シーケンスプログラムを編集可能に表示する場合に、使用するプログラミング言語によっては、各変数について、その変数名をテキスト表示し、または変数に対応した表示記号を表示する。そのため、上記のような構成によると、表示されたシーケンスプログラムにおいて、各変数が参照変数であるか否かを視認できる。さらに、表示属性によって、参照変数のリンク先を認識できるので、プログラミングの効率化を図ることができる。
【0017】
(請求項
3)好ましくは、前記プログラミングツールは、前記シーケンスプログラムを編集可能に表示する場合に、参照先の前記変数の変数名および対応する表示記号の少なくとも一方を、参照先の前記変数にリンクされる前記参照変数を使用する前記シーケンスプログラムが対象とする前記PLCに対応して設定された表示属性に基づいて表示する。
【0018】
このような構成によると、表示されたシーケンスプログラムにおいて、各変数が参照先の変数であるか否かを視認できる。さらに、表示属性によって、参照変数が使用されるシーケンスプログラムを認識できるので、プログラミングの効率化を図ることができる。
【0019】
(請求項
4)好ましくは、前記表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれる。
【0020】
このような構成によると、プログラミングツールは、適宜設定された表示属性に基づいて変数名や表示記号を表示することができる。これにより、シーケンスプログラムが対象とするPLCごとに色彩等を割り付けられ、作業者は、変数名を解読しなくても、そのシーケンスプログラムに参照変数または参照先の変数が含まれるか否かを容易に認識できる。
【発明を実施するための形態】
【0022】
以下、本発明のPLC用のプログラミングツールを具体化した実施形態について図面を参照して説明する。実施形態においては、プログラミングツールは、互いに連携してシーケンス制御を行う複数のPLCを対象とするシーケンスプログラムを編集するソフトウェアである。本実施形態では、このプログラミングツールがパーソナルコンピュータなどにより構成されるシーケンスプログラムの編集装置にインストールされ、プログラミング環境を構成する形態を例示する。
【0023】
<実施形態>
(シーケンスプログラムの編集装置の構成)
実施形態のシーケンスプログラムの編集装置1の全体構成について、
図1および
図2を参照して説明する。編集装置1は、汎用のパーソナルコンピュータであって、
図1に示すように、種々の演算処理を実行するCPU(central processing unit)11と、記憶装置12と、ディスプレイ13と、入力デバイス14と、通信インターフェース15とを備えて構成される。編集装置1は、PLC用のプログラミングツール20を含む種々のソフトウェアをインストールされて、シーケンスプログラムの編集機能を有する構成となっている。
【0024】
記憶装置12は、図示しないRAMやROM、ハードディスクドライブなどにより構成され、各プログラムの読み出しや書き込みを行う。ディスプレイ13は、表示装置であって、シーケンスプログラムのラダー図の画面出力等に使用される出力デバイスである。入力デバイス14は、例えばキーボードやマウスなどであって、シーケンスプログラムのラダー図などの編集作業において情報の入力等に使用される。通信インターフェース15は、図示しない通信ケーブルを介してPLCとの通信を行う際に、各種のデータを入出力する装置である。
【0025】
プログラミングツール20は、複数のPLCに書き込まれる実行プログラムに対応するシーケンスプログラムの編集を行う。このプログラミングツール20は、プログラム編集部21と、リンクプログラム生成部22と、変数名設定部23とを備える。プログラム編集部21は、本実施形態において、シーケンスプログラムのプログラム言語であるラダー図を編集する機能を有する。プログラム編集部21は、ディスプレイ13にラダー図を編集可能に表示させるとともに、入力デバイス14による編集を受け付ける。既存のシーケンスプログラムは記憶装置12から読み出され、また編集されたシーケンスプログラムは記憶装置12に書き込まれて記憶される。
【0026】
リンクプログラム生成部22は、参照変数と参照先の変数とをリンクさせるリンクプログラムを生成する。ここで、上記の「参照変数」とは、シーケンスプログラムにおいて使用される変数のうち、対象とするPLCが相違する他のシーケンスプログラムの変数を参照する変数をいう。シーケンスプログラムは、PLCに書き込まれる実行プログラムのソースプログラムであって、当該実行プログラムが書き込まれるPLCを対象とする。また、シーケンスプログラムは、PLCにおける複数の入出力デバイスにそれぞれ割り付けられる変数を使用する。
【0027】
ここで、各PLCの実行プログラムに対応するシーケンスプログラムは、複数のPLCがシーケンス制御を互いに連携して行うことから、対象とするPLCが相違する他のシーケンスプログラムの変数を参照することがある。本実施形態において、複数のPLCは、ネットワークを介して通信可能に接続され、当該PLCの固有データを通信により入出力可能に構成されている。つまり、シーケンスプログラムの変数のうち、当該シーケンスプログラムに対応する実行プログラムが書き込まれたPLCがネットワークを介した通信により固有データの取得を要する変数を「参照変数」としている。また、PLCの「固有データ」とは、シーケンス制御における演算結果に対応し、例えば当該PCLのローカル変数に入力されるデータである。
【0028】
また、各PLCの間でデータのやり取りを行う場合には、各PLCのローカル変数をリンクするリンクプログラムを要する。このリンクプログラムは、PLCに書き込まれる実行プログラムに含まれ、例えばラダー図により表記してプログラミングされるインターフェース回路とすることが可能である。このインターフェース回路では、PLC間の通信でローカル変数そのものをやり取りすることができないので、信号名変換を行って、通信の対象とする変数を割り当てている。そして、インターフェース回路は、参照先のローカル変数に演算結果(入出力デバイスの信号)が入力された場合に参照変数に当該演算結果の入力を行うように動作(通信)を行うことによって、参照変数と参照先の変数とをリンクさせる。
【0029】
本実施形態において、リンクプログラム生成部22は、上記のインターフェース回路をリンクプログラムとして生成する構成としている。また、参照変数の変数名は予め定められた規則に従って変数名を設定されており、リンクプログラム生成部22は、参照変数の変数名に基づいて、リンクプログラムを自動的に生成する構成としている。リンクプログラム生成部22によるリンクプログラムの生成処理の詳細については後述する。また、参照変数は、その変数名に、参照先のシーケンスプログラムが対象とするPLCを示す識別符号を有する。参照変数の変数名の設定については、プログラミングを行う作業者が直接入力してもよいし、後述する変数名設定部23による自動入力であってもよい。
【0030】
ここで、第一のPLC(PLC1)を対象とするシーケンスプログラムPs1の参照変数Vr1が、第二のPLC(PLC2)を対象とするシーケンスプログラムPs2における第四ステップ(M4)での演算結果を入力される変数(D10X)を参照するものとする。この場合には、参照変数Vr1の変数名は、第二のPLCを示す識別符号として文字列”PLC2”を有する。具体的には、参照変数Vr1の変数名は、
図2に示すように、”PLC2_D10X”のように表記される。このように、参照変数は、識別符号”PLC2”を含むように予め定められた規則に従って変数名を設定されている。
【0031】
変数名設定部23は、シーケンスプログラムにおける参照変数について、その変数名の設定を自動で行う。例えば、変数名設定部23は、入力デバイス14により指定された変数が、他のシーケンスプログラムの変数を参照する場合に、対象のPLCを示す識別符号を生成し、当該変数の変数名に付加する。また、変数名設定部23は、シーケンスプログラムの少なくとも一部が、対象とするPLCを移動された場合に、当該移動に伴って参照先が変更される既存の参照変数、またはこの移動に伴って新たに参照変数となる変数について、その変数名に移動に整合させた識別符号が含まれるように変数名を設定する。シーケンスプログラムの移動に伴う変数名設定部23による変数名の設定処理の詳細については後述する。
【0032】
(リンクプログラムの生成処理)
上記のシーケンスプログラムの編集装置1によるリンクプログラムの生成処理について、
図2および
図3を参照して説明する。編集装置1は、例えば入力デバイス14からリンクプログラムの生成の要求を受け付けると、
図3に示すようなプログラムを実行する。
【0033】
プログラミングツール20のリンクプログラム生成部22は、先ず、全てのシーケンスプログラムを対象として、各シーケンスプログラムから参照変数を抽出する(S11)。例えば、第一のPLCを対象とするシーケンスプログラムPs1において、第一のPLC以外の識別符号を有する変数を参照変数として抽出する。
図2に示すシーケンスプログラムにおいては、PLC1を対象とするシーケンスプログラムPs1から参照変数Vr1,Vr2が抽出され、PLC2を対象とするシーケンスプログラムから参照変数Vr3,Vr4,Vr5が抽出される。
【0034】
次に、リンクプログラム生成部22は、抽出した参照変数の変数名を順に解析して、参照先の変数を特定する(S12)。例えば、参照変数Vr1は、その変数名が”PLC2_D10X”であることから、第二のPLC(PLC2)を対象とするシーケンスプログラムPs2の第四ステップ(M4)において演算結果を入力されるローカル変数D10Xを、参照先の変数として特定する。
【0035】
続いて、リンクプログラム生成部22は、参照変数と参照先の変数とをリンクするステップを生成する(S13)。このリンクは、通信の対象とする変数を割り当てる信号名変換に相当する。具体的には、上記の例であれば、
図2に示すように、ローカル変数D10Xに演算結果が入力された場合に参照変数Vr1に当該演算結果の入力を行うために、ローカル変数D10Xを通信用変数B2[1]に変換するリンクL2が生成される。リンクプログラム生成部22は、S11にて抽出した全ての参照変数について対応するインターフェース回路のステップが生成されたか否かを判定し(S14)、終わっていない場合には(S14:No)、S12,S13の処理を繰り返す。
【0036】
全てのシーケンスプログラムの参照変数について対応するインターフェース回路のステップが生成されると(S14:Yes)、
図2の破線で囲んだ範囲に示すように、シーケンスプログラムPs1の参照変数Vr1,Vr2に対応するリンクL1,L2がPLC2側に生成され、シーケンスプログラムPs2の参照変数Vr3,Vr4,Vr5に対応するリンクL1,L2,L3がPLC1側に生成される。各リンクでは、それぞれのローカル変数がPLC1で用いられる通信用変数B1[*]と、PLC2で用いられる通信用変数B2[*]とに変換されている([*]は、0〜2の対応する値。以下同じ)。
【0037】
このように、リンクプログラム生成部22は、各PLC1,2を対象としたシーケンスプログラムPs1,Ps2に対応したリンクプログラムPn1,Pn2をそれぞれ生成する。このリンクプログラムPn1,Pn2は、
図2に示すように、シーケンスプログラムPs1,Ps2と同様にラダー図にて表記されており、プログラミングを行う作業者によって視認、および必要に応じた編集が可能となっている。
【0038】
また、シーケンスプログラムPs1,Ps2およびリンクプログラムPn1,Pn2は、プログラミングツール20によるコンパイルによって、各PLCに書き込まれる実行プログラム(シーケンス回路、インターフェース回路)に変換される(S15)。このとき、各シーケンスプログラムPs1,Ps2の参照変数Vr1〜Vr5は、
図2の括弧内に示すように、対応する通信用変数B1[*],B2[*]に置換される。
【0039】
なお、プログラミングツール20により各プログラムがコンパイルされる際には、シーケンスプログラムに含まれる各変数に対して自動でメモリのアドレスが割り付けられる。このとき、プログラミングツール20は、本実施形態においては、複数の参照変数に対応した通信用変数が連続したアドレスとなるように割り付けを行う。具体的には、プログラミングツール20は、PLC1で用いられる通信用変数B1[0]〜B1[2]、PLC2で用いられる通信用変数B2[0]〜B2[1]をそれぞれ連続するアドレスに割り付ける。
【0040】
上記のように、プログラミングツール20が同一のシーケンスプログラムに含まれる参照変数に対応した通信用変数に連続したアドレスを割り付けるのは、複数のPLCが互いに連携してシーケンス制御を行う際の通信量の低減を図るためである。PLC間の通信は、プログラミングツール20が各プログラムをコンパイルする際に生成されるリンクパラメータに基づいて行われる。このリンクパラメータには、PLC間の通信要求に対して、通信要求されたPLCがデータとして出力するメモリのアドレス範囲が記述されている。このとき、参照されるアドレスが不連続であると、個別に通信要求を行う必要があるため、通信回数が増加してしまうことになる。
【0041】
そこで、本実施形態では、リンクプログラムPn1,Pn2の生成処理において、参照変数の抽出(S11)およびリンクの生成処理(S13)を行うことから、これにより取得された情報を利用したアドレスの割り付け、およびリンクパラメータの生成を行う構成としている。これにより、従来と比較して、効率的なアドレスの割り付けが可能となり、シーケンス制御におけるPLC間の通信回数の増加を抑制できるリンクパラメータの生成を可能としている。
【0042】
(変数名の設定処理)
上記のシーケンスプログラムの編集装置1による参照変数の変数名の設定処理について、
図2、
図4および
図5を参照して説明する。ここでは、一台のPLCを対象としてプログラミングされた既存のシーケンスプログラムPs0(
図4を参照)を、二台のPLCを対象とするシーケンスプログラムPs1,Ps2に分割する場合を例示する。具体的には、既存のシーケンスプログラムPs0の一部(ステップM4,M6〜M8)を、PLC2を対象とするシーケンスプログラムPs2となるように移動させ、シーケンスプログラムPs0の残りを、PLC1を対象とするシーケンスプログラムPs1とするように編集を行う。
【0043】
編集装置1は、例えば入力デバイス14からシーケンスプログラムを分割して、一部を他のPLCを対象とするように編集の要求を受け付けると、
図5に示すようなプログラムを実行する。プログラム編集部21は、先ず、部分的なシーケンスプログラムの移動情報を取得する(S21)。移動情報としては、例えば移動対象として指定されたシーケンスプログラムの範囲(ここでは、ステップM4,M6〜M8)、移動後のシーケンスプログラムが対象とするPLC(ここでは、PLC2)などの情報が含まれる。
【0044】
次に、変数名設定部23は、シーケンスプログラムPs1および移動されるシーケンスプログラムPs2の各変数において、この移動に伴って参照先が変更される既存の参照変数、または当該移動に伴って新たに参照変数となる変数を抽出する(S22)。既存のシーケンスプログラムPs0では、シーケンスプログラムの移動前には一台のPLCを対象としていたので、既存の参照変数は抽出されない。一方で、分割後の各シーケンスプログラムPs1,Ps2に含まれる複数のステップにおいては、移動元の変数を参照する変数が抽出される。具体的には、
図4に示すように、分割前のシーケンスプログラムPs0におけるステップM1の変数D1X、ステップM4の変数D2X、ステップM5の変数D4X、ステップM6の変数D3X、ステップM7の変数D1Xが抽出される。
【0045】
続いて、変数名設定部23は、抽出された変数について、S21で取得した移動情報に基づいて、移動に整合させた識別符号を生成する。具体的には、例えばステップM1の変数D10Xについては、部分的なシーケンスプログラムPs2が移動されることにより、当該シーケンスプログラムPs2が対象とするPLCが第二のPLC(PLC2)となることから、識別符号として文字列”PLC2”を生成する(S23)。
【0046】
そして、変数名設定部23は、抽出された各変数について、その変数名に移動に整合させた識別符号が含まれるように変数名を設定する(S24)。具体的には、シーケンスプログラムPs1のステップM1の変数D10Xについては、識別符号を先頭部分に付加され、”PLC2_D10X”に変数名が変更される。変数名設定部23は、S22にて抽出した全ての参照変数について、整合させた変数名に設定されたか否かを判定し(S25)、終わっていない場合には(S25:No)、S23,S24の処理を繰り返す。
【0047】
全ての抽出された参照変数について、整合させた変数名に設定されると(S25:Yes)、
図4の右欄に示すように、各PLC1,2を対象としたシーケンスプログラムPs1,Ps2における参照変数が移動に整合された変数名となる。これにより、プログラミングツール20は、変数名の設定処理を終了する。なお、上記のような処理によって参照変数の変数名が自動的にシーケンスプログラムの移動に整合された後に、リンクプログラム生成部22によるリンクプログラムの生成処理を実行することによって、移動後の各シーケンスプログラムPs1,Ps2に対応したリンクプログラムを生成することが可能となる。
【0048】
また、本実施形態では、シーケンスプログラムを二台のPLCを対象としたシーケンスプログラムに分割する態様を例示したが、シーケンスプログラムを1本化するなどの集約においても同様の処理により対応することが可能である。具体的には、
図2に示すような複数のシーケンスプログラムを、
図4の左欄に示すようなシーケンスプログラムPs0に集約する場合には、分割と同様に移動情報の取得(S21)を行うことにより、どのステップがどこに移動したかを認識することが可能である。そして、変数名設定部23は、この移動情報に基づいて、既存の参照変数を抽出し(S22)、移動に整合させた識別符号を生成する(S23)とともに、変数名の設定を行う(S24)。
【0049】
なお、このようにシーケンスプログラムの集約を行った結果、参照変数が自己のシーケンスプログラムの変数を参照先とすることがある。このような場合には、識別符号を削除するように変数名の設定を行うようにしてもよい。また、シーケンスプログラムの流用性を向上させるために、分割や集約を想定して、全ての変数について、参照変数と同様に識別符号を有する変数名に設定してもよい。このような構成では、プログラミングの際に、作業者が変数名を視認することができるので、参照先を容易に認識できるという利点がある。
【0050】
(実施形態の構成による効果)
上述したPLC用のプログラミングツール20によると、リンクプログラム生成部22により参照変数と参照先の変数とをリンクさせるリンクプログラムPn1,Pn2を自動生成することができる。これにより、シーケンスプログラムに参照変数が含まれている場合に、従来のようにインターフェース回路をプログラミングする必要がないので、プログラミングの効率化を図ることができる。また、リンクプログラムPn1,Pn2は、グローバル変数を使用することなくPLC間の通信を成立させることができる。よって、本実施形態の構成により、グローバル変数の使用に伴う制約を受けることなくシーケンスプログラムのプログラミングが可能となる。
【0051】
また、リンクプログラム生成部22は、リンクプログラムPn1,Pn2としてインターフェース回路を自動で生成する構成とした。これにより、従来においてはPLC間での通信を行うためのインターフェース回路のプログラミングを必要とされていたのに対して、このプログラミングの作業を自動化して省略することができる。これにより、既存のシーケンスプログラムを他のPLCへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。また、インターフェース回路は、ラダー図などにより表記可能であり、プログラミングを行う作業者が確認することができるので、プログラミングの作業性を向上できる。
【0052】
また、変数名設定部23は、シーケンスプログラムの分割や集約によって、シーケンスプログラムの少なくとも一部が対象とするPLCを移動された場合に、シーケンスプログラムの変数について、その変数名に当該移動に整合させた識別符号が含まれるように変数名を設定する構成とした。これにより、プログラミングを行う作業者は、従来においては移動されるシーケンスプログラムなどで整合が取れているかの確認作業を必要とされていたのに対して、変数名の設定の作業を自動化して省略することができる。よって、連携する複数のPLCの構成に対応して、シーケンスプログラムの分割や集約のプログラミングをより簡易に行うことができる。
【0053】
<実施形態の変形態様>
(シーケンスプログラムの表示)
実施形態おいて、プログラミングツール20は、
図2に示すように、シーケンスプログラムPs1,Ps2をラダー図により表示するものとした。このラダー図は、各変数に対応した表示記号を用いて論理回路を記述するものであり、実施形態のように変数名が表示記号に併記される。
【0054】
ここで、プログラミングツール20は、シーケンスプログラムを編集可能に表示する場合に、参照変数の変数名および対応する表示記号の少なくとも一方を、参照先のシーケンスプログラムが対象とするPLCに対応して設定された表示属性に基づいて表示する構成としてもよい。参照先のシーケンスプログラムが対象とするPLCは、当該参照変数の変数名に含まれる参照符号が示すPLCに等しい。
【0055】
また、本実施形態において、表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれる。よって、表示対象が参照変数の変数名の場合には、
図6に示すように、PLC1で使用される参照変数Vr1,Vr2の変数名は、参照符号が示すPLC2に対応して設定された表示属性である「太字」且つ「斜体」により表示される。また、参照変数Vr1,Vr2に対応する表示記号は、PLC2に対応して設定された表示属性である「太線」且つ「矩形形状」により表示される。
【0056】
一方で、PLC2で使用される参照変数Vr3〜Vr5の変数名は、参照符号が示すPLC1に対応して設定された表示属性である「白抜き文字」により表示される。また、参照変数Vr3〜Vr5の表示記号は、PLC1に対応して設定された表示属性である「矩形形状」且つ「ハッチング」により表示される。
【0057】
さらに、プログラミングツール20は、シーケンスプログラムを編集可能に表示する場合に、参照先の変数の変数名および対応する表示記号の少なくとも一方を、当該参照先の変数にリンクされる参照変数を使用するシーケンスプログラムが対象とするPLCに対応して設定された表示属性に基づいて表示する構成としてもよい。表示属性については、参照変数の変数名および表示記号に使用されたものと同様である。
【0058】
具体的には、表示対象が参照先の変数の変数名の場合には、
図6に示すように、PLC1で使用される参照変数Vr1,Vr2の参照先の変数(D4X,D10X)の表示記号は、PLC1に対応して設定された表示属性である「二重線」により表示される。一方で、PLC2で使用される参照変数Vr3〜Vr5の参照先の変数(D1X,D2X,D3X)の表示記号は、PLC2に対応して設定された表示属性である「太線」且つ「ハッチング」により表示される。
【0059】
ここでは、参照先の変数の変数名については、通常の表示属性に基づいて表示するものとしたが、参照符号Vr1〜Vr5と同様に、所定の書体などを用いて表示される構成としてもよい。また、表示属性は、上記の他に、色彩や枠線、下線などを含むものとし、また、これらの結合により適宜設定される。複数のPLCに対して、互いに異なる固有の表示属性を設定してもよいし、機能や制御内容によっては一部を共通または類似の表示属性を設定してもよい。
【0060】
上記のように、参照変数および参照先の変数について、その変数名と表示記号を所定の表示属性により表示する構成とすることにより、表示されたシーケンスプログラムPs1,Ps2において、各変数が参照変数であるか否かが視認可能となる。また、視認した変数が参照変数であった場合には、参照変数のリンク先を表示属性により認識できる。さらに、表示されたシーケンスプログラムPs1,Ps2において、各変数が参照先の変数であるか否かが視認可能となる。また、視認した変数が参照先の変数であった場合には、参照先の変数にリンクされた参照変数が使用されるシーケンスプログラムを表示属性により認識できる。このように、シーケンスプログラムPs1,Ps2に、参照変数または参照先の変数の有無を認識しながらプログラミングが可能となるのとで、リンクされている変数を誤って移動させるなどの誤操作を防止し、プログラミングの効率化を図ることができる。
【0061】
表示属性には、表示対象の形状、模様、色彩、および書体の少なくとも一つが含まれるものとした。このような構成によると、プログラミングツール20は、適宜設定された表示属性に基づいて変数名や表示記号を表示することができる。これにより、シーケンスプログラムPs1,Ps2が対象とするPLCごとに色彩等を割り付けられ、作業者は、変数名を解読しなくても、そのシーケンスプログラムに参照変数または参照先の変数が含まれるか否かを容易に認識できる。
【0062】
(その他)
実施形態において、リンクプログラム生成部22は、リンクプログラムPn1,Pn2として、参照変数と参照先の変数とをリンクさせるインターフェース回路を生成する構成とした。これに対して、複数のPLCが通信用デバイスを介して通信を行って当該PLCにおける固有データを相互に交換する場合には、リンクプログラム生成部22は、リンクプログラムとして、通信用デバイスに書き込まれる変換プログラムを生成する構成としてもよい。
【0063】
より詳細には、複数のPLCが互いに連携してシーケンス制御を行う場合に、実施形態のようにネットワークを介してPLC間が直接通信を行う構成の他に、マイコンなどの通信用デバイスを介在させる構成がある。この通信用デバイスは、内部に書き込まれる変換プログラムによって、PLCごとの固有データを要求に応じて相互に変換することにより、PLCにおけるインターフェース回路に対して動作環境に合わせた変更を加えることなく、通信を可能とするものである。
【0064】
そこで、リンクプログラム生成部22は、シーケンスプログラムの編集において分割や集約があった場合に、インターフェース回路に換えて、通信用デバイスに書き込まれる変換プログラムをリンクプログラムとして生成する構成としてもよい。これにより生成された変換プログラムは、参照先の変数の入力値を参照変数への入力値に変換し、PLC間の通信を成立させることができる。よって、従来においては通信用デバイスを用いる場合に変換プログラムのプログラミングを必要とされていたのに対して、このプログラミングの作業を省略することができる。また、上記の構成により、既存のシーケンスプログラムを他のPLCへの流用が容易となり、シーケンスプログラムの汎用性を向上できる。