Ну ты крут, мужик! Что еще сказать) Было дело запускал завод асфальтный, на своих двух платах самопальных(даже зеленных и красивых сам спроектировал китайцы отправлили мне их) , эти платы были у меня как модули ввода вывода, микроконтроллер там стоит ESP32(кодил на Framework Arduino Platformio Visual Studio Code) через протокол Modbus RTU, вся логика была на обычном Ноутбуке , линукс туда еще поставили, там логику завода написал на C++ QT Framework, три года завод уже отработал. К чему я тут: короче я тогда тоже типа мысленно соревновался с ПЛК крутыми. Но времени и сил убил на это все много, и денег мало заработал, но было весело, спал прям там в операторской в спальном мешке, короче на улице почти) Удачи вам и сил!!!
Одна из самых популярных и самых сложных для меня работ, которую я написала в 2020 году - акварель "Свет".
Акварель "Белые ночи", бумага Баохонг А4
Несколько лет у меня лежал референс для этой акварели, вообще он достаточно популярный у художников, но в диджитал формате - несколько раз встречались мне 2д произведения по этому фото. До этой работы мои картины были более графичными, а тут мне захотелось передать и солнечные лучи, пробивающиеся сквозь толщу воды и показать сложную перспективу.
Рисовать было волнительно - акварель ошибок не терпит и тоновые сочетания нужно было в один подход передать по мокрой бумаге и я долго не решалась взяться за эту работу, но пересилила страх и картина увидела свет.
Оформленная работа в бархатное паспарту и деревянный багет.
В 2022г она заняла 1 место на Международном конкурсе акварельного искусства "Акварелиум":
Оригинал этой работы не продается, но я стараюсь её тиражировать во всех доступных форматах - футболки, открытки, постеры и в таких форматах она тоже достаточно популярна:
А ещё этой работой я вдохновила многих на творчество, чему очень рада). Внизу подборка из инсты, где люди отмечали меня как автора оригинальной работы:
Если коротко, я работаю над собственным аналогом комплекса - Codesys. Программная экосистема для разработки ПЛК на разном железе, под названием 3o|||sheet (читать как “Зошит”). Состоит из трех уровней: Среда разработки IDE (LD/FBD/ текстовые), собственного компилятора, и собственная среда выполнения на стороне железа.
В прошлом посте, сравнивал свой ПЛК с китайскими клонами на базе Mitsubishi FX3 При одинаковом чипе (stm32f103) мой инженерный образец был в три раза медленнее Mitsubishi.
С этим я мириться не стал, и первое что сделал - чуть оптимизировал выборку команд из виртуального ОЗУ.
Внутри рантайма в микроконтроллере. Было:
ic.b[3]= memory[PC];
ic.b[2]= memory[PC+1];
ic.b[1] = memory[PC+2];
ic.b[0]= memory[PC+3];
Во времена тестирования на ПК и микроконтроллерах, чтоб не возиться с “Big Endian/Little Endian” я оставил такой медленный но прямой способ.
Изменил на:
memcopy(&ic, &memory,4);
ic - это регистр инструкции (структура типа Union) , он первым читается из виртуального ОЗУ. К нему применяются различные маски и сдвиги, для извлечения данных (номера регистров, операнды, константы и т.д).
Производительность нашего ПЛК на “ровном месте” увеличилась больше чем на 30%. Сейчас картина выглядит так по работе с релейной логикой (LD)- Указано время выполнения базовых LD инструкций в микросекундах (меньше - лучше):
Данные по Allen Bradley Micro810 - взято из документации, какой внутри стоит чип - неизвестно. Данные по китайским клонам по Mitsubishi FX3 - взято из тестов на просторах интернета.
Наш ПЛК на базе собственного 3o|||sheet все еще уступает Mitsubishi FX3 (с китайским клоном и идентичного микроконтроллера stm32f103), но уже не в три раза, как в прошлый раз, а примерно в два раза. Поле для оптимизации у меня еще широкое (та самая работа с декодированием инструкций- маски, сдвиги, и прочее, я молчу уже об оптимизации - конкретно выполнение виртуальных инструкций). Пока я создаю инженерные образцы ПЛК (а не коммерческие) где тестируется в основном- стабильность, а не скорость, хотя периодически бывает интересно что можно выжать по скорости.
Но возможно достичь аналогичного результата клона Mitsubishi FX3 может и не удастся, учитывая универсальность моей архитектуры 3o|||sheet и деревянного ( бюджетного конечно) от Mitsubishi. Но если я оптимизирую производительность до уровня 10-20% разницы с Mitsubishi, буду считать - прекрасным результатом, и вот почему.
Превосходство моей архитектуры:
Mitsubishi FX3 - деревянный и не гибкий, напоминающий Allen Bradley SLC 500). У них “табличная память”. Жестко выделенные области - битовые переменные, целочисленные переменные, таймеры и т.д Адресация, чтение/запись идет быстро - никакого декодирования . В моей архитектуре 3o|||sheet - единое адресное пространство, и любые типы переменных могут располагаться в перемешку, в любой последовательности, с адресным пространством 4 гигабайта:
То есть, делить адресное пространство можно - как угодно. Создавать или нет внутри Диспетчер задач или Операционную систему.
Первоначально, я так же создавал ПЛК с системой табличной памяти, они быстро работали, но я пришел к выводу что это тупиковый , устаревший, архитектурный путь .
Но не только я так думаю. Бюджетный современный Allen Bradley может уже исполняться из ST языка ( в отличии от старых бюджетных SLC 500), и что произошло? Новый бюджетный как видим выполняет релейную логику в 2.5 микросекунды на команду, против 1.2 микросекунды у старых SLC 500 ))) данные я прочитал в документации SLC 500. То есть современный ПЛК Allen Bradley стал медленнее в два раза в сравнении с старым Allen Bradley))
Давайте продемонстрирую возможности своего компилятора 3o|||sheet и системы воспроизведения в железе, о том что значит - гибкость системы.
В Первую очередь это - возможность создавать структуры данных любой сложности внутри смешивая данные любых типов (что значит - легкость и читаемость программы, и создание собственных функциональных блоков любой сложности внутри). Так же и воспроизведение программы: можно собирать любую сложную логику - в отдельные функции (что также значительно повышает удобство и написание сложных программ), и вызывать методы внутри друг друга.
Я не буду демонстрировать LD или ST (это у всех ПЛК +- тоже самое, ведь стандарт же), интересней это выглядит внутри микроконтроллера:
В данном видео примере выводятся строки: чем глубже функция, тем длиннее строка для наглядности
Main ------| переход
func1 ------------| переход
func2 ------------------| переход
func3 ---------------------| переход
func4 ------------------------| переход
func5 ---------------------------| Самая глубокая функция
func5 ---------------------------| возврат
func4 ------------------------| возврат
func3 ---------------------| возврат
func2 ------------------| возврат
func1 ------------| возврат
Main ------| Завершение Main. -> Начало Main.
Глубокие переходы между функциями ( функция внутри вызывает другую функцию, а та следующую и т.д), или рекурсии - на всю память. Единое адресное пространство - чем больше программа - тем меньше данных, и наоборот. Никакой жесткости типа - “память программ 256 кб, память данных 128 кб” и прочее. Никаких жестких списков “целочисленных переменных 256 страниц, булевых 256 страниц, таймеров 64” и т.д. Как в архитектурах типа FX3. Гибкая архитектура подразумевает - есть целое виртуальное ОЗУ - а там распределяйте сколько чего нужно в каких пропорциях - сами.
Так же добавил возможность, обновлять участи кода (полностью их переписывать, на лету, не перезагружая и не останавливая ПЛК)
Для обновления кода на лету, надо перекомпилировать проект, и загрузить программу в ПЛК от указанного начала адреса, и до указанного конца. В будущем сделаю удобно - переписать код блока или функции - просто указав по имени.
Разработка своего компилятора - трудный путь, но зато потом все вознаграждается тем что ты вплотную сравниваешься с брендами по функциональности: Вытесняющая многозадачность, обновление кода на лету + свои идеи по безопасности , создавая на слабом железе "микро "виртуалки", где одна может выполнять рискованный код (взаимодействовать с внешними системами) и может слететь, а другая - исполняет критический код, никогда не слетит.
Архитектура. LD ST - текст, переводится в текст .3osheet и .3osheet компилятором своей разработки, переводится в байткод. Сама виртуальная машина написана на СИ. Теоретически, если сделаю транслятор из Java, то получится аналог напоминающий Android.
Ну и на последок,
Сейчас зима, прекрасное время заняться акварельной живописью. Кто то заметил уже, слишком красочная моя среда разработки в сравнении с другими. Я художник (за плечами кроме инженерного - художественный институт). Сейчас возвращаюсь к рисованию опять.
Никак не доедет отладочная плата на RISC V для теста, кому интересно - присоединяйтесь, периодически буду публиковать ход разработки проекта.
Ближайшие 17 недель каждый понедельник я буду дарить постер! Чтобы его получить нужно быть моим подписчиком и оставить комментарий под постом с кодовым словом, сегодня это - "Ива +"
Постеры формата А4 - очень плотная бумага, лазерная печать и матовая ламинация - даже без рамки со стеклом провисит лет 50 и не выгорит и не отсыреет!
В среду я случайным образом выберу комментарий под постом и свяжусь с вами! Важное - доставка СДЭК за счет получателя - у меня с ними договор и до МСК или Питера где то 300р получается. Доставка в коробке, пупырке, стрейч пленке, всё по феншуй - доедет в лучшем виде.
В прошлом году я показывала свои тесты на светостойкость акварельных красок в этом обзоре (тестировались Малевичъ Veroneze (старая версия), Van Gogh, Гамма Старый Мастер, Белые Ночи, Mungyo Gallery, Derwent Inktense).
В мае 25 года я начала новый тест для акварели Mijello Mission Gold, Малевичъ Veroneze (новая версия) и для карандашей (!) Winsor&Newton Studio Collection, Derwent Inktense и Малевичъ GrafArt PRO.
Начну с самого интересного - Mijello Mission Gold. @EvgeniyaBrukish, я знаю, что вы рисуете именно этой акварелью, поэтому скорее всего вам будет это интересно) Полного обзора на эти корейские краски у меня пока нет, но это самая сочная акварель из всех, которые я встречала.
Тестовые полоски вверху
У Mijello непривычная нам система указания светостойкости - 5 звезд вместо привычных нам трех. В моем наборе было 2 цвета с 2 звездами - опера и фиолетовая. Они действительно сильно изменились за полгода, но все равно полностью не выгорели. Все остальные цвета (даже на 4 звезды) никак не изменились, кроме Прусской голубой - цвет заявлен на 5 звезд, но изменил свой цветовой тон. Я бы поставила ему 3.
Далее Малевичъ Veroneze (новая версия). Старую версию я разбирала тут. Новая версия у меня только в виде дот-карты, многие цвета с нее я истратила, но большинство получилось выкрасить для теста.
Тестовая полоска вверху
Сильно изменился хинакридон фиолетовый (я бы поставила 1 звезду), хинакридон пурпурный немного посветлел (2 звезды оправданно), опера ушла в ноль, изменился в тоне и посерел перилен бордовый, ультрамарин фиолетовый заслуживает только 1 звезду вместо трех, диоксазин фиолетовый подтверждает свои 2 звезды, голубая ФЦ тянет только на 2 вместо 3, как и берлинская лазурь и зеленая ФЦ. Я считаю, что это плохой результат, и бренд наврал в своих оценках.
Смотреть светостойкость карандашей начнем с Winsor&Newton Studio Collection. Это непрофессиональные карандаши. У нас они стоят неоправданно дорого - в среднем набор из 12 штук сейчас около 2 тыс рублей. Ребят, они того не стоят совершенно. По отдаче цвета, наслоению, и вообще в работе они абсолютно обычные. А еще они ужасно у меня ломаются при заточке((( Светостойкость у них не указана.
Тестовая полоска внизу
В целом они не светостойкие: все цвета кроме зеленых, коричневого и черного побледнели. Персиковый вообще вышел из чата. Но для детского или ученического материала (а это именно такие карандаши) результат хороший.
Помимо акварели Derwent Inktenseу меня есть такие же карандаши. Я люблю эту серию, она необычная. Кстати, акварель Derwent Inktense полностью оправдала свою высокую светостойкость. А вот у карандашей, которые у меня есть, светостойкость не везде высокая. Тут тоже необычная система - шкала идет до 8. У некоторых карандашей даже стоит всего 2 из 8. Я могу это понять: вообще красные пигменты сильнее выгорают, а технология изготовления акварельного карандаша отличается от изготовления простой акварели, и свойства светостойкости сильно страдают. Самое главное, что бренд не врет и честно указывает свойства материала:
тестовая полоска вверху
В целом все честно. Только зеленый 1550 посветлел, я бы ему поставила 6 из 8, как и голубому 0900.
Осталось посмотреть Малевичъ GrafArt PRO. Эти карандаши я покупала поштучно, выбирая специально светостойкие. Кстати, я ими постоянно пользуюсь, они мне очень нравятся в работе, хоть они и сильно тратятся.
тестовая полоска внизу
Да, красные опять посветлели. Номер 011 оправдывает свои 2 звезды. Но все остальные.. Малевичъ, наконец-то я вами довольна! Они реально светостойкие!! Вот я вообще не ожидала, думала опять все выгорит.. Ан нет! Молодцы))
Пока все. В 26 году подумаю, что еще можно проверить.