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

Ergebnis 1 bis 9 von 9

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

  1. #1
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    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
    Zitieren Zitieren Lokaldatenbereich L: Darf der benutzt werden vom Anwender?  

  2. #2
    plc_tippser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    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
    Registriert seit
    21.05.2004
    Beiträge
    418
    Danke
    31
    Erhielt 16 Danke für 8 Beiträge

    Standard

    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
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    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
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    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

    Standard

    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
    Zitieren Zitieren nur indirekt  

  7. #7
    Registriert seit
    29.08.2003
    Beiträge
    221
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    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 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    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

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 12.09.2011, 01:11
  2. Wie oft kann der FC AG_LSEND benutzt werden
    Von SinusQuadrat im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.10.2010, 11:11
  3. Was darf über eine SPS gesteuert werden
    Von madman im Forum Schaltschrankbau
    Antworten: 12
    Letzter Beitrag: 15.12.2007, 19:10
  4. Lokaldatenbereich
    Von Kleissler im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.04.2005, 10:42
  5. Lokaldatenbereich des Vorgängerbausteins
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.11.2003, 10:23

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •