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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

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

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

1 попытка .
Пытаюсь подключить серво драйвер по Modbus RTU. Контроллер - fx5u, на нем использую встроенный rs485. На драйвере разъем под Ethernet.Серводрайвер не реагирует никоим образом ни на какие попытки считать с него данные. Просто молчит, ошибки не кидает, ничего не происходит.
2 попытка
Птыаюсь подключить через RS485->USB переходник сразу к компьютеру. (Переходник был проверен, путем подключения плк к пк, все работает, через софт Modbus Slave передача идет)
Параметры все выставляю одинаковые. Пробовал и макс. скорость подключения, и минимальную, везде одна и та же ситуация - ноль реакции. То есть драйвер просто не реагирует на команды.

Подключение не совсем стандартное. На драйвере ethernet порт для modbus rtu. Думаю что косяк с ним, но как только не пробовал подключать, все одно и то же.
Запускаю софт Modbus Poll и пытаюсь сканировать адреса, в итоге также просто молчание. Ничего не происходит.

Подключил таким образом:
Обычно rs485 предпологает всего два провода для связи. Собственно тут я и подключил эти 2 провода. :
(RDO+, TXD+) -> A
(RDO-, TXD-) -> B

Даже не знаю в какую сторону копать. В чем может быть проблема того что драйвер просто игнорит все сообщения ?
Скришоты приложил и официальный мануал : https://disk.yandex.ru/d/Fpl8lNjN5DuTcQ
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 05 сен 2023, 08:43Птыаюсь подключить через RS485->USB переходник сразу к компьютеру. (Переходник был проверен, путем подключения плк к пк, все работает, через софт Modbus Slave передача идет)
Параметры все выставляю одинаковые. Пробовал и макс. скорость подключения, и минимальную, везде одна и та же ситуация - ноль реакции.
Если МодБас Пул связывается, то из него параметры просто переписываются в контроллер, провода переключаются и должно ехать. Значит дело не в железе, а в том как контроллер шлёт запросы.
DenisPilshikov писал(а): 05 сен 2023, 08:43Даже не знаю в какую сторону копать. В чем может быть проблема того что драйвер просто игнорит все сообщения ?
Абсолютно все? Даже опрос какого-нибудь регистра?
По вопросам работы Форума можно обратиться по этим контактам.

I_m
освоился
освоился
Сообщения: 257
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 4 раза
Поблагодарили: 39 раз

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение I_m »

DenisPilshikov писал(а): 05 сен 2023, 08:43 На драйвере ethernet порт для modbus rtu.
это не эзернет, это RJ-45

add: а почему слейв айди 10? поменяли уже дефолтный 1?
Последний раз редактировалось I_m 05 сен 2023, 10:29, всего редактировалось 1 раз.
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 05 сен 2023, 08:43 Запускаю софт Modbus Poll и пытаюсь сканировать адреса, в итоге также просто молчание. Ничего не происходит.
Ничего не понятно. Сначала пишете что Пул связывается, тут же оказывается не связывается. Где косяк-то?
DenisPilshikov писал(а): 05 сен 2023, 08:43Обычно rs485 предпологает всего два провода для связи.
А надо не как обычно, а документацию посмотреть. Сами же говорите что
DenisPilshikov писал(а): 05 сен 2023, 08:43Подключение не совсем стандартное.
.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

Jackson писал(а): 05 сен 2023, 10:29
DenisPilshikov писал(а): 05 сен 2023, 08:43 Запускаю софт Modbus Poll и пытаюсь сканировать адреса, в итоге также просто молчание. Ничего не происходит.
Ничего не понятно. Сначала пишете что Пул связывается, тут же оказывается не связывается. Где косяк-то?
DenisPilshikov писал(а): 05 сен 2023, 08:43Обычно rs485 предпологает всего два провода для связи.
А надо не как обычно, а документацию посмотреть. Сами же говорите что
DenisPilshikov писал(а): 05 сен 2023, 08:43Подключение не совсем стандартное.
.
Приветствую. Проблема решилась - суть была в том что в документации схема распиновки RJ45 в первом месте нумеруется с одной стороны, во второй - с другой. Переподключил - работает.
Теперь проблема в том, что работает только запись в регистры, но не работает чтение оттуда. Если пытаюсь считывать (пробовал и с плк, и с пк через Modbus Poll), все по нулям. Сканер регистров что встроен в Modbus Poll возвращает по всем ячейкам 0 (со статусом Response OK). То есть 0 приходит без какой либо ошибки.

Отправлено спустя 15 минут 1 секунду:
Вот пример программы. Пытаюсь отправить в драйвер в регистр значение функцией 0x6. Получается.
После чего оттуда же считываю значение функцией 0x3( - приходит 0, как и со всеми другими переменными). Ячейка в документации помечена как R/W. То есть оттуда можно и считывать и записывать.
https://yadi.sk/i/1Lq93G14oKAoxw
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 11 сен 2023, 12:36 После чего оттуда же считываю значение функцией 0x3
А функцией 0х4 пробовали?
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

Jackson писал(а): 11 сен 2023, 16:37
DenisPilshikov писал(а): 11 сен 2023, 12:36 После чего оттуда же считываю значение функцией 0x3
А функцией 0х4 пробовали?
Да, пробовал. Modbus Poll кидает ошибку что функция не та. А плк ничего не меняется(ошибки тоже не сыпятся)
В документации заявлено их всего три 0x3/0x6/0x10.

Есть один нюанс, в коде программы пишу что при старте плк, записать в регистр D1 условно пусть будет 3.
Так вот далее по коду в тот же регистр считывается значение каждые 2 сек.
Но на плк ничего не меняется. Как была 3 так она и остается.
Поэтому мысли такие, что в коде запроса не то что то. По идее мы должны были увидеть что наша тройка перезаписывается приходящим числом(даже если это 0) , но этого не происходит почему то.

https://yadi.sk/d/sGrsWcm56aCCUA
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 12 сен 2023, 06:15 Поэтому мысли такие, что в коде запроса не то что то. По идее мы должны были увидеть что наша тройка перезаписывается приходящим числом(даже если это 0) , но этого не происходит почему то.
Модбас Пулом открыть окно мониторинга трафика и смотреть, что уходит в устройство и что в ответ летит. Либо сторонним сниффером порта послушать. Если запрос ушёл и пришёл нормальный ответ, но с нулями - это значит что с форматом опроса всё в порядке, сам ПЧ так отдаёт.
[+]
В самых крайних случаях я брал второй ноут, вешал на слейв параллелььно второй конвертер RS-485/USB, запускал на втором ноуте терминал и просто слушал порт. Иногда находил что некоторые посылки по пути искажаются и до слейва просто не долетают. Разбираться - так уж полностью и убедиться во всём.
Если всё как описано выше (в смысле всё в порядке), то попробуйте запрашивать по одному регистру и одному входу (или одному DI, или что Вы запрашиваете), а не несколько пачкой. В МодБас Пуле ведь можно несколько пулов сразу открыть. Где-то у меня было что я запрашивал состояние DO пачкой 15 функцией - нули. А запрашивал по одному 5 функцией (ЕМНИП, 1 функция чтение, 5 функция запись) - всё хорошо. Причина - ну так сделал производитель, пойди достучись до него теперь. Просто по аналогии.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

Jackson писал(а): 12 сен 2023, 09:55
DenisPilshikov писал(а): 12 сен 2023, 06:15 Поэтому мысли такие, что в коде запроса не то что то. По идее мы должны были увидеть что наша тройка перезаписывается приходящим числом(даже если это 0) , но этого не происходит почему то.
Модбас Пулом открыть окно мониторинга трафика и смотреть, что уходит в устройство и что в ответ летит. Либо сторонним сниффером порта послушать. Если запрос ушёл и пришёл нормальный ответ, но с нулями - это значит что с форматом опроса всё в порядке, сам ПЧ так отдаёт.
[+]
В самых крайних случаях я брал второй ноут, вешал на слейв параллелььно второй конвертер RS-485/USB, запускал на втором ноуте терминал и просто слушал порт. Иногда находил что некоторые посылки по пути искажаются и до слейва просто не долетают. Разбираться - так уж полностью и убедиться во всём.
Если всё как описано выше (в смысле всё в порядке), то попробуйте запрашивать по одному регистру и одному входу (или одному DI, или что Вы запрашиваете), а не несколько пачкой. В МодБас Пуле ведь можно несколько пулов сразу открыть. Где-то у меня было что я запрашивал состояние DO пачкой 15 функцией - нули. А запрашивал по одному 5 функцией (ЕМНИП, 1 функция чтение, 5 функция запись) - всё хорошо. Причина - ну так сделал производитель, пойди достучись до него теперь. Просто по аналогии.
Ок. Делаю так - ставлю через фирменный софт - значение для адреса 0x0003 = 6. Далее запускаю Modbus Poll со сканом этой ячейки.
в итоге видим 0 в результатах.
Далее меняю значение с 6 на 1. Опять сканирую. опять 0.
НО, в логах сообщений видно, что там действительно меняются значения. то есть я вижу что драйвер присылает нужное значение по запросу, а не нули. Но ни плк, ни Modbus Poll не отображает его.
https://yadi.sk/d/uGHzJQs4l0XkHg
https://yadi.sk/i/oFDfoVtPcHNZlw
Запрос делал в размере 1 ячейки.

pkl58
частый гость
частый гость
Сообщения: 453
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 5 раз
Поблагодарили: 53 раза

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение pkl58 »

Байты в ответе есть возможность переставить и посмотреть результат?
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 12 сен 2023, 14:33 НО, в логах сообщений видно, что там действительно меняются значения. то есть я вижу что драйвер присылает нужное значение по запросу, а не нули. Но ни плк, ни Modbus Poll не отображает его.
Что-то не договариваете. Если нужные значения из слейва уходят, то либо они не доходят до мастера, либо мастер их не понимает. Не доходить до мастера они не могут - иначе мастер вообще не видел бы никаких ответов (CRC не сойдётся). Значит дело в том, что мастер не понимает ответы, вот и всё.
pkl58 писал(а): 12 сен 2023, 14:48 Байты в ответе есть возможность переставить и посмотреть результат?
Да, вариант.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

Jackson писал(а): 12 сен 2023, 16:00
DenisPilshikov писал(а): 12 сен 2023, 14:33 НО, в логах сообщений видно, что там действительно меняются значения. то есть я вижу что драйвер присылает нужное значение по запросу, а не нули. Но ни плк, ни Modbus Poll не отображает его.
Что-то не договариваете. Если нужные значения из слейва уходят, то либо они не доходят до мастера, либо мастер их не понимает. Не доходить до мастера они не могут - иначе мастер вообще не видел бы никаких ответов (CRC не сойдётся). Значит дело в том, что мастер не понимает ответы, вот и всё.
pkl58 писал(а): 12 сен 2023, 14:48 Байты в ответе есть возможность переставить и посмотреть результат?
Да, вариант.
Ну ситуация такова, мне нужно 16 битный регистр в 16 битный регистр в плк отправить же. Насколько я правильно понимаю, порядок high и low, это актуально только для 32 bit.

Вот я написал программу простую. В цикле пытается прочитать ячейку 0x0009.
Подключил драйвер к плк, запускаю. ПЛК отображает 0. Ошибок нет
При этом если я цепляюсь через usb/rs485 и просматриваю порт, там по кругу крутится сообщение
0A 03 00 09 00 01 55 73 0A 03 02 01 0D DD D0

Что соответствует 2 сообщениям друг от друга:
Slave address 0x0A (10)
Function code 0x03 (3) - Read Holding Registers
Starting address Physical: 0x0009 (9)
Logical: 0x000A (10)
Quantity 0x0001 (1)
CRC 0x5573 (21875)


Slave address 0x0A (10)
Function code 0x03 (3) - Read Holding Registers
Byte count 0x02 (2)
Register value 0x010D (269)
CRC 0xDDD0 (56784)

то есть обратно ворачивается эта 16 битная ячейка, и там действительно сейчас 269.
Потыкал все варианты настроек на Modbus Poll которые меняют формат отображения, в том числе и те которые ставят порядок байтов - все так же 0.

Была идея что это что то с плк, но почему тогда в modbus poll то же 0

I_m
освоился
освоился
Сообщения: 257
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 4 раза
Поблагодарили: 39 раз

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение I_m »

DenisPilshikov писал(а): 13 сен 2023, 09:04 Была идея что это что то с плк, но почему тогда в modbus poll то же 0
Если Вы сниффером видите 269, а modbus poll рисует 0, то может с modbus poll что-то не так? Попробуйте radzio modbus master simulator, например.
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

DenisPilshikov писал(а): 13 сен 2023, 09:04 Насколько я правильно понимаю, порядок high и low, это актуально только для 32 bit
Неправильно понимаете. Бывает всякое.
I_m писал(а): 13 сен 2023, 09:25 Если Вы сниффером видите 269, а modbus poll рисует 0, то может с modbus poll что-то не так?
На МодбасПул не надо грешить, он нормальный. И байты переворачивать умеет, между прочим.
С телеграммой разобраться надо. Может это и не модбас никакой, производители иногда применяют что-то на основе модбаса, но своё, и тогда МодбасПул действительно будет бессилен. Но и софт надо писать тогда не под модбас.
По вопросам работы Форума можно обратиться по этим контактам.

pkl58
частый гость
частый гость
Сообщения: 453
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 5 раз
Поблагодарили: 53 раза

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение pkl58 »

DenisPilshikov писал(а): 13 сен 2023, 09:04 Насколько я правильно понимаю, порядок high и low, это актуально только для 32 bit.
И для 16 бит тоже актуально.

Автор темы
DenisPilshikov
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 04 сен 2023, 07:32
Имя: Денис Пильщиков
Страна: Россия
город/регион: Moscow

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение DenisPilshikov »

I_m писал(а): 13 сен 2023, 09:25
DenisPilshikov писал(а): 13 сен 2023, 09:04 Была идея что это что то с плк, но почему тогда в modbus poll то же 0
Если Вы сниффером видите 269, а modbus poll рисует 0, то может с modbus poll что-то не так? Попробуйте radzio modbus master simulator, например.
Просто невероятно. Я уже думал что сойду с ума. Ваша идея оказалась рабочей, и эта программа видит регистры и корректно их отображает!!
Осталось понять как сделать так, чтобы на контроллере было видно эти значения, а не нули.

I_m
освоился
освоился
Сообщения: 257
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 4 раза
Поблагодарили: 39 раз

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение I_m »

Jackson писал(а): 13 сен 2023, 09:35 На МодбасПул не надо грешить, он нормальный.
Не так, чтобы очень давно была тема, где у человека ничего не получалось, пока он версию modbus poll не сменил. Подробностей не помню, искать лень.

Parliament74
авторитет
авторитет
Сообщения: 817
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 211 раз

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Parliament74 »

I_m писал(а): 13 сен 2023, 11:15 Не так, чтобы очень давно была тема, где у человека ничего не получалось, пока он версию modbus poll не сменил. Подробностей не помню, искать лень.
Недавно с таким столкнулся.
После проведения процедуры "активации" Modbus Poll стал видеть одни 0 в регистрах, хотя по факту даже запись в них работала ))
Пришлось версию сменить на более старую. У коллег такой же опыт имеется )
Аватара пользователя

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

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение Jackson »

Parliament74 писал(а): 13 сен 2023, 11:30 Недавно с таким столкнулся.
Слышал. Но сам не обновляюсь до последних версий без надобности.
"Не трогай работающую технику и она тебя не подведёт"
Но в общем да, сравнить версии надо бы. У меня 4.3.4 Build 307
DenisPilshikov писал(а): 13 сен 2023, 10:44 Осталось понять как сделать
Перед тем как что-то сделать, хорошо бы понять, почему именно такая картина наблюдается.

Отправлено спустя 2 минуты 14 секунд:
Например разобраться с протоколом: ASCII, RTU, TCP, RTUoverTCP... Вон их сколько вариантов. Возможно, в этом всё и дело.
По вопросам работы Форума можно обратиться по этим контактам.

pkl58
частый гость
частый гость
Сообщения: 453
Зарегистрирован: 19 мар 2012, 20:04
Имя: Павел
Страна: Россия
Благодарил (а): 5 раз
Поблагодарили: 53 раза

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение pkl58 »

Можно попробовать Multiway от Омрон. Там есть вкладка Модбас. Причем он и слейвом может работать.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Как подключить серво двигатель по MODBUS? Leadshine EL7 RS400P

Сообщение keysansa »

DenisPilshikov писал(а): 13 сен 2023, 09:04 При этом если я цепляюсь через usb/rs485 и просматриваю порт, там по кругу крутится сообщение
0A 03 00 09 00 01 55 73 0A 03 02 01 0D DD D0
Это действительно нормальный обмен для чтения регистра 9 со значением 269.
Непонятно, что происходит с Modbus Pull, но попробуйте задать тайминги Modbus в контроллере FX5u чутка побольше (в районе 30-100). Обычно достаточно увеличения тайминга между вопросом и ответом.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

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