Copyright: Hilfe SMS10 ® h#s 1996


Index
 Schrittmotorsteuerung - DDE-Server

Das Programm SMS10 dient zur Ansteuerung eines isel-Schrittmotors unter Zuhilfenahme der Mikrostep-Steuerkarte und des virtuellen Gerätetreibers MPK3D.386. Der Originaltreiber MPK3DRV.EXE wird nicht benötigt. Hauptanwendung dieses Programms ist die Steuerung eines rotatorischen Direktantriebs. Daher beziehen sich alle Maßeinheiten auf Winkelgrad. Kennzeichend ist, daß der Arbeisbereich größer als 360 ° sein darf und der Referenzschalter während der Bewegungen überfahren werden darf. Emulations-Schaltungen können ersatzlos entfallen. Die Bewegung des Motors kann auch über eine DDE-Verbindung ausgelöst werden.

Ultraschallmeßplatz und SMS10

Erforderliche Hard- und Software
Installation

Bedienung

Elemente des Hauptfensters
Referenzfahrt durchführen
Bewegung durchführen
Motor freigeben
Bereich abfahren
Grenzen festlegen
Motor auswählen
Beenden des Programms

DDE

Was ist DDE?
Konversation mit SMS10
DDE-Verbindung erstellen

Probleme und Lösungen

Fehlerhafte Initialisierungsdatei...
Einheit nicht verfügbar
Fehlerhafte Zahleneingabe
DDE-Fehler
Sonstige Fehler

h#s  © Technische Universität Chemnitz, Fachbereich Meß- und Sensortechnik


 Hard- und Software-Erfordernisse

Das Programm SMS10.EXE benötigt mindestens Windows 3.1 im Standard-Modus. Da jedoch der virtuelle Gerätetreiber MPK3D.386 den Erweiterten Modus erfordert, ist für eine Funktion mit Motor ein AT 386 oder besser mit mindestens 1.5 Megabyte RAM erforderlich. Aufgrund der Notwendigkeit eines Kernel-Treibers, der z. Z. nur als Windows 3.1-VxD vorliegt, ist eine Funktion nur unter Windows 3.1 und Windows 95 gegeben. Um dasselbe Programm unter Windows NT laufen zu lassen, ist ein NT-Kernel-Treiber erforderlich. Unter Win/OS2 ist ein OS/2-Treiber nötig.

Installationshinweise für den virtuellen Gerätetreiber finden sich in der MPK3D-Referenz.

Des weiteren ist die isel Microstep-Steuerkarte MPK3 erforderlich, mit der dann der Schrittmotor im Mikroschrittbetrieb angesteuert wird. Erläuterungen zur Karte und zum Mikroschrittbetrieb siehe isel-Dokumentation.

Der Treiber wurde jedoch mit einer gänzlich anderen Strategie entworfen (Nanoschritt-Rechnung), die zwar mehr Rechenaufwand kostet, durch die starke Verminderung der Arbeitsfrequenz und die vollständige Kodierung in 32-bit-Assembler die Rechenleistung des Rechners nur kaum beeinflußt. Die Angabe der "Mikroschritte pro Schritt" entfällt, die Positioniergenauigkeit ist auf theoretische 256 Mikroschritte angewachsen, bei einer immer noch sportlichen Maximaldrehzahl von 5 U/s.

Eine automatische Erkennung der Karte erfolgt nicht. Sie ist aufgrund der Gestaltung des Kartenzugriffs nicht möglich. Somit ist der Betrieb mit Gerätetreiber auch ohne Karte möglich; jedoch findet die Referenzfahrt kein Ende.

Entstanden ist dieses Programm aus der Notwendigkeit, die vorhandene Hardware unter Windows über DDE anzusprechen. Vorlage war eine DOS-Version UMSxx (Ultraschall-Meßplatz-Steuerung) von Dipl.-Ing. Karsten Krämer, die er im Rahmen seiner Diplomarbeit angefertigt hat.

Dieses Programm besteht aus:

SMS10.EXE	das Programm

SMS10.HLP	diese Hilfedatei

MPK3D.EXE	der virtuelle Gerätetreiber

MPK3D.HLP	Referenz (Installationshinweise und Programmierschnittstelle)

WasserMP.INI	eine Initialisierungsdatei im Windows-Verzeichnis. Sie wird ggf. automatisch angelegt.


 Installation

Dateien auf Festplatte kopieren und Sinnbilder (Icons) im Programm-Manager erstellen. Das ist wohl alles.


Elemente des Hauptfensters

 (Klicke mit der Maus auf die gewünschten Dialogelemente oder Menüpunkte, oder drücke TAB, um entsprechende Hilfe zu bekommen)


Referenzfahrt durchführen

Die Referenzfahrt (auch Synchronisation genannt) erfolgt durch Druck auf den entsprechenden Knopf. Ist der Motor momentan im Freilauf (die Achse läßt sich spielend leicht von Hand drehen), müssen Sie als Anwender dafür sorgen, daß sich die Anlage in etwa in Nullage befindet, da sie "Schaltersuche" nur in einer Richtung erfolgen kann, um eine Verdrehung der Stromkabel zur Meßanordnung zu vermeiden. Eine entsprechendes Hinweisfenster weist darauf hin.


 Bewegung durchführen

Durch Bewegung der Rollbalken oder durch Eingabe einer Zahl und Bestätigung durch Druck auf den entsprechenden Knopf erfolgt eine manuelle Positionierung des Motors.


 Motor freigeben

Durch Druck auf den entsprechenden Knopf wird der Motor freigegeben. Die Achse kann nun leicht mit der Hand bewegt werden. Daraufhin sind alle Bewegungsfunktionen gesperrt, da der Bezug zwischen interner und externer Position verlorengeht. Durch eine Referenzfahrt erfolgt wieder die Synchronisation zwischen beiden.


 Bereich abfahren

Zu dieser Option gelangt man nur über den Menüpunkt Option | Bereich abfahren.

 Klicke mit der Maus auf die Dialogelemente, oder benutze TAB und ENTER, um Hilfe abzufragen.


 Grenzen festlegen

 Klicke mit der Maus auf die Dialogelemente, oder benutze TAB und ENTER, um Hilfe abzufragen.


 Einheit auswählen

Der virtuelle Gerätetreiber kann (auch gleichzeitig) alle 3 Systeme der isel-Microstep-Steuerkarte ansteuern, somit 3 Motoren gleichzeitig ansteuern. Das Programm SMS10.EXE dagegen kann nur einen Motor steuern. (Es kann aber ausgleichend mehrfach gestartet werden.) Es ist daher einer der Motoren auszuwählen. Die Auswahl wird in der Konfigurationsdatei gespeichert.

 Klicke mit der Maus auf die Dialogelemente, oder benutze TAB und ENTER, um Hilfe abzufragen.


 Hilfe - Menü

Das Hilfemenü dient zur Bereitstellung folgender Funktionen:

Index	Starten der Windows-Hilfe mit der zu diesem Programm gehörigen Hilfedatei.

Über...	Anzeige von Programminformationen, wie Versionsnummer usw.

Zurück zum Hauptmenü


Beenden von USM10

Das Programm kann sowohl das Menü Datei | Beenden als auch über das Systemmenü (ALT+F4) beendet werden. Bei aktiver DDE-Verbindung erfolgt eine Warnung.


 Dynamischer Datenaustausch

Unter Windows gibt es eine Möglichkeit, Daten zwischen Programmen über ein standardisiertes Protokoll auszutauschen. Eine DDE-Konversation findet generell zwischen genau 2 Programmen statt, wobei eins als Server und das andere als Client agiert. Als Server bezeichnet man eine Anwendung, die einen DDE-Dienst oder -Daten bereitstellt; als Client die Anwendung, die diese nutzt. SMS10 ist ein Server.

Aufbau einer DDE-Verbindung

Dienste von SMS10

Anwendungsbeispiel


DDE: Dynamic Data Exchange = dynamischer Datenaustausch


 Aufbau einer DDE-Verbindung

SMS10 stellt sich hierzu systemweit als DDE-Server zur Verfügung. Systemweit bedeutet: auf dem Rechner selbst (Windows 3.1) und über ein lokales Netz (Windows für Workgroups mit entsprechender Installation).

Für den Aufbau einer DDE-Verbindung zu SMS10 wird ein (externer) DDE-Client benötigt, beispielsweise Excel, WinWord oder MatLab. Generell muß das Serverprogramm (SMS10) zuerst gestartet werden. Danach können im Client die entsprechenden Befehle zum Aufbau der Verbindung gegeben werden. Informationen hierüber findet man in der Dokumentation oder der Onlinehilfe zu den entsprechenden Programmen. Alternativ kann das Client-Programm den DDE-Server starten, wenn eine Verbindung gefordert wird. Dazu muß meist das Verzeichnis von SMS10.EXE im Pfad stehen - ein Nachteil, der mit OLE behoben wurde.


DDEServ
 USM10 als DDE-Server

SMS10 ist ein DDE-Server. Er ist in der Lage, Datenabfragen zu beantworten (REQUEST), Datenveränderungen dem Client mitzuteilen (ADVISE), neue Daten entgegenzunehmen (POKE) sowie eine Datenausgabe durchzuführen (EXECUTE).

Folgende Zeichenkettenkonstanten müssen für die Konversation mit USM10 verwendet werden:

Service-Name	SMS10 (service)

System-Name	System (standard topic)

Themen-Liste	Topics (data item)

Systemdaten-Liste	SysItems (data item)

Hilfe	Help (data item)

Themen-Name	Motor (topic)

Daten-Name	Position (data item)

Ausführen!-Namen	Move xxx, Sync [xxx[,xxx]], Free (execute commands)

Der Datenaustausch erfolgt auf Textbasis (CF_TEXT), d. h. es werden Zeichenketten übertragen, die die (intern gänzlich anders dargestellte) Zahl repräsentieren. Dies ist gängigste Art, geringe Datenmengen auszutauschen. Eine Veränderung der Position zieht immer auch eine Bewegung des Motors nach sich; das Setzen der Position ist also gleichbedeutend mit dem Execute-Kommando Move xxx

SMS10 unterstützt die automatische Aktualisierung. Wenn ein Client die automatische Aktualisierung aktiviert (ADVSTART), werden bei jeder Wertänderung, sowohl von anderen Clients als auch vom Server SMS10, die veränderten Daten aktualisiert.

SMS10 unterstützt die automatische Verbindungssuche (WILDCONNECT) nicht.


 Initialisierungsdatei-Fehler

Diese Fehlermeldung tritt beim erstmaligen Start dieses Programms auf. Das Programm kann den Eintrag Unit= in der Sektion [SMS10] der "WasserMP.INI" im Windows-Verzeichnis nicht finden und läßt den Motor (welchen auch?) uninitialisiert.

Sie sollten als nächstes über das Menü unter Optionen | Motor auswählen den gewünschten auswählen. Wenn dieser Dialog erfolgreich beendet wurde, wird die oben genannte Konfigurationsdatei entsprechend eingerichtet.


 Einheit nicht verfügbar

Beim Start des Programms oder bei Auswahl eines Motors kann es sein, daß entweder der virtuelle Gerätetreiber nicht geladen wurde, oder der Motor gerade verwendet wird. Wählen Sie einen anderen Motor oder beenden Sie das andere Programm, welches den Motor gerade belegt. Falls kein Eigentümer des Motors greifbar ist, weil das Programm vorher unsanft beendet wurde, kann eine Freigabe erzwungen werden. Benutzung auf eigene Gefahr!


Fehler bei der Zahleneingabe

Dieser Fehler kennt generell 2 Ursachen:

Fehlerhafte Zeichen	Die Zahl enthält Buchstaben, Sonderzeichen (außer Punkt oder Komma) oder Leerzeichen.

Bereichsüberlauf	Die angegebene Zahl übersteigt die im Dialog angegebenen Grenzen.


 DDE-Fehler

SMS10 kann bei Fehlern bezüglich DDE niemals aktiv werden, dies tut die Client-Applikation.

Folgende Fehler könnten sich bei einem Konversationsversuch einstellen:

Kann DDE nicht initialisieren (USM10 läuft, DDE-Verbindungsanzeige ist aus):

Sind alle Zeichenketten (Strings) korrekt geschrieben? Schreibweise siehe DDE-Server

Kann DDE nicht initialisieren - Serveranwendung nicht gefunden (USM10 läuft nicht):

Liegt USM10 im Pfad? Möglicherweise wird der automatische Start des Servers von der Client-Applikation nicht oder nicht richtig unterstützt.

Kann Daten nicht abschicken / abholen (USM10 läuft, DDE-Verbindungsanzeige ist an):

Sind alle Strings korrekt geschrieben? Siehe DDE-Server

Datenveränderungen werden nicht automatisch bei Veränderung aktualisiert (USM10 läuft, DDE-Anzeige ist an):

Vermutlich wurde vergessen, die automatische Aktualisierung client-seitig zu aktivieren, oder das Client-Programm unterstützt diese Funktion nicht.

Wie vollziehe ich vom Client aus eine Ausgabe?

Dies erfolgt über DdeExecute. Möglicherweise unterstützt der verwendete Client diese Funktion nicht.


Fehlermeldungen;Fehler;Probleme
 Sonstige Fehler

ALLGEMEINE SCHUTZVERLETZUNG

Falls Sie einmal diese oder eine ähnliche Fehlermeldung erhalten sollten, so ist ein schwerer Programmfehler aufgetreten. Sie können das Programm nur beenden. Schreiben Sie auf, welche und in welcher Reihenfolge Sie die Funktionen aufgerufen haben, welche Fehleradresse angezeigt wird und welche Programmversion Sie benutzen und teilen Sie dies dem Entwickler mit.

Zurück zum Hauptmenü


 SMS10 © h#s 1996. Erstellt mit BORLAND PASCAL 7.0. Dieses Programm wurde für die Technische Universität Chemnitz, Fachbereich Meß- und Sensortechnik, angefertigt.


MPK3D.386 Virtueller Gerätetreiber für Windows 3.x Erweiterter Modus und Windows 95. © h#s 1996. Erstellt mit Turbo Assembler 3.2 und DDK-Lite. Danke für die Unterstützung durch die Anwesenden in der Newsgroup comp.ms-windows.programmer.vxd.

Hilfe sowie Hinweise für Programmierer zu diesem Treiber gibt es in der MPK3D-Referenz.