PDA

Просмотр полной версии : МВ210-101 Плохой модбас



@ND
08.04.2019, 11:07
Зачем было размещать код ошибки в значение флоат?!!!
Вы думаете это удобно? Или решили 8 байт памяти сэкономить?
Дак ещё маска старшего байта ошибки 16#Fx не полностью пересекается со значением Nan в стандарте ieee 754, что как бы некорректно.
Но это ещё пол-беды. Почему я не могу прочитать все восемь флоатов с адреса 0xFA0 одной телеграммой?!!!
Если ещё значения всех каналов я могу одной телеграммой считать с адреса 0xFE0, то статусы всё равно приёдется из флоатов тащить, каждый отдельной телеграммой!! :mad:
Кстати в каком виде хранятся значения в 0xFE0 .. 0xFE7 тоже в РЭ не написано.

Филоненко Владислав
08.04.2019, 11:27
1. Шифровать код ошибки во float это уже устоявшийся за десятилетия фирменный стандарт. Вопрос его кривизны дискусионен. Экономия 8 байт сейчас кажется сомнительной, а 20 лет назад была актуальной.
2. Считать все 8 каналов одной посылкой можно и нужно. Читаем документацию.

Евгений Багаев
08.04.2019, 11:35
Зачем было размещать код ошибки в значение флоат?!!!
Вы думаете это удобно? Или решили 8 байт памяти сэкономить?
Дак ещё маска старшего байта ошибки 16#Fx не полностью пересекается со значением Nan в стандарте ieee 754, что как бы некорректно.
Но это ещё пол-беды. Почему я не могу прочитать все восемь флоатов с адреса 0xFA0 одной телеграммой?!!!
Если ещё значения всех каналов я могу одной телеграммой считать с адреса 0xFE0, то статусы всё равно приёдется из флоатов тащить, каждый отдельной телеграммой!! :mad:
Кстати в каком виде хранятся значения в 0xFE0 .. 0xFE7 тоже в РЭ не написано.

Читайте одним запросом регистры 0xFA0 (4000 dec) - 0xFB7 (4023 dec). В этом диапазоне значения со всех входов в формате float32. В регистрах 4002, 4005, 4008, 4011, 4014, 4017, 4020, 4023 содержится время измерения по каждому каналу.

Коды ошибок по каждому входу в одном из следующих релизов прошивки будут вынесены в отдельные регистры. Приблизительный срок - 2 месяца.

@ND
08.04.2019, 11:37
1. Шифровать код ошибки во float это уже устоявшийся за десятилетия фирменный стандарт. Вопрос его кривизны дискусионен. Экономия 8 байт сейчас кажется сомнительной, а 20 лет назад была актуальной.
2. Считать все 8 каналов одной посылкой можно и нужно. Читаем документацию.

1. В 110й линейке было же нормально, мухи отдельно котлеты отдельно!
2. Отсылаю телеграмму (00 01 00 00 00 06 01 03 0F A0 00 10), тем самым хочу прочитать 16 регистров, где хранятся флоаты, получаю ответ - (00 01 00 00 00 03 01 83 02). ЧЯДНТ?