PDA

Просмотр полной версии : ПЧВ1 в сети RS-485 по ModBus



izwerg
05.12.2014, 17:41
Заметил следующую особенность работы ПЧВ1. Он может произвольно остановиться если подключен к сети RS-485.
ПЧВ выключается (двигатель соответственно останавливается) даже если с самим ПЧВ обмена данными нет (подключен к сети, по которой опрашивается МВА, МДВВ, МЭ110-3М). Выключается, независимо от того запущен в ручном режиме или командным словом по RS-485. При этом, если был запущен в ручном режиме - переходит в режим дистанционного управления.

Если обмен данными только с ПЧВ (ничто больше по RS-485 не опрашивается), то проблем нет.

После тестов на тему что конкретно вызывает останов ПЧВ выяснилось, что проблема в длинных блоках данных. Я пытался одним запросом считать сразу все входы МВА (считывал 45 регистров с 3-го по 47-й). Сам МВА работал нормально, а вот ПЧВ выключался. Это было сделано с целью уменьшения времени обмена. Даже несмотря на то что в этих 45 регистрах есть лишняя информация, такой опрос занимает гораздо меньше времени, чем опрос каждого канала в отдельности.

Сейчас переделываю обмен с МВА так, чтобы входы опрашивались двумя запросами по 4 входа(регистры с 3 по 23 и с 27 по 47). Так вроде все работает стабильно. Но так, обмен длиться дольше.

По-видимому, у ПЧВ переполняется какой-нибудь буфер когда он получает длинную посылку.

Вот такие вот дела.

Вольд
05.12.2014, 17:55
А кто Master сети ?

izwerg
05.12.2014, 18:01
ПЛК100. Но опрашиваю не конфигуратором, а библиотекой owen_modbus.

Вольд
05.12.2014, 20:51
ПЛК100. Но опрашиваю не конфигуратором, а библиотекой owen_modbus.
У ПЧВ в настройках есть параметр, который устанавливает слежение за наличием связи с Master. Если Master долго (время ожидания можно задать) не обращается к ПЧВ, то привод останавливает двигатель. Этот параметр можно заблокировать.

izwerg
07.12.2014, 13:17
Точно причина не в этом. Во-первых, этот параметр не используется. Во-вторых, двигатель выключается даже, если запущен в ручном режиме(вообще без связи с мастером работает). В-третьих, ПЧВ выключается, если обмен идет только с ним и МВА. Мастер посылает запрос ПЧВ минимум 2 раза в секунду.
Не знаю какой размер входного буфера у ПЧВ, но вероятно он меньше, чем ~100 байт, которые он получает от МВА (когда МВА отвечает мастеру). Что при этом происходит - трудно предположить. Возможно, ноль оказывается там, где должен быть адрес устройства (в сообщении от МВА много нулей) и ПЧВ пытается это сообщение выполнить.
Но это все только мои догадки. Остается только факт, что невозможно за раз считать 45 регистров в сети, где есть ПЧВ.

Вольд
07.12.2014, 13:40
Почему ПЧВ должен читать то, что предназначено МВА, если у них разные адреса в сети ? Попробуй поменять сетевой адрес ПЧВ. Также можно попробовать увеличить время тайм-аута у ПЧВ.

izwerg
08.12.2014, 13:19
Он и не должен. Вот только сообщение, которое МВА посылает мастеру до него все равно доходит. И если это сообщение длинной 100 байт, а входной буфер ПЧВ - 50, то ХЗ что окажется в той ячейке памяти, где должен быть адрес. И если там ноль, то ПЧВ пытается это сообщение обработать как широковещательное.
Менять адрес и увеличивать таймаут пробовал. Более того, в любой конфигурации все работает правильно, если не считывать так много регистров за раз, и ошибка возникает только при увеличении числа регистров в одном запросе.
Если есть возможность то попробуй соединить в сеть ПЧВ, МВА и считать из МВА 45 регистров. ПЧВ должен работать на тех же настройках порта, естественно иметь другой сетевой адрес, но обмен данными с ним можно и не делать.

Вольд
08.12.2014, 13:53
Широковещательный режим (0 в поле адреса) может задать только Master сети. Slave сети в пакете-отклике в поле адреса не может установить 0. 0 в поле адреса в пакете-отклике может появиться только в случае искажения поля адреса при передаче пакета. Задай адрес для МВА 55Hex, а для привода AAHex.

izwerg
08.12.2014, 15:01
Конечно не может. Широковещательных запросов у меня вообще нет.

Вольд
08.12.2014, 15:08
Широковещательных запросов у меня вообще нет.
Зачем тогда про него писал в посте #7 ?

izwerg
08.12.2014, 15:19
Затем, что когда МВА посылает нормальный ответ (с обычным адресом), вследствие того что он слишком длинный, в буфере ПЧВ он искажается. Это искажение обусловлено не ошибками при передаче, а ошибками при приеме внутри ПЧВ. И ноль на месте адреса может возникнуть с гораздо большей вероятностью, чем 60 (это адрес ПЧВ). Поэтому про широковещательные сообщения я и написал. Это все случается при приеме, то есть до того как ПЧВ посмотрит ему это сообщение или не ему.

Вольд
08.12.2014, 15:20
Затем, что когда МВА посылает нормальный ответ (с обычным адресом), вследствие того что он слишком длинный, в буфере ПЧВ он искажается. Это искажение обусловлено не ошибками при передаче, а ошибками при приеме внутри ПЧВ. И ноль на месте адреса может возникнуть с гораздо большей вероятностью, чем 60 (это адрес ПЧВ). Поэтому про широковещательные сообщения я и написал. Это все случается при приеме, то есть до того как ПЧВ посмотрит ему это сообщение или не ему.
ПЧВ не может принимать пакет с чужим адресом. Как только ПЧВ увидит, что адрес чужой, то сразу прекратит прием. Кстати, какой код ошибки выдает ПЧВ после останова двигателя ?

izwerg
08.12.2014, 15:57
Никакого. Просто переходит из режима работа в режим останов. Если был запущен в ручном режиме, то еще и в режим дистанционного запуска.

Вольд
08.12.2014, 16:09
Никакого. Просто переходит из режима работа в режим останов. Если был запущен в ручном режиме, то еще и в режим дистанционного запуска.
Если бы ПЧВ принял по сети что-то не то и по этой причине остановил двигатель, то он бы сформировал код ошибки.

izwerg
08.12.2014, 16:20
Если бы ПЧВ принял по сети что-то не то и по этой причине остановил двигатель,.......

Именно это и происходит.
Повторюсь: ПЛК100 опрашивает МВА, ПЧВ(пока отключен от RS-485)запущен в ручном режиме и работает абсолютно нормально. Стоит к ПЧВ подключить провода, по которым идет обмен между ПЛК и МВА, ПЧВ останавливается через время от 10 сек до 2х минут.
Не означает ли это что он получил по сети что-то не то и остановил двигатель?

Вольд
08.12.2014, 16:26
Не означает ли это что он получил по сети что-то не то и остановил двигатель?
А где тогда код ошибки ? У тебя сеть физически как организована ?

Вольд
08.12.2014, 16:57
Сеть тут скорее не при чем. Тут скорее все происходит из-за электромагнитных помех. Ты в каких условиях проводишь свои эксперименты (цех, лаборатория) ? Отключи от привода все лишнее (кнопки, тумблеры, провода) кроме линии RS-485. На концах линии связи поставь терминальные резисторы. Приводом управляй исключительно по сети.

izwerg
08.12.2014, 17:06
А где тогда код ошибки ?
Вы меня об этом спрашиваете?©


У тебя сеть физически как организована ?
В точности, как в инструкции!

Вольд
08.12.2014, 18:08
Вы меня об этом спрашиваете?
А кого еще ? Если привод не формирует после остановки код ошибки, значит ничего крамольного из сети он не принимает.
Надо отцепить от ПЧВ все лишние сопли, произвести запуск по сети и читать словосостояние привода. Как только привод остановится в словосостоянии появится код ошибки.

izwerg
09.12.2014, 13:36
Тут скорее все происходит из-за электромагнитных помех.
Значит если я по 20 регистров из МВА считываю, то электромагнитных помех нет - вообще все работает без проблем. А если 45, то автоматически появляются? Терминальные резисторы стоят. От ПЧВ и так отключено все, кроме двигателя. После останова привода слово состояния равно 515. То есть 000001000000011.

Karrimdra
10.03.2015, 22:08
Так чем всё закончилось?

PS Я на сколько понимаю тут намекали на возможную ошибку переполнения буфера (например так sql сервера ломались и браузеры). Когда нет контроля границ стека и сообщение пишеться полностью выходя за стек, то его излишки записываются куда угодно, например удачно подобрав длинный пакет можно закинуть исполняемый код в часть памяти программы на исполнение.

AlexVi
23.05.2025, 08:47
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.

kondor3000
23.05.2025, 09:20
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.

В ПЧВ1 нельзя на лету менять адрес, поэтому и не адресов в таблице. Да и в других ПЧВ так же, имхо.

CleanS
23.05.2025, 09:36
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.

А зачем в основном ПЧ менять адрес при переходе на резервный?
Может резервному ПЧ присвоить свой адрес и по нему обращаться напрямую, без танцев с бубном?

Да и адреса параметров раздела F01.XX в инструкции вполне себе присутствуют...
https://owen.ru/forum/attachment.php?attachmentid=83944&stc=1&d=1747982242