Skip to main content

Sezione: Procure

La sezione Proxies definisce un blocco funzione che implementa il proxy.

Un proxy serve per lo scambio di dati di moduli di diversa applicazione. L'istanza dell'FB proxy rappresenta l'istanza del modulo in un'applicazione 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

I dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.

. Specifica:
  • Il blocco funzione deve derivare da IBaseInstance.

  • Il blocco funzione deve avere un metodo SetProxyIdentification con la seguente firma, che non è inclusa nell'interfaccia IBaseInstance:

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

    Il nome dell'istanza passato e l'indirizzo impostato devono essere restituiti dalle proprietà InstanceName, ComAddress, E LocalComAddress.

  • Il blocco funzione non deve derivare da IModule.

  • La sezione MirrorVar consente di eseguire il mirroring di una variabile delle istanze di un modulo nelle sue istanze proxy. Per questo il percorso dell'istanza della variabile deve essere dichiarato nella definizione Variable, che deve essere indicato sotto forma di percorso relativo (all'FB di istanza del modulo). Per la variabile specificata dell'FB di istanza del modulo valgono le seguenti regole:

    • La variabile deve far parte delle Var, degli ingressi o delle uscite dell'FB di istanza del modulo.

    • Deve essere definito nell'FB del modulo e nell'FB proxy

    • Deve essere dello stesso tipo in entrambi gli FB

    • Deve avere un tipo primitivo; quindi per il mirroring non sono consentiti puntatori, interfacce o strutture nel loro insieme, ma solo tipi semplici (numerici, STRING, TIME, ecc.)

    Se le variabili specificate soddisfano queste condizioni, vengono trasferite automaticamente come parte dell'RMP senza che l'utente debba preoccuparsi ulteriormente del trasferimento.

  • La sezione ProxyParameter permette di definire i parametri per il proxy. Dovrebbero essere presi in considerazione i seguenti punti:

    • L'obiettivo del ProxyParameter deve corrispondere a un parametro target del modulo

    • IL variable del modulo proxy deve corrispondere al tipo della variabile utilizzata per il parametro del modulo. Sono consentiti solo tipi ed enumerazioni primitivi

    • I parametri proxy vengono impostati una volta sul valore configurato nell'istanza del modulo durante la fase di inizializzazione della rispettiva applicazione. Mentre l'applicazione è in esecuzione, queste variabili non vengono rispecchiate nei proxy

  • Il nome del blocco funzione può essere qualificato con un percorso dello spazio dei nomi.

Esempio 25. Esempio
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