Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: управление Altivar 71 от Modicon M340
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем > Управление электроприводом
b-gor
Доброго времени суток, уважаемые специалисты и коллеги!
Суть вопроса в том, что ПЧ не принимает слово управления посылаемое от ПЛК по Modbus.
Вот что я делаю:
Соединю Modbus порт ПЛК с Modbus портом ПЧ (тот, что снизу) через Т-образный разветвитесь Modbus (в его свободный порт вставляем сетевой терминатор Modbus).
Далее ПЛК делаю Master’ом и составляю такую программу.

Т.е. для пересылки данных по сети использую функцию Write_var.
Далее я обратился к русскому руководству «Управление преобразователем частоты ATV71 по коммуникационной сети в приводах подъемных механизмов». И для работы ПЧ по сети решил использовать профиль Ввода/вывода (I/O Profile) для 2-ух проводного управления в котором 16-ти битное слово управления полностью конфигурируемое, за исключением бита 0 – это движение вперед по умолчанию.
Соответственно параметрирую ПЧ (через ПО Power Suit):
В разделе Mobdus configuration выставляю slave адрес ПЧ = 3 и параметры сети такие же, как параметры в контроллере:
TBR = 19200 bps – скорость сети.
TFO = 8bit even parity 1stop bit – формат сети.

В разделе Control command:
CHCF = IO – профиль В/В.
CCS = Cd1 – канал управления 1 активен.
Cd1 = Mdb – канал управления 1 – встроенный Mobdus.

Также пробовал указать еще и канал задания по Modbus:
FR1 = Mdb.

С ПЧ всё, а биты слова управления я не конфигурировал. Для начала решил просто проверить работу по биту 0, который присвоен по умолчанию на вращение вперед.
Далее возвращаемся к ПЛК:
Я создал массив из переменных типа INT.
Т.к. мы посылаем всего одно слово управления из 16ти бит, то из массива следовательно я буду посылать одну переменную через функцию Write_var. В нее я записываю через функцию MOVE значение 16#FFFF, что соответствует 2# 1111 1111 1111 1111. Получается, что в момент пересылки единица на бит 0 слова управления по любому должна прийти smile.gif

Далее все подключено на стенде в живую. Я форсирую переменную knopka и вот что наблюдаю: На экране ПЧ загорается точка у надписи MOD (Это, как я понимаю, означает, что что-то по Modbus’у приходит). Но ПЧ никак не реагирует. Более того, если наблюдать через Power Suit в specific panels раздел modbus diagnostics, то параметр M1CT Mdb NET proc. frames = 0 и никак не шевелится. Значит, как я понимаю, ничего на ПЧ не приходит sad.gif

Возвращаюсь опять к ПЛК и смотрю, что получаю в массиве rpt который привязан к параметру GEST функции Write_var. Переменные массива вижу следующие:
[0] в момент работы функции меняется с 0 до 30000 где-то.
[1] = 0
[2] = 0
[3] = 2

Вот такое описание моих действий. И вопросы:
1. Где и что я делаю не так и почему же ПЧ не принимает слово управления? Нужен какой-то особый формат может, а не просто значение 16#FFFF?
2. Еще встречал про упоминание каких-то коммуникационных переменных, что это и как его едят? Или в данном случае оно не обязательно?
3. Для начала решил освоить именно Modbus, потом и CANopen попробую, будет ли принципиальное отличие? Т.к. я понял профиль ввода/вывода и с тем и с тем может работать.

Я работал до этого с Сименсом: ПЛК Simatic, ПЧ Sinamics и Simovert, так там проще вроде было: указываешь тип и длину телеграммы, забиваешь в соответствии с описанием или конфигурированием слова управления и шлешь по адресу, и все доходит, а у шнайдера в чем фишка?

Спасибо за внимание и ответы. С уважением, Игорь.
poludenny
В меню [МОНИТОРИНГ] можно посмотреть слово управления, которое приходит по модбасу, переменные коммуникационного сканера. Я не совсем пойму у вас связи вообще нет, или не можете заставить его крутиться. Считывать переменные получается?

И еще такой момент, изменение коммуникационных параметров вступает в силу после снятия питания.
b-gor
К сожалению и слово никакое не приходит. Но когда я в программе запускаю функцию обмена, то на маленькой панельки Altivara загорается точка MOD. А если выключить обмен - она гаснет. Как я понимаю данные на ПЧ идут но только не того формата, то ли что... Альтивар их воспринимать никак не хочет.
А опрашивать я не пробовал. Завтра уже попробую.


b-gor
Дальнейшее изучение проблемы проливает свет на ситуацию. Нашел в описании структуру модбаса



И понял, что посылать надо получается другой функцией, а именно есть такая OUT_IN_MBUS: Modbus Communication Function



Но вот новая проблема, для того, чтобы ей подсунуть адрес слейв устройства, нужно использовать функцию ADDR, которая адрес в формате string разлаживает в массив ADDR_TYPE. А у нас контроллер Modicon M340 и так ТАКОЙ ФУНКЦИИ В БИБЛИОТЕКЕ НЕТ! Почему??? Если создавать проект под Premium контроллер - там есть, а тут нет... Это что, контроллер не способен строку в массив разложить? Хотя ведь функция ADDM, что я до этого использовал есть. Есть идея посмотреть как в симуляторе для Premium ADDR заполняет массив и подсунуть его уже для OUT_IN_MBUS в M340. Но это же не дело, ерунда какая-то так делать... У кого какие мысли и подсказки будут? На CANopen пока не хочу переключаться, интересно по Модбасу подключить smile.gif
b-gor
Эх поспешил, почитав по подробней описание понял, что OUT_IN_MBUS мне не подходит
turysh
Преобразователи Сименса Вы, наверное, по Рrofibus'у гоняли от контроллера того же производителя. Здесь же, очевидно, все-таки другая среда программирования, да и интерфейс самого ПЧ существенно отличается. Какую точку Вы разглядели на панели управления, если там дисплей? Или его снимали на время? На сайте schneider-electric.com посмотрите коммуникационные переменные, там подробно описана адресация и особенности, там же посмотрите .eds файл для именно Вашей версии ПЧ, поскольку они должны жестко соответствовать друг другу. По умолчанию в Unity только 1.1, если не ошибаюсь. На русскоязычном сайте этого может и не быть. А самое простое, если хотите понять принципы управления и точную адресацию для Альтиваров, поуправляйте не контроллером, а с ПК, используя Modbus master. Это и modscan, и mbus, да много чего в сети есть.
b-gor
Разобрался, все так, но только в функцию Write_var, на вход NUM нужно писать адрес нужного параметра (указаны в документации "коммуникационные переменные"), например адрес слова управления 8501, а задания частоты 8502. Все довольно просто когда разберешься и есть стенд и свободное время чтобы это все покрутить smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.