セクション: プロキシ
セクション 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)
渡されたインスタンス名と設定されたアドレスはプロパティによって決定される必要があります
InstanceName
、ComAddress
そしてLocalComAddress
返される..ファンクション ブロックは次のユーザーには使用できません。
IModule
派生する。セクション付き
MirrorVar
モジュール インスタンスの変数はプロキシ インスタンスにミラーリングできます。これを行うには、変数のインスタンス パスが (モジュール インスタンスの FB への) 相対パスの形式である必要があります。Variable
宣言される。モジュール インスタンス FB の指定された変数には、次のルールが適用されます。変数は、モジュール インスタンス FB の vars、入力または出力の一部である必要があります。
モジュール FB とプロキシ FB の両方で定義する必要があります
両方の FB で同じタイプでなければなりません
プリミティブ型でなければなりません。したがって、ポインタ、インターフェイス、構造体全体はミラーリングに許可されず、単純な型 (数値、STRING、TIME など) のみが許可されます。
指定された変数がこれらの条件を満たしている場合、それらは RMP の一部として自動的に転送され、ユーザーは転送について心配する必要はありません。
セクション付き
ProxyParameter
プロキシのパラメータを定義できます。次の点を考慮する必要があります。のターゲットは、
ProxyParameters
モジュールのパラメータターゲットに対応する必要があります。の
Variable
プロキシ モジュールのは、モジュール パラメータに使用される変数の型と一致する必要があります。ここではプリミティブ型と列挙型のみが許可されます。プロキシ パラメータは、各アプリケーションの初期化フェーズで、モジュール インスタンスで構成された値に 1 回設定されます。アプリケーションの実行中は、これらの変数はプロキシに反映されません。
関数ブロックの名前は、名前空間パスで修飾できます。
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