Применение SCADA-технологий к системе автоматизации химико-технологических процессов алюминия хлоргидрата::Журнал СА 11.2018
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

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

 Читать далее...

Принципы проектирования  

Dependency Inversion Principle. Принцип инверсии зависимостей в разработке

Мы подошли к последнему принципу проектирования приложений из серии SOLID – Dependency

 Читать далее...

Рынок труда  

Вакансия: Администратор 1С

Администратор 1С – это специалист, который необходим любой организации, где установлены программы

 Читать далее...

Книжная полка  

Книги для профессионалов, студентов и пользователей

Книги издательства «БХВ» вышли книги для тех, кто хочет овладеть самыми востребованными

 Читать далее...

Принципы проектирования  

Interface Segregation Principle. Принцип разделения интерфейсов в проектировании приложений

Эта статья из серии «SOLID» посвящена четвертому принципу проектирования приложений – Interface

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 10796
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 9042
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 9091
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5736
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6430
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 3736
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2732
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3531
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3521
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6017
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

Друзья сайта  

 Применение SCADA-технологий к системе автоматизации химико-технологических процессов алюминия хлоргидрата

Архив номеров / 2018 / Выпуск №11 (192) / Применение SCADA-технологий к системе автоматизации химико-технологических процессов алюминия хлоргидрата

Рубрика: Наука и технологии

Без фото РОМАНЕНКОВ А.М., Московский авиационный институт (национальный исследовательский университет), доцент

Применение SCADA-технологий
к системе автоматизации химико-технологических процессов алюминия хлоргидрата

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

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

Данная работа посвящена научно-техническим задачам автоматизации химико-технологических процессов (ХТП) промышленного производства алюминия хлоргидрата.

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

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

Автоматизация производства осуществляется путем внедрения SCADA-систем, что позволяет решить проблемы программной стыковки различных устройств системы управления. Для связи SCADA-системы с контроллерами используют OPC-серверы.

Целью работы является решение комплекса задач по автоматизации мониторинга состояния ХТП производства алюминий хлоргидрата на базе SCADA-технологий, основными из которых являются:

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

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

Отметим ряд структурных особенностей поточных производств, влияющих на выбор методов и средств управления ими.

Первая особенность – «блочность» компоновки, суть которой состоит в том, что поток формируется из типовых блоков-установок.

Вторая особенность системы поточного производства – значительные единичные мощности всей системы и основных агрегатов технологической схемы.

Под термином «SCADA» понимают инструментальную программу для разработки программного обеспечения систем управления технологическими процессами в реальном времени и сбора данных. Рассмотрим общий стек SCADA-технологий.

На нижнем уровне находятся семейства контроллеров, объединенных в локальные сети с автоматизированными рабочими местами (АРМ) операторов. Они управляют устройствами ввода/вывода информации с датчиков (I/O) и реализуют функции индивидуального управления (аварийных и технологических защит, сигнализации, управления и команд на привод и т.п.).

На среднем уровне находятся рабочие места профильных специалистов под управлением интеллектуальных инструментов SCADA-систем.

Наконец, на верхнем уровне расположены серверы баз данных и рабочие места руководящего персонала.

Все АСУ, построенные на основе известных SCADA-систем, вписываются в данную схему для систем промышленной автоматизации. Представление АСУ данной диаграммой показывает широкие потенциальные возможности интегрированной системы, начиная от локальных средств I/O (нижний уровень) и заканчивая АРМами и серверами в качестве средств реализации SCADA-системы и связи с другими системами. На рис. 1 примерная схема устройства SCADA-проектов.

Рисунок 1. Общая схема устройства SCADA-проектов

Рисунок 1. Общая схема устройства SCADA-проектов

При построении АСУ ТП, естественно, выделяются два самостоятельных уровня:

  • уровень автоматизированных рабочих мест (уровень АРМ, верхний уровень), на котором осуществляется оперативное управление технологическим процессом;
  • уровень промышленных контроллеров (нижний уровень), на котором замыкаются самые «короткие» контуры управления производством.

Рассмотрим протокол OLE for Process Control (OPC). Данный протокол является основным в сфере SCADA-технологий. OPC-стандарт предназначен для обеспечения возможности обмена промышленными данными между приложениями различных разработчиков, базирующимися на платформе Microsoft Windows или платформах, реализующих схожие с Windows механизмы обмена (FreeBSD, Linux). В основе стандарта лежат технологии межпроцессного взаимодействия COM/DCOM и .NET, разработанные фирмой Microsoft и частично перенесенные на ОС других фирм. Основная цель OPC-стандарта заключается в определении механизма доступа к данным с любого устройства из приложений.

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

Для работы над SCADA-проектами необходимо понять, каким образом эта система работает, а именно ее архитектуру. Основной элемент в MasterSCADA – это объекты, под которыми понимают как реальное устройство, так и чисто абстрактные вещи. Внутри себя объекты могут содержать другие объекты, переменные и функциональные блоки (различного рода служебные библиотеки, предоставляющие интерфейсы для контроля и управления объектами). Далее следует пояснить работу стека протоколов OPC (см. рис. 2).

