1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Modbus индикатор

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить

Автор темы
metrolog_1977
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 04 июл 2014, 18:54
Имя: Дмитрий
Страна: Беларусь
город/регион: Барановичи

Modbus индикатор

Сообщение metrolog_1977 »

Здравствуйте! Приобрел на алиэкспресс вот такую штучку.
https://www.aliexpress.com/item/4001143 ... 4883835938
Хотел (и хочу) подключить по rs485 к преобразователю частоты Delta C2000 для вывода определенной информации.Пока не получается соединить, программой Modbus сканер это штучка определяется, параметры связи и протокол известен.
Так вот в чем собственно вопрос, из описания не могу понять а какой номер регистра куда нужно записывать число.

Вот что в описании

4.The Details of Sending Instructions are as Follows:
1>.01:Station number of digital tube
2>.06:Function code
3>.00 00:Display register of digital tube screen (integer)
4>.22 B8:display 8888 (decimal),hexadecimal 22B8
5>.91 18:CRC check


это получается адрес регистра 0? или 8888?
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Modbus индикатор

Сообщение Jackson »

metrolog_1977 писал(а): 08 фев 2021, 11:19 это получается адрес регистра 0?
Да, 0. Многие приборы начинают адресацию регистров с нуля, ничего удивительного. Сначала "куда писать", потом "что писать".

В примере: записать 8888 в регистр 0 устройства 01.

Только контрольная сумма у меня получилась 0х1891, а не 0х9118. Байты переставлены местами - может поэтому у Вас и не пишется.
По вопросам работы Форума можно обратиться по этим контактам.

Sergey_P
здесь недавно
здесь недавно
Сообщения: 63
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Страна: Украина
город/регион: Киев
Благодарил (а): 13 раз
Поблагодарили: 17 раз

Modbus индикатор

Сообщение Sergey_P »

В индикатор нужно записать Holding Register с адресом 0.
В мастере этот регистр может нумероваться по-разному: 1, 40001 или (реже) 0.
Спецификация MODBUS говорит, что нумерация регистров начинается с 1, а адресация - с 0. Т.е. регистр 1 имеет адрес 0.
В запросе фигурирует именно АДРЕС.

Насколько я понял AppNote для C2000 (https://deltautomation.files.wordpress. ... er0616.pdf), вам нужно задать такие входы блока MODRW:
S1 = 1 (Station number)
S2 = 16#0006 (Function code)
S3 = 16#0000 (Display register)

Автор темы
metrolog_1977
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 04 июл 2014, 18:54
Имя: Дмитрий
Страна: Беларусь
город/регион: Барановичи

Modbus индикатор

Сообщение metrolog_1977 »

все так и задавал, но увы ничего в индикатор не записалось.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Modbus индикатор

Сообщение Jackson »

Контрольная сумма верна? Выше она была неверна.
По вопросам работы Форума можно обратиться по этим контактам.

Sergey_P
здесь недавно
здесь недавно
Сообщения: 63
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Страна: Украина
город/регион: Киев
Благодарил (а): 13 раз
Поблагодарили: 17 раз

Modbus индикатор

Сообщение Sergey_P »

Jackson писал(а): 09 фев 2021, 22:28 Контрольная сумма верна? Выше она была неверна.
В примере из первого поста контрольная сумма правильная.
Пакет: 01 06 00 00 22 b8
CRC16: 0x1891
Вот проверка: https://crccalc.com/?crc=0106000022b8&m ... uttype=hex (нужно пролистать вниз - там будет CRC-16/MODBUS)
Jackson писал(а): 08 фев 2021, 13:17 Только контрольная сумма у меня получилась 0х1891, а не 0х9118. Байты переставлены местами
В пакете Modbus RTU все двухбайтные значения идут старшим байтом в начале, а CRC - наоборот: младшим байтом в начале.
("MODBUS over serial line specification and implementation guide V1.02", рис. 12 на стр. 13)
В данном случае полный пакет должен быть таким:
01 06 00 00 22 b8 91 18

Т.е. все правильно.

Отправлено спустя 17 минут 55 секунд:
metrolog_1977, попробуйте посмотреть сниффером какие запросы частотник отправляет дисплею. Нужно подключить компьютер через RS485/USB в одну сеть с частотником и дисплеем.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Modbus индикатор

Сообщение Jackson »

Sergey_P писал(а): 10 фев 2021, 10:26 В примере из первого поста контрольная сумма правильная.
metrolog_1977 писал(а): 08 фев 2021, 11:19 4.The Details of Sending Instructions are as Follows:
1>.01:Station number of digital tube
2>.06:Function code
3>.00 00:Display register of digital tube screen (integer)
4>.22 B8:display 8888 (decimal),hexadecimal 22B8
5>.91 18:CRC check
Sergey_P писал(а): 10 фев 2021, 10:26 CRC16: 0x1891
Sergey_P писал(а): 10 фев 2021, 10:26 В данном случае полный пакет должен быть таким:
01 06 00 00 22 b8 91 18
Почему старший и младший байты в CRC16 меняются местами?
По вопросам работы Форума можно обратиться по этим контактам.

Sergey_P
здесь недавно
здесь недавно
Сообщения: 63
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Страна: Украина
город/регион: Киев
Благодарил (а): 13 раз
Поблагодарили: 17 раз

Modbus индикатор

Сообщение Sergey_P »

Jackson писал(а): 10 фев 2021, 10:43 Почему старший и младший байты в CRC16 меняются местами?
Так решили разработчики спецификации MODBUS over Serial Line (он же - Modbus RTU). Страница 13, рисунок 12.
Младший байт CRC передается первым.
crc.png

Это сбивает с толку, т.к. противоречит стандартному порядку передачи байт, принятому в протоколе MODBUS.
Там старший байт передается первым.
modbus.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
metrolog_1977
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 04 июл 2014, 18:54
Имя: Дмитрий
Страна: Беларусь
город/регион: Барановичи

Modbus индикатор

Сообщение metrolog_1977 »

CRC это хорошо, но что толку.В инструкции ПЛК которая пишет в индикатор нет CRС.
И это очевидно, так числа могут быть разные.
Последний раз редактировалось metrolog_1977 10 фев 2021, 22:31, всего редактировалось 1 раз.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Modbus индикатор

Сообщение Jackson »

В смысле - нет? Из ПЛК она не вылетает или индикатору она не нужна? Если второе - значит это никакой не Момбас.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
metrolog_1977
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 04 июл 2014, 18:54
Имя: Дмитрий
Страна: Беларусь
город/регион: Барановичи

Modbus индикатор

Сообщение metrolog_1977 »

CRC есть, но недоступно для программиста.
А насчет сниффера это правильная идея

Sergey_P
здесь недавно
здесь недавно
Сообщения: 63
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Страна: Украина
город/регион: Киев
Благодарил (а): 13 раз
Поблагодарили: 17 раз

Modbus индикатор

Сообщение Sergey_P »

metrolog_1977 писал(а): 10 фев 2021, 22:34 CRC есть, но недоступно для программиста
Это логично, т.к. вычисление CRC - это задача уровня передачи данных, а сам протокол MODBUS - на прикладном уровне. Программист оперирует командами и регистрами. А как это все упаковать в пакеты и передать по сети (в т.ч. подсчитать CRC) знает библиотека, или среда исполнения контроллера.
metrolog_1977 писал(а): 10 фев 2021, 22:34 А насчет сниффера это правильная идея
Готов поспорить, что когда мы увидим логи - многое станет понятно.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Modbus индикатор

Сообщение Jackson »

metrolog_1977 писал(а): 10 фев 2021, 22:34 А насчет сниффера это правильная идея
И делается это элементарно. Просто включиться в линию параллельно портом RS-485 c ПК и на ПК запустить любой терминал, открыв этот порт. Я с I-7561 включался. В свободном доступе есть терминалы которые сразу расшифровывают ModBUS-пакеты. Делается буквально на коленке за 10 минут - разговоров больше.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

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