(57)【要約】      （修正有）【課題】ＰＬＣプログラミング作業を容易にする。【解決手段】マウスといったポインティングデバイスを利用したコンピュータにおけるＰＬＣプログラムの編集方法。ドラッグアンドドロップ操作が検知される場合に、ドラッグ済ソースが特定される。ドラッグ済ソースがライブラリーからである場合に、該ドラッグ済ソースはライブラリーのタイプ、すなわち関数又は関数ブロックに応じて、IEC61131シンタックスプログラム部分に任意に変換される。ドラッグ済ソースがＰＯＵ（プログラミングオーガニゼーションユニット）である場合、ドラッグ済ソースは、ソースＰＯＵタイプ、現在編集中のＰＯＵタイプならびに繰り返しコールの禁止基準に応じてIEC61131シンタックスプログラム部分に任意に変換される。ドラッグアンドドロップ操作の実行が不可能である場合、マウスカーソルの形状が利用者に注意喚起のために変更される。【選択図】図２
2009069905.tif 000002
【特許請求の範囲】
【請求項１】
ドラッグアンドドロップ操作の検知、ドラッグ済ソースの特定ならびに、該ドラッグ済ソースに対応するドラッグ済ソースのIEC61131シンタックスプログラム部分への変換、ならびに
ドラッグ済ソースがドラッグアンドドロップ操作について実行可能である場合の該IEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれるポインティングデバイス付きコンピュータ内のPLCプログラム編集方法。
【請求項２】
さらに、ドラッグ済ソースがライブラリーからである場合にドラッグ済ソースに関する関数タイプの判定が含まれる請求項１の方法。
【請求項３】
さらに関数タイプが関数である場合に、ドラッグ済ソースに対応する該関数のIEC61131シンタックスプログラム部分への変換ならびに該IEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれる請求項２の方法。
【請求項４】
さらに関数タイプが関数ブロックである場合に編集されたばかりのプログラム中のＰＯＵタイプの判定が含まれる請求項２の方法。
【請求項５】
さらに編集されたばかりのプログラム中のＰＯＵタイプが関数ブロックである場合に、ドラッグ済ソースに対応する関数ブロックのIEC61131シンタックスプログラム部分への変換ならびに該IEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれる請求項４の方法。
【請求項６】
さらに、編集されたばかりのプログラム中のＰＯＵタイプがプログラムである場合に、該プログラムのドラッグ済ソースに対応するIEC61131シンタックスプログラム部分への変換ならびにIEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれる請求項４の方法。
【請求項７】
さらに、ドラッグ済ソースがプロジェクトのＰＯＵからである場合にドラッグ済ソースに関するＰＯＵタイプの判定が含まれる請求項１の方法。
【請求項８】
さらに、ドラッグ済ソースのＰＯＵタイプが関数である場合に、ドラッグ済ソースが編集されたばかりのプログラム中のＰＯＵと同一名称を有するかどうかの判定が含まれ、名称が異なる場合には、該関数がIEC61131シンタックスプログラム部分へ変換されると同時に、該IEC61131シンタックスプログラム部分がテキスト編集領域に貼付けられる請求項４の方法。
【請求項９】
さらに、ドラッグ済ソースのＰＯＵタイプが関数ブロックである場合に編集されたばかりのプログラム中のＰＯＵタイプの判定が含まれる請求項７の方法。
【請求項１０】
さらに、ＰＯＵタイプが編集されたばかりのプログラムの関数である場合に、「ドロップ」行為が許容されないことを知らせるカーソル形状の変更が含まれる請求項９の方法。
【請求項１１】
さらに、編集されたばかりのプログラムのＰＯＵタイプが関数ブロックである場合に、ドラッグ済ソースが編集されたばかりのプログラム中のＰＯＵであるかどうかの判定が含まれる請求項９の方法。
【請求項１２】
さらに、ドラッグ済ソースが編集されたばかりのＰＯＵである場合に、「ドロップ」行為が許容されないことを知らせるカーソル形状の変更が含まれる請求項１１の方法。
【請求項１３】
さらに、ドラッグ済ソースが編集されたばかりのＰＯＵではない場合に、ドラッグ済ソースのIEC61131シンタックスプログラム部分への変換ならびに該IEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれる請求項１１の方法。
【請求項１４】
さらに、編集されたばかりのＰＯＵタイプがプログラムである場合に、ドラッグ済ソースのIEC61131シンタックスプログラム部分への変換ならびに該IEC61131シンタックスプログラム部分のテキスト編集領域への貼付けが含まれる請求項９の方法。
【請求項１５】
さらに、編集されたばかりのＰＯＵタイプがプログラムである場合に、「ドロップ」行為が許容されないことを知らせるカーソル形状の変更が含まれる請求項７の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はポインティングデバイス付きのコンピュータにおけるＰＬＣプログラムの編集方法、特に、ドラッグアンドドロップ操作でドラッグ済ソースが特定されると同時にドラッグ済ソースがIEC61131とコンパチブルなプログラム部分に選択して変換される場合のインティングデバイス付きのコンピュータにおけるＰＬＣプログラムの編集方法に関する。
【背景技術】
【０００２】
プログラマーロジックコントローラ（ＰＬＣ）コントロールプログラム用に開発されるソフトウェアは主としてラダーダイアグラム（ＬＤ）に集中する。ＬＤ言語は単純シンタックスを有すると同時に、ＰＬＣコントロールプログラム用に広範に利用される。しかしながら、変動データ構造、算術計算、オブジェクト指向設計、およびプログラムコントロールといったＬＤ言語は高級言語特性に欠ける。さらに、ＬＤ言語のシンタックスはまたＰＬＣハードウェアプラットフォームにも依存する。従って、国際電気技術委員会（ＩＥＣ）は高級言語特性をＰＬＣコントロールプログラムの開発ツールを開発するプログラムに組込むためのIEC61131-3標準言語を定義した。
【０００３】
IEC61131-3は以下の５つの標準言語を定義する。
１．ＬＤ
ＬＤ言語のプログラミングは機械的操作シーケンス情報を必要とすると同時に、コントロールループが最初に描かれる。その後、リレーコントロールの接触aと接触b、連続および平行な接続とコイルがシンボル化される。
２．関数ブロックプログラム、ＦＢＤ
ＦＢＤは適切な接続を伴う事前決定関数ブロックから構成される。従って、ＦＢＤは特にコントロールコンポーネントのデータフローに特に相応しい。
３．インストラクションリスト（ＩＬ）あるいはステートメントリスト（ＳＬ）
ＩＬはブール代数と基本論理操作からなる低級言語である。ＩＬは主としてＡＮＤ，ＯＲ，およびＮＯＴといった記憶法を含む。
４．構造テキスト（ＳＴ）
ＳＴは算術操作、サブルーチン、ループおよび条件判断といった高級言語能力を使うＰＬＣ向けである。従って、高級言語能力を使うＰＬＣは通信ネットワークによってＰＣと連結可能である。
５．シーケンシャル関数チャート（ＳＦＣ）
ＳＦＣは機械的操作をシーケンシャルな関数フローに分解した後、全体の機械的操作を実行するシーケンシャル関数を連結する。
【０００４】
IEC61131-3プログラムはＰＬＣに連結されたコンピュータ内のＰＬＣ用プログラムエントリーデバイスによってあるいはコンピュータソフトウェアによって入力可能である。前者はコマンドコードの入力に合っているが、後者ではあらゆる種類のＰＬＣ言語が入力可能である。CoDeesysあるいはInfoTeamのような従来型のコンピュータ編集言語を使用する場合、プログラムの設計者はプログラムのシンタックスを記憶しなくてはならない。プログラムに関数呼び出しが含まれる場合、プログラム設計者は呼出関数の引数も知らなくてはならない。これは利用者に極めて不便である。
【０００５】
IEC61131-3はＳＴおよびＩＬ言語向けの詳細な規則を有する。ＰＬＣプログラムを編集するドラッグアンドドロップ関数が提供されることによって利用者が呼出関数のシンタックスを記憶する必要がなくなる点が望ましい。
【発明の開示】
【０００６】
本発明の目的はポインティングデバイスの付いたコンピュータでＰＬＣ言語を編集することによってドラッグ済ソースに対応するEC61131シンタックスプログラム部分がドラッグアンドドロップ操作によって自動的に編集領域に貼付可能となる方法を提供することである。
【０００７】
従って、本発明はマウスのようなポインターデバイス付きコンピュータにおけるＰＬＣプログラムの編集方法を提供する。ドラッグアンドドロップ操作が検知される場合に、ドラッグ済ソースが特定される。ドラッグ済ソースがライブラリーからである場合に、該ドロップ済ソースはライブラリーのタイプ、つまり、関数あるいは関数ブロックに応じてIEC61131-3シンタックスプログラム部分に変換される選択余地がある。ドラッグ済ソースはＰＯＵ（プログラミングオーガニゼーションユニット）である場合、ドラッグ済ソースはソースＰＯＵタイプ、編集されたばかりのＰＯＵタイプおよび繰り返し呼出の禁止基準に応じてIEC61131-3シンタックスプログラム部分に変換される選択余地がある。ドラッグアンドドロップ操作が実行不可能である場合、マウスカーソルの形状は利用者の注意喚起のため変更される。本発明の方法はライブラリーおよびＰＯＵ内の項目のＰＬＣプログラミング作業を容易にするIEC61131-3シンタックスプログラム部分への便利な変換を可能にする
【発明を実施するための最良の形態】
【０００８】
図１はウィンドー操作システムを伴うコンピュータで実行される本発明のＰＬＣプログラム編集方法を示す模式図である。ウィンドーの上部部分に示される関数メニュー、すなわち、右下部のプログラムファイルマネージャーおよび右下部分の編集領域がある。しかしながら、レイアウトは表示用にすぎなく、本発明の制約が与えられるものではない。
【０００９】
プログラムファイルマネージャーには２つのファイルフォルダ、すなわち、ライブラリーフォルダおよびプログラミングオーガニゼーションユニット（ＰＯＵ）フォルダを伴うプロジェクトツリーがある。ライブラリーフォルダのファイルには、関数（ＦＣ）および関数ブロック（ＦＢ）の２つのタイプがある。プロジェクトのＰＯＵには３つのタイプ、１．プログラム（ＰＧ）、２．関数（ＦＣ）および３．関数ブロック（ＦＢ）がある。ライブラリー関数およびＰＯＵは利用者によって呼び出され得る。しかしながら、関数はすでに組込まれておりこれ以上編集は不可能である。編集されたばかりのプログラムは利用者によるテキスト入力を用いて編集領域で設計される。
【００１０】
この図に示される通り、このウィンドー内で編集されたばかりのプログラム（編集領域に示される）のＰＯＵタイプはプログラムであると同時にＰＯＵの表題はＳＴである。IEC61131には次の呼出規則がある。
１．プログラム（ＰＧ）には呼出関数（ＦＣ）および関数ブロック（ＦＢ）があり得る。
２．関数ブロック（ＦＢ）は呼出関数（ＦＣ）および関数ブロック（ＦＢ）であり得るがプログラム（ＰＧ）の呼出は不可能である。
３．関数（ＦＣ）は関数（ＦＣ）の呼出可能であるが、関数ブロック（ＦＢ）は呼出不可能である。
４．繰り返し呼出は許容されないと同時にＰＯＵの自己呼出は不可能である。
【００１１】
従って、上述の呼出の優先性はプログラム（ＰＧ）→関数ブロック（ＦＢ）→関数（ＦＣ）であるとともに繰り返し呼出は全く許容されない。
【００１２】
図２は本発明の好ましい第１実施例によるＰＬＣプログラム編集方法のフローチャートを示す。ＰＬＣプログラム編集方法はIEC61131テキストエディターが作動する場合（段階１０）に操作される。マウスのようなカーソルツールがドラッグアンドドロップ操作（段階１２）を検知する場合、本発明の方法はドラッグ内容がテキストエディターにドロップ可能であるかどうかを判定する（段階１４）。不可であれば、処理は段階１０に戻る。可であれば、ドラッグ済内容はＦＢあるいはＦＣであると判定される（段階１６）。ドラッグ済内容がＦＣフォーマットの場合には、ドラッグ済内容はIEC61131シンタックスとコンパチブルなＦＣプログラム部分に変換される（段階１６Ａ）とともに、該IEC61131-3シンタックスとコンパチブルなＦＣプログラム部分はIEC61131-テキストエディターに貼付けられる（段階１８）。ドラッグされる内容はＦＢフォーマットである場合、ドラッグ済内容はIEC61131シンタックスとコンパチブルなＦＢプログラム部分に変換される（段階１６Ｂ）と同時に、該IEC61131-3シンタックスとコンパチブルなＦＢプログラム部分はIEC61131-テキストエディターに貼付けられる（段階１８）。従って、本発明のＰＬＣプログラム編集方法によって、ＰＬＣプログラマーは直接ライブラリー内のＦＣプログラムあるいはＦＢプログラムをテキストエディターにドラッグできる。ＦＣプログラムあるいはＦＢプログラムに対応するIEC61131フォーマットのプログラムテキストがプログラマーのプログラム編集を容易にするためテキストエディターに貼付けられる。図３および図３Ａは本発明の好ましい第２実施例によるＰＬＣプログラム編集方法のフローチャートを示す。好ましい第２実施例はドロップ操作がドラッグ済内容を基本に実行可能かどいうかを示す。
【００１３】
マウスのようなポインティングツールが、利用者に編集されたばかりのＰＬＣプログラムを編集するテキストの入力を可能にするIEC61131テキスト編集領域においてドラッグアンドドロップ操作を検知する場合（段階２０）に、本発明の方法がドラッグ済内容のソースを判定して（段階２２）、ドラッグ済内容がライブラリーからである場合（段階３０）、ドラッグされた内容がプロジェクトのＰＯＵである場合（段階５０）ならびに、ドラッグ済内容がその他のソースからである場合（段階７０）に、フォローアップ処理が行われる。ドラッグ済内容がライブラリーからである場合（段階３０）に、ドラッグ済内容の関数タイプが判定される（段階３００）。ドラッグ済内容の関数タイプがＦＣである場合には、ドラッグ済内容はIEC61131シンタックスとコンパチブルなＦＣプログラム部分に変換され（段階３０２）、マウスカーソル形状が「ドロップ行為」が許容されることを知らせるアイコンに変更され（段階３１４）、カーソルに対応する位置が見つけられてから（段階３１８）、IEC61131シンタックスとコンパチブルなＦＣプログラム部分がIEC61131テキスト編集領域に貼付けられる（段階３２０）。
【００１４】
ドラッグされる内容の関数タイプがＦＢである場合には、現在編集されたばかりのプログラムのＰＯＵタイプが判定される（段階３１０）。現在編集されたばかりのプログラムのＰＯＵタイプがＦＣである場合には、マウスカーソル形状は、ＦＣがＦＢを呼び出すことは不可能であるので、「ドロップ」行為が許容されないことを示すアイコンに変更される（段階３１２）。現在編集されたばかりのプログラムのＰＯＵタイプがＦＢあるいはＰＧである場合には、マウスカーソル形状は「ドロップ」行為が可能であることを示すアイコンに変更され（段階３１４）、ドラッグ済内容がIEC61131シンタックスとコンパチブルなＦＢプログラム部分に変換され（段階３１６）、カーソルに対応する位置が見つけられる（段階３１８）とともに、IEC61131シンタックスとコンパチブルなＦＢプログラム部分がIEC61131テキスト編集領域に貼付けられる（段階３２０）。
【００１５】
ドラッグされる内容がプロジェクトのＰＯＵからである場合（段階５０）には、ドラッグ済内容につぃてのＰＯＵタイプが判定され（段階５２）、この場合にはドラッグ済内容につぃてのＰＯＵタイプがＦＣ（段階５４）、ＦＢ（段階５６）およびＰＧ（段階５８）に分類される。
【００１６】
ドラッグ済内容につぃてのＰＯＵタイプがＦＣである場合には、ドラッグ済内容が現在編集されたばかりのプログラムのＰＯＵ（以降、現在編集されたばかりのＰＯＵという）と同一の名称を有するかどうか判定される（段階５４）。ドラッグ済内容が現在編集されたばかりのプログラムのＰＯＵと同一の名称を有する場合には、マウスカーソルの形状は、繰り返し呼出が許容されないため「ドロップ」行為が許容されない（段階５４０）ことを示すアイコンに変更される。ドラッグ済内容が現在編集されたばかりのプログラムのＰＯＵと同一の名称を有しない場合には、段階５４２から５４８までが「ドロップ」行為が許容されることを知らせるとともにドラッグ済ＰＯＵをIEC61131シンタックスとコンパチビリティがあり、ＦＣを呼び出すＩＥＣをマニフェストするプログラム部分に変換すると同時に、カーソル位置を見つけると同時にIEC61131とコンパチブルなプログラム部分をIEC61131テキスト編集領域に貼付けるように実行される。
【００１７】
ドラッグ済内容に関するＰＯＵタイプがＦＢである場合には、現在編集されたばかりのＰＯＵのＰＯＵタイプが判定され（段階５４）、段階５６０（現在編集されたばかりのＰＯＵのＰＯＵタイプがＦＣである）、段階５６２（現在編集されたばかりのＰＯＵのＰＯＵタイプがＦＢである）および段階５６６（現在編集されたばかりのＰＯＵのＰＯＵタイプがＰＧである）がそれぞれ実行される。
【００１８】
現在編集されたばかりのＰＯＵのＰＯＵタイプがＦＣである場合には、マウスカーソル形状はＦＣがＦＢを呼び出すことが不可能であるので、「ドロップ」行為が許容されないことを知らせるアイコンに変更される（段階５６０）。現在編集されたばかりのＰＯＵのＰＯＵタイプがＦＢである場合には、ドラッグ済内容はこれが現在編集されたばかりのＰＯＵと同一名称を持つかどうか判定される（段階５６２）。ドラッグ済内容が現在編集されたばかりのＰＯＵと同一の名称を有する場合には、マウスカーソル形状は、繰り返し呼出は許容されないので、「ドロップ」行為が許容されないことを知らせるアイコンに変更される（段階５６４）。ドラッグ済内容が現在編集されたばかりのＰＯＵと同一名称でない場合には、段階５６６から段階５７２までが「ドロップ」行為が許容されることを知らせるとともに、ドラッグ済ＰＯＵを、IEC61131シンタックスとコンパチブルであると同時にＦＢを呼び出すＩＥＣをマニフェストするプログラム部分に変換するとともに、カーソル位置を見いだし、IEC61131テキスト編集領域に貼付けるためのIEC61131とコンパチブルなプログラム部分をIEC61131テキスト編集領域に貼付けるように実行される。
【００１９】
現在編集中のＰＯＵのＰＯＵタイプがＰＧである場合、段階５６６から段階５７２までが「ドロップ」行為が許容されないことを知らせると同時にソースＰＯＵをIEC61131とコンパチブルなプログラム部分に変換するように実行される。
【００２０】
段階５２では、ドラッグ済内容のＰＯＵタイプがＰＧである場合には、ＰＧが呼出不可であるためにマウスカーソル形状が「ドロップ」行為が許容されないことを知らせるアイコンに変更される（段階５８）。
【００２１】
段階２４では、ドラッグ済内容のＰＯＵタイプがその他のものである場合には、マウスカーソル形状が、プログラマーにエラー操作を警告するよう「ドロップ」行為が許容されないことを知らせるアイコンに変更される
【００２２】
図４、図５Ａ、および図５Ｂを参照して、上述の方法による通常の操作が示されており、この場合、ＰＧタイプのＰＯＵがライブラリーのＦＢ内容を伴うドラッグアンドドロップ操作を受入れる。操作フローが図４の破線によって示される。
【００２３】
ＰＧタイプのＰＯＵを編集するテキストエディターがドラッグアンドドロップ操作を感知する場合に、テキストエディターは現在編集されたばかりのＰＯＵがＰＧであると同時に、ドラッグ済ソースがＦＢであることを知る。従って、該処理は、図４に示されるように、段階２０→段階２２→段階２４→段階３０→段階３１０→段階３１４→段階３１６→段階３１８→３２０である。本発明の処理によると、ドラッグ済ソースはＦＢであると同時に、現在編集されたばかりのＰＯＵはＰＧである。従って、カーソルは「ドロップ」行為が許容されることを知らせる形状に変更される。ソースＰＯＵはＦＢ  IEC61131シンタックスとコンパチブルなプログラム部分に変換されると同時に、該ＦＢIEC61131シンタックスとコンパチブルなプログラム部分はカーソルによって指定されるIEC61131テキスト編集領域に貼付けられる。
【００２４】
IEC61131には、その他の高級プログラムとは全く違う、関数呼出（ＦＣ）ならびに関数ブロック（ＦＢ）用の極めて特殊なシンタックスがある。本発明の方法は、ドラッグ済ソースがドロップの実行が可能である場合にドラッグ済ソースを該ドラッグ済ソースに対応するIEC61131シンタックスプログラム部分に変換する。該IEC61131シンタックスプログラム部分にはプログラマーのプログラミングの設計と作成を容易にするIEC61131テキストプログラムおよびテキスト引数が含まれる。
【００２５】
さらに、該プログラマーはIEC61131シンタックスを覚える必要がない上に、プログラミング効率が高められ得る。
【００２６】
本発明は、好ましい実施例を参照して説明されてきたが、本発明はその詳細に限定されることはない点が理解されなくてはならない。様々な置き換えと変更がこれまでの説明で示唆されたがその他のものも専門技術者には思い浮かぼう。従って、これらすべての置き換えと変更は付録の請求項に定められる本発明の範囲内に包含されるべきものと意図される。
【図面の簡単な説明】
【００２７】
新規性があると思われる本発明の特徴は付録の請求項で詳細に規定される。しかしながら、本発明自体は、添付図面と関連して行われるある本発明の代表的実施例を記述した本発明に関する以下の詳細説明への参照によって最も良く理解され得る。すなわち、
【００２８】
【図１】本発明のＰＬＣプログラム編集方法を示す模式図
【図２】本発明の好ましい第１実施例によるＰＬＣプログラム編集方法を示すフローチャート
【図３】本発明の好ましい第２実施例によるＰＬＣプログラム編集方法を示すフローチャート
【図３Ａ】本発明の好ましい第２実施例によるＰＬＣプログラム編集方法を示すフローチャート
【図４】本発明の方法による通常操作を示す図
【図５Ａ】図４の通常操作の結果を示す図
【図５Ｂ】図４の通常操作の結果を示す図
【図１】
2009069905.tif 000003
【図２】
2009069905.tif 000004
【図３】
2009069905.tif 000005
【図３Ａ】
2009069905.tif 000006
【図４】
2009069905.tif 000007
【図５Ａ】
2009069905.tif 000008
【図５Ｂ】
2009069905.tif 000009
【外国語明細書】
METHOD FOR EDITING PROGRAMMER LOGIC CONTROLLER (PLC) PROGRAM
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method editing a PLC program in a computer with a pointing device, especially to a method editing a PLC program in a computer with a pointing device, wherein the dragged source in a drag-and-drop operation is identified and the dragged source is selectively converted to program portion compatible to IEC61131.
2. Description of Prior Art
The software developed for programmer logic controller (PLC) control program is mainly focused on Ladder Diagram (LD). LD language has simple syntax and is extensively used for PLC control program. However, LD language is lack of high-level language properties such as variable data structure, arithmetic calculation, object orientation design, and program control. Moreover, the syntax of LD language also depends on PLC hardware platform. Therefore, International Electrotechnical Commission (IEC) has defined IEC 61131-3 standard language to incorporate high-level language properties into the program developing tool of PLC control program.
IEC 61131-3 defines the following five standard languages.
1. LD
The programming of LD language requires the information of mechanic operation sequence and control loop should be drawn firstly. Afterward, the contact a and the contact b in relay control, the serial and parallel connection and coil are symbolized.
2. Functional Block Diagram, FBD
FBD is composed of predetermined functional block with suitable connection. Therefore, FBD is especially suitable for data flow in control components.
3. Instructional List (IL) or Statement List (SL)
IL is a low level language composed of Boolean algebra and basic logic operation. IL mainly comprises Mnemonics such as AND, OR and NOT.
4. Structure Text (ST)
ST is for PLC with high level language ability such as arithmetic operation, subroutine, loop and condition judgment. Therefore, the PLC with high level language ability can be linked with PC by communication network.
5. Sequential Function Chart (SFC)
SFC decomposes mechanic operation into sequential function flow and then links the sequential functions to realize integral mechanic operation.
IEC 61131-3 program can be input by program entry device for PLC, or by a computer software in a computer linked to the PLC. The former is suitable for inputting command code; while the latter can input all kinds of PLC languages. When using conventional computer compilation languages such as CoDesys or InfoTeam, program drafters need to memorize the syntax of program. When the program includes function call, the program drafters also need to know the arguments in the called function. It is very inconvenient to user.
IEC 61131-3 has specific rule for ST and IL language. It is desirable to provide a drag and drop function to edit the PLC program, whereby user need not to memorize the syntax of the called function.
SUMMARY OF THE INVENTION
It is the object of the present invention to provide a method editing a PLC program in a computer with a pointing device, whereby an IEC61131-syntax program portion corresponding to a dragged source can be automatically pasted to an edit area by a drag-and-drop operation.
Accordingly, the present invention provides a method editing a PLC program in a computer with a pointing device such as a mouse. When a drag-and-drop operation is detected, a dragged source is identified. When the dragged source is from libraries, the dragged source is optionally converted into an IEC61131-syntax program portion according to the type of the libraries, namely, function or function block. When the dragged source is a POU (Programming Organization Unit), the dragged source is optionally converted into an IEC61131-syntax program portion according to the source POU type, the currently-edited POU type and criterion of forbidding recursion call. When the drag and drop operation is not feasible, the shape of mouse cursor is changed to remind user. The method of the present invention can advantageously convert items in libraries and POU into IEC61131-syntax program portion to facilitate the PLC programming task.
BRIEF DESCRIPTION OF DRAWING:
The features of the invention believed to be novel are set forth with particularity in the appended claims. The invention itself however may be best understood by reference to the following detailed description of the invention, which describes certain exemplary embodiments of the invention, taken in conjunction with the accompanying drawings in which:
Fig. 1 is a schematic view for demonstrating the PLC program editing method of the present invention.
Fig. 2 shows the flowchart of the PLC program editing method according to the first preferred embodiment of the present invention.
Fig. 3 and Fig. 3A show the flowchart of the PLC program editing method according to the second preferred embodiment of the present invention.
Fig. 4 shows an exemplary operation according to the method of the present invention.
Fig. 5A and Fig. 5B show the results of exemplary operation in Fig. 4.
DETAILED DESCRIPTION OF THE INVENTION
Fig. 1 is a schematic view for demonstrating the PLC program editing method of the present invention, which is implemented in a computer with window operation system. There is a function menu shown at upper portion of the window, a program file manager at lower-right portion and an editor area at lower-right portion. However, the layout is only for demonstration and does not pose limitation to the present invention.
The program file manager has a project tree with two file folders, namely, Library folder and Programming Organization Unit (POU) folder. The files in the Library folder have two types; function (FC) and function block (FB). The POU in project has three types: 1. Program (PG) 2. Function (FC) and 3. Function block (FB). The function in library and POU can be called by user. However, function has been packed and cannot be further edited. A currently-edited program is drafted in the editor area with text input by user. 
As shown in this figure, the POU type in the currently-edited program (shown in the editor area) in this window is program and the title of the POU is ST. IEC61131 has following calling rules:
1. Program (PG) can call Function (FC) and Function block (FB).
2. Function block (FB) can call Function (FC) and Function block (FB), but cannot call Program (PG).
3. Function (FC) can call Function (FC), but cannot call and Function block (FB).
4. No recursive call is allowed and POU cannot call itself.
Therefore, the priority in above calling is Program (PG) →Function block (FB) →Function (FC) and No recursive call is allowed.
Fig. 2 shows the flowchart of the PLC program editing method according to the first preferred embodiment of the present invention. The PLC program editing method is operated when an IEC61131 text editor works (step 10). When a cursor tool such as a mouse detects a drag and drop operation (step 12), the method of the present invention judges whether a dragged content can be dropped to the text editor (step 14). If false, the process is back to step 10. If true, the dragged content is judged to be FB or FC (step 16). If the dragged content is FC format, then the dragged content is converted to an FC program portion compatible with IEC61131 syntax (step 16A), and the program portion compatible with IEC61131 syntax is then pasted to the IEC61131 text editor (step 18). If the dragged content is FB format, then the dragged content is converted to an FB program portion compatible with IEC61131 syntax (step 16B), and the program portion compatible with IEC61131 syntax is then pasted to the IEC61131 text editor (step 18). Therefore, by the PLC program editing method of the present invention, PLC programmer can directly drag an FC program or an FB program in the library to a text editor. The program text of IEC61131 format corresponding to the FC program or an FB program is pasted to the text editor for facilitating the programmer to edit program.
Fig. 3 and Fig. 3A show the flowchart of the PLC program editing method according to the second preferred embodiment of the present invention. The second preferred embodiment demonstrates whether the drop operation is feasible based on the dragged content.
When a pointing tool such as a mouse detects a drag and drop operation in the IEC61131 text-editor area, which allows user input text to edit an currently-edited PLC program (step 20), the method of the present invention judges the source for the dragged content (step 22), the follow-up process is performed when the dragged content is from library (step 30), when the dragged content is from POU in project (step 50), and when the dragged content is from other source (step 70).
When the dragged content is from library (step 30), the function type of the dragged content is judged (step 300). When the function type of the dragged content is FC, then the dragged content is converted to an FC program portion compatible with IEC61131 syntax (step 302), the mouse cursor shape is changed to an icon indicating that "drop" action is allowable (step 314), the position corresponding to the cursor is found (step 318), and then the FC program portion compatible with IEC61131 syntax is pasted to the IEC61131 text-editor area (step 320).
When the function type of the dragged content is FB, then the POU type of the currently-edited program is judged (step 310). When the POU type in currently-edited program is FC, then mouse cursor shape is changed to an icon indicating that "drop" action is not allowable (step 312) because FC cannot call FB. When the POU type in currently-edited program is FB or PG, then mouse cursor shape is changed to an icon indicating that "drop" action is allowable (step 314), the dragged content is converted to an FB program portion compatible with IEC61131 syntax (step 316), the position corresponding to the cursor is found (step 318), and then the FB program portion compatible with IEC61131 syntax is pasted to the IEC61131 text-edit area (step 320).
When the dragged content is from a POU in project (step 50), the POU type for the dragged content is judged (step 52), wherein the POU type for the dragged content is classified into FC (step 54), FB (step 56) and PG (step 58).
When the POU type for the dragged content is FC, the dragged content is judged whether it has the same name as the POU in the currently-edited program (hereinafter, briefed as currently-edited POU) (step 54). If the dragged content has the same name as the POU in the currently-edited program, then the mouse cursor shape is changed to an icon indicating that "drop" action is not allowable (step 540) because recursive call is not allowed. If the dragged content has not the same name as the currently-edited POU, then steps 542 to 548 are perform to indicate that "drop" action is allowable, and to convert the dragged POU to program portion compatible to IEC61131 syntax and manifesting IEC calling an FC, and to find the cursor position and to paste the program portion compatible with IEC61131 to the IEC61131 text-editor area.
When the POU type for the dragged content is FB, the POU type of the currently-edited POU is judged (step 54), and step 560 (the POU type of the currently-edited POU is FC), step 562 (the POU type of the currently-edited POU is FB), and step 566 (the POU type of the currently-edited POU is PG) is performed, respectively.
When the POU type of the currently-edited POU is FC, then the mouse cursor shape is changed to an icon indicating that "drop" action is not allowable (step 560) because FC cannot call FB. When the POU type of the currently-edited POU is FB, then the dragged content is judged whether it has the same name as the currently-edited POU (step 562). If the dragged content has the same name as the currently-edited POU, then the mouse cursor shape is changed to an icon indicating that "drop" action is not allowable (step 564) because recursive call is not allowed. If the dragged content has not the same name as the currently-edited POU, then steps 566 to 572 are perform to indicate that "drop" action is allowable, and to convert the dragged POU to program portion compatible to IEC61131 syntax and manifesting IEC calling an FB, and to find the cursor position and to paste the program portion compatible with IEC61131 to the IEC61131 text-editor area.
When the POU type of the currently-edited POU is PG, then steps 566 to 572 are perform to indicate that "drop" action is allowable and to convert the source POU to program portion compatible with IEC61131 syntax for pasting to the IEC61131 text-edit area.
In step 52, when the POU type of the dragged content is PG, then the mouse cursor shape is changed to an icon indicating that  "drop" action is not allowable (step 58) because PG cannot be called.
In step 24, when the POU type of the dragged content is other, then the mouse cursor shape is changed to an icon indicating that "drop" action is not allowable to warn programmer with error operation.
With reference to Figs. 4, 5A, and 5B, an exemplary operation according to above method is demonstrated, wherein a POU of PG type receives a drag-and-drop operation with FB content in library. The flow of operation is shown by dashed line in Fig. 4.
When the text editor editing a POU of PG type senses a drag-and-drop operation, the text editor knows that the currently-edited POU is PG and the dragged source is FB. Therefore, the process is step 20→step 22→step 24→step 30→step 310→step 314→step 316→step 318→step 320, as shown in Fig. 4. According to the process of the present invention, the dragged source is FB and the currently-edited POU is PG. Therefore, the cursor will change to the shape indicating that "drop" action is allowable. The source POU is converted to a program portion compatible with FB IEC61131 syntax and the program portion compatible with FB IEC61131 syntax is pasted to the IEC61131 text-edit area designated by the cursor.
IEC61131 has very particular syntax for calling function (FC) and function block (FB), which is greatly different to other high-level program. The method of the present invention converts a dragged source to an IEC61131-syntax program portion corresponding to the dragged source when the dragged source is feasible to drop. The IEC61131-syntax program portion contains IEC61131 text program and text arguments to facilitate the programming drafting of programmer.
Moreover, the programmer does not need to memorize the IEC61131 syntax and the programming efficiency can be enhanced.
Although the present invention has been described with reference to the preferred embodiment thereof, it will be understood that the invention is not limited to the details thereof. Various substitutions and modifications have suggested in the foregoing description, and other will occur to those of ordinary skill in the art. Therefore, all such substitutions and modifications are intended to be embraced within the scope of the invention as defined in the appended claims.
WHAT IS CLAIMED IS
1. A method for editing a PLC program in a computer with a pointing device, comprising:
detecting a drag-and-drop operation;
identifying a dragged source; and
converting the dragged source to an IEC61131-syntax program portion corresponding to the dragged source, and pasting the IEC61131-syntax program portion to a text edit area when the dragged source is feasible for a drag-and-drop operation.
2. The method in claim 1, further comprising:
when the dragged source is from a library, then judging a function type for the dragged source.
3. The method in claim 2, further comprising:
when the function type is a function, then converting the function into the IEC61131-syntax program portion corresponding to the dragged source, and pasting the IEC61131-syntax program portion to the text editor area
4. The method in claim 2, further comprising:
when the function type is a function block, then judging a POU type in a currently-edited program.
5. The method in claim 4, further comprising:
when the POU type in the currently-edited program is a function block, then converting the function block into the IEC61131-syntax program portion corresponding to the dragged source, and pasting the IEC61131-syntax program portion to the text editor area.
6. The method in claim 4, further comprising:
when the POU type in the currently-edited program is a program, then converting the program into the IEC61131-syntax program portion corresponding to the dragged source, and pasting the IEC61131-syntax program portion to the text editor area.
7. The method in claim 1, further comprising:
when the dragged source is from a POU in a project, then judging a POU type for the dragged source.
8. The method in claim 4, further comprising:
when the POU type in the dragged source is a function, then judging whether the dragged source has the same name as the POU in currently-edited program;
when the name is different, the function is converted into the IEC61131-syntax program portion and the IEC61131-syntax program portion is pasted to the text editor area.
9. The method in claim 7, further comprising:
when the POU type in the dragged source is a function block, then judging the POU type in currently-edited program.
10. The method in claim 9, further comprising:
changing the shape of cursor to indicate that "drop" action is not allowable, when the POU type is function in currently-edited program.
11. The method in claim 9, further comprising:
when the POU type in currently-edited program is function block, then judging whether the dragged source is the POU in currently-edited program.
12. The method in claim 11, further comprising:
when the dragged source is the POU in currently-edited program, then changing the shape of cursor to indicate that "drop" action is not allowable.
13. The method in claim 11, further comprising:
when the dragged source is not the POU in currently-edited program, then converting the dragged source into the IEC61131-syntax program portion and pasting the IEC61131-syntax program portion to the text editor area.
14. The method in claim 9, further comprising:
when the POU type in currently-edited program is program, then converting the dragged source into the IEC61131-syntax program portion and pasting the IEC61131-syntax program portion to the text editor area.
15. The method in claim 7, further comprising:
when the POU type in the dragged source is a program, then changing the shape of cursor to indicate that "drop" action is not allowable.
ABSTRACT OF THE DISCLOSURE
A method edits a PLC program in a computer with a pointing device such as a mouse. When a drag-and-drop operation is detected, a dragged source is identified. When the dragged source is from libraries, the dragged source is optionally converted into an IEC61131-syntax program portion according to the type of the libraries, namely, function or function block. When the dragged source is a POU (Programming Organization Unit), the dragged source is optionally converted into an IEC61131-syntax program portion according to the source POU type, the currently-edited POU type and criterion of forbidding recursion call. When the drag and drop operation is not feasible, the shape of mouse cursor is changed to remind user. The method of the present invention can advantageously convert items in libraries and POU into IEC61131-syntax program portion to facilitate the PLC programming task.
【図１】
2009069905.tif 000010
【図２】
2009069905.tif 000011
【図３】
2009069905.tif 000012
【図３Ａ】
2009069905.tif 000013
【図４】
2009069905.tif 000014
【図５Ａ】
2009069905.tif 000015
【図５Ｂ】
2009069905.tif 000016