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

AVEVA™ InTouch HMI

IOSetRemoteReferences() 関数

  • Last UpdatedJun 01, 2022
  • 1 minute read

IOSetRemoteReferences() スクリプト関数を使用して、InTouch アプリケーションの実行中に Application Server オブジェクト参照またはリモート 参照をタグにリダイレクトできます。IOSetRemoteReferences() は、指定した文字列に一致するすべてのリモート 参照を検索して、指定した引数の値に応じて参照を変更します。この関数をトリガするスクリプトを記述して、想定されるさまざまな状態に基き、またはユーザー アクションを介して参照をリダイレクトすることができます。

カテゴリ

その他

構文

IOSetRemoteReferences(BaseAccess, NewAccess, MatchString, SubstituteString, Mode)

引数

BaseAccess

この文字列引数は、参照での照合に使用する、元の設定されたアクセス名を指定します。

NewAccess

新しいアクセス名です。このアクセス名は、元のアクセス名が BaseAccess で指定された文字列に一致し、さらに MatchString の値が指定された場合には元のアイテム名がこの値に一致する、すべての参照に適用されます。

MatchString

参照の元の設定されたアイテム名での照合に使用する文字列です。MatchString の値が空の文字列の場合は、すべてのアイテム名が一致するとみなされます。

SubstituteString

元のアイテム名に置換される文字列です。この文字列は、MatchString の値と置き換わって参照に対する新しいアクティブなアイテム名を生成します。これが空の文字列の場合、置換は行われません。

Mode

元の設定されたアイテム名と MatchString 値との比較モードを定義します。マッチングは常にアイテム名の先頭から行われます。Mode の値が 0 の場合は、アイテム名全体の一致、またはピリオド(.)の位置までの一致が必要であることが指定されます。1 の場合は、次の文字がピリオドでなくても部分的な一致が可能であることが指定されます。

備考

IOSetRemoteReferences() は、オブジェクト参照の変更前に、新しいタグまたはアクセス名の有効性のチェックは行いません。

  • IOSetRemoteReferences() はリモート 参照のみを変更します。この関数は、元の設定されたアクセス名が BaseAccess 引数に指定した値に一致し、さらに元のアイテム名が MatchString の値に一致する参照をリダイレクトします。

  • IOSetRemoteReferences() の単一の呼び出しは、メモリ上のアクティブ ウィンドウ内にあり、元の設定された名前の文字列が BaseAccess および MatchString に指定した値に一致するすべてのリモート 参照に影響します。

  • BaseAccess 引数に値を指定しないと、IOSetRemoteReferences() はリモート 参照をリダイレクトしません。

  • MatchString 引数が空の値の場合、IOSetRemoteReferences() は、元のアクセス名が BaseAccess 引数に指定した値に一致するすべてのリモート 参照をリダイレクトします。

  • Mode 引数が 0 の場合、アイテム名での置換はオブジェクト名(またはタグ)全体、またはプロパティ名(またはドット フィールド)全体に対してのみ行われます。MatchString 引数の値は、元のアイテム名全体、またはピリオドの直前にある文字まで一致する必要があります。

  • Mode 引数が 1 に設定されている場合は、アイテムの文字列と照合アイテムの文字列の開始が同じ場合に、アイテム文字列の部分的な置換が可能です。つまり、MatchString は元のアイテム文字列の一部と一致し、一致部分はアイテム文字列の先頭文字から一致している必要があります。一致した文字列の最終文字の次の文字が、ピリオドである必要はありません。

  • 元の設定されたリモート 参照の名前は、変更されません。引き続き IOSetRemoteReferences() を呼び出す場合、現在アクティブな名前を指定する必要はありません。IOSetRemoteReferences() の呼び出しは、任意の順序で実行できます。

  • 1 つのリモート 参照を参照するために複数のウィンドウが必要になる場合、リモート 参照は I/O タグのように機能します。リモート 参照をリダイレクトすると、すべてのウィンドウは同じリモート 参照を表示します。2 つの異なる対象を同時に参照するために、1 つの名前を使用しないでください。

    注記: たとえば、ウィンドウの「表示時」スクリプトなどで多くの参照を同時に変更する場合は、すべての参照が解決されるまでに時間を要することがあります。

以下の例は、元のアイテム名が pumpX に正確に一致した場合に、Galaxy アクセス名のアイテム名 pump001 にすべてのリモート 参照をリダイレクトします。

IOSetRemoteReferences("Galaxy","","pumpX", "pump001",0);

以下の例は、アイテム名が pumpX に正確に一致した場合に、アクセス名 Galaxy を TagServer1 に変更します。さらに、アイテム名を p2 に変更します。

IOSetRemoteReferences("Galaxy","TagServer1", "pumpX","p2",0);

以下の例は、アイテム名が pumpX の場合に、アクセス名 TagServer1 を TagServer2 に変更します。さらに、アイテム名を backpump3 に変更します。

IOSetRemoteReferences("TagServer1","TagServer2", "pumpX","backpump3",0)

以下の例は、アクセス名 TagServer1 のアイテム名 Tank を Plant に変更します。

IOSetRemoteReferences("TagServer1","","Tank", "Plant",1)

以下の例では、BaseAccess 引数の値が指定されていないため、リモート 参照はリダイレクトされません。

IOSetRemoteReferences("","Galaxy","pumpX", "pump001",0);