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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Aufbau eines FB´s mit 8 * FB42 im Bauch

  1. #1
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute.

    Bin neu hier. 29 Jahre alt, derzeit auf der Technikerschule Lahr. Erstes Jahr vorbei und nun in den Sommerferien ein bißchen Zeit, um an der Technikerarbeit zu basteln. Ich heisse Marco.

    Mein Ziel ist es, ein bestehendes Programm zu vereinfchen. Eine Schaumanlage besitzt in der Regel pro Lanze 2 Regler. Liquid und Luft werden über kleine SAMSON Stellmotoren mit dem PID FB 42 angesteuert. Um uns immer wieder das kopieren zu sparen soll ich 4 Lanzen in einen FB packen, in dem dann die 8 Regler drin sind. Also intern multiinsanzfähig. Das ganze soll von aussen beschreibbar sein, das heißt immer die 1. Adresse soll einegeben werden und die anderen intern verwendet werden.
    Also z.B. der erste Liquiddurchfluss DB40.DBD320 und die andere 324.....328....332 sollen intern verwendet werden. Genauso soll es mit den digitalen Eingängen und Ausgängen sein.

    Versteht ihr mein kauderwelsch?

    Ich stehe momentan ein wenig auf dem Schlauch, da dieses Thema in der Schule erst im 2. Jahr ein bisschen behandelt wird.

    Danke für Eure Hilfe im voraus. Falls jemand versteht, was ich meine.....

    Gruß MArco
    Geändert von trinkiwinki (20.08.2007 um 14:30 Uhr)
    Zitieren Zitieren Aufbau eines FB´s mit 8 * SFB42 "CONT S" im Bauch  

  2. #2
    Registriert seit
    28.04.2005
    Beiträge
    85
    Danke
    11
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Hi,
    erst beim 2-ten Durchlesen habe ich eine leise Ahnung bekommen was Du überhaupt vor hast.

    Also, erstelle ein FB1.
    Ruf' den FB 42 so oft du brauchst auf(pro Netzwerk bitte nur 1 Mal(blos nicht mehrere nacheinander in einem Netzwerk)).
    Ändere jeden Aufruf(über das Kontextmenü(rechtsklick auf dem jeweiligen Bastein)) in eine Multiinstanz(Namen vergeben z.B.: miLanze01_1).

    Die Beschaltung deinen FB von Aussen würde ich nicht auf die Art machen, wie Du es vor hast(ich denke Du meintest ANY-Pointer und Offsets), sondern mit Hilfe von UDT's.

    Erstelle UDT's(UDT ist eine Datenmaske oder Struktur) für alle Ein- und Ausgabeparameter(ob Du einen UDT pro Regler oder einen für alle Regler erstellst ist Dir überlassen), lege die UDT's in einem DB ab und deklariere diese Bereiche als Ein- bzw. Ausgabeparameter an deinem FB1.
    Dadurch hast Du den Vorteil, dass Du in deinem FB1 symbolisch adressieren kannst.

    Ich hoffe Dir geholfen zu haben.
    Gruß
    Alex

  3. Folgender Benutzer sagt Danke zu ANo für den nützlichen Beitrag:

    trinkiwinki (22.08.2007)

  4. #3
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Servus Alex,


    erst einmal danke für Deine ausführliche Antwort. Bin nicht so bewandert, aber ich werde mich mal schlau lesen und versuchen, das so umzusetzen.


    Danke.

    Gruß Marco

  5. #4
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von trinkiwinki Beitrag anzeigen
    Hallo Leute.

    Bin neu hier. 29 Jahre alt, derzeit auf der Technikerschule Lahr. Erstes Jahr vorbei und nun in den Sommerferien ein bißchen Zeit, um an der Technikerarbeit zu basteln. Ich heisse Marco.

    Mein Ziel ist es, ein bestehendes Programm zu vereinfchen. Eine Schaumanlage besitzt in der Regel pro Lanze 2 Regler. Liquid und Luft werden über kleine SAMSON Stellmotoren mit dem PID FB 42 angesteuert. Um uns immer wieder das kopieren zu sparen soll ich 4 Lanzen in einen FB packen, in dem dann die 8 Regler drin sind. Also intern multiinsanzfähig. Das ganze soll von aussen beschreibbar sein, das heißt immer die 1. Adresse soll einegeben werden und die anderen intern verwendet werden.
    Also z.B. der erste Liquiddurchfluss DB40.DBD320 und die andere 324.....328....332 sollen intern verwendet werden. Genauso soll es mit den digitalen Eingängen und Ausgängen sein.

    Versteht ihr mein kauderwelsch?
    Gruß MArco
    Ehrlich gesagt nicht so ganz. Reicht es nicht überall den gleichen Sollwert aufzuschalten???
    Mit dem Multiinstanziieren handelst du dir den Nachteil ein, dass das Tool PID parametrieren nicht mehr richtig verwendet werden kann.

    Achja, nicht vergessen - Regler grundsätzlich über die Weckalarm-OB's aufrufen, sonst gibts ärger !
    Geändert von kiestumpe (22.08.2007 um 09:41 Uhr) Grund: blaaa
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  6. Folgender Benutzer sagt Danke zu kiestumpe für den nützlichen Beitrag:

    trinkiwinki (22.08.2007)

  7. #5
    Registriert seit
    29.03.2007
    Beiträge
    123
    Danke
    17
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Hm... weiß auch nicht worum es geht, aber gebe mien Senf mal dazu:

    Prinzipiell würde ich dann auch pro Lanze einen FB/FC machen. (Wieso FB? reicht kein FC? Und dann ein und ausgangsvariablen anlegen bzw. wie ANo schon geschrieben hat einen Struct anlegen, damit es übersichtlich bleibt. Dann kannst dir immer noch überlegen ob du pro Lanze einen eigenen DB machst und diesen auch am FC anbindest, oder einen DB für alle Lanzen, wo du halt einen Offset anhängen müsstest...

  8. Folgender Benutzer sagt Danke zu Jordy für den nützlichen Beitrag:

    trinkiwinki (22.08.2007)

  9. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von kiestumpe Beitrag anzeigen
    Mit dem Multiinstanziieren handelst du dir den Nachteil ein, dass das Tool PID parametrieren nicht mehr richtig verwendet werden kann.
    Man kann bei "PID Control" einen Byteoffset angeben an dem sich die entsprechende Regler-Instanz im DB befindet.
    Also vorher im Instanz-DB die entsprechende Adresse des FB-Aufrufes raussuchen und dort eintragen.
    Zitat Zitat von kiestumpe Beitrag anzeigen
    Achja, nicht vergessen - Regler grundsätzlich über die Weckalarm-OB's aufrufen, sonst gibts ärger !
    Grundsätzlich kann man so gar nicht sagen. Bei einer langsamen Regelstrecke bei dem der Regler FB z.B. alle 5s aufgerufen wird, ist der Unterschied marginal.
    Alternativ lässt sich noch die Zykluszeit auf einen Minimalwert einstellen sodass der Jitter gering bleibt.
    Die Fummelei mit den Weck-OBs geb ich mir nur bei schnellen Regelstrecken mit viel I oder D-Anteil.

    Aber wenn man es grundsätzlich im Interrupt macht, macht man auf jeden Fall nichts verkehrt, das stimmt.

  10. #7
    Registriert seit
    28.04.2005
    Beiträge
    85
    Danke
    11
    Erhielt 8 Danke für 8 Beiträge

    Standard

    Zitat Zitat von Jordy Beitrag anzeigen
    Prinzipiell würde ich dann auch pro Lanze einen FB/FC machen. (Wieso FB? reicht kein FC?
    ... es sollen ja Multiinstanzen verwendet werden.

    wenn man bedenkt das es eine Technikerarbeit werden soll, wird vielleicht ein Weckalarm in Verbinding mit einem PID auf die Lehrer einen bleibenden Eindruck hinterlassen.
    Geändert von ANo (22.08.2007 um 23:44 Uhr)

  11. #8
    Registriert seit
    20.08.2007
    Beiträge
    40
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Servus Alex

    das mit dem UDT habe ich jetzt soweit. Nun füge ich die UDT 10 mal in einen DB ein. Schaumlanze 1 bis 10. Soweit richtig? Nun erstelle ich einen FB. Ob ich jetzt 4 Lanzen in den FB mache oder 1 ist erstmal egal. Jedenfalls muss ich ja oben in der Deklaration auch was einfügen. Als IN die UDT oder was? Wenn ich die nur als IN mache, dann kann ich am FB 42 an den Ausgängen nichts einfügen. Icrgendwas mache ich falsch und verstehe nichts. Hast Du mir nochmals einen Tip? Danke im voraus.


    Gruß Marco

  12. #9
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Man kann bei "PID Control" einen Byteoffset angeben an dem sich die entsprechende Regler-Instanz im DB befindet.
    Also vorher im Instanz-DB die entsprechende Adresse des FB-Aufrufes raussuchen und dort eintragen.
    klar, machen kann man viel. Nur die Frage ob es so praktisch ist wenn in einem InstanzDB zehn Regler liegen, jedesmal die Adresse neu einzugeben.
    Viel Spass kann ich da nur sagen.

    Das gleiche gilt für die Regler, ich kann denjenigen nur bedauern, der vielleicht die Anlage in einigen Monaten oder Jahren abändert und sich bei verlängernden Zykluszeiten dann wundert, warum evt. Seiteneffekte entstehen.
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

  13. #10
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von kiestumpe Beitrag anzeigen
    Nur die Frage ob es so praktisch ist wenn in einem InstanzDB zehn Regler liegen,
    Ist doch klar: Beim Proggen spart man mindestens 400 Zeilen, die man sonst eigenhändig kopieren müsste!
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Tolle Ersparnis  

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 15.01.2011, 12:56
  2. Antworten: 6
    Letzter Beitrag: 06.04.2010, 18:06
  3. FB42 Cont_S
    Von Iserlohner im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 08.09.2009, 10:12
  4. Aufbau eines TS Adapters
    Von Nickel im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.09.2007, 20:09
  5. Sinvoller aufbau eines Profibus Netzes
    Von Bender25 im Forum Feldbusse
    Antworten: 18
    Letzter Beitrag: 08.01.2007, 09:49

Lesezeichen

Berechtigungen

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