(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-21
(54)【発明の名称】オートメーションシステムのための制御プログラムを生成するための方法およびプログラミングツール
(51)【国際特許分類】
G05B 19/05 20060101AFI20240614BHJP
G06F 8/34 20180101ALI20240614BHJP
【FI】
G05B19/05 A
G06F8/34
【審査請求】有
【予備審査請求】有
(21)【出願番号】P 2023574639
(86)(22)【出願日】2022-06-03
(85)【翻訳文提出日】2024-02-05
(86)【国際出願番号】 EP2022065195
(87)【国際公開番号】W WO2022254009
(87)【国際公開日】2022-12-08
(31)【優先権主張番号】102021114449.3
(32)【優先日】2021-06-04
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】505344063
【氏名又は名称】ベックホフ オートメーション ゲーエムベーハー
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】ドレーゼン,ラルフ
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376BC33
5B376BC44
5B376BC45
5B376FA11
5B376GA13
5H220AA06
5H220BB12
5H220CC06
5H220CX01
5H220CX02
5H220DD04
5H220JJ12
5H220JJ16
5H220JJ41
(57)【要約】
本出願は、オートメーションシステムを制御するための制御プログラムを生成する方法に関する。この方法は、ダイアグラム生成ステップにおいて、プログラマブルロジックコントローラのためのグラフィカルプログラミング言語であるラダーダイアグラムLDに従って、制御プログラムのグラフィカルダイアグラムを生成するステップを含む。この方法は、グラフ生成ステップにおいて、グラフィカルダイアグラムの表現としてデータフローグラフを生成するステップを含む。そこでは、グラフィカルダイアグラムの要素がノードとして表され、グラフィカルダイアグラムの要素間の接続線がデータフローグラフのエッジとして表される。この方法は、プログラム生成ステップにおいて、前記データフローグラフに基づいて、プログラマブルロジックコントローラによって実行可能な前記制御プログラムのバージョンを生成するステップを含む。本出願は、さらに、この方法を実行するためのプログラミングツールに関する。
【特許請求の範囲】
【請求項1】
オートメーションシステムを制御するための制御プログラムを生成するための方法であって:
ダイアグラム生成ステップにおいて、プログラマブルロジックコントローラのためのグラフィカルプログラミング言語であるラダーダイアグラムLDに従って、前記制御プログラムのグラフィカルダイアグラムを生成するステップ;
グラフ生成ステップにおいて、前記グラフィカルダイアグラムの表現としてデータフローグラフを生成するステップであって、前記グラフィカルダイアグラムの要素が前記データフローグラフのノードとして表され、前記グラフィカルダイアグラムの要素間の接続線が前記データフローグラフのエッジとして表される、ステップと
プログラム生成ステップにおいて、前記データフローグラフに基づいて、プログラマブルロジックコントローラによって実行可能な前記制御プログラムのバージョンを生成するステップを含む方法。
【請求項2】
前記ダイアグラム生成ステップは:
受信ステップにおいて、前記グラフィカルプログラミング言語であるラダーダイアグラムLDによる、グラフィカルプログラミング要求を受信するステップであって、前記グラフィカルプログラミング要求は前記グラフィカルダイアグラムの要素および/または接続線を追加および/または削除および/または再配置するステップを含み、
前記グラフ生成ステップは:
プログラミングステップにおいて、前記プログラミング要求に従って、前記データフローグラフのノードおよび/またはエッジを追加および/または削除および/または再配置することによって、前記データフローグラフを修正するステップを含み、
前記グラフ生成ステップは:
グラフィカルプログラミングステップにおいて、前記データフローグラフに対する前記修正に基づき、および前記グラフィカルプログラミング要求に従って、前記グラフィカルダイアグラム内の要素および/または接続線を追加および/または削除および/または再配置するステップを含む、請求項1に記載の方法。
【請求項3】
前記ダイアグラム生成ステップは:
読み込みステップにおいて、前記グラフィカルプログラミング言語であるラダーダイアグラムLDでプログラムされた制御プログラムを読み込むステップを含み、
前記グラフ生成ステップは:
第2のグラフ生成ステップにおいて、前記読み込まれた制御プログラムの情報に基づいてデータフローグラフを生成するステップを含み:
前記ダイアグラム生成ステップは:
表示ステップにおいて、前記データフローグラフの前記情報に基づいて前記グラフィカルダイアグラムを生成する、請求項1に記載の方法。
【請求項4】
前記グラフィカルプログラミングステップおよび/または前記表示ステップは:
第1の配置ステップにおいて、前記データフローグラフの前記ノードを前記グラフィカルダイアグラムの要素に変換し、前記要素を2次元配列に配置するステップ;および
第2の配置ステップにおいて、前記データフローグラフの前記エッジを前記グラフィカルダイアグラムの要素間の接続線に変換し、前記グラフィカルダイアグラムの前記要素間の前記接続線を配置するステップを含み、各接続線は専ら水平成分及び/又は垂直成分を含み、専ら2つの要素を接続する、請求項2に記載の方法。
【請求項5】
前記2次元配列は複数のプロットユニットを有するマトリクス配列として具現化され、各要素はプロットユニットに配置され、前記接続線はプロットユニット間の分離線に少なくとも部分的に沿って配置される、請求項4に記載の方法。
【請求項6】
前記データフローグラフは、非巡回グラフとして具現化され、開始ノードおよび終了ノードを含む、請求項1に記載の方法。
【請求項7】
前記グラフィカルプログラミングステップおよび/または前記表示ステップは:
ソーティングステップにおいて、前記データフローグラフの前記ノードと前記それぞれのグラフィカルダイアグラムの対応する要素とを、トポロジカルにソーティングするステップを含み、前記トポロジカルにソーティングするステップにおいて、前記データフローグラフの前記ノードと前記グラフィカルダイアグラムの対応する要素との順序が決定され、前記順序は前記開始ノードからの各ノードの距離に対応し;および
前記第1の配置ステップにおいて、トポロジカルソーティングの前記順序に従って前記グラフィカルダイアグラムの前記要素を配置するステップと、を含む、請求項6に記載の方法。
【請求項8】
前記グラフィカルプログラミングステップおよび/または前記表示ステップは、
最適化ステップにおいて、最適化アルゴリズムを用いて、前記グラフィッカルダイアグラムの前記要素および/または前記接続線の前記配置を最適化するステップを含み、
前記最適化ステップは、前記接続線の長さを最小化すること、および/または、要素の距離を最小化すること、および/または複数の接続線が交差するのを回避することを含む、請求項2に記載の方法。
【請求項9】
前記データフローグラフのエッジが有向エッジとして具現化され、前記データフローグラフの2つのノード間のエッジの方向が、前記ノードによって表される前記グラフィカルダイアグラムの前記要素間の電流の流れを表す、請求項1に記載の方法。
【請求項10】
前記グラフィカルダイアグラムの要素は、電圧レール及び/又は接点及び/又はコイル及び/又は機能ブロックインスタンス及び/又は機能ブロック及び/又は前記プログラミング言語であるラダーダイアグラムLDによって定義された更なる要素を含む、請求項1に記載の方法。
【請求項11】
記憶ステップにおいて、前記データフローグラフをテキスト表現で記憶すること、および/または実行ファイルに前記制御プログラムの実行可能バージョンを記憶するステップを、更に含む、請求項1に記載の方法。
【請求項12】
オートメーションシステムを制御するための制御プログラムを生成するためのプログラミングツールであって、前記プログラミングツールは、グラフィカルエディタユニットおよび変換ユニットを備え、請求項1に記載の方法を実行するように構成されている、プログラミングツール。
【請求項13】
制御プログラムを実行することによってオートメーションシステムを制御する方法であって、
前記制御プログラムは、請求項1に記載のオートメーションシステムを制御する制御プログラムを生成する方法により生成されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、オートメーションシステムを制御するための制御プログラムを生成するための方法、およびこの方法を実行するためのプログラミングツールに関する。
【0002】
[関連出願の相互参照]
本特許出願は、ドイツ特許出願DE102021114449.3の優先権を主張し、その開示内容は参照により本明細書に組み込まれる。
【背景技術】
【0003】
プログラマブル・ロジック・コントローラPLC用の制御プログラムをプログラミングするための5つのプログラミング言語が、IEC61131-3規格で定義されている。5つの定義されたプログラミング言語の中には、テキストベースのプログラミング言語とグラフィカルプログラミング言語の両方がある。プログラマブルロジックコントローラをプログラミングするためのグラフィカルプログラミング言語の1つは、ラダーダイアグラムLDである。ラダーダイアグラムLDというプログラミング言語は、ユーザが、プログラマブルロジックコントローラの制御プログラムをプログラミングするためのグラフィカルダイアグラムを作成することを可能にする。グラフィカルダイアグラムは、リレー回路の回路図に基づいている。それに基づいて、グラフィカルダイアグラムの要素は、電圧レール、接点、および(リレー)コイルと呼ばれる。グラフィック要素の要素間の接続線は、要素間の電流の流れを表す。
【0004】
グラフィカルダイアグラムを制御プログラムとして解釈する際に、個々の要素は、制御プログラムの変数に関連付けられる。要素はアクティブ化されても非アクティブ化されてもよく、それぞれの変数には対応する値1または0が割り当てられる。
【0005】
グラフィカルダイアグラムを対応して実行可能な制御プログラムに変換するために、グラフィカルダイアグラムは、通常、まず、グラフィカルダイアグラムの情報を表示するのに適したテキストベースの表現に変換される。この目的のために、従来技術のグラフィカルダイアグラムは、階層的に構造化され、階層的に順序付けられたユニットに分割される。これらのユニットは、例えば、個々の要素、直列に配置された要素のグループ、または並列に配置された要素のグループから構成され得る。
【0006】
しかしながら、そのような階層構造化は、対応する階層構造において明白な方法で表現され得る排他的なグラフィカルダイアグラムが可能であるため、グラフィカルダイアグラムの生成に対する強い制限を構成する。
【0007】
その結果、IEC61131-3規格の要件を満たすすべてのグラフィカルダイアグラムが現行の技術水準で実際に生成されるわけではなく、あるいは階層構造の要件を満たすために拡張され、複雑化されなければならない。特に、基礎をなす階層構造は、既存のグラフィカルダイアグラムの変更に対する障害である。なぜなら、グラフィカルダイアグラムの小さな変更であっても、基礎をなす階層構造における深刻な構造的変更を必要とする可能性があり、これは所望の変更を考慮し、階層構造の要件も満たすために、複雑な変更をもたらし、場合によってはグラフィカルダイアグラムの完全な再構成をもたらす可能性があるからである。
【発明の概要】
【発明が解決しようとする課題】
【0008】
オートメーションシステムを制御するための制御プログラムを生成するための改良された方法と、この方法を実行するためのプログラミングツールと、オートメーションシステムを制御するための方法とが提供される。
【課題を解決するための手段】
【0009】
〔実施例〕
オートメーションシステムを制御するための制御プログラムを生成する方法が提供され、この方法は:
グラフィカルダイアグラム生成ステップにおいて、プログラマブルロジックコントローラのためのグラフィカルプログラミング言語であるラダーダイアグラムLDに従って制御プログラムのグラフィカルダイアグラムを生成するステップ;
グラフ生成ステップにおいて、グラフィカルダイアグラムの要素がノードとして表され、グラフィカルダイアグラムの要素間の接続線がデータフローグラフのエッジとして表される、グラフ生成ステップにおいてグラフィカルダイアグラムの表現としてデータフローグラフを生成するステップ;および
プログラム生成ステップにおいて、データフローグラフに基づいて、プログラマブルロジックコントローラによって実行可能な制御プログラムのバージョンを生成するステップを含む。
【0010】
これにより、オートメーションシステムを制御するための制御プログラムを生成するための改善された方法が提供され得るという技術的利点が達成され得る。この方法は、プログラマブルロジックコントローラPLCのためのプログラミングプログラムのために定義されたグラフィカルプログラミング言語であるラダーダイアグラムLDを使用する制御プログラムのプログラミングに基づく。この目的のために、本出願による方法は、データフローグラフの形態で、グラフィカルプログラミング言語であるラダーダイアグラムLDに従って作成されたグラフィカルダイアグラムの表現を提供する。対応するデータフローグラフによるグラフィカルダイアグラムの表現は、データフローグラフのノードがデータフローグラフによって表されるグラフィカルダイアグラムの対応する要素に対応し、データフローグラフのエッジがグラフィカルダイアグラムの接続線に対応し、制御プログラムのグラフィカルプログラミングのためのグラフィカルダイアグラムの生成における柔軟性を高めることを可能にする。この文脈において、対応するデータフローグラフによるグラフィカルダイアグラムの表現は、対応する階層構造によって従来技術から知られているグラフィカルダイアグラムの表現を置き換える役割を果たす。
【0011】
データフローグラフの形態の柔軟な表現は、ラダーダイアグラムLDプログラミング言語の要件を満たすが、従来技術では階層表現によって現在表現することができないグラフィカルダイアグラムを生成するために使用することができる。さらに、データフローグラフによる表現は従来技術において生成され得るが、同一の機能性を有するグラフィカルダイアグラムと比較して複雑さが単純化されたグラフィカルダイアグラムを生成するために使用され得る。例えば、より少ない要素を有し、より少ない接続線に関連するグラフィカルダイアグラムを単純化することによって、一方では、グラフィカルプログラムおよびグラフィカルダイアグラムの生成を単純化することができ、その結果、より速いプログラムを提供することができる。一方、複雑でないグラフィカルダイアグラムは読みやすく、より明確であり、したがって理解しやすい。さらに、グラフィカルダイアグラムの複雑さを低減することによって、グラフィカルダイアグラムによって表される制御プログラムの複雑さも簡略化され得る。そのような制御プログラムは、次に、制御プログラムを実行するための計算容量を低減することができる。このようにして、対応する制御プログラムを実行することによって、より少ない計算能力を必要とするオートメーションシステムまたはプログラマブルロジックコントローラのより速い制御を達成することができる。
【0012】
アプリケーションの意味におけるグラフィカルダイアグラムは、グラフィカルプログラミング動作によって生成されるグラフィカル表現であり、グラフィカルプログラミング言語であるラダーダイアグラムLDの定義によれば、オートメーションシステムまたはプログラマブルロジックコントローラの制御プログラムの表現を提供する。
【0013】
本出願の目的のために、データフローグラフは、対応するグラフィカルダイアグラムの情報のグラフベースの表現である。データフローグラフは、複数のノードと、ノードを互いに接続するエッジとを備え、ノードは要素の表現であり、エッジはそれぞれのグラフィカルダイアグラムの接続線の表現である。本出願によれば、データフローグラフは、それぞれのグラフィカルダイアグラムの完全な情報に加えて、グラフィカルダイアグラム内のデータフローがデータフローグラフによって表されるように具現化される。
【0014】
本出願の目的のために、制御プログラムの実行可能なバージョンは、例えば、実行される制御プログラムのバイナリバージョンであってもよい。
【0015】
一実施形態によれば、ダイアグラム生成ステップは:
受信ステップにおいて、グラフィカルプログラミング言語であるラダーダイアグラムLDに従ってグラフィカルプログラミング要求を受信するステップであって、グラフィカルプログラミング要求は、グラフィカルダイアグラムの要素および/または接続線を、追加および/または削除および/または再配置する、ステップを含み、グラフ生成ステップは:
プログラミングステップにおけるプログラミング要求に従って、データフローグラフのノードおよび/またはエッジを追加および/または削除および/または再配置することによって、データフローグラフを修正するステップであって、グラフ生成ステップは:
データフローグラフに対する修正に基づいて、およびグラフィカルプログラミングステップにおけるグラフィカルプログラミング要求に従って、グラフィカルダイアグラム内の要素および/または接続線を追加および/または削除および/または再配置するステップを含む。
【0016】
これの技術的利点は、グラフィカルプログラミング言語であるラダーダイアグラムLDに従った簡略化された効率的なプログラミングを可能にすることである。この目的のために、グラフィカルプログラミング言語であるラダーダイアグラムLDに従って制御プログラムを作成するために利用可能なグラフィカルプログラミング要求に基づいて、グラフィカルダイアグラムおよび対応するデータフローグラフの両方がそれに応じて修正される。
【0017】
この文脈において、修正することは、新しいデータフローグラフの作成、またはそれぞれ対応するグラフィカルダイアグラムの作成、および既存のデータフローグラフまたは対応するグラフィカルダイアグラムの修正の両方を含む。グラフィカルプログラミング要求を実行することによって、生成または修正されるべきグラフィカルダイアグラムと、グラフィカルダイアグラムを表すデータフローグラフとの両方が生成または修正される。データフローグラフは、グラフィカルダイアグラムの基礎をなすグラフィカルダイアグラムの情報の表現を記述する。この文脈におけるグラフィカルダイアグラムの基礎をなすデータフローグラフの構造は、グラフィカルダイアグラムの修正及び/又は生成可能性を決定する。したがって、その情報が対応するデータフローグラフにおいて表され得るグラフィカルダイアグラムのみが生成または修正され得る。
【0018】
上述のように、データフローグラフの形態のグラフィカルダイアグラムの表現は、従来技術と比較して複雑さが低減されたグラフィカルダイアグラムを生成するために、したがって、低減された計算容量で実行され得る制御プログラムを生成するために使用され得る。
【0019】
一実施形態によれば、ダイアグラム生成ステップは:
読み込みステップにおいて、グラフィカルプログラミング言語であるラダーダイアグラムLDでプログラムされた制御プログラムを読み出すステップ;
第2のグラフ生成ステップにおいて、読み込み制御プログラムの情報に基づいて、データフローグラフを生成するステップを含み、
表示ステップにおいて、データフローグラフの情報に基づいてグラフィカルダイアグラムを生成する。
【0020】
その結果、グラフィカルプログラミング言語であるラダーダイアグラムLDに従って、プログラムされる既存の制御プログラムの正確な修正が提供されるという技術的利点が達成され得る。既存の制御プログラムが最初に読み込まれ、読み込まれた制御プログラムの情報に基づいて、対応するデータフローグラフおよびそれによって表されるグラフィカルダイアグラムが生成される。これは、新しい制御プログラムが生成されてもよく、既存の制御プログラムが修正されてもよいので、柔軟性を高める。既に存在する制御プログラムのグラフィカルダイアグラムを、本出願によるデータフローグラフで表現することにより、既存の制御プログラムを、柔軟性を高めて変更または修正することができる。この文脈におけるデータフローグラフによる表現は、元の表現を階層構造によって置き換える。したがって、制御プログラムの変更は、従来技術において知られているグラフィカルダイアグラムの表現の階層構造に基づく制限によって制限されない。
【0021】
一実施形態によれば、グラフィカルプログラミングステップおよび/または表示ステップは:
第1の配置ステップにおいて、データフローグラフのノードをグラフィカルダイアグラムの要素に変換し、要素を2次元配列に配置するステップ;
第2の配置ステップにおいて、データフローグラフのエッジをグラフィカルダイアグラムの要素間の接続線に変換し、グラフィカルダイアグラムの要素間の接続線を配置し、各接続線は専ら水平及び/又は垂直成分を有し、専ら2つの要素を接続する。
【0022】
これにより、データフローグラフの形式での表現に基づいて、グラフィカルプログラミング言語であるラダーダイアグラムLDの要件に従うグラフィカルダイアグラムの形式でプログラムされる制御プログラムの明確な表現が可能であるという技術的利点が達成され得る。この目的のために、データフローグラフのノードは、それぞれのグラフィカルダイアグラムの要素に変換され、2次元配列に配置される。結果として、グラフィカルダイアグラムの明確な表現が達成され得る。
【0023】
さらに、データフローグラフのエッジは、グラフィカルダイアグラムのそれぞれの要素間の対応する接続線に変換され、2次元配列に配置されたグラフィカルダイアグラムの要素間の接続線は、専ら水平成分または垂直成分を含む。その結果、接続線は、上述の規格で定義されたグラフィカルプログラミング言語であるラダーダイアグラムLDの要件を満たす。データフローグラフのノードおよびエッジを対応するグラフィカルダイアグラムの要素および接続線に明確に変換することにより、最小数の必要な要素および接続線に制限される、可能な限り最低限の複雑さを有するグラフィカルダイアグラムを提供することが可能になる。このようにして、最も効率的な制御プログラムを達成することができ、これは、最小限の計算能力を用いて実行することができる。
【0024】
一実施形態によれば、2次元配列は、複数のプロットユニットを有するマトリクス配列として具現化され、各要素はプロットユニットに配置され、接続線はプロットユニット間の分割線に少なくとも部分的に沿って配置される。
【0025】
これは、グラフィカルダイアグラムの要素及び接続線が明確に表示され得るという技術的利点を達成する。その結果、明瞭で読みやすいグラフィカルダイアグラムを実現することができる。
【0026】
一実施形態によれば、データフローグラフは、非巡回グラフとして具現化され、開始ノードおよび終了ノードを備える。
【0027】
これは、生成されたデータフローグラフと対応するグラフィカルダイアグラムとの間の明確な割り当てが達成され得るという技術的利点を達成する。非巡回形式でデータフローグラフを具体化することによって、開始ノードおよび終了ノードを識別することができ、その結果、データフローグラフのノードの順序を決定することができる。開始ノードおよび終了ノードは対応するグラフィカルダイアグラムの表現のために、それぞれ、グラフィカルダイアグラムの左および右の電圧レールとして識別されてもよく、その結果、データフローグラフの個々のノードおよび関連するグラフィカルダイアグラムのそれぞれの要素の明白な割り当てが可能である。これにより、各データフローグラフについて、関連するデータフローグラフと同一の情報内容を有する、関連するグラフィカルダイアグラムを一義的に決定することができる。これは、制御プログラムの明確なグラフィカルプログラミングを可能にする。
【0028】
一実施形態によれば、グラフィカルプログラミングステップおよび/または表示ステップは:
ソーティングステップにおいて、データフローグラフのノードとそれぞれのグラフィカルダイアグラムの対応する要素とを、トポロジー的にソートするステップであって、前記的にソートするステップにおいて、前記データフローグラフのノードと前記グラフィカルダイアグラムの対応する要素との順序が決定され、前記順序は、前記開始ノードからの各ノードの距離に対応する、ステップ;および
配置ステップにおいて、トポロジカルソーティングの順序に従ってグラフィカルダイアグラムの要素を配置するステップを含む。
【0029】
これにより、明確に配置され、したがって、容易に読み取れるグラフィカルダイアグラムが可能になるという技術的利点が達成され得る。データフローグラフのノードのトポロジカルソートによって、データフローグラフの開始ノードまでのそれぞれのノードの距離に応じてノードの順序が達成され、トポロジカルソートにおいて生成されたそれぞれの要素の順序に従って関連するグラフィカルダイアグラムの要素を配置することによって、左右の電圧レールとグラフィカルダイアグラムのそれぞれの要素との間の最小の可能な距離が可能になる、可能な限り明瞭なグラフィカルダイアグラムを生成することができる。これによって達成される明確さの結果として、制御プログラムの単純化されたグラフィカルプログラミングが達成され得る。単純化されたグラフィカルプログラミングのために、制御プログラムを作成するのに必要な時間が最小化され得る。加えて、生成されたグラフィカルダイアグラムの明確さは、グラフィカルプログラミングによって生成された制御プログラムの品質に寄与し、これはまた、より明確で、したがってより効率的な形態で具現化され得、その結果、対応する制御プログラムの実行に必要とされる計算容量が低減され得る。
【0030】
一実施形態によれば、グラフィカルプログラミングステップおよび/または表示ステップは:
最適化ステップにおいて、最適化アルゴリズムの助けを借りて、グラフィッカルダイアグラムの要素の配置および/または接続線を最適化するステップを含み、最適化は、接続線の長さを最小化すること、および/または要素間の距離を最小化すること、および/または複数の接続線の交点を回避することを含む。
【0031】
これは、グラフィカルダイアグラムの明瞭さがさらに最適化され得るという技術的利点を達成し得る。これはまた、グラフィカルプログラミングをさらに容易にし、これに関連して、制御プログラムを作成するのに必要な時間を短縮し、生成される制御プログラムの効率を高めることにも寄与する。
【0032】
一実施形態によれば、データフローグラフのエッジは有向エッジとして具現化され、データフローグラフの2つのノード間のエッジの方向は、ノードによって表されるグラフィカルダイアグラムの要素間の電流の流れを表す。
【0033】
これは、データフローグラフと対応するグラフィカルダイアグラムとの間の明確な割り当てが可能であるという技術的利点を達成することができる。これは、グラフィカルプログラミング言語であるラダーダイアグラムLDのグラフィカルダイアグラムと、それぞれの場合に表現として機能するデータフローグラフとに基づいて、制御プログラムの正確なグラフィカルプログラミングを可能にする。データフローグラフの有向エッジは、データフローグラフの開始ノードから開始して、データフローグラフの終了ノードの方向にデータフローを明確に解釈することを可能にし、これは、左電圧レールから開始して、右電圧レールの方向に向かうグラフィカルダイアグラム内の電流の流れに対応する。
【0034】
一実施形態に従って、グラフィカルダイアグラムの要素は、電圧レールおよび/または接点、および/またはコイルおよび/または機能ブロックインスタンスおよび/または機能ブロック、および/またはプログラミング言語であるラダーダイアグラムLDに従って定義されるさらなる要素を含む。
【0035】
これは、データフローグラフに基づいて、グラフィカルプログラミング言語であるラダーダイアグラムLDの要件を満たす明確なグラフィカルダイアグラムを生成することができるという技術的利点を達成することができる。これは、オートメーションシステムを制御するための制御プログラムの正確なグラフィカルプログラミングを可能にする。
【0036】
一実施形態によれば、方法は:
記憶ステップにおいて、データフローグラフをテキスト表現に記憶すること、および/または実行ファイルに制御プログラムの実行可能バージョンを記憶することステップを含む。
【0037】
これは、制御プログラムを生成するための効率的な方法を提供するという技術的利点を達成することができる。データフローグラフをテキスト表現で記憶することによって、対応するデータフローグラフは、プログラムされた制御プログラムを修正するために、後の時点で再び読み込まれ得る。制御プログラムの実行可能なバージョンを記憶することによって、対応する制御プログラムは、後で任意のデータ処理ユニット上で実行され得る。
【0038】
第2の態様によれば、オートメーションシステムを制御するための制御プログラムを生成するためのプログラミングツールが提供され、プログラミングツールは、グラフィカルエディタユニットと変換ユニットとを備え、前述の実施形態のいずれかによる方法を実行するように構成される。
【0039】
これにより、改善されたプログラミングツールが提供され得るという技術的利点が達成され得、改善されたプログラミングツールは、上述の技術的利点を有する制御プログラムを生成するための本出願に従った方法を実行するように構成される。
【0040】
第3の態様によれば、制御プログラムを実行することによってオートメーションシステムを制御するための方法が提供され、制御プログラムは、前述の実施形態のいずれかによるオートメーションシステムを制御するための制御プログラムを生成するための方法によって生成される。
【0041】
これにより、オートメーションシステムを制御するための改善された方法が提供され得るという技術的利点が達成され得、上記の技術的利点を有する制御プログラムを実行することによって制御が実行される
[図面の簡単な説明]
【0042】
本出願は、添付の図面を参照してより詳細に説明される:
[
図1]プログラミング言語ラダーダイアグラムLDおよびデータフローグラフによるグラフィカルダイアグラムの模式図;
[
図2]プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
[
図3]プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
[
図4]プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
[
図5]プログラミング言語ラダーダイアグラムLDおよび別のデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
[
図6]実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法の模式図;
[
図7]実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のフローチャート;
[
図8]さらなる実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のさらなるフローチャート;
[
図9]さらなる実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のさらなるフローチャート;
[
図10]別の実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法の別のフローチャート
[
図11]一実施形態によるプログラミングツールの模式図。
【0043】
〔詳細な説明〕
図1は、プログラミング言語ラダーダイアグラムLDおよびデータフローグラフ300に従った、グラフィカルダイアグラム200の模式図を示す。
【0044】
以下の
図1~5では、オートメーションシステムを制御するための制御プログラムを生成するための本出願による方法の特性および利点が、様々なグラフィカルな例を用いて説明される。この目的のために、特に、対応するデータフローグラフ300内のグラフィカルプログラミング言語であるラダーダイアグラムLDに従って作成されたグラフィカルダイアグラム200の描写または表現が説明または提示される。さらに、先行技術において知られているグラフィカルダイアグラム200の階層構造化と比較した、対応するデータフローグラフ300におけるグラフィカルダイアグラム200の表現の利点が説明される。
【0045】
なお、以下の
図1~
図5に示すグラフは、説明のためのものに過ぎず、グラフィカルプログラミング言語であるラダーダイアグラムLDに従ってプログラムされたオートメーションシステムの制御プログラムの実際の例を示すものではない。グラフィカルダイアグラム200およびデータフローグラフ300で使用される記号は、グラフィカルプログラミング言語であるラダーダイアグラムLDの通常の命名法に対応する。グラフィカルダイアグラム200の個々の要素、又はグラフィカルダイアグラム内のそれらの機能もしくは効果、又はそれらによって表される制御プログラムの詳細な説明は省略される。これに関連して、上述の標準IEC61131-3、または最新技術で知られているグラフィカルプログラミング言語であるラダーダイアグラムLDの説明が参照される。
【0046】
図1のグラフィック描写Aは、グラフィカルプログラミング言語であるラダーダイアグラムLDに従って作成された例示的なグラフィカルダイアグラム200を示す。グラフィカルプログラミング言語であるラダーダイアグラムLDの要件に従って、グラフィカルダイアグラム200は、直線接続線203によって相互接続された複数の要素201を含む。この文脈では、ダイアグラム200は、左電圧レールLと右電圧レールRとを備え、これらの間に、第1の接点E1、第2の接点E2、第3の接点E3、および第1のコイルA1が対応する接続線203を介して互いに接続されて配置される。図示のダイアグラム200では、第2および第3の接点E2、E3は並列に配置され、この配置は第1の接点E1および第1のコイルA1と直列に配置される。グラフィカルダイアグラム200の要素201は、それぞれ、入力および出力を含み、接続線203を介した2つの要素201間の接続は、接続線203を要素201のうちの1つの出力から他の要素201の入力に配置することによって確立される。これに対する例外は、左および右の電圧線L、Rである。左の電圧線Lを指し示す接続線203および右の電圧線Rを指し示す接続線203は存在しない。接続線203は共通のセグメントを有することができ、重なり合うことができ、グラフィカルダイアグラム200内で左から右に常に走るという特性を有する。
【0047】
グラフィカルダイアグラム200の要素201は、本文脈では、制御プログラムの変数に関連付けられ、この変数は値1または0と仮定することができる。個々の要素201をそれぞれの値1または0に割り当てることは、対応する要素の切り替え、例えば、スイッチまたはリレーコイルの切り替えに対応する。接点は、値1がスイッチを閉じることに対応し、値0がスイッチを開くことに対応するブール入力をさらに説明する。ダイアグラム内の電流の流れは、閉スイッチに対応し、スイッチの左側の値1に対応する。
【0048】
図1のグラフィック描写Bはグラフィック描写Aに示されるグラフィカルダイアグラム200を示す。さらに、グラフィック描写Bは、従来技術から知られているダイアグラム200の階層構造を示す。階層構造に続いて、ダイアグラム200の要素、特に第1~第3の接点E1、E2、E3および第1のコイルA1は、第1の配列SEQ1および第1の代替ALT1をもたらすように構造化される。
【0049】
本出願の目的のために、配列SEQは、グラフィカルダイアグラム200内の要素の配列または要素のグループであり、順次、またはダイアグラム内の電流の流れに関連して左から右に配置される。本出願の目的のために、代替的なALTは、電流の流れに対して並列または並列に配置された要素のシーケンスまたは要素のグループである。
【0050】
図示の階層構造では、第1の配列SEQ1は、第1の接点E1と、第1の代替ALT1と、第1のコイルA1とを含む。一方、第1の代替ALT1は、2つの並列な第2および第3の接点E2、E3を備える。図示の階層構造によれば、情報は、以下のように表されてもよい。
【0051】
構造1
SEQ1
接点E1
ALT1
接点E2
接点E3
コイルA1
図1のグラフィック描写Cにおいて、本出願に従って構造化されたグラフィカルダイアグラム200の表現が、対応するデータフローグラフ300に示されている。データフローグラフ300は、複数のノード301を備え、その各々は複数のエッジ303によって相互接続される。エッジ303は、有向エッジとして具現化され、矢印によって表される方向を含む。個々のノード301間のグラフィカルダイアグラム200の電流の流れは、有向エッジ303の方向によって表され得る。ノード301はそれぞれ要素201に対応し、エッジ303は、グラフィカルダイアグラム200の接続線203を表す。グラフィカルダイアグラム200と同様に、データフローグラフ300のエッジ303は、ノード301の出力からさらなるノード301の入力を指す。有向エッジ303の方向によって、データフローグラフ300内のデータフローが表され、データフローは、グラフィカルダイアグラム200内の電流の流れに対応する。したがって、データフローグラフ300のエッジ303は、1つの要素201の出力からそれぞれの他の要素201の入力までのグラフィカルダイアグラム200において現在の直接的なフローが提供されるグラフィカルダイアグラム200の要素201の表現であるノード301間でのみ作成される。グラフィカルダイアグラム200内の2つの要素201間の電流の流れは、常に左から右にあるので、データフローグラフ300の有向エッジ303も左から右の方向を有することができる。
【0052】
この文脈において、データフローグラフ300は、開始ノード305及び終了ノード307を含む。データフローグラフ300のノード301は、トポロジー順にさらに配置されてもよく、データフローグラフ300は、開始ノード305および終了ノード307に加えて、第1のノード308、第2のノード309、第3のノード310、および第4のノード311を含む。したがって、データフローグラフ300は、一意に識別可能な開始ノード305および終了ノード307を有する非巡回グラフに対応し、開始ノード305は開始ノード305から離れるように向けられたエッジ303にのみ接続され、一方、終了ノード307は終了ノード307に向けられたエッジ303にのみ接続されることを特徴とする。複数の終了ノード307を有するデータフローグラフ300も考えられる。ただし、この場合、各終了ノード307は、終了ノードとして一意に識別可能である。図示のデータフローグラフでは、開始ノード305は左電圧レールLに対応し、終了ノード307は右電圧レールRに対応する。第1のノード308は第1の接点E1に対応し、第2のノード309は第2の接点E2に対応し、第3のノード310は第3の接点E3に対応し、第4のノード311は第1のコイルA1に対応する。個々のノード301のトポロジカルソーティングは、この文脈では、開始ノード305までの個々のノードの距離に基づく。開始ノード305までのノードの距離は、この文脈では、それぞれのノードと開始ノード305との間の少なくとも1つのエッジを介して接続に配置されたノード301の数によって定義され得る。帰納的に、距離0が開始ノード305に割り当てられてもよく、一方、距離は、値1と、直前に配置されたノードの最大距離との合計として、各さらなるノードに割り当てられてもよい。トポロジー的順序もまた、エッジ303上で定義/与えられ、データフローグラフ300は、第1のエッジ313、第2のエッジ314、第3のエッジ315、第4のエッジ316、第5のエッジ317、および第6のエッジ318を含む。
【0053】
図示の実施形態では、データフローグラフ300内のノード301の配置が、グラフィカルダイアグラム200内の要素201の配置に対応し、グラフィカルダイアグラムCのデータフローグラフ300はグラフィカルダイアグラムAのグラフィカルダイアグラム200の一意の表現であり、図示のグラフィカルダイアグラム200と同一の情報コンテンツを含む。データフローグラフ300は、示されたものとは異なる構成で示され得る。グラフの、またはグラフのノードおよびエッジのトポロジー的順序が保存されている場合、すべての可能な構成は等価であり、同じグラフィカルダイアグラム200を表す。
【0054】
データフローグラフ300の情報コンテンツのテキスト表現は、以下のように示され得る:
構造2
ノード305:L
ノード307:R
ノード308:E1
ノード309:E2
ノード310:E3
ノード311:A1
エッジ313:ノード305、ノード308
エッジ314:ノード308、ノード309
エッジ315:ノード308、ノード310
エッジ316:ノード310、ノード311
エッジ317:ノード309、ノード311
エッジ318:ノード311、ノード307
エッジは、この文脈では、それぞれのエッジによって接続され順序付けられたたノードのペアによって定義される。エッジの順序付けられたペア内のノードの順序は、有向エッジの方向を表す。
【0055】
図示のテキストベースの表現では、データフローグラフ300の情報全体が表されている。データフローグラフ300の情報内容は、関連するグラフ200の情報内容に対応し、データフローグラフ300は、グラフィック描写Aにおけるグラフ200の一意の表現である。
【0056】
図2は、プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフ300による更なるグラフィカルダイアグラム200の更なる概略図を示す。
【0057】
図2は、従来技術から知られている階層構造に従って表現することができない、または複雑さを増してしか表現することができないグラフィカルダイアグラム200の例を示す。一方、
図2のグラフィック描写Aに示されるグラフィカルダイアグラム200は、データフローグラフ300の助けを借りて、本出願による描写によって表され得る。
【0058】
グラフィック描写Aに示されるグラフィカルダイアグラム200は、第1~第3の接点E1、E2、E3と、左電圧レールLと右電圧レールRとの間にそれぞれ接続された第1および第2のコイルA1、A2とを含む。第1および第3の接点E1、E3はそれぞれ、左右の電圧レールL、R間の電流フローに対して第1および第2のコイルA1、A2の上流に配置され、第2の接点E2は電流フローに対して第1および第3の接点E1、E3に隣接して配置される。図示のダイアグラムでは、第2の接点E2は、それぞれの接続線203によって第1のコイルA1および第2のコイルA2の両方にさらに接続されている。
【0059】
グラフィック描写Bは、
図1の従来技術の手順に類似するグラフィック描写Aのグラフィックダイアグラム200の階層構造を示す。しかし、
図1の構造に類似する配列SEQおよび代替ALTへの階層構造化は、図示されるグラフィカルダイアグラムにおいて失敗する。なぜなら、第2の接点E2が、第1のコイルA1および第2のコイルA2の両方に接続しており、第2の接点E2の配列または代替への明確な割り当てが見られないため、明確な構造化は不可能であるからである。
【0060】
ダイアグラムBでは、例示的な階層構造が示されており、図示のグラフィカルダイアグラム200は、第1の配列SEQ1と、第2の配列SEQ2と、第1の代替ALT1とに構造化される。第1の配列SEQ1は、第1の代替ALT1、したがって、第1および第2の接点E1、E2、さらにコイルA1を含む。第2配列SEQ2は、第3接点E3及び第2コイルA2を含む。しかしながら、第2の接点E2と第2のコイルA2との間のマークされた接続線203に起因して、提案された構造化は、第2の接点E2もまた、第2のコイルA2を備える第2の配列SEQ2の一部でなければならないので、完全ではない。しかしながら、図示のダイアグラム200では、第2の接点E2は1回しか発生しないので、2つの異なる配列または代替への第2の接点E2の二重割り当ては不可能である。
【0061】
グラフィック描写Cは、グラフィック描写Aのダイアグラム200に対する代替的なグラフィック描写200を示す。上述のように、従来技術から知られている階層構造はグラフィック描写Aに示されるダイアグラム200の表現に失敗する。このことを回避するために、グラフィック描写Cはダイアグラム200の情報内容を含み、したがって、グラフィック描写Aのダイアグラム200に対する機能的代替を表すダイアグラム200の代替的な配置を示す。グラフィック描写Cのダイアグラム200は、第1のインスタンスおよび第2のインスタンスにおいて第2の接点E2を示す。グラフィカルCのダイアグラム200では、グラフィカルAおよびBの図とは対照的に、第2の接点E2は第1のインスタンスおよび第2のインスタンスで示されている。
【0062】
第2の接点E2の二重配置により、第2の接点E21の第1のインスタンスは第1のコイルA1に接続され、第2の接点E2の第2のインスタンスは第2のコイルA2に接続される。さらに、第2の接点E2の第1のインスタンスは第1の接点E1と並列に配置され、第2の接点E2の第2のインスタンスは第3の接点E3と並列に配置される。結果として、グラフィック描写Cのダイアグラム200の代替的な構造化は、グラフィック描写Aのダイアグラム200に類似して対応する。
【0063】
これは、明確な階層構造化を可能にする。この目的のために、図示のダイアグラム200は、第1の配列SEQ1および第2の配列SEQ2を備える第1の代替ALT1に構造化される。第1の配列SEQ1は、互いに並列に配置された第1および第2の接点E1、E2と、第1のコイルA1とを備える第2の代替ALT2を備える。第2の配列SEQ2は、互いに並列に配置された第2および第3の接点E2、E3と、第2のコイルA2とを備える第3の代替ALT3を備える。
【0064】
したがって、ダイアグラム200の示された代替構造化によって、シーケンスおよび代替からなる明白な階層構造が決定され得る。さらに、ダイアグラム200の代替的な構造化はグラフィック描写Aのグラフィカルダイアグラム200の情報コンテンツと、グラフィック描写AおよびCの2つのダイアグラムの対応する制御プログラムとを表し、それぞれが同一の動作モードを有する。しかしながら、グラフィック描写Cのダイアグラム200の代替構造化の欠点は、第2の接点E2の二重インスタンス化である。これにより、グラフィカルダイアグラム200はグラフィック描写Aの構造化よりも複雑になり、追加の要素201を含む。これは、単一の要素の代わりに複雑なサブダイアグラムを増加しなければならない場合に特に問題となる。これはグラフィック描写Cのグラフィカルダイアグラム200に基づいて、それぞれの制御プログラムの複雑さを増加させることができ、それによって、それぞれの制御プログラムの実行のための計算努力も、追加の要素201のために増加する可能性がある。追加の要素201は、階層構造化の達成のために排他的に必要とされるが、グラフィカルダイアグラムへのいかなる追加の情報的寄与も提供しない。
【0065】
一方、グラフィック描写Dは、本出願によるデータフローグラフ300を、グラフィック描写Aのグラフィックダイアグラム200の表現として示す。
図1のデータフローグラフと同様に、データフローグラフ300は、開始ノードLと終了ノードRとの間のエッジ303を介して互いに接続されたノード301を備える。ノードは、グラフィック描写Aのグラフィックダイアグラム200の要素に対応する。したがって、示されるデータフローグラフは、第1~第3の接点E1、E2、E3、ならびに第1および第2のコイルA1、A2を備える。ノードはグラフィック描写Aのグラフィカルダイアグラム200の要素に対応する。示されるデータフローグラフがしたがって、第1~第3の接点E1、E2、E3、ならびに第1および第2のコイルA1、A2を含み、グラフィック描写Dに見られるように、第2の接点E2の二重化は必要ではない。グラフィカルダイアグラムAのグラフィカルダイアグラム200を参照すると、第1~第3の接点E1、E2、E3はそれぞれ、左電圧レールLを表す開始ノード305に接続される。第1および第3の接点E1、E3はそれぞれ、右電圧レールRを表す終了ノード307に接続される第1および第2のコイルA1、A2に接続される。第2の接点E2は、図示の有向エッジ303を介して、それぞれ、第1のコイルA1および第2のコイルA2に接続される。グラフィック描写Dに見られるように、グラフィック描写Cのダイアグラム200の代替的な構造化において必要とされたように、追加のノードを追加する必要はない。データフローグラフ300におけるダイアグラム200の表現は、したがって、ダイアグラム200の簡略化された表現を可能にし、データフローグラフ300の情報内容は、第1のグラフィック描写Aのグラフィックダイアグラム200の情報内容に似ている。データフローグラフ300によって表される制御プログラムは第2の接点E2の重複による冗長性を省くことができるので、グラフィック描写Cのグラフィックダイアグラム200によって表される制御プログラムと比較して、簡略化される。データフローグラフ300の情報コンテンツのテキスト表現は、
図1に示される例に従って実行され得る。
【0066】
図示のデータフローグラフ300では、グラフィカルダイアグラム200の要素201および接続線203が、対応するノード301および有向エッジ303によって表され、結果として達成される柔軟性も示す。データフローグラフ300による表現のために、例えば、階層構造の場合に問題となるように、使用される表現の制限のために制限されることなく、グラフィカルダイアグラム200内の変更が容易に可能である。例えば、要素201を削除または追加すること、または要素201間の接続を変更することによって、グラフィカルダイアグラム200において変更が行われる場合、これらの変更は、それぞれのデータフローグラフ300において制限なしに適用され得る。データフローグラフ300の有向エッジ303は、順序付けられたペアとして定義されるので、任意の新しいノード301および/またはエッジ303が追加され得るか、または既存のノード301および/またはエッジ303が削除され得、ノード301およびエッジ303は変更によって影響を受けず、通常、ノード301の追加または削除はエッジ303の対応する追加または削除を伴う。これにより、特定の表現によって課される制約なしに、グラフィカルダイアグラム200に変更を加えることができる。しかしながら、データフローグラフ300のサイクル自由度は、調整中常に維持されなければならない。
【0067】
以下の構造1、2は、グラフィック描写Cのグラフィクダイアグラム200(構造1)およびグラフィック描写Dのデータフローグラフ300(構造2)をテキスト表現で説明する。
【0068】
構造1
Alt1
SEQ1
ALT2
接点E1
接点E2
コイルA1
SEQ2
ALT3
接点E2
接点E3
コイルA2
構造2
ノード305:L
ノード307:R
ノード308:E1
ノード309:E2
ノード310:E3
ノード311:A1
ノード312:A2
エッジ313:ノード305、ノード308
エッジ314:ノード305、ノード309
エッジ315:ノード305、ノード310
エッジ316:ノード308、ノード311
エッジ317:ノード309、ノード311
エッジ318:ノード309、ノード312
エッジ319:ノード310、ノード312
エッジ320:ノード311、ノード307
エッジ321:ノード312、ノード307
図3は、プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフ300によるさらなるグラフィカルダイアグラム200のさらなる概略図を示す。
【0069】
図3はグラフィカルプログラミング言語であるラダーダイアグラムLDの要件に従った有効な図であるが、従来技術で知られている階層構造に従って、グラフィック描写Aに示された形態で表すことができない、グラフィカルダイアグラム200のさらなる例を示す。
【0070】
グラフィック描写Aのダイアグラム200は、第1の接点E1、第1のコイルA1および第2のコイルA2、ならびに機能ブロックCALCの第1の機能ブロックインスタンスFB1への呼び出しを含む。第1の機能ブロックインスタンスFB1は、第1の入力Aを介して受信された信号を処理し、それに応じて第1の出力Xを介して対応する機能結果を出力する、任意の機能ブロックCALCのタイプであり得る。図示のダイアグラム200では、第1の機能ブロックインスタンスFB1への呼び出しは、第1の出力Xを介して、第1のコイルA1および第2のコイルA2の両方に接続される。第1の接点E1は、第1の機能ブロックインスタンスFB1からの呼び出しの第1の入力Aおよび第2のコイルA2に接続される。
【0071】
図1および
図2に関してと同様に、ダイアグラムBはグラフィック描写Aのダイアグラム200の失敗した階層構造化を示す。
図2のダイアグラムの上記の問題に関しても同様に、
図3のダイアグラムにおいても、第1の機能ブロックインスタンスFB1の呼出しと第1のコイルA1およびコイルA2との接続、ならびに第1の機能ブロックインスタンスFB1の呼出および2のコイルA2と第1の接点E1の接続の両方が、先行技術から知られている階層構造化による配列および代替への明確な構造化のための問題を提起する。図示の構造では、ダイアグラム200が第1の配列SEQ1、第2の配列SEQ2、および第1の代替ALT1に構造化され、第1の配列SEQ1は第1の接点E1と第1の代替ALT1とを備え、代替ALT1は第2の配列SEQ2と第2のコイルA2とを備え、第2の配列SEQ2は第1の機能ブロックインスタンスFB1の呼出しと第1のコイルA1とを備える。しかしながら、第1の機能ブロックFB1と第2のコイルA2との間に示されている接続線203では、特に第1の機能ブロックインスタンスFB1の呼び出しの、配列または代替への明確な割り当ては不可能である。
【0072】
同様に、
図2の例に関して、グラフィック描写Aのダイアグラム200に対する代替構造がグラフィック描写Cに示される。グラフィク描写Cのダイアグラム200はグラフィック描写Aのダイアグラム200と同じ情報コンテンツを表す。ここで、グラフィック描写Cのダイアグラム200はグラフィック描写Aのダイアグラム200と同じ情報コンテンツを表し、したがって、グラフィック描写AおよびCのそれぞれの異なるダイアグラム200に基づく制御プログラムの動作は明らかに同じである。これに関連して、機能ブロックCALCは、副作用がないとみなされるべきである。同様に、
図2の例に関して、グラフィカルCのダイアグラム200の代替構造において、第1の機能ブロックFB1の前述のあいまいな割り当ては、代替構造における第1の機能ブロックFB1がダイアグラム200において2回配置されるという事実によって解決される。
【0073】
グラフィック描写Cのグラフィカルダイアグラム200の代替構造において第1の機能ブロックインスタンスFB1の呼び出しを2回配列することは、制御プログラムに追加の機能ブロックインスタンスを追加することと混同されるべきではない。代わりに、グラフィカルダイアグラム200において、第1の機能ブロックインスタンスFB1の呼び出しを2回配置することは、関連する制御プログラム内の機能ブロックインスタンスFB1上で機能ブロックCALCの挙動を2回実行することとして理解されるべきである。
【0074】
グラフィック描写Cに示されるダイアグラム200では、それぞれの場合における第1の機能ブロックインスタンスFB1の呼び出しは、第1の接点E1に2回、第1のコイルA1および第2のコイルA2の両方に1回接続される。ここで、第1の機能ブロックインスタンスFB1の2つの呼び出しは、電流の流れに関して、第1および第2のコイルA1、A2と同様に互いに隣り合って配置される。また、第1接点E1は、第2コイルA2に接続されている。したがって、示される図は、必要な変更を加えて、グラフィック描写Aのダイアグラム200に対応するように見え、したがって、同じ制御プログラムの代替的な構造化を単に表すように見える。図示のダイアグラム200では、第1の機能ブロックインスタンスFB1の呼び出しの2回の配置が、配列および代替への明確な階層構造化を可能にする。したがって、図は、第1の接点E1および第1の代替ALT1を備える第1の配列SEQ1に構成され得る。第1の代替ALT1は、更に、互いに対して並列に配置された2つの配列SEQ2、SEQ3を備え、この文脈における第2の配列SEQ2は第1の機能ブロックインスタンスFB1への呼び出しおよび第1のコイルA1を備え、第3の配列SEQ3は第2の代替ALT2および第2のコイルA2を備える。第2の代替ALT2は第1の機能ブロックインスタンスFB1の複製された呼び出しと、第1の機能ブロックインスタンスFB1の複製された呼び出しと並列して配置された第4の配列SEQ4とを再び含み、第1の機能ブロックインスタンスFB1の複製された呼び出しと並行して配置された接続線をさらに含む。第1の機能ブロックインスタンスFB1の呼び出しの二重配置により、第1の機能ブロックインスタンスFB1の呼び出しの機能ブロックCALCは、関連する制御プログラムが実行されるときに2回実行される。これは第1の機能ブロックFB1の複製に基づく計算労力の増加をもたらす可能性があり、これは階層構造化を可能にするために排他的に必要とされたが、制御プログラムのためのいかなる情報的付加価値も表さない。また、行動の実行に副作用がある、すなわち制御プログラムの状態が変更した場合に、制御プログラムの行動が実際にずれることがある。たとえば、動作が制御プログラムのグローバル変数Xをインクリメントする場合、その値は、B)およびC)の実行後に異なる。副作用を持つ共通機能ブロックは、エッジ検出のためのIEC61131-3のR_TRIGおよびF_TRIGである。したがって、これらのFBのインスタンスの呼び出しを複製することは、プログラムの動作を間接的に変化させる。
【0075】
グラフィック描写Dは、対応するデータフローグラフ300における、本出願によるグラフィカルダイアグラム200の表現を示す。データフローグラフ300は、グラフィック描写Aにおけるダイアグラム200のすべての要素を備え、第1の機能ブロックFB1の二重実行を回避することができる。この目的のために、第1の接点E1は第1の機能ブロックFB1の第1の入力Aの両方に、有向エッジを介して接続される。別の有向エッジを介して、第1の接点E1は、第2のコイルA2にさらに接続される。第1の機能ブロックFB1は、有向エッジを介して第1の出力Xを介して第1のコイルA1に接続され、さらに有向エッジを介して第2のコイルA2に接続される。これは、グラフィック描写Cの構造において必要とされたように、第1の機能ブロックFB1の機能ブロックCALCの複数の実行の必要性を排除する。したがって、有向エッジ303は明確性を保証するためにグラフに追加のノード301を挿入する必要なしに、個々のノード301を互いに明確に割り当てることを可能にする。これは制御プログラムの複雑さを低減し、場合によっては、制御プログラムを実行するために必要とされる計算努力を低減することができる。さらに、副作用の影響を受ける機能ブロックCALCの場合、動作は、A)とD)の間で逸脱しない。
【0076】
以下の構造1、2は、グラフィック描写Cのグラフィカルダイアグラム200(構造1)およびグラフィック描写Dのデータフローグラフ300(構造2)をテキスト表現で説明する。
【0077】
構造1
SEQ1
接点E1
ALT1
SEQ2
ALT2
機能ブロックFB1
SEQ4
コイルA1
SEQ3
機能ブロックFB1
コイルA2
構造2
ノード305:L
ノード307:R
ノード308:E1
ノード309:FB1
ノード310:A1
ノード311:A2
エッジ313:ノード305、ノード308
エッジ314:ノード308、ノード309
エッジ315:ノード308、ノード311
エッジ316:ノード309、ノード310
エッジ317:ノード309、ノード311
エッジ318:ノード311、ノード307
エッジ319:ノード310、ノード307
【0078】
図4は、プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフ300によるさらなるグラフィカルダイアグラム200のさらなる概略図を示す。
【0079】
図4に示されるグラフィカルダイアグラムの例は、グラフィカルプログラミング言語であるラダーダイアグラムLDの規則に従って許容されるが、
図2および3の例と同様に、従来技術の構造化規則に従って、表示することはできない。グラフィック描写Aに示されるダイアグラム200は、左および右の電圧レールL、Rに加えて、第1~第3の接点E1、E2、E3、第1~第3のコイルA1、A2、A3、および実行されるべき機能ブロックCALCを有する第1の機能ブロックインスタンスFB1への呼び出しを含む。第1~第3の接点E1、E2、E3は、それぞれ電流フローに対して並列に配置され、第1の機能ブロックインスタンスFB1への呼び出しの第1の入力A、第2の入力B、または第3の入力Cにそれぞれ接続される。第1~第3のコイルA1、A2、A3も互いに隣接して配置され、第1のコイルA1は第1の機能ブロックインスタンスFB1への呼び出しの第1の出力Xに接続され、第3のコイルA3は第1の機能ブロックインスタンスFB1への呼び出しの第2の出力Yに接続される。第2のコイルA2は、第1の機能ブロックインスタンスFB1への呼び出しの第1の出力Xおよび第2の出力Yの両方に接続される。
図2および
図3に関して示される例と同様に、第1の機能ブロックインスタンスFB1の呼び出しの第1および第2の出力X、Yへの第2のコイルA2の二重接続により、グラフィック描写Aのダイアグラム200は、階層構造に従って、シーケンスおよび代替に一意に構造化することができない。さらに、第1の機能ブロックFB1の複数の入力および出力は、対応する階層構造におけるダイアグラム200の明白な表現を妨げる。
【0080】
図2及び
図3に示された例とは異なり、
図4には代替的な表現は示されていない。このような代替的な表現は、
図4に示されたグラフィカルダイアグラム200には多数の修正なしでは不可能である。プログラミング言語ラダーダイアグラムLDの規則に従う許容可能なグラフィカルダイアグラムでグラフィック描写Aに示されるグラフィカルダイアグラム200は修正なしに階層構造、例えば、第1の機能ブロックFB1の入力A、B、Cにおける追加のブール演算子で表され得る。
【0081】
しかしながら、データフローグラフとしての表現は、図形描写Bに示されるように、容易に可能である。
【0082】
図1~
図3の例からの逸脱において、以下は、代替のグラフィカルダイアグラム200および対応する階層構造のさらなる説明を含まない。代わりに、グラフィック描写Bは、グラフィック描写Aのグラフィカルダイアグラム200のためのアプリケーションによるデータフローグラフ300を示す。
【0083】
データフローグラフ300は、この目的のために、追加の要素またはノードを挿入する必要なく、グラフィック描写Aのダイアグラム200を明確に表すのに適している。したがって、データフローグラフ300はグラフィック描写Aのダイアグラム200の要素のみを含み、すべての要素は、データフローグラフ300に排他的にリストされる。
【0084】
第1~第3の接点E1、E2、E3は、それぞれ、開始ノード305に接続され、第1の機能ブロックインスタンスFB1への呼び出しの第1~第3の端末A、B、Cに接続される。第1~第3のコイルA1、A2、A3はそれぞれ単に終了ノード307に接続され、第1のコイルA1は第1の出力Xに接続され、第3のコイルA3は第1の機能ブロックFB1の第2の出力Yに接続される。一方、第2のコイルA2は、第1の機能ブロックインスタンスFB1への呼び出しの第1および第2の出力X、Yの両方に接続される。これは、グラフ200の完全な情報内容がデータフローグラフ300によって明確に表されている、グラフィック描写Aのグラフ200の、従来技術と比較した簡略化された表現を提供する。
【0085】
図5は、プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフ300によるさらなるグラフィカルダイアグラム200のさらなる概略図を示す。
【0086】
図5はグラフィカルプログラミング言語であるラダーダイアグラムLDの規則に従って許容されるが、従来技術の構造化規則に従って明確に表すことができない、グラフィカルダイアグラム200のさらなる例を示す。
【0087】
グラフィック描写Aのダイアグラム200は第、1~第3の接点E1、E2、E3、第1の機能ブロックインスタンスFB1への呼び出し、第2の機能ブロックインスタンスFB2への呼び出し、ならびに第1および第2のコイルA1、A2を含む。第1~第3の接点E1、E2、E3は、電流の流れに関して互いに隣接して配置され、第1の機能ブロックインスタンスFB1の呼び出しの第1~第3の端末A、B、Cにそれぞれ単純に接続される。第1~第2のコイルA1、A2は、それぞれ並んで配置され、第2の機能ブロックインスタンスFB2の呼び出しの第1~第2の出力X、Yに接続される。第1および第2の機能ブロックインスタンスFB1、FB2への呼び出しは、第1の機能ブロックインスタンスFB1への呼び出しの第1の出力Xを第2の機能ブロックインスタンスFB2の呼び出しへの第2の入力Bに接続し、第1の機能ブロックインスタンスFB1の呼び出しから第2の機能ブロックインスタンスFB2への呼び出しへの第2の出力Yを第2の機能ブロックインスタンスFB2への呼び出しの第1の入力Aに接続することによって、それぞれ互いに接続される。さらに、第3の接点E3は、第2の機能ブロックインスタンスFB2への呼び出しの第3の入力Cに接続される。また、第1および第2の機能ブロックインスタンスFB1、FB2の呼び出しが相互に交差接続されているため、従来技術の階層構造化の規則に従う配列および代替形態へのダイアグラム200の構造化は、明らかに不可能である。上記の例に続いて、第1および/または第2の機能ブロックインスタンスFB1、FB2への呼び出しの複数の構成が実行されるという点で、ダイアグラム200の代替構造がこの目的のために作成されなければならない。しかし、第2の機能ブロックインスタンスFB2への各呼び出しはポートA、B、およびCの値を必要とするので、補助変数は階層構造化のために導入されなければならない。そのため、ラダーダイアグラムLD言語のグラフィカルな手段では、このような接続を表現できないため、ダイアグラムが読みにくくなる。言及された要素の二重の配置は、グラフィカルダイアグラムおよび対応する制御プログラムの複雑さを増加させる。さらに、機能ブロックインスタンスFB1、FB2への呼び出しの多重配置は、それぞれの制御プログラムの実行中に機能ブロックインスタンスFB1、FB2の機能ブロックCALCの多重実行を引き起こす。その結果、制御プログラムの実行中に、追加の計算ステップが達成されなければならず、これは、グラフィカルダイアグラムの表現のための制限的な階層構造化のみに起因し、したがって、制御プログラムの実行に必要な計算容量を不必要に増加させる。
【0088】
代替的に、本出願によるデータフローグラフ300によるグラフィカルダイアグラム200の表現は、グラフィック描写Bに示される。ここで、データフローグラフ300はグラフィック描写Aのグラフィカルダイアグラム200の要素のみを含み、要素の追加または複数の表現は必要ではない。データフローグラフ300の個々のノード301を個々の有向エッジ303と接続することによって、個々のノードの任意の接続を実施することができる。とりわけ、第1および第2の機能ブロックインスタンスFB1、FB2の交差接続は、第1の機能ブロックインスタンスFB1への呼び出しの第1および第2の出力X、Yと、第2の機能ブロックインスタンスFB2への呼び出しの対応する第1および第2の入力A、Bとの間にそれぞれ延在する対応する有向エッジ303によって容易に実装され得る。さらに、第3の接点E3は、第1の機能ブロックインスタンスFB1の呼び出しの第3の入力Cと、第2の機能ブロックインスタンスFB2の呼び出しの第3の入力Cとの両方の2つの別個の有向エッジを介して容易に接続され得る。したがって、本出願によるデータフローグラフは、従来技術の階層構造化の対象ではないので、上に示された従来技術の例で必要とされる要素の複数の実行は必要ではない。
図1に関して示された例による明確なテキスト表現は、個々のノードのトポロジー的ソーティングと、それぞれのエッジ303によって接続されたノード301の順序付けられたペアとしてのエッジ303の明確な割り当てとを実行することによって行われ得る。
【0089】
図6は、一実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法の模式図を示す。
【0090】
図6は、オートメーションシステムを制御するための制御プログラムを生成するための、本出願による方法の実行のグラフ描写を示す。
図6は本出願による方法によれば、データフローグラフに基づいて、関連するグラフィカルダイアグラムの対応する同義表現が、様々な方法ステップを実行することによってLDに従ってどのように行われるかを、様々なグラフィック描写A~Eを用いて示す。以下の説明では、
図1~
図5に導入された命名法がグラフィカルダイアグラムおよびデータフローグラフの両方に関して使用され、以下ではそれ以上の説明は行わない。
【0091】
図1~
図5の例と同様に、本出願による方法のグラフによる説明は、本出願の限定としての役割を果たすことを意図しない任意の例に対してもなされる。すでに上述したように、本出願によるデータフローグラフによる本出願によるグラフィカルダイアグラムの表現は、従来技術から知られている制限を受けるものではない。したがって、
図6のグラフィック描写Aの例示的なグラフィカルダイアグラム200に基づいて、以下に説明される本出願による方法に従って制御プログラムを生成するための手段は、グラフィカルプログラミング言語であるラダーダイアグラムLDの規則に従って許容される任意のグラフィカルダイアグラムに適用され得る。
【0092】
図示の例では、グラフィック描写Aのグラフィカルダイアグラム200が、第1~第3の接点E1、E2、E3と、左右の電圧レールL、Rの間にそれぞれ配置された第1および第2のコイルA1、A2とを含む。第1の接点E1および第1のコイルA1は電流の流れに対して一方が他方の後ろに配置され、第2の接点E2、第3の接点E3および第2のコイルA2は電流の流れに対して一方が他方の後ろに配置される。さらなる接続線203を用いて、第2の接点E2は、第1のコイルA1にさらに接続される。以下の実施形態では、ダイアグラムAに示されるダイアグラム2が本出願による方法を実施することによって得られるグラフィカルダイアグラムを表す。これは、例えば、グラフィカルプログラミングプロセス中の対応するグラフィカル入力要求に基づいて実行することができる。あるいは、所望のグラフィカルダイアグラム200が、既存のグラフィカルダイアグラムを読み込み、以下の実施形態で実行される適切な変換ステップを実行することによって生成されてもよい。
【0093】
制御プログラムを生成するために、データフローグラフ300が最初に、グラフィカルプログラミング要求または既存の制御プログラムの読み込みテキスト情報のいずれかに基づいて作成される。
図1~
図5の実施形態によれば、データフローグラフ300は開始ノード305と、終了ノード307と、それらの間に配置された複数のノード301とを備え、それらの各々はそれぞれのエッジ303によって相互接続される。ここに示されるデータフローグラフ300は、所望のグラフィカルダイアグラム200を表すために必要とされるすべての要素を備え、第1~第3の接点E1、E2、E3と、第1および第2のコイルA1、A2とを備える。この場合、第1接点E1は第1コイルA1に直列に接続され、第2接点E2は第3接点E3に直列に接続され、第2接点E2は第2コイルA2に直列に接続され、第2接点E2は第1コイルA1にさらに接続される。
【0094】
データフローグラフ300の生成は、所望のグラフィカルダイアグラム200の様々な要素の追加または削除が実行されるグラフィカルプログラミング要求に従って実行され得る。この目的のために、データフローグラフ300のノード301およびエッジ303は、それぞれ、グラフィカルダイアグラム200の各要素201および各接続線203に割り当てられ得る。この場合、エッジ303はそれぞれ、ノード303の出力から別のノード303の入力まで延び、それぞれ、開始ノード305から開始する方向に、終了ノード307の方向に向けられる。エッジ303はグラフィカルダイアグラム200において、対応する接続線が対応する要素201の出力からさらなる要素201の入力まで走り、したがって、直流電流が右電圧バーRの方向に2つの要素201の間を走ることができる正確な時間に作成される。この文脈において、対応するグラフィカルプログラミング要求は、それに応じてノード301および/またはエッジ303を削除または追加することによって、データフローグラフ300の対応する修正に直接変換され得る。代替的に、データフローグラフ300は
図1に与えられた例によるテキスト表現に基づいて生成されてもよい。この目的のために、例えば、配列および代替への階層構造化が実行される従来技術によるテキスト表現は、個々の要素がノードとして表され、接続線がデータフローグラフの有向エッジとして表される、対応するテキスト表現に変換されてもよい。データフローグラフ300のテキスト表現はまた、ノード303およびエッジ303を作成することによって、対応するデータフローグラフに直接変換され得る。
【0095】
さらなる方法ステップによれば、データフローグラフ300のノードの深さ決定を伴うトポロジカルソーティングが実行されてもよく、データフローグラフまたはデータフローグラフ300のノード301はグラフィック描写Cに示されるように、2次元配列400に配列されてもよく、各ノード301は2次元配列400の対応するプロットユニット401に配列され、配列400はグリッド形状であってもよい。これにより、距離iを有するノードは、j>=iのj番目の列に配置される。この文脈において、ノード301の深さは、両方への対応する接続を介して開始ノード305とそれぞれのノード301との間に配置されるいくつかのノード301を記述する。データフローグラフ300のノードの順序が決定されるトポロジカルソーティングは、それぞれ、データフローグラフの開始ノード305からの各ノード301の距離に基づく。データフローグラフ300を各ノード301のために、またはその上でトポロジー的にソートすることによって、開始ノード305から終了ノード307までの経路であって、経路の有向エッジ303のいずれもが開始ノード305の方向に向けられていない、またはその方向に横断されていない経路が見出され得る。
【0096】
さらなる方法ステップでは、グラフィック描写Cのデータフローグラフ300がその後、対応するグラフィカルダイアグラム200に変換され、これはグラフィック描写Dに示される。この文脈では、データフローグラフ300のすべてのノード301がグラフィカルダイアグラム200の対応する要素201に変換され、ここで、グリッドとして具現化される配列400と、それ内のノード301の位置とが引き継がれる。さらに、データフローグラフ300の有向エッジ303はグラフィカルダイアグラム200の対応する接続線203に変換され、接続線203は水平成分または垂直成分のみを有する。接続線203は、対応するノード301がデータフローグラフ300の有向エッジ303によって接続される要素201を接続するように配置される。この文脈において、グラフィカルダイアグラムの個々の要素201は、各場合において、2次元配列400の個々のプロットユニット401に配置される。水平成分または垂直成分からなる接続線203は、2次元配列400の分割線403上にさらに配置され、それによって隣接するプロットユニット401は互いに分離される。
【0097】
図示の実施形態では、各接続線203が、それぞれの水平開始成分209と、第1の垂直成分211と、水平中心成分213と、第2の垂直成分215と、水平入力成分217とを含む。グラフィック描写Dでは、明確にするために、対応する構成要素には第3の接点E3と第2のコイルA2との間の接続線についてのみ、対応する参照番号が付されている。この文脈において、水平開始成分209は、第3の接点E3の出力に接続され、一方、水平入力コンポーネント217は、第2のコイルA2の入力に接続される。第1および第2の垂直成分211、215はそれぞれ、2次元配列400の垂直分割線403上に配置される。水平中心成分213は、再度、2次元配列400の水平分割線403上に配置される。
【0098】
図示の実施形態では、2次元配列400が複数の水平分離線403を含み、その各々は2次元配列400の中央領域に配置され、プロットユニット401の2つの重ね合わされた行を分離する。図示の実施形態では、2次元配列400が8本の接続線203の各々に対して1本の水平分離線403が設けられるように、8本の水平分離線403を備える。8本の異なる接続線203の水平中心成分213は、水平分割線403上に個別に配置されてもよい。さらに、2次元配列400は、異なる接続線203の第1および第2の垂直成分211、215が、垂直分離線403上に排他的に配置され得るように、複数の垂直分離線403を備える。
【0099】
グラフィック描写Dの代替として、対応して異なる構造の2次元配列400が、異なる構造のグラフィカルダイアグラム200または異なる構造のデータフローグラフ300のために生成され得る。例えば、これらは、プロットユニット401の複数の重ね合わされた行を含むことができ、異なる数の垂直及び水平分割線403を含むことができる。
【0100】
代替として、ノード301は2つのノード301の間にエッジ303があるとき、先行ノード301の出口が後続ノード301の入口の左にあるという条件で、他の方法に従って配置され得る。
【0101】
さらなる方法ステップでは、続いて、グラフィック描写Dの配置400に基づいて最適化が実行され、要素201間の距離および/または接続線203の長さが最小化され、および/または接続線203の交差が回避される。グラフィック描写Eは、最適化から得られるグラフィックダイアグラム200を示す。グラフィック描写Dのグラフィックダイアグラム200と比較して、特に、接続線203の長さが低減される。それぞれの場合において、1つの要素201の入力から、プロットユニット401の同じ行内に配置された他の要素201の出力までの要素201を接続する接続線203は、第1および第2の垂直成分211、215をゼロに低減することによって、最適化の過程で、直線水平接続線203に低減される。同様に、左側の電圧レールLと第2の接点E2との間の接続線については第2の垂直成分215がゼロに低減され、一方、第2のコイルA2と右側の電圧レールRとの間の接続線203については第1の垂直成分211がゼロに低減されている。したがって、このようにして最適化されたグラフィカルダイアグラム200は、明確に表され、それぞれ水平成分205および垂直成分207のみを有する接続線203のみを有する。このように生成されたグラフィカルダイアグラム200は、グラフィック描写Aの所望のダイアグラム200に対応し、グラフィック描写Bのデータフローグラフ300によって明確に表される。
【0102】
図7は、一実施形態による、オートメーションシステムを制御するための制御プログラムを生成するための方法100のフローチャートを示す。
【0103】
オートメーションシステムを制御するための制御プログラムを生成するための本出願による方法100は、上に示された用途によるグラフィカルプログラミング言語であるラダーダイアグラムLDおよびデータフローグラフ300に従って、グラフィカルダイアグラム200の例に適用可能である。
【0104】
オートメーションシステムを制御するための制御プログラムを生成するために、制御プログラムのグラフィカルダイアグラム200が、プログラマブルロジックコントローラPLCのためのグラフィカルプログラミング言語ラダーロジックLDに従ってダイアグラム生成ステップ101において最初に生成される。グラフィカルダイアグラム200は複数の要素201を含み、その各々は、接続線203によって相互接続される。本明細書の要素201は、少なくとも左電圧レールLおよび右電圧レールRと、左および右電圧レールL、Rの間に配置された複数の要素201とを備える。電圧レールL、Rの間に配置された要素201は、この文脈において、接点、コイル、機能ブロックインスタンスへの呼び出し、機能、またはグラフィカルプログラミング言語であるラダーダイアグラムLDのためのガイドラインにおいて定義された他の要素を備え得る。上記の例によれば、接続線203は、水平成分205および垂直成分207のみから構成されてもよい。
【0105】
グラフ生成ステップ103では、データフローグラフ300が、生成される制御プログラムのグラフィカルダイアグラム200の表現としてさらに生成される。データフローグラフ300は、有向エッジ303によって相互接続された複数のノード301を含む。データフローグラフ300は、少なくとも開始ノード305および終了ノード307を含み、開始ノード305はグラフィカルダイアグラム200の左電圧レールLを表し、終了ノード307は、グラフィカルダイアグラム200の右電圧レールRを表す。複数のノード301が、開始ノード305と終了ノード307との間に配置され、それぞれが、グラフィカルダイアグラム200の要素201を表す。
図1に関して説明した例によれば、有向エッジ303は、それぞれの有向エッジ303によって接続された2つのノード301の順序付けられた対として定義され、グラフィカルダイアグラム200の接続線203に対応する。したがって、データフローグラフ300の2つのノード301の間のエッジ303は、グラフィカルダイアグラム200が、2つのノード301によって表される要素201の間に、一方の要素201の出力と他方の要素201の入力との間に延在する接続線203を備え、接続線203が2つの要素201の間の左右方向の直流の電流を表すときに挿入されるべきである。この文脈において、順序付けられたペアのエントリの順序は、それぞれのエッジ303の方向を指定する。ダイアグラム生成ステップ101およびグラフ生成ステップ103は、時間的に順番に実行されてもよいし、時間的に同時に実行されてもよい。同時に、グラフィカルダイアグラム200の作成中に、対応する表現がデータフローグラフとして作成されると理解されるべきである。グラフィカルダイアグラム200の要素又は接続線を、データフローグラフ300の対応するノード301及びエッジ303に変換することは、時間的には、明らかに、プログラム中にグラフィカルダイアグラム200の作成後に行われる。
【0106】
データフローグラフ300は、非巡回グラフとして形成され得、開始ノード305と終了ノード307とを含み得る。ここで、データフローグラフ300のエッジ303は、有向エッジとして具現化され、ノード301の順序付けられたペアとして表され得、順序付けられたペアにリストされたノード301の順序は、それぞれのエッジ303の方向を定義する。
【0107】
プログラム生成ステップ105では、続いて、データフローグラフ300に基づいて、プログラマブルロジックコントローラを制御するための対応する制御プログラムが生成される。
【0108】
上記の例に示すように、データフローグラフ300は、関連するグラフィカルダイアグラム200の一意の表現であり、グラフィカルダイアグラム200の同一の情報コンテンツを含む。グラフィカルダイアグラム200およびデータフローグラフ300の両方のテキスト表現は、例えば、
図1に示される実施形態に従って達成され得る。グラフィカルダイアグラム200の要素201またはデータフローグラフ300のノード301が制御プログラムの変数に対応し得、したがって、値1または0を仮定し得る。
【0109】
図8は、さらなる実施形態による、オートメーションシステムを制御するための制御プログラムを生成するための方法100のさらなるフローチャートを示す。
【0110】
図8に示されるアプリケーションによる方法100の実施形態は、
図7の実施形態に基づいており、そこに示される全ての方法ステップを含む。これらが以下の実施形態において変更されない限り、新たな詳細な説明は省略される。
【0111】
図示の実施形態では、ダイアグラム生成ステップ101は、受信ステップ107において、グラフィカルプログラミング言語であるラダーダイアグラムLDに従ってグラフィカルプログラミング要求を受信することを含む。グラフィカルプログラミング要求は、ユーザのプログラム動作を記述し、グラフィカルダイアグラム200の要素201および/または接続線203を追加および/または削除および/または再配置することを含み得る。ここでの再配置は、グラフィカルダイアグラム200の要素201間の接続の再配置を説明する。
【0112】
グラフィカルプログラミングプロセスによれば、プログラムされるべき制御プログラムの所望のグラフィカルダイアグラム200は、したがって、例えば、要素201および/または接続線203を追加および/または削除および/または再配置することによって、グラフィカルプログラミング言語であるラダーダイアグラムLDのための従来技術において知られているグラフィカルプログラミングツールに従って、対応するグラフィカルエディタ内で、ユーザによって作成され得る。
【0113】
図示の実施形態では、グラフ生成ステップ103は、プログラミングステップ109を含む。プログラミングステップ109において、対応するデータフローグラフ300は、行われたプログラミング要求に従って、データフローグラフ300のノード301および/またはエッジ303を追加および/または削除および/または再配置することによって修正される。この文脈におけるノード301の再構成は、データフローグラフ300内のさらなるノード301との少なくとも1つのノード301の接続の再設計を説明する。したがって、再構成されたデータフローグラフは、元のデータフローグラフ300において接続されていなかった2つのノード301間の少なくとも1つのエッジ303を備え、および/または元のデータフローグラフ300内の2つのノード301間の接続を表す少なくとも1つのエッジ303だけ低減される。
【0114】
グラフィカルプログラミングツール内の対応する要素201および/または接続線203を削除、追加、または再配置する各実行されたプログラミング要求は、それぞれのグラフィカルダイアグラム200を表すデータフローグラフ300に対応する修正を行う。したがって、グラフィカルプログラミングツールによってグラフィカルダイアグラム200の要素201または接続線203が削除されると、データフローグラフ300内の要素201または接続線203を表すノード301またはエッジ303の対応する削除が実行される。要素が追加または配置されると、データフローグラフ300はそれに応じて調整される。
【0115】
したがって、データフローグラフ300は、グラフィカルプログラミングツール内のグラフィカルプログラミングプロセスと同時に作成または修正されてもよく、グラフィカルプログラミングツール内のグラフィカルプログラミングプロセスによって、それぞれのグラフィカルダイアグラム200がグラフィカルダイアグラム200の追加の表現として、例えば、グラフィカルプログラミングツールの下位レベルにおいて、作成または修正される。この文脈では、グラフィカルプログラミングプロセスによってグラフィカルダイアグラム200において実行される修正は、データフローグラフ300の基礎をなす規則によって最小限に制約されるだけであり、したがって、プログラミング言語ラダーダイアグラムLDに関して定義された規則に従う限り、ほとんど制約なしにグラフィカルダイアグラム200に修正を行うことができる。データフローグラフによる表現によって課される唯一の重要な制限は、グラフのサイクル自由度であり、これは常に保証されなければならない。
【0116】
したがって、データフローグラフ300によるグラフィカルダイアグラム200の表現は、従来技術で知られている階層構造と比較して、ほとんど限定されず、結果として、
図2~
図5の例によって示されるように、高い柔軟性を有する。
【0117】
図示の実施形態では、ダイアグラム生成ステップ101は、グラフプログラミングステップ111をさらに含む。グラフプログラミングステップ111では、グラフ200の要素201および/または接続線203がデータフローグラフ300に対する修正に基づいて、グラフプログラミング要求に従って、グラフ200内で追加および/または削除および/または再配置される。
【0118】
したがって、グラフィカルプログラミングプロセスでは、グラフィカルプログラミング要求が、グラフィカルプログラミングツール内で、所望の修正を行うことによって、最初に作成される。これらのグラフィカルプログラミング要求に基づいて、グラフィカルプログラミング要求がデータフローグラフ300の構造要件に適合する場合、それぞれのグラフィカルダイアグラム200の表現として機能するデータフローグラフ300に修正が加えられる。データフローグラフ300の構造要件に従って実行可能な所望の修正は、その後、グラフィカルダイアグラム200内で実行され、その結果、生成されるグラフィカルダイアグラム200のターゲット化されたグラフィカルプログラミング要求に基づく所望の修正が可能になる。
【0119】
上述のように、対応するデータフローグラフ300によるグラフィカルダイアグラム200の表現は、グラフィカルダイアグラム200の生成においてより少ない制限を課し、したがって、グラフィカルダイアグラム200は、グラフィカルダイアグラム200の表現として、本出願による方法100および本出願によるデータフローグラフ300によって生成することができ、現在の技術水準および階層構造化に従って、その中で優勢なグラフィカルダイアグラム200の表現として実現することができない。さらに、データフローグラフ300の単純な構造により、この目的のために、グラフィカルダイアグラム200を実質的に変更する必要なく、既存のグラフィカルダイアグラム200内で任意の種類の修正を実行することができる。さらに、データフローグラフによる表現は、関連するグラフィカルダイアグラム200を簡略化することができる。例えば、グラフィカルダイアグラム200への変更が、左右の電圧レールL、Rの間の連続的な電流の流れを可能にしない要素をもたらした場合、これらの要素は例えば、データフローグラフに変換されたときに、入力または出力のいずれかを介してさらなる要素に接続されるだけであるため、これらの要素は、グラフィカルダイアグラム200ならびにデータフローグラフに余分な要素またはノードが含まれないように削除され得る。一方、グラフィカルダイアグラム200への変更の結果として、要素がグラフィカルダイアグラム200から削除される場合、データフローグラフ300のノード301への直接接続を有さない不要なエッジ303も、データフローグラフ300において自動的に削除される。これは、同様に、要素201間の直接的な接続を表さない全ての接続線を削除することによって、対応するグラフィカルダイアグラム200を簡略化する。
【0120】
図9は、さらなる実施形態による、オートメーションシステムを制御するための制御プログラムを生成するための方法100の別のフローチャートを示す。
【0121】
図9の方法100の実施形態は、
図8の実施形態に基づいており、そこに記載された全ての方法ステップを含む。これらが以下の実施形態において変更されない限り、新たな詳細な説明は省略される。
【0122】
図示の実施形態では、ダイアグラム生成ステップ101が読み込みステップ113をさらに含む。読み込みステップ113では、グラフィカルプログラミング言語であるラダーダイアグラムLDにプログラムされた制御プログラムが読み込まれる。制御プログラムは、この文脈において、例えば、
図1に示されるグラフィカルダイアグラム200又はデータフローグラフ300のテキスト表現で表されてもよい。
【0123】
グラフ生成ステップ103は、第2のグラフ生成ステップ115をさらに含む。第2グラフ生成ステップ115では、読み込みステップ113で読み出された制御プログラムからの情報に基づいて、対応するデータフローグラフ300が生成される。
【0124】
ダイアグラム生成ステップ101は、表示ステップ117をさらに含む。表示ステップ117では、第2のグラフ生成ステップ115で生成されたデータフローグラフ300に基づいて、対応するグラフィカルダイアグラム200が生成される。
【0125】
したがって、対応する既存の制御プログラムを読み取ることによって、対応するデータフローグラフ300が、読み込まれた制御プログラムの情報に基づいて生成され得、対応するグラフィカルダイアグラム200が生成されたデータフローグラフ300の情報に基づいて生成され、対応するグラフィカルプログラミングツールに表示され得る。
【0126】
図10は、さらなる実施形態による、オートメーションシステムを制御するための制御プログラムを生成するための方法100のさらなるフローチャートを示す。
【0127】
図10に示される実施形態は、
図9の実施形態に基づいており、そこに示される全ての方法ステップを含む。これらが以下の実施形態において変更されない限り、新たな詳細な説明は省略される。
【0128】
図示の実施形態では、グラフィカルプログラミングステップ111および表示ステップ117がは、複数の方法ステップ119~125を備え、その助けを借りて、グラフ生成ステップ103で生成されたデータフローグラフ300に基づく対応するグラフィカルダイアグラム200の生成が説明される。
【0129】
ソーティングステップ123では、生成されたデータフローグラフ300のノード301と、それぞれのグラフィカルダイアグラム200の対応する要素201とが、深度決定を含みトポロジー的に最初にソートされる。データフローグラフ300のノード301およびグラフィカルダイアグラム200の対応する要素201をトポロジー的にソートすることによって、ノード301および要素201の両方について順序が決定され、配列400のカラムへの割り当てが決定される。同様に、グラフィカルダイアグラム200の要素201は、左電圧レールLからの距離に従って順序付けられる。
【0130】
続いて、第1の配置ステップ119において、データフローグラフ300のノード301は、グラフィカルダイアグラム200の要素201に変換され、要素201は2次元配列400に配置される。
【0131】
第2の配置ステップ121において、データフローグラフ300の有向エッジ303は、グラフィカルダイアグラム200の要素201間の対応する接続線203に変換され、それぞれの要素201間の2次元配列400に配置される。この場合、接続線203は、それぞれ、水平成分205および垂直成分207のみを含む。この場合、2次元配列400は、複数のプロットユニット401を有するマトリクス配列として具現化され得、各要素201は別個のプロットユニット401に配置され、接続線203はプロットユニット401間の分離線403に少なくとも部分的に沿って配置される。
【0132】
2次元配列400におけるグラフィカルダイアグラム200の要素201または接続線203の配置は、この点に関して、
図6のグラフィック描写Dに示される例に従って実行され得る。接続線203は、示される水平入力成分209および開始成分217、第1および第2の垂直成分211、215、ならびに水平中心成分213を含み得る。
図6に示される実施形態によれば、接続線203のそれぞれの構成要素は2次元配列400の垂直および水平分離線403のそれぞれの上に配置され得、その結果、それぞれの水平中心構成要素213は、排他的水平分離線403上に配置される。
【0133】
最適化ステップ125において、要素201の配列400および/またはグラフィカルダイアグラム200の接続線203は、適切な最適化アルゴリズムを使用して最適化され得る。この目的のために、接続線203の長さおよび/または要素201間の距離は最小化され得る。代替または追加として、複数の接続線203の交差を回避することができる。特に、最適化は、2次元配列400内のある高さに配置された相互接続要素201が直線的な水平構成要素205によって具現化される接続線203において、
図6のグラフィック描写Eについて示された例に従って最適化され得る。ここで、特に、接続線203の始点および終点は、ある高さに配置される。要素201も別のエッジ203も、接続線203の始点と終点との間に配置されない。また、不要な水平成分や垂直成分を低減することで、接続線203の長さを短くすることができる。要素201または接続線203の配置400を最適化することによって、グラフィカルダイアグラム200の明確な表現を達成することができる。
【0134】
例えば、最適化アルゴリズムは、色彩問題を解くための従来技術のアルゴリズムを含むことができる。
【0135】
図示の実施形態では、方法100が記憶ステップ127をさらに含む。記憶ステップ127において、データフローグラフ300はテキスト表現に記憶されてもよく、および/または制御プログラムの実行可能バージョンは対応する実行ファイルに記憶されてもよい。データフローグラフ300のテキスト表現は、この場合、
図1に関して実行されたテキスト表現に従って、対応するテキストファイルに記憶され得る。
【0136】
図11は、一実施形態によるプログラミングツール500の概略図を示す。
【0137】
図示の実施形態では、プログラミングツール500は、グラフィカルエディタユニット501および変換ユニット503を含む。グラフィカルプログラミングツール500は、例えば、デスクトップコンピュータ、ラップトップ、またはクラウドサーバであるデータ処理ユニット505上で動作可能である。
【0138】
グラフィカルエディタユニット501は、ユーザが、プログラミング言語ラダーダイアグラムLDの要件および規則を満たす対応するグラフィカルプログラミング要求に従ってグラフィカルダイアグラム200を生成することを可能にする。変換ユニット503は、さらに、アプリケーションの方法100に従って、グラフィカルプログラミング要求または対応するグラフィカルダイアグラム200を、データフローグラフ300の形態の関連する表現に変換するように設定される。さらに、変換ユニット503は、対応するグラフ表示またはグラフィカルダイアグラムがエディタユニット501によって作成され得るように、対応して作成されたデータフローグラフ300またはグラフの情報コンテンツをエディタユニット501に転送するように構成される。さらに、変換ユニット503は、生成されたデータフローグラフ300に基づいて、制御プログラムの対応する実行可能バージョンを生成するように構成され得る。さらに、変換ユニット503は、生成されたデータフローグラフ300をテキスト表現で記憶するように設定される。
【0139】
本発明は、例示的な例に関して説明されている。本発明の範囲を維持しながら、これらの開示を異なる材料および状況に適合させるために、変更を行うことができ、均等物を置き換えることができることが理解される。したがって、本発明は、開示される特定の例に限定されず、特許請求の範囲内に入る全ての例を包含する。
【図面の簡単な説明】
【0140】
本出願は、添付の図面を参照してより詳細に説明される:
【
図1】プログラミング言語ラダーダイアグラムLDおよびデータフローグラフによるグラフィカルダイアグラムの模式図;
【
図2】プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
【
図3】プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
【
図4】プログラミング言語ラダーダイアグラムLDおよびさらなるデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
【
図5】プログラミング言語ラダーダイアグラムLDおよび別のデータフローグラフによるさらなるグラフィカルダイアグラムのさらなる模式図;
【
図6】実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法の模式図;
【
図7】実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のフローチャート;
【
図8】さらなる実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のさらなるフローチャート;
【
図9】さらなる実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法のさらなるフローチャート;
【
図10】別の実施形態によるオートメーションシステムを制御するための制御プログラムを生成するための方法の別のフローチャート;
【
図11】一実施形態によるプログラミングツールの模式図。
【符号の説明】
【0141】
100 方法
101 ダイアグラム生成ステップ
103 グラフ生成ステップ
105 プログラム生成ステップ
107 受信ステップ
109 プログラミングステップ
111 グラフィカルプログラミングステップ
113 読み込みステップ
115 第2のグラフ生成ステップ
117 表示ステップ
119 第1の配置ステップ
121 第2の配置ステップ
123 ソーティングステップ
125 最適化ステップ
127 記憶ステップ
200 グラフィカルダイアグラム
201 要素
203 接続線
205 水平成分
207 垂直成分
209 水平開始構成要素
211 第1の垂直成分
213 水平中心成分
215 第2の垂直成分
217 水平入力成分
300 データフローグラフ
301 ノード
303 エッジ
305 開始ノード
307 終了ノード
308 第1のノード
309 第2のノード
310 第3のノード
311 第4のノード
312 第5のノード
313 第1のエッジ
314 第2のエッジ
315 第3のエッジ
316 第4のエッジ
317 第5のエッジ
315 第6のエッジ
316 第7のエッジ
317 第8のエッジ
400 二次元配列
401 プロット単位
403 分離線
500 プログラミングツール
501 グラフィックエディタユニット
503 変換ユニット
505 データ処理部
SEQ1 第1の配列
SEQ2 第2の配列
SEQ3 第3の配列
ALT1 第1の選択肢
ALT2 第2の選択肢
ALT3 第3の選択肢
L 左電圧レール
R 右電圧レール
E1 第1の接点
E2 第2の接点
E3 第3の接点
A1 第1のコイル
A2 第2のコイル
A3 第3のコイル
FB1 第1の機能ブロックインスタンス
FB2 第2の機能ブロックインスタンス
CALC 機能ブロック
a 第1の入力
b 第2の入力
c 第3の入力
x 第1の出力
y 第2の出力
【手続補正書】
【提出日】2023-05-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
オートメーションシステムを制御するための制御プログラムを生成するための方法
(100)であって:
ダイアグラム生成ステップ
(101)において、
プログラミングツール(500)のグラフィカルエディターユニット(501)を用いて、プログラマブルロジックコントローラのためのグラフィカルプログラミング言語であるラダーダイアグラム
KOPに従って、前記制御プログラムのグラフィカルダイアグラム
(200)を生成するステップ;
グラフ生成ステップ
(103)において、
前記プログラミングツール(500)の変換ユニット(503)を用いて、前記グラフィカルダイアグラム
(200)の
テキスト表現としてデータフローグラフ
(300)を生成するステップであって、前記グラフィカルダイアグラム
(200)の要素
(201)が前記データフローグラフのノード
(301)として表され、前記グラフィカルダイアグラム
(200)の要素
(201)間の接続線
(203)が前記データフローグラフ
(300)のエッジ
(303)として表される、ステップと、
プログラム生成ステップ
(105)において、
前記プログラミングツール(500)の変換ユニット(503)を用いて、前記データフローグラフ
(300)に基づいて、プログラマブルロジックコントローラによって実行可能な前記制御プログラムのバージョンを生成するステップを含
み、前記実行可能なバージョンは、前記制御プログラムのバイナリバージョンである、方法
(100)。
【請求項2】
前記ダイアグラム生成ステップ
(101)は:
受信ステップ
(107)において、前記グラフィカルプログラミング言語であるラダーダイアグラム
KOPによる、グラフィカルプログラミング要求を受信するステップであって、前記グラフィカルプログラミング要求は前記グラフィカルダイアグラム
(200)の要素
(201)および/または接続線
(203)を追加および/または削除および/または再配置するステップを含み、
前記グラフ生成ステップ
(103)は:
プログラミングステップ
(109)において、前記プログラミング要求に従って、前記データフローグラフ
(300)のノード
(301)および/またはエッジ
(303)を追加および/または削除および/または再配置することによって、前記データフローグラフ
(300)を修正するステップを含み、
前記グラフ生成ステップ
(103)は:
グラフィカルプログラミングステップ
(111)において、前記データフローグラフ
(300)に対する前記修正に基づき、および前記グラフィカルプログラミング要求に従って、前記グラフィカルダイアグラム
(200)内の要素
(201)および/または接続線
(203)を追加および/または削除および/または再配置するステップを含む、請求項1に記載の方法
(100)。
【請求項3】
前記ダイアグラム生成ステップ
(101)は:
読み込みステップ
(113)において、前記グラフィカルプログラミング言語であるラダーダイアグラムLDでプログラムされた制御プログラムを読み込むステップを含み、
前記グラフ生成ステップ
(103)は:
第2のグラフ生成ステップ
(115)において、前記読み込まれた制御プログラムの情報に基づいてデータフローグラフ
(300)を生成するステップを含み:
前記ダイアグラム生成ステップ
(101)は:
表示ステップ
(117)において、前記データフローグラフ
(300)の前記情報に基づいて前記グラフィカルダイアグラム
(200)を生成する、請求項1
または2に記載の方法
(100)。
【請求項4】
前記グラフィカルプログラミングステップ
(111)および/または前記表示ステップ
(117)は:
第1の配置ステップ
(119)において、前記データフローグラフ
(300)の前記ノード
(301)を前記グラフィカルダイアグラム
(200)の要素
(201)に変換し、前記要素
(201)を
グラフィカル2次元配列
(400)に配置するステップ;および
第2の配置ステップ
(121)において、前記データフローグラフ
(300)の前記エッジ
(303)を前記グラフィカルダイアグラム
(200)の要素
(201)間の接続線
(203)に変換し、前記グラフィカルダイアグラム
(200)の前記要素
(201)間の前記接続線
(203)を配置するステップを含み、各接続線
(203)は専ら水平成分
(205)及び/又は垂直成分
(207)を含み、専ら2つの要素
(201)を接続する、請求項2
または3に記載の方法
(100)。
【請求項5】
前記
グラフィカル2次元配列
(400)は
互いに隣り合う複数の
平面プロットユニット
(401)を有するマトリクス配列として具現化され、
前記平面プロットユニット(401)は、マトリクス配列の中の複数の行及び列に配列され、各要素
(201)はプロットユニット
(401)に配置され、前記接続線
(203)はプロットユニット
(401)間の分離線
(403)に少なくとも部分的に沿って配置される、請求項4に記載の方法
(100)。
【請求項6】
前記データフローグラフ
(300)は、非巡回グラフとして具現化され、開始ノード
(305)および終了ノード
(307)を含む、請求項1
から5の何れか1項に記載の方法
(100)。
【請求項7】
前記グラフィカルプログラミングステップ
(111)および/または前記表示ステップ
(117)は:
ソーティングステップ
(123)において、前記データフローグラフ
(300)の前記ノード
(301)と前記それぞれのグラフィカルダイアグラム
(200)の対応する要素
(201)とを、トポロジカルにソーティングするステップを含み、前記トポロジカルにソーティングするステップにおいて、前記データフローグラフ
(300)の前記ノード
(301)と前記グラフィカルダイアグラム
(200)の対応する要素
(201)との順序が決定され、前記順序は前記開始ノード
(305)からの各ノードの距離に対応し;および
前記第1の配置ステップ
(119)において、トポロジカルソーティングの前記順序に従って前記グラフィカルダイアグラム
(200)の前記要素
(201)を配置するステップと、を含む、請求項6に記載の方法
(100)。
【請求項8】
前記グラフィカルプログラミングステップ
(111)および/または前記表示ステップ
(117)は、
最適化ステップ
(125)において、最適化アルゴリズムを用いて、前記グラフィッカルダイアグラム
(200)の前記要素
(201)および/または前記接続線
(203)の前記配置を最適化するステップを含み、
前記最適化ステップ
(125)は、前記接続線
(203)の長さを最小化すること、および/または、要素
(201)の距離を最小化すること、および/または複数の接続線
(203)が交差するのを回避することを含
み、前記最適化アルゴリズムは色彩問題を解くために設定される、請求項2
から7の何れか1項に記載の方法
(100)。
【請求項9】
前記データフローグラフ
(300)のエッジ
(303)が有向エッジとして具現化され、前記データフローグラフ
(300)の2つのノード
(301)間のエッジ
(303)の方向が、前記ノード
(301)によって表される前記グラフィカルダイアグラム
(200)の前記要素
(201)間の電流の流れを表す、請求項1
から8の何れか1項に記載の方法
(100)。
【請求項10】
前記グラフィカルダイアグラム
(200)の要素
(201)は、電圧レール
(L,R)及び/又は接点
(E1,E2,E3)及び/又はコイル(A
1,A2,A3)及び/又は機能ブロックインスタンス(FB1,FB2)及び/又は機能ブロック
(CALC)及び/又は前記プログラミング言語であるラダーダイアグラム
KOPによって定義された更なる要素を含む、請求項1
から9の何れか1項に記載の方法
(100)。
【請求項11】
記憶ステップ
(127)において、前記データフローグラフ
(300)をテキスト表現で記憶すること、および/または実行ファイルに前記制御プログラムの実行可能バージョンを記憶するステップを、更に含む、請求項1
から10の何れか1項に記載の方法
(100)。
【請求項12】
オートメーションシステムを制御するための制御プログラムを生成するためのプログラミングツール
(500)であって、前記プログラミングツール
(500)は、グラフィカルエディタユニット
(501)および変換ユニット
(503)を備え、請求項1
から11の何れか1項に記載の方法
(100)を実行するように構成されている、プログラミングツール
(500)。
【請求項13】
制御プログラムを実行することによってオートメーションシステムを制御する方法(100)であって、
前記制御プログラムは、請求項1
から11の何れか1項に記載のオートメーションシステムを制御する制御プログラムを生成する方法により生成されることを特徴とする方法
(100)。
【国際調査報告】