Естественные науки

Выбор языка программирования для создания ПО к прибору.

Добрый день. Какой язык программирования необходим для создания ПО, которое будет управлять аналитическим оборудованием в лаборатории? То есть ПО должно взаимодействовать с оборудованием и получать от него информацию (температура, давление, сила тока и напряжение и прочее) и в дальнейшем обсчитывать полученные данные, выдавать результат и т.д.
Я вижу в вашем вопросе не одну, а несколько задач, которые, возможно, эффективно будут решаться разными языками.

На уровне сбора информации вы можете быть ограничены языком оборудования или требованиями быстродействия, параллельности, надежности... Одно дело опрашивать какой-нибудь "умный" датчик раз в 10 секунд, скачивая с него порции данных, другое - написать специальный софт для отслеживания быстротекущих процессов с гигабайтами информации в секунду, сотнями датчиков и высокой скоростью и сложностью управляющих команд.. Тут можно встретить обычно С/C++, ассемблер. Но и другое встречается или приемлемо. Та же Java, а то и вовсе бейсик какой-нибудь.

Второй "слой" - это база данных, где будет накапливаться и проходить первичную обработку эта информация. Тут тоже варианты могут быть, если данные сложные, их обработка тоже, объемы большие - возможно есть смысл положиться на СУБД с их языками. Тоже простор - или "промышленные" языки, SQL например. Или городить что-то самодельное.

Третий - уровень обработки данных, моделирования, управления. Здесь роль может играть не только быстродействие но и такие вещи, как, наличие готовых библиотек для предметной области, специалистов, которые знакомы с предметной областью и т. д. Тут уже не обязательно С, это может быть Fortran или Python а то и Пролог или какая-то экзотика.

И, наконец, четвертый - рабочее место пользователя, оператора и т. д. Тут будут свои критерии, быстродействие не так важно, как эргономика, совместимость со средой или скорость разработки.

Отдельно идут стоимость разработки, наличие кадров необходимой квалификации, сложность всего комплекса, стандартизация и прочие орг. вопросы.

Если пальцем в небо, для нестрашной лабораторной установки я бы, наверное смотрел в сторону использования С/C++/ассемблера для программирования микроконтроллеров, SQL для хранения, извлечения и поддержания корректности данных. Для расчетов, управления - Python. + web- интерфейс.
Для совсем простой задачи - взял бы язык попроще и поуниверсальней отдельно или в связке с SQL.

Но это не точно. Поэтому вам лучше начать не с выбора языка, а с построения подробных требований к информационной системе, включающих описание датчиков, показателей, временных характеристик, имеющегося парка оборудования, требования к надежности, быстродействию, ожидаемые объемы данных, сложность математики и т. д.
Асема Муратбековна
Асема Муратбековна
83 196
Лучший ответ
Айдар Габайдуллин Спасибо за развернутый ответ.
Если совсем кратко, то должно быть ПО, которое будет удобно пользователю. Это может быть сложный анализ, по типу кулонометрического титрования хлоридов, либо что-то попроще, вроде обычного контроля за температурой в рабочей камере и регулировка подачи газа в зависимости от временного интервала.
То есть наблюдать на график увеличения сигнала, отслеживать параллельно некоторые параметры. Перед глазами должен быть список проб уже проанализированных и стоящих в очереди.
Датчики тоже разные, как температурные, так и электродная система в растворе, которая контролирует уровень потенциала.
сильно зависит от требований к аппратуре и ПО. Если ПО должно неспешно собирать данные на мощном ПК под Виндовс, то C# или Java вполне подойдут. Если ПО должно в жестком реальном времени работать на микропроцессоре - Си или С++, возможно, с применением ассемблера.
Irina Hindrimae
Irina Hindrimae
90 032
Айдар Габайдуллин Спасибо за ответ. Нужен сбор данных в реальном времени.
На нескольких языках надо писать, однако. "С" - для драйвера и работы с железом на низком уровне. Повыше (на уровне пользователя) - на чём угодно из современных языков. Желательно выбрать готовую базу данных и с ней интегрироваться.
DN
Dimaric Nuriev
97 206
си - меньше всего мороки и практически полный доступ к аппаратуре (порты, ячейки)
Виталий Гехт
Виталий Гехт
89 054
Паскаль
Скорее всего есть какие-нибудь нормы, правила, лицензирование, инструкции к приборам. Из этого и надо исходить.

Если бы не лаборатория, где всё регламентировано, а "для дома, для семьи" в виде хобби, то тут конечно широкий выбор вариантов.
А в лаборатории надо придерживаться регламента, чтобы результаты анализов были соответствующие требованиям.
Rust
Инна Метлицкая
Инна Метлицкая
18 446
Си, C++, ассемблер. Всякие питоны, явы и прочие тормоза даже не рассматривай
Иришка Л
Иришка Л
7 854
Наталья Зверева Для такой простой программы человеку изучать катострофически сложные языки типа асемблер си с++ не стоит.
Иришка Л * с генератора, присоединенного к турбине
если программа простоя должна быть то вполне хватит питона
си и тд нужны для более сложных решений
..
....... ..... )))
2 607
Я писал на delphi такие простые программы можно.

Похожие вопросы