Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: что лучше считывать с модуля int или float

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию что лучше считывать с модуля int или float

    Добрый день, подскажите пожалуйста, что лучше считывать с модуля int или float? Быстрее наверное int, один регистр. Но зато потом в ПЛК или скаде придется делить, умножать на 10,100 и т.д. чтобы получить нужное значение.

    Кто знает, может есть какие подводные камни? пугает флоат с чтением аж трех регистов, но с ним удобней. Разъясните пожалуйста.

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,755

    По умолчанию

    float всего два регистра занимает. а инт быстрее, тем более если их много

  3. #3
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    float = 4 байта = 2 регистра, как уже сказали.
    + проверить порядок байт, с этим могут быть проблемы.
    я использую word\int в основном

  4. #4
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    996

    По умолчанию

    Тоже считываю INT.
    Преобразовать INT в float в контроллере быстро и не оказывает влияние на быстродействие системы. А вот считывание лишних байт по сети Modbus увеличивает цикл опроса. Если количество модулей велико, то это уже может оказывать влияние на быстродействие.

  5. #5

    По умолчанию

    Скажем так, модули обычно многоканальные и с каждого считывается по несколько значений. Поэтому - групповое чтение. А тогда все равно, что считывать.

  6. #6
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,271

    По умолчанию

    В общем соглашусь с ASo, но даже для одноканальных влияние 2х байт на скорость обмена - просто смешно. Терять точность, какие-то лишние телодвижения с преобразованиями и т.п. Если есть исходный флоат, я всегда за него
    Последний раз редактировалось Валенок; 12.05.2016 в 18:57.

  7. #7

    По умолчанию

    Да не теряете Вы точность.
    Как правило, погрешность датчика ~1%, поэтому настраиваем положение дес. точки, остальные цифры - не значащие.

  8. #8
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,271

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Да не теряете Вы точность.
    Как правило, погрешность датчика ~1%, поэтому настраиваем положение дес. точки, остальные цифры - не значащие.
    С аналогами - все равно на флоаты переходить, ну и зачем тогда мне голову ломать на сколько нужно точку передвинуть там, а потом еще и делить здесь ? Тут чтоб не потерять точность на 3 знака, в панель подвинуть на 1 знак .... иметь кучу сущностей для одной и той же переменной. А флоат - он и в африке флоат. Считал, его же посмотрел в онлайне и он же в панель ушел - без проблем.

  9. #9
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    С аналогами - все равно на флоаты переходить, ну и зачем тогда мне голову ломать на сколько нужно точку передвинуть там, а потом еще и делить здесь ? Тут чтоб не потерять точность на 3 знака, в панель подвинуть на 1 знак .... иметь кучу сущностей для одной и той же переменной. А флоат - он и в африке флоат. Считал, его же посмотрел в онлайне и он же в панель ушел - без проблем.
    Передача флоата по сети занимает времени больше, чем инта, на время передачи 20 бит. А кто нибудь знает, насколько медленнее перемножаются флоаты чем инты? Я привык, что в AVRах и 51 процессорах это ужасно долго и с тех пор флоаты использую только там, где использование целых чисел снижает точность вычислений. То есть нигде не использую.

  10. #10
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,271

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Передача флоата по сети занимает времени больше, чем инта, на время передачи 20 бит..
    Если бы проц занимался исключительно обменом и минц был строго кратен циклу обмена еще можно было бы говорить о каких несчастных 1-3% потери общего времени. Но эта экономия похожа на вытягивание скорости за счет улучшение аэродинамики лошадиной подковы.
    На 50 параметрах теряем 0,1 секунды. Иногда это важно.
    Если это становится важным - значит неправильный алгоритм или схема. Вы б еще 1200 поставили для расчета.
    Приведите конкретную пример с конкретными модулями когда это имело бы значение


    Просто удобно считать лишние временные задержки
    Такие - бессмысленно без анализа общего алгоритма
    Последний раз редактировалось Валенок; 13.05.2016 в 16:15.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Переход от float (Nullable) к просто float
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 12.11.2014, 14:21
  2. Как последовательно считывать параметр PV с ТРМ201?
    от iKarma в разделе Помощь Разработчикам
    Ответов: 12
    Последнее сообщение: 17.12.2012, 20:04
  3. Ответов: 4
    Последнее сообщение: 06.12.2011, 08:18
  4. Считывать\посылать посылки через порт rs232
    от Максим_Фалалеев в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 08.10.2008, 19:09
  5. Считывать\посылать посылки через порт rs232
    от Максим_Фалалеев в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 30.09.2008, 21:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •