mantech 48 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 2 часа назад, syoma сказал: При этом это будет уже production-ready код, который даже может соответствовать всяким Safety и MISRA стандартам, путем выбора соответствующих галочек. То есть при желании говнокода там почти не будет, и проверить вы это сможете открыв сгенерированный Си файл. В это, честно говоря, слабо верится, ибо 1) уже давно бы все забили на текстовые проги и "писали" в кубиках и квадратиков матлабов. 2) этим самым практически подтверждается создание системы автоматического программирования, что уже было признано учеными, как невозможное, ибо требует сильного ИИ в качестве движка системы. А посему получается, что все это действо - несколько модернизированный куб от СТМ, может быть чуть лучше вылизанный, но суть та же - офигенный оверхэд, и надежность хуже, чем писал программист (не говнокодер), ИМХО... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 1 hour ago, mantech said: 1) уже давно бы все забили на текстовые проги и "писали" в кубиках и квадратиков матлабов. Так есть уже целые отрасли, где так и есть. Я ж говорю о реал-таймовых прогах на конкретных платформах. Авиационка, космос, автомобили - уже давно перешли. Есть группа системщиков, которые поддерживают саму платформу - они все делают на Си и асме и их задача выдавить максимум из железа. И выше сидят те "кубико"программисты, которые уже все рисуют кубиками. Они даже могут Си не знать. 1 hour ago, mantech said: 2) этим самым практически подтверждается создание системы автоматического программирования, что уже было признано учеными, как невозможное, ибо требует сильного ИИ в качестве движка системы. Да нафиг там тот ИИ. Видишь кубик умножителя, генеришь код signed int mult(int x, int y) { return (x*y)} и т.д. Кстати во многих отраслях такая кодогенерация из кубиков уже лет 20 как в ходу была. Можно вспомнить даже тот же Дракон. Но Матлаб их всех пришиб, добавив возможности моделирования. Quote А посему получается, что все это действо - несколько модернизированный куб от СТМ, может быть чуть лучше вылизанный, но суть та же - офигенный оверхэд, и надежность хуже, чем писал программист (не говнокодер), ИМХО... Насчет офигенного оверхеда и вылизанности - ну это сами смотрите, там уже больше 13 лет очень активной эволюции и оптимизаций там дохренища. Например мне очень нравится возможность на Сишном уровне путем пары кликов оптимизировать конкретный алгоритм под быстродействие, память или меньший код. Если надо, оно там и forы разворачивает и инлайны вставляет, а если надо - сворачивает и все функциями. Хош - будет одну переменную по всему коду использовать и нигде не накосячит. Попробуй, добейся такого рефакторинга от обычного программиста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба On 9/18/2020 at 8:34 PM, skv8016 said: А зачем? Я занимаюсь автоматизацией, некоторые заказы делаются за несколько дней, какие-то могут тянуться несколько лет. Объем контроллеров мизерный и разработка себя никогда не окупит, а сроки сдачи станут не приемлемы. Сейчас есть из чего выбрать и по гибкости я мало ограничен. К тому же, в процессе наладки новой машины, часто возникает необходимость что-то добавить или поменять. Боюсь, что все сведётся к разработке того, от чего уходим: к ПЛК с модулями расширения Думаю вы гарантировано где-то делаете необосновано дорого и сложно. Скажем чуть позже чем началась эта ветка я анализировал существующие решений по поводу резервного питания системы управления умным домом. И не нашел ничего лучше как разработать собственную плату управления Заряжает аккумулятор током до 10 А. Может работать с аккумуляторами на любой химии: свинцовые, литевые ... Коммутирует инвертер 24 DC->220 AC до 1500 Вт при отключении сети, коммутирует также вход инвертера. Имеет USB, CAN, RS485. Граф. дисплей, локальная настройка параметров. Обеспечивает резервное 24DC и 220AC. Всего лишь нужен внешний БП 24В и дешевый инвертер без наворотов с алика. Если такое делать на стандартных UPS-ах и БП c поддержкой зарядки и ПЛК, то получится монструозно по габаритам, дороже в несколько раз и не универсально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 5 minutes ago, AlexandrY said: Скажем чуть позже чем началась эта ветка я анализировал существующие решений по поводу резервного питания системы управления умным домом. И не наше ничего лучше как разработать собственную плату управления Вот блин, а я - мудак, тупо поставил USB Power Bank в цепь питания моего контроллера УД :-) Кстати, а что та система управления Умным Домом сможет сделать, если питания исполнительных устройств нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 5 hours ago, syoma said: То есть при желании говнокода там почти не будет, и проверить вы это сможете открыв сгенерированный Си файл. Вот "говнокод" там как раз будет. Будет раздутая цикломатичность, и туча бессмысленных имен. С MATLAB-ом надо научиться не смотреть в выходной код на C. Это как программеры на C научились не смотреть ассемблер. И главное все же на мой взгляд в Матлабе это резкое сокращение количества имен. В принципе язык LD в ПЛК тоже избавляет от имен, но он не показывает состояния! В ПЛК вообще нет языков показывающий состояния. И это огромный недостаток графических нотаций ПЛК. Потому что идентификация состояний и их отображение - второй по важности аргумент в пользу графической нотации Матлаба. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 1 час назад, syoma сказал: Кстати, а что та система управления Умным Домом сможет сделать, если питания исполнительных устройств нет? Наверно написать в облако, что я бессилен что-то предпринять - воздуха лишили! ПОМОГИТЕ!!!!!!!!! 1 час назад, syoma сказал: Вот блин, а я - мудак, тупо поставил USB Power Bank в цепь питания моего контроллера УД :-) У меня в контроллере была предусмотрена работа с SLA батареями, запитывался сам контроллер и сотовый модем, чтоб в случае полного пэ... сказать ПОМОГИТЕ))) 1 час назад, AlexandrY сказал: В ПЛК вообще нет языков показывающий состояния. Что подразумевается под "состояниями"? На ST разве нельзя писать программы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 2 hours ago, AlexandrY said: В ПЛК вообще нет языков показывающий состояния. Есть. Sequential Function Chart. Но программирование и графика там через одно место сделаны. Зато синтаксис формален очень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skv8016 0 21 сентября, 2020 Опубликовано 21 сентября, 2020 · Жалоба 4 hours ago, AlexandrY said: Думаю вы гарантировано где-то делаете необосновано дорого и сложно. Скажем чуть позже чем началась эта ветка я анализировал существующие решений по поводу резервного питания системы управления умным домом. И не нашел ничего лучше как разработать собственную плату управления А я думаю, что работа стоит денег. И я никогда не закладываю ничего лишнего или необоснованно дорогого, если этого не требуется по условиям. Поинтересуйтесь к примеру стоимостью реле безопасности от Pilz, а это всего лишь реле для пульта или барьера, но заказчик требует, т.к. ему важно сохранить конечности персонала. Сложно тоже стараюсь не делать. В отличие от вас я бы поставил на питание что-то типа DR-UPS40 и сэкономил бы неделю-другую времени, на рыбалку бы сходил, заказчику бы денег сэкономил. 4 hours ago, AlexandrY said: В принципе язык LD в ПЛК тоже избавляет от имен, но он не показывает состояния! В ПЛК вообще нет языков показывающий состояния. И это огромный недостаток графических нотаций ПЛК В принципе вы не знакомы с программированием ПЛК от слова совсем. Про какие имена вы вещаете. Всё давно используют имена для переменных, входов/выходов, функций и функциональных блоков. В ПЛК графические языки как раз и используют для случаев, когда важно видеть состояние каждого элемента и каждой операции. Я писал на Паскале, иногда пишу на Си, долго пользовался Матлабом. Сейчас в основном под ПЛК. И я могу сравнивать. В ПЛК есть свои особенности, но нет тех ограничений, о которых вы так уверенно заявляете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 12 hours ago, syoma said: Есть. Sequential Function Chart. Но программирование и графика там через одно место сделаны. Зато синтаксис формален очень. Согласен, здесь состояния локализованы. Вопрос подсвечиваются ли они при отладке. Поскольку в дешевых домашних контроллерах я такого языка не видел. 10 hours ago, skv8016 said: В отличие от вас я бы поставил на питание что-то типа DR-UPS40 и сэкономил бы неделю-другую времени, на рыбалку бы сходил, заказчику бы денег сэкономил. Видите, вы не смогли сразу вот так просто найти даже приблизительный аналог моего решения. А в жизни будет так: приходите к заказчику и говорите - чувак, на рынке такого нет, юзай то что дают. Вот те шкаф с USP-ом, вот те свинцовай акуумуляторы, сувай это куда найдёшь. Да, свои разработки обходятся поначалу тяжело. Приходится писать программы с десятками тысяч имен. Пока вы такие не писали вам даже невдомек о наличии такой проблемы. 100 входов с именами в ПЛК - просто детский лепет. Народ целые языки типа С++ придумывает чтобы эффективенее реюзать имена. 10 hours ago, skv8016 said: В ПЛК есть свои особенности, но нет тех ограничений, о которых вы так уверенно заявляете. Я ж не говорю за все ПЛК в мире. Я и свою плату могу назвать ПЛК с известной степенью лукавства. Всуну туда https://micropython.org/ и все дела. Не об этом речь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 55 minutes ago, AlexandrY said: Согласен, здесь состояния локализованы. Вопрос подсвечиваются ли они при отладке. Поскольку в дешевых домашних контроллерах я такого языка не видел. Да, в Codesys все подсвечивается при отладке - активные состояния, активные функции. Но я говорю - для тех, кто знает Stateflow, там будет весьма грустно с программированием - например любую операцию или условие надо оформлять отдельной полноценной функцией с объявлением входов и выходов. И вообще там представление рассчитано на последовательный проход состояний сверху вниз. Выключено-Запуск-Работа-Остановка-Возврат в исходное состояние. Я попытался нарисовать простенький тестовый автомат в SFC, потом плюнул и вернулся в Stateflow. SFC должен быть во всех софтовых ПЛК - Codesys, Isagraf, Beckhoff, а вот в дешевеньких на нем экономят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skv8016 0 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 45 minutes ago, syoma said: Да, в Codesys все подсвечивается при отладке - активные состояния, активные функции. Но я говорю - для тех, кто знает Stateflow, там будет весьма грустно с программированием - например любую операцию или условие надо оформлять отдельной полноценной функцией с объявлением входов и выходов. И вообще там представление рассчитано на последовательный проход состояний сверху вниз. Выключено-Запуск-Работа-Остановка-Возврат в исходное состояние. Я попытался нарисовать простенький тестовый автомат в SFC, потом плюнул и вернулся в Stateflow. SFC должен быть во всех софтовых ПЛК - Codesys, Isagraf, Beckhoff, а вот в дешевеньких на нем экономят. SFC привлекает в основном новичков. В реальности этим языком почти никто не пользуется, т.к. он ограничен только последовательным выполнением, а требуется автомат с последовательно/параллельной логикой Последовательность прохода задаётся флагами и/или переменной состояния, по которым и выполняются необходимые действия. И не вижу ничего плохого в оформлении операций в блоки. Вы же не разворачивание вручную циклы в проге для МК, да и функции всякие пишете. Подход один. Логика обработки немного отличается. Кстати рекомендую посмотреть на старые добрые кулачковые автоматы, где механически запускались те или иные операции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 1 hour ago, skv8016 said: И не вижу ничего плохого в оформлении операций в блоки. Вы же не разворачивание вручную циклы в проге для МК, да и функции всякие пишете Ну иногда нужно просто сравнить значение какой-то переменной с определенным пороговым значением и перейти в другое состояние. Это одна операция, но в SFC ее надо оформлять в отдельную функцию, что просто усложняет читаемость. В Stateflow это сравнение можно просто включить в условие перехода и будет визуально красиво. Не говоря уже о том, что там можно делать переходы в любом направлении и не только последовательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 4 hours ago, syoma said: В Stateflow это сравнение можно просто включить в условие перехода и будет визуально красиво. Хоть я всегда был против показывать новые парадигмы на примитивных примерах, но в данном случае скажу. Ваша диаграмма несколько дискредитирует принцип минимизации количества имен. Вот та переменная lightState не нуждалась в явном создании. Диаграмму можно было сделать так: А о том какое состояние активно можно судить по выходу мониторинга. У каждого Chart-а есть такой выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба Ну это была первая выхваченная из интернета картинка. Так что не судите строго :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 25 minutes ago, syoma said: Ну это была первая выхваченная из интернета картинка. Ну рисунок в целом годный для тренировки. В Матлабе обязательно надо иметь такие модельки чтобы проверять некоторые неинтуитивные свойства нотации. А вот как элементарно в этой модели делается антидребезг сигнала switchPos. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться