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

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 67

Thema: Frage zu Temp-Variablen...

  1. #41
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Mit "Lokalen Variablen" von Instanzdaten meint godi deren private gekapselte Daten (die Daten der aufgerufenen Funktion, ein Zugriff auf diese ist tabu), während die ebenfalls nutzbaren TEMP-Daten als Zwischenvariablen die lokalen privaten Variablen des Aufrufers sind - und der kann mit seinen privaten Variablen machen was er will, hauptsache die Variablen enthalten auch etwas sinnvolles beim Lesezugriff.

    Harald

    Genau das habe ich gemeint.

  2. #42
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Gerade bei mehrfach-Instanzen von FB finde ich das direkte Verwenden der Instanz-Ausgänge sinnvoll, einfach und übersichtlich, und es kommt auch gut in den Referenzdaten:
    Code:
    U "Motor1".Running
    U "Motor2".Running
    U "Motor3".Running
    U "Motor4".Running
    = "enable_Transport"
    Das stimmt schon, dass es einfach und in manchen Fällen auch übersichtlich ist.
    Das Problem liegt eher an der Entwicklungsumgebung Step7 und TIA das es möglich ist die Out-Parameter auch zu beschreiben.
    Besser wäre wenn zb mit "Motor1".out.running nur lesend darauf zugegriffen werden kann und mit Absoluten Operanden gar nicht.
    Das selbe gilt natürlich für in (nur lesend) in_out (schreiben und lesen) und stat (gar kein Zugriff).

    Aber da hinkt Siemens beim TIA mit der Abwärtskompatibilität zum Simatic Manager hinten nach.

  3. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    PN/DP (04.02.2013)

  4. #43
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Mit "Lokalen Variablen" von Instanzdaten meint godi deren private gekapselte Daten (die Daten der aufgerufenen Funktion, ein Zugriff auf diese ist tabu)...

    Harald
    ... also doch die Variablen des zugehörigen FB's oder? Und das sind doch, wenn ich STAT-Variablen deklariere, nicht die lokalen Variablen.
    LG
    spirit

  5. #44
    Registriert seit
    09.08.2006
    Beiträge
    3.628
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    ... also doch die Variablen des zugehörigen FB's oder? Und das sind doch, wenn ich STAT-Variablen deklariere, nicht die lokalen Variablen.
    Ohh mann... Begriffe sind oft Schall und Rauch. Der eine verwendet sie und der andere versteht das Gegenteil darunter.

    Lokale statische Variablen sind statische Variablen in nem (Instanz)-DB welche man nicht extern (ausserhalb des zugehörigen FBs) verwenden sollte. Es sind aber eigentlich globale statische Variablen, da sie trotzdem extern verfügbar sind. Die liegen auch nicht im Lokaldatenstack sondern in nem DB.

    Gruß

  6. #45
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    In der S7-Welt versteht man unter Lokalen Variablen alle die in dem Bausteinkopf deklariert werden.
    Egal ob sie jetzt im stat, temp, in, in_out, out bereich liegen. Also alle Variablen auf die man mit "#Variablenname" zugreift.

    Globale Variablen sind zb Merker. Diese können in jedem Baustein verwendet werden.
    Auch die Daten in einem Datenbaustein sind Global.

    Es wird aber zwischen Globalen Datenbausteinen (die du selbst anlegst und Global_DB auswählst) und Instanzdatenbausteinen (die zu einem FB gehören und somit die Lokalen Variablen* des FB's beinhalten) unterschieden.
    Da es sich aber bei beiden Datenbausteinen um das selbe "Speicherkonzept" handelt gibt es keinen Unterschied beim Zugriff auf die Bausteine.

    Also wenn du jetzt in einem FB eine Variable im Stat-Bereich namens "Wert" definierst so kannst du im FB mittels #Wert auf den Speicherbereich zugreifen.
    Ausserhalb des FB's könntest du aber auch über den Instanzdatenbaustein zugreifen mittels DBx.Wert => Dies ist nicht elegant.

    *Ausser die Temp-Variablen, dessen Speicherbereich liegt im Stack.

  7. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    ducati (04.02.2013)

  8. #46
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Also wenn du jetzt in einem FB eine Variable im Stat-Bereich namens "Wert" definierst so kannst du im FB mittels #Wert auf den Speicherbereich zugreifen.
    Ausserhalb des FB's könntest du aber auch über den Instanzdatenbaustein zugreifen mittels DBx.Wert => Dies ist nicht elegant.
    Ok, vielen Dank! Soweit ich das jetzt verstanden habe, ist das ja exakt der Vorschlag von Harald...

    Ansonsten blieb halt nur der Weg über die Temp-Variablen, da ich ja außerhalb des FB's auf seinen Speicherbereich zugreife.
    LG
    spirit

  9. #47
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Ok, vielen Dank! Soweit ich das jetzt verstanden habe, ist das ja exakt der Vorschlag von Harald...

    Ansonsten blieb halt nur der Weg über die Temp-Variablen, da ich ja außerhalb des FB's auf seinen Speicherbereich zugreife.
    Es bleibt nicht nur der Weg über die Temp-Variablen.
    Du kannst die Werte in jedem beliebigen Speicherbereich (Temp, Stat, anderer DB, Merkerbereich) zwischenspeichern.
    Jedoch wenn du die Werte nur Lokal (also in dem Baustein) und nur während eines Zyklus benötigst dann genügt es wenn diese Werte im Temp Bereich liegen.

    Ja das S7-Speicherkonzept kann am Anfang zu Verwirrung führen!

  10. #48
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Oki, vielen Dank godi!

    Aber zumindest hätte ich (als Anfängerin) bei einem Zugriff über den InstanzDB auf die statischen Variablen des FB's etwas mehr Sicherheit, dass diese auch im nächsten Zyklus (zwingend) noch identisch sind...
    LG
    spirit

  11. #49
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.187
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Zitat Zitat von godi Beitrag anzeigen
    Also wenn du jetzt in einem FB eine Variable im Stat-Bereich namens "Wert" definierst so kannst du im FB mittels #Wert auf den Speicherbereich zugreifen.
    Ausserhalb des FB's könntest du aber auch über den Instanzdatenbaustein zugreifen mittels DBx.Wert => Dies ist nicht elegant.
    Soweit ich das jetzt verstanden habe, ist das ja exakt der Vorschlag von Harald...
    Nein ist es nicht. Ich würde nie vorschlagen, von außen auf Instanz-Variablen im STAT-Bereich zuzugreifen. Ich habe nur gezeigt, wie man von außen auf Variablen des IN- und OUT-Bereichs zugreift. Das ist für mich etwas anderes ...

    Um jetzt allen Grundsatzdiskussionen um Instanzdaten und Programmierstrategien aus dem Weg zu gehen:
    Benutze Zwischenvariablen aus dem TEMP-Bereich - so wie Du es von Anfang an gewollt hast. Solange sichergestellt ist, daß Dein FB1 in diese TEMP-Variablen schreibt, bevor der FB2 daraus liest und niemand diese Variablen verändert, solange ist alles korrekt und gut.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  12. #50
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.187
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von spirit Beitrag anzeigen
    Aber zumindest hätte ich (als Anfängerin) bei einem Zugriff über den InstanzDB auf die statischen Variablen des FB's etwas mehr Sicherheit, dass diese auch im nächsten Zyklus (zwingend) noch identisch sind...
    OOOOOhhhhhhh, DAS ist tatsächlich noch viel gefährlicher als innerhalb eines Zyklus von einem Netzwerk zum nächsten eine TEMP-Variable zu nutzen.

    Frag' lieber nicht warum

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. TEMP Variablen (Step7)
    Von Rüdiger im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 28.10.2010, 21:00
  2. Temp Variablen
    Von centrox im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 23.02.2009, 16:05
  3. IN Variablen nach TEMP
    Von neuer_user im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.10.2006, 16:26
  4. auf TEMP Variablen zugreifen
    Von serdnar im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.10.2006, 14:07
  5. Stat und Temp Variablen
    Von Anonymous im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 13.07.2004, 11:20

Lesezeichen

Berechtigungen

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