Vai al contenuto
PLC Forum


Imparare Ad Usare Visual Basic


puntalino

Messaggi consigliati


  • Risposte 63
  • Created
  • Ultima risposta

Top Posters In This Topic

  • del_user_56966

    24

  • lucios

    9

  • Livio Orsini

    8

  • puntalino

    6

Adelino Rossi

Se fai una ricerca su google scrivendo Visual Basic trovi dei siti italiani pieni di materiale ti registri e scarichi quello che ti interessa.

Link al commento
Condividi su altri siti

del_user_56966

Quale Visual Basic vuoi imparare VB6 oppure VB.NET oppure il più limitato VBA - Visual basic for Application di Office spesso utilizzato anche negli Scada commerciali?

Per il corso direi che prima si dovrebbe concentrate il fuoco su qualche argomento dire

visual basic è come dire il tutto e il nulla, cosa in particolare ti interessa sviluppare con questo linguaggio ??

Modificato: da alen
Link al commento
Condividi su altri siti

Mi aggancio a questa discussione , scusatemi se esco un po' dall'argomento

personalmente ho sempre programmato PLC , ma sono curioso e mi piacerebbe chiarirmi un po' le idee sui PC.

Esiste un tutorial dei linguaggi di programmazione ??

del tipo :

differenze tra VB6 e VB.net

quando e' meglio usare C++

cosa fa' borland

ecc ecc.

Saluti

Luca

Link al commento
Condividi su altri siti

Io sono interessato alla seguente piccola applicazione:

1) click sul bottone "ECCita" dello schermo ed eccito un relè (impulso elettrico che verrà poi elaborato magari con fotoaccoppiatore o altro)

2) Premo un pulsante e compare la scritta "acceso" sullo schermo.

Solo questo. Qualche anima pietosa ha qualcosa in VB5?

Grazie

Link al commento
Condividi su altri siti

Due o tre anni fa avevo iniziato a tenere una specie di corso per l'impiego di VB5 (vb5 lo si trova gratuitamente in rete) come strumento di creazione di pagine HMI per supervisionare apparecchi e impianti.

Poi come al solito: interesse tanto a parole, nei fatti tutti che si aspettavano di avere uno SCADA bello e fatto e, soprattutto, gratuito senza fare 10 secondi di lavoro.

Dopo qualche mese mi sono stufato ed il progetto è morto senza che (quasi) nessuno se ne accorgesse.

Comunque nei progetti on line di PLCForum c'è ancora il materiale e le spiegazioni.

differenze tra VB6 e VB.net

quando e' meglio usare C++

cosa fa' borland

VB6 e VB.net son due cose diverse, molto diverse. Io sono del aprere che non conviene usare VB.net, meglio usare C# che è molto simile, ma più performante.

VB6, a mio parere, ha ancora la sua validità, tanto che MS non è ancora riuscita a farlo morire, come era nelle sue intenzioni. E' il linguaggio ideale per interfacciarsi con Acces ed Exel.

C++ è un classico linguaggio visuale, piuttosto pesante da imparare ed usare. Se decidi di usarlo devi lavorarci sempre, se stai un po'm senza usarlo riprendere è faticoso. Non è immediato come VB.

Borland, da alcuni anni, è ondivaga: un po' fa e un po' smette di fare...

Link al commento
Condividi su altri siti

del_user_56966

Per cominciare diciamo che VB6 è l'ambiente di sviluppo RAD come anche dotNET solo che

mentre in dotNET devi conoscere perfettamente le classi (come del resto ancora di più in C++)

VB6 ti sgrava di molti compiti che puoi imparare in un secondo tempo, la Borland è la softwareHouse intendevi

forse l'ambiente Delphi ??

Io sono interessato alla seguente piccola applicazione:

1) click sul bottone "ECCita" dello schermo ed eccito un relè (impulso elettrico che verrà poi elaborato magari con fotoaccoppiatore o altro)

2) Premo un pulsante e compare la scritta "acceso" sullo schermo.

Per partire diciamo che con VB6 si può fare praticamente qualsiasi cosa, ma da un punto si deve pur partire!

Quindi rispondendo alla tua domanda, il primo concetto da affrontare è cosa si vuole comandare anche qui ci sono mille modi diversi di affrontare le cose, quindi ne

porto uno per esempio,

Puoi mettere un semplice pulsante sul form e fare un doppio click su di esso, si aprirà la subroutin di controllo dell'evento Click

Private sub Command1_Click()

end sub

ovvero quell'evento che scaturisce quando

col mouse si preme sul pulsante a run-time, in questa devi scrivere la funzione da eseguire alla pressione del tasto!

Immaginiamo di avere un drive che mi faccia accedere direttamente all'hardware, quindi scriverai

Private sub Command1_Click()

Oggetto1.Send "Attiva"

end sub

per controllare il risultato al contrario si utilizza un timer che crea un loop temporizzato di controllo,

Private sub Timer1_Timer ()

' Loop di processo

End sub

In questo si pone con un tempo determinato 400-600 mS

una rilettura della variabile a video ovvero si pone un oggetto sul form che ci mostra lo stato

della nostra variabile controllata,

Private sub Timer1_Timer ()

' Loop di processo

Oggetto2.Caption = Oggetto1.Read

End sub

Questo è la base per cominciare a comandare e rileggere quanto scritto in un dato apparato esterno sia esso su seriale, Bus, Ethernet ecc..

Quanto sopra vale anche per altri linguaggi come il VBA (Visual basic for application) spesso utilizzato dai costruttori di Scada commerciali per fornire i loro software

di un linguaggio standard, ma molto più direttamente il linguaggio per eccellenza del mondo OFFICE, quale Excel, Access, Power Point ecc..

Come proseguiamo ??

Modificato: da alen
Link al commento
Condividi su altri siti

la Borland è la softwareHouse intendevi forse l'ambiente Delphi ??

si , questo denota la mia confusione

mi sembra di capire che VB6 sia preferito , o no ???

Luca

Link al commento
Condividi su altri siti

del_user_56966

In realtà spesso parlando con chi programma scada sento criticare il linguaggio Visual basic

ma un pò fa ridere il fatto che poi in questi programmi molto lo si fa con degli script che non sono altro che il figliol prodigo

del più completo ambiente VB6, neppure VBA supporta tutte le caratteristiche del VB6 per esempio se vuoi creare un loop tipo Timer

in Excel si deve ricorrere a oggetti di terze parti perchè nell'ambiente Office questi non sono supportati di base...

Link al commento
Condividi su altri siti

ho molti dubbi io in prevalenza utilizzo uno scada commerciale WIZCON O WICC per qualche pannellino

a volte ho la necessita di realizzare degli script (per lo scada) e qui vado nei casini perche mi devo appoggiare a terze persone

secondo voi è meglio cercare di capire il VB (che versione) o C#

Link al commento
Condividi su altri siti

Non sono esperto in questo campo ma, parlando anche con veri guru, mi pare di capire che non ci sia differenza di prestazioni tra VB.net e C#.

Credo che le maggiori performance talvolta attribuite a C# rispetto VB.net siano solo un retaggio del passato, quando si confrontava il C con VB.

Effettivamente, a parte la sintassi, il modo di programmare con i due linguaggi è quasi identico, ed entrambi si basano sullo stesso framework. Logico quindi aspettarsi un compilato molto simile e di pari prestazioni.

Personalmente sono più abituato alla sintassi del C, ma la mia impressione è che sempre più programmi vengano scritti in VB.net.

VB6, per quanto ancora vivo e vegeto, è in fase di discesa. Credo non convenga imparare a programmare in un linguaggio che sta per arrivare alle sue fasi finali.

Se non si tratta di sviluppare applicazioni molto particolari, penso sia meglio non complicarsi la vita con C++, ma scegliere tra VB.net o C#.

Per quanto riguarda lo sviluppo di SCADA ci sono pro e contro tra utilizzo di VB.net o C# e programmi commerciali.

Lasciando da una parte il fattore costi, direi che i pro e i contro sono i seguenti:

Sviluppo in VB.net o C#

PRO:

- quasi nessun limite alla creatività

- elevate possibilità di personalizzazione

CONTRO:

- tempo più lungo per lo sviluppo (il tempo verrà ridotto una volta create le proprie librerie ma, per partire, ce ne vuole davvero tanto)

Sviluppo con sistemi commerciali

PRO:

- sviluppo di parti grafiche molto veloce, con possibilità (quasi sempre) di attingere a librerie di oggetti già pronti per la costruzione di sinottici animati anche complessi

- molti driver di comunicazione già collaudati pronti per l'uso

- gestione semplice di storicizzazioni, dai semplici eventi alla registrazione e visualizzazione grafica di valori analogici

CONTRO:

- personalizzazioni spinte difficili o, talvolta, impossibili

Link al commento
Condividi su altri siti

Ti basta un rapporto di 10000 a 1 ??

si , quell'uno e' batta ???

VB.net o C#.

come lo leggi "C#" ??? e' il C ??

penso sia meglio non complicarsi la vita con C++,

solo piu' complicato ???

Grazie

Luca

Link al commento
Condividi su altri siti

il primo concetto da affrontare è cosa si vuole comandare anche q

Con il pc faccio tante cose...da smanettone e partendo da un esempio. Per dirti le mie capacità:

Un amico mi ha regalato un file VB5 con Inserisci base,inserisci altezza, click e viene fuori l'area.

A quel punto mi sono messo di pazienza , ho costruito la videodata, ho inserito le formule anche complesse ed ho ottenuto un risultato. Il programma è complesso, ma alla fin fine si tratta sempre di formule. Ogni tanto mi bloccavo e dovevo andare a caccia della funzione di mah..seno...coseno...ecc..ec..

Se non è molto complicato cerco qualcosa del genere. E' ovvio che da una porta del pc esce un segnale analaogico che deve essere manipolato. Ed è ovvio che da un'altra porta entra un segnale ( semplice contato? valore 1=1 volt?).

Io intanto vorrei provare con un ingresso ed una uscita. Poi, spero,di passare a più inguressi e più uscite (quale sarà il numero massimo?). E successivamente potrei anche mettere nel listato qualche condizione, le solite cose IF input A=1 and..ecc..

Link al commento
Condividi su altri siti

Ho preparato lo schema allegato per uno studente che ogni tanto mi aiuta.Diviso nelle varie sezioni con il mio aiuto ha fatto gli schemi

a) elettrici a relè

B) con le sole porte logiche

c) con l'uso di integrati complessi. (generico: gli dico sempre di usare oltre alle porte logiche anche IC come NE555,contatori, multiplexer...

d) Il linguaggio laddere sui generis,niente di specifico,

Certo che costruire la videodata con VB5 (niente di difficile) e fare "accendere" alcune spie su pc...beh sarebbe un buon compimento.

Link al commento
Condividi su altri siti

Certo che costruire la videodata con VB5 (niente di difficile) e fare "accendere" alcune spie su pc...beh sarebbe un buon compimento.

Questo è il link alla discussione che richiama gli esempi e lespiegazioni per lo SCADA in VB5. Il tutto è fermo e limitato ad un tre pagine per inserire dati, fare logging di allarmi e visualizzazione dati e allarmi. Trovi il codice in VB5 e le spiegazioni relative.

VB.net e C# sono praticamente la stessa cosa, le differenze sono marginali. C# è la risposta di MS a Java. C# ha poco a che vedere con C++. Intanto è interpretato come VB e VB.net, mentre C++ è, ovviamente, compilato.

A differenza di VBx VB.net e C# vengono inerpretati una sola volta all'atto dell'avvio del programma; fino a che il PC non sarà spento risiederà in memoria l'eseguibile, quindi dopo la prima esecuzione tutte le altre esecuzioni hanno una velocità da compilato (quasi). Mentre di VBx risiede in memoria solo un file intermedio che è meno veloce dell'eseguibile. La spiegazione che ho dato è un poco semplificata e banalizzata, ma serve a rendere bene il concetto.

Se si pensa che l'applicazione dovrà interagire in qualche modo con applicazioni HML e coumque con pagine internet - intranet e preferibile partire subito con VB.net o, meglio, C#.

come lo leggi "C#" ??? e' il C ??

Cosa intendi per leggere? Se intendi l'ambiente di sviluppo è necessario disporre almeno della piattaforma SDK (gratis), meglio sarebbe disporre dell'apposito ambiente che MS mette a disposizione gratuitamente per applicazioni non commerciali. basta andare sul sito MS e sono scaricabili sia VB.net che C# nella loro ultima versione "Express".

Il "C" classico ha poco in comune con il C#, nome a parte. Prima di tutto C# è un linguaggio visuale ad oggetti mentre il "C" è un classico linguaggio strutturato come PL1 e Pascal. Poi "C" è, ovviamente, compilato.

CITAZIONE

solo piu' complicato ???

E' molto più complicato, poi è differente proprio come concezione.

Link al commento
Condividi su altri siti

del_user_56966

Uno alla volta...

Non sono esperto in questo campo ma, parlando anche con veri guru, mi pare di capire che non ci sia differenza di prestazioni tra VB.net e C#.

La spiegazione è molto semplice tutti i linguaggi NET vengono elaborati dal CLR ovvero dal linguaggio comune di Run-Time quindi le differenze sono molto limitate

ma che sappia io salvo pochi eletti saprebbero darci una risposta su quali siano realmente queste!

Lo scopo del Framework è solo quello di permettere l'uso del linguaggio che più ti aggrada per lo sviluppo della tua applicazione, esiste però un problema questo linguaggio intermedio

è facilmente reversibile e da qui deriva l'uso integrato degli offuscatori, ma questo è un problema paritetico anche per il Java!

VB6, per quanto ancora vivo e vegeto, è in fase di discesa. Credo non convenga imparare a programmare in un linguaggio che sta per arrivare alle sue fasi finali.

Il VB6 non è affatto in discesa oggi si contano ancora + sviluppatori VB6, VBA, ScriptBasic, ecc.. che non DotNET, ma questo è solo un particolare....

Un dato molto importante è che VB6 compila direttamente in codice Nativo, quindi in confronto a DotNet è di base migliore!

E' ovvio che da una porta del pc esce un segnale analaogico che deve essere manipolato. Ed è ovvio che da un'altra porta entra un segnale ( semplice contato? valore 1=1 volt?).

Io intanto vorrei provare con un ingresso ed una uscita. Poi, spero,di passare a più inguressi e più uscite (quale sarà il numero massimo?). E successivamente potrei anche mettere nel listato qualche condizione, le solite cose IF input A=1 and..ecc..

Qui c'è qualche idea confusa...? :blink:

Da un computer escono solo condizioni digitali ovvero 0 e 1 per avere dei valori analogici si deve utilizzare appositi convertitori A/D oppure D/A ecc..

Il limite massimo di interfacciamento di un Computer è dettato solo dall'Hardware dalle risorse ma siccome e talmente elevato che lo si considera di base illimitato!

Anche se poi i limiti si trovano facilmente più nei programmi e nei drive mal fatti che nel Computer in se!... :lol:

Modificato: da alen
Link al commento
Condividi su altri siti

del_user_56966
secondo voi è meglio cercare di capire il VB (che versione) o C#

Per facilità d'uso senza ombra di dubbio VB6 se poi ti interessa lavorare su .NET il linguaggio che più ti si aggrada va benissimo!

Link al commento
Condividi su altri siti

