Text
                    ПРОФОБРАЗОВАНИЕ
Ц.И. Калинин
Р.А. Куницын
А.А. Багаев
Программируемые
ЛОГИЧЕСКИЕ КОНТРОЛЛЕРЫ
В СИСТЕМЕ АВТОМАТИЗАЦИИ
Учебное пособие
П^ар-нацл 2016

Ц.И. Калинин, Р.А. Куницын, А.А. Багаев ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ КОНТРОЛЛЕРЫ В СИСТЕМЕ АВТОМАТИЗАЦИИ Учебное пособие Барнаул 2016
УДК 621.74:681.51:658.52 Рецензенты: д.т.н., профессор кафедры ЭПБ Алтайского государственного технического университета им. И.И. Ползунова Л.В. Куликова; к.т.н., доцент кафедры ЭПБ Алтайского ГАУ В.М. Капустин. Калинин Ц.И., Куницын Р.А., Багаев А.А. Программируемые логические контроллеры в системе автоматизации: учебное посо- бие для бакалавров и магистров профиля 110802 «Электрооборудова- ние и электротехнологии». - Барнаул: РИО Алтайского ГАУ, 2016. - 111с. В учебном издании излагаются основные сведения по исполь- зованию ПЛК фирмы «ОВЕН» в системах автоматики с позиционным регулированием. Разрабатывается базовая схема автоматизации с си- стемой логического управления (СЛУ) на релейных элементах. При- водится алгоритм проектирования СЛУ и пример реализации. Даются краткие сведения о языке программирования CoDe Sys и алгоритм со- ставления программ эмуляции на примере системы автоматизации. Включены материалы по тематике и составу курсовых и дипломных проектов. Предназначено для студентов направления 110800 «Агроинже- нерия» профиля 110802 «Электрооборудование и электротехнологии» Рекомендовано к изданию методической комиссией ПФ ФГБОУ ВО Алтайский ГАУ (протокол № 11 от 1 июля 2016 г.). © Калинин Р.А., Куницын Р.А., Багаев А.А., 2016 © ФГБОУ ВО Алтайский ГАУ, 2016
СОДЕРЖАНИЕ 1 ОСНОВНЫЕ СВЕДЕНИЯ О ПЛК 8 1.1 Обзор рынка контроллеров 9 1.2 Критерии выбора 13 1.3 Разработка алгоритмов управления технологическим процессом 13 2 ПРИМЕНЕНИЕ АЛГЕБРЫ БУЛЯ ДЛЯ ОПИСАНИЯ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ И СИСТЕМ 14 2.1 Логическое умножение 15 2.2 Логическое сложение 16 2.3 Логическое отрицание 16 2.4 Инверсия конъюнкции 17 2.5 Инверсия дизъюнкции 17 2.6 Аксиомы и законы алгебры Буля 17 2.7 Применение законов и аксиом при анализе и синтезе СЛУ 19 2.8 Пример проектирования комбинационной СЛУ 20 2.9 Синтез последовательностной СЛУ на контактных элементах 25 2.10 КРАТКИЕ СВЕДЕНИЯ О ПЛК «ОВЕН» 26 2.11 Описание ПЛК 100 29 2.12 Схема подключения к ПЛК - 100 33 3 КРАТКОЕ ПРЕДСТАВЛЕНИЕ О CoDeSys 34 3.1 Что такое CoDeSys 34 3.2 Представление о работе в CoDeSys 34 3.3 Состав базовой пользовательской документации по CoDeSys 36 3.2 Что есть что в CoDeSys 37 3.2.1 Компоненты проекта 37 3.2.2 Языки программирования 49 4 ПРОЕКТИРОВАНИЕ СЛУ НА ЯЗЫКЕ LD 67 4.1 Контакты, катушки 67 4.2 Построение СЛУ в LD 70 4.3 Подключение ПЛК 77 4.4 Дополнительные приемы при построении LD-диаграмм 78 4.5 Катушки реле 79 4.6 Исследование СЛУ в режиме эмуляции 82 4.7 Триггеры 85 3
4.8 Таймеры 4.9 Счетчики 5 СОДЕРЖАНИЕ И ТЕМАТИКА КУРСОВЫХ РАБОТ 5.1 Содержание и тематика курсовой работы 5.2 Содержание и тематика дипломной работы для бакалавров по 88 97 104 104 автоматике 5.3 Содержание и тематика ВКР работы для магистров по автоматике СПИСОК ЛИТЕРАТУРЫ 107 109 112 4
ПРЕДИСЛОВИЕ В соответствии с действующими стандартами на подготовку инженеров сельскохозяйственного профиля введена единая дисципли- на «Автоматика» для агроинженерных специальностей. Типовой про- граммой по этой дисциплине, наряду с теоретическим обучением, предусматривается практическое изучение отдельных технических средств автоматики и автоматических систем на реальных объектах, а также на основе математических моделей, реализуемых с помощью компьютерной техники и современных прикладных программ с ис- пользованием программируемых логических контроллеров. Несмотря на довольно большое число отечественных и зарубеж- ных прикладных компьютерных программ, позволяющих моделиро- вать автоматические системы (МАСС, МИК, СиАМ, MATLAB, МВТУ, ПКМВТУ и др.), пока нет систематизированного методическо- го обеспечения данной дисциплины в части выбора расчета, визуали- зации и компьютерной оптимизации основных схем автоматического регулирования сельскохозяйственных процессов в области электро- технологий. Настоящее учебное пособие отрывает цикл работ по этой проблеме. В основу пособия положен программный комплекс на осно- ве отечественных программируемых логических контроллеров фирмы «ОВЕН» (ПЛК73, ПЛК100, ПЛК150 и др.) на языке LD (CoDeSys) Для изучения методов составления систем логического управле- ния (СЛУ) сельскохозяйственных процессов, их визуализации на язы- ке CoDeSys и компьютерной оптимизации, предусмотренных рамками настоящего пособия, достаточно знать принципы работы технических систем и основы владения ПК. Раздел 1 пособия содержит общие сведения о ПЛК, краткий об- зор систем ПЛК, устройство и функции. Более подробно рассмотрены ПЛК фирмы «ОВЕН». В разделе 2 даны основные сведения методики составления СЛУ на основе алгебры Буля и, в качестве примера, рассмотрена проточная система горячего водоснабжения с электродным водонагревателем с СЛУ реализующей заданный алгоритм управления. В разделах 3 и 4 даются основы компьютерной обработки на языке CoDeSys и визуализация разработанной СЛУ на компьютере. В разделе 5 приведены содержание и тематики курсовых и ди- пломных работ. В приложении даны основные системы автоматики технических процессов сельскохозяйственного назначения. 5
ВВЕДЕНИЕ В практику разработки радиоэлектронной аппаратуры все шире внедряются программно-управляемые микропроцессоры. Серийно вы- пускаемые комплекты микропроцессорных интегральных схем по сво- им функциональным возможностям и электрическим характеристикам удовлетворяют требованиям многих областей применения: аппарату- ры автоматического управления, связи, измерительной техники, быто- вых приборов и т.д.. Микропроцессоры строятся на базе цифровых интегральных схем широкого применения, что позволяет использовать их для реше- ния различных задач. В вычислительных средствах находят применение два способа реализации алгоритмов: аппаратный и программный. Аппаратный способ определяется схемой соединения операционных блоков, спосо- бен реализовать задачи только одного заданного типа и обычно ис- пользуется в измерительных приборах определенного типа. Про- граммный способ реализации алгоритма способен выполнять одно- типные операции одним операционным блоком, но в разное время по заданной программе. Для чего имеются дополнительные устройства- ячейки памяти служащие для хранения исходных цифр и результатов вычислений и устройство управления. Различают два уровня программного управления: командный и микропрограммный. Микропроцессоры с управлением на уровне ко- манд требуют, чтобы программа была составлена с использованием строго определенного набора (списка) команд, изменение и наращива- ние списка команд не допускается, поэтому для дополнительных опе- раций требуются подпрограммы, что значительно снижает скорость обработки информации. Микропроцессоры с микропрограммным управлением имеют в составе устройства управления запоминающие блоки с записанными в них микрокомандами (ЗУМК). В ЗУМК микрокоманды расположены в определенной последовательности и составляют микропрограмму. Разрабатывается система команд, каждой из которых соответствует своя микропрограмма. Обычно используется система команд большой ЭВМ с хорошо развитым математическим обеспечением приспособ- ленным для данного микропроцессора, по определенной микропро- грамме, например CoDeSys, т.е. путем эмулирования другой ЭВМ. 6
Естественный порядок выполнения МК можно нарушить, т.е. микропроцессор с микропрограммным управлением обеспечивает гибкость в использовании МП для решения разнообразных задач, что является основным базовым способом современных программируемых логических контроллеров (ПЛК) в том числе для задач автоматическо- го управления. 7
1 ОСНОВНЫЕ СВЕДЕНИЯ О ПЛК Программируемый логический контроллер (сокращенно, ПЛК) - электронный компонент, применяемый в современных систе- мах автоматизации. Программируемые логические контроллеры ис- пользуются главным образом при автоматизации промышленных и производственных процессов. ПЛК различных типов также применя- ются для организации автоматизированного управления системами вентиляции и кондиционирования, для поддержания заданного темпе- ратурного режима в помещении и т.д. Применение логических кон- троллеров позволяет создать практически полностью автономную си- стему управления, осуществляющую свою деятельность с учетом свойств, характеристик и состояния контролируемого объекта. Уча- стие оператора сводится к общему наблюдению за процессом управ- ления и, при необходимости - изменению заданной программы рабо- ты. Контроллеры ПЛК относятся к категории устройств реального времени и обладают целым рядом существенных отличий от оборудо- вания со сходными назначением и архитектурой. В частности, глав- ным отличием программируемых логических контроллеров от обыч- ных компьютеров является развитая система обработки входящих и исходящих сигналов исполнительных механизмов и различных датчи- ков; главным отличием от встраиваемых систем управления, отдель- ная от объекта управления, схема монтажа. Первые логические контроллеры представляли собой достаточно крупногабаритные системы, состоящие из соединенных между собой контактов и реле. Схема функционирования этих устройств задавалась еще на стадии проектирования и впоследствии не могла быть измене- на. Контроллеры, программируемые с помощью особого языка Ladder Logic Diagram («лестничной логики»), стали следующим поко- лением и заменили собой устройства с жестко заданной логикой. Внутренняя физическая коммутация (то есть, контакты и реле) была заменена в них виртуальной и представляла собой программу, испол- няемую микроконтроллером устройства. Современной разновидно- стью контроллеров, программируемых после проектирования и сбор- ки, являются так называемые свободно программируемые контролле- ры. Для изменения рабочих параметров, диагностики и обслуживания этих устройств используются специальные устройства - программато- ры, или ПК, оснащенные соответствующими интерфейсами для под- 8
ключения и программным обеспечением. Кроме того, для управления свободно программируемыми контроллерами применяются различные системы человеко-машинного интерфейса, в частности - операторские панели. Важнейшими элементами комплексов автоматизированного управления являются также датчики и исполнительные устройства, подсоединяемые к ПЛК централизованно или по методу распределен- ной периферии. Для программирования ПЛК контроллеров был разработан ряд стандартизированных языков, описанных в международном стандарте МЭК61131 [4]. 1.1 Обзор рынка контроллеров Для выбора контроллера произведем сравнительный анализ нескольких видов программируемых логических контроллеров и на основе данного анализа произведем выбор контроллера наиболее под- ходящий условиям поставленной задачи. В настоящее время, множе- ство фирм, как зарубежных, так и российских занимается разработка- ми в области создания программируемых логических контроллеров, для применения в различных отраслях промышленности. Рассмотрим несколько видов программируемых логических контроллеров: а) контроллер серии SLC-500 фирмы "Allen-Bradley” (США). Контроллер SLC-500 — широко используются во всем мире. Плюсы: 1 популярное решение для расширяемых приложений ав- томатизации; 2 экономичные и легкие в использовании процессоры с большими возможностями; 3 исключительная надежность, подтвержденная в сотнях тысяч приложений; 4 расширенная система команд, включающая косвенную адресацию, широкие математические возможности и вычисление вы- ражений. Основные характеристики SLC-500: 1 контроллеры с фиксированной конфигурацией на 20, 30 или 40 входов-выходов; 2 быстрый обмен сообщениями по сети, связь с другими сетями, а также связь между модулями в шасси; 9
3 модульная конструкция ввода-вывода, памяти и интер- фейсов связи обеспечивает перестройку и расширение контроллера. При конфигурации контроллера определяется необходимое количе- ство входов-выходов, требуемый объём памяти и тип сети связи. В последствии при необходимости расширения возможностей контрол- лера можно добавить в него входы-выходы, память или интерфейсы связи; 4 аппаратура контроллера разработана для эксплуатации в тяжёлых промышленных условиях, для противостояния вибрациям, повышенной температуре и электромагнитным помехам; 5 компактная конструкция контроллера позволяет уста- навливать его в ограниченном пространстве; 6 удалённый доступ к контроллеру возможен посредством соединения с ним по сетям Ethernet, Contra IN et. DeviceNet, DH+, DH- 485; 7 удалённый доступ к модулям ввода-вывода, располо- женным в другом месте может быть осуществлён посредством связи по сетям ControINet, DeviceNet и Remote I/O. Семейство SLC-500 - это развивающееся семейство малых про- граммируемых контроллеров, построенное на двух аппаратных моди- фикациях: фиксированный контроллер с опцией расширения при по- мощи 2-х слотного шасси, или модульный контроллер до 960 точек ввода-вывода. Средства программирования и большинство модулей ввода-вывода совместимы для обеих модификаций, так что можно ре- ализовать с минимальной стоимостью широкий спектр приложений. Процессор SLC-5/04 включает сопроцессор для увеличения скорости выполнения математических команд. Он также содержит встроенный порт сети Data Highway Plus (DH+). Непосредственное подключение к сети DH+ обеспечивает связь SLC-5/04 с процессорами семейства PLC-5 по сети DH- без дополнительного оборудования. Лю- бой программируемый контроллер SLC-500 в сочетании с модулем непосредственной коммуникации (DCMX модулем сканера (SN) или модулем распределенного сканера (DSN) для реализации распреде- ленного ввода-вывода может быть интегрирован в сеть дистанционно- го ввода-вывода Allen- Bradley 1771 Remote I/O. Семейство SLC-500 предлагает широкий выбор модулей дис- кретного ввода-вывода, которые позволяют строить системы управле- ния с минимальными затратами. Кроме того, наличие 32-канальных 10
модулей ввода-вывода снижает требования к монтажному простран- ству. б) контроллер серии S7-300 фирмы "SIEMENS". SIMATIC ST- 300 - это модульный программируемый контроллер, предназначенный для построения систем автоматизации средней и низкой степени сложности. Модульная конструкция, работа с естественным охлажде- нием, возможность применения структур локального и распределенно- го ввода-вывода, широкие коммуникационные возможности, множе- ство функций, поддерживаемых на уровне операционной системы, удобство эксплуатации и обслуживания обеспечивают возможность получения рентабельных решений для построения систем автоматиче- ского управления в различных областях промышленного производ- ства. Эффективному применению контроллеров способствует возмож- ность использования нескольких типов центральных процессоров раз- личной производительности, наличие широкой гаммы модулей ввода- вывода дискретных и аналоговых сигналов, функциональных модулей и коммуникационных процессоров. Контроллеры SIMATIC S7-300 имеют модульную конструк- цию и могут включать в свой состав: 1) модуль центрального процессора (CPU); 2) модули блоков питания (PS), обеспечивающие возмож- ность питания контроллера от сети переменного тока напряжением 120/23 0В или от источника постоянного тока напряжением 24/48/60/110В; 3) функциональные модули (FM), способные самостоятельно решать задачи автоматического регулирования, позиционирования, обработки сигналов; 4) интерфейсные модули (IM), обеспечивающие возмож- ность подключения к базовому блоку (стойка с CPU) стоек расшире- ния ввода-вывода; 5) сигнальные модули (SM), предназначенные для ввода-вывода дис- кретных и аналоговых сигналов с различными электрическими и временными параметрами. Контроллеры SIMATIC S7-300 позволяют использовать в сво- ем составе до 32 сигнальных и функциональных модулей, а также коммуникационных процессоров, распределенных по 4 монтажным стойкам. Все модули работают с естественным охлаждением [8]. Области применения SIMATIC S7-300: 1. автоматизация машин специального назначения; 11
2. автоматизация текстильных машин; 3. автоматизация упаковочных машин; 4. автоматизация машиностроительного оборудования; 5. автоматизация оборудования для производства техни- ческих средств управления и электротехнической аппаратуры; 6. построение систем автоматического регулирования и позиционирования; 7. автоматизированные измерительные установки и дру- гие [8]. в) контроллер серии «ПЛК-100» фирмы «ОВЕН». Компактный, современный программируемый контроллер средней мощности. Благодаря расширяемой модульной архитектуре контроллер «ПЛК-100» может быть сконфигурирован для разнообраз- ных применений от локальной автоматики до распределенных систем управления Системы на базе этого контроллера сочетают компакт- ность и прочность промышленной конструкции, тем самым, обеспечи- вает экономичность и надежность установки в сложных промышлен- ных условиях. Контроллер осуществляет сбор и обработку информации с первичных датчиков, формирование сигналов управления по задан- ным алгоритмам, прием и передачу информации по стандартным ин- терфейсам V.23, V.27, RS-232, RS -485, CAN. Контроллер ПЛК-100 имеет встроенную энергонезависимую память, которая позволяет хранить наиболее важную для функциони- рования технологического объекта оперативную информацию во вре- мя отсутствия электроснабжения. Встроенные средства самодиагностики защищают технологи- ческий объект от выдачи ложных управляющих! воздействий и помо- гают при устранения неисправностей. Подключение к контроллеру пульта инженера предоставляет доступ к текущей информации и позволяет изменять необходимые па- раметры и задачи обработки. Часы реального времени обеспечивают синхронную работу контроллеров в распределенных системах управления. Контроллер состоит из коммутационной панели* процессорно- го модуля и набора модулей расширения* блока питания. Процессорные модули имеют встроенный интерфейс САМ, позволяющий непосредственно подключать удаленные интеллекту- альные устройства ввода-вывода. 12
Функциональность контроллера ПЛК-100 обеспечивается раз- личными модулями ввода - вывода. Их особенностью отличительной является встроенный микроконтроллер это позволяет производить первичную обработку данных непосредственно в модуле, высвободив ресурсы центрального процессора для решения задач логического управления объектом. Встроенные элементы автоматической калиб- ровки исключают необходимость подстройки» обеспечив точность измерения программными средствами модуля. Все модули ввода- вывода обеспечивают гальваническую развязку 500 В. Широкий набор интерфейсных модулей позволяет использо- вать контроллер в локальных и распределенных системах управления различных типов. Возможность подключения к различным полевым шинам решает проблему обмена данными в системе между различны- ми протоколами. 1.2 Критерии выбора На сегодняшний день на рынке промышленных контроллеров есть спектр разнообразных контролеров, представителей различных фирм, заводов. Проанализировав мировой рынок множества контрол- леров, делаем вывод, что наиболее подходящие по нужным парамет- рам, а именно число поддерживаемых входов/выходов; поддерживае- мые протоколы обмена; фирма-производитель и его поддержка; стои- мость оборудования и поставки являются ведущие мировые фирмы: Siemens, Mitsubishi Electric, Allen-Bradley, ОВЕН. Для управления системой выбрана модель контроллера ПЛК- 100 фирмы ОВЕН, так как данная модель отвечает всем требованиям. И еще этот выбор сделан по рекомендации технического отдела, кото- рый уже использует контроллеры этой фирмы и уверен в надёжности их работы и простоте обслуживания. 1.3 Разработка алгоритмов управления технологическим процессом В основной программе при первом запуске процессора выпол- няется инициализация аналоговых модулей путем копирования слова конфигурации с помощью инструкции F11 из N10:0 в выходное слово модуля. После инициализации осуществляется проверка данных на ошибки, если ошибок нет данные записываются в память для даль- 13
нейшей обработки. После проверки данных и записи их в память про- изводится масштабирование и сохранение входных данных. В основной программе возможен переход на подпрограммы: В подпрограмме осуществляется проверка на ошибки битов состояния для двух каналов (уровень воды и положение клапана), за- пись каналов в память, масштабирование. Проводится расчет управ- ляющего воздействия с помощью пропорционально-интегрального сигнала, инструкции на основе полученной информации, затем прово- дится сравнение текущего значения с вычисленным значением и дает- ся сигнал управления с отправкой сигнала на верхний уровень и т.д. 2 ПРИМЕНЕНИЕ АЛГЕБРЫ БУЛЯ ДЛЯ ОПИСАНИЯ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ И СИСТЕМ Системы логического уравнения (СЛУ) бывают комбинацион- ными и последовательностными. Последние называются также собы- тийно-управляемыми автоматами. В комбинационных СЛУ (их же называют однотактными) вы- ходные сигналы формируются только при определённых комбинациях входных логических сигналов, принимающих значения 0 или 1. В по- следовательностных СЛУ (их же называют многотактными) выходные сигналы зависят не только от комбинации входных, но и последова- тельности их поступления во времени, что обеспечивается наличием элементов памяти. Словесное изложение работы даже простых СЛУ выглядит громоздко и затрудняет проведение анализа. Математическим аппара- том для описания СЛУ служит двузначная (бинарная) алгебра Буля, все переменные в которой могут принимать только два значения: О или 1. Основным понятием, используемым при анализе и синтезе си- стем логического управления, является логическая функция. Принципы построения логической функции по алгоритму ра- боты системы автоматики иллюстрируются ниже на примере. Логическая функция выражает зависимость выходных пере- менных от входных и также принимает, в зависимости от значения последних и связывающих их логических действий, два состояния: О или 1. Можно встретить и такую запись этих состояний: Ложь или Ис- тина; FALSE ИЛИ TRUE. 14
Так как каждая переменная может иметь только два значения, то возможное количество различных комбинаций (наборов) N для п переменных будет равно N = 2п Все действия над переменными в бинарной алгебре выполня- ются с помощью следующих основных операций, которые наглядно иллюстрируются соответствующими РКС. С целью упрощения последующих алгебраических действий примем следующие допущения: катушки электромагнитных реле, ко- торые следовало бы по действующему стандарту обозначать KI, К2 и т. д. и соответственно их контакты К1.1, К1.2, К2Л, К2.2, будем по мере необходимости именовать заглавными буквами А, В, С и т. д., а их замыкающие и размыкающие контакты прописными буквами a, Ь, с иа,Ь,с соответственно [10]. 2.1 Логическое умножение Логическое умножение (конъюнкция, функция «Я») Л = а • b равнозначно последовательному соединению контактов. Все возмож- ные комбинации входных сигналов и соответствующие им значения функции сведены в таблицу состояний. Очевидно, что только в одном случае результатом логического умножения станет единица, т. е. лам- па Л «сработает», если замкнуть контакты и а и Ь. Из этой словесной формулы союз «И» перешел в обозначение функции (как синоним ло- гическому умножению) и в название бесконтактного элемента. 15
Применяются и другие обозначения операции логического умножения: а*Ь= а'лЬ~ a&b~ ab 2,2 Логическое сложение Результат логического сложения (дизъюнкции, операции «ИЛИ») К = а + Ь, легко установить из анализа схемы с параллель- ным соединением контактов [10] Очевидно, что катушка реле К получит питание, если замкнуть контакты или а, или Z?, или оба вместе. Вместо знака «+» иногда упо- требляют «V»: а + b = a v b. 2.3 Логическое отрицание Логическое отрицание (инверсия, операция «НЕ») Л=а, озна- чающее, что значение логической функции Л противоположно или неравносильно значению переменной а, В нашем примере лампа го- рит (Л=1\ если контакт а не замкнут (а = 0), и лампа гаснет (Л=О), если контакт не разомкнут ( а =1) [10]. 16
2.4 Инверсия конъюнкции 2.5 Инверсия дизъюнкции Функция «ИЛИ - НЕ» З=а+Ь [43]. 2.6 Аксиомы и законы алгебры Буля При записи и чтении сложных логических функций предпола- гается, что знак инверсии связывает сильнее, чем другие знаки, а знак умножения связывает сильнее знака логического сложения. Этот принцип позволяет сокращать количество различных скобок. Напри- мер, логическую функцию X=(((ab) + (c+d))c+a)b следует записать в более простой форме X = (ab + с + d)c + а Ь. 17
Как и в обычной алгебре здесь действуют следующие законы: переместительный (коммутативный): а) относительно логического умножения: ab =Ь а; б) относительно логического сложения: а + b = Ь+ а; сочетательный (ассоциативный): а) относительно логического умножения: (а Ь)с = (а с)Ь; б) относительно логического сложения: (а + Ь) + с = а + (Ь + с); распределительный (дистрибутивный): а) относительно логического умножения: (а + b)c = а с + b с; б) относительно логического сложения: ab + с = (а + с)(Ь + с). Следует обратить внимание на отсутствие формальной анало- гии между распределительным законом относительно логического сложения для бинарной алгебры и таким же законом для обычной ал- гебры. Действительно, умножим (а + с) на (Ь + с): (а + с)(Ь + с) = ab + be + ас + сс. Так как сс = с, то ab + Ьс + ас + с = ab + c(b + а +1), Так как b + а+1 = 7,то ab + с* 1 =ab + с, что и требовалось доказать. Но есть и специфические аксиомы, законы и теоремы, которые легко доказать. Аксиомы 0-0 = 0; 1 + 1 = 1;0 + 0 = 0; 1-1 = 1; 1-0 = 0; 1+0=1; 0 = 1; 1 = 0. Законы булевой алгебры Законы нулевого множества: 0 а = 0; 0 ab...k =0; 0 +а = а. Законы универсального множества: 1а=а, 1+а=1; 1+а+Ь+..Лк= 1. Законы повторения: а а а....а = а;а + а + а +...+ а = а. Законы дополнительности: а - а = 0; а + а = 1. Законы инверсии: а-b = а + b; а + b = ab. Законы поглощения: а (а + b) = а; а + a b = а; а(а + b)=a*b; а + а-b =а +Ь. Закон двойного отрицания: а = а; 0 = 0; 1 = 1. Законы склеивания: а-b +а-Ь =а; (а +Ь)(а +Ь) = а. 18
2Л Применение законов и аксиом при анализе и синтезе СЛУ Следует напомнить, что контакты, обозначенные одинаковыми буквами, принадлежат одному реле, то есть они в идеализированном виде срабатывают одновременно. Поэтому не вызывает сомнения за- пись, например, закона дополнительности: а-а = 0, а+ а = 1. Действительно, последовательно соединенные замыкающий (а) и размыкающий (а) контакты одного и того же реле (А) всегда бу- дут создавать разрыв цепи (0). Параллельная цепь этих же контактов равносильна постоянной перемычке (шунту) с проводимостью 1. Очень полезными для анализа и синтеза СЛУ являются законы инверсии: ab=a+b;a+b= a*b. Эти законы легко доказать методом перебора всех возможных комбинаций переменных а и Ь, Если окажется, что для каждой комби- нации переменных логические функции совпадут, то они равносиль- ны. Например, рассмотрим первый закон инверсии, для чего соста- вим таблицу 2.1 состояний, в которой число различных комбинаций входных сигналов равно четырем (первый и второй столбцы), а в остальных столбцах таблицы приведены результаты элементарных логических операций [10]. Таблица 2.1 - Таблица состояний 1 2 3 4 5 6 7 а Ь а Ь ab 3 ь а + Ь 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 19
Столбцы третий, пятый и шестой - вспомогательные, содержа- щие результаты промежуточных вычислений. Как видно из таблицы, значения ab и а + b полностью совпадали для каждой комбинации пе- ременных а и Ь. Законы инверсии справедливы для любого числа переменных, причем представленных как в нормальной, так и инверсной форме: а-ЬС = а+ Ь+ с= а+ Ь+ С, а + 0 = а-0 =al = а; а + Ь+с= a-b-с = a-b-с; аЛ = а+1=а+0 = а; а + b-c + d =a-bc'd =a(b + c)d; a-b-с =ab + c=ab + c. Как и в обычной алгебре здесь применяются различные приемы для доказательства равносильных логических функций. Например, докажем один из законов поглощения: a +ab =а +Ь. Учитывая, что b +Ь = I п аЛ = а, «усложним» левую часть урав- нения: a(b +b) +ab =ab +ab +ab =... Далее, учитывая, что ab + ab = ab, ещё более усложним это вы- ражение: ... =ab +ab +ab +ab =... и как в обычной алгебре сделаем очевидные преобразования, вынеся общие сомножители в первом и третьем, а также во втором и четвертом слагаемых: ... =а(Ь +Ь) +Ь(а + а) =... Так как b+b = 1, а + а = 1, это выражение принимает вид ...=al+ bl=a+ Z?, что и требовалось доказать. 2.8 Пример проектирования комбинационной СЛУ Необходимо разработать СЛУ неким воображаемым технологи- ческим процессом (Рисунок 2.1). В результате обследования самого процесса и беседы с технологами выявили требуемое количество и характеристики приемных и исполнительных элементов и сформули- ровали алгоритмы работы проектируемой СЛУ. 20
Рисунок 2.1 - Электронагреватель в замкнутой системе водяного отопления где 1-объект управления; 2-электродная система; 3-регулятор электропитания; ЦН-центробежный насос; SK-реле температуры; ЭМ-манометр электроконтактный; ЭКЛ-электроклапан; Rt°-датчик температуры в батареях; А,В,СД)-приемные элементы (катушки, элек- трореле); М - электродвигательный насос; НЫ,НЬ2-сигнальные лам- пы; ЛБ-логический блок; СЛУ-системно - логическое управление; КМ1, КМ2-магнитные пускатели электродвигателя и электронагрева- теля. Итак, приемные элементы: кнопка пуска SB, реле давления ЭМ и реле температуры SK и исполнительные элементы: электродный нагреватель ЕК, маломощные сигнальные лампы низкого напряжения HL1 и HL2, Приемные элементы, вырабатывающие дискретные сиг- налы, подключены к катушкам электромагнитных реле А, В и С, Д установленных на входах СЛУ и имеющих достаточное количество замыкающих и размыкающих контактов для синтеза самого логиче- ского блока. Поэтому для записи условий срабатывания исполнительных элементов будем для краткости использовать обозначения катушек реле, а не самих датчиков. Условия срабатывания для М: 21
- М срабатывает если срабатывает А, В,С, но не срабатывает D - М срабатывает если срабатывает А, В ,но не срабатывает С, D - М срабатывает если срабатывает А, С ,но не срабатывает В, D - М срабатывает если срабатывает А, но не срабатывает В, C,D Условия срабатывания для «ЕК» - ЕК срабатывает если срабатывает А, В,С, но не срабатывает D - ЕК срабатывает если срабатывает А, В, но не срабатывает С - ЕК срабатывает если срабатывает А, С, но не срабатывает В - ЕК срабатывает если срабатывает А, но не срабатывает B,C,D Условия срабатывания для «НЫ» - HL1 срабатывает если срабатывает А, В,С, но не срабатывает D - HL1 срабатывает если срабатывает А, В, но не срабатывает С, D - HL1 срабатывает если срабатывает А, но не срабатывает B,D,C. Условия срабатывания для «HL2» - HL2 срабатывает если срабатывает A, B,D, но не срабатывает С - HL2 срабатывает если срабатывает А, В, но не срабатывает С, D - HL2 срабатывает если срабатывает А, но не срабатывает В, D,C. - HL срабатывает, если срабатываете, но не срабатывают В и С. - HL срабатывает, если срабатывает 5, но не срабатывают А и С. Составляем основной элемент синтеза - таблицу состояний (таб- лица 2.2). В таблице 2.2 рассматриваем все возможные комбинации состо- яний приемных элементов. Так как приемных элементов четыре - то возможное число комбинаций равно шестнадцати, т. е. имеем шестна- дцать строк в таблице состояний. Состояние исполнительных элемен- тов записываем в соответствии с алгоритмом: если элемент срабатыва- ет - ставится 1, в противном случае - 0. В общем случае количество комбинаций Ncp срабатывания лю- бого исполнительного элемента лежит в пределах \<NCp<2n-\> Т.к. если Ncp = 0, то исполнительный элемент никогда не вклю- чается. Если же Ncp = 2й - то никогда не отключится. Перейдем к составлению логической функции, то есть запол- нению таблицы состояний. Для чего последовательно составим усло- вия срабатывания элементов М, ЕК, HL1 ,HL2 и др. Общее условие срабатывания находим как четырехтактную дизъюнкцию частных условий срабатывания, то есть: 7И=7И/+ М2 + Л/3+ М4 22
Таблица 2.2 - Таблица состояний A в c D M EK HL, hl2 1 0 0 0 0 — — — — 2 0 0 0 1 — — — 1 3 0 0 1 0 — — 1 — 4 0 0 1 1 — — — — 5 0 1 0 0 — — — — 6 0 1 0 1 — — — 1 7 0 1 1 0 — — 1 — 8 0 1 1 1 — — 1 1 9 1 0 0 0 1 1 1 1 10 1 0 0 1 — — — 1 11 1 0 1 0 1 1 1 — 12 1 0 1 1 — — 1 1 13 1 1 0 0 — — 1 1 14 1 1 0 0 1 1 — 1 15 1 1 1 0 1 1 1 — 16 1 1 1 1 — — 1 1 Составим логическую функцию срабатывания элемента М=М1+М2+Мз+М4. где: М ,=а bed, М2= a b с d, М3= ab с d, М4=а bed M=Mi+M2+M3+M4= abed+abed+abe d+a b с d= a b(cd+cd) Для элемента ЕК аналогично: ЕК= ab(cd+cd) Для элемента HL,: HL1=HLil+HLi2+HLi3 П Li । = abed HLi2= a b c d IILi3= abed HL|=a bed+abed+abe d=ab d (c+c)+ a b c d=a d (b+b)+ c= a d+c 23
Для элемента HL2: HL2=HLil+HLi2+HLi3 HL; 1= abed HLi2= a b c d HLb= ab c d HL2=a be d+abed+abe d=ab c (d+d)+ a b c d=a b c + ab c d =(b+b)+ c= a c(b+ b)+d= a c+d; Логические функции для MuEК можно было получить исходя из условий несрабатывания: то есть составляем логическую схему из таблицы состояний по условиям несрабатыания. Но, это обычно свя- зано с большим числом вычислений поэтому данный метод исключа- ем. Црпи тако Кнопка пуска [Ьтчик t°c Датчик тт давления Датчик шах давления ЗлрктроДбигатрль насоса Катушка мектронагребателя Цргм сирнптппцш/ Рисунок 2.2 - Схема релейно-контактной комбинационной СЛУ 24
2.9 Синтез последовательностной СЛУ на контактных эле- ментах Обычная контактная СЛУ, не оперирует функцией времени. В проектируемой СЛУ вводим алгоритм времени. Все ВКЛ - включен насос - пауза и т.д. с определенными фиксированными промежутками например: I- по заданной температуре t°; Все ВКЛ. П - время включения насоса Т=20 с, Нагрев-откл., насос - вкл. на Т=20 с; Ш- время паузы Т=10 с, пауза, откл. всех систем на время Т=10 с. В этом случае в логической функции СЛУ появляется третий аргумент - время t, Поэтому напрямую применить аппарат бинарной алгебры Буля нельзя. Надо искать другие приемы для описания таких систем. Известны способы решения подобных задач с использованием теории автоматов Миля или автоматов Мура [1]. Но их рассмотрение не входит в нашу задачу, т. к. мы полагаем, что у читателя хватает опыта для анализа и синтеза простых СЛУ, опираясь на интуицию и здравый смысл. Можно предложить такой вариант (Рисунок - 2.3) СЛУ, отве- чающей вышеописанным техническим условиям. Очевидно, что факт (точнее, событие) срабатывания М необхо- димо зафиксировать в новом состоянии каким-то элементом памяти. В РКС это решается за счет применения промежуточного реле Д которое при срабатывании становится на самофиксацию за счет своего же кон- такта d и включает двигатель 7И, точнее катушку магнитного пускате- ля КМ. Естественно, надо сразу же предусмотреть возможность опера- тивного вмешательства для снятия этой блокировки и отключения М. С этой целью потребуется кнопка S. 25
Рисунок - 2.3 Релейно-контактный вариант последовательност- ной СЛУ с функцией времени Это же реле при выполнении условий срабатывания СЛУ должно обеспечить включение промежуточного реле времени Е, кон- такт которого замкнется лишь через 20 с за счет замедлителя. 2.10 КРАТКИЕ СВЕДЕНИЯ О ПЛК «ОВЕН» Программируемые логические контроллеры представляет со- бой конечный (дискретный) автомат, имеющий конечное количество входов и выходов, подключенных посредством датчиков, ключей, ис- полнительных механизмов к объекту управления, и предназначенный для работы в режимах реального времени. Конструктивно ПЛК выполняется как в моноблочном испол- нении, так и в модульном. В первом варианте, так называемом мини- 26
ПЛК, с небольшим количеством входов/выходов все собрано в одном корпусе. Модульные ПЛК имеют отдельные блоки (модули) ввода и вывода, которые могут находиться порой на значительном удалении от центральной части, т. е. установлены в непосредственной близости к управляемому объекту и «общаться» с микропроцессором по сети. В общем случае, все модули могут быть сосредоточены в одном месте на специальных стойках или каркасах. Моноблочные ПЛК также имеют возможность подключаться к удаленным блокам ввода/вывода по цифровой сети. При этом сами клеммы входных и выходных плат ПЛК останутся свободными. Например, самый простой моноблочный ПЛК 100 фирмы ОВЕН можно непосредственно соединить с входными цепями и ис- полнительными механизмами, а также по сети В этой схеме необхо- димо выполнить настройку (конфигурирование) модуля MBA 8 на вы- дачу дискретного сигнала при достижении аналоговым сигналом от какого-то датчика порогового значения (уставки), т. к. этот ПЛК рабо- тает только с бинарными переменными. ПЛК обычно применяются для управления последовательны- ми процессами, используя дискретные входы и выходы для определе- ния состояния объекта и выдачи управляющих воздействий. Например, при управлении электрокалорифером оператор вручную нажимает кнопку «Пуск». Первым должен включиться дви- гатель вентилятора и через 5 с - нагревательные элементы. При нажа- тии на кнопку «Стоп» первыми отключаются нагревательные элемен- ты и через 8 с - вентилятор. Можно предусмотреть включение и от- ключение с помощью контактов какого-то реле времени с суточной программой или использовать сигналы от датчика температуры возду- ха в обогреваемом помещении. Скорее всего, следует предусмотреть какие-то средства защиты электрокалорифера (да и обслуживающего персонала). С этой целью потребуется еще ряд дискретных сигналов от датчиков, реагирующих на потерю фазы, перегрев или заклинива- ние двигателя, разрушение нагревательного элемента и т. д. В каждом случае контроллеру необходимо опрашивать состоя- ние входных элементов (кнопок, датчиков) и, соблюдая определенную временную последовательность, выдавать управляющие сигналы. ПЛК также может управлять непрерывными процессами, т. е. получать и выдавать аналоговые сигналы. Естественно, выходные аналоговые сигналы в ПЛК преобра- зуются с помощью АЦП в дискретную, т. е. в цифровую форму. 27
Учитывая широкое распространение в системах контроля ме- таллических термосопротивлений и термопар, в некоторых ПЛК могут быть предусмотрены специализированные входы для подобных датчи- ков. Большинство ПЛК работают циклически, т. е. производится сканирование или периодический опрос входных данных, выполнение пользовательской программы и обновление выходных данных. Такая последовательность действий называется прогоном про- граммы, а период цикла - временем прогона. В начале прогона ПЛК «читает» состояние всех входов и фик- сирует их значение в памяти. Изменение состояния каких-либо вход- ных сигналов в течение прогона программы будет воспринято ПЛК только в следующем цикле. Также ведут себя и выходные данные, которые обновляются одновременно в конце прогона программы. Время цикла, т. е. время сканирования, влияет на скорость ре- акции ПЛК при изменении входного сигнала. В общем случае, вход- ной сигнал должен иметь длительность не меньше, чем время прогона программы, составляющего обычно от единиц до десятков миллисе- кунд. Если изменение состояния входного сигнала произошло как раз в начале прогона, то реакция ПЛК проявится по завершении цикла. Если же этот сигнал немного «запоздал», то потребуется еще один прогон программы для ответных действий ПЛК. Различают системы жёсткого и мягкого реального времени. В первом случае выдвигается технологическое требование в отношении временного порога, превышение которого может создать аварийную ситуацию. В системах мягкого реального времени последствия такой задержки в реакции ПЛК практически неощутимы. Системное программное обеспечение ПЛК доступно только их изготовителям. Прикладное программное обеспечение возлагается на пользователя ПЛК. Код прикладной или пользовательской программы размещается в энергонезависимой памяти и может многократно изме- няться по мере необходимости. Сейчас редко встречаются ПЛК, программирование которых выполняется с встроенного или выносного пульта. Современные ПЛК универсального назначения, поддерживающие стандарт МЭК 61131-3, программируются на ПК с помощью специализированных комплек- сов, среди которых наиболее популярным является CoDeSys, разрабо- 28
тайный фирмой 3S (Smart Software Solutions). Этот универсальный ин- струмент программирования будет рассмотрен в следующий главе. Прикладная программа становится переносимой, т. е. ее можно использовать в любом ПЛК, отвечающем требованиям стандарта мэк. Простейшее и наиболее популярное применение ПЛК - это со- здание автономной системы управления каким-либо технологическим процессом. В случае проектирования автоматизированной системы управления производством (АСУП) или разветвленным технологиче- ским процессом (АСУТП) на ПЛК возлагаются функции нижнего зве- на в обработке входных сигналов и выработке управляющих воздей- ствий в пределах каждого локального участника. Используя стандартные протоколы обмена данными, среди ко- торых обычно отдают предпочтение технологии ОРС (OLE for Process Control), можно войти в SCADA - систему. Более подробную информацию о ПЛК можно получить в ис- точниках [7,13,14]. 2.11 Описание ПЛК 100 ПЛК 100 ОВЕН (ПЛК100) - назначение Контроллер ОВЕН ПЛК100 предназначен для создания систем управления малыми и средними объектами. Кроме того, эти контрол- леры очень удобно использовать для создания систем диспетчериза- ции различных объектов в области промышленности и ЖКХ. Внешний вид приведен на рисунке 2.4. Рисунок 2.4 - Внешний вид ПЛК 100 ОВЕН 29
Для обмена данными при создании систем управления и дис- петчеризации на базе ОВЕН ПЛК100 можно использовать как про- водные средства - встроенные интерфейсы Ethernet, RS-232, RS-485, так и беспроводные - радио, GSM, ADSL модемы. Основными техническими характеристиками контроллера ПЛК100 являются: Вычислительные возможности: Высокопроизводительный процессор RISC архитекту- ры ARM9, с частотой 200МГц компании Atmel; - Объем оперативной памяти - 8МБ; - Объем постоянной памяти - Flash память, 4МБ; Объем энергонезависимой памяти, для хранения значе- ний переменных - до 16КБ. Входные и выходные сигналы: Дискретные входы - 8 с групповой гальванической раз- вязкой 1,5 кВ и частотой опроса 1 кГц (10 кГц при использовании ап- паратного счетчика и обработчика энкодера); - Дискретные выходы - 6 релейных выходом или 12 сдвоенных транзисторных выходов. Выходы имеют гальваническую изоляцию 1,5 кВ; - Для расширения чила точек вводавывода предназначены внешние модули вводавывода, подключаемые по любому из встроен- ных интерфейсов. Интерфейсы контроллера: - Ethernet 100 Base-T - 1 канал; - RS-232-2 канала; - RS-485 - 1 канал; - USB 2.0 - 1 канал Device. Питание контроллеров: - Контроллер ОВЕН ПЛК 100 имеет два исполнения по питанию: 220В переменного напряжения и 24В постоянного напряжения; - Потребляемая мощность: модификация на 24 В (без учета питания выходов типа К) - 6 Вт, модификация на 220 В - 10 Вт. - Средства программирования 30
Для программирования контроллеров ПЛК 100 исполь- зуется среда CoDeSys, разработанной немецкой компанией 3S- Software. Схемы подключения ОВЕН ПЛК100 Рисунок 2.5 - Схема подключения питания, дискретных входов и выходов к ПЛК100-24.Р Максимальная нагрузка на контакты каждого реле не более 220В -4А50 Гц (cos(q))> 0,4) Рисунок 2.6 - Схема подключения питания, дискретных входов и выходов к ПЛК100-24.К 31
Максимальная нагрузка на каждый вход не более 150 мА Рисунок 2.7 - Схема подключения питания, дискретных входов и выходов к ПЛК100-220.Р Максимальная нагрузка на контакты каждого реле не более 220 В - 4А 50 Гц (cos(cp)> 0,4) * 5U OtUZOO* 1 0.5* Рисунок 2.8 - Схемы подключения к ПЛК100 дискретных дат- чиков с полупроводниковым выходным каскадом: а - ПЛК100-220 датчик п-р-п-типа, б - ПЛК100-24 датчик р-п-р-типа, в - ПЛК100-24 1 + • ПЛ KI 00-24 датчик п-р-п-типа Примечание. Схема на рис. Б.8, (в) инвертирующая. Для под- ключения к ПЛК100-24 датчиков n-p-п (по схеме "с общим минусом”) рекомендуется использовать дополнительно устройство ОВЕН ПДИМ-8. 32
2.12 Схема подключения к ПЛК - 100 Вопросы, касающиеся конфигурирования ПЛК, т. е. привязки имен входных и выходных элементов к конкретным входам/ выходам ПЛК, будут рассмотрены в главе 5. Допустим, что эта процедура вы- полнена и выбраны монтажные клеммы, как показано на рисунке 2.9. Остальные цепи входов/выходов остаются свободными или могут быть задействованы в другой программе. Для надежной работы реле давления ЭМ следовало бы поста- вить блок согласования датчика (например, ОВЕН БКК 1) с входом ПЛК. Но не будем усложнять схему, т. к., возможно, с учетом кон- кретных технологических требований и условий эксплуатации разра- ботанной системы потребуется ещё установка барьеров искрозащиты (например, ОВЕН ИСКРА), устройства защитного отключения трех- фазного электродвигателя (например, ОВЕН УЗОТЭ-2У) и др. Но эти вопросы выходят за рамки нашей книги. Рисунок 2.9 - Схема подключения цепей к ПЛК 100-24.P-L где SB - кнопка пуска; SK - датчик температуры; ЭМ - Электромано- метр; HL1, HL2 - сигнальные лампы состояния давления; КМ1 - Маг- нитный пускатель электродвигателя насоса; КМ2 - Магнитный пуска- тель электронагревателя (ЕК). 33
3 КРАТКОЕ ПРЕДСТАВЛЕНИЕ О CoDeSys 3.1 Что такое CoDeSys CoDeSys - это современный инструмент для программирования контроллеров (CoDeSys образуется от слов Controllers Development System). CoDeSys предоставляет программисту удобную среду для про- граммирования контроллеров на языках стандарта МЭК 61131-3. Ис- пользуемые редакторы и отладочные средства базируются на широко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным средам профессионального программирования (такие, как Visual C++). 3.2 Представление о работе в CoDeSys Программный проект прежде всего нужно начать с присвоения ему имени, оно же послужит и названием файла проекта. Первый программный компонент (POU - Program Organization Unit) помещается в новый проект автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по ана- логии с функцией main в языке С), из него будут вызываться другие программные блоки (программы, функции и функциональные блоки). Нет необходимости писать вручную текст для PLC_PRG, по- скольку конфигурация задачи определяется на вкладке проекта Task Configuration. Подробнее это будет описано в главе, посвященной Task Configuration. Проект содержит ряд разнородных объектов POU, данных раз- ных типов, элементов визуализации и ресурсов. Организатор объектов (Object Organizer) управляет списком всех объектов Вашего проекта. Создание проекта. Для начала вы определяете конфигурацию ПЛК в соответствии с аппаратными средствами своего контроллера. Затем вы создаете программные компоненты, необходимые для решения проблемы. Далее вы пишете программный код для созданных компонен- тов на выбранных языках. Сразу после завершения программирования, вы компилируете проект и исправляете ошибки, если они есть. 34
Когда все ошибки устранены, можно приступить к отладке. Включите флажок эмуляция (simulation) и «подключитесь» к контроллеру. Теперь вы в режиме Online. Откройте окно с конфигурацией ПЛК (PLC Configuration) и проверьте правильность выполнения проекта. Для этого измените вручную входные данные и убедитесь, что выходы контроллера отреа- гировали нужным образом. Если необходимо, вы можете наблюдать значения переменных в программных компонентах. Используя мене- джер просмотра и заказа значений переменных (короче, менеджер ре- цептов) Watch and Receipt Manager, вы сможете задать список пере- менных, значения которых необходимо наблюдать. Отладка. В случае ошибок в работе кода вы можете задать точки оста- нова. Когда процесс остановлен в определенной точке, вы можете просмотреть значения переменных проекта в данный момент времени. Выполняя проект в пошаговом режиме (single step), вы можете прове- рить логическую корректность своих программ. Дополнительные возможности режима Online. В процессе отладки вы можете устанавливать значения пере- менных программ, задавать фиксированные значения на входы и вы- ходы контроллера, контролировать последовательность исполнения процесса и определить место в программе, которое сейчас выполняет- ся. Используя трассировку (Sampling Trace), отслеживать в графиче- ском представлении изменения значений переменных за определен- ный промежуток времени. Когда проект закончен и отлажен, переходите к окончательной доводке в рабочих условиях на реальном "железе”. Естественно, при этом полностью доступны все отладочные функции. Дополнительные возможности CoDeSys. Весь проект может быть экспортирован в текстовый файл и со- хранен в печатном виде. Средства коммуникации CoDeSys включают символьный и DDE интерфейсы. Коммуникационный сервер, ОРС и DDE серверы входят в стандартный пакет поставки. Путем выбора целевой платформы CoDeSys позволяет исполь- зовать один проект в различных системах. Сетевые переменные общего доступа и Менеджер парамет- ров обеспечивают средства сетевого взаимодействия контроллеров. 35
ENI: инжиниринговый интерфейс применяется совместно с любыми системами управления версиями через автономный ENI сер- вер. Программные компоненты CoDeSys сохраняются в единой базе данных, доступной другим пользователям. ENI сервер служит храни- лищем конструкторских данных не только для CoDeSys, но и для сто- ронних программных инструментов. CoDeSys позволяет задействовать «фирменные» программные инструменты. Файлы, включающие исполняемый код, могут быть скомпонованы с кодом проекта и загружены в контроллер. Созданная в CoDeSys визуализация может выполняться не только в среде программирования, но и в целевой платформе или в Web. Это позволяет контролировать процесс и управлять им через Ин- тернет. 3.3 Состав базовой пользовательской документации по CoDeSys Необходимый пакет базовой пользовательской документации по CoDeSys представлен в таблице 3.1 Таблица 3.1 - Пакет базовой пользовательской документации Модуль Документы Файлы 1 2 3 Среда про- граммирования CoDeSys Печатное руководство и встроенная система помощи Первые шаги с CoDeSys (пример) Manual_V23_RU.pdf First Steps with CoDeSys RU.pdf Gateway Server Концепции, установка, встроенная система помо- щи, интерфейс и настройка (открывается двойным щелчком мыши на иконке в панели задач) Gateway Manual.pdf ОРС Server ОРС-Server V2.0, установка и применение OPC_20_How_to_use .pdf CoDeSys Visu- alization Описание CoDeSys визуа- лизации, включая CoDeSys IIMI. Target- и Web- Visualization CoDeSys_Visu_RU.pdf 36
Продолжение таблицы 3.1 1 2 3 SoftMotion Описание применения и библиотек SoftMotion SoftMotion_Manual_V 23 .pdf Библиотеки Standand.lib и Util .lib описа- ны в печатном руководстве по программированию. Для каждой системной биб- лиотеки CoDeSys существу- ет отдельный документ <libraiy namopdf SoftMotion библиотеки: см. SoftMotion-документацию. <SysLib-Name>.pdf UserManual_V23_RU.pdf ENI Server Установка и настройка ENI Сервера, управление верси- ями, работа с внешней базой данных. Настройка ENIb CoDeSys: описана в печатном руко- водстве по программирова- нию. ENI Admin, ENI Control и ENI Explorer см. встроен- ные системы помощи. EniServerQuickstart.pdf UserManual_V23_RU.pdf 3.2 Что есть что в CoDeSys 3.2.1 Компоненты проекта Проект Проект включает следующие объекты: POU, типы данных, ви- зуализации, ресурсы, библиотеки. Каждый проект сохраняется в от- дельном файле. POU (Program Organization Unit) К программным компонентам (POU) относятся функциональ- ные блоки, функции и программы. Отдельные POU могут включать действия (подпрограммы). 37
Каждый программный компонент состоит из раздела объявле- ний и кода. Для написания всего кода POU используется только один из МЭК языков программирования (IL, ST, FBD, SFC, LD или CFC). CoDeSys поддерживает все описанные стандартом МЭК ком- поненты. Для их использования достаточно включить в свой проект библиотеку standardJib. POU могут вызывать другие POU, но рекурсии недопустимы. Функция Функция - это POU, который возвращает только единственное значение (которое может состоять из нескольких элементов, если это битовое поле или структура). В текстовых языках функция вызывается как оператор и может входить в выражения. При объявлении функции необходимо указать тип возвращае- мого значения. Для этого после имени функции нужно написать двое- точие и тип. Правильно объявленная функция выглядит следующим об- разом: FUNCTION Fct: INT; Имя функции используется как выходная переменная, которой присваивается результат вычислений. Объявление функции должно начинаться с ключевого слова FUNCTION и заканчиваться ключевым словом ENDFUNCTION. Вот пример функции, написанной на IL, которая использует три входных переменных и возвращает результат деления произведения первых двух на третью. Рисунок 3.1 - Пример функции, написанной на языке IL 38
В языке ST вызов функции может присутствовать в выражени- ях как операнд. В SFC функция вызывается только из шага или перехода. Функция не имеет внутренней памяти. Это означает, что функ- ция с одними и теми же значениями входных переменных всегда воз- вращает одно и то же значение. Например: На IL: LD 7 Fct 2,4 ST Result На ST: Result: = Fct (7,2,4); Ha FBD: Fct 7 -PARI 4 -PAR2 2 -PAR3 Frgehnit Внимание: объявление в функции RETAIN локальной пере- менной не приведет к желаемому результату. Не пытайтесь создать локальные энергонезависимые переменные в функциях! Примечание: имена перечисленных ниже функций зарезерви- рованы для описанных целей: В проекте можно определить функцию с именем CheckBounds, которая используется для проверки выхода за границы массива (По- дробнее см. описание арифметических функций в приложении). С помощью функций: CheckDivByte, CheckDivWond, Check- DivDWord и CheckDivReal осуществляется контроль деления на 0 (См. DIV). Специализированные функции CheckRangeSigned и Check- RangeUnsigned контролируют границы диапазонов переменных (См. Типы данных). Функциональный блок Функциональный блок - это POU, который принимает и воз- вращает произвольное число значений. В отличие от функции функ- циональный блок не формирует возвращаемое значение. 39
Объявление функционального блока начинается с ключевого слова FUNCTIONBLOCK и заканчивается ключевым словом END_FUNCTION_BLOCK. Ниже приведен пример функционального блока, написанного на IL, который имеет две входных и две выходных переменных. Зна- чение выходной переменной MULERG равно произведению значений двух входных переменных, а значение VERGL определяется в резуль- тате сравнения значений входных переменных. Рисунок 3.2 - Пример функционального блока Экземпляры функционального блока Определение функционального блока подобно определению типа данных. Для работы с функциональным блоком необходимо объ- явить (создать) его экземпляр. Один функциональный блок может иметь произвольное число экземпляров, каждый из которых имеет собственные независимые данные (память). Каждый экземпляр функционального блока получает свой соб- ственный идентификатор (имя экземпляра) и свои данные, содержа- щие входные, выходные и внутренние переменные. Экземпляры функционального блока объявляются глобально или локально как пе- ременные, имеющие тип соответствующего функционального блока. 40
Пример объявления экземпляра с идентификатором IN- STANCE функционального блока FUB: INSTANCE: FUB; Вызов экземпляра функциональный блока происходит с помо- щью его имени. Входные и выходные переменные доступны вне функционального блока, а внутренние переменные доступны только в самом блоке. Пример использования входных переменных: функциональный блок fb имеет входную переменную ini типа INT: PROGRAM prog VAR fbinstl: fb; END_VAR LD 17 ST instl.inl CAL instl END_PROGRAM Экземпляры функционального блока могут быть объявлены в другом функциональном блоке или в программе. Объявлять экземпляр функционального блока в телефункции нельзя. Экземпляры функцио- нального блока доступны в том POU, в котором они объявлены, если они не объявлены глобально. Экземпляры функциональных блоков могут быть использова- ны в качестве входных переменных других функциональных блоков или функций. Замечания. После выполнения функционального блока все его переменные сохраняются до следующего выполнения. Следовательно, функциональный блок, вызываемый с одними и теми же входными параметрами, может производить различные выходные значения. Если хотя бы одна переменная функционального блока объяв- лена как RETAIN, то все данные экземпляров целиком помещаются в энергонезависимый сегмент. Вызов функционального блока Для обращения к входным и выходным переменным функцио- нального блока извне необходимо указать имя экземпляра функцио- нального блока, следующей за ней точкой и именем переменной: 41
<Имя экземпляра>.<Имя переменной > Присваивание параметров при вызове: В текстовых языках (IL, ST) задать актуальные параметры и считать значения выходов можно непосредственно при вызове экзем- пляра функционального блока. Для входных переменных применяется присваивание выходы считываются при помощи ' Этот про- цесс упрощается, если использовать ассистент ввода (<F2>) с вклю- ченной опцией вставки с аргументами (With arguments). Пример: Допустим, FBINST - это локальная переменная типа функцио- нальный блок, имеющий входную переменную хх и выходную пере- менную уу. При вставке FBINST в ST с помощью ассистента ввода получается следующая заготовка: FBINSTl(xx:= , уу=>); Переменные вход-выход: Обратите внимание, что переменные вход-выход (VAR_IN_OUT) передаются в экземпляр функционального блока че- рез указатели. Поэтому таким переменным нельзя присваивать кон- станты при вызове. Пример: VAR inst: fubo; var: int; END_VAR varl := 2; inst(instoutl := varlA); He допустимые попытки присваивания констант: fuboinst (instoutl:=2); или inst.inoutl:=2; Примеры вызова экземпляра вышеописанного функционального блока FUB: Результат умножения сохраняется в переменной ERG, а ре- зультат сравнения в переменной QUAD. Экземпляр функционального блока FUB называется INSTANZ. 42
Вызов экземпляра функционального блока в IL: 'AWLaufruf (PRG AWL) 0031 PROGRAM А\Л1 <ufruf 003. VAF 0093 □DAD BDOL 00. ’ NS’ANi FUG; 00У ERG lhT-0, ООЛ END VAR пл л А A J_LJ »1 0091 Cal IN£TANZiPARI.^5.FAR2:=5) A Oprl 0033 1 -D INETAKZ.VEROL 0094 1 ST GUAD 003* оозс | LD IMSTAM.MIJLE4G ООЭл 37 ER3| onifl «1 »n Тот же пример в ST (раздел объявлений такой же, как и в предыдущем примере): Тот же пример в FBD: 43
В SFC экземпляры функциональных блоков могут вызы- ваться только из действий шага. Программа Программа - это POU, способный формировать произволь- ное значение во время вычислений. Значения всех переменных про- граммы сохраняются между вызовами. В отличие от функционального блока экземпляров программы не существует. Программа является глобальной во всем проекте. Пример программы: 44
Нельзя вызывать программу из функции. Если вызвать программу, которая изменит значения своих переменных, то при следующем вызове ее переменные будут иметь те же значения, даже если она вызвана из другого POU. В этом заключается главное различие между программой и функциональным блоком, в котором изменяются только значения пе- ременных данного экземпляра функционального блока. Объявление программы начинается ключевым словом PROGRAM и заканчивается ключевым словом END_PROGRAM. Так же, как и для экземпляров функциональных блоков, в текстовых языках (IL, ST) задать актуальные параметры и считать зна- чения выходов можно непосредственно при вызове программы. Для входных переменных применяется присваивание выходы считы- ваются при помощи Пример вызова программы: IL: CAL PRGexample2 LD PRGexample2.out_var ST ERG Или с присваиванием параметров: CAL PRGexample2(in_var:=33, out_var=>erg) ST: PRGexample2; Erg := PRGexample2.out_var, Или с присваиванием параметров: PRGexample2(in_var:=33, outvai^>erg); FBD: PRGbeispiel РАП FAR Erg 45
PLC_PRG Программа PLCPRG - это специальный POU, который должен быть в каждом проекте. Эта программа вызывается один раз за цикл управления. При создании нового проекта автоматически открывается диа- лог ’'Project” "Object Add”, предлагающий создать новый POU - про- грамму с именем PLC_PRG. Не следует менять предложенные установки. Если определить последовательность выполнения задач в Task Configuration, то проект может не содержать PLC_PRG. Внимание: Нельзя удалять или переименовывать POU PLC_PRG (если Task Configuration не используется). PLC_PRG явля- ется главной программой в однозадачном проекте. Действие Программы или функциональные блоки могут быть дополнены действиями. Фактически действия - это дополнительный набор встро- енных в POU подпрограмм. Действия могут описываться на языке, отличном от того, на котором выполняется соответствующий функци- ональный блок или программа. Действие оперирует с теми же данными, что и функциональ- ный блок или программа, к которой оно принадлежит. Пример действия функционального блока: 46
В данном примере функциональный блок Counter увеличивает или уменьшает выходную переменную "out” в зависимости от значе- ния входа "in”. При вызове действия Reset выходная переменная при- нимает значение 0. Одна и та же переменная "out” используется в обо- их случаях. Вызов действия: Действие вызывается с помощью идентификатора: <Имя_программы>. <Имя_действия> или <Имя_экземпляра>. <Имя_действия >. Если нужно вызвать действие из POU, к которому оно принад- лежит, то в текстовых языках используется имя действия, а в графиче- ских - функциональный блок без указания имени экземпляра. Пример вызова вышеописанного действия: PROGRAM PLC_PRG VAR Inst: Counter; END VAR IL: CAL Inst.Reset(In : = FALSE) LD Inst.out ST ERG ST: Inst.Reset(In := FALSE); Erg := Inst.out; FBD: lr st * Counter ppcpt FMjOE 'in out---------------Erg Замечание Действия играют ключевую роль в SFC (подробнее смотри раздел SFC) Стандарт МЭК определяет только действия SFC шагов. При- менение действий в функциональных блоках и программах является расширением CoDeSys. 47
Ресурсы Ресурсы отвечают за конфигурацию проекта, включая: Глобальные переменные, используемые во всем проекте. Менеджер библиотек (Library manager) для подключения необходимых библиотек к проекту Журнал записи действий во время исполнения Конфигуратор тревог (Alarm Configuration) для конфигу- рирования обработки тревог в проекте Конфигуратор ПЛК (PLC Configuration) для конфигури- рования аппаратуры контроллера. Конфигуратор задач (Task Configuration) для управления задачами Менеджер рецептов (Watch and Receipt Manager) для про- смотра и заказа наборов значений переменных Опции целевой системы (Target Settings) Рабочая область для отображения опций проекта В зависимости от системы исполнения и ее опций могут под- ключаться дополнительные объекты: Sampling Trace - для задания графической трассировки значений переменных. Parameter Manager - для взаимодействия с другими кон- троллерами в сети PLC-Browser - монитор ПЛК Tools - для вызова внешних, специфичных для каждой платформы инструментов SoftMotion - компоненты системы управления движением (в соответствии с лицензией), редакторы CNC и САМ Библиотеки Проект может использовать несколько библиотек, в которые входят POU, необходимые им типы данных и глобальные переменные. Библиотечные POU можно использовать точно так же, как и опреде- ленные пользователем. Библиотеки "standaid.lib" и "utilJib" обязательно входят в стан- дартный комплект поставки. (См. «Менеджер библиотек») Типы данных Кроме стандартных типов данных, вы можете использовать определяемые пользователем типы данных. Ими могут быть структу- ры, перечисления и ссылки. 48
Визуализация С помощью визуализации пользователь может создать графи- ческое представление проекта. Форма и цвет графических элементов будут изменяться при работе программы в зависимости от значений переменных. Визуализация может исполнятся в системе программирования, в отдельном приложении CoDeSys HMI или как Web или целевая (в ПЛК) визуализация. (См. раздел «CoDeSys Визуализация») 3.2.2 Языки программирования CoDeSys поддерживает следующие текстовые: • Instruction List (IL) • Structured Text (ST) и графические МЭК языки: • Sequential Function Chart (SFC) • Function Block Diagram (FBD) • Ladder Diagram (LD) Кроме того, CoDeSys включает поддержку, основанного на Функциональных Блоковых Диаграммах, редактора Continuous Func- tion Chait (CFC). Список инструкций (IL) Язык IL (Instruction list) дословно - список инструкций. Каждая инструкция начинается с новой строки и содержит оператор и, в зави- симости от типа операции, один и более операндов, разделенных запя- тыми. Перед операндом может находиться метка, заканчивающаяся двоеточием (:). Комментарий должен быть последним элементом в строке. Между инструкциями могут находиться пустые строки. Пример: LD 17 ST lint (* комментарий*) GE 5 JMPC next LD idwoid EQ istruct.sdwoid STN test next: 49
Модификаторы и операторы IL В IL можно использовать следующие операторы и модифика- торы: Модификаторы: С с JMP, CAL, RET: инструкция выполняет- ся только тогда, когда результат аккумулятора ИСТИНА. N с JMPC,CALC, RETC: инструкция выполняет- ся тогда, когда результат аккумулятора ЛОЖЬ. N в других случаях: отрицание операнда. Ниже приведена таблица всех операторов IL с пояснениями и допустимыми модификаторами: Оператор Модифи- катор Значение LD N Присвоение аккумулятору значения оператора ST N Присвоение значения аккумулятора операнду S Присвоить логическому операнду значение ИСТИНА, если значение ак- кумулятора ИСТИНА R - Присвоить логическому опе- ранду значение - ЛОЖЬ AND N,( Побитное И OR N,( Побитное ИЛИ XOR N,( Побитное исключающее ИЛИ ADD ( Сложение SUB ( Вычитание MIL ( Умножение DIV ( Деление GT ( > GE ( >= QE ( = NE ( < > 50
LE LT JMP CAL ( ( CN CN Переход к метке Вызов функционального бло- ка RET CN Выход из POU и возврат в вызывающую программу. ) Вычисление задержанной операции Список всех операторов МЭК приведен в приложении. Пример IL программы с использованием некоторых модифика- торов: LDTRUE (^загрузить значение ИСТИНА в аккумулятор*) AND BOOL1 (*выполнить И с инверсным значением переменной BOOL1*) JMPC mark (*если значение аккумулятора ИСТИНА, то перейти к метке ” maik"*) LDN ST ERG BOOL2 ^сохранить инверсное значение BOOL2 в аккумуляторе*) ^сохранить значение аккумуля- тора в ERG*) После оператора можно поставить скобки, тогда значение выра- жения внутри скобок рассматривается как операнд. Например: LD 2 MUL 2 ADD 3 ST ERG Здесь значение ERG равно 7. Если поставить скобки, то порядок вычислений изменится: LD 2 MUL (2 ADD 3 ) ST ERG 51
Теперь значение переменной ERG равно 10. Операция MUL выполняется только тогда, когда программа до- ходит до В качестве операнда MUL использует значение 5. Структурированный текст (ST) ST представляет собой набор инструкций высокого уровня, ко- торые могут использоваться в условных операторах ("IF...THEN...ELSE”) и в циклах (WHILE...DO). Пример: IF value <7 THEN WHILE value < 8 DO v alue:=value +1; E ND WHILE END_IF; Выражения Выражение - это конструкция, возвращающая определенное значение после его вычисления. Выражение состоит из операторов и операндов. Операндом может быть константа, переменная, функциональный блок или другое выражение. Вычисление выражений Вычисление выражений выполняется согласно правилам прио- ритета. Оператор с самым высоким приоритетом выполняется пер- вым, оператор с более низким приоритетом - вторым и т.д., пока не будут выполнены все операторы. Операторы с одинаковым приоритетом выполняются слева направо. В следующей таблице приведен список ST операторов, рас- положенных в порядке приоритета. Операция Обозначение Приоритет Выражение в скобках (Выражение) Самый высокий. 52
Вызов функции Имя функции (список параметров) Возведение в степеньЕХРТ Замена знаков Числовое дополнение Умножение Деление Абсолютная величина Сложение Вычитание Сравнение Неравенство Равенство Логическое И Логическое исключающее NOT ❖ / MOD + < ? > *>= о AND OR или Логическое ИЛИ OR Самый низкий Ниже приведены примеры использования инструкций ST: I кп апстрткшпп Грпг ва чмия' лспс.дг^м-згсг: ГЕ, тажэдг RETURN Пример A -g. cv -<v+ , c. -31TS XJ A = П(С_Т.МЕ Q RETURN D- -B*B; IFD<t Э THEM IE C EL31FD-0 07 HEN C =B- ELSE C -D ENDJF; CASE CASE INTI OF 1 BOOLl -TRUE, 2 BOOL2:-TRVE: ELSE SOOLi: = FALSE BOQL2 EW_CASfi, FOR J -101, FORI. -ITO 100 BY IDO 1FARR [I]-70 THEN L=I. EXITj END_IF, END.FOR: WHILE J —I; КЕРЕ \T Tsb-2 UNTIL >101 ОЕ.ЛКЕ. J] - E?T REPFAT EXIT 53
J:=l: WHILE J<= 100 AND ARR [I] о "0 DO J: -142: END-WHILE- REPEART EXIT Пустая ин:трушнз Перед оператором присваивания находится операнд (переменная или адрес), которому присваивается значение выражения, стоящего после оператора присваивания. Пример: Vari: = Var2 * 10; После выполнения этой операции Vari принимает значение в десять раз большее, чем Vai2. Вызов функционального блока в ST Функциональный блок вызывается с помощью имени экзем- пляра функционального блока и списка входных параметров с присва- иванием данных в круглых скобках. В следующем примере вызывает- ся таймер с параметрами IN и РТ. Значение выходной переменной Q присваивается переменной А. К выходной переменной, как и в IL, можно обратиться с по- мощью имени экземпляра функционального блока, точки, следующей за ним и имени выходной переменной: CMDTMR (IN: = %IX5, РТ: = 300); A: =CMD_TMR.Q Инструкция RETURN Инструкция RETURN позволяет выйти из POU, например, в зависимости от условия. Инструкция IF Используя инструкцию IF, можно проверить условие, и в зави- симости от этого условия выполнить какие-либо действия. 54
Синтаксис: IF <Boolean_expressionl> THEN <IF_instructions> {ELSIF <Boole- an_expression2> THEN <ELSIF_instnictionsl> .ELSIF boole- an-expression n> THEN <ELSIF_instructions n-l> ELSE <ELSE_instructions>} END_IF; Часть конструкции фигурных скобках не обязательна. Если < <Boolean_expressionl> возвращает истину, тогда <IF_Instructions> выполняется. В противном случае будут выполняться остальные логические выражения одно за другим, пока одно из них не возвратит истину. То- гда выполняются инструкции, стоящие после этого логического выра- жения до следующего ELSIF или ELSE. Если все логические выражения ложны, то выполняются ин- струкции, стоящие после ELSE. Пример: IF temp < 17 THEN heatingon: = TRUE; ELSE heatingon: = FALSE; END_IF В этом примере нагревание (heating) включается, когда темпера- тура опустится ниже 17 ° градусов, иначе оно останется выключен- ным. Инструкция CASE С помощью инструкции CASE можно нескольким различным значениям целочисленной переменной сопоставить различные ин- струкции. 55
Синтаксис: CASE <Varl> OF <Valuel>: <bistruction 1> <Value2>: <Instruction 2> <Value3, Value4, Value5>: <bi- struction 3> <Value6 ValuelO>: <Instruction 4> < Value n>: <Instnic struc- tionn> ELSE <ELSE instruction> END_CASE; Инструкция CASE выполняется согласно следующим прави- лам: • Если переменная <Varl> имеет значение <Value i>, то выполняется инструкция <bistruction i> • Если <Varl> не принимает ни одного из указанных зна- чений, то выполняется <ELSE Instructions • Чтобы одна и та же инструкция выполнялась при раз- личных значениях переменной <Varl>, необходимо перечислить эти значения через запятую. • Чтобы одна и та же инструкция выполнялась для целого диапазона значений, необходимо указать начальное и конечное значе- ния, разделенные двумя точками. Пример: CASE INTI OF 1,5:BOOL1 : = TRUE; BOOL3 : = FALSE; 2: BOOL2 : = FALSE; BOOL3 : = TRUE; 10 .20: BOOL1: = TRUE; BOOL3:= TRUE; 56
ELSE BOO LI := NOTBOOL1; BOOL2 := BOOL1 OR BOOL2; END_CASE; Цикл FOR С помощью FOR можно программировать повторяющиеся процессы. Синтаксис: INTVar :INT; FOR <IM Vai> := <I\lIVALll> TO <END_VALUE> {BY <Step size>} DO <bistructioiis> END_FOR Часть конструкции, заключенная в фигурные скобки, не обяза- тельна. <Instructioiis> выполняются, пока счетчик <INT_Var> не боль- ше <END_VALUE>. Это условие проверяется перед выполнением <Ь1- structions>, поэтому раздел <bistructioiis> не выполняется, если <IMIVALIE> больше <END_VALUE>. Всякий раз, когда выполняются <Instructions>, значение <INIT_VALUE>, увеличивается на <Step_ size>. <Step_ size> может принимать любое целое значение. По умолчанию шаг устанавливается равным 1. Пример: FOR Counter =1 ТО 5 BY 1 DO V arl: =Varl*2 E ND_FO R; Erg:=Varl; 57
В этом примере предполагается, что начальное значение Vari равно 1. После выполнения цикла эта переменная будет равна 32. Замечание: <END_VALUE>: не должно быть равно предель- ному значению счетчика <INT_VAR>. Например, если счетчик явля- ется переменной типа SINT и <END_VALUE> равно 127, то цикл ста- новится бесконечным. Цикл WHILE Цикл WHILE может использоваться, как и цикл FOR, с тем лишь различием, что условие выхода определяется логическим выра- жением. Это означает, цикл выполняется, пока верно заданное усло- вие. Синтаксис: WHILE <Boolean expression> <Instructions> END_WHILE Раздел <Instructions> выполняется циклически до тех пор, пока <Boolean_expression> дает TRUE. Если <Boolean_expression> равно FALSE уже при первой итерации, то раздел <Instnictions> не будет выполнен ни разу. Если <Boolean_expression> никогда не примет зна- чение FALSE, то раздел <bistructions> будет выполняться бесконечно. Замечание: Программист должен быть уверен, что цикл не станет бесконечным. Для этого в теле цикла значение входящей в условие переменной обязательно должно изменяться. Например, пу- тем инкремента или декремента счетчика. Пример: WHILE countero-0 DO Vari: = Vari *2; counter := counter-1; END_WHILE Цикл REPEAT Цикл REPEAT отличается от цикла WHILE тем, что первая проверка условия выхода из цикла осуществляется, когда цикл уже 58
выполнился 1 раз. Это означает, что независимо от условия выхода цикл выполняется хотя бы один раз. Синтаксис: REPEAT <Instructions> UNTIL <Boolean expres- sion END_R EPEAT Раздел <Jnstructions> выполняется циклически до тех пор, пока <Boolean_expression> дает TRUE. Если <Boolean_expression> равно FALSE уже при первой итерации, то раздел <Instnictions> не будет выполнен один раз. Если <Boolean_expression> никогда не примет значение FALSE, то раздел <Instnictions> будет выполняться беско- нечно. Замечание: Программист должен быть уверен, что цикл не станет бесконечным. Для этого в теле цикла значение входящей в условие переменной обязательно должно изменяться. Например, пу- тем инкремента или декремента счетчика. Инструкция EXIT Если EXIT встречается в циклах FOR, WHILE, REPEAT, то цикл заканчивает свою работу независимо от значения условия выхо- да. Язык последовательных функциональных схем (SFC) SFC - это графический язык, который позволяет описать хро- нологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последователь- ность работы определяется условиями переходов между шагами. 59
Пример SFC диаграммы: 1яй Шаг SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов: • Шаг простого типа (упрощенный SFC) может включать единственное действие. Графический флажок (небольшой треугольник в верхнем углу шага) показывает, пустой шаг или нет. • МЭК шаг (стандартный SFC) связан с произвольным чис- лом действий или логических переменных. Связанные действия рас- полагаются с правой стороны от шага. Действие Действие может содержать список инструкций на IL или ST, схемы на FBD ИЛИ LD, или снова схемы на SFC. При использовании простых шагов действие всегда связывает- ся с этим шагом. Для того, чтобы редактировать действие, необходимо дважды щелкнуть левой клавишей мышки на шаге. Или выделить шаг 60
и выбрать команду меню "Extras” ”ZoomAction/Transition". Помимо основного действия, шаг может включать одно входное и одно выход- ное действие. Действия МЭК шагов показаны в Организаторе Объектов, непосредственно под вызывающей их POU. Редактирование действия запускается двойным щелчком мыши или клавишей <Enter>. Новые действия добавляются командой главного меню "Project” ”Add Action”. Вы можете сопоставить одному шагу до 9 действий. Входное или выходное действие В шаг можно добавить входное и выходное действие. Входное действие выполняется один раз при активизации ша- га, выходное - при деактивизации. Шаг, который имеет входное дей- ствие, обозначается буквой "Е" в левом нижнем углу, шаг с выходны- ми действиями - буквой "X" в правом нижнем углу. Входные и выходные действия могут описываться на любом языке. Для того чтобы отредактировать входное или выходное дей- ствие, надо дважды щелкнуть мышкой в соответствующем углу шага. Пример простого шага с входным и выходным действиями: ________I_____ Schall? 1 Е X Переход/условие перехода Между шагами находятся так называемые переходы. Условием перехода может быть логическая переменная или константа, логиче- ский адрес или логическое выражение, описанное на любом языке. Условие может включать серию инструкций, образующих логический результат, в виде ST выражения (т.е. (i<= 100) AND b) либо на любом другом языке. Но условие не должно содержать присваивания, вызов программ и экземпляров функциональных блоков. В редакторе SFC условие перехода можно записать непосред- ственно около символа перехода либо в отдельном окне редактора для ввода условия. Замечание: помимо условий переходов, можно использовать тактируемый режим переходов; См. SFCtip и SFCtipmode. 61
Активный шаг После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется первым. Шаг, выполняемый в данный момент, называется активным. Действия, связанные с активным ша- гом, выполняются один раз в каждом управляющем цикле. В режиме online активные шаги выделяются синим цветом. Следующий за ак- тивным шагом шаг станет активным, только когда условие перехода к этому шагу будет истинно. В каждом управляющем цикле будут выполнены действия, со- держащиеся в активных шагах. Далее проверяются условия перехода, и, возможно, уже другие шаги становятся активными, но выполняться они будут уже в следующем цикле. Замечание: выходное действие выполняется однократно в следующем цикле, после того, как условие перехода станет истинным. Шаг МЭК В отличие от упрощенного SFC МЭК шаги могут включать не- сколько действий. Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню '’Дополнения” "Связать действия" ("Extras" "Associate action"). Кроме действий с шагом, можно связывать логические пере- менные. С помощью так называемых классификаторов действия и ло- гические переменные могут активироваться и деактивироваться, воз- можно, с задержкой времени. Например: действие может продолжать работу, даже если запустивший его шаг утратил активность; с помо- щью классификатора S (установка) можно программировать парал- лельные процессы и т.д. Логическая переменная <StepName >.х, связанная с шагом, по- лучает значение ИСТИНА при каждой активации шага. Действие, связанное с МЭК шагом, описывается справа от него в блоке, состоящем из двух частот. Левая часть этого блока содержит классификатор, возможно, с константой времени, а правая часть со- держит имя действия или логической переменной. В режиме online все активные действия выделяются синим цветом, подобно активным шагам. Благодаря чему достаточно легко проследить ход выполнения процесса после каждого управляющего цикла. 62
Замечание: Если действие деактивируется, то оно выполняет- ся еще один раз. Это означает, что каждое действие выполняется хотя бы два раза (см. далее действие со спецификаторами). При выполнении шага сначала производится деактивация дей- ствий, затем выполняются активные действия в алфавитном порядке. Для того чтобы использовать шаги с МЭК действиями, необ- ходимо установить опцию "Extras” ”Use IEC-Steps” и подключить к проекту специальную библиотеку lecsfcJib. В Организаторе объектов действия показаны непосредственно под SFC POUs, которые их вызывают. Новые действия можно созда- вать с помощью команды "Проект" "Добавить действия" ("Project” ”Add Action”). SFC POU co списком действий в Организаторе Объектов: Для связи шагов и действий применяются классификаторы: N Не сохраняемое Действие активно в течение активности шага R S Внеочередной Сброс Деактивация действия Установка Действие активно вплоть до сброса L Ограниченное по Действие активно в течение времени указанного времени, но не дольше времени активности шага D Отложенное Действие активируется по прошествии указанного времени, если шаг еще акти- вен и продолжает быть активным 63
Р Импульс Действие выполняется один раз, если шаг активен SD Сохраняемое и Действие активно после указанного Отложенное времени до сброса DS Отложенное и Сохраняемое Действие активно после указанного времени, если шаг еще активен, вплоть до сброса SL Сохраняемое и ограниченное по времени Активно после указанного времени. Классификаторы L, D, SD, DS, SL требуют указания временной константы в формате TIME. Замечание: В процессе деактивации действие выполняется еще один раз. Это относится и к действиям с классификатором Р. Неявные переменные в SFC В SFC существуют неявно объявленные переменные, которые могут оказаться полезны. Каждому шагу соответствует флаг, который хранит информа- цию о его состоянии. Этот флаг обозначается <StepName>.x для МЭК шагов иЛ1ерКате> для простых шагов. Этот флаг имеет значение ИС- ТИНА, когда соответствующий шаг активен, и ЛОЖЬ, когда неакти- вен. Он может использоваться в любом действии или переходе SFC. Аналогично, с помощью переменной <ActionName>.x, можно узнать, активно действие или нет. С помощью неявной переменной <StepName>.t можно узнать время активности МЭК шага. К неявным переменным разрешен доступ даже из другой про- граммы. Например: boolvarl:=sfcl.stepl.x; Где stepl.x - неявная логи- ческая переменная, представляющая состояние МЭК шага stepl в POU sfcl. Флаги SFC Для управления работой SFC компонента предусмотрены спе- циальные флаги. Для использования этих флагов необходимо объяв- 64
лять их глобально или локально как входные или выходные перемен- ные. Пример: Если в SFC POU некоторый шаг активен дольше, чем время, заданное в его атрибутах (см. ниже), устанавливается специ- альный флаг, доступный через переменную "SFCEiror" (SFCEmor при- нимает значение TRUE в этом случае). Вы можете использовать следующие переменные-флаги: SFCEnableLimit: Переменная типа BOOL. Когда значение этой переменной ИСТИНА, задержка времени шага регистрируется в SFCEiror. Другие задержки времени игнорируются. SFChiit: Переменная типа BOOL. Когда переменная получает значение ИСТИНА, программа переходит обратно на шаг Init и все SFC флаги сбрасываются. Шаг Init становится активным, но не выпол- няется, пока переменная имеет значение ИСТИНА. Как только SFCInit примет значение ЛОЖЬ, выполнение программы продолжится. SFCReset: Переменная типа BOOL. Работает подобно SFCInit. Но последующее выполнение будет продолжено после шага инициа- лизации Init. Поэтому флаг SFCReset можно сбросить в FALSE в са- мом шаге Init. SFCQuitError: Переменная типа BOOL. Выполнение про- граммы SFC приостанавливается, пока переменная имеет значение ИСТИНА. Посредством чего сбрасывается возможный таймаут. Время работы любого активного шага сбрасывается, когда эта переменная снова получает значение ЛОЖЬ. SFCPause: Переменная типа BOOL. Выполнение программы SFC приостанавливается, пока эта переменная имеет значение ИСТИ- НА. SFCError: Эта логическая переменная принимает значение ИСТИНА, когда происходит задержка времени. Если следом возника- ет вторая ошибка, она не фиксируется, пока флаг SFCEiror не будет сброшен. Для уточнения причины ошибки необходимо использовать флаги: SFCErroiStep, SFCErrorPOU, SFCQuitEiror, SFCEirorAnalyza- tion. 65
SFCTrans: Переменная типа BOOL. Принимает значение ИС- ТИНА, когда переход активируется. SFCErrorStep: Переменная типа STRING. В этой переменной хранится имя шага, в котором обнаружена ошибка (задержка време- ни). SFCErrorPOU: Переменная типа STRING. В этой переменной хранится имя компонента, в котором обнаружена ошибка (задержка времени). SFCCurrentStep: Переменная типа STRING. В этой перемен- ной хранится имя активного шага. В случае одновременного выполне- ния шагов в переменной сохраняется имя того шага который находит- ся в правой ветви SFC диаграммы. SFCErrorAnalyzationTable: Переменная типа ARRAY LO..n] OF ExpressionResult сообщает результаты анализа условного выражения перехода. Для каждого элемента выражения, формирую- щего значение FALSE и соответственно задерживающего переход, за- полняется структура, содержащая наименование, адрес, комментарий и текущее значение. Допускается максимум до 16 элементов (переменных), поэтому индексы массива имеют значения от 0 до 15. Структура ExpressionResult и неявно используемые функции анализа включены в библиотеку Analyza-tionNewJib. Модули библио- теки можно использовать явно в других POU, не запрограммирован- ных в SFC. Предварительным условием анализа является обнаружение за- держки в шаге. Поэтому контроль времени выполнения обязателен при анализе. Также обязательно должна быть объявлена переменная SFCEr-nor (см. выше). SFCTip, SFCTipMode. Переменные типа BOOL позволяют за- дать тактируемый режим выполнения SFC. Если этот режим включен - SFCTipMode=TRUE, то переход к следующему шагу возможен только при SFCTip, равном TRUE. Пока SFCTip имеет значение FALSE, пе- реход не разрешен, даже если условие выполнено. 66
Альтернативная ветвь Две и более ветви SFC могут быть альтернативными. Каждая альтернативная ветвь должна начинаться и заканчиваться переходом. Альтернативные ветви могут содержать параллельные ветви и другие альтернативные ветви. Альтернативная ветвь начинается горизонталь- ной линией (начало альтернативы), а заканчивается горизонтальной линией (конец альтернативы) или переходом на произвольный шаг (jump). Если шаг, который находится перед линией альтернативного начала, активен, то первые переходы альтернативных ветвей начинают оцениваться слева направо. Таким образом, первым активируется тот шаг, который следует за первым слева истинным переходом. Параллельные ветви Две и более ветви SFC могут быть параллельными. Каждая параллельная ветвь должна начинаться и заканчивать- ся шагом. Параллельные ветви могут содержать альтернативные ветви и другие параллельные ветви. Параллельная ветвь наносится двойной горизонтальной линией (параллельное начало) и заканчивается двой- ной горизонтальной линией (конец параллели) или переходом на про- извольный шаг (jump). Если шаг активен, условие перехода после этого шага истинно и за этим переходом следуют параллельные ветви, то активируются первые шаги этих ветвей. Эти ветви выполняются параллельно друг другу. Шаг, находящийся после параллельных ветвей, становится ак- тивным только тогда, когда все предыдущие шаги активны и условие перехода истинно. Переход на произвольный шаг (Jump) Переход на произвольный шаг - это соединение на шаг, имя которого указано под знаком «jump». Такие переходы нужны для того, чтобы избежать пересекающихся и идущих вверх соединений. 4 ПРОЕКТИРОВАНИЕ СЛУ НА ЯЗЫКЕ LD 4.1 Контакты, катушки После открытия главного окна CoDeSys появляется на монито- ре рабочая область, в которой и будем «рисовать» многоступенчатую схему. 67
Эта схема представляет собой набор горизонтальных цепей, напоминающих ступеньки лестницы, соединяющих вертикальные шины питания. Если необходимо увеличить размер рабочей области, то подводим курсор к кнопке □ в верхнем правом углу этой области и нажимаем 1J1KM. Первая цепь появляется в рабочей области сразу. Слева на се- ром фоне автоматически возникнет её номер: 0001. Наличие пунктир- ного прямоугольника в правой части цепи свидетельствует о том, что она активирована, т. е. готова принимать вносимые в неё компоненты: контакты, FB, катушки. Будем считать, что сама СЛУ в обычном, т. е. релейно- контактном исполнении уже имеется, и наша задача перенести её в LD-диаграмму. В качестве такой СЛУ возьмем схему, представленную на Рисунок 4.2. 68
и Цепи таки Кнопка пуска Датчик Гс Датчик тт Добления Датчик так Дпблрния Длрктродбигатрлъ ншшп Катушка злектронагреботрля Цепи сигнализации Рисунок 4.2 - Схема релейно-контакторной комбинационной СЛУ Так как графическая символика в LD создавалась под амери- канские стандарты, придется согласиться с отступлением от требова- ний ЕСКД в изображении элементов схемы и воспользоваться табли- цей 4.1. 69
4.2 Построение СЛУ в LD По аналогии с исходным вариантом (Рисунок - 1.2) в много- ступенчатой схеме, скорее всего, также потребуется пять цепей. Мы говорим «скорее всего», т. к. несмотря на кажущуюся схожесть РКС- и LD-диаграмм, есть принципиальное различие в последовательности срабатывания цепей. Но этот вопрос пока оставим без комментариев и вернемся к нему в п. 4.8. В первую цепь необходимо внести контакт SB и катушку реле А. - Наводим курсор на кнопку в панели инструментов с изображени- ем замыкающего контакта —II—, нажимаем 1JIKM, и этот контакт по- является в цепи с тремя вопросительными знаками красного цвета (Рисунок 4.1). Рисунок 4.3 - Первая цепь с введенным контактом (Далее для краткости подобные операции будем записывать так: наводим курсор на К19, нажимаем 1J1KM...., где К19 - 4F кнопка в панели инструментов___ Эти знаки (???) запрашивают имя или идентификатор вне- сенного в цепь компонента. Наводим курсор на знаки (???), щелкаем 1J1KM. Во- просы становятся белыми на фоне синего прямоугольника. С помо- щью клавиатуры на английском языке «вбиваем» имя. В нашем при- мере «SB». Буквы русского языка использовать нельзя! Нажимаем <Entei>. Открывается окно Declare Venable (Объявление переменной), запрашивающее к какому классу переменных будет отнесен наш эле- мент (Рисунок 4.4). 70
Рисунок 4.4 - Окно объявления переменной Если проектируемая схема предназначена для учебных целей и будет работать только в режиме эмуляции, то можно сразу нажать 1 ЛКМ на ОК, и имя появится над элементом (Рисунок 4.5). Рисунок 4.5 - Объявленный замыкающий контакт Обратите внимание на пунктирный квадратик, охватывающий контакт SB и на исчезновение пунктирного прямоугольника в конце самой цепи. Это свидетельствует о том, что активирован сам контакт SB, т. е. можно (если была бы такая необходимость) последовательно и/или параллельно этому контакту (как будет показано при создании четвертой и пятой цепей) подключать к нему другие контакты. Нам же осталось для завершения первой цепи ввести в нее ка- тушку реле А. - Наводим курсор на К23, щелкаем 1 ЛКМ и ... ничего не полу- чилось. Надо сначала активировать цепь. Для этого наводим курсор на линию цепи, щелкаем 1 ЛКМ, т. е. активируем её (появился пунктирный прямоугольник!), переводим курсор на К23, щелкаем 1 ЛКМ и в цепи появляется катушка с тремя белыми знаками (???) в синем прямоугольнике. Катушки и, как будет показано ниже, FB появляются всегда с такими знаками (???). Если имя сразу не присвоить и перейти к другим действиям, то знаки (???) станут красными, как и в случае включения 71
контактов. Потом же потребуется лишняя операция при идентифика- ции катушки: опять навести курсор на красные знаки (???), щелкнуть 1ЛКМ, вопросы становятся белыми на синем фоне и т. д. Но это не принципиально. Дело вкуса и привычки. - Присваиваем катушке имя: А. Нажимаем <Enter>, открывает- ся окно Declare Venable, нажимаем 1ЛКМ на ОК. Можно было сначала включить в цепь катушку, затем контакт. Можно было включить эти элементы в любой последователь- ности и лишь потом присвоить им имена. Результат будет тем же. Первая цепь завершена (Рисунок 4.6). Рисунок 4.6 - Завершенная первая цепь Как видно на мониторе, зона цепи ограничена двумя горизон- тальными линиями. При активации цепи не обязательно наводить кур- сор точно на цепь. Достаточно попасть в эту зону за исключением полосы, примыкающей к верхней линии и являющейся как бы про- должением строки, начинающейся с номера цепи. В нашем случае с 0001. Эта полоса может быть использована для написания на англий- ском языке функционального назначения данной цепи. Если в этом есть необходимость. А такая необходимость воз- никает в сложных LD-диаграммах, состоящих из десятков или сотен цепей. В РКС эти сведения обычно приводят в виде таблицы слева от схемы, понятным, естественно, обслуживающему персоналу. С этой целью наводим указатель в эту полоску, щелкаем 1 ЛКМ, появляется мигающий курсор, клавиатурой вбиваем, например, «Knopka_ puska» (если у читателя есть проблемы с английским язы- ком), нажимаем <Enter>. И всё. Комментарии можно выполнить и на русском языке. С этой целью наводим курсор на поле цепи, щелкаем ШКМ. Открывается контекстное меню (Рисунок - 3.8). Щелкаем 1ЛКМ на строке Com- ment (Комментарий). Слева над цепью появится слово «Comment», в строке с которым можно написать на любом языке необходимые пояс- нения. Слово «Comment» потом можно удалить. 72
Перед тем как взяться за следующую цепь, обсудим ещё неко- торые важные моменты. Если реальное реле имеет ограниченное количество замыкаю- щих, размыкающих и переключающих контактов, то в LD таких огра- ничений нет, и виртуальные контакты могут применяться в любой це- пи в любом количестве. Во всех цепях одной схемы имя логической переменной кон- тактов одного и того же реле должно сохранятся. Имя может быть од- нобуквенным (X, Y, Z и т. д.), иметь цифровые индексы (XI, Х2 и т. д.), вписываемые без пробела. Если есть необходимость в таком про- беле, например, при написании двух или более слов, то в пробел ста- вится символ подчеркивания. Этот символ является значимым, т. е. имена X I, XI, _Х1 и _Х_1 воспринимаются программой как самосто- ятельные. Все перечисленные требования к написанию имен действуют и при документировании функциональных характеристик цепей; «Knopkajpusk» или <<Datchik urovnia». Но цифру на первое место ставить нельзя: IX, 2Х - неверно. Нельзя применять в качестве имен операторы других языков. Например, операторы IL: LD, ST, S, R, AND, MUL, JMP и др. С индек- сами, символами подчеркивания или другими буквами можно. Напри- мер SI, RU, AND_, MULTI и т. д. Даже не зная весь список операто- ров, легко установить ошибку. После нажатия на клавишу Enter в про- цессе присваивания имени переменной запрещенный идентификатор высветится синим цветом. Его необходимо удалить и вписать другое имя. Регистр букв не влияет на работу ПЛК. Так имена «SET» и «Set» воспринимаются одинаково. В сложных схемах трудно запомнить назначение того или ино- го элемента при упрощенной (однобуквенной) системе идентифика- ции. Поэтому имя переменной (т. е. идентификатор) можно записать в развернутом виде, не используя буквы русского языка. Например, если есть трудности с английским языком, можно присвоить русские имена «Dvigatel», «pusk», «BLOKIROVKA» и т. д. Каждая цепь заканчивается «катушкой» реле. Последова- тельно соединять катушки нельзя. Параллельно - можно. Хотя в этом особой необходимости нет. Некоторые фирмы, выпускающие ПЛК, допускают заверше- ние цепи не катушкой, a FB. Например, счетчиком, виртуальные кон- 13
такты которого, имеющие тот же идентификатор, что и FB, мо- гут использоваться в цепях LD. Создаем вторую цепь. Есть три способа: с помощью меню <1п- sert>, контекстного меню и кнопками К17 и К18. Воспользуемся тре- тьим приемом, как наиболее простым. (Другие способы читатель по- том легко освоит самостоятельно). - Наводим курсор на К18, щелкаем 1ЛКМ. Сразу появляется вторая цепь (Рисунок 4.7). - По вышеописанной методике вносим в цепь SL и катушку В. Если есть необходимость (а для такой простой СЛУ она вряд ли есть), то можно в верхней полосе зоны второй цепи вписать: «Datchik-iirovnia», или окончательно освоив английский язык, «lev- el_sensor». Рисунок 4.7 - Диаграмма с новой цепью Также создается третья цепь. Если по ошибке или преднаме- ренно нажали не К18, а К17, т. е. Netwoik (before) или Цепь (вперед), то новая цепь станет впереди всех созданных и автоматически присво- ит себе номер 0001, а последующим цепям нумерацию увеличит на единицу. Если же проектировщик решил вставить новую цепь между двумя уже созданными, то можно это выполнить разными приёмами: - Щелкнуть 1ЛКМ по цепи 0001, затем по К18, т. е. по Net- woik (after) или Цепь (после). Новая цепь станет после цепи 0001, по- лучит номер 0002, а вторая ранее созданная цепь станет под номером ОООЗн далее выполняем аналогично для 0004. - Щелкнуть 1ЛКМ по цепи 0002, затем по К17 и новая цепь появится впереди цепи 0002, присвоит себе её номер, а ранее создан- ной цепи передаст номер 0003. Несколько сложнее будет программирование пятой и шестой цепей. Начнем с пятой цепи. По освоенной методике создаем саму цепь, вносим контакт реле А. Присваиваем ему имя «А» или «а». Для 74
большего сходства с исходной РКС впишем «а». Нажимаем <Entei>. Однако окно объявления переменной (Рисунок 4.4) не открылось. В этом нет необходимости, т. к. имя реле А уже внесено в «список» бу- левых переменных. И сколько бы раз этот идентификатор «А» или «а» не появлялся в схеме, окно открываться не будет. Далее с помощью К20 вносим контакт, й, с, d и присваиваем им имя по вышеописанной методике. Теперь необходимо параллельно с, d ввести контакты 6, с. Для этого: - Наводим курсор на контакт d, щелкаем 1ЛКМ. Контакт ак- тивирован, о чем свидетельствует пунктирный квадрат, охватываю- щий контакт. - Наводим курсор на К22, щелкаем 1ЛКМ и соединение вы- полнено. Присваиваем имя: с, d. (Если активировать саму цепь, а не контакт d, то замыкающий контакт с охватил бы всю цепочку из контактов а, й, с и d, как показа- но на Рисунок 4.8). Рисунок 4.8 - Фрагмент схемы после неудачного введения контакта с Вносим в цепь катушку реле КМ. Цепь завершена. Програм- мируем последующие цепи. По известной методике последовательно вносим в цепь раз- мыкающие контакты с, а. замыкающие контакты катушку КМ1. Осталось лишь создать параллельную цепочку из замыкающего кон- такта а и размыкающего Ь. Для этого: Активируем размыкающий контакт а, нажимаем и не отпускаем «Shift», активируем замыкающий контакт 6, отпускаем «Shift». Оба контакта оказались охваченными пунктирным прямо- угольником. 75
Наводим курсор на К21, щелкаем 1ЛКМ, и параллельно с этими контактами появится —I I— , которому присвоим имя rf, с. Фрагмент полученной схемы в пятой цепи показан на рисунке 4.9. Рисунок 4.9 - Пятая цепь после введения контакта и его акти- вации - Активируем новый контакт а, наводим курсор на К20, щелка- ем 1ЛКМ и последовательно с а появляется —1/1—. Присваиваем имя b новому элементу. Параллельная цепочка выполнена, и завершаем всю многосту- пенчатую схему в LD (Рисунок 4.10). Рисунок 4.10 - СЛУ на языке LD 76
4.3 Подключение ПЛК Монтажная схема (подключение приемных и исполнительных элементов непосредственно к ПЛК 100-24 PL ОВЕН) показана на ри- сунке 4.11. По принятой в ОВЕНе маркировке изделий «24» означает наличие внешнего маломощного источника питания на 24В (напри- мер, ОВЕН БП15), а буква Р свидетельствует, что все дискретные вы- ходы обеспечиваются замыкающими контактами электромагнитных реле, рассчитанными на нагрузку 8А при -220В. Рисунок 4.11 - Схема подключения цепей к ПЛК 100-24. P-L Вопросы, касающиеся конфигурирования ПЛК, т. е. привязки имен входных и выходных элементов к конкретным входам/выходам ПЛК. Допустим, что эта процедура выполнена и выбраны монтажные клеммы, как показано на рисунке 4.11. Остальные цепи вхо- дов/выходов остаются свободными или могут быть задействованы в другой программе. Для надежной работы следовало бы поставить блок согласова- ния датчика (например, ОВЕН БКК 1) с входом ПЛК, с учетом кон- 77
кретных технологических требований и условий эксплуатации разра- ботанной системы потребуется ещё установка барьеров искрозащиты (например, ОВЕН ИСКРА), устройства защитного отключения трех- фазного электродвигателя (например, ОВЕН УЗОТЭ-2У) и др., но это приводит к значительному усложнению схемы и выходит за рамки изучаемого курса 4.4 Дополнительные приемы при построении LD-диаграмм Если ПО ошибке введен вместо замыкающего контакта размы- кающий или наоборот, то можно навести на него курсор, щелкнуть ШКМ и в открывшемся контекстном меню щелкнуть 1ЛКМ на чет- вертой снизу строке Negate (инверсия). Произойдет инверсия этого элемента. Имя, если оно уже было присвоено, остается прежним. Эту операцию можно выполнить проще, если есть кнопка КЗ 1. (В некоторых версиях CoDeSys она может отсутствовать). Тогда наво- дим курсор на подлежащий изменению контакт, щелкаем 1ЛКМ и нажимаем на КЗ 1. Если необходимо удалить какой-то компонент цепи или всю цепь со всеми элементами, то наводим курсор на этот компонент (кон- такт, катушку, FB) или на саму цепь, щелкаем ШКМ и в открывшемся контекстном меню нажимаем ШКМ на самой верхней строке Cut (вы- резать). Исчезнет элемент или вся цепь соответственно. Если нужно изменить идентификатор какого-то компонента цепи, наводим курсор на это имя, щелкаем ШКМ, нажатием на кла- вишу Backspace, удаляем имя, вбиваем новое, нажимаем Enter. Если возникла необходимость переместить какой-то компо- нент схемы по одной цепи или даже перекинуть его в другую цепь, то «захватываем» этот элемент курсором и при нажатой ЛКМ перестав- ляем его в новое место. В момент перемещения на входе и выходе каждого элемента высвечиваются небольшие прямоугольники (Рисунок 4.12). Рисунок 4.12 - Вид цепи при перетаскивании элемента: а - до переноса; б - после переноса 78
Как только курсор подойдет к одному из них, прямоугольник становится зеленым. Отпускаем ЛКМ и перемещаемый элемент зай- мет новое место. Если по мере увеличения количества элементов в цепи им уже не хватает места в пределах границ рабочей области, то пользуясь го- ризонтальной «прокруткой» смещаем цепь влево. Если по мере добав- ления цепей им уже негде размещаться, то с помощью вертикальной «прокрутки» поднимаем всю многоступенчатую схему или уменьшаем масштаб. 4.5 Катушки реле Помимо «обычных» реле — () — можно применять аналог поляризованного реле, обозначаемого на схеме —(/)—. Это реле может иметь сколько угодно замыкающих и размы- кающих контактов, но логика их действия противоположна поведению контактов обычного реле: при отсутствии тока в —(/)— замыкающий контакт —11— замкнут, размыкающий —1/1 разомкнут. При подаче питания в катушку —(/)— состояние его контактов меняется на противоположное. Воображаемый аналог такого реле можно изготовить на базе переключающего геркона (Рисунок 4.13а). Рисунок 4.13 - Устройство герконового реле: а - обычное ис- полнение; б - поляризованное реле В нормальном состоянии подвижный контакт 2 замкнут с не- подвижным контактом 4. При пропускании тока через обмотку катуш- 79
ки 5 замыкаются контакты 2 и 3 и размыкаются контакты 2 и 4, т. е. реле работает в обычном режиме. Если в катушку поместить постоянный магнит (Рисунок 4.13 6), то при отсутствии тока в катушке 5 подвижный контакт 2 замкнет цепь с контактом 3 и разорвет цепь с контактом 4. В таком состоянии реле может находиться сколь угодно. При подаче тока размагничивания в катушку 5 магнитное поле постоянно- го тока (при правильном выборе полярности) скомпенсирует магнит- ное поле постоянного магнита б и контакт 2 вернется в исходное по- ложение. С использованием нормального реле —( )— и инверсивного реле —(/)— можно собрать генераторы (Рисунок 4.14). В наборе программных компонентов имеются также специаль- ные обмотки SET и RESET, обозначенные в линейке кнопок как —( S )— и —( R )— соответственно (т. е. кнопки К24 и К25 по табл. 3.1). С их помощью можно фиксировать условия управления исполнитель- ным механизмом. Если обмотка S «сработает», т. е. примет значение ИСТИНА (TRUE), то изменить это состояние на противоположное, т. е. ЛОЖЬ (или FALSE), можно лишь с помощью обмотки R (Рисунок 4.14) а б в г Рисунок 4.14 -. Простейшие генераторы импульсов (а и б) и их релейные аналоги (виг): S1 и S2 - кнопки пуска; HL1 и HL2 - прием- ники импульсов 80
PUSK Рисунок 4.15 - Схема фиксации включения катушки реле Y2 с помощью обмоток S и R Эта схема работает как классический RS-триггер: при кратко- временном нажатии кнопки PUSK срабатывает катушка S, которой присвоим имя Y1, и своим контактом Y1 включает нагрузку-катушку реле Y2. Выключить реле Y2 можно только нажатием кнопки STOP. Одновременное нажатие на PUSK и STOP как и в классиче- ском RS-триггере недопустимо. Следует заметить, что катушкам R и S присвоено одно и то же имя! В нашем примере Y1. Эту же задачу самофиксации можно выполнить и на обычном реле (Рисунок 4.16). а b Рисунок 4.16 - Схемы управления катушкой X с самофиксаци- ей состояния При кратковременном нажатии на кнопку S1 происходит сра- батывание реле X, которое своим контактом X фиксирует это состоя- ние. Отключение реле X возможно только нажатием на кнопку R1. «Бестолковый» оператор может нажать сразу две кнопки S1 и R1. Что происходит в этом случае? В схеме (Рисунок 4.16 а) катушка X отключится (если она бы- ла включена) или останется не включенной. В схеме (Рисунок 4.16 Ь) 81
катушка X включится (если она была отключена) или останется включенной. В CoDeSys этим схемам созданы соответствующие аналоги: RS-триггер с доминантой выключения - для схемы (Рисунок - 4.16а) и SR-триггер с доминантой включения - для схемы (Рисунок - 4.16b), которые будут рассмотрены ниже. 4.6 Исследование СЛУ в режиме эмуляции Итак, исходную РКС по рисунку 2.2 запрограммировали в CoDeSys на языке LD и представили её в виде многоступенчатой схе- мы (Рисунок 4.10). Теперь необходимо проверить выполнение запла- нированных условий срабатывания и отсутствие ложных включений исполнительных элементов. Все это можно выполнить в режиме эмуляции, не используя реальные аппаратные средства и сам ПЛК. Для этого: - Наводим курсор на Online, щелкаем 1ЛКМ. Открывается ме- Рисунок 4.17 - Меню Online: а - в оригинале; б - русскоязычная версия 82
- Смещаем курсор к строке Simulation Mode (Режим эмуляции), щелкаем 1 раз ЛКМ. Перед этой строкой появится «галочка» >/, что свидетельствует о готовности нашей программы к «диалогу». И в дальнейшем при работе с этой схемой даже в случае внесения в неё изменений, дополнений повторять эту операцию не надо. - Снова открываем это меню. Щелкаем 1ЛКМ по строке Login (подключение). Левая вертикальная «шина питания»; размыкающие контакты реле; участки цепей от этой шины до какого-то «непроводя- щего» в этом положении элемента цепи (например, замыкающего кон- такта) окрашиваются в синий цвет. Возможна ситуация, когда после щелчка 1 ЛКМ по Login от- кроется со «звоном» окно (Рисунок 4.18), которое извещает о допу- щенной ошибке в программе. Возможно, забыли присвоить имя како- му-то компоненту или снять ??? на входе того или иного FB (что будет рассмотрено ниже). В любом случае, не внеся требуемые коррективы, двигаться дальше нельзя. Рисунок 4.18 - Сигнальное окно Будем считать, что в нашей схеме нет ошибок (или мы их уже устранили). - Опять открываем меню Online и щелкаем 1ЛКМ по строке Run (Старт). В этом случае катушки, оказавшиеся в проводящей цепи, сра- ботают (станут синими), и возможно некоторые цепи «заработают». Например, «оживут» генераторы по рисунку 4.14, если бы кнопки Sin S2 были бы изначально представлены размыкающими контактами. В схеме по рисунку 4.10 таких цепей нет. 83
Схема готова к приему входных сигналов. Можно приступить к её исследованию. В нашей схеме три приемных элемента SB, SL и SK и восемь комбинаций их состояний (таблица 2.2). - Начнем с первой строки. А = 0; В = О, С = 0, т. е. SB, SL и SK не сработали. Открываем меню Online и щелкаем 1 ЛКМ по строке Write Values (записать значения). Убеждаемся, что М и HL не сработа- ли, о чем свидетельствует не изменившийся их вид. - Переходим ко второй строке таблицы. Должен сработать дат- чик SK. Наводим курсор на контакт SK, щелкаем 2ЛКМ. В полости этого контакта появится синий квадратик. Открываем меню Online и щелкаем 1 ЛКМ по Write Values. Контакт SK и катушка С и вся третья цепь зальются синим цветом. Как и следовало ожидать, М и HL не сработали. Далее можно поступать по-разному. Если в таблице состо- яний больше различных комбинаций, и чтобы не пропустить ни одной из них для выявления возможности ложных срабатываний исполни- тельных элементов, следует двигаться строго по таблице состояний. Для этого необходимо «разомкнуть» контакт SK и «замкнуть» SL, т. е. создать комбинацию приемных элементов по третьей строке таблицы 2.2. Для этого наводим курсор на SK, щелкаем 1ЛКМ. В по- лости контакта появится зеленый квадратик и останется часть синей заливки. Наводим курсор на SL, щелкаем 1 ЛКМ. Контакт заливается синим цветом. Открываем меню Online, щелкаем 1 ЛКМ по Write Val- ues. Убеждаемся, что не сработал М, и включилась катушка HL. И так проходим последовательно по всем строкам таблицы состояний. В случае исследования такой простой СЛУ (как в нашем при- мере) можно сразу проверить только условия срабатывания исполни- тельных элементов, создавая «замыкание» и «размыкание» соответ- ствующих входных элементов SB, SL и SK по вышеописанной мето- дике. Можно также, приступая к исследованию реакции СЛУ на сле- дующую комбинацию состояний приемных элементов, вернуть схему в исходное состояние (А = О, В = 0 и С = 0). Для этого достаточно щелкнуть 1ЛКМ по K9(Logout), т. е. от- ключить режим Online. Затем, по освоенной уже методике, запустить режим эмуляции, создать требуемую комбинацию состояний прием- ных элементов и, нажав 1ЛКМ по Write Values, зафиксировать поведе- ние исполнительных элементов. При большом количестве цепей многоступенчатой схемы нет возможности видеть ее на мониторе целиком даже при самом малом 84
масштабе. Поэтому перед нажатием 1 ЛКМ на Write Values можно, пользуясь прокрутками, переместить интересующий нас участок схе- мы в поле зрения и лишь потом запустить ее. 4.7 Триггеры R_TRIG и FJTRIG или детекторы импульсов отличаются лишь реакцией на изменение входного сигнала. Первый из них формирует на выходе Q одиночный импульс по переднему фронту сигнала, по- ступающего на его вход CLK, а другой - по заднему фронту или спаду (Рисунок 4.19). Самый простой способ переноса в цепь этих FB - щелкнуть 1ЛКМ по К28 или К29. Появившиеся ??? над этими блоками запраши- вают присвоение идентификатора (и. 4.2). Поближе с этим FB познакомимся после освоения работы с таймерами. Рисунок 4.19 - Изображение детекторов импульсов и их вре- менные диаграммы: а - для R_TRIG; б - FTRIG RS- и SR-триггеры, как уже отмечалось в и. 4.5, по-разному ре- агируют на одновременное поступление сигналов на оба входа: SET и RESET. Напоминаем, что для классического RS-триггера, применяе- мого в электронике, такое состояние входов считается запрещенным, т. к. приводит к неоднозначности выходного сигнала. Временные диа- граммы этих FB изображены на рисунке 4.20. 85
Рисунок 4.20 - Изображение триггеров и их временные диа- граммы Для включения в цепь LD этих FB необходимо щелкнуть 1 ЛКМ по К26. Откроется окно Input Assistant (Рисунок 4.21). Рисунок 4.21 - Выбор папки 86
Подводим курсор к кнопке Bistable Function Blocks, щелкаем 1ЛКМ. Открывается папка с FB (Рисунок 4.22). Рисунок 4.22 - Выбор триггера Выбираем нужный триггер, например, RS. Наводим курсор на строку с его названием, щелкаем 1 ЛКМ. Переводим курсор на ОК, щелкаем 1ЛКМ. RS-триггер появляется в цепи. Помимо ??? над триг- гером, запрашивающих как обычно имя этого FB, возникли ??? на входе RESET 1. Эти ??? по освоенной уже методике следует заменить именем того реле, которое будет производить сброс, т. е. своим замыкающим контактом подавать логическую 1 на вход RESET 1. Сам этот контакт в LD-диаграмме не изображается. Рекомендуем собрать схему с этими триггерами (Рисунок 4.23). 87
Рисунок 4.23 - Многоступенчатая LD-диаграмма для исследо- вания RS- и SR-триггеров В этой схеме XI и Х2 - кнопки запуска триггеров; Y1 и Y2 - кнопки сброса, управляющие катушками Z1 и Z2, замыкающие кон- такты которых (на схеме их нет!) обслуживают входы RESET 1 и RE- SET соответственно. Катушки А и В служат «нагрузкой» для этих триггеров. F1 и F2 - имена RS- и SR-триггеров соответственно. Переводим LD-диаграмму в режим эмуляции и, перебирая возможные комбинации для входных элементов, убеждаемся в право- мочности временных диаграмм, изображенных на рисунке 4.20. 4.8 Таймеры Время - это тот самый третий аргумент, которому не нашлось места в бинарной алгебре Буля. Большинство же технологических процессов по своей сути разбиты на временные интервалы, чередую- щиеся события, что и легло в основу самого определения событийно управляемой логики. Для формирования этих временных интервалов и фиксации событий в CoDeSys применяются в основном три типа тай- меров: TP, TOF и TON (рисунок 4.24). 88
999 IP Q--- ET — 999 TP-шй мер или генерал up единично!" импульса с за 141 НОм и • Л iv 1*1 IJHT it НОС1МО 1 Oh-i ай мер с галер ж вой выключения ТОХ-твймср С млержаиЛ ключгиив Рисунок 4.24 - Виды таймеров У этих таймеров есть вход IN для логических сигналов, вход рТ для установки требуемых параметров, логический выход Q и выход ЕТ (в WORDe). Работу этих таймеров поясняют временные диаграммы. Пока- жем лишь временные диаграммы входных и выходных сигналов (Ри- сунок 4.25). Рисунок 4.25 - Временные диаграммы таймеров 89
Из этих диаграмм следует, что TP-таймер запускается мгно- венно передним фронтов входного сигнала и в течение времени Тим действия выходного сигнала не реагирует на новые импульсы, посту- пающие на вход IN. TOF-таймер также срабатывает по фронту входа IN. Выход Q сбрасывается после спада входного сигнала с задержкой времени Т3, установленной по входу РТ. Пауза между входными сигналами долж- на быть не меньше времени задержки. TON-таймер срабатывает по переднему фронту входа IN, но сигнал на выходе Q появится с задержкой Твк, установленной по входу РТ. Таймер не реагирует на импульсы продолжительностью менее значения Твк. Для включения в цепь этих таймеров можно щелкнуть 1 ЛКМ по К26. Откроется окно (Рисунок 4.21). Подводим курсор к кнопке Timer, щелкаем 1ЛКМ. Открывается папка с перечислением FB. Под- водим курсор к строке с нужным таймером; щелкаем ШКМ. Затем направляем курсор на ОК и нажимаем 1 ЛКМ. Таймер появился в це- пи. TON-таймер можно сразу включить в цепь, щелкнув ШКМ по кзо. При включении любого таймера в цепь многоступенчатой схе- мы программа запрашивает кроме имени этого FB (вопросительные знаки над таймером) временную уставку по входу РТ (вопросительные знаки у входа РТ). Щелкнув ШКМ по верхним ???, присваиваем имя. Например N1. Щелкнув по ??? у входа РТ, нажав и не отпуская клавишу Shift, нажать Т, затем #. Отпустить Shift, набрать требуемое значение за- держки (например, 15), единицу времени (например, S - т. е. секунды) и Enter. Фрагмент схемы будет выглядеть, как показано на Рисунок 4.26. Рисунок 4.26 - Фрагмент схемы с TON-таймером после сня- тия ??? 90
Временные уставки задают в миллисекундах (mS), секундах (S), минутах (т) или часах (h). На выходе ЕТ можно получать информацию о текущем значе- нии уставки РТ с момента срабатывания таймера. С этой целью при написании программы наводим курсор на выход ЕТ, щелкаем 1ЛКМ. Появляется мерцающий курсор. Вбиваем идентификатор этого выхо- да, например, f (Рисунок 4.26). Нажимаем Enter. Открывается окно объявления переменной (Рисунок 4.4). Подводим курсор к кнопке (в конце строки с типом переменной BOOL), щелкаем 1ЛКМ. Открыва- ется окно Input assistant (Рисунок 4.27). Щелкаем 1ЛКМ по TIME, по- том ОК. Теперь после срабатывания таймера на выходе ЕТ можно наблюдать эмуляции изменение уставки Рисунок 4.27 - Окно Input assistant Наличие таймера не вызывает задержки в прогоне программы. Сделаем небольшое, но весьма важное отступление от хода нашего изложения. Тем более, что полученные сведения уже позволя- ют экспериментально проверить достоверность нижеследующего по- ложения. 91
Как отмечалось в п. 4.1, есть кажущаяся схожесть РКС- и LD- диаграмм. Однако есть принципиальное отличие: в РКС параллельные цепи получают питание одновременно, а в LD «чтение», т. е. сканиро- вание многоступенчатой схемы выполняется последовательно слева направо и сверху вниз. Поэтому, если какое-то реле в цепи изменит свое состояние, то цепи расположенные ниже получат новое значение переменной сразу, а цепи, находящиеся выше, - только в следующем цикле прогона программы. Соберем схемы по рисунку 4.28. F1 Рисунок 4.28 - Опытные схемы Отличие этих схем лишь в расположении S и R катушек реле Y1, т. е. с «позиций» РКС эти схемы идентичны (на пятую цепь, пока- занную пунктиром, пока не обращаем внимания). Сначала испытаем в режиме эмуляции схему по 4.28а, соблю- дая последовательность по и. 4.6, «Нажимаем» кнопку Pusk. Сработала катушка реле X. Мгновенно замкнулся его контакт в четвертой цепи. Через детектор переднего фронта F2 пришел очень короткий импульс на R-катушку реле Y1. В следующем цикле замкнулся контакт X в первой цепи и через F1 вызвал срабатывание катушки S реле Y1. Реле сработало и своим контактом во второй цепи включило катушку вооб- ражаемой нагрузки Motor. Повторяем опыт с другой схемой (без пятой цепи). После ко- манды Pusk сработало только реле X. Так как после срабатывания X, замыкается его контакт в четвертой цепи и короткий импульс посту- 92
пает на катушку S (с именем Y1). Настолько короткий, что заменить ее срабатывание не удается. В том, что срабатывание все-таки имело место легко убедить- ся, добавив пятую цепь с еще одной катушкой S'. (Но с другим, разу- меется, именем. Например, Y2). Вторую катушку R этого реле не ис- пользуем. Просто для возврата схемы в исходное состояние можно воспользоваться кнопкой К9 ( Прогон программы закончен и начинается новый цикл. Сраба- тывает контакт X в первой цепи и короткий импульс, формируемый детектором F1, поступает в катушку сброса R реле Y1. Замыкающий контакт Y1 во второй цепи останется разомкну- тым, и катушка реле Motor, имитирующего исполнительный элемент какой-то СЛУ, не сработает. Схема 4.286 позволяет поставить еще один интересный опыт. Для этого снова запрограммируем LD-диаграмму, заменив R_TRIG Fl и F2 на TP-таймеры. Сначала временные уставки по входам РТ этих FB сделать равными. Например, по Т j = Т2=50 мс. Переводим схему в режим эмуляции. Производим Pusk. Как и следовало ожидать, схема сработает по вышеописанному алгоритму. (Действительно, TP-таймер при малых временных уставках подобен детектору переднего фронта входного сигнала). Но в этом случае легко заметить кратковременные срабатыва- ния реле Yin нет необходимости в пятой цепи. Далее начинаем уменьшать на 5-10 мс уставку по входу РТ таймера в первой цепи (или увеличивать с таким же интервалом уставку второго TP-таймера). После каждой коррекции повторяем Pusk. Опыт продолжаем до тех пор, пока не сработают все цепи. В этом случае картина изменится. Как только разница во временных уставках Тх и Т2 первого и соответственно второго таймера превысит продолжительность цикла сканирования, наблюдается следующая картина. После команды Pusk срабатывает катушка реле X (третья цепь) и своим контактом X в четвертой цепи запускает TP-таймер, который в течение t2 мс будет держать «под напряжением» катушку S реле Y1. Цикл сканирования на этом заканчивается, и начинается новый прогон программы. Срабатывает контакт X в первой цепи, запускается TP-таймер, который в течение Т2 мс будет держать «под напряжени- ем» катушку сброса R реле Y1. 93
Если период Т2 еще не закончился, то наступает пауза запре- щенного состояния для Y1: на его катушки S и R поступают сигналы. Но если эта пауза не превышает продолжительность цикла, то заме- тить на мониторе некорректность предложенной программы нельзя. (Мы не ставим задачу получить красивую программу). Зато этот при- мер позволяет оценить продолжительность прогона программы, т. к. минимальная разность Т2 - Тр при которой произошло срабатывание катушки Motor, будет равна удвоенному интервалу циклу сканирова- ния (но только не самого ПЛК, a Windows эмулятора, привязанного к тактам системного таймера, используемого в работе с ПК). Продолжим исследование таймеров. Соберем схему генератора с регулируемой длительностью им- пульса и паузы, как показано на рисунке 4.29 [2]. Собственно сам генератор собран на двух таймерах, которым присвоены имена Impulse и Pausa, и реле X. Первая цепь предназначена для пуска и остановки генератора. Реле X является отдаленным аналогом поляризованного двух- обмоточного электромагнитного реле. Поэтому эти «обмотки» в LD расположены в разных цепях, но имеют одинаковый идентификатор (в Рисунок 4.29 - Генератор импульсов В первую цепь введен таймер TON, чтобы при исследовании схемы в режиме эмуляции после команды «PUSK» с экрана монитора исчезло окно меню Online, частично закрывающее многоступенчатую схему, и исследователь мог в течение 5 с «собраться с мыслями». Таймер с именем «Impulse» определяет длительность импуль- са, а таймер «Pausa» - длительность паузы. Естественно, можно при- своить и другие имена и уставки по времени. 94
Теперь можно собрать схему для исследования таймеров (Ри- сунок 4. 30). Первая цепь служит для запуска уже известного нам генерато- ра, занимающего 2-ю и 3-ю цепи. Кнопки DI, D2 и D3 для поочередно- го подключения исследуемых таймеров TON, TOF и ТР. Факт сраба- тывания таймеров можно наблюдать в режиме эмуляции за изменени- ем состояний катушек реле Yl, Y2 и Y3. Временные параметры гене- ратора (Т1 - длительность импульса, Т2 - паузы) и исследуемых тай- меров (ТЗ, Т4, Т5) нужно будет менять. Рисунок 4.30 - Схема исследования таймеров Естественно, временные параметры следует задавать в секун- дах, чтобы заметить реакцию катушек Yl, Y2 и Y3. Например, установим Т1 = 5 с, Т2 = 3 с, ТЗ = 8 с. Включаем PUSK и кнопкой D1 таймер TON. Таймер не сработает, т. к. Т1 < ТЗ (Рисунок 4.25). Устанавливаем Т1 = 8 с, Т2 = 3 с и ТЗ = 8 с. Таймер также не сработает, т. к. Т1 = ТЗ. Новая установка: Т1 = 10 с; Т2 = 3 с; ТЗ = 8 с. Таймер TON сработает, т. к. Т1>ТЗ, и Y1 начнет «мигать» синим цве- 95
том, что можно еще раз показать на временной диаграмме (Рисунок 4.31). Рисунок 4.31 - Временные диаграммы работы TCW-таймера D Подобные опыты поставить для TOF и ТР и убедиться в спра- ведливости выводов в и. 4.8 или рисунке 4.25. Схема с применением всех таймеров и детекторов импульсов. Завершая этот раздел, рекомендуем собрать схему (Рисунок 4.32) с применением всех таймеров и детекторов импульсов. Чтобы на экране монитора в цепи поместились все элементы схемы, необходимо по мере ее заполнения делать «прокрутку» влево (на рисунке 4.32 пришлось сделать «перенос» цепи). Рисунок 4.32 - Учебная схема Запустить схему в режиме эмуляции, построить временную диаграмму изменения состояний ее элементов, учитывая, что выход- ной сигнал одного FB служит входным для следующего за ним. Объ- яснить реакцию каждого элемента, а также влияние соотношения зна- чений Т2 и ТЗ на поведение системы в целом, воспользовавшись ри- сунком 4.33. Напоминаем, что наличие сигнала на выходе какого-либо эле- мента подтверждается синим цветом канала, соединяющего этот вы- ход с входом следующего блока. Пользуясь горизонтальной прокрут- 96
кой, можно перемещать в поле зрения оператора интересующий его участок цепи. На выходе FB В и Е ввиду малой длительности импульса заме- тить кратковременное изменение цвета затруднительно, особенно при масштабе менее 100 %. и Рисунок 4.33 - Временные диаграммы состояний элементов учебной схемы 4.9 Счетчики Можно привести немало технологических процессов, для управления которыми необходимо вести подсчет чего-либо. Напри- мер, бутылок с минеральной водой, перемещаемых конвейером для последующей упаковки в ящик. Возможно, при этом надо с помощью какого-то датчика выявлять в потоке некондиционные бутылки, от- 97
правлять их в сторону и тоже вести их учет. Для решения подобных задач в ПЛК применяются различные виды счетчиков. CTU инкрементый, CTD декрементный и CTUD инкремент - ный/декреметный счетчики. Соберем простую схему с CTU-счетчиком (Рисунок 4.34). Рисунок 4.34 - Схема с CTU-счетчиком После переноса счетчика в цепь многоступенчатой схемы по- явятся ??? над блоком, на входах RESET и PV. Знаки ??? над блоком, заменяем именем. Знаки ??? перед PV запрашивают значение уставки, т. е. требуемое количество импульсов, вызывающее срабатывание счетчика, при котором выход Q перейдет в TRUE (при условии, что на входе RESET был сигнал FALSE). Вход RESET знаками ??? запрашивает имя логического эле- мента, от которого должен поступить сигнал TRUE, останавливающий счет, обнуляющий выход CV и устанавливающий на выходе Q FALSE. С выхода CV можно в WORDe снимать значение накопленных сигналов. Для этого по полной аналогии с приемами активации выхода ЕТ у таймеров активируем выход CV, присваиваем имя и т. д. Но в окне Input assistant (рисунок 4.27) выбираем переменную WORD. Теперь в режиме эмуляции при запуске этой схемы на выходе CV будет в нарастающем порядке высвечиваться количество посту- пивших на данный момент импульсов на вход CU. В схеме (рисунок 4.34) счетчику присвоено имя W, входу RE- SET -имя реле 1рыходу CV -Ln принята уставка PV = 100. Само реле Инаходится в третьей цепи и управляется кнопкой U. Первая цепь содержит кнопку PUSK и генератор импульсов на реле X (рисунок 4.14а). По каждому фронту сигнала, поступающему на вход CU, зна- чение выхода CV возрастает на 1 и как только их сумма достигнет 98
значения PV, выход Q переходит в TRUE, срабатывает реле Y. Но счет не останавливается. Для остановки счета и обнуления CV необходимо нажать кнопку U. Кстати, эта схема (Рисунок 4.34) также позволяет оценить вре- мя прогона программы. Достаточно секундомером замерить время от момента пуска генератора до момента срабатывания реле Y. Период импульсов генератора равен удвоенной длительности рабочего цикла. Количество же циклов известно и равно уставке PV. Вместо секундо- мера можно воспользоваться любым таймером с активированным вы- ходом ЕТ и уставкой РТ, заведомо превышающей предполагаемое время накопления импульсов, количество которых задано по входу PV. Для этого следует создать дополнительную четвертую цепь (Рису- нок 4.35) и в момент срабатывания реле Y снять показания на выходе ЕТ. (Катушка не потребовалась). I PUSK F TON TWOs-OT ЕТ-М Рисунок 4.35 - Дополнительная цепь к схеме по рисунку 4.34 CTD -счетчик отличается от СП тем, что каждый входной им- пульс уменьшает значение счетчика на 1. Когда счетчик достигнет ну- ля, выход Q устанавливается в TRUE. Важный момент! Счетчик CTD загружается значением устав- ки, равным PV, только когда на входе LOAD есть сигнал TRUE. Мож- но собрать схему с CTD-счетчиком (Рисунок 4.36). Рисунок 4.36 - Схема с CTD-счетчиком 99
Кнопка PUSK запускает генератор X (для разнообразия собран по схеме, отображенной на рисунке 4.14 Ь). Счетчику присвоили имя Q, входу LOAD - h, входу CV-N. По умолчанию принято, что реле, управляющие счетчиками сти и сто имеют на входах RESET И LOAD соответственно замыка- ющий контакт. В схемах (Рисунок 4.33 и 4.36) это реле h. Но, учиты- вая отличие счетчика CTD, лучше в схеме (Рисунок 4.33) установить размыкающую кнопку U. Тогда при включении схемы сразу сработает реле h и подаст сигнал TRUE на вход LOAD, что обеспечит загрузку выхода CV начальным значением PV (в нашем примере 50). В этом положении имя переменной h на вход LOAD окрашено в синий цвет. «Нажимаем» кнопку PUSK, начинает работать генератор X, на вход CD поступают импульсы. Но счетчик не активирован. На выходе Q имеем FALSE. «Размыкаем» кнопку U. Реле h отключается, на вход LOAD приходит сигнал FALSE, активируется счетчик и начинается обрат- ный отсчет на выходе CV. Как только CV = 0, счетчик остановится, на выходе Q сигнал становится TRUE, срабатывает реле Y. Новый отсчет начнется после повторного замыкания и размы- кания кнопки U. Для простых логических систем применение рассмотренных счетчиков практически равноценно. Дело вкуса проектировщика в вы- боре того или иного FB. Кроме того, после срабатывания CTU- счетчика (Q = 1) счет импульсов по входу CU будет продолжаться, и это можно проконтролировать по выходу CV. В счетчике CTD после обнуления выхода CV все поступающие на вход CD сигналы будут потеряны. CTUD - инкрементный/декрементный счетчик по фронту сиг- нала на накопительном входе CU увеличивается на 1. По фронту же сигнала на вычитающем входе CD уменьшается на 1 (вплоть до 0 в WORDe). Если на входе RESET = 1, то счетчик CV обнуляется. По зна- чению входа LOAD = 1 счетчик загружается значением, равным PV. На выходе CV по аналогии с вышерассмотренными счетчиками можно контролировать в WORDe изменение результата счета. Выход QU = 1, если CV > PV, иначе QU = 0. Выход QD = 1, если CV = 0, иначе QD = 0. Рекомендуем собрать более сложную схему для ознакомления со счетчиком CTUD (Рисунок 4.37). 100
Схема по рисунку 4.37 практически не нуждается в коммента- риях, т. к. они сделаны на русском языке в поле каждой цепи, (п. 4.2). Тем не менее уточним некоторые положения. Первые две цепи служат для формирования импульсов как для суммирующего входа CU с помощью кнопки PLUS и контакта XI, так и на вычитающем входе CD с помощью кнопки MINUS и контакта Х2, «присутствие» которого в схеме обозначено лишь его именем. Рисунок 4.37 - Схема для испытания CTUD-счетчика 101
Некоторое усложнение этих цепей будет оправдано упрощени- ем процедуры генерирования одиночных импульсов для входов CU и/или CD (разумеется, при испытаниях в режиме эмуляции). Действи- тельно, катушки реле XI и Х2 будут кратковременно срабатывать как при «замыкании» кнопок PLUS или MINUS (за счет R_TRIG Fl или F3), так и при их размыкании (благодаря F_TRIG F2 или F4). Идентификация бинарного выхода QD выполняется по той же методике, что и присвоение имен входам CD, RESET и LOAD. Значение уставки PV намеренно взято небольшим, чтобы не утруждать исследователя многократными операциями с кнопками PLUS и MINUS. Эта схема позволяет сделать выводы: Выход CV загружается значением PV лишь после нажал на кнопку SBROS_2. Выход QU примет значение TRUE при CV = PV, и значение CV будет нарастать при дальнейшем поступлении ш пульсов на вход CU. (В ПЛК других производителей бывает CTUD-счетчики, прекра- щающие в этом случае дальнейшее накопление сигналов). Выход CV обнуляется в любой стадии счета после нажата кнопки SBROSJ. Если выход CV доведен до 0, то дальнейшее поступление им- пульсов на входе CD не подсчитывается. При одновременном поступлении импульсов на входы CU CD происходит увеличение CV, т. е. сигнал на вычитающем входе теряет- ся. Поэтому если для CTU- и CTD-счетчиков длительность подсчиты- ваемых импульсов не критична, то для CTUD-счетчика время дей- ствия сигналов на входах CU и CD не должно превышать продолжи- тельность цикла сканирования, т. к. может сложиться ситуация, рас- смотренная в и. 4.8. Полученные навыки позволяют теперь реализовать на языке LD ранее спроектированную СЛУ (Рисунок 2.3) и представленную в виде многоступенчатой схемы на рисунке 4.38. Два реле времени Е1 и Е2 обеспечивают заданный алгоритм управления: Все вкл - отключен нагреватель - все отключено на уста- новленные промежутки времени. 102
0001 Кнопка пуска ss rz 0002 Датчик тенперотуры ЯС * оооз Датчик п*п давления янг 0004 Датчик так Давления зн? ° 0005 Цепь йклочения электродбигателя 0006 Цепь йкяочечия эясктроногребателя а Реле времени №1 0006 где Т| - время цикла насоса, Т = 20 с; Т2 - время паузы, Т = 10с. Рисунок 4.38 - СЛУ с функцией времени на языке LD 103
5 СОДЕРЖАНИЕ И ТЕМАТИКА КУРСОВЫХ РАБОТ 5.1 Содержание и тематика курсовой работы Курсовая работа по изучению, анализу и расчетам статических и динамических характеристик элементов и систем автоматики должна быть посвящена САУ сельскохозяйственных технологических процес- сов. Примерная тематика курсовых проектов: 1. Принципиальные схемы автоматизации животноводческо- го объекта (коровника, птичника, телятника и т.д.); 2. Принципиальная схема автоматизации растениеводческо- го объекта (теплицы, участки полива и т.п.); 3. Исследование характеристик элементов автоматики (дат- чики, объекта, исполнительного элемента, регулятора и т.д.) Рекомендуется следующее содержание курсовой работы. Техническая и технологическая характеристика объекта ав- томатизации: - состав объекта автоматизации; - технологические схемы с трубопроводами и коммуникациями; - значение контролирующих и регулирующих параметров (тем- пература, влажность, расход и т.д.) требования к жесткости контроля и качеству автоматического регулирования; - схемы энергоснабжения производства (электроэнергией, теп- лом, водой, газом, сжатым воздухом и т.д.) Изучение функциональных технологических схем автома- тизации: - изображают и подробно описывают функциональную схему автоматизации; - проводят описание отборных устройств, преобразователей, приборов и средств контроля и сигнализации; - выделяют и описываю контуры контроля и сигнализации; - выделяют и описывают контуры регулирования. Изучение функциональных электрических схем автомати- зации: - изображают и подробно описывают функциональные электри- ческие схемы автоматизации; 104
- приводят описание элементов и работу силовых схем и схем контроля и управления. Описание и идентификация объекта автоматизации: - указывают назначение объекта, его основные технические дан- ные и параметры; - приводят математическое описание (статические и динамиче- ские характеристики, передаточные функции, АЧХ, ФЧХ, АФЧХ,ЛАФЧХ) объекта автоматизации. Составление и описание структурных схем: - изображают и описывают структурные схемы главного контура регулирования; - строят частотные характеристики АЧХ, ФЧХ, ЛАХ, ЛФК; - описывают свойства элементов САУ по их частотным характе- ристикам. Исследование выделенного контура регулирования с регу- ляторами: - исследование устойчивости по годографу Найквиста- Михайпова; - исследование устойчивости по логарифмическим частотным характеристикам; - определение запаса устойчивости по амплитуде и фазе и пока- зателя колебательности переходного процесса «И». Коррекция САУ Под коррекцией САУ понимают изменение ее структурных схем с целью обеспечения устойчивых с требуемыми показателями качества процессов. Коррекция САУ достигается посредством введе- ние в систему дополнительных, так называемых, корректирующих элементов, охватывающих один или несколько элементов исходной системы. Коррекция может быть последовательной и с использовани- ем «ОС» - параллельной. В результате коррекции регулятор работает с опережением, улучшая качество переходного процесса за счет учета скорости его развития, т.е. увеличивает быстродействие системы и запас устойчи- вости [5]. 105
Объем курсовой работы Пояснительная записка (ПЗ) 20 - 25 страниц текста на листах формата А4 и графическая часть на одном листе формата А1 [5]. ПЗ должна содержать: Введение 1 - Основная часть 1.1 Производственная и техническая характеристика объекта регулирования; 1.2 Функциональная технологическая схема автоматизации (принципиальная); 1.3 Функциональная электрическая схема автоматизации; 1.4 Описание и идентификация объекта управления. Расчетная часть I Составление и описание структурной схемы главного контура автоматизации: 1 Идентификация передаточной характеристики контура авто- матизации; 2 Расчет и построение характеристик САУ (АФЧХ, ЛАЧХ, ЛФЧХ); 3 Расчет устойчивости по годографу Михайлова - Найквиста и определение запаса устойчивости с «П» регулятором; 4 Коррекция САУ с целью увеличения запаса устойчивости и уменьшение статической погрешности. П Устройство и принцип действия датчика основного контура автоматизации: 1 Общий вид датчика. Диапазон, точность; 2 Градуированные характеристики; 3 Динамические свойства. Примечание. Контур регулирования может быть составлен с «И», «ПИ», «ПД» или «ПИД» регуляторами, для которых подбирается соответствующий способ коррекции. Заключение (общие выводы) В конце ПЗ помешают заключение по курсовой работе, где приводят основные положения разработки и показатели, которые были достигнуты в работе. Вместо курсовой работы по согласованию с кафедрой к защите может быть представлена соответствующим образом оформленная 106
научная студенческая работа, если она по своей тематике и объему соответствует курсовой работе. ПЗ и графический материал по КР выполняется в соответствии с ГОСТ ЕСКД. Содержание графической части: 1. Общая функциональная схема автоматизации; 2. Электрическая схема автоматизации; 3. Годографы Михайлова-Найквиста и ЛАЧХ; 4. Виды переходных процессов; 5. Общий вид датчика и его характеристики. Примечание. Часть графического материала может быть вы- полнена по месту в пояснительной записке. Заключение (общие выводы) В конце ПЗ помещают заключение по курсовой работе, где приводят основные положения разработки и показатели, которые были достигнуты в работе. Вместо курсовой работы по согласованию с кафедрой к защите может быть представлена соответствующим образом оформленная научная студенческая работа, если она по своей тематике и объему соответствует курсовой работе. ПЗ и графический материал по КР выполняется в соответствии с ГОСТ ЕСКД. Содержание графической части: 1. Общая функциональная схема автоматизации; 2. Электрическая схема автоматизации; 3. Релейная схема СЛУ; 4. Схема СЛУ на языке LD. 5.2 Содержание и тематика дипломной работы для ба- калавров по автоматике Дипломные проекты (ДП) по автоматизации сельскохозяй- ственного производства должны раскрывать содержание и методы ав- томатизации объектов и устройств сельскохозяйственного производ- ства в конкретном хозяйстве. Примерно темы формулируются так: 1. Автоматизация технических процессов в гидропонных теп- лицах (адрес хозяйства); 107
2. Автоматизация котельной на твердом топливе в...(адрес хо- зяйства); 3. Автоматизация животноводческих объектов для обеспечения микроклимата, отопления, водоснабжения и т.п.; 4. Автоматизация технических установок по производству и переработке кормов и т.п.; 5. Исследование характеристик современных средств автома- тизации. ДП должна состоять из пояснительной записки (ПЗ) и графи- ческой части (ГЧ). ПЗ не должна превышать 75 страниц текста, вклю- чаю необходимые иллюстрации. Ее содержание может быть построено по следующей схеме. Содержание Введение 1. Исходные данные для проектирования систем автоматиза- ции 1.1 Производственно-хозяйственная характеристика объ- екта автоматизации (или хозяйства, и/я, где находится объект). 1.2 Техническая и технологическая характеристика объек- та автоматизации. 1.3 Цель и задачи ДП. 2 Описание и исследование систем автоматизации технологи- ческих процессов на объекте. 2.1 Описание объекта автоматизации технологического оборудования и технологического процесса 2.2 Описание функциональных технологических схем ав- томатизации. 2.3 Описание электрических схем автоматизации со схе- мами соединений и подключения. 2.4 Разработка и исследование структурных схем автома- тизации 2.5 Выделение главного контура регулирования и его опи- сание 3 Разработка специального вопроса по исследованию устойчи- вости и качества переходных процессов в САР 3.1 Исследование устойчивости контура САР с «П», «И», «ПИ», «ПД» и «ПИД» регуляторами по годографу Найквиста - Ми- хайлова и Л.А.Ф.Ч.Х. 108
3.2 Расчетная часть - проектирование основного контура СЛУ; - синтез комбинированной СЛУ на релейных элементах; - проектирование СЛУ на языке LD; - выбор ПЛК и схемы подключения - перенос программы базовую ЭВМ и ПЛК [7]; - визуализация и эмуляция системы управления. 4 Мероприятия по охране труда или расчеты системы заземле- ния, ЧЗО и т.д. 5 Технико-экономическое обоснование (ТЭО) 6 Заключение (общие выводы) 7 Литература (20 и более источников) Примерный перечень графического материала к дипломным работам: - технологические схемы объекта автоматизации; - принципиальные общие и электрические схемы контроля, сигнализации, управления и защиты; - схемы электропитания, соединений и подключений; - мнемонические схемы; - чертежи щитов, пультов, станций управления и другого не- стандартного управления; - чертежи установки и крепления датчиков, приборов контроля и сигнализации на технологическом оборудовании, щитах и пультах; - функциональные и структурные схемы САУ; - принципиальные и другие схемы автоматических устройств, разработанные по требованию службы охраны труда и ТБ; - принципиальные и другие схемы, а также чертежи нестан- дартного оборудования и др. - схеме СЛУ на релейных элементах и языке LD; - схемы подключения ПЛК; - визуализация и эмуляция на ЭВМ. 5.3 Содержание и тематика ВКР работы для магистров по автоматике Проект по автоматизации сельскохозяйственного производства должны раскрывать содержание и методы автоматизации объектов и устройств сельскохозяйственного производства в конкретном хозяй- стве. 109
Примерно темы формулируются так: 1. Автоматизация технических процессов в гидропонных теп- лицах (адрес хозяйства); 2. Автоматизация котельной на твердом топливе в...(адрес хо- зяйства) ...; 3. Автоматизация животноводческих объектов для обеспечения микроклимата, отопления, водоснабжения и т.п.; 4. Автоматизация технических установок по производству и переработке кормов и т.п.; 5. Исследование характеристик современных средств автома- тизации. Проект должна состоять из пояснительной записки (ПЗ) и гра- фической части (ГЧ). ПЗ не должна превышать 75 страниц текста, включаю необходимые иллюстрации. Ее содержание может быть по- строено по следующей схеме. Содержание Введение 1. Исходные данные для проектирования систем автоматиза- ции 1.1 Производственно-хозяйственная характеристика объ- екта автоматизации (или хозяйства, и/я, где находится объект). 1.2 Техническая и технологическая характеристика объек- та автоматизации. 1.3 Цель и задачи ДП. 2 Описание и исследование систем автоматизации технологи- ческих процессов на объекте. 2.1 Описание объекта автоматизации технологического оборудования и технологического процесса. 2.2 Описание функциональных технологических схем ав- томатизации. 2.3 Описание электрических схем автоматизации со схе- мами соединений и подключения. 2.4 Разработка и исследование структурных схем автома- тизации. 2.5 Выделение главного контура регулирования и его опи- сание. ПО
3 Разработка специального вопроса по исследованию устойчи- вости и качества переходных процессов в САР 3.1 Исследование устойчивости контура САР с «П», «И», «ПИ», «ИД» и «ПИД» регуляторами по годографу Найквиста - Ми- хайлова и Л.А.Ф.Ч.Х. 3.2 Расчетная часть - проектирование основного контура СЛУ; - синтез комбинированной СЛУ на релейных элементах; - проектирование СЛУ на языке LD; - выбор ПЛК и схемы подключения; - перенос программы базовую ЭВМ, отладку и загрузку ПЛК; - произвести отладку программы в свете задач управления (произвести корректировку программного кода с учетом работы ре- ального объекта). 4 Мероприятия по охране труда или расчеты системы заземле- ния, ЧЗО и т.д. 5 Технико-экономическое обоснование (ТЭО) 6 Заключение (общие выводы) 7 Литература (20 и более источников) Примерные перечень графического материала к дипломным работам: - технологические схемы объекта автоматизации; - принципиальные общие и электрические схемы контроля, сигнализации, управления и защиты; - схемы электропитания, соединений и подключений; - мнемонические схемы; - чертежи щитов, пультов, станций управления и другого не- стандартного управления; - чертежи установки и крепления датчиков, приборов контроля и сигнализации на технологическом оборудовании, щитах и пультах; - функциональные и структурные схемы САУ; - принципиальные и другие схемы автоматических устройств, разработанные по требованию службы охраны труда и ТБ; - принципиальные и другие схемы, а также чертежи нестан- дартного оборудования и др. - схеме СЛУ на релейных элементах и языке LD; - схемы подключения ПЛК; - визуализация и эмуляция на ЭВМ. 111
СПИСОК ЛИТЕРАТУРЫ 1. Бородин И.Ф., Кирилин Н.И. Основы автоматики и авто- матизации производственных процессов. - М.: Колос, 2002. - 328 с. 2. Бородин, И. Ф. Автоматизация технологических процессов [Текст] / И. Ф. Бородин, Ю. А. Судник. - М. : Колос, 2005. - 344 с. 3. ГОСТ 21.404-85 Автоматизация технологических процес- сов. Обозначения условные приборов и средств автоматизации в схе- мах; 4. ГОСТ Р 51841-2001 (МЭК 61131-2-92) Программируемые контроллеры общие технические требования и методы испытаний; 5. Калинин Ц.И. Курсовое и дипломное проектирование по автоматике: учебное пособие для бакалавров профиля 110802 «Элек- трооборудования и электротехнологии» / Ц.И. Калинин, Р.А. Куни- цын, А.А. Багаев. - Барнаул.: РИО АГАУ, 2013. - 72 с.; 6. Минаев, И. Г. Программируемые логические контроллеры: практическое руководство для начинающего инженера/И.Г. Минаев, В. В. Самойленко. - Ставрополь: АГРУС, 2009. -100 с. 7. Петров, И. В. Программируемые контроллеры. Стандарт- ные языки и приемы прикладного проектирования. - М.: СОЛОН- Пресс, 2004. - 246 с. 8. Практикум по автоматике. Математическое моделирова- ние систем автоматического регулирования / Под ред. Б.А. Карташова. -М.: колос, 2006.- 184 с. 9. Стефани Е.В. Основы расчета настройки регуляторов теп- лоэнергетических процессов. 2-е изд. перераб.. - М.: Энергия, 1972. - 376 с. 10. Устенко, С. Т. Выполнение электрических схем по Е.С.К.Д. [Текст]: справочник / С. Т. Устенко, Т. К. Каченюк, М. В. Те- рехова. - М.: Изд-во стандартов, 1989. - 325 с.; 11. Филипс Ч.. Харбор Р. Системы управления с обратной связью. - М.: Лаборатория базовых знания, 2001. - 520 с. 12. Францирова Т.А., Востриков А.С. Теория автоматическо- го регулирования. Уч. Пособие. - Новосибирск: Изд-во НГТУ, 2006. - 368 с. 13. www.owen.ru. 14. www.iec.ch. 112