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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 39

Thema: Zuweisung von werten auf Out-Variablen

  1. #21
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard


    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
    Registriert seit
    15.06.2008
    Beiträge
    119
    Danke
    19
    Erhielt 24 Danke für 19 Beiträge

    Standard

    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
    Avatar von blasterbock
    blasterbock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.07.2007
    Ort
    Burbach
    Beiträge
    366
    Danke
    81
    Erhielt 34 Danke für 32 Beiträge

    Standard

    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
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von forendiva Beitrag anzeigen
    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
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    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
    Avatar von blasterbock
    blasterbock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.07.2007
    Ort
    Burbach
    Beiträge
    366
    Danke
    81
    Erhielt 34 Danke für 32 Beiträge

    Standard

    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
    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 blasterbock Beitrag anzeigen
    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
    Registriert seit
    08.10.2007
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 2 Beiträge

    Standard

    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.
    Zitieren Zitieren Letztendlich sind es alles Zeiger  

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

    Perfektionist (02.12.2008)

  11. #29
    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 WGertzen Beitrag anzeigen
    ...
    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
    Registriert seit
    15.06.2008
    Beiträge
    119
    Danke
    19
    Erhielt 24 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von WGertzen Beitrag anzeigen
    (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!

Ähnliche Themen

  1. bedingte Zuweisung im FUP?
    Von McNugget im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 26.11.2009, 11:16
  2. Ungültige Zuweisung, SCL
    Von petzi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.05.2009, 13:55
  3. Zuweisung
    Von snowbda im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 03.12.2008, 15:11
  4. Zuweisung von Adressen
    Von buenne im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 05.04.2007, 16:19
  5. Zuweisung von Hardware Eingängen
    Von chivas im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.10.2004, 16:35

Lesezeichen

Berechtigungen

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