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

Ergebnis 1 bis 5 von 5

Thema: Umwandlung Word => Int / Int => Word

  1. #1
    Registriert seit
    17.01.2011
    Beiträge
    105
    Danke
    12
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wie wird im TIA-Portal eine Umwandlung von Word => Int oder Int => Word erstellt? Wir das mit dem MOVE gemacht? Gruss TMaroni
    Zitieren Zitieren Gelöst: Umwandlung Word => Int / Int => Word  

  2. "Ein Wort ist kein Zahlenformat sondern nur die Grösse des Speichers.

    Da muss also nix gewandelt werden wenn der Inhalt schon ein Int ist.

    In AWL gehts dann einfach mit Lade Tranfer und in Fup müsste das der Move problemlos machen."


  3. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Ein Wort ist kein Zahlenformat sondern nur die Grösse des Speichers.

    Da muss also nix gewandelt werden wenn der Inhalt schon ein Int ist.

    In AWL gehts dann einfach mit Lade Tranfer und in Fup müsste das der Move problemlos machen.

  4. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    TMaroni (19.06.2013)

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

    Standard

    Hallo miteinand

    Das folgende gilt für 1200 und 1500. Für die 300 oder 400 Serie ändert sich nichts.

    TIA hat einen Schalter, bei dem man zwischen ein laschen oder einer strengen Prüfung wechseln kann.
    Mit IEC-Check (findet man bei den Baustein Eigenschaften) an, wird streng geprüft.

    Bei strenger Prüfung unterscheidet TIA zwischen WORD, INT und UINT. Alle drei sind 16 Bit breit. Aber bei der Zuweisung wird rum gemeckert. Bei der laschen Prüfung geht da viel mehr durch.

    Für TIA ist WORD mehr als nur die Breite welche die Variable im Speicher belegt. Das zieht aber auch ganz schreckliche Stilblüten nach sich.
    Eigentlich kann man WORD nicht addieren oder auf größer vergleichen. WORD ist nur ein Bitmuster. In KOP/FUP sieht man nun an der ADD-Box welche Operation tatsächlich ausgeführt wird. Wenn man ein WORD mit einem INT addiert, dann wird das WORD als INT betrachtet. Wenn man ein WORD mit einem UINT addiert, dann wird das WORD als UINT betrachtet. Soweit eigentlich ganz vernünftig. Aber bei der Übertragung von Programmen aus Step7 V5 nach Portal 1500, habe ich schon des öfteren in KOP-Fehler bekommen, weil ein Vergleich jetzt stur rumgemault hat, das ich das INT nicht mit dem BYTE vergleichen darf.
    Irgendwie haben sie ja recht, aber lästig ist das trotzdem

    Normalerweise sind diese Spitzfindigkeiten egal. Außer du schaust das ENO der Box an. INT läuft bei 32768 und UINT bei 65535 über. Das ENO wird also in ganz anderen Fällen false. Das wird dann zum Problem, wenn man in KOP die Boxen verkettet. Ein Überlauf in einer Box weiter links, legt die Boxen weiter rechts lahm.

    In SCL hat man solche ENO-Probleme nicht. In SCL sieht man nicht wie es rechnet, aber das macht es genauso wie KOP/FUP. Nur die Überläufe verschluckt es. Man kann aber in SCL automatische ENO Generierung einschalten. Dann kümmet sich auch SCL um das ENO eines unscheinbaren +. Das schlägt sich aber auf die Performance und zwar nicht schlecht. Ein Testbaustein, der nur aus Rechnungen bestand läuft mit ENO etwa drei mal solange wie ohne

    Wie so oft, kann ich jetzt gar nicht sagen was mir besser gefällt. Meistens sind die Überläufe egal, bzw sie kommen eigentlich in der Praxis gar nicht vor. Wenn aus der Richtung Gefahr droht, dann weiche ich lieber auf einen breiteren Datentyp aus. Von INT nach DINT umzusteigen hat scheinbar keinen Performanceeinfluss auf Bausteine mit optimierter Datenablage . Eher in Gegenteil bei einigen Programmen die ich aus der alten Welt übernommen habe konnte ich so manche lästige Konvertierung einsparen. Der Baustein wird kleiner und läuft schneller

    In der Praxis besteht aber kein Baustein nur aus Rechnungen und damit geht der Effekt bisher bei meinen Programmen im Rauschen unter. Damit sind wir wieder bei einer meiner Lieblingsforderungen. Bausteine die SCL und FUP enthalten. Dann könnte ich in einem Netz ohne ENO rechnen und in anderen Netz die Logik mit FUP machen. Das würde maximale Performance liefern.

    Oder es wäre schön, wenn man das ENO in FUP abschalten könnte. Hallo Siemens, bekomme ich das zu Weihnachten?
    Geändert von HelleBarde (29.06.2013 um 19:05 Uhr)

  6. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    Fanta-Er (02.07.2013)

  7. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von HelleBarde Beitrag anzeigen
    Normalerweise sind diese Spitzfindigkeiten egal. Außer du schaust das ENO der Box an. INT läuft bei 32768 und UINT bei 65535 über. Das ENO wird also in ganz anderen Fällen false. Das wird dann zum Problem, wenn man in KOP die Boxen verkettet. Ein Überlauf in einer Box weiter links, legt die Boxen weiter rechts lahm.

    Oder es wäre schön, wenn man das ENO in FUP abschalten könnte. Hallo Siemens, bekomme ich das zu Weihnachten?
    Das ist doch aber der Sinn von Datentypen und damit dem Verhalten von ENO?!
    Wenn man die Typüberprüfung abschaltet, sollte man sich doch bewußt sein, dass u.U. ein anderes Verhalten als gewohnt heraus kommt.
    Und wenn das Auswerten der Überläufe nicht erwünscht ist, kann man doch auch in FUP/KOP genau wie in SCL die Berechnungen auch ohne ENO (auch innerhalb eines Netzwerkes) nacheinander durchführen lassen. Dafür gibt es doch Verzweigungen.

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von hucki Beitrag anzeigen
    Das ist doch aber der Sinn von Datentypen und damit dem Verhalten von ENO?!
    Wenn man die Typüberprüfung abschaltet, sollte man sich doch bewußt sein, dass u.U. ein anderes Verhalten als gewohnt heraus kommt.
    Klar. Aber in gefühlten 99% aller Anwendungen kümmert sich keiner um das ENO.
    Womit in gefühlten 5% der Anwendung ein Teil des Netzes nicht ausgeführt wird,
    was wiederum in gefühlten 90% der Fälle unbemerkt bleibt.

    Zitat Zitat von hucki Beitrag anzeigen
    Und wenn das Auswerten der Überläufe nicht erwünscht ist, kann man doch auch in FUP/KOP genau wie in SCL die Berechnungen auch ohne ENO (auch innerhalb eines Netzwerkes) nacheinander durchführen lassen. Dafür gibt es doch Verzweigungen.
    Die aber seltenst einer verwendet.
    Dir scheint das alles bewusst zu sein

    Ich kenne nur soviele wo dem nicht so ist. Und einige davon wundern sich immer warum ich wenn ich "zufällige" ihre Baustein ansehe, weil es auf der Anlage nicht klappt, "Schreikrämpfe" kriege. Antwort "ich hab das doch getestet -- das ist nie aufgetreten"

Ähnliche Themen

  1. unterschied zw. word und int
    Von prinz1978 im Forum Simatic
    Antworten: 35
    Letzter Beitrag: 20.07.2017, 21:52
  2. Berechnung SCL ; WORD oder INT
    Von toto45 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 16.11.2011, 11:41
  3. C-Script Datenformat INT/Word???
    Von sailor im Forum HMI
    Antworten: 16
    Letzter Beitrag: 01.07.2010, 06:58
  4. Zähler = Word -> Vergleicher = int ???
    Von max1de im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.04.2009, 14:55
  5. Unterschied Word und Int
    Von plc_tippser im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.07.2004, 17:10

Lesezeichen

Berechtigungen

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