Программная среда CoDeSyS 3.5
23 поста
23 поста
9 постов
5 постов
2 поста
3 поста
3 поста
Был на реальном объекте в теплице. Хотят, чтобы автоматически работал надув.
Мы изначально делали чисто цикл. таймер ставили и регулировали пуск и паузу.
Теперь появилась мысль, поддерживать давление в межпленочном пространстве.
Теперь вопросы. Эта идея реальна? И сколько Па там между плёнками?
Знатоки, отзовитесь...
Бывают задачи, когда нужно последовательно подвигать механизм вверх-вниз или влево-вправо (Например механизм протруски в прессе). Или движения тележки.
В LD программе есть научное название такой схемы - называется мультивибратор.
Реализация для ПЛК Delta.
Ставим два таймера, один с замкнутым выходом, другой с разомкнутым. Данный пример отображает работу гидравлического механизма с двумя катушками Y21 и Y22.
В параметре D2001 выставляете необходимую задержку времени. Этот же параметр можно вывести на панель оператора, любую, где есть драйвер этого ПЛК.
Если будут вопросы, пишите.
Список вопросов и ответов по разным направлениям:
OPC сервер ОВЕН свяжется по Ethernet С ПЛК200 чтобы в SCADA передать?
Можно использовать OPC сервер ОВЕН в режиме Modbus TCP Master
С ОРС сервера записываю напрямую в Retain переменные, почему они не сохраняются при пропаже питания?
Поднимайте slave через библиотеку OwenCommunication
Какой-нибудь пример, как расходомер реализовать?
См. в библиотеке OSCAT Basic блок FLOW_METER
У Codesys есть такая функция, вот управление клапаном открыть, закрыть, задаёшь полный ход клапана в сек, чтоб можно было задать ему проценты, и он открывал на нужное в процентах?
Вы можете использовать ФБ APID_POS_VALV из библиотеки CmpOwenPidRegs
Подскажите пожалуйста, а у ПЛК200 есть системная переменная времени цикла?
глобальные переменные в cds3.5 они энергонезависимые?
По умолчанию нет
Как в ПЛК200 в символьной конфигурации папки создавать?
Для OwenCloud папкой будет являться каждая программа/список глобальных переменных, которая используется в символьной конфигурации
ПР103 на 24 В сколько может влезть всего целочисленных переменных с облака?
примерно 150-200 переменных целочисленных
В Owen logic есть функция MOVE, чтобы мне можно было записать переменную?
Особенность ОЛ в том что запись в переменную возможно только в одном месте на схеме, функции MOVE нет, если вам нужно сделать запись с защитой то придется использовать SEL,где на один из входов подается та же самая переменная
ПР103 включили в режим DHCP для подключения к облаку Owen Cloud, включить то включили, все здорово, а овен лоджик перестал видеть прибор, как мне к нему теперь по Ethernet соединиться?
Подключиться по USB и посмотреть текущий IP, указать его в настройках подключения в ОЛ.
в Optimus Drive есть таймер который делается меньше 10 ms ?
T252~T255, но если Вы хотите получить действительно 1 мс строго, то к каждому из этих таймеров можно привязать подпрограмму прерывания. I49 – I52
Я могу в каждом шаге один и тот же таймер T252 использовать?
Таймеров 4 штуки, использовать можно таймер 1 раз в программе. Но его контакт Вы можете использовать неограниченное количество раз.
пример опроса Модуля тензодатчиков A01WG
Обращение к регистрам через команды FROM/TO.
Приветствую всех, у меня есть тг-канал, в котором я выкладываю небольшие обучающие видеоролики, лайфхаки и фото монтированных шкафов автоматики.
Если интересно, заходите
Моя телега.
2 года назад заказчик дал задание на автоматизацию постов налива бензина. На каждый пост своё управление. Затем все собираем в кучу в SCADA систему. К сожалению проект пришлось заморозить, так как требовалось кучу разрешительной документации. Сама программа работала «на столе». На реальном объекте испытать не удалось. Пишу статью, может для кого-то пригодятся «Фичи» в CoDeSyS 3.5.
Приветствую всех читателей сайта, с вами на связи автор — Семен. И я продолжаю писать статьи по пром. автоматизации.
Пост налива — это некая металлоконструкция с лестницей и гибким шлангом, либо сверху, либо снизу. Этот шланг подводят к бензовозу и наполняют его топливом. Выглядит он следующим образом:
Топливо наполняется вот таким вот шлангом:
Что находится примерно в составе оборудования.
Насос
Клапан большого налива
Клапан малого налива
Массовый расходомер
Различные сигнализации
Какие задачи были поставлены в реализации программы:
Универсальность — передача данных для верхнего уровня либо по Ethernet, либо по RS-485.
Подключение различных видов массовых расходомеров — по импульсу или по Modbus.
Фиксация различных аварий и защит и запись в аварийный журнал.
Запуск программы по месту или удаленно.
Различные клапана подачи топлива, либо два клапана либо регулирующий кран.
Управление постом налива реализовывали на базе ПЛК200 с применение CoDeSyS 3.5.
Ну начнем с того, что я разбивал все процессы и задачи на подпрограммы — чтобы потом легче было находить косяки при отладке.
Дерево проектов выглядит примерно так:
В основной программе создан подраздел действие (ACT), сюда я записываю различные преобразования данных, передачу данных и привязку физических входов-выходов.
Тело программы (PLC_PRG) с логикой.
И различные функциональные блоки и функции. Аварии(Avarii_post) и Регулирующий кран(kran)/
Опрос модуля ввода аналогового, панели оператора и массового расходомера по интерфейсу RS-485.
Обязательно ручной режим, включение насосов, задвижек, клапанов, кранов и т.д.
Расчет расхода сделал примерно таким, без учета цены импульса. Знаю, что код кривоват, если есть варианты получше, подскажите, как написать?
Выбор режима для расхода и задвижки делал через CASE.
Запуск пошаговой программы реализован через CASE. При отладке наглядно показано, где программа остановилась и по какой ПРИЧИНЕ.
Обработчик стоповой кнопки, все прописано, когда, куда и что должно остановиться.
Обработчик аварий и отправка сообщений через массив.
Аварийная ситуация и что должно произойти.
Ставили ещё маленькую панель оператора, вот такая была менюшка:
Ну и что предполагалось быть в мнемосхеме Master SCADA 3.12. Ставили именно её.
На этом я заканчиваю, если будут вопросы, пишите.
Появляются задачи, когда нужно на экране ПР200 или ПР205 или ПР225 задать доли секунды или доли минуты.
На примере покажу, как это сделать.
Заходим в программу Owen Logic, возьмем пример ПР200.
После этого добавляем переменную типа Float. Изначально в таймер задаются значения в миллисекундах. Если нам нужны минуты, то нужно преобразовать сначала в секунды, а потом в минуты. Получаем такое интересное число 60 000. Переменную умножаем на это число и подаем в блок таймера.
Таким образом можем ввести минуты с долями. Часто просят сделать секунды с долями. Потому что для работы автомата задержка с целочисленной секундой бывает много. Если нужны секунды с долями, то умножаем просто на 1000.
Результат:
Для настройки экрана заходим в менеджер экранов.
Добавляем блок на экран и присваиваем переменную.
На этом я заканчиваю, всем пока-пока.
Пишу этот пост в основном для новичков, которые вот вот начинают осваивать программируемое реле и ПО для них.
Начнем с простого сравнения чисел с плавающей запятой.
Создаем проект и добавляем необходимые элементы.
Для сравнения чисел с плавающей запятой нужны элементы с приставкой f.
Операция Вх1 > Вх2.
Операция Вх1 < Вх2.
Операции Вх1 ≥ Вх2 и Вх1 ≤ Вх2, к сожалению среда позволяет делать только с целочисленными значениями. Чтобы выполнить в целочисленном варианте, я просто умножаю на 100 перевожу в целочисленный и сравниваю.
Если знаете как сделать с плавающей точкой, напишите в комментариях.