- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Modbus RTU и Kepserver. Помогите понять смещение
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 24 мар 2018, 01:26
- Имя: Макс
- Благодарил (а): 5 раз
Modbus RTU и Kepserver. Помогите понять смещение
Доброго времени суток, коллеги!
Помогите пожалуйста разобраться с адресацией Modbus RTU. Собственно есть привод AUMA с родным блоком управления. Задача – получить данные о состоянии и управление задвижкой. Связь с блоком управления осуществляется через Modbus RTU. Далее Modbus RTU преобразуется в Modbus TCP посредствам преобразователя Moxa Mgate 3170 далее по Ethernet идет в ПК с установленным KepServer. Вот тут то не могу понять какой адрес регистра нужно указать у примеру на состоянии задвижки в положении закрыто. Вот что пишут в мануале AUMA с таблицей регистров(мануал на английском т.к. в русском мануале таблицы регистров нет вообще =((( ).
Reading the feedback signals from the actuator using status functions
Functions to be used:
Read Input Status (02)
Offset(hexadecimal) 0x2000
Offset (decimal) 8192
Content OPEN position
Я так понял, что для получения данных о состоянии открытой задвижки используется функция (02)(чтение дискретов) потом указывается смещение в шестнадцатеричной или десятичной форме. Вот что указывать в адресе KepServera (при создании тэга) не пойму. Если в KepServer указываю 8192 он выдает ошибку о неправильной адресации, если указываю 8192 он ее автоматически заменяет на 108192. Задвижка AUMA еще не установлена но хочется быть теоретически подготовленным =) Помогите пожалуйста люди добрые =)
Помогите пожалуйста разобраться с адресацией Modbus RTU. Собственно есть привод AUMA с родным блоком управления. Задача – получить данные о состоянии и управление задвижкой. Связь с блоком управления осуществляется через Modbus RTU. Далее Modbus RTU преобразуется в Modbus TCP посредствам преобразователя Moxa Mgate 3170 далее по Ethernet идет в ПК с установленным KepServer. Вот тут то не могу понять какой адрес регистра нужно указать у примеру на состоянии задвижки в положении закрыто. Вот что пишут в мануале AUMA с таблицей регистров(мануал на английском т.к. в русском мануале таблицы регистров нет вообще =((( ).
Reading the feedback signals from the actuator using status functions
Functions to be used:
Read Input Status (02)
Offset(hexadecimal) 0x2000
Offset (decimal) 8192
Content OPEN position
Я так понял, что для получения данных о состоянии открытой задвижки используется функция (02)(чтение дискретов) потом указывается смещение в шестнадцатеричной или десятичной форме. Вот что указывать в адресе KepServera (при создании тэга) не пойму. Если в KepServer указываю 8192 он выдает ошибку о неправильной адресации, если указываю 8192 он ее автоматически заменяет на 108192. Задвижка AUMA еще не установлена но хочется быть теоретически подготовленным =) Помогите пожалуйста люди добрые =)
-
- эксперт
- Сообщения: 2091
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 135 раз
- Поблагодарили: 174 раза
Modbus RTU и Kepserver. Помогите понять смещение
По-любому снифер надо освоить :)
Посылаешь из KeepServera запрос и смотришь, что на шине RS-485 происходит.
Отправлено спустя 15 минут 33 секунды:
Как-то налаживал связь между S7-1200 и расходомером. Мало того, что не понятно, что из контроллера там за запросы идут, так еще и расходомер не пойми какие запросы требует. Узнал у поставщика, что расходомер имеет адрес "1" и так и эдак посылал запросы по этому адресу, нет ответа. Снифером смотрю, тоже нет ответа. Начал один и тот же запрос посылать по разным адресам. Увидел что совсем на другом адресе просходит ответ о неверном запросе. Начал мучать этот адрес и добился обмена пакетами. Без снифера это было бы просто невозможно наладить.
Посылаешь из KeepServera запрос и смотришь, что на шине RS-485 происходит.
Отправлено спустя 15 минут 33 секунды:
Как-то налаживал связь между S7-1200 и расходомером. Мало того, что не понятно, что из контроллера там за запросы идут, так еще и расходомер не пойми какие запросы требует. Узнал у поставщика, что расходомер имеет адрес "1" и так и эдак посылал запросы по этому адресу, нет ответа. Снифером смотрю, тоже нет ответа. Начал один и тот же запрос посылать по разным адресам. Увидел что совсем на другом адресе просходит ответ о неверном запросе. Начал мучать этот адрес и добился обмена пакетами. Без снифера это было бы просто невозможно наладить.
-
- почётный участник форума
- Сообщения: 5638
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 601 раз
- Поблагодарили: 758 раз
Modbus RTU и Kepserver. Помогите понять смещение
Вот в отличие от формата Семёна с его извращённым своппингом, Лектуса с его глюками и от прочих поделок у КипСервера самые вменяемые настройки, полностью удовлетворяющие требованиям стандарта Модбас.
Всё там предсказуемо.
Судя по Вашему описанию, у Вас область чтения начинается с нулевого входного регистра, но точнее можно будет сказать, если Вы благословите нас ссылкой на описание карты Модбас Вашей Auma.
Всё там предсказуемо.
Судя по Вашему описанию, у Вас область чтения начинается с нулевого входного регистра, но точнее можно будет сказать, если Вы благословите нас ссылкой на описание карты Модбас Вашей Auma.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- здесь недавно
- Сообщения: 6
- Зарегистрирован: 24 мар 2018, 01:26
- Имя: Макс
- Благодарил (а): 5 раз
Modbus RTU и Kepserver. Помогите понять смещение
Да, конечно. Вот вырезка из мануала касаемо таблицы регистровRyzhij писал(а): ↑24 мар 2018, 18:17 Вот в отличие от формата Семёна с его извращённым своппингом, Лектуса с его глюками и от прочих поделок у КипСервера самые вменяемые настройки, полностью удовлетворяющие требованиям стандарта Модбас.
Всё там предсказуемо.
Судя по Вашему описанию, у Вас область чтения начинается с нулевого входного регистра, но точнее можно будет сказать, если Вы благословите нас ссылкой на описание карты Модбас Вашей Auma.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Modbus RTU и Kepserver. Помогите понять смещение
Да, все правильно
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Modbus RTU и Kepserver. Помогите понять смещение
Выдержка из мана KEPWare:
То есть, когда вы записываете адрес в формате "108192", вы говорите серверу, что надо читать адрес устройства "8192" функцией "02".
Код: Выделить всё
Decimal Addressing Hexadecimal Addressing
Type
Boolean
Format
1xxxxx H1yyyyy
Security
Read Only
Range
1 - 65536 1 - 10000
Function Codes (decimal)
02
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 02 ноя 2015, 16:38
- Имя: Еднерал Андрей Романович
- Страна: Россия
- город/регион: Москва, Щербинка
- Поблагодарили: 1 раз
Modbus RTU и Kepserver. Помогите понять смещение
Разница между номером регистра и его адресом есть смещение или offset. Для Вашего случая (Read Input Status (02)) базовое смещение 10001 (адрес регистра 0000). 10001+8192=18193 - номер регистра, который надо забивать. Путаница происходит из-за того, что в документации под смещением понимают и адрес и смещение и номер. Где как. Потому народ снифферами пользуется. Так вернее.
-
- администратор
- Сообщения: 17579
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 824 раза
- Поблагодарили: 1652 раза
Modbus RTU и Kepserver. Помогите понять смещение
А тем временем, идёт 21 век. Жесть.
По вопросам работы Форума можно обратиться по этим контактам.