Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Диапазон адресов ModBus

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Аватара пользователя

Автор темы
megavolt86
специалист
специалист
Сообщения: 630
Зарегистрирован: 14 ноя 2013, 19:35
Ф.И.О.: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Диапазон адресов ModBus

Сообщение megavolt86 » 29 мар 2016, 15:48

Всем здрасьти!
Разбираясь с регистрами модбас наткнулся на такой момент интересный - в официальной литературе (разного рода стандарты) не нашел конечного адреса регистров модбас...есть только начальный.
Небольшое описание команды:
описание_команды.png

Особенно интересны адрес старшего и младшего байтов - значит всего адресов, допустим Holding registers будет 65535, а это 40001 - 105536, но в некоторых статьях и на форумах встречал иное - 40001-50000.
Может кто подскажет, какое утверждение верное?
Сомнение разбудила вот такая литература с описанием регистров:
Описание_адресов.png

На картинке описаны адреса для функций 0х06 и 0х0А
По моим расчетам получается адрес параметра "Секунды" будет 105286
У вас нет необходимых прав для просмотра вложений в этом сообщении.
:ext_secret:


rwg
частый гость
частый гость
Сообщения: 492
Зарегистрирован: 29 апр 2014, 08:57
Ф.И.О.: Рыбкин Владимир Геннадьевич
Благодарил (а): 10 раз
Поблагодарили: 19 раз

Диапазон адресов ModBus

Сообщение rwg » 29 мар 2016, 16:37

megavolt86 писал(а):Источник цитаты допустим Holding registers будет 65535, а это 40001 - 105536

Может быть 40000 - 4FFFF, где 4 - признак Holding registers?

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

Диапазон адресов ModBus

Сообщение Serex » 29 мар 2016, 18:02

В любом простом вопросе можно запутать дело так, что не разберешься! :crazy0to: Особенно, когда дело касается Siemens :ext_secret:

40000 - 49999 (В десятичном формате - dec) это Holding Registr - это однозначно.
Есть еще расширенные 400'000 - 465'535 (в dec) - Это поле включает в себя первое.
Как? Когда на входе драйвера сименс пишешь адрес из 5 знаков - он делает одно преобразование с адресом, а если из 6 знаков, то другое.
Один из моих старых постов.
Основная особенность, что библиотека, предлагаемая разработчиками хоть и удобна, но имеет существенную особенность.
Когда указываем адрес данных с функцией 03, то функциональный блок делает такое преобразование
на входе х = 40'001-49'999, на выходе (в байтовой посылке) адрес будет У = х - 40'001
на входе х = 400'001 - 465'535, на выходе У = х - 400'001
...
У меня основную сложность вызвало сделать посылку с адресом 42'044. Чтобы ее послать, нужно указать адрес 442'045. Вот попробуй догадайся :)


Т.е. Допустимо использовать адрес, который на шине 0000-FFFF (hex) . Т.е. 65534 возможных вариантов адреса. А вот дальше начинается интерпретация разработчиков оборудования. Кто что имел ввиду. И конечно же каждый из них единственно верно понимает стандарт :ges_up:

Аватара пользователя

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7905
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

Диапазон адресов ModBus

Сообщение TEB » 29 мар 2016, 18:48

megavolt86 писал(а):Источник цитаты Разбираясь с регистрами модбас

Какого устройства? :) У каждого устройства адресация может быть своя.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.

Аватара пользователя

Автор темы
megavolt86
специалист
специалист
Сообщения: 630
Зарегистрирован: 14 ноя 2013, 19:35
Ф.И.О.: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Диапазон адресов ModBus

Сообщение megavolt86 » 29 мар 2016, 21:14

rwg писал(а):Источник цитаты 4 - признак Holding registers

Так оно и есть))) начинал заполнять адреса 0х00 - 40001, 0х02 -40003 и тд, в итоге набрал 37 листов с описанием всех типов регистров входных/выходных каналов и еще листов 20 будет с описанием параметров регуляторов

Serex писал(а):Источник цитаты 40000 - 49999 (В десятичном формате - dec) это Holding Registr - это однозначно.Есть еще расширенные 400'000 - 465'535 (в dec) - Это поле включает в себя первое

Вот такого, даже не подозревал спасибо большое за подсказку, как раз таки в сименс и нужно будет организовать передачу. В блоке модбас на входе начального адреса надо будет прописать адрес с апострофом или как? :oops:
TEB писал(а):Источник цитаты Какого устройства? :)

Отечественный плк базис-100, на сайте есть методичка с описанием адресов в хекс-формате, когда перевел в дек-формат то возник данный вопрос :ges_slap:


Но если стандарт модбас поддерживает расширенную адресацию, то можно сказать вопрос решен)))
:ext_secret:

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

Диапазон адресов ModBus

Сообщение Serex » 29 мар 2016, 23:28

megavolt86 писал(а):Источник цитаты Но если стандарт модбас поддерживает расширенную адресацию

Нет в стандарте расширенной адресации, она есть у сименса :)

Ради интереса заглянул в стандарт модбаса
И не нашел там про 40001-49999 упоминаний для Holding Registres
Только отсылку, что такое возможно по местечковым спецификациям, разработанным на базе стандарта.
Там все просто написано: от 0 до 65535. Сочетание адреса и номера функции должно уже определять целевую область памяти в приложении. Т.е. для каждой функции чтения/записи должна быть своя уникальная область памяти с адресами от 0 до 65535.
Такая простота мне нравиться :good:
Но у сименса все не просто так!!!

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

Диапазон адресов ModBus

Сообщение Serex » 29 мар 2016, 23:33

megavolt86 писал(а):Источник цитаты В блоке модбас на входе начального адреса надо будет прописать адрес с апострофом или как?

На всякий случай уточню, что речь идет о S7-1200 функция MB_MASTER v2.2
Просто на вход пишешь число в десятичном формате, как есть.

Аватара пользователя

Автор темы
megavolt86
специалист
специалист
Сообщения: 630
Зарегистрирован: 14 ноя 2013, 19:35
Ф.И.О.: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Диапазон адресов ModBus

Сообщение megavolt86 » 30 мар 2016, 05:24

Serex писал(а):Источник цитаты На всякий случай уточню, что речь идет о S7-1200 функция MB_MASTER v2.2 Просто на вход пишешь число в десятичном формате, как есть.

Мне как раз таки и нужны будут функции новых контроллеров s7-1500)))) но думаю буду использовать mb_client v 4.0, с этим блоком я уже работал, есть наработки... и к тому же Сименс будет мастером сети.
Serex писал(а):Источник цитаты Там все просто написано: от 0 до 65535. Сочетание адреса и номера функции должно уже определять целевую область памяти в приложении. Т.е. для каждой функции чтения/записи должна быть своя уникальная область памяти с адресами от 0 до 65535.

Значит в моем примере адрес должен быть 400001-465536, придется перелопатить немного табличку свою
:ext_secret:

Аватара пользователя

Автор темы
megavolt86
специалист
специалист
Сообщения: 630
Зарегистрирован: 14 ноя 2013, 19:35
Ф.И.О.: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Диапазон адресов ModBus

Сообщение megavolt86 » 31 мар 2016, 15:51

Знатоки не ошибаются!)))
Проверил модсканом, значение регистров выше чем 49999...
Следующим идет 410000 регистр.
Данные принимаются


Век живи -век учись!
:ext_secret:


heX
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 06 сен 2016, 12:36
Ф.И.О.: Иванов Александр Семенович

Диапазон адресов ModBus

Сообщение heX » 06 сен 2016, 12:52

С адресацией регистров у Modbus путаница!

Есть 6 знаковый формат.
Для каждого типа регистра делаем приставку - 0.., 1.., 3.., 4...
(Где - №2? - а его просто нет...)
(Почему они не взяли нумерацию на основе номеров функций 0x01, 0x02, 0x03, 0x04? - неизвестно...)

6 значный диапазон; Тип; Доступ; Название
0XXXXX | bit | RW | Discrete Output Coils
1XXXXX | bit | RO | Discrete Input Contacts
3XXXXX | word | RO | Analog Input Registers
4XXXXX | word | RW | Analog Output Holding Registers

Но в каждом типе регистра доступно только 65536 регистров!
Это значит что можно указывать только такие номера X00000..X65535.

А еще иногда не используют 6-ти знаковый формат - просто указывают номер регистра и название его типа.
_____________________________________________________________________

А еще в старых описаниях/стандартах можно найти диапазоны. Но диапазоны регистров никто не использует! (это касается и контроллеров и устройств) Изначально предполагалось что для каждого типа будет отведено всего 10000 регистров. Текущая ситуация - у каждого типа (4 типа) используется весь доступный диапазон - 65536 доступных регистров.

Диапазоны регистров (которые никто не использует!):
Discrete Output Coils: 1-9999; Read-Write;
Discrete Input Contacts: 10001-19999; Read-Only;
Analog Input Registers: 30001-39999; Read-Only;
Analog Output Holding Registers: 40001-49999; Read-Write;

Аватара пользователя

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7905
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

Диапазон адресов ModBus

Сообщение TEB » 06 сен 2016, 13:09

heX писал(а):Источник цитаты А еще в старых описаниях/стандартах можно найти диапазоны. Но диапазоны регистров никто не использует!

Так уж и никто? :ges_down:

И вообще, я реплики не очень понял, в теме по которой ответ давно никому не нужен, свои личные заблуждения. Вы о чём, вообще?
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


rwg
частый гость
частый гость
Сообщения: 492
Зарегистрирован: 29 апр 2014, 08:57
Ф.И.О.: Рыбкин Владимир Геннадьевич
Благодарил (а): 10 раз
Поблагодарили: 19 раз

Диапазон адресов ModBus

Сообщение rwg » 06 сен 2016, 13:26

Попробовал в ОВЕН ПЛК MODBUS SLAVE (CODESYS) создать 10 переменных по 2 байта, по адресу десятой переменной расположил в адресном пространстве слейва массив на 10 переменных типа Word (общий размер занятой памяти 19 регистров). Программа компилируется, ошибок нет, всё работает, но при запросе мастером информации слейв выдаёт только первые 10 регистров, при обращении за содержимым 11 ячейки со вторым элементом массива мастер получает сообщение о неправильном адресе. Из-за этого при адресном пространстве 1000 слов надо ручками добавлять каждый регистр по отдельности, массивов адресов CoDeSys 2.3 не понимает. :(

Аватара пользователя

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7905
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

Диапазон адресов ModBus

Сообщение TEB » 06 сен 2016, 13:44

rwg писал(а):Источник цитаты но при запросе мастером информации слейв выдаёт только первые 10 регистров, при обращении за содержимым 11 ячейки со вторым элементом массива мастер получает сообщение о неправильном адресе.

Так это проблема конкретной реализации, а не то что "никто не использует"
Используют и довольно широко, и это работает, просто где-то это сделано криво, где-то нет.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2229
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 23 раза
Контактная информация:

Диапазон адресов ModBus

Сообщение Михайло » 06 сен 2016, 15:44

Стандарт Модбас разработан инженерами Шнейдер Электрика более 50 лет назад. У них был контроллер с адресацией от 0 до 65535 (64 килобайта). Соответственно стандарт устарел и трактуется в некоторых вопросах более вольно и даже более проще...

Аватара пользователя

Автор темы
megavolt86
специалист
специалист
Сообщения: 630
Зарегистрирован: 14 ноя 2013, 19:35
Ф.И.О.: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Диапазон адресов ModBus

Сообщение megavolt86 » 06 сен 2016, 20:29

Михайло писал(а):Источник цитаты разработан инженерами Шнейдер Электрика более 50 лет назад

Михаил, не шнейдер, а модикон разработал стандарт...это уже позже их купил шнейдер электрик)))
heX писал(а):Источник цитаты Диапазоны регистров (которые никто не использует!):Discrete Output Coils: 1-9999; Read-Write;Discrete Input Contacts: 10001-19999; Read-Only;Analog Input Registers: 30001-39999; Read-Only;Analog Output Holding Registers: 40001-49999; Read-Write;

Извините, а какие адреса тогда используют?
:ext_secret:


heX
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 06 сен 2016, 12:36
Ф.И.О.: Иванов Александр Семенович

Диапазон адресов ModBus

Сообщение heX » 07 сен 2016, 10:06

megavolt86 писал(а):Извините, а какие адреса тогда используют?

0-65535 (1-65536) во всех 4 "адресных пространствах"/"типах регистров".
Лично проверял это в контроллерах фирм: Schneider Electric, B&R, Emicon, ProSoft (и еще каких-то, щас и не упомню).

Жесткого ограничения как в приведенном выше описании нигде не встречал.

Аватара пользователя

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7905
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

Диапазон адресов ModBus

Сообщение TEB » 07 сен 2016, 13:12

Даже если и так, то - это кому-то осложняет жизнь?
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.

Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 12:45
Ф.И.О.: :.О.N.Ф
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Диапазон адресов ModBus

Сообщение Exactamente » 07 сен 2016, 16:19

heX писал(а):Источник цитаты Лично проверял это в контроллерах фирм: ... B&R
Но ведь в б+р мы сами можем задать массив, который будет мапиться на соответствующие адреса, и для каждого "пространства" команд можем задать разные массивы. Разве нет?
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».


Вернуться в «Интерфейсы, протоколы, связь»



Кто сейчас на конференции

Сейчас этот форум просматривают: Ryzhij и 0 гостей