- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Modbus индикатор
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 33
- Зарегистрирован: 04 июл 2014, 18:54
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Барановичи
Modbus индикатор
Здравствуйте! Приобрел на алиэкспресс вот такую штучку.
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?
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?
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Modbus индикатор
Да, 0. Многие приборы начинают адресацию регистров с нуля, ничего удивительного. Сначала "куда писать", потом "что писать".
В примере: записать 8888 в регистр 0 устройства 01.
Только контрольная сумма у меня получилась 0х1891, а не 0х9118. Байты переставлены местами - может поэтому у Вас и не пишется.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Modbus индикатор
В индикатор нужно записать 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)
В мастере этот регистр может нумероваться по-разному: 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)
-
- здесь недавно
- Сообщения: 33
- Зарегистрирован: 04 июл 2014, 18:54
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Барановичи
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Modbus индикатор
Контрольная сумма верна? Выше она была неверна.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Modbus индикатор
В примере из первого поста контрольная сумма правильная.
Пакет: 01 06 00 00 22 b8
CRC16: 0x1891
Вот проверка: https://crccalc.com/?crc=0106000022b8&m ... uttype=hex (нужно пролистать вниз - там будет CRC-16/MODBUS)
В пакете 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 в одну сеть с частотником и дисплеем.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Modbus индикатор
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
Почему старший и младший байты в CRC16 меняются местами?
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Modbus индикатор
Так решили разработчики спецификации MODBUS over Serial Line (он же - Modbus RTU). Страница 13, рисунок 12.
Младший байт CRC передается первым.
Это сбивает с толку, т.к. противоречит стандартному порядку передачи байт, принятому в протоколе MODBUS.
Там старший байт передается первым.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 33
- Зарегистрирован: 04 июл 2014, 18:54
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Барановичи
Modbus индикатор
CRC это хорошо, но что толку.В инструкции ПЛК которая пишет в индикатор нет CRС.
И это очевидно, так числа могут быть разные.
И это очевидно, так числа могут быть разные.
Последний раз редактировалось metrolog_1977 10 фев 2021, 22:31, всего редактировалось 1 раз.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Modbus индикатор
В смысле - нет? Из ПЛК она не вылетает или индикатору она не нужна? Если второе - значит это никакой не Момбас.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 33
- Зарегистрирован: 04 июл 2014, 18:54
- Имя: Дмитрий
- Страна: Беларусь
- город/регион: Барановичи
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Modbus индикатор
Это логично, т.к. вычисление CRC - это задача уровня передачи данных, а сам протокол MODBUS - на прикладном уровне. Программист оперирует командами и регистрами. А как это все упаковать в пакеты и передать по сети (в т.ч. подсчитать CRC) знает библиотека, или среда исполнения контроллера.
Готов поспорить, что когда мы увидим логи - многое станет понятно.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Modbus индикатор
И делается это элементарно. Просто включиться в линию параллельно портом RS-485 c ПК и на ПК запустить любой терминал, открыв этот порт. Я с I-7561 включался. В свободном доступе есть терминалы которые сразу расшифровывают ModBUS-пакеты. Делается буквально на коленке за 10 минут - разговоров больше.
По вопросам работы Форума можно обратиться по этим контактам.