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

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

Thema: Sollwert über HMI und PLS (DP/DP Koppler) in S7 ändern

  1. #1
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend,

    ich habe einen sollwert (hab ich in DB10 2.0 als real) dieser soll von einem PLS via DP/DP Koppler und einem OP77A verändert werden können.

    Wie gehe ich bei sowas vor ? in dem DB10 2.0 habe ich ja bereits einen defaulwert von 5.0 (bar) drin.

    wenn ich jetzt vom op77a den wert ändern will wie gehe ich da vor?

    also meine funktion ruft den sollwert immer vom DB10 2.0 auf.

    Soll ich dann im HMI den wert anzeigen lassen und dann mittels E/A Feld den wert verändern lassen?

    das PLS kann ja dann auch auf den DB10 2.0 zugreifen und den wert verändern.

    oder gibts da spezielle richtlinien oder bausteine / tricks?

    Vielen Dank für eure Mühen!

    mfg
    sK
    TIA V13 + SP1 Update5 Windows8.1
    Zitieren Zitieren Sollwert über HMI und PLS (DP/DP Koppler) in S7 ändern  

  2. #2
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard

    Hallo superkato,

    zunächst, ein REAL an Adresse 2 heißt DB10.DBD2 (keine Kritik, nur Info)

    Die Sache mit dem OP77 sollte keine Probleme bereiten.
    Dieses greift dann direkt auf den DB10 zu. Ist dann ein E/A-Feld benutzt, wird ein im DB geänderter Wert angezeigt.

    Ein Problem wird die Anbindung der PLS über DP-Koppler sein.
    Diese Schnittstelle ist wie Eingänge und Ausgänge zu sehen.
    Wenn die PLS also einen Wert (in den Eingang) schreibt, kann sie einen im DB geänderten Wert so nicht zurücklesen.
    Natürlich kannst du den Wert im DB über den DP-Koppler (Ausgang) der PLS anbieten.
    Ob die PLS das handeln kann, weis ich nicht.

    Falls die PLS "nur" schreibt, kannst du ihren Wert in einem anderen DBD zwischenspeichern und nur bei dessen Änderung in deinen DB10.DBD2 übernehmen.
    Dann hat sie aber keinen gültigen Wert bei sich stehen, falls du über das OP änderst.

    Übrigens zu dem Thema DP-Koppler aus dem anderen post:
    deine Angaben innerhalb des DP-Modul (zB 1Byte-E,...32Byte-A usw) müssen auf der Gegenseite komplimentär sein. D.h. was bei dir Eingang ist, muss dort Ausgang sein und umgekehrt (gleiche Stelle, Datenbreite usw).

    Gruß Roland
    Nicht Mensch, nicht Tier: Programmierer halt ...

  3. #3
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok! hab ich verstanden

    BTW: was entspricht dann eigentlich einem 16 bit unsigned und 32 bit unsigned und jeweils signed auf der SPS ?

    Ja der DP/DP Koppler ist ja dann im prinzip wie eine Ein- und Ausgabegruppe, und auf der anderen Seite I/O mäßig gedreht.

    Ich hab das jetzt so realisiert mit dem OP und PLS:

    in einem DB steht der aktuelle Sollwert. Die PLS kann ihn lesen und verändern, ebenso das HMI. Mein Programm greift dann jeweils auf diesen Wert zu. Ich glaub ich hab da komplizierter gedachta als es eigentlich ist.

    Vielen Dank Pfälzer!
    TIA V13 + SP1 Update5 Windows8.1

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    BTW: was entspricht dann eigentlich einem 16 bit unsigned und 32 bit unsigned und jeweils signed auf der SPS ?
    Vorzeichenlose Ganzzahl-Typen gibt es bei der S7 genaugenommen nicht. Da alle Ganzzahl-Operatoren nur für vorzeichenbehaftete Typen gelten (INT oder DINT).

  5. #5
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Vorzeichenlose Ganzzahl-Typen gibt es bei der S7 genaugenommen nicht. Da alle Ganzzahl-Operatoren nur für vorzeichenbehaftete Typen gelten (INT oder DINT).
    ah ok ich frage nur weil ich von einem profibs dp slave

    daten bekomme laut tabelle im format 32 bit unsigned und 16bit signed und 16 bit unsigned.

    an
    (32 bit unsinged) PEW50 => DB20. DBD0
    (16 bit unsinged) PEW54 => DB20. DBW4
    (16 bit unsinged) PEW56 => DB20. DBW6

    ist doch so korrekt im prinzip oder ?
    TIA V13 + SP1 Update5 Windows8.1

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    ah ok ich frage nur weil ich von einem profibs dp slave

    daten bekomme laut tabelle im format 32 bit unsigned und 16bit signed und 16 bit unsigned.

    an
    (32 bit unsinged) PEW50 => DB20. DBD0
    (16 bit unsinged) PEW54 => DB20. DBW4
    (16 bit unsinged) PEW56 => DB20. DBW6

    ist doch so korrekt im prinzip oder ?
    (32 bit unsinged) PED50 => DB20. DBD0

    sollte es dann heißen.
    Aber in der Schreibweise steckt noch kein Datentyp, das ergibt sich erst über die Symbolik bzw. Operationen die du auf diese Speicherbereiche evtl. ausführen möchtest. DBW/DBD sind ja reine Adressangaben (Wort/Doppelwort bzw. 16/32 Bits).

  7. #7
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ah stimmt!

    geht darum das ich 32bit unsinged eine Zahl bekomme bzw. eine Sekundenzahl, die würde ich gerne in Stunden umrechenen bzw REAL.
    TIA V13 + SP1 Update5 Windows8.1

  8. #8
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    (32 bit unsinged) PEW50 => DB20. DBD0
    (16 bit unsinged) PEW54 => DB20. DBW4
    (16 bit unsinged) PEW56 => DB20. DBW6

    ist doch so korrekt im prinzip oder ?
    Ja, passt !

    singed und unsinged sagt aus, wie du den Wert interpretieren musst.

    Singed bedeutet MIT Vorzeichen:
    das MSB (höchstwertige Bit) gibt das Vorzeichen an.
    0=positiv, 1=negativ (bei negativ sind alle Wertigkeitbits invertiert)

    Unsigned bedeutet OHNE Vorzeichen:
    alle bits sind Wertigkeitbits, daher nur positive Werte
    Da das MSB hier eine Wertigkeit (höchste) darstellt, ist damit der doppelte Bereich wie bei "signed" darstellbar. Jedoch nur positiv.

    Edit:
    Das gilt natürlich nur, wenn die 16bit / 32bit einen Wert darstellen.
    Werden darin einzelne Bits übertragen, ist es ohne Bedeutung.

    Nochmal Edit:
    Man seid ihr wieder schnell.
    PED50: Richtig, hatte ich gar nicht bemerkt.

    Gruß Roland
    Geändert von Der Pfälzer (12.05.2011 um 23:11 Uhr) Grund: Edit
    Nicht Mensch, nicht Tier: Programmierer halt ...

  9. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von superkato Beitrag anzeigen
    ah stimmt!

    geht darum das ich 32bit unsinged eine Zahl bekomme bzw. eine Sekundenzahl, die würde ich gerne in Stunden umrechenen bzw REAL.
    Und da musst du eben aufpassen, weil die S7 keine vorzeichenlosen Typen kennt.
    Zumindest wenn du vorhast den Wert mit dem eingebauten "DTR"-Befehl in eine Gleitkommazahl zu konvertieren.
    Denn dann bekommst du bei Werten größer (2^31)-1 einen negativen Wert bei der Konvertierung heraus, obwohl dir jemand über den Bus einen positiven Wert schicken wollte.

  10. #10
    Avatar von superkato
    superkato ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.04.2009
    Ort
    München
    Beiträge
    220
    Danke
    56
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja ich denk aber 2^31 reicht vollkommen aus

    Ist eigentlich der "L und T" Befehl das gleiche wie der Move Befehl in FUP?

    also
    L DB20.DBD2
    T MD20

    Movebox mit ein uns augang wie oben.
    TIA V13 + SP1 Update5 Windows8.1

Ähnliche Themen

  1. Sollwert ändern mit S7 an TD200
    Von Barney_Stinson im Forum HMI
    Antworten: 11
    Letzter Beitrag: 22.01.2011, 19:53
  2. Sollwert über Feldbus
    Von klauserl im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 08.03.2010, 08:03
  3. Sollwert lässt sich nicht ändern
    Von Felse im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.05.2009, 08:58
  4. Steuerung FU über analogen Sollwert
    Von JohnDoe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.04.2007, 21:00
  5. DB über DP/DP Koppler
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.12.2005, 10:31

Lesezeichen

Berechtigungen

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