CODESYS для программирования встраиваемых систем
В системах промышленной автоматизации базовым интеллектуальным элементом является программируемый логический контроллер (ПЛК) [1, 2, 3, 6, 7]. С точки зрения программирования главная особенность ПЛК состоит в том, что для работы с ним не требуется образование в области информатики. Инструменты и языки программирования ПЛК должны быть максимально просты и в то же время эффективны. Упрощение использования не должно повлечь за собой ограничение круга решаемых задач.
Рис. Эволюционный набор для PLC Core модулей SYSTEC с системой исполнения и визуализацией CODESYS V3
Для удовлетворения этих противоречивых требований были созданы специальные языки программирования. В 1982 г. вышла первая редакция международного стандарта МЭК61131-3 (далее МЭК). В нем определено пять языков программирования ПЛК: три оригинальных визуальных и два, пришедших из мира компьютеров. Так, к первым относятся языки «релейных схем» (Ladder Diagram, LD), «функциональных блоковых диаграмм» (Function Block Diagram
Создание качественного транслятора языка программирования высокого уровня является сложной и трудоемкой задачей. Для графических языков объем работы увеличивается за счет необходимости создания соответствующего графического редактора и отладчика. Поэтому задача поддержать несколько разных языков в одной программной среде стала серьезной проблемой для многих изготовителей ПЛК. В итоге это привело к возникновению компаний, специализирующихся на создании универсальных сред программирования на языках МЭК. Одной из наиболее успешных оказалась немецкая 3S-Smart Software Solutions GmbH со своим комплексом CODESYS.
CODESYS включает в себя редакторы и трансляторы для всех пяти стандартных языков с рядом существенных расширений. Он также поддерживает значительное число специализированных отладочных и сервисных функций. На сегодня CODESYS — мировой лидер среди МЭК-комплексов. С его помощью ежегодно программируется более полумиллиона контроллеров. После долгих лет горячих споров 18.01.2013 г. была одобрена третья редакция стандарта МЭК 61131-3. В нее вошли оригинальные объектно-ориентированные расширения языков МЭК [4], впервые реализованные в комплексе CODESYS V3. Таким образом, CODESYS создал новый международный стандарт. Описанию его составляющих, приемам эффективной работы и практике применения посвящено несколько книг и множество статей [1, 3, 6, 7, 8, 9].
Аспекты программиста
Чаще всего программисты встраиваемых систем противопоставляют CODESYS интегрированным компиляторам языка С/C++. Попробуем сравнить их технически (результаты сравнения приведены в таблице).
С++ | CODESYS |
1. Трансляция кода/Среда программирования | |
Компиляторы генерируют машинный код с качественной оптимизацией по размеру и быстродействию. Для разных семейств микропроцессоров обычно применяются разные компиляторы. Как правило, обновление версий компиляторов идет независимо от среды программирования. | Встроенные компиляторы генерируют машинный код с оптимизацией по надежности и переносимости. Тысячи разных устройств, на разных микропроцессорах, используют одинаковые компиляторы, что обеспечивает их качество. Обновление компиляторов идет вместе с обновлением среды программирования. Но есть опция выбора версии компилятора. Это позволяет исключить риск при правке старых проектов. |
2. Интерфейс с системным уровнем (API) | |
Функции чтения входов и записи выходов нужно писать в программе. На разных аппаратных платформах интерфейс с системным уровнем разный. Он меняется при замене процессора или ОС. | МЭК-программа работает с образом входов/выходов. Их обслуживает система исполнения. Доступ к специфическим устройствам выполняется через системные библиотеки. |
3. Переносимость | |
Многие функции прикладного кода могут быть использованы повторно. Системно-зависимые интерфейсы нужно адаптировать. | Если набор ресурсов (порты, полевые сети и др.) не изменился, то программа переносится без изменений. Необходимо переконфигурировать ввод/вывод и адаптировать системно-зависимые библиотеки. |
4. Удобство прикладного программирования | |
Естественная среда для компьютерных программистов, чего не скажешь о сервисном персонале. Модификации прикладного кода могут влиять на стабильности системы в целом. Должны выполняться только опытными программистами. | Семь различных языков программирования, включая графические, позволяют программисту создавать код так, чтобы он был понятен прикладным специалистам и обслуживающему персоналу. Программист может выбирать оптимальный язык для разных функций. |
5. Разделение между верхним/прикладным/пользовательским уровнем управляющей программы и системным уровнем | |
Не реализовано. Для понимания работы управляющей программы нужно предварительно иметь представление об организации программного обеспечения в целом. | Правильно организованное МЭК-приложение имеет два или более уровня с четким разделением. Верхний уровень отображает общую структуру и алгоритмы управления. Это позволяет понимать работу системы обслуживающему персоналу, не имеющему специальной подготовки. Внутренние детали приложения скрыты (защищены) в функциональных блоках и библиотеках. |
6. Объектно-ориентированное программирование (ООП) | |
Было сильнейшим аргументом в пользу выбора C++ до выхода CODESYS V3. | Поддержано в CODESYS V3 для всех языков. Позволяет использовать современную технологию организации приложений. |
7. Графический интерфейс оператора (HMI) | |
Возможен. Требует написания дополнительного кода или использования вспомогательных инструментов. Интерфейс отображения должен быть адаптирован для разных устройств вывода. | Встроенный графический редактор с набором типовых элементов отображения и ввода. Для управления графическим элементом нужно ввести наименования переменных программы в соответствующие поля. Визуализация отображается в среде программирования, на графической панели устройства или через Интернет. Способ отображения выбирается в диалоговом окне. |
8. Отладка | |
Среды программирования имеют встроенные отладчики. Дополнительные функции, типа графической трассировки, фиксации значений переменных, не практикуются. | Полная поддержка общепринятых отладочных функций (выполнение по шагам, условные точки останова, стек вызовов и т. д.) на всех языках МЭК. Дополнительные функции для отладки и обслуживания системы в целом (графическая трассировка, менеджер рецептов, фиксация переменных, визуализация). Возможно визуальное моделирование объекта управления. |
9. Реальное время | |
Определяется организацией программы. Зависит от ОС. Может вызвать ограничения при отладке. | Обеспечивается системой исполнения. В прикладной программе усилий не требует. |
10. Поддержка стандартных полевых сетей (Fieldbus) | |
Не включена. Требуется дополнительное ПО, реализующее стек протокола, и отдельный конфигуратор. Стеки аппаратно-зависимы. Конфигуратор (если есть) обычно не интегрирован в среду программирования. Символьное отображение входов/выходов проблематично. | Интегрированные конфигураторы и стеки полевых сетей. Стеки полевых сетей написаны в среде CODESYS и независимы от нижнего уровня. Нужный стек компилируется и линкуется с приложением автоматически. |
11. Специализированный инструментарий для прикладных областей | |
Нужно программировать самим или приобретать дополнительные инструменты. Интеграция обычно требует разделяемой памяти. Контроль движения и логика управляются разными процессами. | Интегрированный механизм сохраняемых переменных. Мониторинг входов и управление выходами без программирования. Специализированные прикладные библиотеки. Встроенная система управления движением (Soft Motion CAM/CNC), 3D-редактор перемещений, интерпретатор G-кодов (ЧПУ). Работает в одном процессе, единая адресация. |
12. Командная работа/управление версиями | |
Большинство сред разработки поддерживают контроль версий. | Поддерживается путем установки специального плагина для интеграции с Subversion. |
13. Быстрое создание/тиражирование однотипных систем | |
Существуют специальные приемы и инструменты, ускоряющие работу программиста. | Пакет CODESYS Application Composer позволяет конструировать приложения с автоматической генерацией надежного кода. Приложение составляется из готовых настраиваемых блоков без программирования. |
14. Поддержка новых стандартов на рынке систем управления | |
Нужно отслеживать и делать самостоятельно, заказывать или приобретать сторонние разработки. | Функционал, соответствующий новейшим мировым стандартам, наращивается постоянно. Например: FDT, OPC UA, EtherCAT, CANopen, PROFINET, ASi и т. д. |
15. Контроль целостности/защита копирования | |
Нет. Реализуется программно. | Встроенная защита модификации кода, уникальный идентификатор проекта. Опционально: шифрование проекта, многоуровневая система прав доступа, сохранение исходных текстов в памяти устройства. |
Как показано в таблице, для человека, имеющего образование по специальности программирование, C/C++ является естественным выбором. Переход к использованию МЭК-языков потребует некоторых усилий по освоению. Обычно начальный дискомфорт в CODESYS вызывает отсутствие главного цикла и функций ввода/вывода, которые полностью «спрятаны» в системе исполнения. Существенно отличается работа с таймерами. Ближе всего к языку C в CODESYS язык ST. Как правило, для его уверенного освоения программисту достаточно нескольких часов [5].
Использование МЭК-языков может не дать явных преимуществ мгновенно. Они проявляются ярко при необходимости пояснения прикладной программы другим людям. В этом смысле весьма эффективна связка языков SFC и ST. Диаграмма SFC визуально представляет интуитивно понятный алгоритм работы, буквально «оживающий» в онлайновом режиме. Действия шагов SFC описываются на привычном высокоуровневом языке ST.
Аспекты руководителя
Некоторые успешные практические применения CODESYS во встраиваемых системах инициировались не техническими специалистами, а менеджментом компании. Чаще всего главной причиной становилась одна из четырех, перечисленных ниже.
Проблема правильной организации работКак правило, в компании есть системный программист с соответствующим образованием. Он начинает с «оживления» платы, установки операционной системы (ОС) или самостоятельной разработки необходимого функционала нижнего уровня. Кажется логичным, чтобы он продолжил работу над системой далее, включая прикладные функции. Ему приходится потратить немало времени на то, чтобы разобраться с прикладной сферой. Будь то газовый котел, система управления яхты, пульт авиационного тягача или что угодно, постепенно он начнет ориентироваться в теме не хуже заказчика. Иногда даже лучше, поскольку вынужден разобраться с причинно-следственными связями и выстроить алгоритмы. В итоге компания приобретает абсолютно уникального специалиста. Работа успешно сдается. Далее становится ясным, что только этот специалист способен сопровождать систему. Его нельзя отвлекать или заменять, нельзя предоставить отпуск или уволить. Компания попадает в зависимость от специалиста.
Рис. Самолетный тягачком пании TREPEL. Вместо обычных рычагов управления он оснащен встраиваемым панельным PC c CODESYS компании Janz Tec
Вначале сам программист рад своей уникальной позиции. По прошествии нескольких лет он замечает, что «золотой фонтан» не забил, а работа стала утомительной. Он отстал от новых технологий по основной специальности. Сменить работу не реально. Проблема возникает с двух сторон.
CODESYS выручает благодаря свойствам 2 и 5 (см. таблицу). Нижним уровнем, включая установку системы исполнения CODESYS, занимаются системные программисты. Прикладной проект делается в CODESYS специалистами по прикладной области. Благодаря 4, им не требуется специальное образование. Системный и прикладной уровни четко разделены, как и требования к их исполнителям. При необходимости сопровождение ПО может быть передано заказчику. Специалистам заказчика достаточно пройти двухдневные учебные курсы.
Проблема развития универсальности системы и расширения рынка сбыта
Рис. Пульт управления яхтой, разработанный компанией Exor
Если устройство оказалось востребованным, то постепенно возникает необходимость специальных исполнений для разных заказчиков. Появляется несколько «прошивок» программы. Потом разрабатывается специальная компьютерная программа — конфигуратор системы. Она настраивает параметры устройства. Постепенно число параметров возрастает. Соответственно, разбухает документация. Но по-прежнему находятся заказчики, которым не хватает нужного именно им функционала. Рождается логичная мысль пойти дальше и дать заказчикам (дистрибьюторам, установщикам) возможности программирования системы. С языком C++ это нереально. CODESYS решает данную проблему. Существует ряд специализированных контроллеров для печатных машин, деревообрабатывающих станков, заправочных станций, дорожных машин, химических аналитических приборов и др., которые оснащены CODESYS и дополнены специализированными библиотеками. Изготовитель соответствующей машины сам адаптирует контроллер под разнообразные модели и наращивает функционал. Изготовитель встраиваемой системы выигрывает за счет унификации и расширения областей применения.
В простых устройствах выручает встроенная визуализация CODESYS (п. 7 таблицы). С ее помощью графические конфигураторы, включая веб-интерфейс, делаются «попутно» на ранних версиях прикладного проекта.
Проблема интеграции с устройствами других компанийОбычно в успешно развивающейся системе возникает необходимость подключения приборов, датчиков и других устройств ведущих мировых изготовителей. Самостоятельная реализация стандартных полевых сетей значительна по трудоемкости. Покупка готового стека дорога. CODESYS (см. п. 10 таблицы) позволяет поддержать практически все стандартные сети. В нашей практике к использованию CODESYS во встраиваемых системах чаще других приводила необходимость поддержки стеков CANopen и EtherCAT.
Проблема замены ПЛК встраиваемой системой
В некоторых случаях, помимо базового серийного изделия, требуются особые исполнения. Пример: компактный холодильник и заказная холодильная установка, различные термокамеры, весы, сварочные автоматы, научное оборудование и др. Под специальное исполнение целесообразно применить готовый ПЛК с CODESYS. На нашем рынке доступны десятки таких ПЛК разных ценовых категорий. В разных применениях могут использоваться компактные, модульные или панельные ПЛК. Для серийных изделий изготавливается собственный встраиваемый контроллер. Если везде стоит CODESYS, то одна команда справляется с разработкой ПО и сопровождением всех вариантов. Практически везде применяется один проект с разной конфигурацией.
Установка к CODESYS
Для того чтобы устройство программировалось в CODESYS, в нем предварительно должна быть установлена так называемая система исполнения CODESYS Control. Она включает планировщик задач, загрузчик, функции отладки, обслуживает полевые сети, ввод/вывод и т. д. Именно благодаря ей МЭК-программа оказывается аппаратно-независимой. Набор ресурсов, которые должна обслуживать система исполнения, отличается у разных контроллеров. Речь идет не только о микроконтроллере, но и об устройстве в целом. По этой причине нельзя просто скопировать систему исполнения с одного устройства на другое. Она всегда требует некоторой индивидуальной адаптации. Все существующие встраиваемые системы с CODESYS созданы одним из трех способов:
- Бизнес-модель разработчиков CODESYS ориентирована на серийно выпускаемые изделия. Изготовитель ПЛК приобретает стартовый набор. Это комплекс из программного обеспечения и работ по обучению, помощи в адаптации и дальнейшему сопровождению. На выходе получается специальная «прошивка», «заточенная» под конкретную систему и готовая к тиражированию. Первая адаптация обычно занимает несколько месяцев. Выполнив ее, компания приобретает необходимый опыт и может самостоятельно устанавливать CODESYS на любые свои продукты достаточно быстро, даже если они построены на разных процессорах и в разных операционных системах.
- Существуют компании (Systec, Janz, Frenzel Berg и др.), предлагающие готовые встраиваемые устройства с CODESYS и системы под заказ. Заказчику остается только написать прикладное ПО. Обычно такие компании выпускают собственный ряд модулей-«полуфабрикатов». У них имеется надежное аппаратное ядро (встраиваемый компьютер, микропроцессорный модуль, PLC Сore), определенный набор плат или микросхем ввода/вывода, сетевые и другие модули. Из них компонуется нужная система. Они также предлагают несколько типов готовых встраиваемых компьютеров (контроллеров) с CODESYS и эволюционные наборы.
- Применение микросхем и модулей Beck IPC@CHIP. Это миниатюрный встраиваемый компьютер с ОС РВ на борту. Компании Beck удалось придумать технологию и создать специальный инструмент — Platform Builder (кстати, бесплатный). С его помощью в диалоговом режиме мы задаем требуемую конфигурацию системы исполнения CODESYS. Например, можно включить поддержку CANopen, веб-визуализации, описать входы/выходы, выбрать способ обслуживания энергонезависимой памяти, добавить собственные обработчики системных событий и т. п. Затем автоматически генерируются все необходимые файлы. Остается дописать по готовым шаблонам драйверы ввода/вывода под нашу периферию и собрать систему исполнения. Получается исполняемый файл, который копируется на встроенный диск IPC@CHIP. Технология выглядит простой, но пока никто из конкурентов не создал аналогов. Все они предлагают некие типовые сборки PLC Core ядер с фиксированным функционалом.
По требованию российских заказчиков Beck создала специальное исполнение чипов с расширенным температурным диапазоном (–40 °С). Существует исполнение для энергетики с поддержкой коммуникационной библиотеки МЭК 61850.
Первый путь выбирают крупные изготовители встраиваемых систем. Он оправдан при выпуске от нескольких сотен изделий в год и выше. В странах ЕС все более развивается практика заказа разработки. По числу применений в России лидирует технология Beck IPC@CHIP. В любом случае среда программирования CODESYS поставляется бесплатно. Никаких ограничений в функционале и числе установок в ней не предусмотрено. В CODESYS имеется встроенный эмулятор контроллера. Это позволяет начать работу без приобретения аппаратных средств.
Рис. «Беспилотный» транспортер E&K AUTOMATION на базе собственного встроенного контроллера и модулей ввода/вывода Wago IO
Заключение
Сегмент встраиваемых систем в суммарном годовом объеме применений CODESYS ежегодно увеличивается. CODESYS применяется во встраиваемых контроллерах компаний Bosh, Rolls-Royce Marine, Praxis, CC Systems, Moba и др. Это далеко не опытные прототипы, речь идет о десятках тысяч изделий. Примеры нескольких применений показаны на фотографиях.
Среди МЭК-систем программированиия CODESYS выделяется тем, что, подобно компиляторам С/С++, непосредственно генерирует надежный и компактный машинный код, пригодный для встраиваемых систем. Простые в освоении языки МЭК позволяют привлечь к разработке и сопровождению специалистов прикладной области. Интерес для разработчика встраиваемых систем может представлять богатый функционал комплекса CODESYS. Многозадачность реального времени, обработка событий, встроенная визуализация, развитый набор коммуникаций, «горячее» обновление кода, полевые сети, поддержка управления через Интернет, средства национальной локализации проектов и другие функции CODESYS могут быть не востребованы во встраиваемой системе изначально. Но необходимо учитывать, что все они создавались эволюционно, исходя из практических требований, возникавших у пользователей контроллеров в разных странах, разных условиях и на разных этапах работ. В процессе жизни встраиваемой системы неизбежно возникают аналогичные или близкие задачи. Например, задача настройки и тестирования оборудования заказчиком, интеграция с другим оборудованием, веб-интерфейс и т. п. Во многих случаях CODESYS даст готовое решение.
Вконтакте
Google+
Литература- Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования. М.: СОЛОН-Пресс. 2004.
- Болл К. История возникновения программируемых логических контроллеров // Control Engineering Россия. 2009. № 1(36).
- Петров И. В. Выбор ПЛК: ставка на открытость и совместимость // Конструктор. Машиностроитель. 2013. № 1.
- Wagner R., Petrov I. Go to OOP // SPS-Magazin. № 9.
- Петров И. В. Язык ST для C программиста // Мир компьютерной автоматизации. 2006. № 1.
- Харазов В. Г. Интегрированные системы управления технологическими процессами. СПб.: Профессия. 2009.
- Денисенко В. В. Компьютерное управление технологическим процессом, экспериментом, оборудованием. М: Горячая линия–Телеком. 2009.
- Petry J. IEC61131-3 mit CoDeSys V3: Ein Praxisbuch f?r SPS-Programmierer . Kempten. Germany. 2011.
- Константинов А. Модульный ПЛК FASTWEL I/O — от замысла до реализации // Control Engineering Россия. 2012. № 4(41).
Codesys 2.3 – программирование на плк для новичков
Приветствую вас друзья, я надеюсь, что у вас сегодня хорошее настроение, наливайте себе зелёного чаю, берите печенье, всякие вкусняшки. В этой статье мы с вами поговорим об универсальной среде разработки программ для программируемых логических контроллеров (ПЛК) CODESYS 2.3
Итак, что же это за программа такая. Это среда разработки, то бишь некая программа, которая создает в себе другие программы для логических устройств. CoDeSyS разработан фирмой 3S Software, немецкими разработчиками. Это универсальный инструмент программирования контроллеров и встраиваемых систем. Комплекс программируется на стандартных языках МЭК 61131-3. О них буду говорить позже.
Из этой статьи вы узнаете:
Стандартные языки МЭК
Конфигуратор входов/выходов
Сама система реализована на языке С. Существует несколько модификации для различных микропроцессоров. Для привязки к конкретному контроллеру требуется конфигуратор, в настройках которого идет распределение памяти, интерфейс и привязка входов-выходов. Об этом будет ниже.
На рисунке выше я разместил рабочее окно проекта, чтобы показать как оно выглядит. Особенностями данного пакета являются:
- Прямая генерация машинного кода. В системе инструментов есть классический компилятор, который обеспечивает очень высокое быстродействие программы;
- Реализация МЭК языков;
- Редактор кода построен таким образом, что не позволяет программистам совершать типичные ошибки, и указывает на совершенные ошибки в коде;
- Встроенный эмулятор позволяет производить отладку программы без аппаратных средств, что бывает очень удобно;
- И да, комплекс CoDeSyS содержит в себе встроенный редактор визуализации;
Стандартные языки МЭК
Выбор стандарта языков программирования МЭК основан на том, что он является универсальным и удобным языком для программистов, инженеров и технологов. В течение времени язык программирования формировался и изменялся. Как вы думаете, было бы разумно делать мощный инструмент, опираясь на прошлый опыт разработок. В условиях конкурентного производства оборудования очень важно внедрять технологию быстро.
Всего таких языков из стандарта МЭК существует 5:
- Это язык IL – язык инструкций, напоминает Assembler;
- Язык ST – очень напоминает язык программирования С;
- Язык LD — релейные схемы, очень удобно для электриков;
- Язык FBD — графический язык, удобный для электронщиков;
- Язык SFC — структурный язык, удобен для пошагового программирования;
- CFC то же самое, что и FBD только расширенный функционал;
Какими языками удобнее всего пользоваться? Ну, это для кого как и кому как удобно, жёстких правил нету. Для программистов ближе будет ST, для электриков LD, для технологов скорее всего CFC.
Мне удобно пользоваться CFC и ST. На CFC языке всё наглядно видно, а это очень важно. Особенно когда идёт процесс наладки программы. А ST удобен своей гибкостью, и сложность программы ограничивается лишь вашей фантазией. А какие языки выбрали вы??
Кстати я чаще всего использую комбинацию различных языков. Я использовал такой трюк в проекте с холодильной камерой. Очень сложный проект, на написание программы у меня ушло 2 недели времени.
Конфигуратор входов/выходов
Теперь вернёмся к конфигуратору входов-выходов. О чем идёт речь? Предположим, у вас есть контроллер. У него много входов и выходов, аналоговых и дискретных. И, нам же к каждому входу и выходу нужно каким-то образом привязаться. Чтобы мы могли управлять, либо считывать данные.
Компания 3S Software реализовала в своём пакете CoDeSyS структуру дерева, в которой уже подготовлены некие ячейки памяти, отвечающие за каждый вход и выход контроллера. И мы просто присваиваем имя каждой ячейке, чтобы в дальнейшем управлять ими.
Очень большой плюс комплекса CoDeSyS в том, что среда разработки внедрена во многих логических контроллерах, как и в отечественных, так и в заморских.
Список контроллеров внушителен, поэтому я приведу те, которые знаю:
- ОВЕН ПЛК;
- WAGO;
- Beckhoff;
- Berghof;
- EMKO;
В целом CoDeSyS это мощный инструмент для реализаций технических задач. Для изготовления пультов управления технологическим процессом, от простых до сложных. Удобен для автоматизации умных домов. Минусом является стоимость подобных систем. Ну как говорится, в автоматике, чем надёжнее система, тем она дороже.
На этом у меня всё, успешных вам внедрений.
Как вам статья? Если понравилась, обязательно поделитесь ею в социальных сетях и подписывайтесь на новости блога.
P.S. Если вы вдруг задавались вопросом, как можно сделать баннер для сайта, заходите сюда.
С наилучшими пожеланиями, Гридин Семён.
Программирование ПЛК ОВЕН. Языки МЭК61131-3. Среда CoDeSys. Основы. Alex IA. Видеокурс. 2017
Проект, переменные, навигация
youtube.com/embed/UGUnjXPVcmM” allowfullscreen=””/>
Интерфейс программы Codesys 2.3. Создание проекта. Типы переменных.
Инструменты CFC, операторы, макросы
Панель инструментов языка CFC. Основные операторы. Создание макроса.
Блоки стандартной библиотеки standart.lib
Разбираем блоки из стандартной библиотеки standart.lib.
Преобразование типов данных
Способы преобразования типов данных. Отличия явного и неявного преобразований.
Программа управления светом и визуализация
youtube.com/embed/vyJvLWMfhBA” allowfullscreen=””/>
Простая программа управления освещением на 9 действий с визуализацией в CodeSys.
Назначение входов и выходов. Массивы
Назначение входов и выходов ПЛК и ошибки связанные с этим. Тип данных массив.
Блок плавного разгона и остановки двигателя
Создаем блок плавного разгона и плавной остановки для двигателя.
Библиотеки. Util.lib. Пользовательская
Понятие – библиотека. Cтандартная библиотека util. Собствтенные библиотеки. Подключение и удаление библиотек.
Перенос проекта.
ПЛК150.А-М. БУСТ2
Перенос проекта из одного файла в другой. Обзор ПЛК150.А-М. Модификация управления БУСТ2.
Энергонезависимые переменная и память
Энергонезависимая переменная. Изменение кол-ва э/н памяти. Аккумулятор ПЛК.
Язык ST. Оператор IF. Код на CFC в ST
Язык ST. Оператор IF. Блок наработки времени написанный на CFC переводим в ST.
Библиотека Syslibtime. Дата, время
Библиотека Syslibtime. Учимся брать дату и время и задавать новые значения.
Время. Блок записи данных. Массив архива
Системное время. Бок записи данных и массив архива. Блок наработки часов в блок фиксации длительности сигнала.
Время. STRING. Библиотека SysLibFile
Cтроковые переменные STRING. Библиотека создания архивных данных SysLibFile.
Библиотека для строковых переменных
Библиотека для работы со строковыми переменными. Объединение переменных STRING. Запись данных в архив.
OPC сервер. SCADA система
Соединение с OPC сервером и SCADA. Конфигурирование OPC. Пример в SCADA системе.
Глобальные переменные. Суммирование на ST
Понятие “Глобальные переменные”. Пишем простую программу суммирования на ST.
Описание курса: Возможности среды CoDeSys. Языки программирования ПЛК. Библиотеки. Типы данных, операторы. Примеры.
Программирование ПЛК CoDeSys под ключ, заказать программирование CoDeSys. СКОМА
ООО СКОМА занимается программированием промышленных контроллеров и операторских панелей в среде разработки Codesys. Программируем ПЛК разных серий, предлагаем готовые решения для типовых задач. Тщательно тестируем ПО, гарантируем отказоустойчивость системы.
CoDeSys: для каких целей подходит?
CoDeSys – интегрированная среда программирования (IDE) для промышленных ПЛК. Включает непосредственно среду разработки, систему исполнения. Работает с внешними библиотеками. Имеет встроенные конфигураторы, поддерживающие интерфейсы ввода/вывода: Modbus, PROFIBUS, PROFINET, DeviceNet, CANopen, J1939, EtherCAT, SERCOS III, Ethernet IP.
Codesys поддерживает пять языков МЭК 61131-3: три визуальных (LD, FBD, SFC), низкоуровневый аппаратно-независимый ассемблер (IL), высокоуровневый язык (ST).
Благодаря большому выбору инструментов, CoDeSys позволяет гибко настроить контроллер, реализовать нестандартные функции. Может запускаться поверх операционной системы (совместимость с VxWorks, Windows CE, Linux, RTKernel, QNX, Nucleus и др.), на голом железе с нуля.
Достоинства:
- CoDeSys позволяет выжать максимум из железа и обеспечить рекордное быстродействие на слабых платформах;
- возможна синхронизация параллельных процессов с задержкой всего в долю секунды;
- встроенный разработчик для визуализации техпроцессов, проектирования графических интерфейсов для ПЛК с дисплеем, подключенных операторских панелей, HMI для операторского управления с отдельного ПК или веб-приложений без использования внешних SCADA-систем;
- среда разработки поддерживает низкоуровневый ассемблер, с которым можно гибко прописать программный код с учетом архитектуры микроконтроллера, задействовать все ресурсы;
- встроенный конфигуратор для программирования модульных и распределенных АСУ ТП.
Изначально среда программирования Codesys применялась при разработке программного обеспечения ПЛК в тех сферах, где была важна высокая автономность, надежность, быстродействие. Строительная техника, яхты, автомобильные ЭБУ, печатные, деревообрабатывающие станки, прокатные станы, сборочные роботы, насосные станции и другое технологическое оборудование. Постепенно сфера расширилась.
Компания ООО СКОМА выполняет программирование ПЛК в Codesys для технологического оборудования, децентрализованных и распределенных АСУ ТП в разных отраслях: пищевой, энергетике, текстильной, металлургии, машиностроении, станкостроении и др. Используем все возможности среды разработки. Обеспечим высокое быстродействие. Реализуем наиболее сложные схемы управления.
Программирование ПЛК в CoDeSys: готовые решения
ООО СКОМА сотрудничает с производственными предприятиями, которые нуждаются в модернизации или расширении производства, производителями, поставщиками технологического оборудования, которые планируют расширить возможности выпускаемых технологических установок. Часто сталкиваемся с типичными задачами. Чтобы ускорить реализацию проектов, предлагаем готовые решения для автоматизации:
- насосной станции;
- компрессоров;
- промышленных вентиляторов;
- холодильного оборудования;
- непрерывного дозирования сыпучих, жидких компонентов;
- затаривалелей мягких контейнеров Биг-бегов;
- конвейеров.
Перед поставкой и загрузкой программного кода в контроллер, адаптируем программное обеспечение с учетом особенностей используемого оборудования, режимов работы.
Цели разработки в CoDeSys
Главная цель разработки программного обеспечения для ПЛК – обеспечить автоматизированное управление оборудованием и автоматическую поддержку заданных параметров (без контроля оператором) технологических процессов. Также наши инженеры ООО СКОМА добиваются второстепенных, но не менее важных задач:
- оптимальные режимы работы технологических установок;
- безопасный запуск оборудования, плавный выход технологических параметров на заданный уровень, без резких скачков температуры, давления, скорости;
- безопасная остановка оборудования в случае аварийной ситуации;
- простота и удобство при обслуживании, управлении;
- аварийная сигнализация в случае отклонения технологических параметров от заданного уровня, отказе одного из узлов.
ПО, разработанное инженерами ООО СКОМА для промышленных контроллеров позволяет оптимизировать производство, сократить потребление энергии, продлить ресурс оборудования, обеспечивает качественное регулирование.
Услуги программирования контроллеров в Codesys включают разработку управляющей программы, HMI для операторских пультов или веб-интерфейса. Обеспечим удобный, информативный контроль.
Серии программируемых контроллеров на CoDeSys
Более 350 производителей выпускают контроллеры с системой исполнения (Control Runtime System, CRS) CoDeSys, и этот список постоянно расширяется. Инженеры ООО СКОМА выполнят программирование популярных серий ПЛК и интеллектуальных реле, которые официально реализуются в России:
- ОВЕН ПЛК;
- Weintek;
- FASTWEL;
- ABB;
- Moeller;
- WAGO;
- Lenze;
- IFM.
Можем выполнить разработку ПО для ПЛК других серий. Чтобы уточнить, для каких, позвоните.
Почему для разработки программного обеспечения контроллеров выбирают нас?
ООО СКОМА – инжиниринговая компания с собственной производственной базой, исследовательской лабораторией и инженерами различных направлений. Перед программированием ПЛК в Codesys внимательно изучаем особенности работы машин, которые будут автоматизированы. Знаем тонкости эксплуатации автоматических систем управления. Уделяем внимание даже небольшим мелочам, которые могут повлиять на энергоэффективность, точность управления. Мы нацелены на идеальный результат. При необходимости дадим рекомендации, доработаем схему АСУ. После разработки моделируем работу ПО, оцениваем эффективность выбранных алгоритмов управления. При необходимости, корректируем программный код.
Мы уверены в своей работе. Даем гарантию. Передаем заказчику скомпилированный и исходный код.
Сроки разработки программного обеспечения ТП CoDeSys
Работаем быстро, сразу приступаем к разработке ПО после обращения заказчика. При наличии проекта, подготовим программное обеспечение для ПЛК в течение 6 рабочих дней.
Если нужен полный цикл разработки, требуется проработка технических условий, ПО подготовим в срок от 1 месяца. Чтобы получить больше информации позвоните.
CoDeSys | Festo
PLC271, Универсальная среда CoDeSys: обслуживание оборудования и основы программирования
Курс позволяет научиться эффективно использовать различные языки программирования и их сочетания в соответствии с требованиями перспективного стандарта МЭК 61131-3. CoDeSys – надежное и проверенное программное обеспечение, поддерживающее множество аппаратных решений. CoDeSys поддерживает использование всех языков программирования, определенных в стандарте МЭК 61131-3, независимо от производителя оборудования. Данный тренинг проясняет вопросы использования программного обеспечения CoDeSys и позволяет участникам приобрести необходимые знания и практические навыки для работы с ним. Вы научитесь создавать программы и конфигурировать оборудование. Ключевыми элементами курса является работа с приложением CoDeSys, использование соответствующей терминологии и синтаксиса, применение различных программных элементов для создания, наладки и оптимизации программ, а также для визуализации технологических процессов.
Целевая аудитория: программисты, обслуживающий персонал и операторы современных промышленных контроллеров, поддерживающих программирование в среде CoDeSys.
Основные темы курса
Обзор стандарта МЭК 61131-3.
Обзор контроллеров FESTO, программируемых с помощью CoDeSys.
Структура среды программирования CoDeSys.
Написание управляющих программ на языках LD, FBD, CFC.
Работа с различными эмуляторами контроллера.
Создание визуализации.
Применение функций, функциональных блоков и библиотек.
Подключение Target-пакетов.
Конфигурирование и параметрирование ПЛК с CoDeSys.
Контроль цикличности выполнения программ.
Отладка программ.
Экспорт и импорт программ CoDeSys.
Практические занятия по составлению, монтажу и наладке схем управления на стендах.
Использование интерактивной справочной системы
Участники:
Смогут обслуживать системы управления на базе современных ПЛК.
Научатся конфигурировать и осуществлять диагностику оборудования.
Смогут составлять и осуществлять отладку управляющих программ в CoDeSys на языках LD, FBD, SFC.
Начальная подготовка: Базовые технические знания.
Продолжительность семинара: 3 дня с 10.00 до 17.00
По окончании обучения участникам выдаются сертификаты Festo.
Место проведения семинара: г. Минск, пр-т Машерова, 78
Для включения представителя Вашего предприятия в учебную группу просим сообщить
об этом в отдел дидактики Иностранного унитарного предприятия «Фесто» по телефону 8-029-646-96-58.
e-F@ctory Alliance – Mitsubishi Electric Factory Automation
e-F@ctory Alliance
e‑F@ctory Alliance – это неотъемлемый элемент концепции e‑F@ctory. Глобальная сеть включает производителей промышленных компонентов, а также специализированных системных интеграторов и поставщиков программного обеспечения. Эти партнерские компании применяют индивидуальный подход в разработке гибких, оптимизированных решений в соответствии с различными требованиями клиента. e‑F@ctory Alliance насчитывает свыше 300 членов во всем мире.
Поиск партнеров
по Категории
ВсеIT systemEdge-computingShop floor
по Отрасли
ВсеАвтоматизацияАвтомобильная промышленностьВодаИТНапиткиПродовольствиеПроизводствоТехнологияЭнергетика
e-F@ctory Alliance partners in EMEA
Adroit Technologies
Интеграция системы SCADA от Adroit (MAPS) в программное обеспечение Mitsubishi Electric.
Asyril
Малое время цикла и инновационные системы подачи практически любого типа деталей совместно с роботом Mitsubishi Electric
Atos Origin
ИТ-инфраструктура и системы управления, способные использовать решения Mitsubishi Electric для обеспечения коммуникаций между уровнями цеха и предприятия.
Auvesy
versiondog – управление данными проекта.
Автоматизированное резервное копирование и управление версиями для автоматизированного производстваBalluff
innovating automation: Advanced Sensor Solutions, intelligent Networking Systems.
CLPA
CC-Link IE TSN – The Future of Open Industrial Ethernet
CODESYS
Ведущая открытая среда программирования и управления, которая может быть развернута непосредственно на Си-контроллере (iQ Platform) Mitsubishi Electric.
Codian
Высокоскоростной перегрузочный дельта-робот беспроблемно интегрируется в контроллер Mitsubishi Electric
Cognex
Инновационные системы технического зрения для широкого диапазона приложений, особенно связанных с роботами Mitsubishi, и решения для управления движением.
CONTACT Software
Elements for IoT – the complete digital twin platform for smart factories from shop floor to enterprise
Copa Data
Протоколы удаленной телеметрии на базе Cи-контроллера
Datalogic
Механическая обработка и робототехника с техническим зрением
Emulate3D
Программное обеспечение для имитационного моделирования сокращает время ввода в эксплуатацию и затраты на контроллеры и другие устройства Mitsubishi
EPLAN
Система параллельной разработки, обеспечивающая последовательную реализацию функционального проектирования
flexfactory
flexfactory – the very best in flexible feeder systems
Harmonic Drive
Lifelong precision with high dynamics. High-precision planetary gear technology for direct integration of Mitsubishi Electric servo motors.
HMS
Быстрое и экономичное решение для объединения средств автоматизации Mitsubishi посредством широкого перечня стандартизированных промышленных сетей
IBHsoftec
Инновационное решение, позволяющее подключать к Ethernet ПЛК других производителей, может использоваться в сочетании с технологией MES IT от Mitsubishi для расширения возможностей сетевого взаимодействия.
INEA
Управление, основанное на рецептуре/система групповой обработки, которая выполняется непосредственно на модульных ПКА Mitsubishi Electric.
Janz Tec
Высокопроизводительный встраиваемый ПК для масштабируемой автоматизации и систем приводов
Lenord + Bauer
Эффективное управление с помощью высококачественных датчиков для систем ЧПУ и позиционирования Mitsubishi Electric в модернизированных и новых системах
ME-Automation Projects
Данная система управления для решений по водопользованию полностью интегрирована в среду GX IEC Developer и iQ Works Mitsubishi Electric.
mpdv
Ведущий поставщик стандартизированных решений MES для дискретного производства. Органично работает с решениями Mitsubishi, обеспечивающими связность на уровне предприятия.
Ontec
Customized and innovative machines based on the high-end quality automation systems from Mitsubishi Electric
Prosyst
Optimized automated system performance with PROSYST
Real Time Logic
Интеграция веб-служб на уровне управления вашим предприятием
RITTAL
Ведущий изготовитель шкафов управления, предлагающий решения с готовыми окнами для панелей оператора GOT от Mitsubishi.
Robovision
Turnkey Vision Inspection Systems enabled by Robovision Deep-Learning Platform and Mitsubishi Electric Automation
RT Leaders
Легкое и простое программирование приложений автоматизации для управления на уровне производства
SAP
From Things to Outcomes – Linking operational data with business information to drive real value and differentiation with new business models.
Schaeffler
Расширенный мониторинг состояния для общей эффективности оборудования (ОЭО)
Schaffner
Эксперт в области решений ЭМС, предлагающий специализированные фильтры для преобразователей частоты от Mitsubishi Electric.
Secomea
Безопасные и простые решения удаленного доступа, полностью интегрированные с устройствами автоматизации Mitsubishi Electric
SICK AG
Sensor technology and image recognition in production for Industry 4. 0
SMC
Efficient automation with motorless electric drives
Takebishi Europe
Поддержка полнофункционального подключения к устройствам автоматизации производства Mitsubishi Electric с помощью сервера OPC
Technikon
Точный контроль технологических процессов для эффективного управления коммунальными системами водоснабжения и водораспределения
Telit
MES Interface IT для iQ Platform обеспечивает прямую коммуникацию цехового уровня с такими бизнес-системами, как Oracle, DB2 и т.д.
Visual Components
Модульное ПО для моделирования роботов и средств автоматизации обеспечивает интеграцию любых роботов Mitsubishi
Wittenstein
Высококачественные редукторы приводов Wittenstein alpha интегрированы с системными решениями Mitsubishi Electric
ПЛК ОВЕН 110: Программируем на CodeSys v2.3 – CS-CS.Net: Лаборатория Электрошамана
Тестовый стенд для ОВЕН ПЛК 110
Ну что? Я продолжаю рассказывать базовые понятия ПЛК и то, как их программировать. Сегодня я расскажу про свои дальнейшние приключения с ОВЕНом и тем, как я его программировал. Как я уже говорил, программирование ПЛК — это совсем другая религия! Это вам не схемки или кубики в логическом реле двигать! Тут всё значительно мудрее и очень важен грамотный выбор железа, грамотное физическое подключение линий IO и внешних модулей.
Для ПЛК обычно есть два варианта сред разработки: CodeSys и собственные. CodeSys — это бесплатная среда разработки, которая делится на компилятор и ядро. Ядро CodeSys производители ПЛК загружают в него при производстве. И всё, что надо для программирования такого ПЛК — скачать CodeSys и специальные файлы, которые описывают конкретную модель ПЛК.
Второй вариант — это собственное ядро и собственная среда разработки. Тут уже каждый производитель извращается как нравится. Я вот хотел повозиться с Сименсами, но мне рассказали, что их среда разработки требует очень мощный комп и жрёт много ресурсов. Мне это не нравится, и я лучше подберу что-нибудь такое что работает с CodeSys, потому что мне проще поставить один раз хорошую среду, вылизать её настройки и заниматься только программированием.
ПЛК, который заказчик купил под свой щит работает на ядре CodeSys v2. Сейчас везде используется ядро CodeSys v3, а вторая версия ядра является устаревшей. Но так как принципы программирования всё равно одинаковые, то этот пост будет полезен всем начинающим. Да и мне охота поделиться информацией, которую я собирал по крупицам, неделю обложившись документацией. Блин! Мне кажется, что мне уже надо или учебные курсы вести, или посты продавать, гыгы =)
Первое, с чего начинается работа по программированию — это создание тестового стенда. У меня валялись кнопки на DIN-рейку от ABB, и я собрал из них четыре линии ввода: три на бортовом IO ПЛК, а одну — на внешнем модуле для того, чтобы проверить как работает опрос модулей по ModBus.
Кнопки для подачи сигналов на входы ПЛК
Настройка внешних модулей и ModBus
У меня появился большой сборный пост про модули ОВЕН Мх110 и Мх210. Почитайте его — там много интересного!
Первое, с чего начинается наше программирование — это с конфигурации железа. Любой внешний модуль имеет на шине RS-485 свой адрес. А ещё модулю надо указать правильные настройки обмена: скорость, чётность и тип протокола обмена.
Каждый модуль или внешнее устройство настраивается по своему. У кого-то надо будет зайти в меню и поменять там цифирки. У кого-то поставить перемычки. А у других устройств для их настройки предусмотрена специальная программа-конфигуратор. У ОВЕНа сделано именно так.
Их модули подключаются штатно под RS-485 к компьютеру и настраиваются при помощи программы. Для того, чтобы подключить RS-485 к компьютеру, понадобится любой преобразователь интерфейсов. Их на рынке навалом и можно использовать любой. Если хочется — можно RS-485 завернуть даже в обычный Ethernet и общаться с модулями или нашей системой по сетке.
Так как вокруг меня был ОВЕН, то я для личных целей купил преобразователь ОВЕН АС-4. Он у них сделан в корпусе на DIN-рейку, питается от самого же порта USB. Из фич — то, что перемычками можно подключать и изменять сопротивление резисторов-терминаторов шины RS-485.
Мы подаём на модуль питание и подключаем его к преобразователю:
Преобразователь ОВЕН АС-4 и настройка модуля IO
Дальше запускаем программу «Конфигуратор М110». Первым делом программа предложит нам задать настройки для подключения к модулю. Если мы только что купили модуль — то можно смело тыкать кнопку «Заводские сетевые настройки». А если модуль уже настроен на какой-то адрес и другие параметры протокола, то нам надо их знать заранее и ввести в программу:
Подключение к модулю IO в программе
Если по какой-то причине мы забыли все настройки модуля (например нам подарили БУшный модуль), то можно запустить сканирование сети. Программа найдёт всё, что может и предложит подключиться к указанному модулю. Ну а если мы совсем ничего не можем — то сам модуль ввода-вывода можно жёстко сброить на заводские установки, если установить одну из перемычек, которые находятся на нём под крышкой. Это описано в инструкции на модуль.
После того, как мы подключились к модулю, программа выдаёт нам все его настройки, которые можно прочитать и записать в модуль. Нас интересуют настройки сети: скорость обмена, сетевой адрес и всякие таймауты. Напоминаю, что у модулей есть фишка: если его не опрашивали по RS-485 указанное время, то он считает что связь оборвалась и выставляет на выходах аварийные значения, чтобы оборудование не натворило дел (сам не поехал лифт или не включились насосы и прочее). В нашем случае модуль управляет лампочками, поэтому мы выставляем все аварийные значения на ноль.
Настройки модуля релейных выходов МУ110-16Р
А некоторые модули ввода-вывода ещё и могут общаться по разным протоколам. Да и даже у самого ModBus есть парочка модификаций: RTU (устройства обмениваются двоичными даными) и ASCII (все данные гоняются в текстовом виде). Мы будем использовать более быстрый протокол ModBus-RTU.
Настройки модуля входов МВ110-16Д
Обратите внимание, что для модулей ввода есть программный фильтр дребезга контактов. Его мы тоже включаем.
Ещё у этой программы есть возможность контролировать состояние входов-выходов. С помощью этого можно отдельно протестировать каждый модуль на работоспособность.
Изучаем CodeSys
Итак, с помощью программы мы настроили все модули на одинаковые параметры связи и дали им адреса. Теперь их можно физически подключить к ПЛК, а сам ПЛК воткнуть в сетку. ПЛК ОВЕН 110 можно программировать тремя способами: через USB, через RS-232 и по сетке. Самый лучший способ из этого — программировать ПЛК по сетке, потому что в этом случае он не перезапускается, а программа заливается туда в горячем режиме. То-есть написали, загрузили, проверили. Что-то исправили? Сразу же загрузили и проверили. Если же программировать ПЛК по USB — то там надо вынимать USB-кабель после заливки программы, что адски неудобно.
Связь с ПЛК 110 по Ethernet
И теперь начинаем разбираться с CodeSys. Я скачал её прямо с сайта ОВЕНа, где она есть в русском варианте. Вообще я не люблю русские переводы специального софта, потому что переводят его те, кто ни фига не понимает в технике. Например, самый адский перевод был у AutoCad: «Вырезать, Обрезать, Растянуть, Расчленить, Взорвать». Или у P-CAD, где Net (соединение) перевели как «Сеть». Но в случае с CodeSys русский перевод мне помог разобраться в терминологии и в том, где что находится. После этого русский перевод мне уже не нужен, и я могу ориентироваться в английской среде свободно.
Сама среда состоит из дерева проекта, где несколько вкладок и элементов дерева. В них отображается как структура программы, так и всякие злобные параметры ПЛК и его внешние ресурсы. Все элементы дерева открываются кучей дочерних окон со своими настройками.
Среда разработки CodeSys v2 для ПЛК 110
Сама CodeSys поддерживает много языков программирования. В том числе и тех, на которых удобно программировать логические реле.
Пример проекта на CodeSys на нескольких языках одновременно
Например, можно программировать при помощи блок-схем (CFC). Это как нам в школе алгоритмы учили рисовать в стиле «Начало => Ввод данных => Если . . то => иначе => Конец». Тут это рисуется при помощи блоков:
Пример последовательных логических схем (CFC)
А можно програмировать функциональными блоками (FBD), как на логических реле. В этом случае схема исполняется не последовательно как в CFC, а по сигналам, как в обычной цифровой логике на микросхемах:
Пример разработки на функциональных блоках (FBD)
Для тех, кто переходит с обычных релюшек и автоматики есть возможность писать всё в релейной логике LD, LAD. Тогда всякие сигналы описываются контактами, которые включают или выключают реле:
Пример разработки на релейно-контактной схеме (LD)
А ещё есть язык инструкций IL. Он подойдёт тем, кто любит суровый ассемблер. Смотрите, как он похож на него же:
Пример разработки на языке инструкций (IL)
А на мой взгляд самый удобный язык для сложных задач — это обычный текст ST, который похож на смесь СИ и Pascal одновременно:
Пример разработки на редакторе кода (ST)
Тут тебе есть и комментарии, и возможность написать любые условия.
Внутри CodeSys можно совмещать все эти языки и создавать свои функциональные блоки. Например, вы можете на ST написать сложный блок, который чего-нибудь вычисляет и выдаёт на выходе логическое значение 1 или 0. А потом взять язык FBD и из этих блоков составить «простую» логическую схемку.
Распределяем ресурсы ПЛК
Наше программирование, конечно же, тесно связано с железом. И наша среда CodeSys должна знать то, какие железо мы сейчас используем. Это конечно же понятно: в разных ПЛК есть разное количество памяти, портов ввода-вывода и прочих штуковин.
Поэтому новый проект всегда начинается с выбора платформы. На английском это называется Target. Сама среда никогда не будет знать о всяких ОВЕНах и других ПЛК. Изначально она знает только о некоем абстрактном ядре «3S CodeSys». Чтобы она узнала про наши ПЛК, нам надо пойти на сайт разработчика и скачать оттуда Target-файлы для наших ПЛК.
После этого Target’ы загружаются в CodeSys (на версии 2 этот процесс адски мутный, неочевидный и противный), и мы наконец-то можем творить. Выбираем нужный вариант нашего ПЛК:
Выбор железа для разработки программы под ПЛК
Теперь мы сразу вспоминаем то, что ПЛК — это многозадачная система, внутри которой крутятся задачи — программы, которые что-нибудь делают. Задач может быть несколько, но для работы ПЛК нужна хотя бы одна. В CodeSys она обязана называться «PLC_PROG», и именно её нам сразу предлагают создать после выбора платформы ПЛК.
Сразу же при её создании надо выбрать язык, на котором вы будете писать код. Если вы вдруг ошиблись с названием языка (я постоянно путаю IL и ST), то можно просто удалить эту задачу и создать новую с тем же именем.
Создание основной программы по умолчанию
После этого наш проект создан и среда от нас отстала. Если мы пишем на ST, то в коде PLC_PROG достаточно поставить «;» и программа откомпилируется. Но работать ничего не будет. Почему? А потому что ПЛК не знает, как к его ресурсам обращаться и чего у него вообще есть.
И вот чтобы его этому научить — надо аккуратно и внимательно разобраться с его ресурсами и с тем, как туда прописывать внешние модули ввода-вывода. Всё это кажется лёгким только тогда, когда сам всё понял. А когда смотришь на конфигурацию ПЛК в самый первый раз, то от неё взрывается голова. Я разбирался с этим дней пять, потому что ещё и инструкция по работе с CodeSys на сайте ОВЕНа говорит «Сделайте это и то», но не говорит ПОЧЕМУ так надо делать. Я этот недостаток хочу исправить и потом пошлю ОВЕНу ссылку на эти посты.
Для того, чтобы CodeSys знала про все-все ресурсы и ввод-вывод всей системы на базе ПЛК, это всё надо прописать руками. То-есть, вся конфигурация системы прописывается в том же программном коде жёстко. И поэтому когда вы выбираете всякие модули ввода-вывода, назначаете им параметры связи и адреса, вы должны понимать, что это останется навсегда. А если надо будет поменять адрес устройства — то вам надо будет перекомпилировать проект.
Общий концепт ресурсов и обращения к ним сделан при помощи неких адресов. Адреса эти вычисляет сама среда по нашей конфигурации ПЛК. На скриншоте ниже эти адреса начинаются со знаков «AT %». Чтобы программист не мучился с этими адресами, он может создать обычные программные переменные, которые будут использовать вместо адресов понятные имена типа «WaterPump», которая на самом деле будет говорить о внешнем выходе по адресу типа «%QW6.3.0.0».
Поэтому первой нашей задачей будет изучить окошко «Конфигурация ПЛК» и то, что там можно делать. Давайте на него посмотрим:
Конфигурация ПЛК и его ресурсов
Слева у нас есть дерево, в котором будет показываться вся-вся конфигурация нашей системы. А справа от дерева появляются разные параметры, которые можно настраивать. Там же можно задать для самих себя понятные имена и названия всех объектов системы, чтобы не путаться.
Слева у меня сейчас развёрнута конфигурация самого ПЛК. Чего у нас тут есть? Есть два быстрых входа, 16 обычных входов (в сумме — 18). Так же есть четыре быстрых выхода и 10 обычных — в сумме 14. Это соотвествует тому, что у этого ПЛК действительно есть. Дополнительно есть Special Input — это кнопка «F1» на самом ПЛК и Special Output — это пищалка ПЛК. Если туда записать «1», то пищалка будет пищать и привлекать наше внимание к системе.
Около этих ресурсов есть обозначение «[FIX]» или «[SLOT]». Если написано «SLOT», то это означает что программно можно заставить среду воспринимать эти входы или выходы не как дискретные 1..0, а например как энкодер или ШИМ-регулятор. Это сделано для того, чтобы облегчить программирование с заставить ПЛК максимально автоматически обрабатывать данные с IO, не нагружая этим программиста. Соотвественно те ресурсы, которые «FIX» изменять нельзя и они всегда будут теми, какие они и есть.
Около каждого ресурса как раз и указан его адрес, по которому к нему можно обращаться. Вот если мы хотим программно включить быстрый выход 2, то нам нужен адрес «%QX2.0». Про то, как назначать адреса переменным, я расскажу позже.
Для каждого ресурса есть свой набор настроек. Вот например для выходов можно точно так же настроить безопасные значения, как и для внешних модулей ввода-вывода:
Настройка безопасных значений выходов ПЛК
Идём дальше! Это-то мы изучали внутренние ресурсы, которые есть на борту ПЛК. А как же нам добраться до внешних ресурсов? Вот у нас есть аж три модуля ввода-вывода. Но где же они?
А нигде! Их надо добавить ручками. Логика тут простая и технарская: то, что у тебя есть физически должно быть и в программе. Давайте вспомним, чего у нас есть физически? Модули? Неа! У нас есть протокол ModBus!
Поэтому мы кликаем на самом ПЛК и выбираем из меню этот самый ModBus (Master) вот так, как показано ниже. Master — потому что главный у нас в сети ПЛК, и именно он будет управлять всеми другими модулями. Так же там есть ещё и другие протоколы обмена для разных вариантов сети. Например можно было вообще взять собственный протокол «ОВЕН» и построить сетку на нём.
Добавляем внешний интерфейс связи
Обратите внимание, что этот протокол сейчас не привязан к физическим проводам ПЛК! После того, как мы добавим наш ModBus, система просто будет знать что есть некий абстрактный протокол, по которому гоняются байтики. Но через какой порт ПЛК это будет работать — она пока ещё не знает!
Что же делать? Придётся научить нашу систему нужному порту. Для этого мы разворачиваем дерево под нашим ModBus’ом и видим искомое. По умолчанию система подставила самый первый попавшийся интерфейс ПЛК — «Debug RS-232». Мы видим около него волшебную надпись «SLOT». Кликаем по ней правой кнопкой мыши и — вуаля! Мы можем заменить его на нужный на RS-485.
Выбираем тип интерфейса RS-485
Причём список замены будет только из тех вариантов, которые действительно есть в именно этом ПЛК. Например в некоторых ПЛК бывает аж два интерфейса RS-485, на которых можно построить две разные сетки ModBus.
И вот только теперь мы дошли до физического уровня: собственно самого RS-485. Для него у нас есть настройки протокола обмена и параметров связи. Если вы помните, то мы все модули конфигурировали на ModBus RTU и скорость обмена 9600. Теперь вставим эти же настройки в нашем ПЛК:
Настраиваем параметры протокола интерфейса
ПЛК сам следит за работой этого протокола и этого интерфейса. Нам не надо программно включать или отключать опрос модулей: он будет делаться автоматически, если есть хоть один внешний модуль, который надо опрашивать.
Вот сейчас мы как раз и добавим наши внешние модули. Сам ОВЕН рекомендует добавлять свои модули как «Unversal ModBus Device» — некое абстрактное устройство. Сделаем так:
Добавляем устройство ModBus
Теперь у нас появился некий внешний модуль, который подключен на нашу шину RS-485 и будет работать по ModBus. Но напоминаю вам то, что протокол ModBus — это просто способ читать и записывать байты в и из устройств. И более ничего. А вот что значит каждый байт и та область памяти, куда его надо записать/прочитать — знает разработчик модуля и разработчик системы на базе ПЛК.
Для каждого модуля надо будет задать параметры связи. Для нас это адрес модуля (ModuleSlaveAddress) и время опроса его контроллером. Контроллер будет автоматически общаться с модулем раз в столько миллисекунд, сколько мы укажем.
Настраиваем параметры устройства
Время опроса позволяет снизить нагрузку на шину связи. Например если модуль управляет лампочками освещения, то его можно опрашивать реже, отдавая время шины каким-нибудь более быстрым модулям аналогового регулирования.
Ну добавили мы модуль, и чего? А как система узнает как рулить его входами или выходами? Вообще, откуда она узнает, где они у него находятся? А узнает она это через человека, который достанет и прочитает инструкцию на модуль. Для любого устройства с протоколом ModBus производитель даёт таблицу, в которой указаны все адреса его регистров. Выглядит эта таблица вот таким образом, например:
Пример регистров устройства из документации
Тут нас интересует два момента. Так как это модуль ввода, то нам надо получать значения его входов. Производитель, чтобы не гонять по сети тьму байтов, упаковал все 16 входов в 16 бит — в два байта, в тип WORD. Значит, нас интересует регистр номер 51, который надо будет читать из модуля. Следующий момент, который нам важен — это проверить команду, которая используется для записи-чтения данных в этот модуль. Иногда они могут отличаться от стандартных.
Отлично! Вот теперь мы всё знаем, чтобы добавить это в наш ПЛК. Тыкаем менюшкой на нашем модуле и выбираем, что добавить. типы в CodeSys называются так:
- 8 Bit — BYTE, байт
- Register — INT, WORD — два байта
- 32 Bit — DWORD, четыре байта
Так как в документации видно что мы читаем двухбайтовое слово — то нам нужен тип «Register input»:
Добавляем регистр устройства в конфигурацию
Теперь задаём параметры именно для этого кусочка: адрес регистра, который читаем и команду, которой читаем.
Настраиваем адрес регистра и способ его опроса
Вот теперь (см. скриншот сверху) ПЛК знает что у нас есть протокол MoBus-RTU на основе интерфейса RS-485, на котором висит устройство с адресом «1», из которого мы читаем два байта из ячейки «51».
А вот как выглядит конфигурация ПЛК для моей системы. У меня стоит один модуль ввода на 16 входов и модуль вывода на 16 выходов. И на будущее для диммирования света стоит модуль аналогого вывода.
Полный список внешних устройств и внешних регистров
Назначение переменных в ПЛК
Вот теперь у нас есть все-все адреса наших ресурсов. Чтобы нам было удобно ими пользоваться, мы заведём для них программные переменные. Это тоже ручная работа, в которой требуется внимательность. А ещё её в CodeSys v2 делать не очень удобно, потому что в табличке для ввода переменных не меняется ширина колонок.
Посмотрим на конфигурацию ПЛК и выцепим оттуда адреса всех наших входов и выходов. Я их подчеркнул красным:
Адреса переменных внутреннего ввода-вывода
А теперь создадим переменные для них. Для этого мы идём в раздел «Глобальные переменные» и начинаем заполнять табличку примерно так:
Создаём переменные внутреннего ввода-вывода
Видите? Мы указываем название переменной и прописываем её адрес и тип. И теперь чтобы включить внутренний выход 1, нам надо написать «MOuts0_1 := TRUE;».
Проделаем то же самое с внешними устройствами. Тут адреса становятся длиннее:
Адреса переменных внешнего ввода-вывода
И редактировать их не совсем удобно. Заполняем переменные:
Создаём переменные внешнего ввода-вывода
Кроме переменных, которые красиво связывают адреса ресурсов и код, можно насоздавать своих собственных переменных для любых задач. Всё эти переменные будут глобальными: они будут доступны из любого места любой программы.
Ну и если теперь залить эту пустую программу (в коде мы ничего не написали) в ПЛК, то он сразу же примется опрашивать наши модули. На фотке ниже я случайно заснял момент, когда ПЛК опрашивает один из модулей.
После запуска ПЛК начинает опрашивать все внешние устройства
Программируем
А дальше начинается колдунство. Мне надо было на тот момент вообще научиться работать с CodeSys. Я тогда не разобратся, можно ли адресовать отдельные биты переменных и написал простые участки кода, которые приводили все переменные внешних ресурсов в удобоваримый для меня код.
Видите, я просто беру значение бита нужной мне переменной (от входа) и заношу его в глобальную переменную, которая уже обозначает конкретную кнопку управления светом.
Код преобразования входных переменных к типу BOOL
То же самое я проделал с выходами:
Код преобразования выходных переменных из типа BOOL
Теперь можно кодить. Для теста я сделал самое простое: нажимаем кнопку — срабатывает выход. То-есть мы просто присваиваем выход входу и наслаждаемся работой мощного ПЛК 😉
Кусочек прошивки для управления освещением на ПЛК
Ещё я нашёл в Сети пример того, как сделать на CodeSys импульсное реле и тоже его протестировал. Кстати, пример лежит на форуме ОВЕНа.
На форуме у них не совсем приятно. Там тусуются ушлые товарищи (не из ОВЕНа), которые в личке каждому новому пользователю сразу предлагают услуги по разработке и поддержке решений на ПЛК. Мне один такой тоже написал. Я ради прикола послал его нафиг и расспросил, почему он это сделал. Ответ был типично маркетологовский: «Ну так если ты тут зарегался, значит ты можешь быть моим клиентом».
В итоге товарищ был послан далеко и надолго. Особенно после того, как стал угрожать мне завалить мой блог за посыл нахуй. М-да. Страшно, в общем, на форуме ОВЕНа.
Задачи
Кратко покажу, чего есть из задач и чего с ними можно делать. Напоминаю: задача — это кусок программы, который ПЛК будет выполнять через указанное время. Есть системные события, которые показаны ниже (запуск ПЛК, остановка ПЛК, перед и после сброса):
Настройка задач в ПЛК
А мы хотим навесить на ПЛК свои собственные задачи. Вот у меня их получилось две штуки. Одна считает импульсы со счётчиков воды, а другая обслуживает управление освещением.
Для каждой задачи задаётся время её исполнения. Оно может измеряться в миллисекундах, часах и даже днях.
Конфигурация задачи в ПЛК
Ну а для самой задачи задаётся то, что будет выполняться:
Настройка вызова подпрограммы в задаче
Связь с ПЛК и заливка программы
Ну и теперь нам осталось только залить нашу программу в ПЛК. Для этого мы идём в меню «Онлайн -> Параметры связи» и создаём там подключение по сетке через протокол TCP.
Настройка связи с ПЛК по протоколу IP
После этого достаточно выбрать команду подключения к ПЛК:
Начинаем подключение к ПЛК
CodeSys устанавливает связь с ПЛК и спрашивает нас о том, что нам надо сделать с программой. Если ПЛК только с завода и там нет никакой программы — то CodeSys предложит загрузить новую программу в ПЛК. А если программа в ПЛК уже была, то система предложит загрузить новую или перезаписать программу полностью:
Запрос среды разработки о загрузке программы в ПЛК
У ПЛК и здесь всё отличается от логических реле. В логическом реле программа загружается навсегда и будет работать после выключения и включения питания реле. А у ПЛК программа загружается просто в память и работает только для момента выключения питания ПЛК. Это сделано специально, чтобы можно было отлаживать программу и не испортить рабочую систему и программу. Скажем, можно поиграться с другой версией программы, а потом передёрнуть питание — и ПЛК будет работать по старому.
Если же мы хотим записать нашу программу в ПЛК навсегда (чтобы она работала при следующих включениях питания), то нам надо выбрать пункт «Создание загрузочного проекта». В этом случае программа без запросов записывается в ПЛК и будет выполняться при следующем включении его питания.
Создание загрузочного проекта в ПЛК
Из дополнительных возможностей можно загрузить в ПЛК исходники проекта или любой файл (размером несколько мегабайт). Это полезно, если мы хотим оставить внутри ПЛК архив документации по всему проекту.
При подключенной связи с ПЛК можно наблюдать как и чего работает и производить отладку программы. Вот как выглядит это на нашей:
Работа среды CodeSys в режиме отладки программы
Собственно по программированию всё. Если сказать всё сжато, то для того чтобы начать работать с ПЛК, надо занести в него все его ресурсы и внешние модули. После этого можно назначить переменные по адресам и писать обычный программный код.
Библиотеки
А ещё под CodeSys есть много библиотек с готовыми функцями. Самая известная среди них — библиотека OSCAT. Я её скачал и нашёл там много интересного. Например вот модуль CLICK, который может определять одинарное, двойное и тройное нажатие на кнопку. При помощи него можно делать например так, чтобы если мы погасили весь свет одной кнопкой, то при двойном нажатии на неё весь свет включился там же, где и был включен.
Пример из библиотеки OSCAT: Определение количества нажатий
А вот навороченный диммер с кучей предустановок и возможностей. Сигнал с диммера можно направить на модуль аналогового вывода или на диммер, который управляется по Modbus напрямую и управлять освещением.
Пример из библиотеки OSCAT: Многофункциональный диммер
Ну а я же сделал для заказчика простую программу включения и выключения света и реализацию функции защиты от протечек. Про это я расскажу позже в третьей части статьи.
Релейная логика и функциональные блоки ПЛКс CODESYS
Релейная логика ПЛК и функциональные блоки с CODESYSЗНАТЬ
Программное обеспечение для образования и промышленности
Хотите узнать, как программировать ПЛК в релейной логике и функциональные блок-схемы, сделайте HMI (человек-машина Интерфейсов) и иметь возможность запускать свои программы на смоделированном ПЛК? Релейная логика и функциональные блоки ПЛК с CODESYS V3. 5 показывает пошаговые инструкции по программированию ПЛК. с помощью бесплатного программного обеспечения CODESYS.
Просто загрузите бесплатное программное обеспечение CODESYS по адресу http://store.codesys.com/codesys.html?___store=en&___from_store=default
затем выполните упражнения из PLC Ladder Logic и
Функциональные блоки с CODESYS V3.5 , чтобы узнать, как
программировать на лестничной логике и схемах функциональных блоков, строить HMI,
и запускайте свои программы на смоделированном ПЛК.Вам не нужен
фактический ПЛК для использования ПЛК Релейная логика и функции
Блокирует с помощью CODESYS V3.5.
ПЛК Релейная логика и функции
Блоки с CODESYS V3.5 пишутся повседневно,
легкий для понимания язык, который шаг за шагом показывает, что нужно
делать. ПЛК Релейная логика и функциональные блоки с CODESYS V3. 5 записывается на.html, чтобы вы могли
используйте свой любимый интернет-браузер с гиперссылками, закладками,
и поиск слов. ПЛК Релейная логика и
Функциональные блоки с CODESYS V3.5 не требуют
установка программного обеспечения на ваш компьютер. Просто дважды щелкните
в Table of Contents.html и в вашем интернет-браузере
запускает программу.
Что такое CODESYS ?
- Релейные диаграммы (LD)
- Функциональные блок-схемы (FBD)
- Структурированный текст (ST)
- Списки инструкций (IL)
- Последовательные функциональные схемы (SFC)
- Непрерывные функциональные схемы (CFC)
CODESYS используется такими компаниями, как Bosch, ABB, Moeller, Wago, Eaton, Festo и другие для программирования своих ПЛК.
What PLC Релейная логика и функциональные блоки с CODESYS V3.5 делает:
Это руководство покажет вам шаг за шагом:
- как загрузить, установить и запустить CODESYS
- как использовать CODESYS для программирования лестничных диаграмм ПЛК
- как использовать CODESYS для программирования функционального блока ПЛК диаграммы
- как использовать CODESYS для запуска вашей программы в
Имитация ПЛК
- , как использовать CODESYS для создания HMI (человек-машина
Интерфейс или визуализация)
- как добавить новые ступени (сети) в программу
- как создавать ветки в программе Ladder Logic
- как принудительно включать и выключать входы и выходы
- что делают функции Set и Reset
- что такое функции таймера и как их использовать
- что такое функции счетчика и как их использовать
- что такое прыжки и метки и как их использовать
- что такое логические операторы и как их использовать
- какие двоичные, шестнадцатеричные и восьмеричные числа есть
- что такое математические операторы и как их использовать
- что такое операторы сравнения и как их использовать
- что такое операторы выбора и как их использовать
What PLC Релейная логика и
Функциональные блоки с CODESYS V3. 5 НЕ выполняет:
В этом руководстве не рассматривается:
- Структурированный текст (ST)
- Списки инструкций (IL)
- Последовательные функциональные схемы (SFC)
- Непрерывные функциональные схемы (CFC)
- Как подключить CODESYS к конкретному ПЛК
Это руководство написано профессиональным инженером с 14 лет производственного опыта и 20 лет опыта преподавания электротехнические технологии на уровне колледжа.
Если вы хотите научиться использовать CODESYS для программирования PLC Structured Текстовые программы, вы можете приобрести мой структурированный текст для ПЛК с CODESYS Учебник по V3.5 на http://www.knoware-online.com/st_codesys.html.
Или, если вы хотите узнать, как использовать CODESYS для программирования ПЛК Список инструкций, вы можете приобрести мой Список инструкций ПЛК с Руководство по CODESYS V3. 5 на http://www.knoware-online.com/il_codesys.html.
Если вы хотите запускать и решать программы лестничной логики без использования
CODESYS вы можете приобрести мой PLC Simulator 10 по адресу http: // www.knoware-online.com/pc-plc.html.
Этот симулятор превращает ваш компьютер в ПЛК, имеет “внешний вид”
Программное обеспечение Allen-Bradley RSLogix Micro (хотя и не точное),
запускает и решает программы релейной логики, которые вы пишете, и позволяет вам
строить машины с концевыми выключателями, контрольными лампами, селектором
переключатели, соленоиды и конвейеры, которые перемещаются в ответ на
лестничные программы, которые вы пишете.
Как использовать это руководство:
Чтобы использовать это руководство, загрузите бесплатную копию CODESYS по адресу http: // store.codeys.com/codesys.html?___store=en&___from_store=default,
затем выполните упражнения из глав с 1 по 13 этого
руководство. Это руководство можно использовать без
загрузка CODESYS, но преимущества практического программирования
опыт будет утерян.
В главах с 1 по 5 этого руководства объясняется, как загрузить
CODESYS, установите его, запрограммируйте цепочку, создайте HMI и запустите
программа.
ПЛК Релейная логика
и функциональные блоки
с
CODESYS V3.5
Содержание
Глава
1. Введение
Что такое ПЛК?
История ПЛК
Что такое CODESYS?
Кто пользуется CODESYS?
Что делает эта программа
Как использовать эту программу
Что вам нужно для этого
программа
2. Запуск CODESYS
Загрузить CODESYS
Запустить CODESYS
Начать новый проект
Сохранить проект
Сводка
3. Программирование вашей первой цепочки
Откройте проект, созданный в главе 2
Откройте PLC_PRG
Вставьте контакт
Вставьте катушку
Вставьте комментарий цепочки
Просмотреть как FBD
Сохранить проект
Сводка
4. Создание HMI
Откройте проект, сохраненный в главе 3
Создайте HMI
Запрограммируйте микропереключатель
Запрограммируйте лампу
Сохраните проект
Сводка
5. Запуск вашей программы
Откройте проект, сохраненный в главе 4
Выберите Simulation PLC
Создайте (скомпилируйте) программу
Войдите в Simulation PLC
Запустите PLC
Закройте переключатель с HMI
Закройте переключатель, нажав на него
Остановить ПЛК
Выйти из ПЛК
Сохранить сводку проекта
6 . Реле фиксации и разблокировки (установка, сброс)
Начать новый проект
Программирование установки катушки
Программирование катушки сброса
Создание HMI
Запуск программы
Программирование функционального блока SR и RS
Просмотр как FBD
Сохранение проекта
Сводка
7. Таймеры (TON, TOF, TP)
Запустить новый проект
Запрограммировать таймер TON
Программа PT и ET
Программировать Контакты таймера TON
Запустить программу TON
Запрограммировать таймер TOF
Запустить программу TOF
Запрограммировать таймер TP
Запустите программу TP
Просмотр как FBD
Сохраните проект
Сводка
8. Счетчики (CTU, CTD, CTUD)
Запуск нового проекта
Запрограммировать счетчик CTU
Запрограммировать CTU HMI
Запустить программу CTU
Запрограммировать счетчик CTD
Запрограммировать CTD HMI
Запустить программу CTD
Запрограммировать счетчик CTUD
Запрограммировать CTUD HMI
Запустить программу CTUD
Просмотреть как FBD
Сохранить проект
Сводка
9. Переходы и подпрограммы
Запуск нового проекта
Запрограммировать переход и метку
Запустить программу перехода и метки
Создать новый программный модуль
Запрограммировать новый программный модуль
Запрограммировать визуализацию
Запустить программу перехода к подпрограмме
Изменить основную Задача
Просмотреть как FBD
Сохранить проект
Сводка
10. Логические операторы (AND, OR, XOR, MOVE)
Начать новый проект
Запрограммировать условие AND
Что делать, если входные данные – числа?
И два десятичных числа
И два двоичных числа
И два шестнадцатеричных числа
И два восьмеричных числа
И две переменные
Запрограммируйте условие ИЛИ
Запрограммируйте условие исключающего ИЛИ
Сохраните проект
Сводка
11. Математические операторы (ADD, SUB, MUL, DIV, MOD)
Начало нового проекта
Программирование функции ADD
Программирование SUB-функции
Программирование функции MUL
Программирование функции DIV
Программирование функции MOD
Измените переменные на тип REAL
Сохраните проект
Сводка
12. Операторы сравнения (EQ, NE, LT, LE, GT, GE)
Начать новый проект
Запрограммировать функцию EQ
Запрограммировать функцию NE
Программа функция LT
Программирование функции LE
Программирование функции GT
Программирование функции GE
Сохранение проекта
Сводка
13 Операторы выбора (SEL, MUX, MIN, MAX, LIMIT)
Начать новую Проект
Программирование функции SEL
Программирование функции мультиплексирования
Программирование функции MIN
Программирование функции MAX
Программирование функции LIMIT
Сохранение проекта
Su mmary
Индекс
Образец выдержки из… Глава 13. Операторы выбора (SEL, MUX, MIN, MAX, LIMIT) Шаг 3) Программирование функции мультиплексирования
Вставьте цепочку после цепочки 3 и присвойте значение 4 для Input4, как показано на рисунке 3 ниже. Сделать ввод 4 Тип REAL.
Рисунок 3 Добавление входа 4 Добавьте новые ступени 6 и 7, как показано на рисунке 4
ниже.Запрограммируйте счетчик вверх (CTU) на ступени 6 и
мультиплексор (MUX) в звене 7. Мы будем использовать счетчик
включить мультиплексор. Введите 3 в качестве значения PV счетчика.
Добавьте два дополнительных входа в MUX, щелкнув его правой кнопкой мыши, затем
выбрав «Добавить ввод» (сделайте это дважды). Программа CTR1.CV на K
вход MUX, и Input1 – Input4 на другом
входы. Результат программы 1 как выходная переменная для мультиплексора.
и сделайте тип REAL. Все входы, кроме K, и
выход должен иметь тот же тип данных для мультиплексора.Ваш экран
должен выглядеть как на рисунке 4 ниже.
Рисунок 4 Добавление CTU и MUX
Функция MUX подобна переключателю с несколькими позиции. Вход K определяет, какой вход пройдет к выходу. Когда K = 0, верхний ввод проходит через выход MUX, когда K = 1, следующий вход проходит, и поэтому вперед. На рисунке 5 ниже показана функция MUX как селектор. выключатель.
Рисунок 5 MUX как селекторный переключатель
Запустить программу. См. Главу 5, если вам нужно напомнить запуск программы. CV (текущий счетчик) счетчика CTR1 должно быть 0 в начале. Если не 0, нажмите Online >> Reset Cold, затем снова запустите ПЛК. Обратите внимание, что K 0 на MUX, потому что вход K – CTR1.CV, поэтому Input1 получает через выход MUX.
Требования к аппаратному и программному обеспечению:
Berghof Automation: CODESYS
Эксперты Berghof знают из многолетнего опыта, что совместимость и открытость, в частности, являются важными критериями для клиентов Berghof. Вот почему Berghof Automation & Control Solutions на протяжении многих лет постоянно полагается на открытую платформу управления Codesys 3.5. Команда Berghof всегда в восторге от уникальной гибкости и функциональности программной платформы CODESYS, одного из наиболее широко используемых инструментов программирования в мире.Платформа основана на средстве программирования IEC 61131-3 «Система разработки CODESYS». Этот язык программирования улучшает жизненный цикл программного обеспечения и облегчает анализ требований, проектирование, создание, тестирование, проверку, установку, эксплуатацию и обслуживание.
CODESYS поддерживает языки программирования IL, LD, FBD, ST, AS и CFC. Это упрощает реализацию приложений со сложной распределенной архитектурой. CODESYS – это проверенный на международном уровне инженерный инструмент, теперь он зарекомендовал себя как мировой стандарт.Программный инструмент обеспечивает программируемую визуализацию, а также программируемое управление безопасностью и перемещением. Все это также доступно в готовых модулях из программных библиотек. Контроллеры Berghof используют Linux в качестве платформы, поэтому можно легко комбинировать широкий спектр программных модулей.
Используя открытый стандарт CODESYS, Berghof предлагает вам как пользователю многочисленные преимущества:
- Отсутствие проприетарных решений – использование стандартных решений и функций 3S
- CODESYS V3 бесплатно – единовременная покупка компании. лицензия, дальнейшие стандартные обновления 3S бесплатны
- Простое обновление и понижение между различными версиями CODESYS по мере необходимости
- Нет ограничений на используемые устройства
- Нет ограничений при использовании сторонних библиотек
- Изменить с других стандартные платформы V3 для системы Berghof очень просто
- Неограниченное использование программного обеспечения, доступного в магазине CODESYS
- Совместимость с различными плагинами и расширениями
Стандарт Berghof CODESYS предлагает широкий спектр вариантов бесплатного программного обеспечения, избранных функций среди прочего:
- Аналоговые входы с единицами измерения без необходимого преобразования 900 68
- Защита приложений путем привязки к оборудованию
- Настраиваемый BootLogo
- Настраиваемый WebLogo
- Настраиваемые кнопки
- Счетчик часов работы
- CODESYS Security Manager для шифрований и сертификатов
- DHCP-клиент для автоматической настройки IP
- HTTPS Webconfig
- Внутренняя диагностика память (журнал диагностики для автономного анализа ошибок)
- Конфигурация IP через меню дисплея
- Возможность настройки 2-й IP-адрес на интерфейсах Ethernet
- Функция Multi-Touch
- Функция снимка экрана
- Визуализация цели
- Тепловой датчик
- Конфигурация через Интернет интерфейс
- Дополнительные шрифты
- Поддержка часовых поясов вкл.летнее / зимнее время
- Безопасность на основе сертификатов
- Лицензия на выполнение CODESYS
Система разработки CODESYS – программный инструмент автоматизации IEC 61131-3 – Сторонние продукты и услуги
CODESYS ® – это независимая среда разработки для программирования приложений контроллера в соответствии со стандартом промышленного программирования IEC 61131-3. Это основа комплексного пакета, который охватывает всю программную часть автоматизации.Современные редакторы, функции отладки и интегрированные компиляторы позволяют легко справляться со всеми инженерными задачами. Систему разработки CODESYS можно легко расширить в соответствии с индивидуальными требованиями. Чтобы иметь возможность выполнять приложения автоматизации, система исполнения CODESYS Control должна быть перенесена на целевое устройство с помощью наборов инструментов. Благодаря интегрированной визуализации пользователи могут создавать и анимировать профессиональные пользовательские интерфейсы для тестирования, ввода в эксплуатацию и обслуживания машин и установок.Доступны различные клиенты среды выполнения визуализации.
В дополнение к стандартным технологиям, таким как FDT, CODESYS поддерживает все стандартные системы полевых шин, такие как Profibus, CAN, ModBus, EtherCAT, Profinet или EtherNET / IP со встроенными реализациями и частично со стеками протоколов в виде переносимых библиотек CODESYS. Проверенные в полевых условиях компоненты управления движением делают систему программирования IEC 61131-3 комплексным решением для задач движения. Включены CAM, 3D CNC / DIN66025 и платформенно-независимые программные модули библиотеки для управления осями.CODESYS Safety SIL2 и SIL3 – это интегрированные продукты безопасности, сертифицированные TÜV по стандарту IEC 61508. Все продукты безопасности состоят из компонентов безопасности в среде исполнения и системе программирования.
CODESYS – это цель для вывода Simulink PLC Coder ™ от MathWorks. Это означает, что смоделированные модели и архитектуры могут быть преобразованы в код IEC 61131-3 (структурированный текст ST). Этот код можно включить в прикладное программное обеспечение ПЛК, а затем связать и скомпилировать для систем автоматизации.PLC Coder поддерживает обе доступные версии CODESYS: CODESYS V3 и CODESYS V2.3.
CODESYS
В течение многих лет языки программирования IEC 61131-3 использовались в качестве предпочтительной открытой среды программирования в ветряных турбинах. Вот почему DEIF решил интегрировать новейшую версию CODESYS V3 в платформу контроллера ветряных турбин AWC 500, которая обеспечивает современную среду программирования с простыми функциями отладки и очень простой интеграцией внешних библиотек, таких как Modbus или CANopen. устройств.
Скачать
Свяжитесь с DEIF ([email protected]) для получения информации о доступе для загрузки через зону FTP AWC 500.
Новейшая версия CODESYS V3 позволяет легко программировать на всех языках, поддерживаемых IEC 61131-3. Функция поиска автоматически определяет местонахождение всех модулей AWC 500, подключенных к системе шины EtherCat. Предустановленные прикладные модули обеспечивают очень легкий доступ к коммуникационным интерфейсам и периферийным устройствам. Основные функции среды CODESYS представлены ниже, а дополнительную информацию можно найти в полной технической документации, доступной в Интернете.
Редактор программирования и отладка
Расширенный интерфейс отладки дает полный контроль над всеми внутренними переменными без использования каких-либо дополнительных инструментов. Функцию трассировки легко настроить и использовать для отслеживания временных рядов выбранных переменных в приложении.
Конфигурация ввода / вывода
Платформа AWC 500 включает файлы конфигурации, которые можно легко импортировать в CODESYS V3, и упрощает настройку ввода / вывода и отображение переменных в памяти. Файлы конфигурации для всех модулей ввода-вывода DEIF AWC 500 включены в пакет CODESYS, который поставляется с контроллером AWC 500.
Визуализация
CODESYS V3 предлагает расширенный инструмент визуализации, который поддерживается любой средой веб-браузера. Инструмент визуализации интегрирован в среду CODESYS V3 и позволяет легко проектировать визуализацию вместе с программированием приложений. Обычно к визуализации можно получить доступ со стандартных панельных ПК или рабочих станций. Кроме того, DEIF предлагает загрузчик на основе JAVA для веб-визуализации, который может быть запущен на любой системе на базе ПК без необходимости использования веб-браузера.
Control Engineering | Бесплатное программное обеспечение для программирования ПЛК
Бесплатное программное обеспечение для программирования ПЛК позволяет студентам учиться самостоятельно, а не в лаборатории. Предоставлено: AutomationDirect / База данных новых продуктов для инженеров
В условиях пандемии и перехода школ к дистанционному обучению профессора ищут способы получить студентам практический опыт использования программируемых логических контроллеров (ПЛК) без лаборатории. Я также искал способы представить концепции программирования ПЛК таким образом, чтобы люди могли следовать им дома, не покупая дорогостоящее оборудование и программное обеспечение, поэтому я подумал, что поделюсь тем, что нашел здесь.
Шесть важных аспектов
У меня много мнений и предпочтений в отношении программного обеспечения для программирования ПЛК, но я соединил это с несколькими основными моментами, которые, на мой взгляд, имеют отношение к образованию.
- Бесплатно
- На основе тегов
- Поддержка языков IEC 61131
- Поддержка определяемого пользователем типа (Struct)
- Функции повторного использования кода, такие как функции и дополнительные инструкции
- Встроенное моделирование.
Восемь бесплатных программ для программирования ПЛК на рассмотрение
Я поискал все бесплатные программы для программирования, которые смог найти, и перечислил их здесь.Я много работал с некоторыми из них. Остальное я скачал и попробовал ради этой статьи. Вот программное обеспечение в произвольном порядке.
- Верстак Connected components
- Machine expert basic
- TwinCAT 3
- Производительность
- Do-more
- CoDeSys
- Открыть ПЛК
- Sysmac Studio
Рабочий стол Connected components
Я использовал это программное обеспечение для программирования ПЛК, человеко-машинного интерфейса и настройки приводов.Мне всегда кажется, что это немного неуклюже, но это с точки зрения попытки максимизировать эффективность работы. Я считаю, что с точки зрения изучения программирования ПЛК это разумный вариант.
CCW поддерживает только три из языков IEC 61131, но, на мой взгляд, это три правильных (LD, ST, FBD). Последняя версия (v12) также включает симуляцию в бесплатную версию. Самый большой недостаток для образования – более продвинутые функции программирования, недоступные в бесплатной версии.
Последняя мысль: это сделано Алленом Брэдли, но основано на Microsoft Visual Studio. Он устроен иначе, чем в типичных средах AB, поэтому опыт работы с CCW вряд ли применим в RS5000 или RSLogix500. Эта среда немного ближе к некоторым другим приложениям на основе Visual Studio, поэтому есть еще некоторая передача на другие бренды.
Machine expert basic
Modicon известен как один из первых производителей ПЛК. Сейчас он принадлежит Schneider Electric и продолжает производить ПЛК.Их Machine Expert (ранее известная как SoMachine) поставляется в бесплатной версии («Basic»), которая достаточно хороша для обслуживания существующей машины. Одна вещь, которая мне показалась интересной, – это их реализация языков IEC 61131, позволяющая автоматическое преобразование между языками (с некоторыми ограничениями).
Процедура релейной логики может отображаться и редактироваться, например, как список команд. Это может быть удобный инструмент для изучения языков, хотя он, вероятно, не покажет, как человек будет писать код на разных языках.
После использования программы у меня сложилось впечатление, что она довольно проста в использовании, но все же кажется чужой по сравнению с большинством других. Например, у Аллена Брэдли нормальная компоновка и способ работы, тогда как у многих других производителей компоновка и ощущение чего-то среднее между ней и Beckhoff. По ощущениям Machine Expert выходит за рамки этого континуума, и я думаю, что это моя единственная жалоба с точки зрения образования. Он прост в использовании и имеет самый простой режим моделирования, который я когда-либо видел. Конечно, стоит рассмотреть для использования в классе.
TwinCAT 3
Beckhoff немного необычен в промышленной автоматизации. Все их ПЛК на самом деле являются промышленными ПК (IPC). Среда программирования основана на Microsoft Visual Studio, поэтому она немного похожа на CCW, но она более совершенная и мощная. Beckhoff лицензирует среду выполнения (часть, которая находится в IPC), а не IDE (среду программирования), поэтому программное обеспечение является бесплатным с полным набором функций.
Это самая мощная среда программирования для промышленной автоматизации, которую я знаю, и приятно иметь доступ ко всей этой мощности бесплатно.Однако часть этой силы достигается за счет того, что она отличается от того, что человек может увидеть в индустрии автоматизации США. Это отличная среда программирования для программистов, но может быть слишком сложной для специалиста по обслуживанию, у которого будут минимальные обязанности по программированию. По этой причине я не могу рекомендовать его для общего обучения программированию.
Пакет для повышения производительности
AutomationDirect нацелен на рынок недорогих продуктов, поэтому бесплатное программное обеспечение часто является его частью.Линейка ПЛК Productivity – это лучшее предложение в этой области. Программное обеспечение не обладает расширенными функциональными возможностями, но достаточно отточено для того, что делает. Я использовал это в реальном проекте и не возражал бы использовать его снова. Его стоит рассмотреть как платформу для обучения. К недостаткам можно отнести несколько дополнительных функций, программирование только релейной логики и отсутствие моделирования.
Do-more
Это средняя линейка ПЛК AutomationDirect. Похоже на строку «Производительность», но на основе адреса.Большим преимуществом этого приложения в образовании является встроенное моделирование. Это платформа, предназначенная только для лестничной логики. Это нормально для изучения основ, но я думаю, что обучение ПЛК должно также включать структурированный текст и функциональные блоки.
CoDeSys
Smart Software Solutions (S3) разрабатывает CoDeSys для использования на оборудовании других компаний, поэтому лицензирование происходит именно здесь. Преимущество заключается в том, что это программное обеспечение довольно гибкое и подходит для множества вариантов использования. CoDeSys в основном используется для небольших производителей оборудования, крупных брендов, чья основная деятельность не связана с ПЛК, и периферийных устройств.
Иногда производитель оборудования предлагает индивидуализированные версии среды CoDeSys, а обычная версия доступна бесплатно на веб-сайте CoDeSys. Я не работал с этим над реальными проектами, но немного поиграл с ним из любопытства. Он выглядит полнофункциональным, простым в использовании и имеет простой в использовании симулятор. Вероятно, это хороший вариант для изучения программирования ПЛК. В качестве бонуса этот пакет также включает программирование HMI.
OpenPLC
Это новый игрок в области ПЛК.Как следует из названия, это открытый исходный код, который можно загрузить бесплатно. Он реализует все пять языков МЭК 61131 и имеет встроенный симулятор. Я впечатлен тем, что такой молодой проект с открытым исходным кодом выглядит так же хорошо, как и этот. При этом, пока я возился с ним, я не думаю, что он еще готов к прайм-тайму.
Omron Sysmac Studio
Я довольно много работал с Omron Sysmac Studio в полевых условиях. Это ПЛК, человеко-машинный интерфейс и программирование роботов – все в одном. Он прост в использовании, кажется знакомым по сравнению с другими громкими именами, и в него встроено моделирование.Он не поддерживает список инструкций или последовательную схему функций, что меня устраивает. Проблема в том, что не обязательно иметь бесплатную версию, но есть бесплатная онлайн-версия Sysmac Studio. Это работает на виртуальной машине в облаке и обеспечивает доступ в течение 30 минут одновременно. Вы можете загружать файлы в виртуальную машину, так что это, вероятно, может работать в настройках класса.
Таблица: Структура программного обеспечения ПЛК
Марка | Программное обеспечение | Бесплатная полная / частичная | МЭК 61131 | На основе тега | Struct | Повторное использование кода | Симуляторы |
AB | CCW | Частичная (стандартная версия) | Частично: LD, ST, FBD | Да.Неуклюжий с IO | Платная версия | Платная версия | Платная версия |
Modicon | MachineExpert Basic | Частичная (базовая версия) | Есть | Есть | Функциональный и функциональный блок | Да, не уверен, если в Basic | |
Beckhoff | TwinCAT 3 | Полный | Есть | Есть | Есть | Есть | Сложное |
Прямая автоматизация | Productivity Suite | Полный | №Только лестница | Есть | Limited | Limited | № |
Прямая автоматизация | Do-more | Полный | № Только лестница | № | Limited | Limited | Есть |
3S | CoDeSys | Полный | Есть | Есть | Есть | Функциональный и функциональный блок | Есть |
OpenPLC | Полный | Есть | Есть | Есть |
Эта статья изначально появилась в блоге Breen Machine Automation Services.Отредактировал Крис Вавра, менеджер по веб-контенту, Control Engineering , CFE Media and Technology, [email protected].
В программном обеспечении промышленной автоматизации CODESYS обнаружено 10 критических недостатков
Исследователи кибербезопасности в четверг раскрыли до десяти критических уязвимостей, влияющих на программное обеспечение автоматизации CODESYS, которые могут быть использованы для удаленного выполнения кода на программируемых логических контроллерах (ПЛК).
«Чтобы воспользоваться уязвимостями, злоумышленнику не требуется имя пользователя или пароль; достаточно иметь сетевой доступ к промышленному контроллеру», – заявили исследователи из Positive Technologies.«Основная причина уязвимостей – недостаточная проверка входных данных, которая сама может быть вызвана несоблюдением рекомендаций по безопасной разработке».
Российская компания по кибербезопасности отметила, что она обнаружила уязвимости в ПЛК, предлагаемом WAGO, который, среди других компаний, занимающихся технологиями автоматизации, таких как Beckhoff, Kontron, Moeller, Festo, Mitsubishi и HollySys, использует программное обеспечение CODESYS для программирования и настройки контроллеров.
CODESYS предлагает среду разработки для программирования приложений контроллера для использования в промышленных системах управления.Немецкая софтверная компания поблагодарила Вячеслава Москвина, Дениса Горюшева, Антона Дорфмана, Ивана Курнакова и Сергея Федонина из Positive Technologies и Йоси Реувена из SCADAfence за сообщение о недостатках.
Шесть самых серьезных недостатков были выявлены в компоненте веб-сервера CODESYS V2.3, который используется CODESYS WebVisu для визуализации человеко-машинного интерфейса (HMI) в веб-браузере. Уязвимости потенциально могут быть использованы злоумышленником для отправки специально созданных запросов веб-сервера для запуска условия отказа в обслуживании, записи или чтения произвольного кода в и из памяти системы времени выполнения и даже для сбоя веб-сервера CODESYS.
Все шесть ошибок получили оценку 10 из 10 по шкале CVSS –
.- CVE-2021-30189 – переполнение буфера на основе стека
- CVE-2021-30190 – Неправильный контроль доступа
- CVE-2021-30191 – буферное копирование без проверки размера ввода
- CVE-2021-30192 – неправильно реализованная проверка безопасности
- CVE-2021-30193 – Запись за пределы допустимого диапазона
- CVE-2021-30194 – Чтение за пределами границы
Отдельно три других слабых места (оценка по CVSS: 8.8), раскрытые в системе выполнения Control V2, могут быть использованы для создания злонамеренных запросов, которые могут привести к состоянию отказа в обслуживании или использоваться для удаленного выполнения кода.
- CVE-2021-30186 – Переполнение буфера на основе кучи
- CVE-2021-30188 – переполнение буфера на основе стека
- CVE-2021-30195 – неправильная проверка ввода
Наконец, уязвимость, обнаруженная в библиотеке CODESYS Control V2 Linux SysFile (CVE-2021-30187, оценка CVSS: 5,3), может использоваться для вызова дополнительных функций ПЛК, что, в свою очередь, позволяет злоумышленнику удалять файлы и нарушать критические процессы.
«Злоумышленник с низкими навыками сможет воспользоваться этими уязвимостями», – предупреждает CODESYS в своем информационном сообщении, добавляя, что не обнаружил известных общедоступных эксплойтов, специально нацеленных на них.
«Их использование может привести к удаленному выполнению команд на ПЛК, что может нарушить технологические процессы и привести к промышленным авариям и экономическим потерям», – сказал Владимир Назаров, руководитель отдела безопасности АСУ ТП компании Positive Technologies. «Самый известный пример использования подобных уязвимостей – использование Stuxnet.«
Обнаружение недостатков CODESYS происходит вслед за аналогичными проблемами, которые были устранены в ПЛК Siemens SIMATIC S7-1200 и S7-1500, которые могут быть использованы злоумышленниками для удаленного доступа к защищенным областям памяти и достижения неограниченного и необнаруженного выполнение кода.
Защита программного обеспечения ПЛК с помощью CoDeSys V3.5 и CodeMeter: Wibu-Systems
Защита программного обеспечения относится не только к программному обеспечению ПК. Есть также важные причины для защиты программного обеспечения ПЛК: машины и установки, а также ноу-хау встроенного в них программного обеспечения должны быть защищены от обратного проектирования.Это также позволяет внедрять новые бизнес-модели и гарантирует целостность системы. Оливер Винзенрид, исполнительный директор Wibu-Systems, объясняет, что возможно сегодня.
Сделал ли инцидент со Stuxnet более осведомленным производителей и пользователей об опасностях, исходящих от вирусов и т. Д., И предприняли ли они необходимые шаги, чтобы защитить себя?
Пользователи и проектировщики машин теперь лучше осведомлены о необходимости обеспечения безопасности в автоматизации и встроенных системах, чем до инцидента со Stuxnet.Многие правительства начали программы и создали «центры киберзащиты» для защиты критически важной инфраструктуры, такой как системы управления дорожным движением или предприятия энергетики и водоснабжения, которые должны быть защищены от атак как со стороны террористов, так и хакеров. В выпуске воскресной газеты «Frankfurter Allgemeinen» от 23 октября 2011 г. Михаэль Ханг, президент Федерального управления информационной безопасности Германии, BSI, призвал промышленность сообщать об атаках червя Duqu. Symantec впервые предупредила об этом черве, который во многом похож на червя Stuxnet.
В то же время несанкционированные манипуляции становятся все более серьезной проблемой. Пример: производители ветряных электростанций стремятся помешать операторам настраивать свои ветряные турбины для выработки большего количества энергии, чем указано. Это увеличит износ деталей, все еще находящихся под гарантией, которые затем производитель должен будет заменить.
Как можно эффективно защитить системы автоматизации от манипуляций?
Системы технической защиты затрудняют перепроектирование оборудования, систем управления и машин.Встроенное программное обеспечение эффективно защищено, если программный код зашифрован. Ключ шифрования надежно хранится либо в ключе, либо в программном обеспечении, которое затем активирует и привязывает ключ к определенному устройству или системе управления.
Защита от реверс-инжиниринга достигается за счет сохранения программного кода в целевой системе в зашифрованном формате, так как это не позволяет дизассемблеру статически анализировать его. Существуют также механизмы для обнаружения «атаки», которые немедленно приводят к блокировке лицензии и, следовательно, останавливают декодирование большего количества программного обеспечения.
Производитель подписывает программный код цифровой подписью, чтобы предотвратить его несанкционированное изменение или изменение. Механизм защиты в целевой системе позволяет загружать и выполнять только правильно подписанные программные компоненты. Или, другими словами: программа, которой манипулируют, не запускается.
Wibu-Systems и 3S-Smart Software Solutions работают вместе с 2010 года над интеграцией технологии CodeMeter в систему программирования и выполнения CoDeSys PLC. Какая сейчас ситуация?
3S выпускает версию 3.5 CoDeSys на SPS / IPC / Drives в этом году. Технология CodeMeter, известная здесь как CoDeSys Security Key, полностью интегрирована в эту версию. Вам нужно только установить соответствующий флажок, чтобы сгенерировать защищенный код из среды разработки. Затем код может быть выполнен, когда ключ безопасности CoDeSys подключен к целевой системе.
Новая концепция безопасности помогает предотвратить копирование или передачу ценных ноу-хау в другие системы управления. Другие функции безопасности, такие как «подписанное приложение» и «шифрованная связь» между ПК для программирования и ПЛК, удовлетворят потребность в защите целостности.Интегрированное управление пользователями, которое защищает доступ к проектам или исходному коду, эффективно предотвращает сторонние манипуляции с системами управления.
Разве раньше такое не было возможно?
До сих пор система разработки CoDeSys содержала только защиту паролем. Программы PLC в целевых системах не были защищены. Использовать CmDongles было невозможно, так как им требовалось исполняемое программное обеспечение, которого не было. Новое в версии CoDeSys 3.5: с помощью правильного ключа теперь можно защитить программный код на любой платформе.
Глубокий уровень интеграции в CoDeSys открывает новые возможности. Отдельные программные компоненты больше не нужно лицензировать немедленно. Эта функция, известная как Feature-on-Demand, означает, что функции, присутствующие в программном обеспечении, могут быть «включены» по мере необходимости. Их можно включить через Интернет или офлайн с помощью файла лицензии после распространения программного обеспечения. Таким образом, производитель станков может использовать Feature-on-Demand для индивидуальной продажи функций своих машин как до, так и после отгрузки.Например, он может предложить дешевую стартовую модель, чтобы конкурировать с дешевыми иностранными поставщиками, и дорогую модель с множеством дополнительных услуг.
Поставщики систем управления могут продавать фиксированное количество лицензий для целевых систем с оплатой по факту использования. Затем инженер по установке или установке может активировать лицензии в своих системах управления по мере необходимости. Производитель также может использовать механизмы оплаты по факту использования, чтобы сдавать свои машины в аренду и выставлять счета клиентам в соответствии с их использованием. Это будет гарантировать, что ему заплатят!
И, наконец, что не менее важно, этот метод также может быть использован инженером-технологом для защиты своего исходного кода.Он может выбрать, какие части могут видеть и изменять его клиенты (конечный пользователь), а какие части отображаются в виде черного ящика, то есть их можно использовать, но нельзя изменять.
Как управляются все эти функции или возможности?
Управление лицензиями интегрировано в процесс продаж, т.е. лицензиям присваиваются «номера деталей», как и механическим компонентам машины. Номер появляется в списках деталей системы ERP. Система ERP, например SAP, подключена к License Central через веб-интерфейс, поэтому лицензии могут генерироваться автоматически.Они передаются в систему управления машиной либо в режиме онлайн, либо в автономном режиме с помощью файла.
Всегда ли в CoDeSys доступны описанные выше функции безопасности?
Да, они будут, но для их использования вам понадобится ключ безопасности CoDeSys. Ключ можно приобрести в компании 3S. Подобные типы ключей безопасности также доступны для целевых платформ. Все варианты оборудования CodeMeter могут использоваться в качестве ключей безопасности, например, USB CmStick / M или CmCard в формате MicroSD, SD или CF-карты.Они только стоят немного дороже, чем обычные промышленные карты памяти.
Существует ли подобное сотрудничество, например, с производителями систем управления, помимо сотрудничества с 3S?
3S проделала новаторскую работу по глубокой интеграции CodeMeter в CoDeSys. Это первый поставщик ПЛК, предложивший такое решение. Исследовательский центр информационных технологий (FZI) в Карлсруэ в настоящее время разрабатывает профиль защиты и оценивает функции безопасности.Профиль защиты – это своего рода каталог критериев, который можно использовать для объективной проверки того, какие из наших продуктов предлагают защиту от каких атак. Проект частично финансируется BMWi (Федеральное министерство экономики и технологий Германии).
Мы также ведем переговоры с другими поставщиками в Европе, США и Азии. Я хотел бы упомянуть здесь одно сотрудничество, в частности: Wibu-Systems является сертифицированным партнером Wind River, 100% дочерней компании Intel. Благодаря VxWorks Wind River стала одним из ведущих мировых поставщиков операционных систем реального времени.Наша CodeMeter Compact Runtime была интегрирована в VxWorks, что означает, что компоненты RTP (Real Time Process) и DKM (Downloadable Kernel Module) могут быть безопасно загружены, а программный код защищен. Полная интеграция со средой разработки VxWorks Workbench на основе Eclipse находится в стадии реализации.
Безопасность также является основным условием соблюдения требований безопасности. Что это значит?
Стандарты и меры безопасности гарантируют, что машины и установки не представляют опасности для людей, окружающей среды или имущества.Однако это может быть гарантировано только в том случае, если манипулирование критически важными для безопасности системами станет невозможным. Соответствующие решения безопасности защищают решения безопасности от атак извне, например, от несанкционированного выполнения программного кода или несанкционированных модификаций.
Безопасность может быть достигнута только с помощью безопасности.
Дитер Хесс
Генеральный директор 3S-Smart Software Solutions GmbH
«CoDeSys Security позволяет инженерам по автоматизации эффективно защищать свои приложения.