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

Ergebnis 1 bis 9 von 9

Thema: Das Statuswort - ein nützliches Werkzeug?

  1. #1
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Bei uns in der Firma wird so gut wie nie direkt mit dem Statuswort gearbeitet (ich bin mir nicht mal sicher ob das unsere Programmierer überhaupt darüber Bescheid wissen ).

    Allerdings... find ich immer wieder an Anfang von Funktionen (FBs bin ich mir jetzt nicht sicher) im ersten Netzwerk eine VKE Begrenzung. Das sieht so aus, dass eine temporäre Variable mit dem Namen #VKE angelegt wird und im ersten Netzwerk des Bausteins folgt dann dieses Szenario

    Code:
    U #VKE
    = #VKE
    Jetzt hab ich mich ein wenig schlau gemacht .... =,S,R - Anweisungen begrenzen das VKE, d.h. in der nächsten Zeile folgt eine Erstabfrage. Allerdings blick ich da nicht so wirklich durch...


    • Nutzt ihr das Statuswort bzw. die einzelnen Bits??? Oder nur zu Diagnosezwecken?
    • Kann man wirklich von einem vorherigen Baustein das VKE in den nächsten Baustein Verschleppen und so irrtürmlich (sollte dort ein O, =, S, R als erstes stehen) Sachen setzen/rücksetzen ohne das zu Beabsichtigen? Der Programmierer meinte dass deswegen der obige Code eingesetzt wird, damit nichts passiert.
    • Ferner kann es Auswirkungen, hinsichtlich der Statuswortbits, haben wenn ich irrtürmlich bei einer Verknüpfung statt

    Code:
    U Bedingung 1
    U Bedingung 2
    = Aktion
    das schreibe
    Code:
    O Bedingung 1
    U Bedingung 2
    = Aktion

    • Inwiefern hängen die Bits Erstabfrage, VKE, Status und BIE zusammen?


    Oft lese ich auch hier im Forum dies:

    Code:
    Set
    SAVE
    Was bewirkt das eigentlich genau??

    Vielen Dank für eure Antworten
    Geändert von nutellahase (29.04.2014 um 23:39 Uhr)
    Zitieren Zitieren Das Statuswort - ein nützliches Werkzeug?  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.751
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Also um deine Fragen mal ein wenig zu sortieren:
    Kann man wirklich von einem vorherigen Baustein das VKE in den nächsten Baustein Verschleppen
    Unter gewissen Umständen ist das möglich ... insofern ist das zur Sicherheit definitiv nicht schlecht.

    Zu deinen beiden Codes:
    Diese haben effektiv die gleiche Funktion, und insofern auch dieselbe Auswirkung auf die von dir angesprochenen Statuswortbits.

    Set
    SAVE
    Dies dient dazu den ENO-Ausgang (BIE-Bit) des Bausteins zu setzen.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Ich benutze das Statuswort gelegentlich indirekt um nach arithmetrischen Operationen keinen zusätzlichen Vergleicher einsetzen zu müssen. Stattdessen nutze ich dann häufig z.B. U >0 um auf positiv oder negativ abzufragen.

    Wie MSB schon gesagt hat, kann man das VKE durchaus von einem in den anderen Baustein verschleppen, allerdings - meine bescheidene Meinung - hat man dann unsauber programmiert, dieses Konstrukt am Bausteinanfang deutet also genau darauf hin.
    Gruß
    Michael

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.751
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Zitat Zitat von M-Ott Beitrag anzeigen
    Wie MSB schon gesagt hat, kann man das VKE durchaus von einem in den anderen Baustein verschleppen, allerdings - meine bescheidene Meinung - hat man dann unsauber programmiert, dieses Konstrukt am Bausteinanfang deutet also genau darauf hin.
    Ich würde das in dem Fall nur bedingt als unsauber bezeichnen,
    Meistens denke ich wurde einfach aus Unachtsamkeit die Zuweisung auskommentiert.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #5
    nutellahase ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen

    Unter gewissen Umständen ist das möglich ... insofern ist das zur Sicherheit definitiv nicht schlecht.

    Dies dient dazu den ENO-Ausgang (BIE-Bit) des Bausteins zu setzen.

    Mfg
    Manuel
    Hallo! Danke für deine Antwort! Hast du ev. ein Beispiel?

    Zu den SAVE ... das find ich in keines unserer Programme die in AWL programmiert sind. Wenn ich jetzt an FUP denke ... soll das heißen ich kann diesen Baustein dann nicht hintereinanderschalten weil der ENO-Ausgang anders nicht gesetzt wird?

    mfg

  6. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    mit save wird der zustand des vke auf den eno-ausgang geschrieben. ist der eno nicht 1 wird die operation die am eno hängt nicht bearbeitet.

    mal als beispiel. du schreibst die eine fc mit einem vergleicher.

    IN1
    IN2

    im der fc sieht es nun so aus

    clear
    save
    L in1
    L in2
    >I
    save

    der eno wäre nun high wen in1 > in2
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Ich würde das in dem Fall nur bedingt als unsauber bezeichnen,
    Meistens denke ich wurde einfach aus Unachtsamkeit die Zuweisung auskommentiert.
    Die Übergabe des Statuswortes funktioniert aber nur wenn ein Baustein mit CC oder UC aufgerufen wird.

    Eine sinnvolle Anwendung gibt es dafür auch theoretisch. Beispielsweise könnte man einen Signalverarbeitungsbaustein schreiben (z.B. Regler) in dem bei Bedarf für die Signalvorverarbeitung ein unterlagerter FC aufgerufen wird, und der FC vom Programmierer mit beliebiger Nummer frei erstellbar ist. Damit der übergeordnete Baustein geschrieben werden kann ohne die konkrete Schnittstelle des anderen zu kennen, könnte man zwei Parameter in den Akkus übergeben und auch zwei Rückgabewerte in den Akkus zurückgeben. Und das Statuswort sollte sich dazu genauso nutzen lassen.
    Ich glaube in irgendeiner regelungstechnischen Bibliothek habe ich das so in der Art schon gesehen.

  8. #8
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Code:
    //enable ENO for following operations
    SET    //set binary result
    SAVE   //save VKE to BIE
    Wenn du das am Bausteinende ein-
    fügst, dürfte dein ENO stets "1" sein
    und dein hintendrangeschalteter
    Baustein auch bearbeitet werden.

    Wenn du Das ENO für den hintendran-
    geschalteten Baustein abhängig setzen
    willst, nutze die Beispiele von Volker oder
    Thomas.

    Noch ein Tip: <F1-Taste> !
    kind regards
    SoftMachine

  9. #9
    nutellahase ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also Danke erstmal für die ganzen Antworten!

    Ich habe mich jetzt ein wenig in diese Thematik eingelesen und denke, dass ich so langsam dahinterkomme! Allen voran sind für mich durch diese Erkenntnis AWL-Verknüpfungsorgien ev. etwas "einfacher" zu verstehen (sofern sie sich nicht in KOP/FUP umwandeln lassen)

    Vieles wurde bereits erwähnt bzw. ist in den unten angeführten Links geschrieben. Ich möchte aber für mich jetzt einige Sachen nochmals explizit ansprechen (und bitte korrigiert mich, falls ich damit falsch liege!)

    Zu aller erst einmal die Eingangsfrage ... Ist das Statuswort ein nützliches Werkzeug? Ich behaupte jetzt: Ja, ist es!

    Um mal meine gestellten Fragen selbst etwas zu beantworten..
    Inwiefern hängen die Bits Erstabfrage, VKE, Status und BIE zusammen?
    Das Bit 0, die ERstabfrage (/ER), sagt mir wann bei einer Verknüpfungskette eine Erstabfrage stattfindet. Und zwar nach folgenden Befehlen:

    • Bausteingrenze => Ist das gleichbedeutend mit Bausteinende oder wie ist das gemeint? Hinsichtlich meiner Frage ob man ein VKE von einem Baustein in einen anderen "verschleppen" kann müsste das ja dann nicht gleichbedeutend mit Bausteinende sein!
    • nach Zuweisungen wie =,S,R
    • nach einem SET,CLR
    • nach jeder öffnenden Klammer U(,O( ... X(=> gibt's das?
    • nach bedingten Sprüngen wie SPB, SPBN, SPBB, SPBNB

    Hingegen erfolgt bei Übergang von einem Netzwerk ins nächste keine Erstabfrage!

    Bit 1 das VerKnüpfungsErgebnis (VKE) ist immer nach den Regeln der boolschen Algebra das Ergebnis einer Verknüpfungskette. Bei einer Erstabfrage wird dabei direkt das Abfrageergebnis des Operanden als VKE übernommen!

    Womit wir zu Bit 2 das Statusbit (STA) kommen ... hier wird immer der Signalzustand des zuletzt verwendeten Bitoperanden abgelegt bzw. abgefragt.

    Somit sind diese drei Bits schon einmal miteinander verknüpft...

    Beispiele (gehen wir davon aus das VKE wurde begrenzt und jetzt erfolgt eine Erstabfrage):

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: U E0.0       1       1       1
    2: U E0.1       0       0       1
    3: = A0.0       0       0       0
    Erläuterung: Durch die Erstabfrage wird in Zeile 1 direkt der Status von E0.0 als VKE übernommen. In Zeile 2 wird nun der Status von E0.1 mit dem VKE von Zeile 1 nach den Regeln der boolschen Algebra verknüpft, in Worten: E0.0 UND E0.1! Dadurch dass E0.1 den Status "0" führt wird als VKE ebenfalls eine "0" übernommen. In Zeile 3 wird nun direkt das VKE der vorherigen Zeile übernommen und gleichzeitig das /ER auf 0 gesetzt!

    Soweit so gut ... jetzt ein Beispiel mit zwei Netzwerken ....

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: U E0.0       1       1       1
    2: U E0.1       0       0       1
    3: = A0.0       0       0       0
    
    Netzwerk 2
    4: O E0.2       0       0       1
    5: O E0.3       1       1       1
    6: = A0.1       1       1       0
    Hier ändert sich im ersten Netzwerk nicht viel. Im zweiten Netzwerk ist jetzt eine ODER Verknüpfung. Dadurch das in Zeile 3 das Erstabfragebit zurückgesetzt worden ist, wird in Zeile 4 wiederum der Status von E0.2 übernommen! In Zeile 5 wird der Status von E0.3 mit dem VKE von Zeile 4 ODER verknüpft. Das Ergebnis ist eine "1" die auch den Ausgang A0.1 zugewiesen wird (/ER wird wieder auf 0 gesetzt).

    Für mich eine weitere Erkenntnis: Sind die Netzwerke immer schön sauber mit Zuweisungen abgeschlossen dann spart man sich bei Oder Verknüpfungen die oft angetroffene Form
    Code:
    U E0.2
    O E0.3
    Eben weil nach einer Zuweisung sowieso eine Erstabfrage folgt und das VKE von der vorherigen Zuweisung ignoriert wird!

    Allerdings kann das auch ganz schnell in die Hose gehen!

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: U E0.0       1       1       1
    2: U E0.1       1       1       1
    3: //= A0.0     X       X       1 X= irrelevant weil auskommentiert, aber /ER bleibt auf 1!
    
    Netzwerk 2
    4: O E0.2       1       0       1
    5: O E0.3       1       0       1
    6: = A0.1       1       1       0
    Das gleiche Beispiel nochmal, nur ist dieses Mal der Ausgang A0.0 auskommentiert worden und die Eingänge haben andere Zustände! Jetzt wird A0.1 plötzlich durch E0.0 und E0.1 angesprochen obwohl das so vor dem auskommentieren sicher nicht erwünscht war!

    Auch SET und CLR sollten immer direkt vor der Zuweisung geschrieben werden:

    Code:
    Netzwerk 1     VKE     STA     /ER
    
    1: SET          1       ?       0
    2: = A0.0       1       1       0
    Ein anderes Beispiel wo SET/CLR keine Auswirkung haben...

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: SET          1       ?       0
    2: U E0.1       0       0       1
    3: = A0.0       0       0       0
    Durch den SET-Befehl erfolgt in der nächsten Zeile wieder eine Erstabfrage ... A0.0 wird nur durch E0.1 zugewiesen!

    Das gleiche mit CLR im umgekehrten Sinn (es wird 0 erwartet, "1" als Ergebnis)

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: CLR          0       ?       0
    2: U E0.1       1       1       1
    3: = A0.0       1       1       0
    Was mir noch nicht ganz klar ist mit den Klammerausdrücken (in Hinsicht auf die Bits des Statuswortes) Dazu verweise ich auf das Bild 4 im Link "Verknüpfungsergebnis VKE"!

    Hier das Beispiel kopiert:

    Code:
    Netzwerk 1     VKE     STA     /ER
    1: U(           0       1       0
    2: O E0.0       1       1       1
    3: O E0.1       1       0       1
    4: )            1       1       1
    5: U(           1       1       0
    6: O E0.0       0       0       1
    7: O E0.1       0       0       1
    8: )            0       1       1
    9: = A0.1       0       0       0
    Also die Logik ist mir schon klar aus beiden Klammerausdrücken muss min. ein Eingang "1" sein, damit der Ausgang "1" wird. Auch innerhalb der Klammern wird so vorgegangen wie oben beschrieben. Nur:
    • Wieso ist bei der öffnenden und schließenden Klammer das Statusbit 1?
    • Wird das VKE aus Zeile 3 einfach in Zeile 4 übernommen? Ich dachte immer das bei der schließenden Klammer mit dem VKE der öffnenden Klammer verknüpft wird. In diesem Fall U( => UND. Dann wäre ja das Ergebnis aber "0" (was ja auch gegen die Logik in der Klammer spricht!)
    • Das gleiche gilt für Zeile 5. Wird hier einfach das VKE von Zeile 4 übernommen? Es erfolgt durch die öffnende Klammer wiederum eine Erstabfrage

    Zum Schluss wäre noch das 8. Bit BInärErgebnis (BIE)

    Aus meiner Erkenntnis dient dies nur für die ENO Funktion um damit im FUP Bausteine anheften zu können! Allerdings kann man das BIE-Bit auch abfragen.

    Code:
    U BIE
    Dadurch steht es wohl im Zusammenhang mit den Bits VKE und STA aber im Moment ist das jetzt genug Verwirrung . Der Beitrag ist jetzt ziemlich lang geworden und ich hoffe ihr könnt mir meine offenen Fragen beantworten bzw. auf geschriebene Syntaxfehler aufmerksam machen! Kann natürlich sein das ich da irgendwo einen Denkfehler hatte. Ev. habt ihr sogar noch selber ein paar Beispiele!

    Vielen Dank!

    Links:
    Englische Seite zum Thema Statuswort
    Wann kommt es bei Verknüpfungsketten zu einer Erstabfrage?
    Verknüpfungsergebnis VKE
    SPS-Forum Threads zum Thema Erstabfrage

Ähnliche Themen

  1. Diagnose Werkzeug zyklisch genau
    Von Outrider im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.08.2012, 09:34
  2. Welches Werkzeug für AZUBI Elektroniker
    Von NeuerSIMATICNutzer im Forum Stammtisch
    Antworten: 24
    Letzter Beitrag: 09.07.2012, 23:09
  3. SPS .. nützliches gesucht
    Von Heinz2011 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.02.2011, 13:38
  4. Statuswort
    Von Farinin im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.01.2009, 16:54
  5. Statuswort
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.08.2005, 12:50

Lesezeichen

Berechtigungen

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