# Udint



## reini_145 (12 Mai 2008)

Hallo Leute, ich suche einen einfachen Weg um die UDINT Variablen in Bits aufzuloesen (binaer) und die auszulesen. Ich habe ein furchtbares Programm mit FB geschrieben das mich nicht befriedigt. Ich denke da gibt es sicher einen einfachen Weg den ich im Moment nicht finde. Ich habe ein CanBus Netzwerk aufgebaut und die Bausteine liefern UDINT zurueck. 
Ich programmiere in Codesys. Leider bin ich im Speicher am Limit und benoetige einen einfachen ein bis fuenfzeiler Loesung, am liebsten in ST.
Danke fuer eure Infos.


----------



## godi (12 Mai 2008)

*Befehl AT*

Siehe dir mal den Befehl AT an. Der kann dir eine Variable in andere Variablen aufteilen.

Bsp:

```
VAR
    Test_UDint:UDINT;
    Test_UDint_Bool AT Test_UDint: ARRAY[0..31] OF BOOL;    
END_VAR
```
godi


//Edit
Bin mir da jetzt nicht sicher ob das mit ST in Codesys genauso funktioniert wie mit SCL


----------



## reini_145 (12 Mai 2008)

Danke Godi, gute Idee werde ich gleich mal probieren. Da faellt mir das Wort ein, er sieht den Wald vor lauter Baeumen nicht. Natuerlich auf mich bezogen. Schoenen Sonntag(Montag)
Gruss rene


----------



## godi (12 Mai 2008)

Ich habe gerade das mal in Codesys (V3.2) ausprobiert und der will nach dem AT Befehl eine Direkte Adresse. Also so wie ich es im Beispiel oben gemacht hat mecker er.
Mit zb %MD10 führt er den Befehl AT aus. Warum geht das nicht so wie in SCL mit Variablen?


----------



## reini_145 (12 Mai 2008)

Im Codesys verwende ich den Befehl immer fuer die Zuordnung einer Variablen auf die Physikalische Adresse in der Globalen Variablen Liste. Ich habe dies mit dem AT Befehl nun ausprobiert. Er bringt mir die Fehlermeldung. " Nach dem AT fehlt physikalische Adresse". Gebe nicht auf probiere weiter. Richtung passt denke ich.
Gruss rene


----------



## godi (12 Mai 2008)

Siehe mal meinen vorletzten Beitrag.
Habe ich auch schon bemerkt das man da nur eine Direkte Adresse Benutzen kann! 

Aber ich kenne mich mit Codesys leider nicht aus also kann ich dir da auch nicht weiterhelfen.
Aber Zotos oder ein anderer Codesys crack wird uns das schon erklären. 

godi


----------



## Maxl (12 Mai 2008)

B&R kennt hier die Library-Funktionen Byte2Bit und Bit2Byte, welche genau diese Funktion erfüllen. Weiß aber nicht ob anderer IEC-Systeme diese Funktionen auch kennen.

mfg Maxl


----------



## trinitaucher (12 Mai 2008)

Für Bit-weise Verwendung von Variablen nutze ich immer "." z.B.:
>> VariablenName.0
Da ich gerade aber keine Software zur Hand habe, kann ich nicht sagen, ob das nur für bit-orientierte BYTEs, WORDs und DWORDs gilt, oder auch für ganzzahlige Datentypen.

edit:
Bei TwinCAT geht das:
http://infosys.beckhoff.com/index.p...cplccontrol/html/tcplcctrl_variables_bits.htm


----------



## reini_145 (12 Mai 2008)

Hallo Leute, ich moechte mich bei allen bedanken die mir da geholfen haben. Ich habe jetzt die Loesung gefunden. Der letzte Beitrag hat mir den Durchbruch gebracht. Also die Loesung war dies.
Tastenantwort:UDINT;
...
Tastenantwort:=%ID16;
BIT1:=Tastenantwort.0;

Super einfache Loesung. Danke fuer die Infos. Ab und zu verrenne ich mich in unsinnige Programme die zwar funktionieren aber nicht im Sinne des Erfinders sind.

Gruss Rene


----------

