Просмотр полной версии : ПЧВ1 в сети RS-485 по ModBus
Заметил следующую особенность работы ПЧВ1. Он может произвольно остановиться если подключен к сети RS-485.
ПЧВ выключается (двигатель соответственно останавливается) даже если с самим ПЧВ обмена данными нет (подключен к сети, по которой опрашивается МВА, МДВВ, МЭ110-3М). Выключается, независимо от того запущен в ручном режиме или командным словом по RS-485. При этом, если был запущен в ручном режиме - переходит в режим дистанционного управления.
Если обмен данными только с ПЧВ (ничто больше по RS-485 не опрашивается), то проблем нет.
После тестов на тему что конкретно вызывает останов ПЧВ выяснилось, что проблема в длинных блоках данных. Я пытался одним запросом считать сразу все входы МВА (считывал 45 регистров с 3-го по 47-й). Сам МВА работал нормально, а вот ПЧВ выключался. Это было сделано с целью уменьшения времени обмена. Даже несмотря на то что в этих 45 регистрах есть лишняя информация, такой опрос занимает гораздо меньше времени, чем опрос каждого канала в отдельности.
Сейчас переделываю обмен с МВА так, чтобы входы опрашивались двумя запросами по 4 входа(регистры с 3 по 23 и с 27 по 47). Так вроде все работает стабильно. Но так, обмен длиться дольше.
По-видимому, у ПЧВ переполняется какой-нибудь буфер когда он получает длинную посылку.
Вот такие вот дела.
ПЛК100. Но опрашиваю не конфигуратором, а библиотекой owen_modbus.
ПЛК100. Но опрашиваю не конфигуратором, а библиотекой owen_modbus.
У ПЧВ в настройках есть параметр, который устанавливает слежение за наличием связи с Master. Если Master долго (время ожидания можно задать) не обращается к ПЧВ, то привод останавливает двигатель. Этот параметр можно заблокировать.
Точно причина не в этом. Во-первых, этот параметр не используется. Во-вторых, двигатель выключается даже, если запущен в ручном режиме(вообще без связи с мастером работает). В-третьих, ПЧВ выключается, если обмен идет только с ним и МВА. Мастер посылает запрос ПЧВ минимум 2 раза в секунду.
Не знаю какой размер входного буфера у ПЧВ, но вероятно он меньше, чем ~100 байт, которые он получает от МВА (когда МВА отвечает мастеру). Что при этом происходит - трудно предположить. Возможно, ноль оказывается там, где должен быть адрес устройства (в сообщении от МВА много нулей) и ПЧВ пытается это сообщение выполнить.
Но это все только мои догадки. Остается только факт, что невозможно за раз считать 45 регистров в сети, где есть ПЧВ.
Почему ПЧВ должен читать то, что предназначено МВА, если у них разные адреса в сети ? Попробуй поменять сетевой адрес ПЧВ. Также можно попробовать увеличить время тайм-аута у ПЧВ.
Он и не должен. Вот только сообщение, которое МВА посылает мастеру до него все равно доходит. И если это сообщение длинной 100 байт, а входной буфер ПЧВ - 50, то ХЗ что окажется в той ячейке памяти, где должен быть адрес. И если там ноль, то ПЧВ пытается это сообщение обработать как широковещательное.
Менять адрес и увеличивать таймаут пробовал. Более того, в любой конфигурации все работает правильно, если не считывать так много регистров за раз, и ошибка возникает только при увеличении числа регистров в одном запросе.
Если есть возможность то попробуй соединить в сеть ПЧВ, МВА и считать из МВА 45 регистров. ПЧВ должен работать на тех же настройках порта, естественно иметь другой сетевой адрес, но обмен данными с ним можно и не делать.
Широковещательный режим (0 в поле адреса) может задать только Master сети. Slave сети в пакете-отклике в поле адреса не может установить 0. 0 в поле адреса в пакете-отклике может появиться только в случае искажения поля адреса при передаче пакета. Задай адрес для МВА 55Hex, а для привода AAHex.
Конечно не может. Широковещательных запросов у меня вообще нет.
Широковещательных запросов у меня вообще нет.
Зачем тогда про него писал в посте #7 ?
Затем, что когда МВА посылает нормальный ответ (с обычным адресом), вследствие того что он слишком длинный, в буфере ПЧВ он искажается. Это искажение обусловлено не ошибками при передаче, а ошибками при приеме внутри ПЧВ. И ноль на месте адреса может возникнуть с гораздо большей вероятностью, чем 60 (это адрес ПЧВ). Поэтому про широковещательные сообщения я и написал. Это все случается при приеме, то есть до того как ПЧВ посмотрит ему это сообщение или не ему.
Затем, что когда МВА посылает нормальный ответ (с обычным адресом), вследствие того что он слишком длинный, в буфере ПЧВ он искажается. Это искажение обусловлено не ошибками при передаче, а ошибками при приеме внутри ПЧВ. И ноль на месте адреса может возникнуть с гораздо большей вероятностью, чем 60 (это адрес ПЧВ). Поэтому про широковещательные сообщения я и написал. Это все случается при приеме, то есть до того как ПЧВ посмотрит ему это сообщение или не ему.
ПЧВ не может принимать пакет с чужим адресом. Как только ПЧВ увидит, что адрес чужой, то сразу прекратит прием. Кстати, какой код ошибки выдает ПЧВ после останова двигателя ?
Никакого. Просто переходит из режима работа в режим останов. Если был запущен в ручном режиме, то еще и в режим дистанционного запуска.
Никакого. Просто переходит из режима работа в режим останов. Если был запущен в ручном режиме, то еще и в режим дистанционного запуска.
Если бы ПЧВ принял по сети что-то не то и по этой причине остановил двигатель, то он бы сформировал код ошибки.
Если бы ПЧВ принял по сети что-то не то и по этой причине остановил двигатель,.......
Именно это и происходит.
Повторюсь: ПЛК100 опрашивает МВА, ПЧВ(пока отключен от RS-485)запущен в ручном режиме и работает абсолютно нормально. Стоит к ПЧВ подключить провода, по которым идет обмен между ПЛК и МВА, ПЧВ останавливается через время от 10 сек до 2х минут.
Не означает ли это что он получил по сети что-то не то и остановил двигатель?
Не означает ли это что он получил по сети что-то не то и остановил двигатель?
А где тогда код ошибки ? У тебя сеть физически как организована ?
Сеть тут скорее не при чем. Тут скорее все происходит из-за электромагнитных помех. Ты в каких условиях проводишь свои эксперименты (цех, лаборатория) ? Отключи от привода все лишнее (кнопки, тумблеры, провода) кроме линии RS-485. На концах линии связи поставь терминальные резисторы. Приводом управляй исключительно по сети.
А где тогда код ошибки ?
Вы меня об этом спрашиваете?©
У тебя сеть физически как организована ?
В точности, как в инструкции!
Вы меня об этом спрашиваете?
А кого еще ? Если привод не формирует после остановки код ошибки, значит ничего крамольного из сети он не принимает.
Надо отцепить от ПЧВ все лишние сопли, произвести запуск по сети и читать словосостояние привода. Как только привод остановится в словосостоянии появится код ошибки.
Тут скорее все происходит из-за электромагнитных помех.
Значит если я по 20 регистров из МВА считываю, то электромагнитных помех нет - вообще все работает без проблем. А если 45, то автоматически появляются? Терминальные резисторы стоят. От ПЧВ и так отключено все, кроме двигателя. После останова привода слово состояния равно 515. То есть 000001000000011.
Karrimdra
10.03.2015, 22:08
Так чем всё закончилось?
PS Я на сколько понимаю тут намекали на возможную ошибку переполнения буфера (например так sql сервера ломались и браузеры). Когда нет контроля границ стека и сообщение пишеться полностью выходя за стек, то его излишки записываются куда угодно, например удачно подобрав длинный пакет можно закинуть исполняемый код в часть памяти программы на исполнение.
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.
kondor3000
23.05.2025, 09:20
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.
В ПЧВ1 нельзя на лету менять адрес, поэтому и не адресов в таблице. Да и в других ПЧВ так же, имхо.
Всем здравствуйте.
Подскажите, пожалуйста, где взять полную карту регистров для ПЧВ1. Адресов для группы "F01. Базовые настройки" в руководстве нет.
Мне нужно по RS485 изменять источник подачи сигнала запуска, источник задания частоты и, возможно, другие параметры группы F01.
Кроме того, в процессе работы может происходить переход на резервный ПЧВ, и тогда необходимо "на лету" поменять и адрес связи по протоколу Modbus (параметр F12.01).
Полная карта регистров очень бы помогла.
А зачем в основном ПЧ менять адрес при переходе на резервный?
Может резервному ПЧ присвоить свой адрес и по нему обращаться напрямую, без танцев с бубном?
Да и адреса параметров раздела F01.XX в инструкции вполне себе присутствуют...
https://owen.ru/forum/attachment.php?attachmentid=83944&stc=1&d=1747982242
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot