====== PlcTool ======
**PlcTool** je samostatný nástroj příkazové řádky, který umožňuje vykonávat většinu funkcí dostupných v prostředí Mervis IDE.
Hlavní výhodou PlcTool oproti IDE je možnost automatizace pomocí **skriptů** nebo externích programů. Je ideální pro hromadnou správu řídicích jednotek (PLC).
===== Ke stažení =====
Stáhněte si odpovídající verzi podle vašeho operačního systému a architektury:
* **Windows (x64):** [[https://drive.google.com/drive/u/0/folders/1DUvrbQAYkS-mICLPvo1raMqCVgHqRI4U|Stáhnout pro Windows x64]]
* **Linux (x64):** [[https://drive.google.com/drive/u/0/folders/1Iba_DBjlZU0s6dFEW0UjVzdHKV1gruDv|Stáhnout pro Linux x64]]
* **Linux (ARM):** [[https://drive.google.com/drive/u/0/folders/1cGMhBR3DnRUiR-PM5F-7Pj6BXkEmCDbX|Stáhnout pro Linux ARM]]
* **Linux (ARM64):** [[https://drive.google.com/drive/u/0/folders/1HPm10-7u7ZEeFP7iG6r5BcWKaGrX5m_G|Stáhnout pro Linux ARM64]]
===== Hlavní funkce =====
PlcTool umožňuje následující operace s PLC s nainstalovaným Mervis RT:
* **Scan:** Vyhledání PLC v síti.
* **Info:** Získání informací o stavu PLC.
* **Upload:** Nahrání zkompilovaného projektu (RT image) a HMI (webového rozhraní).
* **Update:** Aktualizace Mervis RT.
* **License:** Aktivace nebo kontrola licence.
* **Configuration:** Stažení nebo nahrání konfigurace RT (ve formátu XML).
* **Control:** Restartování běhu aplikace.
===== Instalace a první spuštění =====
Nástroj je dodáván jako archiv, který je potřeba rozbalit.
==== Windows ====
* **Požadavky:** Windows x64. Pokud se objeví problémy, ujistěte se, že máte aktuální verzi .NET Framework.
* **Spuštění:**
- Stiskněte `Win + R`, napište `cmd.exe` a potvrďte.
- Přejděte do složky s rozbaleným nástrojem.
- Spusťte příkaz pro zobrazení nápovědy:
.\PlcTool.exe --help
==== GNU/Linux ====
* **Podporované architektury:** x64, ARM, ARM64 (AArch64).
* **Postup:**
- Přeneste nástroj na PLC (např. pomocí SCP nebo WinSCP).
- Umožněte spouštění souboru: `chmod +x PlcTool`.
- **Závislosti:** Nainstalujte potřebné balíčky:
sudo apt install icu-devtools libssl-dev libssl1.1
- **Proměnné prostředí:** V případě potřeby exportujte následující proměnné:
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
export DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp/
* **Spuštění:**
./PlcTool --help
===== Běžné příkazy =====
**Poznámka:** Většina příkazů (kromě `scan`) podporuje mDNS názvy, proxy adresy nebo doménová jména namísto IP adres.
==== 1. Skenování sítě (scan) ====
* **Lokální sken:** Bez parametrů prohledá loopback rozhraní.
./PlcTool scan
* **Sken konkrétní sítě:** Pomocí parametru `-ia` (adresa rozhraní).
* //Pozn.: Na Linuxu nelze použít síťovou nebo broadcast adresu – použijte např. `192.168.2.1`//
./PlcTool scan -ia 192.168.2.1
==== 2. Kontrola stavu PLC (wait) ====
Ověří dostupnost PLC, verzi RT a stav licence.
./PlcTool wait -h -u admin -p rw-lok
==== 3. Aktivace licence (license) ====
Nahraje licenční kód do PLC. Použijte `-up`, pokud byla licence již použita.
./PlcTool license -h -u admin -p rw -l -up
==== 4. Nahrání projektu (upload-image) ====
Nahraje zkompilovaný projekt (`.exs` soubor z adresáře `bin`).
./PlcTool upload-image -h -u admin -p rw -f
* **Volitelné přepínače:**
* `-cf` : Vymazání flash proměnných
* `-cr` : Cold Restart
==== 5. Nahrání HMI / webu (upload-web) ====
Nahraje webové rozhraní. Po nahrání je nutné PLC restartovat.
./PlcTool upload-web -h -u admin -p rw -w /
./PlcTool reboot -h -u admin -p rw
==== 6. Konfigurace (download-config / upload-config) ====
Konfigurace je ve formátu XML. Lze ji stáhnout, upravit a nahrát zpět.
# Stažení
./PlcTool download-config -h -u admin -p rw -f ./config.xml
# Nahrání
./PlcTool upload-config -h -u admin -p rw -f ./config.xml
===== Automatizace (skripty) =====
PlcTool je vhodný pro automatické spouštění ve skriptech. Příklad Bash skriptu, který provede scan a uloží výstup do textového souboru:
#!/bin/bash
# Přechod do složky se skriptem
cd "$(dirname "$0")"
# Nastavení proměnných prostředí
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp/
# Spuštění scan a uložení výstupu do souboru
script -q -c "./PlcTool scan -o text | tee PlcTool.txt"