vmolchanov
Level-1
- Beiträge
- 13
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Guten Tag,
ich arbeite mit S7, Steuerung 840D und versuche, die Achsenpositionen mit Hilfe von FB5 einzulesen. Soweit ich weiß, sind die aktuelle Achsenpositionen im Array $AA_IM erhalten. Deswegen habe ich einen DB mit diesem Namen:
Danach rufe ich FB5 wie folgt auf:
Hiermit müssen die Daten von Länge BYTE 4 in P#DB1501.DBX12.0 eingelesen werden. Die Daten bekomme ich nicht.
Wie kann ich die Richtichkeit von Parametern Area, Unit und Index1 überprüfen? In der Doku steht es:
Area - Bereichsadresse: 0: NCK-Variable, 2: Kanal-Variable
Unit - Bereich NCK: Unit:= 1, Bereich Kanal: Kanalnr.
Index1 - Feldindex 1 der Variable. Der Wert der Variable ist 0, wenn der Feldindex nicht benutzt wird.
Andere Idee ist, "actToolBasePos" anstatt "$AA_IM" zu benutzen.
Ich bitte um die Hilfe und Erklärung. Es ist meine erste Erfahrung mit S7 und 840D. Ich kann sehr einfache Sachen übersehen oder falsch verstehen.
Danke.
ich arbeite mit S7, Steuerung 840D und versuche, die Achsenpositionen mit Hilfe von FB5 einzulesen. Soweit ich weiß, sind die aktuelle Achsenpositionen im Array $AA_IM erhalten. Deswegen habe ich einen DB mit diesem Namen:
Code:
[FONT=arial]DATA_BLOCK DB 1659
STRUCT
Varname : STRING[32] := '$AA_IM'; //[FONT=arial][SIZE=2]actToolBasePos???[/SIZE][/FONT]
Vartype :
STRUCT
SYNTAX_ID : BYTE;
BEREICH_U_EINHEIT: BYTE;
SPALTE : WORD;
ZEILE : WORD;
BAUSTEINTYP : BYTE;
ZEILENANZAHL : BYTE;
TYP : BYTE;
LAENGE : BYTE;
END_STRUCT;
END_STRUCT;
BEGIN
END_DATA_BLOCK
DATA_BLOCK DB 1759
FB 5
BEGIN
END_DATA_BLOCK
[/FONT]
Danach rufe ich FB5 wie folgt auf:
Code:
CALL FB 5, DB 1759(
Req := M659.0,
Addr := DB1659.Varname,
Area := B#16#0,
Unit := B#16#1,
Index1 := 1,
Index2 := 0,
CnvtToken := TRUE,
VarToken := DB1659.Vartype,
Error := M659.2,
Done := M659.1,
State := MW700,
RD := P#DB1501.DBX12.0 BYTE 4);
Wie kann ich die Richtichkeit von Parametern Area, Unit und Index1 überprüfen? In der Doku steht es:
Area - Bereichsadresse: 0: NCK-Variable, 2: Kanal-Variable
Unit - Bereich NCK: Unit:= 1, Bereich Kanal: Kanalnr.
Index1 - Feldindex 1 der Variable. Der Wert der Variable ist 0, wenn der Feldindex nicht benutzt wird.
Andere Idee ist, "actToolBasePos" anstatt "$AA_IM" zu benutzen.
Ich bitte um die Hilfe und Erklärung. Es ist meine erste Erfahrung mit S7 und 840D. Ich kann sehr einfache Sachen übersehen oder falsch verstehen.
Danke.