Hans-Joachim Berndt, Burkhard Kainka

Messen, Steuern, Regeln mit Word und Excel
- VBA-Makros für die serielle Schnittstelle -

Franzis-Verlag, 3. Auflage 2001

FAQ und Hinweise

Neuerungen der 3. Auflage

CD-Inhalt


Vorwort

Die PC-gestützte Mess-, Steuerungs- und Regelungstechnik hat in den letzten Jahren nicht nur in der Industrie, sondern auch im Hobbybereich und in der Ausbildung hat eine erhebliche Bedeutung erlangt. Für kleinere und weniger aufwendige Anwendungen haben sich Interfaces an der seriellen Schnittstelle bewährt, die meist mit spezieller Ansteuerungssoftware eingesetzt werden. Die Anwendungen reichen von der einfachen Messwerterfassung mit Digitalmultimetern über die Steuerung von Bewegungsmodellen bis hin zu komplexen Regelungssystemen.

In der letzten Zeit hat sich Windows als gemeinsames Betriebssystem weitgehend durchgesetzt. Dies bedeutete für viele Programmierer einen erheblichen Mehraufwand gegenüber der einfacheren DOS-Programmierung. Vielfach wurde auch mit getrennten Programmen zur Messwerterfassung und -auswertung gearbeitet, was allerdings oft zu einer aufwendigen Datenkonvertierung führte.

Dieses Buch will einen neuen Ansatz vorstellen, alle Arbeitsbereiche der Mess- Steuerungs- und Regelungstechnik unter das gemeinsame Dach der weit verbreiteten Office-Software zu stellen. Obwohl es zunächst verwundern mag, dass man auch mit Word und Excel eine direkte Hardwareanbindung erreichen kann, erweisen sich diese Programme auch hier als universelle und leicht handhabbare Werkzeuge. Schon nach kurzer Einarbeitung in die Makro-Programmierung lässt sich eine erhebliche Arbeitserleichterung und Zeitersparnis erreichen. Mit der dritten Auflage wird nun auch Office 2000 berücksichtigt. Die CD enthält die neue, aktualisierte Programmbibliothek.

Wir wünschen unseren Lesern viel Erfolg!

Hans-Joachim Berndt,
Burkhard Kainka


Inhalt

1 EINLEITUNG 7

2 MAKROS IN WORD 9
2.1 Erstes Makro aufzeichnen 9
2.2 Eigenes Makro erstellen 10
2.3 Neue Befehle über DLLs einbinden 11
2.4 Anrufen über das Modem 16
2.5 Befehle in Symbolleisten 17
2.6 Wahlhilfe in Visual Basic 18

3 MAKROS IN EXCEL 22
3.1Aufruf externer Funktionen 24
3.2 Messwerte erfassen 26
3.3 Ein Zweikanal-Datenschreiber 28
3.4 Schaltflächen in Excel 30
3.5 Verwendung von Kombinationsfeldern 31

4 DIGITALMULTIMETER AUSLESEN 34
4.1 Datenerfassung in Word 35
4.2 Messwertabfrage in Excel 38
4.3 Multimeter an mehreren Schnittstellen 40
5 INTERFACE-ANSTEUERUNG 43
5.1 Ansteuerung über Einzelbytes 43
5.2 Spezielle Ansteuerfunktionen 45
5.3 Ein Zweipunktregler 47
5.4 Automatische Interface-Erkennung 49
5.5 Eingänge mit Dialogboxen überwachen 51
5.6 Schrittmotorsteuerung 54
5.7 Visualisierung von Ausgangszuständen in Excel 57
5.8 Visualisierung von Ausgangszuständen in Word 59
5.9 Steuerung von Analogausgängen 60
5.10 Ein intelligenter Laderegler 87
5.11 Messung mit erhöhter Genauigkeit 91

6 DIREKTE ANSTEUERUNG DER RS232-LEITUNGEN 94
6.1 Ausgänge schalten 95
6.2 Eingänge abfragen 98
6.3 Umschaltung von Digitalmultimetern 102
6.4 Direkte Ansteuerung eines AD-Wandlers TLC549 105
6.5 Ansteuerung eines Achtkanal-Analoginterface 109
6.6 Ein 12-Bit-Wandler mit dem MAX186 113
6.7 Der I2C-Bus an der seriellen Schnittstelle 118
6.8 Das I²C-Bus-EEPROM 24C02 127
6.9 Auslesen von Telefonkarten 135
6.10 Bipolare Messungen bis +/-10V 138

7 MESSUNGEN MIT SENSOREN 143
7.1 Messung mit linearen Sensoren 143
7.2 Linearisierung eines Temperatursensors 145
7.3 Verwendung von Sensortabellen 148
7.4 Luftfeuchtemesung in Excel 152

8 STEUERN MIT RELAIS-INTERFACES 155
8.1 Ansteuerung einer Relaiskarte 155
8.2 Ein Messkanalumschalter 159
8.3 Klingelsteuerung über ein Relais-Interface 163
8.4 Ein programmierbarer Mehrkanal-Zeitschalter 166

9 KOMMUNIKATION MIT MIKROCONTROLLERN 172
9.1 Autonome Datenerfassung mit dem SIOS-Interface 173
9.2 Ein autonomer Funktionsgenerator mit SIOS 182
9.3 Frequenzmessung mit einem 8051-System 187
9.4 Ein Disassembler in Excel 192
9.5 Kommunikation mit BASIC-52-Systemen 201
9.6 Messungen mit C-Control/BASIC 205
9.7 Programmübertragung zu C-Control 211
9.8 Industrielle Qualitätskontrolle 215

