2 bytewerte in word

Chris_the_new

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich wolte fragen ob jemand eine eleganteere lösung für mein kleines problem kennt:
ich habe 2 byte welche mit unterschiedlichsten werten beschrieben werden, diese sollen dann in ein word array übertragen werden! das ganze in ST.
ich habe bereits eine lösung gefunden welche jedoch nicht sehr schön anzuschauen ist und nen zwischenschritt verlangt:

wert1:= byte_to_word(byte1);
wert2:= byte_to_word(byte2);

word1:= SHL(wert1,8)+ wert2;

gibt es in ST vielleicht eine möglichkeit die byte direkt auf die position im Word zu schreiben?
mfg Chris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einfacher wäre vielleicht das Memory-Sharing über Speicherzuordnung in der Deklaration. Dann entfällt das Umwandeln, aber die Zuordnung der BYTE zu diesem WORD ist nicht mehr Variabel und kann zur Laufzeit nicht mehr verändert werden.

Code:
byte1 AT%MB1: BYTE; (* word1 High Byte *)
byte2 AT%MB0: BYTE; (* word1 Low Byte *)
word1 AT%MB0: WORD;
Ansonsten, wenn diese Umwandlung öfter vorkommt, dann empfehlt sich aus deinem Code eine Funktion zu machen.

Gruß,
witkatz
 
danke für die schnellen antworten ich denk ich werd beim 1zeiligen bleiben, danke nochmal!
schade hatte gehofft das es ne ähnliche funktion gibt wie in C aber man kann ja nicht alles haben :D
wünsche noch nen schönen tag
mfg chris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wollte von der visu zur plc 2 byte Werte über geben die sich stendig ändern und in ein word packen und in der plc wieder entpacken aber auch so das ich die Werte unterscheiden kann.

Danke

Gruß
 
Visu aber der Panel ist noch unbekannt.
Wenn Beckhoff, dann ist jede Variable zu erreichen und so geht es:

MAIN.FB_Instanz_Name.Variable.Bit_Nr (Variable=byte)

Irek
 
@ Kapkan
Man kann nicht erkennen, welches Byte im Wort von welcher Variable stammt - PLC und Visu können/müssen es einfach nur vereinbaren.

Harald
 
@Kapkan:
das geht doch (und wurde ja auch schon beschrieben). Die SPS muss die beiden Variablen zusammenführen und die Visu muss sie dann auseinander-rechnen. Ob man das so machen sollte ist dann eine andere Frage ...

Gruß
Larry
 
Zurück
Oben