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

Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 39

Thread: Zuweisung von werten auf Out-Variablen

  1. #21
    Join Date
    01.10.2007
    Location
    Waiblingen
    Posts
    3,557
    Danke
    767
    Erhielt 537 Danke für 420 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Neineinein ich bin noch nicht ganz einverstanden ...

    Die Erklärung von WGertzen passt auf das beobachtete Phänomen, der Handbuchauszug aber nicht:
    Achtung
    Wird in einem solchen Fall ein OUTPUT Parmeter in einem FC nicht beschrieben, können die ausgegebenen Werte zufällig sein! Der für die Kopie bereitgestellte Bereich in den Lokaldaten des rufenden Bausteins wird mangels Zuweisung an den OUTPUT Parmeter nicht beschrieben und bleibt somit unverändert. Damit wird zufällig der in diesem Bereich stehende Wert ausgegeben, da Lokaldaten nicht automatisch mit z. B. 0 vorbelegt sind.

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

    Default

    das erste mal, dass ich hier etwas dazu lerne.

    aber schaut man sich den aufruf an, wirds auch deutlich. es ist kein darstellungsfehler, wie Perfektionist vermutet, sondern tatsächlichst so, wie von WGertzen beschrieben:

    Code:
          UC    FC  1000
                P#E 0.0
                P#E 0.1
                P#E 0.2
                P#L 22.0
                P#L 24.0
                P#L 26.0
                P#M 10.0
                P#M 10.0
                P#M 10.0
          L     MW    10
          L     MW    10
          L     MW    10
    wegen dem lehrgang: macht euch mal einen termin aus, ich komm dann gern vorbei und versohl euch den arsch.

  3. #23
    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

    Manchmal hat man ein Programm zu warten oder zu ändern, da denkt man sich : Das kann doch nie gelaufen haben.
    Da das Programm aber trotzdem funktioniert, muss es ja eine Erklärung dafür geben und die hat WGertzen ja gefunden.

    @forendiva
    Ich kann Dir bestätigen, dass man hier in diesem Forum immer wieder was dazu lernen kann.
    Lieber Feste feiern, als feste arbeiten.

  4. #24
    Join Date
    08.11.2006
    Location
    Uckermark
    Posts
    913
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Default

    Quote Originally Posted by forendiva View Post
    wegen dem lehrgang: macht euch mal einen termin aus, ich komm dann gern vorbei und versohl euch den arsch.
    "Wegen des Lehrgangs" bitte!

    Sorry @forendiva, aber das musste jetzt sein.
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  5. Folgende 2 Benutzer sagen Danke zu OHGN für den nützlichen Beitrag:

    forendiva (02.12.2008),Perfektionist (02.12.2008)

  6. #25
    Join Date
    01.10.2007
    Location
    Waiblingen
    Posts
    3,557
    Danke
    767
    Erhielt 537 Danke für 420 Beiträge

    Default

    WGerzen hat Recht (und das Handbuch ist S......). Und ich stelle gerade fest, dass es zwei gleichlange Wörter gibt, die beide mit S beginnen, das eine mit s endet und das andere ein scharfes s enthält.

    Mit dem Wissen von WGerzen ist folgendes Programm möglich:

    OB1:
    Code:
          CALL  FC     1
           in :=A0.0
           out:=E0.0
    FC1:
    Code:
    FUNCTION FC 1 : VOID
    TITLE =
    VERSION : 0.1
    
    VAR_INPUT
      in : BOOL ; 
    END_VAR
    VAR_OUTPUT
      out : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    
          U     #out; 
          =     #in; 
     
    
    END_FUNCTION
    getestet und funktioniert ...

  7. #26
    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 heißt also, die IN-Variablen sind auch IN-OUT-Variablen, die im aufgerufenen FC problemlos geändert werden können.
    Lieber Feste feiern, als feste arbeiten.

  8. #27
    Join Date
    01.10.2007
    Location
    Waiblingen
    Posts
    3,557
    Danke
    767
    Erhielt 537 Danke für 420 Beiträge

    Default

    Quote Originally Posted by blasterbock View Post
    Das heißt also, die IN-Variablen sind auch IN-OUT-Variablen, die im aufgerufenen FC problemlos geändert werden können.
    IN, OUT und IN/OUT sind demnach nur von der Deklaration her unterschiedlich, von der Programmabarbeitung her verhalten sie sich alle wie IN/OUT. In meinem Beispiel missbrauche ich einen IN-Parameter als OUT-Parameter und umgekehrt. Ich lese also im Code des FC den Wert von der Out-Variablen ein und gebe den Wert zur IN-Variablen zurück

  9. #28
    Join Date
    08.10.2007
    Posts
    31
    Danke
    1
    Erhielt 5 Danke für 2 Beiträge

    Default

    Die Unterscheidung IN, OUT, IN-OUT ist eigentlich nur eine Information
    für den Editor (FUP,KOP) damit er Schreibzugriffe auf IN Werte verhindern kann.
    Letztendlich werden immer nur Zeiger übergeben.

    Forendiva hatte es mit seinem Beispiel auch deutlich gemacht.
    (Er hätte nur sagen sollen wie er den Quellcode erzeugt hatte )

    Dazu über "erreichbare Teilnehmer" online gehen, den FC löschen und dann im OB1 (oder wo auch immer der FC aufgerufen wird) online gehen und den
    Aufruf ansehen.

    Dann steht dann so was wie:

    Call
    BLD 1
    = L 25.0
    UC FC 1
    P#L 24.0
    P#M 1200.0
    P#M 1.1
    BLD 2
    End Call

    Quelle war ein alter Eintrag aus dem Forum: (Danke an Raika)

    RaiKa
    29.02.2008, 12:22

    Hallo Steve,

    geh einfach mal in "erreichbare Teilnehmer", lösche die FC und schau den Aufruf der FC an.
    Reply With Quote Reply With Quote Letztendlich sind es alles Zeiger  

  10. Folgender Benutzer sagt Danke zu WGertzen für den nützlichen Beitrag:

    Perfektionist (02.12.2008)

  11. #29
    Join Date
    01.10.2007
    Location
    Waiblingen
    Posts
    3,557
    Danke
    767
    Erhielt 537 Danke für 420 Beiträge

    Default

    Quote Originally Posted by WGertzen View Post
    ...
    Quelle war ein alter Eintrag aus dem Forum: (Danke an Raika)
    ...
    so alt ist der garnicht mal ...

    hier mal den Link zu dem zugehörigen Thread, der die hier geschilderte Problematik recht erschöpfend erhellt:
    http://www.sps-forum.de/showthread.php?t=18403

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

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by WGertzen View Post
    (Er hätte nur sagen sollen wie er den Quellcode erzeugt hatte )
    viele wege führen nach rom! u.a. auch wenn man den aufruf mit SCL programmiert und die quelle entfernt oder den siemens-shortcut mit dem M benutzt ... online löschen ist definitiv nicht meins!

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
  •