(57)【特許請求の範囲】
【請求項１】
表示画面上にラダーダイアグラムを作成することによりプログラマブルコントローラ用シーケンスプログラムを作成することができるプログラマブルコントローラのプログラミング装置であって、
ラダーダイアグラムを表示するラダーダイアグラム表示手段（２）と、ラダーダイアグラムをラダーコードに変換するラダーコード生成手段（９）と、前記ラダーコード生成手段（９）によって変換されたラダーコードを記憶するラダーコード記憶手段（１０）と、前記ラダーコード生成手段（９）によって変換されたラダーコードの実行を制御するラダープログラム実行制御手段（１１）と、を備えたプログラマブルコントローラのプログラミング装置において、
前記ラダーダイアグラムを構成する各命令シンボルおよび各命令シンボル内のパラメータ領域の入力を一時保持するためのラダーダイアグラム記憶手段（６）と、変数・関数および演算子を組合わせた任意の式を入力することにより、数式を入力するとともに、前記数式を表示する数式入力・表示手段（５）と、前記数式を記憶するための数式記憶手段（７）と、前記数式記憶手段（７）に記憶されている前記数式を字句解析して変数トークンであればトークン番号を付加して保存する変数トークン保持領域（２３）と、レジスタアドレスとレジスタ識別名の対応を記憶し、レジスタアドレスからレジスタ識別名、あるいはレジスタ識別名からレジスタアドレスへの変更を行うレジスタ識別名記憶・変換手段（８）と、をさらに備え、前記ラダーコード生成手段（９）が前記数式記憶手段（７）に記憶される前記数式をラダーコードに変換し、前記ラダープログラム実行制御手段（１１）によるラダーコードの実行時に、前記数式の中の変数の現在値であるオンラインデータを、前記変数トークン保持領域（２３）に保持されている変数トークンとラダーコードとを対応づけることによりプログラマブルコントローラから取得し、前記レジスタ識別名記憶・変換手段（８）によってレジスタアドレスとレジスタ識別名間の変換を行うことにより、レジスタアドレスまたはレジスタ識別名とともに前記ラダーダイアグラム表示手段（２）に表示することを特徴とするプログラマブルコントローラのプログラミング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラのプログラミング装置に係り、特に表示画面上でラダーダイアグラムを作成編集しながらシーケンスプログラムを作成することができるプログラマブルコントローラのプログラミング装置に関する。
【０００２】
【従来の技術】
従来、この種のプログラマブルコントローラのプログラミング装置は、図４に示すようになっている。すなわち、図４において、１が従来のプログラミング装置で、２はラダーダイアグラム表示手段、９はラダーコード生成手段、１０はラダーコード記憶手段、１１はラダープログラム実行制御手段である。
ラダーダイアグラム上へのシーケンス命令の記述は、命令を選択し、その命令をラダーダイアグラム表示手段２の中のラダーダイアグラム中に挿入することで行われる。各ラダー命令はパラメータ入力領域を持っており、命令に応じて種々のデータを必要とする。入力されたラダーダイアグラムはラダーコード生成手段９によってラダーコードに変換され、ラダーコード記憶手段１０に記憶され、ラダープログラム実行制御手段１１によって実行される。
【０００３】
【発明が解決しようとする問題】
ところがこのような従来の技術では、プログラマブルコントローラのプログラミング装置においてラダーダイアグラム上で加算や乗算を含んだ任意の複雑な計算を一つの命令で記述し、かつラダーシーケンスプログラム実行時のオンラインデータを視認することができず、ラダーシーケンスプログラムの作成効率が悪く、したがってデバッグの効率が良くなかった。
そこで、本発明は複雑な計算式を一つの命令で簡潔に入力し、ラダーシーケンス実行時には数式のオンラインデータを表示する仕組みを提供することにより、実行時にはオンラインデータを視認できるようにして、ラダーシーケンスプログラムの作成効率とデバッグの効率を向上させることを目的とする。
【０００４】
【課題を解決するための手段】
上記問題を解決するため、請求項１記載のプログラマブルコントローラのプログラミング装置の発明は、表示画面上にラダーダイアグラムを作成することによりプログラマブルコントローラ用シーケンスプログラムを作成することができるプログラマブルコントローラのプログラミング装置であって、ラダーダイアグラムを表示するラダーダイアグラム表示手段（２）と、ラダーダイアグラムをラダーコードに変換するラダーコード生成手段（９）と、前記ラダーコード生成手段（９）によって変換されたラダーコードを記憶するラダーコード記憶手段（１０）と、前記ラダーコード生成手段（９）によって変換されたラダーコードの実行を制御するラダープログラム実行制御手段（１１）と、を備えたプログラマブルコントローラのプログラミング装置において、前記ラダーダイアグラムを構成する各命令シンボルおよび各命令シンボル内のパラメータ領域の入力を一時保持するためのラダーダイアグラム記憶手段（６）と、変数・関数および演算子を組合わせた任意の式を入力することにより、数式を入力するとともに、前記数式を表示する数式入力・表示手段（５）と、前記数式を記憶するための数式記憶手段（７）と、前記数式記憶手段（７）に記憶されている前記数式を字句解析して変数トークンであればトークン番号を付加して保存する変数トークン保持領域（２３）と、レジスタアドレスとレジスタ識別名の対応を記憶し、レジスタアドレスからレジスタ識別名、あるいはレジスタ識別名からレジスタアドレスへの変更を行うレジスタ識別名記憶・変換手段（８）と、をさらに備え、前記ラダーコード生成手段（９）が前記数式記憶手段（７）に記憶される前記数式をラダーコードに変換し、前記ラダープログラム実行制御手段（１１）によるラダーコードの実行時に、前記数式の中の変数の現在値であるオンラインデータを、前記変数トークン保持領域（２３）に保持されている変数トークンとラダーコードとを対応づけることによりプログラマブルコントローラから取得し、前記レジスタ識別名記憶・変換手段（８）によってレジスタアドレスとレジスタ識別名間の変換を行うことにより、レジスタアドレスまたはレジスタ識別名とともに前記ラダーダイアグラム表示手段（２）に表示することを特徴とすることを特徴とする。
【０００５】
【発明の実施の形態】
以下、本発明の実施の形態を図１〜図３に基づいて説明する。
図１に示すように、プログラマブルコントローラのプログラムを作成する本発明に係るプログラミング装置１は、レジスタアドレスをアドレス識別名として記憶するレジスタ識別名記憶・変換手段８、命令シンボルおよび命令パラメータシンボルで構成されるラダーダイアグラムを作成し記憶するラダーダイアグラム記憶手段６、前記ラダーダイアグラムを表示するラダーダイアグラム表示手段２、数式を入力し表示する数式入力・表示手段５および数式命令を画面表示する数式命令表示手段４、ラダーダイアグラムを解析し、ラダーダイアグラム中のアドレスシンボルをレジスタアドレスに変換し、ラダーダイアグラム中の数式を解析し、数式中のアドレス識別名を前記レジスタ識別名記憶・変換手段８によりレジスタアドレスに変換したラダーコードを生成するラダーコード生成手段９、および前記ラダーコード生成手段により生成されたラダーコードの実行を制御するラダープログラム実行制御手段１１を備えている。
ラダーダイアグラム上のシーケンス中に数式による動作指令を記述する場合には、命令シンボルとして命令シンボル選択手段３より数式命令を選択し、数式命令４が持つ数式入力・表示手段５に対し変数、関数および演算子を組み合わせた任意の式を入力することで行われる。数式命令４のパラメータとして入力された任意の数式は、数式入力・表示手段５に表示するとともに数式記憶手段７に記憶される。
【０００６】
数式中で用いる変数としては、コントローラのレジスタアドレスを表す文字列のほかに、コントローラのレジスタアドレスに対するレジスタ識別名を使用することができる。
レジスタ識別名はレジスタアドレスに対する名前として、特定の制約のもとに任意の名称を付与することができる。レジスタアドレスとレジスタ識別名の対応づけはレジスタ識別名記憶・変換手段８に保存しておき、レジスタアドレスからレジスタ識別名への変換、またはレジスタ識別名からレジスタアドレスへの変換を容易に行うことができる状態にしておく。このとき、レジスタ識別名にはアドレスと誤って解釈されうる文字列を使用禁止にすることでレジスタ識別名およびレジスタアドレス表記の一意性を保つことができる。
プログラム作成者が入力した数式中にレジスタアドレスが含まれる場合、一定のフォーマットに従ってレジスタアドレスの表記を整形する。レジスタ識別名とレジスタアドレス表記の区別が瞬時につかないような文字列を入力した場合でも、整形された文字列からレジスタ識別名であるのかレジスタアドレスであるのが容易に判別できるので、数式からその曖昧性を排除することができる。
数式中にはレジスタアドレスしか使用できないという制約や数式中にはレジスタ識別名しか使用できないという制約を設けないので、数式中の変数としてレジスタアドレスおよびレジスタ識別名の両方を混在して使うこともできる。従って、より自由な数式の記述が可能になる。
変数、関数および演算子で記述されたラダーダイアグラム内の計算式命令は、数式解析手段により数式の字句解析および構文解析を行った後、ラダーコード生成手段９によりラダーダイアグラムで使用可能な加算命令や乗算命令などの基本命令と、ラダーダイアグラムで使用可能な局所レジスタを使って構成された複数のラダーダイアグラムステップ列に展開されたラダープログラムに変換され、ラダーコード記憶手段１０に記憶される。生成されたラダーコードは、ラダープログラム実行制御手段１１によって実行に移される。
ラダープログラムの実行中は、任意の命令中で用いられているレジスタアドレスもしくはレジスタ識別名に対応するレジスタアドレスの現在値を一定の周期にしたがってコントローラから取得し、ラダーダイアグラム表示手段２によって表示する。ラダーダイアグラム表示手段２は数式命令４で使用されているレジスタアドレスやレジスタ識別名のオンラインデータも表示する。この時、実際に数式に使用したレジスタアドレスやレジスタ識別子のいずれかに対する実際の値が、入力された数式の近傍に対比して表示される。
【０００７】
図２に数式の１例を示す。
図２において１２は数式の例である。すなわち、「ＭＷ００００１」と「ＭＷ００００２」との和を「ＭＷ００００３」で割り、その商を「ＭＷ００１００」とするものである。
図３は本発明における数式変換の１例を示している。
図３（ａ）では数式１２をトークンとして意味のある１３〜２１の文字列に分解した様子を表し、図３（ｂ）は図２の数式１２を展開して生成されるラダーコードの例を示し、そして図３（ｃ）は、図３（ａ）の各トークンのうち、変数トークンを保存する変数トークン保持領域を示すものである。
図３（ａ）において、１３の「ＭＷ００１００」は変数として認識されるトークンの例を示し、１４の「＝」は代入命令として認識されるトークンの例、１５の「（」は開き括弧として認識されるトークンの例、１６の「ＭＷ００００１」は変数として認識されるトークンの例、１７の「＋」は加算命令として認識されるトークンの例、１８の「ＭＷ００００２」は変数として認識されるトークンの例、１９の「）」は閉じ括弧として認識されるトークンの例、２０の「／」は除算命令として認識されるトークンの例、２１の「ＭＷ００００３」は変数として認識されるトークンの例をそれぞれ示している。
【０００８】
図３（ｃ）は、図３（ａ）の各トークンのうち、変数トークンを保存する変数トークン保持領域を示すもので、２３がその変数トークン保持領域である。
トークン番号１には、図３（ａ）の１３の「ＭＷ００１００」を保存し、以下同様に、トークン番号２には、１６の「ＭＷ００００１」を、トークン番号３には、１８の「ＭＷ００００２」を、トークン番号４には、２１の「ＭＷ００００３」をそれぞれ保存している。
このように、数式を字句解析する時に変数トークンであればトークン番号を付加して変数トークン保持領域２３に保存する。
そして、字句解析後のトークンを用いて構文解析を行い、文法定義に従って図３（ｂ）の２２の擬似的なコードで示したようなラダーコードに展開する。
オンラインデータの取得は、変数トークン保持領域２３に保持されている変数トークンを元に数式中で使用されているレジスタアドレスを指定して、コントローラにオンラインデータ取得指令を発することで行う。
図３（ｃ）のトークン番号１〜をもとに変数トークン保持領域２３から変数トークンを取り出し、得られたオンラインデータを変数トークンに対応づけて、元の数式の変数トークンをオンラインデータ値と置き換えて表示する。
【０００９】
【発明の効果】
以上述べたように、本発明によれば、プログラマブルコントローラのプログラミングにおいてラダーダイアグラム上に単一の命令で任意の演算命令を組み合わせた複雑な数式を記述でき、実行時にはオンラインデータを表示できるので、ラダーシーケンスプログラムの作成効率とデバッグの効率が向上するという効果がある。
【図面の簡単な説明】
【図１】本発明におけるプログラミング装置である。
【図２】本発明における数式の例である。
【図３】本発明における数式変換の例である。
【図４】従来方式におけるプログラミング装置である。
【符号の説明】
１． プログラミング装置
２． ラダーダイアグラム表示手段
３． 命令シンボル選択手段
４． 数式命令表示手段
５． 数式入力・表示手段
６． ラダーダイアグラム記憶手段
７． 数式記憶手段
８． レジスタ識別名記憶・変換手段
９． ラダーコード生成手段
１０． ラダーコード記憶手段
１１． ラダープログラム実行制御手段
１２． 数式例
１３． 変数として認識されるトークンの例
１４． 代入命令として認識されるトークンの例
１５． 開き括弧として認識されるトークンの例
１６． 変数として認識されるトークンの例
１７． 加算命令として認識されるトークンの例
１８． 変数として認識されるトークンの例
１９． 閉じ括弧として認識されるトークンの例
２０． 除算命令として認識されるトークンの例
２１． 変数として認識されるトークンの例
２２． 図２の数式１２を展開して生成されるラダーコードの例
２３． 変数トークン保持領域の例
【図１】
0004168224.tif 000002
【図２】
0004168224.tif 000003
【図３】
0004168224.tif 000004
【図４】
0004168224.tif 000005