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

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

Thema: AND Function Erklärung

  1. #1
    Registriert seit
    19.04.2013
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS Freaks

    Ich hab da mal eine frage .
    Ich habe diessen code:

    variable1 := (variable2 AND 16#FFF8 )

    Variable1 : REAL;
    Variable2 : WORD;


    Und jetzt die Frage was macht das AND ?

    +-*\ oder was macht es ich mochte gerne wissen was da passiert , ich kenne nur den AND Baustein für. BOOL variablen


    Danke in voraus
    Mfg
    Alex
    Geändert von J_Kapkan (05.12.2014 um 22:23 Uhr)
    Zitieren Zitieren AND Function Erklärung  

  2. #2
    Registriert seit
    11.12.2010
    Ort
    nähe Bamberg
    Beiträge
    40
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hi... Also Word, Real oder auch FFF8 ist doch aus Binärwerten zusammen gesetzt... Nur dass es eben mehr sind... DAS Beispiel blendet die drei Niederwertigsten Bits aus Variable2 aus und übergibt das Ergebnis an Variable1
    gruss

  3. #3
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Ist aber schon interessant was das denn tun soll...
    Hier eine kurze Erklärung zur Wortverknüpfung

    Wie Wolfi schon sagte würde der Befehl die 3 letzten Bits in Variable 2 ausblenden.
    Aber selbst unter der Annahme das in Variable 2 ein als Gleitpunkt formatierter Wert steht würde man nur dir Bits mit den Wertigkeiten
    1/(2^20)
    1/(2^21)
    1/(2^22)
    aus der Mantisse löschen.

    Grad bei einer Gleitpunktzahl ist der Endwert stark von der Kombination aus Mantisse und Exponent abhängig. Wenn man nur aus der Mantisse ein paar Bits löscht, muss man schon sehr
    genau Wissen was man tut. Wenn das bewusst ist würde mich schon interessieren was damit bezweckt wurde.

    Ich würde fast vermuten dass dort vor dem Übertragen des Ergebnisses eine Formats-Konvertierung vergessen wurde.
    Geändert von RONIN (05.12.2014 um 21:33 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  4. #4
    Registriert seit
    19.04.2013
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Damit wird der Analoger Wert von eine Pt100 in real umgewandelten!


    Danke Leute Also AND löscht bits aus der varible2

  5. #5
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Ich kenne die Analogwertdarstellung bei Codesys nicht aber wenn in Variable2 wirklich ein Dezimalwert steht würde es teilweise Sinn machen.
    Mit dem ausblenden der letzen 3 Bits kann man bei einem Analogwert ein "Flackern" ausblenden, was mich auch weiter zur Vermutung bringt das in Variable 2
    einen DigitWert abgelegt ist.

    Wenn aber Codesys mit der Zuweisung auf Variable 1 nicht automatisch eine INT-to-REAL-Conversion macht, dann bin ich mir ziemlich sicher dass in dem Moment in
    Variable 1 nichts brauchbares drin steht.
    Geändert von RONIN (05.12.2014 um 20:39 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #6
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.733
    Danke
    317
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    In der Fachsprache nennt man das ganze auch maskieren.
    In dem Fall werden dann (vermutlich) Status-Bits aus dem Eingangswort der PT100 Baugruppe eliminiert. (Ist bei einigen mir bekannten PT100 Baugruppen so)

    Im Anschluss findet da dann noch eine sog. implizite Konvertierung von Word nach Real statt.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

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

    RONIN (05.12.2014)

  8. #7
    Registriert seit
    11.12.2010
    Ort
    nähe Bamberg
    Beiträge
    40
    Danke
    1
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Nur aus Interesse... Findet die konvertierung einfach durch angabe der Datentypen statt oder fehlt da dann die Angabe WortToReal?

  9. #8
    Registriert seit
    19.04.2013
    Beiträge
    30
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja da ist noch INT_TO_REAL dabei!
    hier das Original

    VAR_INPUT
    EW:WORD;(* 0.. 16#7FFF


    END_VAR
    VAR_OUTPUT
    TEMP: REAL;
    END_VAR
    VAR
    R_TEMP: REAL;
    END_VAR

    R_TEMP := INT_TO_REAL(EW AND 16#FFF8 ) /16;


    TEMP := REAL_TO_INT(R_TEMP);

  10. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von J_Kapkan Beitrag anzeigen
    Ja da ist noch INT_TO_REAL dabei!
    hier das Original

    VAR_INPUT
    EW:WORD;(* 0.. 16#7FFF


    END_VAR
    VAR_OUTPUT
    TEMP: REAL;
    END_VAR
    VAR
    R_TEMP: REAL;
    END_VAR

    R_TEMP := INT_TO_REAL(EW AND 16#FFF8 ) /16;


    TEMP := REAL_TO_INT(R_TEMP);

    Irgendwie hab' ich das Gefühl, dass der Urheber nicht wirklich wußte, was er tat.
    Vielmehr sieht das aus wie von irgendwoher zusammen kopiert.

    Dieses wilde und dabei teils noch unnötige Hin- und Hergespringe zwischen den Zahlenformaten ist ja schon nicht mehr feierlich.

  11. #10
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von J_Kapkan Beitrag anzeigen
    R_TEMP := INT_TO_REAL(EW AND 16#FFF8 ) /16;
    Mit der Angabe hätt ich mir das herum-spekulieren sparen können.
    Andere Frage: Müsste be "/16" nicht auch "/16.0" stehen? Oder ist das bei Codesys egal?
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

Ähnliche Themen

  1. Function Call in Step 7
    Von motorguru im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.02.2013, 13:28
  2. hide Action in Function block
    Von PeterT im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 31.01.2012, 15:27
  3. CoDeSys Visu: Execute Function.
    Von Neals im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 20.01.2011, 07:04
  4. Call-by-Function (BlOCK_FC/FC) und UC / CC
    Von Potenzial im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 07.07.2010, 14:03
  5. WinCC Function Trend Control
    Von tarzipan7 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 14.05.2009, 08:34

Lesezeichen

Berechtigungen

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