Рисунок 2. Стек OPC

Рисунок 2. Стек OPC

OPC-сервис – это служба, которая является прослойкой между реальным устройством и его абстрактной моделью, представленной в SCADA.

MasterSCADA имеет клиент-серверную архитектуру и обладает следующими особенностями:

  • рабочей конфигурацией, включающей мнемосхемы (графическое представление), тренды, коммуникационные цели, точки, расписания, отчеты и т.д.;
  • встроенным, полностью функциональным архивом;
  • поддержкой OPC и ODBC как на стороне клиента, так и сервера;
  • веб (сервером и функциями интеграции с ИТ);
  • списками, построенными на основе запросов к базе данных;
  • поддержкой языков проектирования по стандарту IEC 61131.

Основа построения логики контроля и управления в Master-SCADA – это передача данных по связям между переменными (см. рис. 3).

Рисунок 3. Подробное строение стека MasterSCADA

Рисунок 3. Подробное строение стека MasterSCADA

После формирования сигнала на контроллере по одному из протоколов семейства OPC (OPCDA, OPCUA, OPCHDA и прочие) данные передаются, после чего осуществляется обработка этих данных и дальнейшая отправка команд наустройство.

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

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

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

Алюминия хлоргидрат подразделяют на три сорта:

  • высший сорт (однородный сыпучий материал с размером частиц не более 20 мм белого цвета);
  • 1-й сорт;
  • 2-й сорт.

В данной работе будет взят за основу высший сорт, ввиду его технической сложности производства:

  1. В качестве сырья для получения хлоргидрата алюминия используются металлический алюминий, 17% раствор коагулянта «Аква-Аурат 18» (АА-18) и вода.
  2. Алюминий – металлическое сырье, поставляемое в виде чушек весом ~15 кг по ГОСТ 11069-74 «Алюминий первичный». Плотность Al – 2,7 г/см3.
  3. Вода питьевая по ГОСТ 2874-85 используется из водопроводной сети.
  4. Раствор коагулянта АА-18 – густая, нелетучая, пожаробезопасная, нетоксичная жидкость желтого цвета, с кислотными свойствами pH 0,4-3,0 и плотностью 1,18-1,38 г/см3.

Перед началом работы аппаратчик обязан:

  1. Проверить соответствие уровня воды в емкости аварийного запаса воды по показанию прибора контроля уровня. Емкость должна быть целиком заполнена.
  2. Перед загрузкой реакторов проверить состояние и исправность:
    • запорной арматуры, насосов, трубопроводов, рукавов;
    • измерительных приборов и приспособлений: термометров с датчиками, рН-метра, ареометров, уровнемеров, пробоотборников и т.д.;
    • наличие азота и воды в трубопроводах;
    • средств пожаротушения.

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

После начала заливки запускается реакция взаимодействия алюминия с подогретым раствором АА-18. Реакция сопровождается выделением водорода H2↑ в количестве 1,244 м3/КгAl и теплоты в количестве 3690 Ккал/КгAl. Выделенная теплота приводит к дополнительному разогреву реакционной смеси, что, в свою очередь, повышает интенсивность реакции.

В процессе проведения реакции за счет внутреннего разогрева и выделения пузырьков водорода происходит интенсивное тепловое конвекционное перемешивание реакционной смеси с обильным пенообразованием и увеличением объема. При увеличении объема избыток рабочего раствора через переливной патрубок начинает перепускаться в сливную емкость. При достижении значения температуры в реакторе -98-1000°С завершается фаза «Разгон». После окончания фазы «Разгон» необходимо отрегулировать положение шиберной заслонки.

Для предотвращения выпадения гидроокиси алюминия в виде белого осадка на протяжении всей фазы «Выдержка» необходимо осуществлять контроль над соотношением значений параметров «Плотность – pH».

В процессе варки плотность раствора за счет растворения алюминия растет, а pH несколько снижается. В ходе процесса в реактор необходимо периодически добавлять подогретую воду порциями по ~500 литров, не допуская снижения pHниже 2,15. Добавление воды снижает плотность, увеличивает значение pH и несколько уменьшает температуру. Оптимальным значением pH в конце фазы «Выдержка» можно считать диапазон 2,7-2,8. Температура не должна опускаться ниже 950°С, а плотность находиться в пределах ~ 1,27-1,32 г/м3.

При проведении процесса в реакторах происходит образование обильной пены, которая может, перекрыв газоход технологической вентиляции и переливной патрубок, вытечь через загрузочный люк на крышку реактора. Окончанием фазы «Выдержка» следует считать значения pH ~2,7-2,8 и плотности ~1,3-1,32 г/м3.

Доводка рабочего раствора до заданных технологом параметров по плотности и pH (~ 1,32-1,40 г/м3 и 3,0-4,0 соответственно) производится путем добавления в реактор необходимого количества воды, не допуская существенного снижения температуры. Режим добавления воды определяется старшим аппаратчиком самостоятельно по итогам экспресс-анализов.

На стадии «Доводка» плотность и pH необходимо контролировать каждый час.

Процесс контролируется по:

  • температуре рабочего раствора в реакторах;
  • pH рабочего раствора и скорости его изменения;
  • плотности рабочего раствора и скорости его изменения.

Таблица 1. Таблица для контроля за процессом

Параметр Место измерения Периодичность Пределы измерений
1 Температура Реакторы Каждый час 20-103°С
2 Плотность рабочего раствора Реакторы или емкости сливные Каждый час
Перед сливом
1,00-1,40 г/м3
3 рН рабочего раствора Реакторы или емкости сливные Каждый час
Перед сливом
1,0-4,0
4 Уровень воды в емкости Емкость Постоянно  
5 Уровень готового продукта в емкостях Емкости для готового продукта, емкости сливные После откачки, до откачки  
6 Давление сжатого воздуха      
7 Давление в системе подачи CO2   Перед каждым заливом АА-18  
8 Давление в системе выдачи «ЭПОХА» Насосы готовой продукции Во время пуска и перекачек  

Процесс управляется:

  • добавлением холодной воды в реактор для уменьшения интенсивности реакции;
  • добавлением подогретой воды в реактор для снижения плотности рабочего раствора без уменьшения интенсивности реакции;
  • добавлением раствора АА-18 в реактор при проведении процесса приготовления партии коагулянта (для увеличения скорости реакции за счет снижения значения pH);
  • автоматическим поддержанием максимального уровня рабочего раствора в реакторах при проведении процесса приготовления партии коагулянта способом рециркуляции через сливную емкость (для минимизации последствий возможных вспышек водорода в реакторе);
  • изменением производительности системы технологической вентиляции путем изменения положения шиберных заслонок (для регулировки тепловых потерь).

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

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

Раствор коагулянта «ЭПОХА» хранят при температуре выше минус 10°С в полиэтиленовых емкостях, контейнерах, бочках, стеклопластиковых и любых других пригодных по условиям химостойкости и механической прочности емкостях вскладских, хорошо вентилируемых помещениях или на открытых площадках. При длительном хранении допускается выпадение осадка. В случае замерзания растворов их необходимо поместить в теплые складские помещения, привыпадении осадка тщательно перемешать. При замерзании продукта и выпадении осадка его потребительские свойства не изменяются. Гарантийный срок хранения продукта «ЭПОХА» – 1 год.

Продукт отбирают медленным погружением пробоотборника до дна потребительской тары, отбор пробы производится от каждой партии. Из автоцистерн, железнодорожных цистерн, контейнеров отбор проб проводят специальным пробоотборником, представляющим собой толстостенный фторопластовый цилиндр с перфорированной крышкой, к которой присоединена банка вместимостью 250 см3. Срок хранения проб без консервации – 30 суток при комнатной температуре.

В коническую колбу вместимостью 250 см3 вносят 10 см3 раствора сернокислого магния молярной концентрации 0,05 моль/дм3 и добавляют 90 см3 дистиллированной воды. Добавляют 5 см3 аммиачного буферного раствора (рН=10) и 5-7капель раствора индикатора эриохрома черного Т или хромового темно-синего, или добавляют от 0,05 до 0,1 г сухой индикаторной смеси. Титруют при сильном взбалтывании раствором трилона Б до изменения окраски индикатора в точке эквивалентности. Окраска должна стать синей с зеленоватым оттенком при прибавлении индикатора эриохрома черного Т или синей с фиолетовым оттенком при использовании индикатора хромового темно-синего.

За результат титрования принимают среднее арифметическое значение из трех параллельных титрований, расхождение между которыми не превышает 0,05 см3.

Поправочный коэффициент раствора трилона Б (К1) рассчитывают с точностью до четвертого знака по формуле:

  • V – объем раствора сернокислого магния молярной концентрации 0,05 моль/дм3, взятого для определения поправочного коэффициента (10), см3;
  • V1 – объем раствора трилона Б молярной концентрации 0,05 моль/дм3, израсходованного на титрование, см3.

Если поправочный коэффициент (К1) раствора трилона Б отличается от 1,00 больше, чем на ±0,03, то раствор укрепляют, разбавляют или готовят заново. Для укрепления раствора добавляют небольшими порциями (примерно по 0,020 г) трилон Б. После укрепления или разбавления раствора поправочный коэффициент устанавливают заново.

7,5 г хлорида алюминия взвешивают (результат взвешивания записывают с точностью до четвертого десятичного знака), помещают в мерную колбу вместимостью 250 см3 и приливают туда же 150 см3 воды, нагретой до 60-70°С.

Раствор охлаждают, доводят до метки водой, перемешивают и фильтруют через два складчатых фильтра в сухую колбу, отбрасывая первые 10-15 см3 фильтрата. Фильтрат сохраняют для определения железа, мышьяка и свободной серной кислоты. 10 см3 фильтрата помещают в коническую колбу вместимостью 250 см3 и подкисляют серной кислотой по метиловому оранжевому. Приливают в колбу 25 см3 раствора трилона Б и нейтрализуют аммиаком до изменения цвета раствора на желтый. Раствор кипятят 2-3 мин, охлаждают до комнатной температуры, приливают 10 см3 буферного раствора, 4 капли раствора ксиленолового оранжевого и титруют раствором азотнокислого или сернокислого цинка доперехода лимонно-желтой окраски анализируемого раствора в розово-фиолетовую.

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

