Заказать звонок

Реверс-инжиниринг

Описание

Реверс-инжиниринг ПО – это процесс восстановления структуры, внутреннего устройства программы, так называемый процесс обратного инжиниринга (обратной разработки).

Реинжиниринг ПО – в свою очередь это процесс создания нового программного обеспечения на основе применения существующего ПО, использующегося для той же или похожей задачи. Т.е. это повторная реализация наследуемой системы в целях повышения удобства ее эксплуатации и сопровождения. Часто реинжиниринг проводится с использованием реверс-инжиниринга.

Основной целью проведения данной работы является получение исходного кода в не компилированном формате, при котором возможно внесение изменений. Как правило потенциальными заказчиками здесь выступают компании приобретающие блочно-модульное оборудование в комплекте с локальными системами управления. Данные установки поставляются в основном зарубежными компаниями комплектно со своей ЛСУ, исходные коды от которой отсутствуют, либо закрыты паролем. Обслуживание или модернизация данных систем “своими силами” невозможно, не может быть выполнено в короткие сроки по причине вызова специалистов из-за границы, является дорогостоящим, а в случае наличия цеховой АСУТП, выполненной на базе программно-технических иного поставщика, еще и лишена возможности интеграции.

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

Процесс  реверс-инжиниринга и реинжениринга очень сложен и трудоемок, данная работа непосильна инженеру-программисту низкой квалификации, так как для выполнения данной работы требуются глубокие познания языков программирования для ПЛК международного стандарта IEC 61131-3, таких как LAD (Ladder Diagram), FBD (Function Block Diagram), CFC (Continuous Function Chart), SFC (Sequential Function Chart), ST (Structured Text) и в особенности IL (Instruction List),  а также обладание большим опытом проведения подобных работ и, что немаловажно, знание конкретного технологического процесса. IL – представляет собой ассемблероподобный язык низкого уровня, применяющийся на производстве для программирования автоматизированных систем управления технологическим процессом и систем промышленной автоматизации.

Разработка АСУТП в масштабах цеха на языках низкого уровня крайне сложна и трудозатратна при отладке программы и поиске “багов”, подвержена большому риску совершения ошибок, вызванных человеческим фактором. Но именно в данном виде мы получаем компилированный код программы, выгруженный из ПЛК. Поэтому для нормальной работы с программой в дальнейшем, возможности оперативного реагирования на нештатные ситуации и процессы и последующей эксплуатации и модернизация АСУ ее необходимо привести в понятный удобочитаемый вид. В этих целях при разработке прикладного ПО применяют высокоуровневые языки программирования стандарта IEC 61131-3. Наиболее распространенными из них при разработке ПО “больших” систем являются - Continuous Function Chart и Sequential Function Chart.

Проведение реинжениринга можно разделить на следующие стадии:

  • Перевод исходного, компилированного кода. 

Декомпилирование программы, восстановление исходного, не компилированного кода программы, ее структуры. Конвертирование при необходимости программы со старого языка программирования на современную версию того же либо  другого языка.

  • Анализ программ. 

Документирование структуры и функциональных возможностей программы на основе ее анализа.

  • Модификация структуры программ.

Анализируется и модифицируется управляющая структура программ с целью сделать их более простыми и понятными.

  • Разбиение на модули. 

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

  • Изменение системных данных.

Данные, с которыми работает программа, изменяются с тем, чтобы соответствовать нововведениям.

Отдельным этапом на заключительной фазе, после проведения реверс-инжиниринга и реинжениринга является проведение комплексного опробования алгоритмов автоматического управления, технологических защит и блокировок, а также проведение виртуальной пусконаладки разработанного программного обеспечения АСУТП. Проведение комплексного опробования и виртуальной пусконаладки проводиться с применением специализированных программно-технических средств. Данные ПТС различаются у различных вендоров, у Siemens представителями данных ПТС являются: SIMIT, COMOS.

С помощью данных ПТС  мы имеем возможность:

  • провести контроль качества сборки шкафов управления, схем подключения цифровых шин передачи данных;

  • провести отладку ПО ПЛК разрабатываемой АСУ, его алгоритмов автоматического управления, действие технологических защит и отработку блокировок систем РСУ и ПАЗ без выезда на объект;

  • провести настройку контуров регулирования на этапе проведения заводских FAT-испытаний;

  • тестирование различных сценариев работы алгоритмов ПО, технологического оборудования. Внести корректировки в технологический процесс проектируемой установки до момента реализации в “железе” на объекте.

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

Нашей организацией выполняется данный комплекс работ по реверс-инжинирингу и реинженирингу  систем различных вендоров, таких как Schneider Electric, Siemens, ABB, Honeywell и многих других. Преимущественно реинжиниринг мы выполняем на системы Siemens, в программных комплексах PCS7, Step 7 и TIA Portal, однако по требованию заказчика возможно проведение реинжиниринга и на ПО других вендоров: Schneider Electric, ABB, Honeywell.

Силами ООО «СКТЦ» были успешно реализованы проекты по реверс-инжинирингу и реинженирингу таких систем, как:

  • локальная АСУ компрессора STC-SO (SFO 18,0) Siemens, ООО “ПГ Фосфорит” – реинжениринг выполнен на базе ПТК Siemens.

  • АСУТП цеха по производству серной кислоты (ПСК) ООО “ПГ Фосфорит” – реинжениринг выполнен на базе ПТК Siemens.

  • локальная система рекуперации тепла (SHR), фирмы SNS Lavalin цеха серной кислоты (СКЦ) ООО “ЕвроХим-БМУ” – реинжениринг выполнен на базе ПТК Siemens, произведена интеграция в цеховую АСУТП СКЦ.

  • Мозырский НПЗ – реинжениринг выполнен на базе ПТК Honeywell и ABB.

  • линия розлива на пивоваренном заводе ООО “Кроп-пиво” – реверс-инжениринг выполнен на базе ПТК Siemens.

Нужна консультация?
Подробно расскажем о наших услугах, видах работ и типовых проектах, рассчитаем стоимость и подготовим индивидуальное предложение!