
Программная среда CoDeSyS 3.5
23 поста
23 поста
9 постов
5 постов
2 поста
3 поста
3 поста
Эта статья посвящена, как просто и без мучений реализовать кнопку без фиксации. Нажал кнопку один раз сработал механизм, нажал кнопку ещё раз механизм выключился.
Приветствую всех, на связи автор блога. Часто задают вопрос по реализации кнопки без фиксации, будет посвящена коротенькая статья.
На официальном сайте ОВЕН нужно скачать программу последней версии. Этот кусок программы подойдёт для любого устройства реле.
Создаем новую программу и запускаем.
Самой простой способ- это загрузить нужную библиотеку с онлайн базы макросов.
Выбираем элемент ON_OFF и жмем кнопку загрузить в библиотеку проекта.
Теперь когда мы жмем кнопку без фиксации один раз запускаем механизм, жмем ещё раз выключаем.
Можно реализовать простым D-триггером.
На этом заканчиваю, пишите комменты.
С уважением, Гридин Семен
Хочу написать несколько слов про ПЛК optimus drive. Это маленький Бюджетный контроллер с большими возможностями и достаточным арсеналом функций для реализаций различных станков, линий, упаковочных и формовочных аппаратов.
Приветствую всех посетителей, на связи автор блога. Рассмотрим ПЛК более детально.
Не будем все вместе кривить душой, Haiwell, Optimus Drive и EKF одно и то же. Почему я выбираю именно Optimus? Потому что их продают проверенная фирма, с которой я работаю не один год. У них есть техподдержка, а это АРХИ-важно.
Нет, это не реклама, мне за это никто не платил, статья не платная. Мне просто нравится этот продукт и я решил написать такой небольшой обзорчик, может кому пригодится.
Модульные ЦПУ типа AC являются максимально бюджетными и во многих задачах могут легко заменить программируемые реле, оставляя возможность программировать на знакомом языке FBD и предоставляя при этом существенно большие программные возможности. Выпускаются модификации с релейным, NPN и PNP выходами.
Все ЦПУ имеют встроенные порты Ethernet и RS485. Расширяются тремя любыми модулями (дискретные, аналоговые, температурные). Импульсных входов/выходов нет. Модификация на 12 точек имеет на борту 2 аналоговых входа и 2 аналоговых выхода.
Модульные ЦПУ типа AT являются наиболее оптимальными для широкого спектра задач.
Разница от АС в том, что имеет импульсные входы и выходы. Расширяются пятнадцатью любыми модулями (дискретные, аналоговые, температурные, дополнительных портов). Имеют на борту 2 группы импульсных входов и 2 группы импульсных выходов (4 входа и 4 выхода по 200 кГц).
Модульные ЦПУ типа AH имеют на борту 4 группы импульсных входов и 4 группы импульсных выходов (8 входов и 8 выходов по 200 кГц) и хорошо подходят для задач с большим количеством серво/шаговых приводов с импульсным управлением. Все ЦПУ имеют встроенные порты Ethernet и RS485.
Контроллер AH больше подхлдит для задач с сервоприводами.
Все вышеперечисленное является средством измерения — т.е. зарегестрирован в СИ.
Контроллеры типа AC/AT/AH расширяются модулями дискретных, аналоговых и температурных входов/выходов, а также до 3-х модулей дополнительных портов.
Какие модули расширения есть для этого контроллера:
Дискретные модули выпускаются с релейным, NPN и PNP выходами.
Аналоговые модули поддерживают токовый и потенциальный режимы, имеют разрешение 12 бит.
Разрешение температурных модулей составляет 16 бит.
Модуль дополнительного порта A01RS предоставляет контроллеру 1 порт RS232/RS485 с развязкой и поддержкой протокола Модбас.
Есть аналоговый модуль с весоизмерительным входом.
Признаться честно, с ними я не работал. Нас полностью устраивают модульные, они компактны и гибки. Но смысл тот же самый, только в виде «Кирпича».
Блочные ЦПУ типа C являются максимально бюджетными и во многих задачах могут легко заменить программируемые реле, оставляя возможность программировать на знакомом языке FBD и предоставляя при этом существенно большие программные возможности. Данные ЦПУ являются нерасширяемыми. Выпускаются модификации с релейным, NPN и PNP выходами.
Блочные ЦПУ типа T являются наиболее оптимальными для широкого спектра задач. Выпускаются модификации с релейным, NPN и PNP выходами.
Имеют на борту 2 группы импульсных входов и 2 группы импульсных выходов (4 входа и 4 выхода по 200 кГц).
Блочные ЦПУ типа H Для сервоприводных задач. Имеют на борту 4, 6 или 8 групп импульсных входов и 4, 6 или 8 групп импульсных выходов (до 16 входов и 16 выходов по 200 кГц), благодаря чему хорошо подходят для задач с большим количеством серво/шаговых приводов с импульсным управлением.
Тоже расширяются модулями, до 7 штук можно расширить.
Для этих контроллеров есть свой дистрибутив, называется он Optimus Drive PLCSoft. Поддерживает языки стандарта МЭК FBD и LD.
Я зачастую пишу на LD. Мне проще всего на нем, потому что пишу давно. Есть алгоритмы и наработки именно на этом языке.
На этом контроллере собирали такие станки:
Спасибо за внимание. Пишите в комментариях, если есть вопросы.
С уважением, Гридин Семен
В отопительных системах (да и не только) ставится задача регулирования температуры теплоносителя для потребителя или для тех. процесса. Для такой системы есть достаточно универсальное и готовое решение.
Решение такое - Датчик + Контроллер + КЗР (муфтовая задвижка, седельная задвижка, шаровый клапан)
Привод задвижки бывает двух типов - дискретный и аналоговый. На дискретном приводе регулирование больше\меньше происходит за счет замыканий контактов. На аналоговом с помощью токового и потенциального сигнала (0-10 В, 4-20 мА).
Контроллер нужен обязательно с ПИД-регулированием, чтобы точно поддерживать температуру. Как правило в подобных приборах вшита автонастройка. Не всегда можно быстро вручную подобрать коэффициенты.
Контроллеров на рынке много, выделю те, с которыми работал сам лично.
Мне больше всего нравится работать с этим прибором, потому что никогда не было с ним проблем, широкий семисегментный экран. ПИД работает практически сразу. На пару объектах приходилось корректировать, но это всё мелочи.
Недавно компания стала производить новые приборы с модификацией У2. Есть интерфейс по Modbus.
Вот таким вот образом выглядит, в наличии несколько типоразмеров.
Существуют различные модификации с разными выходами. Поддерживает около 30 видов датчиков.
На картинке выше отображено как прибор работает функционально.
Если модификация с релейными выходами для дискретных задвижек Выход 1 - это открытие, Выход 2 - это закрытие. Либо аналоговый выход (Выход 1) 4-20 мА(0-10В), а Выход 2 - авария.
Прибор отечественный, при любой возможности стараюсь ставить его.
Тайваньский температурный контроллер. Сейчас на замену стали выпускать новые серии DT3.
В отличие от ТРМ12 - Delta более универсальна, в настройках можно указать и простой одноканальный ПИД-регулятор. Разница в том, что у прибора побыстрее АЦП, побольше настроек, больше диапазон датчиков.
Китайский контроллер.
По функциям и типам датчиков - всё то же самое, что у Delta, только цена ниже.
Доступны два алгоритма автонастройки AT и AAT. В модели добавлен усовершенствованный алгоритм быстрой автонастройки AAT, который работает уже со стадии нагрева и не требует нескольких периодов колебаний, в отличие от классического алгоритма AT. Алгоритм AT так же доступен для использования.
А какое вы используете оборудование?
Приветствую, недавно написали письмо с вопросом по визуализации.
Я разрабатываю систему которая оценивает состояние элементов в трех фазной электрической сети по их параметрам тока. Всего параметров 6 для каждой из трех фаз.
Необходимо настроить отображения каждого параметров для каждой комбинации фаз т.е. фаза А напряжение, фаза B напряжение, фаза С напряжение, фазы А и B напряжение, фазы А и С напряжение и так далее.
Всего параметров для сбора получается 18 (3 фазы * 6 параметров), а если говорить со всеми комбинациями получается 42 (7 возможных комбинаций фаз * 6 параметров). Самое простое решение, которое первое приходит в голову это создать 42 страницы визуализации и 42 тренда, но делать так не очень хочется, а хотелось бы обойтись одной страницей визуализации и просто обращаясь к объекту визуализации изменять отображающаяся тренд.
Исходя из вышеизложенного, 2 вопроса.1. Можно ли обратится как-нибудь к элементу визуализации и сменить отображение тренда из кода или есть другой элемент визуализации для реализации описанного функционала?
2. Сможет ли СПК110 Овен переварить такое количество трендов, так как читал что он (тренд) очень трудоемкий?
1. реализовать можно с помощью фреймов, переключая в основном окне так называемые дочерние окна. Для наглядности буду стараться отвечать видео.
42 фрейма это большая нагрузка на графику, будет виснуть. Требуется оптимизация.
2. Насчет трендов. Скажу честно, тренды работают очень плохо. 10 трендов уже много для слабой графики. По возможности лучше ставить Панель оператора, а ещё лучше SCADA. Вообще советую, где нужны графики - ставить SCADA по возможности.
Лучше всего помучиться и сделать 42 простые визуализации. Можно реализовать с помощью CurrentVisu - управление из кода.
А как думаете вы, у вас есть свои варианты? Как вы сделали бы?
Только закончили станок для изготовления пружин. На разработку станка в общей сложности ушло 6 месяцев работы. Как же важно подбирать правильные алгоритмы и оборудование на каждую задачу по автоматизации.
Приветствую всех, уважаемые друзья, с вами на связи Гридин Семен. Эта статья будет посвящена реализации пружинного станка.
Станок состоит из множества прижимных шкивов, барабана подачи проволоки, привода подачи и одной лапки.
Проволока подается через несколько прижимных шкивов, чтобы создать необходимую структуру металла. С помощью двух прижимных шкивов привод протягивает проволоку. А лапкой мы создаём необходимый рисунок пружины.
Длину проволоки мы измеряем с помощью энкодера, а длину подачи лапки мы регулируем с помощью шагового пр1ивода. Подача осуществляется с помощью асинхронного двигателя и преобразователя частоты.
В станок решили мы смонтировать следующее оборудование:
Панель оператора Weintek
ПЛК Optimus Drive с модулем расширения
Преобразователь частоты Instart
Шаговый привод DM860
Вот такой шкаф у нас получился:
Была пуско-наладка, поэтому небольшой бардак.
В целом делали станок 5 месяцев. Программу пришлось править 6 раз. Потому что никто не знал толком правильного алгоритма и его ещё нужно было описать в контроллере.
ПЛК я доволен, ставили AH16SOT с транзисторным ключами. Процессы там достаточно быстрые. Шустрая машина, есть все необходимые функции для работы с шаговыми приводами и сервоприводами. Есть готовые функции для работы с энкодером. Если кому интересно, пишите в комментах, могу написать отдельную статью.
Функции по движениям достаточно простые, так как это бюджетный контроллер. Но для большинства станочков, где не требуются супер навороченные функции позиционирования ЧПУ, подойдёт.
Вообще станок состоит из компромиссных решений, привод подачи на асинхронном двигателе, лапка на недорогом шаговом двигателе. Вообще есть недостатки с разгоном и торможением, что влияет на точность размера. Но заказчик просил побюджетнее и допуски погрешностей его устроили. Делаем 1 пружину за 1.5 секунды.
Общий принцип- мы подключали входа ПЛК к кнопкам и энкодеру, а выхода к частотнику, пром. реле и пускатель тормоза.
Нюанс есть с подключением шагового драйвера, он рассчитан на 5 В, а ПЛК на 24 В. Пришлось повозиться с согласованием сигналов.
Выходы контроллера подключили транзисторным ключами к входам контроллера по системе npn.
Рубка реализована с помощью магнитных пускателей и тормоза на постоянном токе.
А, ну ещё конечно важна защита ЭМС, для этого ставится дроссель и фильтр ЭМС на вход частотного преобразователя. Для чего? Если вы не хотите получить проблемы при наводке помех на энкодер. Энкодер начинает пропускать импульсы.
И ещё, связал ПЛК по Ethernet панель, а по интерфейсу RS485 Частотник. Так как пришлось с него принимать по цифре заданную частоту. Нюанс в программе.
На этом я заканчиваю, будут вопросы, пишите в комментариях.
Нюансов куча. Рассказывать обо всём я по понятным причинам не могу. Расскажу базовое.
Необходимо было реализовать два столбика, в которых по точкам записывались значения по оси x — подача и по оси y — лапка. Они должны записываться по факту (при движении по нажатию кнопки) и при помощи панели через меню корректировка.
Нужно было сделать так, как примерно на видео.
Получилось вот так:
Вообщем базой реализации были рецепты и программа на макросах. Всего две функции. Фото прилагаю.
В программе сделано 3 режима- ручной, автоматический и режим шаг. В ручном режиме можно поклацать кнопки и позапускать механизмы. В режиме шаг осуществляется отладка рецепта пружины. В режиме автомат мы запускаем станок в рабочем режиме.
Программа работает пошагово, задавая импульсы лапке и вычисляя длину подачи проволоки. В контроллере забиты формулы для вычисления скорости подачи и лапки.
С уважением, Гридин Семен
У компании ОВЕН есть великолепное веб-приложение OWEN Cloud, которое бесплатно позволяет мониторить параметры и собирать архивы на 90 дней. В том числе можно подключить свободное MODBUS-устройство. Есть ещё великолепная возможность в «Штатном» режиме получить данные и для MasterSCADA.
Разработчики сразу предусмотрели некий OwenCloud OPC. И продумали, как быстро и просто подключиться к нему без танцев с бубнами.
Приветствую всех гостей. Эта статья будет небольшой, без всякой лишней воды продемонстрирую как связать эти две сущности.
В OwenCloud у вас должен быть свой аккаунт и добавленные устройства с тегами.
После этого устанавливаем OPC-сервер ОВЕН. О нём я писал в статье.
Делаем следующие действия:
Добавляем узел и ставим настройку OwenCloud.
Нажимаем ПКМ Добавляем устройство. Вводим логин и пароль вашего аккаунта.
Сервер автоматически найдёт токен и спросит, что нужно добавить. выделяем все необходимые каталоги и теги.
Это реальный рабочий объект. Здесь мы можем запустить опрос и получать данные с Облака. Можем выключить или включить необходимые теги.
Вот здесь мы получаем реальное значение Температуры в теплице. И дальше мы можем делать всё, что захотим — передавать в SCADA или в другое устройство. Всё.
У меня стоит программа MasterSCADA можно в ней получить значения и работать с ними далее.
Создаем новый проект.
В системе добавляем новый компьютер.
Выбираем наш ОРС-сервер.
Добавляем все необходимые теги для мониторинга и анализа.
Вот такая получается картина, нажимаем кнопку «Запуск».
Вот мы получаем наши показания температуры. Нужно понимать, что скорость опроса очень сильно страдает. Если у вас базовый тариф, то будет 1 минута Облако + 30 сек ОРС + 30 сек примерно MS. Все времена настраиваемые, но всё равно 1 минута минимум. Не для всех это подойдет.
На этом я всё.
Если есть вопросы, пишите в комментариях. Чтобы ответы были доступны для всех желающих.
С уважением, Гридин Семен.
Панель оператора Weintek достаточно популярна в нашей стране. Быстрая, красивый экран, удачный функционал рецептов, есть возможность подключаться к ней удалённо, есть свой Дашборд. Давайте рассмотрим, как с помощью неё подключиться к ПЛК Овен и опросить пару-тройку регистров.
Приветствую всех посетителей, Напишу статью про связь между панелью Weintek и ПЛК ОВЕН.
Статью пишу в режиме реального времени, так как параллельно собираю объект, о нем напишу чуть позже.
Устанавливаем Codesys 2.3, создаём проект, добавляем таргет.
Заходим во вкладочку конфигурация ПЛК. Создаём Master SLAVE, выбираем по какому порту будем опрашивать. В моём случае по RS-485 (2-ой канал).
И после этого, добавляем все необходимые нам регистры — если кнопки-лампочки, то регистры 8 бит, если целочисленные, то 2 байта, если вещественные с запятой, то 4 байта.
Рекомендую делать строго в том порядке, как на скриншоте, чтобы упорядочивать память контроллера и не создавать суету с адресацией.
И желательно создавать регистры в чётном порядке, то есть по два. Пускай какие-то будут пустыми. Удобно потом будет настраивать адреса.
Адресация считается сверху вниз, начиная с нуля. Переменные по 8 бит считаем по 2 — получаем 2 байта в одном регистре. Поэтому удобно располагать вот так последовательно, становится понятно, где какой адрес. Вот у меня три регистра со сдвоенными 8-битными переменными.
Первый регистр — это адрес 0, второй — адрес 1, третий — адрес 2 и т.д.
Устанавливаем Easy Builder PRO. Создаём проект. Ставим свою панель.
Нажимаем системные настройки.
Выбираем новое устройство.
Выбираем Modbus(Adjustable). Настраиваем интерфейс RS-485, (настройки связи, COM, скорость и т.д.) Жмём ОК.
Теперь у нас два устройства — панель и контроллер.
Ставим допустим переключатель, и настраиваем регистр с битом.
У weintek адресация смещена на 1 , поэтому адрес 0 ПЛК — соответствует адресу 1 в панели.
Эту информацию мы можем найти в руководстве по эксплуатации к панелям.
Этот адрес будет соответствовать этому биту. И так далее, по порядку.
Ну и конечно делюсь результатом;
На этом я заканчиваю, если есть вопросы, пишите комментарии.
С уважением, Гридин Семен
Алгоритм погодозависимого регулятора применяется в ЦТП, ИТП, в приточно-вытяжной вентиляции. Смысл этого алгоритма в том, что по датчику температуры наружного воздуха подбирается оптимальная температура в помещении. Автоматизировать этот процесс в свободно-программируемом устройстве возможно.
Приветствую всех, на связи с вами, автор блога, Семен. В этой статье рассмотрим полезный алгоритм погодозависимого регулятора. В основном статьи пишу для ПЛК Овен. Но, думаю смысл будет понятен. Это в принципе можно реализовать в любом ПЛК на Codesys.
Температурный график подачи тепла в системы отопления МКД (многоквартирных домов) един и определен СНиП.
Теплоноситель к самому ИТП или ЦТП доставляется по разным графикам, зависящим от пропускной способности тепловых сетей и температурного режима источника теплоты по которому могут работать его теплогенерирующие установки – в частности котлы. Эти самые котлы могут работать на разных параметрах нагрева теплоносителя — воды вплоть до пара.
Для того чтобы оптимизировать тепло в помещениях и отсечь перегрев и в том числе лишние теплопотери. Строится вот такой график, таблица ниже.
А теперь представим линию зависимости по оси Х у нас температура наружнего воздуха, по оси У температура в помещении. Нам нужно выставлять уставки для регулирующего органа в кусочно-линейной аппроксимации. Это когда идем от точки до точки. В погодозависимом регуляторе достаточно 7 точек.
В Codesys есть ФБ называется он CharCurve. Для него создаётся массив данных (сколько надо точек и уставок получить). Чтобы было наглядно покажу в виде CFC-программы.
Вот так он выглядит:
IN — Температура наружного воздуха
P — двумерный массив, куда мы должны занести 7 точек (X,Y)
N — количество точек
OUT — уставка, которая цепляется к любому регулятору (ПИД или двухпозиционка).
Как строится массив по двум точкам. Объявляем данные в поле.
Затем вносим переменные, куда мы будем записывать наши задания для аппроксимации графика.
По температуре наружного воздуха.
По температуре подающего трубопровода.
Этот массив вносим в наш ФБ CharCurve.
Таким образом получим результат, готовый блок программы.
На Owen Logic всё тоже самое, только чуть проще, максимум можем задать 4 точки. ФБ называется Graf_4pnt
Тут всё проще, надо в ячейки занести нужные переменные
X — фактическая температура наружного воздуха
X1-X4 — Точки Т.Н.В.
Y1-Y4 — Точки Т подачи
ua_Points — кол-во точек
Is_X_Line — задаем логику в конце и в начале графика, когда данные выходят за границу, если 0, то обрываем показания в ноль, если 1, то продолжаем крайнее значение 4 точки до точки 1.
Y — Выход уставки для регулятора
На этом я заканчиваю, всем спасибо, пока-пока, пишите в комментариях.
С уважением, Гридин Семен