Hallo erstmal dies ist mein erster theard in diesem forum und ich habe ein Problem mit einer Beckhoff KL6021 Klemme.
Folgenden Versuchsaufbau habe ich:
Output von der Klemme 1 geht in den input von der Klemme 2.
So jetzt habe ich wie in der Dokumentation beschrieben, 2 Tasks gemacht und dann die Programme so Geschrieben:
ComBackground(ST)
Code:
Code:
PROGRAM ComBackground
VAR
Sender_Init :KL6Init;
Sender_Com :KL6Control;
serstat AT%QB5002:BYTE;
FIRST: BOOL;
END_VAR
Code:
IF NOT FIRST THEN
Sender_Init( Start:=TRUE,
SerStatus:= serstat,
SerCtrl:= serstat);
FIRST:=TRUE;
END_IF
Sender_Com( COMin:= Sender_Data_IN,
COMout:= Sender_Data_OUT,
TxBuffer:= Sender_TxBuffer,
RxBuffer:= Sender_RxBuffer);[/
CODE]
MAIN.PRG (ST)
Code:
Code:
PROGRAM MAIN
VAR
Senden_ctrl: BOOL;
Lesen_ctrl: BOOL;
END_VAR
Code:
IF Senden_ctrl THEN
Senden();
Senden_ctrl:=FALSE;
END_IF
IF Lesen_ctrl THEN
Lesen();
Lesen_ctrl:= FALSE;
END_IF
Senden.prg (ST)
Code:
Code:
PROGRAM Senden
VAR
Print:SendString;
PrintChar:SendByte;
Timer:TON;
i:BYTE;
END_VAR
Code:
Timer(IN:=TRUE,PT:=T#1s);
IF Timer.Q THEN
Print(SendString:='*Hello World',TXbuffer:=Sender_TxBuffer);
Timer(IN:= FALSE);
FOR i:=0 TO 9 DO
PrintChar(SendByte := 48+i,TXbuffer:=Sender_TxBuffer);
END_FOR
Print(SendString:='$0D$0A', TXbuffer:= Sender_TxBuffer);
Timer(in:=FALSE);
END_IF
Lesen.prg (ST)
Code:
Code:
PROGRAM Lesen
VAR
ReadScanner:ReceiveString;
Barcode:STRING;
LastBarcode:STRING;
Edge:R_TRIG;
empfang AT%IB5004:BYTE;
Empfang_Init: KL6Init;
END_VAR
Code:
Empfang_Init( Start:=TRUE,
SerStatus:= empfang,
SerCtrl:=empfang);
ReadScanner( Prefix:='*',
Suffix:='$0A$0A',
Timeout:=T#0S,
Reset:=FALSE,
ReceivedString:=Barcode,
RxBuffer:=Sender_RxBuffer);
Edge(CLK:=ReadScanner.StringReceived);
IF Edge.Q THEN
LastBarcode:=Barcode;
END_IF
SO als Global Vars hab ich:
Code:
VAR_GLOBAL
(SENDER_IN&OUT**********)
Sender_Data_IN AT%IB5000 :KL6inData;
Sender_Data_OUT AT%QB5000 :KL6outData;
Sender_TxBuffer : ComBuffer;
Sender_RxBuffer :ComBuffer;
(END_VAR_SENDER*********)
END_VAR
Ich hab die Biblotheken:COMlib.lib,ChrAsc.lib,Standart.lib drinn
Noch ne kleine erklärung die If'S in der Main force ich auf true.... als schalter hab ich mir das gedacht.