Стартовая страница › Форумы › Ошибки в работе › Некорректная запись modbus регистров v6 RC1
- В этой теме 29 ответов, 3 участника, последнее обновление 1 год, 4 месяца назад сделано Mikhail.
-
АвторСообщения
-
10.11.2022 в 12:39 #25950manjey73Участник
Количество элементов 2 поставить у команды ?
10.11.2022 в 13:21 #259527inУчастникТогда вот что отправляет:
Отправка (17): 30 10 02 2E 00 04 08 00 00 00 00 00 00 00 00 28 44
Это если у множественной ставить.10.11.2022 в 14:15 #25953manjey73УчастникА почему тогда отправляет сплошные нули, если вы отправляете 2 ?
Явно косяк в драйвере
10.11.2022 в 15:23 #25955MikhailМодераторМожно узнать в чем заключалась проблема? Я верно предположил что это связано с размерностями элементов?
Драйвер неверно рассчитывал адрес команды.
Т.е. пишет 4 байта вместо необходимых двух. Зачем — непонятно
Число float состоит из 4 байт и занимает 2 адреса Модбас.
По поводу новой проблемы с float, проверю.
11.11.2022 в 09:34 #259637inУчастникЧисло float состоит из 4 байт и занимает 2 адреса Модбас.
Действительно все верно. Только почему то нули одни пишутся, а не передаваемое значение.
11.11.2022 в 09:56 #259647inУчастникДолжен вот такой пакет передаваться:
30 10 02 2E 00 02 04 00 00 40 00 A3 67
11.11.2022 в 10:24 #25965manjey73УчастникНули видимо пишутся потому, что драйвер некорректно обрезает или преобразует изначальный double.
то есть изначально 00 00 00 00 00 00 40 00 и хвост пропадает…- Этот ответ был изменен 1 год, 4 месяца назад от manjey73.
11.11.2022 в 13:33 #259697inУчастникто есть изначально 00 00 00 00 00 00 40 00 и хвост пропадает…
Попробовал записать значение «1,1» — там хвоста с нулями быть не должно т.к. в hex оно выглядит как 0x9a9999999999f13f
Однако в журнале коммуникатора все равно одни нули
11.11.2022 в 15:56 #25971MikhailМодераторВы могли бы выложить свежий шаблон Модбас и ещё раз уточнить, на каком элементе возникает ошибка? На следующей неделе планирую проверить.
11.11.2022 в 16:25 #259737inУчастникШаблон прежний (не изменялся) — из первого сообщения данной темы.
Проблема с элементом «Смещение графика конт 1»:
<Elem type="float" byteOrder="2301" readOnly="false" isBitMask="false" tagCode="558" name="Смещение графика конт 1" />
Проблема заключается в том, что при попытке записи такого элемента коммуникатор направляет некорректный запрос устройству: пытается функцией для записи одного регистра записать сразу два.11.11.2022 в 16:34 #259747inУчастникЭто была первоочередная проблема.
При попытке её обойти вылезла другая — если создать команду (множественную) с типом float — то всегда через неё пишутся нули вне зависимости от того, что я пытаюсь записать. Если нужны скриншоты/файл шаблона — выложу чуть позже.15.11.2022 в 17:27 #26013MikhailМодераторПопробуйте обновление, пожалуйста.
15.11.2022 в 21:26 #260237inУчастникОбе рассматриваемые ошибки больше не возникают. Запись float работает корректно в обоих случаях.
Спасибо!
Неужели до меня никто не сталкивался с подобными проблемами?15.11.2022 в 21:57 #26027manjey73УчастникПросто 6-я версия еще не в ходу, а ошибка могла возникнуть в промежуточных вариантах перед релиз кандидатом.
16.11.2022 в 15:41 #26045MikhailМодераторНеужели до меня никто не сталкивался с подобными проблемами?
Наверное, запись float не слишком часто используется. За исключением ошибки с нулями, остальные ошибки не проявлялись в новой версии на старых шаблонах.
Сейчас уже начинают переходить на 6-ю версию.
Исправление войдёт в следующий релиз. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.