Vai al contenuto
PLC Forum


Imparare Ad Usare Visual Basic


puntalino

Messaggi consigliati

scusate se volete litigare OK

Ma quando mai! Solo normale dialettica....

Anche per quanto riguarda gli strumenti di lavoro ci sono simpatie e antipatie :blink:

Per ritornare all'origine del post:

Se vuoi solo essere in grado di implementare prestazioni al tuo SCADA e il metodo supportato dallo SCADA stesso è VB Script, devi per forza saperne di più sull'argomento specifico.

Il vantaggio è che la sintassi del linguaggio è la stessa di VB6, quindi, imparando VB6, prendi 2 piccioni con una fava....

Io ho avuto il problema contrario, cioè ho dovuto sviluppare alcuni script per un'applicazione particolare dopo alcuni anni che lavoravo in VB6, e ho un pò tribolato perchè mi sono scontrato con alcune limitazioni di VBScript alle quali non ero abituato in VB6 (certe cose che per me erano date per scontate si rifiutavano di funzionare), e, dato che gli strumenti di debug degli script sono abbastanza inesistenti........

Se invece hai la necessità di addentrarti nel mondo della programmazione "seria" , cosa che ti consiglio e che potrà solo darti soddisfazioni professionali, ti dico che l'ambiente .NET è sicuramente una scelta da prendere in considerazione.

Naturalmente la curva di apprendimento non è veloce (ma anche VB6, se parti da zero, non è banale), ma basta solo tempo e buona volontà (o magari un'oocasione lavorativa che ti costringa a sbatterci la testa ;) ).

Per alen

Come sempre accade al principiante a voluto che mi imbattessi in tre chiamate all'assistenza MS e guarda caso tutte e tre

sono risultati Bug del sistema .NET

Evidentemente sei molto sfortunato!

Comunque qualche baco (come ci ha da anni abituato il buon vecchio Bill) c'è ancora anche in VB6. Non so che età hai, ma hai mai provato a lavorare con la versione 3 di VB?

Ciao

Link al commento
Condividi su altri siti


  • Risposte 63
  • Created
  • Ultima risposta

Top Posters In This Topic

  • del_user_56966

    24

  • lucios

    9

  • Livio Orsini

    8

  • puntalino

    6

scusate se volete litigare OK io ho aperto un post in cui chiedevo informazioni per imparare

Chiedo scusa a puntalino se ho deviato un po' l'argomento del post , forse varrebbe la pena dividerlo in un'altro post con il titolo adatto

la discussione mi sembrava molto interessante , non mi sembra neanche che si litighi ,

in terza persona , leggere esperti che hanno opinioni diverse , mi sembra molto costruttivo

un grazie a Lucio , Alen e Livio per la buona infarinata che ho ricevuto.

Luca

Link al commento
Condividi su altri siti

del_user_56966
Il vantaggio è che la sintassi del linguaggio è la stessa di VB6, quindi, imparando VB6, prendi 2 piccioni con una fava....

Io direi almeno tre, VB6, VB Script, VBA e il linguaggio "originale" per poi saltare a Real Basic e altri ancora...

Naturalmente la curva di apprendimento non è veloce (ma anche VB6, se parti da zero, non è banale)

Qui penso che non sia cosi, VB6 permette di sviluppare immediatamente i primi programmi ad oggetti anche ai principianti, per .NET non direi proprio!

Evidentemente sei molto sfortunato!

Non direi, comunque è stato meglio sbatterci al testa subito e capire alcune cose, almeno ora so come comportarmi.

Modificato: da alen
Link al commento
Condividi su altri siti

del_user_56966
leggere esperti che hanno opinioni diverse

Non mi ritengo esperto, diciamo solo che salvo prova contraria mi affido alla documentazione ufficiale

del prodotto (in questo caso MSDN è la bibbia dello sviluppatore sui sistemi Microsoft) mentre il resto rimangono

opinioni personali, come dicevo fino a prova contraria, ovvero se faccio un affermazione prima la devo aver testata e

poi mi ritengo in grado di portare una valutazione diversa da quella ufficiale.

Ricordati per un famoso proverbio l'esperto non è altro che una persona che a sbagliato molto e che a fatto tesoro dei suoi errori...

In questo caso preferisco non essere esperto, ma tenermi le mie soddisfazioni al riguardo!

Puntalino dove sei finito ??, rispondi alla domanda da quale linguaggio vuoi iniziare o meglio su quale argomento specifico,

Fare grafica tipo scada, comandare gli apparati in campo ecc...

Link al commento
Condividi su altri siti

eggere esperti che hanno opinioni diverse

"Esperto" è una parola grossa! :)

Diciamo che ho fatto "di necessità virtù", nel senso che qualche anno fa un'occasione di lavoro "ghiotta" mi ha praticamente costretto ad iniziare a lavorare in VB6, poi, recentemente, il passaggio a .NET è stato quasi naturale. Io prima sviluppavo solo PLC per macchine a controllo numerico e non ho una preparazione "informatica" canonica (lo si capisce anche da alcune "bestialità" che di tanto in tanto vado dicendo!).

Quindi sono autodidatta, ma ho scoperto che programmare ad "alto livello :lol: " con gli strumenti odierni non è più una cosa solo per guru, dottori o fenomeni.

Basta solo tempo, volontà, documentazione (in rete c'è praticamente tutto, anche se le prime volte ti sembra che nessun'altro abbia avuto le tue problematiche), e magari un buon forum dove qualche amico ti da qualche dritta.

Ciao

Link al commento
Condividi su altri siti

Alen tu puoi rimanere nelle tue convinzioni, se per VBx e VB.net sono linguaggi compilati, accomodati. Io rimango ancorato alle vecchie, e sempre valide, definizioni di cosa sia un linguaggio compilato e di cosa non lo è.

La scelta di MS fa parte della sua strategia di legare sempre più linguaggio di sviluppo, quindi anche le applicazioni, ai suoi SO.

In quanto a come VBx e VB.net linkino le loro librerie nella fase di runnign basterebbe che tu facessi un poco di reverse engineering e lo toccheresti con mano, al di là di tutti i sofismi ed i distinguo.

Con questo chiudo una diatriba che sta diventando stucchevole e non porta da nessuna parte; l'unica speranza è che chi ha letto la discussione, se ne ha voglia, possa farsi un'opinione corretta andando a ricercare le informazioni e non accettando una semplice affermazione.

Per puntalino

Ti ho già risposto a tempo debito relativamente agli accessi per possessori di forum card.

La scelta di fare o non fare forum card è tua.

Mentre è un diritto di PLCForum accordare previlegi ai possessori della card.

Poi, per favore, lascia perdere i pianti: "sono povero...,.. sono italiano non rumeno (ma che centra?)".

Il fatto che tu voglia imparare non obbliga gli altri ad insegnare alle tue condizioni.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

del_user_56966
Alen tu puoi rimanere nelle tue convinzioni, se per VBx e VB.net sono linguaggi compilati, accomodati. Io rimango ancorato alle vecchie, e sempre valide, definizioni di cosa sia un linguaggio compilato e di cosa non lo è.

Concordo pienamente, come è giusto che sia, ovvero quando uno fa quel che sente, sta bene nel cuor e nella mente! :)

Ma Puntalino è sparito di nuovo... stiamo ancora divagando, ma se non ci dai un input su cosa dibattere che si fa?? si comincia a su un linguaggio a caso?

Qualcuno ha la documentazione del linguaggio Script di questi WIZCON O WICC che usa Puntalino ??

A proposito nei miei programmi la Finestra di avviso "Passa a...." di Windows non appare più!, ma se usi ancora COM, anche solo come OPC in .NET penso che te la puoi ancora

tranquillamente trovare davanti...

Modificato: da alen
Link al commento
Condividi su altri siti

io sarei interessato all'uso di vba in particolare vorrei gestire una piccola comunicazione seriale utilizzando l'oggetto IOPortInterface di movicon, chi è disposto ad aiutarmi...???

Link al commento
Condividi su altri siti

Se in VB6 la compilazione in "codice nativo" non genera una versione compilata, allora il P-code cosa genera ?

JumpMan mi era sfuggita la tua domanda, quindi ti rispondo in ritardo.

Se riesci a "mettere le mani" su di una versione professional o enterprise di VBx hai la possibilità di compilare, tra l'altro, con l'opzione "codice nativo", nelle altre versioni inferiori puoi usare solo "pcode".

Ora basta andare sull'help on line di VB e digitare la parola chiave "pcode" e si hanno tutte le informazioni ufficiali, sufficienti e necessarie per capire come lavora in pcode ed in modo nativo.

Non avendo VB si questo PC (qui ho solo .net) non posso farti il copia - incolla, quindi dovrai fidarti del mio riassunto :)

Se torni indietro di qualche post trovi che descrivo come lavoravano i vecchi interpreti tipo GWBasic, cioè interpretavano riga per riga durante l'esecuzione del programma, procedura piuttosto lenta, specialmente per algoritmi ricorsivi e di sorting. Tanto che MS nel 1987 lanciò la prima versione di Basic compilato, che usai per costruire il mio primo SCADA (esagerando con i nomi :) ). Qualche anno dopo, in previsione dell'indroduzione dei linguaggi visuali, MS iniziò con VB (sotto DOS).

La metodologia scelta era una via di mezzo tra il compilato e l'interpretato. Scrivi il sorgente, lo compili, se tutto è OK il compilatore genera un file intermedio tra il sorgente ed il codice macchina, detto pcode. Per funzionare il programma necessiterà poi della libreria VBRunxx. Questa libreria fa da ponte tra il file pcode e l'eseguibile vero e prorio, le operazioni si svolgono running timi. E' più veloce del semplice interpre, ma meno performante di un vero compilato.

Con l'introduduzione di WIN95 e successivi e con l'introduzione delle versioni professional (credo dal VB4 in poi) si offrì l'opzione compilazione in codice nativo. In altri termini il file sorgente vien tradotto in istruzioni macchina del processore target (infatti è possibile selezionare anche alcune opzioni relative ai processori).

Come dice MS anche nell'help è comunque indispensabile l'uso delle DLL. Cosa sono le DLL e come lavorano lo scrivo qualche post addietro.

Questa è la differenza fondamentale tra un compilatore "C" standard, per esempio, e VBx. Tutti i prodotti dei compilatori rendono un codice oggetto del processore target (o codice nativo), però non è sufficiente per poter essere eseguito. Per essere eseguito sono necessari: completare il codice con il codice delle funzioni di livreria e assegnare a tutto il programma i veri indirizzi di memoria.

Se non fossero indispensabili le DLL il passo successivo prevederebbe l'unione (linking) tra i segmenti di codice nativo dell'applicazione ed i segmenti del codice nativo delle funzioni di libreria, poi a questo nuovo file si assegnano gli indirizzi fisici di memoria e si ha, finalmente, il file eseguibile completo.

Nel caso delle DLL questo non è possibile, perchè queste librerie sono ad allocazione dinamica, cioè risiedono nel blocco dello SO e vengono allocate e richiamate quando un'applicazione le richiede. Ovviamente questa operazione deve essere fatta running time, perchè se l'applicazione non "gira" non richiama funzioni di DLL e queste non vengono allocate.

Perchè questo uso?

Per vari motivi. Il primo e principale è la politica di MS di cercare di costringere l'utilizzatore verso i suoi prodotti. Dai e dai alla fine ha esagerato e si beccata le note sanzioni dell'antitrust USA e CE.

Poi ci sono alcuni vantaggi. Il principale è la compattezza. Se uso librerie statiche, ogni applicazione conterrà tutti i segmenti relativi alle funzioni di libreria. Se uso librerie dinamiche non ho bisogno: queste funzioni sono condivise e vi possono accedere tutte le applicazioni attive al momento.

Ci sono anche svantaggi. Il primo è che questa operazione deve essere fatta running time. Poi c'è il fatto trascurabile che l'applicazione non è completa. Non ti è mai capitato di avere un messaggio del tipo: "l'applicazione richiede ZXY.dll" ?; siccome o non la trova, o il codice è corrotto, o la versione non è corretta la tua applicazione si rifiuta di girare. Questo con librerie statiche non può accadere.

Poi c'è il problema tipico di WIN, la scarsa affidabilità. Dato che più applicazioni accedono contemporaneamente alla stessa funzione è necessario un controllo molto accurato sulla ripartizione e protezione dei dati delle varie applicazioni. In win questa funzione è, ad essere buoni, un po' carente. Da qui schermate blù, messaggi del tipo "lapplicazione non risponde", etc.

Anche altri usano la tecnica delle librerie dinamiche, Linux ad esempio ne fa uso, ma essendo origine UNIX ne mantiene le buone abitudini risultando molto più affidabile.

Mi sono dilungato molto di più sul sistema a "codice nativo", rispetto a "pcode" perchè ritengo che capendo bene come lavora la compilazione per nativo si capisca la differenza con "pcode". Il primo ha tutto pronto tranne l'allocazione delle funzioni DLL, mentre pcode è solo una pre elaborazione che andrà interpretata running time, ovviamente è più lenta a girare.

Spero di aver soddisfatto al tua curiosità

Link al commento
Condividi su altri siti

Grazie, ora è chiaro.

Nel C invece se si fa uso di una libreria questa viene compilata e inserita insieme al resto delle istruzioni nell'eseguibile e quindi l'exe risulta del tutto indipendente ?

Link al commento
Condividi su altri siti

scusate ma ero a potenza oggi sono rientrato sono circa 920 km in furgone poi mancava il giro d'italia

domani ho un macello di arretrati sabato e domenica la dedico alla moglie e alla montagna ma da lunedì sera ritorno