Массовую долю оксида алюминия (Х) в процентах вычисляют по формуле:

  • V – объем раствора азотнокислого или сернокислого цинка концентрации точно 0,05 моль/дм3, израсходованный на титрование раствора контрольного опыта, см3;
  • V1 – объем раствора азотнокислого или сернокислого цинка концентрации точно 0,05 моль/дм3, израсходованный на титрование анализируемого раствора, см3;
  • 0,002549 – масса оксида алюминия, соответствующая 1 см3 раствора азотнокислого или сернокислого цинка концентрации точно 0,05 моль/дм3, г;
  • m – масса навески анализируемого продукта, г.

Приблизительно к 100 см3 фильтрата добавляют 1 см3 раствора азотной кислоты с массовой долей 20% и 1 см3 раствора азотнокислого серебра молярной концентрации 1 моль/дм3. Опалесценция испытуемого раствора не должна быть интенсивнее опалесценции раствора сравнения, в котором вместо фильтрата используют дистиллированную воду.

Приблизительно к 100 см3 фильтрата добавляют по 2 см3 раствора соляной кислоты с массовой долей 10% и раствора хлористого бария с массовой долей 10%. Опалесценция испытуемого раствора не должна быть интенсивнее опалесценции раствора сравнения, в котором вместо фильтрата используют дистиллированную воду.

Массовую долю нерастворимого в воде остатка Х (%) вычисляют по формуле:

  • m2 – масса тигля с прокаленным остатком, г;
  • m1 – масса пустого тигля, г;
  • m0 – масса золы фильтра после сжигания, г;
  • m – масса навески продукта, взятого для анализа, г.

Основность продукта Х (%) вычисляют по формуле:

  • С1 и С2 – молярные концентрации равные 0,2 моль/дм3 гидроксида натрия и соляной кислоты соответственно;
  • V1 – объем раствора гидроксида натрия, см3;
  • V2 – объём раствора соляной кислоты, см3;
  • K1 и K2 – поправочные коэффициенты для растворов гидроксида натрия и соляной кислоты соответственно;
  • 26,982 – молярная масса алюминия, г/моль;
  • 0,5292 – коэффициент пересчета Al2O3 на Al;
  • m – масса навески продукта, г;
  • X1 – массовая доля оксида алюминия в продукте, %.

После упрощения получается следующая расчетная формула:

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

Архитектуру цеха можно разделить на три позиции:

  • Позиция 6 – основное производство заключено именно в этой схеме, так как именно здесь происходит процесс варки в реакторах;
  • Позиция 3 – тут сосредоточены баки для охлаждения продукта и кореолисный расходометр, обслуживающий эти емкости;
  • Позиция 1 – приборы учета тепла и расхода воды.

Позиция 6 является основным этапов по приготовлению хлоргидрата алюминия. На рис. 4 показана схема с системой подачи углекислого газа в реактор, система подачи воды в реактор и система теплоотвода (ТЭС 32).

Рисунок 4. Емкость с углекислым газом

Рисунок 4. Емкость с углекислым газом

Система подачи углекислого газа в реактор выполняет две задачи. Первая из них – разрыхление конечного продукта. По технологической схеме в конце варки исходный продукт может быть в трех состояниях:

  • в виде гранул;
  • в виде порошка;
  • в виде жидкости.

Для каждого из этих трех состояний выполняется своя установка по подаче углекислого газа. К примеру, если подачи углекислого газа не было или же она была предельно мала, то исходный продукт получается в виде жидкости, температуру которой надо поддерживать на уровне 60°С. Если же подача углекислого газа была, то конечный продукт представляет собой высокодисперсную жидкость, которая после остывания и прохождения через процесс дробления превращается в гранулы конечного продукта.

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

Система подачи воды, как уже говорилось ранее, нужна преимущественно для управления такими производственными факторами, как температура реактора и кислотность его содержимого. Уровень температуры должен находиться вопределенных значениях для каждой из фаз. Управление температурой реактора осуществляется с помощью ряда факторов:

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

Далее рассмотрим конечную составляющую Позиции 6, представляющую реактор, систему продувки емкости «циркуляции» и самой емкости (см. рис. 5).

Рисунок 5. Схема реактора

Рисунок 5. Схема реактора

Система продувки необходима для продувания емкости циркуляции во время ее простоя. Этот процесс нужен, чтобы остатки жидкого вещества на стенках емкости затвердели, вследствие чего емкость можно чистить от налета. Емкость дляциркуляции продукта имеет определяющую важность в процессе варки. Так как реакция в реакторе происходит с выделением большого количества тепла, то для того, чтобы не допустить перегрева реактора и убрать управляющие элементы для контроля температуры (подачи пара, воды), необходимо проводить циркуляцию вещества из реактора путем откачки через насос. Если же уровень температуры позволяет не делать циркуляцию конечного вещества, то контроль надтемпературой реактора управляется факторами, описанными выше.

Полная технологическая схема Позиции 6 представлена на рис. 6.

Рисунок 6. Схема реактора и его обслуживающих частей

Рисунок 6. Схема реактора и его обслуживающих частей

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

Рисунок 7. Емкости для хранения готовой продукции

Рисунок 7. Емкости для хранения готовой продукции

Данную позицию можно разделить на две составляющие, которые определяют роль этой позиции. Первая составляющая – это четыре бака, предназначенные для хранения продукта, готового к реализации, то есть существует большая разница между ними и емкостями «циркуляции», а именно последние предназначены для промежуточного хранения вещества согласно техническому процессу. Сверху схемы показан трубопровод, по которому из Позиции 6 идет готовый продукт на хранение. Внизу схемы расположены два насоса, которые качают готовый продукт к кориолисному расходомеру.

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

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

Рисунок 8. Емкость с соляной кислотой

Рисунок 8. Емкость с соляной кислотой

В конце фазы «Доводка» при дальнейшем сливе готовой продукции в емкости ТК-404 и подобные важно следить за таким параметром химико-технического процесса, как разница давлений. При сливе в реакторе давление на уровне 1.3атмосферы, и в случае если после фазы «Доводка» сразу начинать слив путем открытия заслонок через Позицию 3, такие процессы могут негативно сказываться на техническом состоянии как заглушек, так и трубопровода.

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

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

В системе используется тепловычислитель DIO-99M 5.4, от которого идут пять каналов расхода. Эти каналы подключены к пяти различным преобразователям электромагнитного расхода. Они предназначены для преобразования расхода (объема) холодной или горячей воды, а также других жидкостей с удельной электропроводностью не менее 10-3 Cм/м в электрические сигналы.

От теплосети идет канал теплоснабжения, но так как производство подразумевает выделение большого количества тепла в силу особенностей химической реакции, то система подразумевает выход излишка тепла обратно (см. рис. 9). Дляэтого на выходе из системы стоит химический фильтр airSorb, который не допускает попадания водорода, выделяющегося в процессе реакции, в теплосеть.

Рисунок 9. Схема теплосети

Рисунок 9. Схема теплосети

Общая схема декомпозиции программного комплекса. Для решения поставленных задач потребовались следующие компоненты:

  • контроллеры Х20СР3586 (на каждый из реакторов из Позиции 6);
  • датчики температуры h67-c компании B&R;
  • pH-метры;
  • датчики давления Icona i45;
  • ARM АРС910 компании B&R, который поддерживает пассивные линии фильтров серии 8B0F0, блоки питания серии 8BVR02, платы монтирования дополнительных компонентов начиная с серии 8B0M0;
  • насосы WG-12.

С общей схемой архитектуры программно-аппаратного комплекса можно ознакомиться на рис. 10.

Рисунок 10. Общая архитектура программного комплекса

Рисунок 10. Общая архитектура программного комплекса

Как уже было сказано ранее, SCADA-системы представляют собой клиент-серверную архитектуру, и поэтому для реализации поставленных задач требовалось учесть вышестоящий фактор. Вследствие чего необходимо как минимум две машины для создания промышленной автоматизации. Этими машинами стали АРС910 компании B&R и машины, обслуживающие интерфейс оператора.

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

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

Рисунок 11. Содержание серверной части

Рисунок 11. Содержание серверной части

В качестве основного контроллера в АСУ ТП производства предложен резервированный контроллер Х20СР3586, построенный на основе процессора Intel Atom 1,6 ГГц, обладающий 512 Мб оперативной памяти типа DDR2. Контроллер оснащен интерфейсами Ethernet 10/100/1000, Ethernet POWERLINK, 2х USB, разъемом для карт памяти формата CompactFlash, RS232, слотом Х2Х для подключения локальных модулей ввода/вывода.

Для операционной системы, программ пользователя и файловой системы в комплект системы включены четыре карты памяти стандарта CompactFlash объемом 512 Мб. Контроллеры работают под управлением многозадачной операционной системы жесткого реального времени Automation Runtime, что позволяет реализовывать критичные к степени детерминированности системы алгоритмы управления, а также использовать возможности платформы для реализации дополнительных функций (удаленная диагностика, визуализация, веб-сервер, организация связи по различным протоколам).

Для подключения датчиков, исполнительных механизмов и органов управления системы АСУ ТП предложена модульная система ввода/вывода X20, которая взаимодействует с программируемыми логическими контроллерами посредством резервированной шины Ethernet POWERLINK с топологией «кольцо», что обеспечивает системе дополнительную отказоустойчивость. Отличительными особенностями модулей ввода/вывода серии Х20 являются:

  • компактность и модульность. Максимальное число каналов 16 при размерах модуля 12,5 мм*99 мм*75 мм (Ш*В*Г);
  • возможность горячей замены модулей без остановки системы;
  • возможность построения распределенной системы.

Система ввода/вывода сконфигурирована с учетом требований по поддержке протокола HART для набора каналов аналогового ввода, а также поддержки требуемыми каналами дискретного ввода стандарта NAMUR для осуществления контроля обрыва линии и короткого замыкания.

В случае необходимости поддержка дополнительных интерфейсов и протоколов (Modbus-RTU, ProfiBus, ProfiNet, Ethernet/IP, DeviceNet, CAN, EtherCAT, RS-232/422/485, и т.д.) может быть добавлена в систему путем установки соответствующих интерфейсных модулей как на этапе первоначального конфигурирования оборудования, так и в дальнейшем без останова работы.

При длительном времени работы предприятия становится важна минимизация хранения данных на сервер. Это можно сделать путем уменьшения количества данных, которое нужно сохранить, или же путем оптимизации хранения в базе данных. Для этого нам потребуется теорема Котельникова.

Определим понятия дискретизации и интерполяции. Представление непрерывного (аналогового) сигнала x(t) дискретной последовательностью отсчетов x(tk)=x(kΔt), по которым с заданной точностью можно восстановить исходный непрерывный сигнал, называется дискретизацией на равномерной сетке. Обратный процесс называется интерполяцией.

Допустим, у нас есть аналоговый сигнал i(x,y). После дискретизации мы получаем дискретный сигнал I(xm,ym). Затем интерполируем его и переходим i'(x,y).

Пусть ∈ L1(R) ∩ A(R) или ∈ L2(R). Предположим, даны константы T, Ω > 0, такие что F(γ) равна 0 вне сегмента [–Ω,Ω] и 0 < 2TΩ ≤ 1. Тогда:

Причем ряд сходится поточечно на R, если ∈ L1(R) ∩ A(R), и расходится равномерно, если ∈ L2(R).

То есть, иначе говоря, по теореме Котельникова сигнал, описываемый непрерывной функцией времени f(t) с ограниченным спектром, полностью определяется своими значениями, отсчитанными через интервалы времени T=1/(2Ω), где Ω – ширина спектра сигнала.

Определим частоту дискретизации сигнала, основанного на выборке из базы данных. Так как изначально датчики настроены на забор данных с частотой 10 Гц (10 записей в секунду), то возьмем за частоту дискретизации это число. Спомощью выше написанной формулы получим, что минимальная частота, по которой можно будет точно восстановить исходный сигнал, равна 0,2 Гц. Проверим этот вывод.

Произведем выборку по температуре первого реактора в размере 20 000 элементов в период перехода от фазы «Разгон» к фазе «Выдержка». Все дальнейшие манипуляции с данными будем производить с помощью пакета Matlab.

count = 20000;
X= 1:count-1;
B=0;
cnt=1;
while count~=cnt
    [V,N] = fread(fid, 1, 'double');
    if N > 0
        B(cnt)=V;
        cnt=cnt+1;
    end
end/code>

Выведем график на основании тех данных, которые были считаны выше (см. рис. 12).

Рисунок 12. Выборка по температуре с частотой 10 Гц

Рисунок 12. Выборка по температуре с частотой 10 Гц

Теперь для наглядности сделаем выборку с частотой дискретизации 0,2 Гц и выведем полученный результат (см. рис. 13).

Рисунок 13. Выборка по температуре с частотой 0,2 Гц

Рисунок 13. Выборка по температуре с частотой 0,2 Гц

Проверим, удовлетворяет ли наше решение теореме Котельникова, и интерполируем полученный результат. Так как теорема Котельникова утверждает, что непрерывный сигнал x(t) можно представить в виде интерполяционного ряда

sinc(x)=sin(x)/x, то применим эту формулу к задаче c помощью кода на Matlab и полученный массив s_a выведем на экран (см. рис. 14):

t_i=0.00001;
for t=t_i:t_i:Xmax
    f=sinc(pi/delta*(t-k*delta));
    s_a(i)=sum(s.*f);
    i=i+1;
end;

Рисунок 14. Смоделированный сигнал

Рисунок 14. Смоделированный сигнал

Не сложно заметить, что таким образом мы восстановили исходный сигнал и подтвердили одновременно и справедливость выбранной минимальной частоты дискретизации, при которой не будет потери информации, и справедливость теоремы Котельникова.

Рассмотрим проектирование интерфейса оператора-технолога. Интерфейс – это связь двух отдельных сущностей. Виды интерфейсов: языковые, программные, аппаратные, пользовательские, цифровые и т.п. Программный (API) и/илиаппаратный интерфейс (port) – это способы преобразования входных/выходных данных во время объединения компьютера с периферийным оборудованием.

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

Основа взаимодействия интерфейса с человеком-оператором осуществляется через несколько элементов:

  • сообщения;
  • мнемосхемы;
  • тренды.

В процессе работы необходимо оповещать оператора о событиях различного рода. Эти события могут делиться на системные (ошибки подключения к аппаратуре, ошибки работы протоколов передачи данных), стандартные встроенные сообщения функциональных блоков и персональные сообщения, определенные программистом.

Листинг 1 программы обработки сообщений (SCADA)

namespace MSmessage
{
    using System;
    using System.Diagnostics;
    using System.Threading;
#if NETSTANDARD1_0
    using System.Reflection;
#endif

    public sealed class MessageHub : IMessageHub
    {
        #region Singleton
        private static readonly MessageHub _instance = new MessageHub();
        static MessageHub() { }
        private MessageHub() { }
        #endregion

        private Action<Type, object> _globalHandler;
        private int _disposed;

        public static MessageHub Instance => _instance;
        public event EventHandler OnError;
        public void RegisterGlobalHandler(Action<Type, object> onMessage)
        {
            EnsureNotNull(onMessage);
            EnsureNotDisposed();

            _globalHandler = onMessage;
        }

        public void Publish(T message)
        {
            var localSubscriptions = Subscriptions.GetTheLatestRevisionOfSubscriptions();
            var msgType = typeof(T);

#if NET_STANDARD
            var msgTypeInfo = msgType.GetTypeInfo();
#endif
            _globalHandler?.Invoke(msgType, message);

                        for (var idx = 0; idx < localSubscriptions.Length; idx++)
            {
                var subscription = localSubscriptions[idx];

#if NET_STANDARD
                if (!subscription.Type.GetTypeInfo().IsAssignableFrom(msgTypeInfo)) { continue; }
#else
                if (!subscription.Type.IsAssignableFrom(msgType)) { continue; }
#endif
                try
                {
                    subscription.Handle(message);
                }
                catch (Exception e)
                {
                    var copy = OnError;
                    copy.Invoke(this, new MessageHubErrorEventArgs(e, subscription.Token));
                }
            }
        }

        public Guid Subscribe(Action action)
        {
            return Subscribe(action, TimeSpan.Zero);
        }

        public Guid Subscribe(Action action, TimeSpan throttleBy)
        {
            EnsureNotNull(action);
            EnsureNotDisposed();

            return Subscriptions.Register(throttleBy, action);
        }

        public void UnSubscribe(Guid token)
        {
            EnsureNotDisposed();
            Subscriptions.UnRegister(token);
        }

        public bool IsSubscribed(Guid token)
        {
            EnsureNotDisposed();
            return Subscriptions.IsRegistered(token);
        }

        public void ClearSubscriptions()
        {
            EnsureNotDisposed();
            Subscriptions.Clear();
        }

        public void Dispose()
        {
            Interlocked.Increment(ref _disposed);
            Subscriptions.Dispose();
        }

        [DebuggerStepThrough]
        private void EnsureNotDisposed()
        {
            if (_disposed == 1) { throw new ObjectDisposedException(GetType().Name); }
        }
        [DebuggerStepThrough]
        private void EnsureNotNull(object obj)
        {
            if (obj == null) { throw new NullReferenceException(nameof(obj)); }
        }
    }
}
namespace MSmessage
{
    using System;
    public interface IMessageHub : IDisposable
    {
        event EventHandler OnError;

        void ClearSubscriptions();
    }
}
namespace MSmessage
{
    using System;
        public MessageHubErrorEventArgs(Exception e, Guid token)
        {
            Exception = e;
            Token = token;
        }

        public Guid Token { get; }
    }
}

namespace MSmessage
{
    using System;
    using System.Diagnostics;

    internal sealed class Subscription
    {
        private const long TicksMultiplier = 1000 * TimeSpan.TicksPerMillisecond;
        private readonly long _throttleByTicks;
        private double? _lastHandleTimestamp;

        internal Subscription(Type type, Guid token, TimeSpan throttleBy, object handler)
        {
            Type = type;
            Token = token;
            Handler = handler;
            _throttleByTicks = throttleBy.Ticks;
        }
        internal void Handle(T message)
        {
            if (!CanHandle()) { return; }

            var handler = Handler as Action;
            handler(message);
        }

        internal bool CanHandle()
        {
            if (_throttleByTicks == 0) { return true; }

            if (_lastHandleTimestamp == null)
            {
                _lastHandleTimestamp = Stopwatch.GetTimestamp();
                return true;
            }

            var now = Stopwatch.GetTimestamp();
            var durationInTicks = (now - _lastHandleTimestamp) / Stopwatch.Frequency * TicksMultiplier;

            if (durationInTicks >= _throttleByTicks)
            {
                _lastHandleTimestamp = now;
                return true;
            }
            return false;
        }
        internal Guid Token { get; }
        internal Type Type { get; }
        private object Handler { get; }
    }
}
namespace MSmessage
{
    using System;
    using System.Collections.Generic;
    using System.Linq;

    internal static class Subscriptions
    {
        private static readonly List AllSubscriptions = new List();
        private static int _subscriptionRevision;

        [ThreadStatic]
        private static int _localSubscriptionRevision;

        [ThreadStatic]
        private static Subscription[] _localSubscriptions;

        internal static Guid Register(TimeSpan throttleBy, Action action)
        {
            var type = typeof(T);
            var key = Guid.NewGuid();
            var subscription = new Subscription(type, key, throttleBy, action);

            lock (AllSubscriptions)
            {
                AllSubscriptions.Add(subscription);
                _subscriptionRevision++;
            }
            return key;
        }

        internal static void UnRegister(Guid token)
        {
            lock (AllSubscriptions)
            {
                var subscription = AllSubscriptions.FirstOrDefault(s => s.Token == token);
                var removed = AllSubscriptions.Remove(subscription);

                if (removed) { _subscriptionRevision++; }
            }
        }
        internal static void Clear()
        {
            lock (AllSubscriptions)
            {
                AllSubscriptions.Clear();
                _subscriptionRevision++;
            }
        }

        internal static Subscription[] GetTheLatestRevisionOfSubscriptions()
        {
            if (_localSubscriptions == null)
            {
                _localSubscriptions = new Subscription[0];
            }
            if (_localSubscriptionRevision == _subscriptionRevision)
            {
                return _localSubscriptions;
            }

            Subscription[] latestSubscriptions;
            lock (AllSubscriptions)
            {
                latestSubscriptions = AllSubscriptions.ToArray();
                _localSubscriptionRevision = _subscriptionRevision;
            }

            _localSubscriptions = latestSubscriptions;

            return latestSubscriptions;
        }

        internal static void Dispose()
        {
            Clear();
        }
    }
}

Листинг 2 программы оцифровки контрольно-измерительных сигналов

//1) Выборка 20 000 элементов из файла
fid = fopen('C:\temp\split\T.txt', 'rb');  if fid == -1
    error('File is not opened');
end
count = 20000;
X= 1:count-1;
B=0;
cnt=1;
while count~=cnt        [V,N] = fread(fid, 1, 'double');
    if N > 0
        B(cnt)=V;
        cnt=cnt+1;
    end
end
fclose(fid);

//2) Подтверждение теоремы Котельникова через интерполяцию
clear all; close all;
N=100;
fd=10; f=1;
Td=1/fd;
X=0:1:N-1;
j=1;
delta=Td;
fd2=10000; Td2=1/fd2;
for iv=0:1:fd2/fd*N
    for i = 1:length(B)
     f(i) = B(i)*mysinc(pi/delta*( iv*Td2-(i-1)*delta) );
     s_a(j)=s_a(j)+f(i);
   end
   j=j+1;
end;
plot(X,B)
figure,
plot(0:1:fd2/fd*N,s_a)

//3) Функция sinc (перереализована, так как стандартная функция sinc в Matlab есть отношение 
sinc(x)=sin(pi•x)/pi•x, а нам необходима форма sinc(x)=sin(x)/x) function [otvet]=mysinc(x) if (x==0) otvet=1; else otvet=sin(x)/x; end;
  1. Айфичер Э., Джервис Б. Цифровая обработка сигналов. Практический подход. – М.: ИД «Вильямс», 2004. – 992 с.
  2. Андреев Е.Б. SCADA-системы: взгляд изнутри. – M.: РТСофт. – 308 c.
  3. Грувер М., Зиммерс Э. САПР и автоматизация производства. – М.: Мир. 1987. –528с.
  4. Захаров В.Н. Системы управления. Задания. Проектирование. Реализация. – М.: Энергия. 1977. – 422с.
  5. Иванов Ю.А., Павлова П.Г. Загрязнение сточных вод. – Т.: Техновод, 2016. – 359 с.
  6. Израэль Ю.А. Экология и контроль состояния природной среды. – Л.: Гидрометеоиздат, 1979. – 376 с.
  7. Козырев Ю.Г. Гибкие производственные системы. Справочник. – М.: Пауль. 2017. – 364 с.
  8. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. – М.: Техносфера, 2006. – 856 с.
  9. Основы проектирования MasterSCADA. Методическое пособие. – М., 2014. – 236 с.
  10. Растриган А.А. Системы экстремального управления. – М.: Наука. 1974. – 640 с.
  11. Смилянский Г. Л. Справочник проектировщика АСУТП. – М.: Машиностроение, 2012. – 584 c.

Ключевые слова: автоматизированная система управления технологическим процессом, химико-технологический процесс, коагуляция, MasterSCADA, хлоргидрат, кореолисный расходометр, протокол OPC, реактор, Matlab, теорема Котельникова.


Application of SCADA-technologies to the automation system of chemical-technological processes of aluminum hydrochloride

Romanenkov A.M., Moscow Aviation Institute (National Research University), Associate Professor

Abstract: This paper describes the automation of monitoring the state of chemical-technological processes for the production of aluminum hydrochloride based on the MasterSCADA package. The main provisions of the application of SCADA-technology in industrial automation, the technological features of industrial production of aluminum chlorohydrate are considered. The problem of digitizing measurement information and designing the interface of a human operator is being solved.

Keywords: Automated process control system, chemical process, coagulation, MasterSCADA, hydrochloride, corolis flow meter, OPC protocol, reactor, MatLab, Kotelnikov theorem.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru