-> Hier kostenlos registrieren
Hi,
habe hier folgenden code in scl :
BEGIN
IF(VALUE=W#16#7FFF) OR (VALUE=W#16#8000) THEN
QCHF:= TRUE;
ELSE
IF(VALUE AND W#16#F000)=W#16#F000 THEN
Rohwert:=0;
ELSE
ROHWERT:=DINT_TO_REAL(DWORD_TO_DINT(VALUE));
QCHF:= FALSE;
END_IF;
END_IF;
V:=ROHWERT/DIV_VAL*(VHRANGE-VLRANGE)+VLRANGE;
END_FUNCTION_BLOCK
Das ist ein Ain. Verstehe soweit auch alles.
Nur diese eine Zeile nicht ganz:
IF(VALUE AND W#16#F000)=W#16#F000 THEN
Rohwert:=0;
Ist das ein Überlauf oder sowas in der Art? Und wie wird hier genau verglichen? Komplettes Byte?
Will das kleine Programm in ein Aout umwandeln hab auch schon die entsprechende formel für Bip (0-20mA). Verstehe halt nur leider diese eine Bedingung bzw Zuweisung oben nicht.
LG
Bosga
habe hier folgenden code in scl :
BEGIN
IF(VALUE=W#16#7FFF) OR (VALUE=W#16#8000) THEN
QCHF:= TRUE;
ELSE
IF(VALUE AND W#16#F000)=W#16#F000 THEN
Rohwert:=0;
ELSE
ROHWERT:=DINT_TO_REAL(DWORD_TO_DINT(VALUE));
QCHF:= FALSE;
END_IF;
END_IF;
V:=ROHWERT/DIV_VAL*(VHRANGE-VLRANGE)+VLRANGE;
END_FUNCTION_BLOCK
Das ist ein Ain. Verstehe soweit auch alles.
Nur diese eine Zeile nicht ganz:
IF(VALUE AND W#16#F000)=W#16#F000 THEN
Rohwert:=0;
Ist das ein Überlauf oder sowas in der Art? Und wie wird hier genau verglichen? Komplettes Byte?
Will das kleine Programm in ein Aout umwandeln hab auch schon die entsprechende formel für Bip (0-20mA). Verstehe halt nur leider diese eine Bedingung bzw Zuweisung oben nicht.
LG
Bosga