リファクタリング
一般に、リファクタリングは、動作を変更せずに、すでに作成されたソフトウェアの設計を改善する方法です。
リファクタリング CODESYS オブジェクト名と変数名の名前を変更したり、ブロックI / Oを更新したりするための機能を提供します。名前が変更されたオブジェクトと変数が使用されているすべての場所を表示してから、それらを全体として、または個別に選択して名前を変更できます。さらに、あなたはすることができます かどうか、どの時点で設定するか CODESYS リファクタリングを自動的に促します。
グローバル変数の名前を変更する
要件:少なくとも1つの機能ブロックを含むプロジェクトを開いている FB およびグローバル変数リスト。グローバル変数リスト GVL はエディターで開いており、変数の宣言が含まれています。たとえば、 iGlobal
。 FB 使用済み iGlobal
。
たとえば、グローバル変数の名前を選択します
iGlobal
。コンテキストメニューでコマンドを選択します
。対話に入る 名前を変更 入力フィールドに 新しい名前 たとえば、新しい名前を入力します
iGlobalOK
をクリックします わかった。対話 リファクタリング 開きます。左側のウィンドウのデバイスツリーには、オブジェクトがあります GVL と FB 赤でマークされ、黄色で強調表示されます。右側のウィンドウには FB そのエディターで開き、
iGlobal
すでにiGlobalOK
名前を変更しました。クリック わかった。
プロジェクトにグローバル変数はありません
iGlobal
。どこにでもあるiGlobalOK
。
たとえば、グローバル変数の名前を選択します
iGlobal
。コンテキストメニューでコマンドを選択します
。対話に入る 名前を変更 入力フィールドに 新しい名前 たとえば、新しい名前を入力します
iGlobalTest
をクリックします わかった。対話 リファクタリング 開きます。左側のウィンドウのデバイスツリーには、オブジェクトがあります GVL と FB 赤でマークされ、黄色で強調表示されます。汎用モジュールは右側のウィンドウにあります FB そのエディターで開きます。それ以外の
iGlobal
はiGlobalTest
リストされています。カーソルを右側のウィンドウに置き、コンテキストメニューを開きます。
コマンドを選択します このオブジェクトを破棄します をクリックします わかった。
プロジェクトにはグローバル変数があります
iGlobal
の FB 現在。これで、変数は、他の方法で変数が発生したオブジェクトに含まれます。iGlobalTest
指定。エラーメッセージは、識別子がメッセージウィンドウに表示されます
iGlobal
定義されていません。
入力変数の追加と削除
リファクタリングコマンドを使用して、POUの宣言部分で入力変数または出力変数を追加または削除できます。ブロックの使用ポイント/呼び出しポイントで更新 CODESYS したがって、使用ポイントごとにこれを受け入れるか拒否することができます。このためのダイアログが表示されます リファクタリング。
要件:あなたはPOUを持っています FCT
タイプの関数がエディターで開かれました。関数にはすでに入力変数があります input1
と input2
と inputx
。彼女はプログラムに参加します PLC_PRG
と POU
と呼ばれる。
FCT関数の宣言部分に焦点を当てます。
コマンドを選択
。変数を宣言するための標準ダイアログが表示されます。
変数を宣言する
input_3
スコープ付きVAR_INPUT
およびデータ型INT
。とのダイアログを閉じる わかった。対話 リファクタリング が表示されます(下の図を参照)。影響を受ける領域は黄色でマークされています。 (1)+(2)
右上のオプションを選択します プレースホルダーテキストを使用して入力を追加する。 (3)
左側のウィンドウで、背景が黄色のオブジェクトの1つにカーソルを置きます。
PLC_PRG
。コンテキストメニューでコマンドを選択します プロジェクト全体を受け入れる新しい変数をの使用ポイントに追加するにはFCT
プロジェクト全体に追加します。右側のウィンドウで、の実装部分の変更を確認できます。
PLC_PRG
:プレースホルダー_REFACTOR_
新しい変数が挿入されたポイントにが表示されます。ダイアログを閉じる リファクタリング と わかった。
コマンドを選択
。プロジェクトで「_REFACTOR_」を検索して、影響を受ける場所を確認し、それに応じて編集します。注:または、最初にプレースホルダーを操作せずに、目的の初期化値を使用して新しい変数を直接挿入することもできます。この場合、手順4でオプション「:。add with the following value」を選択し、その右側に値を入力します。

CFCブロックにプレースホルダーテキストを含む新しい変数の例

また、リファクタリングを介して変数を削除する機能にも注意してください。
宣言内の変数を並べ替えます
ブロックの宣言部分では、リファクタリングを使用して宣言の順序を変更できます。これはスコープの宣言で可能です VAR_INPUT
、 VAR_OUTPUT
また VAR_IN_OUT
。
要件:次の宣言を含むPOUの宣言部分を開いている必要があります。次に例を示します。
VAR_INPUT invar2 : INT; invar1 : INT; in : DUT; bvar : BOOL; invar3 : INT; END_VAR
この宣言ブロックにカーソルを置き、マウスの右ボタンを押してコンテキストメニューを開きます。
コマンドを選択します
。対話 再配置 のリストとともに表示されます
VAR_INPUT
-変数。たとえば、エントリを選択します invar1:INT; マウスでエントリの前にドラッグします invar2。。
の宣言
invar1
現在、最優先事項です。とのダイアログを閉じる わかった。
対話 リファクタリング が表示されます。影響を受ける領域は黄色でマークされています。 (上の画像を参照)
で確認する わかった新しい注文をブロックに適用します。
変数宣言を変更し、リファクタリングを自動的に適用します
変数の名前を変更するときに宣言をリファクタリングすることでサポートされます(自動宣言を使用)。
要件:汎用モジュール fb_A
。
コマンドを選択します
。ダイアログ オプション 開きます。
カテゴリを選択してください リファクタリング。
以下でアクティブ化 自動宣言 オプション 変数の名前を変更する場合 と 変数の追加または削除、または名前空間の変更用。
汎用モジュールをダブルクリックします
fb_A
。の宣言で選択
fb_A
たとえば変数iA
。または、変数の前または変数の中にカーソルを置くこともできます。与える トグル + F2)。
1 (対話 変数を宣言する 開きます。ダイアログには、の設定が含まれています
iA
。の名前を変更します
iA
後iCounter_A
。オプション リファクタリングを使用した変更 が表示され、アクティブになります。
クリック わかった。
対話 リファクタリング iAの名前をiCounterAに変更します 開きます。変数の名前変更の影響を受けるすべての位置がそこにマークされています。
でダイアログを終了します わかった。
変更は受け入れられます。