Знакомство со средой Beremiz

Примечание

Более подробную информацию о создании, настройке и загрузке пользовательской программы в ПЛК BRIC можно узнать по ссылке.

Инструкции по установке и обновлению Beremiz

Инсталлятор в формате «.exe» можно скачать кликнув по here

При переходе по ссылке открывается страница загрузки файла «Beremiz_BRIC_0_12_0_4_Setup.exe».

../_images/download.png

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

../_images/ber1.png

После выбора папки необходимо нажать кнопку «OK», с момента которого начинается процесс распаковки файлов.

../_images/ber2.png

При успешной установке Beremiz выводится окно уведомления.

../_images/ber3.png

В результате установки в выбранной директории появится папка «Beremiz», в котором содержатся файлы и папки, представленные на рисунке ниже. Также появится ярлык на рабочем столе.

../_images/install.png

Запуск Beremiz осуществляется двойным нажатием левой клавишей мыши по файлу «Beremiz.exe», либо по ярлыку на рабочем столе.

Для обновления необходимо кликнуть по Help -> Updater и нажать на кнопку Update. В консоли выдается сообщении об обновлении разделов. Для применения обновлений необходимо перезапустить программу.

Пошаговая инструкция настройки параметров сетевой карты ПК для подключения по LAN

  • Подключаем ПК к контроллеру с помощью LAN-кабеля.

  • Заходим в Панель управления -> Сеть и Интернет -> Сетевые подключения.

  • Выбираем сеть Ethernet, нажимаем правой кнопкой мыши в свойства адаптера.

    ../_images/lan1.png
  • Необходимо настроить протокол TCP/IPv4, для этого дважды нажимаем левой кнопки мыши по IP версии 4.

    ../_images/lan2.png
  • По умолчанию при подключении через интерфейс Ethernet IP-адрес: 192.168.1.232, поэтому используем IP-адрес 192.168.1.ХХХ чтобы оказаться в одной подсети с контроллером. Например:

    ../_images/lan3.png
  • Нажимаем кнопку «ОК». Выводится сообщение о введении адреса без указания маски подсети.

    ../_images/lan4.png

Нажимаем кнопку «ОК». По умолчанию выставляется маска подсети: «255.255.255.0»

  • Для завершения настройки параметров нажимаем кнопку «ОК».

    ../_images/lan5.png
  • Для проверки связи ПК с контроллером заходим в Командную строку и прописываем:

    ping 192.168.1.232
    

Нажимаем клавишу «Enter». Выводится сообщение об успешном обмене пакетами данных.

../_images/lan6.png

Пошаговая инструкция настройки параметров сетевой карты ПК для подключения по USB

  • Подключаем ПК к контроллеру с помощью USB-кабеля.

  • Заходим в Панель управления -> Сеть и Интернет -> Сетевые подключения.

  • Выбираем сеть Ethernet (удостоверившись, что эта сеть подключения по USB), нажимаем правой кнопкой мыши в свойства адаптера.

    ../_images/lan1.png
  • Необходимо настроить протокол TCP/IPv4, для этого дважды нажимаем левой кнопки мыши по IP версии 4.

    ../_images/lan2.png
  • По умолчанию при подключении через интерфейс Ethernet IP-адрес: 172.16.2.232, поэтому используем IP-адрес 172.16.2.ХХХ чтобы оказаться в одной подсети с контроллером. Например:

    ../_images/usb1.png
  • Нажимаем кнопку «ОК». Выводится сообщение о введении адреса без указания маски подсети.

    ../_images/lan4.png

Нажимаем кнопку «ОК». По умолчанию выставляется маска подсети: «255.255.255.0»

  • Для завершения настройки параметров нажимаем кнопку «ОК».

    ../_images/usb2.png
  • Для проверки связи ПК с контроллером заходим в Командную строку и прописываем:

    ping 172.16.2.232
    

Нажимаем клавишу «Enter». Выводится сообщение об успешном обмене пакетами данных.

../_images/usb3.png

Настройка проекта

Проект в Beremiz представляет собой именованную папку, в которой лежат исходные файлы. Она должна быть обязательно пустой и не защищенной от записи. Если там уже есть файлы, будет выдана соответствующая ошибка. В созданной папке будут сохранены следующие файлы и папки:

  • «beremiz.xml» – в данном XML файле сохраняются настройки специфичные для среды разработки Beremiz относительно проекта;

  • «plc.xml» – в данном XML файле сохраняется полное описание проекта: всех программ, ресурсов, пользовательских типов данных, данных о проекте, настроек редакторов графических языков IEC 61131-3;

  • папка «build», которая хранит генерируемый ST и C код, а также получаемый исполняемый бинарный файл пользовательской программы.

Внимание

Название проекта не должно содержать пробел и недопустимые символы

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

Новый проект создаётся с помощью главного меню «File» – «New», либо с помощью кнопки «New» на панели управления.

../_images/110.png

Создание нового проекта с помощью главного меню

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

../_images/210.png

Диалог выбора папки для нового проекта

В появившемся диалоге вам будет предложено настроить основной программный модуль проекта. В данном диалоге три поля:

  • «POU Name»;

  • «POU Type»;

  • «Language».

../_images/38.png

Диалог добавления основной программы

POU Name - имя программы, присвоенное по умолчанию, может быть заменено на любое имя, соответствующее назначению данной программы.

POU Type – «Program», в дальнейшем в проект можно добавить дополнительные программы, функции и функциональные блоки.

В поле Language необходимо выбрать из списка один из языков стандарта IEC 61131-3 (IL, ST, LD, FBD, SFC), на котором будут реализованы алгоритмы и логика работы данной добавляемой программы.

При нажатии кнопки «ОК» в проект будет добавлен основной программный модуль с выбранными параметрами, ресурс проекта будет сконфигурирован по умолчанию: добавлена одна задача циклического выполнения с интервалом 20 мс, и один экземпляр основной программы. При нажатии кнопки «Cancel» будет создан пустой проект без каких-либо настроек.

Конфигурационные переменные проекта

Конфигурационные переменные позволяют программным модулям типа «Program» и «Function block» использовать общие переменные, которые будут определены в глобальной области видимости проекта.

В панели переменных и констант добавим стандартные переменные «LocalVar0» типа DINT, с помощью кнопки «Добавить переменную». Таким же образом добавим остальные переменные. На рисунке ниже представлен результат объявления конфигурационных переменных.

../_images/410.png

Объявление конфигурационных переменных

Для того чтобы к данной конфигурационной переменной можно было обращаться из программных модулей типа «Program» или «Function block» необходимо в их панели редактирования в панели переменных и констант создать переменную с таким же именем, как и ранее объявленная глобальная, и установить её класс «External» (Внешний).

Настройки сборки проекта и соединения с ПЛК BRIC

Для использования написанной пользовательской программы необходимо её собрать (скомпилировать и скомпоновать), т.е. получить исполняемый файл и передать на ПЛК BRIC. В связи с этим основными настройками являются: «URI_location» - адрес ПЛК, и «TargetType» - архитектура платформы.

../_images/57.png

Конфигурация проекта

Примечание

IP-адрес при подключении через Ethernet-порт по умолчанию - 192.168.1.232

Внимание

ПЛК BRIC и модули расширения имеют архитектуру «Sofi», поэтому во вкладке «Config» в разделе TargetType требуется установить платформу «Sofi».

Языки стандарта МЭК 61131-3

ST (Structured Text) – это текстовый язык высокого уровня общего назначения, по синтаксису схожий с языком Pascal. Удобен для программ, включающих числовой анализ или сложные алгоритмы. Может использоваться в программах, в теле функции или функционального блока, а также для описания действия и перехода внутри элементов SFC. Согласно IEC 61131-3 ключевые слова должны быть введены в символах верхнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.

