При добавлении модуля ПРМ в Лоджик автоматически добавляются входы и выходы модуля.
Адреса входов и выходов ПР прописаны в инструкции по эксплуатации, про ПРМ не знаю.
Можно просто собирать состояния в маску и передавать в СКАДУ целочисленным числом
Вид для печати
При добавлении модуля расширения(ПРМ) по внутренней шине входа выхода сами добавятся на холсте программы, ничего дополнительно не надо делать. Произвольно добавить входа выхода на холсте программы нельзя(это не макросы) и не нужно. Можно расширить холст программы на сколько Вам потребуется, но лучше разбить на функциональные части(блоки) и оформить эти части в виде макроса, тогда и холст программы не придётся сильно увеличивать!
Подскажите пожалуйста.Авария приходит когда реле давления разомкнуты перед насосом и после насоса.Так вот прежде чем запустить насос аварии должны быть устранены потом только идет запуск насоса.Не пойму такую вещь.Когда перед насосом реле замкнуто приходит сигнал что реле в норме.А вот не пойму как запустить насос если реле на выходе из насоса еще разомкнуто так как насос не включен и идет авария.Только после включения насоса реле на выходе замкнется.
Проверяйте состояние реле когда насос уже работает
Вложение 64543
Еще такой вопрос не могу додуматься.Когда нажимаю пуск у меня программа идет по циклам.Запускается насос далее открывается клапан далее когда клапан открылся он дает сигнал на таймер запуска котловых насосов таймер отсчитывает 20сек и запускает котловой насос далее открывается клапан и так далее.Так вот когда в ручном режиме включаю насос сетевой то при открытие клапана он посылает сигнал на таймер для открытия запуска котловых насосов.А мне это не нужно ума не приложу как в ручном режиме открыть и закрыть заслонку при этом сигнал не должен идти на таймер на запуск котловых насосов.Управление ручное сделал вкл насос сетевой вручную далее вручную запускаю таймер на открытие но он когда досчитает переходит в 0 и этот сигнал завязан на таймере который запускает котловые насосы а так не должно быть они должны стоят.Как не пропустить сигнал 0 на таймер котловых насосов в ручном режиме?
Вам нужно все эти этапы разбить на макросы. У макросов сделать вход "Ручной режим" и "Команды управления в ручном режиме". В ручном режиме макрос должен либо не реагировать на вход, либо не подавать сигнал на выход, либо и то и другое. Ручной режим можно сделать общим для всех, либо для каждого индивидуально
Далее, если это актуально, то в макросе управления насосом и задвижкой (который я выкладывал) я обнаружил косяк, который в некоторых ситуациях может вывести из строя привод - интересует?
Вы не поняли, SEL будет подавать в автомате уставку, в ручном 0, Write_to_Fb записывает в таймер уставку либо 0. Уставка должна задаваться в ms, если вам нужны например секунды, умножаете на 1000. Если минуты, умножаете на 60000 и т. д.
AND так же блокирует сигнал в ручном, разрешает в автоматическом.Вложение 64545
Надо взять блок И. На один вход подать переменную насоса, на другой переменную авто или отрицание руч - зависит от того как вы этот режим активируете.
Или, например, вот макрос насос + задвижка. Когда макрос отработает алгоритм, то активируется выход Далее для следующего макроса. В ручном режиме этот выход не активируется
Смотрел ваш код который вы присылали.Хорошая тема выбор насоса 1 или 2 по очереди.Но я не понял как работаю битовые блоки в чем там смысл?Вложение 64546
Ну, во-первых, тут тоже есть ошибка, которая в некоторых случаях одновременно подает команды на открытие и закрытие клапана. Вот исправленный макрос
Вложение 64547
Битовыми блоками я выбираю какой из насосов должен работать: если Насос 1 и Насос 2 не активны, то Режим в двоичной форме 11 (3 в десятичной), если активен Насос 1, то Режим в двоичной форме 01 (1 в десятичной), если активен Насос 2, то Режим в двоичной форме 10 (2 в десятичной). А на выходе я формирую команду на запуск: для Насоса 1 - Насос И бит 0, для насоса 2 - Насос и бит 1. Получается, что если Режим 11, то запустятся оба насоса, если Режим 01- то запуститься Насос 1, если режим 10, то запуститься Насос 2.
Точно также я обрабатываю аварию от насоса - просто обнуляю бит того насоса, который выпал в аварию. При аварии по давлению обнуляются оба бита, что приводит к остановке всех насосов
Еще, советую для страховки перед выходами управления приводом заслонки поставить такой макрос
Вложение 64549
Он не даст одновременно подать команды на оба выхода. Приоритет у команды Закрыть. Задержки нужны для паузы при смене направления движения
Так и имелось ввиду - отключение ручками. А по процедуре: возьмем, например, сетевые насосы - работают два, один нужно вывести из работы. Как действовать - просто отключить его или отключить систему, дождаться когда закроется задвижка, переключить на один насос и запустить? А как на такое отключение должны котловые насосы отреагировать - никак или тоже остановиться и потом запуститься с полной процедурой открытия/закрытия задвижек?
Вообще лучше отключить систему дождаться когда закроется задвижка.Что бы можно было и в ремонт вывести насос и циркуляции через него не было.Переключать не нужно просто во время работы двух насосов что бы можно было выключить любой и включить тоже в любой.Котловые насосы не должны на отключения реагировать у нас хватает давление что бы на одном сетево работала два других насоса.Но и котловые насосы тоже бы желательно предусмотреть что бы их можно было чередовать как и сетевые.
Пока только концепт. Макрос пока работает немного криво, надо продумать и, возможно, заново написать алгоритм.
Значит, я добавил вход "Ручное отключение" - при его активации, происходит корректное отключение насосов, но выход "Далее" остается активным. Далее, можно переключить режим 1 насос/2 насоса и снять сигнал, произойдет процесс запуска в новом режиме. При авариях макрос реагирует соответственно, но выход "Далее" остается активным. Чтобы вырубить все при аварии нужно активировать вход "Форс стоп". Добавил выход "Код аварии", чтобы знать причину. Стоит работать далее в этом направлении?
Можно использовать и булевы функции. Просто мне показалось, что через PUTBIT будет лучше. Вот пример одной задачи двумя способами
Вложение 64585 Вложение 64586
Добрый день. Подскажите пожалуйста, что делаю не так. Не получается сохранить энергонезависимую переменную.
Проект на ПР103-24.1610.03. Счетчик считает импульсы. Когда досчитывает до 10, выход счетчика записывается в энергонезависимую переменную «Память». Переменная память трансформируется в булевскую (просто для демонстрации что что-то записалось) и передается на панель оператора. По логике, при пропадании питания, запись в переменной память должна сохраниться, но этого не происходит, она обнуляется. Подскажите, из-за чего это может быть?
Вложение 88319Вложение 88320
В данном случае счетчик просто для примера, чтоб наглядно было. Хотел показать, что переменная записывается, но если питание пропадает, стирается. А вообще задача сохранять уставки с панели оператора. Также переменные записываются, отображаются, но если пропадает питание, стираются.
В простом случае переменная должна записывать сама в себя (или через SEL), Вложение 88324
для инициализации при включении сетевых переменных, пример тут https://owen.ru/forum/showthread.php...676#post431676
Для инициализации счётчика вход N и импульс на Res.
В панели оператора вообще то есть энергонезависимая память PFW, в которую можно сохранить, а при в включении записать в нужные регистры.
При перезагрузке макрос Save тупо переписывает нулем энергонезависимую переменную Память.
Если вам нужно именно по сигналу запоминать, то можно так
Вложение 88321
А, если, используете Slave сетевые переменные, то и так
Вложение 88322
Спасибо огромное! Сегодня попробую