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