PlcTool je nástroj příkazové řádky, který umí řadu funkcí známých z Mervis IDE. Existují 4 varianty, pro Windows (x64) a pro Linux (x64, ARM, ARM64).
Poznámka:
Hlavní výhodou nástroje PlcTool oproti Mervis IDE je, že jej lze využít ve vlastním skriptu či programu.
Nástroj umožňuje řadu operací s kontroléry obsahující Mervis RT:
Po stažení vybrané varianty je nutné archiv rozbalit.
Staré verze:
Pro OS Windows je k dispozici pouze varianta x64 (64 bit OS). Pokud jsou se spuštěním nástroje potíže, aktualizujte .NET Framework.
Pro spuštění nástroje je zapotřebí jen stisknout kombinaci kláves WIN+R, zadat cmd.exe a zvolit OK. Poté v příkazové řádce otevřít adresář obsahující PlcTool.exe a spustit příkazem:
.\PlcTool.exe --help
Pro OS Linux je nástroj k dispozici pro 3 různé architektury procesorů: x64, ARM a ARM64 (AArch64). Vždy záleží také na tom, jaká verze OS je na zařízení, např. na Neuron je možné nahrát 32 bit, ale také 64 bit operační systém.
Přímo do kontroléru je možné nástroj (soubor) přenést pomocí nástroje SCP (popř. programem WinSCP ve Windows).
Následně je nutné v terminálu otevřít adresář obsahující nástroj PlcTool a nastavit soubor jako spustitelný (příkazem chmod +x PlcTool).
V závislosti na systému, může PlcTool vyžadovat doplnění balíků (pro verzi 1.0.27 na Mervis OS 2.6.5.16 a novější není třeba):
sudo apt install icu-devtools libssl-dev libssl1.1
a/nebo úpravy prostředí, ty lze jednoduše provést příkazem:
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp/
Nyní je nástroj možné spustit:
./PlcTool --help
Nápovědu je možné získat spuštěním nástroje s argumentem --help. Tento argument lze použít i pro rozšířený příkaz (scan, wait, atd.) a získat tak konkrétní nápovědu.
Poznámka:
Všechny parametry kromě scan umožňují namísto IP adresy použít také mDNS, proxy, či adresu jiného serveru (doménu).
Pokud při vyhledání kontroléru (parametr scan) nejsou zadány žádné parametry, bude vyhledáváno pouze lokálně (loopback). Toho je možné využít pouze pokud je Mervis RT na stejném zařízení jako PlcTool, tedy na kontroléru Unipi.
./PlcTool.exe scan
Pro vyhledání všech kontrolérů na síti je nejprve nutné zjistit IP adresu rozhraní, na kterém se bude vyhledávat. Pro případy tohoto návodu je využita síť 192.168.2.0.
IP adresa zařízení (rozhraní) je 192.168.2.59, ve Windows použijte pro PlcTool tuto adresu.
Upozornění:
V Linuxu není aktuálně možné adresu rozhraní, ani adresy 192.168.2.0 a 192.168.2.255 využít. Vhodnou volbou pro většinu sítí je proto IP adresa končící .1 (poslední bajt).
K prohledání celé sítě se za parametr scan doplní -ia společně s IP adresou:
./PlcTool.exe scan -ia 192.168.2.1
Výstup:
Mervis Plc Tool | scan Detecting Controllers 0% Detecting Controllers 0% Detecting Controllers 33% Detecting Controllers 66% Detecting Controllers 100% Detecting Controllers 100% Id Address Slave Addr. Serial Number License RT Version Platform Name 192.168.2.59:8010 1 0000601592700320 NotLicensed 2.5.2609.152085 Generic05/12416 <unknown> 192.168.2.19:8010 1 0000B827EBDB3CD0 NotLicensed 2.5.2609.152085 Generic05/257 <unknown> Scan command result OK
Parametr wait umožňuje odeslat požadavek a nastavený čas čekat na kladnou odpověď. Požadavkem lze ověřit stav kontroléru, stav licence, verzi RT, název, nebo IP adresu.
Pokud je k dispozici pouze mDNS adresa, lze pro vyhledání kontroléru a potvrzení, že je skutečně dostupný, využít ověření licence:
./PlcTool wait -h s103-sn999 -u admin -p rw -lok
Nahrát licenci do kontroléru je možné parametrem license. Po doplnění -up se použije předchozí výsledek aktivace, pokud existuje.
./PlcTool license -h s103-sn999 -u admin -p rw -l MRTUA774VCVMMGN5 -up
Ověření licence umožňuje parametr wait:
./PlcTool wait -h s103-sn999 -u admin -p rw -lok
Před nahráním sestavy je nutné získat kompilovaný program (image) s příponou exs. Tento soubor je vytvořen při kompilaci sestavy Mervis IDE v adresáři bin.
Nahrání se provádí parametrem upload-image:
./PlcTool upload-image -h s103-sn999 -u admin -p rw -f PLC_3a861d94-ad77-4db8-ae4e-711c6fd0a334.exs
Příkaz pro nahrání sestavy je možné doplnit o další volby, nejvýznamnější jsou uvedeny níže:
-cf, --clear-flash-variables Vymazat proměnné flash [výchozí: False] -cr, --cold-restart Spustit PLC jako po studeném restartu [výchozí: False]
Název adresáře se soubory webu je složen z názvu kontroléru a názvu HMI šablony. Tento adresář je také součástí adresáře sestavy a je dostupný až po kompilaci.
Nahrání se provádí parametrem upload-web:
./PlcTool upload-web -h s103-sn999 -u admin -p rw -w HMI-PLC-local/
Po nahrání webu je nutné kontrolér (služby Mervis) restartovat:
./PlcTool reboot -h s103-sn999 -u admin -p rw
Konfigurace kompatibilní s nástrojem PlcTool je uložena v XML formátu, ruční editace je proto poměrně snadná. Alternativou k manuální editaci je konfigurace pomocí Mervis IDE a její následné stažení PlcToolem.
Při stažení s parametrem download-config je vytvořen soubor se zvoleným názvem:
./PlcTool download-config -h s103-sn999 -u admin -p rw -f ./config.xml
Pro nahrání je zapotřebí zadat parametr upload-config a soubor XML s konfigurací:
./PlcTool upload-config -h s103-sn999 -u admin -p rw -f ./config.xml
Nástroj PlcTool k funkci vyžaduje fyzickou konzoli, abyste jej mohli používat automatizovaně, je třeba jej spustit příkazem script.
Následující skript zavolá PlcTool a zapíše jeho výstup do souboru PlcTool.txt. Alternativou je zpracovat výstup již v rámci skriptu.
#!/bin/bash cd "$(dirname "$0")" export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp/ script -q -c "./PlcTool scan -o text | tee PlcTool.txt"
Skript nastavuje také podmínky pro prostředí, takže může být volán jinými službami.
Pro automatické spuštění při startu systému (nebo dle časovače) můžeme vytvořit službu. Předpokládáme, že výše uvedený skript i PlcTool se nachází ve složce /home/unipi/linux-arm.
Vytvoříme soubor /etc/systemd/system/plctoolscan.service a zapíšeme do něj:
[Unit] Description=PlcTool scanning [Service] ExecStart=/home/unipi/linux-arm/plcscript.sh Type=oneshot [Install] WantedBy=multi-user.target
Nyní je nutné provést obnovení služeb systemd příkazem:
sudo systemctl daemon-reload
a můžeme službu spustit příkazem:
sudo systemctl start plctoolscan.service