ザ・ CODESYS Recipes レシピマネージャー
ザ・ CODESYS Recipes アドオンは、変数 (レシピ) のセットをコントローラに、またはプログラミングシステムを介して保存およびロードするためのシステムです。Recipe Manager を使用すると、アプリケーションのさまざまな設定やパラメーターの状態を一元的に管理し、コントローラーに保存し、必要に応じて復元することができます。これにより、アプリケーションの動作をさまざまな動作状態や製品バリアントに柔軟に適応させることができます
でのレシピマネージャの使用 CODESYS プロジェクト
レシピマネージャーを使用するには、アプリケーションのデバイスツリーにレシピマネージャーオブジェクトを作成する必要があります。 レシピを作成、管理、処理できるように、レシピマネージャーの下にレシピ定義を少なくとも 1 つ追加する必要があります。
詳細については、以下を参照してください。 レシピの定義
レシピ管理の基本原則
レシピは、レシピ定義である定義済みの変数セットで構成されます。レシピを読み込んだり書き込んだりすると、レシピに含まれるすべての変数がコントローラー上で同時に更新されます。その結果、パラメータグループを一貫性のある再現可能な方法で設定したり読み込んだりできます
保存場所や保存形式などの設定は、Recipe Manager オブジェクトで設定されます。このオブジェクトの下には、レシピ定義をいくつでも作成できます。
レシピには次のものがあります。
ファイルに格納
ファイルからコントローラーに読み込まれます
コントローラー内でのみ管理
リモートデバイスでのレシピの使用
データソース変数が関係していて、データソース交換が設定されている場合、レシピの変数値は自動的に別のコントローラーとの間で転送されます。読み取りと書き込みは同期して行われます。つまり、レシピ定義に設定されているすべての変数が同時に更新されます
読み書きした後は、通話を使用できます g_RecipeManager.LastError 転送が成功したかどうかを確認するには (g_RecipeManager.LastError = 0)。
運用コンセプト
レシピ管理はさまざまなレベルから制御できます。
CODESYS プログラミングインタフェース
レシピは、プログラミングインターフェイスで直接手動で読み込み、編集、保存できます。
視覚化
ビジュアライゼーションでは、レシピコマンドの呼び出しは以下を使用して実装されます 入力構成 (コマンド実行) ビジュアライゼーション要素用。これにより、ビジュアライゼーションユーザーはレシピコマンドの実行を制御できます。
アプリケーションプログラム
実行時に、アプリケーション プログラムでレシピ定義とレシピ コマンドを呼び出すことができます。これを行うには、
RecipeManCommandsの機能ブロックRecipeManagement図書館。詳細については、以下を参照してください。 RecipeManCommands (FB)
ロードモード
レシピマネージャーは、レシピファイルのロードに次の 2 つのロードモードをサポートしています。
完全一致
レシピファイルのデータは、その構造がそれぞれのレシピ定義の変数リストに完全かつ完全に一致する場合にのみロードされます。
セレクティブマッチング
レシピ定義の変数リストに表示されるレシピファイルのすべての変数は、リスト内の位置に関係なくロードされます。 レシピファイルにデータが存在しない変数は更新されません。
レシピマネージャーで選択したロードモードは、特に以下の状況に適しています。
レシピファイルが外部エディターで作成または変更されたため、内部で設定された変数やその順序と完全には一致しなくなりました。
レシピファイルは新しいアプリケーション用に拡張されましたが、これらの追加変数を必要としない古いプロジェクトでは使用できなくなりました。 (より簡単な解決策は V2 ファイルを作成することですが、ロードモードも互換性に寄与する可能性があります)。
レシピファイルを読み込めない場合
レシピファイルをロードできない場合は、ロードモードを次のように設定します セレクティブマッチング。 この設定は、Recipe Manager が統合されているアプリケーションにロードされたすべてのレシピに適用されることに注意してください。
詳細については、以下を参照してください。 レシピマネージャー
ファイルアクセス
PLC ファイルシステムの外部にある外部ファイルへのアクセスは、セキュリティ上の理由から制限されています。 その結果、外部ディレクトリにあるファイルを開いたり書き込んだりしようとすると失敗します。
の場合 CODESYS Control Win SLデフォルトパスは、たとえばランタイムファイルのディレクトリを指します。 PlcLogic これは内部 PLC ファイルシステムを表します。
アクセス違反を避けるため、このディレクトリまたは特定のコントローラの別の内部ディレクトリをルートパスとして使用してください。
ホストシステムのファイルエクスプローラーから PLC ファイルシステムにアクセスできない、またはアクセスできないはずの場合は、以下を使用してください。 タブ:ファイル 内 CODESYS ファイル (レシピで使われるファイルなど) を管理します。
トラブルシューティング
エラー状態を評価するには、以下の手順を使用できます。
操作によって返されたエラーコードのキャプチャ
戻り値を、次のリストで定義されているエラー状態と比較します。 リターンバリュー (GVL)。
発生した最後のエラーを取得
最後に発生したエラーコードを取得するには、
RecipeManCommands.GetLastError()メソッド。
ロード操作が完全に成功したか部分的に成功したかを詳細に分析するには (たとえば、レシピのすべての変数がロードされなかった場合)、 RecipeManCommands.GetLastInfo() メソッド。
このメソッドは、以下を使用して評価できる情報コードを提供します。 InfoValues (ENUM) 列挙。
ヒント
保存されているエラーコードは、たとえば次の方法で手動でリセットする必要がある場合があります。 RecipeManCommands.ResetLastInfo() メソッド。
変化の検出
変更を簡単に検出するには、 InfoValues (ENUM) トラブルシューティングセクションで説明されている列挙。
状態変化に関するより詳細な情報が必要な場合は、冗長データ構造を実装できます。これにより、レシピの以前の状態と現在の状態、およびコントローラーの現在の変数値を比較できます
スライディングウィンドウ機構
スライディングウィンドウメカニズムは、レシピ値とその変数名の読み取りによく使用されます。
ウィンドウサイズとオフセット (データリスト上のウィンドウの位置) を使用して、かなり大きなバッファ内の定義済みの範囲のエントリを表示するために使用されます。
詳細については、以下を参照してください。 Recipeman コマンド.getRecipeValues ()、 Recipeman コマンド. Get Recipe 変数名 ()、および レシピマンコマンド. レシピ名を取得 ()

