Добавление протокола iec-104 в scadapy, предоставляет дополнительные возможности для расширения системы, как в домашней автоматизации, так и для локального применения на малых предприятиях.
Данный протокол довольно сложный в освоении, но в настоящий момент в интернете можно найти достаточно документации для ознакомления.
В продолжение цикла статей о возможности создания простой scada системы используя язык программирования python, хочу предложить описание редактора мнемосхем, объединяющего все программы, о которых писалось ранее.
В настоящее время многие scada системы в качестве интерфейса отображения или подсистемы отображения используют web браузер, в котором происходит обработка данных, как правило с помощью java script.
При этом непосредственное отображение графических объектов выполняется при помощи SVG графики. Действительно такой подход дает возможность сосредоточиться на создании кода web страницы работающего в разных операционных системах, а не создавать отдельное приложение для каждого отдельного проекта.
Очевидно, что такой подход экономит много времени на реализацию проекта, даже если это простой проект для домашней автоматизации.
В продолжение предыдущих статей о применении python для построения собственной scada системы, хотелось бы описать способ организации обмена между устройствами и вывод данных посредством json — текстового формата обмена данными.
В данном случае будем использовать клиентские части modbusTCP и OPCUA библиотек.
В предыдущих нескольких статьях, мною были описаны возможности применения протокола modbus для создания собственной Scada системы на базе python. В этот раз хочется поделиться опытом построения системы опроса подчиненных устройств с использованием ОРС технологии.
Недостатки OPC серверов в том, что их можно использовать только в операционных системах семейства Microsoft Windows (как правило они платные), а об устройствах использующих ОС Linux можно было забыть.
Но со временем была создана спецификация OPC Unified Architecture (англ. Унифицированная архитектура OPC), что дало возможность использовать данную технологию передачи данных на иных операционных системах отличных от Windows. Это касается и встраиваемых систем, где может быть запущен полноценный Linux.
В продолжение статей здесь, здесь, здесь и здесь., хочу привести примеры простого использования python скриптов из серии ScadaPy, как в сфере домашней автоматизации, так и на производственных предприятиях.
1. Модули ADAM от Advantech и ScadaPy.
Простой пример использования python для опроса модулей Advantech Серии 4000.
Для считывания данных и передачи команд управления используется собственный протокол DCON. Когда-то давно была распространена программа от этого производителя и называлась, если не ошибаюсь, Adam View или GeniDAQ. Мы в свое время с нее начинали, было очень интересно. На сегодняшний день мне достались несколько модулей, которые вполне еще работоспособны.
При обслуживании приборов учета Меркурий-230 ART, установленных на удаленных
трансформаторных подстанциях, часто возникает необходимость оперативной проверки работоспособности счетчиков.
Как правило, в местах, где счетчики работают в составе АСКУЭ и соединены в группы по витой
паре RS 485 и подключены к шлюзу Меркурий 228, происходит пропадание связи в момент
установления связи со стороны сервера.
В продолжение статьи о возможности построения собственной scada системы на языке Python, хочу предложить вариант практического применения.
Возникла необходимость контроля температуры воздуха в серверном помещении предприятия.
Такая проблема существует на малых предприятиях ввиду ограниченности количества персонала и технических средств.
Развивая тему предыдущей статьи, опишу некоторые функции для формирования объектов мнемосхемы простой SCADA программы выполненной на Python.
Объекты визуально отображают состояние аналоговых измеряемых величин из регистров
READ_INPUT_REGISTERS или READ_HOLDING_REGISTERS. Используется библиотека Tkinter.
Всего реализовано 3 объекта: горизонтальный слайдер, вертикальный слайдер и стрелочный индикатор. Отдельно описывается построение динамического тренда.
Ниже приведу пример собственной реализации простой SCADA программы выполненной, как обычно говорят, «на коленке».
Поставлена задача по осуществлению контроля за дизель генератором. Необходимо вести журнал с указанием почасовых параметров, таких как: уровень топлива, давление масла, температура, заряд батарей, токи, напряжения, наработка часов.
Генератор находился на расстоянии пол километра от офиса и со временем эти хождения начали напрягать, особенно в плохую погоду.
Как выяснилось на генераторе установлен контроллер, который поддерживает протокол обмена Modbus RTU, это значит, что можно проложить кабель витую пару и подключиться по RS-485.
После изучения адресной таблицы, решили сами сделать простенькую программу.
В результате получилась ScadaPy.