Step 7 Auslesen Achsenposition mit FB5

vmolchanov

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> 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:
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);
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.
 
Bei deinem freundlichen Big$ Mitarbeiter kannst du die NC Toolbox anfragen und in der ist auch der NCVAR Selctor enthalten.


bike
 
Link zum NC-Var Selector bzw. zu Listenhandbuch Systemvariablen gibts bei Siemens in der DocOnWeb auf der Webpage.
 
Istwert 1'ste Achse

Ohne zu es getestet zu haben ....

Code:
DATA_BLOCK DB  122
VERSION : 0.0

STRUCT

 C1_SEMA_measPos21_6:
   STRUCT
   SYNTAX_ID : BYTE := B#16#82;
   bereich_u_einheit : BYTE := B#16#41;
   spalte : WORD := W#16#6;
   zeile : WORD := W#16#1;                //Ist Achsnummer bsp X=1,Y=2 ...
   bausteintyp : BYTE := B#16#71;
   ZEILENANZAHL : BYTE := B#16#1;
   typ : BYTE := B#16#F;
   laenge : BYTE := B#16#8;
   END_STRUCT ;

 END_STRUCT ;

BEGIN
END_DATA_BLOCK


FUNCTION_BLOCK FB121

VAR
      FB2_Req :                BOOL;
      FB2_Error :              BOOL;
      FB2_NDR :                BOOL;
      FB2_STATE :              WORD;
      FB2_meas_pos_1 :         REAL;
      FB2_POS :                "GET";    
END_VAR

BEGIN
NETWORK

TITLE = Ist-Pos. lesen mit FB2

CALL  #FB2_POS(
       Req    :=#FB2_Req,        //start lesen
       NumVar :=1,
       Addr1  :=DB122.C1_SEMA_measPos21_6,             //P#DB120.DBX0.0 :BYTE 10
       Error  :=#FB2_Error,
       NDR    :=#FB2_NDR,
       State  :=#FB2_STATE,
       RD1    :=#FB2_meas_pos_1        //Istwert ...
       );

END_FUNCTION_BLOCK

//Erzuegung InstanzDB FB121
Data_block DB121

      FB121;
BEGIN
End_data_block
 
Zuletzt bearbeitet:
Also wir schauen immer, dass wir das richtige GP verwenden.
Wir wissen noch? nicht, welches GP vorhanden ist und daher kann man auch den Aufruf des FB2 nicht pauschal verwenden.
Und der freundliche Big$ Betreuer hilft bei allen Versionen.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wir schauen immer, dass wir das richtige GP verwenden.

Stimmt schon da sollte er schon schauen, aber hier hat sich eigentlich nix in den Jahren verändert (wenn dann kommen meist neue Variablen hinzu)...
Der FB2 ist schon immer so, einzigst was ja ist, ist ja das man für die PI Dienste den neuen Baustein nehmen soll.
Ich gehe aber hier einmal davon aus, das wenn er ne 840D programmiert er diese schon hat (Grundvorraussetzung) bzw. das Projekt für diese Maschine/Steuerung (dann ist es ja dort enthalten).

Aber er schrieb ja auch nicht, ob für Power oder Solution Line oder sogar schon für Evolution.
 
Zurück
Oben