Hier ist das Programm
unit KlimaNEU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, OoMisc, AdPort, StdCtrls, jpeg, ExtCtrls, Grids;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
ApdComPort1: TApdComPort;
Schreiben: TButton;
Lesen: TButton;
Comout: TMemo;
ManualTemp: TEdit;
ManualFeucht: TEdit;
ManualZeit: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
ManualTempAusgabe: TMemo;
ManualFeuchtAusgabe: TMemo;
ManualMitteilungen: TMemo;
StaticText6: TStaticText;
StaticText7: TStaticText;
StaticText8: TStaticText;
Image1: TImage;
AutoProgramm: TComboBox;
Programmplatz: TStaticText;
AutoStart: TButton;
AutoStop: TButton;
AutoFeuchtAusgabe: TMemo;
AutoTempAusgabe: TMemo;
StaticText9: TStaticText;
StaticText10: TStaticText;
ManualStart: TButton;
ManualStop: TButton;
ManualReset: TButton;
ProTempAusgabe: TMemo;
ProFeuchtAusgabe: TMemo;
StaticText11: TStaticText;
StaticText12: TStaticText;
StaticText13: TStaticText;
ProStart: TButton;
ProStop: TButton;
ProGrid: TStringGrid;
StaticText14: TStaticText;
StaticText16: TStaticText;
StaticText17: TStaticText;
StaticText18: TStaticText;
ProReset: TButton;
ProRow: TButton;
ProMitteilungen: TMemo;
StaticText19: TStaticText;
StaticText20: TStaticText;
AutoMitteilungen: TMemo;
StaticText21: TStaticText;
procedure AutoProgrammChange(Sender: TObject);
procedure ProStartClick(Sender: TObject);
procedure ProRowClick(Sender: TObject);
procedure ProResetClick(Sender: TObject);
procedure ManualStartClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
const
Stoer1 = 'BEDEUTUNG: Feuchte oder Temperatur außerhalb Bereich! URSACHE: Istwert Feuchte oder Temperatur über- bzw. unterhalb der Prüfgutanlagenkonfiguration. BEHEBUNG: Eingabe überprüfen und Sollwert auf Feuchte- oder Temperaturbereich einstellen!';
Stoer2 = 'BEDEUTUNG: Betriebs-Termperatur-Begrenzer! URSACHE: Grenzwert zum Schutz des Prüfgute überschritten. BEHEBUNG: Grenzwerteinstellung bzw. programmierte Sollwert-Vorgabe überprüfen.';
Stoer3 = 'BEDEUTUNG: Wassermangel Feuchtesystem! URSACHE: Im Befeuchtungssystem ist kein Wasser vorhanden oder Pumpe läuft nicht. BEHEBUNG: 1.Vorratsbehälter mit Wasser auffüllen. 2.Pumpenstörung (siehe Handbuch) beheben.';
Stoer4 = 'BEDEUTUNG: Temperatur-Begrenzer-Prüfraum! URSACHE: Temperatur-Sicherung hat ausgelöst bzw. ist zerbröchen. BEHEBUNG: Anlage ausschalten, Service-Organisation vpn Hereaus-Vötsch verständigen.';
Stoer5 = 'BEDEUTUNG: Überdruck Kompressor Vorkühlung! URSACHE: Überdruck im Kältekreisluaf. BEHEBUNG: Anlage ausschalten, Kondensator reinigen.';
Stoer6 = 'BEDEUTUNG: Vorratsbehälter Feuchtesystem füllen! URSACHE: Der Wasservorrat für die Wassernachspeisung ist erschöpft. BEHEBUNG: Vorratsbehälter mit Wasser auffüllen.';
Stoer7 = 'BEDEUTUNG: Überdruck Kompressor Tiefkühlung! URSACHE: Überdruck im Tiefkühlkreislauf. BEHEBUNG: Anlage ausschalten, Kondensator reinigen.';
Stoer8 = 'BEDEUTUNG: Vorratsbehälter Feuchtesystem füllen! URSACHE: Der Wasservorrat für die psychrometische Meßeinrichtung erschöpft. BEHEBUNG: Vorratsbehälter mit Wasser auffüllen, Anlage schaltet auf Taupunktsteuerung um.';
Stoer9 = 'BEDEUTUNG: Prüfraumventilatormotor! URSACHE: Thermoschutz des Prüfraumventilators hat ausgelöst. BEHEBUNG: Anlage ausschalten, Motor auf Leichtgängigkeit, Verschmutzung und Kühlluftversorgung überprüfen. Reinigen und evtl. Fremdkörper beseitigen.';
implementation
{$R *.DFM}
function ComOpen(ComStr:String):Boolean;
var
comfile : thandle;
Begin
Result := true;
comfile := CreateFile(PCHAR(ComStr),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
If comfile = INVALID_HANDLE_VALUE Then Result := false;
End;
{procedure ComClose;
Begin
closehandle(comfile);
End;}
{procedure TForm1.lesenClick(Sender: TObject);
var
TimeoutBuffer : PCOMMTIMEOUTS;
NumberOfBytesRead : dword;
Buffer : array[0..255] of char;
if ComOpen = INVALID_HANDLE_VALUE then
GetMem(TimeoutBuffer, sizeof(COMMTIMEOUTS));
GetCommTimeouts(comopen, TimeoutBuffer^);
TimeoutBuffer.ReadIntervalTimeout := 100;
TimeoutBuffer.ReadTotalTimeoutMultiplier := 100;
TimeoutBuffer.ReadTotalTimeoutConstant := 100;
SetCommTimeouts(hCommFile, TimeoutBuffer^);
FreeMem(TimeoutBuffer, sizeof(COMMTIMEOUTS));
FillChar(Buffer, sizeof(Buffer), #0);
ReadFile(comopen, Buffer, sizeof(Buffer), NumberOfBytesRead, nil);
CloseHandle(comopen);
comout.caption := buffer.text;
end;}
procedure TForm1.AutoProgrammChange(Sender: TObject);
var
programmplatz : string;
begin
programmplatz := autoprogramm.text;
automitteilungen.lines.text := programmplatz;
end;
procedure TForm1.ProStartClick(Sender: TObject);
var
daten : string;
begin
daten := progrid.cells[1,1];
promitteilungen.lines.Text := daten;
end;
procedure TForm1.ProRowClick(Sender: TObject);
var
rowcount : integer;
begin
progrid.RowCount := progrid.RowCount +1;
end;
procedure TForm1.ProResetClick(Sender: TObject);
begin
progrid.RowCount := progrid.RowCount -1;
end;
procedure TForm1.ManualStartClick(Sender: TObject);
begin
manualmitteilungen.text := '$00E'+' '+manualtemp.text+' '+manualfeucht.text+' '+'0000.0 0000.0 0000.0 0000.0 0000.0 0100000000000000<CR>';
end;
end.