Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Oggetti Com In Ambito .net - Supervisione HOME PLC


Messaggi consigliati

Inserito:

Salve,

ho un problema relativo alla gestione degli oggetti COM di ABS-Xcomm nella creazione di un programma di supervisione.

Utilizzo C# in Visual Studio 2008, ma ho fatto prove anche in Visual Basic con lo stesso esito (su Windows 7).

In particolare l'accesso alle funzionalità offerte dalla classe Xcomm++ funzionano senza problemi., mentre importando e configurando i componenti COM forniti questi non funzionano correttamente.

Ad esempio inserendo un controllo per il termoregolatore e configurando i parametri correttamente in fase di editing mi compare il valore corretto di temperatura, mentre in fase di Release/Debug questo valore non compare (rimangono i 3 trattini bianchi) e andando a cliccare sull'oggetto non compare la pagina di configurazione ma compare un warning relativo ad un fantomatico "Errore di runtime 0".

Per farvi un altro esempio ho inserito un Programmatore Orario e con un pulsante setto WeekTimer1.TimerVisible=true, ma non compare la finestra di programmazione oraria!!!

Non vorrei fosse un problema di configurazione del PC, in quanto ho a disposizione un prototipo del software di supervisione fatto in VB6 che funziona correttamente, ma andando ad importare i sorgenti in VB2008 e compilando gli oggetti smettono di funzionare nella maniera suddetta (più altri problemi relativi all'importazione del progetto risolti in maniera autonoma)

Qualche suggerimento? Grazie!


del_user_56966
Inserita:
in quanto ho a disposizione un prototipo del software di supervisione fatto in VB6 che funziona correttamente,

Niente di tutto ciò,

più semplicemente gli oggetti lavorano in modo diverso tra ambiente e ambiente, non tutti gli oggetti grafici di VB6

possono lavorare in .NET, per esempio la proprietà Refresch va eseguita direttamente in quanto l'ambiente non permette all'oggetto sincronizzatore di essere eseguito...

L'uso di XComm su .NET è consigliato per gli oggetti Comm ++...

e XComm Building (di questo esiste anche una versione specifica per .NET si trova nella cartella di Windows\System32\XC.NET Interop...)

tramite questi oggetti è possibile utilizzare tutte le funzioni del sistema che usano anche gli oggetti grafici di VB6...

se ti servono info più mirate su XComm usato su .NET prova su questo forum LINK

Inserita:

Dunque per far funzionare gli oggetti grafici forniti da ABS-Xcomm devo effettuare il refresh manuale del controllo? Ho provato ma nulla da fare....

Ciò che non capisco è il perchè in fase di editing i controlli funzionino, mentre quando vado ad eseguire no...

Con la classe Xcomm non ho problemi funziona perfettamente e riesco ad accedere normalmente a registri e uscite, vorrei solo capire se è possibile usare i controlli grafici già realizzati anche in .NET, in quanto il doverli ricreare a mano sarebbe troppo oneroso.

Fra l'altro non so nemmeno se sia possibile installare l'IDE per VB6 in Seven, in quanto sono riuscito a trovare solamente la versione 2008 Express Edition che si basa già su .NET, qualcuno ne sa qualcosa a riguardo?

del_user_56966
Inserita:
Con la classe Xcomm non ho problemi funziona perfettamente e riesco ad accedere normalmente a registri e uscite, vorrei solo capire se è possibile usare i controlli grafici già realizzati anche in .NET, in quanto il doverli ricreare a mano sarebbe troppo oneroso.

Conviene valutare oggetto per oggetto visto che sono differenti tra loro...

Fra l'altro non so nemmeno se sia possibile installare l'IDE per VB6 in Seven, in quanto sono riuscito a trovare solamente la versione 2008 Express Edition che si basa già su .NET, qualcuno ne sa qualcosa a riguardo?

VB6 si può utilizzare anche con WIN7 a patto che lanci l'ambiente direttamente dall'eseguibile col tasto destro "Esegui come amministratore!... :thumb_yello:

Inserita:

Grazie, informandomi ho visto anche io che è possibile fare andare VB6 su Seven anche se preferirei utilizzare C# dovendomi interfacciare con database e altre librerie, oltre a non conoscere approfonditamente VB.

Su dotNetwork.it mi è stato riferito che il problema dovrebbe essere relativo alla versione di ABS-Xcomm, in qaunto è un bug presente fino alla versione 6.54.14, mentre io dispongo solamente della 6.54.12 (consegnatami venerdì scorso al corso).

Gli oggetti necessari sarebbero principalmente quelli relativi alla termoregolazione e alla programmazione oraria, mentre per il resto posso fare tranquillamente attraverso l'accesso alla classe Xcomm.

Inserita: (modificato)

Nulla da fare il problema persiste anche nella nuova versione (6.54.15), anche se sono riuscito a smuovere le acque.

In particolare grazie al tuo suggerimento riesco a sincronizzare l'oggetto grafico del termoregolatore attraverso l'operazione RefreshRoom() eseguita periodicamente, rimane il problema della visualizzazione della pagina di configurazione del termoregolatore che solitamente con i programmi in VB6 compare cliccando sul controllo.

Nella gestione dell'evento termoreg1_CallReg (quello che si scatena al click sul controllo) ho provato ad accedere a metodi e proprietà del controllo ma senza successo (riesco a visualizzare le proprietà ma non la schermata di controllo/monito avanzato del termoregolatore).

Stessa cosa per quanto riguarda il programmatore orario, nel quale quando vado a settare TimerVisible=true come suggerito dalla guida, non avviene nulla.

A questo punto dubito sulla possibilità di utilizzare gli oggetti grafici COM forniti in ambito .NET, ma per i requisiti del progetto VB6 non mi sembra troppo adatto (e non solo per quelli).

Mah continuerò a investigare, sperando di non dover ricreare tutto a mano attraverso la building class xcomm....

Modificato: da DFabbri
del_user_56966
Inserita:
Mah continuerò a investigare, sperando di non dover ricreare tutto a mano attraverso la building class xcomm....

Oltre non saprei, dovrei fare delle ulteriori prove...

non utilizzo le librerie grafiche VB6 con .NET ma solo le classi...

comunque creare una libreria grafica NET per il termoregolatore è molto veloce, i dati di tutto l'impianto arrivano per evento.... :)

Inserita:

Sì infatti è quello che mi accingo a fare! D'altronde in effetti devo solo riprodurre le funzioni del termoregolatore e del programmatore orario, spero di riuscire in giornata!

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