Vai al contenuto
PLC Forum


Introduzione Alla Supervisione Home Security - Esempio (2S) Programmazione della Classe XM


Messaggi consigliati

del_user_56966
Inserito:

Come promesso ( tempo permettendo... :lol: ) è giunto il momento di analizzare come si può programmare

la classe per la centrale antifurto XM, questo esempio lo vediamo direttamente da Visual Basic.NET Express

cosi se vi va potrete sfruttare al meglio tutte le tecnologie della Microsoft per creare ottimi programmi di supervisioni di ultima generazione... ;)

Il primo passo per iniziare a programmare se non si possiede il framework di sviluppo è appunto scaricarlo dal sito della Microsoft

per questo si può utilizzare il Free download ( ovvero per l'uso gratuito.. ;) ) presente su questo LINK

oltre all'ambiente IDE di sviluppo vi servirà anche la classe contenuta nella libreria XM_Obj contenuta nel framework ABS-XComm...

se possedete un CD del sistema HomePLC basta installare il pacchetto dalla cartella XComm...

Quindi aprite VB.NET e importate la libreria XM che trovate disponibile tra gli oggetti COM,

importata la libreria la si può rintracciare tra i vari oggetti sulla casella degli strumenti...

clip0008.jpg

La libreria si compone di due oggetti grafici che però non utilizzeremo in questo contesto...


del_user_56966
Inserita:

Creiamo un progetto Windows Form

poi importata la libreria grafica dobbiamo solo creare un riferimento alla classe interna...

per fare questo dalla finestra Riferimenti di "My Project" andremo a selezionare la classe "SerieXM"

adesso possiamo allo sviluppo di una semplice applicazione che dimostra come attivare un sensore sul monitor al passaggio di persone

nell'ambiente protetto da un sensore IR...

più che "attivare" direi che lo faremo proprio urlare... :lol:

la nuova form spoglia si presenta cosi...

clip0009.jpg

del_user_56966
Inserita:

Chiaramente si può facilmente inserire un immagine sullo sfondo per rappresentare i locali come

si presentano dal vivo dando cosi un aspetto molto elegante e professionale alla supervisione del vostro sistema di sicurezza... :)

ma in quest'occasione tralasciamo questo particolare...

posizioniamo adesso 3 PictureBox sulla Form

dalla proprietà image del primo (PictureBox1) selezioniamo un immagine del sensore a riposo (io per esempio metto la palla blu!)

gli altri due PicturBox 2 e 3 dovranno possedere al proprietà "Visible = False", in questo modo al RunTime saranno invisibili...

L'icona del PicturBox2 (in alto a destra) è quella del sensore attivato,

mentre quella del PicturBox3 (in basso a destra) è quella del sensore a riposo...

fatto questo la form si presenta cosi,

clip0010.jpg

del_user_56966
Inserita: (modificato)

Posizioniamo adesso un Timer sulla Form, automaticamente VS.NET posiziona l'oggetto sulla barra sul fondo

della IDE di progettazione,

clip0011.jpg

Il timer deve essere abilitato tramite la proprietà "Enabled = True"

e metto anche il tempo di esecuzione del Tick a 400 mS tramite la proprietà "Interval = 400"

la parte di progettazione grafica è cosi conclusa possiamo passare adesso allo sviluppo del codice di controllo del sensore...

Modificato: da Aleandro2008
del_user_56966
Inserita:

Tramite l'icona "Visualizza Codice" entriamo nella finestra di sviluppo della Classe Form1

per primo eseguiamo la dichiarazione della classe XM,

l'oggetto creato nell'esempio prende il nome di XM e deriva dalla classe SerieXM.XM_Class

clip0012.jpg

del_user_56966
Inserita:

Adesso tornando al Timer posso eseguire un doppio click su questo

in modo da entrare nella gestione del Tick di questo oggetto...

clip0013.jpg

Il tick a RunTime verrà eseguito in modo ciclico con una cadenza di 400 mS, che è appunto il tempo impostato nella proprietà "Interval"

del_user_56966
Inserita:

All'interno del Tick andremo a inserire una verifica sulla funzione "Point_Status.s_Input" della classe XM

su Point_Status è possibile analizzare altri singoli stati quali...

lo stato di corto di linea della linea "s_Input_Short",

lo stato della linea 24 ore "s_Input24h"

lo stato di un uscita a relè "s_Output"

lo stato del Link con un sensore "s_Link"

la memoria di allarme di un sensore "m_Alarm_Input"

la memoria di allarme di un corto di linea "m_Alarm_Input_Short"

la memoria di allarme di una linea 24h "m_Alarm_Input24h"

utilizziamo IF THEN... per eseguire la verifica dello stato attuale del sensore

e se questo è Attivo (True) faremo in modo che nella PictureBox1 la proprietà "Image" sia uguale a quella della PictureBox2

clip0014.jpg

del_user_56966
Inserita:

Adesso aggiungiamo l'istruzione che evidenzia lo stato di riposo del sensore...

dopo l'istruzione "ELSE"

aggiungiamo il codice PictureBox1.Image = PictureBox3.Image

in questo modo se "s_Input" è false (sensore non attivo) l'immagine a video sarà quella del sensore a riposo!

clip0015.jpg

del_user_56966
Inserita:

Preciso che il sensore che analizziamo in questo esempio è il numero 24 della centrale 1 connessa al server 1,

questo spiega la numerazione tra parentesi della funzione XM.Point_Status ( 24, 1, 1).s_Input

chi già conosce la tecnologia XComm sa che questo codice permette alla classe di lavorare anche in rete senza alcuna necessità

di modifiche al codice....

Adesso mettiamo un punto d'interruzione sulla condizione "Sensore attivo" e lanciamo il nostro progetto in modalità di debug!

la form a RunTime si presenta cosi...

clip0016.jpg

del_user_56966
Inserita:

Adesso intercettiamo il nostro sensore, rilevata la presenza di persone il nostro sensore a video si metterà ad Urlare... :lol:

clip0017.jpg

Se "s_Input" è vero infatti il programma esegue il codice PictureBox1.Image = PictureBox2.Image

ovvero l'immagine del nostro Sonic che grida... :thumb_yello:

il punto d'interruzione ci mostra questo evento evidenziando il codice suddetto e arresta l'esecuzione su questa riga di programma!

se togliamo il punto di debug e il sensore torna a riposo sul video tornerà la nostra "palla blu" e il ciclo si ripete ogni volta all'infinito...

la condizione di "vero" di una memoria d'Input identifica il verificarsi di un evento d'allarme vero e proprio, in questo caso si può attivare qualsiasi

altra condizione, inviare un SMS, una Mail, gestire l'attivazione di telecamere come qualsiasi altra funzione ci passi per la testa...

Questo è solo un semplice esempio di utilizzo, la classe XM contiene anche altre interessanti funzioni utili e visto che sia VB.NET Express che la classe XM

sono gratuiti e perfettamente funzionanti può essere un ottima soluzione da proporre in aggiunta alle applicazioni di sicurezza Home Security... ;)

Nicolacontrolli
Inserita:

si può rilevare anche un fusibile guasto della centrale? la mancanza tensione di rete? senza dover mettere altri apparati?

Inserita:

Puoi controllare tutto, la centrale mette a disposizione del Homeplc ogni stato, ogni anomalia... tutto.

E tu con quel TUTTO puoi farci... tutto. :thumb_yello:

Nicolacontrolli
Inserita: (modificato)

benissimo la mancanza rete la mettevo comunque tramite un rele cosi evito di farlo

grazie :thumb_yello:

Modificato: da Nicolacontrolli

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...