A kifejezéseket intelligens szabályok egyenleteiben és képleteiben alkalmazzunk.

    A Modbus eszközöknél  extra funkciók használhatók, a Modbus regiszterek értékeinek olvasásához / írásához.

    Matematikai kifejezések

    +, -, *, /

    (20.5 + 9.5) / 2    (15)


    Logikai kifejezések

    AND, OR, !, =, >, <

    (!IsRaining OR (Wind>30))

    Funkciók

    IF

    IF(logikai kifejezés, hérték ha igaz, érték ha hamis)

    Ha a logikai kifejezés igaz, akkor az 'igaz' értéket adja vissza, ha hamis, akkor a 'hamis' értéket. 

    Lineáris

    LINEAR(input, value1_input, value1_output, value2_input, value2_output)
    Példa 1: LINEAR(250, 0, 0, 50, 500)   (25°C)
    Példa 2: LINEAR(5, 0, 400, 10, 3000)
              (5V input from CO2 sensor (0V=400ppm, 10V=3000ppm) results in 1700ppm)

    Egyenes irányban változó értéket ad vissza.

    Kapcsoló

    SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)

    Tesztelés, az első kifejezéssel egyező lehetőség értékét adja vissza, ha semelyik lehetőség sem egyezik akkor az alapértelmezett értéket adja vissza.

    MIN

    MIN(value1, value2)

    Két érték közül a kisebbet adja vissza.

    MAX

    MAX(value1, value)

    Két érték közül a nagyobbat adja vissza.

    BIT műveletek

    <<   (BIT balra tolása)

    8 << 2   (32)

    >> (BIT jobbra tolása)

    32 >> 2   (8)

    & (BITENKÉNTI ÉS)

    3 & 1   (1)

    | (BITENKÉNTI VAGY)

    2 | 1 (3)

    Hexadecimális számok

    Az kifejezések hexadecimális számokat is tartalmazhatnak. A 0x előtag szükséges, a többi lehet kis és nagybetű is..

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

    Modbus kifejezések

    Regiszter típus

    • C – tekercs
    • SC – egy tekercs
    • D – diszkrét bemenet
    • H – tároló regiszter
    • SH – egyes tároló regiszter
    • A – analóg bemenet

    Az "S" regisztertípusok csak írási funkciókra vonatkoznak, és azokat olyan eszközökön kell használni, amelyek nem támogatják egyszerre több regiszter írását.

    Adat típus

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

    MODBUSR (MODBUS olvasás)

    MODBUSR(register_type, register_address, data_type)
    példa: MODBUSR(H, 20, Int16)/100

    Visszaadott érték a tároló regiszter 20 as címén levő értéket int16 formátumban, és osztva 100-al. 

    MODBUSW (MODBUS írás)

    MODBUSW(register_type, register_address, data_type, value_to_write)
    Példa: MODBUSW(H, 20, Int16, Te/100)

    A szenzor hőmérsékleti értékét osztja 100-al és int16 formátumban beírja a tárolóregiszuter 20 as címére. 

    MODBUSWNE (MODBUS írás egyenlőtlenség esetén)

    Csak akkor ír a regiszterbe, ha az érték nem egyenlő. Kiplvassa az értéket, ellenörzi, és beírja a regiszterbe, ha nem egyenlő. Hasznos EEPROM memória mentés esetén.

    MODBUSWNE(register_type, register_address, data_type, value_to_write)
    Példa: MODBUSWNE(H, 20, Int16, Te/100)

    Először kiolvassa a tárolóregiszter 20 as címén lévő adatot int16 formátumban, a hőmérséklet szenzor értékét elosztja 100-al, majd összehasonlítja a két értéket, és csak ha különböző, akkor írja be a kiszámított értéket a tárolóregiszter 20 as címére. 

     

     

     

    Kapcsolat

    Cégnév átlátszó kicsi
    1094 Budapest
    Mihálkovics u. 18.
    Tel.: +36 30 665 51 29
     
    © 2017 Architechnik Kft. Hungarian Distributor of Taphome All Rights Reserved. EPULETAUTOMATIZALAS.HU