Уважаемые коллеги, мы рады предложить вам, разрабатываемый нами учебный курс по программированию ПЛК фирмы Beckhoff с применением среды автоматизации TwinCAT. Курс предназначен исключительно для самостоятельного изучения в ознакомительных целях. Перед любым применением изложенного материала в коммерческих целях просим связаться с нами. Текст из предложенных вам статей скопированный и размещенный в других источниках, должен содержать ссылку на наш сайт heaviside.ru. Вы можете связаться с нами по любым вопросам, в том числе создания для вас систем мониторинга и АСУ ТП.


Создание проекта в TwinCAT.

Начиная с этой статьи, мы будем работать в TwinCAT 3 (сокращенно TC3). В дальнейшем изучая TwinCAT 3 в рамках данного курса, мы будем запускать TC3 runtime прямо на нашем рабочем компьютере. Если вы не знаете, чем отличается среда разработки TwinCAT 3 от TwinCAT 3 runtime, стоит прочитать «Знакомство с TwinCAT» перед изучением этой статьи.

Среда разработки TwinCAT работает без лицензии. TwinCAT runtime требует лицензию, но можно пользоваться демоверсией, что достаточно для прохождения данного курса. Для использования демоверсии необходимо будет ввести капчу. Лицензия будет доступна 7 дней, после чего ее можно активировать снова и снова. Подробнее с политикой лицензирования можно ознакомится в infosys beckhoff, пройдя по пути TwinCAT 3 → Licensing.

TwinCAT 3 распространяется бесплатно на официальном сайте. Для загрузки потребуется регистрация.

Необходимо чтобы путь, по которому устанавливается TwinCAT, содержал только латиницу. Если у вас на компьютере уже установлена Visual Studio, в процессе установки вам будет предложено использовать оболочку Visual Studio для TwinCAT. Решение, использовать данную возможность или нет, мы оставим за вами, на прохождение курса оно не влияет. В остальном установка TwinCAT 3 вполне стандартна, и на ней мы останавливаться не будем.

После успешной установки TwinCAT 3 в области уведомлений будет отображаться соответствующий значок.

Значок TwinCAT 3 в панели задач

Давайте разберемся как в TwinCAT 3 создается проект и напишем нашу первую простейшую программу.

Создание проекта в TwinCAT 3

Запустите TwinCAT XAE нажав ПУСК → Beckhoff → TwinCAT XAE.

Запуск TwinCAT 3 из меню Пуск

После запуска TC3 откроется стартовое окно. При желании ознакомится с описанием интерфейса можно в infosys beckhoff пройдя по пути TwinCAT 3 → TE1000 XAE → User Interface → User Interface components. В дальнейшем все действия будут сопровождаться подробным описанием с иллюстрациями, поэтому изучать пользовательский интерфейс можно по мере прохождения курса.

Стартовое окно TwinCAT 3

Давайте создадим новый проект, для этого нажмите FILE → NEW → Project.

Создание нового проекта TwinCAT 3

Откроется окно создания нового проекта.

Окно создание нового проекта

Укажите, что вы хотите создать проект, выбрав TwinCAT Projects. Выберите тип создаваемого проекта TwinCAT XAE Project (XML format). В строке Name введите имя проекта, можно указать любое имя на латинице. В строке Location укажите путь, по которому будет создан проект. В строке Solution name укажите название папки, в которой будет храниться создаваемый проект. Путь к проекту и имя папки, где хранится проект так же должны состоять только из латиницы.

Окно только что созданного проекта

В окне Solution Explorer будут отображаться файлы проекта. Давайте рассмотрим их подробно. Строчка Solution ‘имя проекта’ — это конструкция, наследованная из Visual Studio, пока не обращайте на нее внимания.

Во вкладке проекта у вас есть вкладки SYSTEM, MOTION, PLC, SAFETY, C++, I/O.

  • SYSTEM — этот раздел включает в себя всевозможные настройки проекта.
  • MOTION — в этом разделе создаются задачи управления сервоприводами и шаговыми двигателями, если такие используются в вашем проекте.
  • PLC — здесь пишутся программы для ПЛК. TwinCAT 3 позволяет запускать несколько виртуальных ПЛК на одном физическом устройстве.
  • SAFETY — в этом разделе создается код для систем удовлетворяющих требованиям функциональной безопасности.
  • C++ — в TwinCAT 3 существует возможность создания кода на языке C++, который будет выполняться в runtime ПЛК.
  • I/O — здесь производится конфигурация входов и выходов ПЛК, и они сопоставляются с переменными в программе.

При изучении TC3 мы будем запускать среду выполнения TwinCAT 3 runtime на своем рабочем компьютере, таким образом превращая его в ПЛК. Настроим среду выполнения TwinCAT 3 runtime на вашем компьютере. Откройте раздел SYSTEM и дважды щелкните на иконку Real-Timer.

Окно настройки runtime

Нажмите кнопку Read from Target, после чего отобразится список ядер вашего процессора. Далее мы выделим одно из ядер вашего процессора для выполнения TC3 runtime. Важно не забывать возвращать систему к исходному состоянию, когда не собираетесь пользоваться runtime. Сохраните проект, нажав FILE → Save All. Нажмите Set on Target, будет отображено окно Change number of shared cores. В левом окне отображается количество ядер, выделенных для общих нужд (Англ. Shared). В правом окне количество изолированных ядер (Англ. Isolated), на которых будет выполняться runtime. Выделите одно ядро для использования в изолированном режиме и нажмите кнопку Set, после чего нужно будет согласиться перезагрузить компьютер. Возвращения всех ядер на выполнение общих задач производится точно так же. После перезагрузки снова запустите TwinCAT 3, откройте проект и снова зайдите в SYSTEM → Real-Time, нажмите кнопку Read from Target. После чего в верхней таблице в столбце Core все ядра кроме одного должны иметь состояние Shared, а одно оставшееся ядро должно иметь состояние Isolated.

Выбор ядер процессора для выполнения TC3 runtime

В столбце RT-Core поставьте галочку напротив ядра, имеющего статус Isolated, после чего снимите галочку с ядра, имеющего статус Shared. На этом конфигурация TC3 runtime в рамках этого занятия завершена. В дальнейшем мы будем возвращаться к этому вопросу.

Давайте добавим ПЛК в проект. Кликните правой кнопкой по иконке PLC в окне Solution Explorer и нажмите Add New Item.

Добавление ПЛК в проект

Откроется окно добавления ПЛК.

Окно создание нового проекта

Выберите Standard PLC Project. В строке Name введите имя нового ПЛК, можно указать любое имя. В строке Location укажите путь, по которому будут добавлены файлы, содержащие код ПЛК, лучше оставить его без изменения.

Проект после добавления ПЛК

Состав вкладки PLC1 мы будем разбирать в течение курса. Сейчас давайте воспроизведем пример из вводной статьи.

Схема примера

Добавим в проект ПЛК файл с кодом. Кликните правой кнопкой по папке POUs, выберите ADD→POU… Каждый программный компонент, сокращенно POU (Англ. Program Organization Bloc) — это просто файл содержащий код на языке МЭК. Каждый программный компонент состоит из раздела объявлений и кода. Раздел объявлений переменных находится в верхней части программного компонента, раздел кода в нижней.

Добавления файла с кодом

Откроется окно добавления файла с кодом. В строке NAME необходимо ввести имя нового файла, оставим его по умолчанию POU. Тип создаваемого файла выберите Program. Язык создаваемого файла укажите Ladder Logic Diagram (LD). После нажмите Open.

Окно добавления файла с кодом

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

Проект после создания файла с кодом

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

НаименованииУГОИзображение в языке LD в TC3
Нормально открыты контакт
Нормально закрытый контакт
Катушка

Давайте в верхнюю часть окна добавим описание необходимых нам переменных. Для этого между строчками VAR и END_VAR наберите следующий текст:

  1. SB1_Stop : BOOL;
  2. SB2_Start : BOOL;
  3. K1 : BOOL;

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

В верхнем окне у вас должен получится следующий код:

  1. PROGRAM POU
  2. VAR
  3. SB1_Stop : BOOL;
  4. SB2_Start : BOOL;
  5. K1 : BOOL;
  6. END_VAR

Теперь давайте начертим схему.

Окно с пустой цепью и описанными переменными

Кликнув правой кнопкой по пустой цепи и выбирая команды «добавить контакт» (Англ. Insert Contact), «добавить НЗ контакт» (Англ. Insert Negated Contact) «добавить катушку» (Англ. Insert Coil) и «добавить контакт параллельно» (Англ. Insert Contact Parallel (below)) создайте цепь как на рисунке ниже. Укажите названия всех добавленных элементов, как показано на схеме.

Окно с пустой цепью и описанными переменными

Откройте окно MAIN и в нижней части окна добавьте строчку:

  1. POU();
 

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

Окно MAIN

Так как у нас нет кнопок и электродвигателя, давайте заменим их виртуальными. Кликните правой кнопкой по папке VISUs, выберите ADD→Visualization…

Добавления файла с визуализацией

Откроется окно добавления файла с визуализацией. Поставим галочку на против VisuSymbols (System). После жмем Open.

Окно добавления файла с визуализацией

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

Проект после добавления файла с визуализацией

Откройте Toolbox кликнув по вкладке в правой части экрана, как показано на картинке. Добавьте две кнопки, перетащив их из Toolbox на экран с визуализацией.

Добавление кнопок и лампы

На экране визуализации выделите кнопку и откройте ее свойства, кликнув по вкладке Properties в правой части экрана. Надпись, отображаемая на кнопке, задается в разделе Texts, в строке text, введите туда «Start». Переменная, которая изменяется при нажатии кнопки, задается в разделе Inputconfiguration, в подразделе Tap, в строке variable, введите туда POU.SB2_Start. При вводе переменной вы сначала указываете файл, где она находится, потом через точку имя переменной.

Настройка свойств кнопки

Повторите действия для второй кнопки, введя «Stop» и POU.SB1_Stop соответственно.

На экране визуализации выделите лампу и откройте ее свойства, кликнув по вкладке Properties в правой части экрана. Переменная, при изменении которой изменяется состояние лампы, указывается в строке Variable, введите туда POU.K1. Цвет лампы указывается в разделе Background, в строке Image, введите туда Green.

Настройка свойств лампы

Компиляция — это процесс перевода кода из вида понятного человеку в вид понятный ПЛК. Скомпилируем проект: выделите Project1 в Solution Explorer, нажмите Build→Build Solution.

Запуск компиляции проекта

При успешной компиляции откроется сначала вкладка Output, после вкладка Error List. Если во вкладке Error list отображается «0 Errors», «0 Warnings» и некоторое количество «Messages», значит компиляция прошла успешно. Если после компиляции присутствуют ошибки, проверьте, правильно ли вы проделали предыдущие шаги начиная с создания ПЛК.

Отчет о компиляции

Сейчас TwinCAT runtime находится в режиме конфигурации. Переключим его в режим выполнения нажмите TwinCAT→Activate Configuration. 

Переключение TwinCAT в режим выполнения

Появится окно, в котором TwinCAT спросит вас какой проект и на каком устройстве необходимо перевести в режим выполнения, убедитесь что в строке проекта (Англ. Project) отображается ваш текущий проект а в качестве цели (Англ. Target) выбрано <Local>.

Окно выбора проекта и устройства

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

Окно активации пробной лицензии

Проект создан и готов к работе, для удобства давайте выведем на экран сразу два окна. Нажмите Window→New Vertical Tab Group.

Разделение экрана

В левом экране откройте окно POU, в правом экране откройте окно Visualization.

Наконец запустим проект выполняться. Нажмите PLC→Login.

Запуск проекта

Нажимая кнопки Start и Stop, можно включать и выключать лампу. В левом экране вы можете наблюдать за состоянием логики. Попробуйте задержать нажатыми кнопки, чтобы увидеть, как меняется состояние контактов в окне POU.

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

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