Программирование плк овен для начинающих. Примеры простейших программ для CoDeSyS

Советы конкретные и философские. С примерами и скриншотами. Буду дополнять.

Пользуйтесь реальностью процессов
Одно из фундаментальных отличий программирования технологических процессов от классического программирования - это обычно значительно меньший уровень абстракции. Алгоритмы определяются технологией процесса, который в свою очередь часто опирается на здравый смысл и простую логику. Об этом часто забывают увлекаясь программированием ради программирования.

Не путайте причины и следствия
Например, пусть при падении давления нужно выключать насос, а при выключенном насосе какой-то клапан должен быть закрыт; предположим, никаких иных условий выключения и закрытия - нет. Ошибочно при этом (даже якобы в целях оптимизации кода) закрывать клапан при падении давления, т.к. алгоритм закрытия клапана строго привязан именно к состоянию насоса. При удлинении или изменении следственных цепочек это может привести к серьезным ошибкам в процессе или сложностям в модификации кода.

Настройка среды CODESYS 2.3
Некоторые настройки "по умолчанию" в CODESYS удивляют. Например, эта среда - единственная из виденных мной, в которой шрифт не моноширинный, т.е. символы в нем имеют разную ширину. Сразу же после установки среды заходите в Проект > Опции > Редактор > Шрифт и выбирайте Consolas (код на всех скриншотах) или хотя бы Courier New.

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

В настройках "Рабочего стола" уберите лишние галочки и уменьшите таймауты связи до 1000 мс - это сильно упростит вам жизнь, поверьте.

Чтобы перепроверить правильность кода - после каждого изменения жмите клавишу F11 для компиляции кода. После нажатия в нижней части экрана высветятся сообщения о текущих ошибках или их отсутствии. Чтобы скрыть лишнюю плашку с этими сообщениями - нажмите SHIFT+ESC.

Не стремитесь использовать чужой код
Вторичное использование чужого кода в классическом программировании - норма и необходимость, обусловленная множеством причин. В АСУ ТП же, по моему мнению, почти нет необходимости использовать сторонний код.

Я не считаю себя профессионалом и не писал особо сложных программ, но для тех что писал мне вполне хватало стандартных библиотек Util.lib и Standart.lib . Те же библиотеки Oscat (скачать + мануалы на англ) шикарны и всеохватывающи, но в них нет ничего сверхестественного и, мне кажется, лучше самому писать аналогичные функции. А на тот код, который обычно выкладывают на форумах, лучше вообще не смотреть. Даже с тем, что я выкладываю в блоге лучше просто ознакамливаться, а не использовать. Пишите свои алгоритмы и как можно больше)

Примеры правильного кода внутри библиотек
Чтобы понять как должен выглядеть грамотный код и узнать некоторые программистские приёмчки не нужно далеко ходить. Открывайте Кодесисом библиотеки Util.lib и Oscat.lib как обычные проекты и впитывайте мудрость строк.

NB Может я и негодяй, но с помощью этой проги вы можете взломать запароленные библиотеки.

Пользуйтесь интегрированной справкой CODESYS
Банально, но там есть ответы на большинство вопросов начинающих. Справка небольшая поэтому лучше пробежаться по ней всей чтобы познакомится с возможностями языков и функций.

Вызов справки по "F1" работает по большинству служебных слов и элементам библиотек Util.lib и Standart.lib . Иногда в CODESYS 2.3 вызов по "F1" не срабатывает, например для  SEL и ARRAY , поэтому вручную открывайте справку и ищите нужный идентификатор во вкладке "Поиск"

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

На скриншоте код, обрабатывающий данные с  частотных преобразователей  Danfoss. Переменные типа CWS1_FREQ созданы в в разделе . Слева представлена первая версия кода где каждый ПЧ представлен отдельным куском из восьми строк; код в каждом куске различается только данными, а логика одинакова.
Справа оптимизированная версия - логика вынесена в отдельную функцию GET_PUMP (с адресацией и указателями, о которых расскажу ниже), а код для конкретного ПЧ теперь занимает одну строчку. Если бы в Конфигурации можно было задавать переменные как элементы массива (типа FREQ_CWS), то код обработки любого количества ПЧ свелся к одной строке, вложенных в два цикла (см. совет ниже).

кликните на скриншот чтобы увеличить его

Плюсы языка ST - массивы и циклы
Язык ST я использую из-за того, что моё знакомство с программированием началось с C/C++. В некоторых случаях удобно использовать CFC или что похуже, но в целом ST более ёмок, лаконичен и чёток. Но, чем действительно он отличается от других языков так это возможностью нормального использования массивов и циклов, которые мне сильно облегчают жизнь и увеличивают читабельность кода.

Не злоупотребляйте циклами
При том, что циклы FOR бывают крайне удобны, всегда помните, что код в ПЛК выполняется в суперцикле и часто можно обойтись простым инкрементированием с обнулением (см. скриншот ниже). Также большие циклы FOR и тем более WHILE могут сильно "затормозить" суперцикл ПЛК вплоть до срабатывания сторожевого таймера (об этом в следующем совете) . Иногда, конечно, нужно сделать перебор в текущем суперцикле и тут уж лучше использовать FOR .

Сторожевой таймер и сброс ПЛК
Если суперцикл выполняется слишком долго, то ПЛК производит аппаратный сброс на уровне микроконтроллера. Такое возникает при переходе в бесконечный цикл и других зависаниях. Отвечает за анализ времени выполнения цикла сторожевой таймер, или Watchdog.

Сброс по watchdog"у отличается от любого сброса через среду CODESYS. Этим можно пользоваться. В моей практике сторожевой таймер применяется в контроллерах ОВЕН. В этих ПЛК иногда происходит неприятный момент - созданный в Конфигурации модуль ModBus (Master) перестает вести опрос Слейвов (обычно это возникает после перезаливки программы). Поначалу это решали сбросом питания, но тут возникали трудности при удаленной закачке через интернет.

Позже я обнаружил, что проблему решает искусственное заведение программы в бесконечный цикл. Я вывел сброс на кнопку в визуализации. Или же можно анализировать изменение переменной "Опрашиваемый адрес " в ModBus (Master) - если Slave-устройств больше одного, то она должна меняться каждый цикл.

Расширенное использование функций
Помимо вывода одного-единственного значения любого стандартного типа функция способна возвращать значения пользовательского типа, например структуры, которые могут состояться из любого количества переменных разного типа.

Но что интереснее, имеется возможность изменения переменных, которые являются аргументами функции, внутри самой функции. Это возможно благодаря использованию указателей и адресации на эти переменные. Понять что к чему можно по скриншоту ниже, на котором приведен код функции, инициализирующий переменную если та равна нулю. Параметр внутри функции определяется как указатель на нужный тип, а при вызове функции в параметре используется не сама переменная, а её адрес (функция ADR ).

Иногда SEL удобнее IF
В случае когда при каком-то условии переменная должна изменить своё значение, а в противном - иметь другое значение, применение IF может быть не лучшем решением. Если условие применимо только к этой единственной переменной - используйте функцию-селектор SEL . Она работает с переменными любого типа.

Буль не буль
Очень часто в чужом коде встречаю странное использование операций с булевыми величинами или, наоборот, игнорирование булевой логики.
Во-первых, операции типа сравнения или проверки равенства возвращают булевы значения.
Во-вторых нет необходимости явно сравнивать булеву переменную со значениями TRUE или FALSE .

Наглядная работа с булями
Мне очень часто для сокращения кода приходится использовать явные преобразования BOOL в целое число, например, в формулах. Для этого приходится использовать функцию приведения типов в её стандартном неуклюжем виде BOOL_TO_BYTE(). Но как-то раз наткнулся на блог Егора Петрова, где он придумал более простое и изящное решение - по сути переименовать эту функцию в более читаемую - WHEN(). Теперь пользуюсь, пользуйтесь и вы.

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

Рассмотрим отличия написания программы для ПЛК и микроконтроллера. Для примера возьмем простейшую задачку для МК - мигающий светодиод. Подозреваю, что все начинали знакомство с МК именно с этой задачи. Алгоритм будет следующим

  1. Записать в порт лог. 1.
  2. Временная задержка
  3. Записать в порт лог.0.
  4. Временная задержка
  5. Переход по метке на начало программы.

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

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

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

Реализуем данный алгоритм на практике ниже, а теперь рассмотрим основные особенности LAD (Ladder Diagram) языка.

Релейная схема представляет собой две вертикальные шины, между ними расположены горизонтальные цепи образованные контактами и обмотками реле. Пример на рисунке:

Нормально разомкнутый контакт

Нормально замкнутый(инверсный) контакт

Обмотка реле

Количество контактов цепи может быть разным, а обмотка одна.

Любому контакту ставится в соответствие логическая переменная, определяющая его состояние. Если нормально замкнутый контакт замкнут, то ИСТИНА, если размокнут – Ложь, для инверсного наоборот, он замкнут когда переменная имеет значение ЛОЖЬ. Имя переменной пишется над контактом и служит его названием.

Последовательно соединенные контакты равносильны логической операции И, а параллельно-монтажное ИЛИ. Инверсный контакт равносилен операции НЕ. Параллельное соединение обмоток допускается, а последовательное нет. Обмотка реле также может быть инверсной, тогда она копирует в соответствующую логическую переменную инверсное состояние цепи.

Идея релейных схем, такова, что все цепи работают параллельно, т.е. ток во все цепи подается одновременно. Но мы знаем, что программу процессор выполняет последовательно, и мы не можем это сделать одновременно. Так и в LAD программа выполняется последовательно слева направо, сверху вниз. Но цикл процессора мал, поэтому и получается эффект параллельности.

Любая переменная в рамках одной цепи имеет одно и то же значение. Если даже реле в цепи изменит переменную, то новое значение поступит на контакты только в следующем цикле. Цепи расположенные выше получают новое значение переменной сразу, а цепи расположенные ниже – только в следующем цикле. Строгий порядок выполнения очень важен, и благодаря ним LAD- диаграмма сохраняет устойчивость при наличии обратных связей.

Хоть это и противоречит аналогии LAD с релейными схемами, порядок выполнения LAD- программы можно нарушить с помощью меток и переходов. Это ухудшает читаемость программе, и в них бывает сложно разобраться, но как говориться если очень хочется, то можно. Для этого желательно разбить программу на модули, и делать переходы между модулями.

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

Давайте составим нашу первую программу на LAD в среде CoDeSys. , достаточно воспользоваться поисковиком

После установки, выбираем создать новый проект, и CoDeSys попросит выбрать целевую платформу для ПЛК. Указание целевой платформы необходимо, чтобы среда знала, для какого типа контроллера пишется программа. Выбираем 3S CodeSyS Sp PLCWinNT V2.4 и жмем OK.

Имя проекта оставляем по умолчанию, язык выбираем LD

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

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

Вместо вопросительных знаков пишем имя нашей переменной, например SB, и нажимаем Enter, выходит окно объявление переменной, выбираем Bool и нажимаем OК.

Рассмотрите, какие типы можно выбрать, а также какие классы переменных.

Давайте, реализуем программы для мигания светодиодом, а если говорить в общем, то программа для генератора одиночных импульсов

Для реализации программы используем функциональные блок таймер TP. Таймер TP – этой таймер одиночного импульса с заданной по входу PT длительностью.

Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по фронту входа IN.

Для вставки TP, на панели элементов выбираем:

И у нас всплывает ассистент выбора функционального блока.

Скачайте файл проекта, и давайте рассмотрим как он работает.

В начальный момент X= False , поэтому инверсный контакт X замкнут и таймер T2 запущен, выход Q= True, поэтому цепь включена. А так как обмотка в цепи инверсная, значит она копирует инверсное состояние цепи в X , и X остается False, после переполнения таймера Q = False , и инверсная обмотка переводит X в True. После этого запускается T1, после переполнения скидывает X в False и все повторяется. Переменная X является выходом генератора. Таймер T2 устанавливает паузу, а T1 длительность импульса.

Компилируем проект Проект -> Компилировать

В пункте онлайн выбираем Режим эмуляции , а затем Подключение и Старт . И видим, наша схема начинает переключаться, цепь где «протекает ток» выделяется синим цветом. Также в области объявления переменных видим текущее значение переменных.

Выход генератора можно поглядеть с помощью цифрового трассировщика, для этого переходим на вкладку Ресурсы в нижнем левом углу

Выбираем Цифровой трассировщик -> Дополнение -> Настройка трассировки , выйдет следующее окно

Цикличность записи поставим Вручную , нажимаем на менеджер и выбираем переменные X(Bool)

Нажимаем Ok . Выбираем перо для нашей переменной

Выбираем в онлайн Подключение, нажимаем Старт, далее Дополнительно -> Начать трассировку, также выберите пункт Автоматическая трассировка

Рассмотрим еще один пример управление двигателем с электронной коммутацией обмоток статора
Саму программу представлять не буду, скачайте проект. А об алгоритме работы расскажу.

Все таймеры запускаются по сигналу старт. Каждый таймер отмеряет момент окончания фазы. Переменные Y1-Y3 являются выводами соответствующей фазы управления. Каждый выход включается в том случае, если таймер еще не переполнен и выключен предыдущий выход. Последняя цепь, является цепью автоматического перезапуска.

В этом посте представляю несколько простых программ для контроллеров, заточенных под CoDeSyS 2.3 и CoDeSyS 3.5. По максимуму представлены несколько вариантов языков программирования стандарта МЭК — ST, CFC, LD и др. Примеры программ CoDeSyS помогут вам в реализации той или иной задачи по автоматизации.

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

Всем привет, дорогие друзья, на связи Гридин Семён. Я двигаюсь к своей цели, изучая робототехнике. Я читаю очень много информации по различным механическим узлам, по языкам программирования и одноплатным компьютерам.

Да, я изучаю язык программирования Python. Прохожу тесты в мобильном приложении SoloLearn. Очень рекомендую новичкам, кто только начинает изучать. Прога на русском языке. В каждом уроке вам объясняют значение каждого оператора, каждой команды, каждой функции. После урока вы сдаете тесты и проходите дальше. От простого к сложному.

Если кому интересно, пользуйтесь!!! Статья будет небольшая, так что не ругайтесь. Так как словами в этой теме много не опишешь, так что скачивайте и применяйте в своих программах.

Кстати, я сделал небольшой раздел электротехнических онлайн расчётов, если интересно, .

Необходимое программное обеспечение и оборудование

В принципе я чаще всего применяю контроллеры компании ОВЕН — ПЛК100/150/154, ПЛК63/73, ПЛК110/160.

Насколько я помню, CoDeSyS применяют WAGO, Emko, Raspberry PI, и по-моему некоторые контроллеры ABB.

Итак, что нам нужно, чтобы начать работать:

  1. Среда программирования CoDeSyS;
  2. Необходимые библиотеки для среды программирования;
  3. Target-файл под ваше оборудование.

Более развернутый список контроллеров на CoDeSyS.

Отечественные ПЛК:

  1. Овен ПЛК
  2. Фаствел Fastwel IO
  3. СКБ ПСИС CP6000 (psisCON™)
  4. НИЛ АП NLcon-CE
  5. Раскат S-7188 microPLC, модуль 4S-PLCcore
  6. ПРОЛОГ МСТС
  7. ЭРГОС ТРС (Робот)
  8. АРКТУР КЭП-1
  9. ОАО Автоматика УЗС-К

Зарубежные ПЛК, применяемые в России:

  1. Beckoff
  2. Kontron
  3. WagoIO
  4. Moeller, система программирования Xsoft
  5. Festo
  6. Панельные ПЛК Berghof
  7. Mitsubishi топ модель System Q
  8. HollySyS

Примеры программ для CoDeSyS

Для помощи вам в разработке ПО для ПЛК прикрепляю небольшой перечень различных примеров.

Курс по программному обеспечению CoDeSys предназначен для сетевых интеграторов, пусконаладчиков, инженеров, конструкторов, производителей оборудования и программистов. В процессе занятий слушатели приобретут навыки использования программируемого логического контроллера языками стандарта МЭК: IL, SFC, FBD, LD, ST, - интерфейсом CoDeSys, стандартными и пользовательскими библиотечными объектами, приемами работы с визуализатором, DDE-компонентом, в удаленном режиме.

Лабораторные работы выполняются как в режиме симуляции, так и с помощью контроллера фирмы Wago. С этой целью слушателей знакомят с принципами работы контроллера и с прилагаемым программным обеспечением.

Программная среда CoDeSys

CodeSys - один самых развитых и полнофункциональных инструментов для программирования логических контроллеров на языках стандарта МЭК. Программируемые логические контроллеры (ПЛК) - устройства, автоматизирующие работу промышленных и бытовых приборов или производственных комплексов. ПЛК на физическом уровне являются устройствами, имеющими несколько дискретных и аналоговых входов и выходов, тогда как логика их работы закладывается программно в микрокомпьютерном ядре.

Название CodeSys является сокращением от «Controller Development System». Программный комплекс производится и распространяется немецкой фирмой 3S-Smart Software Solutions.

Несколько сот производителей устройств выпускают устройства автоматики с поддержкой программного интерфейса CoDeSys.

Для программирования доступны все стандартные МЭК языки: IL (Instruction List) ? ассемблеро-подобный язык, ST (Structured Text) ? Pascal-подобный язык, LD (Ladder Diagram) ? язык релейных схем, FBD (Function Block Diagram) ? язык функциональных блоков, SFC (Sequential Function Chart) ? язык диаграмм состояний.

В качестве расширения стандарта МЭК в CoDeSys реализована поддержка объектно-ориентированного программирования, а также язык CFC (Continuous Function Chart), являющийся модифицированным.

Описание готового проекта хранится в одном единственном файле. Компилятор CoDeSys генерирует на основе проекта исполняемый машинный код, обеспечивая максимально возможное быстродействие прикладных программ. Поддерживаются различные процессоры известных марок. CoDeSys работает на всех 32х разрядных Windows. CoDeSys и контроллер взаимодействуют через промежуточное приложение Gateway-сервер. Он может работать как локально, так и удаленно через TCP/IP. Контроллеры подключаются к Gateway-серверу по протоколам RS232, TCP/IP или CAN.

Комплекс CoDeSys распространяется без лицензии и может быть установлен на нескольких рабочих местах.

Программный продукт CoDeSys широко применяется при программировании контроллеров, производимых различными фирмами. Среди наиболее известных:

контроллер «ОВЕН ПЛК 100»; группа предприятий «ВяткаСтройДеталь» в Кирове изготавливает и устанавливает оборудование для производства плит из пенопласта; первая автоматизированная блок-форма с пультом управления на базе ОВЕН ПЛК 100 установлена в г. Альметьевске в Татарстане; контроллер ОВЕН ПЛК100 установлен с 2 модулями расширения; программа для ПЛК была создана в CoDeSys на языках SFC и CFC; контроллер осуществляет анализ входных сигналов от различных датчиков, затем формирует выходной сигнал на управление пневмораспределителями и магнитными пускателями; визуализацию и человеко-машинный интерфейс обеспечивает панель «ОВЕН ИП320»;

модульный ПЛК Moeller XC100-FC; Enercon GmbH, крупнейший в Германии производитель ветряных электростанций, в системе управления генераторов использует ПЛК XC100-FC, программируемый в среде CoDeSys; ПЛК XC100-FC контролирует параметры сети и состояние аккумуляторов источника резервного питания, управляет процессом кондиционирования воздуха, включая нагрев и охлаждение, контролирует работу световых сигналов;

мобильный ПЛК SMA «Enduro»; установлен в контейнерных кранах Liebherr, управляет движением стрелы крана и консоли с кабиной оператора; одновременно управляет приводами и электроавтоматикой;

контроллер Berghof Dialog Controller DC1005; для транспортировки при покраске кузовов автомобилей компания EISENMANN разработала программируемые челноки «Vario-Shuttle», позволяющие задавать оптимальные траектории входа и выхода кузовов из ванн, а также решать проблему образования пузырьков и подтеков на поверхностях при нанесении грунта; каждый челнок программируется индивидуально; для диагностики и подстройки каждый челнок оснащен дисплеем, интегрированным с управляющим контроллером; все действия запрограммированы при помощи инструмента CoDeSys;

система Wago I/O; поддерживает все стандартные типы полевых шин; система включает базовый контроллер и набор модулей ввода-вывода; дискретные модули ввода-вывода работают с сигналами от 5 до 250 В и могут иметь функцию диагностики; аналоговые модули поддерживают все стандартные виды сигналов: 0(4) -20мА, 0-10В, ±10В, термопары, термометры сопротивления.

Также видоизмененный CoDeSys, известный под названием GX9100 и FX Builder, используется для программирования логики контроллеров Johnson Ctrls, соответственно, семейств DX и FX. Языком программирования является видоизмененный FBD.

Цели и задачи курса

Цель курса: в простой и краткой форме подготовить специалистов по автоматике зданий к программированию промышленных контроллеров с помощью программной среды CoDeSys.

По окончании курса слушатель будет уметь :

  • Составлять спецификацию для системы Wago I/O
  • Программировать внутреннюю логику ПЛК на различных МЭК-языках с помощью CoDeSys;
  • Тестировать созданные программы с помощью встроенного симулятора CoDeSys и на реальном оборудовании
  • Осуществлять визуализацию работы ПЛК с помощью CoDeSys
  • Встраивать систему Wago I/O в сеть LonWorks.

Выдаваемые сертификаты

По окончании курса слушатель получает сертификат на русском языке, дающий право осуществлять программирование ПЛК в среде CoDeSys.

Код курса Период проведения
CDS-201 09.04
CDS-201 17.05
CDS-201 07.06
CDS-201 08.07
CDS-201 19.08
CDS-201 21.10

1.Введение. Знакомство с ПЛК и средой CoDeSys

  • История создания программного комплекса CoDeSys
  • Понятие ПЛК. Принципы работы ПЛК. Примеры ПЛК
  • Архитектура ПЛК
  • Условия и режим работы ПЛК
  • Терминология: время реакции, цикл сканирования, сторожевой таймер, системное программное обеспечение, полевая шина
  • Требования к промышленным шинам.

2. Обзор МЭК языков и среды CoDeSys

  • Открытый и закрытый подход к программированию ПЛК
  • Сравнение различных программных комплексов
  • Обзор языков МЭК: особенности и сходства, достоинства и недостатки
  • Типы данных
  • Компоненты организации программ: программы, функции, функциональные блоки
  • Входные и выходные параметры. Переменные. Распределение памяти переменных
  • Структура ПО CoDeSys. Обзор меню и ярлыков
  • Текстовые и графические редакторы
  • Создание простейших проектов в среде CoDeSys
  • Запуск на исполнение и отладка проектов

3. Язык LD

  • Контакты и реле. Последовательное и параллельное соединение контактов
  • Нормально замкнутые и разомкнутые контакты. Реле с самофиксацией
  • Порядок выполнения цепей. Метки и переходы
  • Расширение с помощью функциональных блоков
  • Работа с цепями в режиме исполнения

4. Язык ST

  • Основные принципы программирования
  • Синтаксис выражений, операторы присвоения
  • Приоритет операций
  • Операторы выбора
  • Операторы цикла
  • Прерывания
  • Комментарии

5. Язык IL

  • Основные принципы программирования
  • Инструкции и их формат
  • Аккумуляторы
  • Метки
  • Скобки
  • Модификаторы
  • Операторы
  • Вызов компонентов организации программ
  • Комментарии
  • Работа с кодом в режиме исполнения

6. Язык FBD

  • Основные принципы программирования
  • Компоненты диаграмм
  • Линии связи. Порядок исполнения
  • Инверсия логических сигналов
  • Соединители и обратные связи
  • Метки, переходы и возврат
  • Вставка выражений на языке ST

7. Язык SFC

  • Основные принципы программирования
  • Шаги и переходы
  • Идентификатор и условие перехода
  • Начальный шаг
  • Параллельные и альтернативные ветви. Прыжки
  • Упрощенный и стандартный SFC
  • Входные и выходные действия
  • Управление шагами
  • Классификаторы действий
  • Внутренние переменные
  • Отладка и режим исполнения

8. Язык CFC

  • Основные принципы программирования
  • Компоненты диаграмм. Линии связи. Расположение элементов на диаграмме
  • Порядок исполнения
  • Инверсия логических сигналов
  • Соединители и обратные связи
  • Метки, переходы и возврат
  • Функциональные блоки для управления промышленными процессами
  • Работа с диаграммами в режиме исполнения

9. Дополнительные возможности CoDeSys

  • Создание мнемосхемы
  • Добавление фигур для анимации. Настройка поведения фигур
  • Вкладка с ресурсами
  • Конфигурирование тревог
  • Конфигурирование задач
  • Ведение журнала
  • Управление библиотеками
  • Отслеживание значений переменных
  • Импортирование и экспортирование проекта
  • Сравнение проектов. Слияние проектов. Документирование проектов
  • Настройка прав доступа

10. Архитектура ПЛК Wago. Интеграция ПЛК в сеть LonWorks

  • Краткие сведения о продукции фирмы Wago. Примеры использования на реальных объектах. Обзор ПО, используемого с Wago-контроллерами. Программируемые и непрограммируемые контроллеры Wago. Протоколы, поддерживаемые Wago. Архитектура и технические характеристики Wago-контроллеров.
  • Утилита Wago-IO-Check. Установка. Поключение ПК к контроллеру. Мониторинг и управление работой модулей ввода-вывода.
  • Краткий обзор возможностей технологии LonWorks. Краткий обзор ПО LonMaker Turbo. Создание простейшей сети LonWorks с помощью ПО LonMaker Turbo, ее ввод в эксплуатацию и тестирование
  • Структура памяти контроллера Wago. Синтаксис при объявлении экспортируемых точек. Объявление конфигурационных свойств LonWorks как переменных в энергонезависимой памяти
  • Установка и запуск ПО Wago-TOPLON. Получение сведений об экспортируемых переменных из файла. Организация и настройка сетевых переменных и конфигурационных свойств LonWorks на основе экспортируемых переменных.
  • Ввод устройства в эксплуатацию и просмотр сетевых переменных и конфигурационных свойств с помощью ПО LonMaker Turbo.
  • Создание сети LonWorks с помощью ПО LonMaker Turbo, включающей контроллер Wago

Методика проведения обучения

  • В начале курса слушателю предоставляется учебное пособие на русском языке
  • Основную концепцию преподаватель представляет в виде слайдов с подробными комментариями
  • В процессе обучения проводятся обсуждения и опросы слушателей по каждому разделу курса.
  • Не менее половины учебного времени курса отводится под практические занятия на специализированном учебном стенде
  • По окончании каждого блока программы курса и демонстраций слушатели выполняют лабораторные работы
  • В процессе обучения проводятся обсуждения результатов самостоятельных работ и опросы слушателей по каждому разделу курса
  • Аттестация слушателей осуществляется по результатам выполнения лабораторных работ.

Организация и регламент обучения:

  • Обучение проходит в специально оборудованном классе
  • Учащимся предоставляется персональный компьютер с программным обеспечением и мобильный учебный комплект
  • Занятия проходят в один день, без разбиения
  • Начало занятий в 10.00, окончание - 18.00
  • В течение учебного процесса предусмотрено 4 перерыва по 15 минут и обеденный перерыв продолжительностью 45 минут
  • В перерывах между занятиями слушателям предлагается кофе и чай
  • Автоматизация особо опасных, технически сложных и уникальных объектов . Курс повышения квалификации с получением сертификата LON. Учебных дней:5. Аудиторных часов:40.
  • Проектирование инженерного оборудования особо опасных, технически сложных и уникальных зданий и сооружений . В Интернет не выгружается. Учебных дней:4. Аудиторных часов:16.
  • Автоматизация особо опасных, технически сложных и уникальных объектов, сокращенный курс . Для имеющих сертификаты LON, KNX или CoDeSys.
  • Программирование контроллеров на CoDeSys . Очная форма обучения. Учебных дней:2. Аудиторных часов:16.
  • Программирование контроллеров семейства FX и систем диспетчеризации на их основе . Организация сетей, прогаммирование контроллеров, SCADA.
  • Работа с аппаратными серверами NxE (NAE) системы диспетчеризации MetaSys system extended architecture (MSEA) . Работа с аппаратными серверами NxE. Учебных дней:2. Аудиторных часов:16.
  • Программирование и эксплуатация контроллеров семейства FEC/FAC и систем диспетчеризации на их основе . Новая серия контроллеров Johnson Controls. Учебных дней:3. Аудиторных часов:24.
  • Программирование и эксплуатация контроллеров семейства DX . Специализированный курс для служб эксплуатации и обслуживания оборудования предыдущих поколений Johnson Controls. Учебных дней:3. Аудиторных часов:24.
  • Программирование и эксплуатация контроллеров семейства DX, FX и систем диспетчеризации . Расширенный курс, включающий основы всех элементов сети JC прежних серий.

П ЛК производства EATON программируются с помощью программного инструмента XSoft-CoDeSys-2.

Программный пакет XSoft-CoDeSys-2 основан на стандартном программном обеспечении CoDeSys от компании 3S (Smart Software Solutions, Германия).

Примечание: У компании EATON кроме того есть другие программные пакеты основанные на программном обеспечении CoDeSys: ECP Soft (CoDeSys v2.3.5), MXpro (CoDeSys v2.3.6), easySoft-CoDeSys v2.3.9.

Подробная информация, руководства пользователя и другая документация для программного пакета XSoft-CoDeSys-2 размещена в разделе "Software -> XSoft-CoDeSys-2" официального сайта подразделения компании EATON:

Общая информация о ПО CoDeSys.

Благодаря своим функциональным возможностям, надежности и открытым интерфейсам, CoDeSys является одним из лидеров в области автоматизации программирования промышленных компьютеров и контроллеров. Он выбран в качестве базового инструмента многими ведущими мировыми поставщиками аппаратных решений для промышленной автоматизации (особенно в Европе, см.: http://www.codesys.com/company/customer-reference-table.html).

СoDeSys как средство программирования промышленных компьютеров и контроллеров представляет собой согласованный и взаимно дополняющий набор элементов и делится на 2 части: среду программирования и систему исполнения.

Среда программирования – основа всего комплекса, позволяющая разрабатывать прикладные программы для логических контроллеров в пяти специализированных редакторах, использующих разные, определяемые стандартом IEC 61131-3 языки:
- ассемблер-подобный список инструкций IL;
- pascal-подобный структурированный текст ST;
- язык функциональных блоковых диаграмм FBD ;
- язык релейно-контактных схем LD;
- язык последовательных функциональных схем SFC.

В CoDeSys реализован шестой специализированный язык Continuous Function Chart (CFC). Практически это те же стандартные функциональные блоки FBD, но с возможностью создания больших схем со свободным размещением элементов и обратными связями.

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

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

Помимо стандартных МЭК-библиотек 3S имеет реализацию в виде внутренней библиотеки протокола CANopen (master/slave). Внутренние библиотеки написаны на языках МЭК и являются аппаратно независимыми. CANopen поддерживается в CoDeSys и встроенным конфигуратором сети, использующим EDS-файлы. В итоге поддержка этого сложнейшего протокола в CoDeSys решается для любой аппаратной платформы.

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

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

Для программирования контроллера в среде CoDeSys, в него должна быть встроена система исполнения (Control Runtime System). Система исполнения - это часть CoDeSys, расположенная в оборудовании. Она устанавливается в контроллер в процессе его изготовления и являются предметом лицензирования для производителей ПЛК.

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

Отдельное место в ряду систем исполнения 3S занимает CoDeSys SP RTE. Это многозадачная система исполнения с собственным ядром жесткого реального времени под Windows NT, 2000 или XP. CoDeSys SP RTE гарантирует детерминированное время реакции с точностью в пределах микросекундной области. При этом никаких расширений операционной системы или дополнительной аппаратуры не нужно.

Для работы с конкретным устройством среде программирования CoDeSys необходим так называемый целевой (target) файл. В нем записаны тип процессора, распределение памяти и другие необходимые сведения об аппаратуре. Помимо этого, изготовитель оборудования может наделить CoDeSys значительным числом специфических функций (конфигураторы модулей системы и сети, дополнительные инструменты, фирменные библиотеки и многое другое). Все они включаются в комплект конфигурации целевой платформы. Такой комплект может содержать know-how, и может быть платным.

Если при установке CoDeSys используется CD изготовителя контроллера, то, комплект целевой платформы подключается автоматически. В противном случае нужно использовать приложение InstallTarget, указав путь к файлам целевой платформы (кнопка OPEN) и затем (выбрав нужную платформу) нажать кнопку INSTALL.

Средства коммуникации CoDeSys включают символьный и DDE интерфейсы. Коммуникационный сервер, OPC и DDE серверы входят в состав ПО. Взаимодействие ПК с системой программирования происходит посредством вспомогательного сервера связи (gateway). Сервер связи позволяет осуществить взаимодействие с одной или несколькими системами исполнения ПЛК. Возможно, что система программирования и сервер связи являются приложениями, работающими на одной машине. В этом случае сервер связи запускается автоматически при выполнении команды Login. Если сервер связи расположен на другой машине в сети, то он должен быть запущен заранее. Запущенный сервер отображает иконку CoDeSys в правой части панели задач Windows. Изображение иконки подсвечивается, когда установлена связь с ПЛК. Сервер связи продолжает работать независимо от системы программирования и отключается отдельно.

Для расширения возможностей CoDeSys компания 3S создала целый ряд дополнительных приложений: пакет для построения систем по управлению движением CoDeSys SoftMotion, инжиниринговый интерфейс ENI, инструмент визуализации CoDeSys HMI, а также ряд специализированных библиотек.

Встроенная визуализация CoDeSys приближается по своим возможностям к коммерческим SCADA-системам. Встроенная визуализация не требует никакой подготовительной работы. Тесная взаимосвязь визуализации и системы исполнения обеспечивает максимальную эффективность без каких-либо дополнительных затрат. Готовую визуализацию можно использовать несколькими разными способами:
1) непосредственно в системе программирования;
2) на любом PC с помощью отдельного Win32 приложения CoDeSys HMI;
3) через Web-браузер в сетях TCP/IP;
4) в контроллере, оснащенном дисплеем.

Во всех этих случаях никакого специального программирования не требуется. Везде работает одна и та же визуализация. Помимо этого, в стандартный комплект CoDeSys включены бесплатные OPC- и DDE-серверы. Они обеспечивают связь со SCADA-системами, если это необходимо.

Инжиниринговый интерфейс ENI (ENgineering Interface) служит для решения задачи синхронизации действий коллектива разработчиков и точный учет всех изменений и доработок при работе над большими проектами.

СoDeSys SoftMotion - это встроенный в среду программирования и систему исполнения CoDeSys функциональный набор средств управления движением, от простейших перемещений по одной оси до сложной многомерной интерполяции современных ЧПУ.

Краткая характеристика XSoft-CoDeSys-2 .

В составе программного пакета XSoft-CoDeSys-2 поставляется дополнительные компоненты (комплект целевой платформы, конфигурационные файлы устройств, специализированные библиотеки) от компании EATON.

Конфигуратор аппаратной части показывает все локальные входы/выходы и удаленные периферийные устройства (Profibus или CANopen) в одном пользовательском интерфейсе.

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

Еaton Automation предоставляет готовые библиотеки для программирования контроллеров в среде XSoft-CoDeSys-2 для разнообразных применений.

Библиотеки подключаются с помощью менеджера библиотек XSoft-CoDeSys-2. После подключения библиотеки ее функциональные блоки становятся доступными как и стандартные.

Интерфейсы функциональных блоков просты и обычно не требуют глубокого изучения документации для понимания. Таким образом пользователь обеспечен готовыми решениями для задач автоматизации.

Инструменты регулирования с обратной связью.

Набор включает около 120 функциональных блоков. Это дает возможность использовать регулятор с обратной связью в виде стандартных функциональных блоков. Функциональные блоки могут комбинироваться и каскадироваться для создания специальных решений.

ПИД-регулятор: ПИД-регулятор с разделенным диапазоном обеспечивает решение для типовой задачи нагрева и охлаждения. Контроллер с автонастройкой используется для автоматического задания параметров перед запуском фазы регулирования.

Трехпозиционный регулятор: В дополнение к стандартным трехпозиционным ПИД-регуляторам, доступны варианты, подходящие для любого времени открытия клапана. Периоды сканирования дифференциального и интегрального компонентов оптимизируются автоматически.

Широтно-импульсная модуляция (ШИМ): В случае отсутствия в системе аналогового исполнительного устройства, на выходах регуляторов используется ШИМ. Возможен стандартный алгоритм ШИМ и шумоподобный сигнал с высокой частотой переключения.

Fuzzy-регулятор: Блоки регулирования на нечеткой логике дают возможность даже неопытному пользователя интегрировать нечеткую логику в концепцию системы управления. Даже фактор усиления и уставка ПИД-регулятора могут легко программироваться с помощью нечеткой логики.

Обработка сигналов и симуляция: Для улучшения качества сигналов могут быть использованы функциональные блоки линейной задержки и фильтры PT1. Фильтры PTn с первого по десятый порядок могут быть симулированы с помощью набора функциональных блоков без дополнительных программных пакетов.

Функции позиционирования.

Набор содержит базовые функциональные блоки позиционирования для элементарных задач, а также более мощные блоки со следующими функциями:
- Асинхронное движение между точками.
- Позиционирование ведущий-ведомый (например интерполяция).
- Инкрементальное позиционирование.
- Позиционирование во вращении с оптимизированным проходом через мертвую точку.
- Автоматическая калибровка.
- Ручной режим с ограниченным шагом.
- Отслеживание контурной погрешности, обрывов провода, диапазона позиционирования.
- Зона доводки на сниженной скорости в конце позиционирования.
- Компенсация покрытия мертвой точки для гидравлических поворотных устройств.

Электронный редуктор.

Может быть сконструирован с помощью функциональных блоков синхронизации. Различные скорости могут быть засинхронизированы с любым передаточным числом. Фазовая синхронизация с программируемым смещением между ведущим и ведомым также может быть реализована. Есть три варианта ведущего устройства:
- Внутреннее ведущее устройство управляется той же программой.
- Внешнее ведущее устройство используется внешним устройством для управления ведущим. Инкрементальный энкодер регистрирует любое движение оси ведущего.
- С помощью виртуального ведущего, ведомые оси синхронизируются с симулируемой.

Применения: синхронизация пресса с виртуальным ведущим, синхронизация фаз и скоростей ременных передач, вытягивание волнистых материалов с 5-ю ведомыми осями с увеличивающимися коэффициентами передачи.

Летающая пила.

Это функция – комбинация электронного редуктора и позиционирования. Позиционирование производится относительно движущегося объекта.

Коммуникационные функции.

В дополнение к привычным удаленным соединениям с периферийными устройствами по таким полевым шинам, таким как CANopen или Profibus, важное значение имеют связи между ПЛК и соединения с системами высшего уровня. OPC, FTP, TCP/IP, email, web это только часть технологий, которые могут быть использованы для соединения и обмена файлами.

FTP-сервер: Контроллер Eaton Automation использует стандартную файловую систему для хранения программ. Это также относится к внешним картам памяти, присоединяемых через интерфейс USB. Наборы параметров (рецепты) могут быть созданы просто как обычный файл и переданы в ПЛК. Таким образом можно просто обновлять такие данные на любом ПК.

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

UDP и TCP/IP: Это протоколы, используемые на множестве сетевых платформ, которые дают возможность простого стандартизированного обмена данными между ПЛК и внешними устройствами. Это могут быть другие контроллеры или приложения на ПК.

