Лекция по языку SFC в среде CODESYS: создание проекта, структура программы из шагов и переходов, действия шагов, макрошаги и классификаторы. В конце на примере водоотливной установки показана реализация алгоритма с таймерами TON и сбросом переменных.
- 00:07 Создание проекта SFC в CODESYS
- 00:51 Структура и элементы программы SFC
- 07:45 Создание действий и условий переходов в шагах
- 13:18 Входные и выходные действия шага SFC
- 24:30 Сложные условия перехода и очистка действий
- 27:02 Использование макрошагов в SFC
- 37:10 Реализация алгоритма водоотливной установки на SFC
- 39:21 Сброс переменных и настройка действий шагов SFC
- 46:05 Настройка таймеров TON и действий шага в SFC
- 51:29 Назначение и применение языка SFC
- CODESYS
- SFC
- ST
- LD
Кому полезно: Инженерам АСУ ТП, изучающим программирование на языке SFC в CODESYS
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:07 Здравствуйте, сегодня мы с вами проведем лекцию и по изучаем язык программирования, с среде программирования Кудесис. Как продолжение той лекции, которую мы начали с вами на следующем занятии. Выберем, значит, посмотрим, будем смотреть все в Кудесисе. Выберем, создадим новый проект, файл создать, значит, значит, конфигурацию ставим. А здесь выберем именно программу и запрограммирование СКС. Итак, мы с вами находимся в окне работы разработки и со всей программы. Значит, из чего состоит это в 1 очередь шаг? Это условие перехода или переход и дальше это метка. То есть переход на определенную метку данном случае, если вы видите, то метка стоит и нет. То есть у нас как бы зациклена программа сама на себя вот сюда и вот сюда?
1:18 Наверху у нас есть кнопки добавления шагов переходов. Различных ветвей альтернативных слева справа параллельная ветвь справа, параллельно ветвь, слева безусловный переход и переход. Условно и кнопочка в конце есть, это использовать так называемые мег шаги. Здесь же так же, как и других программах, есть область определения переменных, находится наверху. Ну, давайте попробуем здесь добавить несколько дополнительных шагов, делать это все просто. С помощью кнопок шаг сверху, шаг снизу. Предварительно выделяется определенный переход и относительно него уже. Строится шаг, вот, например, можно вниз, вверх. Как видите, имена имена даются новые, например, степ 2 степ. 3 То есть шаг, 2 шаг, 3 но на самом деле имя можно давать абсолютно любое, например, можем написать по русски.
2:36 Шаг по русски на латинице. Страны террасы шаг 2. Или просто, с 3 например, то есть не важно, как вы тут назовете шаг, он может быть. По разному назван, а вот переходы переходы они уже имеют какое то непосредственное значение непосредственное выполнение. То есть мы можем задавать переход либо внутри само прихода, либо непосредственно здесь указывать условия перехода?
3:13 То есть в конце, а начал в конце, вот переход у нас осуществляется на шаг и нет, то есть, а мы могли здесь в принципе указать любой другой шаг. Например, шаг 2 2 и таким образом переход бы осуществлялся с шага на шаг 2 после вот этого перехода.
3:34 Ну, давайте оставим перед. Дальше, чтобы добавить, например, параллельную ветвь нам необходимо выделить. Какой нибудь переход и также нажать на кнопочку альтернативная ветвь справа? Вот видите, появляется уже добавить какие то дополнительные шаги или же также в эту, например, часть мы можем. Добавить, если нам непосредственно нужно альтернативную, ведь добавить до нескольких блоков. Ну, грубо говоря, с этого перехода до вот этого перехода, то мы с помощью клавиши шифт нажимаем. Шифт и выделяем ту область, относительно которой хотим добавить нажимаем ветку альтернативную ветвь. И вот она, собственно, появляется, то есть соответственно вот это 105 выполнится, если. Выполняются условия транс, 1 степ 4 выполнится, если выполнится транс 3 и причем это будет альтернатива. То есть какой то из этих, 3 если выполнится, то перейдет выполнение к этому шагу, а?
4:39 А этот шаг уже не выполнится никогда, потому что переход исчислялся на 104. Если же использовать не такие блоки, а параллельные, которые дальше означает, что 2 шага будет выполняться параллельно, как параллельно все равно понять 104 потом. 106 Ну, то есть параллельно как бы друг за дружкой, но зависит они оба от перехода транс транс 3.
5:09 Мы можем, например, параллельный шаг добавить несколько элементов, чаще всего это носить на 1 у нас. Да есть можно делать или вот так вот сделать, если мы добавим, например, сюда такую вещь эту можно вот сделать вот таким образом.
5:31 То есть построение программ может быть всяким разным и таким, и таким, и таким. Ну, если нам, например, необходимо вот здесь добавить условием. И после него необходимо осуществить выход, сделать то есть переход, вот как он здесь. На шаге, с 3 например, здесь, так как здесь отсутствует условия, здесь необходимо применить нам переход, который поставит определенные условия, то есть вот. Этот переход безусловный переход таким образом появляется новый переход и здесь указывается куда, на какой шаг нам необходимо перейти, ну, например, в 104.
6:10 А здесь так, как уже переход есть, переход есть. Мы можем нажать безусловный переход, и вот он будет уже отталкиваться от этого, но фактически это тоже самое получается. Да только здесь мы добавили для блока, а здесь добавили для гомо элементов. До перехода и добавим так 6 ну, то есть соответственно здесь переход причисляться. Куда вот на этот блок, на 104, а степ 6 вот сюда. Получается, будет переходить выполнение после этого блока? Чтобы удалить какие либо элементы, какие элементы их нужно выделять совместно с переходом. Вот, например, если просто попытаться удалить Стэм, 10 я сейчас не могу его удалить. Никаким образом он не удаляется, ну можно, например, параллельные ветки можно удалять без. Выделения перехода, а если есть переход, то необходимо удалять только со своим переходом. Ну, например, таким образом мы выделили шаг и. Переход и нажали, делит после этого, переход осуществился. Но если есть просто переход, и вот так же не нужно удалять вместе со своим и.
7:20 Меткой своими. С помощью клавиши шифт так же самому меняем и удаляем. Элементы давайте вернемся. Вернемся этому построению. Удалим оставшийся переход и значит. Посмотрим, как создаются действия действия внутри шагов и как создаются. Собственно, условия перехода, но условия перехода, например, могут быть очень простые. Здесь мы можем написать, например, просто условие, если ИКС больше, например 10:10.
8:06 И появляется знакомое нам уже окно объявления переменной, который мы с вами уже не раз видели. Здесь зададим переменную с именем Икс типом и энтэ энтэ. Нажми на ту переменная повесить, поместилась в область объявления и. И теперь вот это условие, то есть переход на шаг 5. Степь будет осуществляться, только если выполняются условия Икс больше 10. Дальше. Чтобы задать действия, которые будут происходить в шаге, необходимо двойным нажатием клавиши мыши. Это действие собственно и указать с помощью двойного нажатия кнопкой мыши мы. С вами видим теперь уже, как создается новое действие, новое действие, и язык его реализации. То есть мы можем выбрать любой язык реализации действий внутри этого шага, бульдозер?
9:08 И так далее, ну давайте выберем с вами язык. Попробуем реализовать там какой нибудь действия, находящиеся в этом шаге. Давайте простое сделаем действие, например, здесь у нас будет переменная, а переменная, а типа бу соответственно. И на выходе поставим с вами какую либо другую перемену, например. То же самое сделать действия являются частью программы. То есть смотрите, действие имеет переменные, а и Д. Но является частью общей программы, которая написана за косовца. То есть это как бы просто часть программ написано на другом языке?
9:58 То здесь дальше мы можем добавлять с вами дополнительные веточки. Например, создать здесь переменная б находится, например, параллели с переменной. С И. От нее, например, зависит, какая то переменная пускай будет. Все это все будет выполняться на шаге 5 шаг, 5 это внутри находится. Если мы закроем и двойным нажатием, мы опять же вызовем то же самое действие. Смотрите того действия, у которого есть заданы какие то его действия. Собственно, то появляется такой маленький треугольничек, видите здесь этого. Треугольника нету, соответственно, в этих местах действие никакое не задано. То есть, если мы сейчас зададим, например, для шага, 2 какое либо действие?
11:01 А то появится здесь также треугольник. Нажимаем двойным нажатием, выбираем язык реализации, пускай это будет язык ст и. И здесь напишем, например, Икс, 2 это очень равно. Икс Икс + 10. То есть это уже действие будет выполняться непосредственно шаг на шаг, 2 называется. И видим, что появился тоже треугольник. Если вы нажмете правой кнопкой мыши на этот шаг, здесь можно посмотреть, что можно сделать во 1. Можно добавить шаг, переходишь шаг, то есть те же самые. Дублируются кнопки, которые наверху панель инструментов, но есть еще такие вещи, такие как открыть. Действие переход откроем, посмотреть и можем очистить действие. Есть нам есть необходимость очистить, сдались. То есть, если вам нужно удалить здесь, мы можем просто взять и очистить, очистили треугольничек еще соответственно. Действие мы можем назначить заново и выбрать другую железо к реализации, например, из воды и также какой воды может быть какие то элементы применится.
12:22 На выходе. Какая нибудь переменная вот таким образом, вот таким образом, то есть мы поменяли уже импровизацию этого действия на МВД. И можем с ним работать. Работать давайте очистим помимо того, что сам есть само действие, находящийся в этом шаге, есть и. Такое разновидность действий как входное действие, так и выходной. Значит, входное действие задается с помощью правого камыша добавить входное действие, не аналогично сбудется выходное действие. Значит, входное действие, это действие, которое выполняется при переходе на данный шаг, то есть, как только он ощущается. Вот этот переход на шаг стоит, 5 выполняется вот это вот выходное действие.
13:18 Выходное действие выполняется в тот момент, когда осуществляется переход вот на этот шаг. То есть как бы уже переход, но здесь выполняется последнее действие, выходное перед тем, как выйти на шаг 2. Добавим входное действие для осты, 5 выберем добавить входное действие и язык с вами реализации входного действия, а выберем язык. Если то есть так же самое, как и в любом другом месте, можно будет любой язык языков программирования, вот наш действие стоит. 5 Давайте с вами напишем такое действие, как в равно Икс. + 10 То есть у нас входное действие будет осуществляться переменной? Вы будет присваивать значения, х + 10 вот такое, вот у нас будет с вами выходное действие, так как, а Икс у нас типа ленты, то.
14:14 Вы также сдадим лента начальное значение, смотрим равным. Проблема с этим, значит, смотрите после того, как мы с вами добавили это входное действие. Получилось, что вот добавилось буквочка и слева стоит в уголочке. Это означает, что у нас есть входное действие, она аналогичным образом добавляется и выходное действие. Она осуществляется, каким образом мы выбираем также сама добавить выходное действие, выбираем язык и реализации также выгрузок ст. Она, значит, выходное действие. На данном случае я запишу, как вы двоеточие равно 99. Ну, например, при выходе вы вы присылаете?
15:05 Логично видим, что появился вот здесь, где степ 5. Квадратик с буквочкой Х это означает, что у этого шага есть выходное действие. Давайте с вами посмотрим, что у нас находится в действии. 105 Так у нас находится вот это действие для того, для того, чтобы перейти к шагу. 2 То есть с именем действия Шаг 2? Мы с вами поставим здесь в качестве перехода переменную. Почему перемена Ф здесь у нас как бы с т, 5 что происходит? Ф. У нас принимает значение, если б или ц у нас.
15:51 Равно труда, то есть и будет трудно, а переход будет осуществляться, если и авно. К тому, собственно, она будет уточнять здесь переход. Давай добавим с вами в шаг, 2 какую какое нибудь действие, например, давайте с вами. Поставим блок энд, здесь поставим с вами в переменную эй и. Присвоено это значение переменной, ну давайте пускай будет переменная. Катя Кате бабу. А на 2 веточке мы с вами добавим. Поставим блок, сел, сел, значит, здесь будет. Так если она будет равна, 0 значит, у нас будет передаваться значение, 50 а если.
17:05 Единичкой то 0 и переплетаться в переменную икс. Таким образом, мы с вами сделаем действия для шага 2. И условия следующего перевода поставим икс равная. То есть условия именно ставим условия ИКС? С шага с переходом транс 2 мы удалим, мне нужен не забываем, что удалить просто блок нельзя. Нужно обязательно выделять вместе с переходом и только тогда. Можно удалить с помощью крана клавиши делит. Здесь оставим переход на блок, и то есть переход начисляться отсюда и сразу сюда, то есть ожидать будет.
17:54 Икс больше 10 вот такая, вот у нас с вами программа. Давайте попробуем прием, запустите, посмотрите, что у нас получится. Выбираем онлайн включения, ошибок нет и онлайн старт, значит, видим да подсвечи, чем удобно в программах на все.
18:16 Здесь, значит, подсвечиваются области, где находится на данный момент выполнение программы. В данном случае находится на шаге и нет, почему на шаге нет, что она не может перейти дальше, пока не выполняется условия перехода больше, 10, а соответственно, она нужно сделать. Икс больше 10 и только тогда осуществится переход. Выбираем, значит, Икс равная, то есть, например, будет ИКС равное, 5 выбираем онлайн, записать значение или контрл эф 7 не забываем.
18:52 Да видео Икс у нас в обители переход, давайте поставим икс равное, ай к 10 11 11 поставим и выберем окно записать значение. Как видите, осуществился переход и самое что главное, что еще произошло. У нас переменная в стала равным 21. Почему потому, что у нас там осуществляется входное воздействие? Вот входное открыть входное воздействие мы можем стричь. Да, то есть она была равная, 0 соответственно, и теперь она стала как Икс. Было так, как их было 11 стало, + 10 то 21 вы прислали значение. 21 Причем она присвоила 1 раз при входе, потому что если мы сейчас. Вы поменяем на любое значение, например, 30 к присвоенному тону это значение примет, а не будет действовать полками. Но а на выходе мы вспомним, да что у нас на осуществляется действие? Какое вот такое в равно, 99 то есть это у нас, как бы нам будет знак в том, что.
19:58 Действие выходной осуществилось. Давайте осуществим выходное, чтоб сработал у нас переход. Для этого нам нужно смотрим в программе, что нужно активировать либо переменную бы, либо переменную цвета. Тогда у нас встанет труд и осуществится переход на шаг 2. Выберем переменную б. Значение труб и Обведите, да, значит, перешло на шаг, 2 что мы еще и какой признак признак о том, что у нас выполнялось выходное воздействие. Это вы оставлены, 99 ну и теперь, чтобы перейти вот сюда, на метку, да и нам уже выполнить вот. Этот переход х равная, 0 здесь здесь данном случае на чтобы их стало нужно, что сделать, чтобы переменная к стала равна единиц. То есть труб, труб соответственно, чтобы к стало трудно. Надо, чтобы, а было троица была тру.
21:04 Давайте с вами сделаем, значит, а присылаем с помощью контр эф. 7 Все значит, что у нас произошло, как только у нас к стала равно то, что происходит. Происходит, что ИКС становится равно 0 и осуществляется переход от этот ИКС, но после перехода у нас сразу же управление программы передается на вход и нет.
21:37 На шаге нет, и таким образом программа, как бы начинает свой путь сначала, то есть теперь мы все сделаем. Значение Икс равная больше, точнее больше. 10 Например, 11 и запустим контру всем или онлайн записать значения. Значит, что у нас ничего не произошло, да почему? Ну все из за того, что у нас.
22:03 Выполнена вся цепочка программ, а почему она выполнилась? Потому что здесь у нас во 1 степ степ. 5 Вот у нас уже и до все активные, все активные, веточки, поэтому надо с вами исключить, и тогда мы сможем. Посмотреть, ну почему они, кстати, не работают, потому что они не активны, активны. Только тот шаг, который подсвечен, деактивируем и выполним условия перехода это 11. Значит, ну вот здесь мы проскочили, почему? Потому что у нас опять таки активно, но здесь уже проскочить ему не удалось, потому что здесь заблокирована. С Икс равно почему потому что, а у нас уже, ну вот таким образом. В общем, мы осуществляем хождение по шагам и переходы, и переходы между ними.
23:06 А давайте отключимся, отключимся и, допустим, нам необходимо удалить, удалить входное или выходное действие. Значит, каким образом это осуществляется, если мы просто выберем добавить входное действие?
23:27 Оно как бы. него, как не добавится открыть, здесь есть мы откроем действие, вот входное открываем и увидим, если удалить просто в такое действие. Да, то есть все блоки удалить, то ничего не изменится. Как бы остается то же самое, что. Как будто бы и у нас в 1 из действий есть, чтобы это нас не смущало удалять. Нужно вот с помощью очистить действие перехода, то здесь как осуществляется вот очистка как входного, так действия самого так и выходного. Есть, ну мы чистим входное и выходное действие. Все таким образом у этого шага уже нет ни входного, ни выходного действия, ну и аналогично действует и самим действием. То есть просто очистка действий не поможет? Таким образом действия, как будто бы она там есть. Вот треугольничками показывает хотя бы как бы уже нет. Но чтобы действительно его убрать, нужно выбрать, очистить действие переход и вот видим, что он у нас исчез.
24:26 Это треугольничек, который находится здесь. Но помимо того, что мы можем писать вот такие вот простые переходы в виде имен до для перехода, мы также можем писать переходы и более сложных формах в в сложных формах, если мы. Нажмем двойным нажатием на на сам переход, то здесь у нас как бы можем язык реализации выбрать такой язык реализации. И, например, вот у меня язык абд и здесь можем осуществить.
25:00 Описать условия перехода, но в данном случае присваивать нельзя. То есть мы описываем на сам переход, как учтется, то есть вот это логическое выражение, которое здесь будет, это и будет условие перехода, например, мы здесь. Напишем, а здесь напишем, а и ц, а рецепт и ничего ставить нельзя. Если мы напишем присваивание, например какой нибудь там Д и попробуем откомпилировать, то вызовется вот ошибка. Переход не только включать побочных операций.
25:29 Соответственно, здесь нужно было вот это не делать, а оставить просто н, а ц. То есть вот это условие перехода, и она у нас здесь не будет работать? Если мы сейчас скомпилируем, то ошибок нет. После того как мы таким способом задали условия перехода вот таким вот образом, то теперь Икс больше 10. Это не условия перехода, это просто имя. Перехода, то есть ИКС больше 10 это имя переходит, например, какие то может здесь написать просто слова. Да, то есть какая, хотя внутри она по идее. Когда должна писать, и вот если мы сейчас, допустим, онлайн подключение онлайн старт и осуществим. Например, вот ошиблись, да 10 больше 10 мы думаем. Что это переход на самом деле нет? Если мы сейчас напишем ИКС равное, 11 то никакого перехода не осуществится. Вот это больше, 10 вот мультик.
26:29 0 А мы сделали, сделаем, а и ц, и вот тогда осуществляется у нас переход. То есть вот при выполнении именно внутреннего перехода у нас осуществляется? Я внутреннего условия осуществляется переход вот на шаг. Вот вот таким образом мы можем с вами сделать более сложные условия перехода. Давайте теперь рассмотрим с вами так называемые Мэг шаги. То есть это те шаги, которые у нас прописаны в стандарте и с 61 131? Для этого давайте с вами ударим наши шаги, которые не не не мы кшили, не мы кшили.
27:26 Долина части действия и добавим, собственно, здесь, значит, переменный переход. И в активируем сами Мег шаги, вот использовать Мег шаги. Вот эта кнопка, она как бы выжимается, и теперь мы используем с вами мег шаги. Также сама добавляется на кши и с помощью кнопочек тех же самых или с помощью шаг вперед, шаг назад, и вот появляется у нас шаг, шаг видите и справа. От него особые действия, особые действия, действия можно добавить дополнительно. Например, если у вас вот требуется для этого шага больше, то есть. Чем отличается собственно Майк, шаг от простого шага тем, что здесь мы можем добавлять множество действий и причем действие может иметь классификатор? Как уже было сказано предыдущей, лекции классификатора не бывают разные, но, например, с помощью этого можете классификатор вот выбрать из списка.
28:33 Классификатор отсроченный установлен отсроченный с установкой. Классификатор, не сохраняемый, импульсный и другие виды классификаторов, который мы можем с вами использовать. Вот здесь давайте давайте с вами добавим классификатор эн здесь пусковой классификатор пэ импульсный а и дискуссикатор дс сд сд сд сд сд. И здесь остаются имена для. действий, которые будут выполняться при этом классификаторе на этом шаге, на этом шаге. Причем сейчас уже нельзя добавить действия для данного шага. Единственное действие, да то есть, давайте мы уже с вами не добавим сюда единственное действие.
29:25 Где добавляется сами действия, сами действие добавляется вот здесь, в ветке, где пул при нажатии правой кнопки мыши. На имени Пол мы выбираем добавить. Действие таким образом мы с вами добавляем действие. Имя действия дается в принципе произвольно произвольно, ну так как у нас там прописано экшен 1. Давайте с вами дадим экшен 1 экшен. 1 Язык реализации оставим МВД. Окей. Давайте с вами запишем. Такую программу как? В Ц и при своем обозначении. То есть вот такое будет выполняться действие экшен ван Экшен Ван.
30:16 Ван. Добавим с вами. 1 Это имя выполняемого действия, которое у нас есть, с вами задаем. Соответственно, в принципе можно везде задать и здесь, и здесь можно задать, но мы создадим с вами новые действия. Выберем прогонка мыши, давай действием. Дадим имя следующий деист. Действие 2 напишем действие, то есть это означает, что мы можем добавлять любой любое имя данному действию и дальше из экранизации выберем язык ЛД. Здесь напишем небольшую программу, пускай это будет вот такая программа, а здесь, а здесь у нас переменная русская будет ТЦ, и здесь у нас постоянно с Ф. Вот такая вот она будет.
31:18 Действие, действие номер 2. Действие также можем выбирать с помощью ф 2. То есть, вот они только нужно выбрать вот здесь, вот действие, и вот может быть. Обратить внимание соответственно, если добавить и новые действия, то они появятся в том списке. Значит, по классификатору СД мы добавим следующее новое действие добавить действие. Напишем на языке ст, назовем для действия суммы. Будем считать, в данном случае давайте напишем икс двоеточие равно.
32:06 Включи равно Икс, + 1 вот такое действие будет осуществляться со. Единственный нюансик здесь добавим сумму, сумму и нюансы в том, что СД требует специальную перемену задания, перемены константы и это Константа. Как раз и говорит, как время время, через сколько с даже это у нас классификатор. Это отложенное действие, установить отложенное действие с этого.
32:41 Значит, здесь необходимо задать время отложенного действия. Время задается в тех же самых языческом виде, задается время ты решетка. Например, 5 секунд и таким образом мы задаем константу в виде 5 секунд, через сколько будет запускаться нас действия сам. Дальше добавим переход на метку, переход на метку добавим. А переход у нас будет следующего условия, это Икс больше 100 и тогда будет осуществляться у нас переход на. Инет инет. Ну давайте с вами запустим, посмотрим, что у нас получилось. Мы берем онлайн подключение, вы сделали.
33:37 Вышла ошибочка такая, как яцы, библиотека не надела. Да, для того чтобы работать с Мэг шагами, нужно подключить специальную библиотеку Йетса. Давайте глянем на вкладку ресурсы, менеджер библиотек и правая. Кнопка мыши нажмем на добавить пустое место и добавил. На библиотеку, библиотеку любим и с С. С. С. С. С. С. Нажмем открыть все вот она, политика добавилась. Там содержится такой блочок, он необходим для работы.
34:11 Для работы Мег шагов закрываем, это нам не нужно, и давайте еще раз попробуем онлайн подключение онлайн старт вот что. Вот мы находимся на стартом шаге, и он требует для своей работы дальнейшие, чтобы прийти на следующий шаг. Это выполнить условие и равная трудно. Давайте так и сделаем и рисуем дальше. Контрол, 7 и вот мы с вами попали на старт 2. Значит, сразу же выполнился у нас действия 2. Затем и через 5 секунд вот это, если вы заметили, да сам у нас активировался. И побежал ОП после того, как у нас их стал больше 100. У нас вот вот происходит вот такие вот интересные вещи, то есть, да вот у нас выполняется действие 2 и экшен 1.
35:04 А почему так происходит потому, что? У нас постоянно их становится больше, 100 а сам у нас выполняется всегда, то есть независимо от того. Работает блок степ 2 или не работает, как это проверим. Ну, давайте отключимся, добавим сюда условия не из больше, 100 а другое условие, ну, например. Равно, Фолс. На такое условие сюда поставим, здесь тоже самое действует, как и с простыми шагами еще раз подключение старта теперь. Сделаем, переравниваем, перешли на этот шаг. Эти экшены работает, а сам еще не работает, и через 5 секунд только вот сам заработал и пошлем значение ИКС.
35:57 Мы видим до, что значит вот сейчас хочется, чтобы должен он не осуществляется, потому что у нас стоит внутреннее условие, а внутренние условия это. Равно, Фолс, а у нас, а сейчас давайте поменяем на Фолс, и мы видим о том, что вот у нас притащился переход на метку и нет соответственно на шаг и. Но Икс, видите, продолжает увеличиваться. То есть действие сам продолжает работать, почему она продолжает? Работать, потому что она запущена с классификатором СД. Это означает, что установить действие после пятисекундной отсрочки, а вот на ее действие это означает, что активировать его и не деактивировать. Действие активируется, деактивируется, только если.
36:46 Какой то шаг выполнит. Классификатор Р классификатор. Сброс. Сброс действия то только в этом случае действие сбросится и. Действия сам перестанет работать. Значит, давайте с вами посмотрим на примере водоотливной установки? Мы ее реализуем на языке свц. Собственно, как реализовать алгоритм на языке с овцы вот этого вывода? Длинную постановку давайте создадим новый проект, но проект. Пустой и так же самый, ну а дальше выберем язык. Сразу же давайте подключу с вами.
37:48 Библиотеки добавим в библиотеку и отсылки. Так что так? И перейдем к написанию создания программы. Значит, нам не нужно будет действовать никаких действий в шаге и нет, и поэтому это действие нужно будет удалить чисто чистить действие. Дальше задаем переход, 1 самый переход это. Такое вот действие нут, вот. Нот м Игрик Нот М. Игрик. У нас нижний уровень перемены типа губки, дальше добавим переход. Шаг добавим степ, 2 действие будет типа п, то есть импульсное действие.
38:48 Давайте его оставим экшен экшен, экшен экшен экшен экшен экшен экшен экшен экшен э. Лд. И здесь значит, что у нас должно происходить, когда у нас отсутствует нижний уровень при отсутствующем нижнем уровне. У нас отключаются все насосы. Все насосы и так вот сделаем, значит, 3 сразу значит. 3 Сразу таких. Таких элемента, значит, Панельина включить. Отключить насос 2. В дальнейшем нам еще нужно будет сбросить переменные, которые отвечают за включение насоса. Если истекло время, время работы соответствующего насоса, давайте добавим сюда еще. Значит, переменная р сбрасывает перемены, ТН 2?
39:55 А я вот сюда берем еще пониже и. 2 Н 1 н. 2 н. 3 н. 2 и т. н. 3 то есть. Вот это экшен 1 будет у нас выполняться на импульсно, на шаге ставим 2. Закроем акшен, 1 добавим переход на следующий шаг. Это у нас будет как раз присутствие нижнего уровня, появился уровень, появился добавим. Действие данном случае уже действие будет постоянно, то есть, пока действует шаг, 3 будет действия. Выполняется и здесь, ну давайте пока удалим, а создадим новый переход, новый, точнее, шаг новые действия создадим.
40:53 Акт 2. Реализацию с вами сделаем на языке ст. и здесь все. И здесь, собственно, пропишем весь наш алгоритм, который нам будет необходим. В принципе алгоритм похож на тот алгоритм, который у нас уже был на реализован на языке ст. Значит, 1 что это лук на столе учный насос включается, когда у нас нет давления? же, ну у нас в принципе все перемены здесь будут. Дальше проверяем условия, ИФ, если у нас появился, например, верхний уровень и отсутствует М.
41:43 1 И 1 не включен. 1 2 И тот же равно то. То есть мы включаем насос 1? Это 1 2 условие, если у нас. Появляется верхний предупредительный предупредительный уровень. И не работает. Не работает насос, н 2 а нет здесь не. Работает насос или или тн 2 т 2. А теперь уже н. 2 Значит, Со своей переменной Равно. Яндекс. Следующее условие. Если у нас появляется ав. Значит, а здесь же у нас должно быть слой не н, а квор, то есть, появляется либо то ли другую, либо другое. Да и вот здесь тоже также надо исправить, что у нас здесь не Энджи. Энд, а ор, простите, а вот здесь это у нас вор т 2.
43:28 Напишем ТН 3 ТН ТН ТН ТН ТН. Нот и То есть насос 3 не включен еще и затем? М 3 м 3 двоеточие тут точно включаем 3 собственный насос. И теперь нам нужно здесь обрабатывать таймер. Таймеры, чтобы работать с таймами на языке ст, нужно сначала их создать. Предварительный таймер, значит, для этого мы с вами выберем авто объявление. Здесь ими за нами дом, 1 а 1 просто том таймер окей. Дальше теперь мы должны с ним работать, как обратиться к таймеру, к таймеру на языке ст. Можно обратиться как с помощью имени таймера Тур 1.
44:31 И в скобочках мы должны с вами прописать параметры, то есть аргументы. ПТ, но это все равно это ты 1. И вот таким образом мы как бы задали параметры нашему таймеру. Значит, ты 1 это у нас новая переменная типа тайм? И начальное значение мы давайте ей зададим т решетка 10 секунд. Но можно вызывать блоки не вручную записывать. Как вот я сейчас это делал, а вот следующим способом с помощью ф 2 нажимаем ф 2 выбираем. Локальные переменные ищем наш тон 1, вот Антон 1.
45:32 Нажимаем окей, и вот появляется вот такая вот запись. Значит данном случае, что вот он уже сразу нам поставил клинка. То есть все параметры, которые есть в этом блоке, это входные параметры и и выходные параметры? Они как бы означены таким равно и угловая скобка вправо. Сюда нам останется только прописать параметры и 1 и БТ, значит, т. 1 Но ку, например, нам понадобится нам в следующем действии, нам нужно будет сделать.
46:05 Присвоить, и это значение перемены, ТН 2. То есть мы в принципе здесь вот так, то это 2. Ну ладно, я делать это не буду здесь именно здесь, но хотя. Этот вариант, возможно, мы это сделаем чуть ниже. Напишем т 2 двоеточие, равно запишем тона, 1 выберем переменную, которую нам необходимо присвоить.
46:28 Таким ну аналогично и для 2 таймера сначала нужно объявить. Окей. Дальше также самообразуемого тут 2 окей, и вот у нас получается вот такая вот запись танк 2. Т 2. Лишняя т 2 также сам является временем на выбираем и те же поставим 10 секунд, и решетка нам то вполне. Нам то вполне будет достаточно, чтобы посмотреть дальше ТН. Дальше ТН 3 2 это очень равно, как тона 2 точка, ком ком. Все, в принципе, мы с вами описали акт. 2 То есть это действие, которое у нас будет выполняться на шаге, 3 можно его закрыть?
47:33 Иди сюда, добавь. На что таким образом у нас осуществляется действие в степ 3 и внизу, где транс? 2 Мы с вами напишем переход точно такой же, как Нод М 2. Здесь переход еще с ним не на и нет. Зачем нам этот и нет, нам сразу нужно переходить на степ степ. 2 Столбовый понос. Откомпилируем. Ошибок нет, можно запускать на исполнении проверку работы. Выполним онлайн подключение онлайн старт, значит, здесь у нас осуществляется переход сразу же моментально, потому что у нас.
48:34 Соответственно, условие выполняется, и мы переходим на сразу на. 2 Здесь, значит, выполняется однократно действие. Вот это Экшенайдин, которая, собственно, сбрасывает работу всех насосов. Нам нужно перейти именно на 103 на стоп, 3 мы переходим при условии. Есть у нас есть нижний уровень, активируемый уровень. Тру, значит, вот все мы перешли на стопе и теперь выполняется, так 3 то есть акт. 2 У нас будет сейчас выполняться, ну видно сразу, что он выполняется. Почему потому, что НЗ вот у нас сработал, мы видим НЗ, он сработал от этого условия.
49:18 Соответственно, если давление не будет, точнее будет давление, то он загружается дальше. Допустим, у нас срабатывает верхний уровень, верхний уровень. Должно произойти, что включение 1 насоса если верхний уровень не откачивается, то соответственно подключается 2 насос после 10 секунд. Вот вот 10 секунд прошло сейчас насос 2. Если же и 2 насос у нас не справляется, да сработает, то через 10 секунд и все мы его смотрим. Уже осталось время года, подключается 3 насос, и они все работают, пока не откачают полностью.
49:55 Яму дренаж, значит, он ходит верхнюю и уходит нижнюю роль. После того как ушел нижний уровень, сработал вот это вот условия и отключился переход на. Степ, 2 степи, 2 у нас что, осуществляется сброс всех всех насосов, они все отключились. Ну и, собственно, и ТН 2 и ТН 3 тоже нам на него было отключить.
50:17 Но и давайте проверим условия о том, что насосы включается и в том случае, если достигаются следующие предельные уровни. Например, он сработал верхний уровень, потом по его. Сработал, да он включил сразу же 2 насос и только сработал, а у тоже включился Эн 3 насос, то есть не выжидая. Ну, соответственно, втроем они должны это все откачать, мы откачиваем.
50:48 Отключись. Время можно, давайте еще раз попробуем запустить у нас. И вы, как только вы у нас сработал, вот запускается таймер. Видно, что он работает и через 10 секунд должен заработать. У нас 2 вот и 2 сработал на 2 секунды и, соответственно, сейчас подключился 3 насос. Также самое выдерживает время в 10 секунд.
51:25 Ну вот таким образом значит. Язык с овце в принципе является таким, как бы наглядным графическим языком последовательности выполнения определенных действий через определенные условия. Его в принципе легко применять там, где действительно вот есть такая строгая последовательность действий с определенными переходами. И если в этих действиях требуется какие то определенные действия, то вот. Их с помощью под кисти можно в принципе описать то есть, но по сути с овцы как бы сам по себе языком не является, а является как бы какой то такой схемой построения диаграмм да такая диаграмма в виде блоков.
52:11 На этом все спасибо за просмотр до свидания.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
Знакомство с языком SFC в среде разработки CoDeSys