В ролике показана разработка программы часового расхода воды на контроллере DELTA AS 200. Реализуются два счётчика импульсов с таймерами, генератор импульсов для имитации сигнала расходомера, пересчёт импульсов в расход и вывод результата для считывания SCADA-системой или панелью оператора.
- 00:01 Постановка задачи: счётчик расхода воды
- 00:25 Запуск симулятора контроллера DELTA AS 200
- 01:00 Создание проекта и программы
- 01:31 Два таймера по 10 секунд для цикличности
- 04:36 Счётчики импульсов и их сброс
- 06:06 Генератор импульсов для имитации расходомера
- 12:44 Вывод значения для SCADA и панели оператора
- 15:47 Настройка интервала 2 минуты и проверка
- DELTA AS 200
- SCADA
Кому полезно: Инженерам АСУ ТП, разрабатывающим программы для контроллеров DELTA
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:01 Всем привет, сегодня поговорим про программу счетчика расхода воды, импульсного с Герконом. Значит, напишем часовой расход воды на контроле Ридельта. Вот так вот выглядит данный счетчик, вот. Напишем такую логику и выведем результат самом контроллере. Для этого запускаем наши соответствующие программы, то есть начало, командир, команда, это виртуальная машина. Так, значит, добавляете драйвер? Если у вас его нету, не убирайте тип контроллера данном случае, а С. 2000 Симулятор нажимаете, ну то есть выбираете, нажимаете применить и далее нажимайте старт. Все в этом моменте мы и закончили, далее нам нужно за по запустить программу, а из спицов не будем записывать нашу.
1:00 Скажем так, писать логику на наш контроль проект называем тест. Выбираем тип контроллера, модель контроллера, папку для сохранения нажимаем. Ок и видим меню, значит, заходим в вкладку программ с Нью называемые, то есть тест, 1 нажимаем ок в этом меню, будем писать программу.
1:26 Нам нужно сделать 2 счетчика расхода воды. Таймер в 1 минуту можно таймер выставлять в 1 2 3 минуты, но для точности чем больше минут. Тем точнее такой счетчик будет, мы будем писать на счетчик на. 1 Минуту и что нам для этого нужно, нам нужно написать 2 таймера каждый таймер по 10 секунд. То есть создаем 2 таймера, прописываем ТМР каждого счетчика.
1:54 То есть это не счетчика таймер именно значит? Давайте дадим название нашим таймером, т. 0 счетчик 1 и. В Адресе адрес пишем, т. 0 так. Тип таймер окей. И 2 название счетчика т 1 счетчик 2 адрес можно выбрать, т. т. 1 окей выбрали, теперь таймером нам нужно. Выставить время, значит, ВС 2 выставляется время данном случае, если мы хотим 1 минуту. Значит, нам нужно выставить 600 миллиардекунд, то есть выставляем 600 Миллисекунд. Это соответствует 1 минуте, так сдаем 2 контакта в этих 2 контакта, мы должны прописать. Счетчик, 1 счетчик, 2 значит, у нулевого счетчика ты 0 вставляем счетчик. Ты 1 а 2 т 0 и у счетчика т 0 нужно. То есть ты 1 должен быть нормально закрытый контакт? То есть таким образом мы реализуем нашу цикличность 2 таймеров, то есть, да мы сделать.
3:11 Прерывание то есть. Грубо говоря, сделать цикличность хорошо создаем следующую. Пишем, то есть пишем ты 0 счетчик 1 и выставляем м кубит расход воды. Видим такой мани модификатор м 0 расход воды по нему. Мы будем записывать таймеры или 1 таймер через минуту, или 2 таймер в течение 1 минуты создаем. М 0 расход воды создали, так? Давайте попробуем продемонстрировать, если мы пока что в течение 1 секунды посмотрим, как этот расход работает. И видим каждую секунду, у нас расход начинает работать.
4:05 Моргать, то есть у нас оба счетчика работают, то есть таймера, и к через 1 секунду они начинают меняться. Хорошо, давайте выставим обратно наши 600 миллиардекунд и продолжим писать программу. Значит, следующим этапом мы написать должны 2 счетчика уже счетчик не таймера, а 2 счетчика. Значит, для того чтобы написать в счетчик, нам нужно написать команду ЦНТ, нажимаем ок.
4:36 И создать их таких нужно, 2 значит, 1 счетчик. Нас же вызываем буквой Ц, то есть ц 0 и так далее. Так давайте напишем ценой, 2 напишем ц 1. Заметьте, название другие нельзя использовать. То есть если это счетчик, то можно использовать букву Ц, добавим сюда контакты. Нулевое и нулевой расход, и нулевой расход, 1 замыкающий, 2 размыкающий контакт. Для цену Лего нормально открытые для отцы 1 нормально закрытый контакт и выставим количество импульсов. В данном случае это 1000 импульсов, то есть нажимаем сохранить, то есть в течение минуты. Ну, 1000 импульсов у нас обычно не происходит.
5:29 Для того чтобы обнулить наши счетчики, мы должны добавить коммандерс и добавить 2 контакт выходных. Значит, там, где циной счетчик выставляем ц 1 по пиццы 1 счетчику, а там дельце 1 по це нулевому, делаем сброс и выставляем ресет каждого 1 и 2.
5:50 То есть, когда досчитает 1 счетчик, у нас произойдет сброс 2 счетчика и наоборот, то есть, когда досчитает 2 счетчик, произойдет сброс 1 счетчика. То есть, я думаю, здесь понятной сложности нет, значит. Теперь нам нужно выполнить, сделать генератор импульсов. В данном случае обычно это происходит по дискрете от. Счетчика расхода воды, но мы сделаем виртуально, то есть пишем команду ТМР, счетчик не счетчика. Таймер назовем вот т, 0 ставим 10 секунд.
6:30 Значит, этот тайм от 10 секунд будет выдавать на импульс? Как будто бы это срабатывает счетчик расхода воды. Значит, поставим м 10 нормально открытый контакт в течение 10 секунд у? У нас будет происходить 1 импульс, значит, добавим еще 1 логику. Здесь поставим наш таймер, т 8 так и в течение 10 секунд у нас должен срабатывать эмка импульса, давайте ее создадим. Назовем ее. Им 1 то есть импульс, так адрес в нее будет м 1. Так добавим ее сюда. Таком виде, с кем оставлять не можем, потому что при достижении камеры секунд у нас просто загорится импульс. Поэтому нам нужно делать сброс этого импульса, поэтому добавляем выходной контакт.
7:32 Будем по таймеру ты 8 это делать, раз рис от добавляем этот выход и 8 и выбираем рост. Все, то есть, через 10 секунд у нас будет постоянно сброс таймера и зацикленная программа, то есть в течение 10 секунд. Теперь добавим этот импульс для каждого таймера 3 нулевого эти 1 значит. И у нас работает импульс, запишем эту программу, наш контроллер виртуально. И продемонстрируем работоспособность схемы. Значит, видим, значит, 1 счетчик начал отсчитывать 1 минуту импульсов сейчас нету. Давайте сделаем, допустим, генератор импульсов, то есть в течение 10 секунд у нас будет создаваться 1 импульс. Об видим, да, то есть на 1 счетчике импульса появилась единица. Спустя еще 10 секунд появилась двоечка, и пока идет 1 минута, у нас будет записываться, как то есть количество импульсов в В. данном случае ждем 1 минуту у нас, мы успели записать уже 4 импульса. 2 Счетчик не считает, то есть, как только минута проходит. Мы видим, что 1 счетчик переключился, записал 4 импульса и сбросился. На 0 сейчас работает 2 счетчик, также записываю. Хорошо, давайте теперь пересчитаем наши импульсы примеру 1. Импульс равен 1 кубу воды, значит, что для этого нужно, значит, нам нужно узнать.
9:10 Расход воды в час, следовательно, что для этого нужно. Нам нужна 1 минута, то есть 600 миллиардекунд, так? Перевести то есть сколько это будет импульсов в час? Следовательно, для этого давайте добавим блок умножения, то есть звездочка, так и здесь с 1 выставляем 1. Счетчик 1 счетчик у нас ценой, следовательно, ставим ценой. Так добавили и должны умножить на 1 час, то есть час равен 60 минутам, следовательно, пишем, 60 выставляем.
9:48 И получаем на выходе д число, то есть это Ворд значение Ворд. Следовательно, нужно наставить д 0, к примеру, так как у нас других чисел нет, поэтому, д. 0 Значит, мы умножаем счетчик импульсом на 60 и получаем число, берут сначала умножение.
10:13 Так как у нас количество времени 600 Миллисекунд, следовательно, нам это число за час. Количество импульса нужно разделить на количество минут, за которые мы считаем, следовательно, нужно разделить на 1 минуту. Поэтому нужно иметь в виду, что сейчас у меня стоит 600 миллиардекунд. То есть 1 минута, то здесь может быть не 600, а 2 минуты 3 и 5 и так далее, следовательно, нужно делить на число. Соответствующее, которая выставлена в 1 тайме, значит, в данном случае мы делим на единицу, так как у нас 600 миллиардекунд равно 1 минуте и выставляем следующую Дэшку, то есть д 1 да, ну.
10:59 Значит, то же самое нужно сделать и для 2 счетчика. Добавляем умножение, вставляем цепь 1 и делим на 60 и свободную дешку. То есть д 2 именно так добавляем блок деления, так? Выставляем д 2 делим на единицу и свободную дэшку д 3 все. То есть еще раз, если нам нужно? За 1 минуту посчитать то нужно делить на единицу, то есть на 1 минуту. Если за 5 минут, то соответствующая на 5 минут напишем программу в контроллер и проверим. Значит, сейчас вот счетчик пошел читать? Импульсы запустим наш генератор импульсов импульсов, сейчас нету.
11:57 Запускаем нашу. Генератор импульсов так видим, каждые 10 секунд у нас должен формироваться импульс. Видим, да вот 1 появился 1 импульс. Значит, это число передается в этот блок умножения, то есть умножается на 60 сейчас, показывается неверное число. То есть, ну, грубо говоря, сейчас шестнадцатеричной системе показывать, но при поставлении д 0 в другой блок у нас все правильно получается.
12:34 Значит, видите, то есть 2 на 60 это 120 120 делить на 1, то есть, ну те же 120. Значит, следующим этапом нам нужно выводить 1 число, то есть если в Скаду или, допустим, на панель оператора нам нужно вводить 1 число? Пишем следующую команду можно мов, это передача значения. Через эту команду. Свободную Дэшку, то есть Дэшку, это будем считывать панелью оператора или Скада система. То есть у нее есть Мобас, адрес спокойно можем? Ее считывать, то есть это число будет меняться раз в 1 минуту, которую мы выставили раз 2 минуты или раз 5 минут, то есть смотря как. Написали программу, в данном случае у нас оно должно меняться раз в 1 минуту. Значит, для 1 выставляем д 1 выходное значение, а для 2 мов? Выставляем д 3 так все здесь понятно и для того, чтобы перезаписывать это число или триггер для перезаписи, нам нужно добавить 2 контакта.
13:44 Делать это будем по счетчику. Значит, делаем т 0 1 счетчик и т 1 2 счетчик, и здесь обязательно выбираем по верхнему фронту. Вот так. И в принципе наша программа прочненькая готова. Давайте попробуем ее загрузить контроллер и проверить. Как работает логика? Поднимаемся выше, мы видим таймер, пошел 1 счет 1 минуты. Давайте запустим наш генератор импульса. Значит, камер пошел, запускаем генераторы импульсов. Теперь каждые 10 секунд надо формироваться импульс и выписываться значения, так и, значит, пройдет сейчас 1 минута.
14:48 И можем увидеть, что на 1 таймере у нас 2 импульса сформировалась. И начал работать 2 таймер. Ну, давайте посчитаем, то есть 2 импульса должны были умножены быть на 60 и деленное на единицу, то есть в сумме у нас получалось. 120 Вот видим, что скаду система или на панель оператора мы. Можем считать число, 120 то есть 20 м кубических час расход. Сейчас считает 2 таймер, 1 минута, так как импульсов стало больше то, что и позже раньше включил импульс, значит, видим 5 импульсов.
15:27 То есть умножаем 60 на 5 делим на единицу, то есть получаем? Ну, уже 6 импульсов, то есть 3 600. 3 360 М кубических час мы получаем на выдохе таким. Вот такая вот простая программка для написания. Расходованы, но смотрите, если отсек 2 минуты использовать, то есть смотрите 2 минуты. Это 1200 Миллисекунд, следовательно, выставляем здесь 1200 миллиардекунд, так? Значит, в этом блоке здесь уже нужно делить не на 1 минуту. Она 2 так, как тыщу 200 сад составляет 2 минуты, сохраняем. Запишем, контроллер, давайте посмотрим.
16:13 Загружаем. Смотрим, так, значит, запускаем генератор импульсов, все работает все точно так же, ну. Ну, имеется ввиду вот этот генератор импульсов, я сделал его. Не должно быть в программе этот генератор импульсов чисто для демонстрационной версии. Значит, смотрим, а сейчас сформировалось 2 импульса. То есть 3 уже умножаем, на 60 получаем? 180 Симпульсов у нас станет больше, делим на 2 то есть. По истечении 2 минут то число, которое в пересчете, получится от количества импульсов, то запишется уже в скаду. Система, то есть когда система или в данном случае панель оператора будет получать данные. Раз в 2 минуты ждем, 2 минуты осталось немножко.
17:22 И увидим, какое число запишется через спустя 2 минуты. Значит, осталось подождать, смещусь, то есть 20 секунд. 5 Секунд посмотрим и видим 300 записалось, то есть следующее значение, сколько импульсов у нас будет запишется через 2 минуты. Поэтому обязательно в этом блоке нужно прописывать количество минут здесь, может быть, и 5 минут, так как интервалы импульсов могут быть очень долгими примеру. Там 3 минуты только 1 импульс, поэтому интервал этот нужно увеличивать вот.
18:03 Имейте ввиду, это в виду, вот если же импульсов много можно использовать меньше значения. Если же интервал импульсов очень долгие на там 1 импульс раз в минуту, поэтому нужно увеличивать все же вот этот таймер.
18:25 Вот следовательно, если используем 5 минут, то здесь уже делим на 5 верхнем блоке, ставим 3000 миллиардекунд. Вот такая вот программка. Значит, счетчик импульсик, давайте отключим. Не видим, сегодня после дальше не проходят, но таймер работает. Следовательно, если пройдет все эти 2 минуты, у нас таймер будет равен, 0 то есть расхода нет. Вода никакая не потребляется, то есть расход будет равен. 0 Вот, следовательно, то есть это число, которое сейчас записано, но будет обновляться каждые 2 минуты, если импульсов нет, следовательно, будет уже.
19:12 По такой логике работы работают все, но не все, то есть в данном случае нашего программа, вот всем спасибо всем пока.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
Пишу программу счетчика расхода воды на контроллере DELTA