// FbCylinder1x1y
// 1 limit sensor
// 1 output
// ex:
// cySt1GoDown(gCySt1GoDownAct, xSt1Down, wSt1OnT, wSt1OffT, ySt1GoDown);

oDevice := iAct;
tmrOn(IN := oDevice AND NOT iLimit1, PT:= INT_TO_TIME(iOnTO*100));
tmrOff(IN := NOT oDevice AND iLimit1, PT:= INT_TO_TIME(iOffTO*100));

RST(iRst AND oErr, oErr);
SET(tmrOn.Q OR tmrOff.Q, oErr);

oOn := tmrOnDelay.Q;
oOff := tmrOffDelay.Q;

IF oErr THEN
    IF tmrOff.Q THEN
        oErrId := 20;
    ELSIF tmrOn.Q THEN
        oErrId := 10;
    END_IF;
ELSE	
    oErrId := 0;
END_IF;