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

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

Thema: Stufenschalter

  1. #1
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    habe 5 digitale Eingänge. Möchte folgende Funktion relaisieren.

    Wenn 0 der 5 Eingänge auf High ist dann è Ausgang 0%
    Wenn 1 der 5 Eingänge auf High ist dann è Ausgang 20%
    Wenn 2 der 5 Eingänge auf High ist dann è Ausgang 40%
    Wenn 3 der 5 Eingänge auf High ist dann è Ausgang 60%
    Wenn 4 der 5 Eingänge auf High ist dann è Ausgang 80%
    Wenn 5 der 5 Eingänge auf High ist dann è Ausgang 100%

    Gibt es hier eine fertige Funktion die so einen Art Stufenschalter realisiert?
    Zitieren Zitieren Stufenschalter  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    hallo,

    such mal im Forum nach BITSUM. Und wenn du die Anzahl der Bits hast kannst du über Vergleicher oder Sprungleiste die entsprechenden Werte ausgeben. Haste ne Absaugung für 5 Maschinen?

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren Bitsum  

  3. Folgender Benutzer sagt Danke zu sps-concept für den nützlichen Beitrag:

    hank12 (29.04.2009)

  4. #3
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Schreibe doch eine zyklischen Addierer, geht doch schnell...

    Code:
    L 0
    T #Prozent
    
    UN #Eingang1
    spb E002
    
    L 20
    L #Prozent
    +I
    T Prozent
    
    E002: nop 0
    
    usw.
    Fertig.

    dtsclipper
    Das Grauen lauert in der Zwischenablage !!

  5. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    hank12 (29.04.2009)

  6. #4
    hank12 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für Eure Antworten hat mir schon mal weitergrholfen. Wollte vorerst mal den BITSUM Baustein verwenden - Den FC99 aus der standard library

    Dieser erwartet beim IN ein DWORD
    Am Ausgang bekomm ich einen INT


    Habe jetzt 5 Digitale Eingänge E0.0--E0.4. Wie verknüpf ich denn die Eingänge, dass ich hieraus ein DWORD bekomme und diesen dem FC99 an den IN geben kann?

    Kann ich den AUSGANG (INT) des FC99 direkt mit dem Ausgang der Analogbaugruppe verbinden, sodass dann 0...10V rauskommen? 10V wenn alle 4 an sind, 6V wenn nur 3 an sind usw.??

  7. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.255
    Danke
    537
    Erhielt 2.705 Danke für 1.954 Beiträge

    Standard

    Nimm den Vorschlag von dtsclipper.
    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

  8. #6
    hank12 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ..kann ich nehmen,


    allerdings würde es mich trotzdem intressieren (brauche es für eine andere Funktion) wie ich den Zustand von 4 Bits z.Bsp. den Status der digitalen Eingänge in eine DWORD umwandeln kann?


    Kann mir hier jemand sagen wie?


    Danke!

  9. #7
    hank12 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Könnte eine Lösung folgendermassen aussehen?
    Ich bitte um Berichtigung

    // Digitale Zustände in einen DB Laden

    U E0.0
    T DB2.DBX0.0

    U E0.1
    T DB2.DBX0.1

    U E0.2
    T DB2.DBX0.2

    U E0.3
    T DB2.DBX0.3

    // Dach dem FC99 das DWORD aus dem DB übergeben

    call FC99
    IN: DB2.DBD0
    RET: MW20 (in diesem Fall: minimal 0 und maximal 4)


    // Danach: wenn alle 4 gesetzt sind dann wäre der Ausgang ja 100%
    umsetzen für Analogausgang PAW256


    L MW20
    L 25
    *R
    T PAW256 Ergebnis: wenn 3 digitale Eingänge gesetzt wären: 75%
    == 7,5V


    Ist das überhaupt korrekt oder bin ich jetzt auf einem ganz falschen Dampfer??

  10. #8
    hank12 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Möchte digitale Zustände lesen und an den FC99 BITSUM übergeben.

    Könnte eine Lösung folgendermassen aussehen?
    Ich bitte um Berichtigung

    // Digitale Zustände in einen DB Laden

    U E0.0
    T DB2.DBX0.0

    U E0.1
    T DB2.DBX0.1

    U E0.2
    T DB2.DBX0.2

    U E0.3
    T DB2.DBX0.3

    // Dach dem FC99 das DWORD aus dem DB übergeben

    call FC99
    IN: DB2.DBD0
    RET: MW20 (in diesem Fall: minimal 0 und maximal 4)


    Ist das korrekt?
    Zitieren Zitieren FC99 und Einlesen eines Binärwertes  

  11. #9
    Registriert seit
    03.11.2006
    Ort
    Niedersachsen
    Beiträge
    1.126
    Danke
    170
    Erhielt 303 Danke für 259 Beiträge

    Standard

    Code:
     L     ED     0                    //Lade Eingangsdoppelwort 0
          L     DW#16#F000000               //Maske Laden zum ausmaskieren der unerwünschten Bits
          UD                                //es bleiben nur die Bits E0.0 bis E0.3 erhalten
          T     DB2.DBD    0                // in Ziel-DB schreiben
    um deine 0 bis 100% richtig auf das PAW zu bekommen
    musst du den FC106 (Unscale) aus der Bibliothek benutzen.
    zu finden ist der FC106 in der Standart Library/TI-S7 Converting Blocks
    Gruß
    crash

    Ich bin nicht bekloppt,
    ich bin verhaltensoriginell!

  12. #10
    Registriert seit
    05.01.2009
    Ort
    69198 Schriesheim
    Beiträge
    236
    Danke
    54
    Erhielt 34 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    zunächst einmal würde ich sagen du müßtest dieses mit direkten Zuweisungen lösen
    u e0.0
    =db2.dbx0.0
    der Rest ist i.o. denke ich
    gruß thomas

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 06.02.2009, 17:22

Lesezeichen

Berechtigungen

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