PlcTool
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).
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:
- vyhledat kontrolér ve zvolené síti (určené IPv4 adresou)
- získat informace o konkrétním kontroléru na specifické adrese
- nahrát zkompilovanou sestavu (image RT)
- aktualizovat RT
- licencovat RT
- stáhnout konfiguraci RT
- nahrát konfiguraci RT
- restart RT
- nahrát HMI (soubory webu)
Ke stažení
Po stažení vybrané varianty je nutné archiv rozbalit.
První spuštění
Windows
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
Linux
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ů:
sudo apt install icu-devtools libssl-dev
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
Použití
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.
Všechny parametry kromě scan
umožňují namísto IP adresy použít také mDNS, proxy, či adresu jiného serveru (doménu).
Vyhledání kontroléru
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.
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
Ověření kontroléru
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
Licencování a kontrola licence
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
Nahrání sestavy
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]
Nahrání webu (HMI)
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
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.
Stažení konfigurace
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
Nahrání konfigurace
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
Automatizované použití
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.
Volání skriptu pomocí systemd
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