Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff BC8100 Bedienungsanleitung Seite 30

Rs232 busklemmen controller
Inhaltsverzeichnis

Werbung

Anhang
Empfangen
Globale Variablen
28
END_IF
IF Starten THEN
(*-------------------------CHECKSUMME ermitteln ----------------------------------*)
Summe:=0;
FOR i3:=0 TO 5 DO
Summe:=Summe+ Senden[i3];
END_FOR
(*-------------------------ARRAY SENDEN ----------------------------------------------*)
FOR J0:=0 TO 6 DO
IF J0<4 THEN
ELSIF J0=4 THEN
ELSIF J0=5 THEN
ELSIF J0=6 THEN
END_IF
Send(SendByte:=Sb , TxBuffer:=TxBuffer );
END_FOR
(*-------------------------COUNTER-----------------------------------------------------*)
i2:=i2+1;
IF i2>255 THEN
i2:=0;
END_IF
senden[4]:=i2;
Starten:=FALSE;
END_IF
(*------------------------EMPFANG-------------------------------------------------*)
REPEAT
Receive(RxBuffer:= RxBuffer);
IF Receive.ByteReceived THEN
kommen sind *)
byAusgang1[t1]:= Receive.ReceivedByte;
byausgang1[t1];
IF byAusgang1[0]<>16#70 THEN
Startzeichen wird die Schleife verlassen *)
EXIT;
END_IF
EingWorte:=byAusgang1[1];
t1:=t1+1;
END_IF
UNTIL rxBuffer.count = 0
END_REPEAT
IF (T1>5+2*EingWorte) THEN
T1:=0;
END_IF
byAusgang0:=ROL(ByAusgang1[5],byEingang0);
VAR_GLOBAL
(* Adresse 500 ist die Emulation der Klemme
(* wobei %500-Status, %501-D0, %502-D1, %503-D2, %504-D3, %505-D4
*)
Kl6InData
Kl6OutData
RxBuffer
TxBuffer
byAusgang0 AT %QB6: BYTE; (* 2 x KL2114 *)
byEingang0 AT %IB6:BYTE; (* 1 x KL1104 *)
END_VAR
Sb := senden[J0];(* Werte aus dem ARRAY *)
Sb:=senden[J0];(* D0 als Counter von 0 bis 255 *)
Sb:= Senden[J0];
sb:=Summe;
(* Checksumme *)
AT %IB500
: KL6inData5B;
AT %QB500
: KL6outData5B;
(* D1 hier &HFF *)
(* Wartet bis Daten ange-
(* Beim nicht erkennen des
*)
: ComBuffer;
: ComBuffer;
BC8100

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis