HMIアプリケーションの状態保存
HMIアプリケーションの状態を保存する機能は、現在のアプリケーションコントロールで選択されている構成を保存し、後でそれを呼び戻すことを可能にします。これは、アプリケーションを閉じて再起動した後に選択した設定を元に戻すだけでなく、多くの構成セットを保存し、それらのうちの1つを迅速に復元する可能性を提供します。例えば、検査対象のオブジェクトのタイプを変更した後などです。
特定のコントロールに関連する編集中のパラメータに影響を与える可能性がある、対応するアプリケーションコントロールに保存された値は、すべて保存されたコントロールの構成に考慮されます。これは、アプリケーションウィンドウ上のコントロールのサイズなどの視覚的な状態である必要はありません。1つの構成セットにはアプリケーション内のすべてのコントロールが含まれる可能性がありますが、適切なコンテナの内部に狭められた一部のコントロールのみを含むようにコントロールを選択的に構成することもできます。
単一のアプリケーション構成は、単一の構成ファイルに保存されます。言い換えれば、1つのファイルは常に1つの保存されたHMIの状態に対応します。構成ファイルを保存する場所は、作成される各アプリケーションごとに個別に設定できます。保存された構成ファイルの形式は、HMIアプリケーション内のコントロールの配置と厳密に関連しています。構成ファイルは異なるアプリケーション間で交換できず、既存の構成ファイルを正しく読み込むことができなくなる可能性がある(既存のコントロールを削除し、同時に同じ種類の新しいコントロールを追加するなど、アプリケーションプロジェクトで重大な変更がある場合など)。
HMIアプリケーションの状態を保存する機能を使用するには、プロジェクトに「状態管理」カテゴリのコントロール(1つ以上)を追加する必要があります。この機能の動作は、そのようなコントロールのプロパティによってパラメータ化され、アプリケーションの状態を保存および読み込むプロセスはこれらによって制御されます。アプリケーション内の一部のコントロールのみの状態を保存する場合は、これらを「状態を保存する」コントロールと一緒に別のコンテナ(コンテナカテゴリのコントロール)に配置し、このコントロールのRangeプロパティを適切に調整します。これと同様のコントロールグループを複数作成し、それらを互いにネストすることも可能です。
利用可能なHMIアプリケーションの状態を管理するためのコントロールについて以下に説明します:
このコントロールには、以下の要素が含まれています(左から右へ):
- 保存された構成のコンボボックス
- コンボボックスで選択された構成を読み込むためのボタン
- 現在のアプリケーションの状態をコンボボックスで選択された構成に保存するためのボタン
- 現在のアプリケーションの状態を指定された名前の新しく作成された構成に保存するためのボタン
- コンボボックスで選択された構成を削除するためのボタン
各構成は、このコントロールに関連付けられたフォルダ内の別々のファイルとして保存されます。コントロールで表示される構成のリストは、このフォルダ内のファイルのリストに対応しています。ファイルシステム内のこのようなフォルダの場所は、BaseDirectoryおよびBaseSubdirectoryプロパティで定義されています。構成に関連するフォルダには他の要素が含まれていないことをお勧めします。
同じアプリケーション内で同じフォルダに複数のStateControlBoxコントロールをリンクしないでください。これは、構成ファイルの不正な上書き、他のアプリケーションパーツ向けに読み込まれる構成の提案、および変更に同期できない可能性があるためです。
このコントロールには、HMIの状態を保存する上で重要な以下のプロパティがあります:
- 保存された構成を表示するコンボボックス
- コンボボックスで選択された構成を読み込むためのボタン
- 現在のアプリケーションの状態をコンボボックスで選択された構成に保存するためのボタン
- 現在のアプリケーションの状態を指定された名前の新しく作成された構成に保存するためのボタン
- コンボボックスで選択された構成を削除するためのボタン
各構成は、このコントロールに関連付けられたフォルダ内の別々のファイルとして保存されます。コントロールで表示される構成のリストは、このフォルダ内のファイルのリストに対応しています。ファイルシステム内のこのようなフォルダの場所は、BaseDirectoryおよびBaseSubdirectoryプロパティで定義されています。構成のコンボボックスは、指定されたフォルダ内で見つかる必要のあるすべての拡張子付きのファイルの名前で埋められます(そのため、他の要素が含まれていない構成用の別々のフォルダを使用することが推奨されます)。同じアプリケーション内で同じフォルダに複数のStateControlBoxコントロールをリンクしないでください。これは、構成ファイルの不正な上書き、他のアプリケーションパーツ向けに読み込まれる構成の提案、および変更に同期できない可能性があるためです。
このコントロールには、HMIの状態を保存する上で重要な以下のプロパティがあります:
- BaseDirectory - これはローカルファイルシステムの構成ファイルの基本フォルダの開始場所を定義します。これは次のいずれかの事前定義値を受け入れます:
- ProjectDir - 現在実行中のアプリケーションのプロジェクト(.avprojファイル)またはアプリケーションの実行可能ファイル(.avexe)が保存されているフォルダ。この設定でコントロールが正常に動作するようにするには、プロジェクトを保存する必要があります(コントロールはAurora Vision Studioの保存されていないプロジェクトでは正常に動作しません)。
- MyDocuments - ユーザーのドキュメントのシステムフォルダ(例:C:\Users\John\Documents\)。
- UserLocalSettings - 現在ログインしているユーザーのローカル設定のシステムフォルダ(例:C:\Users\John\AppData\Local\)
- None - 開始フォルダなし、BaseSubdirectoryプロパティはフォルダへの完全な絶対パスを指すことになります。
- BaseSubdirectory - これは構成ファイルが保存されているフォルダへのパスを定義します。相対パスを入力した場合(例:MyDataFiles\MyConfigurationFiles)、その場所はBaseDirectoryプロパティで選択した開始フォルダ内のサブフォルダを定義します。絶対パスを入力した場合(例:D:\MyConfigurationFile\MyAppConfigurationまたは\\MyServer\\MyShare\MyConfigurations)、その値は完全な絶対フォルダパスを定義します。
- CreateSubdirectory - これをTrueに設定すると、BaseSubdirectoryプロパティで定義されたフォルダが新しい構成を保存する前に(存在しない場合)、完全に作成されます。これをFalseに設定した場合(デフォルト値)、そのようなフォルダがまだ存在しない場合、構成を保存しようとすると失敗します。
- ControlRange - これは、HMIアプリケーションに存在するコントロールがその構成の保存および復元に参加するかどうかを定義します。次の値を受け入れます:
- Global - HMIアプリケーション全体のすべてのコントロールがそのコントローラーの一部として状態を保存および読み込みます。
- InContainer - ステートコントローラーコントロールと同じコンテナに配置されているHMIアプリケーションのコントロールのみが、その状態を保存および読み込むのに参加します(例:StateControlBoxコントロールと同じGroupBoxコントロール内に配置されているコントロールのみがその状態を保存します)。
- AutoLoad - これをTrueに設定すると、選択した構成が保存された構成のリストで位置を切り替えた後、自動的にHMIアプリケーションに読み込まれます。これをFalseに設定した場合(デフォルト値)、その構成は「構成を読み込む」ボタンをクリックした後にのみ読み込まれます。
- PromptBeforeSave - これをTrueに設定すると、「構成を保存」ボタンを押した後にアクションの確認を求める追加のメッセージが表示されます(現在選択されているファイルを誤って上書きするのを防ぐため)。これをFalseに設定した場合(デフォルト値)、リストで現在選択されている構成は、「構成を保存」ボタンを押した直後にすぐに上書きされます。このプロパティは「名前を付けて構成を保存」ボタンの動作に影響しません。
StateControlBoxコントロールの追加のプロパティ:
- ButtonsSize - これにより、コンボボックスの右側にあるコントロールボタンのサイズを変更できます。次のいずれかの値を受け入れます:Small(デフォルト値)、Medium、Large
StateControlButtonコントロール
このコントロールは、通常のボタン(ImpulseButtonコントロール)に外見が似ており、外観を定義する同じプロパティを提供します。ただし、ImpulseButtonコントロールとは異なり、このコントロールをクリックした際の反応は、アプリケーションの状態を保存または読み込むための選択したアクションの1つを実行します。
デザインレベルでは、このコントロールはBaseDirectoryおよびFilePathプロパティによって記述される定数パスにある特定の構成ファイルと関連付けられます。このファイル上でアプリケーションステートの保存または読み込み操作の1つを実行します。StateControlBoxコントロールとは異なり、構成リストをエンドユーザーに完全に制御させず、アプリケーションの状態保存を制御するための個別で標準外のユーザーインターフェースを構築することができます。
このコントロールには、HMI状態を保存する観点から重要な以下のプロパティがあります:
- BaseDirectory - これはStateControlBoxコントロールのBaseDirectoryプロパティと同じく、構成ファイルへのパスの開始位置を定義します。
- FilePath - これは構成ファイルへのパスを定義します。BaseDirectoryに設定された場所を起点として相対的な場所を指すか、StateControlBoxコントロールのBaseSubdirectoryプロパティと同じく完全な絶対パスを指すことができます。ファイル名は拡張子なしで入力する必要があります(コントロールが自動的に追加します)。
- CreateSubdirectory - これをTrueに設定すると、新しい構成を保存する前に、FilePathプロパティで説明されているファイルを含むフォルダが完全に作成されます(まだ存在しない場合)。False(デフォルト値)に設定した場合、そのようなフォルダがまだ存在しない場合、構成の保存の試みは失敗します。
- ButtonMode - これはボタンがクリックされた後に実行するアクションを定義します。次のいずれかの値を受け入れることができます:
- Save - 現在のHMIアプリケーションの状態を関連するファイルに保存する。
- Load - HMIアプリケーションの構成を関連するファイルから読み込む。
- ControlRange - これはStateControlBoxコントロールのControlRangeプロパティと同じく、HMIアプリケーション内のどのコントロールが構成を保存および読み込むのに参加するかを定義します。
StateAutoLoaderコントロール
このコントロールは、アプリケーションの起動時に選択したHMI構成を自動的にロードするか、アプリケーションを閉じる際に現在のHMI状態を自動的に構成ファイルに保存するために使用できます。StateAutoLoaderは、その範囲を定義するコンテナコントロールの内部に配置する必要があります。このコントロールはデザインモードでのみ表示され、実行時には非表示になります。
StateAutoLoaderを使用すると、構成ファイルの自動読み込みおよび保存により、不揮発性のHMIを作成できます。基本的には、このコントロールを使用してアプリケーションの開始時にHMI構成を自動的に読み込み、StateControlButtonコントロールを使用して現在のHMI構成を手動でファイルに保存することが推奨されています。
このコントロールには、HMIの状態の保存および読み込みの観点から重要な以下のプロパティがあります(ほとんどのプロパティはStateControlBoxコントロールのものと同じです):
- AutoLoadOnOpen - Trueに設定すると、FilePathプロパティで定義されたファイルから構成がアプリケーションの起動時にロードされます。
- AutoSaveOnClose - Trueに設定すると、HMIの現在の状態がアプリケーションを閉じる際にFilePathプロパティで定義された構成ファイルに保存されます。構成は予期せぬ方法でアプリケーションが閉じられた場合(例:電源喪失時)は保存されません。
- BaseDirectory - これはStateControlBoxコントロールのBaseDirectoryプロパティと同じく、構成ファイルへのパスの開始位置を定義します。
- FilePath - これは構成ファイルへのパスを定義します。BaseDirectoryに設定された場所を起点として相対的な場所を指すか、StateControlBoxコントロールのBaseSubdirectoryプロパティと同じく完全な絶対パスを指すことができます。ファイル名は拡張子なしで入力する必要があります(コントロールが自動的に追加します)。指定された場所にファイルが見つからない場合でAutoLoadOnOpenがTrueに設定されている場合、アプリケーションの起動時の読み込みは無視され、コントロールの状態は変化しません。
- CreateSubdirectory - これをTrueに設定すると、FilePathプロパティで説明されているファイルを含むフォルダが新しく作成されます(まだ存在しない場合)が、新しい構成を保存する前に。これをFalse(デフォルト値)に設定した場合、そのようなフォルダがまだ存在しない場合、構成の保存の試みは失敗します。
- ControlRange - これはStateControlBoxコントロールのControlRangeプロパティと同じく、HMIアプリケーション内のどのコントロールが構成を保存および読み込むのに参加するかを定義します。