Jump to content

    

Quantum1

Участник
  • Content Count

    154
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Quantum1

  • Rank
    Частый гость

Recent Profile Visitors

1756 profile views
  1. Большое спасибо за развернутый ответ!! Постепенно изучаю тему, что да вероятно путь похожий на тот что вы описали мне нужно пройти. Т.е. 1) одна программа в Линухе получает данные из шлюза от реал-тайм части, и передает их во time series БД, пока приглянулась Prometheus. 2) БД их запоминает. 3) Выводит или на свои дашборды, или на сторонние - да как раз наверное Graphana. 4) Необходимо эти дашборды встроить в общий пользовательский интерфейс управления. Общий интерфейс управления должен внешне выглядеть, как десктопное приложение (а под капотом там web допустим Electron или NW.js и т.д.), что бы пользователь никуда залезть без разрешения не мог. Такая операция планируется пока изолированно на машине - т.е. и БД, и шлюз общения с Real-time частью и дашборды, и десктоп. Все это работает в одном Линухе и на одной машине. Мне тут пока не очень понятно несколько вещей. Как ручками подсовывать данные в БД, стандартные сборщики данных тут не подойдут. Как встроить Graphan у, просто как графики(без ее оболочки) в мой десктоп...
  2. Еще поизучал вопрос, вероятно самое правильное решение сделать фронтендовую графически-пользовательскую-интерфейсную часть на все том же html/js/css итд... а бекэнд, пока не знаю, мини-сервер что ли поднимать...
  3. Да, все верно все что управляет железом системы -датчики, клапаны, движки ну итд. Там жёсткий реалтайм, на чистом baremetal, со своими функциями критических защит, резервированием, контролем сбоев и лажи от пользователя и тд У некоторых ядер есть свои индивидуальные кешы, а на весь SoC есть контроллер общих кешев,периферии и памяти, в котором можно настроить уровни доступа, к примеру ядро с самым высоким может ходить где вздумается и влезать куда хочет, ядро с низким уровнем не сможет залезть в закрытую для нее периферию или область памяти. Таким образом ответственные процессы выполняются на высоко приоритетных ядрах в baremetal, а пользовательские приложухи и Линукс крутятся на сильно ограниченных, шоб ничего не сломали) общение между baremetal и Линукс - через специальный шлюз и область памяти.
  4. Добрый день! Опишу задачу. Сейчас разрабатываю некую промышленно/научную систему, которая управляется с многоядерного SoC, часть ядер работает только на саму реал-тайм систему, а на другой части должен крутиться Линух, на котором стоят апы для визуализации процесса (всякие графики и т.д.), HMI, и иной софт для пользователя. Также это система в перспективе должна общаться с неким удаленным сервером/операторской (которая может быть в принципе на другом континенте), на предмет архивирования данных и управления процессом. Также желательно подцепить мониторинг со смартфона/планшета, через этот самый удаленный сервер. Я специализируюсь на разработке железа, и основные мои скилы по софту лежат в хард)) Т.е. C/C++, ASM ну итд... Когда то лет 12 - 15 назад писал что то для веба - PHP, HTML, Java, JavaScript... Чуток касался Mysql, C#…. В чем собственно вопрос? Мне нужно определиться со тех. стеком, на котором необходимо реализовать так сказать софтовый софт), который описан в первом абзаце, т.е. приложения под Линух, общение с удаленным сервером, приложения под смартфон. Сначала был только Windows, и я начал творить в Visual Studio. Сейчас потребовался Линух и необходимость в будущем работать удаленно и т.д. В “софтовом” софте я не большой спец, и даже по Линух ничего раньше не писал. Подскажите пожалуйста что выбрать для реализации указанных задач, возможно ли все реализовать на какой-нибудь единой платформе (наборе фреймворков итд...), с минимальным количеством разных языков? П.С. готовую SCADA использовать не могу/не хочу, так как пром. система крайне специфична много мелких реалтаймовых точных процессов где и ни одна SCADA с ними не справиться должным уровнем. Тем более мне совершенно не нужен один из основных девизов SCADA - “даже девочка, без знания программирования может работа”, а также я не использую ни один сторонний пром. контроллер или модуль - они не справятся.
  5. Все! Слава богу! Вылечилось китайцы помогли))) Одна единственная галочка. https://blog.csdn.net/lyl455133/article/details/118017723
  6. Вернулся к проекту Вот на него ссылка. В качестве примера там недописанный алгоритм деления, но модуль по RTL и синтезу - рабочий https://dropmefiles.com/sc2Wgt Симулятор не видит модуль ERROR: [VRFC 10-2063] Module <Divider_16_8> not found while processing module instance <Div_test> ERROR: [XSIM 43-3322] Static elaboration of top level Verilog design unit(s) in library work failed. INFO: [USF-XSim-69] 'elaborate' step finished in '1' seconds INFO: [USF-XSim-99] Step results log file: ERROR: [USF-XSim-62] 'elaborate' step failed with error(s). Please check the Tcl console output for more information. ERROR: [Vivado 12-4473] Detected error while running simulation. Please correct the issue and retry this operation. ERROR: [Common 17-39] 'launch_simulation' failed due to earlier errors. Наверное детский косяк, но как я ни копался ни в интернете, ни сам нет даже версий, что делать! Спасибо, если поможете.
  7. Добрый день, товарищи! Подскажите пожалуйста, хочу поставить прецизионнный lvdt датчик, для измерения положения гидравлической заслонки в 10 см от силовой токоведущей шины по которой идет питания трехфазного двигателя током в 800А. Насколько адекватная затея, сильно ли поле от шины будет датчику мешать? У кого опыт такой есть, подскажите пожалуйста. Спасибо!
  8. Добрый день! Есть асинхронный движок на 30 кВт (380 В, 3Ф), который крутит насос. Этот двигатель нужно пускать плавно в идеале в пусковым током в 1 - 1,5 от номинального, стабилизации и управления никаких не требуется - просто плавный пуск. Ставить частотник нельзя ни в коем случае - рядом чувствительное к помехам оборудование, тиристорное/симисторное УПП - тоже плохо, помехи. Подумываю над тупым, но кондовым решением - питать двиг от трехфазного ЛАТРа. На мою мощность я нашел только с ручным управлением - тупо ручная крутилка - на выходе от 0 до 400В. На крутилку ставим серво, или шаговик. Должно работать вообще без помех - даже искровых/разрядных от реле. Процесс запуска - выкручиваем выход в "0", включаем сетевое реле на двигатель, плавно за 10-20 секунд поднимаем выход до номинала. Выключение в обратном порядке. Да решение монструозное - я представляю габариты и вес ЛАТРа, на эту мощность) Но иного пока в голову не приходит. Покритикуйте решение. Подскажите пожалуйста про нюансы запуска асинхронника от ЛАТРа, у кого есть опыт подобного. Возможно ли также от одного ЛАТРа запускать несколько движков (10 штук, движки на 1 и 2 кВт)? Спасибо!
  9. вы что то путаете, старт бит вообще то "0". состояние ожидания - это обычное высокоимпедансное(т.е. случайное и сильно подверженное наведению помех), из которого приемный софт (если не предприняты меры указанные Harbinger) силиться что то выделить, а по сути копается в мусоре, с вероятностью пропустить полезное.... Так он в любом случае в мусоре копается, IDLE с высокой частотой будет случаться при неблагоприятной помеховой обстановке...
  10. Нет. Передатчик в паузе переходит в Z-состояние
  11. Вы верно говорите, но это на линии... а на выходе микросхемы приемника при спящей линии может спокойно висеть 0, можно сказать неограниченное время(с какими то иными 1-ыми всплесками), что будет и должно постоянно приводить к FAIL-приему в софте обработчика приема...
  12. Вроде разобрался fail safe это, выдача, 1 на выходе приемника когда дифференциальное состояние не определено, но.... "A drawback of these failsafe designs is their worst-case noise margin of 10 mV only, thus requiring external failsafe circuitry to increase noise margin for applications in noisy environments " Т.е. при высоких помехах опять шляпа... нужно еще и это... Ну хоть что то... странно что такие очевидные вещи не прописаны как must have в самом стандарте... Теперь последний вопрос с этими добавками адекватно будут работать всякие ПЛК, датчики, АЦП и иные участники пром. автоматизации, на которых указано RS-485 interface compatible... ? или могут быть проблемы?
  13. что такое растяжки? принудительное приведение дополнительным слабым источником линию в 1 или 0 пока все передатчики спят? пока ее не передавит какой-то передатчик, конечно. Просто для меня, как в прошлом разработчика высоконадежных и устойчивых систем спец. назначения, честно говоря некоторое откровение, что в специальном интерфейсе для условий с высокими помехами, есть некоторое состояние, которое считается нормальным, в котором на линии болтается непонятный ничем не контролируемый мусор, который дай бог правильно обработает приемник... реально крайне странно... Тогда вопрос есть ли какой-то "законный" для данного стандарта способ перевода(подтяжки и т.д.) передающей линии в "1" во время сна всех передающих участников, с которым смогут адекватно работать сторонние приборы, на борту которых Modbus и RS485. Тот же вопрос и для полудуплексной передачи, там это точно также актуально... Ну меня прям физически ломает работать с интерфейсом, который большую часть своего времени просто болтает на линии мусор, и не потому что прилетела какая-то дикая помеха и надо от нее отстроиться или ее поймать, а просто потому что ну такой вот он)))))
  14. Всем привет! Совершенно детский вопрос. Понадобилось сделать в своем устройстве прием MODBUS по RS485. До этого пром. автоматикой не занимался. Все понятно и во всем разобрался, кроме одного момента. Берем стандартный приемник, к примеру, AM26LV32. Когда идет передача кадра все отлично - дифференциальные входные линии прыгают, соответственно работает выход приемника с него все и снимаем. Но вот источник закончил передачу и перевел линию в Z-состояние. Т.е. дифф. сигнала больше нет, как говорит даташит на AM26LV32 при этом состояние выхода приемника неопределенно (indeterminate), т.е. случайное. Если оно случайное, то выход микросхемы приемника, к примеру, может постоянно в нуле висеть, что соответствует постоянной задержки при начале кадра, или при помехах "ложный" кадр может наложиться на реальный - т.е. увеличится вероятность потери кадра и т.д. Подскажите пожалуйста как правильно обработать третье состояние линии, программно приемник полностью мой (сигнал с Modbus ползет на мою ПЛИС). Также вопрос при full duplex передачи при одном мастере, обязательно ли Tx переводить в Z-состояние по окончании кадра, по идеи лучшая помехоустойчивость будет если Tx будет висеть в "1" между кадрами. Спасибо!
  15. Да, сейчас пришлось с Vivado на другую область проекта переключиться, на днях выложу.