Jump to content

    

griabig

Участник
  • Content Count

    30
  • Joined

  • Last visited

Community Reputation

0 Обычный

About griabig

  • Rank
    Участник

Recent Profile Visitors

1525 profile views
  1. в Beremiz есть расширение, которое позволяет вставлять код на Си, а также поддерживается специальная прагма для Си вставок в МЭК-код.
  2. Сложно на такой вопрос ответить однозначно без покрытия тестами результатов кодогенератора. Вот здесь есть список проблем (а иногда и не проблем) в кодогенераторе: https://bitbucket.org/mjsousa/matiec/issues?status=new&status=open Из того, с чем я сталкивался это проблемы в языке SFC. Но с ними я сталкивался и у другого платного рантайма. Мои коллеги, программирующие ПЛК, в принципе, SFC не очень доверяют при реализации ответственных систем на других известных закрытых системах. Есть некоторые небольшие особенности кодогенератора и для LD из-за того, что он конвертируется в ST. Когда пишешь на ST обычно проблем нет. Я бы лично автоматизацию каких-то опасных объектов, в принципе, на чём-то новом и необкатанном не стал делать. Что касается Beremiz то вот ИНЭУМ им Брука, выпускающий СМ1820, раньше регулярно на конференциях по атомной энергетике про Beremiz рассказывал. Не знаю, правда, применяют ли они его фактически на атомных объектах, а если используют, то какой версии кодогенератор используется и исправляли ли они в нём какие-то ошибки или нет.
  3. 1) Базовое портирование примитивное. Нужен только таймер, который с задаваемым пользователем интервалом будет дёргать определённую процедуру. аппаратные входы-выходы привязываются по классике через МЭК-адреса, для этого обычно пишется модуль расширения для среды разработки Beremiz. Тут понадобится знание python. Сложность задачи зависит от того, что за железо и какие возможности по оффлайн-конфигурированию в среде разработке необходимы. Помимо прочего это расширение должно генерировать код для обновления входов и записи новых значений на выходы. Если расширение слишком сложно,то есть очень быстрый вариант с написанием библиотеки МЭК-функциональных блоков, использующих ваши нативные функции С(С++). То есть можно сделать, чтобы пользователь сам конфигурировал входы-выходы и выполнял опрос входов-выходов в цикле программы, когда ему необходимо. Это будет немного странно для ПЛК-программистов, но в целом можно быстро получить работающий прототип. Следующая сложность - это если вам нужна будет онлайн-отладка. Для целевых платформ на базе GNU/Linux с python системой исполнения уже всё сделано, а вот для встраиваемых систем придётся повозиться самому. Сложность опять же зависит от того, что за ОСРВ, какой интерфейс, какой протокол. И здесь уже точно без написания поддержки со стороны среды разработки не обойдётся. Для STM32 был порт yaplc. Возможно, там можно подглядеть что-нибудь. 2) С многопоточностью сложно. МЭК-стандарт изначально про многопоточность ничего не говорит. Генерируемый Си код про многопоточность ничего не знает и подразумевает исполнение в одно потоке всех МЭК программ. Соответственно никакие механизмы синхронизации для доступа к глобальным переменным не используются. Возможно, можно подправить макросы декларирования переменных и доступа, чтобы они использовали механизмы синхронизации, а может этого будет и недостаточно. Вопрос сложный.
  4. Спрашивать лучше в списке рассылки beremiz-devel https://sourceforge.net/projects/beremiz/lists/beremiz-devel Там выше вероятность, что дадут ответ.
  5. Понимаю, что обсуждение не совсем актуально, но всё же отвечу. С документацией/информацией действительно не очень, но, надеюсь, что ситуация когда-нибудь исправится. Существующие статьи про Beremiz можно найти тут: http://www.beremiz.org/doc. Есть несколько видео, где можно посмотреть Beremiz в действии. Питоновские файлы для среды разработки. С++ - это компилятор МЭК в Си, его вам трогать скорее всего не потребуется. Весь код для контроллера на Си. Если вы уже используете GNU make для сборки под контроллер, то тестовую адаптацию вы можете получить в течение нескольких дней в зависимости от квалификации разработчика(ов). Вариант адаптации под STM32 уже существует и называется YaPLC. Исходники открытые, можете посмотреть, как у них сделано.
  6. Добрый день, для Beremiz есть отдельная тема на форуме. Вообще с вопросами лучше в список рассылки Beremiy лучше писать. Там ответят. А по поводу вопроса, то посмотрите для начала презентацию с обзором архитектуры Beremiz, дальше рекомендую посмотреть, как сделана поддержка для уже существующих таргетов Linux, Win32. Это же open source, все исходники открыты. Всё можно посмотреть. :-) Дальше посмотрете, как это сделано в YaPLC. Это baremetal для STM32 для Beremiz. Baremetal не проблема для Beremiz, просто он требует несколько больше работы и заботы. :-)
  7. Обновил примеры в репозитории. Выложил скринкасты. Можешь смотреть.
  8. примеры, в том числе и по работе с wxGlade, есть в самом Beremiz в директории tests и устанавливаются на рабочий стол в папку BeremizExamples. Единственно, что я их не смотрел, не было необходимости. Возможно в этой части присутствуют баги. А вам нужен функционал wxGlade в ПЛК? Если так, то постараемся в ближайшее время поправить это.
  9. С python скорее всего придётся познакомиться, но это не сильно большая проблема, если вы уже опытный программист и знакомы с объектно-ориентированным подходом. Документация - это была бы огромнейшая помощь. Багрепорты - это тоже хорошо. Присланный код вообще замечательно. Лучше подписаться на список рассылки и писать текущие вопросы по Beremiz туда.
  10. Да, в этом-то и дело. Единственно, что писать с нуля своё я бы точно не стал.
  11. Если вы собираетесь писать самим, скажите сколько программистов у вас в штате планирует работать над этим проектом и как долго? "Делать оборудование совместимым с..." с чем вы хотите сделать его совместимым? В этом случае если у вас не будет письменной договорённости (она будет скорее всего стоить денег), то к вам рано или поздно могут придти с претензиями.
  12. А где вы такой вообще взяли??? Текущая версия PLCOpen Editor совпадает с текущей версией Beremiz - 1.2-85fdcc04da25. Я пробовал на виртуалке Win7 64bit, не смог воспроизвести. На моей основной системе, Debian , тоже не получилось.
  13. Почтовая рассылка однозначно оперативнее. Потому что форум этот я проверяю крайне редко. Все актуальные обсуждения ведутся там. В любом случае, если занимаетесь Beremiz, то подписаться на список рассылки крайне рекомендуется. Вообще эта проблема должна повторяться и на Beremiz. YaPLC эту часть кода не затрагивает, поэтому проблема должно присутствовать и в Beremiz и в PLCOpen Editor. Код они используют один и тот же. Пытался повторить проблему у себя, но что-то не вышло. Кстати, принудительная перерисовка есть по Ctrl-R. А спросить? А спросить? Вдруг вышлют по запросу. Wiki есть https://bitbucket.org/skvorl/beremiz/wiki/Home Информации там, правда, пока немного. Пишите туда. Абсолютно не вижу проблемы сделать два раздела в вики для разработки и для использования. Сейчас информации не так много, чтобы делать для неё отдельную Wiki. Если понадобится, то часть вики всегда можно вынести в отдельное место.
  14. А ты пробовал добавлять дочерние узлы к интерфейсу настройки modbus в дереве проекта? Вообще с вопросами лучше писать в список рассылки Beremiz. Лучше всего на вопросы по поводу этой библиотеки Modbus ответит её автор, который этот форум не читает. ;-) глюки GUI - что под этим конкретно подразумевается и у кого? Beremiz? YaPLC? Автор YaPLC, кстати, список рассылки Beremiz тоже читает. По поводу промышленного применения Beremiz: Вот список тех, кто его уже использует. У Smarteh вообще вся продукция основана на Beremiz. На сайте Beremiz только про один их контроллер написано, но с тех пор у них уже несколько линеек контроллеров и панелей на Beremiz вышло.
  15. Работа над интеграцией Modbus-RTU/TCP идёт. Когда-нибудь она обязательно появится в основном репозитории. Сейчас для целевых платформ на базе GNU/Linux доступна реализация от Марио. Используемая библиотека доступна здесь. Репозиторий Beremiz от Марио сильно отстаёт от текущей ветки разработки. Поэтому рекомендуется к Beremiz из репозитория, где сейчас в основном ведётся разработка, применить следующую заплатку из репозитория Марио. Если интересует целевая платформа на базе Cortex-Mx, то можете посмотреть, как поддержка Modbus-RTU сделана в основанном на Beremiz YaPLC.