cz
en

Systémové proměnné runtimu

Komunikace na portech

HW.CommError.
Ke čtení.
false komunikace na tomto kanálu je OK
true na tomto kanálu alespoň jedna proměnná má chybu komunikace

System.Communication.Block
Lze zapisovat.
Globálně zastavuje komunikaci na všech kanálech. Pokud je komunikace takto zastavená, proměnná HW.CommError. je false, i když kanál má fyzickou chybu komunikace.
false neblokováno, komunikace běží
true blokováno, komunikace neběží

HW.PriorityRefresh.<kanál>
Lze zapisovat.
Na náběžnou hranu nucená aktualizace proměnných (pouze u M-Busu). Používá se pro řízený odečet z měřičů na základě nějaké události.

HW.LogPortMonitor.CircularSize.
Lze zapisovat.
Velikost souboru (v kB) pro záznam komunikace port monitoru na Flash paměť podstanice (MiniPLC) nebo na HDD (SoftPLC). Má smysl pouze pokud HW.LogPortMonitor. je True.
0 velikost souboru není omezena – pozor, časem může dojít k zaplnění paměti nebo místa na disku!

HW.LogPortMonitor.
Lze zapisovat.
false komunikace se nevzorkuje – výchozí stav
true komunikace se vzorkuje

Alarmová LED a alarmy

System.Alarms.IndicatorModeManual
Lze zapisovat.
U podstanic s alarmovou LED určuje, čím bude tato LED řízena. Při automatickém módu je LED řízena podle stavu alarmů v podstanici:
bez alarmů – zhasnuta
alespoň jeden nepotvrzený alarm – bliká
alespoň jeden nesmazabý alarm – svítí trvale.
Při manuálním módu je řízena proměnnou System.Alarms.IndicatorManualState.
false automatický mód
true manuální mód, LED řízena proměnnou System.Alarms.IndicatorManualState

System.Alarms.IndicatorManualState
Lze zapisovat.
řídí alarmovou LED, pokud je System.Alarms.IndicatorModeManual v true.
false LED nesvítí
true LED svítí

System.Alarms.AcknowledgeCount
Ke čtení.
Hlásí počet aktivních potvrzených alarmů (z bloků BD49, BD50) v systému.

System.Alarms.ActiveCount
Ke čtení.
Hlásí počet aktivních nepotvrzených alarmů (z bloků BD49, BD50) v systému.

System.Alarms.MemoryCount
Ke čtení.
Hlásí počet alarmů v paměti (odeznělých – nesmazaných) (z bloků BD49, BD50) v systému.

Systémový čas

System.RTC
Aktuální čas v systému včetně časové zóny a případného letního posunu. Používá se pro řízení časových programů a dalších procesů, které musejí respektovat letní/zimní čas a časovou zónu. časová zóna se definuje v IDE ve vlastnostech projektu – Properties – Time zones & daylight savings.

System.RTCDaylight
Flag letního času. Přechod mezi letním a zimním časem se děje podle tabulky, definovatelné ve vlastnostech projektu.
false právě je zimní čas
true právě je letní čas

System.RTCUTC
Aktuální čas v systému = světový čas (Universal Time Coordinated), používá se pro procesy, kdy čas musí průběžně vzrůstat (což se neděje při přechodu z letního na zimní čas).

Spouštění a zastavování runtimu

System.RunMode
Ke čtení.
Stav IDE nebo runtimu.
0 stop
1 spouštění ?
2 plný běh (Full Run)
3 zastavování (Shut Down Full Run)
4 pouze vyhodnocování bloků (Evaluation only)
8 pouze komunikace (Communication only)

System.WaitForApplicationStop
Lze zapisovat.
Určuje, zda runtime má být zastavován „bezpečně“, tedy až na základě splnění nějakých procesních podmínek. Pokud ano, jsou k tomu potřeba proměnné System.StopRequest a System.StopAllowed – viz dále.
false normální zastavování runtimu „natvrdo“
true „bezpečné“ zastavování

System.StopRequest
Ke čtení.
Při požadavku na zastavení runtimu (dálkově přes IDE) tato proměnná naběhne do true a na základě tohoto požadavku může procesní logika zahájit opatření pro bezpečný stop. Jakmile jsou tato opatření splněna (např. pokles teploty výměníku pod určitou hodnotu, prokazatelné zavření ventilů pomocí signálu z koncových spínačů atd.), program by měl zapsat true do proměnné StopAllowed, čímž se teprve runtime zastaví. Mezitím je program v módu Zastavování (Shut Down Full Run).
false runtime není zastavován
true runtime přijal požadavek na zastavení

System.StopAllowed
Lze zapisovat.
Při zápisu true do StopAllowed dojde k zastavení runtimu (ovšem pouze pokud je požadován bezpečný stop (System.WaitForApplicationStop = true) a byl přijat požadavek pro zastavení runtimu (System.StopRequest = true), viz výše).

RcWare DB

System.RcWareDB.SavingEnabled
Lze zapisovat.
Povolí / zakáže ukládání do RcWare DB, pokud je ukládání povoleno, pak se řídí intervalem. SavingEnabled blokuje ukládání i pro SaveNow. Pokud je zadán nulový interval, ukládá se jen na vyžádání SaveNow (pro spotřeby, ukládám jen když potřebuju).
false do databáze se neukládá
true do databáze se ukládá

System.RcWareDB.SaveNow
Lze zapisovat.
Uloží hodnoty do databáze na náběžnou hranu této proměnné, po dokončení uložení flag shodí do false

System.RcWare.DB.Status – jako pro proxy
Ke čtení.
Pro identifikování stavu připojení, chyby ukládání
-2 komunikace není nakonfigurována, nekomunikuje se
-1 nakonfigurováno, neznámý stav
0 s databází se nedá komunikovat, databáze nedostupná
1 OK
10 data odmítnuta
11 výjimka
12 výjimka připojení

RcWare Proxy server

System.RcWare.Proxy.Status
Ke čtení.
Pro identifikování stavu připojení přes proxy
-2 komunikace na proxy není nakonfigurována, nekomunikuje se
-1 konfigurováno, neznámý stav
0 proxy nedostupná (připojení do internetu???)
1 registrace dat (přechodný stav)
2 komunikují se hodnoty
10 chybné jméno / heslo

Alarms.AlarmServerConnection.Status
Ke čtení.
Pro identifikování stavu připojení na alarmový server (běžně se nepoužívá)
-2 not configured;
-1 configured, status unknown;
0 error;
1 ok;
13 cannot set some alarm state on server

Logování událostí

System.Logger.Enable
Lze zapisovat.
Povoluje logování systémových událostí runtimu do souboru.
false neloguje se
true loguje se
Pozor na to, aby u platforem IPLC5… nedošlo k zaplnění disku!

System.Logger.Facilities
Lze zapisovat.
Bitové pole – co se ukládá při logování systémových událostí runtimu do souboru:
0 Generic
2 Runtime
4 UpdaterEngine
1024 SoftplcProxy
2048 PortMonitor
4096 RcWareDb

System.Logger.Level
Lze zapisovat.
Definuje, které všechny události se ukládají při logování systémových událostí runtimu do souboru
1 Debug0
2 Debug
4 Info
6 Warning
9 Error
10 None

Ukládání aktuálních hodnot

System.ForceSaveValues
Lze zapisovat.
Na náběžnou hranu ukládá aktuální proměnné do souboru na disk nebo do flash. (Jinak se proměnné ukládají pravidelně každých 30 min, pokud to není vypnuto proměnnou No save request to flash.) Pozor, časté ukládání (více než cca. 1x za hodinu) může způsobit překročení maximálního počtu zápisů do EEPROM a zničení paměti. Tuto funkci používejte uvážlivě nebo raději vůbec ne.

System.ValuesLastSaveTime
Ke čtení.
Poslední čas uložení hodnot bez ohledu na to, odkud (i pokud uložil RT sám)

System.Variables.CurrentValuesLoaded
Ke čtení.
Jen pro „velké“ PLC, true = aktuální hodnoty se načetly ze souboru .vars. Normálně se po startu RT proměnné vezmou z projektu .splcproj, pak se zkontroluje zda existuje soubor .vars, pokud ano, zkontroluje se jeho CRC, pokud je OK, přehraje hodnoty proměnných do RT ze souboru .vars.
false aktuální hodnoty jsou z projektu .softplc (tedy nejspíš ty, které byly nahrány při posledním nahrání projektu z IDE)
true aktuální hodnoty jsou ze souboru .vars (tedy ty, které byly zálohovány před 30 min. nebo po vynuceném zápisu (System.ForceSaveValues))

Pozor: běžící RT zapisuje pouze do .vars, IDE zapisuje do .vars i do .splcproj (aby hodnoty šly s projektem).

 

Otázka: 

System.ForceSaveValues

System.ValuesLastSaveTime

Tyhle dve promenne nejak v IDE (0.9.10.805) u sveho MiniPLC nevidim. Nezalezi na verzi Runtimu nebo na necem takovem? Nebo si je musim nejak vytvorit? Ostatne nevidim ani promenne System.Logger…

 

Odpověď:

Nejnovější systémové proměnné se objevily někdy během r. 2011, takže v 0.9.10.805 nebudou; doporučujeme update z http://www.rcware.eu. Teď už je tam hromadný instalátor; před jeho prvním použitím je nutné odinstalovat všechny SoftPLC programy, při dalších aktualizacích už se může přeinstalovávat „přes ně“.