Modbus RTU / TCP: Этот коммуникационный протокол, широко используемый на различных видах сетей. Modbus может быть реализован на базе последовательного соединения (RS232/485) или в виде Modbus IP Ethernet. Доступны готовые библиотеки для ведущих и ведомых устройств Modbus.

OPC- server: Практически все SCADA-системы, системы визуализации и управления поддерживают интерфейс OPC клиент/сервер. OPC-сервер используется контроллерами для представления данных OPC-клиентам. OPC-сервер поддерживает доступ к данным через последовательный интерфейс и через Ethernet, каждый OPC-сервер способен обрабатывать запросы от нескольких клиентов. Если данные требуется использовать несколько раз, например для визуализации системы или базы данных, разные программные пакеты могут получать доступ к данным через OPC-сервер без необходимости согласования требований и стандартов различных производителей.

Сообщения SMS и электронная почта: Статусная информация или сообщения об ошибках могут отсылаться через SMS или электронную почту – как для регистрации в журнале, так и для прямой связи с обслуживающим техническим персоналом. Готовые пользовательские модули дают все возможности для постоянного контроля за рабочим состоянием автоматики.

Встроенная визуализация.

Система программирования содержит встроенный редактор визуализации. Он предоставляет набор готовых графических элементов (прямоугольник, закругленный прямоугольник, эллипс, многоугольник, ломаная линия, кривая, сектор, растровый рисунок *.bmp, визуализация, кнопка, таблица, ActiveX элемент, стрелочный индикатор, столбчатый указатель, гистограмма, таблица тревог, тренд, файл WMF). Эти элементы могут быть связаны соответствующим образом с переменными проекта. Форма и цвет графических элементов будет изменяться при работе программы, в зависимости от значений переменных.

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

Чтобы наблюдать и изменять данные в контроллере, не нужны никакие дополнительные инструменты. Созданные внутри системы программирования формы могут использоваться в 4 различных режимах выполнения без изменений, в случае необходимости даже параллельно:

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

2. Windows - Визуализация, CoDeSys HMI: Программа Win32 CoDeSys HMI отображает формы визуализации на ПК без установки среды программирования CoDeSys. Она обменивается сообщениями с ПЛК через тот же интерфейс, что и среда программирования. Применение OPC (OPC - OLE for Process Control) или DDE (DDE - Dynamic Data Excange) механизмов не требуется.

3. Web - визуализация: Опционально XSoft-CoDeSys-2 генерирует из данных визуализации описание XML, которое загружается вместе с java-апплетом (апплет – программа, написанная на языке программирования JAVA, которая может выполняться браузерами) в контроллер и отображается по TCP/IP в браузере (программе просмотра). Таким образом, данные визуализации на самых различных компьютерных платформах будут отображаться интерактивно.

4. Целевая визуализация: Для контроллеров со встроенным дисплеем данные визуализации из системы программирования могут загружаться с приложением в целевую систему. Они автоматически отображаются на встроенном дисплее.

Не все типы сенсорных панелей производства компании EATON поддерживают целевую визуализацию CoDeSys.

Например сенсорная панель серии XV-2xx производства компании EATON не поддерживает целевую визуализацию CoDeSys:

Сенсорная панель серии XV-1xx производства компании EATON поддерживает визуализацию CoDeSys:

Быстрый старт - создание проекта.

Проект включает следующие объекты: POU, типы данных, визуализации, ресурсы, библиотеки.

К программным компонентам (POU) относятся функциональные блоки, функции и программы. Каждый программный компонент состоит из раздела объявлений и кода. Для написания всего кода POU используется только один из МЭК языков программирования.

Функция это POU, который возвращает только единственное значение.

Функциональный блок это POU, который принимает и возвращает произвольное число значений.

Программа - это POU, способный формировать произвольное число значений во время вычислений.

Программы или функциональные блоки могут быть дополнены действиями. Фактически действия это дополнительный набор встроенных в POU подпрограмм. Действия могут описываться на языке, отличном от того, на котором выполняется соответствующий функциональный блок или программа.

СoDeSys поддерживает все МЭК операторы: арифметические операторы; битовые операторы; операторы сдвига, операторы выборки; операторы сравнения; адресные операторы; оператор вызова; преобразования типов; математические функции.

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

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

В качестве операндов могут выступать константы переменные, адреса и вызовы функций.

При создании нового проекта необходимо выбрать ПЛК для которого будет писаться программа:

При этом необходимо настроить этот ПЛК под решаемую задачу:

Затем создать программные компоненты необходимые для решения задачи:

Затем добавить библиотеки необходимые для решения задачи если они не подсоединяются автоматически:

С помощью визуализации пользователь может создать графическое представление проекта объекта управления. Она непосредственно связана с созданной в CoDeSys программой контроллера.

После завершения программирования, скомпилировать проект и исправить ошибки, если они есть:

После устранения ошибок, приступить к отладке. Включить эмуляцию (simulation):

Нажав кнопку ПОДКЛЮЧИТЬСЯ проверьте правильность выполнения проекта. Для этого надо изменять вручную входные данные и убедиться, что выходы контроллера отреагировали нужным образом. Если необходимо, можете наблюдать значения переменных в программных компонентах:

Используя менеджер рецептов можете задать список переменных, значения которых необходимо наблюдать.

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

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

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

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

Когда проект отлажен, окончательно проверить работу программы в рабочих условиях на реальном "железе". При этом полностью доступны все отладочные функции. Чтобы выполнить эту операцию необходимо отключить режим эмуляции и настроить соединение с ПЛК - ОНЛАЙН ‒> ПАРАМЕТРЫ СВЯЗИ:


Нажав кнопку ПОДКЛЮЧИТЬСЯ проверьте исполнение программы в контроллере:

Статьи по теме: