Check digital input value for a duration


Hi All,

I am new in robot programming, so apologize if my question is maybe a basic one.

I have an external software which sends an digital input to my IRC5 controller. The value 1 or 0.

I want to check the value of the DI during a period of time. In fact I want to be sure that the DI stays at the value 1 during at least 30 seconds. and then pass to the next action.

Is there any simple solution?

Thanks for your help


  • This below will wait until the signal becomes logic HIGH (it will wait there infinitely until you reset program pointer or another method - add a maxtime and timeout signal to that if you want to) then checks it for your 30 seconds.


    VAR bool bSignal_High_For_30s;
    WaitDI diInputSignal, 1;
    WaitDI diInputSignal, 0 \MaxTime:=30 \TimeFlag:=bSignal_High_For_30s;
    IF bSignal_High_For_30s=TRUE THEN 
        ! signal high for 30 seconds
        ! signal went low before 30 seconds expired