l VB6 non è affatto in discesa oggi si contano ancora + sviluppatori VB6, VBA, ScriptBasic, ecc.. che non DotNET, ma questo è solo un particolare....

Un dato molto importante è che VB6 compila direttamente in codice Nativo, quindi in confronto a DotNet è di base migliore!

Il fatto che ad oggi siano ancora più numerosi quelli che sviluppano in VB6 rispetto a .net non significa che VB6 non sia in discesa.

Questo in buona parte è dovuto al fatto che gli sviluppatori sono piuttosto restii a cambiare abitudini. E' naturale che chi ha programmato per anni con un linguaggio non sia entusiasta all'idea di dover cambiare.

Fare un paragone basato esclusivamente sui numeri però è come dire che, quando sono state introdotte le auto catalizzate, era meglio acquistare ancora auto non catalizzate perché il loro numero superava quello delle catalizzate.

Insomma, a me pare che, presto o tardi, il .net la farà da padrone. Per chi inizia ritengo quindi sia conveniente imparare subito con quello che sarà il futuro, e non il passato.

Il fatto poi che VB6 compili direttamente in codice nativo, non è condizione sufficiente per garantirne prestazioni migliori. Sono in molti a sostenere che il .net sia più veloce.

Link al commento
Condividi su altri siti

del_user_56966
Il fatto poi che VB6 compili direttamente in codice nativo, non è condizione sufficiente per garantirne prestazioni migliori. Sono in molti a sostenere che il .net sia più veloce.

Sono motivi equidistanti tra loro, molti di quelli che sviluppavano in VB6 non passeranno mai al DotNET per altri motivi, non è un passaggio indolore, VB6 e semplice da utilizzare

e +/- alla portata di tutti, DotNET l'esatto contrario è un linguaggio ad oggetti che usa pesantemente le classi, cosa che solo una minima parte di chi utilizzava VB6 conosce, è chiaro che

se uno deve fare una scelta per il futuro non può considerare VB6 ma non è scontato che debba usare per forza DotNET, questo non lo limita ne lo espande, oggi

ci sono moltissimi ambienti e linguaggi da utilizzare la meglio sarebbe avere una conoscenza di quelli più noti.

Il fatto della compilazione era solo per chiarire che i programmi fatti con VB6 sono degli eseguibili standard senza nulla da eccepire, e non sono assolutamente interpretati..

questo solo per rigor di cronaca!

Link al commento
Condividi su altri siti

del_user_56966
Questo in buona parte è dovuto al fatto che gli sviluppatori sono piuttosto restii a cambiare abitudini.

Non è solo un problema di abitudini, io spesso sviluppo interfaccie grafiche anche con VB6, ad oggi non ho trovato un motivo "a favore" per mettermi a farlo in DotNET

e ti posso giurare che li ho cercati a fondo... :lol:

Ci sono degli aspetti del framework che conosco per averli testati di persona per cui DotNet in alcune cose è molto peggiore di VB6,

ma quello più eclatante e il fatto che il tuo codice sia reversibile...

è vero che qualcuno afferma che lo si può fare anche in VB6, lo dice ma dubito molto che solo ci si provi!

Quindi se dovessi usare dotNet per applicazioni tipo Gestionali e siti web nulla da dire, ma come protezione del know-hou Industriale lascia del tutto a desiderare...

Comunque per il paragone delle catalittiche ci ai colto in pieno come esiste le varie versioni echo 3, echo 4, ecc.. cosi .NET2003 poi passa a .NET2005 con modifiche consistenti

tanto da non far girare i programmi precedentemente sviluppati, e ora passa alla 2008...

visto che da molto non ho più voglia ne tempo di seguire i giochi commerciali, preferisco passare "ad altro" solo quando ne vedo un motivo e non solo quando lo pensano gli altri...

Quello che in molti non si è capito è il perchè non hanno fatto un VB7 magari multitasking e con le varie potenzialità di VB.NET ma senza stravolgere tutto, sono migliaia gli sviluppatori che avrebbero

acquistato l'ambiente di sviluppo nuovamente e non sarebbero passati come accade ora ad altri linguaggi, ma per far questo ci sarebbero voluti dei Manager un pò più vispi.... :lol:

Link al commento
Condividi su altri siti

Premesso che io non ho nessuna intenzione di sostenere un linguaggio piuttosto di un altro, e quindi rispondo solo per chiarire meglio il mio pensiero.

Hai citato una mia frase in modo incompleto. Questo cambia profondamente il significato di quello che volevo dire.

La frase completa è:

Questo in buona parte è dovuto al fatto che gli sviluppatori sono piuttosto restii a cambiare abitudini. E' naturale che chi ha programmato per anni con un linguaggio non sia entusiasta all'idea di dover cambiare.

In quella seconda parte che tu non hai citato ci sta sia il fatto che è più che logico che si preferisca programmare con il linguaggio che si conosce meglio, sia il fatto di continuare ad utilizzare tutti i lavori già sviluppati senza perdere giorni, settimane o mesi per la loro conversione.

Non mi permetterei mai neanche lontanamente di giudicare questo comportamento in modo accusativo. La mia voleva essere una semplice constatazione.

Sul fatto della reversibilità, invece, magari tutti i programmi fossero reversibili!

Pensa che io non ho mai protetto nessuno dei miei software. Pensa che ai miei clienti consegno sempre sorgenti e documentazione.

Questo però è già un altro discorso.

Link al commento
Condividi su altri siti

<_< discussione molto interessante

come lo leggi "C#" ??? e' il C ??

Cosa intendi per leggere?

intendevo nel senso piu' stupiso , c'e' il C , il C plus plus , ma quello come lo pronunci C cancelletto ??

DotNET e VBnet sono equivalenti ???

visual studio cose' ???

Luca

Link al commento
Condividi su altri siti

intendevo nel senso piu' stupiso , c'e' il C , il C plus plus , ma quello come lo pronunci C cancelletto ??

Si pronunca C sharp :) .

Caspita! L'argomeno di questa discussione è molto attuale visto il numero di interventi :blink: !

Se posso dare il mio modesto contributo posso dire che è ormai da 1 anno che ho fatto il passaggio da VB6 all'ambiente .NET e non ne sono affatto pentito.

Non c'è paragone tra i due, solo dopo aver appreso NET (VB o C# a seconda dei gusti, tanto il linguaggio intermedio prodotto è molto simile e le prestazioni praticamente uguali), mi sono reso conto delle limitazioni imposte da VB6.

Alcuni esempi:

Linguaggio totalmente orientato ad oggetti, con tutti i vantaggi del caso (prezzo da pagare il cambio di mentalità nello strutturare il software).

Possibilità di gestire thread in modo molto semplice ed intuitivo.

Integrazione completa con ASP.NET (molto importante se si vogliono fare applicazioni WEB o intranet).

Miriadi di classi per risolvere ogni situazione (occorre capire come funzionano, ma sono in genere ben fatte).

Ambiente di sviluppo e debug decisamente migliorati.

Ecc. ecc.

Due righe per quanto riguarda le prestazioni:

Con i PC moderni non c'è problema...

Sto lavorando su un progetto che legge molti dati da un controllo numerico (via TCP-IP), tra i quali visualizzazione quote ecc. e, utilizzando il multi-thread, devo dire che si riescono ( ad occhio) ad avere prestazioni decisamente interessanti.

Ciao

Link al commento
Condividi su altri siti

Per prima cosa vi ringrazio tutti per le risposte ottenute

Comunque leggendo tutte le vostre risposte a posto di chiarirmi le idee mi ritrovo più incasinato di prima e non so decidermi su che software utilizzare

Vi premetto il mio utilizzo sarebbe solo ed esclusivamente quello di creare qualche script da integrare nello scada

Datemi un vostro parere sintetico

Grazie a tutti

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