Особенности работы инженера-программиста АСУ ТП
💻 Я начинал работать именно как инженер-программист, поэтому хорошо знаком с особенностями этой работы, о которых и будет этот пост.
Это особенно актуально в связи с высоким спросом на подобных специалистов. В большинстве случаев это все та же разработка встраиваемого программного обеспечения, но с некоторыми оговорками.
🔹 Начать стоит с того, что сама разработка проектная, а не продуктовая, как в большинстве IT-компаний. Никакого рефакторинга существующих систем и новых фич. Разрабатывается только то, что прописано в ТЗ и на уровне, обеспечивающем минимально стабильную работу. Из Legacy тут только внутренние библиотеки компании и необходимость подбирать оборудование под устаревшие датчики и исполнительные устройства.
🔹 Программируемые логические контроллеры - оборудование специфическое и рассчитано на то, чтобы один раз разработать программу, загрузить ее, протестировать и не трогать ближайшие 30-40 лет. Определить остаток ресурса в большинстве случаев невозможно. С выгрузкой программ из существующих контроллеров тоже сложности - без пароля производителя в лучшем случае получится выгрузить ассемблерный код, слабо поддающийся анализу. Поэтому тех. переоснащение объекта, как правило, сопровождается полной заменой системы управления.
🔹 Языки программирования тоже необычные. Большинство из них графические, из высокоуровневых тут только текстовый язык, похожий на Паскаль (ST). Иногда в проекте возможно совмещение текстовой и графической нотации, особенно часто это бывает в больших командах разработки. Языки хоть и стандартизованы (МЭК 61131-3), но у каждого производителя контроллеров есть свои особенности. Например, бюджетное оборудование поддерживает только графические языки.
♦️ Значительно усложняет работу отсутствие информации. Тут нет StackOverflow и даже с хорошим английским вы можете не найти в интернете решение проблемы, потому что его нет. В большинстве задач придется разбираться самому, а задач будет много. К слову, документация, скорее всего, не поможет. Полный мануал по последней версии среды разработки (IDE) для контроллеров Simatic (Tia Portal v19) — это ~22 000 страниц. Некоторые заявленные функции не работают как описано, т.к. у большинства поставщиков оборудования есть собственные обучающие программы, где они за деньги расскажут вам как на самом деле пользоваться их продуктами.
♦️ В большинстве проектов АСУ ТП закупается или разрабатывается в последнюю очередь, когда бюджета уже не остается и сроки горят. Поэтому на уровне проекта эта часть прорабатывается очень слабо. Контроллеры, датчики и исполнительные устройства в итоге будут разнородные, потому что найти подходящие с адекватным сроком поставки не всегда возможно. Может не быть аппаратных стендов и тестировать программу придется на реальном оборудовании.
♦️ Как следствие плотной работы с железом — редко встречаются вакансии с возможностью удаленной работы. Отсюда же ненормированный рабочий день и труд в опасных условиях заводов на протяжении недель. Командировки на пуско-наладку обычное явление, от 25% и до 100% рабочего времени инженера-программиста.
♦️ Также остро стоит вопрос личной ответственности. Значительные переработки в авральных условиях могут привести к ошибкам, результатом которых станет повреждение дорогостоящего оборудования или причинение вреда здоровью людей.
♦️ С уровнем оплаты труда тоже не все однозначно. В большинстве случаев зарплата на старте выше, чем у конструкторов или технологов, но ниже чем в “чистом IT”. Причем с перспективами карьерного роста явные проблемы. В эксплуатации потолок — это должность начальника службы или управления АСУ ТП, в проектировании и инжиниринге — должность главного инженера (ГИП) в проекте по АСУ ТП. Само собой такие должности предусмотрены не на всех предприятиях.
❗ Работа в АСУ ТП — это полезный и интересный опыт. Но сейчас я искренне советую идти в эту сферу, только, если у вас лежит к этому душа. Пришедшие за большими деньгами и карьерой рискуют быстро разочароваться и потратить впустую бесценное время.