Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

UDT スクリプトの追加

  • Last UpdatedJul 01, 2026
  • 4 minute read
  1. [ユーザー定義型]ペインでデータ型を右クリックし、コンテキスト メニューから[新規]を選択し、[スクリプト]を選択します。

    Create Script Option

    または

    ツールバーで[新規メンバー] Script Icon を選択します。

    または

    ショートカット キー Ctrl+Shift+R を使用します。

    新しいスクリプト Script001 が作成され、スクリプト エディタで開きます。スクリプトの名前を変更するには、スクリプトを右クリックして[名前の変更]を選択します。以下の例では、スクリプトの名前が UpdateSetpoint に変更されています。

    Add scrip

    このスクリプト メソッドの既定のシグネチャが作成されます。以下に、C# スクリプトの既定のシグネチャを示します。

    NewScript

    以下に、Python スクリプトの既定のシグネチャを示します。

    Python Default

    メソッド名はスクリプト名と一致している必要があります。一致しない場合は、エラーメッセージが表示されます。たとえば、「UpdateSetpoint」という名前のスクリプトに「UpdateSetpoint」というパブリック メソッドが含まれていない場合、以下のメッセージが表示されます。

  2. [プロパティ]グリッドで、選択したスクリプトのプロパティを確認できます。これには以下が含まれます。

    • 名前:スクリプトの名前。

    • コメント:任意のコメント。

    • 言語:スクリプトを記述する言語を選択します。初めてスクリプトを作成する際は、既定で C# が選択されています。Python スクリプトを使用する場合は、手動で Python に変更する必要があります。新しいスクリプトを作成する際は、前回選択したスクリプト言語が保持されます。たとえば、Python でスクリプトを作成して保存した場合、新しいスクリプトは既定で Python になります。C# を使用する場合は、スクリプト言語を手動で変更する必要があります。

      注意:スクリプトの入力を開始した後は、スクリプト言語を変更できません。別の言語を選択するには、既存のスクリプトの内容を削除するか、新しいスクリプトを作成してください。

      例:

      Properties Example

      注意:マシンに 32 ビットの Python がインストールされていない状態で、言語として 32 ビット Python を選択した場合、機能を有効にするために Python をインストールするよう促すエラー メッセージが表示されます。Python のインストール手順については、「 Python のインストール」を参照してください。

  3. [プロパティ]グリッドで選択した言語でスクリプトを入力します。ツールバー オプションを使用して、さまざまな編集操作を実行できます。UDT スクリプトでネイティブの InTouch タグを使用することもできます。次の構文を使用します。

    • スタンドアロン InTouch アプリケーションの場合:

      <udtinstanceName>.<udtmembers>\ me.<udtmembers>\ <InTouch Tags>;

      または

      InTouch.<udtinstanceName>.<udtmembers> \ InTouch.me.<udtmembers>\ <InTouch Tags>;

      例:

      • Furnace_1.TemperatureSetPoint = Furnace_1.TemperatureSetPoint + 5;

      • me.TemperatureSetPoint = me.TemperatureSetPoint + 5;

    • マネージド InTouch アプリケーションの場合:

      InTouch.<udtinstanceName>.<udtmembers> \ InTouch.me.<members>\ <InTouch Tags>;

      例:

      • InTouch.Furnace_1.TemperatureSetPoint = InTouch.Furnace_1.TemperatureSetPoint + 5;

      • InTouch.me.TemperatureSetPoint = InTouch.me.TemperatureSetPoint + 5;

  4. 検証 validate icon を使用してスクリプトを検証します。

    エラーがある場合は、スクリプト エディタの下部にある[エラー リスト]セクションに表示されます。

  5. エラーがある場合は修正し、ツール バーの保存アイコンを選択します。

    注意:UDT スクリプト ファイルは、アプリケーション フォルダ内のスクリプト フォルダに保存されます。

重要な情報

  • 名前空間(InTouch や Galaxy など)を参照する場合は、コロン(:)ではなくドット表記(.)を使用してください。C# および Python では、コロンを使用した参照はサポートされていません。

  • Python UDT スクリプトではデバッグはサポートされていません。また、Python スクリプトの参照検証はランタイム時にのみ行われます。そのため、スクリプトの編集時や保存時に、スクリプト エディタでは参照先のオブジェクトや名前空間が存在するかどうかは表示されません。無効な参照や欠落している参照は、スクリプトの実行時にのみ検出され、スクリプトの作成中にエディタから警告が表示されることはありません。

  • 最大で 6 つのネストされた UDT レベルを使用できます。例:「Datatype1.Datatype2.Datatype3.Datatype4.Datatype5.Datatype6.String1」詳細については、「UDT の仕様」を参照してください。

  • UDT の実数型データ タイプのメンバーは、内部的には浮動小数点型データ タイプとして保存されます。

  • UDT スクリプトを実行するには、WindowViewer プロセスとの Suite Link ベースのセキュア通信で使用される証明書へのアクセス権が必要です。セキュリティ上の理由から、既定では対話型ユーザーや権限の低いユーザーには、これらの証明書へのアクセス権が付与されていません。そのため、以下の WindowViewer シナリオでは、管理者は View を起動するユーザーを ASB Web ホスティング グループ(ArchestraWebHosting)に明示的に追加する必要があります。

    • Web Client なしの対話型 view.exe セッション(ワークステーション モード)

    • Web Client ありの対話型 view.exe セッション(ワークステーション モード)

      このアクセス権が付与されていない場合、UDT スクリプトが WindowViewer を介してタグの読み取りまたは書き込みを試みると、通信エラーが発生します。

  • スクリプト サービスを有効にするには、コンフィグレータで、[System Management Server]と、InTouchHMI プラグインの下にある[Identity Manager 登録マネージャ]を設定します。設定が正常に完了したら、 InTouchServiceMgr サービスを再起動します。InTouchServiceMgr が停止状態の場合は、マシンを再起動する必要があります。

    Required Configurator options for UDT Scripting

ツールバー オプション

オプション

名前

説明

保存

スクリプトを保存します。

Undo icon

元に戻す

スクリプト エディタで実行した直前の操作を元に戻します。

Redo icon

やり直す

スクリプト エディタで元に戻した操作をやり直します。

Select all

すべて選択

すべてのテキストを選択します。

Cut icon

切り取り

選択したテキストを切り取ります。

Copy icon

コピー

選択したテキストをコピーします。

Paste icon

貼り付け

コピーしたテキストを貼り付けます。

search icon

検索

ドキュメント内のテキストを検索します。

Replace icon

置換

テキストを指定したテキストに置き換えます。置換アイコンを選択します。[検索対象]フィールドに、置換するテキストを入力します。[置換後の文字列]フィールドに、置換後のテキストを入力します。

Go to icon

移動

指定した行にジャンプします。

zoom icon

ズーム イン/ズーム アウト

ズームインしてテキストをクローズアップ表示します。

ズームアウトして縮小されたサイズでより多くのページを表示します。

複数のスクリプトタブのサポート

  • ユーザーは個別のタブ内でスクリプトを作成して起動でき、タブ間を移動する際にもデータやコンテキストを失うことなく、複数のスクリプトを同時に管理できます。

  • スクリプト タブを切り替えても、各スクリプトの現在の状態とコンテキストが保持されるため、移動中に情報が失われることはありません。

  • 各タブには IRT(Information Resource Tree)とツールチップの詳細が表示され、選択したスクリプトに関連する情報がユーザーに提供されます。

  • 登録レベルで派生テンプレートまたはメンバー テンプレートからスクリプトを起動する場合、スクリプトはその親テンプレートから開かれ、元のコンテキストが維持されます。

  • スクリプト タブを閉じると、それまでアクティブだったスクリプトがツリービュー内でハイライト表示され、そのプロパティを簡単に参照できます。

以下のスクリプトは、現在のオブジェクトの TemperatureSetPoint に指定された値を加算して更新します。たとえば、現在の限界値が 100 で、3 を加算すると、新しい限界値は 103 になります。

C# を使用したスクリプト

public async Task UpdateSetPoint1(float value)

{

me.TemperaturesetPoint = me.TemperaturesetPoint + value;

}

C# example

Python を使用したスクリプト

def UpdateSetPoint(value):

me.TemperaturesetPoint = me.TemperaturesetPoint + value

Python example

どちらのスクリプトでも、InTouch.me は相対参照であり、TemperatureSetPoint は UDT のメンバーです。

ここでは、次の処理が実行されます。

  • 現在の TemperatureSetPoint の値を読み取る

  • その値に指定された値を加算する

  • 更新された結果を TemperatureSetPoint に書き戻す

スクリプトで資格情報マネージャに保存されている資格情報を呼び出すこともできます。

以下に例を示します。

public async Task namedcrededential()

{

me.username = SecurityManager.GetUserName(me.CredentialName);

me.password = SecurityManager.GetPassword(me.CredentialName);

me.domain = SecurityManager.GetDomain(me.CredentialName);

me.accesstoken = SecurityManager.GetAccessToken();

}

ここで、CredentialName は CredentialManager に保存されている資格情報の名前です。

In This Topic