//Code automatically generated with fuzzylite 6.0. FUNCTION_BLOCK SimpleDimmerChained VAR_INPUT Ambient: REAL; END_VAR VAR_OUTPUT Power: REAL; InversePower: REAL; END_VAR FUZZIFY Ambient RANGE := (0.000 .. 1.000); TERM DARK := Triangle 0.000 0.250 0.500; TERM MEDIUM := Triangle 0.250 0.500 0.750; TERM BRIGHT := Triangle 0.500 0.750 1.000; END_FUZZIFY DEFUZZIFY Power RANGE := (0.000 .. 1.000); TERM LOW := Triangle 0.000 0.250 0.500; TERM MEDIUM := Triangle 0.250 0.500 0.750; TERM HIGH := Triangle 0.500 0.750 1.000; METHOD : COG; ACCU : MAX; DEFAULT := nan; END_DEFUZZIFY DEFUZZIFY InversePower RANGE := (0.000 .. 1.000); TERM LOW := Cosine 0.200 0.500; TERM MEDIUM := Cosine 0.500 0.500; TERM HIGH := Cosine 0.800 0.500; METHOD : COG; ACCU : MAX; DEFAULT := nan; END_DEFUZZIFY RULEBLOCK ACT : MIN; RULE 1 : if Ambient is DARK then Power is HIGH RULE 2 : if Ambient is MEDIUM then Power is MEDIUM RULE 3 : if Ambient is BRIGHT then Power is LOW RULE 4 : if Power is LOW then InversePower is HIGH RULE 5 : if Power is MEDIUM then InversePower is MEDIUM RULE 6 : if Power is HIGH then InversePower is LOW END_RULEBLOCK END_FUNCTION_BLOCK