Некорректная запись modbus регистров v6 RC1

Стартовая страница Форумы Ошибки в работе Некорректная запись modbus регистров v6 RC1

Просмотр 15 сообщений - с 16 по 30 (из 30 всего)
  • Автор
    Сообщения
  • #25950
    manjey73
    Участник

    Количество элементов 2 поставить у команды ?

    #25952
    7in
    Участник

    Тогда вот что отправляет:
    Отправка (17): 30 10 02 2E 00 04 08 00 00 00 00 00 00 00 00 28 44
    Это если у множественной ставить.

    #25953
    manjey73
    Участник

    А почему тогда отправляет сплошные нули, если вы отправляете 2 ?

    Явно косяк в драйвере

    #25955
    Mikhail
    Модератор

    Можно узнать в чем заключалась проблема? Я верно предположил что это связано с размерностями элементов?

    Драйвер неверно рассчитывал адрес команды.

    Т.е. пишет 4 байта вместо необходимых двух. Зачем — непонятно

    Число float состоит из 4 байт и занимает 2 адреса Модбас.

    По поводу новой проблемы с float, проверю.

    #25963
    7in
    Участник

    Число float состоит из 4 байт и занимает 2 адреса Модбас.

    Действительно все верно. Только почему то нули одни пишутся, а не передаваемое значение.

    #25964
    7in
    Участник

    Должен вот такой пакет передаваться:

    30 10 02 2E 00 02 04 00 00 40 00 A3 67

    #25965
    manjey73
    Участник

    Нули видимо пишутся потому, что драйвер некорректно обрезает или преобразует изначальный double.
    то есть изначально 00 00 00 00 00 00 40 00 и хвост пропадает…

    • Этот ответ был изменен 1 год, 4 месяца назад от manjey73.
    #25969
    7in
    Участник

    то есть изначально 00 00 00 00 00 00 40 00 и хвост пропадает…

    Попробовал записать значение «1,1» — там хвоста с нулями быть не должно т.к. в hex оно выглядит как 0x9a9999999999f13f

    Однако в журнале коммуникатора все равно одни нули

    #25971
    Mikhail
    Модератор

    Вы могли бы выложить свежий шаблон Модбас и ещё раз уточнить, на каком элементе возникает ошибка? На следующей неделе планирую проверить.

    #25973
    7in
    Участник

    Шаблон прежний (не изменялся) — из первого сообщения данной темы.
    Проблема с элементом «Смещение графика конт 1»:
    <Elem type="float" byteOrder="2301" readOnly="false" isBitMask="false" tagCode="558" name="Смещение графика конт 1" />
    Проблема заключается в том, что при попытке записи такого элемента коммуникатор направляет некорректный запрос устройству: пытается функцией для записи одного регистра записать сразу два.

    #25974
    7in
    Участник

    Это была первоочередная проблема.
    При попытке её обойти вылезла другая — если создать команду (множественную) с типом float — то всегда через неё пишутся нули вне зависимости от того, что я пытаюсь записать. Если нужны скриншоты/файл шаблона — выложу чуть позже.

    #26013
    Mikhail
    Модератор

    Попробуйте обновление, пожалуйста.

    #26023
    7in
    Участник

    Обе рассматриваемые ошибки больше не возникают. Запись float работает корректно в обоих случаях.
    Спасибо!
    Неужели до меня никто не сталкивался с подобными проблемами?

    #26027
    manjey73
    Участник

    Просто 6-я версия еще не в ходу, а ошибка могла возникнуть в промежуточных вариантах перед релиз кандидатом.

    #26045
    Mikhail
    Модератор

    Неужели до меня никто не сталкивался с подобными проблемами?

    Наверное, запись float не слишком часто используется. За исключением ошибки с нулями, остальные ошибки не проявлялись в новой версии на старых шаблонах.
    Сейчас уже начинают переходить на 6-ю версию.
    Исправление войдёт в следующий релиз.

Просмотр 15 сообщений - с 16 по 30 (из 30 всего)
  • Вы должны авторизироваться для ответа в этой теме.