+7 (812)  603-23-10     
г. Санкт-Петербург
Профессионализм и надежность
Текущий Язык:



Разработка программного обеспечения.

Программное обеспечение (ПО) является главным элементом систем автоматического управления. Когда мы начинали свою деятельность в 1996 году, это еще не было очевидным для всех. Тогда еще нужно было доказывать, что релейные схемы не обеспечат необходимой гибкости в управлении, не позволят быстро изменить алгоритм, создать архив событий, обеспечить удаленный доступ к объекту управления. В общем-то, многие сервисы, доступные сегодня, многим казались ненужным излишеством. Другой подход, который, к сожалению, часто и сегодня используется – это создание блока с микроконтроллером под каждую задачу. И вот создается платка под 2 дискретных входа, один аналоговый вход и один дискретный выход. Пишется программа, отлаживается. Хорошо, если сразу все заработает. Понадобится еще дополнительный вход, опять разработка, разводка, изготовление… Не надо объяснять, что это не технологично, затратно.

Программное обеспечение позволяет гибко перестроить алгоритм, наращивать функций. Главное, чтобы в основе лежали базовые средства с широким набором функций, отлаженные, проверенные, отвечающие современным стандартам разработки ПО для промышленных систем. Зачем их разрабатывать самим? Если кому-то это не было понятно и после того как разрушились центрифуги в Иране, то последние события показали, что все это имеет смысл.

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

Какие принципы лежать в основе нашей разработки базового ПО:

-базовое ПО должно основываться на общепризнанных стандартах. Таким стандартом стал IEC61131-3. При этом мы выбрали один из подстандартов из 5 FCB, (function control block ), как наиболее универсальный. Мы добавили в него явное задание типов данных. При этом прикладному программисту нет необходимости описывать какие-то переменные, система сама создает их, обеспечивая уникальность, сама следит за корректным преобразованием данных, которые связаны. Мы назвали свою систему Полигон, поскольку видим ее как многогранную, полифункциональную систему. В ней мы разрабатываем свои блоки: логическик, арифметические, интерфейсные, драйверы, регуляторы и т.д. Таких блоков уже более 1000. Для конкретной задачи прикладной программист выбирает их из библиотеки, связывает между собой, включает входы – выходы в процесс обмена с верхним уровнем, сохраняет уставки в хранилище на контроллере, исторические данные с точностью таймерного цикла хранятся в базах данных верхнего уровня. При необходимости прикладной программист может создать свой функциональный блок, может объединить функциональные блоки в процедуры, вызывать ее множество раз, или превратить процедуру в функциональный блок. Есть блоки с переменным числом входов –выходов, их можно добавлять и убавлять в любое время.

-базовое ПО должно поддерживать различные технические средства. Мы адаптировали нашу систему Полигон к различным контроллерам, для нас было важно только, чтобы контроллер был хоть как-то описан, то есть были бы известны тип процессора, тип и адреса портов контроллера прерываний, WatchDog и т.д. Уверены, что как только появится контроллер на отечественной элементной базе, мы тут же сможем перенести нашу систему на него. Сейчас наше ПО уверенно работает на PC-совместимых контроллерах фирм Octagon System, Fastwel, Beckhoff, Advantech. Эти контроллеры надежны, с хороши быстродействием, имеют процессоры без вентилятора, флэш-память для хранения программ, что позволяет и работать по 12-15 лет. Для всех процессоров мы создаем обработчик для WatchDog, как важнейший элемент надежности.

Последняя разработка фирмы Beckhoff, шина Ethercat, сделала возможным получение информации за 3-6 микросекунд. Это позволяет в 1000 раз увеличить скорость реакции системы. В настоящее время нами разработаны драйверы для большинства модулей. Последние 3 года мы полностью перешли на поставки систем с шиной Ethercat. Новая наша разработка – системы виброконтроля – основана на быстродействующей шине.

-базовое ПО должно обеспечить работу прикладной программы в реальном времени. Задачи, которые мы решаем, регуляторы, имеют жесткие требования к времени выполнения. Это обеспечивается за счет экономного отношения к ресурсам. Изначально наши программы выполнялись практически под управление нашего диспетчера, затем перешли под управление QNX, в котором также сохранен диспетчер. QNX имеет очень гибкую архитектуру, множество полезных функций, из которых можно выбрать только необходимые. Точное понимание, что происходит, можно обеспечить за счет того, что мы сами разрабатываем программные средства. Для повышения производительности контроллера необходимы процессоры высокой частоты, при это мы всегда знаем, что работаем в промышленности, где надежность обеспечивается только при отсутствии движущихся частей. То есть процессоры не должны иметь вентиляторов, нельзя использовать HardDisk’и.

-наше базовое ПО должно быть совместимо снизу вверх. То есть прикладная программа, созданная 10-20 лет назад, может быть оттранслирована в последней версии и работать без проблем. Да, мы храним все проекты и можем в любое время загрузить программу в контроллер, можем подкорректировать алгоритм. Со временем, когда технические средства контроллеров меняются, мы можем перенести программу на другой тип контроллера, заменив лишь драйверы.

-базовое ПО должно давать возможность обеспечивать связь с другими системами. Часто нам приходится налаживать обмен информацией с системами других производителей. Это может быть как целые системы, так и датчики. Наши контроллеры имеют большой выбор сетей (Ethernet, Profibus, DeviceNet, RS-232/485). Для них нами разработаны драйверы и протоколы (Modbus,ModbusTCP, МЭК-).

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


Работает на: Amiro CMS