PDA

Просмотр полной версии : помогите чайнику!



Oleg K
11.10.2012, 23:06
Уважаемые форумчане! помогите пожалуйста написать программу для поддержаня температуры обратной воды от температуры наружного воздуха для управления двумя котлами,применяется ПЛК 150 и ИП320.

Николаев Андрей
12.10.2012, 11:00
Вам нужно зайти в архив примеров программ и полезностей.
В ней есть пример графика коррекции и пример связи ИП320 с ПЛК

userjoy
12.10.2012, 11:16
Доброго врем суток, помогите пожалуйста кто может советом или примером или полезной информацией, мне нужно написать управление servoприводом в CODESYS но я не знаю с чего начать :((((

Oleg K
13.10.2012, 21:52
спасибо за помощь.подскажите еще пожалуйста как организовать включение второго котла? тоесть первый котел работает всегда для поддержания заданной температуры, а второй котел должен включаться в работу только тогда , когда первый не может справиться в нагрузкой.

Oleg K
13.10.2012, 21:54
буду очень благодарен за любую помощь. если сможите прикрепите пожалуйста пример проекта

capzap
13.10.2012, 21:59
котел это наверное бойлер, работу с ними можно найти на oscat.de

lara197a
13.10.2012, 22:00
Задайте условие, при котором включается 2-й котел.
К примеру: 1 котел -100% в течение 5 минут, а Т установленная на 3 градуса или более выше Т измеренной.

capzap
13.10.2012, 22:09
Задайте условие, при котором включается 2-й котел.
К примеру: 1 котел -100% в течение 5 минут, а Т установленная на 3 градуса или более выше Т измеренной.

Стоит упоминуть о гистерезисе, а то если температура начнет плавать возле трех градусов, второй котел будет дергатся

Oleg K
13.10.2012, 22:12
а не могли бы Вы помочь примером, а то я с ПЛК Овен только еще начинаю разбираться, до этого приходилось работать только с контроллерами митсубиши MRD-24D, а тут все совсем подругому

lara197a
13.10.2012, 22:43
Стоит упоминуть о гистерезисе, а то если температура начнет плавать возле трех градусов, второй котел будет дергатся

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

Oleg K
13.10.2012, 23:01
если не трудно ткините носом, а то весь форум перелазил, но ничего подходящего не нашел.

Andrei Z
13.10.2012, 23:24
у нас позиционное регулирование например на котлах.. Один котёл имеет два положения 50% и 100%.
Поддержания температуры происходит только переключением с 50 на 100 определённое время.
И если первый котёл работает какоето время 100% .. то при подключении второго котла 50% (малое горение) Первый что в автомате снова сам начнёт щёлкать по ближе к 50% потому как два котла по 50 =100

Oleg K
14.10.2012, 09:10
нет, а мне нужно так: два датчика температуры, один на улице другой в контуре отопления работают по графику, и имеется 2 котла, один работает постоянно для поддержания заданной температуры, а второй должен включаться только тогда когда первый котел не может справиться с нагрузкой.потом опять работает только один котел. помогите пожалуйста организовать такой алгоритм

Николаев Андрей
15.10.2012, 11:13
На каком языке предполагается программа?
По графику коррекции:
http://www.owen.ru/forum/showpost.php?p=10548&postcount=15
По поводу работы двух котлов:
Я так понимаю, что никакого ПИД у Вас нет.
Если уставка по графику выше чем реальная температура - котел включить на 100%.
Дальше проверяете простое условие:
Если котел 1 включен, и при этом заданное время температура все-равно не доходит до уставки - включить второй котел.
Ну и наоборот.

Посмотрите блоки регулирования в библиотеке UTIL.lib

Oleg K
15.10.2012, 22:12
спасибо за помошь. программу буду писать на CFC.

Oleg K
15.10.2012, 22:36
если не сложно не могли бы Вы помочь в написании данной программы?

capzap
15.10.2012, 23:10
если не сложно не могли бы Вы помочь в написании данной программы?

http://www.owen.ru/forum/showpost.php?p=93489&postcount=2

Николаев Андрей
16.10.2012, 10:17
Не очень сложно, но нет времени.
Пробуйте. Начнете делать сами - и Вам форумчане обязательно помогут.
Вам нужно:
1. Посмотреть как на CFC выглядит блок регулятора.
2. Разобраться как вызывать и перезапускать таймер.

А дальше вообще все просто.

Если сделают за Вас - Вы не сможете потом ничего изменить.

Oleg K
16.10.2012, 23:06
всем добрый вечер! подскажите пожалуйста имеет ли такое решение место быть. если что то не так прошу сильно не ругать, и по возможности поправить где я напортачил.

Николаев Андрей
17.10.2012, 08:58
Ну для начала очень не плохо.
Осталось переменные привязать к реальным входам и выходам.
Это описано прям в начале руководства пользователя к ПЛК.

Oleg K
17.10.2012, 20:03
спасибо!это все понятно, вот только подскажите как организовать работу блока GRAPH_TEMP1 по времени, как организовать работу часов для переключения режимов работы, если не трудно можно примерчик на CFC. спасибо за поддержку

Oleg K
17.10.2012, 20:35
спасибо большое! подскажите пожалуйста, как организовать работу блока GRAPH_TEMP1 по времени, для переключения режимов работы (день - ночь). если можно пример на CFC.

Николаев Андрей
18.10.2012, 11:31
с примером на cfc не помогу. Есть на st. Можете точно так же использовать как подпрограмму. Там же в разделе примеров программ и полезностей.
Если наступила ночь - корректируете уставку, либо заменяете её определенным значением.

Oleg K
18.10.2012, 20:54
если не трудно выложите пожалуйста

Николаев Андрей
19.10.2012, 15:45
http://www.owen.ru/forum/showthread.php?t=13588

korwins
19.03.2013, 18:25
Доброе время суток, уважаемые форумчане!

Срочно осваиваю Codesys для ПЛК Овен. Обычные микроконтроллеры программирую, а тут туплю так, что самому страшно.

Задача такая - будет Овен ПЛК150, нужно обрабатывать дискретные сигналы от >16 датчиков и управлять 20 логическими цепями (контакторы, клапаны и т.п. Количество - пока ориентировочно). Выбор пал ориентировочно на МВ110-16Д (или 110-24.32Д) и МУ110-32 и ИП320.

Описание логики на ST абсолютно понятно (по аналогии с другими языками программирования). Как настроить и использовать переменную, соответствующую встроенному входу - тоже понятно, пример делал.
Но вот задача настройки и, главное, считывания дискретного входа на внешнем модуле (МВ110-16ДН, к примеру), т.е. комплект команд, на выходе которого я получу var1 со значением True или False, поставила меня в полный тупик. Описано очень много всяких "отображений адресных пространств модуля ввода-вывода в память ПЛК", но конкретный пример я так и не нашел. Вероятно, через пол-года изучения в голове все станет на свои места, но пока полная каша.
Будьте так добры, ткните носом в полноценный пример по считыванию дискретных входов МВ110-ххх и записи дискретных значений в МУ110-ххх!
Заранее очень благодарен! :)

capzap
19.03.2013, 18:43
Доброе время суток, уважаемые форумчане!

Срочно осваиваю Codesys для ПЛК Овен. Обычные микроконтроллеры программирую, а тут туплю так, что самому страшно.

Задача такая - будет Овен ПЛК150, нужно обрабатывать дискретные сигналы от >16 датчиков и управлять 20 логическими цепями (контакторы, клапаны и т.п. Количество - пока ориентировочно). Выбор пал ориентировочно на МВ110-16Д (или 110-24.32Д) и МУ110-32 и ИП320.

Описание логики на ST абсолютно понятно (по аналогии с другими языками программирования). Как настроить и использовать переменную, соответствующую встроенному входу - тоже понятно, пример делал.
Но вот задача настройки и, главное, считывания дискретного входа на внешнем модуле (МВ110-16ДН, к примеру), т.е. комплект команд, на выходе которого я получу var1 со значением True или False, поставила меня в полный тупик. Описано очень много всяких "отображений адресных пространств модуля ввода-вывода в память ПЛК", но конкретный пример я так и не нашел. Вероятно, через пол-года изучения в голове все станет на свои места, но пока полная каша.
Будьте так добры, ткните носом в полноценный пример по считыванию дискретных входов МВ110-ххх и записи дискретных значений в МУ110-ххх!
Заранее очень благодарен! :)

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

Николаев Андрей
19.03.2013, 18:44
Просили - "тыкаем" :)
http://www.owen.ru/forum/showthread.php?t=13580
Самые подробные описания были на МДВВ.
Здесь для панели:
http://www.owen.ru/forum/showthread.php?t=13581

Главное помните - ПЛК не ПК.
В ПЛК программа АВТОМАТИЧЕСКИ в цикле крутится. На языках верхнего уровня для ПК цикл надо организовывать.
нагляднее всего это показывает программа:
a:=a+1;
Ну и соответственно все наоборот с событиями.
Чаще всего на эти грабли наступают как раз специалисты, переходящие с языков высокого уровня.

korwins
19.03.2013, 21:36
Ага, спасибо - каша в голове стала менять состояние на нечто, пригодное к употреблению!

korwins
13.05.2013, 10:14
Доброе время суток. Возникло два вопроса.
1. Входные данные: ПЛК 110-24-60-К.
К выходу, например, DO9 подключаю резистор 470 Ом, второй его конец к +5Вольт внешнего БП. COM5 - на общий внешнего БП. Пишу "1" в порт, получаю +0,74 В на DO9, пишу "0" - получаю +5В. Все ОК.
Но, если я тоже самое делаю для т.н. быстрых выходов, ничего не происходит, в любом случае на выходе +5В, т.е. транзистор выхода не открывается. Например, резистор на DO3, общий на COM2. Увеличиваю напряжение БП до 15 вольт - результат тот же (ток выхода не превышен, Iмакс= 32мА).
Что я делаю не так?
2. Есть ли возможность остановить таймеры шагов МЭК SFC диаграммы? Поясню - к примеру, действие в случае невыполнения в течении 20 секунд выводит ошибку и останавливает выполнение программы. Для чего нужно - в ходе работы уходим в режим "Пауза", в результате при продолжении программы тут же получаем ошибку невыполнения.
Получается, таймеры шагов МЭК SFC диаграммы работают вне зависимости от того, вызывался ли экземпляр объекта все это время.
Как их можно останавливать?

YuriBel
13.05.2013, 12:38
вы делаете не так тоже, что и другие в аналогичных ситуациях.
Откройте руководство по эксплуатации на контроллер и на стр 36 и 37 обнаружите схемы подключения обычных и быстрых выходов. и отнють не просто так эти схемы разные. Плюс источника питания нужно подать еще на одну точку(или на две), и все заработает. Это контакты 53 и 55, если верить рисунку на стр 40.

korwins
13.05.2013, 14:54
Ага, понятно. В руководстве это 51 и 55. Спасибо, с этим понятно.
Еще вопрос остался:
Есть ли возможность остановить таймеры шагов МЭК SFC диаграммы? Поясню - к примеру, действие в случае невыполнения в течении 20 секунд выводит ошибку и останавливает выполнение программы. Для чего нужно - в ходе работы уходим в режим "Пауза", в результате при продолжении программы тут же получаем ошибку невыполнения.
Получается, таймеры шагов МЭК SFC диаграммы работают вне зависимости от того, вызывался ли экземпляр объекта все это время.
Как их можно останавливать?

petera
13.05.2013, 17:50
Ага, понятно. В руководстве это 51 и 55. Спасибо, с этим понятно.
Еще вопрос остался:
Есть ли возможность остановить таймеры шагов МЭК SFC диаграммы? Поясню - к примеру, действие в случае невыполнения в течении 20 секунд выводит ошибку и останавливает выполнение программы. Для чего нужно - в ходе работы уходим в режим "Пауза", в результате при продолжении программы тут же получаем ошибку невыполнения.
Получается, таймеры шагов МЭК SFC диаграммы работают вне зависимости от того, вызывался ли экземпляр объекта все это время.
Как их можно останавливать?
Честно говоря ни чего не понял.

Для чего нужно - в ходе работы уходим в режим "Пауза"
Зачем этот режим и что он означает?

Есть ли возможность остановить таймеры шагов МЭК SFC диаграммы?
В SFC нет таймеров шагов, по крайней мере в традиционном понимании "таймер".
Выполнение SFC программы это не работа по таймерам.
Переход от одного состояния (шага А) в другой (шаг Б) осуществляется по условиям перехода.
Добавьте к шагам переход по нужному условию на шаг "Пауза" и выводите в нем свою ошибку.
Возможно Вы используете в условиях перехода между шагами одну из специальных переменных -Step.t.
Но это не таймер, а одна из специальных переменных SFC исполнителя и содержит длительность активности шага.
Имеется еще одна -Step.x она содержит признак активности шага. Она нужна для синхронизации шагов.
Обе переменные предназначены только для чтения. Ими у правляет исполнитель SFC.
Отладчик CoDeSys позволяет изменить их значения для целей тестирования. Но делать это из программы категорически не следует.
Если заглянуть глубже, то можно заметить еще две переменные с аналогичными названиями, но начинающиеся с символа подчеркивания. Каждое МЭК действие имеет в CoDeSy s аналогичный набор переменных плюс свой экземпляр управляющей структуры SFCActionControl.

Не используйте неявные переменные на запись в рабочих программах. Это нарушает связь реального хода выполнения шагов с визуальным отображением на диаграмме. Таким образом, SFC диаграмма теряет смысл.
Грамотно реализованный программный компонент на SFC может иметь несколько у ровней вложений. Отдельные действия могут переставлять собой вложенные диаграммы. Компонент может вызывать другие POU. Но в любом случае последовательность работы компонента должна выражаться средствами языка SFC без применения трюков с неявными переменными.
Это выдержка из статьи Игоря Петрова "Отладка прикладных ПЛК программ в CoDeSys". Почитайте на досуге http://prolog-plc.ru/pb1
Нам же найдете в главе 7 и главе 8, как использовать атрибуты контроля времени активности шагов для контроля тайм-аута выполнения SFC.
Почитайте про флаги SFC. С помощью них можно управлять работой SFC программы, даже приостанавливать ее работу.

capzap
13.05.2013, 18:48
Честно говоря ни чего не понял.

Зачем этот режим и что он означает?


Это есть у семена,а в КДС такое можно сделать на ST