Принципы программирования ПЛК | Техпривод
В данном обзоре рассмотрим ряд вопросов, связанных с программированием современных логических контроллеров (ПЛК или PLC). Поскольку контроллеры разных производителей имеют различную конфигурацию, функционал и программные среды, будут приведены общие принципы и приемы разработки программ для ПЛК.
Техническое задание
Создание и утверждение технического задания (ТЗ) – очень важная часть разработки ПО. От грамотно составленного ТЗ зависит, насколько эффективно будет вестись разработка.
Опытные программисты знают, что программа не пишется за один раз. Как правило, софт корректируется и приближается итерациями к конечному варианту в соответствии с пожеланиями конструкторов, инженеров, электриков, механиков и технологов. Поэтому очень важно на этапе составления ТЗ плотно взаимодействовать со всеми заинтересованными специалистами, которые подписывают ТЗ, а по окончании принимают работу.
Периферия
В первую очередь составляется список всех дискретных входов и выходов контроллера. Также указываются аналоговые входы/выходы при их наличии.
Входы и выходы логического контроллера — это начальные и конечные точки работы алгоритма, поэтому нужно четко представлять, как должно функционировать оборудование, под которое пишется программа.
Для решения некоторых стандартных задач можно не писать программу, а воспользоваться специализированными периферийными модулями, например, модулями обработки сигналов от тензодатчиков или от инкрементального энкодера, специализированным ПИД-регулятором и проч. В результате алгоритм работы существенно упростится, а быстродействие всей системы в целом увеличится.
Необходимо собрать подробную информацию о том, как работает тот или иной датчик, какие сигналы он выдает, например, какой выход у датчика – нормально открытый или нормально закрытый. Есть ряд нюансов, связанных с аварийным или ручным управлением выходными сигналами, например, некоторые приводы могут требовать коррекции временной задержки.
Помехоустойчивость
Важно помнить о возможных проблемах, связанных с максимальным выходным током, противо-ЭДС и различными помехами, поскольку все это скажется на стабильной работе программы и оборудования в целом.
В сложном оборудовании, где применяются преобразователи частоты, коммутируются силовые цепи и действуют мощные электромагнитные поля — эти факторы необходимо предусмотреть, чтобы минимизировать их отрицательное влияние на ПЛК. Об этом обычно подробно говорится в инструкции по установке логического контроллера.
Для повышения помехоустойчивости необходимо применять программные средства. Например, обязательным является использование сторожевого таймера, который «приводит в чувство» ПЛК при его «зависании».
Также необходимо учитывать возможное накопление ошибок, искажение поступаемых на входы данных и другие нарушения в работе программы. Для этого нужно вводить программные блоки по проверке и коррекции данных и программы. Например, несмотря на то, что при включении реверсивного пускателя используется аппаратная защита (блокировка) от одновременного включения встречных направлений, такая же защита должна быть реализована и программно.
Проблемы совместимости программы с аппаратной частью
Возможно, в процессе работы выяснится, что аппаратная часть контроллера не соответствует поставленной задаче. Например, не хватает входов или выходов, памяти или быстродействия.
Проблема с нехваткой входов или выходов легко решается приобретением дополнительных периферийных модулей. Они подключаются к центральному модулю (который имеет свои входы и выходы), обмен данных происходит по внутренней шине.
С памятью и быстродействием решить вопрос просто не получится, поэтому перед приобретением «железа» нужно обкатать программу в программном эмуляторе, который есть в каждой среде программирования.
Языки программирования и среды разработки
У каждого производителя имеется своя среда программирования, «заточенная» под конкретные модели ПЛК. Однако производители пришли к соглашению, что будут использовать унифицированные языки программирования, подходящие для разных контроллеров.
Наиболее простым и наглядным языком программирования ПЛК, входящим в каждую среду разработки является язык релейных схем LD (Ladder Diagram), максимально приближенный к функциональным электрическим схемам. Его любят использовать программисты, изначально хорошо разбирающиеся в электронике.
Другой язык, имеющий обширный функционал – FBD (Function Block Diagram), который относится к графическим языкам программирования. В FBD используются законченные блоки, имеющие определенные функции. Блоки поставляются со средой программирования или создаются программистом. Существуют и другие языки (6 стандартных), но их описание выходит за рамки данной статьи.
В программных средах разработки обычно имеется большой набор готовых библиотек элементов, подпрограммы стандартных процедур и шаблонов. Также среда разработки должна обязательно включать в себя программный эмулятор, позволяющий всесторонне проверить работоспособность программы перед ее переносом на реальный контроллер.
Среды разработки разных производителей могут включать в себя разные элементы, и за каждый из них необходимо платить. Например, Siemens предлагает множество версий программной среды, которые значительно отличаются по функционалу и цене. Другой производитель – Delta – имеет полностью открытое полнофункциональное ПО, которое можно бесплатно скачать с официального сайта.
Другие полезные материалы:
Настройка ПЧ для работы на несколько двигателей
Особенности работы частотников при однофазном питании
Коротко о программируемых логических контроллерах
Программирование контроллеров Simatic
Помимо разработки систем управления «с нуля», периодически возникают другие задачи, связанные с программированием систем автоматизации. Например в случаях, когда программирование контроллера и ввод линии в эксплуатацию были выполнены зарубежными специалистами, а техническое обслуживание системы автоматизации разработчиком не оказывается.
Иногда Заказчик покупает из Европы автоматизированную линию, которая уже эксплуатировалась. Монтаж и пуско-наладку линии, как правило выполняют российские специалисты. С вводом линии в эксплуатацию могут возникать проблемы, связанные с отличием конфигурации оборудования (Заказчику в России требуются несколько отличающиеся алгоритмы работы, отличие каких-либо уставок, Заказчика не устраивает интерфейс системы визуализации и т.д.), с неисправностями или вовсе отсутствием программы контроллера.
В таких случаях наши специалисты проводят комплекс работ, необходимый для восстановления корректной работы автоматизированной системы.Также компания выполнила ряд проектов по замене существующих контроллеров на работающих линиях на контроллеры Simatic S7. В ряде случаев удается выполнить конвертацию приложения для контроллера на 100%. В этом случае сроки реализации проекта сокращаются, и, соответственно, уменьшаются затраты на его реализацию. Периодически проводится замена релейных схема управления на ПЛК. Релейные схемы сложнее обслуживать (если линия старая, зачастую нет электрических схем), сложнее настраивать линию и очень проблематично дорабатывать (ограничение по возможному функционалу). Релейная схема меняется на контроллеры фирмы Siemens Simatic S7-1200 (примером может служить модернизация системы управления установки розлива клея в пластиковые тубы PAT1500), но бывают и сложные релейные схемы и удобно поставить более мощный контроллер S7-300.
Программирование контроллеров является очень широкой задачей. Реализовывать простые задачи можно научится сравнительно быстро, но для любого, даже самого опытного программиста, встречаются задачи и проблемы с которыми он сталкивается впервые. Штат программистов ООО «Промышленная Автоматизация» имеет успешный опыт работы и постоянно сталкивается с новыми задачами по АСУ ТП.
Программирование контроллеров
Услуги Программирование контроллеровПрограммируемый логический контроллер является центральным звеном автоматизированной системы управления. В зависимости от производителя контроллерного оборудования программирование контроллеров осуществляется в различных программных средах, предоставляемых как платно, так и бесплатно.
Услуги программирования контроллеров
ИЦ «Альма инжиниринг» предлагает следующие услуги по программированию контроллеров:
Программование ПЛК Omron
Программирование и разработка управляющих программ для контроллеров Omron производится в специализированной программной среде от Omron.
Наши специалисты оказывают следующие услуги по работе с контроллерным оборудованием Omron:
- Программирование контроллеров Omron серии CP1E;
- Программирование контроллеров Omron серии CP1L;
- Программирование контроллеров Omron серии CP1H;
- Программирование контроллеров Omron серии CPM1A;
- Программирование контроллеров Omron серии CJ1G;
- Программирование контроллеров Omron серии CJ1M;
- Программирование контроллеров Omron серии CJ2H;
- Программирование контроллеров Omron серии CJ2M;
- Разработка программного обеспечения для контроллеров Omron на заказ.
Программирование ПЛК Allen Bradley
Контроллерное оборудование Allen Bradley подходит для решения как простейших, так и сложных специализированных задач автоматизации. Контроллеры Allen Bradley являются программируемыми логическими контроллерами наивысшего класса в сфере автоматизации и управления.
В семействе оборудования Allen Bradley существует несколько линеек контроллеров:
- контроллер Allen Bradley ControlLogix;
- контроллер Allen Bradley CompactLogix;
- контроллер Allen Bradley SLC 500;
- контроллер Allen Bradley FlexLogix;
- контроллер Allen Bradley MicroLogix;
- контроллер Allen Bradley Pico.
Программирование ПЛК ОВЕН
Контроллеры ОВЕН получили широкое распространение в современных системах управления российского производства. Низкая цена на контроллеры ОВЕН помогла очественным интеграторам удешевить свои проекты. Благодаря своей универсальности при относительно низкой цене, контроллеры ОВЕН являются лидером отечественного рынка контроллерного оборудования и находят применение в системах управления различного назначения. Вот почему услуги программирования контроллера ОВЕН так востребованы на сегодняшний день.
Программирование контроллеров производства ОВЕН ведется в среде разработки CoDeSys.
Специалисты нашего Центра являются профессионалами высокого уровня в области программирования контроллеров ОВЕН. Нами реализовано немало проектов на базе контроллерного оборудования ОВЕН.
Наши специалисты оказывают следующие услуги по программированию контроллеров ОВЕН:
- Программирование контроллеров ОВЕН серии 100;
- Программирование контроллеров ОВЕН серии 110;
- Программирование контроллеров ОВЕН серии 150;
- Разработка программного обеспечения для контроллеров ОВЕН на заказ.
Программирование логических реле LOGO от Siemens производится в программной среде разработки LOGO Soft Comfort.
Наши специалисты оказывают следующие услуги по работе с контроллерным оборудованием LOGO Siemens:
- Разработка программного обеспечения для контроллеров LOGO на заказ;
- Программирование контроллеров LOGO.
Программирование ПЛК SIMATIC Siemens
Программирование контроллеров Siemens серии SIMATIC производится в специализированных программных средах Step7.
Наши специалисты оказывают следующие услуги по работе с контроллерами SIMATIC Siemens:
- Разработка программного обеспечения для контроллеров SIMATIC на заказ;
- Программирование контроллеров Siemens серии SIMATIC S200, S1200;
- Программирование контроллеров Siemens серии SIMATIC S300.
На базе этих контроллеров возможно реализовать любой алгоритм работы технологического оборудования от простейшего до самого сложного.
Программирование микроконтроллеров
Отдельной темой для обсуждения может стать программирование микроконтроллеров.
Языки программирования микроконтроллеров отличаются от языков программирования промышленных контроллеров.
Наши специалисты также помогут Вам подобрать и запрограммировать специализированный микроконтроллер для котельной.
Разработка программного обеспечения на заказ
Разработка программного обеспечения для контроллера — это сложная многоэтапная задача. Вот основные этапы разработки:
- Составление Технического Задания на программирование контроллера;
- Согласование Технического Задания на программирование с Исполнителем и утверждение Заказчиком;
- Заключение Договора на услуги разработки программного обеспечения и программирования контроллеров;
- Разработка программного обеспечения для контроллера;
- Тестирование программы контроллера;
- Программирование контроллера;
- Сдача работ по программированию контроллера — подписание Акта сдачи-приемки работ по программированию.
ПАКПАК » Визуальное программирование контроллера BT Smart
Невиданные ранее успехи в микроэлектронике и объёмы крупносерийного производства сделали программируемые контроллеры чрезвычайно доступными. Они нашли широкое применение в учебном процессе в высших и профессиональных учебных заведениях, в общеобразовательных школах и в проектах любителей инженерного творчества. Сегодня мы рассмотрим возможности визуального программирования учебного контроллера Fischertechnik BT Smart в средах разработки ROBO Pro Light и Scratch версии 3.0.
Контроллер BT Smart (арт. 161944) входит в состав образовательного набора «STEM PREP 2.0 Физика, Робототехника, Экотехнологии» (арт. 548904) и электромеханических конструкторов «BT Стартовый набор 2.0» (арт. 540586) и «BT Стартовый набор» (арт. 540587), предназначенных для знакомства с основами программирования, автоматики и робототехники.
История вопроса
С формальной точки зрения ROBO Pro Light и Scratch относятся к так называемым инструментам визуального программирования, которые не требуют написания программ в текстовом виде и знания традиционных языков программирования. В учебных средах разработки ROBO Pro Light и Scratch реализована парадигма структурного программирования. Программы в Scratch составляются из цветных графических блоков с выступами и углублениями, которые соединяются между собой на экране компьютера так же, как конструктивные элементы обычного пластикового конструктора с системой крепления «шип-паз». Используя Scratch, дети продолжают «играть с конструктором» на экране компьютера уже привычным для себя образом. Визуальная среда программирования ROBO Pro Light придерживается традиционного подхода к знакомству с программированием и изучению информатики, предлагая составлять управляющие программы в виде стандартных блок-схем. Для наглядности графические блоки содержат в себе изображения датчиков и исполнительных устройств.
Блок-схемы появились как способ наглядного описания алгоритмов и процессов. В настоящее время они используются не только для составления различных схем, но и применяются в средствах графического программирования встроенных приложений для микроконтроллеров и промышленных программируемых логических контроллеров (ПЛК). Ещё в начале 90-х годов прошлого века для конструкторов fischertechnik из серии «Computing» появилось программное обеспечение LuckyLogic, которое позволяло составлять управляющие программы из псевдо-графических блоков.
В свою очередь Scratch продолжил традицию языка Лого, придуманного коллективом авторов, в число которых входил Сеймур Пейперт [1]. Язык Лого представляет собой инструмент взаимодействия детей с компьютером через посредника в виде черепашки, которая может выполнять различные команды на экране компьютера. Лого-черепашка оказалась «долгожительницей» под стать настоящим черепахам. Со временем ей на смену пришёл рыжий кот со своими помощниками, которых дети могут оживить в среде Scratch и, таким образом, рассказать свою историю, придумать мультфильм или создать простую компьютерную игру.
Благодаря стремительному развитию цифровых технологий сегодня у нас есть выбор – можно продолжать «командовать» забавным персонажем на экране компьютера и составлять программы, управляющие его поведением, а можно запрограммировать контроллер, который будет получать информацию от датчиков робота собранного из конструктора и управлять его исполнительными устройствами.
И ROBO Pro Light, и Scratch доступны в виде приложений для компьютеров, работающих под управлением операционной системы (ОС) Windows. У Scratch есть онлайн-версия, не требующая установки на компьютер. Для планшетов и смартфонов под управлением ОС Android и iOS имеется приложение ROBO Pro Smart, которое по функциям аналогично приложению ROBO Pro Light для Windows. У Scratch тоже есть приложение для Android. Программирование учебного контроллера BT Smart с помощью Scratch в настоящий момент доступно только в онлайн-версии на сайте https://www.ftscratch4.com/.
Функциональные возможности
В среде программирования ROBO Pro Light имеются графические блоки, которые позволяют работать с двумя типами цифровых датчиков: кнопочным переключателем (англ. switch) и фототранзистором светового барьера (англ. light barrier). Поддержка аналоговых и других видов цифровых датчиков реализована в полнофункциональной версии ROBO Pro для более мощного контроллера TXT, входящего в комплект поставки конструктора «TXT Набор первооткрывателя» (арт. 524328).
В то же время в расширении Scratch для контроллера BT Smart имеются программные блоки для проверки состояния не только кнопочного переключателя и фототранзистора, но и таких цифровых датчиков, как геркон – (англ. reed contact) и датчик траектории (англ. trail sensor), а также блок для получения информации от аналоговых датчиков: NTC-резистора (англ. NTC resistor), фоторезистора (англ. photoresistor) и датчика цвета (англ. color sensor). Для правильной интерпретации значений, получаемых на входах контроллера, имеется программный блок, позволяющий установить для входа контроллера один из четырёх типов датчика:
- «цифровой, напряжение» (англ. digital voltage) для фототранзистора светового барьера и датчика траектории;
- «цифровой, сопротивление» (англ. digital resistance) для кнопочного переключателя и геркона;
- «аналоговый, напряжение» (англ. analogue voltage) для датчика цвета;
- «аналоговый, сопротивление» (англ. analogue resistance) для NTC-резистора и фоторезистора.
Таким образом, использование расширения Scratch позволяет в полной мере раскрыть функциональный потенциал контроллера BT Smart и предоставляет огромное поле возможностей для усовершенствования стандартных и конструирования новых моделей. Например, подключив NTC-резистор к контроллеру BT Smart, модель пешеходного светофора можно легко превратить в индикатор температуры, который будет загораться красным светом, когда в помещении становится жарко, и гореть зелёным светом, если будет слишком прохладно.
Для управления исполнительными устройствами расширение Scratch предлагает больший набор программных блоков, но их функциональность аналогична возможностям двух блоков для управления лампами и моторами в среде ROBO Pro Light. Лампы и моторы можно включать и выключать. Включение исполнительных устройств возможно с изменением полярности для вращения моторов в разных направлениях и с разными уровнями напряжения, т.е. с разными скоростями вращения моторов и разными уровнями интенсивности свечения ламп (от 1 до 8).
И среда программирования ROBO Pro Light, и Scratch позволяют составлять линейные алгоритмы, алгоритмы с циклами, выполнять проверку условий с ожиданием и с ветвлением и поддерживают многопоточность.
Кроме этого, в Scratch можно создавать новые программные блоки, выполняющие функции подпрограмм. В упрощенной версии ROBO Pro Light такой возможности нет – подпрограммы появляются только в полнофункциональной среде программирования ROBO Pro. Scratch позволяет оживить не только модель, собранную из деталей конструктора, но и простейшую компьютерную модель, нарисованную с помощью встроенного графического редактора.
Примеры программ
Простейший алгоритм работы модели шлагбаума со световым барьером выглядит следующим образом: при пересечении светового барьера шлагбаум начинает открываться с задержкой в одну секунду и остаётся в открытом положении 5 секунд, после чего закрывается.
Представленные на рисунке примеры программ предполагают использование в конструкции шлагбаума двух концевых выключателей, роль которых выполняют кнопочные переключатели. Один концевой выключатель должен срабатывать при открытии шлагбаума, а другой при его закрытии, т.е. при подъёме стрелы шлагбаума в вертикальное положение и опускании стрелы в горизонтальное положение соответственно. Концевой выключатель горизонтального положения стрелы шлагбаума должен быть подключен к первому входу контроллера (I1), а концевой выключатель вертикального положения стрелы ко второму входу (I2).
Чтобы сделать шлагбаум более безопасным, подъём стрелы происходит со средней скоростью (V=4 и Set motor 1 to 4 backwards), а опускание с малой скоростью (V=2 и Set motor 1 to 2 forward). В начале программ после включения лампы светового барьера, подключенной к выходу контроллера M2, выполняется задержка продолжительностью 0,1 сек, которая предотвращает ложное срабатывание светового барьера. Включение светодиодной лампы в расширении Scratch выполняется с помощью блока управления мотором (Set motor 2 to 8 backwards), который позволяет задать необходимую полярность включения исполнительного устройства.
На рисунке видно, что один и тот же алгоритм работы шлагбаума, составленный из блоков Scratch, получился более компактным, а алгоритм в виде блок-схемы в среде ROBO Pro Light выглядит более наглядным и лучше отражающим структуру алгоритма. Таким образом, с одной стороны блок-схема даёт нам возможность в буквальном смысле «пройти» по всем ветвям алгоритма, следуя стрелкам и проверяя логические условия, а с другой стороны блок-схема перестаёт быть удобной и наглядной для больших алгоритмов, которые не умещаются на одном экране и их сложно «охватить» одним взглядом.
Рассмотренный нами простейший алгоритм имеет один существенный недостаток – он не обеспечивает безопасной работы шлагбаума. Если в процессе закрытия шлагбаума под его стрелой окажется пешеход или «замешкавшийся» автомобиль, то управляющая программа этого «не заметит» и стрела шлагбаума продолжит опускаться. Кроме этого, простейший алгоритм работы шлагбаума в начале своей работы не проверяет положение стрелы шлагбаума и не приводит её в исходное, т.е. закрытое положение. Реализация усовершенствованного алгоритма работы шлагбаума, лишённого вышеперечисленных недостатков, приведена на рисунках. На примере данных программ может быть наглядно продемонстрировано использование таких логических операций, как логическое «И» и логическое «ИЛИ».
Отладка программ
Процесс выполнения программы в среде ROBO Pro Light визуализирован в наглядной форме следующим образом – выполняемый в настоящий момент программный блок выделяется на блок-схеме красной рамкой, а на панели «Тест BT контроллера» можно наблюдать в реальном времени как за изменением состояния цифровых датчиков, например кнопка нажата или отжата, световой барьер не прерван или пересечён, так и исполнительных устройств: моторов и ламп.
В свою очередь, для отладки программ в среде Scratch можно временно использовать «отладочные» блоки, например, воспроизводящие различные ноты и звуки, что сделает рутинный процесс отладки увлекательным и более очевидным для учащихся. А приложение FTScratch BTSmart, обеспечивающее связь между расширением Scratch и контроллером BTSmart, отображает в наглядной форме показания датчиков (I1–I4) и состояние исполнительных устройств (M1–M2) как это показано на рисунке.
В качестве заключения
Конструктор и учебная среда программирования – всё это инструменты образовательного процесса, а выбор инструмента диктуется решаемой задачей. Scratch – это своего рода «мультитул» (от англ. multi-tool), т.е. универсальный многофункциональный инструмент. А ROBO Pro – специализированный набор инструментов (англ. toolkit) для будущих инженеров в области промышленной автоматизации – в нём есть всё самое необходимое и почти ничего лишнего. В руках хорошего мастера эти два инструмента будут отлично дополнять друг друга.
Файлы и ссылки
Список внешних источников
- Пейперт С. Переворот в сознании: Дети, компьютеры и плодотворные идеи: Пер. с англ. — М.: Педагогика, 1989. — 224 с., ил.
- Marji, Majed, Learn to program with Scratch: a visual introduction to programming with games, art, science, and match: No Starch Press. Inc., San Francisco
- Руководство к конструктору: Книга экспериментов Experimentierbuch Profi Computing: Pflaum Verlag München fischerwerke Artur Fischer GmbH & Co. KG
- Рабочая тетрадь для Стартового набора с заданиями по программированию контроллера BT Smart с помощью визуальной среды ROBO Pro Light
- Дидактический материал по программированию контроллера BT Smart с помощью визуальной среды ScratchX на немецком языке
- ГОСТ 19. 701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
- Видео-ролик BBC Buggy — Line Follower
Программирование контроллеров
Программирование, или перепрошивка контроллеров панелей управления генераторных установок.Причины программирования (перепрошивки) контроллеров панели управления — это комплекс мероприятий, которые проводятся инжиниринговой компанией. В процессе прошивки или перепрограммирования контроллеров может потребоваться как полная замена установленного программного обеспечения, так и частичное изменение существующих настроек.
Почему может потребоваться новая прошивка или перепрограммирование контроллера ДГУ:
Наиболее часто встречаемая причина программирования контроллера связана с его заменой, так как старый контроллер либо вышел из строя, либо не устраивает по своим характеристикам (возможностям). Естественно, новый контроллер, поставляемый в заводской упаковке не содержит в себе индивидуальных настроек по конкретную генераторную установку, её мощность, параметры работы двигателя или генератора переменного тока.
При установке на генераторную установку дополнительного оборудования, которое требует внешнего управления, и которому необходимы сигналы от контроллера ( к примеру дополнительная установка насоса автоматической подкачки дизельного топлива в бак, либо, к примеру, дополнительная вентиляция в помещении или иное внешнее оборудования. Такое внешнее оборудование может управляться как своим собственным контроллером с внутренней логикой, так и контроллером генераторной установки, если он поддерживает управление таким оборудованием.
Установка системы мониторинга и диспетчеризации. Количество, формат и объём передаваемых данных, тип передачи и задействованные протоколы связи настраивается в контроллеры при дополнительными роботами. Кроме того, может потребоваться прошивка и установка дополнительных модулей, которые как раз и отвечают за работу протоколов передачи данных.
Изменение параметров автоматического запуска генераторной установки, к примеру параметров сети, времени запуска, длительности «холостого» охлаждения или длительности перехода от генераторной установки на сеть. Применяется в разных случаях, к примеру, когда сеть изменила свои характеристики (повысилось напряжение или понизилось) в следствии чего происходят постоянные запуски ДГУ.
Отключение не критичных ошибок, к примеру отключение защиты по низкой температуре охлаждающей жидкости (вышел из строя подогреватель ОЖ, а запустить ДГУ необходимо). Перевод сообщений из статуса «ошибка» в статус «тревога», при котором не происходит автоматического и обязательного отключения генераторной установки.
Настройка синхронной (параллельной) работы нескольких электростанций между собой, настройка параллельной работы между ДГУ и сетью, настройка параллельной работы между ДГУ и ГПУ (газопоршневой установкой), настройка взаимодействия генераторной установки и сетевого распределительного автомата при параллельной работе.
Какие контроллеры мы программируем, перепрошиваем:
- Все контроллеры Power Wisard (PW 1. 0 — 2.2), установленные на генераторных установках производства FG Wilson
- Все контроллеры Deep SEA, от старых версий 30xx, 40xx, до новых версий 73xx MKII и 86xx MKII
- Все контроллеры ComAp, включая ОЕМ-версии данных котроллеров, выпускаемые под брендами SDMO, Onis Visa «Guard Revolution» или PRAMAC «AC 03»
- Все контроллеры DATAKOM и его ОЕМ-версии под брендом TEKSAN
Промышленный контроллер, подключение и программирование в
Виды и классификация промышленных контроллеров
На сегодняшний день существует поистине огромный выбор промышленных контроллер, и чтобы не запутаться давайте попробуем их классифицировать. В первую очередь ПЛК можно разбить на группы по количеству каналов ввода-вывода – это:
- Нано контроллеры, имеющие менее 16 каналов ввода-вывода;
- Мини контроллеры имеют до 100 каналов ввода-вывода;
- Средние контроллеры имеют уже до 500 каналов;
- Гиганты являются рекордсменами обладая более чем 500 каналами ввода-вывода.
Промышленные ПЛК можно разбить на виды по расположению модулей ввода-вывода.
- Моноблочные- модуль ввода-вывода и контроллер являются единым целым;
- Модульные- собираются в корзину сменными модулями в зависимости от задачи;
- Распределительные- имеют разные корпуса и соединяются контроллером по сети.
Для увеличения общего количества каналов типы контроллеров могут комбинироваться, скажем модульный или моноблочный ПЛК можно дополнить удаленным модулем ввода-вывода сри помощи интерфейса RS-485.
В зависимости от конструктивных особенностей, а также способу их крепления промышленные контроллеры можно разделить на:
- Панельные ПЛК;
- Монтажные ПЛК;
- Настенные ПЛК;
- Стоечные ПЛК;
- Бескаркасные ПЛК.
Область применения промышленных контроллеров также можно классифицировать на:
- Универсальные;
- Робототехника;
- Перемещение и позиционирование;
- Коммуникационные;
- Специализированные;
- ПИД – ПЛК.
И последние два вида классификации это язык программирования промышленных контроллеров и способ программирования.
- Алгоритмические языки- Basic, C#, C++, C.
- Машинный язык программирования МЭК 61131-3.
Классифицировать по способу программирования контроллеров можно так:
- Контроллер программируемый с лицевой стороны;
- Контроллер программируемый специальным программатором;
- Контроллер программируемый с помощью клавиатуры, мыши и дисплея;
- Контроллер программируемый с помощью переносного ПК.
На этом виды и классификация промышленных контроллеров заканчивается.
Неисправности и ошибки ПЛК
К сожалению, по незнанию основных принципов работы ПЛК одна из самых распространенных ошибок на оборудовании – это подсевшие аккумуляторные батареи, при отключенном питании на ПЛК приводящие к удалению или потере данных находящихся в памяти контроллера. В случае если у заказчика отсутствует копия проекта программы, то придется производить работы по написанию, программированию и отладке программы на оборудовании заказчика, это достаточно долгий процесс, занимающий от 2-ух до 3-ех месяцев.
Отсутствие связи между контроллером ПЛК и панели оператора также является достаточно распространенной ошибкой, которая может быть устранена только в сервисном центре, в лабораторных условиях и в авральном режиме займет от 1 до 2 дней. В процессе ремонта восстанавливается потерянная связь между ПЛК и панелью оператора.
Ошибка питания контроллера, как и ошибка входов требует ремонт ПЛК в сервисном центре, подобные ошибки на территории заказчика исправить не удастся.
Скачать коды ошибок ПЛК Siemens S7-200
Схема подключения контроллера
Схема контроллера зависит от производителя и типа, сколько существует ПЛК столько же и схем, вот лишь несколько схем ПЛК на примере контроллера Siemens S7-300.
CPU 312C: Назначение встроенных DI/DO |
Принципиальная схема встроенной цифровой периферии CPU 312C |
CPU 313C/313C-2/314C-2: назначение встроенных цифровых входов и выходов |
Принципиальная схема встроенной цифровой периферии CPU 313C/313C-2/ 314C-2 |
Параметрирование, программирование контроллера
Возможны два варианта программирования контроллеров.
- С выездом на производственную площадку заказчика;
- Программирование ПЛК в сервисном центре.
В каждом ПЛК установлена программа управления промышленным оборудованием, к примеру станком или роботом. Контроллер программируется на заводе изготовителе при покупке станка, линии. В некоторых случаях покупается оборудование с ПЛК без установленного программного обеспечения (ПО). После покупки данного оборудования потребуется квалифицированные специалисты для запуска данного промышленного оборудования.
Для запуска оборудования с контроллером ПЛК потребуется выполнить следующие работы:
- Разработка проекта программы контроллера;
- Написание программы контроллера;
- Запись программы в ПЛК;
- Пуско-наладка контроллера на оборудовании.
При возникновении сбоев на оборудовании может потребоваться редактирование или изменение проекта программы контроллера с записью измененного проекта в ПЛК.
Производители промышленных контроллеров
С момента своего появления ПЛК прочно заняли свое место во всех промышленных отраслях благодаря простоте и способности продолжительно и безаварийно работать в самых агрессивных средах. А как говорится спрос рождает предложение, промышленные контроллеры на сегодняшний день не делает только ленивый. Вот список самых известных производителей ПЛК в России.
- Advantech;
- Delta;
- Bocsh Rexroth;
- Lenze;
- Pilz;
- Jetter;
- Mitsubishi;
- Omron;
- Siemens;
- Hitachi;
- Агава;
- Овен.
Список далеко не полный, продолжать можно еще достаточно долго. Российский производитель также широко представлен на рынке промышленных контроллеров.
Диагностика, ремонт и программирование ПЛК в сервисном центре
Компания «Кернел» производит ремонт промышленной электроники и оборудования в с 2002 года. За это время мы накопили колоссальный опыт в том числе опыт в ремонте промышленных контроллеров.
Специалисты нашей компании произведут диагностику с выездом на территорию заказчика. С помощью программатора, подключаемого к ПЛК мы определим код ошибки, а последующая ее расшифровка поможет точно определить неисправный блок или узел на оборудовании.
На ровне с выездной диагностикой ПЛК мы также предлагаем услуги по диагностике в сервисном. В случае если точно известен нерабочий блок производится внутри-блочная поэлементная диагностика. После определения неисправного элемента производится замена на аналогичный, и обязательная проверка на специализированном стенде.
Специалисты нашего сервисного центра уделяют максимальное внимание к качеству исполнения ремонта промышленного оборудования. Именно поэтому мы смело даем гарантию на все выполненные работы шесть месяцев.
Ремонт промышленных контроллеров в производится исключительно с использованием оригинальных запасных частей, на компонентном уровне с применением высокотехнологичного оборудования, квалифицированным персоналом с инженерным образованием.
Если на вашем производстве вышел из строя ПЛК, обращайтесь в сервисный центр «Кернел». Специалисты нашей компании в минимальные сроки проведут глубокую диагностику и последующий ремонт промышленного контроллера в .
Как с нами связаться
Если вы заинтересованы в ремонте ПЛК в , оставьте заявку на ремонт с помощью специальной формы на сайте, либо связавшись с нашими менеджерами несколькими способами:
- Заказав обратный звонок (кнопка в правом нижнем углу сайта)
- Посредством чата (кнопка расположена с левой стороны сайта)
- Либо позвонив по номеру: +7(8482) 79-78-54; +7(917) 121-53-01
- Написав на электронную почту: [email protected]
Далеко не полный список производителей промышленной электроники и оборудования, ремонтируемой в нашей компании.
Главная Информация Основные языки программирования контроллеров PLCОсновные языки программирования контроллеров PLC
Главная задача ПЛК – это выполнение прикладной программы управления технологическим процессом. Очевидно, что незапрограммированный контроллер – это всего лишь пустая железяка, не приносящая никакой пользы человечеству.
Какие программы может выполнять промышленный контроллер? Ответ прост: практически любые. Современный контроллер свободно программируем, т.е. предоставляет разработчику возможность создавать пользовательские программы произвольной структуры без ограничений их функциональности, будь то программа управления пастеризатором на молочном комбинате или управление колонной ректификации на НПЗ. По сути, единственным ограничением здесь может быть объем свободных ресурсов контроллера.
Что нужно, чтобы запрограммировать ПЛК? Грамотный специалист. Во-вторых, персональный компьютер или портативный программатор, подключенный к контроллеру по сети. В-третьих, программный пакет разработки, поставляемый, как правило, за дополнительную плату. Иногда среда разработки входит в состав комплексного ПО для инсталляции и эксплуатации всей системы управления.
Современные средства разработки чрезвычайно функциональны и предлагают разработчику множество возможностей:
1. Разнообразные программные библиотеки, функциональные блоки, готовые процедуры и шаблоны. Использование предподготовленных компонентов сильно ускоряет процесс разработки программного обеспечения для ПЛК.
2. Инструменты для отладки, тестирования и симуляции прикладной программы. Последние позволяют выполнять программу ПЛК на персональном компьютере без загрузки в реальный контроллер.
3. Инструменты для автоматизированного документирования разработанной программы в соответствие с принятыми стандартами.
Но у программиста есть и более мощный инструмент. Дело в том, что современные средства разработки прикладного ПО для промышленных контроллеров, как правило, поддерживают до шести разных языков программирования.
Существует международный стандарт IEC 61131, разработанный Международной Электротехнической Комиссией (МЭК, IEC) и состоящий из восьми частей. Наиболее интересной является третья часть, IEC 61131-3, описывающая языки программирования ПЛК. Первоначальной целью стандарта IEC 61131-3 была унификация языков программирования ПЛК и предоставление разработчикам ряда аппаратно-независимых языков, что, по замыслу создателей стандарта, обеспечило бы простую переносимость программ между различными аппаратными платформами и снимало бы необходимость изучения новых языков и средств программирования при переходе разработчика на новый ПЛК.
К сожалению, цели в полном объеме достигнуты не были. Каждый производитель ПЛК сопровождает свой продукт собственной средой программирования, которая, как правило, не совместима с другими, да и о кросс-платформенности программного кода можно забыть. Тем не менее, в части описания языков программирования стандарт IEC 61131 остается чрезвычайно актуальным и является ориентиром для большинства разработчиков ПЛК.
Какие языки используются для программирования промышленных контроллеров? Ниже приведен краткий обзор языков стандарта.
Язык LD
Язык LD (LAD, Ladder) является графическим языком разработки, программа на котором представляет собой аналог релейной схемы. Пример программы на данном языке приведен на рис. 1. По идеи авторов стандарта, такая форма представления программы облегчит переход инженеров из области релейной автоматики на ПЛК.
К недостаткам данного языка можно отнести то, что по мере увеличения количества «реле» в схеме она становится сложнее для интерпретации, анализа и откладки. Еще один недостаток языка LD заключается в следующем: язык, построенный по аналогии с релейными схемами, может быть эффективно использован только для описания процессов, имеющих дискретный (двоичный) характер; для обработки «непрерывных» процессов (с множеством аналоговых переменных) такой подход теряет смысл.
Рис. 1. Язык релейных диаграмм LD.
Язык FBD
Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.
Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата.
Рис.2. Функциональная схема FBD.
Язык SFC
Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с другими языками (обычно с ST и IL), является графическим языком, в котором программа описывается в виде схематической последовательности шагов, объединенных переходами. Язык SFC построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131-3. Пример программы на языке SFC приведен на рис. 3.
Наиболее простым и естественным образом на языке SFC описываются технологические процессы, состоящие из последовательно выполняемых шагов, с возможностью описания нескольких параллельно выполняющихся процессов, для чего в языке имеются специальные символы разветвления и слияния потоков (дивергенции и конвергенции, в терминах стандарта IEC 61131-3).
Шаги последовательности располагаются вертикально сверху вниз. На каждом шаге выполняется определенный перечень действий (операций). При этом для описания самой операции используются другие языки программирования, такие как IL или ST.
Действия (операции) в шагах имеют специальные классификаторы, определяющие способ их выполнения внутри шага: циклическое выполнение, однократное выполнение, однократное выполнение при входе в шаг и т. д. В сумме таких классификаторов насчитывается девять, причем среди них есть, например, классификаторы так называемых сохраняемых и отложенных действий, заставляющие действие выполняться даже после выхода программы из шага.
После того, как шаг выполнен, управление передается следующему за ним шагу. Переход между шагами может быть условным и безусловным. Условный переход требует выполнение определенного логического условия для передачи управления на следующий шаг; пока это условие не выполнено программа будет оставаться внутри текущего шага, даже если все операции внутри шага уже выполнены. Безусловный переход происходит всегда после полного выполнения всех операций на данном шаге. С помощью переходов можно осуществлять разделение и слияние ветвей последовательности, организовать параллельную обработку нескольких ветвей или заставить одну выполненную ветвь ждать завершения другой.
Как и любому другому языку, SFC свойственны некоторые недостатки. Хотя SFC может быть использован для моделирования конечных автоматов, его программная модель не совсем удобна для этого. Это связано с тем, что текущее состояние программы определяется не переменной состояния, а набором флагов активности каждого шага, в связи с чем при недостаточном контроле со стороны программиста могут оказаться одновременно активными несколько шагов, не находящихся в параллельных потоках.
Еще одно неудобство языка связано с тем, что шаги графически располагаются сверху вниз, и переход, идущий в обратном направлении, изображается в неявной форме, в виде стрелки с номером состояния, в которое осуществляется переход.
Рис. 3. Язык последовательных функциональных схем SFC.
Язык ST
Язык ST (Structured Text, Структурированный Текст) представляет собой язык высокого уровня, имеющий черты языков Pascal и Basic. Данный язык имеет те же недостатки, что и IL, однако они выражены в меньшей степени. Пример программы на языке ST приведен на рис. 4.
С помощью ST можно легко реализовывать арифметические и логические операции (в том числе, побитовые), безусловные и условные переходы, циклические вычисления; возможно использование как библиотечных, так и пользовательских функций. Язык также интерпретирует более 16 типов данных.
Язык ST может быть освоен технологом за короткий срок, однако текстовая форма представления программ служит сдерживающим фактором при разработке сложных систем, так как не дает наглядного представления ни о структуре программы, ни о происходящих в ней процессах.
Рис. 4. Язык структурированного текста ST.
Язык IL
Язык IL (Instruction List, Список Команд) представляет собой ассемблероподобный язык, достаточно несложный по замыслу авторов стандарта, для его практического применения в задачах промышленной автоматизации пользователем, не имеющим, с одной стороны, профессиональной подготовки в области программирования, с другой стороны, являющимся специалистом в той или иной области производства. Однако, как показывает практика, такой подход себя не оправдывает.
Ввиду своей ненаглядности, IL практически не используется для программирования комплексных алгоритмов автоматизированного управления, но часто применяется для кодирования отдельных функциональных блоков, из которых впоследствии складываются схемы FBD или CFC. При этом IL позволяет достичь высокой оптимальности кода: программные блоки, написанные на IL, имеют высокую скорость исполнения и наименее требовательны к ресурсам контроллера.
Язык IL имеет все недостатки, которые присущи другим низкоуровневым языкам программирования: сложность и высокую трудоемкость программирования, трудность модификации написанных на нем программ, малую степень «видимого» соответствия исходного текста программы и решаемой задачи.
Пример программы на языке IL приведен на рис. 5.
Рис. 5. Язык инструкций IL.
Многие производители инструментальных средств, опирающиеся на стандарт IEC, не ограничиваются поддержкой рассмотренных выше пяти языков стандарта. Можно выделить, как минимум, еще один язык визуального программирования, который довольно популярен среди разработчиков.
Язык CFC
Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это дальнейшее развития языка FBD. Этот язык был специально создан для проектирования систем управления непрерывными технологическими процессами.
Проектирование сводится к выбору из библиотек готовых функциональных блоков, их позиционированию на экране, установке соединений между их входами и выходами, а также настройке параметров выбранных блоков. В отличие от FBD, функциональные блоки языка CFC выполняют не только простые математические операции, а ориентированы на управление целыми технологическими единицами. Так в типовой библиотеке CFC блоков находятся комплексные функциональные блоки, реализующие управление клапанами, моторами, насосами; блоки, генерирующие аварийные сигнализации; блоки PID-регулирования и т.д. Вместе с тем доступны и стандартные блоки FBD. Унаследовав от FBD саму концепцию программирования, язык CFC в наибольшей степени ориентирован на сам технологический процесс, позволяя разработчику абстрагироваться от сложного математического аппарата.
Рис. 6. Среда проектирования на языке CFC системы Simatic PCS7.
CFC прост в освоении, и при этом позволяет разрабатывать сложнейшие алгоритмы автоматизированного управления без каких-либо специфических знаний других языков программирования.
Казанцев Андрей
Наверх
MVC: модель, представление, контроллер | Codecademy
Фон
MVC — это сокращение от Model, View и Controller. MVC — популярный способ организации вашего кода. Основная идея MVC заключается в том, что каждый раздел вашего кода имеет цель, и эти цели различны. Часть вашего кода содержит данные вашего приложения, часть вашего кода делает ваше приложение красивым, а часть вашего кода контролирует работу вашего приложения.
MVC — это способ организовать основные функции вашего кода в их собственные, аккуратно организованные блоки.Это значительно упрощает и упрощает размышления о вашем приложении, пересмотр вашего приложения и совместное использование вашего приложения с другими.
Части MVC
Модель: Код модели обычно отражает реальные вещи. Этот код может содержать необработанные данные или определять основные компоненты вашего приложения. Например, если вы создавали приложение To-do, код модели определял бы, что такое «задача» и что такое «список» — поскольку это основные компоненты приложения todo. Просмотр: Код просмотра состоит из всех функций, которые напрямую взаимодействуют с пользователем.Это код, который делает ваше приложение красивым и в остальном определяет, как ваш пользователь видит его и взаимодействует с ним. Контроллер : Код контроллера действует как связующее звено между моделью и представлением, получая ввод пользователя и решая, что с ним делать. Это мозг приложения, который связывает воедино модель и представление.
Аналогия
MVC — это способ понять, как работает веб-приложение.
Это похоже на то, как готовят обед на День Благодарения.У вас есть холодильник, полный еды, как у Модели. Холодильник (Модель) содержит сырье, которое мы будем использовать для приготовления обеда.
У вас тоже наверняка есть рецепт или два. Рецепт (при условии, что вы в точности следуете ему) похож на ужин в честь Дня Благодарения. Рецепты определяют, какие продукты вы будете убирать из холодильника, как их собирать и сколько времени вам нужно готовить.
Затем у вас есть сервировка стола, столовое серебро и т. Д., Которыми ваши голодные друзья и семья едят на обед.Столешницы похожи на View. Они позволяют вашим гостям взаимодействовать с вашей моделью и созданием контроллера.
MVC в реальном мире
MVC полезен при планировании вашего приложения, потому что он дает вам схему того, как ваши идеи должны быть организованы в реальный код.
Например, представим, что вы создаете приложение со списком дел. Это приложение позволит пользователям создавать задачи и организовывать их в списки.
Модель Модель в приложении todo может определять, что такое «задача», и что «список» — это набор задач.
Код View определяет, как будут выглядеть задачи и списки визуально. Задачи могут иметь крупный шрифт или определенного цвета.
Наконец, контроллер может определять, как пользователь добавляет задачу или отмечает другую как завершенную. Контроллер соединяет кнопку добавления представления с моделью, так что, когда вы нажимаете «добавить задачу», модель добавляет новую задачу.
Подведение итогов
MVC — это платформа для размышлений о программировании и для организации файлов вашей программы.Чтобы обозначить идею о том, что ваш код должен быть организован по функциям, разработчики создадут папки для каждой части MVC. (Идея о том, что приложения должны быть разделены на основе функции каждой части кода, иногда упоминается как разделение задач . ) Если вы посмотрели курс Codecademy Ruby on Rails, вы могли заметить, что там — это папка для каждой части MVC в каждом приложении Rails, которое она представляет.
MVC дает вам отправную точку для воплощения ваших идей в код, а также упрощает возвращение к вашему коду, поскольку вы сможете определить, какой код что делает.Кроме того, организационный стандарт MVC упрощает понимание вашего кода другими разработчиками.
Думать о том, как код взаимодействует с другим кодом, является важной частью программирования, и научиться сотрудничать с другими разработчиками — важный навык. Потратив время на то, чтобы подумать о том, как ваше приложение вписывается в структуру MVC, вы повысите свои навыки как разработчика, обучая вас обоих. Это также улучшит ваши приложения!
контроллеров, правильный путь !.Что вы, вероятно, делаете неправильно… | Мигель Лоурейро | Навыки программирования
Итак, вы присоединились к хорошей архитектуре кода и пишете свои приложения в соответствии с хорошо известным шаблоном проектирования модель-представление-контроллер. Замечательно!
Как вы, наверное, знаете, многие популярные фреймворки на разных языках предоставляют очень хорошую отправную точку для реализации MVC в вашем проекте. Вы выбрали один, и он дал вам отличный шаблон для кодирования вашего программного обеспечения MVC. Вы выполнили его основные шаги и рамочные соглашения, и все работает.
С этим возникает проблема: определение и примеры, которые приводятся во многих документах по фреймворку и руководств, имеют тенденцию быть «неправильными» или вводящими в заблуждение.
Контроллер может отправлять команды модели для обновления состояния модели (например, редактирования документа). Он также может отправлять команды соответствующему представлению для изменения представления модели представлением (например, путем прокрутки документа).
Wikipedia
Следуя этому определению, давайте создадим псевдокод для метода обновления пользовательского контроллера, эта статья не зависит от языка.
# Обновление функции UserController (запрос)# 1. получить ввод
# 2. установить правила для ввода
# 3. если пользователь также хочет изменить пароль, установите для него правила
# 4. создайте валидатор и проверьте ввод
# 6. Если ввод действителен, обновите модель. электронная почта, если пароль изменен
# 7. вернуть ответinput = request.post
rules ['email'] = 'required | email'if input ['password']
rules ['password'] = 'min: 6 '
endifвалидатор = новый валидатор (правила, ввод)
если валидатор. fails ()
return Response (RenderView.errors ())
else
UserModel.update (input) # используйте некоторую модель для обновленияif input ['password']
endfunction
email = new Email ()
email.to = ' [email protected] '
email.body =' пароль изменен '
email.send ()
endif
return Response (RenderView.success ())
endif
Для некоторых из вас этот код не является неправильным , и на самом деле, согласно определению, которое мы получили из Википедии, это не так. У нас есть контроллер, который сообщает некоторой модели выполнить обновление и сообщает соответствующему представлению о необходимости отрисовки.И что?
Я сам делал это миллионы раз, но для тех из вас, кто делает это, давайте сделаем прорыв!
«Контроллеры подобны транспортерам: они должны получать запрос, запрашивать код основного приложения для выполнения логики и возвращать ответ. У них не должно быть логики предметной области. Закодируйте их, думая о конечном результате ».
Как мы видим, просто для простой задачи обновления пользователя у нас есть около 20 строк кода. У нас есть некоторая логика в методе, и мы следовали процедурному способу кодирования элемента управления.
Обновите некоторую информацию о пользователе — это то, что мы хотим выполнить, до ASK — это все, о чем должен заботиться метод контроллера.
Давайте теперь кодируем с намерением !
# UserController правильное обновление функции (запрос)# 1. Получить ввод
# 2. Пытается обновить информацию, используя некоторый объект домена основного приложения
, и вернуть успешный ответ
# 3. Если не удалось вернуть ответ с ошибкамиinput = request.post
попробуйте
endfunction
UserService.update (input)
return Response (RenderView.success)
catch ValidationException e
return Response (e.errors ())
Видите ли, теперь у нас есть очень чистый метод контроллера с 6 строками, и мы закодировали наш контроллер с намерением.
Но как насчет всей той логики, которая была у нас раньше? Это хорошая часть и то, что сделало меня лучше. После того, как я перестал делать процедурные контроллеры, я почувствовал, что полностью контролирую их. Поскольку логика моего приложения была вне контроллера, я мог начать создавать свою собственную логику приложения, следуя хорошим принципам ООП и шаблонам проектирования, которым я хотел следовать.
Итак, давайте попробуем, давайте создадим ядро нашего приложения.
# UserServiceClass UserService () function create ()
# некоторый код
endfunction function delete ()
# некоторый код
endfunction function update (input)rules ['email'] = 'required | email'
if input [' пароль ']
rules [' пароль '] =' min: 6 '
endifvalidator = new Validator (rules, input)
if validator.fails ()
Throw ValidationException (validator.ошибок)
else
UserModel.update (input)
return
endif
endfunctionendclass
И вот наша основная логика.
А как насчет емейлов? Что ж, еще раз, это не обязанность UserService отправлять электронные письма, это должен быть какой-то MailerService. Вы можете использовать несколько подходов. Я люблю следовать, например, в случае, если ваш стек разработки предоставляет это, — это вызвать какое-то событие в тех случаях, когда вам нужно, и слушатель позаботится о вызове службы для отправки электронной почты.
Надеюсь, это было полезно!
Что такое контроллер? — Определение с сайта WhatIs.com
ККонтроллер в вычислительном контексте — это аппаратное устройство или программа, которая управляет или направляет поток данных между двумя объектами. В вычислениях контроллерами могут быть карты, микрочипы или отдельные аппаратные устройства для управления периферийным устройством. В общем смысле, контроллер можно рассматривать как нечто или что-то, что взаимодействует между двумя системами и управляет связью между ними.
Вот несколько примеров контроллеров:
Графическая карта — это карта с интегральной схемой в компьютере или, в некоторых случаях, монитор, обеспечивающий цифро-аналоговое преобразование, видеопамять и видеоконтроллер, чтобы данные можно было отправлять на дисплей компьютера.
Игровой контроллер — это устройство ввода для игр.
Сетевая карта (NIC) — это компьютерная печатная плата или карта, которая устанавливается в компьютер для подключения к сети.
Интерфейсная карта WAN (WIC) — это специализированная сетевая карта, которая позволяет устройствам подключаться к глобальной сети.
Контроллер флэш-памяти — это часть флэш-памяти, которая взаимодействует с хост-устройством и управляет каталогом флэш-файлов.
Контроллер доставки приложений — это сетевое устройство центра обработки данных, которое помогает управлять подключениями клиентов к сложным веб-приложениям и корпоративным приложениям.
Контроллер управления основной платой (BMC) — это специализированный служебный процессор, который отслеживает физическое состояние компьютера, сетевого сервера или другого аппаратного устройства с помощью датчиков и обменивается данными с системным администратором через независимое соединение.
Пограничный контроллер сеанса (SBC) — это устройство или приложение, которое управляет способом, которым вызовы, также называемые сеансами, инициируются, проводятся и завершаются в сети VoIP (передача голоса по Интернет-протоколу).
Основной контроллер домена (PDC) и резервный контроллер домена (BDC) — это роли, которые могут быть назначены серверу для управления доступом к набору сетевых ресурсов (приложениям, принтерам и т. Д.) Для группы пользователей.
Последнее обновление: октябрь 2012 г.
Программирование встроенного контроллера C| UC San Diego добавочный номер
Этот курс обучает студентов навыкам программирования на встроенном языке C.
используется для программирования встроенных контроллеров.Курс начинается с изучения языка Embedded C, включая синтаксис языка, типы данных и управляющие структуры. Затем студенты будут использовать Embedded C для написания и выполнения кода на реальном оборудовании встроенного контроллера. Студент узнает, как оборудование встроенного контроллера сопоставляется с данными и структурами управления Embedded C. Студент также изучит такие концепции, как HAL (уровень аппаратной абстракции), и то, как он делает возможным написание Embedded C для многих различных типов встроенных контроллеров. В конце курса студент напишет и запустит Embedded C для управления реальными аппаратными функциями, такими как GPIO (ввод / вывод общего назначения), АЦП (аналого-цифровое преобразование) и последовательный ввод / вывод.
Основные моменты курса:
- Стек встроенного программного обеспечения
- Взаимодействие с расширенными периферийными устройствами с использованием аппаратных протоколов связи
- Разработка и оптимизация встроенного программного обеспечения
- Соответствующие тематические исследования проблем проектирования Интернета вещей
Результаты обучения:
- Определите компоненты программного обеспечения Embedded C и узнайте, чем они отличаются от стандартных компонентов программного обеспечения C.
- Распознавать и использовать важные концепции, такие как HAL (уровень аппаратной абстракции), для написания встроенного кода C, переносимого на различные встроенные контроллеры
- Использовать аппаратный / программный механизм сигнализации для реализации эффективного взаимодействия между встроенным программным стеком и оборудованием
- Понимать протоколы аппаратной связи для реализации с другими периферийными аппаратными устройствами, такими как GPIO, ADC и последовательный ввод-вывод
- Понимание аппаратного и программного стека встроенного контроллера и их соответствующих отличий от традиционной разработки программного обеспечения
Аппаратное обеспечение: STM32 IOT Discovery Node 915MHZ — Mfg.Номер детали B-L475E-IOT01A. Деталь можно приобрести у MOUSER Electronics или Digi-Key Electronics или у любого другого авторитетного продавца электроники. Этот микроконтроллер используется во всех четырех обязательных курсах данной программы.
Курс обычно предлагается: Онлайн в осенних и весенних четвертях.
Предварительные требования: CSE-40476 Программирование на C / C ++ II: концепции динамической памяти и файлового ввода-вывода и проектирование оборудования встроенных систем ECE-40292 или эквивалентные знания и опыт.
Следующий шаг: После завершения этого курса рассмотрите возможность использования ECE-40097 «Программирование встроенного контроллера для систем реального времени», чтобы продолжить обучение.
Контактное лицо: Для получения дополнительной информации об этом курсе, пожалуйста, напишите по адресу [email protected]
Номер курса: ECE-40291
Кредиты: 3,00 ед.
Соответствующие программы сертификации: Разработка встроенных систем
+ Развернуть все
21.09.2021 — 20.11.2021
$ 795
Онлайн
Закрыт
В данный момент нет запланированных разделов этого курса. Пожалуйста, свяжитесь с отделом науки и технологий по телефону 858-534-3229 или без[email protected] для получения информации о том, когда этот курс будет снова предложен.
Роль контроллеров представления
Роль контроллеров представления
Контроллеры представления являются основой внутренней структуры вашего приложения.В каждом приложении есть хотя бы один контроллер представления, а в большинстве приложений их несколько. Каждый контроллер представления управляет частью пользовательского интерфейса вашего приложения, а также взаимодействием между этим интерфейсом и базовыми данными. Контроллеры представления также облегчают переходы между различными частями вашего пользовательского интерфейса.
Поскольку они играют такую важную роль в вашем приложении, контроллеры представлений находятся в центре почти всего, что вы делаете. Класс UIViewController
определяет методы и свойства для управления вашими представлениями, обработки событий, перехода от одного контроллера представления к другому и координации с другими частями вашего приложения.Вы создаете подкласс UIViewController
(или один из его подклассов) и добавляете собственный код, необходимый для реализации поведения вашего приложения.
Есть два типа контроллеров представления:
Контроллеры представления содержимого управляют отдельной частью содержимого вашего приложения и являются основным типом контроллера представления, который вы создаете.
Контейнерные контроллеры представления собирают информацию от других контроллеров представления (известных как контроллеры дочерних представлений ) и представляют ее таким образом, чтобы облегчить навигацию или по-разному представлять содержимое этих контроллеров представления.
Большинство приложений представляют собой смесь контроллеров представления обоих типов.
Просмотр управления
Самая важная роль контроллера представления — управлять иерархией представлений. Каждый контроллер представления имеет единственное корневое представление, которое включает в себя все содержимое контроллера представления. К этому корневому представлению вы добавляете представления, необходимые для отображения вашего контента. Рисунок 1-1 иллюстрирует встроенную взаимосвязь между контроллером представления и его представлениями. Контроллер представления всегда имеет ссылку на свое корневое представление, и каждое представление имеет сильные ссылки на свои подпредставления.
Рисунок 1-1 Связь между контроллером представления и его представлениямиПримечание
Обычной практикой является использование выходов для доступа к другим представлениям в иерархии представлений вашего контроллера представления. Поскольку контроллер представления управляет содержимым всех своих представлений, выходы позволяют хранить ссылки на нужные представления. Сами выходы подключаются к фактическим объектам просмотра автоматически, когда представления загружаются из раскадровки.
Контроллер представления содержимого сам управляет всеми своими представлениями.Контроллер представления контейнера управляет своими собственными представлениями, а также корневыми представлениями одного или нескольких своих дочерних контроллеров представления. Контейнер не управляет содержимым своих дочерних элементов. Он управляет только корневым представлением, изменяя размеры и размещая его в соответствии с дизайном контейнера. Рисунок 1-2 иллюстрирует отношения между контроллером разделения представления и его дочерними элементами. Контроллер разделения представления управляет общим размером и положением своих дочерних представлений, но контроллеры дочерних представлений управляют фактическим содержимым этих представлений.
Рисунок 1-2 Контроллеры представления могут управлять контентом из других контроллеров представления.Для получения информации об управлении представлениями вашего контроллера представления, см. Управление компоновкой представления.
Маршалинг данных
Контроллер представления действует как посредник между представлениями, которыми он управляет, и данными вашего приложения. Методы и свойства класса UIViewController
позволяют управлять визуальным представлением вашего приложения. Когда вы создаете подкласс UIViewController
, вы добавляете в свой подкласс любые переменные, необходимые для управления вашими данными.Добавление пользовательских переменных создает отношения, подобные показанной на рис. 1-3, где контроллер представления имеет ссылки на ваши данные и на представления, используемые для представления этих данных. Вы несете ответственность за перемещение данных между ними.
Вы всегда должны поддерживать четкое разделение ответственности внутри ваших контроллеров представления и объектов данных. Большая часть логики обеспечения целостности ваших структур данных принадлежит самим объектам данных.Контроллер представления может проверять ввод, поступающий из представлений, а затем упаковывать этот ввод в формате, который требуется вашим объектам данных, но вы должны минимизировать роль контроллера представления в управлении фактическими данными.
Объект UIDocument
— это один из способов управления данными отдельно от контроллеров представления. Объект документа — это объект контроллера, который знает, как читать и записывать данные в постоянное хранилище. Когда вы создаете подкласс, вы добавляете любую логику и методы, необходимые для извлечения этих данных и передачи их контроллеру представления или другим частям вашего приложения.Контроллер представления может хранить копию любых данных, которые он получает, чтобы упростить обновление представлений, но документ по-прежнему владеет истинными данными.
Взаимодействие с пользователем
Контроллеры представления являются объектами-респондентами и способны обрабатывать события, которые идут вниз по цепочке респондентов. Хотя они могут это делать, контроллеры представлений редко обрабатывают события касания напрямую. Вместо этого представления обычно обрабатывают свои собственные события касания и сообщают о результатах методу связанного делегата или целевого объекта, которым обычно является контроллер представления.Таким образом, большинство событий в контроллере представления обрабатываются с помощью методов делегата или методов действия.
Дополнительные сведения о реализации методов действий в контроллере представления см. В разделе Обработка взаимодействий с пользователем. Для получения информации об обработке других типов событий см. Руководство по обработке событий для iOS .
Управление ресурсами
Контроллер представления принимает на себя всю ответственность за свои представления и любые объекты, которые он создает. Класс UIViewController
автоматически обрабатывает большинство аспектов управления представлениями.Например, UIKit автоматически освобождает все связанные с просмотром ресурсы, которые больше не нужны. В ваших подклассах UIViewController
вы несете ответственность за управление любыми объектами, которые вы создаете явно.
Когда доступная свободная память заканчивается, UIKit просит приложения освободить все ресурсы, которые им больше не нужны. Один из способов сделать это — вызвать метод didReceiveMemoryWarning
ваших контроллеров представления. Используйте этот метод для удаления ссылок на объекты, которые вам больше не нужны или которые можно легко воссоздать позже.Например, вы можете использовать этот метод для удаления кешированных данных. При возникновении состояния нехватки памяти важно освободить как можно больше памяти. Приложения, которые потребляют слишком много памяти, могут быть немедленно прекращены системой для восстановления памяти.
Адаптивность
Контроллеры представлений отвечают за представление своих представлений и за адаптацию этого представления к базовой среде. Каждое приложение для iOS должно работать на iPad и на iPhone разных размеров. Вместо того, чтобы предоставлять разные контроллеры представлений и иерархии представлений для каждого устройства, проще использовать один контроллер представления, который адаптирует свои представления к изменяющимся требованиям к пространству.
В iOS контроллеры представления должны обрабатывать крупномасштабные и мелкозернистые изменения. Грубые изменения происходят при изменении характеристик контроллера представления. Черты — это атрибуты, которые описывают общую среду, например масштаб отображения. Двумя наиболее важными характеристиками являются классы горизонтального и вертикального размера контроллера представления, которые указывают, сколько места у контроллера представления в данном измерении.Вы можете использовать изменения класса размера, чтобы изменить способ расположения представлений, как показано на рисунке 1-4. Когда классом размера по горизонтали является , обычный , контроллер представления использует дополнительное горизонтальное пространство для размещения своего содержимого. Когда классом размера по горизонтали является compact , контроллер представления размещает свое содержимое по вертикали.
Рисунок 1-4 Адаптация видов к изменениям класса размеровВ рамках данного класса размеров в любое время могут произойти более мелкие изменения размера.Когда пользователь поворачивает iPhone из книжной в альбомную, класс размера может не измениться, но размеры экрана обычно меняются. Когда вы используете Auto Layout, UIKit автоматически регулирует размер и положение представлений в соответствии с новыми размерами. Контроллеры просмотра могут вносить дополнительные настройки по мере необходимости.
Дополнительные сведения об адаптивности см. В разделе Адаптивная модель.
Иерархия контроллера представления
© Apple Inc., 2018. Все права защищены.Условия использования | Политика конфиденциальности | Обновлено: 16.09.2015
Easy Pickings для аппаратного обеспечения контроллера и программного обеспечения для программирования
При автоматизации машин или процессов важен выбор правильного аппаратного обеспечения контроллера, и приложение часто управляет процессом выбора. Однако программное обеспечение для программирования может упростить разработку, запуск и эксплуатацию — и поэтому является важным фактором при принятии решения о покупке.
Джефф Пейн, менеджер по продукту группы автоматизации управления в AutomationDirect, написал статью «Как выбрать правильный контроллер автоматизации производства для вашего приложения», которая была опубликована в выпуске журнала Control Engineering за январь 2018 года.В статье он объяснил некоторые требования, которые следует учитывать при выборе контроллера для использования в приложении, чтобы гарантировать, что как аппаратное, так и программное обеспечение будут соответствовать требованиям будущего. Он также отметил, что программная платформа может сыграть большую роль в успехе проекта.
Существует три семейства контроллеров для автоматизации машин или процессов: программируемые логические контроллеры (ПЛК), программируемые контроллеры автоматизации (PAC) и промышленные ПК (IPC). Многие функции и функции этих типов контроллеров объединяются.
«В то время как ПЛК был первым, кто заменил реле, и остается лучшим выбором для приложений малого и среднего размера, его возможности растут по мере адаптации новых технологий. Многие младшие модели используют программирование релейной логики, чего достаточно для большинства приложений. Более дорогие ПЛК позволяют использовать функциональные блоки и другие языки IEC 61131 ».
PACчасто имеют расширенные возможности, необходимые для некоторых приложений безопасности, движения и машинного зрения.IPC делает то же самое, и может быть лучшим выбором для сложных приложений, требующих одновременного использования нескольких языков программирования. Внутри каждого семейства контроллеров поставщики обычно поставляют ряд продуктов.
«Независимо от того, какое семейство контроллеров выбрано, поставщики предлагают широкий спектр форм-факторов контроллера в пределах каждого семейства, от малого до среднего и большого. Например, AutomationDirect предлагает семейство контроллеров Click, Do-more и Productivity — с возможностями, расширяющимися при перемещении сверху вниз на рисунке ниже. ”
Мысли о выборе контроллера
Пейн отмечает, что следует учитывать не только спецификации контроллера, но и требования к приложениям, а также возможности персонала предприятия и масштабируемость в будущем (таблица 1).
Таблица 1: Рекомендации по выбору ключевого контроллера
- Опыт автоматизации заводского персонала
- Количество и тип ввода / вывода
- Требуемые функции управления: ПИД-регулирование с обратной связью, движение, высокая скорость и т. Д.
- Опции связи
- Требования к сбору данных
- Требования к специальным функциям
Некоторые предприятия лучше разбираются в автоматизации, чем другие, что является важным фактором в процессе выбора.
«Если персонал предприятия плохо знаком с ПЛК, то небольшой и простой контроллер, такой как AutomationDirect Click, будет хорошим выбором. Эти типы контроллеров наиболее просты в использовании, но их можно легко расширить, и они обладают многими функциями более крупных ПЛК. ”
Определение приложения
Первый шаг — тщательно составить список всех требований, особенно более сложных, таких как управление движением.
«В дополнение к дискретным машинным и аналоговым функциям процесса, некоторые ПЛК эволюционировали для выполнения сложных задач, таких как управление движением и ПИД-регулирование, например, этот AutomationDirect Productivity 2000. Этот тип контроллера может обрабатывать сложные приложения, такие как точное движение, например высокоскоростная упаковочная линия, использующая выравнивание регистрации или синхронизированное управление скоростью с обратной связью энкодера.”
Сервоприводыи приводы с регулируемой скоростью могут усложнять ситуацию, поэтому убедитесь, что имеется связь с приводом для управления скоростью, положением или крутящим моментом. Убедитесь, что Ethernet и соответствующий протокол цифровой связи также доступны.
Сбор данных необходим во многих приложениях.
«К счастью, многие контроллеры, даже новые небольшие ПЛК, имеют не только встроенные средства связи, но также возможность регистрации данных, доступа к веб-серверу и электронной почты. Возможность записи данных на карты micro SD — еще одна полезная функция во многих случаях, наряду с функциональностью веб-сервера и удаленным доступом.”
Критерии выбора программного обеспечения
Как правило, программирование программного обеспечения занимает примерно столько же времени, что и проектирование электрической части проекта автоматизации. Однако программное обеспечение для программирования может иметь большое влияние на время и уровень знаний, необходимых для завершения проекта. Некоторые пакеты программного обеспечения для программирования контроллеров проще в использовании, чем другие. При оценке программного обеспечения учитывайте элементы таблицы 2.
Таблица 2: Рекомендации по программному обеспечению контроллера
- Простота программирования
- Зона предпочтений и комфорта
- Вложение времени и денег
- Имеются учебные ресурсы
Do-more Designer от AutomationDirect — это популярная платформа программирования контроллера для линейки ПЛК Do-more.Эта среда программирования обеспечивает простоту программирования с помощью обширных мультимедийных разделов помощи, помогающих при программировании.
Руководства пользователя должны существовать онлайн и быть легкодоступными. В программную платформу Do-more Designer встроено более 130 видеороликов, а также библиотеки технической информации.
Тестирование — еще одна важная функция, и возможности в этой области должны быть включены в программное обеспечение для программирования контроллера.
«Программное обеспечение для программирования должно включать возможность просмотра отклика контура ПИД-регулирования и профилей движения, а также для моделирования других функций в программном обеспечении.Встроенные симуляторы проектов могут значительно сэкономить время, позволяя тестировать код без наличия оборудования или перед загрузкой в существующую систему ».
Потратьте время на ознакомление с аппаратным и программным обеспечением. Веб-сайт AutomationDirect является отличной отправной точкой, поскольку он содержит информацию обо всем аппаратном и программном обеспечении, необходимом для успешного проекта автоматизации для широкого спектра приложений и требований.
AutomationDirect надеется, что этот блог предоставит вам краткий обзор соображений, касающихся контроллеров, а также преимуществ современного программного обеспечения для программирования контроллеров.Если вы хотите узнать больше, ознакомьтесь с обзором наших программируемых контроллеров и обзором программных продуктов.
Чтобы прочитать больше статей о программируемом управлении, щелкните здесь.
11. Программирование «Контроллер плюс»
В этом разделе вы узнаете о:
- Как совместить команды контроллера (джойстика) с программированием
- Самостоятельное проектирование и программирование.
В этом проекте используется робот-автопилот из главы 4 инструкции по сборке VEX IQ .Вам нужно будет собрать этого робота, прежде чем вы начнете программировать. См. Инструкции на этапах сборки 102–117. Это тот же робот, который вы использовали в предыдущем упражнении. Для этого занятия вам следует снять датчик расстояния.
Перед началом работы убедитесь, что вы выполнили все инструкции из Руководства пользователя контроллера VEX IQ по настройке мозга, двигателей и датчиков VEX IQ.
Подготовьте своего робота:
- Убедитесь, что вы построили правильный робот и что все двигатели и датчики подключены к правильным портам
- Проверить батареи
- Установить радио
- Убедитесь, что VEX IQ Brain сопряжен с контроллером (если вы используете контроллер)
Подготовить RM Studio:
- На странице проекта RM Studio щелкните Create a New Project
- Нажмите Цель: VEX IQ и Язык: Blockly, Flowol, Python или Controller Express
- Введите название проекта в поле.Возможно, вы захотите использовать имя действия в качестве имени вашего проекта
- Нажмите Create и дождитесь загрузки страницы нового проекта
- Подключите VEX IQ Brain к компьютеру с помощью кабеля USB A-to-micro (входит в комплект VEX)
- Нажмите кнопку с галочкой на мозге, чтобы включить его
- Нажмите Обнаружить датчики . На панели справа теперь будут отображаться два двигателя. Если бы были установлены какие-либо другие датчики, они бы тоже появились
- Убедитесь, что двигатели подключены и настроены на панели Device Monitor и Configuration.
- Измените имя motor_1 на motor_left, а motor_6 на motor_right
- Для «motor_right» щелкните значок шестерни , выберите «Двигатель (обратная полярность)» в поле «Подтип», а затем щелкните « OK .«
В этом уроке мы рассмотрим, как использовать контроллер и программирование одновременно. Чтобы объединить их, вы запрограммируете своего робота-автопилота на воспроизведение Freeze Tag.
Контроллер VEX IQ
Freeze tag — игра, в которой «It» человек пытается прикоснуться к другому игроку. При прикосновении к этому человеку он должен «застыть» и не двигаться, пока «Оно» не отметит всех играющих. Версия робота аналогична. Вот правила для Robot Freeze Tag:
- Водители будут управлять роботами с помощью контроллера.
- У всех роботов есть два переключателя на бампере на задней части робота.
- Роботы играют в ограниченной зоне, определяемой Рефери. Стартовые позиции роботов также определяет судья.
- Когда робот помечен (один из его переключателей на бампере нажимается другим роботом), он замораживается.
- Замороженный робот НЕ может отвечать на команды от контроллера. Рефери будет проверять это, поэтому убедитесь, что ваша программа гарантирует, что ваш робот не может реагировать на команды контроллера во время зависания.
- Замороженный робот должен мигать красным светом, чтобы показать, что он заморожен и вышел из игры.
- Любой робот может пометить любого другого размороженного робота.
- В игру можно играть в любой закрытой зоне, такой как поле для соревнований VEX IQ или определенная зона пола классной комнаты. Из синей малярной ленты можно быстро и просто сделать арену. Любой робот, покидающий игровую зону, считается замороженным и больше не может играть.
Вам нужно будет запрограммировать двигатели вашего робота для ответа на команды, отправленные с контроллера.Как вы помните из Controller Express Unit, «AxisA» находится на левом джойстике и используется как любой другой датчик. В этом случае Blockly будет читать значение AxisA (которое может быть от -100 до 100, от полного обратного до полного прямого). Правый джойстик — «AxisD». Команда для отправки информации о джойстике контроллера на двигатели:
Вы найдете кнопку «положение» в разделе «Датчики VEX IQ» на панели инструментов. Здесь вы также найдете кнопку «нажата», с помощью которой вы можете прочитать значение цифровых кнопок контроллера.
Не забудьте добавить комментарии к своей программе! Это очень важно, поскольку вы пишете все большие и большие программы.
Вам нужно будет написать эту программу самостоятельно, но вот несколько советов:
- Помните, вам не нужен таймер, игра продолжается до тех пор, пока только один робот НЕ будет постоянно заморожен.
- В нашем примере программы мы использовали эти возможности Blockly. Вы можете запрограммировать это по-другому, но знание того, что мы сделали, может помочь вам начать:
- Мы использовали управление двигателем вместо трансмиссии.
- Мы использовали оба переключателя на бампере (например, «Если коснуться бампера 8 или бампера 9, робот должен замерзнуть»).
- Мы использовали цикл Repeat для проверки команд контроллера и касаний
- Когда робот помечен, мы не выключаем программу, но останавливаем его движение.
Напишите свой код, просмотрите его, чтобы посмотреть, будет ли он работать, а затем попробуйте!
¶ Загрузка и тестирование вашей программы
- Подключите робота к компьютеру и убедитесь, что VEX IQ Brain включен.
- Внимание! Ваша программа запустится, как только вы ее загрузите, поэтому убедитесь, что ваш робот находится на полу или его кто-то держит. Вы же не хотите сбивать это со стола!
- Нажмите Выполнить , чтобы загрузить вашу программу в робот. Теперь вы должны увидеть «Download Done» на зеленой полосе внизу экрана.
- Отключите робота от сети и поставьте его на пол.
- В приложении «Мозг» используйте кнопки со стрелками вверх и вниз, чтобы выделить загруженную программу.
- Убедившись, что ваш робот находится в безопасной зоне и никто не видит рядом с ним (наденьте защитные очки), нажмите кнопку с галочкой на Brain, чтобы запустить вашу программу. Если хотите, запустите его несколько раз.
Приведите в движение несколько роботов и играйте в игру по правилам. Как прошло? Ваша программа работала так, как вы думали? Если ваша программа не сработала так, как вы думали, внесите некоторые изменения и попробуйте еще раз. Когда у каждого в вашем классе будет рабочий робот, сыграйте в последнюю игру.Последний движущийся робот — победитель!
Расширенная версия Robot Freeze Tag добавляет некоторые функции, чтобы сделать игру более интересной. Вот правила для Advanced Robot Freeze Tag:
- Водители будут управлять роботами с помощью контроллера.
- У всех роботов есть два переключателя на бампере на задней части робота.
- Роботы играют в ограниченной зоне, определяемой Рефери. Стартовые позиции роботов также определяет судья.
- Пока робот разморожен, он должен гореть зеленым светом.
- Когда робот помечен (один из его переключателей на бампере нажимается другим роботом), он прекращает движение на 3 секунды и отображает красный свет и короткий звуковой эффект.
- Когда робот заморожен, ни один другой робот не может находиться ближе 30 см (около фута) от замороженного робота. Робот-метчик должен отступить на расстояние не менее 30 см от замороженного робота. Это сделано для того, чтобы робот не сидел за замороженным роботом и не пометил его сразу после того, как он снова включится.
- После трехкратного замораживания робот навсегда замораживается и выходит из игры.Постоянно замороженный робот должен попеременно мигать красным и белым светом. Никакой другой робот не может взаимодействовать с постоянно замороженным роботом.
- Замороженный робот НЕ может отвечать на команды от контроллера. Рефери будет это проверять, поэтому убедитесь, что ваша программа гарантирует, что ваш робот не может реагировать на команды контроллера в замороженном или постоянно замороженном состоянии.
- Любой робот может пометить любого другого размороженного робота.
Вам нужно будет написать эту программу самостоятельно, но мы можем предложить несколько советов:
- Помните, вам не нужен таймер, игра продолжается до тех пор, пока только один робот НЕ будет постоянно заморожен.
- В нашем примере программы мы использовали эти возможности Blockly. Вы можете запрограммировать это по-другому, но знание того, что мы сделали, может помочь вам начать:
- Мы устанавливаем переменные для количества раз, когда робот уже был помечен
- Мы использовали управление двигателем вместо трансмиссии.
- В качестве источника света мы использовали Touch LED
- Мы использовали математический блок Изменить для подсчета количества касаний
- Мы использовали оба переключателя на бампере (например, «Если коснуться бампера 8 или бампера 9, робот должен замерзнуть»).
- Мы использовали цикл Repeat для проверки команд контроллера и касаний
- Когда робот получает свой третий тег, мы не выключаем программу, но останавливаем его движение, а также мигаем красным и белым светом.
Как вы думаете, что произойдет? Сыграйте в Advanced Robot Freeze Tag с другими роботами и посмотрите, как они работают.
Нажмите Сохранить перед выполнением этих действий с расширением.
В окне проекта нажмите Сгенерированный код . Когда вы компилируете и загружаете свою программу Blockly, Robot Mesh Studio конвертирует вашу программу Blockly в Python. Вы можете увидеть код Python в разделе «Сгенерированный код» на экране. Можете ли вы найти свои команды Blockly в коде Python?
Измените правила игры, запрограммируйте свои изменения и попробуйте еще раз.
1. Меньше или больше трех зависаний?
Ответ:
2. Вместо того, чтобы постоянно зависать после 3, измените его на игру с таймером, и победителем станет робот с наименьшим количеством тегов в пределах вашего временного лимита. Как вы будете считать, а затем отображать количество тегов?
Ответ:
3. Что делать, если вам нужно нажать оба переключателя на бампере одновременно, чтобы получить бирку?
Ответ:
1. Какие блоки Blockly вы использовали для написания своей программы?
Ответ:
2.Каким образом входные данные контроллера поступают так же, как входы датчиков?
Ответ:
3. Насколько хорошо ваш робот водил машину? Легко ли было заставить робота двигаться в одном направлении? Как бы вы изменили программу своего робота, чтобы ему было легче управлять?
Ответ:
4. Помимо джойстиков, на контроллере есть кнопки, которые можно программировать. Назовите хотя бы один способ запрограммировать кнопку в этом роботе, или, если вы уже запрограммировали кнопку контроллера, как вы ее использовали?
Ответ:
5.Не могли бы вы использовать кнопки контроллера для изменения цвета светодиода сенсорного датчика? Как бы вы это запрограммировали?
Ответ:
.