10 AUFBAU UND PROGRAMMIERUNG DER DLL 228
10.1 Aufbau der RSAPI.DLL in C 229
10.2 Öffnen einer Schnittstelle 231
10.3 Schließen der Schnittstelle 233
10.4 Senden eines Bytes 233
10.5 Empfang eines Bytes 233
10.6 Lesen der Signalleitungen 234
10.7 Setzen der Signalleitungen 235
10.8 Öffnen eines speziellen Interfaces 235
10.9 Lesen eines Analog-Interfacewertes 236
10.10 Setzen eines Digitalausgangs 237

11 ANHANG 238
11.1 Anschlussbelegung der RS232-Schnittstelle am PC 238
11.2 Referenz zu allen DLL-Funktionen 238
11.3 Bezugsquellen 264
11.4 Literatur 264
11.5 Sachverzeichnis 265


1 Einleitung

Die Arbeit am PC konzentriert sich heute überwiegend auf wenige Programme unter der gemeinsamen Windows-Oberfläche. Für sehr spezielle Arbeitsbereiche, wie z.B. die Messwert-Erfassung, ist der Anwender aber nach wie vor auf Spezialsoftware angewiesen, die oft von den Hardwareherstellern geliefert wird und sehr unterschiedlichen Standards unterliegt. Oft hat der Anwender dann das Problem, laufend zwischen ganz unterschiedlichen Programmen zu wechseln und Daten unterschiedlicher Formate zu konvertieren.

In diesem Buch soll nun ein neuer Weg vorgeschlagen werden: Der Anwender wird in die Lage versetzt, sehr spezielle Hardware direkt aus seiner Windows-Standardsoftware heraus anzusteuern. Messwerte werden ohne eine Konvertierung sofort in Texte oder Tabellenblätter eingetragen. Und Geräte lassen sich direkt aus der Standardsoftware Word und Excel heraus steuern. Den Schlüssel hierzu bilden Makros. Da diese beiden Officekomponenten mit eingebautem Visual Basic ausgeliefert werden, verfügt jeder Anwender automatisch über eine mächtige Programmierumgebung. Makros sind in Basic geschriebene Programmteile. Ihnen steht nicht nur fast die komplette VB-Umgebung zur Verfügung, sondern mit ihnen kann man das Verhalten der Office-Anwendung anpassen, da sie Zugriff auf die Anwendungsobjekte haben. In Verbindung mit der in diesem Buch vorgestellten Funktions-Bibliothek (Dynamic Link Library, DLL), können Messungen und Steuerungen direkt aus Office heraus erfolgen. Mit Hilfe dieser DLL können all jene Geräte direkt ansteuert werden, die über die serielle Schnittstelle mit dem PC verbunden sind.

Die Funktions-Bibliothek RSAPI.DLL wurde speziell für dieses Buchprojekt geschrieben. Sie unterstützt zahlreiche Geräte an der seriellen Schnittstelle durch Spezialfunktionen und bietet außerdem viele allgemeine Funktionen, mit denen sich die unterschiedlichsten Anwendungen realisieren lassen. Die Begleit-CD zum diesem Buch enthält die Version 1.22 für 32-Bit-Systeme (Windows 9x, Windows NT/2000).

Wer bereits Erfahrungen in Basic oder besonders mit Visual Basic gesammelt hat, wird kaum Probleme haben, sich in die Makro-Programmierung einzuarbeiten. Aber auch ohne Vorkenntnisse in Visual Basic ist es durch das Aufzeichnen von Makros möglich Quelltexte zu erzeugen, die dann leicht angepasst werden können.

In diesem Buch werden nur die beiden Office-Komponenten Word und Excel benutzt, obwohl auch andere Office-Programme makrofähig sind. Insbesondere zur Darstellung und Steuerung eignet sich die Tabellenkalkulation Excel mit ihren Diagrammfähigkeiten. Word ist auf der Windows-Plattform wohl das meistverbreitete Textverarbeitungsprogramm und somit fast überall verfügbar. Das Buch geht speziell auf die neueren Versionen ab Word/Excel97 und Word/Excel2000 ein. In älteren Versionen gab es z.T. größere Unterschiede zum "normalen" Visual-Basic. Inzwischen entspricht das Office-VBA fast genau Visual Basic 5.0 oder 6.0.

Die Beispiele aus dem Buch verwenden ausschließlich die serielle Schnittstelle, weil sich hier besonders problemlos eigene oder im Handel erhältliche Geräte anschließen lassen. In einigen Fällen wie z.B. bei Modems und bei vielen Messgeräten werden Daten im Textformat ausgetauscht. Viele spezielle PC-Interfaces und Mikrocontroller-Systeme verwenden dagegen einzelne Zahlenkommandos und einen Datenaustausch auf der Grundlage reiner Binärdaten. Über den direkten Zugriff auf Schnittstellenleitungen lassen sich besonders einfache Geräte realisieren, oder man kann bestimmte AD-Wandler mit wenig Aufwand direkt an der seriellen Schnittstelle betreiben.

Das breite Spektrum möglicher PC-Interfaces reicht von sehr einfachen Geräten mit einem begrenzten Anwendungsbereich bis zu flexibel einsetzbaren Geräten mit eigener Intelligenz. Dazu zählen z.B. programmierbare Mikrocontrollersysteme wie SIOS oder C-Control. Der Anwender wird hier in die Lage versetzt, spezielle Aufgaben mit eigener Controllersoftware und selbst definierten Übertragungsprotokollen zu lösen.