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

Ergebnis 1 bis 5 von 5

Thema: Deskalieren wie FC106 (SCL)

  1. #1
    Registriert seit
    10.11.2013
    Ort
    Essen
    Beiträge
    119
    Danke
    39
    Erhielt 17 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi

    ich versuche gerade ein Unscale für eine S7-1200 zu basteln
    Die Formel in der Siemens Hilfe ist OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + #K1

    BIPOLAR: K1 = -27648,0 und K2 = +27648,0
    UNIPOLAR: K1 = 0,0 und K2 = +27648,0


    IF #BIPOLAR THEN
    #K1 := -27648.0;
    #K2 := +27648.0;
    ELSIF NOT #BIPOLAR THEN
    #K1 := 0.0;
    #K2 := +27648.0;
    END_IF;

    #OUT_REAL := ((( #IN - #LO_LIM) / (#HI_LIM - #LO_LIM)) * (#K2-#K1)) + #K1;
    #OUT := TRUNC(#OUT_REAL);

    Das klappt auch aber beim Übersetzen bekomme ich natürlich durch das erzeugen einer Ganzzahl
    immer eine Warnung.

    "Das Vorzeichen oder die Genauigkeit des Werts können verloren gehen"

    Vielleicht jemand eine Idee !? Was ich machen kann damit die Warnung nicht mehr kommt ?

    Danke
    Zitieren Zitieren Deskalieren wie FC106 (SCL)  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Eigentlich sollte bei der Meldung die Codezeile stehen bei der die Warnung auftritt.
    Aber das liegt wohl an deiner TRUNC-Anweisung, denn damit schneidest du die Nachkommastellen ab.
    Wenn du meinst das muss so, kannst du die Warnung ignorieren.

  3. #3
    Registriert seit
    10.11.2013
    Ort
    Essen
    Beiträge
    119
    Danke
    39
    Erhielt 17 Danke für 14 Beiträge

    Standard

    Ja klar das ist nur wegen der TRUNC Anweisung.
    Gibt es denn sonst eine andere Möglichkeit von REAL in Ganzzahl wandeln !?

    Eigentlich versuche ich immer 0 Fehler / 0 Warnungen zu bekommen beim übersetzen.

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Wenn du meinst das muss so, kannst du die Warnung ignorieren.
    Ja klar bei FC106 im Step7 Classic kommt beim Out auch eine INT raus von -27648 bis + 27648 die man dann auch einen Analogausgang geben kann
    Geändert von JaJa (21.06.2014 um 21:39 Uhr)

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.741
    Danke
    143
    Erhielt 1.687 Danke für 1.226 Beiträge

    Standard

    Ich gehe dann mal davon aus dass bei dir #Out vom Datentyp INT ist.
    Dann liegt die Warnung an der impliziten Typkonvertierung, denn TRUNC hat als Ergebnis den Datentyp DINT, der dann automatisch (d.h. implizit) in INT konvertiert wird.
    Um die Warnung zu beseitigen, kannst du eine eigene Typkonvertierung (explizit) hinschreiben:
    Code:
    #OUT := DINT_TO_INT(TRUNC(#OUT_REAL));
    Dann sollte es Ruhe geben.

    Du kannst auch ganz ohne TRUNC direkt:
    Code:
    #OUT := REAL_TO_INT(#OUT_REAL);
    schreiben, dann wird aber imho gerundet und nicht abgeschitten.

    Wenn du in den Bausteineigenschaften den Haken für die IEC-Prüfung setzt, sind keine impliziten Konvertierungen mehr möglich. D.h. du musst immer explizit hinschreiben wenn von einem Typ in einen anderen konvertiert wird. Die Voreinstellung von Siemens ist ohne IEC-Prüfung, ich würde aber empfehlen das in den Einstellungen wieder umzustellen dass jeder neue Baustein automatisch IEC-Prüfung gesetzt bekommt. Dann wäre deine Codezeile mit der Warnung nämlich überhaupt nicht übersetzbar gewesen.

  5. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    JaJa (21.06.2014),Tom137 (13.08.2014)

  6. #5
    Registriert seit
    10.11.2013
    Ort
    Essen
    Beiträge
    119
    Danke
    39
    Erhielt 17 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja genau so ist es.
    Danke Thomas für den Tipp !!!!

    Gruss

Ähnliche Themen

  1. 50-100% = 0-10v (fc106)
    Von Scooby im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.01.2013, 10:32
  2. Beschreibung FC106
    Von multixy im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 27.10.2012, 16:11
  3. Sps fc106
    Von Leinad im Forum Simatic
    Antworten: 37
    Letzter Beitrag: 10.11.2011, 10:14
  4. FC106 unscale problem
    Von Bitte_ein_Bit im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 01.12.2008, 00:28
  5. Antworten: 4
    Letzter Beitrag: 07.10.2006, 00:34

Lesezeichen

Berechtigungen

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