procedure TForm11.processM6Message();
begin
try
with Status.CNC
do begin
if (ZREFE <> CNC_Status_Alt.ZREFE)
or F_Neu
then begin {Referenzstatus-Ausgabe}
violett(Image1);
case ZREFE
of
0:WriteXY(Image1,27,5,'
Referenz nicht angefahren');
1:WriteXY(Image1,27,5,'
Referenz am anfahren ');
2:
begin
gruen(Image1);
WriteXY(Image1,27,5,'
Referenz angefahren ')
end;
//otherwise;
end;
{case}
gruen(Image1);
end;
{then}
{WriteXY(22,25,' 2 ');} {==testpunkt ================}
ByteAusgabe(Image1,CNC_Status_Alt.ZINP1,ZINP1,F_Neu,27, 7);
{System-}
ByteAusgabe(Image1,CNC_Status_Alt.ZINP2,ZINP2,F_Neu,27, 8);
{Eingangszustaende}
ByteAusgabe(Image1,CNC_Status_Alt.ZOUT1,ZOUT1,F_Neu,27,9);
{System-}
ByteAusgabe(Image1,CNC_Status_Alt.ZOUT2,ZOUT2,F_Neu,27,10);
{Ausgangszustaende}
{ -----Achsen Status Ausgabe---------------- }
for i:= 1
to 8
do ByteAusgabe(Image1,Achsen_Status_alt[i],Achsen_Status[i],F_Neu,27,13 + i);
Achsen_Status_alt:= Achsen_Status;
{----- Achsen Endlage Ausgabe -----------}
for i:= 1
to 8
do ByteAusgabe(Image1,Achsen_Endlage_alt[i],Achsen_Endlage[i],F_Neu,37,13 + i);
Achsen_Endlage_alt:= Achsen_Endlage;
{---------------------------}
if FLAG <> 1
{Endlage inaktiv}
then begin
ByteAusgabe(Image1,CNC_Status_Alt.POSA1,POSA1,F_Neu,27,11);
{Poser-Zustaende}
ByteAusgabe(Image1,CNC_Status_Alt.POSA2,POSA2,F_Neu,27,12);
end;
{then}
WriteXY(Image1,22,25,'
3 ');
{==testpunkt ==============}
CNC_Status_Alt:=Status.CNC;
{ MAN Bildschirm }
//Taste:=' ';
//ZeichenLesen(false,Taste);
WriteXY(Image1,22,25,'
4 ');
{==testpunkt ============}
{-------- versuch1 --------------------}
{ if (ord(Taste) <> #0) then WriteXY(12,25,Taste);}
WriteXY(Image1,22,25,'
5 ');
{==testpunkt =============}
{---------------------------------------}
//case upshift(Taste) of
//'A':F_obereAchsen:=Not F_obereAchsen {Anzeigen (toggeln)}
//otherwise;
//end; {case}
end;
{with}
except
on e:
Exception do
raise Exception.Create(format('
Error on processM6Message',[e.
Message]));
end;
end;
procedure TForm11.processM4Message();
begin
try
WriteXY(Image1,22,25,'
6 ');
{==testpunkt ============}
//getblk(false);
WriteXY(Image1,22,25,'
7 ');
{==testpunkt ============}
IstWertAnzeige(Image1);
{getblk drin }
WriteXY(Image1,22,25,'
8 ');
{==testpunkt ============}
F_Neu:=false;
WriteXY(Image1,22,25,'
9');
{==testpunkt ===LOOP End=====}
except
on e:
Exception do
raise Exception.Create(format(('
Error on processM4Message',[e.
Message]));
end;
end;
procedure processStartMessage();
begin
try
//InterEnable;{ist nicht mehr aktiv}
//getblk(false);
//StatusBild;
F_obereAchsen:=false;F_obereAchsenAlt:=true;
{Ausgabe erzwingen}
Init_IstWerte(IstWerte_Alt);
F_Neu:=true;
//getblk(false);
IstWertAnzeige(Image1);
//getblk(false);
F_MSynch:=false;
{Meldungen duerfen zwischendurch eingelesen werden}
except
on e:
Exception do
raise Exception.Create(format('
Error on processStartMessage',[e.
Message]));
end;
end;
procedure TForm11.ManWindowMessage(
var Message : TMessage );
var MessageData : PDataMessage;
GetMessageData : PDataMessage;
NCSatz :T_NCSatz;
Parity :char;
Data :stringx;
begin
// InitializeCriticalSection(EmpfangCS); das würde ich in FormCreate verlegen.
EnterCriticalSection(EmpfangCS);
try
case Message.WParam
of
START: processStartMessage;
M6: processM6Message;
M4: processM4Message;
end;
finally
LeaveCriticalSection(EmpfangCS);
end;