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

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 36 von 36

Thema: TIA SCL-Code vereinfachen ?

  1. #31
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Auch ich bevorzuge Variante 3. Weil diese entspricht dem Code, wie er vom KOP/FUP-Kompiler erzeugt würde.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #32
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von HelleBarde Beitrag anzeigen
    Hallo Ralle

    ABS( -3 ) ist 3
    -3 AND 16#7FFF_FFFF = 16#7FFF_FFFD = 2147483645

    also nicht das was hier gesucht wird.

    'n schön' Tach auch
    HB
    Vermute aber dann ist eher sein Code nicht korrekt, denn er wollte bei einer Real das Vorzeichen entfernen.
    Und dafür ist ABS() da.
    Welchen Sinn ergibt dann die obige Rechnung und vor allem auch dein Codebeispiel, in dem du .x31 manipulierst?
    Geändert von Ralle (08.05.2015 um 08:31 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #33
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von HelleBarde Beitrag anzeigen
    Hallo Ralle

    ABS( -3 ) ist 3
    -3 AND 16#7FFF_FFFF = 16#7FFF_FFFD = 2147483645

    also nicht das was hier gesucht wird.

    'n schön' Tach auch
    HB
    Gefragt war, wie man das Vorzeichen einer REAL-Zahl entfernt Und genau dafür ist die ABS()-Funktion vorgesehen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #34
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.626
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Absolut variante 3.
    Und noch lesbarer wäre es wenn du anstatt "zwischenspeicher" ein mehr erklärender Symbol wählst, etwa wie "HH_alarm_1oo2_channel_x".
    Jesper M. Pedersen

  5. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    de vliegende hollander (08.05.2015)

  6. #35
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Vermute aber dann ist eher sein Code nicht korrekt, denn er wollte bei einer Real das Vorzeichen entfernen.
    Und dafür ist ABS() da.
    Welchen Sinn ergibt dann die obige Rechnung und vor allem auch dein Codebeispiel, in dem du .x31 manipulierst?
    Hi

    jo Ralle, hast Recht, für Real sollte man ABS() nehmen.

    Das .%x31 ist ein Zugriff auf das Vorzeichen bit des REAL. Für ein LREAL müsstest du .%x63 verwenden.
    mit
    Code:
    aReal.%x31 := false
    kommt genau das Gleiche raus wie mit
    Code:
    AND 16#7FFF_FFFF
    aber ohne das ganze hin und her wandeln. Wobei REAL_TO_DWORD und DWORD_TO_REAL nur die Typprüfung beruhigen, gewandelt wird da gar nix. Deswegen ist das auch weder schneller noch langsamer.

    Somit haben wir bei der 1200/1500 drei Möglichkeiten das Vorzeichen los zu werden. Und alle drei sind gleich schnell.

    'n schön' Tach auch
    HB

  7. #36
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    wobei man natürlich Code wie diesen total vermeiden sollte

    Wert.%x31 := false


    oder


    AND 16#7FFF_FFFF

    Falls bei einer Umstellung der Software aus REAL ein LREAL wird oder vielleicht ein INT
    "geht" der Code immer noch - ist aber total falsch und bleibt unerkannt

Ähnliche Themen

  1. TIA SCL Code Problem
    Von lsr im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 19.02.2015, 22:44
  2. Step 7 SCL Code
    Von Casio im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.03.2014, 10:33
  3. Exponent im SCL Code
    Von paula23 im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 08.09.2013, 19:40
  4. SCL code
    Von awl-scl im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 14.01.2008, 17:02
  5. 1.Adressübertragung?, 2.SCL-code?
    Von hobel im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 05.09.2006, 14:49

Lesezeichen

Berechtigungen

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