Во первых таким способом из двух байт, вы соберёте только WORD, REAL- состоит из 4 байт или из 2 WORD.
На FBD это займёт 8 строк для 1 REAL, см. скрин
1 Получение флоат.jpg
а на ST одну строку, при чём с правильным расположением байт. Нафиг этот FBD.
Код:
ptr_D:=ADR(d); ptr_D^:=buffer[3]; ptr_D:=ptr_D+1; ptr_D^:=buffer[2]; ptr_D:=ptr_D+1; ptr_D^:=buffer[1]; ptr_D:=ptr_D+1; ptr_D^:=buffer[0];
У вас подход неверный, копируете блок полностью к себе в программу, а вызываете его уже в CFC квадратиком. Привыкайте комбинировать языки. Можно через экспорт, импорт, можно просто копипастом, чем ST и хорош. И используете блок, как например таймер, только ФБ пользовательский, а не библиотечный. Вызывать, вставлять название ФБ можно через F2. На скрине REAL получен из 2 WORD.
1 Функц блок на ST.jpgНадеюсь вы данные правильно на вход подаёте из адресов REAL и в правильной последовательности.
И ещё, не надо всё сразу копировать в одну программу. Берёте пример опроса блока на ST и его используете, изменяя под себя. Потом след кусок и т. д. Потом просто соберёте программу из рабочих кусков.