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

Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte
Ergebnis 41 bis 50 von 52

Thema: Großen FB in 2 Teile splitten - knifflig.

  1. #41
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo JoopB

    Zu deiner Schrittkette:
    Du brauchst nicht in jedem Netzwerk das einen Nachfolgenden Schritt um 1 höher hat L Schrittnummer schreiben sondern springe in ein Netzwerk zum schluss deiner Schrittkette und inkrementiere die Schrittnummer um 1 weil es unflexible ist wenn du mitten in deiner Schrittkette einen Schritt hinzufügen musst dann kannst du alle nachkorrigieren.
    Wenn du natürlich einen bestimmten Schritt anspringen willst dann kannst du das eh nur mit einem L Schrittnummer machen und das besagte Netzwerk einfach überspringen.

  2. #42
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich meine, das die Schrittkette mit SPL schon mal eine Menge Code einsparen würde, die ständigen Vergleiche inkl. Sprung machen doch sicher bald die Hälfte des gesamten Code aus. So nebenbei halte ich es in Step7 für die eleganteste Methode einer "Schrittkette zu Fuß". Die Schrittweiterschaltung kann tatsächlich besser am Ende erfolgen, wenn man Schrite überspringen will (abhängig von Eingaben am OP z.Bsp.) kann man aber trotzdem den Schrittzähler beliebig manipulieren, z.Bsp. 5 dazu addieren.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #43
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Hallo Godi,

    Enschuldige mir for meine Duits.
    Wenn ich in eine schritt zb schritt 25 oder Schritt 30 anspringe woll kan ich dass machen mit

    U nach_STEP25
    l 25
    SPB end
    U nach_Step30
    L 30
    SPB end
    uzw

    Gruss Joop

  4. #44
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    ...
    da mir die ganze Sache keine Ruhe gelassen hat ...
    und da mittlerweile auch Andere auf den Zug mit der Schrittkette aufgesprungen sind ...
    und überhaupt ...

    Ich habe mir mal das von RS hier eingestellte Code-Fragment aus seinem "Super-FB" ( ich kanns nicht lassen ...) nochmals angesehen und es gemäss meines Vorschlages "binärisiert" (Ich arbeite halt am liebsten mit Bits und nicht mit SPL - halt Geschmacksache).

    Dabei herausgekommen ist : Orginal von RS benötigt 236 Bytes - meine Version, die sich aber sicher noch weiter optimieren liesse, 174 Bytes.
    Ich stelle den Code zum Vergleich mal hier ein :
    Code:
    // Wenn bereits gesperrt ist, dann nichts machen.
          U     #Schritt_900
          SPB   ue99
    // Wenn der IZ kleiner 10 ist braucht nur gesperrt zu werden.
          U     #Schritt_kl_10
          UN    #Notaus_IO
          UN    #Gesperrt_Aktiv
          S     #Merker_Sperren
          SPBN  ue01
          S     #Schritt_900
          SPA   ue99
    // Wenn der IZ zwischen 10 und 64 ist kann NormalAus_S angewandt werden...
    ue01: UN    #Schritt_kl_10
          UN    #Schritt_gr_64
          SPB   ue02
          UN    #Notaus_IO
          UN    #NormalAus_S_Aktiv
          UN    #Abbruch_Aktiv
          S     #Merker_NormalAus_S
          SPBN  ue02
          U     #Option_XY                  // wenn True anderen IZ nehmen!
          S     #Schritt_450
          UN    #Option_XY
          S     #Schritt_750
          SPA   ue99
    // Wenn der IZ größer als 64 ist muß NotAus angewandt werden...
    ue02: U     #Schritt_gr_64
          UN    #Notaus_IO
          UN    #NotAus_Aktiv
          UN    #Abbruch_Aktiv
          S     #Merker_NotAus
          SPBN  ue03
          U     #Option_XY                  // wenn True anderen IZ nehmen!
          S     #Schritt_450
          UN    #Option_XY
          S     #Schritt_800
          SPA   ue99
    ue03: NOP   0
    ue99: NOP   0
    Ich denke, dass man durch geschicktes Programmieren noch auf ein paar der Sprünge verzichten könnte und damit weiteren Code einsparen würde.
    Warscheinlich würde die SPL-Gschichte nicht im gleichen Masse Code einsparen, da RS augenscheinlich sehr viel verzweigt und dadurch nicht eine "Erhöhe Pointer"-Anweisung am Ende reichen würde, sondern man mit vielen Direkt-Zuweisungen zwischendurch rechnen muß (Spekulation !).


    @JoopB: Ich glaube nicht, dass du dich hier bei irgendwem für dein Deutsch entschuldigen musst. Ich persönlich finde es toll, wenn dieses Forum anscheinend auch in Holland interessant ist ...

  5. #45
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ich meine, das die Schrittkette mit SPL schon mal eine Menge Code einsparen würde, die ständigen Vergleiche inkl. Sprung machen doch sicher bald die Hälfte des gesamten Code aus. So nebenbei halte ich es in Step7 für die eleganteste Methode einer "Schrittkette zu Fuß". Die Schrittweiterschaltung kann tatsächlich besser am Ende erfolgen, wenn man Schrite überspringen will (abhängig von Eingaben am OP z.Bsp.) kann man aber trotzdem den Schrittzähler beliebig manipulieren, z.Bsp. 5 dazu addieren.
    Hier mein Beitrag den ich eigentlich schon gestern abend senden wollte - aber dann versagte mein DSL....
    ======================================================
    So einfach lässt sich das nicht pauschalisieren...

    Da heute abend mein DSL zwischen 20:00 Uhr und jetzt (anm.: bis 0:30 - aber bevor ich Antworten drücken konnte war es auch schon wieder weg...) flöten ging habe ich mal ein wenig getestet...

    In dem Baustein (21518byte Gesamt / 200byte Schnittstelle) sind momentan 125 Schritte drin. Jeder dieser Schritte prüft am beginn ob seine Schrittnummer aktiv ist. Da ich ja kein Internet hatte habe ich mal einen leeren FB genommen, und 125mal den Vergleicher reingehängt der die Hälfte des Codes ausmachen soll...

    Er macht aber tatsächlich "nur" 2000byte - also etwa ein zehntel aus...

    Zum Vergleich eine Sprungleiste mit 125 Abzweigungen macht immerhin rund 600byte aus... (Ohne Gegenstücke, gell)

    Mal abgesehen davon daß die Sprungleiste gut für die Zykluszeit wäre bringt sie mir sonst nur Nachteile - bezogen auf meinen fertigen Baustein und das Drumherum zumindest.

    Sie alleine würde mich jedenfalls auch nicht unter die 16kB bringen.

    Da ich ja noch mehr Zeit hatte habe ich noch ein wenig weitergeguckt...

    Ich könnte (vermutlich) so auf die schnelle etwa 2,5 kB "auslagern" ohne den Ablauf unnötig durcheinander zu bringen. zähle ich jetzt noch die ermittelten 1,4kB dazu wenn ich auf Sprungleiste (wider willen) umbaue dann bin ich immer noch nicht unter 16kB.

    Das dumme ist halt nur daß das ganze zeug da nicht als Platzfüller drinsteht sondern es ist halt da.

    Ich kann es glaub drehen und wenden wie ich will - entweder spalten oder massivst überarbeiten und versuchen noch mehr auszulagern...

    Wobei ja übermäßiges Auslagern irgendwann keinen Unterschied mehr zum Spalten macht - es ist immer irgendwie zerissen
    =======================================================

    @LL: Danke für die Mühe, da das nicht mal eben so geschwind machbar ist bin ich gerade alles am abwägen.

    Wie schon gesagt ohne größere Maßnahmen ist da nichts zu machen und die überlege ich mir nun mal ganz genau.

    Ab Montag muss ich aber zuerst noch die Baustelle fertig kriegen bevor da in der Richtung noch was geht - auf jeden Fall lasse ich lieber die 317er mal noch stecken bevor ich das Teil übereilig versaue - da wäre mehr kaputt als die Preisdifferenz.
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  6. #46
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Zitat Zitat von rs-plc-aa Beitrag anzeigen
    ... Wie schon gesagt ohne größere Maßnahmen ist da nichts zu machen und die überlege ich mir nun mal ganz genau.
    Ich denke, dass das der einzige sinnvolle Ansatz ist ...
    Ich selbst arbeite auch viel und gerne mit Standard-Bausteinen, aber ab und an ist auch mal eine Version 2.0 fällig.

    Ich glaube, dass du das von Anfang an befürchtet hast, aber es vielleicht nicht wahrhaben wolltest ...

    Zitat Zitat von rs-plc-aa Beitrag anzeigen
    Ab Montag muss ich aber zuerst noch die Baustelle fertig kriegen bevor da in der Richtung noch was geht - auf jeden Fall lasse ich lieber die 317er mal noch stecken bevor ich das Teil übereilig versaue - da wäre mehr kaputt als die Preisdifferenz.
    Würde ich auch so machen. Die CPU kannst du dir auch später noch mal wiederholen - vorausgesetzt du kannst dein Problem zufriedenstellend lösen.
    Vielleicht kannst du dem Kunden gegenüber natürlich auch einen Nachtrag für die CPU geltend machen, wenn du ihm die technischen mehr-Möglichkeiten (vor Allem in Hinblick auf die Zukunft) schmackhaft machst .

    In jedem Fall - Viel Erfolg morgen
    Gruß
    LL

  7. #47
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Ich sag jetzt einfach mal schnell noch mal danke da ich seit 5min erst wieder ins Netz komme - da ist echt grade der Wurm drin

    Hab jetzt mal schnell noch ein FW Update an der TK Anlage gemacht weil drin stand "erhöhte Stabilität" - vielleicht hilft´s ja...

    Werde mich - wenn´s geht - heute später noch mal melden.
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  8. #48
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    ... Agfeo ...?

  9. #49
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Nö, AVM (Fritz!)
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  10. #50
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @LL:

    Bei deinem "umgebauten" Ausschnitt von mir ist mir noch was aufgefallen...

    Und zwar die 2 Bits "#Schritt_kl_10" und "#Schritt_gr_64" - da Bits ja nur zwei Zustände kennen müßte ich für so was auch wieder solche extra Bits irgendwo setzen und rücksetzen da sie ja keinen Zustand selbst sondern nur einen Bereich markieren...

    Wäre sicher auch alles machbar aber das ist eben immer das Problem weil vieles mit dranhängt.

    Wegen den 2kB überlege ich mir halt schon ob es sich lohnt die Nachteile mit in Kauf zu nehmen, ganz zu schweigen was es sowieso an Aufwand bedeutet...

    Wenn ich also langfristig unter 16kB kommen will dann muss ich schon dafür sorgen daß ich jetzt mal so auf 12 runterkomme und schaue wo der Rest alles hinwandert.

    Und gerade in Bezug auf dieses Verteilen ist vielleicht die jetzige Methode gar nicht ohne. Wenn ich z.B eingrenze daß in einem Unterprogramm die Zustände 200 bis 245 liegen dann bräuchte ich es am Anfang nur mit der Abfrage beginnen * kleiner 200 / größer 245 = BEB *

    Wenn dann mehrere so häppchen verteilt sind dann könnte die Zykluszeit auch positiv davon profitieren da immer nur ein Happen durchlaufen wird - nämlich der der den gültigen Bereich hat...

    Und das ganze noch verpackt in Godis FB 10? Oder als im ersten FB aufgerufene Unterprogramme?

    Der Mist ist eben daß der Baustein viele Timer enthält - ein paar S7 Timer und in den IZ vorzugsweise SFB4 Timer (so gestrickt daß immer der selbe verwendet werden kann - daher auch immer dieses häufige Aufrufen mit negativem Eingang -> damit er im nächsten IZ wieder Clean ist...)

    Noch eine Idee: Alle Schrittbasierten Netzwerke in 2 neue Bausteine packen (für einen sind sie ja zu groß) und diese im Ur-FB aufrufen der dann nur noch die Schrittneutralen Netzwerke und eben die Bausteinaufrufe enthält. Aber dann wieder die Schnittstelle... (200 byte ist halt immer soo viel zum ausfüllen) Lösung: Pro durchlauf immer nur den starten der die aktive Schrittnummer enthält - der andere hat dann ja sowieso nix zu tun. Ich glaube in die Richtung muss ich mal weiterdenken...
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

Ähnliche Themen

  1. Profibus-Sensor - Signal splitten.
    Von DPuser im Forum Feldbusse
    Antworten: 14
    Letzter Beitrag: 01.08.2011, 10:51
  2. S7 in Programmteile splitten
    Von Servernexus im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 26.05.2011, 20:52
  3. AG_Recv /Datenstring Splitten
    Von s_alpen im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.10.2010, 10:26
  4. Ich hab vom großen S die schnauze voll
    Von stift im Forum Stammtisch
    Antworten: 38
    Letzter Beitrag: 07.02.2010, 20:05
  5. Chinch Ausgang splitten
    Von Markus im Forum Stammtisch
    Antworten: 6
    Letzter Beitrag: 19.09.2005, 23:26

Lesezeichen

Berechtigungen

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