====== Skriptování ====== Pro složitější zpracování dat, výpočty a logické vazby je možné v systému definovat skriptové datové body. Použitý skriptovací jazyk je JScript.NET. K němu existuje řada knihoven a příkladů, Mervis SCADA ho doplňuje o knihovny s funkcemi pro přístup k hodnotám datových bodů ze systému. Skriptové datové body čtou hodnoty jednoho nebo několika datových bodů a výsledky výpočtů poskytují na svých výstupech. Je tedy možné datové body z PLC dále zpracovávat, tvořit sumární hodnoty, reagovat na změny či překročení mezí atd. Skriptové datové body mají stejné vlastnosti, jako datové body z technologií: lze je zobrazovat ve schématech, vzorkovat v čase nebo přenášet do subsystémů. Zatímco RcWare Vision vyhodnocuje skripty v rámci GUI aplikace, v Mervis SCADA mohou běžet pouze v rámci serverové aplikace. To znamená, že jakákoliv interaktivita, integrace kódu třetích stran apod. ve skriptech není podporována, protože se nemůže projevit v prohlížeči. Některé skriptové funkce tudíž v prostředí klient – server nedávají smysl. Použití skriptů je tedy třeba řešit individuálně pro každý projekt. Plná kompatibilita skriptů nemůže být zaručena vzhledem k architektonickému posunu od RcWare Vision. Použití skriptů je třeba řešit individuálně pro každý projekt. Musí nicméně zůstat podporovány běžné funkce, jako jsou například (ale ne pouze) tyto: * RCWareApp.GetDigital * RCWareApp.SetAnalogConstant * RCWareApp.SetDigitalConstant * RCWareApp.SetStringConstant * RCWareApp.SetAnalogOutput * RCWareApp.SetDigitalOutput * RCWareApp.GetAnalog * RCWareApp.GetDigital * RCWareApp.GetString * RCWareApp.GetAlarmStatus * RCWareApp.GetDataTimes * RCWareApp.GetDataPointUpdateTime * RCWareApp.GetEpochTime * RCWareApp.RaiseAlarm * RCWareApp.CancelAlarm * RCWareApp.QuitAlarm * RCWareApp.DoWrite * RCWareApp.PressButton * RCWareApp.GetDataPointName * RCWareApp.GetRCAddressFromInterface * RCWareApp.TimeString RcWare Vision je tolerantní k chybám ve skriptu. U Mervis SCADA je přísnější kontrola běhu a při výskytu chyb skriptu je výsledek nedefinovaný. Nepodporované skriptové funkce: * GetValueFromDialog() * GetParticularData() a další funkce pro čtení z DB * GetLoggedUserName() * TimeProgFunc() * SetParameter() * SendSMS() * RunRCInternalFunction() * GetConnectionStatus() * SetUserButtonPressed() * InterfaceAlarmEnabled() Časové funkce ve skriptech nyní pracují v časovém pásmu UTC (místo aby pracovaly podle lokálního času). Zpracovávají se totiž na serveru, tj. není možné vědět, jaké pásmo má klientská platforma.