Sección: Proxies
La sección Proxies
define un bloque de funciones que implementa el proxy.
Un proxy sirve para el intercambio de datos de módulos de diferente aplicación. La instancia del FB proxy representa la instancia del módulo en una aplicación remota.
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
Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.
El bloque de funciones debe derivar de
IBaseInstance
.El bloque de funciones debe tener un método.
SetProxyIdentification
con la siguiente firma, que no está incluida en la InterfazIBaseInstance
:SetProxyIdentification(pbyName : POINTER TO BYTE, udiComAddr : UDINT, udiLocalComAddr : UDINT, pEnvironment : MEnv)
El nombre de instancia pasado y la dirección establecida deben devolverse desde las propiedades
InstanceName
,ComAddress
, yLocalComAddress
.El bloque de función no debe derivar de
IModule
.La sección
MirrorVar
permite reflejar una variable de las instancias de un módulo en sus instancias de proxy. Para esto, la ruta de instancia de la variable debe declararse en la definición.Variable
, que debe indicarse en forma de ruta relativa (al FB de la instancia del módulo). Las siguientes reglas se aplican a la variable especificada del FB de instancia del módulo:La variable tiene que ser parte de los Vars, Entradas o Salidas del FB de la instancia del módulo.
Debe estar definido tanto en el FB de módulo como en el FB de proxy
Debe ser del mismo tipo en ambos FB
Debe tener un tipo primitivo; por lo tanto, no se permiten punteros, interfaces o estructuras como un todo para la duplicación, sino solo tipos simples (numéricos, STRING, TIME, etc.)
Si las variables especificadas cumplen estas condiciones, se transfieren automáticamente como parte del RMP sin que el usuario tenga que preocuparse más por la transferencia.
La sección
ProxyParameter
permite definir el parámetro para el proxy. Se deben tener en cuenta los siguientes puntos:el objetivo de la
ProxyParameter
debe corresponder a un objetivo de parámetro del módulolos
variable
del módulo proxy debe coincidir con el tipo de la variable utilizada para el parámetro del módulo. Solo se permiten enumeraciones y tipos primitivosLos parámetros del proxy se establecen una vez en el valor configurado en la instancia del módulo durante la fase de inicialización de la aplicación respectiva. Mientras se ejecuta la aplicación, estas variables no se reflejan en los proxies
El nombre del bloque de funciones se puede calificar con una ruta de espacio de nombres.
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