Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
05.10.11, 18:48
|
#1
|
VB - VBA - Python
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
|
[Frage] Daten zwischen Excel und VB.net Programm austauschen
Hallo miteinander,
Ich habe folgende Herausforderung;
von einem Datenloggerprogramm werden Temperaturen an eine Excel-Tabelle gesendet.
Ich möchte gerne mit einem Makro die Temperaturen an ein eigen gebasteltes Programm in vb.net senden. Dass dann die Steuerung für die sämtliche Temperaturabhängigen Maschinen übernimmt!.
So jetzt nochmal im Klartext.
Mir wäre geholfen, wenn ein Makro in Excel folgendes kann:
Einen X Beliebigen Satz oder Zahlen an ein geöffnetes Programm in ein Label oder Textbox schreibt.
Dann kann mein Programm die Daten verarbeiten.
Ich habe schon probiert mit FindWindow; FindWindowEx; SendMessage,,,
aber irgendwie scheitert es wahrscheinlich an meiner Begabung / Erfahrung
Was muss ich beachten bzw. Was muss ich in dem .net Programm beachten; dass es die Daten überhaupt annimmt??
Mir wäre wirklich sehr geholfen
Vielen Dank.
|
|
|
05.10.11, 19:05
|
#2
|
xor eax, eax
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
|
Kannst du dir nicht direkt die Werte vom Datalogger holen? Wie sind die Datalogger mit dem Rechner verbunden? RS232, USB oder sogar netzwerkfähig?
Warum ist ein Zwischenschritt über ein Excel Makro von nöten? Alles was ein Excel Marko kann (VBA), kann (VB).NET schon lang und 2x besser.
Viele Grüße,
haze303
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
|
|
|
05.10.11, 19:39
|
#3
|
VB - VBA - Python
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
|
Das ganze läuft über eine RS232 Schnittstelle.
Es ist sogar viel leichter einfach das Gerät abzufragen, aber wir haben da ein sehr Professionelles Tool das verschiedene Diagramme; Tabellen; usw. anzeigen kann; es ist fähig Rechenkanäle zu verarbeiten usw.
Mein Problem ist das diese Software abgespeckt ist und leider nicht als DatenServer funktioniert.
Es kann aber eine Verbindung zu Excel aufbauen und die Daten da abspeichern.
Da die Steuerung die ich Basteln möchte eher Sekundär von der Priorität ist ist es unbedingt notwendig die Daten mit diesem Programm aufzuzeichnen wir ermitteln damit verschiedene Werte usw. sozusagen ein Prüfstand der Daten speichert.
Ich möchte mir nur ein Paar Temperaturen rausholen und an mein Programm senden, leider weiß ich mir nicht anders zu helfen oder du hast einen Tip wie man eine Com Schnittstelle abhören kann oder auch anders auf die Daten zugreifen kann ohne zusätzlich Geld zu investieren
Vielen Dank
|
|
|
05.10.11, 20:51
|
#4
|
xor eax, eax
Registriert seit: Sep 2009
Beiträge: 596
Bedankt: 466
|
Hier hat sich jemand die Mühe gemacht, eine Klasse bereitzustellen, um Daten von einer RS232 Schnittstelle mit Hilfe von VB.Net abzufragen.
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Viele Grüße,
haze303
PS: Scheint sogar wirklich sehr sehr einfach zu sein, damit Daten abzufragen. Im Mikrocontroller Forum schwören die VB-Jungs auch darauf.
__________________
Desktop: Arch Linux | Laptop: Arch Linux
VM: Windows 7, Windows XP, Fedora 14, Arch, Windows Server 2008 R2 Enterprise
|
|
|
05.10.11, 23:31
|
#5
|
Ist öfter hier
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
|
Wenn haze303's Möglichkeit ausscheidet: Es ist einfacher, von VB.Net aus Excel anzusprechen. Excel stellt einen Haufen COM-Klassen zur Verüfung, die Du mit wenig Aufwand in VB.Net benutzen kannst. Das ist dann aber ein anderer Workflow.
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
|
|
|
06.10.11, 05:00
|
#6
|
VB - VBA - Python
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
|
Vielen Dank für die Mühe,
aber die Möglichkeit scheidet leider aus, da ich nicht mit zwei Geräten den COM Port ansprechen kann.
Wie oben gesagt ich benötige das andere Programm als Primären Datenlogger. Das heißt erste Verbindung
Leider ist es jetzt nicht mehr möglich mit meinem anderen Tool auf die COM Schnittstelle zuzugreifen.
Also bleibe ich nach wie vor auf meiner Frage hängen.
Ich habe von interkommunikation zwischen zwei Prozessen gehört sog. IPC oder auch mit Named Pipes arbeiten?
Hat da schon iregendwer Erfahrung mit diesen?
|
|
|
06.10.11, 06:14
|
#7
|
Ist öfter hier
Registriert seit: Nov 2010
Beiträge: 198
Bedankt: 96
|
Oh, sorry. Ich meinte nicht die COM-Schnittstelle. COM ist ein bestimmter Objekttyp, um in eigenen Programmen Komponenten aus anderen Programmen zu verwenden. [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club)
|
|
|
06.10.11, 10:06
|
#8
|
Ist öfter hier
Registriert seit: Sep 2010
Beiträge: 276
Bedankt: 280
|
Das erste, das mir einfällt, ist: abspeichern und in VB.net via FileStream auslesen.
Alternativ wäre, wie schon genannt, ein direkter Zugriff auf Excel möglich.
Code:
Dim objXLApp As Excel.Application
Dim objXLWB As Excel.Workbook
Dim objXLWS As Excel.Worksheet
Dim objXLCell As Excel.Range
Set objXLApp = New Excel.Application()
Set objXLWB = objXLApp.Workbooks.Open(Dateiname)
usw.
|
|
|
06.10.11, 21:22
|
#9
|
VB - VBA - Python
Registriert seit: Feb 2010
Beiträge: 29
Bedankt: 11
|
[ Erfolgreich gelöst ]
Also ich habe es jetzt gelöst etwas Kompliziert aber gelöst
Ich arbeite mit der SendMessage API
Mein Datenlogger schreibt die Daten in eine Excel Tabelle.
Der Datenlogger hat einen Messzyklus von ca. 10 sec.
Meine Steuerung braucht so ein kurzes Intervall nicht.
Ich arbeite mit der Application.OnTime Methode und
Sende alle 60 sec den aktuellen Messwert an eine Textbox in
meinen VB.Net Programm.
'''''''Ganz harte Nuß für mich war den Klassennamen des Controls abzufragen.
Aber nach ewiger Bastelei ist es mir dann geglückt'''''
Und die regelt dann je nach Hysterese
und Anforderung meine Maschine.
''''''' Benutzte API FindWindow / FindWindowEx / SendMessage / GetWindowText ''''''''
Wenn einer Infos braucht
Ich stehe gerne zur Verfügung. Vielen Dank für Eure Mühen.
Achja und wenn wirklich einer Erfahrung hat mit der NAMED_PIPE hat... ich würde gern noch einiges darüber Wissen. Speziell zwischen Excel VBA und VB,Net
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
().
|