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

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

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

Объявлять экземпляр функционального блока в теле функции нельзя. Экземпляры функционального блока доступны в том POU, в котором они объявлены, если они не объявлены глобально.Экземпляры функциональных блоков могут быть использованы в качестве входных переменных другихфункциональных блоков или функций.Замечания. После выполнения функционального блока все его переменные сохраняются до следующего выполнения. Следовательно, функциональный блок, вызываемый с одними и теми же входными параметрами,может производить различные выходные значения.Если хотя бы одна переменная функционального блока объявлена как RETAIN, то все данные экземпляров целиком помещаются в энергонезависимый сегмент.Вызов функционального блокаДля обращения к входным и выходным переменным функционального блока извне необходимо указатьимя экземпляра функционального блока, следующей за ней точкой и именем переменной:<Имя экземпляра>.<Имя переменной >Присваивание параметров при вызове:В текстовых языках (IL, ST) задать актуальные параметры и считать значения выходов можно непосредственно при вызове экземпляра функционального блока.

Для входных переменных применяетсяприсваивание ":=", выходы считываются при помощи "=>". Этот процесс упрощается, если использовать ассистент ввода (<F2>) с включенной опцией вставки с аргументами (With arguments).Пример:Допустим, FBINST - это локальная переменная типа функциональный блок, имеющий входную переменную xx и выходную переменную yy. При вставке FBINST в ST с помощью ассистента ввода получается следующая заготовка:FBINST1(xx:= , yy=> );Переменные вход-выход:Обратите внимание, что переменные вход-выход (VAR_IN_OUT) передаются в экземпляр функционального блока через указатели. Поэтому таким переменным нельзя присваивать константы при вызове.Пример:VARinst: fubo;var: int;END_VARvar1 := 2;CoDeSys V2.32-4Что есть, что в CoDeSysinst(instout1 := var1^);не допустимые попытки присваивания констант:inst(instout1:=2); или inst.inout1:=2;Примеры вызова экземпляра вышеописанного функционального блока FUB:Результат умножения сохраняется в переменной ERG, а результат сравнения в переменной QUAD.

Экземпляр функционального блока FUB называется INSTANZ.Вызов экземпляра функционального блока в IL:Тот же пример в ST (раздел объявлений такой же, как и в предыдущем примере):Тот же пример в FBD:CoDeSys V2.32-5Что есть, что в CoDeSysВ SFC экземпляры функциональных блоков могут вызываться только из действий шага.ПрограммаПрограмма – это POU, способный формировать произвольное значение во время вычислений. Значениявсех переменных программы сохраняются между вызовами. В отличие от функционального блока экземпляров программы не существует. Программа является глобальной во всем проекте.Пример программы:Нельзя вызывать программу из функции.Если вызвать программу, которая изменит значения своих переменных, то при следующем вызове еепеременные будут иметь те же значения, даже если она вызвана из другогоPOU.В этом заключается главное различие между программой и функциональным блоком, в котором изменяются только значения переменных данного экземпляра функционального блока.Объявление программы начинается ключевым словом PROGRAM и заканчивается ключевым словомEND_PROGRAM.Так же, как и для экземпляров функциональных блоков, в текстовых языках (IL, ST) задать актуальныепараметры и считать значения выходов можно непосредственно при вызове программы.

Для входныхпеременных применяется присваивание ":=", выходы считываются при помощи "=>".Пример вызова программы:IL:CALCoDeSys V2.3PRGexample22-6Что есть, что в CoDeSysLDSTPRGexample2.out_varERGИли с присваиванием параметров:CAL PRGexample2(in_var:=33, out_var=>erg )ST:PRGexample2;Erg := PRGexample2.out_var;Или с присваиванием параметров:PRGexample2(in_var:=33, out_var=>erg );FBD:PLC_PRGПрограмма PLC_PRG – это специальный POU, который должен быть в каждом проекте. Эта программавызывается один раз за цикл управления.При создании нового проекта автоматически открывается диалог "Project" "Object Add", предлагающий создать новый POU - программу с именем PLC_PRG.Не следует менять предложенные установки.Если определить последовательность выполнения задач в Task Configuration, то проект может не содержать PLC_PRG.Внимание: Нельзя удалять или переименовывать POU PLC_PRG(если Task Configuration не используется).PLC_PRG является главной программой в однозадачном проекте.ДействиеПрограммы или функциональные блоки могут быть дополнены действиями.

Фактически действия - этодополнительный набор встроенных в POU подпрограмм. Действия могут описываться на языке, отличном от того, на котором выполняется соответствующий функциональный блок или программа.Действие оперирует с теми же данными, что и функциональный блок или программа, к которой онопринадлежит.CoDeSys V2.32-7Что есть, что в CoDeSysПример действия функционального блока:В данном примере функциональный блок Counter увеличивает или уменьшает выходную переменную"out" в зависимости от значения входа "in".

При вызове действия Reset выходная переменная принимаетзначение 0. Одна и та же переменная "out" используется в обоих случаях.Вызов действия:Действие вызывается с помощью идентификатора:<Имя_программы>.<Имя_действия> или <Имя_экземпляра>.<Имя_действия >.Если нужно вызвать действие из POU, к которому оно принадлежит, то в текстовых языках используется имя действия, а в графических – функциональный блок без указания имени экземпляра.Пример вызова вышеописанного действия:PROGRAM PLC_PRGVARInst : Counter;END_VARIL:CAL Inst.Reset(In : = FALSE)LD Inst.outST ERGST:Inst.Reset(In := FALSE);Erg := Inst.out;FBD:Замечание Действия играют ключевую роль в SFC (подробнее смотри раздел SFC).Стандарт МЭК определяет только действия SFC шагов. Применение действий в функциональных блоках и программах является расширением CoDeSys.CoDeSys V2.32-8Что есть, что в CoDeSysРесурсыРесурсы отвечают за конфигурацию проекта, включая:§§§§Глобальные переменные, используемые во всем проекте.Менеджер библиотек (Library manager) для подключения необходимых библиотек к проектуЖурнал записи действий во время исполненияКонфигуратор тревог (Alarm Configuration) для конфигурирования обработки тревог в проекте§ Конфигуратор ПЛК (PLC Configuration) для конфигурирования аппаратуры контроллера.§ Конфигуратор задач (Task Configuration) для управления задачами§ Менеджер рецептов (Watch and Receipt Manager) для просмотра и заказа наборов значенийпеременных§ Опции целевой системы (Target Settings)§ Рабочая область для отображения опций проектаВ зависимости от системы исполнения и ее опций могут подключаться дополнительные объекты:§§§§§Sampling Trace - для задания графической трассировки значений переменных.Parameter Manager - для взаимодействия с другими контроллерами в сетиPLC-Browser - монитор ПЛКTools – для вызова внешних, специфичных для каждой платформы инструментовSoftMotion – компоненты системы управления движением (в соответствии с лицензией), редакторы CNC и CAMБиблиотекиПроект может использовать несколько библиотек, в которые входят POU, необходимые им типы данных и глобальные переменные.

Библиотечные POU можно использовать точно так же, как и определенные пользователем.Библиотеки "standard.lib" и "util.lib" обязательно входят в стандартный комплект поставки.(См. «Менеджер библиотек»)Типы данныхКроме стандартных типов данных, вы можете использовать определяемые пользователем типы данных.Ими могут быть структуры, перечисления и ссылки.(См. «Приложение Типы данных»)ВизуализацияС помощью визуализации пользователь может создать графическое представление проекта. Форма ицвет графических элементов будут изменяться при работе программы в зависимости от значений переменных.Визуализация может исполнятся в системе программирования, в отдельном приложении CoDeSys HMIили как Web или целевая (в ПЛК) визуализация.

(См. раздел «CoDeSys Визуализация»)2.2 Языки программированияCoDeSys поддерживает следующие текстовые:••Instruction List (IL)Structured Text (ST)и графические МЭК языки:•CoDeSys V2.3Sequential Function Chart (SFC)2-9Что есть, что в CoDeSys••Function Block Diagram (FBD)Ladder Diagram (LD)Кроме того, CoDeSys включает поддержку, основанного на Функциональных Блоковых Диаграммах,редактора Continuous Function Chart (CFC).2.2.1 Список инструкций (IL)Язык IL (Instruction list) дословно – список инструкций. Каждая инструкция начинается с новой строкии содержит оператор и, в зависимости от типа операции, один и более операндов, разделенных запятыми.Перед операндом может находиться метка, заканчивающаяся двоеточием (:).

Комментарий долженбыть последним элементом в строке. Между инструкциями могут находиться пустые строки.Пример:LDSTGEJMPCLDEQSTNnext:17lint(* комментарий*)5nextidwordistruct.sdwordtest2.2.2 Модификаторы и операторы ILВ IL можно использовать следующие операторы и модификаторы:Модификаторы:Сс JMP, CAL, RET:инструкция выполняется только тогда, когда результат аккумулятора ИСТИНА.Nс JMPC,CALC, RETC:инструкция выполняется тогда, когда результат аккумулятораЛОЖЬ.Nв других случаях:отрицание операнда.Ниже приведена таблица всех операторов IL с пояснениями и допустимыми модификаторами:ОператорLDМодификаторNЗначениеПрисвоение аккумулятору значения оператораSTNПрисвоение значения аккумулятора операндуSПрисвоить логическому операнду значение ИСТИНА, если значение аккумулятора ИСТИНАRПрисвоить логическому операнду значение ЛОЖЬANDN, (Побитное ИORN, (Побитное ИЛИXORN, (Побитное исключающее ИЛИADD(СложениеSUB(ВычитаниеMUL(УмножениеCoDeSys V2.32-10Что есть, что в CoDeSysDTV(ДелениеGT(>GE(>=QE(=NE(<>LE(<=LT(<JMPCNПереход к меткеCALCNВызов функционального блокаRETCNВыход из POU и возврат в вызывающую программу.Вычисление задержанной операции)Список всех операторов МЭК приведен в приложении.Пример IL программы с использованием некоторых модификаторов:LD TRUEANDJMPCLDNST ERG(*загрузить значение ИСТИНА в аккумулятор*)BOOL1 (*выполнить И с инверсным значением переменной BOOL1*)mark(*если значение аккумулятора ИСТИНА, то перейти к метке" mark"*)BOOL2 (*сохранить инверсное значение BOOL2 в аккумуляторе*)(*сохранить значение аккумулятора в ERG*)После оператора можно поставить скобки, тогда значение выражения внутри скобок рассматриваетсякак операнд.Например:LDMULADDST223ERGЗдесь значение ERG равно 7.

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

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

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