Система диспетчеризации на очистные сооружения в р.п. Навля

+
<
>
Система диспетчеризации состоит из шкафа управления диспетчеризации (ШУД) с промышленным логическим контроллером ОВЕН ПЛК 210 и диспетчерского пульта (ДП). ПЛК в ШУД осуществляет опрос локальных шкафов управления участков очистных сооружений, выполненных на базе управляющих модулей WILO SK-712, по протоколу MODBUS RTU на базе интерфейса RS-485 (двух-проводной). Подключение локальных шкафов управления к шине RS-485 производится при помощи коммуникационной платы RS-485 для SK-712. Коммуникационные платы поставлялись совместно с локальными шкафами управления. Топология шины MODBUS имеет структуру «линия» общей длиной не более 1000м. ПЛК собирает информацию о состоянии локальных систем управления.
Перечень сигналов состояния локальных систем:
  • состояние локальной системы управления (определяется локальной системой);
  • режим работы насоса (ручной/автоматический);
  • состояние насоса (работа/остановка/авария);
  • тип аварии (если определяется локальной системой);
  • состояние дискретных сигналов системы (определяется локальной системой);
  • показания аналоговых датчиков (определяется локальной системой).

Диспетчерский пульт представляет собой автоматические рабочее место с двумя мониторами, на который установлена программа SCADA (MasterSCADA MPS-MSRT4D-500-P). Диспетчерский пульт выполняет опрос ШУД и визуализацию сигналов состояния локальных систем управления при помощи мнемосхем на мониторах. Опрос ШУД производится по протоколу MODBUS TCP на шине Ethernet.

Диспетчерский пульт содержит журнал аварийных событий в АСУ ТП (перечень событий определяется конфигурацией локальных шкафов управления). Также ведется журнал состояний сигналов АСУ ТП.

Когда нас пригласили на этот проект, выяснилось, что проект начала другая компания, но не довела до конца, из-за чего срывались все сроки сдачи объекта и люди в поселке могли остаться без воды.

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

