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

Ergebnis 1 bis 4 von 4

Thema: Ein paar Fragen zur S5 Programmierung

  1. #1
    Registriert seit
    08.05.2009
    Beiträge
    117
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    arbeite die meiste Zeit mit S7, wenn man dann mal wieder etwas mit S5 schreiben soll, steht man dann doch recht schnell auf dem Schlauch.

    Arbeite mit einer S5-95U an folgendem Programm, erstmal nur so ein kleiner Auszug aus dem ersten Netzwerk.
    Grundlegendes sollte eigentlich erkennbar sein.

    NAME: FB3
    BEZ: XAI EW
    BEZ: OS EW
    BEZ: FK EW
    BEZ: XAO AW

    L =XAI
    L KF+40
    !=F
    BEB

    L KF+0
    T MW 134
    T MW 136
    T MW 138
    T MW 140

    L =XAI
    T MW 134

    L =FK
    T MW 136

    SPA FB 243
    NAME: DIV: 16
    Z1: MW 134
    Z2: MW 136
    OV: M 140.0
    FEH: M 140.1
    Z3=0: M 140.2
    Z4=0: M 140.3
    Z3: MW134
    Z4: MW 138

    nutze hierbei diverse Merkerwörter als Schmiermerker.
    anschließend werden diese Schmiermerkerinhalte für Multiplikations und Divisionsoperationen verwendet.

    So nun die Fragen.
    Würde mir gern diese Schmiermerkergeschichte ersparen um den FB so gut wie möglich für spätere Anwendungen parametriert zu wissen.
    Möchte anstatt der Schmiermerker einen eigenen DB nutzen, quasi als Gedächtnis des FB.
    Habe dabei vor den aktuell offenen DB zu Beginn dieses FBs in meinem Gedächtnis DB zu sichern und am Ende des Programms für den Rücksprung wieder zu öffnen.
    Wie tue ich das am besten?

    Als nächstes noch eine Frage, deklariere mir ja zu Beginn für den Aufruf des FBs diverse Ein- Ausgangsparameter, kann ich diese auch direkt an dem später aufgerufenen FB 243 anschalten?
    Oder muss ich diese in Schmiermerker zwischespeichern und muss diese dann an den FB 243 anschalten?

    Bis hierhin erstmal vielen Dank im voraus.
    Zitieren Zitieren Ein paar Fragen zur S5 Programmierung  

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

    Standard

    Du kannst auch einen DB als "IN"-Parameter deklarieren!
    z.B.:
    Code:
    NAME: FB3
    Bez.:   INDB   E/A/D/B/T/Z: B
    usw
     
    B =INDB //Aufruf des Gedächtnis-DB
    L KF+0
    T DW134
    T DW136
    usw.
    An dem FB243 trägst Du statt MW einfach die DW an. Sollte klappen.
    Du musst halt für jeden FB3-Aufruf einen separaten DB deklarieren und diesen ggf. so oft kopieren, wie benötigt wird.
    Gruß Approx
    Geändert von Approx (01.08.2011 um 14:59 Uhr) Grund: 2.Frage
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  3. #3
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von matziane Beitrag anzeigen
    Habe dabei vor den aktuell offenen DB zu Beginn dieses FBs in meinem Gedächtnis DB zu sichern und am Ende des Programms für den Rücksprung wieder zu öffnen.
    Wie tue ich das am besten?
    Bin mir jetzt nicht mehr ganz sicher, aber das sollte mit den Befehlen LIR und TIR gehen.
    Zitat Zitat von matziane Beitrag anzeigen
    Als nächstes noch eine Frage, deklariere mir ja zu Beginn für den Aufruf des FBs diverse Ein- Ausgangsparameter, kann ich diese auch direkt an dem später aufgerufenen FB 243 anschalten?
    Oder muss ich diese in Schmiermerker zwischespeichern und muss diese dann an den FB 243 anschalten?
    Meines Wissens geht das ohne Schmiermerker nicht.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  4. #4
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi matziane,

    Zitat Zitat von matziane Beitrag anzeigen

    SPA FB 243
    NAME: DIV: 16
    Z1: MW 134
    Z2: MW 136
    OV: M 140.0
    FEH: M 140.1
    Z3=0: M 140.2
    Z4=0: M 140.3
    Z3: MW134
    Z4: MW 138
    Hier dürfte es bei Verwendung von Daten-Bits Probleme geben, da diese bei S5 anders codieriert werden als "normale" Bits (zB SU anstatt S).
    Was die Sie-Standardbausteine benutzen, keine Ahnung.

    Noch eine Anmerkung zum DIV-Baustein:
    Falls FEH = 1 (z.B. Division durch Null), werden Z3 und Z4 nicht beschrieben (Werte sind falsch).
    Also FEH danach auswerten und MWs an Z3/Z4 richten.

    Zitat Zitat von matziane Beitrag anzeigen
    ...
    nutze hierbei diverse Merkerwörter als Schmiermerker.
    anschließend werden diese Schmiermerkerinhalte für Multiplikations und Divisionsoperationen verwendet.
    Bei S5 gab es eine ungeschriebene Regel:
    Die M200.0 bis M255.7 wurden (auch von Siemens-FBs) als Schmiermerker benutzt.
    Ich hab das auch immer so gemacht.
    Falls diese Merker global benutzt werden, müssen diese vorher in einem DB gerettet und danach wieder zurückgeschrieben werden.

    Zitat Zitat von matziane Beitrag anzeigen
    ...
    Würde mir gern diese Schmiermerkergeschichte ersparen um den FB so gut wie möglich für spätere Anwendungen parametriert zu wissen.
    Möchte anstatt der Schmiermerker einen eigenen DB nutzen, quasi als Gedächtnis des FB.
    Habe dabei vor den aktuell offenen DB zu Beginn dieses FBs in meinem Gedächtnis DB zu sichern und am Ende des Programms für den Rücksprung wieder zu öffnen.
    Wie tue ich das am besten?
    Bei S5 bleibt der aufgeschlagene DB im aufgerufenen Baustein gültig.
    Wird im aufgerufenen Baustein ein anderer DB aufgeschlagen, ist beim Rücksprung wieder der ursprünglich DB gültig.

    Zitat Zitat von matziane Beitrag anzeigen
    Als nächstes noch eine Frage, deklariere mir ja zu Beginn für den Aufruf des FBs diverse Ein- Ausgangsparameter, kann ich diese auch direkt an dem später aufgerufenen FB 243 anschalten?
    Oder muss ich diese in Schmiermerker zwischespeichern und muss diese dann an den FB 243 anschalten?
    Dürfte die einfachere Methode sein.

    Ein DB-Gedächtnis ist schon möglich.
    Die entsprechenden Werte halt im FB auf DWs schreiben/lesen.
    Der DB kann vor Aufruf des FB oder per Parameter (siehe Approx) aufgerufen werden.
    An den Rechen-FBs selbst, würde ich mit den Schmiermerkern arbeiten.

    Gruß Roland

    PS:
    Nochwas, die S5-DBs sind Wort-orientiert.
    d.h es gibt DW134, DW135, DW136...
    Geändert von Der Pfälzer (01.08.2011 um 23:45 Uhr) Grund: Schraibvähler
    Nicht Mensch, nicht Tier: Programmierer halt ...

Ähnliche Themen

  1. Ein Paar Fragen
    Von Duggi im Forum Sonstige Steuerungen
    Antworten: 22
    Letzter Beitrag: 12.07.2017, 13:44
  2. Hab ein paar Fragen zu Bussystemen
    Von Red-Sh4nks im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 22.06.2010, 19:06
  3. Ein paar Fragen .
    Von waldy im Forum Stammtisch
    Antworten: 124
    Letzter Beitrag: 27.01.2010, 09:34
  4. Ein Paar Fragen über B&R.
    Von JesperMP im Forum Sonstige Steuerungen
    Antworten: 26
    Letzter Beitrag: 29.02.2008, 19:22
  5. SPS Laie hat ein paar Fragen
    Von Hypancistrus im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 16.10.2006, 21:26

Lesezeichen

Berechtigungen

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