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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: wofür sind SET und CLR bei S7 VKE-begrenzend?

  1. #21
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Perfektionist Beitrag anzeigen
    zu S5-Zeiten, da schrieb ich auch
    Code:
    U "irgendwas"
    O "Eins"   // zum Test
    = "Ausgang"
    Das kann man heute in S7 noch genauso schreiben und tut es auch.

    Zitat Zitat von Perfektionist Beitrag anzeigen
    bei S7 wurde daraus:
    Code:
    U "irgendwas"
    SET
    = "Ausgang"
    Diese Variante würde ich eher als unüblich bezeichnen (für mich ist das auch nicht ganz das selbe).
    Außerdem bewirkt die Verwendung von SET, daß das Netzwerk nicht mehr in FUP/KOP darstellbar ist.

    Ich benutze für Testzwecke immer die erste Variante (Verknüpfung des "Eins"-Merkers), weil diese Variante
    in AWL, FUP und KOP gleichermaßen anwendbar ist.

    Zitat Zitat von IBFS Beitrag anzeigen
    Daher habe ich mal gelernt:

    Code:
    CLR
    O M x.x
    O M x.y
    = M x.z
     
    SET
    U M x.x
    U M x.y
    = M x.z
    Die Gurus hier können ja sagen ob das Käse ist.
    Das sieht zwar besonders durchdacht aus, ist aber Käse, weil es völlig egal ist, ob die Befehlsfolge mit
    SET oder CLR beginnt. Leute, die sowas anderen beibringen, haben SET und CLR nicht richtig verstanden
    oder S7 mit einer anderen Programmiersprache verwechselt.
    Code:
    SET
    O M x.x
    O M x.y
    = M x.z
     
    CLR
    U M x.x
    U M x.y
    = M x.z
    bringen haargenau das gleiche Ergebnis. [EDIT] wie die zitierte IBFS-Variante.

    Weil SET und CLR das Erstabfragebit /ER=0 schreiben, wird die nächste Verknüpfungsoperation eine
    VKE-Lade-Operation, die das hier durch SET bzw. CLR verursachte VKE ohne Berücksichtigung einfach
    überschreiben. Erst die zweite Verknüpfungsoperation verknüpft das VKE.

    Gruß
    Harald
    Geändert von PN/DP (02.07.2010 um 16:21 Uhr)

  2. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    rostiger Nagel (02.07.2010)

  3. #22
    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 PN/DP Beitrag anzeigen
    Für mich ist es eigentlich ganz logisch, daß SET und CLR VKE-begrenzend wirken müssen.

    SET heißt:
    Setze jetzt das VKE auf 1 - unabhängig davon, was eine eventuelle vorherige Verknüpfung bis dahin ergeben hat!
    Da dadurch vorherige Verknüpfungen hinfällig werden (so als wenn sie gar nicht stattgefunden hätten), ist die
    nach dem SET folgende Verknüpfungsoperation logischerweise der Beginn einer neuen Verknüpfung.
    Weil nun eine neue Verknüpfung beginnt, muß das VKE hier begrenzt sein.
    (Das gilt für CLR ganz genauso, nur wird dabei das VKE auf 0 gesetzt.)

    Daß SET und CLR VKE-begrenzend sind, war für die S7-Sprachdesigner also keine Ermessensfrage.
    Und aus welchem Grund wird dann das /ER Flag im Statuswort auf 0 gesetzt? Dir scheint es nur um das VKE zu gehen. Das hätte man auch auf 1 setzen können ohne das /ER abzufragen oder nach der Operation auf 0 zu setzen.

  4. #23
    Avatar von Perfektionist
    Perfektionist ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    ... war für die S7-Sprachdesigner also keine Ermessensfrage.
    ...
    Ich habe nun lange hin und herüberlegt, ob, wann etc. diese VKE-Begrenzung in Zusammenhang mit Rückgabewerten von Bausteinen nützlich sein könnte. Entweder im BIE oder auch direkt im VKE. In dem Zusammenhang habe ich bemerkt, dass der SAVE-Befehl nicht das VKE begrenzt. Verwundert aber war ich darüber, dass ich fand, dass der BEA-Befehl das VKE begrenzt. Dieser Befehl (man korrigiere mich, wenn ich jetzt Unwahrheiten schreibe) wird grundsätzlich am Bausteinende ausgeführt. Ganz egal, ob er dasteht oder nicht. Gut: BEB und SPB wirken (m.E. zurecht) auch VKE-begrenzend, auch CALL und UC. Aber der Befehl SPA nicht.

    Will sagen: ich finde das gar nicht so offensichtlich, dass SET und CLR VKE-begrenzend sein müssen.

  5. #24
    Registriert seit
    14.10.2008
    Ort
    Palz
    Beiträge
    89
    Danke
    9
    Erhielt 12 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also 1 und 0 Merker Benutze ich wenn nur temporär, da ich bei Bitverarbeitungen gerne FUP nutze.
    Diese setze ich dann mit SET bzw CLR.

    Das hat den Hintergrund,
    das ich Bausteine aus einem Projekt ins andere kopieren kann,
    ohne mir Gedanken zu machen, welche Merker jetzt welchen Zustand unbedingt haben müssen.

Ähnliche Themen

  1. Wofür MPI-Adresse im CP angeben?
    Von Eiken85 im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 06.10.2010, 11:54
  2. Frequenzumwandler wofür?
    Von kaiman im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 20.01.2009, 05:10
  3. Drossel am FU wofür??
    Von mitchih im Forum Antriebstechnik
    Antworten: 20
    Letzter Beitrag: 08.10.2007, 15:55
  4. Wofür ist was bei WinCC?
    Von Mareike im Forum HMI
    Antworten: 3
    Letzter Beitrag: 27.06.2006, 08:25
  5. Nockenschaltwerk elektronisch wofür ??
    Von lorenz2512 im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 06.05.2005, 21:01

Lesezeichen

Berechtigungen

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