Выражения в ST выглядят точно также, как и в языке Pascal:

[variable] := [value];

Порядок их выполнения – справа налево. Выражения состоят из операндов и операторов. Операндом является литерал, переменная, структурированная переменная, компонент структурированной переменной, обращение к функции или прямой адрес.

Конструкции языка IL

IL (Instruction List) представляет собой текстовый язык программирования низкого уровня, который очень похож на Assembler, но к конкретной архитектуре процессора не привязан. Он позволяет описывать функции, функциональные блоки и программы, а также шаги и переходы в языке SFC. Одним из ключевых преимуществ IL является его простота и возможность добиться оптимизированного кода для реализации критических секторов программ. Особенности IL делают его неудобным для описания сложных алгоритмов с большим количеством разветвлений.

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

Операторы языка IL

Оператор

Описание

LD

Загрузить значение операнда в аккумулятор

LDN

Загрузить обратное значение операнда в аккумулятор

ST

Присвоить значение аккумулятора операнду

STN

Присвоить обратное значение аккумулятора операнду

S

Если значение аккумулятора TRUE, установить логический операнд

R

Если значение аккумулятора FALSE, сбросить логический операнд

AND

«Поразрядное И» аккумулятора и операнда

ANDN

«Поразрядное И» аккумулятора и обратного операнда

OR

«Поразрядное ИЛИ» аккумулятора и операнда

ORN

«Поразрядное ИЛИ» аккумулятора и обратного операнда

XOR

«Поразрядное разделительное ИЛИ» аккумулятора и операнда

XORN

«Поразрядное разделительное ИЛИ» аккумулятора и обратного операнда

ADD

Сложение аккумулятора и операнда, результат записывается в аккумулятор

SUB

Вычитание операнда из аккумулятора, результат записывается в аккумулятор

MUL

Умножение аккумулятора на операнд, результат записывается в аккумулятор

DIV

Деление аккумулятора на операнд, результат записывается в аккумулятор

GT

Значение аккумулятора сравнивается со значением операнда(>(greater than)). Значение (TRUE или FALSE) записывается в аккумулятор

GE

Значение аккумулятора сравнивается со значением операнда (>=greater than or equal). Значение (TRUE или FALSE) записывается в аккумулятор

EQ

Значение аккумулятора сравнивается со значением операнда (=(equal)). Значение (TRUE или FALSE) записывается в аккумулятор

NE

Значение аккумулятора сравнивается со значением операнда <>(not equal). Значение (TRUE или FALSE) записывается в аккумулятор

LE

Значение аккумулятора сравнивается со значением операнда (<=(less than or equal to)). Значение (TRUE или FALSE) записывается в аккумулятор

LT

Значение аккумулятора сравнивается со значением операнда (<(less than)). Значение (TRUE или FALSE) записывается в аккумулятор

JMP

Переход к метке

JMPC

Переход к метке при условии, что значение аккумулятора TRUE

JMPCN

Переход к метке при условии, что значение аккумулятора FALSE

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

Объекты языка программирования LD обеспечивают средства для структурирования программного модуля в некоторое количество контактов, катушек. Эти объекты взаимосвязаны через фактические параметры или связи.

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

Слева и справа схема на языке LD ограничена вертикальными линиями – шинами питания. Между ними расположены цепи, образованные контактами и катушками реле, по аналогии с обычными электронными цепями. Слева любая цепь начинается набором контактов, которые посылают слева направо состояние «ON» или «OFF», соответствующие логическим значениям TRUE или FALSE. Каждому контакту соответствует логическая переменная (типа BOOL). Если переменная имеет значение TRUE, то состояние передается через контакт. Иначе – правое соединение получает значение выключено («OFF»).

Контакты могут быть соединены параллельно, тогда соединение передает состояние «логическое ИЛИ». Если контакты соединены последовательно, то соединение передаёт «логическое И».

Контакт может быть инвертируемым. Такой контакт обозначается с помощью символа |/| и передает состояние «ON», если значение переменной FALSE.

SFC (Sequential Function Chart) расшифровывается как «Последовательность функциональных диаграмм», и является одним из языков стандарта IEC 61131-3. SFC позволяет легко описывать последовательность протекания процессов в системе.

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

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

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

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

FBD (Function Block Diagram) – это графический язык программирования высокого уровня, обеспечивающий управление потока данных всех типов. Позволяет использовать мощные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечательно подходит для небольших приложений и удобен для реализации сложных вещей подобно ПИД регуляторам, массивам и т. д. Данный язык может использовать большую библиотеку блоков. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

Компиляция пользовательской программы

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

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

Для сборки проекта нажмите кнопку «Сборка проекта в директории сборки».

../_images/61.png

Кнопка сборки проекта

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

../_images/71.png

Результаты сборки выведены в консоль

Пересборку проекта можно осуществить, очистив директорию сборки проекта нажатием на кнопку «Очистить директорию сборки проекта». Будет удален сгенерированный на языке ST код проекта и скомпилированный бинарный файл прошивки ПЛК. После этого нажмите кнопку «Сборка проекта в директории сборки», и проект будет собран заново.

Итоговый бинарный файл, который будет загружен в ПЛК, находится в папке проекта с названием sofi_task_crc.bin. На рисунке ниже показан путь в папке проекта файла и название файла.

../_images/81.png

Расположение итогового файла проекта

Загрузка пользовательской программы в ПЛК BRIC

Загрузка через Beremiz Для загрузки созданноq пользовательской программы необходимо нажать на кнопку «Download task»

../_images/91.png

Кнопка Download task

Результат загрузки выводится в консоль.

../_images/101.png

Результат загрузки проекта в ПЛК

Описание строк консоли:

downloading task.. – Загрузка пользовательской программы в контроллер;

used ip address by default http://192.168.1.232 – IP-адрес контроллера, куда загружается пользовательская программа;

For changing ip address set parameter Project->config->URI_location - 192.168.1.232 – Заметка для смены IP-адреса контроллера: необходимо зайти в Project->config->URI_location;

path D:WORKBeremiz_projects1_lessonschannelsdo_state_ctrl/build/sofi/freertos/build/sofi_task_crc.bin – Размещение итогового скомпилированного файла sofi_task_crc.bin;

Task was stopped – Пользовательская программа в контроллере остановлена;

os version in plc – Версия OS в ПЛК BRIC;

uploading task – Процесс обновления пользовательской программы в контроллере;

Starting task – Процесс запуска пользовательской программы в контроллере;

reading task state {„task_state“: 9} – Чтение статуса пользовательской программы в контроллере;

User task started – Пользовательская программа в контроллере в работе.

Примечание

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

Загрузка через WEB-страницу ПЛК BRIC

Так же имеется второй способ загрузки user_task – через WEB-интерфейс контроллера.

Для загрузки созданного бинарного файла в ПЛК BRIC заходим в браузер по IP-адресу контроллера, по умолчанию: 192.168.1.232

Далее нажимаем на вкладку «Password»(«Пароль») и вводим пароль в поле «Enter password».

Внимание

Паролем по умолчанию является bric

После этого переходим во вкладку «Task control»(«Пользоват. программа») и нажимаем на кнопку «Обзор» в поле Download User_task. Выбираем запрашиваемый файл sofi_task_crc.bin. После нажатия кнопки «Download» дожидаемся окончания загрузки. После появления надписи «Download successful, please wait» и возвращения обратно к старнице загрузки нажимаем на кнопку «Run» в поле User_task in PLC. После нажатия пользовательская программа запускается в контроллере, статус можно отследить в строке «State» поля User_task in PLC.

../_images/111.png

Примечание

При отсутствии возможности подключения к ПЛК BRIC через Ethernet имеется другой способ подключения - USB порт. Адресом порта по умолчанию является 172.16.2.232