====== PlcTool ======
**PlcTool** je samostatný nástroj příkazového řádku, který umožňuje provádět mnoho funkcí dostupných v Mervis IDE.
Hlavní výhodou PlcTool oproti standardnímu IDE je možnost jeho automatizace pomocí **skriptů** nebo externích programů. Je ideální pro hromadnou správu kontrolérů.
===== Ke stažení =====
Stáhněte si odpovídající verzi pro svůj operační systém a architekturu:
* **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]]
===== Klíčové vlastnosti =====
PlcTool umožňuje na kontrolérech s Mervis RT provádět následující operace:
* **Scan:** Vyhledávání PLC v zvolené síti.
* **Info:** Získání informací o stavu konkrétního PLC.
* **Upload:** Nahrání zkompilovaných sestav (RT image) a projektů HMI (web).
* **Update:** Aktualizace verze Mervis RT.
* **License:** Aktivace nebo ověření licence RT.
* **Configuration:** Stažení nebo nahrání konfigurace RT (XML).
* **Control:** Restart runtime.
===== Instalace a první spuštění =====
Nástroj je distribuován jako archiv, který je po stažení nutné rozbalit.
==== Windows ====
* **Požadavky:** Windows x64. Pokud se vyskytnou problémy, aktualizujte .NET Framework.
* **Spuštění:**
- Stiskněte `Win + R`, zadejte `cmd.exe` a potvrďte tlačítkem OK.
- Přejděte do složky obsahující rozbalený nástroj.
- Spusťte nápovědu:
.\PlcTool.exe --help
==== GNU/Linux ====
* **Podporované architektury:** x64, ARM a ARM64 (AArch64).
* **Příprava:**
- Nástroj můžete přenést do PLC pomocí SCP nebo WinSCP.
- Nastavte soubor jako spustitelný: `chmod +x PlcTool`.
- **Závislosti:** V závislosti na vašem systému může být nutné nainstalovat další balíčky:
sudo apt install icu-devtools libssl-dev libssl1.1
- **Proměnné prostředí:** V případě potřeby před spuštěním nastavte 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 podpříkazů (kromě `scan`) umožňuje místo IP adresy použít mDNS jméno, adresu proxy nebo doménové jméno.
==== 1. Vyhledání zařízení v síti (scan) ====
* **Lokální vyhledávání:** Pokud nejsou zadány žádné parametry, proběhne hledání lokálně (loopback).
./PlcTool scan
* **Vyhledávání v síti:** Pro prohledání konkrétní sítě použijte parametr `-ia` (Interface Address).
* //Poznámka: V Linuxu nelze použít adresu sítě (např. .0) ani broadcast adresu (.255). Použijte adresu končící na .1 (např. 192.168.2.1).//
./PlcTool scan -ia 192.168.2.1
==== 2. Ověření stavu kontroléru (wait) ====
Odešle požadavek na ověření stavu kontroléru, licence a verze Mervis RT.
./PlcTool wait -h -u admin -p rw-lok
==== 3. Licencování (license) ====
Nahraje licenční klíč do kontroléru. Parametr `-up` použijte, pokud již byl licenční klíč dříve použit.
./PlcTool license -h -u admin -p rw -l -up
==== 4. Nahrání sestavy (upload-image) ====
Nahraje zkompilovaný program (soubor `.exs`, který se nachází ve složce `bin` projektu).
./PlcTool upload-image -h -u admin -p rw -f
* **Užitečné parametry:**
* `-cf` : Vymazání Flash proměnných
* `-cr` : Studený restart
==== 5. Nahrání HMI / webu (upload-web) ====
Nahraje soubory webového rozhraní. Po dokončení nahrávání je nutné kontrolér 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 uložena ve formátu XML. Můžete ji stáhnout, ručně upravit a znovu nahrá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
===== Automatizované použití (skriptování) =====
PlcTool je navržen pro použití ve skriptech. Následující příklad Bash skriptu provede vyhledání zařízení a uloží výstup do textového souboru.
#!/bin/bash
# Přechod do adresáře skriptu
cd "$(dirname "$0")"
# Nastavení požadovaných proměnných prostředí
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp/
# Spuštění vyhledávání a uložení výstupu do souboru
script -q -c "./PlcTool scan -o text | tee PlcTool.txt"