Лекция 13. Программируемые логические контроллеры. Программа на языке Structured Text (ST) — АСУ ТП: сообщество инженеров

Лекция 13. Программируемые логические контроллеры. Программа на языке Structured Text (ST)

О чём видео

В лекции решается задача управления охлаждением и нагревом помещения: на языке ST создаются функциональные блоки с операторами IF, CASE и FOR, затем основная программа собирается из этих блоков и проверяется верификацией и эмуляцией. Показаны особенности работы в программном комплексе, отличном от использованного ранее.

Что разбирается
  1. 00:07 Постановка задачи и отличие реализации ST в другом программном комплексе
  2. 03:08 Создание проекта и функционального блока на языке ST
  3. 05:22 Реализация логической функции в функциональном блоке на ST
  4. 10:49 Реализация блока Хитин 1 через CASE
  5. 13:27 Основная программа: переменные и вызов блоков
  6. 17:05 Верификация и эмуляция программы на ST
  7. 18:12 Изменение значений переменных в режиме Force Value
Оборудование и ПО
  • Structured Text
  • ST
  • ПЛК

Кому полезно: Инженерам АСУ ТП, изучающим программирование ПЛК на языке Structured Text

Описание составлено автоматически по расшифровке речи в ролике.

Расшифровка видео

0:07 Добрый день, уважаемые зрители канала, мы продолжаем изучение программируемых логических контроллеров. Целью данного видео является также решение задач и написание программы на языке СТ мы решим. Ту же самую задачу, которую решали в предыдущем видео, но в этот раз выполним реализацию решение этой задачи в другом программном комплексе, который предназначен для программирования контроллеров. Хима, это программный комплекс, силу орг ИКС, несмотря на то, что синтаксис языка ст. В соответствии со стандартом м 611, 312 * х 611, 31 она 3 является единым, но тем не менее от программного комплекса к другому. Программному комплексу реализация подходов и написания программ немного отличается, и данное видео будет демонстрировать. Некоторые отличия отличия не принципиальные, но тем не менее очень. Важные, теперь давайте я напомню условия нашей задачи. Пусть имеется логическое устройство, которое функционирует в соответствии с таблицей истинности, но входы логического устройства зависят от. Состояний, которые характеризуют климатические условия в некоторых помещениях, поэтому, используя оператор ИВ, необходимо написать блок управления системой охлаждения помещения до 20%. И используя оператор кейс, написать блок управления системой нагрева 2. Помещения для использования изменения состояния этого помещения необходимо использовать оператор Фор диапазоне значений. От единицы до 7 таблица истинности логического устройства представлена ниже. Вот таким вот образом теперь нам остается решить эту задачу и реализовать его в программном комплексе Силу Орг и.

2:09 И так решение задачи 1 форма логического устройства в соответствии с таблицей истинности будет выглядеть вот таким. Вот образом, как это представлено здесь 2 для блока с оператором. Кейс напишем под программу включения 2 нагревателей в зависимости от состояния некоторой переменной 3 для следующей переменной блока. Напишем под программу с оператором. Фор, который будет менять значение управляющей переменной 4 для блока с оператором Ив, напишем программу включения вентилятора при достижении в помещении температуры 20 ты. По Цельсию и 5 прикладную программу для новой задачи реализуем в программном комплексе Силу Ворк Икс для полка компании Хима. Давайте посмотрим, как это можно реализовать.

3:03 Итак, В комплексе Силворкс мы создаем новый проект, задаем имя нового проекта, пусть проект. Здесь я не буду привязываться к конкретному типу контроллеров. Нас интересует лишь написание программы Итак. Нам необходимы будут глобальные переменные, точнее, как и в прошлый раз. Нам нужно будет 1 глобальная переменная, которая будет характеризовать температуру, которая теоретически будет связана с. Каналом контроллера тип данной переменной будет Рил сохраняем. Теперь идем в меню программы, здесь мы будем строить основной текст нашей программы. По умолчанию он будет написан на языке в БД все. Функциональные блоки мы запишем на языке, стоит так. Я создаю 1 функциональный блок 1 по для реализации логики в соответствии с нашей формулой, и так она также будет легко написано для реализации. Этого блока я задамся некоторыми значениями локальных переменных переменная типа инпут Икс 1 с типом бул. Далее Вары импут еще 1 переменная х 2 также типа бу добавляю еще 1 входную переменную.

4:38 Х 3 такого же типа и нам нужна будет ВАР Аутпут, то есть выходная, переменная и. Типа Булл, который назовем и крик, это выход нашей переменной. Вот так блок будет выглядеть со стороны теперь на языке ст. Давайте напишем. Текст нашей формулы. Итак, нам понадобится оператор ор или? Поставим точку с запятой теперь в 1 скобки. Я реализую часть нашей программы, это не икс 1. Логическое умножение. На х 2? И Логическое умножение на. Не икс 3 Так 1 часть нашей формулы готова, теперь 2 часть х 1 логическое умножение.

5:43 Переменной не Икс, 2 опять логическое умножение. Переменной не Икс. 3 Все, по сути, наш блок, который реализует. Формулу в соответствии с логической таблицей, точнее таблица истинности. Готов проверяем путем верификации, ошибок нет, и мы закрываем этот блок. Так теперь мы создаем еще 1 новый функциональный блок на языке ст для реализации. Под системой охлаждения назовем его кулер 1. И так он у нас также реализован на ст. Мы добавляем локальные переменные типа ВАР инпут, это переменная темп с типом данных.

6:51 Риел, потому что это температура далее нам нужно будет переменная вар Аутпут. Который мы и назовем Кули Кули. Давайте, Кулин, он Кулин включено, и тип будет логический. И напишем текст в соответствии с нашим заданием и В. Локальная переменная темп больше 20% и ты. Обратите внимание, здесь 20%, я пишу обязательно через запятую. И 0, если я поставлю 20 без запятой, 0 это будет пониматься как ошибка. Таким образом записывать у нас целочисленные. Данные, а данные типа Рил, они должны быть обязательно записаны вот таким. Вот образом через точку, то есть это числа с плавающей запятой. Затем Ден Кулином и присваиваем значение истина, иначе переменная кулином.

8:01 К этой переменной мы должны будем присвоить значение ложь, ложь с запятой и завершаем оператор Ив. Точка запятой, по сути, вот блок у нас готов сохраняем. Проверяем путем верификации, ошибок нет, предупреждений нет, все нормально. Закрываем этот блок и создаем еще 1 блок на языке ст. Функциональный блок, который будет реализовать у нас уже нагрев. На базе. Следующего оператора назовем его форблог. Также реализуем. Этот блок на языке ст и так зададимся переменной типа ВАР. Это внутренняя локальная переменная, назовем ее Си Дабл Ю, она будет типа Инд.

9:14 Зададимся переменной вар инпут входной переменной. Интерфейсной переменной с Дабл Ю, она также будет типа и и Вар, а вот под выходной переменной. Назовем ее с Слыч, да Слыч, и она будет типа также Инд. Давайте запишем синтаксис нашей подпрограммы. То есть фор Си Дабл Ю присвоить значение от 1 до 7 1 ту Севен ду? Переменная свитч ей присвоить значение 1 + с Дабл Ю. То есть вот так она будет выполняться иначе? Энт Фор Итак, сохраняем этот блок путем верификации, проверяем на наличие ошибок, ошибок нет и так закрываем данный блок.

10:33 И нам понадобится еще 1 блок. Создаем новый блок, добавляем еще 1 функциональный блок на языке ст. для реализации нагрева, назовем его Хитин 1. Итак, заходим в Хитин 1 его, мы реализуем с помощью оператора кейс. Итак, нам понадобится, нам понадобятся локальные переменные. Забываю, добавляю локальную переменную. Типа Вараин пут, это будет переменная. Свич. Типа? Интеджер Так нам еще понадобится переменная вора Аутпут выходная переменная, назовем ее.

11:30 1 Она будет типа булл и добавим еще 1 переменную типа булл, который назовем Хитин. 2 Это булевые, переменные. Как выглядит блок, мы видим и так возвращаемся к телу программы кейс свич. Оф. И 1 92 если сквыч будет принимать значение Интеджер 1 или 2, то Хитин 1. Присваивается значение истина. В диапазоне от 3 до 10. Переменный хитинг 2 будет присвоено значение также истина. Так поправим здесь для красоты. Так иначе, Элс, для всех других значений переменная хити 1 будет принимать значение.

12:51 Ложь Фолс. Хитин присвоить Фолс точка запятой, и хитинг 2 также будет присвоено значение Фолс для всех других значений переменной сквич. Мы заканчиваем энд кейс. Энд кейс, точка с запятой сохраняем. И проверяем. Ошибок нет, предупреждения нет, все таким образом у нас все блоки готовы. Теперь в основном. Телепрограммы запишем реализуем все, что нам необходимо, нам понадобятся некоторые локальные переменные для реализации основной программы. Это переменная с Дабл Ю, которая будет типа интеджер переменная, так это с 1 которая также будет типа Интеджер.

13:55 И добавим еще локальные переменные экс 1 типа булл. Икс 2 типа Булл, нам понадобится переменная икс 3. Типа бул также. И понадобится переменная. Типа Булл с именем Игрик. То есть все переменные у нас готовы теперь? По условиям задачи нам нужно реализовать все, что мы сделали, и так из раздела блок с вытаскиваем наш блок Фор, который мы создали пользовательский блок. На вход этого блока я добавляю переменную. С Дабл Ю чем удобен силу орг 100 здесь каждый тип данных переменных по средь подсвечивается разными цветами. Мы видим, да что здесь переменные типа интеджера они вот такого розового цвета.

15:02 Далее добавляем блок, который мы реализовали, написали это пользовательский блок. Так это блок хити, вот он. А на его вход мы подадим нашу локальную переменную. С 1 которая выходит из блока Фор, она типа интеджер розового цвета и вот фиолетового цвета. На выходе блока мы поставим переменные икс 1 и икс, 2 они фиолетового цвета. Что означает это булевы переменные? Икс 1 Икс, 2 так возвращаемся в раздел блоки, и нам понадобится перемен блок Кулин. Кулин, то есть не кулин кулер, и на его вход мы подаем глобальную переменную т 1, которая связана будет с каналами контроллера. Это переменная такого бледно оранжевого. Цвета что означает, она типа Рил и на выходе этого блока? Она воздействует на переменную х, 3 которая фиолетового цвета, что означает она булевая. Далее нам понадобится последний логический блок лоджик, 1 куда на его вход мы подадим переменные х 1 и Икс 2.

16:39 Икс, 3 это все булевые переменные, да и так мы их соединяем с блоками. И на выходе у нас будет переменная, также булевая переменная, по сути, у нас все готово. Так выполняем верификацию, проверяем ошибок, нет предупреждений, нет. Все у нас правильно реализовано, сохраняем проект, и теперь давайте в режиме эмуляции, мы также испытаем нашу программу.

17:29 Переменная объявлена. Я пока ее не буду связывать с каналами контроллера. Нас интересует только реализация, мы проверили все в порядке. Теперь в режиме оффлайн мы запускаем. Нашу программу. В режиме эмуляции мы проверим ее вот так, теперь нам остается включить. Программу, да то есть старт программ запущена, мы видим, что уже на блоке Лоджик на выходе формируется включение переменной. Так, в режиме форс Валью я должен буду поменять значение переменной т 1.

18:20 Я и присвоил значение, 15 так не присвоилось. Почему потому, что 15 это переменная типа интеджером не обязательно нужно добавлять переменный тип, аил значение с точкой с запятой и так давайте поменяем. Значение переменной с Дабл Ю. Назначение 3 это Интеджер 3 поменял на выходе с 1 изменился и, соответственно, включились с 1 и 1 и Икс 2 в соответствующем блоке. Так давайте поменяем значение переменной т 1 и.

18:59 22 Точка запятая, и 0 так вот это значение принято. Включился охладитель кулер и переменная к. Ты изменила свое состояние на истину. Но когда у нас все 3 логические переменные имеют истину, у нас на выходе выходная переменная в блоке лоджик имеет значение.

19:24 Фолс. Давайте поменяем значение переменной с Дабл Ю, так нет тут такого значения, нет, 11 вот они отключились. И у нас активно только переменная х 3. Так что так? Давайте еще раз поменяем значение температуры. Уменьшим ее значение 10 0 вот все выключилось и поменяем значением с Дабл Ю, так? Так, Форс Валью 2. Окей вот Икс 2 включилась, и у нас сработала переменная игрек на выходе блока. Логика, то есть все работает, как мы видим, также как и в коды СИС, но здесь, заметьте, немножко.

20:23 Отличается интерфейс, отличаются подходы, но тем не менее принципы программирования, как мы видим, остаются такими же. Но имеются некоторые такие особенности, которые я хотел продемонстрировать при работе с данными и при работе с блоками, но тем не. Менее принципы я еще раз повторяюсь, остаются такими же, как и в прошлый раз. И я думаю, данное видео было также полезным и закрепляющим.

20:53 Для того чтобы освоить программирование на языке ст. Итак, я надеюсь, что данное видео было полезным. Ставьте лайки, подписывайтесь на канал, задавайте вопросы. Я стараюсь отвечать их по мере их поступления. Оставляйте свои комментарии, они очень важны для развития канала всем больших успехов.

Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.

В данном видео обсуждаются вопросы программирования на языке Structured Text (ST). Показан пример написания программы на языке Structured Text (ST).

00:00 — Начало
00:06 — Постановка задачи
02:08 — Порядок решения задачи
03:02 — Программирование на на языке Structured Text (ST) в SILWorX

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх