Перейти к содержанию
    

yanvasilij

Свой
  • Постов

    321
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные yanvasilij


  1. Нет. Это самые что ни на есть CoDeSys с IsaGraf'ом. Если хотите вот вам примеры отечественных компаний, идущих по такому пути...

     

    Не примеры я хотел, просто Вы не сразу упомянули с кем собираетесь работать "совместно". Поэтому я подумал про MasterScada. У них появился отдел, который пилит свое ядро и среду разработки к нему соответственно. Эти ребята, якобы (не знаю насколько успешно), портировали весь этот набор на контроллер отечественного Прософта. После этого начали активно искать еще заказчиков, которые тоже хотят свой контроллер. Парят, что у них все готово, кроме фолловера (который тоже типа скоро будет), так же говорят, что помогут с портированием, забрав часть работы на себя.

  2. Так что с wxGlade? Есть какая инфа? примеры?

     

    Если Вы скачали Beremiz с оффициального сайта, то в директории \beremiz\tests, есть папка wxGlade, а в ней пример проекта.

     

    Третьим элементом вроде как рассматривается "делать оборудование совместимым с...". Но я на своем уровне ответственности выступаю категорически "против" такого пункта выбора.

     

    Этот вариант не MasterScada ли случаем?

  3. Насчет посмотреть YaPLC - это конечно резонно... Смотрю, пытаю, на моей Win7 наблюдаю катастрофические глюки GUI (это при том что чистый PLCOpen Editor вполне вменяем).

    Копать надо глубоко, а у меня задача - принять решение, рабочая такая задача, не хоббийная.

     

    Мы тут недавно осваивали среду для контроллеров B&R. По сравнению с ней, Beremiz очень даже неплох, при том, что B&R это очень крупная контора (в России конечно они плохо распространены по сравнению с теми же сименсами, бредлями и шнайдерами). Я имею ввиду не дизайн (с дизайном там то в отличии от беремиза все в порядке), а функционал и степень глючности. А по поводу принять решение - какие собственно варианты - codesys, да isagraph? Так там, простите, та еще борода...

  4. Я не знаю Кейла, но например в IAR, чтобы переменная не обнулялась си-стартап-кодом, недостаточно ей указать атрибут __no_init. Надо ещё её поместить в соответствующую (отдельную от .bss) секцию и указать компоновщику в его файле конфигурации не инициализировать эту секцию:

     

    В keil тоже самое, но там файл линковщика называется scatter-файлом подробнее о нем можно почитать например ТУТ, по синтаксису очень похож и на IAR и на gcc. Чтобы начать его редактировать нужно перейти в указанном ТС окне во вкладку Linker, там убрать галочку Use memory layot from target dialog, после этого станет активной строчка Scatter file, слева от этой строчки нажимаете на кнопку edit и открывается Scatter-файл на редактирование. Там вы можете объявлять секции внутри внешней ОЗУ и размещать в ней, что хотите, даже bss целых файлов. Например, есть у вас внешняя SDRAM по адресу 0x80000000 размером скажем 0x00010000 байт, и вы хотите разместить в ней всю оперативную память из файла blalbacode.cpp, тогда в scatter нужно добавить:

     

      RW_SDRAM1 0x80000000 0x00010000  {; RW data
       blablacode.o (+RW +ZI)
      }

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

    vibromonitoring_stm32f407.rar

  6. Смотря в какие приборы эмбедируют. У нас автоматы поверхностного монтажа работают под управлением Винды XP. У меня векторный анализатор Rohde&Schwarz работает под виндой 7. Все вполне себе риалтайм.

     

    Ну речь идет о промышленном контроллере специального назначения, одно из требований время реакции изменение дискретного входа 20 мс (проц либо x86, либо ARM пока точно не определились какой). Мы так-то намерены использовать QNX. Я увидел эти рассуждения о винде и мне стало интересно, чисто гипотетически, насколько эти применимо.

  7. ...

    Список специальных релизов реал-тайм Windows достаточно большой:

     

    Windows 7 Professional for Embedded Systems and Windows 7 Ultimate for Embedded Systems

    ...

     

    Разрешите и мне глупый вопрос, уж больно интересна тема. Были упомянуты инструменты и ОСи для реал-тайм и эмбед. Какие времена циклов может обеспечить Windows Embedded? И вообще насколько это актуально применение Windows Embedded в задачах с жесткими требования ко времени, например в автоматизации (есть примеры применения?)? Может ли она конкурировать, например, с QNX по совокупности факторов (цена, легкость в освоении, время на разработку, надежность и пр.)? Как там с портированием на самодельные аппаратные платформы?

  8. Мысль состоит в том, что после бурного развития на протяжении 25-ти лет, система QNX "пошла по рукам", и практически прекратила развитие ... получая узкую направленность от своих новых хозяев то на автомобильную автоматику, то на мобильные гаджеты ... свистелки с перделками.

     

    Что за напрвленность (отраслевая) что нужна QNX.

     

    Направленность - автоматизация, собственный контроллер (вероятно недешёвый) с достаточно высокими требованиями к "реалтайму". По Вашему QNX тут актуален? Я не особо силен в системном программировании, поэтому вопрос возможно глупый: что тут лучше по совокупности факторов (скорость, стоимость, сложность разработки и т.д.) Linux+RTpatch или QNX?

     

    Но прежде всего, определитесь какая линия версий интересует ... ваших начальников :crying: : 4.Х или 6.Х - это 2 совершенно разные системы.

     

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

     

    P.S.: Спасибо за список литературы!

  9. Платить готовы в конторе за использование QNX?

     

    Платить готовы.

     

    А там нужна литература? Там вроде внутри html раньше был с описанием как на WatcomC вызывать системные функции...

     

    Я нашел этот html у нас на FTP, его достаточно?

  10. Забудьте вы про QNX. :laughing:

     

    Можно Вас попросить более подробно изложить эту мысль. У нас в конторе ведутся активные разговоры по перспективам ее внедрения, уже даже дают разнарядки разработчикам начинать читать по этой системе литературу. Насколько я понял Вы не далеко не последний человек в QNX. Что то не так с актуальностью? И какую литературу Вы бы порекомендовали?

  11. Да, не переживайте Вы так уж сильно :)

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

     

    Вот только что осознал, как же Вы правы! )))

  12. Товарищи, а как пересилить свое отвращение к фекалиям, и начать их есть недоязыкам программирования (С++, питон) и таки выучить их? Есть истории успеха? Я вот уже четвертый год собираюсь взять в библиотеке книжку по питону, но никак не пересилю себя — уж больно убогий язычок. Ситуация примерно как с абдуриной — говно то еще, но в некоторых ситуациях на нем можно что-то быстро на коленке собрать (когда при правильном подходе пришлось бы пару-тройку недель работать).

     

    Что значит "недоязык"? Ничего, что на C++ написано, пожалуй, наибольшее количество проектов по сравнению с другими языками? Ничего, что в системах где требуется максимально быстродействие нет альтернатив C/C++? А тот факт, что C++ является одним из самых универсальных языков, тоже не имеет значения? Ну да - многие вещи легче писать на выскоуровневых языках, но это не делает С++ "недоязыком". Попробуйте-ка на C# написать операционную систему, системную службу или системный драйвер - не выйдет. То, что некоторые вещи трудно или даже невозможно делать на С++ или C# или любом другом языке не делают его "недоязыком", это всего лишь вопрос оптимальной применимости инструмента к задаче. Это как если бы программист всю жизнь писавший веб службы на PHP, вдруг решил сделать все тоже самое на C++ и обнаружил, что так гораздо труднее, заявил что С++ плохой язык. Нет это не язык плохой, это программист просто мало что понимает. С++ на мой взгляд является одним из самых сложных языков, и дело тут в не в синтаксисе языка, а в том, что хороший С++ программист (себя я ним не отношу, не подумайте) должен знать и ориентироваться, как минимум, в stl/boost, которые невероятно громадны.

     

    А что касается python, то это, на мой взгляд, самой простой по порогу вхождения язык. Но он не так прост, как это кажется с первого взгляда, динамическая типизация с одной стороны открывает массу возможностей, а с другой стороны требует от программиста иного мышления, нежели в языках со статической типизацией. Обратите внимания, что Python входит в список самых распространенных и популярных языков. И те тысячи, сотни тысяч или более программистов, что работают на нем годами совсем не считают его "недоязыком". А вот товарищ со стороны, который не знает ни С++ ни Python, вот так берет и клеймит их "недоязыками". Вам самому не кажется это по меньшей мере странным?

  13. Доброго времени суток!

     

    Кто-нибудь озадачивался протоколом поднятием протокола Powerlink на своих железках? На сколько это объемный труд поднять ведомое устройство на, скажем, Cortex-M3/4? Местами попадаются ссылки, где люди вроде как занимаются этим. Кто-нибудь поделится соображениями на эту тему?

  14. Это избитая холиварная тема, спорить на которую можно долго и нудно, самое главное бесполезно. Вы не обессудьте, что я выскажусь и на этом закончу, не вступая далее в полемику.

    Смысл такой: что spl, что hal, что opencm3 дают очевидные, на мой взгляд, преимущества:

    1) не нужно тратить время на написание драйверов с нуля, при том что когда пишешь драйвера с нуля точно также допускаешь ошибки (выше по теме Вы можете это наблюдать). От чтения RM это конечно не освобождает, без этого никак. Там есть ошибки - не страшно, они отлавливаются на раз-два, было бы терпение и потом многократно используются.

    2) hal, opencm3, и даже spl в отличии от самописных библиотек поддерживаются разработчиками и сообществом. Они развиваются и их функционал расширяется, ошибки внутри устраняются. Самописную же либу, поддерживает только один разработчик.

    3) Тот же hal тянет за собой массу дополнительных библиотек (стек tcp, файловую систему, стек usb и прочее). Вы скажете, что это можно поднять самому скачав отдельно? Но зачем делать работу второй раз и тратить на нее время? Не проще ли разобраться в том, что уже сделано?

    4) Переносимость между сериями и проектами. Код написанный другим разработчиками под hal, spl, opencm3, легко перенести к себе другому разработчику, который тоже использует hal, spl, opencm3. Это какая-никакая унификация. А если каждый будет колхозить свои библиотеки, тот как обмениваться наработками? Можно но уже сложнее, ибо низкоуровневые вещи нужно переписывать.

     

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

    Покажите мне сравнительные тесты, в которых наглядно показывается что по вине hal программа начинает работать в разы медленнее. В моей практике такого не было.

    Большее потребление памяти? Сколько раз в жизни у вас было такое, что на cortex процах у вас кончалась память? Если такое и было, то держу пари это точно происходило не по вине hal.

    Код громоздкий и непонятный? Это уже чистой воды субъективизм, найдется приличное количество народу, кто не согласится с этим. В добавок ко всему hal достаточно гибкий совсем не обязательно использовать все его конструкции.

     

    Ну вот вообщем такое мое мнение. Извините за оффтоп.

  15. Странные ошибки, он не жалуется на отсутствие пакетов, в одном случае он не распознал символ интернационализации, в другом не смог импортировать PLCOpenEditor.py, в третьем не смог импортировать svgui.py.

     

    Какая версия питона у Вас? Какой файл вы запускаете? Если хотите запустить "голый" беремиз нужен Beremiz.py из папки Beremiz. Если хотите запустить среду Павла, со всеми ее возможностями под stm32, нужен файл yaplcide.py из папки IDE. В качестве среды я использую Pycharm, но вы попробуйте просто из под командной строки запустить для начала.

  16. Репозитарий правильный, если быть точным это один из форков официального репозитария (принадлежит paulbell). Если хотите просто развернуть среду Павла, то можно воспользоваться установщиком: https://github.com/nucleron/YAPLC/releases. Под win7 он запускается без проблем, под linux не знаю. Если хотите развернуть все, склонировав его репозитарии то тут список всех необходимых репозитариев: https://sourceforge.net/p/beremiz/mailman/message/35506039/. Один или несколько репозитариев (я уже не помню точно) нужно преварительно собрать разумеется. В качестве таргетов там есть платформы на базе stm32, какие именно лучше посмотреть в исходниках или спросить у автора, сам не помню.

  17. Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.

  18. Обычно в таких связках максимальная длина IP пакета по умолчанию 570 с чем то байт. Вы ничего не меняли в этих настройках ?

     

    Я настроил максимальную длинну на 1460, я имею ввиду настройки DMA дескрипторов. Думаете в этом дело? Завтра попробую изменить.

     

    И еще, в попытке прояснить ситуацию сделал следующее на машине с linux запустил интенсивный пинг (моя плата соединена с ней прямым кабелем напрямую) и при помощи ПО ethtool (под win я не нашел ничего подобного) заглянул в статистику. Выяснил, что linux-машина тоже ловит пакеты с битым CRC. После этого взял другую борду (stm32f429 discovery) с другой физикой, поднял на ней простой проект, и запинговал аналогичным образом. Пакетов с битым CRC linux в этом случае не обнаружил. Очень похоже на что-то аппаратное, но не уверен.

  19. Функции __publish и __retrive - используются для режима debug.

     

    Нет. Я имел ввиду __publish_X и __retrive_X, которые реализует каждый модуль, при кодогерации. Признаться, после вашего сообщения, сам засомневался, что задал вопрос в ML. Тот же Canfestival реализован, как модуль к Beremiz'у, поэтому и реализует свои __publish_X и __retrive_X при генерации исходников.

  20. Я эту проблему не решал. Но если я правильно все понял, нужно править не accessor.h, а сам модуль CANOpen в беремизе. Кодогенерацией занимается метод CTNGenerate_C(). Если переменные нужно записывать через методы set/get ODentry, а не напрямую, то можно, как вариант отслеживать изменение и производить запись в переменные объектного словаря в функциях __publish и __retrive, которые вызываются соответственно до и после пользовательского цикла. И еще, просто в качестве совета, такие вопросы эффективнее задавать mailing list - ответят быстрее и подробнее.

×
×
  • Создать...