У ВАС ПОХОЖАЯ ЗАДАЧА? ОСТАВЬТЕ ЗАЯВКУ И МЫ РАСЧИТАЕМ ПРОЕКТ
Нажимая на кнопку, вы даёте согласие на обработку персональных данных в соответствии с политикой конфиденциальности
Похожие проекты
Подобрать оборудование
+
{{ in_view_website }} <div class="product_item" product-id="{{ id }}" order-multiplicity="{{ stock.order_multiplicity }}" catalog-elem="product-item"> <div class="img-container"> {% if productimage_set|length > 0 %} {% for productimage in productimage_set %} {% if productimage.photo and productimage.hide == false %} {% if loop.first %}<img src="{{ productimage.photo }}" alt="img" />{% endif %} {% else %} <img src="/static/core/images/nophoto1.png" alt="img"> {% endif %} {% endfor %} {% else %} <img src="/static/core/images/nophoto1.png" alt="img"> {% endif %} </div> <div class="right_product_content"> <div class="product-item_description"> <a class="name" href="{{ url }}">{{ name }}</a> <div class="article">Артикул: {{ article }}</div> {% if productproperty_set|length != 0 %} <div class="charactiristics"> {% for productproperty in productproperty_set %} <div class="char"> {% if loop.index < 4 %}<span>{{ productproperty.name }}</span> <span>{{ productproperty.value }}</span>{% endif %} </div> {% endfor %} </div> {% endif %} </div> <div class="price_conainer"> <div class="lot">{{ stock.lot_complect }} {{ stock.lot }}</div> <div class="price"> {% if price.rub_price_supplier and price.rub_price_supplier != 0 %} <span class="price_item">{{ price.rub_price_supplier }}</span> ₽ {% else %} по запросу {% endif %} </div> <div class="item-buttons_container"> <div class="quantity-buttons"> <button disabled class="minus-button"></button> <input type="number" value="1" oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" maxlength="3" onkeypress='validate(event)'> <button class="plus-button"></button> </div> <button class="add-specification-button"> В корзину <span></span> </button> </div> </div> </div> </div>
<div class="order_item" order-id="{{ id }}" order-elem="order-item"> <div class="description_order"> <div class="order_number">Заказ №{{ id_bitrix }}</div> <div class="order_date"> от <span class="order_date_value">{{ date_order }}</span> </div> <div class="order_status">{{ status_full }}</div> </div> <div class="order_composition"> <div class="order_composition_container"> {% for specification_list_item in specification_list.productspecification_set %} <div class="order_composition_item"> {{ specification_list_item.product_name }} - {{ specification_list_item.quantity }} {{ specification_list_item.lot.lot }} </div> {% endfor %} </div> <a href="{{ url }}"> <div class="add_more_btn">подробнее</div> </a> </div> <div class="order_invoice_details_container"> {% if bill_sum %} <div class="bill_sum_details"> <span class="price">{{ bill_sum_paid }}</span> ₽ <br> / <span class="price">{{ bill_sum }}</span> ₽ </div> {% else %} <div class="bill_sum_details none-invoice">счет не сформирован</div> {% endif %} </div> <div class="order_documents"> {% if specification_list.file %} <a href="{{ specification_list.file }}" target="_blank" class="order_documents_item">спецификация №{{ specification_list.number }} от {{ specification_list.date }}</a> {% endif %} {% if bill_file %} <a class="order_documents_item" href="{{ bill_file }}" target="_blank">счёт № {{ bill_name }} от {{ bill_date_start }}</a> {% endif %} {% for documentshipment_item in documentshipment_set %} <a class="order_documents_item" href="{{ documentshipment_item.file }}" target="_blank">акт № {{ documentshipment_item.id }} от {{ documentshipment_item.date }}</a> {% endfor %} {% if act_file %}<a class="order_documents_item">акт {{ act_file }}</a>{% endif %} </div> </div>
<div class="document_item" document-id="{{ id }}" document-elem="document-item"> <div class="name"> {% if name == "спецификация" %} {{ name }} № {{ number_document }} от {{ date_created }} {% elif name == "счёт" %} {{ name }} № {{ number_document }} от {{ date_created }} {% elif name == "акт" %} {{ name }} № {{ number_document }} от {{ date_created }} {% else %} {% endif %} </div> <div class="contract"> {% if requisites_contract %}№{{ requisites_contract }} c{% endif %} {{ requisites_legal_entity }} </div> <div class="summ_and_status"> <div class="summ_container"> {% if amount != 0 %} <span class="summ price">{{ amount }}</span> ₽ {% else %} {% endif %} </div> <div style="display:none" class="status">Подтверждена</div> </div> <div class="download"> <a href="{{ pdf }}" target="_blank">скачать</a> </div> </div>
<div class="project_item" project-id="{{ id }}" project-elem="project-item"> <a class="title_link" href="{{ url }}"> {{ category_name }}. {% if projectclientcategoryprojectmarking_set|length > 0 %} {% for marking_categ in projectclientcategoryprojectmarking_set %} {{ marking_categ.category_name }} {% if loop.last %} : {% else %} , {% endif %} {% endfor %} {% endif %} {{ name }} </a> <div class="project_description_content"> <div class="category_content"> {% for client_category in projectclientcategoryproject_set %} <div class="{% if client_category.category_check %}check{% endif %} category_elem"> {{ client_category.client_category_name }} </div> {% endfor %} </div> {{ category_project_marking_get }} <div class="place_content"> <div>{{ place_object }}</div> <div>{{ data_project }}</div> </div> </div> </div>
<!-- все заказы --> {% if specification_list.id %} <div class="specification_item table_item {% if status == "CANCELED" and bill_file %}bill_notpayment {% elif status == "COMPLETED" %} completed_order {% endif %} {% if bill_status == None and specification_list.tag_stop == false %}disabled{% endif %}" specification-id="{{ specification_list.id }}" data-cart-id="{{ specification_list.cart }}" order-id="{{ id }}" status="{{ status }}" superuser="{% if is_superuser == true %}true{% endif %}" specification-elem="specification-item"> <div class="table_item_value first_table_value"> <a class="order_number" href="{{ specification_list.url }}">№ {{ id }} от {{ specification_list.date }}</a> <input class="cart_id" type="hidden" value={{ specification_list.cart }}> {% if specification_list.date_update and specification_list.date != specification_list.date_update %} <div class="table_item_value_span">Обновлен: {{ specification_list.date_update }}</div> {% endif %} {% if date_completed %}<div class="table_item_value_span">Завершен: {{ date_completed }}</div>{% endif %} </div> <div class="table_item_value"> <div class="client">{{ name_req_full }}</div> </div> <div class="table_item_value"> {{ status_full }} {% if status == "CANCELED" %} {% if bill_file %} счет был до {{ bill_date_stop }} {% else %} спецификация была до <br> {{ specification_list.date_stop }} {% endif %} {% elif status == "COMPLETED" %} {{ date_completed }} {% elif status == "PAYMENT" %} {% if bill_sum_paid %} от {{ bill_date_start }} {% else %} до {{ bill_date_stop }} {% endif %} {% elif status == "PROCESSING" %} до {{ bill_date_stop }} {% endif %} </div> <div class="table_item_value "> <span class="price"> <b bill-sum-paid="{% if bill_sum_paid %}{{ bill_sum_paid }}{% else %}0{% endif %}" class="price_bill_sum_paid {% if bill_file and bill_sum_paid < bill_sum and status != "CANCELED" %}add_payment_button{% endif %}"> {% if bill_sum_paid %} {{ bill_sum_paid }} {% else %} 0 {% endif %} </b> <b>₽</b> / {{ specification_list.total_amount }} ₽ </span> {% if prepay_persent %} <div class="paument_tupe"> {% if postpay_persent != 0 %} предоплата: {{ prepay_persent }}% {% else %} предоплата: {{ prepay_persent }}% {% endif %} </div> {% endif %} </div> <div class="table_item_value invoice-table_item_value"> <a target="_blank" class="invoice-link" href="{{ bill_file }}">Cчет №{{ bill_name }} от {{ bill_date_start }}</a> {% if specification_list.file %} <a target="_blank" class="invoice-link" href="{{ specification_list.file }}">Cпецификация №{{ specification_list.number }} от {{ specification_list.date }} {{ specification_list.pdf.url }} </a> {% endif %} </div> <div class="table_item_value table_item_value_change_buttons_container"> <div data-type-save="update" class="change-bill-button">Изменить счет</div> <div data-type-save="hard_update" class="change-specification-button">Выставить новый счет</div> </div> </div> <!-- корзины без заказа--> {% else %} <div class="specification_item table_item spetification_item_no_complite_order {% if bill_status == false %}bill_notpayment{% endif %}{% if bill_status == None and specification_list.tag_stop == false %}disabled{% endif %}" specification-id="{{ specification_list.id }}" order-id="{{ id }}" status="{{ status }}" data-cart-id="{{ cart_list.id }}" superuser="{% if is_superuser == true %}true{% endif %}" specification-elem="specification-item"> <div class="table_item_value"> <a data-cart-id="{{ cart }}" href=""></a> <p>Заказ № {{ id }}</p> </div> <div class="table_item_value"> {% if name_req_full %} <div>{{ name_req_full }}</div> {% else %} <div class="">Отсутсвует</div> {% endif %} </div> <div class="table_item_value"> Статус: {{ status_full }} <br> </div> <div class="table_item_value "> <span class="price"> <b bill-sum-paid="{% if bill_sum_paid %}{{ bill_sum_paid }}{% else %}0{% endif %}" class="price_bill_sum_paid {% if bill_file and bill_sum_paid < bill_sum and status != "CANCELED" %}add_payment_button{% endif %}"> {% if bill_sum_paid %} {{ bill_sum_paid }} {% else %} 0 {% endif %} </b> <b>₽</b> / {{ specification_list.total_amount }} ₽ </span> {% if prepay_persent %} <div class="paument_tupe"> {% if postpay_persent != 0 %} предоплата: {{ prepay_persent }}% {% else %} предоплата: {{ prepay_persent }}% {% endif %} </div> {% endif %} </div> <div class="table_item_value table_item_value_change_buttons_container"> <div data-type-save="new" class="change-specification-button">Продолжить оформление</div> </div> </div> {% endif %}
<div product-id="{{id}}" search-specification-elem="search-specification-item" class="product_search_item"><span class="name">${el.name}</span><span class="search_button">Добавить</span></div>
<div class="invoice-item" invoice-elem="invoice-item" invoice-elem-id="{{ id }}"> <div class="name"> {% if product_new == None %} {{ product_okt_name }} {% else %} {{ product_new }} {% endif %} </div> <div class="article"> {% if product_new_article == None %} {{ product_okt_article }} {% else %} {{ product_new_article }} {% endif %} </div> <div class="stock"> {% if stock %} <div class="stock_item"> {% if stock.to_order %} Поставщик: <br> Под заказ {% else %} {% if stock.stock_supplier != None %} Поставщик: <span class="supplier_unit">{{ stock.stock_supplier_unit }}</span> шт {% else %} Поставщик: - {% endif %} {% endif %} </div> <div class="stock_item"> Motrum: <span class="motrum_unit">{{ stock.stock_motrum }}</span> {% if stock.stock_motrum_reserve %} Motrum резерв: <span class="motrum_unit_reserve">{{ stock.stock_motrum_reserve }}</span> {% endif %} </div> {% if stock.stock_supplier != None %} <span class="span-transit"style=" font-size: 10px; line-height: 5px; ">{{ stock.data_update }}</span> <br> <span class="span-transit"style=" font-size: 10px; line-height: 5px; "> {% if stock.transit_count %}Ближайшая поставка: {{ stock.data_transit }} - {{ stock.transit_count }} шт.{% endif %} </span> {% endif %} {% else %} {% if stock.to_order %}Под заказ{% endif %} Неизвестно {% endif %} </div> <label> <input placeholder="Укажите срок поставки" class="invoice-data-input" type="text" value="{{ text_delivery }}" /> <div class="error"></div> </label> </div>
<div class="vacancy_item" vacancy-id="{{ id }}" vacancy-elem="vacancy-item"> <div> <div class="vacancy_item_description"> <div class="vacancy_tilte_content"> <div class="title_content"> <div class="vacancy_name">{{ name }}</div> <div class="vacancy_title_content_descr"> <div class="vacancy_exp">{{ experience }}</div> <div class="vacancy_busyness">{{ busyness }}</div> </div> <div class="vacancy_price"> <div class="price_container"> {% if first %} <span class="price_description"> от <span class="price">{{ first }}</span> ₽ </span> {% endif %} {% if last %}<span class="price_description">до <span class="price">{{ last }}</span> ₽</span>{% endif %} {% if fixed %}<span class="price_description"><span class="price">{{ fixed }}</span> ₽</span>{% endif %} {% if first or last or fixed %}в месяц{% endif %} </div> <div class="price_type_payments">{{ type_payments }}</div> </div> </div> <div class="show_btn">подробнее</div> </div> <div class="vacancy_description_content"> {% if text %}<div class="vacancy_description">{{ text|safe }}</div>{% endif %} {% if responsibiliti %} <div class="vacancy_description_elem"> <div class="title">Что нужно:</div> <div class="description">{{ responsibiliti|safe }}</div> </div> {% endif %} {% if requirement %} <div class="vacancy_description_elem"> <div class="title">Что мы приветствуем:</div> <div class="description">{{ requirement|safe }}</div> </div> {% endif %} {% if conditions %} <div class="vacancy_description_elem"> <div class="title">Мы предлагаем:</div> <div class="description">{{ conditions|safe }}</div> </div> {% endif %} </div> <div class="submit_btn">откликнуться на вакансию</div> <div class="overlay_vacancy"> <div class="modal_window"> <div class="close_btn">+</div> <div class="title">Отклик на вакансию</div> <div vacancy-name="{{ name }}" class="vacancy_modal_form"> <label> <input class="name_input" type="text" placeholder="Ваше имя" /> <div class="error name_error"></div> </label> <label> <input class="phone_input" type="tel" placeholder="Ваш телефон"> <div class="error phone_error"></div> </label> <label class="file_label"> <div class="img_container"> <svg width="27" height="26" viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M15.195 20.5424L22.5666 13.1708L24.4204 11.317C26.6599 9.07747 26.6599 5.44641 24.4204 3.20685V3.20685V3.20685C22.0968 0.883299 18.3296 0.883297 16.006 3.20685L9.26445 9.94844L2.18613 17.0268C0.42648 18.7864 0.426476 21.6394 2.18612 23.399V23.399V23.399C3.65059 24.8635 6.02496 24.8635 7.48942 23.399L20.1421 10.7463" stroke="black" stroke-width="1.5" /> </svg> </div> <div class="file_description"> Прикрепить резюме </div> <input class="file_input" style="display:none" type="file" accept=".xls,.xlsx,.png,.jpeg,.jpg,.pdf,.txt,.doc,.docx,.ppt,.rtf,.tiff" /> <div class="error file_error"></div> </label> <textarea class="vacancy_textarea" placeholder="Ваше сообщение"></textarea> <button class="submit_btn">Отправить</button> <div class="politic_description"> Нажимая на кнопку, вы даёте согласие на обработку персональных данных в соответствии с <a target="_blank" href="/privacy-policy/">политикой конфиденциальности</a> </div> </div> </div> </div> </div> </div> </div>
<a href="{{ url }}" class="search_elem" search-elem-id="{{ id }}" search-elem="search-elem" data-url="{{ url }}"> <div class="search_elem_name">{{ name }}</div> <button class="product_link"> <div>Перейти</div> </button> </a>