![]() |
Datenauswertung von der Seriellen Schnittstelle
Hallo,
ich habe folgendes Problem: Mein Programm fragt nach dem Start der Schaltuhr die Serielle Schnittstelle ab und liest permanent Spannungswerte ein, die ich "irgendwie" protokollieren muß. Wie mache ich das, bzw. welche "einfachen" Möglichkeiten gibt es? Gruß Thorsten |
Re: Datenauswertung von der Seriellen Schnittstelle
Hallo,
sag uns doch wie Du überhaup´t einliest, mit welcher Komponente machst Du das? Um die ganzen Werte zu speichern könntest Du z.B. eine StringList nehmen, oder auch ein einfaches TextFile. Grüsse, Daniel :hi: |
Re: Datenauswertung von der Seriellen Schnittstelle
Hy!
Der Code zum Einlesen lautet:
Code:
Erläuterung: Durch eine Schaltuhr wird die Schnittstellenabfrage
procedure TForm3.FormCreate2(Sender: TObject);
var text: string ; begin OpenCom(pchar('com2:9600,N,8,1')); Timer2.Interval := 1000; Timer2.Enabled := true; Label15.Caption:= TimeToStr (Time); end; procedure TForm3.Timer2Timer(Sender: TObject); var Hour, Min, Sec, mSec: Word; begin if Opencom(Pchar('COM2:9600,N,8,1')) = 0 then ShowMessage ('COM2 belegt'); Label15.Caption:= TimeToStr (Time); DecodeTime(time, Hour, Min, Sec, mSec); RealTime (true); DTR (1); DTR (0); RealTime (false); if (Time > StrToTime (Edit2.Text)) and (Time < StrToTime (Edit3.Text)) then DTR (1); if (Time > StrToTime (Edit3.Text)) then DTR (0); end; function Zaehler: Double; var Zeit : Double; begin RealTime (true); DTR (1); TimeInitus; While(( CTS=1) and (TimeReadus < 50000)) do; Zeit:=TimeReadus; DTR (0); RealTime (false); Zaehler := Zeit; end; procedure Nullpunkt; begin delay (500); Nullp := -(Zaehler/ln(1-Neg/(Pos+Neg))); Delay (500); end; procedure TForm3.FormCreate(Sender: TObject); begin OpenCom(pchar('com2:9600,N,8,1')); DTR(0); RTS (1); TXD (0); Timer1.Enabled := false; delay (500); Nullp := -(Zaehler/ln(1-Neg/(Pos+Neg))); Delay (500); Timer1.Enabled := false; Nullpunkt; Timer1.Enabled := true; Timer2.Interval := 1000; Timer2.Enabled := true; Label15.Caption:= TimeToStr (Time); end; procedure TForm3.Timer1Timer(Sender: TObject); var Ausgabe:String; Zeit: Double; Spannung:Real; begin Zeit := Zaehler; (*Spannung := (neg+Pos)*(1-exp(-Zeit/Nullp))-Neg; Spannung := round(Spannung*100)/100; *) Edit1.Text := floattostr(Spannung) + ' V'; end; procedure TForm3.Button9Click(Sender: TObject); begin Timer1.Enabled := false; Nullpunkt; Timer1.Enabled := true; end; gestartet und gestoppt und es werden von einer Platine (Analog/Digital Umsetzeung) Spannungswerte eingelesen, die ich protokollieren muß. Wie sieht denn das z.B mit StringList aus? Gruß Thorsten |
Re: Datenauswertung von der Seriellen Schnittstelle
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz