Pull to refresh

Comments 86

ПЛК от отладочной платы радикально отличает куча обвеса
и вся на практике как раз выяснятся что грамотный обвес это 90 процентов успеха
иначе порты дохнут, глюки на входах и т.п.
а что за программа внутри на сегодня это 20 % успеха
неплохо можно и с нуля на си написать
Только знаете, хотелось бы добавить вот что — если вы напишете программу на С, то у вас отладка такой программы будет возможна только через отладчик типа STLink или JLink, и вам придётся перезапускать процессор для подключения. Тут же онлайн — отладка как раз и рассчитана на то, чтобы не прерывая процесса управления, можно было и смотреть, что происходит, и изменять значения онлайн. При этом время цикла управления практически не изменяется. Это один из очень больших плюсов программируемых логических контроллеров.
UFO landed and left these words here
Вы перед тем, как употреблять слово «глупость» подумайте. Если вы читали статью, то там описано — я прямо в среде программирования написал нужную мне логику, скомпилировал, загрузил либо частично, либо полностью, и тут же смотрю работу программы и значения переменных. И мне для этого не надо вообще ничего делать — никаких лишних телодвижений!
А вот что надо в вашем случае, чтобы точно также посмотреть онлайн программу через SWO? Это вообще не одно и то же, вообще!!!
А про привязку к программатору я и не писал — это вы выдумали вообще. А printf в наши дни — это откровенная ардуинщина и костыли.
UFO landed and left these words here
Меня совсем не дядя Петя зовут — не надо тут хамить. Отладку перепробовал на STM32 почти всю — так что не надо мне писать, что делать. Я рассказываю про то, что такое промышленная система и как она работает -и даю вам возможность её опробовать. Не интересно — не читайте, я ведь никого не заставляю. Совсем никого. А минусанул за то, что надо читать то, о чём пишут.
UFO landed and left these words here
Мы читаем наверное разную классику просто!
SWO в своё время оказалось единственным средством отладки стека TCP/IP в режиме исполнения — это о чём-то говорит.
Тут промышленное программное обеспечение, которое взаимодействует с платой. А то, что оно без рюшечек — уж извините, вам шашечки или ехать всё таки.
А вот насчёт картинок — да, надо исправить, чтобы было видно полностью. Если уж очень горит — то ПКМ-Открыть в новом окне. И будет вам счастье полноценного просмотра. Но статью буду переделывать…
UFO landed and left these words here
Ну уж без рюшечек… Даже SFC поддержали…
Промышленный софт, промышленные языки, промышленнные технологии…

Отлично, что все это удалось сделать на дешевой платке.

У меня такое впечатление, что вы просто ни разу с промышленными ПЛК не работали.

ну хотя бы вики почитайте, про IEC 61131-3, про ladder, про SFC.

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

Вот кстати, про читаемость кода ПЛК. Бывает, его и электрики пишут, совсем не знакомые с понятием ООП. Это такая боль и вермишель...

Вот приведу пример отладки выкачанной программы из ПЛК. Как раз сейчас будет видно преимущество визуального языка программирования — в строке, которая выделена маркером, виден выключенный меркер М2. Если его включить, то соберётся вся логика и будет активирован М8. Для того, чтобы определить, что же не даёт включиться меркеру М8, ушло меньше нескольких секунд.
Вы, наверное, имели в виду текстовое отображение всё-таки и стиль написания «лишь бы скомпилилось»
Внешний вид программы в режиме отладки
My Image

Нет, в графическом тоже бывает такого понаворотят… У нас программы очень сложные, их разбивают на подпрограммные блоки — функции. Например, входные параметры функции могут изменяться из сотни других функций. Иногда даже инструмент cross reference (мощный аналог find) не спасает, поскольку изменяются параметры с помощью указателей (у Siemens такое можно).

И вы считаете это хорошим и надежным кодом?

Конечно же нет, это был пример плохого кода.

Мне такой проект попадался… Заставили подрядчика переписывать.
У меня проще — в программе просто раскрашивал ladder симим (0) и красным (1) цветом. Соответственно, для определения требовалось меньше секунды.

Кроме того, был написан модуль автоматической диагностики, которы по переключениям находил причину с шансом 99.9% (мы не писали часто переключаемые временные переменные, поэтому 0.1%).

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

Так что можно и 0 секунд — ladder вполне позволяет автоопределение.
Ещё хуже, когда программисты лезут в электрику. А уж если автоматику делают люди с ООП головного мозга

Дело в том, что требования качества вавтоматике, совсем иные, чем принципы ООП.

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

Это означает, что для контроля используются дачтики из совсем других блоков. Например, самолет запрещает реверс при отсутствии раскрутки колес набегающим воздухом после старта. Где двигатели и где колеса?? :-) У вышупомянутом криз-контроле отказ дачтика оборотов колеса легко диагностируется по подаче топлива в двигатель и включению сцепления. Но… это не влезло в ООП, отсюда — и многочисленные трагедии.

Второй момент. Для надежности любой выход должен устанавливаться только в одном месте. Для той же надежности (и модифицируемости) лучше не использовать промежуточные переменные. В итоге формирование аварии — это такая большая простыня со смесью сигналов из разных подсистемю

Третий момент — хороший код автоматички способен выполняться параллельно. То есть не должен зависеть от порядка выполнения нетворков.

Автоматчику — удобнее и надежней и читаемей именно такой код. А для тех, кто с автоматикой не знаком — такой код, конечно, будет слабо читаем.

Кстати, у меян в системе был модуль упрощения нетворков. То, что выдал этот модуль — не прошло. Читаемость меньше, модитцируемость хуже. Хотя выполнялось чуть быстрее.
Хочу добавить — если в GX Developer-е написать запись в нескольких местах в один и тот же выход, то компилятор не будет ругаться на это. Но если вы запустите поиск ошибок ( меню Сервис — Поиск ошибок), то он вам покажет, что это ошибка. Хотя программа будет спокойно выполняться контроллером. Как-то так.
Так что множественная запись не запрещена, но нежелательна, ибо делает код трудночитаемым. А это время — а обычно в полях его как раз и нет. Но ещё хуже, когда двоичную логику реализуют на языке типа STL( SIEMENS) — вот тут по времени уже намного хуже, чем в визуальных вариантах.
Если пишете на IL, то как вы сделаете цикл без множественной записи? А в потрохах — нет разницы, на каком языке изначально писался код. Любой код можно отобразить и как IL и как LD и как FBD.

двоичную логику реализуют на языке типа STL( SIEMENS)
Неужели у сименса настолько слабый софт, что не позволяет отобразить STL как ladder? Быстренько глянул доку — судя по главе 1, он должен это уметь.

Хотя STL — это не стандартный IL, с ним может быть чуть хуже.
Увы — только простые конструкции спокойно можно переводить из одного отображения в другое. Например, немцы очень любят FBD и STL — но например на LAD уже не перейти в ряде случаев. Если код посмотреть — команды типа BLD 103 и выравнивание NOP-ами для FBD и LAD выглядят по разному. Но это только для сложных нетворков.
Но вот я например, расчёты предпочитаю делать на STL — потому что на LAD и FBD получается сложновато. И указатели тоже нужны — особенно, когда с массивами работаешь. Всё надо просто применять там, где это необходимо. То есть без фанатизма и предпочтений к какому-то одному языку.
на LAD уже не перейти в ряде случаев.
Непонятно, что это за случаи. Ну и у моего, ни у омроновского софта таких проблем не было. Правда там IL, а не STL.

Есть обратная проблема — недорисованный ladder нельзя сохранить как IL. Ну как записать инструкцию без операнда? Никак.

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

А вы точно на правильном языке код читаете?

У меня был подобный код. В конце скана код записывал измененных входы, выходы и временные переменные (по маске) и писал кадр в кольцевой буфер. А сервер вычитывал данные из кольцевого буфера и вел архив переключений.

На ассемблере это смотрелось нормально. Но на ladder… ну в общем я никому не советую читать это на ladder. Вычитывали эти 300 строк 5 человек (и каждый расписался за приемку). Потом поставили на стан — и заработало. Ответная часть на сервере была из 10 тысяч строк. :-)

А с ФБ у вас скорее всего сказывается недостаток функциональности самого ФБ. По уму, такое дело надо лечить написанием своего, объемлющего ФБ, но я понимаю, почему проще динамически править параметры.

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

Я обычно на LAD предпочитаю читать код. Просто очень часто код, написанный на STL и прочих ассемблерах, в графический вид не переводится, я и не знал, что такое возможно, если с нуля писать на STL.


А по поводу ПИД регуляторов разговор особый. Их вообще надо ставить в отдельный блок с фиксированным временем вызова. Я тут придумал одну фишку, чтобы уменьшить боль инженерам, которые будут этот код читать. Надо всего лишь сделать в основной программе отдельный блок для управления параметрами ПИД регулятора. И менять параметры только в нём.

А меня удивляет, что такое невозможно. Старый OMRONовский софт вообще все хранил в IL.

Надо всего лишь сделать в основной программе отдельный блок для управления параметрами ПИД регулятора. И менять параметры только в нём.
Мне не нравится. Я бы сделал ФБ — «ПИД-регулятор + изменение настроек». И использовал бы его. То есть переключал и регулировал бы настройки входами.

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

Время ровно то же будет. Какая разница — выполнить 2 ФБ (настройку и ПИД-регулятор) или один, но с вложенным ФБ ПИД-регулятора? По памяти это может быть хуже.

Для ускорения — ФБ может менять параметры по отдельному сигналу «сменить параметры». А пока этого сигнала нет — не менять.

А зачем вам вообще работа по прерываниям? Почему не в общем скане?

Строгое известное время между вызовами блока ПИД необходимо для правильной работы И и Д звена. Они выполнены по математическим численным методам приращения. Это же дискретная логика, тут нет никакого аналогового сигнала интегрирования и тем более дифференцирования. Отсчеты выполняются дискретно. И чем меньше время между отсчетами, тем точнее. Его стараются делать как можно меньше и из-за этого бывают казусы. У меня как-то было, что основной цикл программы не всегда успевал выполняться, всё время происходила непрерывная обработка прерывания.

Это уже за пределами моей компетенции. Я все-таки программист, а не автоматчик.
Гм, вы работали с ПЛК? У меня такое впечатление, что нет.

Дело несколько не в отладке. Вы что думаете, отладил и забыл?

Представьте себе стан. Остановка стана — 40 тысяч долларов (рулон стали), улетевший в брак. А на стане — куча датчиков, которые иногда отказывают.

При аварии или предаварии оперативно или меняется программа для обхода отказвшего датчика или ставится блокировка (показания датчика принудительно приводятся к 0 или 1). А уж потом, раз в месяц, стан встает на ремонт и все отказавшее — меняется.

Времена отказа считаются в минутах(!!!) в год. Например у автоматчиков несколько лет подряд было 0 минут простоя в год по их вине. Это при 8 тысячах входов и 2 тысячах выходов, контролируемых дюжиной ПЛК

А теперь попробуйте воспроизвести это на Си с любым отладчиком. Отладчик с возможностью загрузки отдельной измененной процедуры (нетворка в терминологии Ladder) найдете?

P.S. Это АНГА, цех ПХЛ, Северсталь.
P.P.S А время на реальную отладку нового кода на живом стане — 2 часа в месяц. Это когда стан выходит из ремонта, но ещё не вошел в режим.
UFO landed and left these words here
2) Насколько помню ПЛК создавали, чтобы любой электрик бывший мог заниматься автоматизацией и требовалось бы держать программиста, который в разы дороже.
Поржал. Ваш уровень знаний понятен.

Вообще-то любой процессор — это релейно-контактная схема. Так что верно иное — любой автоматчик способен составить схему процессора.

На вашем уровне — считайте, что ПЛК — это такая ПЛИС. А программирование ПЛИС и ПЛК имеет много общего.

Для понимания — можете попробовать на РКС написать… ну скажем делитель частоты на 7. На голой логике, то есть И, ИЛИ, НЕ.

Вроде как RS-485 всегда имеется на таких вещах,
Считать не умеете. Скан 20 мс. Сколько датчиков вы за это время сумеете опросить по RS-485? Поэтому используются высокоскоростные шины.

при должном умение в код на С/С++ можно вносить изменения прям на ходу
Продемонстрируйте. :-)

А вы точно умеете разрабатывать ПО для МК?
Умею, а что? Ничего хитрого в МК нет. Моему софту вообще все равно, он работает и под windows и под *nix и под FreeRTOS. Скорее уж хитрее всего с linux, когда приходится править ядро или драйвера. На FreeRTOS как-то баги в драйверах проще ищутся.

мешает вам создать архитектуру кода так, чтобы вы могли без перепрошивки «обойти» любой датчик?
Создайте, а мы посмотрим. :-)

P.S. Ну в общем считайте, что ПЛК это такая ПЛИС — и вам сразу все понятней будет. Для ПЛИС-то хоть хоть как раз писали?
UFO landed and left these words here
«Современное» — это ругательство. Это так, для бытовухи. Для надежных применений используется то, что реально работает 10-20 лет. С реальными цифрами наработки на отказ. А ПЛИС у нас коммутирует сигналы ком-портов, так что надежная, мелкая (CPLD XC2C64A), зато — при нужде заменяется российской ПЛИС с 5ой приемкой.

Понятно, написать не смогли. А учебники «для электриков» читайте сами, мои интересы в другой области, лет 35 уже как от радиогубительства отошел.

P.S. ну а то, что ваши вымыслы про С++ не смогли подтвердить реализацией — это типично.
UFO landed and left these words here
… хуже, сейчас ещё и 9ой приемкой проект делается.

Это высокоточная спутниковая навигация. С точностью 5 миллиметров СКО. Так что с одной стороны — GPS, ГЛОНАСС, GALILEO, а с другой — атомные ледоколы, автовождение тракторов и грузовиков, шлюзы, военные беспилотники, перевозимые на двух грузовиках…

Если вы на самом деле инженер — то сумеете с 5ой приемкой сделать. А если так, обычный малолетка, то сидите в мире бытовухи и не суйтесь туда, где нужна надежность.

Для обычных применений мы тоже на STM32H7 делаем. Но мы умеем выживать и там, где реально нужно 20 лет работы без сбоев.
UFO landed and left these words here
Такое впечатление, что вы не сталкивались с западными промышленными решениями. Вы думаете они новее нашей 5ой приемки?

Аирбасы, боинги… Знаете какой там GPS-приемник? 12 каналов, характеристики такие, что любая бытовуха за пояс заткнет. Элементная база — ну где-то года 1990ого, если не раньше. Это вот то, что летает. Пару лет назад начали поставлять новые. С характеристиками примерно 2000 года. Зато — не ломается. Промышленное решение. Судя по корпусу — оно и крушение самолета переживет, если пожар недолгим будет.

Ещё пример. 2002 год, та самая Северсталь.закупаем для ПЛК сетевую плату. Бытовые 100мегабитные — стоят 10 долларов, а эта — тысячу. протокол — Ethernet II, то есть 2 мегабита. Зато — не ломается.

Сейчас занимаюсь индастриал решениями (силовые преобразователи с гарантией 15+ лет
Сколько проживут ваши преобразователи в цехе, если даже в бытовке за месяц прямо из воздуха выпадает миллиметр металлической окалины?

У вас стопроцентный входной контроль деталей есть? А реальная наработка на отказ по тем же деталям известна? Или только теоретическая, в камерах ускоренного старения?

Доводилось работать с клоном альтеры из Воронежа, тихий ужас…
"Ну, да! Ну, ужас! Но не «ужас-ужас-ужас»!" Заработала она. Палкой и веревочной петлей, но работает. Ком-порты у нас на ней в одном изделие (но это уже не я писал).

Просто для инженера — интересней делать высоконадежное решение. А погоня за современностью — это для бытовухи. Легко можно нарваться на что-то типа "таймера смерти" у intel Atom C200.

Мне, как программисту, почти все равно на каком железе оно пахать будет. Лишь бы производительности хватило. Ну почти все равно — есть свои секреты, все-таки 1.6 ГГЦ в ВЧ части…
Северсталь -Балаково? Мне сразу вспомнился проект водоподготовки, который написан был на SCL- PASCAL-е подобном языке.
Бывал в тех краях, правда давно.
Жаль, не довелось побывать у вас.
Так мы в Питере. Череповец — это заказчики.
Приятно пообщаться! Я вот только не прокатчик, больше по электрометаллургии.
Так я вообще программист. Сейчас даже не АСУТП, а спутниковая навигация.
Совершенно верно! Именно поэтому я и показал плату, которую использую в качестве отладочной. На самом деле этот пост для тех, кому лень или нет желания писать такую реализацию на С — берёшь готовое и вуаля.
Делать свой ПЛК на МК, используя чью-то прошивку без открытых исходников — извините, такое себе.
Всё работает, атвичаю
тут не катит.
Я ведь только предлагаю готовую прошивку — у вас есть свобода выбора, всегда можете выбрать любой другой вариант. Мне кажется, что важно, чтобы были хотя бы какие-то варианты — хотя бы такие. А так конечно — для серьёзной системы вообще хорошим тоном будет все своё иметь, и операционку тоже.
И именно поэтому я и пишу — это всё для ленивых, кто готов применять готовое. Тем более что на самом деле — 5 минут и готово.
А кстати, где-то на гитхабе мне попадались исходники ПЛК — если найду ссылку, кину.
UFO landed and left these words here
Ох, вспомнил лифт на ардуине и снова стало плохо :(
У меня аж тогда проскочила мысль, что ну его нафиг, эти лифты, я и по лестнице могу.
UFO landed and left these words here
Я тоже отношусь к ардуино не просто с предубеждением — имею опыт демонтажа поделок на оных платках. И люди реально имели проблемы из-за таких автоматизаторов. А менял на контроллеры, которые делает контора — и весьма успешно, ни одного отказа за больше чем 2 года. Дело в том, что этот бинарник — это отладочная версия, на ней откатываем функции на старом железе. Но рабочее железо уже давно другое -для малых версий STM32F3, серии постарше уже F4 или H7 с поддержкой Ethernet и прочими плюшками. Всякую рассыпуху датчиковую — на STM32F0. Непонятна реакция только ваша — вроде я ничего не продаю, просто даю возможность попробовать интересное решение. Что не так?
А если серьёзно — лифты до сих пор клепают на КР1816ВЕ35 или КР1816ВЕ39. Так что не удивляйтесь, что работает немного не так, как бы хотелось. Завод изготовитель называть не буду из этических соображений.
А в чём там основные проблемы были, в схемотехнике или программировании? Логика лифта на иерархический (с учётом сигнала пожар) конечный автомат хорошо ложится, тут сложно напортить. Или там keep-alive сигналов не было?
Ссылка на исходник -https://github.com/KeyMove/STM32-PLC-FX1N
Beremiz неплох, когда речь идёт о получении грантов) А вот хотя бы один реально работающий проект с онлайн отладкой, загрузкой и выгрузкой мне что-то не попадался, который работает хотя бы 10 минут без отваливаний. Если у вас есть ссылка — поделитесь, посмотреть будет интересно. Или я напишу под него интерпретатор даже, если проект будет стоящий.
Кстати вот по вашей ссылке цитата-«Таким образом Beremiz преобразует LD, FBD, SFC или IL в код на ST, а MatIEC конвертирует ST в C. Код С компилируется на конечную платформу.» То есть выгрузить программу из контроллера без вариантов. Грустно это…
Здравствуйте!

Насколько я понимаю, из Bluepill получится очень примитивный игрушечный ПЛК.

Во-первых, я не уверен, что он сможет работать в диапазоне температур от -60 до +120.

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

Мой опыт показывает, что лучше всего просто поставить каждому разработчику по полноценному ПЛК с необходимым минимальным набором модулей расширения.
Основная идея публикации была в том, чтобы дать людям возможность использовать завалявшиеся платы с пользой. Но меня жутко удивляет реакция — почему столько негатива, что не так? Тем более что я старался раскрыть большую и интересную тему — плюс была бы возможность попробовать свои силы и набраться опыта на копеечных платах, которые тем более что уже есть. Конечно, такие платы не для использования на объектах — это я всё описал в статье.
Когда речь идёт о конторе, которая занимается разработкой — да, тут применять самодельные модули себе дороже. А вот для кружка самое то — пора прощаться с ардуинами и им подобными клонами, пусть дети изучают хотя бы промышленные языки и осваивают азы отладки. Это моё мнение.
Извините меня, пожалуйста, за негатив. Упоминание использования в обучении я пропустил. Вероятно, потому что данная ремарка размещена в заключении статьи.

Для совсем базового обучения (особенно в случае открытия исходников описываемой в публикации прошивки) может подойти. Хотя в этом случае потребуется ограничиться периферией самого контроллера, т.к. делать систему с модулями расширений дорого. Благо, что сам контроллер имеет достаточно много различных устройств, которые можно представить в виде «виртуальных» модулей расширений.
UFO landed and left these words here
Здравствуйте!

По поводу +120 могу несколько ошибаться — точную верхнюю границу я не знаю, но на прежнем месте работы контроллеры в печке грели. И, насколько мне известно, заявляли, что ПЛК способен работать при -60. Уж с дополнительным подогревом или без — не знаю, я не по железу работал.

Между тем тот же MSP430 вполне себе переживает -60. Только один раз видел, чтобы после заморозки он вышел из строя.

Справедливости ради, отмечу, что конкретные механизмы обеспечения работоспособности при низких температурах мне не известны.
UFO landed and left these words here
Спасибо за Ваш ответ и опускание меня до менеджеров и ардуинщиков. Большое спасибо. Вы — про, я — ничтожество. Признаю свою ошибку.
UFO landed and left these words here
К сожалению, не могу уже изменить комментарий и исправить на +60, что соответствует номинальному диапазону рабочих температур. Если же просмотреть руководство по эксплуатации, то можно увидеть, что имеется два возможных диапазона рабочих температур: -40..+60 и расширенный -61..+60. Всё это, разумеется, исключительно маркетинговый ход. Может быть я дурак, раз верю, что в документах пишут то, что есть.

Относительно MSP430: я сам своими глазами видел, как устройство с данным контроллером работало в морозильной камере.

P.S. Очевидно же, вроде, что я не инженер, а ардуинщик.
UFO landed and left these words here
А какой смысл затирать маркировку микросхем? Даже самого STM32 и кварца? Вы же в статьё всё равно написали, что это за микросхемы.
Синим помечен кварц, потому что плата дефектная была. Феном прогрели — вроде начала заводиться. Вот такое грустное качество.
UFO landed and left these words here
IO-Link на данный момент не поддерживается, хотя можно и добавить. Я так понимаю, физика немного специфична. По данным википедии, длина линии составляет максимум 20 метров — но я совсем не уверен, что эта информация корректна. Была идея насчёт AS-i интерфейса — но его физика дорогая и периферия совсем не дешёвая. Для дома такую не купить — поэтому отложили реализацию.
UFO landed and left these words here
Приветствую, коллеги!
Приятно видеть тему про промышленное программирование — довольно редкую на Хабре.
Сам работаю АСУшником, сегодня, в субботу, дали время, заливал новую редакцию программ в ПЛК, сижу, контролирую, вроде всё работает)))
В GX Developer тоже работаю изредка, есть с десяток подопечных ПЛК Митсу FX.
Вышла версия ПО посвежее — GX Works, (у вендоров можно попросить бесплатно).
Автор, с ней будет работать ваша Blue pill?
Если есть желание попробовать себя в программировании ПЛК, у Митсу есть хороший тренажер на русском. Программа несколько старовата и капризна, но интересна и полезна.
Да, я тестировал работу с версией GX Works 2. Единственно что — в данной версии реализация функций PWM, EXTR и DEZCP немного отличается от канонической. Да- кстати, в этой версии есть поддержка Profibus DP slave, совсем забыл. Надо будет немного переписать утилиту конфигурации, чтобы можно было активировать этот режим. Мне кажется, будет любопытно попробовать работу в таком режиме.
Ну, насчет «хилости» «голубой таблетки» вы это зря. Камень (STM32F103C8T6) — пром исполнения, и спокойно переживает -40 +85 С (проверялось лично). Кварцы там — да, послабее, -20 +70 С. Слабый стабилизатор, всего 100 мА. Но исправляя это, я для себя «нарисовал» аналог "голубой таблетки". Кварцы такого же типоразмера, но -40 +85 С, Стабилизатор 800 мА. Проект с открытыми исходниками, можете повторять.
Если мало 103-го камня, то вместо него можно впаять 303-й, 373-й. (вообще список совместимых по ногам достаточно большой). Например STM32F373CCT6, Flash=256K, RAM=32K.
Как раз 303 и использую. Причина банальна — не хватило каналов DMA под все хотелки.
Чем еще интересен 303-й? Это «на борту» есть операционники с возможностью программно устанавливать к-т усиления, есть DAC и таймеров поболее будет. Можно одновременно использовать CAN и USB.
В 373-м в добавок к операционникам есть сигма-дельта.
И ещё, по насчет энергонезависимой памяти: Если это уставки, и не часто меняются, то никто не запрещает использовать ПЗУ микроконтроллера для хранения чего-либо. Например для этого отводим верхний килобайт-два.
Да — насчёт применения флеш памяти для хранения… В данном проекте можно сохранять комментарии к элементам программы в контроллере — то есть при выгрузке из памяти вы получите такой точно проект, каким его написал программист до вас. Русский поддерживается. Ещё поддерживается так называемая память регистров — выделяются блоки по 500 регистров, где вы можете хранить свои константы. Увы — пришлось эту особенность реализовать так, что сохранение происходит только при записи константы из GX Developer FX. И конечно же, расходуется память программ — из 8000 шагов откусываем куски или для комментариев, или для файловых регистров. Зато если программа небольшая — то получается очень даже удобно.
Да — вот на какой плате используется 303 проц. Тут уже и сохранение всех переменных в батарейной памяти(чип 23к256 по SPI), до 20 mbps последовательный изолированный порт( второй — до 500 kpbs), блок питания уже получше качеством. На основе этого дизайна недавно тестировали мост Profibus DP slave — Modbus RTU master. Конечно, это всё партизанщина — но что поделать, даже такой проект позволяет оставаться в тонусе.
Фото платы другого образца
My Image


Пытался сделать ПЛК из синей таблетки за 5 минут в результате убил весь вечер так и не добившись результата… Дальше прошивки синей таблетки дело не пошло.
Сайт Mitsubishi то ещё счастье — потратил кучу времени на то чтоб найти программу, потом скачать (долго и разные варианты) потом оказалось что ни одна из программ не работает на Windows10, также как и «Программа-конфигуратор»…
А вот тут давайте поподробнее… Дело в том, что под 10-кой я как раз и не тестировал — только под 7 x64 и под XP x32. Сейчас посмотрим, что можно будет сделать по крайней мере с конфигуратором.
Как костыль можно предложить работу под виртуалкой — но это ещё то удовольствие.
А программу, насколько я помню, можно скачать на трекерах — была почти на всех, что сейчас заблокированы.
Итак коллеги — провёл тесты под Windows 10. Всё отлично работает на самом деле. Система х64. Перед началом установки GX Developer надо установить доп.пакет из папки GX_developer\EnvMEL. Также установил драйвера по ссылке для СОМ порта.
Снимок экрана работающей программы
My Image
Sign up to leave a comment.

Articles