del_user_56966 Inserito: 15 marzo 2010 Segnala Inserito: 15 marzo 2010 Come promesso ( tempo permettendo... ) è giunto il momento di analizzare come si può programmarela classe per la centrale antifurto XM, questo esempio lo vediamo direttamente da Visual Basic.NET Expresscosi 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 LINKoltre 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... La libreria si compone di due oggetti grafici che però non utilizzeremo in questo contesto...
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Creiamo un progetto Windows Formpoi 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 personenell'ambiente protetto da un sensore IR... più che "attivare" direi che lo faremo proprio urlare... la nuova form spoglia si presenta cosi...
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Chiaramente si può facilmente inserire un immagine sullo sfondo per rappresentare i locali comesi 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 Formdalla 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,
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 (modificato) Posizioniamo adesso un Timer sulla Form, automaticamente VS.NET posiziona l'oggetto sulla barra sul fondo della IDE di progettazione,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: 16 marzo 2010 da Aleandro2008
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Tramite l'icona "Visualizza Codice" entriamo nella finestra di sviluppo della Classe Form1per primo eseguiamo la dichiarazione della classe XM,l'oggetto creato nell'esempio prende il nome di XM e deriva dalla classe SerieXM.XM_Class
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Adesso tornando al Timer posso eseguire un doppio click su questo in modo da entrare nella gestione del Tick di questo oggetto...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: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 All'interno del Tick andremo a inserire una verifica sulla funzione "Point_Status.s_Input" della classe XMsu 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 sensoree se questo è Attivo (True) faremo in modo che nella PictureBox1 la proprietà "Image" sia uguale a quella della PictureBox2
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Adesso aggiungiamo l'istruzione che evidenzia lo stato di riposo del sensore...dopo l'istruzione "ELSE"aggiungiamo il codice PictureBox1.Image = PictureBox3.Imagein questo modo se "s_Input" è false (sensore non attivo) l'immagine a video sarà quella del sensore a riposo!
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 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...
del_user_56966 Inserita: 16 marzo 2010 Autore Segnala Inserita: 16 marzo 2010 Adesso intercettiamo il nostro sensore, rilevata la presenza di persone il nostro sensore a video si metterà ad Urlare... Se "s_Input" è vero infatti il programma esegue il codice PictureBox1.Image = PictureBox2.Image ovvero l'immagine del nostro Sonic che grida... 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 qualsiasialtra 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 XMsono gratuiti e perfettamente funzionanti può essere un ottima soluzione da proporre in aggiunta alle applicazioni di sicurezza Home Security...
Nicolacontrolli Inserita: 18 marzo 2010 Segnala Inserita: 18 marzo 2010 si può rilevare anche un fusibile guasto della centrale? la mancanza tensione di rete? senza dover mettere altri apparati?
aretusa Inserita: 18 marzo 2010 Segnala Inserita: 18 marzo 2010 Puoi controllare tutto, la centrale mette a disposizione del Homeplc ogni stato, ogni anomalia... tutto.E tu con quel TUTTO puoi farci... tutto.
Nicolacontrolli Inserita: 19 marzo 2010 Segnala Inserita: 19 marzo 2010 (modificato) benissimo la mancanza rete la mettevo comunque tramite un rele cosi evito di farlo grazie Modificato: 19 marzo 2010 da Nicolacontrolli
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora