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)

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

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

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