Codesys управление частотными преобразователями

Codesys управление частотными преобразователями

  • Value (REAL) — текущее значение контролируемой величины, получаемое с одного или нескольких датчиков (температуры, давления, перепада и т.д).
  • SetPoint (REAL) — уставка. Задается в единицах измерения контролируемой величины.
  • P, I, D (REAL, INT, INT) — значения пропорционального, интегрального и дифференциального коэффициентов (условное названия, т.к. I и D на самом деле времена). По умолчанию D=0, поэтому вход можете оставить пустым. При увеличении P или I выход будет изменяться быстрее.
  • MinFreq (REAL) — минимальное значение выхода Frequency . Определяется способом передачи сигнала. Значение обычно делают соответствующим 20-25% от максимальной частоты. При более низкой частоте производительность двигателя обычно существенно падает, токи возрастают и двигатель плохо охлаждается.
  • MaxFreq (REAL) — максимальное значение выхода Frequency. Также зависит от того как передаётся сигнал на ПЧ (если с помощью токового выхода 4-20 мА, то MaxFreq=20).
  • LowFreq (REAL) — значение выхода ПИД-регулятора, ниже которого запускается таймер сна. По умолчанию 12.
  • LowTime (TIME) — время по истечении которого сработает сигнал «сон» (Sleep). По умолчанию 2 минуты .
  • DirectLogic (BOOL) — флаг прямого/обратного управления. При обратном управлении если значение контролируемой величины ниже уставки, выходная частота уменьшается, и наоборот.
  • Frequency (REAL) — выход блока. Значение, определяющее с какой частотой должен вращаться двигатель. В зависимости от способа передачи сигнала(аналоговые выходы по напряжению и току, цифровые интерфейсы) от ПЛК к частотному преобразователю выход может принимать различные значения (от MinFreq до MaxFreq) и иметь различный физический смысл.
  • Sleep (BOOL) — выход «сон». Означает, что выходной сигнал ПИД был ниже LowFreq в течение LowTime.
Читайте также:  Частотный преобразователь s2000a инструкция

Обратная логика ( DirectLogic = FALSE ) используется, например, когда частотник управляет двигателем насоса, который обеспечивает расхолодку, т.е. он добавляет в подачу охлажденную воду из обратки и, разгоняясь, уменьшает температуру подачи.

Выход блока Frequency я обычно масштабирую в нужный выходной сигнал уже вне блока ПИД-регулятора, а MinFreq и MaxFreq задаю равными 10 и 50 (в этом случае можете оставить входы пустыми, эти значения стоят по умолчанию).

На практике блок показал себя удобнее и качественнее встроенного в частотник ПИД-регулятора. К тому же ПИД в Hyundai N700E (и во всех других моделях Hyundai) нельзя настроить на обратное управление (положительную обратную связь).

Источник

Codesys управление частотными преобразователями

Несмотря на схемотехнические и программные баги у Hyundai в реализации интерфейса и протокола, я запустил полное управление по RS-485 и всё неплохо работает. В связи с невозможностью изменения уставки по интерфейсу, пришлось отказаться от ПИД-регуляторов, встроенных в частотные преобразователи, в пользу регуляторов программно реализованных на ПЛК. Хотя отказаться пришлось бы в любом случае, т.к. лишние провода теперь не нужны и отпала необходимость в подключении датчика к ПЧ для реализации обратной связи. Да и программное управление частотой ПЧ открывает множество возможностей, таких как ручное управление частотой с панели или визуализации, режим прокрутки с панели для проверки работоспособности электродвигателя, периодическая автоматическая прокрутка двигателя для защиты от заклинивания.

Физическое подключение

К клемме RXP прикручиваем A, к RXNB. Собственно всё.
Если планируется подключать несколько преобразователей в одну сеть, то сначала необходимо аккуратно выпаять терминальные резисторы на плате управления.

Подключение в конфигурации ПЛК (для CoDeSys 2.3)

Моменты

Остался один неприятный момент: если вы хотите изменять через RS-485 параметры A01 и A02 (источники задания частоты и пуска), то необходимо задействовать один дискретный выход и соответственно два провода на каждый частотник в сети для реализации сброса этого частотника через вход на клеммах. Дело тут в наложении двух непродуманных особенностей — со стороны ПЛК и со стороны преобразователя Hyundai:

  1. В программах для ОВЕН ПЛК я использую конфигуратор CoDeSys для реализации связи через Modbus. При подаче питания на ПЛК, ещё до запуска основной программы начинается пересылка по интерфейсам того, что хранится в модулях Modbus, а именно — отсылка всем slave-устройствам нулей по указанным адресам регистров.
  2. В Hyundai N700E при изменении (только по интерфейсу RS-485) параметра, отвечающего за источник команды «пуск» (A02), на 0 (пуск от кнопки «run» на операторской панели) преобразователь частоты автоматически запускается и остановить его по интерфейсу RS-485 — невозможно, пуск/останов ведь теперь осуществляются через панель, а в преобразователе стоит запрет на изменение параметров во время управления электродвигателем. Замкнутый круг.

Получается так, что при первом запуске ПЛК (после пропадания напряжения на объекте, например) в частотник передается сигнал, изменяющий параметр A02 на 0, частотник запускается и всё. его не остановить. Только подачей логической единицы на клемму N700E, настроенную на сброс. А уже после остановки необходимо изменять A02.

В итоге — помимо двух проводов RS-485 необходимо кидать ещё два и задействовать драгоценный дискретный выход ПЛК. Решить проблему можно проще — отказаться от использования Modbus из конфигурации и использовать библиотечный. Но до этого руки всё не дойдут — как дойдут напишу пост об этом.

Выводы

Выводить особо нечего) Подключается всё очень просто — прикручиванием двух проводов, настраивается интерфейс стандартно, без сложностей с Modbus-командами и регистрами. Описанные проблемы очень специфичны и решаемы, решения их я описал как можно подробнее.

Из полезностей предлагаю вам небольшой список параметров частотника Hyundai N700E (актуально и для моделей N50, N100) и их адреса для управления через интерфейс RS-485 по протоколу Modbus RTU. Некоторые параметры не описаны в документации, а найдены вручную методом проб и ошибок.

если табличка криво отображается — уменьшите масштаб отображения в браузере — Ctrl+колесико вниз

Источник

Codesys управление частотными преобразователями

Блок не содержит энергонезависимых переменных (т.е. сам не является энергонезависимым), поэтому переключение между насосами происходит не по наименьшей наработке, а просто через равные промежутки времени.
Блок подходит для управления как тремя, так и двумя насосами, а также максимально просто расширяется до любого необходимого числа насосов, т.к. сам алгоритм переключения привязан не к конкретному числу, а к переменной N.
При возникновении аварии насос блокируется до принудительного сброса аварии.

Входы:
EN (BOOL) — запуск управлением насосами. По умолчанию = TRUE.
SW (BOOL) — принудительное переключение на следующий насос. Происходит по фронту сигнала.
PT (TIME) — период переключения насосов.
ET0 (TIME) — начальное время счета таймера. Необходимо для реализации энергонезависимого таймера.
MAIN (BYTE) — номер запускаемого после включения ПЛК насоса. По умолчанию = 1. Также может служить для энергонезависимой работы.
ALx (BOOL) — аварийный сигнал с насоса №x. Стоит таймер с задержкой активации в 0,5 секунды.
RSx (BOOL) — сигнал сброса аварии с насоса № x .

Выходы:
Px (BOOL) — запуск насоса №x.
ERRx (BOOL) — насос №x в аварийном состоянии. Либо имеется текущая авария, либо не сброшена старая.
CUR (BYTE) — номер текущего работающего насоса. Может использоваться для организации энергонезависимой работы.
ET (TIME) — отсчитанное на текущий момент таймером время.

Применения: энергонезависимая работа
Всё необходимое для такой работы реализовано в алгоритме. Для работы необходимо лишь задать пару RETAIN-переменных, либо в программе, где объявлен функциональный блок «PUMPS» (например в PLC_PRG), либо в области глобальных переменных, либо даже в области конфигурации Modbus (Slave). Это переменные i (номер текущего насоса) и et0 (время отсчитанное таймером):

Их необходимо привязать ко входам MAIN и ET0, и выходам CUR и ET соответственно (см. скриншот в начале поста). Таким образом, во время работы блока каждый цикл в наши энергонезависимые переменные будут записываться актуальные значения, и они сохраняться даже после пропадания питания. А в момент подачи питания в самом первом цикле они будут считаны функциональным блоком и работа возобновиться с работающего на момент сброса питания насоса и таймер будет считать с того же места, на котором остановился.

Применения: два насоса
Для работы только с двумя насосами необходимо просто-напросто оставить вход AL3 пустым. Функциональный блок при этом будет «думать», что третий насос находится всё время в аварии.

Заключение и исходный код
Также, если в работе останется только один насос (два других в аварии), то таймер прекратит отсчет и сбросится, но автоматически начнет отсчет после сброса аварии одного из насосов. Если нужно будет запустить выведенный из аварии насос — подайте TRUE на вход switch.

Исходный код функционального блока написан на ST, довольно прост и занимает меньше 30 строк. В программе для автоматизированных тепловых пунктов используются гораздо более сложные алгоритмы, в частности с управлением частотными преобразователями по интерфейсу RS-485.

Источник

Управление частотным преобразователем по Modbus

2021-05-25 Промышленное 3 комментария

В данной статье рассмотрим, как настроить управление частотным преобразователем по сети Modbus RTU, на примере преобразователя Danfoss VLT Micro Drive и ПЛК Segnetics Pixel 2511.

И сразу надо отметить, что реализация связи частотного преобразователя с ПЛК возможна несколькими способами, одним из которых является соединение по коммуникационной шине.

Преимуществом такого способа управления по сравнению с управлением через дискретные, или аналоговые сигналы, является существенная экономия на проводах, кабеле, так как в данном случае достаточно будет витой пары, плюс экономия аппаратных средств контроллера, так как нет необходимости задействовать дополнительные входы/выходы. Кроме того, сокращается время на монтаж.

Поэтому данный способ управления вполне оправдан и часто используется во многих системах АСУ и ТП.

Перед тем, как мы перейдем непосредственно к практической части, предлагаю для начала немного поговорить об общих принципах управления ПЧ через последовательный интерфейс RS-485 по протоколу Modbus.

Данный протокол подразумевает под собой соединение устройств по типу «ведущий-ведомый» (master-slave). В качестве ведущего устройства применяется ПЛК, ведомого – ПЧ, причем к сети могут быть подключены сразу несколько ведомых устройств, а точнее до 32. Главное, чтобы каждое устройство имело свой уникальный адрес в сети.

То есть при таком подключении только контроллер может управлять ПЧ, но не наоборот.

Для удаленной работы с приводом нам понадобится таблица адресации регистров Modbus, или по другому, карта памяти регистров. Естественно, что для различных моделей ПЧ, она будет своя.

Для задания команд приводу (запуск, останов, реверс, работа с различными предустановленными скоростями) используются регистры данных, называемые командное слово (CTW), которые представляет собой набор битов, каждый бит из которых отвечает то или иное действие, которое необходимо произвести с ПЧ.

Для контроля текущих значений частотного преобразователя используются регистры, называемые слово состояния (STW). Это набор битов, каждый бит которых определяет, в каком состоянии находится тот или иной параметр.

Помимо этого, для работы могут быть задействованы регистр основного текущего значения преобразователя частоты (MAV), значение которого представляет собой фактическую частоту вращения привода и регистр задания по интерфейсу (REF), отвечающий за задание частоты.

Кроме того, ПЛК и ПЧ могут обмениваться и другой информацией, например значениями сигналов с датчиков и исполнительных механизмов, подключенных к приводу, или уставки ПИД-регулятора.

Схема подключения

Для физического подключения по RS-485 интерфейсу, должны быть задействованы две клеммы, причем у разных устройств они могут иметь разное обозначение. “+” клемма может обозначаться как DATA+, D1, D+, B, а “-” как D- , D0, Data- , A. Третья клемма – общая COM, обозначаемая как SG, либо GND.

Кстати, здесь может возникнуть путаница. Дело в том, что ряд производителей обозначает как A (+), а B соответственно (-), другие же наоборот A (-) а B (+). Так что при подключении будьте внимательны.

В случае Danfoss VLT Micro Drive и Segnetics Pixel подключение будет следующее:

И не забывайте про оконечные резисторы, они же терминаторы. Они устанавливаются на концах линии — крайних устройствах, подключенных к сети, в случае, если длина линии превышает 3 метра. Номинал резисторов для линии RS-485 обычно 120 Ом. Зачастую эти резисторы уже встроены в ПЧ, для включения их в работу необходимо только выставить джамперы, либо DIP- переключатели.

Ну а теперь перейдем непосредственно к практической части. Для реализации нашей задачи необходимо предварительно настроить оба устройства.

Настройка частотного преобразователя

Первоначальную настройку преобразователя Danfoss VLT Micro Drive можно выполнить с панели оператора, либо с помощью программы настройки MCT-10 через коммуникационный порт RS485.

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

Номер параметра Описание параметров Значение
8-30 Протокол 2 — Modbus RTU
8-31 Адрес 2 — Диапазон адресов: 1-247
8-32 Скорость передачи данных порта ПЧ 4 — 38400
8-33 Четность порта ПЧ 2 — Контроль четности отсутствует (1 стоповый бит)

При изменении протокола обмена связи, преобразователь необходимо будет перезапустить. Управление преобразователем по Modbus возможно, только если он переведен из режима Hand (ручное или местное управление) в Auto (дистанционное).

Настройка ПЛК Segnetics Pixel

Для настройки и программирования будем использовать SMLogix – программное обеспечение для всей линейки контроллеров Segnetics, в том числе для Pixel.

В первую очередь надо настроить параметры связи, в нашем случае это Modbus адрес и скорость передачи данных. Для этого на вкладке Устройство выбираем наш контроллер, жмем правой кнопкой мыши и выбираем Свойства.

Откроется окно Свойства контроллера, которое имеет несколько вкладок. Переходим на вкладку Сетевые Параметры и задаем необходимые значения.

Добавим в проект устройство Slave. На вкладке Устройство находим порт COM1, кликаем правой кнопкой и выбираем Добавить устройство. В открывшемся окне выбираем способ создания с пустой картой памяти.

После нажатия кнопки Создать появится окно задания свойств.

Здесь мы задаем имя устройства, сетевой адрес, контроль четности, стоповые биты. Все параметры выставляем также, как при настройке преобразователя. Кроме того можно задать Таймаут — время в миллисекундах, в течение которого ожидается ответ от слейв устройства перед ошибкой связи. По умолчанию это 100 мс.

Нажимаем кнопку Готово. После этого в дереве проекта появится наше устройство VLT_51_1.

Теперь создаем карту памяти, то есть указываем адреса параметров, которые будут необходимы при создании проекта.

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

Здесь есть один важный момент. Дело в том, что адреса параметров, указанных в документации ПЧ Danfoss, необходимо указывать со смещением, то есть вычитать единицу из адреса. Например, в документации ПЧ указан номер регистра командного слова 50000. Так вот, нам надо вычесть из этого значения 1 и полученное значение 49999 и будет являться адресом параметра.

Также в карте памяти указываем тип переменных, указываем функцию чтения записи значений R/W, она соответствует функции Holding register.

Для того, чтобы определить адрес требуемого регистра, необходимо воспользоваться следующей формулой:

Номер регистра = Номер параметра х 10-1

Например, параметр 8-31, указывающий сетевой адрес, будет иметь адрес 831 х 10 — 1 = 8309.

После всех вышеперечисленных манипуляций переходим непосредственно к программе.

Возьмем к примеру регистр командного слова. Данный регистр представляет собой двухбайтовое слово, то есть 16 бит, где каждый бит отвечает за какую либо функцию.

Преобразуем биты в регистр, то есть в тип integer. Для этого задействуем блок bool->int.

Каждому биту сопоставлены входы блока — bool0, bool1 и т.д.

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

Для преобразования регистра в биты, воспользуемся блоком reg16->bits

Также создадим блоки, отвечающие за задание частоты и отображение текущего значения выходной частоты.

Теперь можно оформить все созданные блоки в виде макроса. Для этого выделим их, правой кнопкой вызовем контекстное меню и выберем пункт Создать макрос. В появившемся диалоговом окне задаем имя макроса, можно также ввести пароль.

Далее подключаем к макросу, созданные ранее в карте памяти, сетевые переменные.

Для того, чтобы преобразователь запустился, на входах «Тормож.пост.током», «Останов выбегом», «Быстрый останов», «Фиксация частоты», «Данные ОК» должна быть 1. Ну и на «Пуск/Стоп» 1 – Пуск 0 – Стоп.

Для диагностики связи ПЛК с ПЧ можно задействовать блок Slave (link), с помощью которого можно смотреть статистику обмена данными между устройствами. То есть по факту этот блок представляет собой счетчик ошибок обмена.

На вход Q Err задаем число, которое указывает, какое количество ошибок обмена должно пройти подряд, чтобы на выходе Break выставилось значение логической единицы. Выход Errors отображает текущее состояние счетчика.

Источник

Оцените статью
Электроника