matod
Искусственный Интеллект
(181274)
2 года назад
Я вижу в вашем вопросе не одну, а несколько задач, которые, возможно, эффективно будут решаться разными языками.
На уровне сбора информации вы можете быть ограничены языком оборудования или требованиями быстродействия, параллельности, надежности... Одно дело опрашивать какой-нибудь "умный" датчик раз в 10 секунд, скачивая с него порции данных, другое - написать специальный софт для отслеживания быстротекущих процессов с гигабайтами информации в секунду, сотнями датчиков и высокой скоростью и сложностью управляющих команд.. Тут можно встретить обычно С/C++, ассемблер. Но и другое встречается или приемлемо. Та же Java, а то и вовсе бейсик какой-нибудь.
Второй "слой" - это база данных, где будет накапливаться и проходить первичную обработку эта информация. Тут тоже варианты могут быть, если данные сложные, их обработка тоже, объемы большие - возможно есть смысл положиться на СУБД с их языками. Тоже простор - или "промышленные" языки, SQL например. Или городить что-то самодельное.
Третий - уровень обработки данных, моделирования, управления. Здесь роль может играть не только быстродействие но и такие вещи, как, наличие готовых библиотек для предметной области, специалистов, которые знакомы с предметной областью и т. д. Тут уже не обязательно С, это может быть Fortran или Python а то и Пролог или какая-то экзотика.
И, наконец, четвертый - рабочее место пользователя, оператора и т. д. Тут будут свои критерии, быстродействие не так важно, как эргономика, совместимость со средой или скорость разработки.
Отдельно идут стоимость разработки, наличие кадров необходимой квалификации, сложность всего комплекса, стандартизация и прочие орг. вопросы.
Если пальцем в небо, для нестрашной лабораторной установки я бы, наверное смотрел в сторону использования С/C++/ассемблера для программирования микроконтроллеров, SQL для хранения, извлечения и поддержания корректности данных. Для расчетов, управления - Python. + web- интерфейс.
Для совсем простой задачи - взял бы язык попроще и поуниверсальней отдельно или в связке с SQL.
Но это не точно. Поэтому вам лучше начать не с выбора языка, а с построения подробных требований к информационной системе, включающих описание датчиков, показателей, временных характеристик, имеющегося парка оборудования, требования к надежности, быстродействию, ожидаемые объемы данных, сложность математики и т. д.
James RaynorУченик (122)
2 года назад
Спасибо за развернутый ответ.
Если совсем кратко, то должно быть ПО, которое будет удобно пользователю. Это может быть сложный анализ, по типу кулонометрического титрования хлоридов, либо что-то попроще, вроде обычного контроля за температурой в рабочей камере и регулировка подачи газа в зависимости от временного интервала.
То есть наблюдать на график увеличения сигнала, отслеживать параллельно некоторые параметры. Перед глазами должен быть список проб уже проанализированных и стоящих в очереди.
Датчики тоже разные, как температурные, так и электродная система в растворе, которая контролирует уровень потенциала.
Aleks Nots
Просветленный
(25200)
2 года назад
Скорее всего есть какие-нибудь нормы, правила, лицензирование, инструкции к приборам. Из этого и надо исходить.
Если бы не лаборатория, где всё регламентировано, а "для дома, для семьи" в виде хобби, то тут конечно широкий выбор вариантов.
А в лаборатории надо придерживаться регламента, чтобы результаты анализов были соответствующие требованиям.