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

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

Thema: Mein erster FB

  1. #11
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Wilhelm,

    ein Beispiel für die Verwendung des SFB4 TON als Einschaltverzögerung in einer Multiinstanz findest Du hier:

    http://www.sps-forum.de/showpost.php...3&postcount=31

    http://www.sps-forum.de/showthread.php?t=18370

    Gruß Kai
    Geändert von Kai (14.03.2008 um 23:57 Uhr) Grund: Rechtschreibfehler

  2. #12
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    ich hab gerade eines meiner Programme von globalen Timern befreit und diese gegen IEC-Timer ausgetauscht. Problem bei meiner Anlage: Zykluszeit! Ich hab noch nicht ins AG übertragen, aber ich hab Bammel, dass die IEC-Timer volll auf die Zykluszeit schlagen.. Ich hab die SFB's als Stat-Variable aufgeschlagen usw. aber ich hab das Prog noch nicht übertragen. Wenn es auf der CPU313C zu langsam wird, dann muss ich doch wieder globalvariablen nehmen....


    Approx
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  3. #13
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Hat jemand von Euch ne Ahnung davon, ob ieC-Timer soviel Recourcen verbraten, oder ob man als lieber Programmierer doch lieber globale
    Adressen nimmt?
    meinem Freundin schläft schon!
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  4. #14
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von Approx Beitrag anzeigen
    Hat jemand von Euch ne Ahnung davon, ob ieC-Timer soviel Recourcen verbraten, oder ob man als lieber Programmierer doch lieber globale
    Adressen nimmt?
    meinem Freundin schläft schon!
    Hallo!

    In der Operationsliste findest du die Ausführungszeiten von den SFB's
    http://support.automation.siemens.co...elled=&lang=de
    Auf der Seite 134 steht deine gewünschte Information.

    godi

  5. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    Approx (17.03.2008)

  6. #15
    WL7001 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.02.2007
    Beiträge
    149
    Danke
    33
    Erhielt 17 Danke für 15 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Hallo!

    Leider hast du nicht deinen ganzen Code hereingestellt aber was ich so bei der Variablendekleration gesehen habe wird dein Programm nicht funktionieren wenn du es Öfters aufrufst bzw in einem anderen Baustein auch Lokaldaten verwendest.
    Bei Flanken muss der Hilfsmerker eine Statische Variable sein sonst wird der Lokaldatenbereich in einem anderen Baustein überschrieben und deine Flanke funktioniert nicht mehr.

    Zu Multiinstanzen:
    In der Suche findet man da schon sehr viel dazu aber kurz:
    Du legst dir einen Übergeordneten FB an. in diesem kannst du dann in den Statischen Variablen eine Variable mit zb myTime anlegen und bei datentype wählst du FB aus und schreibst deine FB nummer von dem timer dazu.
    Dann brauchst du nur mehr im programm call #myTimer schreiben und du hast eine Multiinstanz kreiert.
    Die Daten von deinem Zeit FB werden danach in deinem Instanzdatenbaustein vom Übergeordneten FB abgelegt. Also du brauchst da nicht selber einen DB basteln und mit Pointern darauf zugreifen.

    godi
    Hi Godi,

    ich habe
    1. deinen Rat befolgt und die Flankenmerker in den statischen Bereich verschoben und
    2. einen übergeordneten FB angelegt, der den "Arbeits-FB" mehrmals aufruft.

    Ich habe das mal als Programm angehängt in der Hoffnung, dass sich das mal jemand ansehen könnte und mir sagt, ob das so laufen wird, denn leider habe ich keinen Simulator und an die Hardware zum üben komme ich erst wieder nächste Woche. Aber wissen möchzte ich es jetzt schon gerne.

    Danke erstmal an alle, die mir auf die Sprünge geholfen haben.

    Gruß Wilhelm

    Mein_1_Multi_FB.zip

  7. #16
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hallo!

    Habe jetzt mal kurz in dein Programm hineingeschaut.
    Da mit der Multiinstanz hast du mich falsch verstanden.
    Den FB 1 darfst du nicht mit UC aufrufen da du mit dem Aufruf keine Parameter übergibst und somit auch keinen Instanzdatenbaustein für deinen FB 1 erzeugst. Du musst das mit CALL machen.

    Die Multiinstanzdeklaration stimmt in deinem FB1 aber du darfst dann den FB2 nicht direkt aufrufen sondern über die Variable. Also in deinem Fall CALL #Takt_1
    Dann werden die Variablen die du in deinem FB 2 verwendest im Instanzdatenbaustein von deinem FB1 gespeichert.

    Dein Taktprogramm habe ich nur kurz überflogen. Sollte soweit funktionieren nur kann man da sicher noch einiges optimieren bzw anders machen.
    Aber du kannst ja wenn du an der Hardware bist ja selber herumprobieren.

    godi

  8. #17
    WL7001 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    16.02.2007
    Beiträge
    149
    Danke
    33
    Erhielt 17 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von godi Beitrag anzeigen
    Hallo!

    Habe jetzt mal kurz in dein Programm hineingeschaut.
    Da mit der Multiinstanz hast du mich falsch verstanden.
    Den FB 1 darfst du nicht mit UC aufrufen da du mit dem Aufruf keine Parameter übergibst und somit auch keinen Instanzdatenbaustein für deinen FB 1 erzeugst. Du musst das mit CALL machen.

    Die Multiinstanzdeklaration stimmt in deinem FB1 aber du darfst dann den FB2 nicht direkt aufrufen sondern über die Variable. Also in deinem Fall CALL #Takt_1
    Dann werden die Variablen die du in deinem FB 2 verwendest im Instanzdatenbaustein von deinem FB1 gespeichert.

    Dein Taktprogramm habe ich nur kurz überflogen. Sollte soweit funktionieren nur kann man da sicher noch einiges optimieren bzw anders machen.
    Aber du kannst ja wenn du an der Hardware bist ja selber herumprobieren.

    godi


    Tausend Dank, habe die Änderungen wie von dir beschrieben gemacht.

    Den FB1 rufe ich jetzt so auf : Call FB1, DB2
    Der DB2 wird auch vom Programm so angelegt, dass alle Deklarationen der 4 Instanzen im FB1 vorhanden sind.

    Im FB1 rufe ich die einzelnen Instanzen des FB2 jetzt so auf : Call #Takt_1, Call #Takt_2 etc.

    Der Vollständigkeit halber habe ich das Ganze nochmal als ZIP hochgeladen.

    Das Taktprogramm als solches läuft, hatte ich als FC vorher schon mal gehabt. Ob das jetzt der Weisheit letzter Schluss ist, weiß ich auch nicht, aber es funzt prima.

    Ob das alles in der SPS auch so läuft, gucke ich mir nächste Woche an. Wichtig war mir, dass ich verstehe, wie sowas prinzipiell funktioniert. Das habe ich ja dank eurer Hilfe geschafft.

    Danke an alle dafür.

    Gruß Wilhelm

    FB_Versuch2.zip

Ähnliche Themen

  1. Anfängerfrage: Erster Gehversuch mit Ausgang:=Eingang
    Von forellengarten im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 10:37
  2. Antworten: 55
    Letzter Beitrag: 07.05.2009, 10:58
  3. Erster Zyklus nach Neustart
    Von Dirty Harry im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 10.04.2009, 21:00
  4. AB erster Zyklus, oder erster Aufruf des Task nach RUN
    Von MSB im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.02.2008, 10:09
  5. Erster!
    Von mariob im Forum Stammtisch
    Antworten: 29
    Letzter Beitrag: 10.01.2008, 10:04

Lesezeichen

Berechtigungen

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