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

Ergebnis 1 bis 10 von 10

Thema: Frage zur Übergabe von Werten

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    ich knoble grade und komme auf keine gute Lösung. Ich habe z.B. sieben Schrittketten, wobei immer nur eine davon angewählt ist.

    In einem zentralen Baustein (FC) werden die Ausgänge der Schrittketten angesteuert. Damit das funktioniert müssen die Schrittwerte der jeweiligen Kette an diesen FC übergeben werden.

    Wie schaffe ich es, dass immer nur die angwählte Schrittkette die vorgesehene Variable (z.B. MW200) benutzt, um darüber die Schrittnummer zu übertragen?
    LG
    spirit
    Zitieren Zitieren Frage zur Übergabe von Werten  

  2. #2
    Registriert seit
    11.12.2010
    Ort
    nähe Bamberg
    Beiträge
    40
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo spirit!

    Du weisst sicher welche der Schrittketten aktiv ist. Evtl. über ein gesetztes bit. Dann einfach die Schrittnummer verwenden dessen aktivbit gesetzt ist.
    u Kette1_aktiv
    spbn s2
    l schrittnummer_kette1
    t mw200
    spa ende
    s2:nop 0
    u kette2_aktiv
    spbn s3
    l schrittnummer_kette2
    t mw200
    spa ende
    .
    .
    .

    end: nop 0

  3. #3
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Danke schon mal für diesen Vorschlag;

    mein Problem ist jetzt nur noch - an die einzelnen Schrittketten-Nummern (z.B. schrittnummer_kette1) komme ich ja so nicht heran. Diese sind ja in der Schrittkette als IN_OUT_Variable deklariert.
    LG
    spirit

  4. #4
    Registriert seit
    11.12.2010
    Ort
    nähe Bamberg
    Beiträge
    40
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Evtl. könntest Du eine zusätzliche Out-Variable "aktiv" in allen Schrittketten einfügen welche anzeigt dass die Schrittkette aktiv ist. Diese dann auf true setzen solange die Schrittkette bearbeitet wird.
    Andere Möglichkeit: Welchen wert hat die Variable Schrittnummer wenn die Kette nicht aktiv ist? Falls Du hier einen Standartwert hast kannst Du ja prüfen ab der aktuelle Wert anders ist.
    Wenn ja, dann den Wert zur weiteren Verwendung speichern und im Programm fortfahren...

    Gruß

  5. #5
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Danke schon mal für diesen Vorschlag;

    mein Problem ist jetzt nur noch - an die einzelnen Schrittketten-Nummern (z.B. schrittnummer_kette1) komme ich ja so nicht heran. Diese sind ja in der Schrittkette als IN_OUT_Variable deklariert.
    Aber eine IN/OUT kann doch beschalten werden.
    Und diese Beschaltung z.B. MW 200 kannst du doch weiter verwenden.
    Aber nur lesen nicht schreiben.

    Sind deine Schrittketten Graph Ketten?


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  6. #6
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Aber eine IN/OUT kann doch beschalten werden.
    Und diese Beschaltung z.B. MW 200 kannst du doch weiter verwenden.
    Aber nur lesen nicht schreiben.

    Sind deine Schrittketten Graph Ketten?

    bike
    Nun, klar kann ich die IN/OUT mit MW200 beschalten. Aber das MW200 hängt ja dann sozusagen an allen Schrittketten...

    Und wie kann ich das dann sondieren; dass eben nur die aktuell angewählte SK dieses MW benutzen kann?

    Nein, die SK sind in SCL gemacht.

    Vielen Dank!
    LG
    spirit

  7. #7
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Wie wäre es wenn du jeder Schrittkette ein eigenes MW gibst?
    Solange die Schrittketten stehen ist der Init aktiv.
    Dann suchst welches MW ungleich init ist und dann hast du die aktive Schrittkette.
    Das wäre eine Krücke dies zu finden.
    besser ist wenn du die Startvoraussetzung der aktiven Kette nimmst, dann das MW und gut ist es.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  8. #8
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Welchen Wert hat denn die Schrittkettennummer wenn die Schrittkette nicht läuft?
    0?
    Dann konntest Du eine Max-Auswahl der einzelnen Schrittkettennummern machen.

    Aber was ich nicht verstehe: es gibt sieben Schrittketten, die im selber Schritt immer dasselbe machen?
    Oder ist das eine Schrittkette, die sieben Instanzen hat, zB 7 gleiche Abfüllanlagen.

    Du wirst ja wissen welche Schrittkette läuft, einfache einen kleinen FC schreiben mit 7 Bool und 7 Integer und in Abhängigkeit der laufenden SK das Integer am Ausgang schreiben.
    Im Prinzip wie #2.

    "schrittnummer_kette1" ist ja irgendeine Variable auf die man zugreifen kann wenns in einer Instanz liegt.

  9. #9
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Sorry, wenn ich mich doof ausdrücke.

    Nein, das Problem ist nicht, dass ich nicht weiß welche Schrittkette aktiv ist. Die wird über ein Display quasi angewählt.

    In einem FB laufen drei Schrittketten. Von solchen FB's gibt es sieben an der Zahl. Dabei ist aber immer nur ein FB mit seinen drei Schrittketten aktiv.

    Nun könnte ich schon jeder dieser drei Schrittketten pro FB jeweils ein MW zuweisen. Aber das wären ja dann 21 Merkerworte und ich wollte das ganze halt etwas eleganter lösen und mit nur drei Merkerworten auskommen.

    1)
    Aja stimmt, ich könnte natürlich über den Instanz-DB auf die Variablen in dem FB zugreifen, stimmts? Und dann es doch mit Lösung #2 versuchen...

    2) Im Grunde könnte man ja auch jeden FB bedingt aufrufen, so dass nur immer einer aktiv ist. Habe nur mal gelesen, dass diese bedingten Aufrufe ungut sind. Stimmt das?
    LG
    spirit

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Spirit:
    Wenn du doch sowieso schon mit einem FB arbeitest ... wie wäre es dann, wenn die Schrittnummer Bestandteil der Instanz ist ? (So mache ich es für gewöhnlich).

    Wenn du bei deiner Baustein-Verwendung eine "1 aus 7"-Geschichte machen willst, so geht das z.B. durch bedingtes Bearbeiten oder Anspringen bzw. Überspringen der Bausteine.
    Ich bin allerdings kein Freund einer solchen bedingten Bearbeitung und würde es so machen, das der Baustein einen Enable-IN bekommt und dann intern selber entscheiden muss, was er damit amcht ...

    Gruß
    Larry

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 02.03.2013, 09:27
  2. Antworten: 3
    Letzter Beitrag: 20.08.2011, 11:36
  3. Antworten: 5
    Letzter Beitrag: 29.11.2010, 09:00
  4. Übergabe von Werten bei C7-635 Touch
    Von dacripple im Forum HMI
    Antworten: 0
    Letzter Beitrag: 15.12.2008, 15:44
  5. Antworten: 5
    Letzter Beitrag: 12.06.2006, 12:58

Lesezeichen

Berechtigungen

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