Обзор ПЛК Velocio Ace 3090v5, часть 2: программирование | ПЛК и АСУТП

В предыдущей части обзора американского программируемого контроллера Velocio Ace 3090v5 я рассматривал его аппаратную часть. Эта часть будет про его программирование.

Для программирования девайсов Velocio декларируется такая идея:

velocio-easy-to-lern
Посмотрим, так ли легко программировать на самом деле.

 

vBuilder

Программирование ПЛК осуществляется в бесплатной среде программирования vBuilder: http://velocio.net/vbuilder/  Актуальная версия на сегодня- 1.26.

vbuilder

Инсталляция vBuilder маленькая, всего 4.5 Мб.

Вместе с vBuilder устанавливается драйвер виртуального com-порта для подключения Ace к компьютеру через порт USB:
velocio-virt-comport

Начать изучение vBuilder лучше с просмотра видеоуроков http://velocio.net/tutorials/
Для более полного понимания- руководство по программированию «vBuilder manual» http://velocio.net/vbuilder/
В качестве «быстрого хэлпа» по программным блокам используется та же страница http://velocio.net/vbuilder/. Просто жмешь по пиктограммам соответствующих блоков vBuilder справа на странице и читаешь, как они работают:

vBuilder_fast_help

Если с английским совсем туго, на помощь придет переводчик браузера Ghrome: правая кнопка мыши-> перевести на русский. Перевод технический, но смысл будет понятен.

Ace 3090v5 является полноценным контроллером и имеет следующие возможности для программирования:

  • Программирование на языке релейной логики(Ladder Logic) и языке блок-схем(Flow Chart)
  • Возможность использования подпрограмм
  • Причем, подпрограммы являются объектами по типу функциональных блоков(FB) в Step-7 и Codesys
  • Возможность создания внутренних переменных(тэгов) типа bit, unsigned int 8/16 bit, signed int 16/32 bit, float
  • Возможность использования массивов
  • Множество программных блоков, в т.ч. ПИД, ШИМ, фильтры сигналов, статистика и т.д.
  • Использование часов реального времени(правда, часы без батарейки и при отключении питания время сбрасывается)
  • Связь по Modbus с ПК, сенсорными панелями и др. по Modbus в режиме slave; возможно подключение по Modbus к 2-м мастер-устройствам одновременно
  • Каждому входу/выходу и внутренним тэгам можно назначить адрес для передачи их значений по Modbus
  • Возможность реализовывать собственные протоколы передачи данных по RS-232

В текущей версии vBuilder нет программного симулятора ПЛК, а значит, созданную программу нельзя отладить без подсоединенного к компьютеру контроллера. Тоже самое, например, наблюдается в Step-7 для ПЛК Siemens S7-200/1200.

Сервисные возможности самого vBuilder такие:

  • Обновление прошивки ПЛК(Firmware Update)
  • Отладочный режим (Debug)
  • Дополнительная опция в Debug- отладка программы по шагам, жмешь кнопку и видишь, как выполняется программа «кубик за кубиком»
  • Просмотр значений любых тэгов в подключенном ПЛК(окно Watch)
  • Установка часов реального времени в ПЛК
  • Калибровка термопары, в т.ч. на градусы C и F

Разработка программ возможна на двух графических языках: языке релейной логики(Ladder Logic) и языке блок-схем(Flow Chart). В обоих языках доступны одни и те же программные блоки, но в релейной логике есть еще блоки выделения переднего и заднего фронта сигнала(момент перехода сигнала из 0 в 1 и из 1 в 0).

Панель программных блоков:

Краткое описание программных блоков:

—|↑|— Передний фронт сигнала, переход из 0 в 1
—|↓|— Задний фронт сигнала, переход из 1 в 0
ON? OFF? Сравнение бита с 1 или 0
Turn On/Off Установить бит в 1 или 0
Calculator Математические действия с тэгами, в т.ч. использование формул
Copy Копирование данных между тэгами
Counter Счетчик на возрастание или убывание
Filter Цифровой фильтр, сглаживает «пики» сигналов
Motion In Настройка быстрого входа, чтение инкрементных датчиков вращения(энкодеров)
Motion Out Настройка быстрого выхода, управление шаговым двигателем
PID ПИД-регулятор
PWM Широтно-импульсная модуляция (ШИМ)
Ramp Плавное возрастание/уменьшение тэга, «плавный пуск/останов»
Serial Comm Работа с портом RS-232, в т.ч. создание собственных протоколов передачи данных
Scale Масштабирование сигнала. Например, для преобразования 12-битного аналогового сигнала из 0… 4095 в реальные значения
Shift/Rotate Побитовый сдвиг тэга вправо или влево, «переворот» тэга
Statistics Статистика: определение максимального, минимального, среднего значения тэга на протяжении времени
Subroutine Вызов подпрограммы
Timer/Clock Старт/пауза/перезагрузка таймера; чтение/установка часов реального времени
Note Текстовый комментарий

 

В vBuilder можно вводить свои пользовательские переменные, которые здесь называются «тэги»(tags). Доступные тэги таких типов данных:

Название Краткое название Описание Размер
bit bit Логический тэг, 0/1 1 бит
unsigned 8 bit integers ui8 Целое беззнаковое, 0…255 1 Байт
unsigned 16 bit integers ui16 Целое беззнаковое, 0…65535 2 Байта
signed 16 bit integers i16 Целое со знаком, — 32767… 32767 2 Байта
signed 32 bit integers i32 Целое со знаком, — 2,147,483,647… 2,147,483,647 4 Байта
floating point numbers Float Число с плавающей точкой 4 Байта

Максимальные параметры программы:

Размер программы 64 Кб
Блоки FC или ступени LD 4000
Подпрограммы 68
Основная память (Main) Имен тэгов 950
bits 2048
ui8 512
ui16 512
i16 512
i32 256
float 256
Память подпрограмм (Object Memory) Имен тэгов 292
Общий размер тэгов 8 Кб

В vBuilder можно ввести до 950 тэгов (в Main), при этом количество битов в битовых тэгах может быть до 2048, как это понимать? Дело в том, что в vBuilder кроме простых тэгов(один тэг-одно число указанного типа), можно вводить массивы(один тэг- множество чисел указанного типа), которые считаются так же одним тэгом. В этом примере в программе введено 2 битовых тэга, общим размером 1001 бит:

 

Язык релейной логики (Ladder Logic)

Это старый добрый язык LD, один из стандартизированных языков для ПЛК по стандарту IEC 61131-3 Все, кто имел дело с ПЛК, с ним встречались:

Тут особо ничего не скажешь, LD как LD. Самый простой и распространенный язык в ПЛК и программируемых реле(ПР). Создан специально для того, что бы на нем могли создавать программы не только квалифицированные программисты, но и обычные электрики.

На одну линию LD может приходиться множество условий. Вот в примере результат линии LD находится в 31-й ячейке(если не считать «общую шину» в ячейке А), т.е. можно было бы вставить 30 условий на эту линию:

На самом деле, в одну линию LD в vBuilder можно вставить еще больше условий, но вставлять дальше я утомился. Все равно, в реальной программе на одну линию LD приходится максимум 4-5 условий.

 

Язык блок-схем (Flow Chart)

Вот этот язык значительно интереснее. Flow Chart- графический язык, на котором программа создается в виде блок-схем. Этот язык не описан в IEC 61131-3 и я впервые его встречаю в ПЛК. А жаль, его нужно применять чаще. Это простой для изучения и работы язык:

vbuilder-fc-1

Лирическое отступление. Когда я учился в школе, 11 класс которой закончил в 1999 году, на уроке информатики мы чаще всего занимались тем, что рисовали в тетрадках программы в виде блок-схем. Вернее, сначала мы рисовали программу в блок-схемах, потом переводили в бейсик и пытались запустить эти программы на советских компьютерах «Электроника» с черно-белыми экранами(сидя по 4 человека за одним компом). Это нам еще повезло, во многих школах компьютеров не было и там на информатике ограничивались только блок-схемами.

Поэтому создать программу на языке Flow Chart легче, чем на LD. Для этого достаточно помнить что-то со школы. Кстати, блок-схемы я часто рисую и сейчас, когда мне нужно продумать какой-нибудь сложный алгоритм, а потом уже перевожу их в программу.

 

В целом, лозунг «Easy to learn» похож на правду- изучить программирование Ace в программе vBuilder новичку легко, особенно на языке блок-схем. Это вам не Step-7 и не Codesys, где без бутылки не разобраться…

 

Обмен данными Ace 3090v5 с компьютером и другими устройствами

Возможны такие варианты обмена данными Ace 3090v5 с внешними устройствами:

  • По внутреннему протоколу Ace для связи с компьютером, на котором установлена бесплатная SCADA vFactory
  • По универсальному протоколу передачи данных Modbus RTU для связи с компьютерами, сенсорными панелями и другими ПЛК
  • По собственному протоколу, реализованному программным путем в контроллере

 

Связь по сети с компьютером через SCADA vFactory

SCADA это специальная программа для отображения данных с ПЛК на компьютере.

Velocio разработало СКАДА vFactory, которая бесплатная и очень простая.  Страница загрузки vFactory, там же и видеоурок: http://velocio.net/vfactory/
Текстовой документации нет, но она, по простоте vFactory, и не нужна. Достаточно видеоурок просмотреть.

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

Вот по-быстрому созданная для примера программа «умный бассейн» на vFactory:

Если эту программу запустить(в vFactory Viewer), выглядит так:

Панель инструментов vFactory:
vfactory-panel

Номер Название Функция
1 Meter Стрелочный индикатор
2 Line Graph График кривых
3 Bar Graph Диаграмма, значения в виде столбиков
4 Light Лампочка, отображение состояния бита вкл/выкл.
5 DisplayNumber Цифровой индикатор
6 Progress Индикатор выполнения
7 Label Статичная текстовая надпись
8 Up Down Ввод числа через кнопки вверх/вниз
9 Select Controller Радиокнопки
10 On Off Переключатель вкл/выкл.
11 Slider Ввод числа через слайдер
12 Button Кнопка

Видим, что панель инструментов заметно меньше, чем у простой СКАДА KVisionOPC.

Интересна vFactory тем, что обмен данными с Ace 3090v5 у нее идет не через протокол Modbus, а через свой собственный протокол. Выгода в том, что не нужно еще использовать дополнительный OPC-сервер, как во многих других СКАДА при работе по Modbus. Это также упрощает работу для новичков. vFactory подходит для тех, кто впервые пытается вывести данные из контроллера на компьютер и боится сложных программ вроде Трейс Моуд или МастерСкада. Для первого знакомства с концепцией СКАДА или вывода на экран десятка-двух индикаторов, самое то.

Разработка программы на vFactory упрощается еще и тем, что тэги программы берутся непосредственно из ПЛК и, таким образом, не надо вводить свои тэги в vFactory и потом согласовывать их с тэгами из ПЛК. Не нужно отдельно указывать в ПЛК, какие тэги доступны для передачи «наверх»- доступны все. Опять же, для начинающих не лишнее упрощение программирования.

Архивов vFactory не ведет, скриптового языка нет.

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

 

Связь по сети с внешними устройствами по протоколу Modbus RTU

Когда нужно подключить по сети Ace 3090v5 к другому ПЛК, сенсорной панели или компьютеру(а возможности vFactory уже не устраивают), то можно использовать протокол Modbus RTU.

Ace 3090v5 для передачи данных по Modbus RTU имеет 2 порта: RS-232 и USB. Оба они работают в режиме slave, т.е. Ace 3090v5 внешними устройствами по модбас управлять не может, а может только быть ведомым устройством. Одновременно девайс может быть подключен по модбас к 2-м мастер-устройствам (по портам RS-232 и USB).

Настройка тэгов для передачи их значений по модбас осуществляется в vBuilder просто:

Далее, значения тэгов по указанным адресам будут доступны для чтения и/или записи. Ничего сложного.

Благодаря тому, что протокол Modbas RTU является стандартом в автоматизации, подключить Ace 3090v5 можно к любой современной SCADA. Например, тут я подключил ПЛК к программе на SCADA Trace Mode 6.09.2 Base и выводил на экран ноутбука температуру, снятую с термопары:

Сама компания Velocio в качестве СКАДА для своих девайсов рекомендует SCADA InduSoft: http://velocio.net/indusoft/

 

Связь по сети с внешними устройствами по другим протоколам

Если нужно осуществлять обмен по сети с внешними устройствами не по Modbus RTU, а по какому-то другому протоколу или даже по протоколу самодельному, можно этот обмен реализовать программно на порту RS-232. Делается это с помощью программного блока «Serial Comm». В этом случае, кстати, Ace может стать мастером в сети, т.е. сможет само опрашивать другие slave-устройства. На эту тему есть видеоурок: http://velocio.net/tutorial-serial-comm-custom-messages/

 

Мнение о программировании

Программирование Ace 3090v5 благодаря языку блок-схем(Flow Chart ) легко освоить обычным людям, которые впервые имеют дело с ПЛК. Для более опытных имеется стандартный язык LD. Но даже я предпочитаю использовать Flow Chart в Ace из-за его простоты и очевидности.

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

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

При этом достаточное количество программных блоков(в т.ч. ПИД-регуляторы), возможность использования подпрограмм-объектов, использование пользовательских тэгов, позволяет создавать сложные программы и применять Ace 3090v5 в автоматизации на производстве для управления сложными процессами.

Для управления контроллером по сети с компьютера или сенсорной панели имеется 2 порта. К сожалению,  в Ace 3090v5 Modbus только slave, а значит, модули расширения к нему нельзя подключить(если самому не повозиться с программированием, конечно). И если есть подозрение, что имеющихся входов/выходов в Ace 3090v5 не хватит, нужно вместо него брать контроллер серии Branch. У Branch, вместе с раширениями, может быть до 450 входов/выходов. Для управления Ace 3090v5 с компьютера можно применять и профессиональные SCADA, и простую бесплатную vFactory, которая тоже изначально рассчитана на начинающих автоматизаторов-любителей.

Начали мы с того, что Velocio для своих девайсов в целом и Ace 3090v5 в частности, декларирует принцип «легко изучить и не напряжно программировать». Закончим тем, что это соответствует действительности.

 

 

4 комментария: Обзор ПЛК Velocio Ace 3090v5, часть 2: программирование

  • Дан говорит:

    хорошоий контроллер,но:
    1. невозможно подключить датчик влажности;
    2. бесплатная скада — нет архивации.

    • Алексей говорит:

      Ну не соглашусь.
      1. Датчик влажности, как и давления и пр. подключить можно. Для этого датчик должен иметь стандартный аналоговый выход 4-20 мА.
      2. В бесплатной велоситевской скаде архивации нет, но можно использовать любую другую скаду, где архивация есть- обмен данными со скадой возможен по стандартному протоколу модбас.

  • Данияр говорит:

    только только увидел ваш ответ,прошу прощения Алексей.
    извините,или HIH4000,ктр можно купить за $15-20 или ваш датчик влажности с выходом 4-20 или 0-10 с ценой от $400-500,разницу чувствуете?
    ну ладно,китаец там за 150-200,но все-таки радость дорогая,согласитесь.

    • Алексей говорит:

      Так указанный вами HIH4000 имеет выходной сигнал 0…5 В. А этот ПЛК имеет аналоговые входа тоже 0…5 В.
      Так что видите, как хорошо- можно и датчик за 400$ подсоединить, можно и микросхему трехногую китайскую за 15 баксов состыковать.

Добавить комментарий

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:
Confirm that you are not a bot - select a man with raised hand:

Подпишитесь на нашу рассылку


Copyright © 2016. Перцух Алексей

Индекс цитирования