Linux как платформа для АСУТП

Здравствуйте, уважаемые гуру. Передо мной стоит такая задача. Необходимо разработать программно-технический комплекс (ПТК) для реализации промышленных АСУТП, в частноти для контроля и управления конвейерными установками. (некий аналог Саргон). Программную часть решено организовать на linux. Ниже перечислены общие требования и мои вопросы:

  1. Непосредственно система управления и контроля, которая делится на 2 составляющие - контроллерную и PC. PC-составляющая должна иметь:
  • графический интерфейс для отображения мнемосхем,

  • возможность работы с базой данных (см. ниже),

  • возможность работы в сети с контроллерной составляющей;

Контроллерная составляющая:

  • графический интерфейс не нужен,

  • также необходима рабта с БД,

  • возможность работы в сети с PC-составляющей;

  • доступ к контроллеру по FTP, SSH, возможно WEB-интерсейс (скорее всего этот пункт будет реализоваться возможностями ОС).

К этой части ПТК предъявляется очень важное требование - данная система должна являться системой реального времени, то есть должна беспечивать требуемый уровень сервиса (применительно к АСУТП - обработку входных сигналов) в определённый промежуток времени. В связи с этим вопросы:

  • какой дистрибутив лучше выбрать для установки на контроллеры и какой для работы на автоматизированных рабочих местах (АРМ)?

  • Какой язык выбать для разработки?

  • Какое выбрать графическое окружение?

  1. База данных. Планируется использование единой БД как на этапе разработки, так и на этапе эксплуатации. Запись в базу будет осуществляться с часотой от 1 часа до 0,1 секунды.

Какаую базу, исходя из этих требований, лучше выбрать?

  1. Среда программирования алгоритмов управления и преобразования информации - программных моделей. В современных ПТК программные модели реализуются в виде откомпилированных бинарных файлов, я же хочу реализовать их в виде скриптов на каком-либо языке, возможно с преобразованием их из функциональных блочных диаграмм (FBD). Таким образом это будет программа с графическим интерфейсом, текстовым редактором, редактором диаграмм и возможно с отладчиком программных моделей. Вопрос тот же:

Какой язык выбать для разработки?

В общем, это пока все. Постараюсь обновлять пост при появлении новых вопросов. Также прошу строго не судить, к критике отнесусь спокойно и с пониманием

Сразу оговорюсь, что мне подобную задачу решать не приходилось, поэтому могу дать только некоторые общие рекомендации.

| remm писал(а) Sun, 30 August 2009 21:56 |
|

  1. Непосредственно система управления и контроля, которая делится на 2 составляющие - контроллерную и PC. PC-составляющая должна иметь:
  • графический интерфейс для отображения мнемосхем,

  • возможность работы с базой данных (см. ниже),

  • возможность работы в сети с контроллерной составляющей;

Контроллерная составляющая:

  • графический интерфейс не нужен,

  • также необходима рабта с БД,

  • возможность работы в сети с PC-составляющей;

  • доступ к контроллеру по FTP, SSH, возможно WEB-интерсейс (скорее всего этот пункт будет реализоваться возможностями ОС)…

В связи с этим вопросы:

  • какой дистрибутив лучше выбрать для установки на контроллеры и какой для работы на автоматизированных рабочих местах (АРМ)?

|

Если будет использоваться специализировання аппаратура, то этот вопрос нужно согласовать с её поставщиком. Иначе - любой распространенный дистрибутив. Для контроллера - достаточно стабильный и надежный. Из свободных это debian или centos. Из коммерческих - RHEL или SLES. На рабочих местах - если персонал привык к венде, то, наверное, ubuntu (при прочих равных будет меньше глупых вопросов).

| Цитата: |
|

  • Какой язык выбать для разработки?

|

Для ПО контроллера - думаю, C. Его плюсы - скорость, непрожорливость и распространенность. Для ПО рабочих мест - любой. А вообще - это зависит от разработчиков. Не заставите же вы их специально изучать к примеру python.

| Цитата: |
|

  • Какое выбрать графическое окружение?

|

Наверное, GTK как наиболее распространенное, если уже не подсели на что другое.

| Цитата: |
|

  1. База данных. Планируется использование единой БД как на этапе разработки, так и на этапе эксплуатации. Запись в базу будет осуществляться с часотой от 1 часа до 0,1 секунды.

Какаую базу, исходя из этих требований, лучше выбрать?

|

Этим требованиям удовлетворяет практически любая БД. Наиболее распространенные из свободных - mysql postpresgl.

| Цитата: |
|

  1. Среда программирования алгоритмов управления и преобразования информации - программных моделей. В современных ПТК программные модели реализуются в виде откомпилированных бинарных файлов, я же хочу реализовать их в виде скриптов на каком-либо языке, возможно с преобразованием их из функциональных блочных диаграмм (FBD). Таким образом это будет программа с графическим интерфейсом, текстовым редактором, редактором диаграмм и возможно с отладчиком программных моделей. Вопрос тот же:

Какой язык выбать для разработки?

|

Здесь я не советчик, так как не представляю, что должно быть в резутьтате.

| remm писал(а) Sun, 30 August 2009 21:56 |
|

  1. Непосредственно система управления и контроля, которая делится на 2 составляющие - контроллерную и PC. PC-составляющая должна иметь:
  • графический интерфейс для отображения мнемосхем,

  • возможность работы с базой данных (см. ниже),

  • возможность работы в сети с контроллерной составляющей;

Контроллерная составляющая:

  • графический интерфейс не нужен,

  • также необходима рабта с БД,

  • возможность работы в сети с PC-составляющей;

  • доступ к контроллеру по FTP, SSH, возможно WEB-интерсейс (скорее всего этот пункт будет реализоваться возможностями ОС).

К этой части ПТК предъявляется очень важное требование - данная система должна являться системой реального времени, то есть должна беспечивать требуемый уровень сервиса (применительно к АСУТП - обработку входных сигналов) в определённый промежуток времени. В связи с этим вопросы:

  • какой дистрибутив лучше выбрать для установки на контроллеры и какой для работы на автоматизированных рабочих местах (АРМ)?

|

Для ОСРВ вам нужен дистрибутив РВ, это или MontaVista, или QNX, или ещё что-нибудь — смотрите, сравнивайте, выбирайте. Здесь ВАМ надо становиться экспертом и выбирать исходя из условий задачи, а не полагаться на чужие мнения.

| Цитата: |
|

  • Какой язык выбать для разработки?

|

C, понятное дело. ASM в Linux непопулярен, C++ и др. более ориентированы на GUI. GUI же писать на C++, C, Java, Python — особой роли не играет. Даже web-решение, думаю, пойдёт.

| Цитата: |
|

  • Какое выбрать графическое окружение?

|

Никакого. Если вам не нужна универсальная машина, а вам не нужна универсальная машина, то вы предоставляете голый X сервер и голую программу для управления.

| Цитата: |
|

  1. База данных. Планируется использование единой БД как на этапе разработки, так и на этапе эксплуатации. Запись в базу будет осуществляться с часотой от 1 часа до 0,1 секунды.

Какаую базу, исходя из этих требований, лучше выбрать?

|

Одна запись в 0.1 сек — это вообще не скорость, с этим справится седая бабушка.

| Цитата: |
|

  1. Среда программирования алгоритмов управления и преобразования информации - программных моделей. В современных ПТК программные модели реализуются в виде откомпилированных бинарных файлов, я же хочу реализовать их в виде скриптов на каком-либо языке, возможно с преобразованием их из функциональных блочных диаграмм (FBD). Таким образом это будет программа с графическим интерфейсом, текстовым редактором, редактором диаграмм и возможно с отладчиком программных моделей. Вопрос тот же:

Какой язык выбать для разработки?

|

Посмотрите, как это сделано в Blender (соответственно, язык — python). Не понравится — напишите ещё.

| Цитата: |
|

В общем, это пока все. Постараюсь обновлять пост при появлении новых вопросов. Также прошу строго не судить, к критике отнесусь спокойно и с пониманием

|

Обновлять не надо, дописывайте.

Огромное спасибо вам за ответы.

| Цитата: |
|

Если вам не нужна универсальная машина, а вам не нужна универсальная машина, то вы предоставляете голый X сервер и голую программу для управления

|

А это очень интересно, попробую развить эту тему при разработке…

Насчет qnx я и сам подумывал, но тут действительно нужно сравнивать…