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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: Ausgänge mehrmals setzen? TIA V13

  1. #11
    Registriert seit
    23.10.2009
    Beiträge
    353
    Danke
    58
    Erhielt 101 Danke für 75 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Automatio Beitrag anzeigen
    ...Ich muss doch sowieso einmal festlegen, dass Lager 1 Höhe 1 und Breite 1 ist und das bei allen 28.
    Wieso denn das? Sind die Lagerplätze nicht der Reihe nach angeordnet?
    Die X-Koordinate ist dann z. B (Nummer div Breite) und die Y-Koordinate (Nummer mod Höhe). Zwei Befehle und du kennst jede beliebige Zielposition.

    Zitat Zitat von Automatio Beitrag anzeigen
    Ich glaube alles in einem FB ist sogar eine recht gute Lösung.
    Schrittkette und komplexe permanente Operationen in einem FB ist nie eine gute Lösung, wirst Du auch noch merken.
    Gruß
    Erich

  2. #12
    Automatio ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2015
    Beiträge
    29
    Danke
    14
    Erhielt 3 Danke für 3 Beiträge

    Standard

    SPS Forum1.JPGSPS Forum2.JPGSPS Forum3.JPG

    Momentan ist es wie auf den angehängten Bildern gelöst, was nicht funktioniert, obwohl der DB den Merker eigentlich setzten sollte.(Ausgang wird beim beobachten als aktiv angezeigt, der Merker aber nicht)
    So wie ich das verstehe, aufgrund eurer Erklärungen, müsste es funktionieren. Doch der Merker setzt sich nicht, da ich ihn 2x benutze. Oder verstehe ich etwas falsch?

    Vielen Dank für eure bisherige Hilfe.
    Gruss Automatio

  3. #13
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.302
    Danke
    682
    Erhielt 591 Danke für 452 Beiträge

    Standard

    Ich weiss jetzt nicht wie das in FUP dargestellt wird. Aber wenn der Anschluss des Merkers am OUT (Nicht IN/OUT) des FBs ist. Dann wird das letzte Schreiben immer prior sein. Ob nun 0 oder 1. Das gilt auch wenn im Baustein auf Out nur bedingt geschrieben wird. Der Letzte Baustein der Aufgerufen wird, gewinnt (wenn nicht übersprungen oder EN = False)

    Hochregal hört sich jetzt schon so an, als sollte man das wissen.

    mfG René

  4. #14
    Registriert seit
    15.02.2006
    Ort
    S-H
    Beiträge
    184
    Danke
    11
    Erhielt 45 Danke für 17 Beiträge

    Standard

    Wie bereits beschrieben - es kann so nicht funktionieren.

    Es zählt praktisch nur Dein letzter Aufruf des FB2 - alles was davor auf die Merker geschrieben wird hat die Steuerung somit vergessen...

    Stichwort: Zyklische Arbeitsweise einer SPS (vereinfacht):

    - Einlesen der Eingänge (PAE)
    - Abarbeiten des Programmcodes (OB1 und darin aufgerufene, sonstige OB`s)
    - Schreiben der Ausgänge (PAA)

    ... und dann wieder von vorn.

    Das solltest Du Dir nochmals ansehen - der Fehler steckt in Deinem Ansatz.

    PS: Der Merker setzt sich schon - aber im nächsten Netzwerk (genauer beim folgenden Aufruf des FB2) wird der gleiche Merker ja wieder mit 0 beschrieben...
    Geändert von pjoddi (27.04.2016 um 13:11 Uhr)
    mit bestem Gruß Pjoddi
    -----------------------------------
    Gott- gib mir Gelassenheit, Dinge hinzunehmen, die ich nicht ändern kann, den Mut, Dinge zu ändern, die ich ändern kann, und die Weisheit, das eine vom anderen zu unterscheiden. (J.C. Oetinger)

  5. #15
    Automatio ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2015
    Beiträge
    29
    Danke
    14
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von pjoddi Beitrag anzeigen
    Wie bereits beschrieben - es kann so nicht funktionieren.

    Es zählt praktisch nur Dein letzter Aufruf des FB2 - alles was davor auf die Merker geschrieben wird hat die Steuerung somit vergessen...

    Stichwort: Zyklische Arbeitsweise einer SPS (vereinfacht):

    - Einlesen der Eingänge (PAE)
    - Abarbeiten des Programmcodes (OB1 und darin aufgerufene, sonstige OB`s)
    - Schreiben der Ausgänge (PAA)

    ... und dann wieder von vorn.

    Das solltest Du Dir nochmals ansehen - der Fehler steckt in Deinem Ansatz.
    Soooo... Jetzt sind wir wieder bei meiner Einstiegsfrage, ich weiss wie eine SPS arbeitet und dass es nicht funktioniert, aber so wie ich das gelesen habe, wurde mir auf der letzten Seite das Gegenteil erklärt.

    Jetzt wieder zur Anfangsfrage:
    Wie kann ich die Ausgänge/Merker mehrmals benutzen ohne 28x Merker auf einen Ausgang zu ziehen?
    Oder muss ich mein ganzes Programm überarbeiten?
    Was ist dann genau der Vorteil der Schrittkettenprogrammierung/Instanzierung?

    Sorry, ich bin noch relativ neu wenns um das TIA-Portal (bin auch noch in der Ausbildung) geht und fand meine Idee relativ gut, lasse mich aber gerne belehren.

    Gruss
    Automatio

  6. #16
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.302
    Danke
    682
    Erhielt 591 Danke für 452 Beiträge

    Standard

    Das kommt drauf an was dein FB2 tut. Was soll der 1. FB2 aufruf machen, was der 2. FB2 Aufruf? Wird darin bedingt auf Ausgänge geschrieben? Will heissen. Schreibt der erste oder zweite FB2 nicht immer auf die Ausgänge? Dann könnte man die Anschlüsse auf IN/OUT legen.
    Wie wird verhindert das nicht beide FB gleichzeitig den Lift ansteuern etc.?

    Dies hat nix mit TIA zu tun, sondern ist grundsätzliches Wissen das für praktisch jede art der SPS Programmierung gilt (wenn es auch nicht von jeder CPU immer strikt durchgezogen wird)

    mfG René

  7. #17
    Automatio ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2015
    Beiträge
    29
    Danke
    14
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Das kommt drauf an was dein FB2 tut. Was soll der 1. FB2 aufruf machen, was der 2. FB2 Aufruf? Wird darin bedingt auf Ausgänge geschrieben? Will heissen. Schreibt der erste oder zweite FB2 nicht immer auf die Ausgänge? Dann könnte man die Anschlüsse auf IN/OUT legen.
    Wie wird verhindert das nicht beide FB gleichzeitig den Lift ansteuern etc.?

    Dies hat nix mit TIA zu tun, sondern ist grundsätzliches Wissen das für praktisch jede art der SPS Programmierung gilt (wenn es auch nicht von jeder CPU immer strikt durchgezogen wird)

    mfG René
    Die FBs machen alle das selbe, den Lift positionieren, ausfahren, Werkstück ablegen und wieder einfahren. Je nach FB eine andere Position - Die FBs befinden sich alle im Initialschritt und es kann immer nur 1Db gliechzeitig laufen, die Ausgänge werden also niemals gleichzeitig benutzt.
    Was bringt es mir die Ausgänge auf IN/OUT zu legen?



    Gruss Automatio

  8. #18
    Registriert seit
    09.02.2010
    Beiträge
    12
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Grundsätzliches zur Programmierung speziell auch für das TIA.

    Ein Ausgang soll unter allen Umständen egal welches System immer nur einmal beschrieben werden und man verwendet auch keine Merker mehr im TIA sondern löst alles über Datenbausteine.


    So wie ich es bei deinen Bausteinen aktuell sehe ist es wohl die beste Lösung wenn du es über Oder auf den Ausgang verknüpfst oder du überlegst dir eine andere Lösung für deine Bausteine.

  9. #19
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.302
    Danke
    682
    Erhielt 591 Danke für 452 Beiträge

    Standard

    Zitat Zitat von Automatio Beitrag anzeigen
    Was bringt es mir die Ausgänge auf IN/OUT zu legen?
    Dann werden deine Ausgänge in die Instanz eingelesen. Wenn du im Baustein damit nichts machst. also keine SR Bedingung erfüllt ist und auch kein = drauf zeigt werden sie unverändert wieder ausgegeben wenn der Baustein beendet wird.

    Ich persönlich mache das aber mit Strukturen für die Liftanforderung. Jeder Stellplatz kann den Lift mit seiner ID anfordern. Dadurch kann der Liftsteuerbaustein auch mehrere gleichzeitigen Anforderungen bearbeiten (FIFO) und auch komplettieren. Und die Liftsteuerung ganz alleine steuert die Motoren. Dazu Muss man halt alles etwas Strukturieren (Auf Merker kann man sowieso verzichten, die meisten hier nennen merker nur weils kürzer ist als Datenbaustein).

    Geht dann aber etwas tiefer.

    mfG René

  10. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    Automatio (27.04.2016)

  11. #20
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.070
    Danke
    399
    Erhielt 617 Danke für 464 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Automatio Beitrag anzeigen
    Aber so wie ich das gelesen habe, wurde mir auf der letzten Seite das Gegenteil erklärt.
    Das hast du aber leider falsch interpretiert. Alles, ob Ausgang oder Merker, lässt sich doppelt beschreiben.
    Doppeltes beschreiben führt aber dazu dass, logischerweise, der beschriebene Operand den Wert der letzten Zuweisung bekommt.

    Das ist genau das was dein Programm im Moment macht. Vereinfacht ist es das hier...
    Code:
    U    Q_FB1
    =    Ausgang
    
    U    Q_FB2
    =    Ausgang
    
    U    Q_FB28
    =    Ausgang
    Kann nicht gehen. Er hält dich aber niemand davon ab die Zuweisung bedingt durchzuführen oder mit bedingten Operationen (Setze/Rücksetze) zu arbeiten.
    Code:
           U    Log_1
           R    Ausgang
    
    //Bedingte Zuweisung
           U    Q_FB1
           SPBN Ma02
           =    Ausgang
    
     Ma02:  U    Q_FB2
           SPBN Ma28
           =    Ausgang
    
     Ma28:  U    Q_FB28
           SPBN Ma99
           =    Ausgang
    
     //Bedingte Operation 
           U    Q_FB1
           S    Ausgang
           U    Q_FB2
           S    Ausgang
           U    Q_FB3
           S    Ausgang
           U    Q_FB28
           S    Ausgang
    Das ist das was gemeint war mit: "Ein Ausgang kann mehrmals beschrieben werden".

    Sowas lässt sich aber nicht mit dem OUT eines FB umsetzen da dieser eine "unbedingte Zuweisung" darstellt und dir damit das Ergebnis meines ersten Beispiels liefert.
    Mit einem INOUT kann man aber bedingte Zuweisungen oder bedingte Operationen verwenden.

    Zitat Zitat von Automatio Beitrag anzeigen
    Jetzt wieder zur Anfangsfrage:
    Wie kann ich die Ausgänge/Merker mehrmals benutzen ohne 28x Merker auf einen Ausgang zu ziehen?
    Oder muss ich mein ganzes Programm überarbeiten?
    Zu 1: Siehe oben.
    Obwohl die 28 Merker wahrscheinlich besser sind, weil sich damit leichter diagnostizieren lässt welcher der 28 Bausteine den gerade dafür verantwortlich ist dass ein Ausgang angesteuert wird.
    Zu 2: Zwingen kann dich keiner, du hast dir aber einen unorthodoxen Weg ausgesucht.
    Wie von LargoD und Vollmi schon angesprochen wäre es eher logischer nur eine Liftansteuerung zu programmieren, es gibt ja mechanisch auch nur einen Lift.
    Zitat Zitat von Automatio Beitrag anzeigen
    Was ist dann genau der Vorteil der Schrittkettenprogrammierung/Instanzierung?
    Du kannst deine 28 Regale mit dem selben Stück Code machen.
    Geändert von RONIN (27.04.2016 um 14:03 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  12. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Automatio (27.04.2016)

Ähnliche Themen

  1. TIA Siemens S7 TIA V13 Basic <> TIA V13 Professional
    Von piksieben im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.11.2014, 19:23
  2. Antworten: 0
    Letzter Beitrag: 20.10.2014, 20:25
  3. Step 5 Ausgänge setzen/rücksetzen
    Von hoffi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.01.2014, 12:22
  4. einzelne digitale Ausgänge setzen
    Von Tiger30 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 16:13
  5. Ausgänge über Hilsmerker setzen
    Von Mores im Forum Programmierstrategien
    Antworten: 40
    Letzter Beitrag: 26.01.2009, 16:29

Stichworte

Lesezeichen

Berechtigungen

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