# Binary limiter

Process
Binary limiter
I
V
O
L

# 入力

ID略称名前デフォルト説明
inputIinputBOOLEANfalse
valueVvalueNUMBER0

# 出力

ID略称名前デフォルト説明
outputOoutputBOOLEANfalse
limit_exceededLlimit_exceededBOOLEANfalse

# 設定

ID名前デフォルト単位説明
limitlimitNUMBER0.0
hysteresishysteresisNUMBER0.5

# ソースコード

Volang ソースを表示
in = input::get("input")
value = input::get("value")
limit_exceeded = output::get("limit_exceeded")
limit = config::get("limit")
hysteresis = config::get("hysteresis")

new_limit_exceeded = false
if (limit >= 0) {
    // Positive limit: exceeded when value is too high
    if (value <= (limit - hysteresis)) {
        new_limit_exceeded = false
    } else if ((value > (limit - hysteresis)) and (value < (limit + hysteresis))) {
        new_limit_exceeded = limit_exceeded
    } else if (value >= (limit + hysteresis)) {
        new_limit_exceeded = true
    }
} else {
    // Negative limit: exceeded when value is too low (more negative)
    if (value >= (limit + hysteresis)) {
        new_limit_exceeded = false
    } else if ((value > (limit - hysteresis)) and (value < (limit + hysteresis))) {
        new_limit_exceeded = limit_exceeded
    } else if (value <= (limit - hysteresis)) {
        new_limit_exceeded = true
    }
}

output::set("limit_exceeded", new_limit_exceeded)
output::set("output", in and !new_limit_exceeded)
Voldeno スマートホーム自動化における Binary limiter Logic Block の動作、用途、設定方法を説明します。