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

Ergebnis 1 bis 7 von 7

Thema: Variablen als Flankenmerker

  1. #1
    Registriert seit
    15.04.2006
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Warum Kann man Flankenmerker bei S7 nicht auf Variablen Speichern?
    Code:
    U E1.0
    FP M1.0
    = A1.0
    das funktioniert, aber das nicht:
    Code:
    U E1.0
    FP #fptemp
    =A1.0
    Zitieren Zitieren Variablen als Flankenmerker  

  2. #2
    Registriert seit
    15.11.2005
    Beiträge
    89
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn Du #fptemp im TEMP Lakoalvariablenbereich dekalriert hast, dann folgender Auszug aus der Hilfe:

    Daten, temporär
    Temporäre Daten sind Lokaldaten eines Bausteins, die während der Bearbeitung eines Bausteins im Lokaldatenstack (L-Stack) abgelegt werden
    und nach der Bearbeitung nicht mehr verfügbar sind.

    Gruss nairolf
    _________________________________________
    Solls funktionieren, oder darfs auch Siemens sein?

  3. #3
    Registriert seit
    14.06.2005
    Beiträge
    76
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Nu klar kannste das. Deine Variable muss aber eine INOUT sein.
    Warum?
    Der S7-Baustein wird zur Bearbeitung in den Arbeitsspeicher geladen. Ein Speicherbereich wird dabei für die Variablen freigehalten. Bevor der Baustein bearbeitet wird, werden die Variablen von IN und INOUT zugewiesen. Deine Flanke ist dann wahr, wenn das VKE 1 und die Variable selbst Null ist und durch das VKE wahr wird. Kannst Du selbst ausprobieren.
    Dein Eingang 1.0 bleibt wahr und Du toggelst nur den Merker 1.0 auf Null. Schon wird wieder A1.0 wahr.
    Dein Vorgängerbaustein hat den Speicher, Deiner tmp Variable auf Null gesetzt: A1.0 wird wahr. Der Speicher wahr 1: A1.0 bleibt Null.
    Ich habe mal einen FC gehabt der das Signalhorn ansprechen sollte, falls ein Fehler erkannt wird. Das ging etwa so:

    AUF #alt_DB
    L DBW [AR1,P#0.0]

    AUF #neu_DB
    L DBW [AR1,P#0.0]
    T #tmp_word
    XOW
    L #tmp_word
    UW
    L 0
    >I
    S #horn

    Also Zwei DBs wurden verglichen falls ein Bit im neu_DB gesetzt war wurde auch horn gesetzt und beim quittieren rückgesetzt. Nur fing das horn machmal zu tuten an ohne das ein Fehler vor lag. Einfach weil der Speicherbereich der Out-Variable horn zufällig gesetzt war.

  4. #4
    Registriert seit
    15.11.2005
    Beiträge
    89
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Blinzeln

    Ich bezog mich auch auf eine TEMP und nicht IN oder IN/OUT-Variablen
    _________________________________________
    Solls funktionieren, oder darfs auch Siemens sein?

  5. #5
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.334
    Danke
    27
    Erhielt 129 Danke für 116 Beiträge

    Standard

    Nur fing das horn machmal zu tuten an ohne das ein Fehler vor lag. Einfach weil der Speicherbereich der Out-Variable horn zufällig gesetzt war.
    Das spricht für sich und sollte so ja nicht sein!


    Andere Möglichkeit beim FB nicht TEMP sondern STAT verwenden.

  6. #6
    Merker0.0 Gast

    Standard

    Moin,
    so wirds gemacht:
    Code:
    u e1.0
    fp #fptemp
    u #fptemp
    = a1.0
    Eventuell musst du eine statische Variable benutzen, um dir den Zustand über einen ganzen Zyklus zu merken.

  7. #7
    StefanK Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und so wird es nicht gemacht:

    Code:
    u e1.0
    fp #fptemp u #fptemp = a1.0

    Weil:
    1.) Der Flankenmerker MUSS statisch sein, da eine temporäre Variable im nächsten SPS-Zyklus 0 bzw. undefiniert ist.
    2.) Die Abfrage "u #fptemp" funkioniert nicht, da der Status der Variablen = e1.0 ist. (Grundlagen)

    Sondern so:
    Code:
    U   E1.0
    FP  #fpstat   // statische Variable
    =   A1.0

Ähnliche Themen

  1. Temp Flankenmerker
    Von baalrok im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 06.03.2012, 13:32
  2. Flankenmerker
    Von Manfred Stangl im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 24.03.2009, 08:31
  3. Flankenmerker funktioniert nicht
    Von ogstyle im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.07.2007, 13:36
  4. Flankenmerker in FB immer TRUE
    Von Reto im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.10.2006, 02:41
  5. Pointer auf Flankenmerker
    Von MEMO - Matthias im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 28.07.2005, 23:10

Lesezeichen

Berechtigungen

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