premessa Livio sei una persona che stimo molto

ma a volte abbiamo visioni molto diverse

Livio allora non ti lamentare se i progetti sul forum si bloccano dopo 2 post

mi ripeto sarebbe più giusto dire signori vi interessa PLC Forum Si ok il tutto ha un costo aiutateci a mantenerlo attivo a quel punto i tesserati di PLC Forum la pagherebbero ugualmente la tessera

pure io pagherei perche mi interessa molto che PLC Forum esista

ma non mi piacciono i ricatti se paghi vedi altrimenti no

perché il nuovo progetto della costruzione del plc non lo mettete in una area riservata

tratto dalle FAQ

Premessa

PLC Forum non ha fini di lucro

A questo punto mi sorgono dubbi

Link al commento
Condividi su altri siti

Puntalino, anche se c'è un angolino che non è gratis non vedo dove sia il problema, il 95% del forum è di libera consultazione per tutti, non avere scopi di lucro non significa fare beneficenza o addirittura rimetterci, credo che il forum abbia il suo costo, e poi non credo ti abbiano ricattato.

Nel web ci sono centinaia di siti dedicati al VB (non so se tutti siano gratuiti), nelle edicole ci sono il libri di Balena (anche questi non sono gratis), se vai a fare un corso sicuramente non è gratuito, anzi...

Ma perchè la gente vuole sempre tutto gratis???

Specialmente quando si tratta di un lavoro intellettuale (software in primis) si ha la tendenza a sottovalutarlo, e questo mi fa veramente incaxxare.

Opinione personale senza rancore, ciao

Modificato: da JumpMan
Link al commento
Condividi su altri siti

del_user_56966
Il primo ha tutto pronto tranne l'allocazione delle funzioni DLL, mentre pcode è solo una pre elaborazione che andrà interpretata running time, ovviamente è più lenta a girare.

Avevo detto qualcosa di diverso da questo...!!??.. :blink:

Link al commento
Condividi su altri siti

Avevo detto qualcosa di diverso da questo...!!??..

Te l'ho gia detto: a volte ti sfugge qualche cosa, forse leggi troppo velocemente. :)

La nostra differenza di vedute su linguaggi compilati ed interpretati non verte su questo. Per me un linguaggio si intende compilato se, e solo se, l'esecuzione dell'eseguibile è immediata e non ha bisogno di altre elaborazioni.

Che la cosidetta compilazione in linguaggio nativo non fosse più veloce di quella in pcode non l'ho mai sostenuto, ci mancherebbe altro :P

Nel C invece se...

A scanso di equivoci, quando parlo di "C", intendo ANSI "C".

La risposta lla tua domanda è si. Non solo per "C", ma anche tutti i linguaggi tradizionali ad alto livello: PL1, PL11, PLM51/80/86 (magnifico linguaggio Intel per i micro Intel), Pascal, Fortran, Algol, etc.

20 e più anni fa scrivevo in Pascal e compilavo sul mio PC, erano necessarie 2 passate con cambio di floppy di compilazione (gli HD allora erano cose da ...). Alla fine il programma girava sul mio PC con tastiera e vide come interfaccia HMI. Poi riversavo il soregente come txt nel PDP11 in azienda ricompilavo e lanciavo l'.exe risultante e tutto funzionava nell'identico modo. Eran cambiati i riferimenti di libreria, ma ci aveva pensato il compilatore del PDP11 a fare il alvoro sporco.

Puntalino

Mi dispiace che tu non riesca ad afferrare il concetto della forum card e parli di ricatto.

Ma che ricatto sarebbe?

Tanto per fare un paragone. Se acquisti un volo low cost non puoi accusare la compagnia di ricatto pechè non ti danno il trattamento di Business Class!

Poi devo concordare con JumpMan sulle pretese gratis, specie per il software.

PLCForum ha avuto tante iniziative di formazione completamente gratuite Bastava, per esempio, partecipare ai work shop del SAVE dell'anno scorso (i docenti però sono stati pagati da PLCForum), oppure basta andare nella sezione didattica dove puoi scaricare parecchi tutorials completamente liberi e gratuiti, e chi li ha scritti ci ha lavorato parecchio per realizzarli (lo posso dire per esperienza diretta percè un paio li ho scritti anch'io). Nonostante l'impegno gli autori li hanno messi a disposizione di tutti senza pretendere neanche un grazie.

E per te qusto è un comportamento ricattatorio? Oppure ha un fine di lucro?

Forse sarebbe ora di cominciare a ripensare al rapporto diritti-doveri :(

Scusate lo sfogo, ma queste sono cose che mi irritano parecchio!

Modificato: da Livio Orsini
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...