Взял из примеров весьма нужную функцию - two_word_to_real
Великолепно работает, но сам код не понял. Если можно поподробней разъясните пожалуйста.

FUNCTION two_word_to_real : REAL
VAR_INPUT
IN_Data: POINTER TO ARRAY[0..1] OF WORD; (*Указатель на массив регистров для Float*)
END_VAR
VAR
p1: POINTER TO BYTE;
p2: POINTER TO BYTE;
END_VAR

p1:=ADR(two_word_to_real);
p2:=ADR(IN_Data^[1]);
p1^:=p2^;
p1:=p1+1;
p2:=p2+1;
p1^:=p2^;
p1:=p1+1;
p2:=ADR(IN_Data^[0]);
p1^:=p2^;
p1:=p1+1;
p2:=p2+1;
p1^:=p2^;