Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 9 of 9

Thread: Lokaldatenbereich L: Darf der benutzt werden vom Anwender?

  1. #1
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 293 Danke für 86 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,

    immer wieder sehe ich bei einem Kollegen, das er die Lokaldaten vergewaltigt. Also:
    Code:
     L     LB     0
    U L0.0
    usw.
    Ist das überhaupt legitim? Oder chrashed das irgendwann unter umständen mal mit dem System, welches ja diesen Bereich für die Wandlung von FUP/KOP in AWL nutzt.?

    Ich nutze diese nie. Man kann ja noch nicht mal eine Symbolik hinterlegen.

    Gruß pt
    Reply With Quote Reply With Quote Lokaldatenbereich L: Darf der benutzt werden vom Anwender?  

  2. #2
    plc_tippser is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 293 Danke für 86 Beiträge

    Default

    Wenn wir dann gerade dabei sind, wer kennt denn "VL" (Vorgänger-Lokaldaten des aufrufenden Bausteins)

    Kann ich da also auf die Lokaldaten eines FCs zurückgreifen, aus dem zum Beispiel ein FB aufgerufen wurde?

    pt

  3. #3
    Join Date
    21.05.2004
    Posts
    462
    Danke
    33
    Erhielt 16 Danke für 8 Beiträge

    Default

    Lokaldaten sind auch für den Anwender da.
    aber lese mal in
    HIER_PDF

    Gruss
    Kurt

    scheint die haben beim Berger Hansi abgeschrieben

  4. #4
    Join Date
    16.06.2003
    Location
    88356 Ostrach
    Posts
    5,014
    Danke
    1,348
    Erhielt 1,172 Danke für 553 Beiträge

    Default

    in den lokaldaten steht das gleiche wie in den temp variablen.

    hast du zb eine temp variable #plc_tippser als word am anfang des temp bereiches deklariert, dann kannst du auf diese im programm mit #plc_tippser oder mit LW 0 zugreifen.

    man sollte aber immer bei der symbolischen adressierung bleiben, da es sonst zu verschiebungen kommt wenn variablen eingefügt werden....

    wobei der simatic manager eine warnung ausgibt wenn man variablen einfügen/löschen will und bereits absolut auf den lokaldatenbereich zugegriffen wird.


    ich finde die funktion ganz praktisch zum basteln von anypointern oder date_time.

    du legst die anyvariable die einen aufgerufenen baustein einen pointer übergibt als temp an, und beschreibst die einzelen bytes in ihr mit LB 0...

  5. #5
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,825
    Danke
    752
    Erhielt 3,143 Danke für 2,236 Beiträge

    Default

    Die kann man benutzen, manchmal kommt man nicht drumherum, wenn du z.Bsp ein Word an einen FC übergibst und dann ein bestimmtes Bit benötigst ist der Zugriff über U L0.0 am einfachsten. Wenn du immer AWL programmierst, kann auch nichts durcheinandergeraten, wenn du FUP oder KOP verwendest heißt es aufpassen beim Einfügen einr neuen Funktion, da hier u.U. Lokaldaten als Platzhalter und Zwischenspeicher verwendet werden, evtl. mußt du dann deine Lokaldaten-Zugriffe korrigieren. Immer korrigieren mußt du, wenn du neue Lokaldaten definierst, dann wird alles danach stehende nach unten verschoben! Ich finde auch, es ist besser die definierten Variablen zu benutzen.

    Was wirklich grausam ist, ist das Verändern von statischen Variablen eines Instanz-DB's aus einem andern Baustein heraus, zum totsuchen !

    Von VL hab ich noch nichts gehört, mal testen, aber dann wirds mit dem Wiederfinden im Programm echt kriminell !

    Gruß Ralle !

  6. #6
    Anonymous Gast

    Default

    Hallo Tippser,

    Zugriff auf die Lokaldaten des Vorgängers (V) hast du nur indirekt über Pointer und Adressregister. Du kannst z.Bsp. eine Lokalvariable als Pointer übergeben und dann auf die Lokaldaten des aufrufenden Bausteins adressieren. Ein direkter Zugriff wie "L VW10" ist nicht möglich. Prinzipiell könnte man sich den Pointer auch selbst in einem DW zusammenstellen, wäre aber bei Veränderung des Lokaldatenbereiches auch wieder strafbar.



    Code:
          L     P##P1                       //IN-Pointer
          LAR2  
          L     W [AR2,P#0.0]
          T     #TEMP_INT
          AUF   DB [#TEMP_INT]
          L     D [AR2,P#2.0]
          LAR2  
          L     W [AR2,P#6.0]
    Meinst du das?


    Gruß, Onkel
    Reply With Quote Reply With Quote nur indirekt  

  7. #7
    Join Date
    29.08.2003
    Posts
    221
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default

    Moin

    aber Vorsicht man hat bei Voller schachtelungstiefe nur 256 byte an Lokaldaten zur Verfügung (zumindest bei der 300) .
    Bei der 400 waren es 512 byte wenn ich mich recht endsinne.

    Ich nutze die Dinger immer als Schmiermerker da muss ich dann keine Merker verbraten

    MfG Balou
    So wie das Eisen außer gebrauch rostet und das stillstehende Wasser verdirbt oder bei Kälte gefriert, so verkommt der Geist ohne Übung.

  8. #8
    plc_tippser is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 293 Danke für 86 Beiträge

    Default

    Das mit den Lokaldaten gefällt mir gar nicht.
    Gerade habe ich das System mal geärgert:
    Beschreibung:

    Ihre eingegebene Deklarationszeile aus dem VAR_TEMP kollidiert mit einem absoluten Zugriff auf den L-Stack im Programmrumpf des aktuellen Bausteins. In Ansicht AWL könnte das bedeuten, daß vom KOP/FUP Compiler angelegte compiler-interne Lokaldaten zu Anwender-Lokaldaten werden. Dann ist die Umschaltung in Sicht KOP/FUP nicht mehr möglich.

    Behebung:

    Wenn Sie nur AWL-Sicht interessiert, können Sie diese Meldung ignorieren.
    Als KOP/FUP Programmierer sollten Sie solche Deklarationen nur in Ansicht KOP/FUP durchführen.
    Also, die L x packe ich nicht an. Es wird ja auch nicht automatisch auf den symbolischen Namen zugegriffen, macht also auch keinen übersichtlichen Sinn. Mit den Temp, was ja das gleiche ist, werde ich weiter arbeiten, muss aber aufpassen, das der FUP/KOP Compiler mir nicht in die Quere kommt.

    Gruß üt

  9. #9
    plc_tippser is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 293 Danke für 86 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mit dem VL das habe ich zufällig im Operationslistenbuch für S7 300 (EWA 4NEB 710 6070-01b) Seite 16 gesehen, konnte es aber noch nicht nachvollziehen wie es geht. Gast hat ja das schon geschrieben.

    Gruß pt

Similar Threads

  1. TIA Problem Ausgang muss 2 mal benutzt werden
    By Finkus in forum Simatic
    Replies: 4
    Last Post: 10.03.2017, 11:40
  2. Replies: 8
    Last Post: 12.09.2011, 02:11
  3. Wie oft kann der FC AG_LSEND benutzt werden
    By SinusQuadrat in forum Simatic
    Replies: 6
    Last Post: 21.10.2010, 12:11
  4. Was darf über eine SPS gesteuert werden
    By madman in forum Schaltschrankbau
    Replies: 12
    Last Post: 15.12.2007, 20:10
  5. Name vom DIW soll angezeigt werden.
    By Tigerkroete in forum Simatic
    Replies: 2
    Last Post: 12.06.2006, 10:54

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •