youengineerasu

youengineerasu

Автоматизация промышленных и домашних объектов - Программирование ПЛК - Программирование панелей оператора - Программирование SCADA Канал несёт чисто информационный характер. Сайт: https://kipiaplc.ru/ Каналы на Дзен и вконтакте: https://dzen.ru/you_engineer https://vk.com/you_engineer_asu По всем вопросам пишите: чат: https://t.me/chat_plc почта: info@kipiaplc.ru
На Пикабу
поставил 4 плюса и 0 минусов
252 рейтинг 29 подписчиков 6 подписок 40 постов 0 в горячем

Автоматизация поста налива на CoDeSyS 3.5

2 года назад заказчик дал задание на автоматизацию постов налива бензина. На каждый пост своё управление. Затем все собираем в кучу в SCADA систему. К сожалению проект пришлось заморозить, так как требовалось кучу разрешительной документации. Сама программа работала «на столе». На реальном объекте испытать не удалось. Пишу статью, может для кого-то пригодятся «Фичи» в CoDeSyS 3.5.

Приветствую всех читателей сайта, с вами на связи автор — Семен. И я продолжаю писать статьи по пром. автоматизации.

Что за пост налива?

Пост налива — это некая металлоконструкция с лестницей и гибким шлангом, либо сверху, либо снизу. Этот шланг подводят к бензовозу и наполняют его топливом. Выглядит он следующим образом:

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Топливо наполняется вот таким вот шлангом:

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Что находится примерно в составе оборудования.

  • Насос

  • Клапан большого налива

  • Клапан малого налива

  • Массовый расходомер

  • Различные сигнализации

Какие задачи были поставлены в реализации программы:

  1. Универсальность — передача данных для верхнего уровня либо по Ethernet, либо по RS-485.

  2. Подключение различных видов массовых расходомеров — по импульсу или по Modbus.

  3. Фиксация различных аварий и защит и запись в аварийный журнал.

  4. Запуск программы по месту или удаленно.

  5. Различные клапана подачи топлива, либо два клапана либо регулирующий кран.

Управление постом налива реализовывали на базе ПЛК200 с применение CoDeSyS 3.5.

Программа на CoDeSyS 3.5

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

Дерево проектов выглядит примерно так:

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

В основной программе создан подраздел действие (ACT), сюда я записываю различные преобразования данных, передачу данных и привязку физических входов-выходов.

Тело программы (PLC_PRG) с логикой.

И различные функциональные блоки и функции. Аварии(Avarii_post) и Регулирующий кран(kran)/

Опрос модуля ввода аналогового, панели оператора и массового расходомера по интерфейсу RS-485.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

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

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Расчет расхода сделал примерно таким, без учета цены импульса. Знаю, что код кривоват, если есть варианты получше, подскажите, как написать?

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Выбор режима для расхода и задвижки делал через CASE.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Запуск пошаговой программы реализован через CASE. При отладке наглядно показано, где программа остановилась и по какой ПРИЧИНЕ.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Обработчик стоповой кнопки, все прописано, когда, куда и что должно остановиться.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Обработчик аварий и отправка сообщений через массив.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Аварийная ситуация и что должно произойти.

Ставили ещё маленькую панель оператора, вот такая была менюшка:

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост
Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

Ну и что предполагалось быть в мнемосхеме Master SCADA 3.12. Ставили именно её.

Автоматизация поста налива на CoDeSyS 3.5 Электрика, Электричество, ПЛК, Программирование ПЛК, АСУ ТП, Отдел АСУ, Асушник, Я у мамы инженер, Длиннопост

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

Показать полностью 13

Как задать уставку таймеру в Owen Logic?

Появляются задачи, когда нужно на экране ПР200 или ПР205 или ПР225 задать доли секунды или доли минуты.

На примере покажу, как это сделать.

Программа для вычисления времени и передачи в ФБ

Заходим в программу Owen Logic, возьмем пример ПР200.

После этого добавляем переменную типа Float. Изначально в таймер задаются значения в миллисекундах. Если нам нужны минуты, то нужно преобразовать сначала в секунды, а потом в минуты. Получаем такое интересное число 60 000. Переменную умножаем на это число и подаем в блок таймера.

Как задать уставку таймеру в Owen Logic? Программа, Компьютерная помощь, АСУ ТП, Асу, Отдел АСУ, Асушник, КИПиА, ПЛК, Программирование ПЛК, Я у мамы инженер, Гифка, Длиннопост

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

Результат:

Как задать уставку таймеру в Owen Logic? Программа, Компьютерная помощь, АСУ ТП, Асу, Отдел АСУ, Асушник, КИПиА, ПЛК, Программирование ПЛК, Я у мамы инженер, Гифка, Длиннопост

Настройка экрана

Для настройки экрана заходим в менеджер экранов.

Как задать уставку таймеру в Owen Logic? Программа, Компьютерная помощь, АСУ ТП, Асу, Отдел АСУ, Асушник, КИПиА, ПЛК, Программирование ПЛК, Я у мамы инженер, Гифка, Длиннопост

Добавляем блок на экран и присваиваем переменную.

Как задать уставку таймеру в Owen Logic? Программа, Компьютерная помощь, АСУ ТП, Асу, Отдел АСУ, Асушник, КИПиА, ПЛК, Программирование ПЛК, Я у мамы инженер, Гифка, Длиннопост

На этом я заканчиваю, всем пока-пока.

Показать полностью 3

Сравнение чисел с плавающей запятой в Owen Logic

Пишу этот пост в основном для новичков, которые вот вот начинают осваивать программируемое реле и ПО для них.

Начнем с простого сравнения чисел с плавающей запятой.

Создаем проект и добавляем необходимые элементы.

Сравнение чисел с плавающей запятой в Owen Logic Программирование, Полезное, Разработка, АСУ ТП, Асушник, КИПиА, ПЛК, Программирование ПЛК, Инновации, Программа, Гифка

Для сравнения чисел с плавающей запятой нужны элементы с приставкой f.

Сравнение чисел с плавающей запятой в Owen Logic Программирование, Полезное, Разработка, АСУ ТП, Асушник, КИПиА, ПЛК, Программирование ПЛК, Инновации, Программа, Гифка

Операция Вх1 > Вх2.

Сравнение чисел с плавающей запятой в Owen Logic Программирование, Полезное, Разработка, АСУ ТП, Асушник, КИПиА, ПЛК, Программирование ПЛК, Инновации, Программа, Гифка

Операция Вх1 < Вх2.

Операции Вх1 ≥ Вх2 и Вх1 ≤ Вх2, к сожалению среда позволяет делать только с целочисленными значениями. Чтобы выполнить в целочисленном варианте, я просто умножаю на 100 перевожу в целочисленный и сравниваю.

Если знаете как сделать с плавающей точкой, напишите в комментариях.

Показать полностью 2

Codesys 2.3:Запуск насоса на CFC

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

Приветствую всех дорогие читатели, на связи Гридин Семен. Запускаю серию статей совсем простых программ, как раз для начинающих.

Конфиг входов и выходов и программа

Перед программированием работы насоса нужно сконфигурировать входы/выходы ПЛК, для этого одному из дискретных входов присваиваем значение «Pusk», а одному из дискретных выходов значение «Nasos».

Codesys 2.3:Запуск насоса на CFC Сборка, Электроника, Инженер, Я у мамы инженер, ПЛК, Программа, АСУ ТП, Асушник, Отдел АСУ

Для управления работой насоса и учета числа включений потребуются: элемент счетчик CTU, элемент таймер TP и переменная «Counter».

Codesys 2.3:Запуск насоса на CFC Сборка, Электроника, Инженер, Я у мамы инженер, ПЛК, Программа, АСУ ТП, Асушник, Отдел АСУ

Кнопка «Пуск» устанавливает значение «1» на переменной «Pusk», которая включает одновременно счетчик CTU1 и таймер TP1. Число включений суммируется и выводится в переменную «Counter» с выхода CV счетчика. А с выхода таймера TP1 устанавливается булевская переменная «Nasos», которая управляет дискретным выходом ПЛК в зависимости от времени установленного на входе PT таймера, в данном случае это 3 секунды.

Визуализация установки

Для создания визуализации пуска насоса нужно создать новый объект визуализации на закладке «Визуализации» организатора объектов, разместить на форме элемент «Кнопка», пару прямоугольников для изображения трубопровода, еще 1 эллипс и прямоугольник для насоса, отдельно прямоугольник для создания надписи с количеством включений насоса.

Codesys 2.3:Запуск насоса на CFC Сборка, Электроника, Инженер, Я у мамы инженер, ПЛК, Программа, АСУ ТП, Асушник, Отдел АСУ

Кнопку «Пуск» нужно в разделе «Конфигурирование элемента – Категория – Ввод – Переменная-кнопка» связать с переменной «Pusk», которая в свою очередь связана с дискретным входом ПЛК. Изображение насоса сконфигурировано в разделе «Конфигурирование элемента – Переменные – Изм. Цвета», нужно вписать переменную «Nasos», а также установить обычный (серый) и тревожный (зеленый) цвета. Прямоугольник для вывода числа включений насоса на панели конфигурирования элемента связан с переменной «PLC_PRG.Counter» в разделе «Конфигурирование элемента – Переменные – Выв_текста».

На этом заканчиваю, всем спасибо, пока-пока.

Показать полностью 2

Для чего линия задержки в Owen Logic?

Линия задержки используется для создания задержки на один цикл передачи значения с выхода компонента на вход.

Для создания линии задержки следует нажать на кнопку на панели вставки и построить линию между выходом и входом компонента. Будет проведена красная пунктирная линия.

Для чего линия задержки в Owen Logic? Изобретения, Инженер, Сборка, Электроника, ПЛК, Программирование ПЛК, АСУ ТП, КИПиА

Пример использования

На вход I1 блока арифметического сложения (целочисленный тип) подается константа, значение которой равно 1. На вход I2 по линии задержки подается значение с выхода блока Q, которое было вычислено в предыдущем цикле.

Для чего линия задержки в Owen Logic? Изобретения, Инженер, Сборка, Электроника, ПЛК, Программирование ПЛК, АСУ ТП, КИПиА

Таблица вычисления по циклам.

Для чего линия задержки в Owen Logic? Изобретения, Инженер, Сборка, Электроника, ПЛК, Программирование ПЛК, АСУ ТП, КИПиА
Показать полностью 2

Таймер реального времени в программируемых реле ОВЕН ПР

Чем удобно программируемое реле ОВЕН? Тем, что оно способно выполнять задачи таймера реального времени(ClockWeek). Можно написать абсолютно гибкую программу с кучей параметров по дате и времени. Эти параметры могут выполнять другие не основные функции.

Для этих задач есть несколько вариантов функциональных блоков, у всех разные настройки и степень «Умности». Давайте рассмотрим их в нашей статье.

Приветствую всех, с вами автор блога, пишу статью по реализации вышеназванного функционала.

Самый простой таймер ClockWeek

Рассмотрим самый простой недельный таймер.

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

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

Но, это удобно, когда заранее известны параметры программы.

Clock Week редактируемый

Таймер, который позволяет вносить изменения в настройки.

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

Находится он в онлайн базе макросов. В разделе таймеры и счетчики.

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

Таблица входов и выходов параметров.

Таймер будет активен (ob_On=1) если:

  1. Разрешена работа таймера (Enable=1)

  2. Текущий день недели совпадает с выбранным (bm_WeekDay)

  3. Время включения (On_h и On_m) меньше времени выключения (Off_h и Off_m).
    Текущее время больше времени включения И меньше времени выключения

  4. Время включения (On_h и On_m) больше времени выключения (Off_h и Off_m).

  5. Текущее время больше времени включения ИЛИ меньше времени выключения
    Если следующий день недели не используется, то таймер выключится

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

Вот таким образом выглядит подключение макроса.

Недельный таймер с двумя режимами работы

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

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

Выглядит таймер, вот таким образом.

Таймер реального времени в программируемых реле ОВЕН ПР Электричество, Windows, Электрика, АСУ ТП, Я у мамы инженер, Асу, Отдел АСУ, ПЛК, Программирование ПЛК, Длиннопост

Входы и выходы макроса.

Недельный таймер предназначен для организации выдачи управляющих воздействий
на объект в зависимости от дня недели и текущего времени. Таймер автоматически
определяет текущий день недели по входам «Год», «Месяц», «День» на которые
необходимо подать сервисные переменные часов реального времени.

Текущее время на таймер заводится через входы «Часы» и «Минуты». Таймер может находиться в одном из трех состояний, которые определяется по входу «Режим работы».

«Режим работы»=0 — таймер выведен из работы

«Режим работы»=1 — в этом режиме выход таймера Q1 будет установлен в «1» если
совпадут следующие условия:

  • на вход «Все дни недели» будет подана лог.1 или как минимум на один из входов дня недели

  • текущее время станет равно или больше заданного времени включения, выбранногочерез входа «Часы.ON» и «Минуты.ON»

  • совпадет текущий день недели с выбранным через входы дней недели, или если будет установлен вход «Все дни недели» совпадет заданное время включения с текущим временем

«Режим работы»=2 — Данный режим работает аналогично режиму 1, но только один раз.
После того как выход Q1 таймера отключится, выход «Режим работы» установится в
значение «0» — запрет работы таймера, таймер не будет работать до следующего изменения режима работы через вход «Режим работы». Не зависимо от того сколько дней недели будет выбрано, срабатывание произойдет только один раз в ближайший выбранный день.

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

Пользуйтесь, на этом я завершаю

Показать полностью 6

Owen Logic: ПИД для задвижки

На днях как-то приiлось ставить прибор ТРМ12. и я задумался, как реализовать ПИД в Owen Logic. В Codesys 2.3 и 3.5 у меня есть понимание и рабочие алгоритмы, которые стоят на объектах. Для Программируемых реле у меня не было решений.

Приветствую всех, уважаемые читатели. Напишу краткий пост об этом решений.

ПИД с аналоговым выходом

На сайте ОВЕН выложили примеры для ПР205 о макросе с ПИД-регулятором. Но там с аналоговым выходом от 0-100 %.

Owen Logic: ПИД для задвижки Программа, Программирование, Windows, АСУ ТП, Асушник, Асу, Отдел АСУ, ПЛК, Программирование ПЛК

Его можно немного доработать и мы получаем ПИД для задвижки с дискретными выходами.

ПИД для задвижки

Вставляем макрос в менеджере компонентов в разделе управляющие и регулирующие модули RegKZR.

Owen Logic: ПИД для задвижки Программа, Программирование, Windows, АСУ ТП, Асушник, Асу, Отдел АСУ, ПЛК, Программирование ПЛК

Его входные и выходные параметры:

Owen Logic: ПИД для задвижки Программа, Программирование, Windows, АСУ ТП, Асушник, Асу, Отдел АСУ, ПЛК, Программирование ПЛК

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

С уважением, Гридин Семен

Показать полностью 2

Вопрос по if else в языке программирования ST

Приветствую всех читателей, у меня есть вопрос.

Вопрос по if else в языке программирования ST Инженер, Сборка, Программирование, ПЛК, Языки программирования, Программирование ПЛК, АСУ ТП

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

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

Как мне можно обойтись без if else, если это вообще получается в коде? Слишком громоздкий код, постоянные ошибки.

Показать полностью
Отличная работа, все прочитано!