SGerhards Posted December 2, 2010 Share Posted December 2, 2010 Die Verwendung von Dasylab als DDE Eingang (DDE Server) ist zwar in der 11er Version in der Hilfe beschrieben, aber nicht so einfach zu finden. Deshalb hier einmal losgelöst davon eine entsprechende Beschreibung. DASYLab als DDE-Eingangs-Schnittstelle Über die Windows-DDE-Schnittstelle können externe Programme DASYLab-Funktionen aufrufen (Datei laden, Messung starten u. ä.). Hiermit ist es möglich, DASYLab von anderen Windows-Anwendungen aus fernzusteuern. DASYLab ist in diesem Fall der SERVER, eine Visual Basic-Applikation z.B. ist CLIENT. Das Format der DDE-Anweisungen muss folgenden Konventionen entsprechen: Applikation: DASYLAB Thema: Menu Namen: Command bzw. Load Über den Applikationsnamen DASYLAB und das Thema Menu wird die DDE-Konversation gestartet. Als Einträge stehen bisher Command für einen normalen Menü-Befehl mit den Operationen Messung Start, Messung Stopp, Messung Pause und Messung weiter so wie Load für Datei laden zur Verfügung. Zur Manipulation der globalen Strings oder Variablen per DDE gibt es weitere 4 DDE Items: SetString, GetString, SetVar und GetVar. Dabei wird bei den beiden Nachfragefunktionen die Nummer als Name (Item) und die gewünschte Nachfragefunktion als Thema gewählt (DASYLab ist DDE Server, der Aufbau der Verbindung muss als Cold-Link erfolgen) und DASYLab sendet das Ergebnis als ASCII Wert zurück. Falls kein Ergebnis möglich ist (falsche Nummer, etc.) sendet DASYLab einen String mit dem Inhalt "Parameter Error" zurück. Zum Setzen der Strings oder Variablen (DASYLab ist DDE-Server, die Verbindung muss ein DDE-Poke sein) wird die Nummer und die zu setzende Zeichenkette oder der zu setzende Wert durch Semikolon getrennt gesendet; DASYLab gibt keine Rückmeldung aus.Protokoll-Deklarationen Applikation: DASYLAB Messung Start, Messung Pause, Messung weiter, Messung Stopp: Namen: Command Datenstring: START, PAUSE, CONT, STOPP Thema: Menu Kommunikationstyp: Poke Datei laden: Namen: Load Datenstring: Dateiname Thema: Menu Kommunikationstyp: Poke Globale Strings setzen: Namen: SetString Datenstring: Nummer;String Thema: Menu Kommunikationstyp: Poke Beispiel: 3;test.ddf Globale Strings lesen: Namen: Nummer Thema: GetString Kommunikationstyp: Cold link Globale Variable setzen: Name: SetVariable Datenstring: Nummer;Wert (in ASCII) Thema: Menu Kommunikationstyp: Poke Beispiel: 2;5,923 Globale Variable lesen: Name: Nummer Thema: GetVariable Kommunikationstyp: Cold link GetData: Name: Modulname Datenstring: Zeile mit x Kanälen (in ASCII) Thema: GetData Kommunikationstyp: ColdLink oder HotLink SetData: Name: Modulname Thema: SetData Kommunikationstyp: PokeVisualBasic - Beispiel Weitere Informationen finden Sie in der Dasylab Hilfe in den "Hinweisen zu Poke, Hot und Cold Links"Private Sub cmdPoke_Click() txtData.LinkMode = vbLinkNone txtData.LinkTopic = "DASYLAB" & "|" & "Menu" txtData.LinkItem = "Load" txtData.LinkMode = vbLinkManual txtData.Text = "c:\DASYLAB\last.dsb" txtData.LinkPoke End Sub Private Sub cmdRequest_Click() txtData.LinkMode = vbLinkNone txtData.LinkTopic = "DASYLAB" & "|" & "GetVariable" txtData.LinkItem = "1" txtData.LinkMode = vbLinkManual txtData.Text = "" txtData.LinkRequest End SubBei erfolgreichem Verbindungsaufbau wird ein Quittierungs-Signal ("Verbindung hergestellt") gesendet. Das bisher unter DASYLab implementierte Protokoll wird in späteren Versionen noch erheblich erweitert werden.Net-DDE Ein Austausch von Daten von Programmen, die auf einem Rechner über DDE Daten austauschen können, ist auch über Netzwerk per Net-DDE möglich. Dazu müssen allerdings einige Einstellungen von Hand vorgenommen werden. Auf Seite des Servers müssen ein oder mehrere DDE-Shares eingetragen werden. Dadurch werden andere Applikationen (im folgenden Beispiel Excel) berechtigt, sich über Net-DDE einzuwählen. Die Shares werden in der Datei SYSTEM.INI unter [DDEShares] eingetragen. Beispiel: [DDEShares] CHAT$=winchat,chat,,31,,0,,0,0,0 SCHAT$=winchat,chat,,31,,0,,0,0,0 CLPBK$=clipsrv,system,,31,,0,,0,0,0 DL_MENU$=DASYLAB,Menu,,15,,0,,0,0,0 DL_DATA$=DASYLAB,SetData,,15,,0,,0,0,0 XL_TAB1$=Excel,Tab1,,15,,0,,0,0,0 dabei wurden die letzten drei Zeilen neu zugefügt. Erst jetzt kann nach einem Neustart von Windows ein Einwählen von außen erfolgen. Auf Seite des Clients müssen folgende Einstellungen gemacht werden: DASYLab und die andere Applikation laufen auf nur einem Rechner: Applikation: Excel Thema: Tab1 Namen: Z1S2 DASYLab und die andere Applikation kommunizieren über Net-DDE: Applikation: \\RechnerName\NDDE$ Thema: XL_TAB1 Namen: Z1S2 Die Client-Einstellungen entsprechen dabei den auf dem Server freigegebenen DDE-Shares. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.