unterschied zw. word und int

Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
[B]Bits in der Steuerung:[/B]
 
           AW 4
 
   AB 4           AB 5
 
[B]A4.7 - A4.0    A5.7 - A5.0[/B]
 
 0010 0111      0000 1111

Der Vollständigkeit halber habe ich die Zuordnung der Ausgänge noch einmal in das Foto der Steuerung eingetragen. :)

Gruß Kai
 

Anhänge

  • WORD_INT_04.jpg
    WORD_INT_04.jpg
    143,9 KB · Aufrufe: 73
Und was ist der Unterschied dann in TIA14 bei WORD und INT und dann noch UINT (unsigned)?
Ich Frage mich wie wir das Jahrelang ohne UINT geschafft haben! Und dann noch USInt; LInt; Uint :confused: ;) :ROFLMAO:INT.PNGUint.PNGword.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich Frage mich wie wir das Jahrelang ohne UINT geschafft haben! Und dann noch USInt; LInt; Uint :confused: ;) :ROFLMAO:

Tja, du wirst es wahrscheinlich nicht glauben, aber ich bin froh über die neuen Datentypen und nutze sie auch.
Was mich angeht, dürfte die Typüberprüfung und das Verhalten bei Zahlenüberlauf in Step 7 ruhig noch strenger sein.
 
BIT, BYTE, WORD, DWORD sind Angaben zur Speichergröße. Die Speichergröße gibt keinerlei Auskunft, wie der Inhalt zu interpretieren ist.

INT, UINT, DINT, Real usw. sind Formatangaben, wie der Inhalt einer bestimmten Speichergröße zu interpretieren ist.

Sehe ich etwas anders. WORD und DWORD sind zweideutig auszuwerten. Ein Mal als Angabe der Speichergröße (16 oder 32 Bit), oder im Fall als Datentyp, nämlich als vorzeichenloses Zahlenformat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
WORD und DWORD sind zweideutig auszuwerten. Ein Mal als Angabe der Speichergröße (16 oder 32 Bit), oder im Fall als Datentyp, nämlich als vorzeichenloses Zahlenformat.
WORD und DWORD haben keinerlei Formatangaben. Sie enthalten einfach nur ein Bitmuster.

Vorzeichenlose Zahlenformate sind U(nsigned)INT bzw. UDINT.

Ein DWORD kann z.B. auch das gleiche Bitmusters eines REALs enthalten.
Ein WORD kann z.B. auch das Bitmuster eines DATE enthalten.

Man weiß es ohne die Formatangabe einfach nicht.
Alles Interpretationssache, über dass nur das Format und nicht die Speichergröße Auskunft gibt.
 
Moin röhrengertl!
Auf Deinem 3. Bild (word.png) steht "BCD | C#0 bis C#999 | ...".
Was ist denn das für eine Beschreibung???
Sollte es nicht "C#0 bis C#9999" heissen, erst recht, wenn laut Hinweis "der DatenTyp WORD nicht auf grösser oder kleiner verglichen werden" kann?
Die genannten Vergleiche (als sie noch nicht verboten waren) waren mal der Grund dafür, das Maximum mit C#999 festzulegen (und natürlich der Missbrauch der höchstwertigen Tetrade bei S5-Timern - aber das Argument zieht hier ja wohl nicht!?)!
Gruss, Heinileini
PS: Die Beschreibung auf int.png ist ja wohl auch für die Füße ...
Das erinnert mich an gewisse SiemensStandardFBs, die eine Konvertierung von DUAL in GRAY und umgekehrt verweigerten, sobald Bit15=1 war.
 
Zuletzt bearbeitet:
WORD und DWORD haben keinerlei Formatangaben. Sie enthalten einfach nur ein Bitmuster.

Vorzeichenlose Zahlenformate sind U(nsigned)INT bzw. UDINT.

Ein DWORD kann z.B. auch das gleiche Bitmusters eines REALs enthalten.
Ein WORD kann z.B. auch das Bitmuster eines DATE enthalten.

Man weiß es ohne die Formatangabe einfach nicht.
Alles Interpretationssache, über dass nur das Format und nicht die Speichergröße Auskunft gibt.

Dann interpretiert Siemens in WinCC bei Ein-/Ausgabefeldern also willkürlich. Viele Logo-User fallen da nämlich regelmäßig auf die Schnauze. Bei der Auswahl des Datentyps kann nämlich zwischen WORD (vorzeichenlos) und INT gewählt werden (ist auch bei einigen App-Anbietern auch so).
Da den meisten der Begriff WORD als 16Bit Speichergröße (2Bytes) bekannt ist, wählen viele den Datentyp WORD (vorzeichenlos) statt INT (vorzeichenbehaftet) und wundern sich, warum sie keine negativen Werte angezeigt bekommen.
Letztendlich enthält alles nur ein Bitmuster......
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, WinCC interpretiert nicht willkürlich.

