.
Start Spezial Hardware Software Download Links

Anwenderseiten und technische Informationen
zum
Startseite_

.
.

SERAI 6-10


Download:serai610d.zip (923K) enthält Windows-Programme und diese Beschreibung und Programmbeispiele in Turbo-Pascal und


Allgemeine Beschreibung

Technische Daten

Anschlussbelegung der Schraubklemmen

Verwendung des Softwaretools SERAI610.EXE

Programmbeispiel Visual Basic 3

Programmbeispiel Turbo Pascal

Programmbeispiel in Delphi 4

 

 

 

zum Shop

Allgemeine Beschreibung

 Das Interface verwendet den AD-Wandler TLC1543 von Texas Instruments mit seriell getakteter Datenübertragung. Die Datenübertragung zum und vom Wandler erfolgt durch direkte Steuerung der Handshakeleitungen der seriellen Schnittstelle. Die Stromversorgung wird durch die hochgesetzte TXD-Leitung gespeist. Alle Eingänge sind durch Vorwiderstände gegen Überspannungen geschützt. Die Eingänge liegen an Schraubklemmen die auch die interne Referenzspannung von +5V zur Verfügung stellen. Der Wandler kann mit dem beiliegenden Programm SERAI610.EXE ausgelesen werden. Die Programmierung kann in einer beliebigen Programmiersprache erfolgen. Beispiele für Turbo Pascal, Delphi und Visual Basic liegen bei.

Der TLC1543 besitzt von Haus aus Eingänge mit einem Messbereich von 0 bis 5V. Bei einer Auflösung von 10 Bit wird das Messsignal in Quantisierungsstufen von 5 mV erfasst. Der Wandler liefert an den PC Zahlenwerte zwischen 0 und 1023. Zur Anpassung an die vorgesehenen Eingangsbereiche wurden hochohmige Spannungsteiler vorgeschaltet. Sie bieten zugleich auch einen Schutz bei eventuellen kurzzeitigen Bereichsüberschreitungen bis  ±100V. Der effektive Eingangswiderstand beträgt 200 kW in den Bereichen –5...+5V und 0...10 V sowie 133 kW im Bereich –10V...+10V. Ein angeschlossener Sensor sollte einen geringen Innenwiderstand unter 1 kW aufweisen, um Messfehler zu vermeiden. Davon kann man in den meisten Fällen ausgehen, zumindest solange der Sensor über einen eigenen Messverstärker verfügt

