Язык cfc в codesys

Что такое CoDeSyS 2.3 и с чем его едят?

Приветствую вас друзья, я надеюсь, что у вас сегодня хорошее настроение, наливайте себе зелёного чаю, берите печенье, всякие вкусняшки. В этой статье мы с вами поговорим об универсальной среде разработки программ для программируемых логических контроллеров (ПЛК) CODESYS 2.3

Итак, что же это за программа такая. Это среда разработки, то бишь некая программа, которая создает в себе другие программы для логических устройств. CoDeSyS разработан фирмой 3S Software, немецкими разработчиками. Это универсальный инструмент программирования контроллеров и встраиваемых систем. Комплекс программируется на стандартных языках МЭК 61131-3. О них буду говорить позже.

Из этой статьи вы узнаете:

Сама система реализована на языке С. Существует несколько модификации для различных микропроцессоров. Для привязки к конкретному контроллеру требуется конфигуратор, в настройках которого идет распределение памяти, интерфейс и привязка входов-выходов. Об этом будет ниже.

На рисунке выше я разместил рабочее окно проекта, чтобы показать как оно выглядит. Особенностями данного пакета являются:

Стандартные языки МЭК

Выбор стандарта языков программирования МЭК основан на том, что он является универсальным и удобным языком для программистов, инженеров и технологов. В течение времени язык программирования формировался и изменялся. Как вы думаете, было бы разумно делать мощный инструмент, опираясь на прошлый опыт разработок. В условиях конкурентного производства оборудования очень важно внедрять технологию быстро.

Всего таких языков из стандарта МЭК существует 5:

Какими языками удобнее всего пользоваться? Ну, это для кого как и кому как удобно, жёстких правил нету. Для программистов ближе будет ST, для электриков LD, для технологов скорее всего CFC.

Мне удобно пользоваться CFC и ST. На CFC языке всё наглядно видно, а это очень важно. Особенно когда идёт процесс наладки программы. А ST удобен своей гибкостью, и сложность программы ограничивается лишь вашей фантазией. А какие языки выбрали вы??

Кстати я чаще всего использую комбинацию различных языков. Я использовал такой трюк в проекте с холодильной камерой. Очень сложный проект, на написание программы у меня ушло 2 недели времени.

Конфигуратор входов/выходов

Теперь вернёмся к конфигуратору входов-выходов. О чем идёт речь? Предположим, у вас есть контроллер. У него много входов и выходов, аналоговых и дискретных. И, нам же к каждому входу и выходу нужно каким-то образом привязаться. Чтобы мы могли управлять, либо считывать данные.

Компания 3S Software реализовала в своём пакете CoDeSyS структуру дерева, в которой уже подготовлены некие ячейки памяти, отвечающие за каждый вход и выход контроллера. И мы просто присваиваем имя каждой ячейке, чтобы в дальнейшем управлять ими.

Очень большой плюс комплекса CoDeSyS в том, что среда разработки внедрена во многих логических контроллерах, как и в отечественных, так и в заморских.

Список контроллеров внушителен, поэтому я приведу те, которые знаю:

В целом CoDeSyS это мощный инструмент для реализаций технических задач. Для изготовления пультов управления технологическим процессом, от простых до сложных. Удобен для автоматизации умных домов. Минусом является стоимость подобных систем. Ну как говорится, в автоматике, чем надёжнее система, тем она дороже.

На этом у меня всё, успешных вам внедрений.

Как вам статья? Если понравилась, обязательно поделитесь ею в социальных сетях и подписывайтесь на новости блога.

Источник

Презентация была опубликована 8 лет назад пользователемcourses.edu.nstu.ru

Похожие презентации

Презентация на тему: » CFC В cреде CoDeSys 2.3.9. Язык CFC Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это.» — Транскрипт:

1 CFC В cреде CoDeSys 2.3.9

2 Язык CFC Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это дальнейшее развития языка FBD. Этот язык был специально создан для проектирования систем управления непрерывными технологическими процессами. CFC прост в освоении, и при этом позволяет разрабатывать сложнейшие алгоритмы автоматизированного управления без каких-либо специфических знаний других языков программирования. 2

3 Язык CFC Проектирование сводится к выбору из библиотек готовых функциональных блоков, их позиционированию на экране, установке соединений между их входами и выходами, а также настройке параметров выбранных блоков. В отличие от FBD, функциональные блоки языка CFC выполняют не только простые математические операции, а ориентированы на управление целыми технологическими единицами. Так в типовой библиотеке CFC блоков находятся комплексные функциональные блоки, реализующие управление клапанами, моторами, насосами; блоки, генерирующие аварийные сигнализации; блоки PID- регулирования и т.д. Вместе с тем доступны и стандартные блоки FBD. 3

4 Пример программы на языке CFC 4

5 Язык CFC В этом редакторе нет сетки, и поэтому элементы могут располагаться где угодно. К элементам языка CFC относятся блоки, входы, выходы, возвраты, произвольные переходы, метки и комментарии. Входы и выходы этих элементов можно соединять, перетаскивая линии соединения мышкой. Эти линии будут перерисовываться автоматически при перемещении элементов. В случае, если линия соединения не может быть перерисована, то она становится красной, и как только вы переставите элемент так, чтобы можно было соединить вход и выход линией без пересечений с другими элементами, линия становится нормальной. Основное преимущество CFC редактора перед FBD заключается в том, что в схемы можно непосредственно добавлять линии обратной связи. 5

6 Позиция курсора Курсор может располагаться в любой текстовой в строке CFC схемы. Выделенный текст можно редактировать. Во всех остальных случаях позиция курсора выделяется прямоугольником с пунктирной границей. Далее вместе с примерами показаны все возможные позиции курсора. 1) Блоки, входы, выходы, возвраты, произвольные переходы и комментарии 6

7 Позиция курсора 2) Все текстовые поля. 7

8 Позиция курсора 3) Входы элементов: блок, вход, выход, возврат и переход на метку 4) Выходы элементов: блок и вход. 8

9 Графический редактор CFC 9

10 Вход Вставка входа. 10

11 Выход Вставка выхода. 11

12 Элемент Команда может быть использована для вставки операторов, функций, функциональных блоков и программ. 12

13 Переход Вставка произвольного безусловного перехода на метку. В текстовом поле появятся три знака вопроса, которые нужно заменить на имя метки. 13

14 Метка Вставка метки. В текстовом поле метки появятся три знака вопроса, которые нужно заменить на имя метки. В режиме Online в конец POU автоматически добавляется метка Return. 14

15 Возврат Вставка возврата RETURN. Заметим, что в режиме Online в конец схемы добавляется метка с именем RETURN и при выполнении программы по шагам, перед тем как выйти из POU, выполнение Останавливается на этой метке. 15

16 Комментарий Вставка комментариев. 16

17 Инверсия Инвертирование входов, выходов, переходов на метку прыжков или возвратов. При инвертировании на месте соединения этих элементов со Схемой появляется кружок. 17

18 Set / Reset Команда доступна, когда выбран вход или выход элемента. Признак Set обозначается символом S, а Reset – cимволом R. 18

19 EN \ ENO Добавить в выбранный блок (позиция курсора 3) вход EN и выход ENO. VarOut примет значение TRUE после выполнения ADD. Если далее condition изменится в FALSE, то ADD (и все, что за ним) более не будет выполняться. Обратите внимание, что при том значения на его Выходах не изменяются! 19

20 Создать макрос С помощью этой команды несколько выбранных POU можно собрать в один блок, который называется макросом. Макрос можно дублировать с Помощью копирования/ вставки, при этом имя каждого макроса не должно повторяться. 20

21 Вход макро Команда доступна при редактировании макроса. Она используются для вставки входа макроса, которая отличается от обыкновенного входа POU способом отображения и отсутствием позиционных индексов. 21

22 Выход макро 22 Команда доступна при редактировании макроса. Она используются для вставки выхода макроса, которая отличается от обыкновенного выхода POU способом отображения и отсутствием позиционных индексов.

23 Перейти на верхний уровень Команда доступна, когда макрос открыт для редактирования. Если макросы вложены один в другой, то с помощью этой команды можно быстро перейти в POU. 23

24 Вернуться на предыдущий уровень Команда доступна, когда макрос открыт для редактирования. Если макросы вложены один в другой, то с помощью этой команды можно переключаться между разными уровнями вложенности. 24

25 Показать содержимое макроса С помощью этой команды вы можете редактировать макрос в отдельном окне редактора соответствующего POU. Имя макроса находится в заголовке окна редактирования. 25

26 Соединение элементов Вход одного элемента можно соединять с выходом другого. Выход одного элемента может соединяться сразу с несколькими входами других элементов. Есть несколько возможностей соединения входа элемента E2 с выходом элемента E1. Поместите указатель мыши на выход элемента E1 (позиция курсора 4), нажмите левую кнопку мыши и, удерживая ее, переместите курсор мыши на вход элемента E2 (позиция курсора 3) и отпустите кнопку мыши. Линия соединения будет создана при перемещении курсора мыши. Рассмотрим другой способ: поместите курсор мыши на вход элемента E2, нажмите левую кнопку мыши и, удерживая ее, переместите курсор мыши на выход элемента E1. Мы получили такое же соединение. 26

27 Изменение соединений Соединение выхода элемента E1 и входа элемента E2 можно легко изменить на соединение выхода элемента E1и входа элемента E3. Кликните мышкой на входе элемента E2 (позиция курсора 3), удерживая левую кнопку мыши, перемесите указатель на вход элемента E3 и опустите кнопку мыши. 27

28 Удаление соединений Есть несколько способов удаления линии, соединяющей выход элемента E1 и вход элемента E2: Выберите выход элемента E1 или вход элемента E2 (позиция курсора 4) и нажмите или выполните команду «Правка» «Очистить». Если выход элемента E1 связан с несколькими входами, то будут удалены все соединения. Поместите указатель мыши на вход элемента E2 и, удерживая левую клавишу мыши, переместите его на свободную область экрана. Соединение будет удалено, как только вы отпустите кнопку мыши. 28

29 Соединяющий маркер Соединять элементы можно не только линией соединения, но и соединяющим маркером. В этом случае вход и выход соединяются с маркером, имеющим уникальное имя. В нашем примере вход и выход соединяются с помощью соединяющей линии. Теперь выберите начало линии соединения (позиция курсора 3) и выполните команду «Дополнения» «Соединяющий маркер «. Схема превратится в эквивалентную ей, но в которой вход и выход соединены с помощью маркеров. 29

30 Порядок выполнения схемы Каждый элемент схемы обладает номером, который указывает порядок его выполнения. При создании или вставке элемента он автоматически получает номер в соответствии со следующим правилом: слева направо и сверху вниз. Номер элемента не изменяется при его перемещении. Последовательность действий определяет результат и должна быть изменена при необходимости. 30

31 Упорядочить топологически Автоматическая нумерация элементов схемы в порядке слева направо и сверху вниз. Такой порядок называется топологическим. При этом не имеют значения соединения элементов схемы, а важно лишь расположение элементов. Данная команда применима также к отдельным выбранным элементам, которым присваиваются номера в топологическом порядке при выполнении этой команды. Каждому выбранному элементу присваивается номер так, чтобы он выполнялся перед следующим за ним в топологическом порядке элементом. 31

33 В соответствии с потоком данных Эта команда относится ко всем элементам. Порядок выполнения схемы определяется потоком данных, а не позициями элементов. На следующей схеме элементы расставлены в топографическом порядке. 33

35 Редактор CFC в online режиме 35

36 Пример программы на языке CFC 1 36

37 Пример программы на языке CFC 2 37

38 Пример программы на языке CFC 3 38

39 Пример программы на языке CFC 4 39

40 Конец Программы без ошибок можно написать двумя способами, но работает – третий!

Источник

CODESYS для программирования встраиваемых систем

Вступайте в нашу группу в VK https://vk.com/controlengineeringrus , чтобы ничего не пропустить из мира автоматизации

Во встраиваемых системах обычно нет необходимости в программировании пользователем. Соответственно, не должно быть нужды и в МЭК-языках. Большинство разработчиков встраиваемых систем слышали о CODESYS, но, как правило, относятся к нему с изрядным скепсисом. В их понимании МЭК-системы программирования применимы только для ПЛК. В статье предпринята попытка разобраться, справедливо ли такое мнение.

В системах промышленной автоматизации базовым интеллектуальным элементом является программируемый логический контроллер (ПЛК) [1, 2, 3, 6, 7]. С точки зрения программирования главная особенность ПЛК состоит в том, что для работы с ним не требуется образование в области информатики. Инструменты и языки программирования ПЛК должны быть максимально просты и в то же время эффективны. Упрощение использования не должно повлечь за собой ограничение круга решаемых задач.

Для удовлетворения этих противоречивых требований были созданы специальные языки программирования. В 1982 г. вышла первая редакция международного стандарта МЭК61131-3 (далее МЭК). В нем определено пять языков программирования ПЛК: три оригинальных визуальных и два, пришедших из мира компьютеров. Так, к первым относятся языки «релейных схем» (Ladder Diagram, LD), «функциональных блоковых диаграмм» (Function Block Diagram , FBD) и «последовательных функциональных схем» (Sequential Function Chart, SFC). А «Список инструкций» (Instruction List , IL) — это аппаратно-независимый ассемблер. Высокоуровневый язык «структурированный текст» (Structured Text, ST) представляет собой модифицированный Паскаль. Отдельные программные компоненты можно описывать на разных языках МЭК даже в одном проекте. В зависимости от уровня подготовки, типа решаемой задачи и личных предпочтений прикладной МЭК-программист выбирает оптимальный язык.

Создание качественного транслятора языка программирования высокого уровня является сложной и трудоемкой задачей. Для графических языков объем работы увеличивается за счет необходимости создания соответствующего графического редактора и отладчика. Поэтому задача поддержать несколько разных языков в одной программной среде стала серьезной проблемой для многих изготовителей ПЛК. В итоге это привело к возникновению компаний, специализирующихся на создании универсальных сред программирования на языках МЭК. Одной из наиболее успешных оказалась немецкая 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

Как показано в таблице, для человека, имеющего образование по специальности программирование, C/C++ является естественным выбором. Переход к использованию МЭК-языков потребует некоторых усилий по освоению. Обычно начальный дискомфорт в CODESYS вызывает отсутствие главного цикла и функций ввода/вывода, которые полностью «спрятаны» в системе исполнения. Существенно отличается работа с таймерами. Ближе всего к языку C в CODESYS язык ST. Как правило, для его уверенного освоения программисту достаточно нескольких часов [5].

Использование МЭК-языков может не дать явных преимуществ мгновенно. Они проявляются ярко при необходимости пояснения прикладной программы другим людям. В этом смысле весьма эффективна связка языков SFC и ST. Диаграмма SFC визуально представляет интуитивно понятный алгоритм работы, буквально «оживающий» в онлайновом режиме. Действия шагов SFC описываются на привычном высокоуровневом языке ST.

Аспекты руководителя

Некоторые успешные практические применения CODESYS во встраиваемых системах инициировались не техническими специалистами, а менеджментом компании. Чаще всего главной причиной становилась одна из четырех, перечисленных ниже.

Проблема правильной организации работ

Как правило, в компании есть системный программист с соответствующим образованием. Он начинает с «оживления» платы, установки операционной системы (ОС) или самостоятельной разработки необходимого функционала нижнего уровня. Кажется логичным, чтобы он продолжил работу над системой далее, включая прикладные функции. Ему приходится потратить немало времени на то, чтобы разобраться с прикладной сферой. Будь то газовый котел, система управления яхты, пульт авиационного тягача или что угодно, постепенно он начнет ориентироваться в теме не хуже заказчика. Иногда даже лучше, поскольку вынужден разобраться с причинно-следственными связями и выстроить алгоритмы. В итоге компания приобретает абсолютно уникального специалиста. Работа успешно сдается. Далее становится ясным, что только этот специалист способен сопровождать систему. Его нельзя отвлекать или заменять, нельзя предоставить отпуск или уволить. Компания попадает в зависимость от специалиста.

Вначале сам программист рад своей уникальной позиции. По прошествии нескольких лет он замечает, что «золотой фонтан» не забил, а работа стала утомительной. Он отстал от новых технологий по основной специальности. Сменить работу не реально. Проблема возникает с двух сторон.

CODESYS выручает благодаря свойствам 2 и 5 (см. таблицу). Нижним уровнем, включая установку системы исполнения CODESYS, занимаются системные программисты. Прикладной проект делается в CODESYS специалистами по прикладной области. Благодаря 4, им не требуется специальное образование. Системный и прикладной уровни четко разделены, как и требования к их исполнителям. При необходимости сопровождение ПО может быть передано заказчику. Специалистам заказчика достаточно пройти двухдневные учебные курсы.

Проблема развития универсальности системы и расширения рынка сбыта

Если устройство оказалось востребованным, то постепенно возникает необходимость специальных исполнений для разных заказчиков. Появляется несколько «прошивок» программы. Потом разрабатывается специальная компьютерная программа — конфигуратор системы. Она настраивает параметры устройства. Постепенно число параметров возрастает. Соответственно, разбухает документация. Но по-прежнему находятся заказчики, которым не хватает нужного именно им функционала. Рождается логичная мысль пойти дальше и дать заказчикам (дистрибьюторам, установщикам) возможности программирования системы. С языком C++ это нереально. CODESYS решает данную проблему. Существует ряд специализированных контроллеров для печатных машин, деревообрабатывающих станков, заправочных станций, дорожных машин, химических аналитических приборов и др., которые оснащены CODESYS и дополнены специализированными библиотеками. Изготовитель соответствующей машины сам адаптирует контроллер под разнообразные модели и наращивает функционал. Изготовитель встраиваемой системы выигрывает за счет унификации и расширения областей применения.

В простых устройствах выручает встроенная визуализация CODESYS (п. 7 таблицы). С ее помощью графические конфигураторы, включая веб-интерфейс, делаются «попутно» на ранних версиях прикладного проекта.

Проблема интеграции с устройствами других компаний

Обычно в успешно развивающейся системе возникает необходимость подключения приборов, датчиков и других устройств ведущих мировых изготовителей. Самостоятельная реализация стандартных полевых сетей значительна по трудоемкости. Покупка готового стека дорога. CODESYS (см. п. 10 таблицы) позволяет поддержать практически все стандартные сети. В нашей практике к использованию CODESYS во встраиваемых системах чаще других приводила необходимость поддержки стеков CANopen и EtherCAT.

Проблема замены ПЛК встраиваемой системой

В некоторых случаях, помимо базового серийного изделия, требуются особые исполнения. Пример: компактный холодильник и заказная холодильная установка, различные термокамеры, весы, сварочные автоматы, научное оборудование и др. Под специальное исполнение целесообразно применить готовый ПЛК с CODESYS. На нашем рынке доступны десятки таких ПЛК разных ценовых категорий. В разных применениях могут использоваться компактные, модульные или панельные ПЛК. Для серийных изделий изготавливается собственный встраиваемый контроллер. Если везде стоит CODESYS, то одна команда справляется с разработкой ПО и сопровождением всех вариантов. Практически везде применяется один проект с разной конфигурацией.

Установка к CODESYS

Для того чтобы устройство программировалось в CODESYS, в нем предварительно должна быть установлена так называемая система исполнения CODESYS Control. Она включает планировщик задач, загрузчик, функции отладки, обслуживает полевые сети, ввод/вывод и т. д. Именно благодаря ей МЭК-программа оказывается аппаратно-независимой. Набор ресурсов, которые должна обслуживать система исполнения, отличается у разных контроллеров. Речь идет не только о микроконтроллере, но и об устройстве в целом. По этой причине нельзя просто скопировать систему исполнения с одного устройства на другое. Она всегда требует некоторой индивидуальной адаптации. Все существующие встраиваемые системы с CODESYS созданы одним из трех способов:

По требованию российских заказчиков Beck создала специальное исполнение чипов с расширенным температурным диапазоном (–40 °С). Существует исполнение для энергетики с поддержкой коммуникационной библиотеки МЭК 61850.

Первый путь выбирают крупные изготовители встраиваемых систем. Он оправдан при выпуске от нескольких сотен изделий в год и выше. В странах ЕС все более развивается практика заказа разработки. По числу применений в России лидирует технология Beck IPC@CHIP. В любом случае среда программирования CODESYS поставляется бесплатно. Никаких ограничений в функционале и числе установок в ней не предусмотрено. В CODESYS имеется встроенный эмулятор контроллера. Это позволяет начать работу без приобретения аппаратных средств.

Заключение

Сегмент встраиваемых систем в суммарном годовом объеме применений CODESYS ежегодно увеличивается. CODESYS применяется во встраиваемых контроллерах компаний Bosh, Rolls-Royce Marine, Praxis, CC Systems, Moba и др. Это далеко не опытные прототипы, речь идет о десятках тысяч изделий. Примеры нескольких применений показаны на фотографиях.

Среди МЭК-систем программированиия CODESYS выделяется тем, что, подобно компиляторам С/С++, непосредственно генерирует надежный и компактный машинный код, пригодный для встраиваемых систем. Простые в освоении языки МЭК позволяют привлечь к разработке и сопровождению специалистов прикладной области. Интерес для разработчика встраиваемых систем может представлять богатый функционал комплекса CODESYS. Многозадачность реального времени, обработка событий, встроенная визуализация, развитый набор коммуникаций, «горячее» обновление кода, полевые сети, поддержка управления через Интернет, средства национальной локализации проектов и другие функции CODESYS могут быть не востребованы во встраиваемой системе изначально. Но необходимо учитывать, что все они создавались эволюционно, исходя из практических требований, возникавших у пользователей контроллеров в разных странах, разных условиях и на разных этапах работ. В процессе жизни встраиваемой системы неизбежно возникают аналогичные или близкие задачи. Например, задача настройки и тестирования оборудования заказчиком, интеграция с другим оборудованием, веб-интерфейс и т. п. Во многих случаях CODESYS даст готовое решение.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector