Vai al contenuto
PLC Forum


Realizzare Controlli X Scada - Visual Basic .Net


pixel

Messaggi consigliati

Salve,

da poco ho indirizzato i miei studi verso VB.Net xchè stimolato dalla potente libreria grafica GDI+ che implementa. L'obiettivo è quello di realizzare (o almeno di capire come fare...) dei controlli da utilizzare in SCADA fatti in VB.Net. Cerco aiuto in merito, dritte, tutorial, blog che mi consentano di capire dove mettere le mani...

Supponendo di voler realizzare il tipico controllo tipo Voltmetro (la lancetta che ruota su quadrante graduato) come disegnarlo con le GDI+? Secondo voi è percorribile la soluzione di usare delle immagini da animare o va generato tutto via codice con Cerchi, Archi, Poligoni, etc.?

Ringrazio anticipatamente tutti...

Link al commento
Condividi su altri siti


Io userei angoli, cerchi ecc. per poi avere la padronanza completa dell'oggetto !!!

comunque quando uscirà l'atteso motore grafico integrato in windows Vista (AVALON) diventerà semplicissimo realizzare questi oggetti, prova ad informarti su avalon e vedrai !!!

Ciao

Link al commento
Condividi su altri siti

se ci riesci national instrument fornisce dei demo che possono essere molto utili per imparare.

nel forum tempo fa è stato inserito una serie di post sulla cosatruzione delle pagine grafiche, utili pure questi.

in generale, esiste una base grafica di tipo statico con sovrapposta una sezione dinamica con i link ai dati variabili esterni.

Link al commento
Condividi su altri siti

In realtà ero orientato proprio verso questa ipotesi di sviluppo... realizzare una parte statica (grafica del quadrante, magari in formato vettoriale per poter gestire il ridimensionameto senza perdita di qualità) e la parte in movimento utilizzando linee, e varie per la lancetta.

Mi piacerebbe un confronto e magari qualche dritta con qualche linea di codice...

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao a tutti...

anche se l'argomento non è risultato così interessante come speravo voglio, almeno per quelli che hanno mostrato un pò di interesse B), allegare l'immagine del mio primo controllo "Meter" realizzato in VB.Net sfruttando, con le GDI+ la grafica Statica (con immagini vettoriali), per migliorare l'impatto grafico del controllo. Naturalemente quello che vedete è il controllo nella sua versione codice a "c...o di cane" e non è stato implementata nessuna classe ne tantomento è possibile utilizzarlo nei progetti (questa è la seconda fase... prima volevo vedere se si poteva fare la cosa...)

Ciao a tutti e grazie a quelli che hanno tentato di aiutarmi.

post-200465-0-03793700-1381174208_thumb.

Link al commento
Condividi su altri siti

  • 7 months later...

Ciao pixel :)

da poco ho indirizzato i miei studi verso VB.Net xchè stimolato dalla potente libreria grafica GDI+ che implementa. L'obiettivo è quello di realizzare (o almeno di capire come fare...) dei controlli da utilizzare in SCADA fatti in VB.Net. Cerco aiuto in merito, dritte, tutorial, blog che mi consentano di capire dove mettere le mani...

Supponendo di voler realizzare il tipico controllo tipo Voltmetro (la lancetta che ruota su quadrante graduato) come disegnarlo con le GDI+? Secondo voi è percorribile la soluzione di usare delle immagini da animare o va generato tutto via codice con Cerchi, Archi, Poligoni, etc.?

..........

In realtà ero orientato proprio verso questa ipotesi di sviluppo... realizzare una parte statica (grafica del quadrante, magari in formato vettoriale per poter gestire il ridimensionameto senza perdita di qualità) e la parte in movimento utilizzando linee, e varie per la lancetta.

Mi piacerebbe un confronto e magari qualche dritta con qualche linea di codice...

...........

anche se l'argomento non è risultato così interessante come speravo voglio, almeno per quelli che hanno mostrato un pò di interesse , allegare l'immagine del mio primo controllo "Meter" realizzato in VB.Net sfruttando, con le GDI+ la grafica Statica (con immagini vettoriali), per migliorare l'impatto grafico del controllo. Naturalemente quello che vedete è il controllo nella sua versione codice a "c...o di cane" e non è stato implementata nessuna classe ne tantomento è possibile utilizzarlo nei progetti (questa è la seconda fase... prima volevo vedere se si poteva fare la cosa...)

Senzaltro che l'argomento lo trovo molto interessante !

Dunque, secondo me la strada piu' conveniente da seguire e' quella di opprocciare il discorso mirando ad implementare con una interfaccia OpenGL (Open Graphics Library) oppure DirectX technologies... comunque penso che la prima option sia meno travagliata.. In sostanza si tratta di mettere in scena un "set di oggetti (list of rendering context)"che interattuano contemporaneamente nella view della window ... ad esempio il bitmap di fondo dello istrumento sarebbe un oggetto separato dalla lancetta, cioe' due contesti grafici separati che convivono/condividono lo stesso main device context window .. questi contesti rendono i "flat 2D Bitmaps Texture Mapped " di ogni oggeto.

Link

Link

Link

Link

Link

Esempio..

Vedi il file demo EXE allegato

Vedi il file demo OCX allegatopost-202318-0-21332600-1384789383_thumb.

Su questo ultimo, volendo potresti adeguare la tua bitmap sopra. ;)

Buene cose.

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

aggiungo una piccola precisazione: il file ZIP del demo perchè funzioni deve essere estratto in c:\, altrimenti dà errore di mancanza immagini.

Ciao

Link al commento
Condividi su altri siti

Ciao,

Ti ringrazio Gabriele per la tua osservazione! ;)

Infatti, su entrambi progetti, la cartella " res" deve rispettare il path "C:\VOLTMETER_DEMO\res" per il file .EXE e "C:\VOLTMETERCtrl\res" per la OCX. gia' che questi caricano i bitmaps univocamente da queste locazioni.

Modificato: da Savino
Link al commento
Condividi su altri siti

  • 3 weeks later...

Grande Savino..... :lol::lol::lol:

comunque ti dico che avevo abbandonato la speranza che qualcuno si potesse interessare all'argomento... e non ho più postato nulla!!! in realtà quella visibile nel post precedente non è solo una bmp dell'ipotesi di un controllo ma è il controllo bello e funzionante!!! come quello postato da te... :rolleyes:

Ti dico però che non ho usato ne OpenGl ne Active-X, almeno non direttamente... ho fatto tutto con le GDI+ e Visual Studio.Net. unendo via codice immaggini PNG (vettoriali e quindi ridimensionabili senza perdita di qualità e codice VB per la gestione della Lancetta, delle Soglie, della Scala) guarda un pò queste....

Modificato: da pixel
Link al commento
Condividi su altri siti

ecco la finestra delle proprietò di Visual Studio .Net per il controllo Meter:

post-187880-0-23169700-1384947485_thumb.

ed ecco, realizzate con la tecnica dell'animazione di lyer di immagini, Gemme luminose e pulsanti luminosi o Standard

post-202376-0-68313500-1384949357_thumb.

poi c'è il Display Elettronico....

post-191618-0-55745300-1384950162_thumb.

e non potevano mancare i grafici....

post-191618-0-84895800-1384954322_thumb.

Modificato: da pixel
Link al commento
Condividi su altri siti

Ciao pixel, :)

ho fatto tutto con le GDI+ e Visual Studio.Net. unendo via codice immaggini PNG (vettoriali e quindi ridimensionabili senza perdita di qualità e codice VB per la gestione della Lancetta, delle Soglie, della Scala)
Bravo, complementi ! :lol:

Sei senzaltro sulla buona strada..... (e avanti) ;)

Link al commento
Condividi su altri siti

In via di ultimazione... quando avrò tempo.... <_<<_<

Potenziometro :

e Meter Inox

grazie per i complimenti... da voi guru.... è sempre un piacere riceverli...

Spero di poterli utilizzare a breve in un sinottico... se accettano il preventivo.... :unsure:

P.S: Grafica interamente realizzata dal sottoscritto!!!

Modificato: da pixel
Link al commento
Condividi su altri siti

Ciao pixel,

complimenti per i tuoi lavori.

Posso sapere che documentazione hai usato per l'apprendimento? Hai comperato un buon manuale di VB.Net o hai anche ricercato materiale su Internet?

Link al commento
Condividi su altri siti

:blink::blink::blink:

Grazie per i complimenti....

andiamo con ordine.... per la docmentazione.... bhè effettivamente leggo molto... ho comprato un librone di 1000 e + pagg di Francesco Balena e lo ho affiancato a testi un pò più semplici e immediati... sono de coccio...

per quanto riguarda il display ho utilizzato semplicemente dei font che riproducono i sette segmenti... una serie di "8" di colore rosso scuro simulano il segmento spento e sopra scrivo le cifre con lo stesso font con colore rosso vivace. Ma non sono ancora soddisfatto il font che ho usato non è proporzionale e c'è una leggera modifica della larghezza del testo quando scrivo le cifre per cui in realtà per numeri come l'uno il realismo un pò si perde...

che altri controlli si potrebbero realizzare?

