Просмотр полной версии : Программа контроля работы насоса
Доброго времени суток.
Около недели назад начал изучать CoDeSys в связи с необходимостью запрограммировать контроллер ОВЕН ПЛК-63.
Помогите пожалуйста решить задачу.
Нужно написать программу на контроллер ПЛК-63, которая будет обеспечивать аварийную остановку насоса.
Последовательность работы системы будет следующая.
Сначала нужно опросить 4 датчика, подключенные в дискретные входы контроллера. Если их показания соответствуют требуемым, дать команду на запуск двигателя насоса.
На протяжении некоторого времени насос должен работать на трубу с закрытой заслонкой, для создания в трубе необходимого рабочего давления. Давление будет измеряться датчиком.
После достижения необходимого значения давления, контроллер должен получить сигнал об этом от датчика давления и выдать команду на электромагнитный клапан, чтоб тот начал открываться. Вместе с началом открытия клапана следует запустить таймер.
Если через определенный промежуток времени контроллер не получит сигнал от концевых датчиков клапана о том, что он уже в открытом состоянии, необходимо подать сигнал остановки на двигатель насоса.
Попытки написать данную программу самостоятельно потерпели фиаско, так как программист я не опытный. Теоретически изучил языки МЭК, но на практике пробовал делать только примеры, из документации, что шла с ПЛК.
Буду благодарен за любые подсказки, как реализовать данный проект, или за примеры реализации подобных программ, если вдруг у кого завалялись.
Заранее спасибо)
Датчик давления на выходе насоса какой?(аналоговый или дискретный)
Если их показания соответствуют требуемым
Интересная трактовка состояния дискретных сигналов :)
По существу Вы бы выложили свои изыскания, для Вас же легче когда поправят Ваш проект, чтоб Вы не "плавали" в чужих мыслях
Николаев Андрей
03.04.2011, 10:21
На каком языке пишете?
Здесь я бы посоветовал либо LD либо ST.
Датчик давления на выходе насоса какой?(аналоговый или дискретный)
Дискретный.
Интересная трактовка состояния дискретных сигналов
Сорри за некорректрное описание. Только начал заниматься подобными вопросами, по этому объясняю все так, как понимаю, но судя по всему иногда понимаю не правильно(
По существу Вы бы выложили свои изыскания, для Вас же легче когда поправят Ваш проект, чтоб Вы не "плавали" в чужих мыслях
Как только появится какая-то программка, более менее подобная на правильную, сразу же выложу.
На каком языке пишете?
Здесь я бы посоветовал либо LD либо ST.
Пытаюсь писать на ST.
Проблемма в том, что до конца не понимаю, как разбить мою программу на структурные части и какую именно задачу каждая из частей программы должна выполнять.
по поводу входных дискретных сигналов, разрешение это когда все в состоянии TRUE или если иначе то какова таблица истинности
Да, разрешение - это когда все 4 входных датчика дают TRUE.
Если хоть один из входных датчиков после опроса остался в состоянии FALSE, выключение двигателя насоса не производить.
когда открывается заслонка, давление должно упасть, на это тоже не обращать внимание, а тогда напрашивается вопрос есть ли датчик сухого хода
Спасибо за вопрос по поводу датчика сухого хода. Выясняя этот вопрос узнал, что поступили небольшие изменения задачи.
Датчик давления будет аналоговый с выходом 4...20 мА, а не дискретный, кая я по ошибке написал раньше.
По достижении необходимого давления (0.7 рабочего давления) в трубе с закрытой задвижкой, датчик должен дать сигнал на открытие задвижки и одновременно запустить таймер. За время работы таймера (10 с) задвижка должна полностью открыться.
Если время на таймере закончилось, а задвижка еще не открылась до конца, следует отключить двигатель.
Показания аналогового датчика давления должны сниматься постоянно и в случае, если они упадут до 0.3 рабочего давления, следует отключить двигатель.
Датчик сухого хода в схеме есть, но он не будет подключен к данному контроллеру.
а какова его цель, он скорее всего тоже будет отключать двигатель, тогда нужна обратная связь от движка, в каком он состоянии
По поводу датчика сухого хода поговорил с электриком, он сказал, что сам будет заниматься его подключением и что мне вопросами датчика сухого хода заниматься не нужно.
Мне нужно только сделать программу, которая будет обеспечивать включение двигателся при сигналах TRUE c 4 входных датчиков и обеспечивать его аварийную остановку в случае не полного открытия клапана либо в случае недостаточного давления в трубе после полного открытия клапана.
я бы начал с такого варианта
Capzap, огромное спасибо за помощь!)
Попробую теперь запрограммировать контроллер, привязать переменные из проги к входам/выходом контроллера и буду смотреть результат.
без фанатизма, это же просто набросок
Все равно огромное спасибо)
Набросок ответил на многие возникающие у меня вопросы по поводу будущей програмы.
Если их показания соответствуют требуемым
Интересная трактовка состояния дискретных сигналов :)
:D :D :D :D :D :D :D
Возникла проблема в реализации програмы, до решения которой своими мозгами дойти не получается(
Подскажите, если кто в курсе.
Если 4 входных дискретных датчика (в программе к1,к2,к3,к4) установить в положение TRUE, переменаая pmp принимает значение TRUE и запускает таймер ton1.
Спустя 10 секунд должен передаться (либо не передаться) сигнал от датчика к5. Если датчик в положении TRUE, работа программы должна продолжаться, если же датчик к5 в FALSE, должен пойти сигнал на завершение работы (переменная off_work).
Сигнал то идет (линия связи окрашивается в синий цвет), но переменная off_work не принимает значение TRUE.
В чем проблема и как ее возможно решить?
Архив с программкой прилагаю к сообщению.
Ответ на вопрос уже нашел. Проблема оказалась в том, что после присвоения переменной значения TRUE, ей же присваивалось FALSE.
Закончил данную программу управления насосом, подключил к ПЛК63 и записал ее в контроллер, чтобы подключить к нему датчики и проверить на работоспособность.
Сразу же возник вопрос как увязать переменные, использованные в программе с входами/выходами контроллера. Пытался в конфигурации ПЛК входы и выходы назвать именами переменных, как в моей программе. после присвоения имен входных переменных дискретным входам контроллера все работало нормально. Но после попытки присвоить имена выходных переменных релейным выходам контроллера получил ошибку "Проект должен быть корректен для подключения",а внизу написало " Ошибка 3703. ...Несколько объявлений с одинаковым идентификатором".
В чем проблема и как ее решить?
проблема в том, что вы под 2 раза объявили одни и те же переменные - 1 раз в конфигураторе, второй где-то в программе
удалите объявления из программы и оставьте в конфигураторе
Николаев Андрей
12.04.2011, 15:09
проблема в том, что вы под 2 раза объявили одни и те же переменные - 1 раз в конфигураторе, второй где-то в программе
удалите объявления из программы и оставьте в конфигураторе
Это первое.
Второе - обратите внимание - выхода ПЛК63 требуют числа типа Real, а не bool. В простейшем случае просто используйте преобразование bool_to_real
Спасибо большое. Буду пробовать.
Подскажите пожалуйста
-как на CFC делать преобразование bool_to_real для выхордных параметров
-как сдалть так, чтобы запуск программы производился кнопкой "ПУСК" с контроллера, а не с CoDeSys
Николаев Андрей
14.04.2011, 23:04
1.вставляете простой блок. Так и пишете bool_to_real. На вход подается изначальное значение. С выхода - подаете на выход ПЛК.
2. Программно. Вы сами в программе учитываете, что только если вход какой то сработал - запускать таймеры, включать механизмы и т.д.
2. Программно. Вы сами в программе учитываете, что только если вход какой то сработал - запускать таймеры, включать механизмы и т.д.
У меня программно записано, что после сигнала TRUE с 4 входных датчиков нужно запускать двигатель насоса, но ничего не происходит, пока не нажму в CoDeSys кнопку "старт".
При нажатие кнопки "пуск/старт" на самом ПЛК реакции никакой.
Николаев Андрей
15.04.2011, 10:34
Уважаемый Santim. Прошу Вас потратить еще немного времени на ознакомление с прибором.
Кнопки на лицевой панели - для создания Вашей логики их работы и для некоторых сервисных. То есть данная кнопка не запускает\останавливает работу самого контроллера, а, программно обработанное нажатие на неё и должно давать решение. Для работы с кнопками используется библиотека, идущая в комплекте на диске. Там же есть пример использования.
Для запуска контроллера после записи программы из CoDeSys необходимо действительно либо нажать Старт в CoDeSys, либо перезагрузить контроллер
Спасибо, пошел перечитывать руководство)
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot