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

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

Thema: Schiebenfunktion setzt alles auf 1

  1. #1
    Registriert seit
    12.09.2013
    Beiträge
    13
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich benötige für ein Projekt auf der Arbeit ein 16 Bit register. Hierbei soll bei jeder pos. Flanke das MW um ein Bit verschoben werden. Gem mTIA Hilfe HAbe ich das mit dem SHL Baustein versucht zu lösen, aber sobal mein Takt auf eins geht wird das ganze Wort auf 1 geschrieben, und da schiebt nichts. Mache ich was grundsätzlich Falsch ?

    Im Anhang die beide Netzwerke dazu.Taktsignal.PNGschieben.PNG

    Danke für die Hilfe

    Gruß Jens
    Zitieren Zitieren Schiebenfunktion setzt alles auf 1  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Man kann leider nicht erkennen, wie Dein "Takt Register (Spenden)" entsteht. Bist Du sicher, das es wirklich ein Takt und kein DauerSignal ist?

    Wie wird denn das MW100 initialisiert (damit Du auch was zum Schieben hast) und wird diese Initialisierung nicht versehentlich in jedem Zyklus/Takt wiederholt?

    Wie hängen denn Deine beiden Bilder zusammen? Außer ähnlichen Bezeichnungen kann ich da keine Gemeinsamkeiten entdecken.

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Wie sind denn die Variablen mit #... im zweiten Bild deklariert? Wo kommen die her?
    Gibt es vielleicht außerdem noch Adressüberschneidungen anderer Variablen mit dem MW100?

    (Was sind das überhaupt für komische Variablennamen in dem TIA mit Anführungstrichen " und extra noch # davor )

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    maverickxxll ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.09.2013
    Beiträge
    13
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo hucki,

    das Schieben habe ich in einem eigenen FC untergebracht

    Beim Schieben ist das Signal des T30 verbunden. Somit gibt es einem Impuls von 100ms wenn der Vorgang Spenden gestartet wird.
    er soll dabei bei jedem Starten vom Spenden 1 Bit schieben. Das setzen und Rücksetzen des Merkers funktioniert und wenn ich die Impulszeit zum ausprobieren größer mache sehe ich auch im Beobachten den Timerausgang. Nur anstatt eine 1 die ich im Merker Wort setze wir gleich das gesamte MW auf 1 gesetzt und andersherum auch , bei 0 wird gleich alles Null.

    Ich hoffe es ist klarer

  5. #5
    maverickxxll ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.09.2013
    Beiträge
    13
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,
    Die Variabelen Namen kommen vom erstellen der in dem FC Baustein (siehe Anhang)
    schieben 2.PNG
    Ich möchte später noch mehrere Register in diesn Baustein packen, aber erstmal sollte einer Funktionieren.

    Innerhalb des MW wird das Bit an unterschiedlichen Stellen vorm schieben gesetzt, da es sich um eine Kontrollstrecke handelt die auf unterschiedlichen Position angebracht werden muss. Ich weiß nicht wie weit das unter überschneidungen fällt.

  6. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Der Flankenmerker ist eine temporäre Variable! Damit funktioniert das ganze nicht und Du hast in jedem Zyklus eine Flanke!

    Entweder Du benutzt einen FB mit statischer Variable oder im FC nicht Temp sondern InOut, und speicherst den Flankenmerker außerhalb des FCs global!
    PS: Oder Du erzeugst die Flanke außerhalb des FCs und übergibst nur diese an den FC, nicht das Taktsignal selbst.
    Geändert von hucki (21.05.2014 um 19:12 Uhr)

  7. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    maverickxxll (21.05.2014)

  8. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Eine Adressüberschneidung muß beteiligt sein, damit durch das SHL alle Bits des MW 1 werden. Das geht nur, wenn vor jedem Schieben der Merker M101.0 auf 1 geschrieben wird.

    (sind die mit dem TIA jetzt ganz narrisch? Wozu müssen lokale Variablen ausser dem # auch noch Anführungsstriche haben? Wohl damit man solchen Unfug wie Leerzeichen und Punkte im Variablenname verwenden kann...)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    maverickxxll (21.05.2014)

  10. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Wohl damit man solchen Unfug wie Leerzeichen und Punkte im Variablenname verwenden kann...)
    Ja, das kann man. Umlaute auch.

  11. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    PN/DP (21.05.2014)

  12. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Eine Adressüberschneidung muß beteiligt sein, damit durch das SHL alle Bits des MW 1 werden. Das geht nur, wenn vor jedem Schieben der Merker M101.0 auf 1 geschrieben wird.

    Er gibt doch das erste Bit mit 1 oder 0 vor und in Nullkomma nichts ist das dann durch das Wort durch, ohne das er die Vorgabe zurück nehmen kann?!
    Klingt jedenfalls für mich so, auch wenn er das nicht wirklich artikulieren kann:
    Zitat Zitat von maverickxxll Beitrag anzeigen
    Nur anstatt eine 1 die ich im Merker Wort setze wir gleich das gesamte MW auf 1 gesetzt und andersherum auch , bei 0 wird gleich alles Null.

    Ich hoffe es ist klarer
    Nicht wirklich, denn wenn ich das Merkerwort auf 1 setze, dann erwarte ich auch, das das ganze Merkerwort 1 ist und nicht nur das halbe.
    Was Du bestimmt meintest, ist, dass alle Bits des Wortes mit 1en gefüllt sind anstatt nur eines einzelnen Bits, oder?

  13. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    maverickxxll (21.05.2014)

  14. #10
    maverickxxll ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.09.2013
    Beiträge
    13
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Erstmal Danke euch beiden für die raschen antworten.

    Ja, ich meinte es so das 1 Bit auf 1 gesetzt wird und dieses gleich ganz duchgeschoben wird so dass das gesamte MW in jedem Bit eine 1 hat.
    Ich werde es morgen mal an der Anlage ausprobieren. Habe auf jeden Fall wieder was dazu gelernt. Werde dann nochmal eine Rückmeldung geben.

    Gruß Jens

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 14.08.2012, 16:19
  2. PWM setzt Ausgang
    Von Domi55 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 04.06.2011, 23:45
  3. Siemens kündigt STEP7 ab und setzt künftig auf CoDeSys
    Von Gerhard Bäurle im Forum Stammtisch
    Antworten: 10
    Letzter Beitrag: 01.04.2010, 23:57
  4. AUF DB - und was geht jetzt alles damit ?
    Von rs-plc-aa im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 03.04.2007, 08:47

Lesezeichen

Berechtigungen

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