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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Flexible Befehle ausführen

  1. #11
    Registriert seit
    19.09.2006
    Beiträge
    60
    Danke
    10
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Als erstes legst du einen DB an,

    Sagen wir "DB70"
    der Sollte in etwa so aussehen

    Code:
    0.0 Dummy    Byte  B#16#0
    1.0 Luefter1  Byte  B#16#0
    2.0 Luefter2  Byte  B#16#0
    .
    .
    .
    13.0 Luefter13  Byte  B#16#0
    auf den Dummy komme ich noch mal...

    nun legst du fest welches Bit für was zuständig ist
    sagen wir BIT x.0 wäre ein BIT x.1 ist Auto

    jetzt legst du eine interne Variable (auf dem Panel natürlich) vom Typ INT an, nennen wir sie "MUX"

    Jetzt löst du das Ereignis Wert zuweisen bei Tastendruck (lüfter1 bis 13) aus angefangen bei 1 bis 13, und schreibst das auf die Interne Variable MUX.

    Natürlich musst du mit Tastendruck auch dein Faceplate sichtbar machen

    Deine Tasten musst du jetzt natürlich auf das richtige Bit schreiben lassen, dazu musst du nun deine Multiblexvariable (das heißt bei Siemens nun mal so) anlegen
    die erste wäre
    lüfter ein diese muss mit der Steuerung verbunden sein, vom Typ BOOL und aussehen würde sie jetzt wie folgt "DB70 DBX [MUX].0"

    nun kannst du die Ein Taste entsprechent zuweisen
    wie und wann du welches bit setzt und rücksetzt ist dir überlassen, ich würde das in diesem Fall aber im Panel machen...

    Und nun noch zum Dummy, der ist nur dafür gedacht das du mit 1 beginnst
    erstens kannst du mit Schließen den Wert in "MUX" immer auf 0 zurück setzen und du kannst die Variable auch Gleich als Anzeige nutzen welcher lüfter grad aktiv ist.

    Hoffe das hilft dir weiter

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    @KG-TC:
    Du hast sicherlich bemerkt, dass M.R. alle 13 Objekte gleichzeitig (über einen MUX indiziert) auf einer Bildschirmseite anzeigen will und nicht mit der gleichen Seite mal die Station 01 und mal die Station 08 (oder so) ...?

  3. #13
    Registriert seit
    19.09.2006
    Beiträge
    60
    Danke
    10
    Erhielt 4 Danke für 4 Beiträge

    Standard

    LL

    nein hab ich nicht bemerkt, und es steht auch nicht so da bzw, zeigt mir die Grafik auch das was er will...

    und so groß ist das Display auch nicht das alles gleichzeitig draufpassen würde

  4. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    @LL
    Ich verstehe M.R. so, daß er für 13 Lüfter nur ein einziges Bedienfeld (Faceplate) im Bild haben will.
    Mit den 13 Buttons "Lüfter x" wählt er aus, welchen einen Lüfter er bedienen will.

    @M.R.
    Leider hast Du den Screenshot so unglücklich gemacht, daß man nicht sehen kann, was Deine
    "Lüfter x Befehle"-Variablen für ein Datentyp sind. Ich nehme jetzt mal an, das soll BYTE oder INT sein.

    Deine Idee mit dem Variablen-multiplexen ist gut und bis jetzt hast Du eigentlich alles richtig gemacht.

    Allerdings geht die Variablen-multiplex-Geschichte in WinCCflex (zumindest bis WCF2007) aus Siemens-Gründen
    nicht als Funktionsargument und nicht mit Schaltflächen, sondern nur mit Schaltern.
    Deshalb kannst Du die Multiplexvariablen nicht an Deine 3 Bedien-Buttons anbinden.

    Du kannst 3 Bedien-Schalter machen mit direkter Anbindung der Multiplex-Variable:
    [ .EIN. ] = Schalter, Wert EIN: 1 //toggelt Bit .0 und rücksetzt alle anderen Bits
    [ AUTO ] = Schalter, Wert EIN: 2 //toggelt Bit .1 und rücksetzt alle anderen Bits
    [ .AUS. ] = Schalter, Wert EIN: 4 //toggelt Bit .2 und rücksetzt alle anderen Bits

    Das funktioniert nun fast wie Radio-Buttons. Dummerweise kann man aber einen Schalter auch ausschalten,
    so daß Deine Lüfter ausgeschaltet werden, wenn Du einen schon gedrückten Schalter nochmal drückst!
    Deshalb muß noch unter "Animation -> Bedienbarkeit" die Bedienung der Schalter deaktiviert werden,
    wenn die Schalter "Ein" sind. Also:
    [ .EIN. ] = Bedienbarkeit deaktiviert bei Integer Bereich: 1 bis 1
    [ AUTO ] = Bedienbarkeit deaktiviert bei Integer Bereich: 2 bis 2

    Im SPS-Programm müsste nun noch eine kleine Hilfe programmiert werden, die bei gesetztem Bit .2
    das ganze Byte oder Word auf 0 schreibt.

    So richtig gefällt mir die Variante mit den 3 Schaltern auf eine BYTE- oder INT-Variable aber nicht.
    (aus vielen Gründen, die ich hier jetzt nicht alle aufzählen will)


    Ich mache das immer so:
    Ich nehme 3 Schalter auf 3 BOOL-Multiplexvariablen, denen ich dann je 13 Bits (DBX) zuordne.
    (bei Index 0 kommt jeweils eine Zuordnung auf eine Panel-interne Dummy-Variable)
    Die DBX-Bits verknüpfe ich dann im SPS-Programm wie richtige Hardware-Taster und am Ende vom OB1
    lösche ich dann den gesamten DB-Bereich mit meinen Taster-Bits (L 0, T DBD x, T DBD x+4, ...).

    Nun kann ich am Panel so einen gemultiplexten Schalter drücken, das Panel setzt mir entsprechend
    dem Index das richtige DBX, was ich im SPS-Programm verarbeite und am Ende des OB1 rücksetze.
    Das Panel liest automatisch nach knapp 1 Sekunde dieses DBX (das nun 0 ist) und der gedrückte Schalter
    "schnappt" zurück in die ungedrückte Stellung.
    Verbleibt der Schalter am Panel in der gedrückten Stellung, dann ist die Verbindung zur SPS unterbrochen.

    Gruß
    Harald
    Zitieren Zitieren nur Schalter können Variablen-Multiplex  

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

    webserver (13.11.2015)

  6. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @KG_TC und PN/DP:
    ihr habt natürlich Recht ...
    Ich hatte das in Erinnerung :
    Zitat Zitat von M.R. Beitrag anzeigen
    Problem:
    Ich möchte in einem Bild 13 Lüfter darstellen.
    und das folgende wohl irgendwie überlesen ...
    Zitat Zitat von M.R. Beitrag anzeigen
    Jetzt habe ich 13 Button eingefügt über die Ich jeweils eine Bedienmaske Sichtbar mache wo ich den Lüfter über 3 Button Schalten kann. H-0-A.
    Ich habe diese Button Einmal angelegt und will sie jetzt über Multiplexvariablen anbinden.
    Diese Aufgabenstellung ist natürlich (da habr ihr vollkommen Recht) für die MUX_Geschichte absolut prädestiniert ... Also auf jeden Fall so machen.

    Gruß
    LL

Ähnliche Themen

  1. AWL Befehle
    Von The Big B. im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.05.2008, 18:39
  2. AT-Befehle in der SPS
    Von settelma im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 09.02.2008, 21:01
  3. Beim Systemstart Befehle ausführen.
    Von Chriz im Forum PC- und Netzwerktechnik
    Antworten: 1
    Letzter Beitrag: 08.05.2007, 01:49
  4. Antworten: 0
    Letzter Beitrag: 17.07.2005, 12:31
  5. SPS-Befehle
    Von Anonymous im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 03.08.2004, 15:24

Stichworte

Lesezeichen

Berechtigungen

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