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.