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

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

28.04.2024, 18:03. Показов 1539. Ответов 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
1472 / 487 / 72
Регистрация: 22.09.2023
Сообщений: 1,489
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
1472 / 487 / 72
Регистрация: 22.09.2023
Сообщений: 1,489
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
1472 / 487 / 72
Регистрация: 22.09.2023
Сообщений: 1,489
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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru