Technické informace
Manta ekosystém
Tato sekce poskytuje základní technický přehled architektury, požadavků a provozních principů řešení Manta pro zákazníky a implementační partnery.
Řešení
Manta je navržena jako server–terminálové řešení, kde aplikační server zajišťuje centrální logiku a databázové operace a terminály (Android) slouží jako klientská zařízení.
Řešení je optimalizováno pro stabilní provoz ve výrobním prostředí a není extrémně náročné na výkon serveru.
Doporučené parametry aplikačního serveru
Pro standardní nasazení (do cca 50 současně aktivních zařízení):
- CPU: 8+ jader
- RAM: 16+ GB
- Uložiště: 250+ GB SSD/NVMe
- Síťové připojení: 1 Gbit Ethernet
- OS: Windows Server 2019+
Všechny potřebné softwarové komponenty jsou instalovány automaticky v rámci instalačního procesu Manty.
pro funcionalitu je využíván primarně IIS (Internet Information Services).
zavislosti v IS Helios
Pro úspěšnou instalaci Manty musí být v Heliosu (platí pro inuvio) nainstalován modul: Evidence zboží na lokacích (Gatema)
Instalace Manta (Server)
- Instalace IIS na aplikační server
- Stažení instalačního balíčku Manty
- Spuštění instalátoru MantaSetup.exe
- Nastavení profilu (testovací / ostrý)
- Spuštění volby Upgrade aplikací a databáze
Po dokončení jsou nainstalovány komponenty v Heliosu a komunikační můstek mezi serverem a terminály.
Instalace Manta (Klient)
Koncové zařízení tvoří Android zařízení tablet, AIO, nebo ruční zařízení.
Nejjednodušší způsob instalace terminálů je pomocí QR kódů. Dále je možné APK soubor stáhnout v rámci webové konfigurace.
Používají se dva typy QR kódů:
- QR kód stažení aplikace – stáhne a nainstaluje nejnovější verzi aplikace
- QR kód přihlášení – nastaví přístupové údaje k serveru
QR kódy lze generovat:
- v instalačním nástroji Manty
- ve webové konfiguraci:
| Nastavení lze importovat a exportovat z koncového zařízení i přes soubor *.json
Tyto možnosti jsou v ramci android aplikace v menu nastavení. |
Správa APK balíčků
Ve webové konfiguraci je dostupná sekce:
Menu → Aplikace → Správa APK balíčků
Slouží k:
- správě verzí APK
- nahrávání nových balíčků
- generování QR kódů pro instalaci a konfiguraci terminálů
Standardně se nové APK nahrají automaticky při aktualizaci Manty.
Provoz Manty na Windows terminálech
Na některých typech zařízení může být Manta provozována prostřednictvím Android aplikace spuštěné v prostředí Windows pomocí subsystému WSA (Subsystem Windows pro Android).
Instalace Kiosku
Odkaz na googlePlay Stažení aplikace fully Kiosk Browser

nejprve je potřeba nainstalovat aplikaci.
K hlavnímu menu je možné přistupovat gestem Swipe (tažení prstem) z levé strany obrazovky do středu.
Vybereme možnost Settings -> Universal Launcher
Zde zaškrtnout Show Launcher on Start na true
v rámci možnosti Select Items to Show je možné vybrat aplikace přistupné uživatelům v domovské obrazovce Kiosku.
v rámci settings vybereme možnost Kiosk Mode kde je nutné zašrtnout Enable Kiosk Mode . Na této kartě je možné upravit nastavení kiosku dle potřeb uživatele.
Tabulky pro sběr dat ze strojů
TABMANTA_Intdata
| Column_name | Type | Length | Prec | Scale | Nullable | Popis |
| Id | int | 4 | 10 | 0 | no | Vnitřní identity – vyplňuje se automaticky |
| HwInputId | int | 4 | 10 | 0 | no | Vazba na ID z tabulky TABMANTA_DeviceHardwareInput |
| SaveSQLDate | datetime | 8 | no | Datum založení na SQL | ||
| StartDate | datetime | 8 | no | Datum a čas zahájení události | ||
| FinishDate | datetime | 8 | yes | Datum a čas ukončení události | ||
| Value | numeric | 9 | 19 | 6 | no | Hodnota (pro cyklus vždy 1, pro ostatní hodnota z převodníku ) |
| Status | bit | 1 | no | Status - info pro další zpracování | ||
| IntervalTime | numeric | 9 | 19 | 6 | no | Čas sepnutí |
| OnTime | numeric | 9 | 19 | 6 | no | Čas náběhové hrany |
| OffTime | numeric | 9 | 19 | 6 | no | Čas sestupné hrany |
| CykleTime | numeric | 9 | 19 | 6 | no | Celkový čas cyklu |
| Uploaded | bit | 1 | no | Info za byl záznam zpracován do ERP | ||
| Complete | bit | 1 | no | Info zda je záznam kompletní a může se zpracovat do ERP | ||
| Author | nvarchar | 510 | yes | Autor záznamu suser_sname() | ||
| Changed | nvarchar | 510 | yes | Autor změny záznamu suser_sname() | ||
| CreateDate | datetime | 8 | no | Datum vytvoření -- nemusí se vyplňovat má default | ||
| ChangeDate | datetime | 8 | yes | Getdate() změny záznamu | ||
| Note | nvarchar | -1 | yes | Libovolná poznámka k záznamu | ||
TABMANTA_DeviceHardwareInput
| Column_name | Type | Length | Prec | Scale | Nullable | Popis |
| Id | int | 4 | 10 | 0 | no | Vnitřní identity – vyplňuje se automaticky |
| Name | nvarchar | 256 | yes | Libovolné pojmenování vstupu | ||
| HwId | int | 4 | 10 | 0 | no | Vazba na ID z tabulky TABMANTA_DeviceHardware |
| InputNum | int | 4 | 10 | 0 | no | Číslo vstupu |
| WpId | int | 4 | 10 | 0 | no | Id pracoviště (ID z ViewMANTA_workplace) |
| Description | nvarchar | 510 | yes | Libovolný popis HW vstupu | ||
| Author | nvarchar | 510 | yes | Autor záznamu suser_sname() | ||
| Changed | nvarchar | 510 | yes | Autor změny záznamu suser_sname() | ||
| CreateDate | datetime | 8 | no | Datum vytvoření -- nemusí se vyplňovat má default | ||
| ChangeDate | datetime | 8 | yes | Getdate() změny záznamu | ||
| Note | nvarchar | -1 | yes | Libovolná poznámka k záznamu |
TABMANTA_DeviceHardware
| Column_name | Type | Length | Prec | Scale | Nullable | Popis |
| Id | int | 4 | 10 | 0 | no | Vnitřní identity – vyplňuje se automaticky |
| Name | nvarchar | 200 | no | Jméno zařízení (Např. PLC1, PLC2 …….) | ||
| IpAdress | nvarchar | 60 | yes | IP adresa zařízení | ||
| Port | int | 4 | 10 | 0 | yes | Port na kterém komunikuje |
| Type | nvarchar | 510 | yes | Typ zařízení (plc) | ||
| MacAdress | nvarchar | 400 | yes | Mac adresa zařízení | ||
| LoginName | nvarchar | 400 | yes | Přihlašovací jméno | ||
| Password | nvarchar | 400 | yes | Přihlašovací heslo | ||
| Author | nvarchar | 510 | yes | Autor záznamu suser_sname() | ||
| Changed | nvarchar | 510 | yes | Autor změny záznamu suser_sname() | ||
| CreateDate | datetime | 8 | no | Datum vytvoření -- nemusí se vyplňovat má default | ||
| ChangeDate | datetime | 8 | yes | Getdate() změny záznamu | ||
| Note | nvarchar | -1 | yes | Libovolná poznámka k záznamu |
Dále musí existovat funkce pro zpracování jednotlivých záznamů z tabulky TABMANTA_Indata.
Funkce pro zpracování stavu
Jméno: dbo.FUMANTA_AC_Status_??? (??? – libovolný sufix např. dle pracoviště )
Vstup: @WPID – id pracoviště z ViewMANTA_Workplace, @autoIdleDelay - čas po který je tolerováno nekomunikace stroje, po uplynutí tohoto času by měl být nastaven prostoj
Výstup: @status bit - stav pracoviště 1=pracuje, 0=nepracuje
Vzor:
create or alter function dbo.FUMANTA_AC_Status_HST(@WPID int,@autoIdleDelay int)
returns bit
AS
BEGIN
DECLARE @Status bit
set @autoIdleDelay=@autoIdleDelay*-1
IF exists( Select IND.ID from TABMANTA_Intdata IND
left outer join TABMANTA_DeviceHardwareInput DI on DI.ID=IND.HwInputId
where DI.WPID=@WPID and Ind.SaveSQLDate > DATEADD(ss,@autoIdleDelay, getdate())) -- existuje záznam,který je vyšší než teď-konstanta
SET @Status=1
else
SET @status=0
return @status
END
Funkce pro zpracování množství
Jméno : dbo.FUMANTA_AC_Quantity_???
Vstup: @WPID – id pracoviště z ViewMANTA_Workplace
Výstup: @koeficient =koeficient pro vynásobení hodnoty value z tabulky TabMANTA_Outdata
Vzor :
create or alter function dbo.FUMANTA_AC_Quantity_HST(@WPID int)
returns numeric(19,6)
AS
BEGIN
DECLARE @koeficient numeric(19,6)
SET @koeficient=1.0000
return @koeficient
END
Dále musí existovat procedura na zpracování vstupů, které se periodicky spouští SQL jobem. Procedura uloží vypočítané množství kusů do tabulky událostí terminálů
Vzor jobu:
create or alter procedure SPMANTA_processorSaveQuantity @WPId int, @IDInt int, @value numeric(19,6),@Mesg nvarchar(max) OUTPUT
AS
DECLARE @Function nvarchar(max)=NULL,@return int=0,@koeficient numeric(19,6)=1,@IDOut int
DECLARE @SQL nvarchar(max)
SELECT @Function=FunctionQuantity from VIEWMANTA_WorkPlace where ID=@WPId
IF OBJECT_ID(@Function,'FN') IS NOT NULL
BEGIN
set @SQL='select @out=' +@Function + '(' + cast(@WPId as nvarchar(30)) + ')'
DECLARE @ParmDefinition nvarchar(255)
SET @ParmDefinition = '@Out numeric(19,6) OUTPUT';
EXEC sp_executesql @SQL,@ParmDefinition,@out=@koeficient OUTPUT
Update TABMANTA_outdata set QuantityMachine=QuantityMachine+(@value*@koeficient),QuantityMachineLive=QuantityMachineLive+(@value*@koeficient)
where ID in (SELECT ID from TABMANTA_outdata where TerminalEvent=3 and CompleteRecord=0 and WorkplaceId=@WPId)
/*zápis do vazební tabulky TABMANTA_xInOut*/
INSERT INTO TABMANTA_xInOut([inDataId],[outDataId],[Value],[Coef]) values(@IDInt,@IDOut,@value,@koeficient)
set @return=1
set @Mesg='OK'
END
ELSE
BEGIN
set @return=0
set @Mesg='Na pracovišti id='+cast(@WPId as nvarchar(30))+ ' není uvedena procedura pro zpracování'
END
RETURN @return


