Przejdź do treści
Dokumentacja systemu zarządzania IASDokumentacja systemu zarządzania IAS
  • Przejdź do systemu
  • Przejdź do systemu

Administracja

8
  • Typy zdarzeń
  • Fazy IAS
  • Branże
  • Kontrahenci
  • Osoby
  • Użytkownicy
  • Jednostki organizacyjne
  • Budynki

MetaBMS

6
  • Budżety
  • Zarządzania wynajmem obiektów
  • Rejestry
  • Urządzenia
  • Middleware
  • Dashboardy

Narzędzia IAS

6
  • Zarządzanie przez cele
  • Analiza SWOT
  • Analiza QFD
  • Analiza FMEA
  • Kaizen
  • Zarządzenie eksploatacją

Informacje

7
  • Bacnet Middleware
  • Modbus Middleware
  • Instalacja i konfiguracja systemu
  • Diagram systemu
  • Uruchamianie aplikacji
  • Dokumentacja API
  • Schemat organizacyjny
View Categories
  • Start
  • Informacje
  • Modbus Middleware

Modbus Middleware

3 min czytania

Warstwa pośrednia do komunikacji Modbus TCP (odczyt/zapis rejestrów) zintegrowana z Symfony 7.1 oraz Doctrine ORM 3 i uwierzytelnianiem JWT.


Informacje ogólne #

  • Cel: Pośrednik do pozyskiwania danych urządzeń przemysłowych przez Modbus TCP oraz ich udostępniania wyższym warstwom systemu.
  • Język/Framework: PHP 8.2+, Symfony 7.1
  • Komunikacja z urządzeniami: aldas/modbus-tcp-client ^3.5
  • Uwierzytelnianie: LexikJWTAuthenticationBundle (JWT)
  • Warstwa danych: Doctrine ORM 3 + DB (MySQL)

Repozytorium #

Bitbucket: https://Poligrand@bitbucket.org/Poligrand/modbus-middleware.git

Klonowanie (HTTPS; w razie potrzeby użyj tokenu/aplikacyjnego hasła):

git clone https://Poligrand@bitbucket.org/Poligrand/modbus-middleware.git
cd modbus-middleware

Wymagania #

  • System: Linux / macOS / WSL2
  • PHP: >= 8.2 (z rozszerzeniami: ctype, iconv, openssl, pdo_mysql, json, mbstring, xml)
  • Composer: 2.5+
  • Baza danych: MySQL 8.0.32+
  • Serwer HTTP: Nginx lub Apache 2.4+
  • (Opcjonalnie) Symfony CLI

Pakiety kluczowe (z composer.json): Symfony 7.1 (framework-bundle, console, serializer, validator, form, yaml), Doctrine (orm, dbal, migrations), lexik/jwt-authentication-bundle, aldas/modbus-tcp-client ^3.5.


Architektura #

[Klient/API] ⇄ (JWT) ⇄ [Middleware (Symfony 7.1)] ⇄ [Modbus TCP] ⇄ [Urządzenia]
                                      └─ SQL (Doctrine) ─→ [MySQL]

Warstwa API/CLI zarządza cyklami odczytu/zapisu rejestrów Modbus, obsługuje konfigurację połączeń i persystencję. Dostęp zabezpieczony tokenami JWT.


Struktura katalogów (tylko katalogi) #

modbus-middleware/
├── bin/
├── config/
│   ├── packages/
│   └── routes/
├── migrations/
├── public/
├── src/
│   ├── Command/
│   ├── Controller/
│   ├── Entity/
│   ├── Repository/
│   ├── Service/
│   └── Util/
├── tests/
└── var/
    └── jwt/

Konfiguracja środowisk #

Pliki .env* ładowane są zgodnie z konwencją Symfony (zmienne środowiskowe mają pierwszeństwo). Poniżej redagowany przykład .env.local — uzupełnij własnymi wartościami:

APP_ENV=dev
APP_SECRET=<zmien_w_produkcji>

# JWT
JWT_SECRET_KEY="%kernel.project_dir%/var/jwt/private.pem"
JWT_PUBLIC_KEY="%kernel.project_dir%/var/jwt/public.pem"
JWT_PASSPHRASE=<twoje_haslo_do_kluczy>

# DB – MySQL 8.0.32
DATABASE_URL="mysql://ias:secret@mysql-service:3306/ias?serverVersion=8.0.32&charset=utf8mb4"

Uwaga: rozważ zmianę nazwy bazy/użytkownika (np. modbus_middleware), a sekrety trzymaj poza repo (zmienne środowiskowe/menedżer sekretów). W produkcji użyj: composer dump-env prod.


Szybki start (dev) #

# 1) Klonowanie
git clone https://Poligrand@bitbucket.org/Poligrand/modbus-middleware.git
cd modbus-middleware

# 2) Zależności
composer install

# 3) Konfiguracja ENV
cp .env .env.local  # lub utwórz .env.local z wartościami powyżej

# 4) Baza danych (MySQL)
php bin/console doctrine:database:create || true
php bin/console doctrine:migrations:migrate -n

# 5) JWT – wygeneruj klucze (patrz poniżej)

# 6) Uruchomienie serwera dev
symfony serve -d   # lub: php -S 127.0.0.1:8000 -t public

Baza danych i migracje #

php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate -n
# (opcjonalnie) Fixtures – jeśli projekt je udostępnia
# php bin/console doctrine:fixtures:load -n

JWT – generowanie kluczy #

Ścieżki kluczy zgodne z .env.local: var/jwt/private.pem, var/jwt/public.pem.

# ustaw hasło (to samo co JWT_PASSPHRASE w .env.local)
export JWT_PASSPHRASE="<twoje_haslo_do_kluczy>"

mkdir -p var/jwt
openssl genpkey -algorithm RSA -out var/jwt/private.pem -pkeyopt rsa_keygen_bits:4096
openssl pkey -in var/jwt/private.pem -pubout -out var/jwt/public.pem

# uprawnienia (tylko aplikacja)
chmod 600 var/jwt/private.pem
chmod 644 var/jwt/public.pem

Uruchamianie #

Lokalnie:

symfony serve -d
# lub
php -S 127.0.0.1:8000 -t public

CLI (przykładowe wzorce komend) — jeśli w projekcie są komendy do odczytów/zapytań Modbus, ich listę sprawdzisz:

php bin/console list | grep app:

Budowanie i wdrożenie (prod) #

  • Konfiguracja prod: APP_ENV=prod, APP_DEBUG=0 (zmienne środowiskowe / secrets).
  • Build i optymalizacja:
    composer install --no-dev --optimize-autoloader
    composer dump-env prod
    php bin/console cache:clear --env=prod
    php bin/console doctrine:migrations:migrate --no-interaction --env=prod

  • Nginx – minimalny przykład:
    server {
    server_name api.example.com;
    root /var/www/modbus-middleware/public;

    location / { try_files $uri /index.php$is_args$args; }

    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
    }

Zawartość
  • Informacje ogólne
  • Repozytorium
  • Wymagania
  • Architektura
  • Struktura katalogów (tylko katalogi)
  • Konfiguracja środowisk
  • Szybki start (dev)
  • Baza danych i migracje
  • JWT – generowanie kluczy
  • Uruchamianie
  • Budowanie i wdrożenie (prod)

© 2026 Dokumentacja systemu zarządzania IAS

Oparte na WordPressie

Na górę ↑ W górę ↑