19. srpna 2015 | Reliance SCADA
SCADA systém Reliance umožňuje přehrát vybraný zvuk při vzniku, zániku nebo kvitaci alarmu/události. Přehrávaný zvuk může být společný pro všechny alarmy/události v projektu, nebo může být zadán pro každý alarm/událost samostatně. Díky tomu uživatel (dispečer) při vzniku alarmu okamžitě pozná, že jde např. o závažný alarm nebo běžnou událost. Další možností, jak od sebe alarmy zvukově odlišit, je nechat systém Reliance převést text alarmu na řeč a tu pak reprodukovat uživateli.
Pro převod textu na řeč je možné využít objekt SAPI.SpVoice, který je k dispozici od Windows XP a není tedy vyžadována žádná instalace. Dle našich zkušeností není reprodukovaná řeč ve Windows XP příliš kvalitní. Ve Windows 7 je kvalita již vynikající.
Následující příklad demonstruje použití objektu SAPI.SpVoice pro převod jednoduchého textu na řeč:
Jak vidno, příklad je opravdu jednoduchý. Stačí vytvořit objekt SpVoice a zavolat mu metodu Speak, do které se jako parametr předá text, který má být převeden na řeč.
Upozornění: Je nutné si uvědomit, že metoda Speak je v uvedeném příkladu volána synchronně. To znamená, že skript bude čekat na dokončení řeči a tím budou blokovány další skripty zařazené ke spuštění v rámci stejného podprocesu. Nejjednodušším řešením tohoto problému je vyhradit v projektu systému Reliance samostatný podproces pro ty skripty, které budou provádět převod textu na řeč. Díky tomu nebude ovlivněn běh skriptů důležitých pro ovládání vlastní technologie.
Hlas, jazyk a výslovnost mluvící "osoby" jsou přednastaveny podle národního prostředí a podle výčtu hlasů nainstalovaných ve Windows. Lze je změnit nastavením vlastnosti Voice. V následujícím příkladu je naznačeno, jak získat seznam dostupných hlasů a jak určitý hlas nastavit:
Aby se převedl text alarmu při vzniku, zániku nebo kvitaci na řeč, stačí v projektu systému Reliance vytvořit jeden společný skript (typ Událostní) a napojit jej u všech požadovaných alarmů na příslušnou událost (např. vznik).
Do každého skriptu, který je vyvolán alarmem, je kromě dalších informací předán i text alarmu. Text alarmu je možné ve skriptu získat pomocí metody RScr.GetCurrentScriptDataEx. Tento text je pak snadné použít pro převod na řeč způsobem popsaným v tomto článku. Následující skript je univerzální a bude-li napojen např. na vznik alarmu, bude text alarmu převeden na řeč:
Zvuk textu alarmu "Sensor Error! It could cause the system to behave unpredictably." převedeného na řeč si můžete poslechnout v tomto zvukovém záznamu:
Převod textu na řeč v jazyku VBScript nemusí být použit jen v souvislosti s alarmem, ale obecně při jakékoliv události v systému Reliance, při níž je prováděn skript.