Domat IDE
Domů
  • Vývojové prostředí Domat IDE
  • Práce s vývojovým prostředím
  • Regulátor (PLC)
  • Založení projektu
  • HMI Editor (web, LCD menu)
  • Tvorba software
  • Zařízení (hardware)
Kontakt
  • Čeština
  • English
Domů
  • Vývojové prostředí Domat IDE
  • Práce s vývojovým prostředím
  • Regulátor (PLC)
  • Založení projektu
  • HMI Editor (web, LCD menu)
  • Tvorba software
  • Zařízení (hardware)
Kontakt
  • Čeština
  • English
  • Vývojové prostředí Domat IDE
    • Často kladené dotazy na technické podpoře
    • Programovací možnosti
    • Komunikační možnosti
    • Hardwarové možnosti
    • Nároky na uživatele
    • Definice formálních pojmů nezbytných pro práci s Merbon IDE
    • Obecný postup při programování regulátorů
  • Práce s vývojovým prostředím
    • Založení sestavy
    • Založení sestavy - zjednodušený mód
    • Klávesové zkratky
    • Ovládání myší
    • Nastavení
    • Vyhledávání proměnných - Najít
    • Archivace projektu
  • Regulátor (PLC)
    • Přiřazení regulátoru (nastavení typu)
    • Aktualizace RT běžícího na regulátoru
    • Aktualizace HW z knihovny
    • Nahrání programu do regulátoru
    • Online změny
    • Vlastnosti regulátoru
    • Konfigurace regulátoru
    • Reboot PLC
    • Dynamické změny
    • Nastavení času
    • Nastavení firewallu
    • Připojení přes proxy
    • Profily
    • Alarmový log
    • Definice činnosti regulátoru PLC
    • Nastavení komunikačního kanálu
    • Vytváření HW proměnných v komunikačním kanálu
    • Automatické přidání zařízení Domat
    • Export zařízení
    • Import zařízení
    • Vazby mezi hardwarovými I/O
    • Mapování globálních proměnných na HW
    • Přístup k proměnným jiného PLC
    • Nastavení Modbus serveru
    • Nastavení BACnet serveru
    • Nastavení SSCP sériové linky
    • OPC server
    • Transformace a konfigurace analogových vstupů
    • Nastavení ukládání dat do databáze (historie)
    • Přehled alarmů
    • Ladění
    • Licencování PLC
    • Přerušení
    • Body přerušení
    • Výjimky z chodu PLC
    • Ruční režim
    • Srovnání HW platform
    • SSL komunikace
    • Stav systému
    • Využití zdrojů PLC
    • Zálohování proměnných
    • Modbus konfigurátor
    • Porovnání lokálního a vzdáleného projektu
    • Syslog protokol
    • Hromadný zápis do proměnných
  • Popis komunikačních protokolů

    • Komunikační protokol BACnet
    • Komunikační protokol Daikin iTC (.NET)
    • Komunikační protokol Hauser (.NET)
    • Komunikační protokol IEC 60870-5-104
    • Komunikační protokol IEC62056-21
    • Komunikační protokol M-bus
    • Komunikační protokol Modbus
    • Komunikační protokol K-Bus
    • Komunikační protokol SoftPLC Link
    • Komunikační protokol SSCP
    • Komunikační protokol Text Parser (.NET)
  • Založení projektu
    • Nový projekt
    • Definice proměnných
    • Autogen - automatické namapování softwarových proměnných na vstupy a výstupy
    • FUPLA editor
    • ST editor
    • Prohlížeč proměnných
    • Grafy (proměnných)
    • Port monitor
    • Výsledky
    • Výstup
    • Hlídané
  • HMI Editor (web, LCD menu)
    • Popis HMI editoru
    • Binární funkce
    • Práce ve zjednodušeném módu
    • Práce v plném módu
    • Uživatelská politika
    • Textové HMI objekty
    • Tvorba definice LCD displeje pro PLC
    • Tvorba textové definice pro terminál
    • Grafické HMI objekty
    • Tvorba grafické definice pro terminál
    • Vytváření stylů
    • Web server
    • Servisní web
    • PLC jako externí webserver
    • Domat Visual
  • Tvorba software
    • Založení sestavy
    • Založení sestavy - zjednodušený mód
    • Programovací jazyky
    • Přístup k proměnným vnořených bloků
    • Nastavení počáteční hodnoty
    • Společné prvky

      • Identifikátory
      • Klíčová slova
      • Mezery
      • Komentáře
      • Literály
      • Proměnné
      • Konstanty
    • Typy dat

      • Elementární datové typy (BOOL, INT, REAL, STRING, atd.)
      • Rodové datové typy
      • Odvozené (uživatelské) datové typy
      • Implicitní konverze elementárních typu
      • Vyhodnocování výrazu z pohledu císelných typu
    • Objektové programování (OOP)
      • Datový typ pointer
      • Datový typ reference
      • Jmenný prostor (namespace)
    • Programové organizační jednotky (POU)
      • Funkce
      • Standardní funkce
      • Funkční blok
      • Standardní funkční bloky
      • Program
    • Jazyk strukturovaného textu (ST)

      • ST editor
      • Příkazy v jazyce ST
      • Operátory jazyka ST
      • ST drivery
    • Jazyk funkčního blokového schématu (FUPLA)

      • FUPLA editor
      • Spojovací čáry v editoru FUPLA
      • Viditelnost vstupů a výstupů na funkcním bloku
    • Knihovny

      • Vytvoření knihovny
      • Použití vlastní (uživatelské) knihovny
      • Knihovní prototypy
      • Basic Analogue Boxes

        • Composition / Decomposition

          • Bit Composition (BD18)
          • Bit Composition 8bit (BD18)
          • Bit Decomposition (BD19)
          • Bit Decomposition 8bit (BD19)
          • Int Composition (BD55)
          • Int Decomposition (BD54)
        • Controllers

          • Direct Acting (cooling)

            • On-Off Control - Cooling (B30)
            • P-Controller - Cooling (B32)
            • PI-Controller - Cooling (B34)
            • PID-Controller - Cooling (B36)
          • Reverse Acting (heating)

            • On-Off Control - Heating (B31)
            • P-Controller - Heating (B33)
            • PI-Controller - Heating (B35)
            • PID-Controller - Heating (B37)
          • Helpers

            • Helper: Multi In Bool 8
            • Helper: Multi In Lint
            • Helper: Multi In Real
            • Helper: Multi Out Bool
            • Helper: Multi Out Bool 8
            • Helper: Multi Out Lint
            • Helper: Multi Out Real
        • Mathematics

          • ABS
          • ADD
          • AVG
          • CEIL
          • DIV
          • FLOOR
          • MAX
          • MIN
          • MOD
          • MUL
          • Smart Average (B48)
          • SUB
          • TRUNC
          • TRUNC_TO_LINT
          • Compare Functions

            • EQ
            • GE
            • GT
            • LE
            • LT
            • NE
          • Logarithm / Exponential Functions

            • EXP
            • EXP10
            • EXP2
            • EXPT
            • LN
            • LOG
            • SQRT
          • Specials

            • ISINFINITY
            • ISNAN
            • ISNEGATIVEINFINITY
            • ISPOSITIVEINFINITY
          • Time

            • ADD_DT_TIME
            • ADD_LDT_LTIME
            • ADD_TOD_TIME
            • ADD_LTOD_LTIME
            • CONCAT_DATE_TOD
            • DIVTIME
            • MULTIME
            • SUB_DATE_DATE
            • SUB_DT_DT
            • SUB_DT_TIME
            • SUB_TOD_TIME
            • SUB_TOD_TOD
          • Trigonometric Functions

            • ACOS
            • ACOSH
            • ASIN
            • ASINH
            • ATAN
            • ATANH
            • COS
            • COSH
            • SIN
            • SINH
            • TAN
            • TANH
        • Sources

          • B3 Sinusový Generator
          • B4 Pilový Generator
        • Specials

          • Analogue Incremental Counter (B107)
          • Analogue Memory (B105)
          • Analogue Shift Register (B110)
          • Integer Memory (B106)
          • Integer Shift Register (B111)
          • Integrator (B113)
          • RAND
        • Switches

          • Analogue Demultiplexer (B10)
          • Integer Demultiplexer (B12)
          • MUX
          • SEL
        • Time Blocks

          • GETDELTATIME
          • GETDELTATIME4
          • GETDSTOFFSET
          • GETEVALTIME
          • GETEVALTIME4
          • GETLOCALTIME
          • GETTIMEZONEOFFSET
          • GETUTCTIME
          • PLC Time (B99)
          • Time+Date to Total Seconds (B97)
          • Total Seconds to Time+Date (B98)
          • Conversions

            • COMPOSEDATETIME
            • CONVERTTOLOCALTIME
            • CONVERTTOUTCTIME
            • DATETOTALDAYS
            • DATETOTALHOURS
            • DATETOTALMILLISECONDS
            • DATETOTALMINUTES
            • DATETOTALSECONDS
            • DECOMPOSEDATE
            • DECOMPOSETIME
            • Time Conversion (B100)
            • TIMETOTALDAYS
            • TIMETOTALHOURS
            • TIMETOTALMILLISECONDS
            • TIMETOTALMINUTES
            • TIMETOTALSECONDS
        • Time Dependent

          • Filter (B86)
          • Pulse Width Modulation (B87)
          • Slew Rate Limit (B84)
          • Variable Slew Rate Limit (B85)
        • Transfer Function

          • LIMIT
          • Limits (B82)
          • Linear Interpolation (B83)
          • Two-Point Function (B80)
          • Four-Point Function (B81)
        • Type Casts

          • BCD_TO_UDINT
          • BCD_TO_UINT
          • BCD_TO_ULINT
          • BCD_TO_USINT
          • DT_TO_DATE
          • DATE_TO_LDATE
          • DATE_TO_DT
          • DATE_TO_LDT
          • DATE_TO_LTOD
          • DATE_TO_TOD
          • DT_TO_LDT
          • DT_TO_LTOD
          • DT_TO_TOD
          • LDATE_TO_DATE
          • LDATE_TO_DT
          • LDT_TO_DATE
          • LDT_TO_DT
          • LDT_TO_LDATE
          • LDT_TO_LTOD
          • LTIME_TO_TIME
          • LTOD_TO_DT
          • LTOD_TO_LDT
          • LTOD_TO_TOD
          • TO_BCD_BOOL
          • TIME_TO_LTIME
          • TO_BCD_BYTE
          • TO_BCD_DWORD
          • TO_BCD_LWORD
          • TO_BCD_WORD
          • TO_BYTE
          • TO_DINT
          • TO_DWORD
          • TO_INT
          • TO_LINT
          • TO_LREAL
          • TO_LWORD
          • TO_REAL
          • TO_SINT
          • TO_STRING
          • TO_UDINT
          • TO_ULINT
          • TO_USINT
          • TO_WORD
          • TOD_TO_LTOD
      • Basic Digital Boxes

        • Counters

          • Pulse Counter (BD30)
          • Down

            • Counter DINT (IEC 61131)
            • Counter INT (IEC 61131)
            • Counter LINT (IEC 61131)
            • Counter UDINT (IEC 61131)
            • Counter ULINT (IEC 61131)
          • Up

            • Counter DINT (IEC 61131)
            • Counter INT (IEC 61131)
            • Counter LINT (IEC 61131)
            • Counter UDINT (IEC 61131)
            • Counter ULINT (IEC 61131)
          • UpDown

            • Counter DINT (IEC 61131)
            • Counter INT (IEC 61131)
            • Counter LINT (IEC 61131)
            • Counter UDINT (IEC 61131)
            • Counter ULINT (IEC 61131)
        • Logical Operations

          • AND
          • NEG
          • NOT
          • OR
          • ROL
          • ROR
          • SHL
          • SHR
          • XOR
        • Sources

          • Pulse Generator (BD2)
        • Specials

          • Alarm Memory Ext. (BD57)
          • Boolean Memory (BD51)
          • Falling Edge Detection (IEC 61131)
          • Flip Flop (BD52)
          • Latch Flip Flop (BD53)
          • Multiple Alarm Memory (BD50)
          • Rising Edge Detection (IEC 61131)
          • RS FlipFlop (IEC61131)
          • Single Alarm Memory (BD49)
          • Single Alarm Memory w. Delay (BD56)
          • SR FlipFlop (IEC61131)
          • Toggle
        • Switches

          • Digital Demultiplexer (BD11)
        • Time Dependent

          • Digital Filter (BD15)
          • Monostable FlipFlop
          • Monostable FlipFlop (Non Resetable)
          • Pulse Encoder (IEC 61131)
          • Switch-Off Delay (BD13)
          • Switch-Off Delay (IEC 61131)
          • Switch-On Delay (BD12)
          • Switch-On Delay (IEC 61131)
          • Switch-On/Off Delay (BD14)
        • Type Casts

          • TO_BOOL
      • Basic String Boxes

        • BYTES_TO_STRING
        • CONCAT
        • DELETE
        • INSERT
        • FIND
        • LEFT
        • LEN
        • LINT_TO_STRING
        • LREAL_TO_STRING
        • MID
        • REPLACE
        • RIGHT
        • STRING_TO_BYTES
        • TO_STRING
      • Communications

        • Emails

          • Send Mail
          • Send Mail Triggered
          • Send Mail Custom
        • Input / Output Functions

          • Close Port
          • Get Port Status
          • Open Port
          • Read Port
          • Write Port
        • SMS

          • Receive SMS
          • Send SMS
          • Send SMS Triggered
      • HVAC

        • Boiler Shifts

          • Bit Rotation (T14)
        • Others

          • E-max (T34)
          • Heat / Cool Recovery Block (T39)
          • Heating Curve (T1)
          • Min / Max Controller (T33)
          • Operating Hours (T32)
          • Power Meter (T36)
          • Pump Switch (T35)
          • Average Power Meter (T37)
        • Physics

          • Dew Point (T28)
          • Enthalpy (T29)
          • Solar Calculator (T40)
        • Time Programs

          • Bool Scheduler (T17)
          • Bool Scheduler Basic (T17)
          • Integer Scheduler (T19)
          • Integer Scheduler Basic (T19)
          • Real Scheduler (T18)
          • Real Scheduler Basic (T18)
        • Valve Controls

          • Three Point Control - Feedback (T6)
          • Three Point Control (T2)
          • Three Point P-Controller (T8)
      • System Function

        • Get Exception Error Code
          • Get Startup Flags
          • Mutex Lock
          • Mutex Unlock
          • Resume Normal Tasks
          • Set System Time
          • Stop Interface Entry Point
        • Dynamic Parameters

          • HwConfiguration

            • DateTime Settings
            • Domat DB Parameters
            • Networking
            • Proxy Parameters
            • Restart PLC
            • SSCP Parameters
            • Storage
            • Users Definition
          • Image

            • Alarm

              • GSM
              • SMTP
            • Device

              • BACnet Client Device
              • BACnet Server Device
              • Daikin iTC Device
              • Mbus Device
              • Modbus RTU Device
              • Modbus TCP Device
              • SoftPLC Link Device
              • SSCP TCP Device
            • Channel

              • Serial Channel
              • TCP/UDP Channel
  • Zařízení (hardware)
    • PLC

      • mark130.2
      • mark220
      • mark220LX
      • mark320
      • mark320LX
      • mark520
      • markMX
      • markMX.2
      • markMX.3
      • markMXL
      • Windows RT
      • ICIO205.2
      • IMIO105.2
      • IMIO110.2
      • w750-8101
      • w750-8102
      • w751-9301
      • wCIO
      • wCIOcom
      • wMX
      • wMXcom
    • Terminálová zařízení

      • HT102
      • HT104
      • HT200
      • HT3xx
    • Zařízení

      • ECIO2 - Kompaktní I/O modul, Ethernet
      • EPC102 - Regulátor topení
      • FC010 - Regulátor fancoilu, komunikativní
      • FC013 - Komunikativní regulátor teploty pro topné a chladicí panely a VAV klapku
      • FC015 - Komunikativní regulátor teploty a CO2 pro topné a chladicí panely a VAV klapku
      • FC020 - Komunikativní regulátor fancoilu
      • FCR010 - Regulátor fancoilu, komunikativní
      • FCR011 - Regulátor fancoilu, komunikativní s napájením 230V AC
      • FCR013 - Komunikativní regulátor teploty pro topné a chladicí panely a VAV klapku
      • FCR015 - Komunikativní regulátor teploty a CO2 pro topné a chladicí panely a VAV klapku
      • M090 - Převodník Modbus TCP / DALI
      • M100 - Teplotní čidlo
      • M200 - Modul digitálních výstupů
      • M210 - Modul 8 digitálních výstupů
      • M215 - Modul 8 digitálních výstupů s ručním přeřízením
      • M300 - Modul digitálních výstupů
      • M312, M313 - Triakový výstupní modul PWM
      • M315 - 8 SSR výstupů s ručním přeřízením
      • M320 - Modul 16 digitálních výstupů
      • M325 - Modul 16 digitálních výstupů s ručním přeřízením
      • M400, M401, M410, M411 - Moduly digitálních vstupů
      • M420 - Modul 16 digitálních vstupů
      • M430 - Modul 32 digitálních vstupů
      • M500 - Modul 8 analogových vstupů
      • M504 - Modul analogových vstupů
      • M560 - Modul univerzálních analogových vstupů
      • M580 - Modul pro měření stringových proudů
      • M610 - Modul analogových výstupů
      • M620 - Modul analogových proudových výstupů
      • M710 - Čítačový modul, 4 vstupy
      • MC102 - Regulátor topení
      • MCIO2 - Kompaktní I/O modul
      • MLIO - Malý distribuovaný I/O modul
      • MMIO - Malý kompaktní I/O modul
      • MT020 - Poruchový transparent
      • MTala010 - Alarmové tablo
      • MW100 - Vrátník
      • MW240, MW240-B, MW241 - Malý I/O modul pro řízení
      • MW501 - Modul analogového vstupu
      • MXIO - Kompaktní I/O modul
      • Stelix DIP200 - Čidlo osvitu a pohybu
      • R060 - Převodník Modbus TCP, RTU/MP-Bus
      • R065 - Převodník Modbus TCP/DMX512
      • R091 - Převodník Modbus TCP/DALI
      • R220 - Modul 12 digitálních výstupů
      • R312, R313 - Triakový výstupní modul PWM
      • R320 - Modul 16 digitálních výstupů
      • R330 - Modul 32 digitálních výstupů
      • R420 - Modul 16 digitálních vstupů
      • R430 - Modul 32 digitálních vstupů
      • R500 - Modul univerzálních analogových vstupů
      • R560 - Modul univerzálních analogových vstupů
      • R610 - Modul analogových výstupů
      • R710 - Čítačový modul, 4 vstupy
      • R800 - Modul 8 AI a 8 AO
      • RCIO - Kompaktní I/O modul
      • RMIO - Malý kompaktní I/O modul
      • RXIO - Kompaktní I/O modul
      • UC102 - Regulátor topení, komunikativní
      • UC120 - Komunikativní regulátor topení s výstupem 0..10V
      • UC150 - Regulátor topení s komunikací Ethernet
      • UC200 - Regulátor topení a chlazení, komunikativní
      • UC210 - Regulátor topení, komunikativní
      • UC211 - Regulátor topení a chlazení
      • UC220 - Komunikativní regulátor topení a chlazení s výstupem 0...10V
      • UC250 - Regulátor topení a chlazení s komunikací Ethernet
      • UC300 - Regulátor podlahového topení, komunikativní
      • UI0xx - pokojový ovladač
      • UI0xxBL pokojový ovladač s podsvíceným displejem
      • UI410 - Modul pro měření a hlášení
      • UI415 - Integrátor slunečního osvitu
      • UI3xx - pokojový ovladač
      • UI5xx - pokojový ovladač, ethernet
      • UI6xx - pokojový ovladač, ethernet, PoE
      • UI9xx pokojový ovladač s CO2
      • UI9xxBL pokojový ovladač s CO2 a podsvíceným displejem
      • US100 - Komunikativní regulátor topení s ovládáním žaluzií
      • UX0xx - pokojový ovladac pro řízení topení, vzduchotechniky, klimatizace a žaluzií
    • Čidla

      • UT090 - Pokojové čidlo teploty, vlhkosti a CO2
    • Wago moduly

      • w704-2054 - 16×; DI nebo 16×; DO
      • w750-404 - sestupný/vzestupný čítač
      • w750-404-000-005 - 16bitový vzestupný čítač
      • w750-450 - 4×; AI pro měření odporu/teploty
      • w750-451 - 8×; AI pro měření odporu/teploty
      • w750-453 - 4×; AI pro proud 0...20 mA
      • w750-455 - 4×; AI pro proud 4...20 mA
      • w750-457 - 4×; AI pro napětí -10...10V
      • w750-458 - 8×; AI pro termočlánky
      • w750-459 - 4×; AI pro napětí 0...10V
      • w750-496 - 8×; AI pro proud 0..20mA, 4...20mA a 3,6...21mA
      • w750-497 - 8×; AI pro napětí 0...10V ss nebo ±10V ss
      • w750-511 - generátor PWM
      • w750-515 - 4×; relé
      • w750-517 - 2kanálový reléový výstup
      • w750-530 - 8×; DI
      • w750-553 - 4×; AO pro proud 0...20mA
      • w750-555 - 4×; AO pro proud 4...20 mA
      • w750-556 - 2×; AO pro napětí ±10 V
      • w750-559 - 4×; AO pro napětí 0...10V
      • w750-597 - 8×; AO pro napětí 0...10 V a ±10 V
      • w750-600 - zakončovací modul sběrnice
      • w750-602 - napájecí modul vnitřních sběrnic (10 A)
      • w750-613 - napájecí modul vnitřních sběrnic (2 A)
      • w750-627 - zakončovací modul pro prodloužení sběrnice
      • w750-628 - modul pro prodloužení sběrnice
      • w750-638 - čítač binárních impulzů
      • w750-642 - rádiový příjímač EnOcean
      • w750-652 - komunikační modul (RS-485, RS-422, RS-232)
      • w750-960 - konektor sběrnice PROFIBUS
      • w750-1400 - 16×; DI
      • w750-1405 - 16×; DI
      • w750-1406 - 16×; DI

Definice proměnných

V rámci projektu existuje několik základních typů proměnných:

Globální - proměnné, jež se dají použít v programech v rámci jednoho projektu, při náležitém nastavení referencí též mezi projekty.

Proměnné příslušné funkcím a funkčním blokům - proměnné, jež náleží vždy určitému programu, funkci nebo funkčnímu bloku. V rámci dalšího členění můžeme proměnné rozdělit na vstupy, výstupy a lokální proměnné. Vstupy a výstupy mají oproti lokální proměnné tu vlastnost, že na ně lze připojit nějakou jinou proměnnou (globální, vstup/výstup FB, atd.).

HW proměnné - proměnné náležející konkrétnímu HW zařízení. Tyto proměnné nelze použít v programech, je nutné na ně namapovat globální proměnné a posléze v programech používat tyto globální proměnné. Smyslem je usnadnit přepojování proměnných v případě nutnosti přepojení vstupu nebo výstupu při jeho poškození.

Definice globálních proměnných

Proměnné si lze zakládat postupně pomocí funkce Vytvořit globální proměnnou, dostupné přes FUPLA editor, nebo si lze utvořit celý balík proměnných najednou pomocí ST. Oba dva postupy lze kombinovat, založením proměnné přes funkci ve schématu FUPLA se samozřejmě automaticky mění obsah ST programu, který proměnné definuje. Pojďme si nyní oba dva způsoby ukázat.

