Systémové proměnné runtimu

Domat Control System Forums SoftPLC Runtime (ȍesky) Systémové proměnné runtimu

Toto téma obsahuje 2 replies, má 2 hlasů a naposledy ho aktualizoval  Jan Vidim 21.8. 2012 16:11.

Prohlížíte si 3 příspěvky - 1 až 3 (z celkem 3)
  • Autor
    Příspěvky
  • #12551

    Jan Vidim
    Keymaster

    Komunikace na portech

    HW.CommError.<driver>
    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.<driver> 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.<driver>
    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.<driver> 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.<driver>
    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 <Projekt> – 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

    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).

    • Toto téma bylo upraveno před 2 roky, 7 měsíci uživatelem  Jan Vidim.
    • Toto téma bylo upraveno před 2 roky, 3 měsíci uživatelem  Jan Vidim.
    • Toto téma bylo upraveno před 1 rok, 11 měsíci uživatelem  Jan Vidim.
    #13946

    J.
    Participant

    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…

    #13968

    Jan Vidim
    Keymaster

    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ě“.

Prohlížíte si 3 příspěvky - 1 až 3 (z celkem 3)

Pro odpověď se musíte přihlásit.