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

Ergebnis 1 bis 6 von 6

Thema: Programm schreibt sich um

  1. #1
    Registriert seit
    16.10.2006
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Cool


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Freunde,
    ich habe da ein seltsames Problem. Ich habe einen Funktionsbaustein programiert zur kommunikation mit einem DC-Stromrichter (SIMOREG). Diesen Funktionsbaustein habe ich dann in einer Funktion eingefügt und im OB 1 aufgerufen. Nun das Seltsame, wenn ich den Funktionsbaustein einfüge und den Instanz DB zuweise und abspeichere. Weist das Programm ihn immer einen anderen DB (kein Instanz DB) zu. Dies habe ich anhand der "Aufrufstruktur" festgestellt.

    vielen Dank schon mal.

    Wölli
    Zitieren Zitieren Programm schreibt sich um  

  2. #2
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Ist dieser DB schon in der Symboltabelle angelegt?

    Hast du schon mal einen anderen gewählt?

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  3. #3
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    Eine Funktion hat soweit ich das verstanden hatte keine Instanzen, warum soll dann der Funktionsbaustein Instanzen haben (können)? Die Funktion kann öfters (unter dem gleichen Namen) aufgerufen werden, wie soll denn das funktionieren?

  4. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von Oberchefe Beitrag anzeigen
    Eine Funktion hat soweit ich das verstanden hatte keine Instanzen, warum soll dann der Funktionsbaustein Instanzen haben (können)? Die Funktion kann öfters (unter dem gleichen Namen) aufgerufen werden, wie soll denn das funktionieren?
    Also deine Antwort verstehe ich nun nicht.
    If you open your Mind too much, your Brain will fall out.

  5. #5
    Registriert seit
    12.05.2004
    Beiträge
    111
    Danke
    4
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo Wölli,

    das kann eventuell an der Step7 Einstellung für den Operandenvorrang (Eigenschaften - Bausteinordner offline) liegen. Da wird "Symbol hat Vorrang" eingestellt sein.

    Gruss

    Andi F

  6. #6
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich zitiere mal aus der Codesys Hilfe:
    Instanzen von Funktionsblöcken

    Es können Vervielfältigungen, genannt Instanzen (Kopien) eines Funktionsblocks geschaffen werden.
    Jede Instanz besitzt einen zugehörigen Bezeichner (den Instanznamen), und eine Datenstruktur, die ihre Eingaben, Ausgaben und internen Variablen beinhaltet. Instanzen werden wie Variablen lokal oder global deklariert, indem als Typ eines Bezeichners der Name des Funktionsblocks angegeben wird.
    Beispiel für eine Instanz mit Namen INSTANZ des Funktionsblocks FUB:
    INSTANZ: FUB;
    Aufrufe von Funktionsblöcken geschehen stets über die oben beschriebenen Instanzen.
    Nur auf die Ein-und Ausgabeparameter kann von außerhalb einer Instanz eines Funktionsblocks zugegriffen werden, nicht auf dessen interne Variablen.
    Die Deklarationsteile von Funktionsblöcken und Programmen können Instanzdeklarationen beinhalten. Instanzdeklarationen in Funktionen sind nicht zulässig.
    Der Zugriff auf die Instanz eines Funktionsblocks ist auf den Baustein beschränkt, in dem sie instanziert wurde, es sei denn, sie wurde global deklariert.
    Der Instanzname einer Instanz eines Funktionsblocks kann als Eingabe einer Funktion oder eines Funktionsblocks benutzt werden.
    Man beachte dabei den Satz:
    Instanzdeklarationen in Funktionen sind nicht zulässig.
    Wird beispielsweise die Funktion an Stelle A und an Stelle B im Programm aufgerufen, dann ist das Ergebnis normalerweise das gleiche, eine Funktion sollte ja eigentlich keine internen Variablen haben, die über mehrere Programmzyklen erhalten bleiben.
    Wird jetzt aber von der Funktion aus wiederum ein Funktionsbaustein aufgerufen, der eigentlich interne Variablen hat, die gespeichert werden, woher soll die SPS dann noch wissen, wofür die Variablen gelten, Aufruf A oder B?

    Sorry, aber besser kann ich es nicht erklären, vielleicht ist jemand anderes dazu in der Lage.

Ähnliche Themen

  1. F-Programm lässt sich nicht laden
    Von RalleM im Forum Simatic
    Antworten: 29
    Letzter Beitrag: 04.02.2013, 14:26
  2. Antworten: 7
    Letzter Beitrag: 20.07.2010, 13:09
  3. Wer schreibt mir mein Programm ...
    Von Larry Laffer im Forum Stammtisch
    Antworten: 59
    Letzter Beitrag: 05.04.2008, 20:47
  4. Programm ändert sich
    Von kpeter im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 03.08.2006, 08:36
  5. Antworten: 1
    Letzter Beitrag: 18.11.2005, 16:36

Lesezeichen

Berechtigungen

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