Die Ein-/Ausgabefelder haben unter den allgemeinen Eigenschaften eine Formatvorgabe, wie der Wert zu interpretieren ist.
Die Standardvorgaben, die insbesondere von Neulingen kaum verändert werden, sind bei formatlosen WORD und formatbehafteten INT-Variablen einfach unterschiedlich.

Bei WORD/DWORD sind jedoch wesentlich mehr als nur die oben von Dir angegebenen 2 Interpretationen möglich.
 
Laut deiner Angabe gibt es aber nur eindeutig, nämlich nur die Speichergröße betreffend.
Damit widersprichst du dir doch selber.....
 
Laut deiner Angabe gibt es aber nur eindeutig, nämlich nur die Speichergröße betreffend.
Damit widersprichst du dir doch selber.....

Tja willkommen in der Welt der Zahlenfomate.
Wenn man mit Fremdsystemen koppelt wird es noch lustiger.
Da hat dann ein Int eben 32Bit.
Bei Real wirds dann noch lustiger.
Dazu gibts dann noch gedrehte Bytefolgen.

Gruß
Blockmove
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Blockmove,

da du mich zitierst:

Ich habe mich nur auf die Themenüberschrift bezogen, und da geht es um "Unterschiede zwischen Word und INT".
Was man mit Word oder DWord noch alles anstellen kann, ist mir auch klar.

Was aber das Zahlenformat betrifft (und darum geht es meiner Meinung nach von Themenüberschrift her), ist WORD ein vorzeichenloses Zahlenformat von 0-65535 und INT ein vorzeichenbehaftetes Zahlenformat von -32768 bis 32767.

Das man mit WORD bzw. DWord alles auslegen kann, was man möchte (BCD, Dualzahl, HEX usw.) ist mir auch klar.
 
Damit widersprichst du dir doch selber.....
:confused:
WORD sagt doch auch nur eindeutig, das es 16Bit sind. Mehr nicht.

INT sagt eindeutig, dass das Bit 16 des WORDs als -32.768 zu interpretieren ist.
UINT sagt eindeutig, dass das Bit 16 des WORDs als +32.768 zu interpretieren ist.
BCD sagt eindeutig, dass das Bit 16 des WORDs als +8 der 4. BCD-Stelle zu interpretieren ist.
Immer das gleiche Bitmuster des WORDs, nur unterschiedliche Formate.
WORD kann auch ein Bitmuster enthalten, das gar nicht interpretiert werden soll, weil es z.B. einfach nur zufällig nebeneinander befindliche Digitaleingänge sind.

UINT ist halt nur eine in der Vergangenheit recht häufige Interpretation des WORDs, weil in den älteren und zum Teil auch aktuellen Programmierumgebungen die Formatangabe UINT im Gegensatz zu INT nicht spezifisch verfügbar war/ist.
 
Zuletzt bearbeitet:
IWas aber das Zahlenformat betrifft (und darum geht es meiner Meinung nach von Themenüberschrift her), ist WORD ein vorzeichenloses Zahlenformat von 0-65535 und INT ein vorzeichenbehaftetes Zahlenformat von -32768 bis 32767.

Nimmt man es genau, dann ist WORD überhaupt kein Zahlenformat.
Wenn du einen Compiler mit strenger Typprüfung hast, dann kannst du mit WORD keine Rechenoperationen durchführen.
Mit WORD gehen nur logische Operationen.

Gruß
Blockmove
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was aber das Zahlenformat betrifft (und darum geht es meiner Meinung nach von Themenüberschrift her), ist WORD ein vorzeichenloses Zahlenformat von 0-65535 und INT ein vorzeichenbehaftetes Zahlenformat von -32768 bis 32767.

Da es hier um Simatic S7 geht: Die S7-300/400 besitzt keine Rechenoperationen für vorzeichenlose Integerzahlen, weder für 16 noch für 32 Bit.

Du kannst ja mal das Ergebnis von
Code:
L W#16#EA60 // 60000
L W#16#2
/I

oder
Code:
L DW#16#B2D05E00 //3000000000
L DW#16#2
/D
ansehen.

Im Anhang die Definition der Datentypen in der IEC-Norm. Streng nach Norm kannst du mit Typen aus der ANY_BIT Klasse (BOOL, BYTE, WORD, DWORD) keine Rechenoperationen ausführen. Wenn die Sprache das zulässt, dann nur mit einer impliziten Typwandlung.
 

Anhänge

  • iec-datentypen.png
    iec-datentypen.png
    49,9 KB · Aufrufe: 61
Zurück
Oben