1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Sinamics G120 не принимает уставку частоты

Ответить
Аватара пользователя

Автор темы
GrayCat
здесь недавно
здесь недавно
Сообщения: 95
Зарегистрирован: 25 янв 2018, 10:04
Имя: Александр
Страна: Украина
город/регион: южный
Благодарил (а): 4 раза
Поблагодарили: 26 раз

Sinamics G120 не принимает уставку частоты

Сообщение GrayCat »

Приветствую, сименсоводы!

Спасибо за помощь со считыванием "одометра" через интегрирование скорости, чуть позже внедрю эту фишку в программу. Ну а пока есть более насущный вопрос.

"Мозги" типа CU240E-2, подключение по RS-485, протокол ModBus, на линии несколько частотников. С коммуникацией всё в порядке, циклический опрос статуса и нагрузки - без ошибок. Команды на включение/выключение (управляющее слово STW1 в Modbus-регистре 40100, то бишь №99) посылаются и исполняются чётко.

А вот посылка уставки частоты в Modbus-регистр 40101 (т.е. №100) - срабатывает как-то через раз! Соответственно, периодически возникает ситуация, когда в ответ на команду "Ехать!" частотник радостно сообщает "Ага, поехали!", но всё стоит на месте, ибо заданная частота, с точки зрения привода, равна нулю! :o Причём, в большинстве-то случаев она срабатывает, а вот иногда и нет.

Более того. Посылка этой уставки в нашей программе вставлена несколько раз: перед проверкой всех датчиков механизма, потом перед сигнальным звонком, после звонка, перед непосредственно пуском, и после успешного запуска. В драйвере протокола Modbus выполнение модбасовской "функции Fn06", то бишь запись в Holding Registers, повторяется несколько раз до получения подтверждающего ответа от слейва. И, как я уже говорил, посылаемые той же самой шестой функцией Modbus команды на старт/стоп проходят исправно. То есть, проблема почти наверняка не в самой коммуникации.

Похоже на то, что сам частотник игнорирует принятое в регистр значение.

Кто-нибудь сталкивался с таким? Может, где-то в каких-то состояниях он и не должен воспринимать выставленную частоту? Или, может, её нужно задавать в пределах одной команды с "пуском", функцией 16 записывать сразу 2 регистра, благо они подряд идут? В документации (переводной на английский с немецкого, ага) как-то всё это очень куцо описано...
Gray©at.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

Sinamics G120 не принимает уставку частоты

Сообщение Михайло »

Скорее всего привод находится в режиме идентификации параметров двигателя. В этом режиме игнорится задание скорости, а по команде ON (ПУСК) инициируется автонастройка привода по особому алгоритму, когда привод сам там чего-то делает с двигателем, идентифицирует его. Примерно через полминуты-минуту удержания команды ON автонастройка заканчивается и после этого "автонастроенный" привод работает как миленький.
В чём ваша ошибка? Вам следует после окончания автонастройки (когда всё работает хорошо) сделать аплоад этих настроек. Вместе с этим аплоадом режим идентификации будет окончательно отключен, а оптимальные параметры сохранены в проекте.
Это ещё не всё! Нужно снова зайти в онлайн и загрузить проект с оптимизированными настройками в привод, чтобы всё это было уже прописано раз и навсегда в энергонезависимой памяти частотника!
Сейчас у вас в энергонезависимой памяти прописано - "начинай идентикацию двигателя". Как только отключаете питание модуля управления CU, он сразу забывает о проведённой идентификации.

Отправлено спустя 9 минут 19 секунд:
Важно понимать, что существует три состояния: offline (проект), online (RAM, оперативка), online (ROM, энергонезависимая память). Это главное.
Второе - надо понимать, что когда где-то меняются настройки, то это лишь только в одном из типов памяти. Надо уметь понимать, в какой памяти настройки поменялись, а в какой нет. Далее надо понять, как скопировать настройки из одной памяти в другую.
Аватара пользователя

Автор темы
GrayCat
здесь недавно
здесь недавно
Сообщения: 95
Зарегистрирован: 25 янв 2018, 10:04
Имя: Александр
Страна: Украина
город/регион: южный
Благодарил (а): 4 раза
Поблагодарили: 26 раз

Sinamics G120 не принимает уставку частоты

Сообщение GrayCat »

Нет никакого "проекта".

Есть наша программа, управляющая несколькими частотниками по ModBus.

Программа. Не "среда", не "SCADA", не "OPC" или ещё какие-нибудь страшные слова. Ну, знаете, пишете исходник на C, компилируете, получается исполняемый файл - представляете, сразу в коде процессора! Вся "настройка" частотника - исключительно через панель оператора, BOP-2. Программа даёт частотнику уставку частоты (функцией Fn06 модбаса), и команду на пуск и стоп - с помощью той же функции, но через другой регистр.

Ладно, я уж не стану жаловаться на то, что этот дорогущщий ящик не способен запоминать частоту, выставленную оператором на панели в ручном режиме - после каждого включения или перехода в авто-режим уставка обнуляется! Но, блин, сделать настолько неудобную систему автоповтора кнопок "+"/"-" - это, видимо, фрицы мстят за нашу победу :o . Жмёшь - оно начинает тикать с тысячных долей, потом как-то без предупреждения глядь - а там уже миллионы прыгают! И вот это вот несколько минут елозишь туда-сюда, пока практически случайно не попадёшь в нужное значение.

