11.07.2015 Views

SINOTTICI SWC701: GESTIONE CODICE .NET - Coster

SINOTTICI SWC701: GESTIONE CODICE .NET - Coster

SINOTTICI SWC701: GESTIONE CODICE .NET - Coster

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010TERMINOLOGIESWC 701 = Programma di Telegestione delle apparecchiature <strong>Coster</strong> T.E.Visual Basic <strong>NET</strong> (VB <strong>NET</strong>) = Linguaggio di programmazione di Microsoft per l’ambiente .<strong>NET</strong> FrameworkC# <strong>NET</strong> = Linguaggio di programmazione di Microsoft per l’ambiente .<strong>NET</strong> FrameworkCodice = Si intende l’insieme delle righe scritte per creare il programma associato all’ Oggetto Codice (vedi ancheScript).Oggetti Codice = gli oggetti argomento del presente manuale denominati sul sinottico come “Oggetti che eseguonocodice .<strong>NET</strong>”Script = Programma associato ad un “Oggetto Codice”. E’ il testo (Codice) del programma scritto in Vb.Net o C#.Netche viene eseguito ad ogni lettura impianto da sinottico.Pagina 6


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010PARTE I: INFORMAZIONI BASEPER INIZIAREPer operare con gli Oggetti Codice entrare in un sinottico (Figura 1) e dall’icona cerchiata in rosso fare clicksull’oggetto con il tasto sinistro del mouse tenendolo premuto, quindi trascinare l’oggetto nella finestra di disegno delsinottico rilasciandolo (cioè togliendo il click del mouse) nella posizione desiderata.Figura 1Al rilascio del mouse viene creato sul sinottico il nuovo oggetto cerchiato in rosso ( Figura 2 ) contenente tre punti didomanda e sulla destra comparirà la finestra con le proprietà dell’oggetto per il quale, in automatico, è abilitatal’opzione “Vedi valore” mentre l’opzione “Vedi immagine” è disabilitata; nella parte bassa della finestra compare ilpulsante (cerchiato in Blu in Figura 2) che si chiama “Editor codice”.Clccando il pulsante “Editor codice” si apre la finestra “Editor codice .<strong>NET</strong>” dove poter scrivere o modificare lo Scriptassociato all’oggetto (Figura 3).Pagina 7


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 2Figura 3Pagina 8


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Nella finestra “Editor codice .<strong>NET</strong>” (Figura 3) possiamo trascinare gli oggetti delle apparecchiature, visualizzati nellalista delle apparecchiature dell’impianto nella schermata in alto a destra, così da poter utilizzare nello Script i valoridegli oggetti disponibili per ciascuna apparecchiatura dell’impianto.La finestra “Editor codice .<strong>NET</strong>” si può spostare e ridimensionare a piacimento per migliorare la visibilità dello Script eagevolare il trascinamento degli oggetti delle apparecchiature che utilizzeremo come variabili per i nostri calcoli.Cliccando per esempio, come indicato nel cerchio Rosso in Figura 4, sull’apparecchiatura all’indirizzo 31 (che è inquesto caso un DTE611) , si apre l’elenco di oggetti disponibili per l’apparecchiatura stessa. Cliccando, ad esempio,sull’oggetto “T. esterna” possiamo trascinarlo, mantenendo premuto il tasto sinistro del mouse, all’interno delriquadro “Valore dell’oggetto” della finestra “Editor codice .<strong>NET</strong>” e rilasciarlo.Figura 4Al rilascio dell’oggetto “T. esterna”, nell’elenco dei Valori dell’oggetto (Figura 5) compare la variabile aggiunta“valAddress_31_DTE611_Testerna” (zona cerchiata di Rosso) relativa all’oggetto trascinato e, sulla destra (nella zonacerchiata in Blu ), compaiono 4 opzioni selezionabili che specificano come deve essere interpretato il valore dellavariabile quando viene letto l’oggetto relativo dall’impianto.Pagina 9


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 5Il valore della variabile può essere interpretato come :Utilizza valore come Tipo .<strong>NET</strong> Descrizione EsempiTesto String Può gestire valori alfanumerici “Estate” , “12345”Numero Intero Integer Gestisce Numeri compresi tra -2.147.483.648 e 2.147.483.647Numero con Virgola Double Gestisce numeri con la Virgola compresi tra-1,79769313486231570E+308 e -4,94065645841246544E-324 per ivalori negativi e tra4,94065645841246544E-324 e1,79769313486231570E+308 per ivalori positiviVero / Falso Boolean Per gestire un valore logico che può assumere2 valori : Vero (True) o Falso (False)12, -100 , 25000012.5 , 0.456 , -5.7True, FalseIn automatico, un oggetto trascinato nell’elenco “Valore dell’oggetto” viene associato ad una variabile di tipo“Numero con Virgola” , se sappiamo che tale valore non sarà mai un numero ma un testo (Es : ESTATE o ACCESO) ,dobbiamo cambiare il tipo in “Testo” altrimenti il valore sarà sempre interpretato come 0.0 ; se l’oggetto rappresentalo stato di una relé che può essere Acceso / Spento oppure un contatto che può essere Aperto / Chiuso , allorapossiamo impostare la variabile di tipo “Vero / Falso” che ritornerà i soli valori di True / False.Pagina10


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 6La casella cerchiata in blu “Valore per simulazione” (Figura 6) serve per impostare un valore, associato alla variabileselezionata in “Valore dell’oggetto”, che viene convertito dallo Script, in fase di esecuzione, nel formato scelto (anchese siamo disconnessi dalle apparecchiature); ciò serve a simulare il funzionamento dello Script stesso.Nell’esempio in Figura 6 abbiamo impostato il valore di 8 ; possiamo provare a cambiarlo in -8.5 (visto che è un valorecon Virgola e può essere sia negativo che positivo) e ciò si ottiene scrivendo nella casella di testo evidenziata in Blu(Figura 7 ).Pagina11


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 7Nella casella “Valor per simulazione” (cerchio Rosso di Figura 7) abbiamo scritto -8.5; selezioniamo ora col mouse idue caratteri virgolette cerchiati di Blu nella riga dello Script ‘ Me.strRetVal = “” ’.Cliccando col mouse sulla variabile nella lista “Valore dell’oggetto” e trascinandola fino a rilasciarla nella finestra discrittura del codice notiamo che le due virgolette vengono sostituite dal nome della variabile trascinata (Figura 8).Pagina12


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 8Ora clicchiamo sulla freccetta verde, come indicato nella zona cerchiata in Rosso di Figura 9, che fa eseguire lo Script.Figura 9Pagina13


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Compare la seguente finestra (Figura 10) che mostra lo Script completo generato partendo dallo Script di Figura 9 chevediamo nella finestra di scrittura del codice.Figura 10Cliccando sul tasto OK si ottiene il risultato di Figura 11:Figura 11Appare -85 invece di -8,5 ; questo è causato dal fatto che sul nostro PC abbiamo impostato come separatore per idecimali la Virgola invece del Punto ; premiamo quindi il tasto OK per chiudere l’esecuzione dello Script e correggiamoPagina14


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010-8.5 con -8,5 nella casella “Valore per simulazione” quindi riproviamo ad rieseguire lo Script cliccando di nuovo sullafreccetta Verde per ottenere il risultato di Figura 12.Figura 12Il valore ritornato ora è corretto : -8,5.Verifichiamo ora cosa succede in fase di esecuzione del sinottico invece che in simulazione.Pagina15


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 13Salviamo lo Script creato cliccando sul tasto “Salva” (Figura 13).Pagina16


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 14Nell’esempio di Figura 14 trasciniamo nel sinottico la sonda “T. esterna” del DTE611 e selezioniamo l’opzione “Vedidescrizione”.Figura 15Pagina17


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Salviamo tutto cliccando sul tasto “Salva” (cerchiato in blu in Figura 15). L’operazione chiude la fase di disegno delsinottico è attiva la fase di esecuzione dove si possono leggere i dati dall’impianto e verificare il comportamentodell’Oggetto Codice caricato sul sinottico.Figura 16Dal sinottico di Figura 16 clicchiamo il tasto Ricevi (quello cerchiato di Rosso) per leggere l’impianto.Al termine della lettura dati i due oggetti presenti sul sinottico si presentano come in Figura 17 :Pagina18


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 17I valori visualizzati dai due oggetti sono uguali; il primo è visualizzato dall’oggetto sonda “T. esterna”dell’apparecchiatura DTE611 mentre il secondo è visualizzato tramite l’Oggetto Codice che ha eseguito lo Scriptassociato visualizzando il risultato ottenuto. Lo Script viene eseguito dopo ogni richiesta di ricezione dati ed è eseguitocomunque appena dopo che i valori degli altri oggetti sono stati caricati sul sinottico.Fino a questo punto abbiamo illustrato i passi base per creare uno Script da associare ad un Oggetto Codice e quindimandarlo in esecuzione sul sinottico; nei prossimi capitoli riportiamo, per capire meglio le possibilità di questi oggetti,alcuni esempi più pratici rispetto al duplicare valori di oggetti già esistenti appartenenti alle apparecchiature di unimpianto.PARTE I: ESEMPI DI SCRIPTCALCOLO MEDIA TRA PIÙ TEMPERATUREObiettivo: visualizzare un valore di temperatura sul sinottico pari alla media aritmetica di 3 temperature lettedall’impianto.Apriamo un nuovo sinottico e trasciniamo sulla finestra di disegno (Figura 18 ) 3 sonde di temperatura e un OggettoCodice:Pagina19


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 18Cliccare il tasto “Editor codice” per aprire la finestra “Editor codice .<strong>NET</strong>” nella quale trasciniamo, come indicato dallefrecce rosse di Figura 19, la sonda “T. esterna”, la sonda “T. mandata” e la sonda “T. ambiente”.Pagina20


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 19Tutte le variabili aggiunte nella lista “Valore dell’oggetto” si lasciano di tipo ‘Numero con Virgola’ (associazioneautomatica dopo trascinamento). Tali variabili saranno utilizzate all’interno dello Script che andremo a scrivere.Ora possiamo scrivere il codice dello Script (Figura 20).Pagina21


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 20Scriviamo all’interno della routine “Public Sub ExecuteCode”, come indicato dal cerchio Blu in Figura 21, ladichiarazione di una variabile Double (cioè di tipo decimale a doppia precisione) ed assegnamola a qualcosa da inseriredopo il segno di uguale (=):Dim a as Doublea =Posizioniamoci col cursore dopo la scritta “a =” e trasciniamo la prima variabile ( “valAddress_31_DTE611_Tambiente”nell’esempio ) dalla lista “Valore dell’oggetto” come indicato dalla freccia blu di Figura 21 quindi inseriamo uncarattere “spazio” cliccando sulla barra dopo il nome della variabile (scritta rossa in Figura 21)Pagina22


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 21Dopo lo spazio scriviamo “+” e trasciniamo la successiva variabile dalla lista “Valore dell’oggetto”, quindi inseriamo unaltro spazio e un altro “+” e poi trasciniamo la terza e ultima variabile.Lo Script provvisorio è il seguente (Figura 22) :Figura 22Pagina23


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010In pratica abbiamo dichiarato una variabile di tipo Double (Valore con virgola) il cui valore sarà pari alla somma delle 3sonde. Per fare la media aritmetica dividiamo la somma per il numero delle sonde , quindi scriviamo :Dim a as Doublea = valAddress_31_DTE611_Tambiente + valAddress_31_DTE611_Testerna + valAddress_31_DTE611_Tmandataa = a / 3.0' =========== COSTER T.E. Return Values ===========Me.strRetVal = aMe.intRetVal = 0Lo Script finale è quello di figura 23.Figura 23Ora salviamo lo Script premendo il tasto “Salva” (Figura 23); quindi salviamo il sinottico in modo da passare dalla fasedi disegno alla fase di esecuzione per verificare come si comporta lo Script.Pagina24


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 24Premendo il tasto “Ricevi” (Figura 24) , vengono letti i valori delle tre sonde e mandato in esecuzione lo Scriptassociato all’ Oggetto Codice presente nel sinottico, ottenendo i risultati di Figura 25.Pagina25


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 25Il valore visualizzato dove è posizionato l’Oggetto Codice (cerchiato in rosso in Figura 25) è, nell’esempio, 27,1 che è lamedia dei valori letti dalle 3 sonde di temperatura.Se volessimo modificare la visualizzazione del risultato, ad esempio escludendo i decimali, potremmo modificare loScript nel seguente modo convertendo la variabile double “a” in variabile di tipo Integer (intero a 32 bit) con lafunzione VB.<strong>NET</strong> CInt()Dim a as Doublea = valAddress_31_DTE611_Tambiente + valAddress_31_DTE611_Testerna + valAddress_31_DTE611_Tmandataa = a / 3.0' =========== COSTER T.E. Return Values ===========Me.strRetVal = Cint(a)Me.intRetVal = 0E rileggendo l’impianto il risultato è:Pagina26


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 26In conclusione, anche se l’esempio non ha un vero senso pratico, viene mostrata la possibilità di elaborare un risultatopartendo dai valori degli oggetti visualizzati sul sinottico per ottenere un qualsiasi calcolo utile in tempo reale.ESEMPIO DI ANIMAZIONE IMMAGINEObiettivo: visualizzare un immagine di un ventilatore in movimento o fermo in base ai valori di due sonde.Creiamo un nuovo sinottico trascinando una sonda esterna , una sonda ambiente e un Contatto K1 ( Figura 27).Pagina27


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 27Successivamente inseriamo un oggetto .<strong>NET</strong> (Figura 28)Figura 28abilitando la proprietà ‘Vedi immagine’ e associando l’immagine del ventilatore all’oggetto .<strong>NET</strong>.Successivamente clicchiamo sul tasto “Editor codice” per aprire la finestra dell’ Editor (Figura 29):Pagina28


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 29Trasciniamo i tre oggetti interessati nella finestra ‘Valore dell’oggetto” e, per l’oggetto Contatto K1, modifichiamo iltipo Valore impostandolo come Vero/Falso.Ora occupiamoci del Codice e scriviamo il seguente script (Figura 30)Figura 30Da questo codice possiamo vedere che se impostiamo a 0 (zero) Me.intRetVal , tale valore tiene ferma l’immaginedel ventilatore , mentre se impostiamo un valore > 1 il valore viene usato per animare l’immagine o per impostaresoglie se dovessimo scegliere di usare immagini animate in base al valoreMandando in esecuzione otteniamo (Figura 31):Pagina29


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 31L’immagine dell’oggetto Codice è ferma poiché K1 è OFF e il valore visualizzato è quello della Sonda ambiente.Chiudendo il contatto K1 e rileggendo l’impianto otterremo che l’oggetto si anima è visualizza il valore della Sondaesterna.PARTE II: INFORMAZIONI AVANZATEINTRODUZIONEIn questo capitolo diamo informazioni più dettagliate a chi vuole sviluppare uno Script in codice .<strong>NET</strong> utilizzando l’”Editor codice .<strong>NET</strong>” a disposizione. Per comprendere meglio il capitolo è necessario avere nozioni di programmazionead oggetti in generale ed in particolare conoscere già l’ambiente di sviluppo .<strong>NET</strong>. L’ambiente di sviluppo mette adisposizione una Toolbar ed un Menu.TOOLBARCon riferimento alla finestra di “Editor codice .<strong>NET</strong>” diamo una spiegazione delle funzionalità disponibili nella ToolBar(figura 32):Pagina30


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 32Partendo da sinistra verso destra abbiamo le seguenti funzioni:TOOLBAR: TASTO DI “ESEGUI <strong>CODICE</strong>”Con riferimento a Figura 33:Figura 33Cliccando sul tasto “Esegui codice” si apre la finestra ‘Codice generato’ che mostra lo Script completo con le variabiliinserite dall’impianto (Figura 34).Pagina31


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 34Il tasto cerchiato e numerato come 1 (Figura 34) serve a visualizzare lo Script con o senza i numeri di riga; il tasto“Esegui” permette di lanciare l’esecuzione dello Script per testare l’applicazione e termina con la visualizzazione del“Risultato esecuzione codice …..” (Figura 35).Figura 35TOOLBAR: TASTO DI SCELTA DEL LINGUAGGIO DI PROGRAMMAZIONE .<strong>NET</strong>Con riferimento a Figura 36:Pagina32


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 36Cliccando si può scegliere se passare a Visual C# o a Visual Basic.<strong>NET</strong>; passando ad un altro linguaggio si perde il codiceinserito fino a quel momento dall’utente; ciò viene segnalato con un messaggio (Figura 37).Figura 37TOOLBAR: TASTO “RIFERIMENTO AI COMPONENTI DA INCLUDERE PER LA COMPILAZIONE”Con riferimento a Figura 38:Figura 38Cliccando su questo tasto si apre la finestra “Riferimenti da includere” dove poter inserire librerie .<strong>NET</strong> che servonoper lo sviluppo del codice (Figura 39).Pagina33


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 39Nella lista “Riferimenti di default” vi è l’elenco delle librerie .<strong>NET</strong> incluse di default in ciascuno Script di codice.L’utente può aggiungere tutte le librerie in più che servono agendo sulla lista ‘Riferimenti aggiunti dall’utente”.Cliccando sul tasto cerchiato e numerato come 1 si sceglie il riferimento esterno da aggiungere (libreria o componente.<strong>NET</strong>) che viene visualizzato nella casella di testo adiacente al tasto cerchiato come 1 (Figura 40);Figura 40Pagina34


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Cliccando sul tasto cerchiato e numerato come 1 si sceglie il riferimento esterno da aggiungere (libreria o componente.<strong>NET</strong> chiamato anche Assembly nella terminologia .<strong>NET</strong>) che viene visualizzato nella casella di testo adiacente al tastocerchiato come 1 (Figura 40); il tasto cerchiato 2 diventa attiva e cliccandolo si inserisce il riferimento nella lista (Figura41).Figura 41Se il riferimento da includere è memorizzato nella GAC (Global Assembly Cache) di Windows sceglierlo cliccando sultasto cerchiato 3 di Figura 40; viene aperta la finestra “Riferimenti .<strong>NET</strong>” dove poter scegliere l’Assembly che serve perlo sviluppo del codice (Figura 42).Figura 42Pagina35


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Selezionando l’Assembly che serve si abilita il tasto “Ok” che cliccandolo inserisce il riferimento scelto nel codice.Cliccando il tasto “Salva” di figura 41 si ritorna alla finestra di Editor codice .Net.TOOLBAR: TASTO ABILITA/DISABILITA I NUMERI DI RIGACon riferimento a Figura 43, cliccando sul tasto cerchiato si può inserire o togliere la numerazione di riga del codice.Figura 43TOOLBAR: TASTO “CARATTERE EDITOR <strong>CODICE</strong>”Con riferimento a Figura 44, cliccando sul tasto cerchiato si può cambiare il tipo di carattere da utilizzare per scrivere ilcodice.Figura 44TOOLBAR: TASTI COMMENTA E DECOMMENTA LA SELEZIONECon riferimento a Figura 45, cliccando sul tasto cerchiato e numerato “1” si può ‘commentare’ il blocco di codiceselezionato; cliccando sul tasto cerchiato e numerato “2” si può decommentare il blocco di codice selezionato eprecedentemente commentato.Figura 45La figura 46 illustra la modalità di ‘commento’ del codice.Pagina36


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 46La figura 47 illustra la modalità di ‘decommentare’ il codice.Figura 47Pagina37


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010TOOLBAR: TASTI “TAGLIA , COPIA E INCOLLA”Riferendosi a figura 48, Taglia Copia e Incolla sono i 3 tasti comuni per utilizzare la tecnica del Copia-Incolla sul codicein fase di editing.Figura 48TOOLBAR: TASTI “ANNULLA E RIPETI”Riferendosi a figura 49, Annulla e Ripeti sono tasti comuni di editing del codice per annullare una digitazione oripristinare una cancellazione non voluta.Figura 49TOOLBAR: TASTI “CERCA E SOSTITUISCI”Riferendosi a figura 50, Cerca e Sostituisci sono tasti comuni utili in fase di editing del codice per cercare stringhe nelcodice o sostituire stringhe con altre.Pagina38


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 50TOOLBAR: TASTI DI <strong>GESTIONE</strong> DEI “SEGNALIBRI”Con riferimento a Figura 51:Figura 51Il tasto cerchiato e numerato 1 serve ad inserire o togliere un segnalibro (per togliere un segnalibro già esistente bastaposizionarsi nella riga del segnalibro e cliccare questo tasto); i tasti cerchiati e numerati come 2 servono per spostarsiverso il segnalibro precedente o successivo; il tasto cerchiato e numerato ‘3’ serve a cancellare tutti i segnalibri.TOOLBAR: TASTO ‘CAMBIO FINESTRE …’ : FINESTRE ‘ESPLORA SINTASSI’ E‘MESSAGGI/REGISTRO EVENTI’Con riferimento a Figura 52:Pagina39


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 52Il tasto cerchiato serve a cambiare la visualizzazione della finestra di editor aggiungendo o togliendo le finestra di‘Esplora sintassi’ (Figura 53 – cerchiatura 2 ) e ‘Messaggi’ (Figura 53 - cerchiatura 1).Figura 53Nella finestra ‘Esplora sintassi’ si può navigare agevolmente nel codice attraverso le strutture e le classi create. Nellafinestra ‘Messaggi e Registro eventi’ sono visualizzati gli errori e i warning in fase di compilazione – run di debugdell’applicativo e, nel ‘Registro eventi’ tutte le macro-operazioni eseguite in fase di gestione del debug e rundell’applicativo.TOOLBAR: TASTI DI ‘ESPANDI E COMPRIMI STRUTTURA’Con riferimento a Figura 54:Pagina40


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 54Il tasto cerchiato e numerato 1 espande tutte le strutture del codice racchiuse in ‘Region’; il tasto cerchiato enumerato 2 comprime le strutture ‘Region’ del codice per visualizzarlo in forma compatta.TOOLBAR: ORDINE D’ESECUZIONECon riferimento a Figura 55:Figura 55gli oggetti Codice .<strong>NET</strong> vengono eseguiti dopo il caricamento degli altri oggetti del sinottico; l’ordine di esecuzione ditali oggetti può essere impostato assegnando un numero ‘Ordine d’esecuzione’ tenendo conto che tali oggettivengono eseguiti nell’ordine crescente tra 0 (primo) e 100 (ultimo).TOOLBAR: SELEZIONE CLASSI E MEMBRI DELLE CLASSICon riferimento a Figura 56:Pagina41


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 56La lista cerchiata e numerata 1 consente di posizionarsi sulla classe desiderata nel codice; la lista cerchiata e numerata2 consente di posizionarsi sul membro desiderato della classe visualizzata in finestra.MENUI Menu (figura 61) a disposizione nella finestra di editing del codice riportando la maggior parte delle funzionalitàspiegate nei capitoli della Toolbar più altre funzionalità che saraano illustrate nei prossimi paragrafi.Figura 57MENU: STAMPECon riferimento a Figura 58, il Menu Stampe permette di stampare il codice che si sta sviluppando (voce ‘Stampa…”) edi visualizzare un “Anteprima di stampa…” prima di confermare la stampa.Pagina42


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 58MENU: MODIFICACon riferimento a Figura 59, il menù Modifica consente le stesse funzionalità descritte nei capitoli ‘Toolbar: Tasti“Annulla e Ripeti” ‘ e ‘Toolbar: Tasti “Taglia , Copia e Incolla” ‘. Vi è in aggiunta la funzione di “Seleziona tutto” checonsente di selezionare tutto il codice nella finestra di editing.Figura 59MENU: RICERCHECon riferimento a Figura 60, il menù Ricerche consente le stesse funzionalità descritte nel capitolo ‘Toolbar: Tasti“Cerca e Sostituisci” ’; vi è anche la voce ‘Vai alla linea numero..’ per saltare direttamente ad un numero di rigaprestabilito nella finestra di editing del codice.Pagina43


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 60MENU: FINESTRECon riferimento a Figura 61, il menù Finestre consente le stesse funzionalità descritte nei capitoli ‘ Toolbar: Tasti di“Espandi e Comprimi struttura” ‘ e ‘ Toolbar: Tasto “Cambio finestre …” : finestre “Esplora sintassi” e“Messaggi/Registro eventi” ‘.Figura 61PARTE II: ESEMPI DI SCRIPTPROGRESSBAR ASSOCIATA AD UNA TEMPERATURACon riferimento a Figura 62:Pagina44


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 62Apriamo un nuovo sinottico ed aggiungiamo una sonda di temperatura e un oggetto Codice; selezioniamo l’oggettoed apriamo la finestra di editing dell’oggetto codice quindi Inseriamo il seguente script :Dim objBar as new System.Windows.Forms.ProgressBarDim strNomeOggetto As String = "bar<strong>Coster</strong>"Dim blnTrovato As BooleanDim element As System.Windows.Forms.Control' catturo l'oggetto bar se già istanziatoFor Each element In CType(objParameters(0), system.Windows.Forms.PictureBox).ControlsNextIf element.Name = strNomeOggetto ThenEnd IfblnTrovato = TrueobjBar = ctype(element, system.Windows.Forms.ProgressBar)exit for' se non trovato aggiungo l'oggetto bar sul sinottico (picturebox contenitore)If Not blnTrovato ThenobjBar.Name = strNomeOggettoobjBar.SetBounds(200, 400, 150, 23, System.Windows.Forms.BoundsSpecified.All)Pagina45


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010CType(objParameters(0), System.Windows.Forms.PictureBox).Controls.Add(objBar)' Coloro di Rosso la barraobjBar.ForeColor = System.Drawing.Color.RedEnd If'Imposto il valore della barobjBar.Value = valAddress_1_1_RTLX10CAMERA101_Sondaambiente' =========== COSTER T.E. Return Values ===========Me.strRetVal = "Macro ProgressBar Valore = " & valAddress_1_1_RTLX10CAMERA101_SondaambienteMe.intRetVal = 0Figura 63Dobbiamo ricordarci di impostare come tipo di dato della sonda il Numero Intero (come indicato nel cerchio Blu inFigura 63)A questo punto mandando in esecuzione otteniamo il risultato di figura 64 :Pagina46


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Figura 64La progress bar segna l’equivalente valore 23 in percentuale su 0 – 100 che il range di default (Figura 64).DIAGRAMMA A TORTA CON ANDAMENTO TEMPERATUREQuesto esempio utilizza il componente .<strong>NET</strong> proprietario Chart Fx di Farpoint Technologies (lo stesso componenteutilizzato nei diagrammi di <strong>SWC701</strong>). (Figura 65)Figura 65Pagina47


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Trascinare gli oggetti di 3 temperature da 1 o più apparecchiature (trattasi solo di esempio di codice senza attinenzacon un esigenza reale) come nell’esempio di Figura 65.Prima di scrivere il Codice aggiungiamo tra i riferimenti necessari quelli per il componente ChartFx; partendo da Figura66 cliccare sul simbolo dei Riferimenti da aggiungere (cerchiato in Figura 66);Figura 66Quindi aggiungo le librerie di riferimento per il componente ChartFx (Figura 67):Figura 67Pagina48


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Quindi Inserire il seguente script nella finestra di editing del Codice:Dim strValore As StringDim objChart As New ChartFX.WinForms.ChartDim strNomeOggetto as string = "Chart<strong>Coster</strong>"Dim blnTrovato as Boolean = FalseDim element As System.Windows.Forms.ControlFor Each element In Ctype(objParameters(0), system.windows.forms.PictureBox).ControlsNextIf element.name = strNomeOggetto thenEnd IfblnTrovato = TrueobjChart = CType(element, ChartFX.WinForms.Chart)Exit ForIf Not blnTrovato ThenEnd IfWith objChartEnd WithobjChart.Name = strNomeOggettoobjChart.SetBounds(8, 8, 360, 200, System.Windows.Forms.BoundsSpecified.All)CType(objParameters(0), system.windows.forms.PictureBox).Controls.Add(objChart).Gallery = ChartFX.WinForms.Gallery.Pie.Data.Series = 1.Data.Points() = 3.Data.Item(0, 0) = valAddress_1_MRL608ALBERGOSTELLA_Sondaesterna.Data.Item(0, 1) = valAddress_1_1_RTLX10CAMERA101_Sondaambiente.Data.Item(0, 2) = valAddress_1_2_RTLX20CAMERA102_Sondaambiente.Data.Labels(0) = "Sonda Esterna" & valAddress_1_MRL608ALBERGOSTELLA_Sondaesterna.Data.Labels(1) = "Sonda Ambiente " & valAddress_1_1_RTLX10CAMERA101_Sondaambiente.Data.Labels(2) = "Sonda Ambiente " & valAddress_1_2_RTLX20CAMERA102_Sondaambiente' =========== COSTER T.E. Return Values ===========Pagina49


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Me.strRetVal = "Oggetto Chart"Me.intRetVal = 0Inserire gli oggetti indicati specificandoli come Numeri con VirgolaUna volta scritto il Cidce premere SalvaChiamando la ricezione e si ottiene la seguente schermata :Figura 68Potete vedere che le voci del diagramma a torta dipendono dai valori passatiPagina50


<strong>SINOTTICI</strong> <strong>SWC701</strong>: <strong>GESTIONE</strong> <strong>CODICE</strong> .<strong>NET</strong> v. 1.0.0 del 2 marzo 2010Pagina51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!