Skip to main content

セクション: プロキシ

セクション Proxies プロキシを実装する機能ブロックを定義します。

プロキシは、異なるアプリケーションのモジュール間でデータを交換するために使用されます。プロキシ FB のインスタンスは、他のアプリケーションのモジュール インスタンスを表します。

SEC Proxies                                    //optional: yes, modifier: [UPDATE]
    SEC Proxy : <identifier>                   //optional: yes, modifier [UPDATE]
            FB := <FB name>;                       //optional: no, type: QID
            SEC MirrorVar : <identifier>           //optional: yes, modifier [UPDATE])
                    Variable := <variable name>;       //optional: no, type: VarPath
            END_SEC
            SEC ProxyParameter : <target>          // optional: yes, modifier [UPDATE]
                    Variable := <InstancePath>;        // optional: no, type: VarPath
            END_SEC
    END_SEC
END_SEC

定義タイプの構文の詳細については、「 モジュール宣言の構文 説明された。

. 仕様:
  • 関数ブロックは次のものでなければなりません IBaseInstance 派生する。

  • 関数ブロックにはメソッドが必要です SetProxyIdentification 次の署名が付いていますが、これはインターフェイスにはありません IBaseInstance 含まれるもの:

    SetProxyIdentification(pbyName : POINTER TO BYTE, udiComAddr : UDINT, udiLocalComAddr : UDINT, pEnvironment : MEnv)

    渡されたインスタンス名と設定されたアドレスはプロパティによって決定される必要があります InstanceNameComAddress そして LocalComAddress 返される..

  • ファンクション ブロックは次のユーザーには使用できません。 IModule 派生する。

  • セクション付き MirrorVar モジュール インスタンスの変数はプロキシ インスタンスにミラーリングできます。これを行うには、変数のインスタンス パスが (モジュール インスタンスの FB への) 相対パスの形式である必要があります。 Variable 宣言される。モジュール インスタンス FB の指定された変数には、次のルールが適用されます。

    • 変数は、モジュール インスタンス FB の vars、入力または出力の一部である必要があります。

    • モジュール FB とプロキシ FB の両方で定義する必要があります

    • 両方の FB で同じタイプでなければなりません

    • プリミティブ型でなければなりません。したがって、ポインタ、インターフェイス、構造体全体はミラーリングに許可されず、単純な型 (数値、STRING、TIME など) のみが許可されます。

    指定された変数がこれらの条件を満たしている場合、それらは RMP の一部として自動的に転送され、ユーザーは転送について心配する必要はありません。

  • セクション付き ProxyParameter プロキシのパラメータを定義できます。次の点を考慮する必要があります。

    • のターゲットは、 ProxyParameters モジュールのパラメータターゲットに対応する必要があります。

    • Variable プロキシ モジュールのは、モジュール パラメータに使用される変数の型と一致する必要があります。ここではプリミティブ型と列挙型のみが許可されます。

    • プロキシ パラメータは、各アプリケーションの初期化フェーズで、モジュール インスタンスで構成された値に 1 回設定されます。アプリケーションの実行中は、これらの変数はプロキシに反映されません。

  • 関数ブロックの名前は、名前空間パスで修飾できます。

25.
SEC Proxies
        SEC Proxy ProxyFB1
                FB := ProxyModule1;
                SEC MirrorVar : diInput
                        Variable := diInput;
                END_SEC
                SEC ProxyParameter : InParam1
                        Variable := TL.Input1_Name;
                END_SEC
        END_SEC
END_SEC