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

Ergebnis 1 bis 10 von 10

Thema: Variable in KT-Zeitwert einbauen?

  1. #1
    Eastpak1984 Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Ich mache zur Zeit eine Ausbildung zum Industriemechaniker
    (Fachrichtung Produktionstechnik), und nehme gerade an einem Lehrgang
    für SPS teil.

    Nun würde ich meine Kenntnisse gern etwas vertiefen, aber da unser
    Ausbilder genug mit der "Gruppe" zutun hat, muss ich mich eben so
    weiterbilden.

    Das Problem ist Folgendes:


    Wir üben auf einer S5-Anlage, die mit den Ausgängen (wir nutzen nur
    8 ) auf 8 Pneumatikbauteile geht. Dabei handelt es sich immer um
    impulsgesteruerte 3/2-Wegeventile mit Federrückstellung, d.h. mit der
    SPS kann man regeln, wann an welchem Schlauch Luft kommt und wann
    nicht.

    Wozu das dient? Tja, wir haben die Schläuche mit 8 Blockflöten
    verbunden, und können nun mithilfe der SPS einfache Lieder abspielen.
    Klingt komisch, ist aber so, und funktioniert bis jetzt auch ganz ausgezeichnet.

    Nun mein Problem:

    Ich habe das "Musikprogramm" größtenteils als Schrittkette aufgebaut,
    wobei für jede Note 2 Timer (SA-Timer) zum Einsatz kommen. Der eine
    für die Dauer der Note, der andere für die Dauer der folgenden Lücke
    (also Lücke bis zum nächsten Ton).

    Nun möchte ich nicht immer den Zeitwert KT in Sekunden angeben,
    sondern in einem Verhältniswert (nicht 0,25 Sekunden, sondern 1/4 des
    Wertes X ...) 1/4-Noten würde ich mit 1/4x darstellen, halbe Noten
    mit 1/2x, Achtelnoten mit 1/8x, usw. ... die Lücken ebenfalls mit einem
    bestimmten Faktor vor dem x...

    Wozu ich das mache?

    Ich möchte, dass die Anlage sich am Anfang einmal einen Eingangswert
    holt, (Tempo des Liedes), und den dann auf ale Zeitwerte automatisch
    anwendet. Das heisst man ändert einen Eingangswert, und das ganze
    Lied bleibt stimmig, und klingt genau so gut, es wird nur mal
    schneller, mal langsamer abgespielt, je nachdem, Wie man es gern mag.

    Ich hoffe, sie haben das Problem, was mich quält, verstanden, denn
    ich bin noch nicht lange mit der SPS vertraut (um genau zu sagen
    heute den 4. Tag)

    Meinen Sie, es gibt eine Möglichkeit, mein Problem zu lösen?

    Würde mich freuen, wenn Sie mir ihre Ideen zukommen lassen könnten.

    Mit freundlichen Grüßen

    Martin / Azubi (2.LJ)
    Zitieren Zitieren Gelöst: Variable in KT-Zeitwert einbauen?  

  2. "
    Zitat Zitat von volker
    vorher musst du natürlich einen transfer des zeitwertes in das mw oder dw vornehmen.
    Aha... aber was ist MW oder DW?

    Zitat Zitat von volker
    solltest du eine 135u haben, kannst du dort direkt multiplizieren bzw dividieren.
    in einer 100u oder 115u musst du dafür die fb's 242 und 243 benutzen.
    Puh, am Donnerstag hab ichs noch gesehn, was wir nutzen. Nu weiss ich es net mehr. Aber ich erkundige mich mal schnell, denk in ein paar Minuten weiss ich das.

    Zitat Zitat von volker
    KT 3.1 = KH 1003 //0,3 sek
    KT 30.0 = KH 0030 //0,3 sek
    KT 10.2 = KH 2010
    falls du das nicht wusstest.
    Das man den gleichen Zeitwerk verschieden darstellen kann (je nach Basis), das musste ich, aber was ein KH ist, weiss ich nicht. Bis jetzt habe ich nur mit KT oder mit einem Eingangswort EW6 gearbeitet, um eine Zeit einzustellen.

    Zitat Zitat von volker
    z.b. für eine 135u

    l kh 1 // 0.1 sek. grundtakt
    t mw 10
    l kh 1
    *F
    l kh 1000 //zeitbasis
    ow //hinzufügen
    t mw 12 // 1/8tel note
    Ist das jetzt AWL? Bis jetzt haben wir nur FUP programmiert, und ein paar Sachen in AWL angeguckt...

    Zitat Zitat von volker
    ach so. wie oben erwähnt geht das natürlich auch mit schieben.
    in allen cpu's
    "Schieben" sagt mir noch garnichts..."


  3. #2
    Anonymous Gast

    Standard

    hi martin,
    zunächst mal ist es wichtig zu wissen, das timer bcd codierte werte brauchen, du kannst timer auch mit weinem wort versorgen z.b.
    mw 0
    hier steht der zeitwert in den 3 rechten byte und die zeitbasis in dem linken: 0000 0001 0000 0000
    ----------------------------
    0,01s x 1 0 0 = 1 sek
    die zeitbasis verändrt sich mit dem bitmuster 0000=0,01s
    0001=0,1s
    0010=1s
    0011=10s
    wenn du das bitmuster der zeitbasis maskierst erhälst du eine konstante zeitbasis, und durch verschieben des wortes um 1 stelle nach rechts halbierst du deinen wert.
    also mußt du mit deiner eingabe entsprechend arbeiten
    zuerst rechts schieben bei 1/2 1stelle bei 1/4 2stellen, danach lädst du diesen wert codiert , maskierst deine zeitbasis und versorgst deinen timer mit diesem wert.

    hoffe ich konnte helfen

  4. #3
    Anonymous Gast

    Standard

    Ööööhm... nicht ganz ...

    Bis jetzt haben wir alle Zeitwerte gleich gelassen, immer auf KT 3.1 (3x 0,1s = 0,3sek).

    Ich möchte jetzt alle Timer des ganzen Liedes auf einer basis laufen lassen ... und jeder Timer an sich, mit "Notenwert" x Basis berechnen lassen.

    Das würde dann so aussehen:

    Halbe Note = 1/2 x Basis "B"
    Viertel Note = 1/4 x Basis "B"
    Achtel Note = 1/8 x Basis "B"
    (Auch die Lücken zwischen den einzelnen gespielten Noten wollte ich so machen)

    Die Basis B wollte ich über das EW6 eintragen lassen... (das ist bei uns eine kleiner 4stellige Anzeige, mit der ich Werte in die Anlage einspielen kann. Ich denke, ihr wisst, was ich damit meine...

  5. #4
    Eastpak1984 Gast

    Standard

    PS: Der Eintrag eben stammte natürlich von mir (Eastpak1984).

    Hatte vergessen mich einzuloggen, und kann den Eintrag nichtmal mehr löschen oder editieren.

    PS: Dieses MW 0 interessiert mich... das ist also kein "Wert", sondern irgendwas anderes? Damit könnte ich das hinbekommen?
    Kann ich das direkt am Timer eintragen (programmiere in FUP), und wenn ja, was muss ich da z.B. für eine 1/4 Note eingeben?

  6. #5
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    ja kannst du direkt dort eintragen.

    vorher musst du natürlich einen transfer des zeitwertes in das mw oder dw vornehmen.

    z.b.
    l KH 1003
    t mw 10

    um jetzt die zeiten abhängig von einer grundzeit zu machen musst du dir die berechnen.
    solltest du eine 135u haben, kannst du dort direkt multiplizieren bzw dividieren.
    in einer 100u oder 115u musst du dafür die fb's 242 und 243 benutzen.

    KT 3.1 = KH 1003 //0,3 sek
    KT 30.0 = KH 0030 //0,3 sek
    KT 10.2 = KH 2010
    falls du das nicht wusstest.

    z.b. für eine 135u

    l kh 1 // 0.1 sek. grundtakt
    t mw 10
    l kh 1
    *F
    l kh 1000 //zeitbasis
    ow //hinzufügen
    t mw 12 // 1/8tel note

    l mw 10
    l kh 2
    *F
    l kh 1000
    ow
    t mw 14 // 1/4tel note

    l mw 10
    l kh 4
    *F
    l kh 1000
    ow
    t mw 16 // 1/2 note

    l mw 10
    l kh 8
    *F
    l kh 1000
    ow
    t mw 18 // 1ganze note

    wenn du mit der zeitbasis kh 0000 arbeitest, kannst du die zeilen
    lkh 1000
    ow
    weglassen. dann nimmst du der grundtakt * 10

    l mw 10 // kh 10
    l kh 8
    *F
    t mw 18 // 1ganze note also kh 0080 für 0,8 sek


    ach so. wie oben erwähnt geht das natürlich auch mit schieben.
    in allen cpu's

    l kh 10 // 0.01 sek. grundtakt
    t mw 10

    l mw 10
    t mw 12 // 1/8tel note

    l mw 10
    slw 1
    t mw 14 // 1/4tel note

    l mw 10
    slw 2
    t mw 16 // 1/2tel note

    l mw 10
    slw 3
    t mw 18 // 1tel note
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #6
    Eastpak1984 Gast

    Standard

    Zitat Zitat von volker
    vorher musst du natürlich einen transfer des zeitwertes in das mw oder dw vornehmen.
    Aha... aber was ist MW oder DW?

    Zitat Zitat von volker
    solltest du eine 135u haben, kannst du dort direkt multiplizieren bzw dividieren.
    in einer 100u oder 115u musst du dafür die fb's 242 und 243 benutzen.
    Puh, am Donnerstag hab ichs noch gesehn, was wir nutzen. Nu weiss ich es net mehr. Aber ich erkundige mich mal schnell, denk in ein paar Minuten weiss ich das.

    Zitat Zitat von volker
    KT 3.1 = KH 1003 //0,3 sek
    KT 30.0 = KH 0030 //0,3 sek
    KT 10.2 = KH 2010
    falls du das nicht wusstest.
    Das man den gleichen Zeitwerk verschieden darstellen kann (je nach Basis), das musste ich, aber was ein KH ist, weiss ich nicht. Bis jetzt habe ich nur mit KT oder mit einem Eingangswort EW6 gearbeitet, um eine Zeit einzustellen.

    Zitat Zitat von volker
    z.b. für eine 135u

    l kh 1 // 0.1 sek. grundtakt
    t mw 10
    l kh 1
    *F
    l kh 1000 //zeitbasis
    ow //hinzufügen
    t mw 12 // 1/8tel note
    Ist das jetzt AWL? Bis jetzt haben wir nur FUP programmiert, und ein paar Sachen in AWL angeguckt...

    Zitat Zitat von volker
    ach so. wie oben erwähnt geht das natürlich auch mit schieben.
    in allen cpu's
    "Schieben" sagt mir noch garnichts...

  8. #7
    Eastpak1984 Gast

    Standard

    PS: Hab mich informiert ... wir nutzen die 115U
    PPS. Am Dienstag könnte ich das Programm mal mitbrignen, und dir rübermailen. Hast du ein Programm, womit du es ansehen kannst?

  9. #8
    Anonymous Gast

    Standard

    hi martin,
    also mw steht für merkerwort mit einer länge von 16bit,
    dw steht für datenwort mit länge 16 bit d.h. 1 wort besteht immer aus 16 bit, 1 byte aus 8bit, und ein doppelwort aus 32 bit.
    merker werden unter anderem für die bildung von zwischenergebnissen verwendet.datenwörter gehören zu einem datenbaustein welche du auch zu speicherung nutzen kannst. mit schieben kannst du wörter in eine richtung bewegen z.b.:0101 0100 1111 0101 mit schiebe links um eins 1010 1001 1110 1010 frei werdende stellen werden mit 0 aufgefüllt. rechts schieben das gleiche spiel nur anders rum. 0000 0100 entspricht dezimal 4 um eins nach rechts entspricht es 2 , so wird immer durch 2 dividiert.
    so zur grundinfo

  10. #9
    Eastpak1984 Gast

    Standard

    Okay, danke, das hab ich begriffen (denke ich). Am Dienstag nachmittag kann ich das "Lied" mitbringen... Kann mir dann jemand helfen, die Variable Zeit einzubauen? Leider kann ich es hier nciht simulieren, da ich (noch) keine eigene S5 für den privaten Gebrauch besitze.

    PS: Es ist sehr simpel aufgebaut, ich denke jeder von Euch wird sich eher darüber kaputtlachen, aber ich bin nunmal erst 4 Tage mit der SPS vertraut.

    PPS: Wie gesagt, das "Lied" ist im großen und ganzen eine Schrittkette, die pro Note aus 6 Netzwerken besteht:

    - Bedingung der Ausführung der Note
    - Timer der Notenlänge
    - Speicher
    - Bedingung der Ausführung der Lücke
    - Timer der Lückenlänge
    - Speicher

    Als Lücke bezeichne ich die kleine Pause zwischen den einzelnen Noten.
    PS: Die Speicher gehen nicht direkt an die Ausgänge, sondern ich habe das ganze wie beschreiben 40 mal getippt (also knapp 240 Netzwerke bei 40 Noten), und dann einfach hinten über eine große "Oder"-Funktion zugewiesen, welche Timer (z.B. T1, T13 + T19) auf welchen "Notenausgang" gehen sollen.

    (Nur ungerade Timer sind Noten, da die geraden immer den Lücken entsprechen.)

    Die Lücken zwischen den Noten haben ganz einfach keinen Ausgang bekommen.

    PS. Bitte nicht lachen ... ja, ich habe alle 240 Netzwerke einzeln getippt, obwohl sie alle zu 99% gleich aussahen ... jeder basierte eben auf dem vorherigen.

    Dazu gibts sicherlich Tools zum vereinfachen, aber so fit bin ich mit der Materie noch nicht.

  11. #10
    Eastpak1984 Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So, das Ding läuft. Falls jemand der Aufbau interessiert, hier ein Download (hab jetzt wieder nur mit KT gearbeitet)

Ähnliche Themen

  1. Was darf man im Verteiler einbauen?
    Von Portisch im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 23
    Letzter Beitrag: 13.10.2011, 22:45
  2. Zeitwert
    Von De Hettrumer im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 07.01.2010, 21:18
  3. GRAFCET: Not-Aus Funktion einbauen
    Von Georgius im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 29.01.2009, 13:53
  4. S5-135U CPU 928B - Zweite Schnittstelle einbauen
    Von Michael L im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 30.07.2006, 01:24
  5. Antworten: 2
    Letzter Beitrag: 27.04.2006, 12:17

Lesezeichen

Berechtigungen

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