Краткий рассказ о работе с modbus

  Рет қаралды 6,509

Vladimir Medintsev

Vladimir Medintsev

4 ай бұрын

Пікірлер: 49
@manul88
@manul88 4 ай бұрын
Здравствуйте, Владимир. Я купил вашу книгу одним из первых. Спасибо за труд, она отличная. За подробный рассказ о модбас, отдельное спасибо.
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
И вам спасибо большое за поддержку
@user-ol4mj6qv2t
@user-ol4mj6qv2t 2 ай бұрын
Здравствуйте Владимир. Спасибо Вам огромное за обучающие видео. Благодаря книге понял как правильно работать с операционной системой. Книгу купил в самом начале продаж и очень рад тому, что она у меня теперь есть. Удачи!
@VladimirMedintsev
@VladimirMedintsev 2 ай бұрын
И вам спасибо за позитивный отзыв
@user-gj9mt2ju6x
@user-gj9mt2ju6x 4 ай бұрын
Посмотрю позже. Модбасом пользовался и буду пользоваться, так что по любому что то новое для себя найду. Кстати, лет 6 или 7 назад подключал свои платы к панели Овена, СП307, столкнулся с тем, что они не обрабатывают коды ошибок. ))) Дошло до того, что связывался с ними, спрашивал почему. У них при любом варианте ошибки, который посылала моя плата, всегда выскакивало сообщение: "Нет связи" или что то подобное, точно не помню. А мне очень хотелось, чтобы мои платы сообщали что им не нравится, какие у них проблемы. ))) Не вышло. Пришлось довольствоваться малым.
@sultanail84
@sultanail84 3 ай бұрын
Очень интересно, особенно, интересно, что это работает с промышленным оборудованием. Ну и Овены его широко используют.
@chepegin
@chepegin 4 ай бұрын
Владимир, спасибо. По поводу union. Необходимо обрамлять эту конструкцию #pragma pack(push, 1) и #pragma pack(pop). Иначе можно поиметь проблемы в некоторых случаях с выравниванием данных в памяти. Для того, чтобы понять о чём я - статья на хабре с заголовком "Расставим точки над структурами C/C++".
@user-tz2gx7ow7p
@user-tz2gx7ow7p 4 ай бұрын
Ура наконец то.... Надеюсь я не ситьно ошибался, жаль пропустил стрим.
@user-tz2gx7ow7p
@user-tz2gx7ow7p 4 ай бұрын
Надеюсь будет на примере оси OSI. Потому что modbus пишут над 232,485, Ethernet.
@victorlowlevel8063
@victorlowlevel8063 4 ай бұрын
Писал свои библиотеки modbus на основе этой статьи. И мастер и слейв для AVR/STM8/STM32. Мастер для PC. Для слейва в MCU делал их через функции обратного вызова. Использую для коммуникации между оборудованием для спортивных судейских систем. Консоли, табло, пульты, устройства отображения. Единственная проблема - частенько выгорают конечные трансиверы. Пытаемся победить. Есть конечно куда оптимизировать либу. Например использовать один буфер для приёма/передачи, а не как сейчас у меня - два буфера. Пока не добрался.
@sergeysemenkov6474
@sergeysemenkov6474 3 ай бұрын
Делайте гальваническую развязку, выгорать не будет. Или все нужно питать от одного БП.
@victorlowlevel8063
@victorlowlevel8063 3 ай бұрын
@@sergeysemenkov6474 Мы ща нашли п...здатые микрухи со встроенным DC-DC - будем заказывать и пробовать! 🙄
@panigo63
@panigo63 4 ай бұрын
На гите есть такой nimaltd. Его библиотеки мне нравятся. И с FreeRtos тоже дружат.
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
Я его библиотеки много раз показывал. Более того, с ним даже переписывался много месяцев.
@sergsapov2927
@sergsapov2927 3 ай бұрын
Ради интереса скачал его gsm_v5-master. И вижу в pdu setAddress() идет работа с буфером без контроля размера. Дальше смотреть не стал...
@user-lh8mr6mn3s
@user-lh8mr6mn3s 4 ай бұрын
Пробовал Modbus RTU на CH32 - работает, но нужен имеено апаратный таймер, программный может перестать вызывать свой callback через какокое-то время, хотя с приоритетами вроде всё норм. Очереди медленные, в разы медленее циклического буфера. Насчёт определения конца посылки в 3,5 символа он не всегда нужен, об этом нитересно написано у Овена "Заметки о Модбас"
@user-ur8gf5mf1x
@user-ur8gf5mf1x 3 ай бұрын
Здравствуйте, Владимир! Не могли бы Вы сказать какой программатор используете для прошивки STM32? Для отладки в Keil нужно использовать что-то наподобие J-link или можно обойтись китайской копией ST-Link? Какой программатор посоветуете? Плата, с которой Вы связываетесь по Modbus- Ваша новая разработка, но не могли бы Вы в двух словах рассказать о ней?
@VladimirMedintsev
@VladimirMedintsev 3 ай бұрын
Для работы с микроконтроллерами STM32 можно использовать любой программатор с интерфейсом SWD полный список достаточно длинный. Из популярных J-Link, ST_Link, DAP_Link. Я использую собственный клон ST_Link как его сделать рассказано в одном из видео на канале.
@Ololoshize
@Ololoshize 4 ай бұрын
Скажите, когда вы собираете код, вы используете опции компилятора по оптимизации (скорость, размер), если да, то какие?
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
Опции используются в зависимости от того, какой эффект мне нужно получить.
@jackkatch3839
@jackkatch3839 3 ай бұрын
Мало знаком с STM32. Пришлось делать приёмопередатчик двух каналов RS485 (удлинитель линии, для искро-безопасного оборудования. Один канал к передатчику, второй канал к приёмнику). Абонент , в некоторых случаях, отвечает очень быстро, поэтому после завершения передачи необходимо как можно быстрее переключится на приём. Есть подозрение, что прерывание по завершению передачи (UART) происходит не всегда в середине стопового бита т.к. расчётная задержка (пол стопового бита + ещё немножко приводило к спорадическим сбоям при обмене) (По крайней мере на SiLabs ни когда не было проблем). Пришлось значительно увеличить задержку до переключения на приём. Кто нибудь может прокомментировать?
@zisoua
@zisoua 2 ай бұрын
Добрый день, подскажите, Вы сказали, что Ваш коллега сделал библиотеку ещё быстрее и удобнее - да и с физическим прерыванием. Есть ли возможность посмотреть на неё, или тут, как говорится, идее есть, а дальше идущий осилит? Просто ещё не настолько сильно хватает знаний, чтобы реализовать это самому, а интерес к этому растёт... Спасибо!
@VladimirMedintsev
@VladimirMedintsev 2 ай бұрын
Это собственная разработка и мы не распространяем ее исходные коды.
@DART2WADER
@DART2WADER 4 ай бұрын
37:41 Тут прекрасно тернарник зашёл бы: HAL_GPIO_WritePin(RL1_GPIO_Port, RL1_Pin, (ModbusDATA[3] & 0x0001) ? GPIO_PIN_SET : GPTO_PIN_RESET); А вообще в цикл по массиву с «тритами» (бит, порт, пин) я бы это запаковал. Нагляднее и меньше ошибок при написании. Кпипаста много раз стреляла))) 52:00 Я таймер на частоте ядра запускаю и сбрасываю счётчик перед исполнением кода, а затем в конце его вычитываю.
@silentage6310
@silentage6310 3 ай бұрын
и так бы сработало :) HAL_GPIO_WritePin(RL1_GPIO_Port, RL1_Pin, ModbusDATA[3] & 0x0001);
@GurikN1
@GurikN1 4 ай бұрын
каким образом UART - физический протокол передачи данных, похож на ModBus - коммуникационный протокол ?
@user-gj9mt2ju6x
@user-gj9mt2ju6x 3 ай бұрын
В каком смысле похож? Есть физическая часть, есть протокол обмена. Просто надо понимать, что одну и туже информацию вы передаёте различными способами. Я и по радиоканалу обмениваюсь информацией между двумя устройствами при помощи протокола ModBus. Всё соблюдается - адресация, контрольная сумма. Обработка ошибок, правда, написана под мои хотелки. Мне нравится, когда система помогает мне при поиске возможных неполадок. ))) За два года непрерывной работы ни разу не пригодилось, будем надеяться, что и в дальнейшем не понадобится.
@dimontipper8599
@dimontipper8599 3 ай бұрын
камень F303, FreeRTOS, модбас на два уарта, через LL DMA с использованием RTO (кэллбэк HALL прерывания RTO обрабатывает как ошибку, и запрещает прием по уарт) помимо модбаса на этих же уартах, одновременно крутится протокол IEC 60870-101.
@vladimirkomarov6250
@vladimirkomarov6250 4 ай бұрын
Всё ещё на STM ?) На китайцев не планируете переходить?
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
STM стали более доступными чем в кризис полупроводников. Зачем переходить если они есть и доступны?
@vladimirkomarov6250
@vladimirkomarov6250 4 ай бұрын
У меня на работе решили перейти. Там HAL-а нет, сижу все проекты переписываю с нуля.
@inventoruz
@inventoruz 3 ай бұрын
Могу я использовать один порт как ModBus slave а второй как ModBus master ? Этот библиотека может это сделать ? У меня есть другой библиотека но мне не нравится скорость этого библиотека.
@VladimirMedintsev
@VladimirMedintsev 3 ай бұрын
Можете.
@RomaNovikov1980
@RomaNovikov1980 4 ай бұрын
Я сюда ещё вернусь.
@michal621
@michal621 4 ай бұрын
о, я тоже эту библиотеку от alejoseb использую. Портируется легко. И приятна она тем, что есть в ней реализация мастера.
@facset1
@facset1 4 ай бұрын
Уважаемый Владимир, если не возражаете, для тех кто только заинтересовался modbus RTU на stm: на зарубежном сайте есть цикл статей по modbus RTU где разжованы все протоколы и алгоритмы общения по modbus, и как настроить stm в режиме Мастера или Ведомого, статьи как в текстовом виде с пояснениями и участками кода, так и с видео разбором алгоритмов работы автора статей, статьи можно найти по "Modbus #1. Read Holding and Input Registers". Да статьи и видео на Английском, но яндекс браузер творит чудеса перевода)))
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
Да с чего бы мне возражать, я всегда "за" поддержание инженерных кадров России.
@facset1
@facset1 4 ай бұрын
и да благодаря этим статьям смог запилить управление частотником KEB, от ПЛК Овен Мастер к stm32f103 Ведомому
@yohabi
@yohabi 4 ай бұрын
Modbus - наше всё
@user-ww8qi3tk7p
@user-ww8qi3tk7p 4 ай бұрын
Странно. Почему-то мой комментарий удален. Опишу тогда коротко суть. У ModbusRTU есть минус - последовательная работа с каждым подчиненным устройсвом с ожиданием ответа. Это может сказываться на времени полного опроса всех устройств при обрыве связи с одним устройством, зависит от таймаута на запросы и количество повторов. Если это критично, то стоит обратить внимание на ModbysTCP. Кроме того в сети с протоколом ModbusTCP возможно использования нескольких мастеров.
@user-ww8qi3tk7p
@user-ww8qi3tk7p 4 ай бұрын
Дополню, если кому-то интересен ModbusTCP. Есть ModbusTCP, есть ModbusRTU поверхности Ethernet.разница в том, что в первом случае запускается свой сервер для каждого мастера в сети и в шапке сообщения передается номер мастера. Во втором случае пакет ModbusRTU просто помещается в пакет TCP, обработчик один и мастер тоже один. Правда для всего этого нужны процессоры достаточно неслабые.
@VladimirMedintsev
@VladimirMedintsev 4 ай бұрын
Ютуб очень жестко удаляет комментарии со ссылками или со словами которые кажутся ему странными
@sergsapov2927
@sergsapov2927 3 ай бұрын
Если устройство отвалилось по таймауту - начинаем его опрашивать редко, например раз в 1 мин. Когда ответило - возвращаемся к нормальному частому опросу.
@SERVICE_KARELIA
@SERVICE_KARELIA 6 күн бұрын
На самом деле непонятно что означает RTU.
@VladimirMedintsev
@VladimirMedintsev 4 күн бұрын
Remote Terminal Unit, это же очевидно.
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 4,7 МЛН
터키아이스크림🇹🇷🍦Turkish ice cream #funny #shorts
00:26
Byungari 병아리언니
Рет қаралды 21 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 19 МЛН
Будни моего цеха!
7:54
Элемент Снаб
Рет қаралды 189
Modbus poll Tester
0:54
Electinfo Power system
Рет қаралды 2,8 М.
Микроконтроллер + modbus rtu + scada
6:28
Александр Писанец
Рет қаралды 50 М.
STM32: PWM шаг за шагом на STM32CubeIDE
10:51
G1Tech
Рет қаралды 27 М.
ТОП-5 культовых телефонов‼️
1:00
Pedant.ru
Рет қаралды 20 М.
Хотела заскамить на Айфон!😱📱(@gertieinar)
0:21
Взрывная История
Рет қаралды 3,1 МЛН
#miniphone
0:16
Miniphone
Рет қаралды 3,3 МЛН
WWDC 2024 Recap: Is Apple Intelligence Legit?
18:23
Marques Brownlee
Рет қаралды 6 МЛН