All streams
Search
Write a publication
Pull to refresh
23
0
Ин Михаил @Greeds74

инженер АСУТП

Send message
Мы читаем наверное разную классику просто!
SWO в своё время оказалось единственным средством отладки стека TCP/IP в режиме исполнения — это о чём-то говорит.
Тут промышленное программное обеспечение, которое взаимодействует с платой. А то, что оно без рюшечек — уж извините, вам шашечки или ехать всё таки.
А вот насчёт картинок — да, надо исправить, чтобы было видно полностью. Если уж очень горит — то ПКМ-Открыть в новом окне. И будет вам счастье полноценного просмотра. Но статью буду переделывать…
Меня совсем не дядя Петя зовут — не надо тут хамить. Отладку перепробовал на STM32 почти всю — так что не надо мне писать, что делать. Я рассказываю про то, что такое промышленная система и как она работает -и даю вам возможность её опробовать. Не интересно — не читайте, я ведь никого не заставляю. Совсем никого. А минусанул за то, что надо читать то, о чём пишут.
А если серьёзно — лифты до сих пор клепают на КР1816ВЕ35 или КР1816ВЕ39. Так что не удивляйтесь, что работает немного не так, как бы хотелось. Завод изготовитель называть не буду из этических соображений.
Я тоже отношусь к ардуино не просто с предубеждением — имею опыт демонтажа поделок на оных платках. И люди реально имели проблемы из-за таких автоматизаторов. А менял на контроллеры, которые делает контора — и весьма успешно, ни одного отказа за больше чем 2 года. Дело в том, что этот бинарник — это отладочная версия, на ней откатываем функции на старом железе. Но рабочее железо уже давно другое -для малых версий STM32F3, серии постарше уже F4 или H7 с поддержкой Ethernet и прочими плюшками. Всякую рассыпуху датчиковую — на STM32F0. Непонятна реакция только ваша — вроде я ничего не продаю, просто даю возможность попробовать интересное решение. Что не так?
Вы перед тем, как употреблять слово «глупость» подумайте. Если вы читали статью, то там описано — я прямо в среде программирования написал нужную мне логику, скомпилировал, загрузил либо частично, либо полностью, и тут же смотрю работу программы и значения переменных. И мне для этого не надо вообще ничего делать — никаких лишних телодвижений!
А вот что надо в вашем случае, чтобы точно также посмотреть онлайн программу через SWO? Это вообще не одно и то же, вообще!!!
А про привязку к программатору я и не писал — это вы выдумали вообще. А printf в наши дни — это откровенная ардуинщина и костыли.
Beremiz неплох, когда речь идёт о получении грантов) А вот хотя бы один реально работающий проект с онлайн отладкой, загрузкой и выгрузкой мне что-то не попадался, который работает хотя бы 10 минут без отваливаний. Если у вас есть ссылка — поделитесь, посмотреть будет интересно. Или я напишу под него интерпретатор даже, если проект будет стоящий.
Кстати вот по вашей ссылке цитата-«Таким образом Beremiz преобразует LD, FBD, SFC или IL в код на ST, а MatIEC конвертирует ST в C. Код С компилируется на конечную платформу.» То есть выгрузить программу из контроллера без вариантов. Грустно это…
Я ведь только предлагаю готовую прошивку — у вас есть свобода выбора, всегда можете выбрать любой другой вариант. Мне кажется, что важно, чтобы были хотя бы какие-то варианты — хотя бы такие. А так конечно — для серьёзной системы вообще хорошим тоном будет все своё иметь, и операционку тоже.
И именно поэтому я и пишу — это всё для ленивых, кто готов применять готовое. Тем более что на самом деле — 5 минут и готово.
А кстати, где-то на гитхабе мне попадались исходники ПЛК — если найду ссылку, кину.
Только знаете, хотелось бы добавить вот что — если вы напишете программу на С, то у вас отладка такой программы будет возможна только через отладчик типа STLink или JLink, и вам придётся перезапускать процессор для подключения. Тут же онлайн — отладка как раз и рассчитана на то, чтобы не прерывая процесса управления, можно было и смотреть, что происходит, и изменять значения онлайн. При этом время цикла управления практически не изменяется. Это один из очень больших плюсов программируемых логических контроллеров.
Совершенно верно! Именно поэтому я и показал плату, которую использую в качестве отладочной. На самом деле этот пост для тех, кому лень или нет желания писать такую реализацию на С — берёшь готовое и вуаля.
Коллега, по вашей плате у меня есть вопрос — есть ли на другой стороне платы паттерн «сборки» защиты от статики по линиям USB? Если нет — то не мешает поставить, сэкономит кучу нервов в будущем.
А вот что касается не работающего USB — вот в этом месте поподробнее расскажите, что и как у вас получилось. Вопрос для меня очень интересный.
>Кстати, открою еще один секрет: в C8T6 на самом деле 128 кБ ПЗУ.

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

А что касается китайцев — то у них процветает перемаркировка чипов, сам несколько раз с этим сталкивался. Поэтому советую всем, кто берёт у них, всегда тщательно проверять, что они купили.
Спасибо за комментарий, коллега. Но опять же, тут вопрос был про шасси контроллера — а не про схему «синей» платки. Схема, которую вы опубликовали, давно гуляет по инету. Вот в pdf формате.

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

Опять же, я использую сейчас STM32F103CBT6, которая не устанавливается на китайцах. «Сдувать» старый чип и ставить новый — увольте, не мой метод. Поэтому свой дизайн, своя плата. Гарантия того, что всё будет так работать, как я хочу на тех компонентах, которые я хочу, а не которые поставил мне дядюшка Ляо в подвале. И заводская сборка. Ценник конечно получается выше — но это расплата за то, что я и мои коллеги будут спокойно спать по ночам. И клиенты будут уверены и довольны, что купили у нас, а не у других.
День добрый. Мы пока ещё не решили, будет или нет в открытом доступе схема. Вроде и секрета нет — посмотрите, плата «колхозная», всё просто.Давайте так -если решим, что будет в свободном доступе, то вам обязательно напишу.
>В данном случае не взлетит.
Вы просто не читаете, что вам пишут. Считаю, что смысловая нагрузка диалога потеряна.

>Перед загрузчиком был вопрос. Где ответ???
Это не поле чудес.Научитесь понимать, что вам пишут. А не искать выгодный себе смысл.
Удачи, коллега.
>Именно так реализовал загрузчик на TI TMS320, только чуть проще: начало пакета и конец всегда заранее известны по framing bytes, поэтому таймер и прерывание лишнее.
Я вообще-то описал протокол, для которого применяется такой подход.А вы мне за уши притянули загрузчик, который не обсуждается тут вообще.

>Провели тестирование модулей конкурентов написанных неизвестно где и не известно как?
Я вообще-то так тестирую свои разработки. И всем советую — чем больше тестов проведёте, тем меньше будет проблем. Чужие мне тестировать и не надо. Я же не занимаюсь сертификацией)))

>Я смотрю вы загадки любите. Вот вам одна:
Ваши загадки мне просто не интересны. Без обид — не хочу своё время тратить впустую на Марио.
Вот ссылка — там и почитайте https://geektimes.ru/post/285570/
А когда мне потребовалась доп. память для STM32, я просто на SPI2 прикрутил микруху 23K256 — и всё. Летает как самолёт.

У меня, как у «программиста», возник вопрос — то есть вы только что предложили каждый раз по прилёту символа дёргать стек протокола в прерывании с высоким приоритетом?

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

А если серьёзно — ОСРВ была выбрана не просто так. Провели тестирование — взяли 4 модуля, вместо датчиков подсунули константы, и запустили тест опроса мастером с примерно 500 000 транзакций. Мастер работал с минимальными тайм-аутами.

А теперь вопрос к Вам, как к знатоку того, что делается внутри — какие величины ошибок в показаниях интеграторов были получены? И как это можно объяснить?

Правильный ответ тут
Для варианта с ОСРВ отклонения были менее 0.5%, а для варианта без — более 10%. Причём тест повторяли более 20 раз — и если для ОСРВ характер ошибок повторялся, то для варианта без — они были хаотичны. Надеюсь, причина выбора теперь стала понятной.


Прошивка без ОСРВ применена в батарейном таймере полива — там операционка точно будет лишней.

Фото датчика описываемого теста
image


Да — использовал Atmel Studio 6.2. Для прошивки — avrdude. Даже операционку под nano портировал. Потом разжился уже Atmel ICE — но стало понятно, что платформу пора менять. И мой коллега дал на пару дней платку с stm32 и ST-Link. С тех пор и подсел(
Спасибо за предложение, но лично я воздержусь от mbed)) Потому как я пишу чисто и красиво на С)))И периферию предпочитаю ручками настраивать. Конечно, по времени это достаточно долго, требует вдумчивого чтения документации — зато есть уверенность, что всё работает так, как я хочу. Благо доков и аппнотов достаточно)
И началась древняя как мир война сторонников и противников ОСРВ для встраиваемых систем)))

Вы слово в слово( кроме «датчика») повторили ответ службы технической поддержки одной российской именитой компании, когда я им сообщил, что их модуль ввода — вывода в режиме modbus RTU требует тайм — аут между запросами аж в 500 мсек! Вот в этом случае воробей оказался Годзиллой)

А датчик — то не простой на самом деле. Он не просто производит преобразование физических величин, а ещё и производит их первичную обработку, причём довольно сложную. И при этом отвечает на запросы по шине в чётком соответствии со стандартом modbus RTU.

Конечно, на самом деле вопрос избыточно или нет применять ОСРВ для вроде бы простых применений будет стоять всегда. Для себя, как для разработчика, я сделал выбор.
А вот этой новостью приятно удивлён! Но для моих применений лучше не выходить за рамки положенных 72МГц.

Information

Rating
Does not participate
Location
Новороссийск, Краснодарский край, Россия
Date of birth
Registered
Activity