При разработки пользовательской библиотеке, которая упоминалась в статьях [1–5] был реализован алгоритм дифференцирования. Разработка алгоритма дифференцирования для пользовательской библиотеки обусловлена тем, что в стандартных библиотеках алгоритмы имеют свои недостатки, в частности в алгоритме средств Codesys, PC Worx и TwinCat [6, 7, 8] у алгоритмов дифференцирования отсутствует вход для введения переменной дифференцировав, а время дифференцирования задаётся пользователем, поэтому результат дифференцирования будет завесить от заданного значения цикла в контроллере. А в средстве Step 7[9, 10] вообще отсутствует подобный алгоритм.
Разработанный алгоритм реализует численный метод дифференцирования и является идеальным дифференцирующим звеном и имеет следующее уравнение и передаточную функцию [11–13]:
,
.
Внешний вид функционального блока алгоритма дифференцирования представлен на рисунке 1.
Рисунок 1 – Функциональный блок алгоритма дифференцирования пользовательской библиотеки.
В таблице 1 представлены входы и выхода алгоритма с описанием типов переменных и значений.
Таблица 1 – Входы и выходы алгоритма «DIFFER».
Назначение | Входы/выходы | Тип переменной | |
Входы | Основной вход | IN | REAL |
Переменная дифференцирования | TV | INT | |
Время дифференцирования | TM | DWORD | |
Запуск | SR | BOOL | |
Автоматическое или ручное задание времени | CYCLE | STRING | |
Сброс | RS | BOOL | |
Выход | Основной выход | OUT | REAL |
Сигнал о работе алгоритма | Q | BOOL |
На рисунке 2 и 3 представлена реализация алгоритма «DIFFER» на языке ST.
Рисунок 2 – Заголовок функционального блока и присвоение переменных.
Рисунок 3 – Реализация алгоритма числового дифференцирования.
Строки 0001-0011 отвечают за выбор времени дифференцирования. Если вход CYCLE имеет значение «AUTO», то переменная gettime получает значения из системы через функцию «TIME_PLC_DW», разработанную для алгоритма интегрирования, если же значение «USER», то переменная получает значение со входа TM. В строках 0013-0023 происходит дифференцирование при условии запуска и не сброса. Выход OUT получает значения дифференцированной функции, а вход Q сигнализирует о действии алгоритма. В противном случае, если вход SR имеет значение FALSE либо, вход RS имеет значение TRUE, дифференцирование не выполняется, и входной сигнал проходит через блок без изменений. Выход Q получает значение FALSE.
Для проверки работы алгоритма «DIFFER» была использована программа на рисунке 4. Генератор «GEN» настроен на выдачу сигнала треугольной формы. Тестирование было проведено в сравнении с алгоритмом дифференцирования из стандартной библиотеки. Проверка состояла из двухэтапного тестирования. На первом этапе была использована встроенная возможность среды Codesys – «режим эмуляции», на втором этапе использовались контроллеры фирмы ОВЕН, в частности ПЛК110-220.32.Р-М, ПЛК150-220.У-М и ПЛК154-220.У-М.
Рисунок 4 – Программа для проверки алгоритма «DIFFER».
В результате были получены диаграммы для двух случае работы. Для случая, когда входная переменной CYCLE имеет значение «USER».
Рисунок 5 – Диаграмма работы алгоритма «DIFFER». Первый случай.
Диаграмма состоит из трёх графиков: первый – выходной сигнал OUT генератора «GEN», данный сигнал поступает на входы алгоритмов дифференцирования. Второй график – выходной сигнал алгоритма «DERIVATIVE» из стандартной библиотеки, третий график – выходной сигнал алгоритма «DIFFER» пользовательской библиотеки. Из диаграммы видно, что у пользовательского алгоритма дифференцирования амплитуда быстрее возрастает по сравнению со стандартным алгоритмом. Из этого можно сделать вывод, что он быстрее отрабатывает вычисления по сравнению со стандартным.
Второй случай. Переменная CYCLE имеет значение «AUTO». Диаграмма данного случая представлена на рисунке 6.
Рисунок 6 – Диаграмма работы алгоритма «DIFFER». Второй случай.
Из диаграммы видно, что в алгоритме «DIFFER» возникают неконтролируемые возмущения. Это говорит о том, что данный алгоритм не может быть использован в таком виде. Это звено не может быть технически реализовано из-за того, что порядок правой части его уравнения больше порядке левой части [11], другими словами невозможно получить дельта-функцию и ее производную поскольку они имеют бесконечные значения [12].
Амплитудно-фазовая частотная характеристика звена имеет вид [13]:
,
,
.
В реальных системах такой вид характеристики звена возможен лишь в ограниченной полосе частот, так как неограниченное увеличение амплитуды с ростом частоты требует бесконечной энергии [13].
Исходя из этого целесообразно использования реального звена дифференцирования, передаточная и переходная функции которого имеет вид [11]:
,
.
Фактически это последовательное соединение идеального дифференцирующего и апериодического звеньев [12].
Реализация реального дифференцирующего звена представлена на рисунке 7.
Рисунок 7 – Реализация звена реального дифференцирования на языке ST.
Реализация данного алгоритма отличается от вышеописанного лишь тем, что используется формула для реализации реального дифференцирующего звена, данная формула работает, когда вход CYCLE имеет значение «AUTO», при этом, если этот вход имеет значение «USER», используется формула идеального дифференцирующего звена, это обусловлено проблемами при использовании режима «Эмуляции» среды Codesys (рисунок 8).
Рисунок 8 – Диаграмма работы алгоритма «REALDIFFER» в режиме «эмуляции».
В конечном виде результат работы алгоритма звена реального дифференцирования представлен на рисунке 9.
Рисунок 9 – Диаграмма работы алгоритма «REALDIFFER».
Как уже отмечалось из диаграммы видно, что у пользовательского алгоритма дифференцирования амплитуда быстрее возрастает по сравнению со стандартным алгоритмом. Из этого можно сделать вывод, что он быстрее отрабатывает вычисления по сравнению со стандартным.
Библиографический список
- Севастьянов Б.Г., Жолобов И.А. Алгоритм таймера пользовательской библиотеки [Электронный ресурс] / Севастьянов Б.Г., Жолобов И.А. // Инженерный вестник Дона: электрон. науч. журнал. – 2013. – № 4. – C. Режим доступа: http://www.ivdon.ru/magazine/archive/n4y2013/2207.
- Севастьянов Б. Г., Жолобов И. А., Севастьянов Д. Б. Принципы программирования контроллеров на языке FBD [Электронный ресурс] / Севастьянов Б.Г., Жолобов И.А., Севастьянов Д.Б. // Инженерный вестник Дона: электрон. науч. журнал. – 2014. – № 2. – C. Режим доступа: http://www.ivdon.ru/magazine/archive/n2y2014/2344.
- Жолобов И.А., Казакова Л.Г., Корзин В.В. Программная реализация вычислительного блока струйной системы измерения температуры потока газа [Электронный ресурс] / Жолобов И.А., Казакова Л.Г., Корзин В.В. // Инженерный вестник Дона: электрон. науч. журнал. – 2014. – № 2. – C. Режим доступа: http://www.ivdon.ru/magazine/archive/n2y2014/2329.
- Жолобов И.А. Алгоритм цифровой задержки пользовательской библиотеки // Современные научные исследования и инновации. – Июнь 2014. – № 6 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2014/06/35601
- Жолобов. И.А. Пользовательская библиотека программируемых промышленных контроллеров / Актуальные вопросы образования и науки: сб. науч. тр. по матер. междунар. науч.-практ. конф., 30 дек. 2013 г. В 14 ч. Ч. 12 / Минобрнауки РФ, Консалтинговая компания Юком. – Тамбов, 2013. – C. 56-57.
- Руководство пользователя по программированию ПЛК в CoDeSys 2.3 [Электронный ресурс]: Режим доступа: http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf
- User Manual UM QS EN PC WORX EXPRESS [Электронный ресурс]: Режим досступа: http://select.phoenixcontact.com/phoenix/dwld/um_qs_en_pc_worx_express_7632_en_02.pdf?cp=y&asid2=7541554902303
- Beckhoff New Automation Technology TwinCAT 2 [Электронный ресурс]: Manual. Режим доступа: ftp://ftp.beckhoffautomation.com/TwinCAT_Manual/TwinCAT%202%20Manual%20v3.0.1.pdf
- Hans Berger., Automating with STEP 7 in LAD and FBD, 2008 – 440p.
- Hans Berger., Automating with STEP 7 in STL and SCL, 2012 – 553p.
- Ротач В.Я. Теория автоматического управления. Учебник для вузов. — 2-е изд., перераб и доп. — М.: Издательство МЭИ, 2004. — 400 с.
- Поляков К.Ю. Теория автоматического управления для “чайников”. – Санкт-Петербург. – 2008г. – 139 c.
- Попов Е.П. Теория линейных систем автоматического регулирования и управления Классическая книга по ТАУ. Учеб. пособие для вузов. – 2-е изд., перераб. и доп. – М.: Наука. Гл. ред. физ.-мат. лит., 1989. – 304 с.