LINUX.ORG.RU

Cистема программирования YAPLC-1.0.0

 , ,


2

2

Вышла система программирования YAPLC-1.0.0. YAPLC — это свободная система программирования ПЛК.

YAPLC представляет собой набор программ и библиотек со свободными лицензиями, которые позволяют создавать программное обеспечение ПЛК на базе микроконтроллеров.

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

Основные компоненты YAPLC:

  • Beremiz — интегрированная среда разработки программных ПЛК на языках IEC-61131-3;
  • matiec — транслятор языков программирования IEC-61131-3, генерирует программный ПЛК на Си;
  • GNU ARM Embedded Toolchain — набор инструментов разработчика на Си/Си++.
  • CanFestival — стек CanOpen;
  • libremodbus — стек ModBus, форк FreeModbus с поддержкой нескольких портов и мастера;
  • libopencm3 — библиотека драйверов периферии для микроконтроллеров с ядрами Cortex-Mх;
  • stm32flash — загрузчик для микроконтроллеров STM32;
  • YAPLC/RTE — минималистичная среда выполнения программных ПЛК;
  • YAPLC/IDE — расширения для Beremiz, позволяющие создавать приложения YAPLC/RTE;
  • YaPySerial — динамическая библиотека для замены PySerial (замечено, что PySerial не всегда корректно определяет платформу).

Открытое тестирование системы завершено. Текущий релиз будет последним, совместимым с тестовыми приборами. Следующий релиз системы запланирован на октябрь 2017 года, а в ноябре система и приборы на её основе будут представлены на выставке ПТА-2017 в Москве.

Авторы благодарят всех участников открытого тестирования.

Отдельное спасибо:

  • Воронину Алексею,
  • Мидюкову Антону,
  • Суркову Сергею,
  • Нежданову Михаилу.

Проект на GitHub

>>> Подробности

Ответ на: комментарий от Dark_SavanT

лолксы лопатить штоле?

Зачем? Заходишь в его профиль, жмёшь «Темы» и вторым или третьим номером наблюдаешь искомые «прохладные истории».

anonymous ()

Поздравляю с релизом.

У меня весь YAPLC не удалось собрать, но Beremiz поставил и записал нужные мне узлы из фануковского ладдера, когда разбирал почему не работает. Были вопросы, но для моих нужд хватило.

Chelobaka ★★★ ()

Просветите, меня темноту. ПЛК имеет отношение к ПЛМ? Имеет ли оно отношение к Xilinx?

Если к матрицам никаким боком, то где подробнее почитать об ПЛК(а то в гугеле и вики кот нyaplakal)?

drfaust ★★★★ ()
Ответ на: комментарий от Vit

Это-то я понял. Причём большинство систем строятся на встройке вроде 8051 или АРМов.

Почему не подходят ПЛМки? Они вроде как и шустрее, а в связке с максимовскими АЦП, так и аналог обрабатывают пошустрее.

drfaust ★★★★ ()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от shkolnick-kun

YAPLC-IDE также собран для ALT. И все они собраны не только в Сизиф, но и p8. YAPLC на в ALT проверял на NUC-243, работает корректно.

Мои статьи-заметки по beremiz и YAPLC: http://we.easyelectronics.ru/plc/beremiz-svobodnaya-sreda-programmirovaniya-p... http://we.easyelectronics.ru/plc/beremiz-svobodnaya-sreda-programmirovaniya-p...

А также отчёт о проделанной работе на форуме Альта: https://forum.altlinux.org/index.php?topic=39088.0

anonymous ()
Ответ на: комментарий от drfaust

Не смешивай эти вещи. ПЛМ (они же ПЛИС) и контроллеры типа ARM, AVR, PIC - это штуки совсем разных направлений. Первое - это по сути элементарная логика в количестве эдак тысяча другая элементарных вентилей заключенных в один корпус. Прошивка для них (правильнее называется конфигурация) - это не программа, которая выполняется покомандно за такт, а конфигурация, которая из всей этой кучи вентилей «собирает» ту или иную принципиальную схему внутри матрицы, которая дальше в устройстве работает также как и работала бы такая схема будучи собранной на элементарной логике типа И-НЕ, ИЛИ, и др. В принципе на плисах можно и реализовать ядро того же 8051 и получить контроллер (только зачем так делать?). Преимущество плисов прежде всего в скорости. Например на плисах отменное дело собирать всякого рода конвертеры одного вида сигналов в другие типа RGB-to-LVDS для монитора компа. Т.е. задача всегда выполняется одна, но в компактном корпусе. Контроллеры же именно выполняют ту или иную программу. ПЛК чаще всего используют там, где нужно автоматизировать техпроцесс, например. Там где нужно обрабатывать кучу аналоговых и цифровых сигналов со всевозможным датчиков, энкодеров, выполнять некие вычисления (элементарные, несложные) и реагировать на них. Здесь как правило не нужны высокие частоты и скорости (в смысле совсем высокие, гигагерцы например), здесь важна прежде всего стабильность и безотказность. И контроллеры сюда идеально подходят. Суть в том, чтобы получить устройство работающее по ому или иному алгоритму, который определяется не внутренней схемотехникой этого устройства, а управляющей программой. В случае с плисами - это по сути было бы разработкой новой принципиальной схемы устройства, что, как ты понимаешь, занимает много больше времени, нежели конфигурация устройства из готовых кубиков на основе контроллеров. Это все детским языком. Надеюсь понятно.

Oberstserj ()
Ответ на: комментарий от Oberstserj

Ну, при современном кол-ве «вентилей» в ПЛМках реализуются практически любые конечные автоматы. Идеально, как правильно подмечено, подходят для обработки сигналов(не только аналога в связке с внешними АЦП, но и цифры). И для обработки внешних сигналов тоже неплохо подходят. ПЛМки так же чудесно программируются(а не один раз и навсегда прожечь). Однокристалы - в большинстве своём ограничены по кол-ву входов/выходов. Да, тут скорость не важна, но приходится мутить с расширением входов/выходов.

Наример, есть к-либо дорогостоящий агрегатик вида турбины. Необходимо контроллировать его состояние. Обвешан он парой сотней датчиков. И от состояния датчиков необходимо выдавать результат вида «Алярм!!! Подшипник №125 „звенит“» и зажигать красную лампочку. ПЛМка с лёгкостью справится с задачей, а АРМ?

drfaust ★★★★ ()
Ответ на: комментарий от drfaust

Кажись начинает доходить. Дело в универсальности. Модуль для ПЛК и на ПЛМ можно сделать, но практически нереально сделать понятную и удобную высокоуровневую среду программирования для АСУшников. Вот он имеет схему производства, раскидывает датчики, манипуляторы, и прочтым человеческим языком программирования описывает что, как и на что должно влиять

drfaust ★★★★ ()

я по ссылкам не ходил (много), скажите а ПО для [пере]прошивки ПЛИС в комплекте есть? если есть, то какие (хотя бы классы) ПЛИС поддерживаются?

rsync ★★ ()
Ответ на: комментарий от drfaust

ПЛМка с лёгкостью справится с задачей, а АРМ?

Да даже AVR справится, не вопрос.

ПЛМки так же чудесно программируются(а не один раз и навсегда прожечь)
(а не один раз и навсегда прожечь)

Да, это касается первых образцов еще на заре ПЛМок. Сейчас все «многоразовые»

ПЛМки так же чудесно программируются
программируются

Не программируются, а конфигурируются. ПЛМ не выполняет никакой программы. ПЛМ - это схема собранная на логике. А вот контроллеры (AVR,ARM) - выполняют программу. В этом принципиальная разница.

Кажись начинает доходить. Дело в универсальности. Модуль для ПЛК и на ПЛМ можно сделать, но практически нереально сделать понятную и удобную высокоуровневую среду программирования для АСУшников.

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

Модуль для ПЛК и на ПЛМ можно сделать. В принципе можно, но проблема в том, что принципиально на основе ПЛМ придется реализовать сначала контроллер, а затем уже этот контроллер «прошивать», что как ты понимаешь дело бессмысленное, поэтому ПЛК на плисах никто не делает.

Oberstserj ()
Ответ на: комментарий от rsync

а ПО для [пере]прошивки ПЛИС в комплекте есть?

ПЛИС или все-таки ПЛК? Здесь ПО для ПЛК и их типы прямо в теме перечислены. А ПЛИС конфигурируются через ПО от производителей конкретного плиса (например Xilinkx, Altera) или сторонним софтом чаще всего на языке Verilog.

Oberstserj ()
Ответ на: комментарий от drfaust

АРМ? С двумя сотнями сигналов? Легко! Скажу больше, в некоторых современных ПЛК стоят атомы, и для железок данного класса - это просто огромнейшая производительность.

anonymous ()
Ответ на: комментарий от drfaust

сделайте вывод на ПЛМ скажем через элементарный modbus/RTU. про ethernet молчу. и да, получение сигналов с датчиков тоже по тому самому модбасу. получится?

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

NiTr0 ★★★★★ ()
Ответ на: комментарий от NiTr0

про ethernet молчу.

И правильно. Т.к. сейчас сложно найти обычную ПЛМку без наворотов. А вот в наворотах и USB и Ethernet и различные I2C/RS232 уже имеются. Вот про специфичные интерфейсы, вроде модбус, да, я не слышал. А стандартные - куча. Да ещё и с поддержкой DDR4 в качестве внешнего ОЗУ.

Собственно, сейчас на ПЛИСе можно полноценный микрокомп собрать, вроде ардуино и т.п.

drfaust ★★★★ ()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от drfaust

Почему не подходят ПЛМки? Они вроде как и шустрее, а в связке с максимовскими АЦП, так и аналог обрабатывают пошустрее.

Там скорость и не важна. А те скорости, которые обеспечивают современные ПЛИС там и не нужны. Важна надёжность. Нужно обеспечить, чтобы всё это не зависло от помехи от привода, который стоит в том же шкафу. Одной ПЛИС и АЦП для этого мало. Нужны всевозможные опторазвязки и т.п. Также нужно, чтобы всё это перепрограммировалось и отлаживалось на месте в цехе. Некоторые ПЛК (SiemensLOGO) имеют экран с клавиатурой, чтобы вводить в них программу на месте.

DarthVadimius ()

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

dimagog ()
Последнее исправление: dimagog (всего исправлений: 1)
Ответ на: комментарий от dimagog

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

Дальше - как пойдет.

Если кому-то будет интересна сама по себе система YAPLC без привязки к конкретному железу ~милости прошу к нашему шалашу~ можно будет наладить сотрудничество.

shkolnick-kun ★★ ()
Ответ на: комментарий от drfaust

Т.к. сейчас сложно найти обычную ПЛМку без наворотов.

вы сначала на ПЛИС реализуйте tcp/ip...

Собственно, сейчас на ПЛИСе можно полноценный микрокомп собрать, вроде ардуино и т.п.

ну да, купить ПЛИС на несколько сот тысяч вентилей за много десятков баксов, и зашить в него ядро процессора, сродни STM8 цена которому - рупь пучок... вопрос - нафига?

NiTr0 ★★★★★ ()
Ответ на: комментарий от dimagog

Cобственно вот список тех ПЛК (), которые уже используют свободную среду программирования и (обычно) свободную систему исполнения Beremiz, на основе которой сделан YAPLC. Самый широкий спектр оборудования есть у компании Smarteh, которая много лет уже использует Beremiz и также иногда участвует в разработке проекта.

skvorli ()
Ответ на: комментарий от shkolnick-kun

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

skvorli ()
Последнее исправление: skvorli (всего исправлений: 1)
Ответ на: комментарий от drfaust

Большинство новых ПЛК делаются уже на гораздо более мощном железе - ARM уровня Cortex-A8 и даже много ядерных Cortex-A9. Нынче пользователя уже хотят не просто возможности управлять парой модулей ввода-вывода и встроенной периферией. Пользователям реализовать TCP-сервисы (например, вэб-интерфейс), регистрацию событий на внешний носитель и во внутренний архив (иногда даже в базу данных), поддержку новых высокоскоростных шин и протоколов (Ethercat, Profinet, ...) и многое многое другое. Часто уже объединяются функционал панели и ПЛК. Это позволяет ускорить разработку проекта, так как в одной среде ведётся программирование и панели, и программы ПЛК. А с точки зрения потребителя это более компактные шкафы управления и меньше позиций для заказа. Обработка всего этого также ложится на плечи процессора в ПЛК.

skvorli ()
Ответ на: комментарий от Oberstserj

эм, тогда я вообще ничего не понял.

когда мы разрабатывали схемы на ПЛИС/ПЛК (посл. раз я с этим сталкивался лет 5 назад) мы делали следующее

  1. разрабатывали внутреннюю программу ПЛИС/ПЛК (частично на Verylog, частично визуально)
  2. затем компилировали ето в прошивку
  3. затем заливали прошивку через JTAG в конкретную девайсину

и вот на последнем шаге было важно формат файла/прочая фигатень. И соответственно было проблемно:

  • переносить проекты между разными производителями (ксилинкс/альтера, например).
  • использовать один jtag-девайс для разных производителей

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

помню еще на стадии проектирования схем исходили не из того какая ПЛИС'а была бы удобнее, а на какую у нас есть программатор/средства разработки. Квартус ВебЕдишен вспоминается плохими словами, равно как JTAG'и от Альтеры/Atmel. Сам-Айс, мать его. Сплошная винда-винда-винда :(

rsync ★★ ()
Ответ на: комментарий от rsync

Вы, наверное, путаете ПЛК (Программируемый Логический Контроллер) с ПЛК (Программируемая Логическая Матрица). Программирование ПЛК не имеет ничего общего с программированием ПЛИС. ПЛК программируется на специальных языках, описываемых стандартов МЭК 61131-3. И соответственно YAPLC не имеет отношение к ПЛИС/ПЛМ.

skvorli ()
Последнее исправление: skvorli (всего исправлений: 1)
Ответ на: комментарий от rsync

Ты путаешь ПЛИС (оно же ПЛМ) и ПЛК. Здесь речь идет о втором. Ты рассказываешь процесс аппаратной разработки устройства с использованием плисов, а здесь порешали проблему программирования уже готовых устройств управления техпроцессом (чаще всего), типа таких или таких. Для них есть свои стандартизированные языки, для работы с которыми требовалось чаще всего пользоваться софтиной от производителя того или иного ПЛК. Программирование ПЛК представляет из себя скорее разработку карты техпроцесса в виде графического построения блок-схем ну или что-то в этом духе и не требует знания электроники. Собственно для АСУшников это и не нужно. А то, о чем говоришь ты - это чистая электроника, голимый Verilog, с которым в *nix собственно никаких особых проблемм и не было, решать нечего.

Oberstserj ()
Ответ на: комментарий от anonymous

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

это был НИИ. Денег особо не было. среда разработки стоила 8-10 килобаксов на один комп.

а разрабатывали девайсы для медтехники стоимость которых в производстве планировалась 10-15$ (кой что до сих пор выпускают). поэтому вот так вот крутились

rsync ★★ ()