Obyrt Inserito: 22 agosto 2016 Segnala Inserito: 22 agosto 2016 Salve a tutti, sto utilizzando Visual Studio 2015 con Drive di comunicazione x PLC Micro850 AB. Funziona con C# ma vorrei usare un progetto di VB per poter utilizzare anche la logica vero/falso, qualcuno puo' indicarmi il codice per la comunicazione ethernet? Grazie
Livio Orsini Inserita: 22 agosto 2016 Segnala Inserita: 22 agosto 2016 Quote vorrei usare un progetto di VB Sin tratta di VB o VB.NET? Con VB.NET non ci dovrebbero essere grossi problemi a ricompilare il sorgente C#, bastano pochi aggiustamenti.
Obyrt Inserita: 22 agosto 2016 Autore Segnala Inserita: 22 agosto 2016 Applicazione Windows Form Visual Basic
walterword Inserita: 22 agosto 2016 Segnala Inserita: 22 agosto 2016 VB.NET con VC# non c'entrano proprio niente e ci vogliono di piu di "pochi aggiustamenti" ....partendo dalla sintassi , ai casting e a tutto il resto
Livio Orsini Inserita: 22 agosto 2016 Segnala Inserita: 22 agosto 2016 Valter, non ci sei proprio: VB.NET e C# sono talmente affini che i testi di MS (che sono vangelo essendo MS l'autore dei 2 linguaggi) ti fanno sempre gli esempi nei 2 linguaggi, proprio per mostrarne le affinità. E' VB che ha poco a che spartire con C# ed anche con VB.NET
walterword Inserita: 22 agosto 2016 Segnala Inserita: 22 agosto 2016 Livio , lascia fare non offenderti ma con questi oggetti ci gioco da un bel pò e se mi permetto di dire una cosa lasciamela dire e fidati che non la dico cosi tanto per dire a caso. Ti manderò un bel libro sul core della .NET e capirai tante cose, che C# è il linguaggio principe e che non sono la stessa cosa , VB.NET rimane ancora sopra per l'interpretazione.Altro linguaggio degno di nota al livello di VB.NET e forse piu è Python I linguaggi C# e java hanno degli affini per la sintassi e per molte cose ma anche li ci sono diversità fondamentali. Se devi fare un'applicazione con finestrelle , dataset , DB etc è veloce ed utile usare Vb.net magari ma per tutto il resto non sono la stessa cosa Per capirlo devi sbatterci la testa in lavori di un certo livello e di una certa difficoltà. Con C# puoi implementare molte cose da molti anni come XNA , reflection , reverse engineering etc .VB.net non le supporta Non si tratta solo di compilare in IL per la CLR , ci sono altri limiti in VB.net che ovviamente se programmi ad un certo livello applicativo di larga scala non puoi capire ne tantomeno prevedere. Questo te lo dico da anni , se poi vuoi credere in quello che dici libero di farlo ,a me non cambia niente . I libri che citi tu li ho tutti fin dal 2002 quando uscii ed acquistai la prima .NET VB 6 non c'entra nulla con C# e VB.NET è ovvio . Il framework .NET è stato concepito dopo ricopiando la JVM , infatti molti progettisti sono gli stessi che hanno scritto il delphi , java e c# . Tra C# e VB.NET a parte le librerie comuni del framework ......c'e' un abisso . Chiedi il parere a qualche informatico esperto di livello 2 anche in ambiente industriale e ti dirà le stesse cose . Il codice non è per nulla scambiabile , la sintassi è totalmente diversa , VB.net non fa i casting perchè se ne occupa l'interprete per esempio e molte altre cose. Quando lavori a livelli bassi di framework si lavora con C# non con VB.net he puo comunque essere usato perche piu veloce e meno ostico di un linguaggio fortemente tipizzato come c# o java .A sto punto rpeferisco python a vb e a vb.net . I libri avanzati con un certo senso di impegno trattano solo c# o vb.net , quelli di partenza giusto per farti imparare gli assembly piu importanti li fanno in doppio linguaggio per gestire tabelle, finestre etc . Anni fa ho implementato un engine che mi eseguiva files di python al volo da una app che avevo scritto in c# , questo per impedire di dover fare sempre modifiche e ricompilare e lasciare ai programmatori interni dell'azienda la possibilità di modificare gli interessi aziendali come etichette, bolle e di conseguenze link a sql .Questo engine con VB:net non lo potevi fare perche non supportava molti oggetti del .NET , cosi come il framework per progettare e scrivere videogiochi anche in 3D , VB:net non lo supportava e no nlo supporta tuttora. ci sono dei motivi di fondo che vanno studiati e testati in un certo modo , poi capirai perche ti dico sempre le stesse cose Diciamo che a partire dal C , che ora è anche ad oggetti e mi fa schifo , al C++ dove iniziò il paradigma di linguaggio ad oggetti e/o funzionale . Dal il C++ , per sintassi e potenzialità di ereditarietà, polimorfismo , incapsulamento , interfacce (classi virtuali ) etc etc sono nati java e C# con il controllo del framework che tramite il garbage collector si occupa di liberare la memoria , infatti il concetto di distruttore di classe non esiste ma esiste solo il costruttore , e comunque puoi implementare anche i distruttore ed occuparti in prima persona in quanto GC è asincrono e non sempre fa quello che deve bene e velocemente. Al VB.NET come sintassi il quale deriva dal VB come sintassi hanno voluto creare istruzioni built.in per farlo diventare ad oggetti quando non lo è nativamente per cui ti lascio immaginare che razza di porcheria possa essere . Se ti interessa passo da casa tua e ti spiego un po di cose
Obyrt Inserita: 23 agosto 2016 Autore Segnala Inserita: 23 agosto 2016 Molto bene....allora viste le considerazioni , provo a modificare la richiesta: utilizzo C# ,leggo e scrivo su PLC AB micro850 ma in realta' C# legge gli indirizzi come stringa . Ora io ho la necessita' di poter utilizzare anche logica booleana, es: quando dopo aver attivato un bit a tempo tramite pulsante del Form, alla fine del conteggio,che e' nel plc, il pulsante deve ritornare nella modalita' non attivo.
walterword Inserita: 23 agosto 2016 Segnala Inserita: 23 agosto 2016 che cosa usi per scrivere sul plc ? Un opc server ? Una libreria nativa ? Cosa? Devi creare almeno due aree di memoria nel plc , una che scrive e l'altra che legge. Scrivi un bit che attiva il timer nel plc e poi leggi lo stato dello stesso per fare quello che vuoi nel pc Ovviamente un'applicazione con un minimo di fondamenta deve implementare diversi threads, mutex , deve essere ben sincronizzata Dopodichè per poter estendere le funzionalità devi saper implmentare qualche design pattern.Per evitare di creare oggetti che necessitano di altri oggetti all'interno degli stessi , puoi creare una classe statica come globale all'interno della quale dichiarare gli oggetti che ti servono con relativi metodi e poi tramite delegati ed eventi li utilizzi dove ti servono La logica booleana con C# o VB.net non è un problema , esistono vari tipi di dati , metodi etc .Puoi anche crearti i tuoi tipi di dati con classi che contengono metodi specifici che puoi riutilizzare ovunque e sempre , che puoi specializzare , estendere etc
Obyrt Inserita: 23 agosto 2016 Autore Segnala Inserita: 23 agosto 2016 uso i drive di comunicazione e funzionano,questo e' il sistema namespace WindowsFormsApplication2 { public partial class MANUALE : Form { EthernetIPforMicro800Com MyAB = new EthernetIPforMicro800Com(); public MANUALE() { InitializeComponent(); MyAB.IPAddress = "192.168.1.11"; } private void button1_Click(object sender, EventArgs e) { // MyAB.Write("T_TEMPO", input.Text); MyAB.Write("times_luce", set_t_luce.Text); // string Rev"80" = input.Text; //string REV_PROJECT = MyAB.Read("REV_PROJECT"); // textBox2.Text = REV_PROJECT; // MyAB.Write("REAL_APP_Copy_1", input.Text); // textBox1.Text = MyAB.Read("REAL_APP_Copy_1"); } // conversione risultato stringa in bool ///---------------------------------------------------------------/// private void timer1_Tick(object sender, EventArgs e) { textBox1.Text = MyAB.Read("_IO_EM_DO_00"); //LETTURA TEMPERATURA C.Text = MyAB.Read("_IO_X2_AI_00"); //LETTURA PRESSIONE BAR.Text = MyAB.Read("_IO_X2_AI_01"); //LETTURA PRESSIONE CALDAIA BAR_C.Text = MyAB.Read("_IO_X2_AI_02"); //LETTURA PESATURA KG.Text = MyAB.Read("_IO_X2_AI_03"); } il mio problema attualmente e' una volta letto lo stato " MyAB.Read("_IO_EM_DO_00")", mettere a zero lo stato del pulsante nel form che ha attivato la funzione private void P_Luce1_CheckedChanged_1(object sender, EventArgs e) { MyAB.Write("_IO_EM_DO_00", 1); }
Livio Orsini Inserita: 23 agosto 2016 Segnala Inserita: 23 agosto 2016 Quote Livio , lascia fare non offenderti ma con questi oggetti ci gioco da un bel pò e se mi permetto di dire una cosa lasciamela dire e fidati che non la dico cosi tanto per dire a caso. Walter lascia stare che questi linguaggi li uso dallo loro nascita, ho ancora tutti i CD della prima versione della suite MS (anno 2000). Quindi se ti ho scritto quello che ho scritto l'ho fatto a ragion veduta. Addurittura nella prina versione della visual suite era presente, nel wizard di creazione del progetto, anche il tool di conversione automatica da VB.NET a C#. Poi dipende sempre da come usi i vari oggetti e se miri alla massima compatibilità o alla massima efficienza. Quote Il framework .NET è stato concepito dopo ricopiando la JVM , infatti molti progettisti sono gli stessi che hanno scritto il delphi , java e c# Che ci siano gli stessi progettisti almeno in parte è abbastanza probabile, come è vero che C# è stato il tentativo di MS di prendersi una fetta del mercato di java. Comunque non devo chiedere a nessuno basta consultare i manuali di MS che posseggo, assieme ai testi Mondadori che hanno l'imprimatur ufficiale di MS. Che poi tu ci creda o meno a me non è che mi procuri piacere o dispiacere, oramai sono abbondantemente al di sopra di certe cosucce. Ora però chiudo l'OT altrimenti dovrei autosanzionarmi.
walterword Inserita: 23 agosto 2016 Segnala Inserita: 23 agosto 2016 pensala come vuoi . A me non cambia nulla
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