Grazie ancora per i complimenti.

Link al commento
Condividi su altri siti

Ciao,

Ti dico però che non ho usato ne OpenGl ne Active-X, almeno non direttamente...
Appunto, la GDI+ sarebbe la via evoluta e semplificata , piuttosto di OpenGl e DirectX, per l'approccio della Window's GDI, ma limitata per adesso alla rappressentazione 2D pero'.

La GDI+ reside in la shared managed code library "System.Drawing.dll" (vedi C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322) e la classe piu' importante e' la Graphics class quale incapsula le functionalities neccessarie per la creazione e gestione delle superficie grafiche. La GDI+ ha tre parti : 2-D vector graphics, Imaging and Typography. GDI+ native code library (gdiplus.dll) e GDI native code library (gdi32.dll) sono fornite con Win. XP (vedi C:\i386)

che altri controlli si potrebbero realizzare?
L'aspetto estettico di un controllo (risoluzione grafica, etc) sarebbe molto importante cosi' come anche la potenzialita' delgl'insieme di propieta' e metodi che questo esporrebbe attraverso la sua interfaccia d'accesso, in modo di rendersi facilmente portabile alle applicazioni Client utilizzatori (SCADA, etc..).

Pannelli multi controlli...

120.jpg

Generatori di set point digitali sono molto richiesti..

122.jpg

123.jpg

Saluto.

Modificato: da Savino
Link al commento
Condividi su altri siti

Veramente belli, complimenti!

Per i grafici ti consiglio di usare questi:

http://zedgraph.org/wiki/index.php?title=Main_Page

sono free, opensource e bellissimi! io mi sono trovato benissimo.

Poi vorrei dirti di non sottovalutare Avalon, ovvero WPF ..

vedi qui: http://www.netfx3.com/ sotto windows presentation foundation.

Sono le novità del framework 3.0!

Link al commento
Condividi su altri siti

Grazie ancora peri complimenti e per i contributi... :lol:

Effettivamente avevo provato a fare qualcosina con Active-x ai tempi di Vb6 ma con l'avvento di Visual Studio è stato più semplice di quanto potessi immaginare!

MrC grazie per i Link... scusa ma tu che linguaggio usi? I grafici sono vermante interessanti. Non ho approfondito anche perchè non vado molto d'accordo con l'inglese ma sembra che sia possibile utiliuzzarli anche in pagine ASP... confermi?

A proposito... una delle idee che mi era venuta era qualla di realizzare gli stessi controlli controlli per il Web da ultizzare in pagen ASP.Net ed ultimamente, avendo realizzato un gestionale di magazzino per Pocket PC, realizzare dei controlli per Win Mobile... devo prima capire dove trovare il tempo!!!! <_<<_<<_<

Link al commento
Condividi su altri siti

Per Savino

Per i generatori di Set-Point potrei utilizzare la stessa grafica del Display (naturalmente semplificata). Anche se alcuni Set-Point avevo intenzione di modificarli (lì dove verrà utilizzato) dal controllo Display stesso...

Spero di poter realizzare un sinottico di prova... visto che ancora sto studiando la porgrammazione degli S7-300 e ho la possibilità di testare su un PLC.

Link al commento
Condividi su altri siti

Ciao pixel, :)

Per i generatori di Set-Point potrei utilizzare la stessa grafica del Display (naturalmente semplificata). Anche se alcuni Set-Point avevo intenzione di modificarli (lì dove verrà utilizzato) dal controllo Display stesso...
Certo...!
Spero di poter realizzare un sinottico di prova... visto che ancora sto studiando la porgrammazione degli S7-300 e ho la possibilità di testare su un PLC.
Appunto!.. un sinottico ricco di controlli, indicatori e perche non del "motion" sarebbe una buona idea ;)

A presto.

Link al commento
Condividi su altri siti

Io uso sia Vb.net che c#

Ti consiglio di puntare su c#, che è il minimo comun denominatore di tutti i vari prodotti microsoft.

Non so se i grafici li puoi usare come pagine ASP, penso di si comunque, te li consiglio vivamente, io mi sono trovato benissimo!

Link al commento
Condividi su altri siti

  • 10 months later...
  • 3 weeks later...

Ciao

Per il momento non allegherò nulla del mio codice :rolleyes: , sia perchè non attinente al forum... sia perchè preferisco (almeno in questa fase) avere uno scambio di idee e modalità di realizzazione ;) . Puoi contattarmi privatamente oppure lasciare ulteriori Post in questa discussione, risponderò a tutte le tue domande e sicuremente avremo reciproco vantaggio dallo scambio professionale.

Ciao

Link al commento
Condividi su altri siti

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