Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 09.01.2023
Сообщений: 21

PyModbus - узнать отправляемый запрос

28.04.2024, 18:03. Показов 1461. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, ребят!

Вопрос по PyModbus RTU

У меня стоит задача общения ПК с ПЛК.

Накидал несколько строк, для отправления простого запроса, чтобы считать регистр. Это исключительна для теста и написания дальнейшей программы, но на ПЛК ничего не приходит. а преобразователь USB-RS485 что-то сто процентов отправляет, я бы хотел узнать какой именно запрос по байтам отправляет ПК.

Ответ, я получаю вот такой: =(
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
Ну и диод на ПЛК не моргает по приему RS485.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pymodbus.client import ModbusSerialClient
 
client = ModbusSerialClient(port='COM2',
                            timeout=0.2,
                            baudrate=57600,
                            bytesize=8,
                            parity='N',
                            stobits=1)
 
client.connect()
 
result = client.read_holding_registers(address=4097, count=1, slave=1)
 
print(result)
 
client.close()
Я не думаю, что возможны проблемы с отсутствием терминальных резисторов на метровой длине провода.
ЗЫ: я в правильный раздел форума написать?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2024, 18:03
Ответы с готовыми решениями:

Опрос нескольких датчиков по ModBus RTU из программы на Python (PyModbus)
Опрашиваю датчики температуры и влажности через USB-RS485 конвертер. Если датчик один, всё прекрасно работает без sleep-ов. Но если надо...

Максимальный размер строки отправляемый в библиотечную функцию
Здравствуйте. Сделал dll библиотеку. Использую её в другом ЯП. Передаю функции аргумент строку размером 535 символов. Но выдает...

Чем можно просканировать трафик отправляемый игрой?
Мне интересно можно ли чем-то просканировать трафик который mmo игра посылает серверу.

9
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.04.2024, 18:41
Цитата Сообщение от nin9zer0 Посмотреть сообщение
Я не думаю, что возможны проблемы с отсутствием терминальных резисторов на метровой длине провода.
Вот и зря ты так думаешь. Полгода назад сдох плк, поменяли и не работает связь. Мудохались два дня. Таки да, оказался терминатор. А на том плк все работало.
Только там плк мастером был, но не суть.

Добавлено через 1 минуту
Цитата Сообщение от nin9zer0 Посмотреть сообщение
Ну и диод на ПЛК не моргает по приему RS485.
Адрес точно тот?
1
2 / 2 / 0
Регистрация: 09.01.2023
Сообщений: 21
28.04.2024, 21:49  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Адрес точно тот?
Да, конечно, я же сам и настраивал ПЛК, он пустой, есть только функциональный блок для обработки MODBUS.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.04.2024, 08:58
nin9zer0, че за ПЛК? Овно?
0
1186 / 468 / 68
Регистрация: 22.09.2023
Сообщений: 1,408
29.04.2024, 10:44
Цитата Сообщение от nin9zer0 Посмотреть сообщение
преобразователь USB-RS485 что-то сто процентов отправляет, я бы хотел узнать какой именно запрос по байтам отправляет ПК
  • Wireshark умеет показывать обмен по USB. Там совсем несложно вычленить собственно передаваемые данные.
  • Для виндовса существует еще целая куча анализаторов обмена USB (USB sniffer) кроме Wireshark
  • Можно подключиться к 485 еще одним переходником USB-RS485 и подслушать все происходящее на шине.
  • Можно подключиться к 485 логическим анализатором (поиск на али по ключевым словам "8-bit logic analyzer", стоит чуть больше бутылки пива, должен лежать в столе у каждого, кто работает с "железом"), записать посылку и не спеша ее анализировать на предмет правильной скорости обмена, пауз между байтами, содержимого самих байтов посылки и т.п., он умеет даже расшифровывать modbus RTU.
Может вы, банально, перепутали A и B у своего переходника USB-RS485?

Добавлено через 10 минут
А может у вас переходник USB-RS485 не имеет вывода земли со стороны 485, вы соединили его с ПЛК только двумя проводами A и B и выжгли драйвер RS485 переходника или ПЛК просто за счет разности потенциалов земли ПЛК и вашего ПК.
3
2 / 2 / 0
Регистрация: 09.01.2023
Сообщений: 21
29.04.2024, 13:19  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
nin9zer0, че за ПЛК? Овно?
Delta

Цитата Сообщение от Dushevny Посмотреть сообщение
Wireshark умеет показывать обмен по USB. Там совсем несложно вычленить собственно передаваемые данные.
Для виндовса существует еще целая куча анализаторов обмена USB (USB sniffer) кроме Wireshark
Спасибо)

Цитата Сообщение от Dushevny Посмотреть сообщение
Можно подключиться к 485 еще одним переходником USB-RS485 и подслушать все происходящее на шине.
Можно подключиться к 485 логическим анализатором (поиск на али по ключевым словам "8-bit logic analyzer", стоит чуть больше бутылки пива, должен лежать в столе у каждого, кто работает с "железом"), записать посылку и не спеша ее анализировать на предмет правильной скорости обмена, пауз между байтами, содержимого самих байтов посылки и т.п., он умеет даже расшифровывать modbus RTU.
Нету под рукой ничего такого( первая мысль была взять второй переходник, но пока негде.

Цитата Сообщение от Dushevny Посмотреть сообщение
Может вы, банально, перепутали A и B у своего переходника USB-RS485?
Проверял(

Цитата Сообщение от Dushevny Посмотреть сообщение
А может у вас переходник USB-RS485 не имеет вывода земли со стороны 485, вы соединили его с ПЛК только двумя проводами A и B и выжгли драйвер RS485 переходника или ПЛК просто за счет разности потенциалов земли ПЛК и вашего ПК.
Подключал с землей.

Добавлено через 28 минут
Цитата Сообщение от Dushevny Посмотреть сообщение
Wireshark умеет показывать обмен по USB. Там совсем несложно вычленить собственно передаваемые данные.
Скачал, Wireshark. Нашел место где отправляются пакеты. Но ничего похожего на нужное сообщение я не в вижу.
1
1186 / 468 / 68
Регистрация: 22.09.2023
Сообщений: 1,408
30.04.2024, 11:07
Цитата Сообщение от nin9zer0 Посмотреть сообщение
Скачал, Wireshark. Нашел место где отправляются пакеты. Но ничего похожего на нужное сообщение я не в вижу.
Недостаточно информации. Давайте есть слона по частям. Начнем от 485. Какой именно у вас переходник USB-485? Есть ли на нем светодиоды "прием", "передача"? Предполагаю, что он видится в системе как виртуальный COM-порт. Тогда натравите на него любую терминальную программу (например, putty), нажимайте в ней любую клавишу - на каждое нажатие в ваш переходник по USB должна улетать посылка и на переходнике должен вспыхивать светодиод "передача", если он есть (скорость желательно выставить поменьше, чтобы длительность вспышки была больше). Вот когда найдете в WireShark эти посылки с нажатыми клавишами - тогда можно будет переходить к PyModbus.

Кстати, а нет ли в интернете готовых программ, использующих PyModbus? Я недавно находил что-то похожее - тоже клиент модбуса на питоне с какой-то библиотекой.
1
2 / 2 / 0
Регистрация: 09.01.2023
Сообщений: 21
30.04.2024, 11:31  [ТС]
Цитата Сообщение от Dushevny Посмотреть сообщение
Недостаточно информации. Давайте есть слона по частям. Начнем от 485. Какой именно у вас переходник USB-485? Есть ли на нем светодиоды "прием", "передача"? Предполагаю, что он видится в системе как виртуальный COM-порт. Тогда натравите на него любую терминальную программу (например, putty), нажимайте в ней любую клавишу - на каждое нажатие в ваш переходник по USB должна улетать посылка и на переходнике должен вспыхивать светодиод "передача", если он есть (скорость желательно выставить поменьше, чтобы длительность вспышки была больше). Вот когда найдете в WireShark эти посылки с нажатыми клавишами - тогда можно будет переходить к PyModbus.
Moxa UPORT 1150i
На нем мигает диод, я уже пытаюсь отправить через Advanced Serial Port Monitor (AGG Software) напрямую пакет.
01 03 10 01 00 02 0B 91
Параметры скорости, четности и стоповых бит проверил уже раз сто) Подключение кабеля тоже проверял, прозванивал его на всякий.)

Прочитал много информации в инструкции от ПЛК, забил всё ручками в нужные регистры по настройке порта. И я всё равно топчусь на месте.

Так же я забыл в pyModbus прописать method='rtu', но в прошлой версии кода он был, при первых попытках отправить пакеты через пайтон.
0
2 / 2 / 0
Регистрация: 09.01.2023
Сообщений: 21
02.05.2024, 17:26  [ТС]
Dushevny, iSmokeJC,
В общем всё заработала, проблема была очень простая. Я не проставил настройку в МОХА.

PyModbus читает и записывает регистры без каких либо проблем.
1
1186 / 468 / 68
Регистрация: 22.09.2023
Сообщений: 1,408
03.05.2024, 09:16
Вот и славно. Спасибо, что сообщили, в чем была причина. Это может помочь тем, кто столкнется с подобной проблемой после вас и забредет сюда через поисковик.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.05.2024, 09:16
Помогаю со студенческими работами здесь

Как узнать запрос, который посылает ВКонтакте, когда ставят лайк, отправляют запрос дружбы
Поставил себе цель написать программу, которая заходит с нового аккаунта и ставит лайк или добавляет в друзья. Но не знаю, как отследить...

Узнать выполнился ли запрос
Всем привет, уже бьюсь несколько часов, но ни как не могу найти нужного решения. Есть примерно такой код: $update = $handle ->...

как узнать прошол ли запрос
здравствуйте ) я бы хотел узнать как можно в C# узнать прошел ли запрос из базы данных Firebird... например в php я бы это выянил так ...

Запрос linq. Узнать месяц
Нахожу максимальное значение температуры, но не могу узнать месяц когда была такая температура. Все данные у меня есть, они считываются из...

Как узнать post-запрос?
Всем привет! В общем, задача следующая. На странице http:// spys. one/proxys/RU/ при помощи автоматического запроса (get) необходимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru