Passaggio 2: creazione del sottomodulo "Switch"
Il passo successivo è dichiarare un modulo per il cambio della stanza. Anche in questo caso è necessario creare una dichiarazione del modulo e un blocco funzione. Qui vengono chiamati entrambi Switch
, dove la dichiarazione deve essere implementata dal blocco funzione. La dichiarazione del modulo di Switch
non ha bisogno di una sezione di primo livello, perché verrà aggiunta sotto il modulo Light
(descritto più avanti) in nessuna posizione di primo livello. Poiché è obbligatorio per tutti i moduli che implementano blocchi funzione, il blocco funzione Switch
deve estendersi AC.Module
, pure. Nel caso in questione, il blocco funzione implementa anche un'interfaccia ISwitch
, che deve essere creato. Questa stessa interfaccia deve implementare l'interfaccia IModule
, fornito dalla biblioteca AC_ModuleBase
. Tuttavia, l'interfaccia ISwitch
rimane "vuoto": nessuna proprietà o funzione viene dichiarata.
Inoltre l'interruttore necessita di un segnale di ingresso (probabilmente da una fonte esterna/interruttore fisico) per indicare quando viene toccato. Questo segnale è dichiarato nel IO sezione utilizzando la variabile xIn
del blocco funzione che implementa questo modulo. Inoltre è necessario un tempo di riferimento per distinguere le due funzioni dell'interruttore: Pressione dell'interruttore per la durata del tempo tTimer
avvia la funzione di regolazione della luminosità: una pressione più breve accende o spegne solo la luce. Questa variabile tTimer
(essendo anch'esso parte del blocco funzione di implementazione del modulo) sarà dichiarato come parametro del modulo (sezione Parameters
), che eventualmente potrà essere facilmente modificato durante l'utilizzo del modulo.
Switch

Le variabili referenziate xIn
E tTimer
sono entrambi definiti come ingressi del blocco funzione Switch
, dove il parametro tTimer
ottiene un valore predefinito iniziale di 500 ms. Quindi, quando l'utente preme il file Switch
per più di 500 ms, la luce verrà attenuata.
Switch
blocco funzione
Anche gli elenchi di testi e il pool di immagini devono essere estesi per includere i testi descrittivi necessari dell'input e del parametro.
