Funkcie

Funkcie

Výrazy ako „Rovnica“ a „Vzorec“ použité v chytrých pravidlách (smart ruloch).

Extra funkcie, ktoré je možné použiť pre Modbus zariadenia na čítanie / zápis hodnôt z / do registrov Modbus.

Matematické výrazy

+, -, *, /

 (20,5 + 9,5) / 2   (15)  

Logické výrazy

A, ALEBO,!, =, & gt ;, & lt;

 (! IsRaining OR (Wind> 30))  

Funkcie

IF

 IF (logická_expresia, value_if_true, value_if_false)  

Vracia jednu hodnotu, ak je logický výraz "TRUE" a druhý, ak je "FALSE".

LINEAR

 LINEAR (vstup, value1_input, value1_output, value2_input, value2_output)
 Príklad 1:   LINEAR (250, 0, 0, 50, 500)
 Príklad 2:   LINEAR (5, 0, 400, 10, 3000)
 (5V vstup od snímača CO2 (0V = 400ppm, 10V = 3000ppm) výsledok 1700ppm)  

Vráti lineárne upravenú hodnotu.

SWITCH

 SPÄŤ (výraz, case1, hodnota1, [case2, ...], [value2, ...], default_value) 
Testuje výraz proti zoznamu prípadov a vráti zodpovedajúcu hodnotu prvého zodpovedajúceho prípadu s predvolenou hodnotou, ak nič iné nie je splnené.

MIN

 MIN (hodnota1, hodnota2)  
Vracia menšiu z dvoch hodnôt.

MAX

 MAX (hodnota1, hodnota)  
Vráti väčšiu z dvoch hodnôt.

Bitové operácie

& lt; & lt; (Ľavý posun bitov)

 8 < 2   (32)  

& gt; & gt; (Posun doprava vpravo)

 32 & gt; 2   (8)  

& amp; (Bitové a)

 3 & amp; 1   (1)  

| (Bitový alebo)

2 1 (3)

Hexadecimálne čísla
Výrazy môžu tiež interpretovať hexadecimálne čísla. Predpona 0x sa vyžaduje a zvyšok nerozlišuje veľké a malé písmená.

 0x0A (10)
 0xA0A0 (41120)
 0xa0a0 (41120)  

Výrazy Modbus

Typy registrov

  • C – Coil
  • SC – jednoduchá cievka
  • D – Diskrétny vstup
  • H – Holding register
  • SH – Jednoduchý register registrácie
  • A – Analógový vstup

    Typy registrov typu „S“ slúžia iba na písacie funkcie a mali by sa používať pre zariadenia, ktoré nepodporujú písanie viacerých registrov naraz.

    Typy údajov

    • Int16 (-32 768 až 32 767)
    • Uint16 (0 až 65 535)
    • Int32 (-2,147,483,648 až 2,147,483,647)
    • Uint32 (0 až 4 294 967 295)
    • Bool – (-inf, 0> = false, (0, inf) = true
    • BigEndianInt16
    • LittleEndianInt16
    • BigEndianUint16
    • LittleEndianUint16
    • BigEndianInt32
    • LittleEndianInt32
    • BigEndianUint32
    • LittleEndianUint32

      MODBUSR (modbus čítanie)

       MODBUSR (register_type, register_address, typ_typu)
      Príklad: MODBUSR (H, 20, Int16) / 100

      Vracia hodnotu registra holdingu na adrese 20 vo formáte int16 a rozdelí ju na 100.

       

      MODBUSW (modbus write)

       MODBUSW (register_type, register_address, data_type, value_to_write)
      Príklad: MODBUSW (H, 20, Int16, Te / 100)

      Zaznamenáva teplotu snímača vydelená formátom 100 int int16 do registra 20.

       

      MODBUSWNE (modbus zápis nie je rovnaký)

      Zapisuje do registra iba vtedy, ak je aktuálna hodnota iná. Číta hodnotu, skontroluje, či je rovnaká a zapisuje do registra, ak nie. Užitočné pre ukladanie pamäte EEPROM.

        MODBUSWNE (register_type, register_address, data_type, value_to_write)
      Príklad: MODBUSWNE (H, 20, Int16, Te / 100)

      Najskôr sa načítava hodnota z holdingového registra na adrese 20 vo formáte int16, porovná sa s teplotnou teplotou snímača delí 100 a iba v prípade, že sa hodnoty líšia, zapíše teplotu snímača vydelená formátom 100 int int16 do registra 20.