Scada система на linux

Как я SCADA-систему на Linux переводил

В этой статье я бы хотел рассказать о том, что Windows проекты на Delphi возможно перевести на Linux в разумные сроки и с разумными трудозатратами. Что такое SCADA-система, рассказывать не буду, а перейду сразу к делу.

Runtime ядро SCADA работает под Windows в качестве сервиса. Функции стандартные «как у всех»: сбор, обработка, архивирование данных, передача данных в другие SCADA-системы по стандартным протоколам обмена. Визуализация только через Web. Runtime ядро SCADA написано на Delphi. Решено было адаптировать исходный код под FreePascal/Lazarus, так чтобы код под Windows компилировался и в FreePascal и в Delphi, вторым этапом было допиливание проекта непосредственно на Linux машине и переделка его в демон. В FreePascal привлекала возможность компиляции как для x64, так и для плат Raspberry pi (архитектуры ARMv7, ARM64 (aarch64)).

Конфигуратор работает под Windows в виде графического приложения. Пока решено не переводить его на Linux, в крайнем случае можно запустить под Wine.

Теперь перейдем к Runtime и будем говорить о нём. В нём применяются разнообразные компоненты:

  • Работа с сетью. Компоненты Indy: IdTCPServer, IdTCPClient для реализации промышленных протоколов обмена. idHTTPServer для Web-сервера. Под Linux FreePascal они тоже есть. Оставляем без изменений.
  • Работа с базами данных. В Windows применялся FireDAC. Под Linux FreePascal его не было, и не предвиделось. Решено было добавить функцию работы с архивами с использованием компонентов ZeosLib. Отзывы о данной библиотеке были самыми разнообразными: начиная от хороших, заканчивая негативными. Библиотека показала себя с хорошей стороны. Несомненное достоинство в том, что она работает как в Delphi так и в FreePascal Windows и Linux.
  • Скриптовой движок. В Windows использовался DWScript. Использование его под Linux FreePascal невозможно. Параллельно с ним для Linux – версии добавлен RemObjects Pascal Script. Скрипты, написанные для DWScript могут быть перенесены в RemObjects Pascal Script с минимальными переделками. В Windows могут работать скрипты обоих движков одновременно. RemObjects Pascal Script не работают на архитектуре aarch64, поэтому версия для этой архитектуры без скриптов.
  • Работа с СОМ-портом. Использовались не компоненты , а функции. А в Linux они полностью отличаются от Windows.

Нужно подключить необходимые модули:

Открытие СОМ-порта функцией fpOpen вместо CreateFile. Запись Filewrite вместо WriteFile. Чтение FileRead вместо ReadFile. И многое другое, про это можно написать целую статью.

Читайте также:  Запуск deb пакета astra linux

Основные моменты, с которыми приходится сталкиваться при переводе проектов Delphi на Linux FreePascal:

  1. Строки. Функция Length() выдаёт разный результат в Delphi и Lazarus если в строке есть русские буквы. Потому что функция работает с ANSI-строками, то есть с теми, что занимают по 1 байту на символ. А кириллица — это не ANSI а UTF8, и требует по 2 байта на символ. Вместо Length() можно использовать UTF8Length(), но такой функции нет в Delphi. В этой ситуации однозначной рекомендации нет, либо использовать директивы условной компиляции, либо использовать обходные варианты, которые в Delphi и Lazarus работают одинаково.
  2. Cthreads. Чтобы работать с потоками в Linux нужно подключать модуль cthreads. uses cthreads, . Причем подключать его надо самым первым непосредственно в lpr-файле. Это касается не только программы, но и динамических библиотек so.
  3. . Если не компилируется что-то, что работает в Delphi, укажите в начале модуля режим совместимости с Delphi .

По аналогии были переведены на Linux драйверы для протоколов МЭК 60870-5-104, МЭК 60870-5-101, MQTT, SNMP, работа с ini-файлами, а так же периодический Ping. Драйверы представляют из себя динамические библиотеки so, которые подключаются при запуске демона.

Так же были переведены на Linux OPC UA серверы некоторых стандартных и не очень протоколов.

Небольшие субъективные выводы, которые я сделал после проделанной работы:

  1. Переводить на Linux приложение без графической оболочки проще, чем с GUI.
  2. Практически любой проект на Delphi без графической оболочки можно перевести на Linux за вполне вменяемые сроки.
  3. Переписать всё с нуля на более модном языке не проще.

Время перевода заняло около полугода. Результат здесь.

Источник

Install on Linux

This article provides commands for Ubuntu and Debian operating systems. When installing Rapid SCADA on other OS of the Linux family, use the appropriate commands.

Installation

  1. Install ASP.NET Core Runtime 6.0.x according to the instructions. If installation of .NET from the repository is not possible, the manual installation sequence is as follows:
    1. Download .NET binaries corresponding to the operating system from this link.
    2. Extract and copy the downloaded files to /usr/share/dotnet/
    3. Make the dotnet file executable:
    sudo chmod +x /usr/share/dotnet/dotnet
    sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
    sudo dpkg -i rapidscada_VERSION_all.deb
    sudo chmod +x /opt/scada/make_executable.sh sudo /opt/scada/make_executable.sh
    sudo systemctl enable scadaagent6.service sudo systemctl enable scadaserver6.service sudo systemctl enable scadacomm6.service sudo systemctl enable scadaweb6.service
    tmpfs /var/log/scada tmpfs defaults,noatime,size=100m 0 0
    sudo apt update sudo apt install nginx
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

    Uninstallation

    sudo systemctl disable scadaagent6.service sudo systemctl disable scadaserver6.service sudo systemctl disable scadacomm6.service sudo systemctl disable scadaweb6.service

    Источник

    Установка на Linux

    В данной статье приведены команды для операционных систем Ubuntu и Debian. При установке Rapid SCADA на другие ОС семейства Linux, используйте соответствующие команды.

    Установка

    1. Установить ASP.NET Core Runtime 6.0.x согласно инструкции. Если установка .NET из репозитория по какой-либо причине невозможна, то последовательность установки вручную следующая:
      1. Скачать бинарные файлы .NET, соответствующие операционной системе, по ссылке.
      2. Разархивировать и скопировать скачанные файлы в директорию /usr/share/dotnet/
      3. Установить атрибут исполняемого файла, выполнив команду
      sudo chmod +x /usr/share/dotnet/dotnet
      sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
      sudo dpkg -i rapidscada_VERSION_all.deb
      1. Скопировать файлы из директории scada дистрибутива в директорию /opt/scada
      2. Установить атрибуты исполняемых файлов, выполнив команды
      sudo chmod +x /opt/scada/make_executable.sh sudo /opt/scada/make_executable.sh
      sudo systemctl enable scadaagent6.service sudo systemctl enable scadaserver6.service sudo systemctl enable scadacomm6.service sudo systemctl enable scadaweb6.service
      sudo mkdir /var/log/scadasudo mkdir /var/log/scada
      tmpfs /var/log/scada tmpfs defaults,noatime,size=100m 0 0
      sudo apt update sudo apt install nginx
      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

      Удаление

      sudo systemctl disable scadaagent6.service sudo systemctl disable scadaserver6.service sudo systemctl disable scadacomm6.service sudo systemctl disable scadaweb6.service

      Источник

      Quantum SCADA

      Верхний уровень цифровой платформы «Quantum SCADA» – что это такое? Это «облачная» система мониторинга, анализа и прогнозирования технологических процессов. Разработка SCADA системы управления позволила собирать технологические данные и архивировать их в специализированной базе данных. Для сбора информации и взаимодействия с внешними системами предназначены различные интерфейсы, в том числе Modbus и OPC UA. Предусмотрена возможность математической обработки входящих данных в режиме реального времени. Отличительной особенностью «Quantum-SCADA» является возможность быстрой настройки специализированных рабочих мест под узкие требования специалистов без программирования. Рабочие экраны создаются авторизованными пользователями непосредственно «в облачном» интерфейсе на портале системы через установленный у него Web-браузер. Установки дополнительного программного обеспечения на стороне клиента не требуется. Все рабочие места подключаются к единой базе данных, что позволяет всем пользователям работать в едином информационном пространстве. Доступ к информации возможен с любых мобильных устройств как через встроенный web-браузер, так и через специализированное приложение. Благодаря большому разнообразию предоставленных системой Web-компонентов (виджетов) оператор имеет возможность настроить свой интерфейс удобным ему способом. Кроме отображения технологических параметров рабочий стол оператора может содержать дополнительное мультимедийное наполнение – от встроенных фреймов видеонаблюдения объекта управления до рабочих экранов смежных информационных систем.

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

      Российский программный комплекс «Quantum-SCADA» призван обеспечить импортозамещение существующих иностранных SCADA-пакетов таких как: AVEVA Edge (Indusoft Web Studio), OSISoft PISystem и другие с одновременной заменой ОС Windows на отечественные операционные системы на базе ядра Linux. ООО «ТехноПром» является авторизованным партнером компании «РусБИТех-Астра», разработчика российской ОС «Astra Linux». Используемая в платформе СУБД PostgreSQL также входит в реестр Российского программного обеспечения. Модульность программного обеспечения «Quantum-SCADA» позволяет создавать информационные системы, которые оптимально соответствуют требованиям Заказчика, легко интегрируются с существующими у него системами и обеспечивают свободу дальнейшего расширения при развитии.

      Основные функции «Quantum-SCADA» для «Linux»:

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

      В состав «Quantum-SCADA» для «Linux» входят следующие программные продукты:

      • Сервер сбора и передачи данных
      • предназначен для организации взаимодействия с сетью контроллеров
      • Socket-сервер
      • служит для организации взаимодействия с контроллерами телеметрии и телемеханики посредством TCP/IP канала
      • Сервер SMS
      • предназначен для приёма и обработки SMS сообщений от человека или автоматики (контроллеров)
      • СУБД PostqreSQL
      • свободная объектно-реляционная система управления базами данных, предназначена для хранения и предоставления доступа к требуемой информации
      • АРМ Администратора
      • предназначен для контроля за функционированием платформы, а также для конфигурирования и администрирования СУБД
      • АРМ Диспетчера
      • предназначен для визуализации накопленных значений и данных о состоянии объектов с использованием карт, мнемосхем, табличного и графического представления информации
      • Web-АРМ Абонента
      • предназначен для контроля за функционированием подсистемы сбора и отображения данных в виде личного кабинета пользователя

      Источник

Оцените статью
Adblock
detector