Download this file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
FUNCTION_BLOCK I2CTemplate EXTENDS i2c VAR_INPUT lrMinDistance : LREAL := 0.15; lrMaxDistance : LREAL := 16; END_VAR VAR_OUTPUT lrDistance : LREAL := -1; xValid: BOOL; xNewMeasurement: BOOL; VAR timer: TON := (IN:=TRUE); xNewMeasurement := FALSE; SUPER^(); CASE _iState OF 0: IF usiAddress = 0 THEN usiAddress := 16#70; END_IF IF SUPER^.init() THEN _iState := 5; END_IF 5: Timer.pt := T#70MS; _iState := 10; xValid := FALSE; END_CASE