Technische Daten:
Messbereiche -5V ...+5V  (Ch0, CH5)
0 ...+10V  (Ch1, Ch4)
-10V ...+10V (Ch2, Ch3)
Auflösung 10 Bit (10 mV bzw. 20 mV
Eingangswiderstand 200 k (Ch0,1,4,5)
133 k (Ch2, CH3)
Linearität +/- 1 LSB
Eingangskanäle 6
Wandlungszeit 20 µs ... 1 ms

Anschlussbelegung der Schraubklemmen

1

Referenz +5 V, extern belastbar bis 3 mA

2

CH0, -5V ... +5V, offener Eingang: +5V, Ri=200k

3

CH1, 0...10V, offener Eingang 0V, Ri=200k

4

CH2, -10V...+10V, offener Eingang 3,33V, Ri=133k

5

CH3, -10V...+10V, offener Eingang 3,33V, Ri=133k

6

CH4, 0...10V, offener Eingang 0V, Ri=200k

7

CH5, -5V ... +5V, offener Eingang: +5V, Ri=200k

8

Gemeinsame Masse

Verwendung des Softwaretools SERAI610.EXE

Die Software wurde in Delphi 3 geschrieben und läuft ab Windows 95 (32 Bit). Das Programm besitzt ein Menü zur Auswahl von drei Grundfunktionen. In der Übersicht werden alle sechs Kanäle direkt angezeigt. Neben der Zeigerdarstellung erhält man auch eine Digitalanzeige. Entsprechend der Auflösung von 10 Bit hat die digitale Ausgabe einen Wertebereich von 0 bis 1023. Außerdem wird die Eingangsspannung jedes Kanals in Volt angezeigt. Das Programm ermöglicht die Auswahl der Schnittstellen COM1 bis COM3.

Unter der Funktion Zeit-Diagramm lassen sich Messwerte in einem über Zeiten zwischen 10 s und 24 h aufzeichnen. Es können bis zu sechs gleichzeitig aktive Kanäle angezeigt werden. Während der eigentlichen Messung werden alle sechs Kanäle gemessen. Sie können nachträglich in beliebiger Kombination zusammen dargestellt werden. Durch Anklicken des Kopieren-Icons neben dem Start-Button werden die Messdaten als Tabelle in Textform in die Zwischenablage kopiert.

Die Daten lassen sich in beliebige andere Windows-Programme wie z.B. Word oder Excel einfügen.

0          -1,31   0,00    3,25    3,29    0,00    5,00

t/s        K2/V   K3/V   K4/V   K5/V   K6/V   K7/V

0,056   -1,30   0,00    3,27    3,29    0,00    5,00

0,11     -1,30   0,00    3,25    3,29    0,00    5,00

0,166   -1,29   0,00    3,27    3,29    0,00    5,00

0,22     -1,29   0,00    3,25    3,29    0,00    5,00

0,275   -1,29   0,00    3,27    3,29    0,00    5,00

Aufbau der kopierten Datentabelle

Mit der Funktion XY-Diagramm lassen sich zwei frei wählbare Kanäle gegeneinander darstellen. Die Daten lassen sich auch hier als Tabelle in die Zwischenablage kopieren, um sie mit anderen Programmen weiter auszuwerten. 

 

KL2 in V         KL7 in V

0,03     4,19

0,04     4,19

0,05     4,20

0,05     4,21

0,06     4,23

0,07     4,23

 Aufbau der kopierten Daten

Programmbeispiel Visual Basic 3

Das folgende Programmbeispiel verwendet die RSLINE.DLL  unter Win3.1 mit VB3. Die DLL wird auch in dem Experimenterset ELEXS eingesetzt. Das Projekt befindet sich unter dem Namen Serai6 auf der Diskette.

  

Declare Function OPENCOM Lib "RSLINE.DLL" (ByVal A As Integer) As Integer
Declare Sub Delay Lib "RSLINE.DLL" (ByVal Zeit As Integer)
Declare Sub DTR Lib "RSLINE.DLL" (ByVal An As Integer)
Declare Sub RTS Lib "RSLINE.DLL" (ByVal An As Integer)
Declare Sub TXD Lib "RSLINE.DLL" (ByVal An As Integer)
Declare Function CTS Lib "RSLINE.DLL" () As Integer
Declare Function DCD Lib "RSLINE.DLL" () As Integer
Declare Function DSR Lib "RSLINE.DLL" () As Integer
Declare Function RI Lib "RSLINE.DLL" () As Integer
Declare Sub TimeInit Lib "RSLINE.DLL" ()
Declare Function TIMEREAD Lib "RSLINE.DLL" () As Integer

Sub Form_Load ()

 If App.PrevInstance Then
    msg$ = App.EXEName & " wurde bereits gestartet "
    MsgBox msg$, 48
    End
 End If

 i = OPENCOM(2)
 
If i = 0 Then
    i = OPENCOM(1)
    Option1.Value = True
 End If

 If i = 0 Then MsgBox ("Schnittstelle nicht verfügbar")
 TXD 1       'Betriebsspannung für Serai
 Dummy = Messung(0)
End Sub

Sub Form_Unload (Cancel As Integer)
  TXD 0
End Sub 

Function Messung (Kanal As Integer) As Integer
  DataOut = Kanal * 16 ' Adresse auf Bits 4...7
  DataIn = 0
  For BitOut = 1 To 10
    'RTS ((DataOut And 128) \ 128)  'Din
    If (DataOut And 128) = 128 Then RTS (1) Else RTS (0)
    DataIn = DataIn * 2
    DTR (1)                        'Clock
    DataIn = DataIn + CTS()          'Dout
    DTR (0)
   
DataOut = DataOut * 2
  Next BitOut
  Messung = DataIn
  TimeInit
  While (DSR() = 0) And (TIMEREAD() < 10) ' EOC abwarten
  Wend
End Function

Sub Option1_Click ()
 i = OPENCOM(1)
 If i = 0 Then MsgBox ("COM1 nicht verfügbar")
 DTR 0
 RTS 0
 TXD 1
End Sub
 

Sub Option2_Click ()
 
i = OPENCOM(2)
 If i = 0 Then MsgBox ("COM2 nicht verfügbar")
 DTR 0
 RTS 0
 TXD 1
End Sub
 

Sub Timer1_Timer ()
  Dummy = Messung(1)
  U = Int(Messung(4) / 1023 * 1000) / 100
  Text1.Text = "Kl 3: " + Str$(U) + " V   "
  U = Int(Messung(4) / 1023 * 1000) / 100
  Text2.Text = "Kl 6: " + Str$(U) + " V   "
End Sub

Programmbeispiel  Turbo Pascal

Dieses Beispielprogramm unter Turbo Pascal 6.0 zeigt ein Beispiel für die direkte Ansteuerung der Schnittstellenleitungen unter DOS. Das kompilierte Programm für COM2 liegt als SERAI6TP.EXE auf der Diskette bei.

PROGRAM SERAI6tp;  { einlesen Kanal 0 }
uses crt, dos;
VAR EDIT1, HW : Real;
Const BA = $02F8;   {COM2}
procedure Init;
var  i, Dummy :Byte;
begin
  Port[BA+3]:=128;
  Port[BA+0]:=12; { 12: 9600 Baud, 6 :19200 Baud }
  Port[BA+1]:=0;
  Port[BA+3]:=3;  { 3: 8-Bit, n-Parity, 1 Stopbit, 7: dito 2 Stopbits }
  Port[BA+1]:=0;  { keine Interrupts }
  Port[BA+4]:=0;  { DTR = 0, RTS = 0}
  for i:= 1 to 3 do
  Dummy:=Port[BA];   { UART leeren }
end;

 procedure DTR (An : Word);
begin
 
If An = 1 then Port[BA+4] := (Port[BA+4] OR 1) else
     Port[BA+4] := (Port[BA+4] AND 254);
end;

procedure RTS (An : Word);
begin
  If An = 1 then Port[BA+4] := (Port[BA+4] OR 2) else
     Port[BA+4] := (Port[BA+4] AND 253);
end;
 procedure TxD (An : Word);
begin
 If An = 1 then Port[BA+3] := (Port[BA+3] OR 64) else
    Port[BA+3] := (Port[BA+3] AND 191);
end;
 function CTS : Word;

begin
 
CTS := ((Port[BA+6] AND 16) DIV 16);
end;

 function DSR : Word;
begin

 
DSR := ((Port[BA+6] AND 32) DIV 32);
end; 

function Messung(Kanal : Integer) : Integer;   
Var BitOut, BitIn, DataOut, DataIn, t : Word;

 Begin
  DataOut := Kanal * 16;                { Adresse auf Bits 4...7 }
 
DataIn := 0;
 
DTR (0);
  
For BitOut := 1 to 10 DO             { 10 Bits schieben }
   
Begin
      RTS ((DataOut AND 128) DIV 128);  { DIN }
      DataIn := DataIn * 2;
      DTR (1);                          { CLK }
      DataIn := DataIn + CTS;           { DOUT seriell, sammeln }
      DTR (0);                          { CLK }
      DataOut := DataOut * 2;           { Shift }
   end;

  Messung := DataIn;
 { While DSR = 0 DO;}             { End of Conversion abwarten }
 end;

 BEGIN
 clrscr;
 Init;
 RTS (0);
 DTR (0)
 TxD (1);  { 5 Volt Referenzspannung EIN }
 HW := Messung(0);

 REPEAT
  EDIT1 := (Messung (0) - 512) / 512 * 5000;
  gotoxy(5,4);
  write('Kanal 0 : ',Messung (0), '  ',EDIT1:5:0,' mV   ');
  delay (100);                
 UNTIL KeyPressed;
 TxD(0); { 5 Volt Referenzspannung AUS }
END.

Programmbeispiel in Delphi 4

Das folgende Beispiel zeigt ein einfaches Test-Programm in Delphi 4. Das Projekt Serai6p liegt auf der Diskette bei. Hier wird die Rsline32.DLL zur Ansteuerung der Schnittstellenleitungen verwendet.

 

function Messung (Kanal: Integer): Word;
var BitOut, BitIn, DataOut, DataIn: Word;
begin
  DataOut := Kanal * 16;  // Adresse auf Bits 4...7
  DataIn := 0;
  for BitOut := 1 to 10 do begin
    RTS ((DataOut And 128)div 128);   //Din
    DataIn := DataIn * 2;
    DTR (1);                          //Clock
    DataIn := DataIn + CTS;           //Dout
    DTR (0);
    DataOut := DataOut * 2;
  end;

  Messung := DataIn;
  While DSR() =0 do;         //EOC abwarten
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Messung (0); 
  Edit1.Text := floattostr((Messung (1)-512)/512 * 5) ;
  Edit2.Text := floattostr((Messung (2))/1024 * 10) ;
  Edit3.Text := floattostr((Messung (3)-512)/512 * 10) ;
  Edit4.Text := floattostr((Messung (4)-512)/512 * 10) ;
  Edit5.Text := floattostr((Messung (5))/1024 * 10) ;
  Edit6.Text := floattostr((Messung (0)-512)/512 * 5) ;
end;


.
.
Start Spezial Hardware Software Download Links

AK MODUL-BUS Computer GmbH, Münsterstr. 45, 48477 Hörstel-Riesenbeck, Tel. +49-54 54 / 9 34 36 36 Fax +49-54 54 / 9 34 36 37
 Mail: info@ak-modul-bus.de