И вдобавок ко всему, ещё и вот эта вот проблема с Modbus. Мало того что контроллер ДЕСЯТЬ МИЛЛИСЕКУНД обдумывает ответ на простейший запрос текущего статуса. Да ёлы-палы, в 21 веке копеечные микроконтроллеры отдают десяток регистров за половину миллисекунды!!! А тут металлолом за -надцать тысяч евро - и десять миллисекунд - вечность по меркам электроники. У них там что, реально релейная схема на коммуникационном порту?! Декадно-шаговые искатели?!

Так вдобавок к этому, ещё и по непонятным причинам иногда отказывается принимать команду "записать значение в регистр". Вот только что принимал - и вдруг отказывается. Несколько раз подряд. Пихаешь ещё раз - и о чудо, прошло! Естественно, все "автонастройки двигателя" уже выполнены, при ручных пусках с панельки. И привод запускается по команде с компа, просто не на той частоте которую тот ему говорит! Вот когда не надо - он эту уставку помнит.

С точки зрения драйвера протокола Modbus, это выглядит так: мастер посылает команду с функцией Fn06 - записать значение в регистр №100. По стандарту, слейв обязан либо вообще проигнорировать этот пакет, если CRC не сошлась, либо ответить с кодом ошибки, если было некорректное обращение к регистру, либо, если всё в порядке - вернуть копию исходного пакета. Естественно, если мастер не получает подтверждения от слейва, пытается повторить транзакцию до 8 попыток. На самом деле, проиходит вот что: принимается один-единственный байт - и далее заканчивается тайм-аут коммуникации. Выставлял тайм-ауты 70 мс, 100 мс, 150 мс - это для скорости 115200 уже просто "бесконечность" - ничего не приходит. Дальше мы ждать уже не можем, надо опрашивать остальные частотники на линии. И всё, мы на панельке частотника видим, что уставка не изменилась.

Или изменилась.

Никакой системы в том, будет ли принято значение уставки или нет, обнаружить не удалось.

Вот отсюда и вопрос: кто виноват? Может, нам надо воспользоваться функцией Fn16 и отправлять в едином пакете уставку и команду? Или, может, перед подачей уставки надо ему как-то "мозги прочистить"?

Самое обидное, что на стенде с мелким частотником, который нам предоставили для отладки программ, всё работало отлично, без нареканий. А на реальном объекте вылезли всякие каки.

Типа того, что в документации сказано, что мастеру должны отдаваться текущие значения аналоговых выходов AO0 и AO1 через Modbus-регистры 219 и 220 - и они отдаются частотником на стенде, а вот на объекте - фиг вам, нет таких регистров!

Не того мы ожидали от хвалёного "немецкого" железа...
Gray©at.
Аватара пользователя

Автор темы
GrayCat
здесь недавно
здесь недавно
Сообщения: 95
Зарегистрирован: 25 янв 2018, 10:04
Имя: Александр
Страна: Украина
город/регион: южный
Благодарил (а): 4 раза
Поблагодарили: 26 раз

Sinamics G120 не принимает уставку частоты

Сообщение GrayCat »

Ого, вот это меня пропёрло вчера. Прошу прощения за эмоциональность, но по сути всё написал так как есть.
Gray©at.
Аватара пользователя

Автор темы
GrayCat
здесь недавно
здесь недавно
Сообщения: 95
Зарегистрирован: 25 янв 2018, 10:04
Имя: Александр
Страна: Украина
город/регион: южный
Благодарил (а): 4 раза
Поблагодарили: 26 раз

Sinamics G120 не принимает уставку частоты

Сообщение GrayCat »

Так вон оно чё, Михалыч!... :ges_hmm:

Получается, в нашей системе безвентиляторный "кирпич" Advantech подключается к линии связи через преобразователь интерфейсов RS-232 < - > RS-485 типа ADAM-4520. Естественно, в "Адаме" переключатель скорости был выставлен на тот baudrate, который используется - 115200.

НО.

У Сименса UART стандартно сконфигурирован на 8-E-1, т.е. с чётностью. А те ADAM-4520, судя о всему, рассчитаны на работу БЕЗ чётности. И они, выходит, при передаче выключают свой драйвер после 10-го бита каждого байта, хотя там следует ещё 11-й (по осциллографу чётко видно) ! Вот и получается, что на некоторых пакетах происходит порча информации, и слейвы, соответственно, такие пакеты игнорят.

Причём, как я уже писал, в основном-то коммуникация идёт вполне нормально, без ошибок всё. И только когда в пакете попадаются байты с несколькими "единицами" подряд, типа, например, 0xFC или 0x3F, стабильно происходит сбой. В "нормальных" командах и в опросе статуса таких не попадалось, а вот при посылке уставки частоты - некоторые конкретные значения приводили к такому вот эффекту.

Перестроили "Адам" на скорость 19200 - он теперь держит передатчик включённым долше положенного на 3 байтовых интервала, но это ведь стандартом Modbus-RTU так и положено. Теперь всё работает чётко.

И всё из-за дебильной проверки чётности, которая, при наличии полноценной CRC-16 в пакетах, ни нафик не нужна! :ges_down:
Gray©at.
Ответить

Вернуться в «Приводная техника (Sinamics, Micromaster, Masterdrive, Simoreg, Simotics)»