Серия «Программная среда CoDeSyS 3.5»

7

Базовые ФБ в Soft Motiom CoDeSyS 3.5

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

По всем вопросам пишите в телеграмм канале "Ты же инженер АСУ ТП"

Статья будет коротенькой, излагаю базовое понимание.

Запуск драйвера

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

В прошлых статьях я описывал первоначальное программирование в среде CoDeSyS 3.5. Двигаемся дальше.

Первоначально с файла конфигурации нам нужно направить в ФБ Оси энкодеров, в даном случае SM_Drive_Generic.

MC_Power - запускает сам сервопривод. Нужно присвоить True входам Enable, RegulatorOn, DriveStart. Если всё ок, получаем Status = true.

MC_Home - это присвоение двигателю нулевой позиции. Присваивать нужно, когда двигатель не запущен.

MC_Reset - сброс всех аварий.

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

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

MC_ReadActualPosition - этот параметр выдает текущую позицию двигателя, неважно в каком он работает режиме.

MC_ReadActualVelocity - параметр выходной скорости.

MC_ReadActualTorque - параметр выходного момента.

Запуск двигателя в нужную позицию

Эти ФБ отвечают за позиционирование двигателя в нужной точке.

MC_MoveAbsolute - функциональный блок позиции.

На входе задаем пользовательские единицы Position, задаем скорость, ускорение и торможение Velocity, Acceleration, Deceleration. Если нужно вращать по часовой стрелке то позиция с положительным знаком, против с отрицательным знаком. И жмём кнопку Execute.

MC_Stop - останов двигателя с временем торможения.

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

Вот так это выглядит в режиме Онлайн.

На этом я заканчиваю, всем спасибо, пока пока!!

Показать полностью 4
8

CoDeSyS 3.5 Soft Motion. Начало всех начал

Для различных точных систем, где требуется позиционирование рабочего элемента, манипуляторов и роботов существуют специальные готовые решения. И одно из них это PAC-ПЛК с CoDeSyS на борту.

Эта статья будет посвящена готовой библиотеке под названием Soft Motion в дистрибутиве CoDeSyS. Как обычно стараюсь писать по существу, без всякой воды.

Будем считать, что у вас установлен дистрибутив CODESYS V3.5 SP16 Patch 7.

Установка устройств для работы с ними (Таргеты)

В данном примере я использую ПЛК VECTOR CPR-VEC-CEC-C1/

На борту у него уже установлен Soft Motion Basic. Можно считать что это готовое устройство, которое сразу работает с сервоприводами. Использовать мы будем протокол EtherCat.

Мне нужно подключить к этому устройству два модуля ввода\вывода по встроенной шине, один модуль ввода\вывода по внешней шине и два сервопривода.

Залазим в инструмент репозиторий устройств.

Жмем Установить.

Конфиги можно скачать с официального сайта поставщика. У меня они были поэтому устанавливаем их. Нужно указать XML-файл конфигурации.

Устанавливаем все необходимые нам модули.

Это файл-конфигурация сервопривода. Нужно указать XML-файл конфигурации EtherCat.

Это файлы конфигурации внутренних модулей по шине.

Начальный запуск в CoDeSyS.

Затем создаем Стандартный проект. И запускаемся.

Выбираем Vector ARM.

Если нет библиотек Soft Motion, подгружаем их.

После этого можно пробовать загружать устройства. О них напишем позже.

Показать полностью 10
8

Программирование СПК107. Журнал аварий

Приветствую всех. Эта статья будет посвящена дистрибутиву CoDeSyS 3.5 SP17 Pacth 3 и панельному контроллеру ОВЕН СПК107.

Как сделать журнал аварий?

Аварии. Начало

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

В CoDeSyS 3.5 это достаточно глубоко продумано. Создаем проект. И добавляем в дереве проектов менеджер Аварий.

Добавляем Конфигурацию тревог.

Error, Info, Warning - это у нас классы, где мы настраиваем цвет сработанной аварии, цвет квитирования и цвет отмеченной аварии. и, соответственно шрифт текста.

AlarmStorage - это настройки хранилища, где будем архивировать аварии.

После этого добавляем группу тревог и список сообщений.

Получаем вот такой список элементов.

Настройки Конфигуратора и вывод на экран

Настраиваем классы аварий, цвет, шрифт, действия, способ квитирования.

В списке текстов пишем названия сообщений - под каждую переменную своё название. ID - это номер строки.

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

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

Можно по дискретному сигналу, можно по верхней и нижней границе, можно за пределы, можно посередине, можно по изменению, можно по событию. Логика настраивается.

Далее добавляем визуализацию, либо баннер либо таблицу.

Мне удобнее всего в виде таблицы. Её можно очень гибко настроить. Шапку, столбцы, толщина столбца, шрифт ну и т.п.

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

Это готовые кнопки управления панелью алармов.

Вот так выглядит в одном из рабочих проектов. Там требовалось сделать просто сообщения.
Пишите комменты, как делаете вы?

Показать полностью 16
7

Счётчики ПЛК c CODESYS: CTU, CTD и CTUD

ПЛК имеют счётчик с увеличением CTU, счётчик с уменьшением CTD и реверсивный счётчик CTUD. Счётчик увеличивает или уменьшает текущее значение, когда вход счётчика изменяется с «ложь» на «истина» или с ВЫКЛ на ВКЛ.

Каждое изменение входного сигнала счётчика увеличивает или уменьшает текущее значение на 1. Уставка счётчика — это числовое значение, определяющее диапазон счётчика. Счётчики используются для подсчёта изменений входных битов. Диапазон подсчитываемых битов определяется уставкой. Диапазон счётчика фиксированный.

Счётчик с увеличением (Up Counter) CTU в ПЛК

Счётчик с увеличением — это инкрементный счётчик. Когда вход счётчика изменяется с «ложь» на «истина», счётчик увеличивается на 1 до достижения установленного значения. Как только счётчик достигает установленного значения, выход счётчика Q включается. Ниже приведены входы и выходы для счётчика с увеличением:

Входы счётчика с увеличением:

  • CU: вход счётчика с увеличением, тип данных bool. Каждое изменение CU увеличивает счётчик на 1.

  • Reset: вход сброса счётчика. Когда Reset равен «истина», счётчик сбрасывается.

  • PV: установленное значение счётчика. Максимальное значение счётчика для подсчёта битов.

Выходы счётчика:

  • Q: выходной бит счётчика. Состояние Q становится «истина», когда текущее значение счётчика (CV) равно или больше установленного значения.

  • CV: выход счётчика. Это текущее значение счётчика.

Выше приведен пример счётчика с увеличением в ПЛК. Каждый нарастающий фронт CU увеличивает счётчик на 1. Когда значение счётчика (CV) равно или больше установленного значения, выход счётчика (Q) включается. Счётчик с увеличением сбрасывает текущее значение (CV) до нуля, если вход сброса счётчика включен. Текущее значение счётчика продолжает увеличиваться, даже если выход счётчика равен «истина».

Счётчик с уменьшением (Down Counter) CTD в ПЛК

CTD — это счётчик с уменьшением в ПЛК. При каждом нарастающем фронте счётчика с уменьшением значение счётчика уменьшается на 1. При инициализации счётчика или первом запуске установленное значение счётчика не задаётся, пока вход загрузки не станет «ложь», поэтому установите вход загрузки в «истина», чтобы задать установленное значение. Когда вход загрузки включен, установленное значение счётчика задаётся, и каждое изменение входа счётчика уменьшает значение счётчика на 1. Ниже приведены входы и выходы счётчика с уменьшением:

Входы счётчика с уменьшением:

  • CD: вход счётчика с уменьшением, тип данных bool. Каждое изменение CD уменьшает счётчик на 1.

  • LOAD: когда LOAD установлен в «истина», устанавливается предустановленное значение счётчика. В противном случае счётчик не уменьшается.

  • PV: установленное значение счётчика. Установленное значение счётчика задаётся, когда LOAD равен «истина».

Выходы счётчика:

  • Q: выходной бит счётчика. Состояние Q становится «истина», когда текущее значение счётчика (CV) равно нулю.

  • CV: выход счётчика. Это текущее значение счётчика.

Выше приведен пример счётчика с уменьшением в ПЛК. Установите LOAD в «истина», чтобы установить предустановленное значение счётчика, затем установите LOAD в «ложь». Если LOAD равен «истина» и вход счётчика (CD) изменяется с «ложь» на «истина», то текущее значение счётчика остаётся неизменным, поэтому всегда устанавливайте значение LOAD в «ложь», если установлено предустановленное значение счётчика.

Если значение счётчика установлено и вход LOAD равен «ложь», то каждый нарастающий фронт входа CD счётчика уменьшает значение CV счётчика на 1 до тех пор, пока значение счётчика не достигнет нуля. Как только значение счётчика становится равным нулю, выход счётчика Q устанавливается в «истина».

Реверсивный счётчик (Up/Down Counter) CTUD в ПЛК

CTUD — это инструкция реверсивного счётчика в ПЛК. CTUD работает как счётчик с увеличением и уменьшением при выборе соответствующего входа CTUD. Для счётчика с увеличением CU устанавливается в «истина», а все остальные битовые входы устанавливаются в «ложь».

Для счётчика с уменьшением бит CD включается и устанавливается предустановленное значение. CTUD — это комбинация счётчика с увеличением и уменьшением, он работает как счётчик вверх или вниз. Каждый нарастающий фронт входа CU увеличивает счётчик на 1, а каждый нарастающий фронт CD уменьшает значение счётчика на 1.

Выше приведен пример реверсивного счётчика в ПЛК. Все входы и выходы представляют собой комбинацию входов и выходов счётчика с увеличением и уменьшением. Реверсивный счётчик работает как счётчик с увеличением, если CD, LOAD, Reset установлены в «ложь», и вход счётчика CU изменяется с «ложь» на «истина», то счётчик увеличивает значение на 1. QU — это выход счётчика с увеличением, он устанавливается, когда счётчик (CV) больше установленного значения счётчика.

Реверсивный счётчик работает как счётчик с уменьшением, когда CU, RESET и LOAD равны «ложь», и установлено предустановленное значение или текущее значение счётчика больше нуля. Каждый нарастающий фронт уменьшает значение счётчика на 1. QD — это выход счётчика с уменьшением, он включается, когда текущее значение счётчика равно нулю.

Показать полностью 3
7

Программирование СПК107. Просто про таблицу

Приветствую всех. Эта статья будет посвящена дистрибутиву CoDeSyS 3.5 SP17 Pacth 3 и панельному контроллеру ОВЕН СПК107.

Как быстро освоить элемент таблицы?

Внутренний код Codesys 3.5

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

Создаем структуру данных. Дату и значение в формате STRING. Почему именно текстовый, чтобы в ячейках таблицы были пустые клетки, в противном случае будут нулевые значения. В своём проекте я делал REAL.

Далее назначаем массив данных (наши столбцы и строчки) ArrTable. В моей таблице достаточно 10 строк, если нужно больше, то указываем.

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

После этого мы создаем два столбца - это дата и время.

Когда жмём запись bTrigger, мы заполняем таблицы и создаём столбцы.

Визуализация элемента таблицы

Вытаскиваем элемент таблица в поле.

Присваиваем нашу переменную в поле Массив Данных.

Указываем ниже размер нашего массива.

В этих полях настраиваем наименование, количество, цвет, толщину столбцов.

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

Жмем OnMouseClick, и настраиваем ту же переменную.

Вот так вводятся настройки конфигураций.

Конечный результат.

Если статья была полезна пишите комментарии и ставьте лайки.

С уважением, Гридин Семён.

Показать полностью 8
12

Codesys 2.3. Связь ОВЕН ПЛК100 с ПЧВ

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

Сторона Преобразователя частоты

В принципе частотник должен работать уже "из коробки".

Важно найти параметры настроек сети по интерфейсу RS-485. И, если есть настройки управления по коммуникациям, настроить их.

Пример ПЧВ.

Открываем мануал, находим раздел параметры связи.

Настраиваем в соответствии с ваши задачами. Тут сразу можно заметить адресацию нужных регистров.

После этого открываем раздел Modbus.

В каждом ПЧ есть два главных командных слова, всегда. На запись, и на чтение.

Слово записи. Команда управления ПЧ.

Слово чтение - состояние ПЧ.

Все разложено по битам, которое преобразуется в слово.

Все остальное - это регистры типа WORD. Опрашиваются и записываются соответствующими функциями 03 (чтение) и 06 (запись).

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

И откуда задание частоты.

Сторона ПЛК

На всех ПЛК практически всё однотипно. Надо знать карту регистров и по каким адресам "Просить и отдавать".

Нашёл пример в Codesys 2.3

Это мы отдаем команды, com_word_55 присваиваем адрес с мануала.(2001)

Это получаем. Адрес слова с мануала.(2002)

Вся другая адресация соответствует коду параметра.

На этом я всё. Пишите комментарии. Ставьте лайки.

Показать полностью 9
7

Программирование СПК107. Показания датчиков

Приветствую всех. Эта статья будет посвящена дистрибутиву CoDeSyS 3.5 SP17 Pacth 3 и панельному контроллеру ОВЕН СПК107.

Как это реализовать?

Открываем проект, создаем шаблон.

В разделе Базовый добавляем элемент Скругленный прямоугольник. Ну вообще можно любой элемент.

После этого залазаем в настройки, ставим стандартный набор опций (Ширина, цвет, высота, и т.д).

Внимание, пишем в поле Текст "Давление %2.1f".

"%2.1f" - это формат обращения к переменной, заданной в поле Текстовая переменная. 2 - это целочисленная, .1 - это десятичные, f - тип переменной.

Типы бывают такими:

  • %f - REAL

  • %w - WORD

  • %s - STRING

  • %b - BYTE

В поле Текстовая переменная - указываем переменную, которую будем показывать в прямоугольнике.

Если статья была полезна, пишите комментарии, ставьте лайки.

Пока-пока.

Показать полностью 2
7

Программирование СПК107. Как добавить картинку?

Пишу для новичков. Как добавить картинку?

Добавляем картинку в Codesys 3.5

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

Вроде простой вопрос, Но давайте, его всё же рассмотрим.

Установку дистрибутива и таргета я писал в предыдущих статьях.

В шаблоне должен быть готовый объект ImagePool. Если нету, добавляем через ПКМ "Добавить". Заходим в него.

Перед вами откроется окно. В строчке имя файла добавляем желаемую картинку в jpg или png формате. ID это рабочее название объекта в проекте. Пишем на английском.

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

Добавляем объект Изображение в разделе Базовый.

Настраиваем высоту, ширину, нужные свойства.

Можно добавлять переменные на различные действия с картинкой (Цвет, текст, ширина, видимость и т.д.).

Показать полностью 5
Отличная работа, все прочитано!