-
LREAL (double float) и ПЛК100
Как получить по Modbus и обработать данные с расходомера KROHNE на ПЛК 100?
Есть расходомер KROHNE с Modbus передает данные с накопительных счетчиков в double float.
Работал раньше с расходомером Siemens с Modbus, так он имеет альтернативу, хочешь забирай данные в double float, а хочешь в float.
Что касается ПЛК100, планирую забирать данные с помощу string input, там есть возможность выставить функцию 03 и запросить количество байт, в моем случае 8. Потом со стринг сбросить данные по указателю в LREAL. Но тут загвоздка, ПЛК100 не хочет работать с этим типом данных, ну и с функцией преобразования LREAL_TO_REAL.
-
Супер Модератор
Что значит не хочет работать?
-
При компилировании выдает сообщения о не поддержке LReal и ф-ии LREAL_TO_REAL. прошивка последняя официальная v.2.12.7 таргет 2.10. Может в настрйках где-нибудь галочку надо поставить
Последний раз редактировалось vitiali; 31.03.2011 в 23:02.
-
Уточняю, при компиляции пишет Ошибка (3610) Lreal не поддерживается
И в перечне при выборе типа переменной нет LREAL. При ручном вводе XXX:LREAL; Синтаксис воспренимается нормально.
Последний раз редактировалось vitiali; 01.04.2011 в 22:12.
-
Возьму сначала из расходомера какой нибудь флоат, стрингом. Посмотрю порядок передачи, благо флоат поддерживается. Затем буду переставлять два двойных слова если LREAL поддерживается.
Последний раз редактировалось vitiali; 03.04.2011 в 17:24.
-
Чтобы знать порядок передачи слов
-
для этого надо его вычислить
-
Пользователь
-
Мне жаль, но пока меня это волнует меньше всего.
Основной проблемой остается сама возможность работы с LREAL.
Обидно будет если разработчик скажет что в таргете надо было ремарку убрать с типа данных, а я функцию преобразования в рил напишу или изменю имеющуюся. Работать с числами LREAL имея возможность делать над ними математические операции все же приятней и происходит без потери точности. А перед отправкой на панель оператора можно и преобразовать в рил
-
Супер Модератор
Господа, у кого под рукой есть прибор - ну попробуйте пожалуйста:
var
a : lreal;
end_var
a:=a+0.1;
Надо просто понять - запишется в контроллер код, и будет ли исполняться.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума