Jump to content
SGerhards

Dasylab als DDE Eingangs Schnittstelle

Empfohlene Beiträge

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: Poke

VisualBasic - 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 Sub



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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×