Codesys (824048), страница 7

Файл №824048 Codesys (Руководство пользователя по программированию ПЛК в Codesys) 7 страницаCodesys (824048) страница 72021-01-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

Чтобы избежать несчастных случаев, мы добавим общепринятые переходные стадии: желтый и желто-красный. Последняястадия должна быть длиннее предыдущей.В этом примере мы покажем, как управляемые по времени процессы можно представить средствамиязыков стандарта МЭК 61131-3, как легко можно комбинировать различные языки в CoDeSys и познакомимся со средствами моделирования в CoDeSys.Создайте POUНачинать всегда легко: запустите CoDeSys и выберите "File" "New".В окне диалога определим первый POU. По умолчанию он получает наименование PLC_PRG. Не изменяйте его.

Тип этого POU, безусловно, должен быть - программа. Каждый проект должен иметь программу с таким именем. В качестве языка программирования данного POU мы выберем языкContinuous Function Chart (CFC).Теперь создайте еще три объекта. Воспользуйтесь командой "Project" "Object Add" в системном или вконтекстном (нажмите правую кнопку мыши в окне Object Organizer) меню. Создайте: программу наязыке Sequential Function Chart (SFC) с именем SEQUENCE, функциональный блок на языке FunctionBlock Diagram (FBD) с именем TRAFFICSIGNAL и еще один аналогичный блок - WAIT, который мыбудем описывать на языке Список Инструкции (IL).Что делает TRAFFICSIGNAL?В POU TRAFFICSIGNAL мы сопоставим определенные стадии процесса соответствующим цветам.

Тоесть мы удостоверимся, что красный свет зажжен в красной стадии и в желто-красной стадии, желтыйсвет в желтой и желто-красной стадии и т.д.Что делает WAIT?В WAIT мы создадим простой таймер, который на вход получает длину стадии в миллисекундах и навыходе выдает состояние ИСТИНА по истечении заданного периода времени.Что делает SEQUENCE?В SEQUENCE все будет объединено так, чтобы нужные огни зажигались в правильное время и на нужный период времени.Что делает PLС_PRG?В PLC_PRG вводится входной сигнал включения, разрешающий начало работы светофора и 'цветовыекоманды’ каждой лампы связаны с соответствующими выходами аппаратуры.Объявления "TRAFFICSIGNAL"Вернемся теперь к POU TRAFFICSIGNAL.

В редакторе объявлений определите входную переменную(между ключевыми словами VAR_INPUT и END_VAR) по имени STATUS типа INT. STATUS будетПишем простой примериметь четыре возможных состояния, определяющие соответствующие стадии - зеленая, желтая, желтокрасная и красная.Поскольку наш блок TRAFFICSIGNAL имеет три выхода, нужно определить еще три переменных RED,YELLOW и GREEN. Теперь раздел объявлений блока TRAFFICSIGNAL должен выглядеть так:Функциональный блок TRAFFICSIGNAL, раздел объявлений:Программируем "TRAFFICSIGNAL"Теперь пора описать, что связывает вход STATUS с выходными переменными.

Для этого перейдите враздел кода POU (body). Щелкните на поле слева от первой цепи (серая область с номером 1). Вы теперь выбрали первую цепь. Теперь дайте команду меню "Insert" "Operator".В первой цепи будет вставлен прямоугольник с оператором AND и двумя входами:Щелкните мышкой на тексте AND и замените его на EQ.Три знака вопроса около верхнего из двух входов замените на имя переменной STATUS. Для нижнеговхода вместо трех знаков вопроса нужно поставить 1.

В результате Вы должны получить следующийэлемент:Щелкните теперь на месте позади прямоугольника EQ. Теперь выбран выход EQ. Выполните командуменю "Insert" "Assignment".Измените три вопроса ??? на GREEN. Вы теперь создали цепь следующего вида:CoDeSys V2.33-2Пишем простой примерSTATUS сравнивается с 1, результат присваивается GREEN. Таким образом, GREEN будет включен,когда STATUS равен 1.Для других цветов TRAFFICSIGNAL нам понадобятся еще две цепи.

Создаете их командой "Insert""Network (after)". Законченный POU должен выглядеть следующим образом:Функциональный блок TRAFFICSIGNAL:Чтобы вставить оператор перед входом другого оператора, Вы должны выделить сам вход, а не текст(выделяется прямоугольником). Далее используйте команду "Insert" "Operator".Теперь наш первый POU закончен. Как и планировалось, TRAFFICSIGNAL будет управлять включением выходов, руководствуясь значением переменной STATUS.Подключение standard.libДля создания таймера в POU WAIT нам понадобится POU из стандартной библиотеки. Итак, откройтеменеджер библиотек командами "Window" "Library Manager".

Выберете "Insert" "Additional library".Должно открыться диалоговое окно выбора файлов. Выберете standard.lib из списка библиотек.CoDeSys V2.33-3Пишем простой примерОбъявления "WAIT"Теперь давайте вернемся к POU WAIT. Как предполагалось, этот POU будет работать таймером, задающим длительность стадий TRAFFICSIGNAL. Наш POU должен иметь входную переменную TIMEтипа TIME и генерировать на выходе двоичную (Boolean) переменную, которую мы назовем OK. Данная переменная должна принимать значение TRUE, когда желательный период времени закончен.Предварительно мы устанавливаем эту переменную в FALSE в конце строки объявления (но до точки сзапятой, однако) " := FALSE ".Теперь нам нужен генератор времени POU TP.

Он имеет два входа (IN, PT) и два выхода (Q, ET). TPделает следующее:Пока IN установлен в FALSE, ET будет 0 и Q будет FALSE. Как только IN переключится в TRUE, выход ET начнет отсчитывать время в миллисекундах. Когда ET достигнет значения заданного PT, счетбудет остановлен. Тем временем выход Q равен TRUE, пока ET меньше PT. Как только ET достигнетзначения PT, выход Q снова переключится в FALSE.Описание всех POU из стандартной библиотеки приведено в приложении.Чтобы использовать TP в POU WAIT, мы должны создать его локальный экземпляр. Для этого мы объявляем локальную переменную ZAB (отсчитанное время) типа TP (между ключевыми словами VAR,END_VAR).Раздел объявлений WAIT теперь должен выглядеть так:CoDeSys V2.33-4Пишем простой примерПрограммируем "WAIT"Для создания желаемого таймера текст программы должен быть следующим:Сначала проверяется, установлен ли Q в TRUE (возможно, отсчет уже запущен), в этом случае мы нетрогаем установки ZAB, а вызываем функциональный блок ZAB без входных переменных - чтобы проверить, закончен ли период времени.Иначе мы устанавливаем переменную IN ZAB в FALSE и одновременно ET в 0 и Q в FALSE.

Таким образом, все переменные установлены в начальное состояние. Теперь мы устанавливаем необходимоевремя TIME переменной PT и вызываем ZAB с IN:=TRUE. Функциональный блок ZAB теперь будетработать, пока не достигает значения TIME и не установит Q в FALSE.Инвертированное значение Q будет сохраняться в переменной OK после каждого выполнения WAIT.Как только Q станет FALSE, OK примет значение TRUE.С таймером покончено. Теперь пришло время объединять наши два блока WAIT и TRAFFICSIGNAL вглавной программе PLC_PRG."SEQUENCE" версия 1Сначала объявим необходимые переменные. Это входная переменная START типа BOOL, две выходных переменные TRAFFICSIGNAL1 и TRAFFICSIGNAL2 типа INT и одна типа WAIT (DELAY оригинально, не так ли). Программа SEQUENCE теперь выглядит так:CoDeSys V2.33-5Пишем простой примерПрограмма SEQUENCE версия 1, раздел объявлений:Создаем SFC диаграммуПервоначально SFC граф всегда состоит из этапа "Init" перехода "Trans0" и возврата назад к Init, естественно, нам придется несколько дополнить его.Прежде чем программировать конкретные этапы и переходы, выстроим структуру графа.

Сначала нампонадобятся этапы для каждой стадии TRAFFICSIGNAL. Вставьте их, отмечая Trans0 и выбирая команды "Insert" "Step transition (after)". Повторите эту процедуру еще три раза.Для редактирования названия перехода или этапа нужно просто щелкнуть мышкой на нужном тексте.Назовите первый переход после Init "START", а все прочие переходы "DELAY.OK".Первый переход разрешается, когда START устанавливается в TRUE, все же прочие - когда DELAY вOK станет TRUE, т.е. когда заданный период закончится.Этапы (сверху вниз) получают имена Switch1, Green2, Switch2, Green1, ну и Init, конечно, сохранит своёимя. "Switch" должен включать жёлтую фазу, в Green1 TRAFFICSIGNAL1 будет зеленым, в Green2TRAFFICSIGNAL2 будет зеленым.

Наконец, измените адрес возврата Init на Switch1. Если вы всё сделали верно, диаграмма должна выглядеть так:CoDeSys V2.33-6Пишем простой примерПрограмма SEQUENCE версия 1, раздел инструкций:Теперь мы должны запрограммировать этапы. Если вы сделаете двойной щелчок мышью на изображении этапа, то должен открыться диалог определения нового действия. В нашем случае мы будем использовать язык IL (Список Инструкций).Программирование этапов и переходовВо время действия этапа Init проверяем, активен сигнал включения START или нет.

Если сигнал не активен, то светофор выключается. Этого можно достичь, если записать в переменныеTRAFFICSIGNAL1 и TRAFFICSIGNAL2 число 5.CoDeSys V2.33-7Пишем простой примерЭтап Init:В Green1 TRAFFICSIGNAL1 будет зеленым (STATUS:=1), TRAFFICSIGNAL2 будет красным(STATUS:=3), задержка в 5000 миллисекунд.Этап Green1:Switch1 изменяет состояние TRAFFICSIGNAL1 на 2 (жёлтое) и, соответственно, TRAFFICSIGNAL2 на4 (жёлто-красное).

Кроме того, теперь устанавливается задержка в 2000 миллисекунд. Это выглядиттак:Этап Switch1:Green2 включает красный в TRAFFICSIGNAL1 (STATUS:=3) и зеленый в TRAFFICSIGNAL2(STATUS:=1). Задержка устанавливается в 5000 миллисекунд.Этап Green2:В Switch2 STATUS в TRAFFICSIGNAL1 изменяется на 4 (жёлто-красный), соответственно,TRAFFICSIGNAL2 будет 2 (жёлтый).

Задержка теперь должна быть в 2000 миллисекунд.CoDeSys V2.33-8Пишем простой примерЭтап Switch2:Первая версия нашей программы закончена.Если вы хотите проверить ее работу в режиме эмуляции, сделайте следующее:Откройте POU PLC_PRG. Каждый проект начинает работу с PLC_PRG. Вставьте в него компонент изамените “AND” на “SEQUENCE”. Входы и выходы оставьте пока свободными.Теперь вы можете откомпилировать ('Project' 'Build') и её проверить отсутствие ошибок.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее