Hallo, ich habe eine Funktion mit 2 IN Parametern vom typ WORD:
AIO für den Analog Ausgangang und Wert für den Analogwert.
Jetzt habe ich aber dummerweise häufig DINT Rechenergebnisse, die ich auf einen Analog Ausgang übertragen muss. D.h. ich muss DINT nach WORD konvertieren.
Als C++ Programmierer dache ich einfach mal 16Bits nach links Shiften und zurück, aber der Ergebnistyp ist ja wieder ein DWORD. Einer meiner zahllosen Versuche war:
L W#16#16
L #dw
SLD
L W#16#16
SRD
T <Verflixt...Als Ergebnis kein WORD :"-|>
Wie mache ich aus DINT bzw. DWORD ein WORD ? Ideal wäre, wenn DINT-Wert > FFFF ein FFFF an PAW übergeben wird.
Die Funkion ist:
L #AIO // Kanal Analog Ausgang 0..3
L 2 // Adresse berechnen
*I
L 144
+I
SLD 3
LAR1
L #WERT
T PAW [AR1,P#0.0]
bitte helft einem armen c++ programmierer :"-)