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

Ergebnis 1 bis 4 von 4

Thema: EL4014 Value Systemmanager

  1. #1
    Registriert seit
    10.08.2010
    Ort
    Bi
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin zusammen,

    ich habe im Systemmanager die Variable Value(INT) Verknüpft.
    Ich verstehe allerdings eine Sache nicht.
    Die Klemme kann eine Wert von 0..20mA ausgeben in einer Auflösung von 16Bit. Das heißt für mich, dass die Klemme nicht nur 1 oder 2 mA ausgeben kann sondern auch Werte mit Nachkommastelle z.B. 11.25 mA.
    Allerdings müsste ich aus dem Programm doch dann eine Real übergeben um Nachkommastellen mit zu übergeben.
    Wie mache ich das wenn ich nur nen INT als Value bei der Klemme angeben kann.

    z.B.
    a AT %Q* : INT;
    b:REAL;(*z.b 12.25*)

    a:=REAL_TO_INT(b);

    Würde er mir jetzt 12.25 an der Klemme ausgeben?!

    Danke für eure Infos
    Zitieren Zitieren EL4014 Value Systemmanager  

  2. #2
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Die Sache geht so:

    Ausgang = [20mA / (2^16)] * RegisterWert

    Der Hintergrund ist der, dass du deine 20mA durch 65536 = 2^16 teilst, um die kleinste mögliche Einheit am Ausgang zu bekommen. Jeder Wert im Register wird dann nur noch mit dieser kleinsten möglichen Einheit multipliziert.


    Wenn du dann 12mA haben willst, geht das so:

    Register = 12mA / [20mA / (2^16)]

    Nun hören sich 16Bit Auflösung gut an. Die Realität am Ausgang dürfte eher bei 12-14Bit liegen. Nichtlinearitäten des DA-Wandlers und Rauschen sind als Ursache anzusehen.
    Geändert von drfunfrock (10.12.2010 um 12:24 Uhr)

  3. #3
    Snooky ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.08.2010
    Ort
    Bi
    Beiträge
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hey,

    sprich Register ist wie im Beispiel a.
    a AT %Q* : INT;
    x:REAL;
    Sollstrom:REAL:=12.25;

    x =: Sollstrom / (20 / 65536);
    a=: x * 65536;
    Wenn ichs richtig verstanden habe dürfte der Ausgang der Klemme jetzt 12.25mA ausgeben richtig?

    Oder habe ich hier noch ein Problem mit der Konvertierung da Sollstrom vom Typ REAL ist?

    Danke
    Geändert von Snooky (10.12.2010 um 12:49 Uhr) Grund: Erweiterung

  4. #4
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du bekommst Probleme, mach es so:

    Registerwert := REAL_TO_INT(sollstrom / (20.0 / 65536.0))

    Du solltest Konstanten immer explizit so schreiben, dass diese nicht konvertiert werden müssen. Sonst gibt es manchmal hässliche Probleme. Hättest du geschrieben:

    (20 / 65536)

    kommt da nämlich 0 (INT) raus, weil die Konstanten als Ints interpretiert werden.

Ähnliche Themen

  1. Twincat Systemmanager Fehlermeldung
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 07.02.2011, 10:34
  2. Twincat SystemManager Fehlermeldung
    Von fumer1 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 03.08.2010, 12:39
  3. Systemmanager löscht Verknüpfungen
    Von grosser_marco im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 22.09.2009, 21:07
  4. Verknüpfungen in TwinCat-SystemManager automatisieren
    Von Controllfreak im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 05.09.2008, 18:17

Lesezeichen

Berechtigungen

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