レシピファイルの命名スキーム
レシピファイルは、たとえばファイルシステム内で一意に識別できるように、定義された命名規則に従います。
Note the following naming scheme: <recipe>.<recipe definition>.<extension>
Recipe: 特定のレシピの名前。Recipe definition: それぞれのレシピ定義の名前。Extension:「レシピマネージャ」タブのデバイスツリーで指定されているファイル拡張子 (.txt、.csv など)。
浮動小数点数用の特殊機能
タイプの変数の場合 REAL または LREAL、値が正確に変換可能かどうかは区別されます。
値を正確に変換できる場合は、数値のみがレシピファイルに保存されます。
正確な変換が不可能な場合は、レシピファイルの数値の横に 16 進数でエンコードされた文字列が書き込まれます。これは、変換できない浮動小数点数でも同じ値を返すという効果があるはずです
この機能は、次の方法で無効にできます。 RECIPE_GENERATE_SIMPLE_STRINGREAL コンパイラ定義。
ヒント
上の親アプリケーションのオブジェクトプロパティで ビルド タブをクリックすると入力できます RECIPE_GENERATE_SIMPLE_STRINGREAL コンパイラは コンパイラ定義 フィールド。その結果、16 進数でエンコードされた文字列は保存されません
詳細については、以下を参照してください。 ダイアログ:プロパティ:ビルド
コントローラーのレシピ管理 — メモリ使用量
クリアすると PLC でのレシピ管理 オプションを選択した場合、レシピマネージャーとレシピ定義は PLC のメモリを一切使用しません。
このオプションを選択すると、レシピマネージャーとすべてのレシピ定義のコードが生成され、このコードが PLC に保存されます。使用されるメモリのサイズは、主にレシピとその変数の数、および変数のデータ型によって異なります。レシピ定義のフィールドが入力されているかどうかも影響します。レシピのメモリ使用量は計算できません。必要なときに実験して決定する必要があります。次の表は、いくつかの指針となる原則を示しているにすぎません
コードサイズ (バイト) | データサイズ (バイト) | 合計 (バイト) | |
|---|---|---|---|
100 を使ったレシピ定義 | 194406 | 79400 | 267352 |
200 を使ったレシピ定義 | 238318 | 121284 | 459344 |
300を使ったレシピ定義 | 282230 | 163084 | 543856 |
100 を使ったレシピ定義 | 192742 | 69884 | 343168 |
200 を使ったレシピ定義 | 235446 | 101568 | 436872 |
300を使ったレシピ定義 | 278146 | 133284 | 510072 |
100 を使ったレシピ定義 | 203278 | 870084 | 1154000 |
100 を使ったレシピ定義 | 255570 | 1709784 | 2973296 |
100 を使ったレシピ定義 | 307886 | 2549484 | 2964112 |