PDA

Просмотр полной версии : Система для отображения текущих данных. Разработка.



qq6ka
31.07.2014, 10:12
Приветствую.

Во время работы на одной из ТЭЦ нашей большой страны был написан для собственных нужд небольшой проект, собирающий, обрабатывающий и отображающий данные с различных устройств. Сейчас он собирает более тысячи тегов с почти 100 приборов. Проект на стадии регулярного обновления, дописывания возможностей, переписывания кода и т.д.

Может быть, кому-то он тоже пригодится. Исходный код открыт, основной язык – Python 2.7. Разработка велась на Линуксе, крутится тоже на нем.

Возможности
• Привычная структура: шина -> устройства -> тэги;
• Единый интерфейс для добавления различного оборудования;
• Нет необходимости в установке и настройке OPC-серверов;
• Нет ограничений на количество устройств, тэгов, клиентов;
• Отображение данных и настройка производится в браузере с любого компьютера;
• Быстрое и простое добавление устройств, тэгов, копирование/перенос устройств и тегов, группировка по различным признакам;
• Включение/выключение опроса шины, устройств, одиночных тэгов;
• Настройка частоты опроса;
• Два варианта рабочих мест - в виде блоков и таблиц на основе групп тегов и конструктора отчетов, возможно создание нестандартных экранов для отображения данных;
• Сортировка блоков в рабочих местах, сортировка тегов в блоках;
• Возможность указания аварийных и предупредительных уставок, локирование сигнала, цветовое выделение тэга на фоне остальных, создание вычисляемых тегов;
• Отображение статусной информации о состоянии тэга в рабочем месте: время опроса, наличие ошибок, выход за уставки и др., возможность включать/выключать отображение ошибок у рабочего места;
• Контроль ошибок: отсутствие соединения с шиной (проблемы с сетью), отсутствие соединения с устройством или OPC-сервером, несовпадение CRC при вычитывании тега;
• Построение графиков за любой период на основе различных типов данных (текущие значения, архивные, усредненные за час или сутки), масштабирование, автообновление графика, отображение ошибок и состояния тега на графике;
• Конструктор отчетов с поддержкой формул, условных операторов, ссылок на другие ячейки. Два вида отчетов - за сутки и суммирование по дням;
• Усреднение, интегрирование собираемых данных за час, сутки.
• Добавлено. Тестовая возможность вычитывания данных с OPC DA-серверов по локальной сети.
• Добавлено. Modbus TCP.
• Добавлено. Теперь два режима работы с приборами, подключаемыми через преобразователи RS-232/485 в Ethernet. RealCOM – через виртуальные порты, TCTServer – преобразователь в режиме сервера (драйвера для создания виртуальных портов не нужны).

Протоколы
• Протокол обмена для приборов СПТ, СПЕ фирмы «Логика». Чтение текущих параметров, часовых и суточных архивов (вручную или по расписанию). Чтение и запись указанных каналов и параметров. Автокоррекция времени на приборах.
• Протокол обмена для приборов Марк-902/602 фирмы «Взор». Чтение текущих параметров.
• Протоколы Modbus RTU (в режиме RealCom, TcpServer) и Modbus TCP. Функции 03, 04.
• Протокол DCON для модулей ввода IPC CON 7017 (функция #**), 7053 ($AA6).
• «Модульные Системы Торнадо». Получение текущих данных по http протоколу.
• Если позволяет протокол, все теги вычитываются за один запрос.

XopHeT
31.07.2014, 11:36
интересно. Отправлю в закладки.
Успехов в дальнейшей разработке

IVM
31.07.2014, 11:49
И что, все бесплатно ?

Yegor
31.07.2014, 12:02
Исходный код открытИли я не умею пользоваться Гитхабом, или коммитился единственный файл README.md.

qq6ka
05.08.2014, 09:27
Выложил код. По сути это рабочий прототип. Дофига чего менять, доделывать и переделывать.

Кратко по установке (пока все сложно:) - https://github.com/qq6ka/chtec/blob/master/README.md
Для ускорения можно обойтись без nginx и uwsgi, воспользовавшись встроенным сервером django.

На вопросы отвечу, если кто решит озадачиться.

На винду не ставил. У меня крутится на Linux 3.7.10-1.1-default x86_64

В случае успешной установки должны получить что-то типа:
13917

qq6ka
03.09.2014, 07:09
Заделал простенький демо-режим с нашими рабочими настройками, кому интересно. Демо работает наполовину :) - Не ведутся архивы, нет вычитывания с приборов, в отчетах работает только режим редактирования.

Показывает реальное состояние опроса наших приборов (но сами значения изменены).

http://176.114.16.99:8000, логин: root, пароль: 123. Ссылка Рестарт восстановит БД в случае порчи.

Spam
22.05.2020, 17:51
А не подскажите, в каком файле скриптов вы вычитываете статусы дискретных входов на 7053 командой $AA6? Что то не могу найти никак.

qq6ka
23.05.2020, 02:40
А не подскажите, в каком файле скриптов вы вычитываете статусы дискретных входов на 7053 командой $AA6? Что то не могу найти никак.

Файл dcon.py