(57)【要約】【課題】  ＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの制御文の作成と編集をするときに、ユーザにかかる負荷を軽減して作業効率を向上することができるプログラミング装置を提供する。  【解決手段】  制御文の開始命令を配置するとき、制御文の終端命令を同時に配置して、終端命令をキー操作で移動させる手段と、移動するときにプログラムロジックを判断して適切に移動させる手段を備える。【選択図】図１
2006079314.tif 000002
【特許請求の範囲】
【請求項１】
画面にラダーダイアグラムを表示してプログラマブルコントローラ用シーケンスプログラムを作成するプログラミング装置において、
ＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの条件分岐や繰り返し処理をする制御文をラダーダイアグラム上に作成するときは、
前記制御文の開始命令を配置すると同時にＥＮＤ＿ＩＦ命令やＥＮＤ＿ＦＯＲ命令、ＥＮＤ＿ＷＨＩＬＥ命令など前記制御文に対応する終端命令を前記開始命令の直下に一時的に配置させる機能と、
一時的に配置された前記終端命令を所望の位置にキー操作で移動させる機能と、
前記終端命令を所望の位置に移動するときに他の制御文の内部に移動させようとすれば前記制御文を飛び越えて前記制御文の終端命令の直下に移動させる機能と、
を備えたことを特徴とするプログラミング装置。
【請求項２】
新規に作成された制御文の開始命令を他の制御文の内部に配置したときは、新規に作成された前記制御文の終端命令を前記他の制御文の外部へ移動できないようにする機能を備えたことを特徴とする請求項１に記載のプログラミング装置。
【請求項３】
ラダーダイアグラム上に任意の制御文が配置されているときに、該制御文の開始命令を他のラダー命令に変更すれば、前記制御文の終端命令も編集後のラダー命令の種別に応じて変更させる機能を備えたことを特徴とする請求項１に記載のプログラミング装置。
【請求項４】
請求項１乃至３に記載の機能を有効にするサポートモードと、該機能を無効にしてユーザ独自でロジックの有効性を判断しながらプログラムを作成するマニュアルモードの２つのモードを切り替える機能を備えたことを特徴とする請求項１ないし３のいずれかに記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面にラダーダイアグラムを表示し、編集しながらシーケンスプログラムを作成することができるプログラマブルコントローラのプログラミング装置に関する。
【背景技術】
【０００２】
プログラマブルコントローラを用いてシーケンス制御を行わせるときは、ユーザはプログラミングツールなどを用いてプログラマブルコントローラに入力するためのラダーダイアグラムを作成する必要がある。
【０００３】
ラダーダイアグラムを作成するときは、ラダー命令の一覧からリレー回路命令や数値演算命令など必要とするラダー命令を選択し、プログラムロジックを考慮しながら電源線上に配置して作業が進められる。このとき、ＩＦ文やＦＯＲ文など、条件分岐処理や繰り返し処理を実現する制御文が作成されることもある。これらの制御文は、通常、ある条件式の評価結果に基づいて指定範囲内の命令列（以降、被制御命令列とする）の実行を制御する形をとり、制御文を作成するには制御文の開始命令と終端命令、条件式、被制御命令列の要素が必要となる。たとえばＩＦ文の場合、ＩＦ命令を開始命令とし、ＥＮＤ＿ＩＦ命令を終端命令として上記の両命令の間の電源線上に被制御命令列が作成される。そのときの条件式は開始命令のオペランドとして設定される。
【０００４】
図７はＩＦ命令とＥＮＤ＿ＩＦ命令で構成された制御文、すなわちＩＦ文、の構成を示しており、１は各種命令を配置する電源線、２はＩＦ文の開始命令であり、使用しているラダー命令はＩＦ命令である。３はＩＦ文の条件式、４はＩＦ文の終端命令であり、使用しているラダー命令はＥＮＤ＿ＩＦ命令である。５は被制御命令であり、開始命令２で規定された実行条件３が満たされた場合に実行される命令である。
このようなラダー命令の配置作業の効率化のため、種々のプログラミング装置が提案されている。そのひとつに、たとえばプログラム上でプログラム未完成位置を指定してラダー命令の一覧を表示させると、指定個所の前後のロジックに基づいて、指定個所に配置するのに適切なラダー命令の一覧を、その優先順位にしたがって表示させるというものがある（たとえば、特許文献１参照）。
【特許文献１】特開平９−２５１３０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、プログラミングツールを用いてラダーダイアグラム上に制御文を作成するときは、開始命令と終端命令を各々個別に作業して配置しなければならず、２つの命令を配置する作業と同じ作業量が必要であった。また、終端命令を配置する時は不正なプログラムロジックにならないようユーザが意識しながら配置する必要があるため、複数の制御文が混在したプログラムにおいては、ユーザに負荷がかかるという問題点があった。
また、たとえばＦＯＲ命令を使用して作成したＦＯＲ文をＷＨＩＬＥ命令を使用したＷＨＩＬＥ文に変更するときは、ＦＯＲ文の開始命令を変更しただけでは終端命令のＥＮＤ＿ＦＯＲ命令が変更されないため、ユーザが対応するＥＮＤ＿ＦＯＲ命令を特定してＥＮＤ＿ＷＨＩＬＥ命令に変更しなければならず、ユーザに作業負荷が生じるという問題があった。
また、指定個所に配置可能なラダー命令の一覧が表示されるときは、プログラムロジックが不正となる個所に終端命令を配置してしまうというような状況を避けることができるが、配置可能な場所を検索するために毎回ラダー命令の一覧を表示しなければならないため、依然としてユーザに作業負荷が生じるという問題があった。また、すでにある制御文の開始命令を変更していれば、対応する終端命令をユーザ自身が変更しなければならないという煩わしさがあった。
本発明はこのような問題点に鑑みてなされたものであり、ラダーダイアグラムの中にＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの制御文を作成したり編集したりするときに、ユーザにかかる負荷が軽減され、作業効率を向上させることができるプログラミング装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明は、次のように構成したものである。
請求項１に記載の発明は、表示画面にラダーダイアグラムを作成してプログラマブルコントローラ用シーケンスプログラムを作成するプログラミング装置において、ＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの条件分岐や繰り返し処理をする制御文をラダーダイアグラム上に作成するときは、前記制御文の開始命令を配置すると同時にＥＮＤ＿ＩＦ命令やＥＮＤ＿ＦＯＲ命令、ＥＮＤ＿ＷＨＩＬＥ命令など前記制御文に対応する終端命令を前記開始命令の直下に一時的に配置させる機能と、一時的に配置された前記終端命令を所望の位置にキー操作で移動させる機能と、前記終端命令を所望の位置に移動するときに他の制御文の内部に移動させようとすれば前記制御文を飛び越えて前記制御文の終端命令の直下に移動させる機能と、を備えたことを特徴としている。
また請求項２に記載の発明は、新規に作成された制御文の開始命令を他の制御文の内部に配置したときは、新規に作成された前記制御文の終端命令を前記他の制御文の外部へ移動できないようにする機能を備えたことを特徴としている。
また請求項３に記載の発明は、ラダーダイアグラム上に任意の制御文が配置されているときに、該制御文の開始命令を他のラダー命令に変更すれば、前記制御文の終端命令も編集後のラダー命令の種別に応じて変更させる機能を備えたことを特徴としている。
また請求項４に記載の発明は、請求項１乃至３に記載の機能を有効にするサポートモードと、該機能を無効にしてユーザ独自でロジックの有効性を判断しながらプログラムを作成するマニュアルモードの２つのモードを切り替える機能を備えたことを特徴としている。
【発明の効果】
【０００７】
請求項１乃至４に記載の本発明によれば、ＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの制御文の開始命令を配置するときに、同時に制御文の終端命令が配置されるとともに、引き続き終端命令をキー操作できるようにされ、さらに移動の際にプログラムロジックを意識することなく実行できるので、プログラミング作業時にユーザにかかる負荷を軽減できるという効果がある。また、すでに作成されている制御文の開始命令を他のラダー命令に変更すると、対応する終端命令も変更したり削除されたりするので、命令編集時に対応する終端命令の探索をする探索作業や変更作業を省略することができて作業効率が向上するという効果がある。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【０００９】
図１は、本発明のプログラミング装置を用いてラダーダイアグラム上に制御文を作成するときの処理手順を示すフローチャートであり、図２は新規に制御文を作成するときの画面の表示状況を示している。ここでは、ＩＦ命令を使用したＩＦ文を作成する例について説明する。図２（ａ）はＩＦ命令を配置した時のラダーダイアグラムの状態を示しており、図２（ｂ）は図２（ａ）の状態から↓キー操作で終端命令を移動させた時のラダーダイアグラムの状態を示している。図の４は一時配置状態にあるＩＦ文終端命令である。
【００１０】
図３は新規に制御文を作成するときの状況を示しており、すでに他の制御文、この図の場合はＦＯＲ文がラダーダイアグラム上に作成されているときの画面である。図３（ａ）はＩＦ文開始命令２を配置した時のラダーダイアグラムの状態を示しており、図３（ｂ）は、図３（ａ）の状態から↓キー操作でＩＦ文終端命令４を移動させた時のラダーダイアグラムの状態を示している。図の６はＦＯＲ文の開始命令であり、７はＦＯＲ文の被制御命令、８はＦＯＲ文の終端命令である。
図４はすでに他の制御文、この図の場合はＦＯＲ文がラダーダイアグラム上に作成されているときに、ＦＯＲ文の内部に新規に制御文を作成するときの画面である。図４（ａ）は、ＩＦ文開始命令２を配置した時のラダーダイアグラムの状態を示しており、図４（ｂ）は、図４（ａ）の状態から↓キー操作でＩＦ文終端命令４を移動させた時のラダーダイアグラムの状態を示している。
図５はラダーダイアグラム上にすでに作成されている制御文の開始命令を他の制御文の開始命令に変更するときの画面である。図の９は制御文開始命令の編集時に表示される命令編集中の表示領域、１０はＷＨＩＬＥ文の開始命令、１１はＷＨＩＬＥ文の終端命令である。
図６はラダーダイアグラム上にすでに作成されている制御文の開始命令を他のラダー命令に変更するときの手順を示すフローチャートであり、このチャートに沿って順に処理される。
【００１１】
次に本発明のプログラミング装置の動作についてこれらの図を用いて説明する。
まず、図２を用いて、ラダーダイアグラム上に新規に制御文を作成するときの動作について説明する。
図２（ａ）に示すように、ラダーダイアグラム上に制御文の開始命令のひとつのＩＦ命令２を配置すると、その直下に対応する終端命令のＥＮＤ＿ＩＦ命令４が一時的に配置され、破線のような他とは区別できる表示形態で表示される。
この状態で↓キー操作を実行すると、終端命令４が直下の電源線を飛び越えて図２（ｂ）に示した位置に移動し、続けて↓キー操作を実行すると、さらに直下の電源線を飛び越える。終端命令４が所望の位置に移動した時点でＥｎｔｅｒキーが押下されると、その位置が正式な終端命令の位置と判断されて終端命令が通常どおりの実践の表示形態で表示される。
【００１２】
つぎに、図３を用いて、ラダーダイアグラム上に新規に制御文を作成するときに、すでに他の制御文が作成されている場合について説明する。
図３（ａ）に示すようにあらかじめラダーダイアグラム上にＦＯＲ文の開始命令６と被制御命令７、ＦＯＲ文の終端命令８で構成されるＦＯＲ文が作成されているものとする。その状態から、ＩＦ文の開始命令２を配置すると、その直下に対応する終端命令のＥＮＤ＿ＩＦ命令４が一時的に配置され、他と区別できる表示形態で表示される。
その状態から↓キー操作を実行すると、直下にＦＯＲ文があり、その内部の開始命令６と終端命令８の間にＥＮＤ＿ＩＦ命令４が移動したとすれば、プログラムロジック上エラーとなるため、ＥＮＤ＿ＩＦ命令４はＦＯＲ文を飛び越えて図２（ｂ）に示す位置に移動する。
【００１３】
つぎに、図４を用いて、ラダーダイアグラム上にすでに制御文が作成されているときに、その内部の被制御命令の列部に新規に制御文を作成する場合の動作について説明する。
あらかじめラダーダイアグラム上にＦＯＲ文の開始命令６と被制御命令、ＦＯＲ文の終端命令９で構成されるＦＯＲ文が作成されているものとし、その状態から、ＩＦ文の開始命令２をＦＯＲ文の内部に配置するときは、図４（ａ）に示すように、その直下に対応する終端命令のＥＮＤ＿ＩＦ命令４が一時的に配置され、他と区別できる表示形態で表示される。
その状態から↓キー操作を実行すると、終端命令４は直下の電源線を飛び越えて図４（ｂ）に示す位置に移動する。しかし、その状態から続けて↓キー操作を実行しても、終端命令４はそれ以上移動することはない。それはＩＦ文の終端命令４がＦＯＲ文の終端命令８を越えた形は、プログラムロジック上エラーとなるため、移動が認められないからである。
以上のようにして、制御文がラダーダイアグラム上に作成される。
【００１４】
つぎに、図５を用いて、ラダーダイアグラム上にすでに作成されている制御文の開始命令を他のラダー命令に変更するときの動作について説明する。図６は、そのときの制御文の開始命令変更時の処理手順を示すフローチャートである。
あらかじめラダーダイアグラム上にＩＦ文の開始命令２と終端命令４、その被制御命令列で構成されるＩＦ文が図５（ａ）のように作成されているものとする。その状態から、ＩＦ文の開始命令２をＷＨＩＬＥ文の開始命令に変更するときは、図５（ｂ）のように、ＩＦ文の開始命令２の命令名表示領域にニーモニック入力をすれば命令名を編集することができる。ある制御文の開始命令を他の制御文の開始命令に変更するときは、対応する制御文の終端命令を探索して図５（ｃ）のように対応する終端命令に変更される。たとえば、ＩＦ文の開始命令２をＷＨＩＬＥ文の開始命令１０に変更するときは、対応するＩＦ文の終端命令４を探索して図５（ｃ）のように対応するＷＨＩＬＥ文の終端命令１１に変更される、図５（ｃ）においてＷＨＩＬＥ文の開始命令の条件式に未決定を意味する“？”が表示される。
【００１５】
図５（ａ）でＩＦ文の開始命令２を、他の制御文の開始命令ではなく、リレー命令のような制御文を構成しないラダー命令に変更するときは、制御文の終端命令、すなわちＩＦ文の終端命令４を探索して削除される。
以上のようにしてラダーダイアグラム上に作成されている制御文が他の制御文や他のラダー命令に変更される。
ユーザによっては、制御文の開始命令と終端命令を別々の作業で配置させたいとか、プログラミング作業に自由度をもたせたい等の理由で、上記の機能が不要という場合も考えられる。そのような状況に対して、本発明のプログラミング装置は、上記の機能を有効にするサポートモードと無効にしてユーザが独自にロジックの有効性を判断しながらプログラムを作成していくマニュアルモードの２つのモードを切り替える機能を備えている。
【００１６】
以上述べたように本発明のプログラミング装置は、ＩＦ文やＦＯＲ文、ＷＨＩＬＥ文などの制御文の開始命令を配置するとき、同時にその終端命令を配置して、続けて終端命令をキー操作で移動できるようにし、プログラムロジックの良否を判断しながら移動可能な位置に移動するので、ユーザにかかる負荷が軽減されるのである。すでに作成されている制御文の開始命令を他のラダー命令に変更するときも、対応する終端命令が変更されるので命令編集時に対応する終端命令を探索する作業や、変更作業を省略することができ、作業効率が向上されるのである。
【図面の簡単な説明】
【００１７】
【図１】本発明のプログラミング装置を用いて制御文を作成するときの動作を示すフローチャート
【図２】新規に制御文を作成するときの状況を説明する画面
【図３】他の制御文の外部に新規に制御文を作成するときの状況を説明する画面
【図４】他の制御文の内部に新規に制御文を作成するときの状況を説明する画面
【図５】制御文の開始命令を変更するときの状況を説明する画面
【図６】制御文を変更するときの動作を示すフローチャート
【図７】制御文の構成を説明する画面
【符号の説明】
【００１８】
１  電源線、                     ２  ＩＦ文開始命令、 ３  条件式、
４  ＩＦ文終端命令、             ５  被制御命令、     ６  ＦＯＲ文開始命令、
７  ＦＯＲ文被制御命令、  ８  ＦＯＲ文終端命令、      ９  命令編集中表示領域、
１０  ＷＨＩＬＥ文開始命令、       １１  ＷＨＩＬＥ文終端命令
【図１】
2006079314.tif 000003
【図２】
2006079314.tif 000004
【図３】
2006079314.tif 000005
【図４】
2006079314.tif 000006
【図５】
2006079314.tif 000007
【図６】
2006079314.tif 000008
【図７】
2006079314.tif 000009