Страница 15 из 27 ПерваяПервая ... 5131415161725 ... ПоследняяПоследняя
Показано с 141 по 150 из 268

Тема: Умный дом на ПЛК110

  1. #141
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    опенхаб вроде на яве написан, надо досконально изучить как формируется Float чтоб понять как его создавать
    http://en.wikipedia.org/wiki/Single-...g-point_format

  2. #142
    Пользователь
    Регистрация
    28.02.2012
    Адрес
    Краснодар
    Сообщений
    30

    По умолчанию

    В общих чертах понятно, но не программисту довольно сложно так вот сразу написать рабочий код. Просто вроде стандартная операция преобразования из Single в Float или никто с ОВНА по ModbusTCP температуру не считывает.

  3. #143
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от lego23 Посмотреть сообщение
    В общих чертах понятно, но не программисту довольно сложно так вот сразу написать рабочий код. Просто вроде стандартная операция преобразования из Single в Float или никто с ОВНА по ModbusTCP температуру не считывает.
    я же выкладывал картинку, всё считывается, можно два слова считать, даже 32 бита можно считать а потом преобразовать во флоат
    В вики описан сам формат, никто в языках программирования конечно же не делает, есть системные функции, я не дельфиец и какой функцией воспользоваться незнаю


    ЗЫ сколько по Вашему на этом видео флоатов http://www.owen.ru/forum/showthread....l=1#post114320
    Последний раз редактировалось capzap; 12.11.2013 в 22:39.

  4. #144
    Пользователь
    Регистрация
    09.08.2013
    Адрес
    Башкортостан
    Сообщений
    234

    По умолчанию

    Запустил OpenHAB. На ПЛК110 добавил Slave и передаю значение переменной типа float.
    OpenHAB (по Modbus tcp) считывает два word.

    Преобразую 2 word
    rule "_float1" when
    Item var1 changed or
    Item var2 changed
    then
    var n2 = (var1.state as DecimalType).intValue
    var n1 = (var2.state as DecimalType).intValue
    var temp = n1 * 256 * 256 + n2
    var sign = -temp.shiftRight(31).bitwiseNot()
    var exponent = temp.shiftRight(23).bitwiseAnd(255) - 127
    var mantissa = temp.bitwiseAnd(8388607).doubleValue / 8388608 + 1
    var result = sign * mantissa * 1.shiftLeft(exponent)
    _float1.sendCommand(result)
    end
    Полученное значение редактирую и нужно отправить обратно на ПЛК.
    Как сделать обратное преобразование? Из float в 2 word для последующей передачи на ПЛК по modbus?

  5. #145

    По умолчанию

    Если знаешь как преобразовать 2 WORD в FLOAT, то почему не знаешь как сделать обратное преобразование ?

  6. #146
    Пользователь
    Регистрация
    09.08.2013
    Адрес
    Башкортостан
    Сообщений
    234

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Если знаешь как преобразовать 2 WORD в FLOAT, то почему не знаешь как сделать обратное преобразование ?
    Текст word-> float скопировал с другого примера.
    На java никогда не приходилось ничего делать.

    Мне и это несколько странным кажется.
    Принимая по modbus переменную float в виде 4-х байт почему нельзя разместить ее в памяти как 4 байта и через ссылку обратиться к этой области памяти как к переменной float. Собственно и обратно так же.
    Предполагаю, что это особенности java.

  7. #147
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    На яву не надо гнать, то что Вы привели это совсем не ява, какой то скриптовый код, к тому же не преобразование системными функциями языка, а просто алгоритм представления флоат из массива байт

  8. #148
    Пользователь
    Регистрация
    09.08.2013
    Адрес
    Башкортостан
    Сообщений
    234

    По умолчанию

    таким образом описываются правила обработки в openhab.

    зы. есть какая либо особенность в реализации запросов по modbus?
    Поясню: Выполняю функцию чтения 2-ух регистров. Успешно.
    Выполняю функцию чтения и записи значения бита - успешно.
    Т.е. когда эти запросы по одному - все норм.

    Как только выполняю эти два запроса последовательно (в openhab описываю два binding) выдается ошибка на мастере (openhab).
    Последний раз редактировалось Smith2007; 26.10.2014 в 17:41.

  9. #149
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    в примерах в принципе показано что ява код вставляется, преобразование туда и обратно выполняется двумя функциями Float.floatToIntBits(float value) и Float.intBitsToFloat(int bits), в Вашем приведенном коде var temp как раз получает этот bits чтоб его преобразовать во флоат

    А по поводу двух запросов, видимо надо дожидаться ответа на первый чтоб послать второй

  10. #150
    Пользователь
    Регистрация
    09.08.2013
    Адрес
    Башкортостан
    Сообщений
    234

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в примерах в принципе показано что ява код вставляется, преобразование туда и обратно выполняется двумя функциями Float.floatToIntBits(float value) и Float.intBitsToFloat(int bits), в Вашем приведенном коде var temp как раз получает этот bits чтоб его преобразовать во флоат

    А по поводу двух запросов, видимо надо дожидаться ответа на первый чтоб послать второй
    Попробовал добавить эти функции в rules.
    Ошибка.

Страница 15 из 27 ПерваяПервая ... 5131415161725 ... ПоследняяПоследняя

Похожие темы

  1. И вновь "Умный ДОМ"
    от Helixa.net в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 17.09.2012, 09:18
  2. Умный отопитель
    от AI! в разделе Программируемые реле
    Ответов: 26
    Последнее сообщение: 14.03.2011, 11:12
  3. умный аквариум
    от jammer77 в разделе Подбор Оборудования
    Ответов: 45
    Последнее сообщение: 03.03.2010, 19:38
  4. снова про умный дом и плк
    от dbkrasn в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 11.12.2009, 22:53
  5. умный дом на плк 100
    от Hyper в разделе ПЛК1хх
    Ответов: 22
    Последнее сообщение: 22.10.2008, 22:43

Ваши права

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