-
- Встречал программу для ПК, которая для проверки наличия устройства на шине пыталась считать данные с нулевого регистра устройства. Данные могли быть любые, но ответ должен был быть корректным. После этого считалось, что устройство работает нормально и с ним происходил дальнейший обмен. - _Илья(08.04.2025 18:45)
- Учитывая то, что нулевой адрес - это широковещательная посылка (на
которую, естественно, никто не должен пытаться ответить), то и
нулевой регистр можно зарезервировать для каких-либо специальных
нужд. - Eddy_Em(08.04.2025 18:16)
- Эээ ... широковещательный адрес устройства и адрес регистра с индексом 0 это совсем не одно и то же. В наших приборах в регистре с адресом 0 чаще всего простой инкрементальный счетчик циклов, который индицирует факт, что ПО работает и прибор "живет", а не завис как-то вымудрено, лишь отвечая по связи. - reZident(08.04.2025 18:21)
- Речь о адресе регистра, а не девайса. - Andreas(08.04.2025 18:20)
- ИМХО, тут нет хорошего решения. Можно или сделать как в стандарте и внести этим путанницу. Или сделать как оно реально по проводам передается и отклониться от стандарта. AlexG(77 знак., 08.04.2025 16:34)
- По госту с 1, по уму с 0. Например, некоторые скады предлагают на выбор. - IBAH(08.04.2025 15:54)
- Много лет воюю с программистами на тему нумерации выходов-выходов в документации. Программисту использовать нумерацию из ряда натуральных чисел
ничего не стоит - он это при написании программы один раз сделает.
Но эксплуатантам каждый раз уточнять по телефону "третий вход, на котором нет сигнала, это
третий по счету или третий из обозначения в документации, где
индексация с нуля идет?" это просто пиздец как сложно! :-/ - reZident(08.04.2025 14:38 - 15:17)
- индексы начинаются с нуля, нумера начинаются с единицы. - LordN(08.04.2025 17:12)
- Ну вот инструкция почтенного производителя и понимай как хош Andreas(1 знак., 08.04.2025 17:42, картинка)
- Раз в таблице присутствоет нулевой, то вычитать единицу не нужно. По моему, все понятно. - Cкpипaч(08.04.2025 19:38)
- Ну вот инструкция почтенного производителя и понимай как хош Andreas(1 знак., 08.04.2025 17:42, картинка)
- Таки и что делать-то по опыту? Если адрес в пакете 0x100, как его
писать в документации, как 0x100 или 0x101? Или наоборот, если в
документации написано 0x100, то на какой адрес в пакете
реагировать? - Andreas(08.04.2025 15:02)
- Относительно неплохое решение - не использовать в своих устройствах регистр номер 0. Только начиная с первого. Cкpипaч(124 знак., 08.04.2025 19:40)
- ИМХО надо исходить из связанности вашей абстракции с реальностью.
Если на заборе написать "Вася - дурак", то реальный Вася обидится
только если он действительно дурак. :-) Но если написать "жена Васи
Пупкина из 43й квартиры классно сосет - проверено лично!", то
вопрос времени, когда Вася Пупкин из 43й квартиры вас найдет и
выяснит отношения с вами, потому что со своей женой он уже выяснил
;-) - reZident(08.04.2025 15:25)
- а вот если Ленка со второго этажа, то о какой стране говорится?:) в
Германии наш первый - нулевой, точнее "земляной" - Erdgeschoss, а
наш второй - "первый верхний" или просто первый Vit(8 знак., 08.04.2025 16:02, youtube)
- У цокольного этажа есть вполне конкретное определение. (Видео не смотрел, для этого на работе впн включать нужно). reZident(1 знак., 08.04.2025 16:15, ссылка)
- ото ж!... POV(209 знак., 08.04.2025 15:26)
- а вот если Ленка со второго этажа, то о какой стране говорится?:) в
Германии наш первый - нулевой, точнее "земляной" - Erdgeschoss, а
наш второй - "первый верхний" или просто первый Vit(8 знак., 08.04.2025 16:02, youtube)
- ишь ты, ардуину захотел - Vit(08.04.2025 14:57)
- индексы начинаются с нуля, нумера начинаются с единицы. - LordN(08.04.2025 17:12)
- Насколько мне удалось разобраться в этом вопросе: il-2(841 знак., 08.04.2025 14:25)
- Так в том то и дело, что эти извраты в стандарте и прописаны. AlexG(291 знак., 08.04.2025 16:30)
- А в итоге с 1 или с нуля адрес в документации к своим девайсам? - Andreas(08.04.2025 14:33)
- В конце 70-х годов, когда модбас пошел в народ, этот самый народ ещё не был приучен начинать нумерацию с 0. Даже в Фортране элементы массива начинались с 1. Поэтому в описании "для людей" номера регистров нумеровались с 1, а в при передаче пакетов передавались числа на 1 меньше. Тогда это имело смысл, ширнармассам не нужно было каждому первому растолковывать про начало нумерации с 0, а программистам разницу между тем что написано и тем что передаётся можно было объяснить не ЫЫyкпy(153 знак., 08.04.2025 14:12)
- Лично я предпочитаю начинать с семи тысяч 8) Cкpипaч(79 знак., 08.04.2025 14:06)
- Физическии адрес с 0 Balda(61 знак., 08.04.2025 13:38)
- Кхе-кхе. Некоторые "красавцы", уровня Danfoss, еще и префиксы
путают. Типа 3ххххх - только для чтения :) - Cкpипaч(08.04.2025 14:09)
- А префикс это вообще законно? - Andreas(08.04.2025 14:31)
- Нет. В стандарте слово "префикс" не гуглится. - Cкpипaч(08.04.2025 14:59)
- А префикс это вообще законно? - Andreas(08.04.2025 14:31)
- Кхе-кхе. Некоторые "красавцы", уровня Danfoss, еще и префиксы
путают. Типа 3ххххх - только для чтения :) - Cкpипaч(08.04.2025 14:09)
- по всякому. LordN(541 знак., 08.04.2025 13:31)
- Мне тоже как-то давали на реализацию неплохо проработанное ТЗ. Там
с нуля было. - POV(08.04.2025 13:23)
- А адреса подряд шли, а то тут 0, 0х100, 0х1000, 0х1001, 0х1002,
0х1200. Фактически можно только по одному входу или регистру
читать, я просто при числе запрошенных параметров больше 1 даю
ошибку, что возможно и не особо хорошо. - Andreas(08.04.2025 13:29)
- Тоже развожу "пробелами" в группы, на которые хватит буфера на передачу. - Cкpипaч(08.04.2025 15:03)
- У меня строго по одному регистру либо сразу чохом всё. - POV(08.04.2025 13:34)
- Без дыр в адресации? Тогда все просто. - Andreas(08.04.2025 15:03)
- А адреса подряд шли, а то тут 0, 0х100, 0х1000, 0х1001, 0х1002,
0х1200. Фактически можно только по одному входу или регистру
читать, я просто при числе запрошенных параметров больше 1 даю
ошибку, что возможно и не особо хорошо. - Andreas(08.04.2025 13:29)