Ve FUPLA editoru si klikněte pravým tlačítkem do žebříku a zvolte možnost "Globální proměnné", "Vytvořit globální proměnnou".

Založte si následující proměnnou:

Proměnná je vždy příslušná nějakému projektu. Jestliže ji chcete posléze použít v jiném projektu, je nutné u projektu uvést referenci na projekt, kterému je proměnná příslušná. Zmáčknutím OK jste vytvořili globální proměnnou. V projektu se automaticky vygeneroval adresář „Globals“ a v něm podprogram názvu generated. Když program otevřete, v editoru programu uvidíte svou proměnnou.

var_global
    teplota: real;
end_var

V tomto programu se budou nadále automaticky generovat vámi vytvořené proměnné přes FUPLA editor. Proměnnou můžete samozřejmě vytvořit rovnou jednoduchou editací textu programu.

var_global
    teplota, teplota_kancl: real;
end_var

Tímto jste vytvořili proměnnou teplota_kancl, po kompilaci si můžete ověřit její existenci přidáním do žebříku ve FUPLA editoru.

Jestliže chcete vytvořit program s definicí proměnných, rovnou postupujte následovně.

Založte nový program

V tomto programu pak definujte globální proměnné pomocí ST.

V jednom projektu může být více programů, kde se definují globální proměnné - z hlediska funkce není původ proměnné důležitý.

Definice globálních proměnných „retain“

Globální retain proměnné vytváříte podobným způsobem jako proměnné globální. Jedná se o proměnné se zálohovanou hodnotou. Vlastností retain by měly být vybaveny globální proměnné, do kterých se nezapisuje z programu, ale z uživatelského rozhraní - jsou to typicky nastavitelné parametry programu - požadované teploty, mezní hodnoty atd.

Nastavením vlastnosti retain zapříčiníte, že i po restartu RT si budou proměnné zachovávat nastavenou hodnotu. Je ale nutno mít na zřeteli, že proměnné retain zabírají paměť PLC a je třeba vhodně optimalizovat jejich počet.

V ST se provádí deklarace proměnných následovně:

var_global retain
    teplota, teplota_kancl: real;
end_var

Každá proměnná s flagem RETAIN je po každém komunikačním cyklu (v případě více tasků platí pro každý task) překopírována do RETAIN oblasti. Jde o speciální část paměť, která si uchovává obsah i při výpadku napájení.

V případě warm-restartů (např. výpadek napájení) se před spuštěním výpočtu hodnoty RETAIN proměnných inicializují na hodnoty uložené v RETAIN oblasti. Pokud je PLC resetováno v módu cold-restartu, tak se i RETAIN proměnné inicializují na své základní hodnoty ze zdrojových kódů programu.

RETAIN proměnné lze využít například na čítače provozních hodin a podobné veličiny, které je třeba zachovat při výpadku napájení nebo jiné manipulaci.

U kombinací NON_RETAIN a RETAIN vnořených typů vždy platí nejvyšší flag. Znamená to, že uživatel může přebít nastavení typů a u konkrétních proměnných nastavit RETAIN nebo NON_RETAIN. V takovém případě pak již nezáleží, jakým způsobem jsou nastaveny vnořené položky. Vše se stává RETAIN, popřípadě NON_RETAIN.

Přemíra užívání RETAIN má vliv na výkon a využití prostředků. Proto deklarace RETAIN vždy pečlivě zvažte.

Prev
Nový projekt
Next
Autogen - automatické namapování softwarových proměnných na vstupy a výstupy