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

Ergebnis 1 bis 6 von 6

Thema: DWORD to REAL

  1. #1
    Registriert seit
    18.05.2010
    Beiträge
    39
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bekomme die Drehzahl aus einem COUNT-Modul. Diese wird als DWORD in einen DB geschrieben. Nun möchte ich diesen Wert gerne mit einem REAL Multiplizieren umd somit dann anschließend eine Geschwindigkeit in REAL zu bekommen. Doch wie kann ich dieses DWORD in FUP zu einem REAL konvertieren?

    An Umwandlungsfunktionen hat einzig die BCD zu DI funktioniert. Den DI habe ich dann zu REAL umgerechnet. Leider gibtes bei der Umrechnung von BDC zu DI ab und an nicht nachvollziehbare Wertsprünge (bei gleichem BCD-Wert am Eingang). Welche muss ich eigentlich nehmen? Bzw. wie kann ich am einfachsten meine Berechnung durchführen?

    Im Netz finde ich immer nur die Umrechnung von REAL zu DWORD über ROUND

    Danke für eure Hilfe,
    Johannes
    Zitieren Zitieren DWORD to REAL  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.294
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Hallo,

    zuerst das DWORD per MOVE-Box in eine temporäre DINT-Variable kopieren, dann die Wandlung von der temporären DINT-Variable zu REAL per DI_R-Box.

    Für mathematische Berechnungen ist FUP ziemlich schlecht geeignet. SCL wäre einfacher.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Standard

    Von DWORD in REAL gibt es soweit ich weis nichts direktes.

    Von DINT nach REAL heist die Box DI_R bei den Umwandlern.

    In AWL wäre es
    Code:
    L MDxx
    DTR
    T MDyy
    Das Grauen lauert in der Zwischenablage !!

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von basstscho Beitrag anzeigen
    An Umwandlungsfunktionen hat einzig die BCD zu DI funktioniert. Den DI habe ich dann zu REAL umgerechnet. Leider gibtes bei der Umrechnung von BDC zu DI ab und an nicht nachvollziehbare Wertsprünge (bei gleichem BCD-Wert am Eingang). Welche muss ich eigentlich nehmen? Bzw. wie kann ich am einfachsten meine Berechnung durchführen?
    Bei der Verwendung von BTD muss man etwas aufpassen. Diese Anweisung interpretiert das höchstwertigste Nibble als Vorzeichen, d.h. mit wenn man damit direkt BCD in ein Dint wandeln will, geht das nur mit 7 Stellen und nicht mit 8. Ansonsten muss man erst beide Wörter mit BTD separat in ein Dint wandeln, und dann das HiDint * 10000 + LoDint rechnen.

    Hatte letztens einen Wärmemengenzähler der Zählwerte in Form von 8-Stellen BCD-codiert ausgab, und da hatte ich diesen Fehler mit BTD eingebaut...

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.294
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Zitat Zitat von basstscho Beitrag anzeigen
    An Umwandlungsfunktionen hat einzig die BCD zu DI funktioniert. Den DI habe ich dann zu REAL umgerechnet.
    Meinst Du mit "hat funktioniert", daß schon beim Programmieren der FUP-Editor nur bei der BCD_DI-Box nichts mehr rot bemängelt hat?

    Leider gibtes bei der Umrechnung von BDC zu DI ab und an nicht nachvollziehbare Wertsprünge (bei gleichem BCD-Wert am Eingang).
    "Wertsprünge" am Ausgang des BCD_DI bei gleichem BCD-Wert am Eingang - das kann nicht sein. BCD_DI erzeugt bei gleichem Eingangswert immer den gleichen Ausgangswert.
    Erkläre doch mal etwas ausführlicher was Du meinst. Und zeige uns Dein Umwandlungsprogramm. Wird die Ausgangsvariable vielleicht später im Programm nochmal überschrieben, vielleicht durch Überlappung mit einer anderen Variable?

    "Komische Wertsprünge" bei der Wandlung BCD_DI kann es geben, wenn der Eingangswert gar nicht im BCD-Format ist - wovon ich ausgehe. Was ist das für ein "COUNT-Modul" aus dem Du die Drehzahl bekommst?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    18.05.2010
    Beiträge
    39
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    grundsätzlich vorweg: Mit MOVE und der anschließenden Wandlung von DINT zu REAL klappt es nun super.

    @PN/DP: Das Verhalten bei BCD_DI war wie folgt: Das DWORD (was ich ja als BCD an den Baustein verkauft habe), schwankte durch den Prozess zwischen 23000 und 26000 (also 23-26 U/min). Bei vielen Werten (geschätzt ca. 90%) hat dann der gewandelte DI-Wert auch mit dem BCD (=DWORD aus der DB) überein gestimmt. Bei einigen ging der DI dann aber kurz auf Werte um die 6000 zurück+ Antworten (obwohl der BCD konstant im o.g. Bereich lag. Eine Überlagerung des Adressbereiches gab es nicht. Auf der SPS gab es ausschließlich einen OB 1 (+1 FC zum Auslesen und Schreiben der PED/PAB) mit meiner Umrechnung. Das Modul ist ein ET200S 1COUNT 24V (die genaue Typenbezeichnung habe ich gerade nicht zur Hand). Die SPS war ne 319F.

    Beste Grüße,
    Johannes

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 11.01.2013, 17:37
  2. Word,DWORD oder doch Real
    Von Thor´sHammer im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 24.09.2011, 14:22
  3. DWORD to Byte
    Von hank12 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 05.05.2009, 07:44
  4. DWORD AND-Verknüpfung
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 23.02.2009, 17:41
  5. dword
    Von 1schilcher im Forum Programmierstrategien
    Antworten: 21
    Letzter Beitrag: 14.02.2007, 10:34

Lesezeichen

Berechtigungen

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