Естественные науки
Выбор языка программирования для создания ПО к прибору.
Добрый день. Какой язык программирования необходим для создания ПО, которое будет управлять аналитическим оборудованием в лаборатории? То есть ПО должно взаимодействовать с оборудованием и получать от него информацию (температура, давление, сила тока и напряжение и прочее) и в дальнейшем обсчитывать полученные данные, выдавать результат и т.д.
Я вижу в вашем вопросе не одну, а несколько задач, которые, возможно, эффективно будут решаться разными языками.
На уровне сбора информации вы можете быть ограничены языком оборудования или требованиями быстродействия, параллельности, надежности... Одно дело опрашивать какой-нибудь "умный" датчик раз в 10 секунд, скачивая с него порции данных, другое - написать специальный софт для отслеживания быстротекущих процессов с гигабайтами информации в секунду, сотнями датчиков и высокой скоростью и сложностью управляющих команд.. Тут можно встретить обычно С/C++, ассемблер. Но и другое встречается или приемлемо. Та же Java, а то и вовсе бейсик какой-нибудь.
Второй "слой" - это база данных, где будет накапливаться и проходить первичную обработку эта информация. Тут тоже варианты могут быть, если данные сложные, их обработка тоже, объемы большие - возможно есть смысл положиться на СУБД с их языками. Тоже простор - или "промышленные" языки, SQL например. Или городить что-то самодельное.
Третий - уровень обработки данных, моделирования, управления. Здесь роль может играть не только быстродействие но и такие вещи, как, наличие готовых библиотек для предметной области, специалистов, которые знакомы с предметной областью и т. д. Тут уже не обязательно С, это может быть Fortran или Python а то и Пролог или какая-то экзотика.
И, наконец, четвертый - рабочее место пользователя, оператора и т. д. Тут будут свои критерии, быстродействие не так важно, как эргономика, совместимость со средой или скорость разработки.
Отдельно идут стоимость разработки, наличие кадров необходимой квалификации, сложность всего комплекса, стандартизация и прочие орг. вопросы.
Если пальцем в небо, для нестрашной лабораторной установки я бы, наверное смотрел в сторону использования С/C++/ассемблера для программирования микроконтроллеров, SQL для хранения, извлечения и поддержания корректности данных. Для расчетов, управления - Python. + web- интерфейс.
Для совсем простой задачи - взял бы язык попроще и поуниверсальней отдельно или в связке с SQL.
Но это не точно. Поэтому вам лучше начать не с выбора языка, а с построения подробных требований к информационной системе, включающих описание датчиков, показателей, временных характеристик, имеющегося парка оборудования, требования к надежности, быстродействию, ожидаемые объемы данных, сложность математики и т. д.
На уровне сбора информации вы можете быть ограничены языком оборудования или требованиями быстродействия, параллельности, надежности... Одно дело опрашивать какой-нибудь "умный" датчик раз в 10 секунд, скачивая с него порции данных, другое - написать специальный софт для отслеживания быстротекущих процессов с гигабайтами информации в секунду, сотнями датчиков и высокой скоростью и сложностью управляющих команд.. Тут можно встретить обычно С/C++, ассемблер. Но и другое встречается или приемлемо. Та же Java, а то и вовсе бейсик какой-нибудь.
Второй "слой" - это база данных, где будет накапливаться и проходить первичную обработку эта информация. Тут тоже варианты могут быть, если данные сложные, их обработка тоже, объемы большие - возможно есть смысл положиться на СУБД с их языками. Тоже простор - или "промышленные" языки, SQL например. Или городить что-то самодельное.
Третий - уровень обработки данных, моделирования, управления. Здесь роль может играть не только быстродействие но и такие вещи, как, наличие готовых библиотек для предметной области, специалистов, которые знакомы с предметной областью и т. д. Тут уже не обязательно С, это может быть Fortran или Python а то и Пролог или какая-то экзотика.
И, наконец, четвертый - рабочее место пользователя, оператора и т. д. Тут будут свои критерии, быстродействие не так важно, как эргономика, совместимость со средой или скорость разработки.
Отдельно идут стоимость разработки, наличие кадров необходимой квалификации, сложность всего комплекса, стандартизация и прочие орг. вопросы.
Если пальцем в небо, для нестрашной лабораторной установки я бы, наверное смотрел в сторону использования С/C++/ассемблера для программирования микроконтроллеров, SQL для хранения, извлечения и поддержания корректности данных. Для расчетов, управления - Python. + web- интерфейс.
Для совсем простой задачи - взял бы язык попроще и поуниверсальней отдельно или в связке с SQL.
Но это не точно. Поэтому вам лучше начать не с выбора языка, а с построения подробных требований к информационной системе, включающих описание датчиков, показателей, временных характеристик, имеющегося парка оборудования, требования к надежности, быстродействию, ожидаемые объемы данных, сложность математики и т. д.
сильно зависит от требований к аппратуре и ПО. Если ПО должно неспешно собирать данные на мощном ПК под Виндовс, то C# или Java вполне подойдут. Если ПО должно в жестком реальном времени работать на микропроцессоре - Си или С++, возможно, с применением ассемблера.
Айдар Габайдуллин
Спасибо за ответ. Нужен сбор данных в реальном времени.
На нескольких языках надо писать, однако. "С" - для драйвера и работы с железом на низком уровне. Повыше (на уровне пользователя) - на чём угодно из современных языков. Желательно выбрать готовую базу данных и с ней интегрироваться.
си - меньше всего мороки и практически полный доступ к аппаратуре (порты, ячейки)
Айдар Габайдуллин
Благодарю)
Паскаль
Скорее всего есть какие-нибудь нормы, правила, лицензирование, инструкции к приборам. Из этого и надо исходить.
Если бы не лаборатория, где всё регламентировано, а "для дома, для семьи" в виде хобби, то тут конечно широкий выбор вариантов.
А в лаборатории надо придерживаться регламента, чтобы результаты анализов были соответствующие требованиям.
Если бы не лаборатория, где всё регламентировано, а "для дома, для семьи" в виде хобби, то тут конечно широкий выбор вариантов.
А в лаборатории надо придерживаться регламента, чтобы результаты анализов были соответствующие требованиям.
Rust
Си, C++, ассемблер. Всякие питоны, явы и прочие тормоза даже не рассматривай
Наталья Зверева
Для такой простой программы человеку изучать катострофически сложные языки типа асемблер си с++ не стоит.
Иришка Л
* с генератора, присоединенного к турбине
если программа простоя должна быть то вполне хватит питона
си и тд нужны для более сложных решений
си и тд нужны для более сложных решений
Я писал на delphi такие простые программы можно.
Похожие вопросы
- помогите понять как компьютер научили распознавать языки программирования
- Хочу выучиться какому-нибудь языку программирования?
- На каком языке программирования написан ассемблер?
- языки программирования как они работают?? ка компьютер их распознает Спасибо
- как работает функция случайных чисел во всех языках программирования? (как ее вызывать писать не надо)
- Информатика. Написать программы на любом языке программирования для решения задач, предоставленных ниже
- Как можно обнаружить живого человека по биению сердца на расстоянии несколько метров? Каким прибором ?
- Как не стыдиться визуального программирования
- В древности был один язык у всех людей. Известны ли кому Законы создания того единого языка. Где их можно найти.
- Можно ли беременной женщине пользоваться прибором для измерения уровня электромагнитного излучения?
Если совсем кратко, то должно быть ПО, которое будет удобно пользователю. Это может быть сложный анализ, по типу кулонометрического титрования хлоридов, либо что-то попроще, вроде обычного контроля за температурой в рабочей камере и регулировка подачи газа в зависимости от временного интервала.
То есть наблюдать на график увеличения сигнала, отслеживать параллельно некоторые параметры. Перед глазами должен быть список проб уже проанализированных и стоящих в очереди.
Датчики тоже разные, как температурные, так и электродная система в растворе, которая контролирует уровень потенциала.