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

Page 1 of 4 123 ... LastLast
Results 1 to 10 of 39

Thread: Zuweisung von werten auf Out-Variablen

  1. #1
    Join Date
    08.07.2007
    Location
    Burbach
    Posts
    373
    Danke
    84
    Erhielt 35 Danke für 32 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Auf dem Bild ist der Quellcode des aufgerufenen Bausteins und sein Aufruf im Status zu sehen. Es werden einfach nur 3 Werte abhängig von 3 Eingangsbits auf drei Ausgänge kopiert.
    Meine Frage ist nun, warum nimmt bei der gezeigten Beschaltung die Ausgangsvariable den Wert von Out2 an und nicht den von Out3 ?
    Attached Images Attached Images
    Lieber Feste feiern, als feste arbeiten.
    Reply With Quote Reply With Quote Zuweisung von werten auf Out-Variablen  

  2. #2
    Join Date
    18.09.2004
    Location
    Münsterland/NRW
    Posts
    4,979
    Danke
    774
    Erhielt 1,199 Danke für 1,003 Beiträge

    Default

    Weil an ein2 ein 1-Signal liegt (Eingang ist negiert)
    An ein3 liegt ein 0-Signal und daher wird der Abschnitt
    Code:
    *
    ...
    L #in3
    T #out3
    ...
    übersprungen

  3. #3
    Join Date
    29.09.2008
    Location
    Land der Frühaufsteher
    Posts
    104
    Danke
    6
    Erhielt 22 Danke für 21 Beiträge

    Default

    Hallo,

    Quote Originally Posted by blasterbock View Post
    Meine Frage ist nun, warum nimmt bei der gezeigten Beschaltung die Ausgangsvariable den Wert von Out2 an und nicht den von Out3 ?
    Wenn du alle Ausgänge mit ein und derselben Variablen belegst, müssen alle den gleichen Wert haben. Unterschiedliche Variablen -> und es funzt.

    MfG
    FrankW

  4. #4
    blasterbock's Avatar
    blasterbock is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    08.07.2007
    Location
    Burbach
    Posts
    373
    Danke
    84
    Erhielt 35 Danke für 32 Beiträge

    Default

    Das ist mir schon klar.
    Es erfolgt aber an out3 eine weitere Zuweisung zu der gleichen Variablen.
    Wenn ich an den out3 eine andere Variable schreibe, wird der Wert 0 an out3 angezeigt, wie es auch richtig ist.
    Aber warum wird dummyint nicht auf 0 geschrieben ?

    @Frank W
    Ich sehe es ja, dass es funktioniert, aber warum wird der out3 nicht in die Variable geschrieben ?
    Last edited by blasterbock; 02.12.2008 at 08:56.
    Lieber Feste feiern, als feste arbeiten.

  5. #5
    Join Date
    29.09.2008
    Location
    Land der Frühaufsteher
    Posts
    104
    Danke
    6
    Erhielt 22 Danke für 21 Beiträge

    Default

    Quote Originally Posted by blasterbock View Post
    Das ist mir schon klar.
    Es erfolgt aber an out3 eine weitere Zuweisung zu der gleichen Variablen.
    Wenn ich an den out3 eine andere Variable schreibe, wird der Wert 0 an out3 angezeigt, wie es auch richtig ist.
    Aber warum wird dummyint nicht auf 0 geschrieben ?

    @Frank W
    Ich sehe es ja, dass es funktioniert, aber warum wird der out3 nicht in die Variable geschrieben ?
    Weil du nichts schreibst, du überspringst ja das schreiben bei nicht gesetzten Eingang.

    MfG
    FrankW

  6. #6
    Join Date
    05.10.2005
    Posts
    2,610
    Danke
    329
    Erhielt 322 Danke für 289 Beiträge

    Default

    weil du nirgends ein
    Code:
    
    t #out3
    in dienem Code abarbeitest

  7. #7
    blasterbock's Avatar
    blasterbock is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    08.07.2007
    Location
    Burbach
    Posts
    373
    Danke
    84
    Erhielt 35 Danke für 32 Beiträge

    Default

    Das stimmt nicht. Die Variable out3 wird intern mit dem Wert 0 belegt (sieht man, wenn man eine andere Variable an out3 legt).

    So weit ich das System verstehe, werden bei einem Bausteinaufruf alle Übergabeparameter auf den Stack geschrieben. Also muss beim Rücksprung aus dem FC out3 einen Wert haben.

    Wo liegt mein Denkfehler ?
    Lieber Feste feiern, als feste arbeiten.

  8. #8
    Join Date
    29.09.2008
    Location
    Land der Frühaufsteher
    Posts
    104
    Danke
    6
    Erhielt 22 Danke für 21 Beiträge

    Default

    Dein Denkfehler liegt darin, dass du der Meinung bist, die SPS tut etwas von selbst. Dem ist nicht so. Du schreibst nicht auf die Variable! Wenn du in ein MW z.Bsp. die Zahl 14 schreibst und das MW danach als #out3 nimmst, bleibt die 14 so lange stehen bis #ein3 TRUE ist, dann steht dort der #in3-Wert!!!!

    MfG
    FrankW

  9. #9
    Join Date
    15.06.2008
    Posts
    119
    Danke
    19
    Erhielt 24 Danke für 19 Beiträge

    Default

    BOAH, das kann doch nun wirklich nicht so schwer sein!

    du hast eine IF-THEN-Anweisung gebaut. problem dabei, es wird nicht mehr beschrieben, also der wert bleibt. das was du willst ist ein IF-THEN-ELSE-Konstrukt:

    Code:
        IF ein1 
            THEN out1:=in1; 
            ELSE out1:=0; 
        END_IF;
    und jetzt gehst du zu deinem chef und sagst, dass du ganz dringend einen leergang brauchst!
    Last edited by forendiva; 02.12.2008 at 09:28. Reason: rot und fett

  10. #10
    Join Date
    15.10.2007
    Location
    St.Pölten
    Posts
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    du hast im OB1 die tempvariable #dummyint definiert und beschreibst sie durch dein out2 mit 2.dann steht die 2 natürlich da drinnen.egal wo du sie anlegst.wie schon oben beschrieben.nimm drei verschiedene und es passt.
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

Similar Threads

  1. Replies: 3
    Last Post: 24.10.2016, 17:29
  2. Adressierung und Zuweisung von Variablen
    By Eddiemaus in forum Simatic
    Replies: 5
    Last Post: 05.02.2013, 19:48
  3. Zuweisung auf Pointerbereiche
    By ETechniker2011 in forum Simatic
    Replies: 4
    Last Post: 31.07.2012, 12:44
  4. Replies: 4
    Last Post: 28.03.2012, 15:56
  5. Replies: 0
    Last Post: 29.04.2009, 07:57

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •