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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Schreibzugriff auf IN Formalparameter eines FC's

  1. #11
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sollte logisch daraus , nicht folgen ?:


    Zitat Zitat von voni_1 Beitrag anzeigen
    Der besagte Merker M3.3 wird per Button über ein TP27 mit "Bit setzten" gesetzt.

    M3.3 geht als IN Parameter #Programm_START in einen FC
    Code:
          U     #Programm_START
          SPBN  M001
          L     1
          T     MW    40
          R     #"Programm_START"
    
    M001: NOP   0
    So, nun ist es so, dass mir manchmal der Merker nicht zurückgesetzt wird....
    Der elementare Formalparameter wird mit einem Merker, einem Ein- oder Ausgang aus dem Prozessabbild oder aus dem Lokaldatenstack (L-Stack) des aufrufenden Bausteines versorgt.
    In diesem Fall arbeitet der Code der Funktion mit einem bereichsübergreifenden Zeiger direkt(!) auf diesen elementaren Aktualparametern (z.B. P#E0.0, P#M0.0).

    Falls dein Formalparameter: #Programm_START mit einem Merker als Aktualparameter versorgt wird dann :"... arbeitet der Code der Funktion mit einem bereichsübergreifenden Zeiger direkt(!) auf diesen elementaren Aktualparametern"

    Code:
      
          U     M3.3
          SPBN  M001
          L     1
          T     MW    40
          R     M3.3
    M3.3 ist nie TRUE nach einem FC aufruf !
    (vielleicht muss du deine HMI Programmierung überdenken ...)

  2. #12
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Formalparameter sind nur Platzhalter für die Aktualparameter !

    In FB bleiben sie gespeichert ( = müssen nur beim ersten FB aufruf im Programm initialisiert werden ).
    In FC flüchtig ( = müssen vor jedem FC aufruf im Programm initialisiert werden ).

    M.M.n einziger Unterschied zwischen FB und FC ist der Formalparameter-speicher , Bei FC ist er flüchtig weil er im TEMP Bereich ist (= wird falls nötig von andere FB,FC-s auch überschrieben/gelesen). Prinzipiell aber machen FB , FC das gleiche (deswegen könnte man immer einen FB durch einen FC der seine Formalparameter zwischenspeichert ersetzen)

  3. #13
    Registriert seit
    29.09.2008
    Beiträge
    68
    Danke
    10
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Ich fasse mal zusammen, dass es nicht am Schreibzugriff auf den IN Parameter liegt.

    Ich sehe mir mal das Display näher an...

  4. #14
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat von siemens

    1. Der elementare Formalparameter wird mit einem Merker, einem Ein- oder Ausgang aus dem Prozessabbild oder aus dem Lokaldatenstack (L-Stack) des aufrufenden Bausteines versorgt.In diesem Fall arbeitet der Code der Funktion mit einem bereichsübergreifenden Zeiger direkt(!) auf diesen elementaren Aktualparametern (z.B. P#E0.0, P#M0.0)
    2. Der elementare Formalparameter wird mit einer Konstanten oder einem Datenbausteinelement versorgt. In diesem Fall wird der Wert des Aktualparameters vor dem Aufruf der Funktion in den L-Stack des aufrufenden Bausteines kopiert. Der Code der Funktion arbeitet dann mit einem bereichsübergreifenden Zeiger auf diesen Lokaldatenbereich des aufrufenden Bausteines.
      Beachten Sie bitte, dass bei Ausgangsparametern keine Initialisierung erfolgt und die Eingangsparameter nicht gelöscht werden. Deshalb ist in diesem Fall darauf zu achten, dass Eingänge nur gelesen und Ausgänge in jedem Zyklus geschrieben werden. Bei Befehlen wie "S" oder "R" wird das Signal nur abhängig vom VKE geschrieben. Deshalb sollten Sie diese Befehle durch die Zuweisung "=" ersetzen oder die Werte vor der Abfrage initialisieren.
      Wenn Sie das Beschreiben der Werte nicht in jedem Zyklus sicherstellen können, sollten Sie einen IN/OUT- Parameter verwenden.

    Nicht schreiben auf IN-Parametern gilt nur im 2-ten Fall ...

  5. #15
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Sioan Beitrag anzeigen

    M3.3 ist nie TRUE nach einem FC aufruf !
    So ein Schmarn.
    In diesem Fall ist es so, doch es kann auch anders sein.
    Das ist abhängig was und wie programmiert wird.
    Alex wann endlich hörst du auf, hier den Oberlehrer zu spielen?
    Solch einen Mist den du ablässt kann man ohne genug Glühwein nicht lesen.
    Und hör bitte auf mit den sch.. Farben.

    @voni_1: Das Problem kann von der HMI kommen. Solche Dinge würde ich mit Flanken in der PLC oder mit "setze solange Taste gedrückt" in HMI lösen.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  6. #16
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Nicht schon wieder ...falsch verstehen !
    Bezogen auf seinem in diesem besondern Falle FC ( nicht auf irgendeinem FC) ... lies zurück !
    Sobald sein FC gerufen wird , wird M 3.3 falls TRUE , FALSE ! Falls FALSE , bleibt es so ...

    Falls ich was dummes gesagt habe bitte mich zu korrigieren ... ich bin nur in (LERN)DIALOG mit den anderen hier , und nicht um meine Dummheit zu verbreitern ...

    (Beim Korrigieren bitte punktuell mit einem Beispiel den man selbst durchführen kann... pauschal Antworten sind nicht für ...... jeden)

  7. #17
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    @Sioan,
    das ist meine letzte Verwarnung, wenn du wie als 00alex anfängst,
    weiter Themen zu zerschlagen wirst du gesperrt. Wenn du etwas lernen
    möchtest, erstelle ein eigenes Thema und stelle eine Frage und dann
    so das Sie auch als Frage erkannt wird und nicht als Verbreitung von
    Binsenweisheiten.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  8. #18
    Registriert seit
    12.12.2013
    Ort
    Kaiserslautern
    Beiträge
    1.339
    Danke
    388
    Erhielt 219 Danke für 173 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo voni_1

    Kann es sein das Weckalarme (30er OB's) dir die Verarbeitung stören ?

    Wir benutzen im Step7 auch das Príncipe von setze Merker und dann im Programm rücksetzen und haben auch OB's mit Weckalarme.
    Aber benutzen keine Lokaldaten im FC wo wir das durch den Panel gesetzte Bit verarbeiten (wir benutzen Bit im Datenbaustein). Funktioniert immer.

    Im erste Netzwerk eines FC's wir das Bit zum Verarbeitung benutzt (Datenbaustein Bit)

    Im zweites Netzwerk wird das Bit Wenn Wahr zurückgesetzt.


    Bei TIA machen wir mittlerweile Setze Bit und Rücksetze Bit im Panel.

    Bram van Berkel

Ähnliche Themen

  1. Zugriff auf Prozessabbild eines BC9050 in C#
    Von kampi im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 27.01.2012, 10:02
  2. Antworten: 8
    Letzter Beitrag: 22.06.2011, 13:36
  3. Zugriff auf Temporäre Variablen eines FC
    Von Fluffi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.05.2009, 07:52
  4. Inhalt eines Datenbaustein auf 0 vergleichen
    Von norman im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 07.03.2007, 21:24
  5. Sollen Gäste Schreibzugriff im Board haben ?
    Von volker im Forum Stammtisch
    Antworten: 15
    Letzter Beitrag: 23.09.2005, 15:58

Lesezeichen

Berechtigungen

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