Hy!
Der Code zum Einlesen lautet:
Code:
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;
Erläuterung: Durch eine Schaltuhr wird die Schnittstellenabfrage
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