Comx3-handbuch Die ActiveX-Komponente COM_V3 1. Einführung COM_V3 ist eine ActiveX-Komponente, welche einige Funktionen zum Programmieren der seriellen Schnittstelle zur Verfügung stellt. COM_V3 kann nicht nur unter Delphi oder Visual Basic, sondern auch unter HTML und JavaScript eingesetzt werden. Abb. 1: Die Experimentierplatine (Prototyp) COM_V3 ist speziell vorbereitet für den Umgang mit der Experimentierplatine aus Abb. 1, dem 2 Roboter-Igel von U. Ihlefeldt und den I C-Bus-Platinen von E. Eube. Insbesondere stellt diese Komponente neben den standardmäßigen Ein-Ausgabe-Befehlen auch eine Reihe von Befehlen zur Verfügung, welche die Ansteuerung der Schrittmotoren des Igels sowie den Umgang mit 2 dem I C-Bus stark vereinfacht. Abb. 2: Der Roboter-Igel von U. Ihlefeldt
2. Installieren der ActiveX-Komponente COM_V3 Führen Sie die Datei setup.exe von der CD aus. Dadurch werden S S S die ActiveX-Komponente COM_V3.OCX in das Verzeichnis c:\windows\system32 kopiert und in der Registry verankert einige Test- und Beispielprogramme in ein Verzeichnis Ihrer Wahl kopiert ein Link vom Desktop zu den Programmen gesetzt Alternativ können Sie die ActiveX-Komponente auch von Hand installieren: Kopieren Sie dazu die Datei COM_V3.OCX aus dem Verzeichnis Komponenten der CD in das Verzeichnis c:\windows\system32. Öffnen Sie anschließend die DOS-Eingabe-Aufforderung. Wechseln Sie in das Verzeichnis c:\windows\system32. Geben Sie ein regsvr32 COM_V3.ocx und betätigen Sie die Enter-Taste. Die Komponente wird nun in die Registrierdatenbank (Registry) eingetragen. Mit der Anweisung regsvr32 /u COM_V3.ocx wird die Komponente wieder aus der Registrierdatenbank entfernt. Hinweis: Bei älteren Windows-Versionen wird das Verzeichnis windows\system benutzt. 3. Einbinden der ActiveX-Komponente COM_V3 in Ihre Entwicklungsumgebung Visual Basic: Projekt - Komponenten... - Unter den Steuerelementen COM_V3- Bibliothek suchen und markieren - OK. Anschließend das COMX3-Objekt aus der Komponentenleiste auf das Formular legen. Das erste COMX3-Objekt heißt standardmäßig COMX31; der Name kann im Objektinspektor geändert werden, z. B. zu meincom. Delphi: ähnlich wie bei Visual Basic HTML und JavaScript mit Frontpage - Express: Einfügen Andere Komponenten ActiveX-Steuerelement COMX3-Element auswählen und benennen, z.b. meincom. In der Frontpage(-Express)-Vorschau sieht man dann das COM-Symbol. Beachten Sie, dass JavaScript Klein- und Großbuchstaben unterscheidet. Abb. 3: Einbinden (der älteren Version) in Visual Basic
4. Eigenschaften und Funktionen 4.1 Grundlegende Eigenschaften und Methoden 4.1.1 Methoden open Parameter: Nummer der seriellen Schnittstelle (1,..., 4); Typ integer. Rückgabewert: Nummer der seriellen Schnittstelle, wenn Verbindung erfolgreich, sonst 0. Durch ComNr = meincom.open(1) wird die Schnittstelle COM1 geöffnet; ist dies erfolgreich wird, die Zahl 1 als Rückgabewert an die Variable ComNr übergeben. close Beispiel (Pascal): Durch meincom.close wird die Verbindung der Komponente meincom zur seriellen Schnittstelle geschlossen. delay Parameter: Zeit in Millisekunden; Typ real. Beispiel (Pascal): meincom.delay(2000) hält das Programm für 2 Sekunden an. doevents Keine Parameter meincom.doevents() zwingt das System zum Bearbeiten von Botschaften; entspricht dem VB-Befehl doevents und dem Delphi-Befehl application.processmessages. lieszeit Keine Parameter Rückgabewert: Zeit in ms; Typ real Beispiel (Basic): t = meincom.lieszeit liefert Zeit seit Erzeugung der Komponente. 4.1.2 Eigenschaften A0 Typ: Nur Schreiben meincom.a0 = 1 setzt den Ausgang A0 (RTS) auf 1
A1 Typ: Nur Schreiben meincom.a1 = 0 setzt den Ausgang A1 (TXD) auf 0 A2 Typ: Nur Schreiben meincom.a2 = 1 setzt den Ausgang A2 (DTR) auf 1 E0 Typ: Nur lesen eingang := meincom.e0 liest den Zustand des Eingangs E0 (DCD) E1 Typ: Nur lesen eingang := meincom.e1 liest den Zustand des Eingangs E1 (DSR) E2 Typ: Nur lesen eingang := meincom.e2 liest den Zustand des Eingangs E2 (CTS) E3 Typ: Nur lesen eingang := meincom.e3 liest den Zustand des Eingangs E3 (RI)
4.2 Erweiterte Eigenschaften und Methoden (für den Roboter-Igel) 4.2.1 Methoden vw meincom.vw(30) lässt den Roboter-Igel 30 Schritte vorwärts fahren rw meincom.rw(30) lässt den Roboter-Igel 30 Schritte rückwärts fahren li meincom.li(30) lässt den Roboter-Igel 30 Grad gegen den Uhrzeigersinn drehen re meincom.re(30) lässt den Roboter-Igel 30 Grad im Uhrzeigersinn drehen dreh meincom.dreh(-30) lässt den Roboter-Igel 30 Grad gegen den Uhrzeigersinn drehen stiftab meincom.stiftab() senkt den Stift des Roboter-Igels ab stifthoch meincom.stifthoch() hebt den Stift des Roboter-Igels an
CheckInputs (nur bei Delphi-Komponente) meincom.checkinputs aktiviert die Möglichkeit, eine Botschaft zu erhalten, wenn der Zustand des Eingangs E1 sich ändert (OnChangeE1-Ereignis). Die benutzte Message-Nummer ist standardmäßig 5100 und kann über die Eigenschaft MyMsg geändert werden. Beachten Sie, dass der Rechner bei Aktivierung dieser Funktion zusätzlich belastet wird. 4.2.2 Eigenschaften StepZeit Werte: real meincom.stepzeit := 200 legt die Schrittzeit des Schrittmotors beim Roboter-Igel auf 200 ms fest Winkelkalibrierung Werte: real meincom.winkelkalibrierung := 0.3 kalibriert die Dreh-Methoden des Schrittmotors beim Roboter-Igel; der Wert muss durch Ausprobieren so festgelegt werden; dass der Roboter-Igel bei der Eingabe meincom.dreh(360) genau eine vollständige Drehung ausführt.
2 4.3 Eigenschaften und Methoden für den I C-Bus 4.3.1 Methoden initi2c meincom.initi2c() initialisiert den I2C-Bus (d. h. SDA und SCL werden auf 1 gesetzt. starti2c Beispiel (Delphi bzw. VB): meincom.start bereitet den Bus für die Übertragung eines Adress-Bytes vor. stopi2c Beispiel (VB): meincom.stopi2c beendet die Verbindung zu einem Baustein des I2C-Busses. ausgebeni2c bzw. Prozedur Parameter: Adresse oder Daten Rückgabewert: true, wenn Baustein mit entsprechender Adresse auf dem Bus antwortet var istda = meincom.ausgebeni2c(78) gibt die Adresse 78 auf den Bus aus; wenn Baustein mit der Adresse 78 antwortet (Acknowledge sendet), erhält die Variable istda den Wert true, sonst false. Hat der Baustein ein Acknowledge-Signal gesendet, können Daten an den Baustein geschickt werden, z.b. wird durch meincom.ausgebeni2c(112) die Zahl 112 an den Baustein geschickt. Der Vorgang wird durch die Methode stop beendet. leseni2c Rückgabewert: Daten vom Bus-Baustein mit der aktuellen Adresse wert := meincom.leseni2c liest einen Wert aus dem aktuellen Baustein aus. Nach dem Lesevorgang muss mit die Methode acknowledge benutzt werden, wenn ein weiterer Lesevorgang folgen soll. Nach dem letzten Lesevorgang wird die Methode keinacknowledge benutzt. acknowledgei2c s. leseni2c
keinacknowledgei2c s. leseni2c 4.3.2 Eigenschaften clockzeit Typ: Lesen und Schreiben Werte: real meincom.clockzeit := 0.1 legt die Taktzeit des Busses auf 0,1 Millisekunden. SCL Typ: Nur Schreiben Werte: 0 und 1 Beispiel (VB): 2 meincom.scl = 1 legt das Clock-Signal des I C-Busses auf 1. SDA Typ: Lesen und Schreiben Werte: 0 und 1 Beispiele (JavaScript): 2 meincom.sda = 0 setzt die Datenleitung des I C-Busses auf 0. wert = meincom.sda fragt den Zustand der Datenleitung ab und speichert den Wert in der Variablen wert.