Ответы к посту
Немного про АСУ ТП
15

Ответ на пост «Немного про АСУ ТП»

Как понять АСУ-шнику знать ничего не нужно?
Программировать те же регуляторы ты на базе чего будем? О точно - учим ТАУ, при чем до уровня полного понимания баланса систем.
Читать схемы, дабы понять что эти идиоты накосячили при проектировании - учиться не нужно? Учим ТОЭ - при этом не только "простые линейные схемы" (КИП), но и силовые. Учим так чтобы попа не горела когда что-то под ней шарахнет из-за коссяка проектантов.
И так далее.
А разобраться в SCADA или запрограммировать панельку с контроллером - что сложного? Только вот без понимания основы нихрена не сделаешь. Сколько я за свой стаж работы переделывал за "героическими" мальчиками с искрой во взгляде и огнем в заднице. Которые точно "знают" по первого аварийного останова оборудования или выхода из строя автоматики, как и что делать и спешат... спешат.
С учетом прожитых лет и полученного опыта, на мой взгляд хороший АСУ-шник готовится -
КИП - 2-3 года, Электрик - 1 год, и только потом с ним можно как-то про АСУ говорить. И то только про один объект. Если же мы хотим обслуживать несколько не типовых - умножаем сроки на 3.
Да, программировать в иностранных SCADA и для их же контроллеров по сути любой сможет - интуитивно понятный интерфейс, стандартные алгоблоки, уже готовые примеры. Простейший проект с обвязкой регулятора или пары датчиков разворачивается на коленке за 10 минут. А Вы возьмите какой-нибудь контроллер из РФ (КР-500 Вам в плечи), отечественную же SCADA (TraceMode например) и соберите это все до кучи в 3 уровня управления. Скажу так - и мягко замудохаетесь и жестко, а если еще отечественные вычислители применить (СПТ, СПГ) с их 9-битным протоколом связи - будет весело. Вы, возможно все сделаете правильно и с первого раза, но это же РФ. Поддержка SCADA  будет постоянно разводить руками и говорить : "ХЗ, у нас работает". Контроллер при каждой перезагрузке может решить и поменять адресацию плат и соответственно вся Ваша привязка сигналов пойдет поссать. Вычислители будут прекрасно работать, но без подключения к системе, при связи по протоколам будет лететь такой бред что вы все же напишите драйвер сами и будете креститься видя их программный комплекс или логотип компании. 
Вот поработав с такими недоразумениями с пяток лет на каком-нибудь опасном производстве - можете назваться инженером АСУ, правда глазка будет дергаться и валерьяночка питься литрами. Прочувствовал на себе за более чем 20 лет стажа в АСУ и работе на том что есть. 

Показать полностью
72

Немного про АСУ ТП

Я уже писал о том, что работаю Ведущим инженером по АСУ ТП. И мне сыпались вопросы, но практически все были про "как стать АСУшником?", "какие книги почитать, чтобы разбираться в АСУ?".


Решил ответить всем сразу.

АСУшником стать просто, а вот хорошим АСУшником, стать гораздо сложнее.


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


Во-вторых, "АСУшник" должен понимать электрику (КИПиА) и немного программирование.


Из КИПиА стоит только знать что такое ток, напряжение и сопротивление, а также что такое + и -


Хочу рассмотреть пример работы в инжиниринговой компании, где на плечи "АСУшника", кладётся только программная часть.


В системе АСУ ТП всегда выделяют три уровня:

Для начала пути хватит понимания только среднего уровня. Он представлен ПЛК (программируемый логический контроллер) и логикой которая в нём используется. Воспринимайте ПЛК, как очень слабый компьютер, где всего 2Мб памяти и нет картинок с мемами. Но зато у него есть возможность подавать и принимать различные сигналы.


Всего я бы выделил три типа сигнала:

1) Аналоговый - сигнал непрерывный и изменяющийся во времени (температура, скорость, высота водяного столба и т.п.). Датчики передающие аналоговый сигнал очень различны и их все очень долго описывать, просто скажу, что некоторые выдают сигнал в мА (миллиамперы), другие в вольтах (собака белая), а ещё есть те которые меняют своё сопротивление (чаще всего это различные термосопротивления, которыми измеряется температура);

2) Дискретный - сигнал который может принимать только два значения, есть сигнал "1" и нет сигнала "0" (открыта дверь, отсутствие жидкость, нажата кнопка). Тут стоит отметить, что дискретные датчики бывают нормально открытые и нормально закрытые. Если по простому первые если не сработали у них "0", при срабатывании выдают "1", а вторые наоборот, когда не сработали у них "1"

3) Интерфейсный - сигнал который передаётся каким-либо интерфейсом и по какому-либо протоколу, самый популярный пример: интерфейс ethernet протокол TCP\IP и вы на пикабу!


Сейчас, давайте рассмотрим немного программную часть. Логика для ПЛК пишется на языках программирования стандарта IEC 61131-3:

- структурированный текст (ST – Structured Text);

- последовательные функциональные схемы (SFC – Sequential Function Chart);

- диаграммы функциональных блоков (FBD – Function Block Diagram);

- релейно-контактные схемы, или релейные диаграммы (LD – Ladder Diagram);

- список инструкций (IL – Instruction List);


Два самых популярных LD и IL, хоть они и самые не удобные. Я приведу в пример LD.

Допустим у нас есть три дискретных входа "Х0", "Х1", "Х2" и один дискретный выход "Y0" (три выключателя и одна лампочка).

Чтобы проверить что вход активен (выключатель включен) используется элемент "Нормально открытый контакт" (Normally open contact), он будет активен, когда на вход X0 придёт сигнал.

Чтобы выдать сигнал на выход элемент "выход" или "назначение" (Assignment).

Соответственно, чтобы при активном входе выдавался сигнал на выход, их надо соединить.

Но что если мы хотим, чтобы сигнал на выход подавался и по второму входу Х1? Тут уже в дело должны вступать логические операции. Нам здесь потребуется операция "ИЛИ" ("OR", а ещё её называют логическое сложение). При её использовании мы получим на выходе сигнал, если хотя бы на одном входе был сигнал. В языке LD "ИЛИ" выглядит так:

Давайте усложним задачу и теперь если активен вход Х3, то сигнал на выход не должен подаваться. Здесь снова мы будем использовать логические операции, только уже "И" и "НЕ" ("AND", "NOT" логическое умножение и отрицание, соответственно). При использовании "И", мы получим на выходе сигнал, только если все входы активны. При использовании "НЕ", на выходе есть сигнал, когда на входе ничего нет и наоборот, когда на входе есть сигнал, то на выходе его нет.


Вот так будет выглядеть наша программа, если мы используем в ней "И"

А вот так если мы ещё ко вход Х2 добавим "НЕ"

Просто для интереса напишу эту "схему" на логическом языке:

( Х0 ИЛИ Х1) И НЕ Х2 = Y0

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


Такая схема и есть логика в ПЛК, и их подряд можно написать очень много и все они будут выполняться друг за другом в бесконечном количестве раз. А теперь попробуйте сами нарисовать схему проходного переключателя.


Последние наставления которые я бы хотел сказать, изучите логические операции и их таблицы истинности. Изучите компараторы (от лат. сравнивать). Также изучите язык программирования паскаль, так как языки ST и SCL на нём базируются.


Вот наверное и вся база которую стоит знать прежде чем начинать работать АСУшником. Я уверен, что многие возразят, но как я и сказал "АСУшником стать просто, а вот хорошим АСУшником, стать гораздо сложнее"

Показать полностью 9
Отличная работа, все прочитано!